All In addition to the recommendations already posted, you may find it useful to download, install, and use the z390 Portable Mainframe Assembler and Emulator from www.z390.org. This open source free tool comes with HLASM compatible macro assembler and emulator for problem state instructions up through z9, z10, and z196 mainframe processors. It comes with InstallShield for Windows and also comes in file image format for installation on Linux and Apple OSX systems. It's only pre-requisite is a free version of J2SE Java 1.6+. It has lots of demo and regression test programs plus a zCOBOL compiler and a zCICS transaction processor all written in HLASM assembler for z390.
There is a lot to learn about mainframe system programming. For a starting point, I'd suggest installing z390 and studying the demo "Hello World" program which uses WTO macro to generate code to issue console message with the text "Hello World". The macro expands to generated an SVC 35 supervisor call to request the display of message with the address of the message block placed in register 1. This is perhaps the mostly used SVC that has remained basically the same through OS, VS1, VS2, MVS, and the z/OS mainframe operating systems and z390. You can assemble, link, and execute the demo from the z390 GUI or command line prompt using the command ASMLG demo\DEMO TRACE. This command does the following: 1. mz390 assembler reads DEMO.MLC source HLASM assembler demo program 2. mz390 assembler generates DEMO.PRN assmebler listing 3. mz390 assembler generates DEMO.OBJ relocatable object code file 4. lz390 linker reads the DEMO.OBJ relocatable object code file 5. lz390 linker generates DEMO.LST listing of CSECT map for load module 6. lz390 linker generates DEMO.390 executable load module file 7. ez390 emulator reads the DEMO.390 load module file 8. ez390 emulator generates the DEMO.LOG console log file with WTO message 9. ez390 emulator generates the DEMO.TRE execution instruction trace file All of the above files are standard ASCII files except the OBJ and 390 binary code files. Once you have generated the above files on your system, the next thing I would do is study the z390\demo\DEMO.MLC source program file, the generated assembler listing file z390\demo\DEMO.PRN and the associated called macro files in z390\mac directory using the HLASM Language Reference Manual to answer questions. Then I would study the execution trace file z390\demo\DEMO.TRE using the Principles of Operations Manual to look up each instruction and study the before and after register values and instruction address etc. Since the instructions used in this demo program as used in almost every program you will ever write, they are worth getting to know right up front. I started this same journey as a summer college student in 1967 at Florida Power where I had late night access to an IBM 360 model 30 with standalone operating systems like BOS and TOS. But they executed the same basic prroblem state instructions such as STM, BALR, LA, SVC, etc. In 1980 I bought my first Radio Shack TRS-80 personal computer with 64k Z80 chip and CP/M operating system. I thought I had died and gone to heaven having my own "mainframe" at home 24/7. Over the next few years I developed my first mainframe assembler and emulator written in Z80 assembler. It executed about 25,000 360 instructions per seoond on a 4 MHZ Z80 8 bit chip. I ported it to IBM PC with Intel 8086/8087 chip in 1984 and published PC/370. In 2004 I retired from full time work as a systems programmer, and started work on z390 written entirely in J2SE Java. Today this portable mainframe tool executes over 30 MIPS on an Intel i5 chip. I hope you find this useful. Seveal universities are using z390 which also includes the ASSIST extended instructions described in Struble's book, and there are examples included. Don Higgins [email protected]
