These are the program's variables.
* Variables and constants for the program
VSVEAREA DC 18A(0) Save area
VTOKEN DC XL8'00' Object token
VAREAPTR DC A(*-*) -> MAP area
VSIZEP DC F'0' Size of MAP area, in pages (4K)
VSIZEB DC F'0' Size of MAP area, in bytes
VSWUPDT DC X'00' X'FF' -> map area updated
VCHGADDR DC A(*-*),C' ' Address of byte to change/display
VTEMP8 DC CL8' ',C' ' Temp area with buffer
VCARD DC CL80' ' Input card
VCARDF EQU VCARD+0,1 + Function (E/S/D)
VCARDA EQU VCARD+2,8 + Address to change/display
VCARDV EQU VCARD+11,1 + Character to change
CDIVDD DC X'5',C'DIVDD' Linear Data Set DD pointer
* CTABTRT to verify string only has A thru F and 0 thru 9 (hex chars)
CTABTRT DC (C'A')X'FF',6X'00',(C'0'-C'F'-1)X'FF',10X'00',6X'FF'
* CTABTR & next line convert chars A:F,0:9 -> X'0A0B...0F000102...09'
CTABTR EQU *-C'A'
DC X'0A0B0C0D0E0F',(C'0'-C'F')X'00',X'010203040506070809'
CSIZEMX DC A(4096*1000) Max size allowed for the DIV object
M1 DC Y(M1E-*,0),C' Location '
M1A DC CL8' ',C' contains: '
M1B DC C' '
M1E EQU *
M2 DC Y(M2E-*,0),C' Unknown function (not E/S/D)'
M2E EQU *
M3 DC Y(M3E-*,0),C' Address not 8 hex characters'
M3E EQU *
M4 DC Y(M4E-*,0),C' Address too big to set or display'
M4E EQU *
VSYSIN DCB MACRF=GM,DSORG=PS,RECFM=FB,LRECL=80,DDNAME=SYSIN, *
EODAD=LEOF
VSYSPRT DCB MACRF=PM,DSORG=PS,RECFM=VA,LRECL=133,DDNAME=SYSPRINT
R0 EQU 0 Registers
R1 EQU 1
R2 EQU 2
R3 EQU 3
R4 EQU 4
R5 EQU 5
R6 EQU 6
R7 EQU 7
R8 EQU 8
R9 EQU 9
R10 EQU 10
R11 EQU 11
R12 EQU 12
R13 EQU 13
R14 EQU 14
R15 EQU 15
END ,