mirror of
https://github.com/moshix/mvs.git
synced 2026-04-24 19:50:11 +00:00
185 lines
8.2 KiB
Plaintext
185 lines
8.2 KiB
Plaintext
PRINT NOGEN
|
|
****************************************************************
|
|
* FILENAME: TEACH4C.MLC *
|
|
* AUTHOR : Bill Qualls *
|
|
* SYSTEM : Compaq 286LTE, PC/370 R4.2 *
|
|
* REMARKS : This is a revision of TEACH4B.MLC. *
|
|
* Produce list of tenured instructors. *
|
|
* How to structure a BAL program. *
|
|
****************************************************************
|
|
START 0
|
|
REGS
|
|
BEGIN BEGIN
|
|
WTO 'TEACH4C ... Begin execution'
|
|
BAL R10,SETUP
|
|
MAIN EQU *
|
|
CLI EOFSW,C'Y'
|
|
BE EOJ
|
|
BAL R10,PROCESS
|
|
B MAIN
|
|
EOJ EQU *
|
|
BAL R10,WRAPUP
|
|
WTO 'TEACH4C ... Normal end of program'
|
|
RETURN
|
|
****************************************************************
|
|
* SETUP - Those things which happen one time only, *
|
|
* before any records are processed. *
|
|
****************************************************************
|
|
SETUP EQU *
|
|
ST R10,SVSETUP
|
|
OI TEACHERS+10,X'08' PC/370 ONLY - Convert all
|
|
* input from ASCII to EBCDIC
|
|
OI REPORT+10,X'08' PC/370 ONLY - Convert all
|
|
* output from EBCDIC to ASCII
|
|
OPEN TEACHERS
|
|
OPEN REPORT
|
|
BAL R10,HDGS
|
|
BAL R10,READ Priming read
|
|
L R10,SVSETUP
|
|
BR R10
|
|
****************************************************************
|
|
* HDGS - Print headings. *
|
|
****************************************************************
|
|
HDGS EQU *
|
|
ST R10,SVHDGS
|
|
PUT REPORT,HD1
|
|
PUT REPORT,HD2
|
|
PUT REPORT,HD3
|
|
PUT REPORT,HD4
|
|
L R10,SVHDGS
|
|
BR R10
|
|
****************************************************************
|
|
* PROCESS - Those things which happen once per record. *
|
|
****************************************************************
|
|
PROCESS EQU *
|
|
ST R10,SVPROC
|
|
CLI ITTEN,C'Y' Is teacher tenured?
|
|
BNE PROC2 No, then skip this record
|
|
BAL R10,FORMAT Otherwise format a line
|
|
BAL R10,WRITE ...and write it
|
|
PROC2 EQU *
|
|
BAL R10,READ Read next
|
|
PROCESSX EQU *
|
|
L R10,SVPROC
|
|
BR R10
|
|
****************************************************************
|
|
* READ - Read a record. *
|
|
****************************************************************
|
|
READ EQU *
|
|
ST R10,SVREAD
|
|
GET TEACHERS,IREC Read a single teacher record
|
|
B READX
|
|
ATEND EQU *
|
|
MVI EOFSW,C'Y'
|
|
READX EQU *
|
|
L R10,SVREAD
|
|
BR R10
|
|
****************************************************************
|
|
* FORMAT - Format a single detail line. *
|
|
****************************************************************
|
|
FORMAT EQU *
|
|
ST R10,SVFORM
|
|
MVC OTID,ITID Move teacher ID Nbr to output
|
|
MVC OTNAME,ITNAME Move teacher Name to output
|
|
CLC ITDEG,=CL4'PHD' Highest degree = PhD?
|
|
BE YESPHD .. Yes, branch
|
|
MVI OPHD,C'N' .. No, Show PhD = 'N'
|
|
B OTHERS .. Branch around YES logic
|
|
YESPHD EQU * Highest degree is PhD, so...
|
|
MVI OPHD,C'Y' Show PhD = 'Y'
|
|
OTHERS EQU * Continue moving other fields...
|
|
MVC O517,=CL4'517-' All phone nbrs begin w/ '517-'
|
|
MVC OTPHONE,ITPHONE Move phone nbr to output
|
|
MVC OCRLF,WCRLF PC/370 ONLY - end line w/ CR/LF
|
|
L R10,SVFORM
|
|
BR R10
|
|
****************************************************************
|
|
* WRITE - Write a single detail line. *
|
|
****************************************************************
|
|
WRITE EQU *
|
|
ST R10,SVWRITE
|
|
PUT REPORT,OREC Write report line
|
|
L R10,SVWRITE
|
|
BR R10
|
|
****************************************************************
|
|
* WRAPUP - Those things which happen one time only, *
|
|
* after all records have been processed. *
|
|
****************************************************************
|
|
WRAPUP EQU *
|
|
ST R10,SVWRAP
|
|
CLOSE TEACHERS
|
|
CLOSE REPORT
|
|
WTO 'TEACH4C ... Teacher list on REPORT.TXT'
|
|
L R10,SVWRAP
|
|
BR R10
|
|
****************************************************************
|
|
* Literals, if any, will go here *
|
|
****************************************************************
|
|
LTORG
|
|
****************************************************************
|
|
* File definitions *
|
|
****************************************************************
|
|
TEACHERS DCB LRECL=29,RECFM=F,MACRF=G,EODAD=ATEND,
|
|
DDNAME='TEACHER.DAT'
|
|
REPORT DCB LRECL=62,RECFM=F,MACRF=P,
|
|
DDNAME='REPORT.TXT'
|
|
****************************************************************
|
|
* RETURN ADDRESSES *
|
|
****************************************************************
|
|
SVSETUP DC F'0' SETUP
|
|
SVHDGS DC F'0' HDGS
|
|
SVPROC DC F'0' PROCESS
|
|
SVREAD DC F'0' READ
|
|
SVFORM DC F'0' FORMAT
|
|
SVWRITE DC F'0' WRITE
|
|
SVWRAP DC F'0' WRAPUP
|
|
****************************************************************
|
|
* Miscellaneous field definitions *
|
|
****************************************************************
|
|
WCRLF DC X'0D25' PC/370 ONLY - EBCDIC CR/LF
|
|
EOFSW DC CL1'N' End of file? (Y/N)
|
|
****************************************************************
|
|
* Input record definition *
|
|
****************************************************************
|
|
IREC DS 0CL29 Teacher record
|
|
ITID DS CL3 Teacher ID nbr
|
|
ITNAME DS CL15 Teacher name
|
|
ITDEG DS CL4 Highest degree
|
|
ITTEN DS CL1 Tenured?
|
|
ITPHONE DS CL4 Phone nbr
|
|
ITCRLF DS CL2 PC/370 only - CR/LF
|
|
****************************************************************
|
|
* Output (line) definition *
|
|
****************************************************************
|
|
OREC DS 0CL62
|
|
OTID DS CL3 Teacher ID nbr
|
|
DC CL3' '
|
|
OTNAME DS CL15 Teacher name
|
|
DC CL4' '
|
|
OPHD DS CL1 PhD? (Y/N)
|
|
DC CL5' '
|
|
OPHONE DS 0CL8 Phone nbr
|
|
O517 DS CL4
|
|
OTPHONE DS CL4 Phone nbr
|
|
DC CL21' '
|
|
OCRLF DS CL2 PC/370 only - CR/LF
|
|
****************************************************************
|
|
* Headings definitions *
|
|
****************************************************************
|
|
HD1 DS 0CL62
|
|
DC CL40' LIST OF TENURED INSTRUCTORS '
|
|
DC CL20' '
|
|
DC XL2'0D25'
|
|
HD2 DS 0CL62
|
|
DC CL60' '
|
|
DC XL2'0D25'
|
|
HD3 DS 0CL62
|
|
DC CL40'ID# Name PhD? Phone '
|
|
DC CL20' '
|
|
DC XL2'0D25'
|
|
HD4 DS 0CL62
|
|
DC CL40'--- --------------- ---- -------- '
|
|
DC CL20' '
|
|
DC XL2'0D25'
|
|
END BEGIN
|