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]

Reply via email to