News for hackers. Stuff that matters.
Re:IBM System/360 Model 67 by protomyth on Friday August 21, 2015 @06:13PM (#10100568)
to repeat a comment from long ago:

When I was in college, Assembler was taught in IBM 360 Assembly on an IBM 370 using CMS as the OS. It was quite a bit different from programming a 6502 in HS. I still have the banana book somewhere. These were very interesting machines, but you could really suck up the shared time with a tight loop.

to add: XEDIT was the primary editor and it had some good point with a lot of bad. Also, for the life of me I cannot remember using directories when displaying files on that machine. I spent quite a lot of time helping people get the JCL right for the statistics package they were using.

Re:IBM System/360 Model 67 by greenyoda on Friday August 21, 2015 @07:00PM (#10100773)
When I was in college, I also programmed on CMS on a 370 in assembler. I even hacked some system utilities by dumping them out in hex, disassembling them by hand and modifying some machine instructions with the patch tool. We also had a port of one of the early Unix C compilers (PCC?) that ran on the IBM mainframe. In our operating systems class, we wrote a simple virtual machine OS for the 370 architecture.

Directories only showed up in CMS many years later. In the early days (when the IBM 370 was still around), the only way of grouping files was by having multiple virtual disks and assigning letters to them: A-disk, B-disk, C-disk, etc.

Re:IBM System/360 Model 67 by PhantomGremlin on Friday August 21, 2015 @07:15PM (#10100820)
I even hacked some system utilities by dumping them out in hex

The operating system had an instruction called "supervisor call", or SVC. When you needed the OS to do something for you (like read from a file) you did an SVC. Much like making a system call into Linux.

The 2nd byte of SVC was an operand. It meant you could have up to 256 different requests to make of the OS. But IBM didn't define all of them.

So our school system programmers used some of the highest SVC numbers (255 on down) to do various custom things. But, these functions could also be dumped in hex and disassembled.

When you did that you found all sorts of magical things you could ask the OS to do for you. E.g. let you write anywhere in memory. From there it was a few instructions before you were "root", or what passed for the equivalent in those days.

Security thru obscurity. It didn't work in the early 1970s. It still doesn't work today.

Re:IBM System/360 Model 67 by YZF on Saturday August 22, 2015 @12:55AM (#10101551)
Not sure when that came historically but I remember the diag instruction that was used to talk to the "hypervisor". E.g. diag 8 was used to issue CP commands from your program. That's at a lower level than CMS which ran in the user's space and interacted with the virtual hardware (and would handle something like file i/o)...
Re:IBM System/360 Model 67 by greenyoda on Saturday August 22, 2015 @01:29AM (#10101624)
That's exactly right. CP trapped the "diagnose" instruction in the virtual machine to allow the VM to talk to the hypervisor. The "diagnose" instruction was convenient, since it was an opcode that was never used in normal programs - on a real (non-virtual) machine, it was used by IBM engineers to diagnose hardware problems and did different weird things on each different model of machine.

The normal SVC (supervisor call) instruction was the API for programs to talk to CMS, the operating system that was most commonly run on top of the virtual machines. It was actually possible to run several different operating systems on the virtual machines, including CP (the hypervisor) itself. Systems programmers would do that for testing new versions of CP on a live system.

Re:IBM System/360 Model 67 by cmollis on Friday August 21, 2015 @07:31PM (#10100867)
I also took Assembly language on the mainframe. It was the only mainframe class I took (all the rest on pc's which, I guess for the time 25+ years ago, was interesting in and of itself), but I learned quite a bit about computer architecture. Cool!
Re:IBM System/360 Model 67 by nickpsecurity on Friday August 21, 2015 @11:23PM (#10101394)
Re:IBM System/360 Model 67 by YZF on Saturday August 22, 2015 @12:46AM (#10101539)
Did you have a full screen terminal?

There were disk letters: TEST PASCAL A

A0 (invisible in read only mode)

Those were the days. VM/CMS ... I spent many long nights as a teen hacking on series 370 mainframes.

XEDIT had a lot going for it. On full screen terminals a lot of the interaction was local so basically zero latency. The keyboards on these things were basically the best keyboards ever made. Prefix commands. The ultimate in programmability/customization via EXEC/EXEC2/Rexx . Email applications were written using XEDIT as a base. Being able to tab into the prefix command and operate on a bunch of lines (cc anyone?) made a lot of common operations very easy.

Very different than vi or emacs that were designed for character oriented devices. XEDIT was designed for those full screen terminals and had a unique feel to it. It was very hard for me to switch to other editors...

Re:IBM System/360 Model 67 by protomyth on Saturday August 22, 2015 @12:09PM (#10102847)
We had Zenith Z-19 and IBM 5250 terminals. I just couldn't remember, but it might also be that we didn't really get much of a tutorial beyond here's how to write, compile, run, and submit your Modula-2 / IBM 370 assembler program.

The funny thing I remember was how you typed commands in the ===== at the left side of the screen. It was quite nice for that.

Re:IBM System/360 Model 67 by YZF on Saturday August 22, 2015 @04:40PM (#10103670)
Yep. That was the prefix area... You could do something like SET NUM ON and it would show the line numbers (much nicer than the =====) or even hide the entire area. Was a good match to a 327X terminal. Clearly built by programmers for programmers in other times.

Despite it's reputation IBM had some amazing people (e.g. the name Mike Colishaw comes to mind) who apparently had the freedom to do some cool stuff. There was source code for everything (you got source code for your OS) ages before anyone knew what "open source" was and there was a vibrant community of sharing code between various academic sites who ran IBM mainframes.

Re:IBM System/360 Model 67 by dbarlett on Friday August 21, 2015 @09:09PM (#10101116)
I recently came across a z/VM manual with an unexpectedly humorous XEDIT tutorial: http://imgur.com/vUvY7B7
Re:IBM System/360 Model 67 by MyDogHasFleas on Friday August 21, 2015 @11:59PM (#10101454)
The X in Xedit was for Xavier Delamberterie, who wrote it while on assignment from IBM France to IBM Endicott, where I also worked.
Re:IBM System/360 Model 67 by smcnally on Friday August 21, 2015 @11:49PM (#10101439)
XEDIT was still the primary editor for OV/VM at IBM during the early/mid 90s. Our PCs essentially booted into 3270 emulators -- via Windows or OS/2 -- and from there to OV/VM for most inter-office communication.
Re:IBM System/360 Model 67 by toll on Friday August 21, 2015 @07:38PM (#10100894)
There are mainframe products in IBM that are just now switching away from XEDIT as the primary editor for development.