The following five part exercise course is meant to give minimal working knowledge, in ASM/370. The course is intended mainly for new systems programmers with little prior knowledge of the mainframe enviroment.
The course was built for self study. The recommended approach is to have all relevant books handy (ASM manual, POP, Macros etc.), and an experienced programmer as a mentor.
The mentor is not supposed to teach the course, but to help find the relevant manual sections, and help interpret the exercises which are described very briefly below.
The time span for the course is not defined. Some can accompilsh all exercises inside one week (a session each day), while others may need a week for each session.
The pace depends on many factors including the support enviroment (books, CDROMS, debuggers etc.), prior knowledge, and support from the mentor.
I hope you find these exercises helpful.
Ehud Lamm
| I | II | III/IV | V | ||
|---|---|---|---|---|---|
| Subject | Data Definitions, EQU, DESCT | Linkage Conventions, Conditions Codes, Files | Memory Allocation, AMODE/RMODE, Subroutines | Subroutines,Macros,Structured Code | |
| Exercise | A program running under TSO, that reverses a word of length N (a compile time constant), received as a command line paramter. A word of different length will cause an error message | A program that reads a file (you can choose DDNAME), and parses it into words. Each word, of length N, will be reversed, uppercased, and written to an output file. | A program that reads a file, with lines in the format WORD=12..N,parses out the
words, and invokes fopr each word a routine that calcuates a value for that word. At this stage
the routine will return a constant value for every word.The value is used as an offset into a table, and the word will be stored at that offset. The table will be allocated dynamically with the size of 5K. Only the last word with a given offset will be stored in the table. The code will check the offset returned by the routine, in order not to have overlay problems. The table will reside below of 16M line, the program will reside above the line. When the program ends the table will written to an output file, or to the screen if no OUT DD was allocated. |
Add to the previous exercise a main program that calculates a hash value for each word, and
stores the word accordingly in the table. The hash routine will store the word, when the
appropriate opcode will be suppiled to it, (this will be part of the input to the program).
A different opcode will return an indication whether the word exists in the table.
This hash mechanism will be hidden using a set of macros for the common operations (insert, query etc.) The macros will deal with the usually issues: saving registers, calling convention etc. The macros should be as professional as possible, using all the needed 'tricks' (missing arguments, defaults etc.) |
|
| Important issues | Elegant coding techniques, using a debugger (TEST) | BALR,BASR,BAL,CALL DCB Jump instructions,TM,extended mnemonics |
BASSM,BSM,STORAGE,professional coding,subroutines,DSECTs | Macros,using coding standrds |
Return to Ehud Lamm's home page
Last updated: 21/7/1999