I Input I i,a_in
g
I :> LJr==:' g CDBUF ESDADD ESDLEN CDBUF I Process the VER (or VERIFY) or REP control record.
A. Check for validity of the record.
B. Retrieve the displacement and
data and check validity. C. Read the file and perform the
requested operation.
(See Diagram 10-8 for details.)
2 Process the END control record.
A. Issue ending message.
B. Close input file. C. Return to eMS. Notes Module Label Ref Notes
1 and return control to READINP A. If a NAME control record has not DMSZAP GOODTHRE
to read another control record.
been enetered or was invalid, issue
the message INVEREP Convert the data to hexadecimal
and add the BASE value to the DMSZAP190W INVALID CON- I I TROL RECORD OR NO GO SWITCH SET and return control to READ!NP to
read another control record. Ignore
all VER or REP control records displacement. Check that the dis-
placement plus the data length
will fit within the CSECT. If not,
issue the message DMSZAP191W PATCH OVER- LAPS - SET NO GO SWITCH until the next NAME control record and return control to READINP. is encountered. If this is a REP control record and INVEREP2 C. Go to the RDTXT routine to per-
form the operation, then return
the NO GO swtich is on, issue the control to READINP. message DMSZAP193W PRECEDING 2 CONTROL RECORD FLUSH- ED
A. Issue the message
and return control to READINP to
read another control record. DMSZAP7501 ZAP PROCESSING COMPLETE B. Check the displacement for validity DMSZAP GOOK and convert into hexadecimal digits. SCANKEY1 B. Close the INPUT file, if it is open,
and free buffer space. DECODE1 PACKVAL Retrieve the data field, remove com- DMSZAP SCANKEY1 C. Return to CMS. mas from the field, and check that
the data are an even number of bytes. CKCOMMA2 If not, issue the message DMSZAP192W ERROR - ODD CKC0MMA3
NUMBER OF DIGITS - SET INVEREP2 NO GO SWITCH Module DMSZAP I I DMSZAP DMSZAP DMSZAP DMSZAP Diagra. 10-5. VER/VERIFY or REP and END Control Record processing Label Ref
EQLNTH PACKDAT I'NVEREP21 I GOVER RDTXT COMEND INVEREP4 CLOSEINP CLRSPCE NOMORE Chapter 10. The ZIP Service proqraa 201
Input Processing Output
1 Close the library or module, if
open. G 2 Locate the library or module and :> check the attributes. <:1 3 Find the member (if library).
4 Find the CSECT (if module).
MEMNAME
L1BNAMEl
libnamel
libname2 Iibname3 -
Notes Module Label Ref Notes Module Label Ref
1 Close input module and library files, if DMSZAP PREOPLIB DMSZAPOO2E FI LE 'fn ft' NOT open. FOUND CLOSELIB and terminate processing. NOMORE 2 If MODU LE was specified, locate the DMSZAP STFDEF module name and search for the mod· ule. If the module is found, check the
attributes and if they are valid, go to Step 4. Otherwise, issue one of these
error messages: DMSZAP210E FILE 'fn ft' IS ON A L1BRO READ/ONL Y DISK 3 When a library is found, read the first DMSZAP OPENFILE record. If the header record or the
pointer to the directory is invalid, issue PREOPLB4
the message DMSZAP056E FILE 'fn ft' CON- INVFORM TAINS INVALID RECORD FORMATS DMSZAP208E FILE 'fn ft' IS NOT L1BNTV Otherwise, locate the directory record READLIB VARIABLE RECORD FORMAT and search for the member name. If the If the module cannot be found, issue PREOPLB3
file is a CMS-only (not OS) TXTLIB iCHKMEM file and the member name cannot be
the message found, search for the CSECT name. If iCHKCSECT DMSZAPOO2W FILE 'fn ft' NOT PREOPLB5
FOUND INVEREP2 and read another control record. Ig· a member name or CSECT name is
found, go to the READCESD routine
to find a CSECT record.
nore all control records until the next
NAME, DUMP, or END control record.
4 If the file is a MODULE, compute the DMSZAP CHKLDTBL
length of the module and its starting If LOADLIB or TXTLIB was specified, STFDEF locate the first library name and search
for the member. If the member is
found, check the attributes and if they
are invalid, issue one of these messages: DMSZAP210E FILE 'fn ft' IS ON A L1BRO READ/ONL Y DISK and ending addresses. Determine if a NOTABLE
map is present and, if not, that no INVEREP2 CSECT name was specified, then exit. If a CSECT name was specified, issue
the message CHKLOCST DMSZAP246W NO LOADER TABLE PRESENT FOR MOD- ULE 'fn' SET NOGO SWITCH DMSZAP208E FI LE 'fn ft' IS NOT L1BNTV VARIABLE RECORD FORMAT then exit. If a module map is present,
locate the map record and read it. If DMSZAPOO7E FILE 'fn ft' IS NOT FILENTF the map record cannot be found, issue FIXED, 80 CHAR. RECORDS the message
Otherwise, go to Step 3 after issuing MEMFND
the message DMSZAP056E FI LE 'fn ft' CON· INVFORM TAINS INVALID RECORD FORMATS DMSZAP751I MEMBER FOUND IN L1BRARY'fn' Otherwise, locate the CSECT specified LDRLOOP or the first CSECT in the map, and If the library cannot be found, issue the PREOPLB3 determine its length, and return control
message to caller. If the CSECT specified cannot FNDCLNTH DMSZAPOO2W FI LE 'fn ft' NOT INVEREP2 be found, issue the message INVEREP2 FOUND DMSZAP194W CSECT NOT FOUND and locate the next library name and L1BNTFDl IN 'fn ft' - SET NO GO SWITCH execute Step 2 again. If none of the and read another control record.
libraries specified can be found, issue
the message
Diagram 10-6. opening the File 202 VM/370 Service Routines Program Logic
Previous Page Next Page