Input Processing Output 8 -:------.,> Read the file. 2 If the file is a LOAD LIB or
TXTLlB, check for the desired
TEXT record. I DI> PACKDISP 1 >
Text Record tiE I 3 Locate the desired position within
the record.
4 If DUMP was specified, go to the PRINT routine.
(See Diagram 10-9 for details.) 5 Perform the VER or REP operation .. If the operation is REP, rewrite
the record. Notes Moduie Label Ref Notes
1 Read the next record of the file. If DMSZAP RDTXT the record.
the file is a module, go to step 3. If the operation is VER, compare each
2 If the file is a TXTLlB, check for the DMSZAP RDTXTLIB byte read with the data in the VER
desired record. If not, repeat step 1. control record. If they do not agree, Otherwise, check for valid characters. RDTXTFN[ issue the message If there are no valid characters (that is, if the area is a Define Storage area), I and the operation is VER or REP, issue
the message DMSZAP248W INVALID VER/REP DMSZAP200W VERIFY REJECT
- SET NO GO SWITCH If another record is required, go to
step 1. Otherwise, control returns to DISP - SET NO GO SWITCH ! caller. If there are no valid characters, but the I operation is DUMP, determine the I length of the gap and handle it as a
TEXT record. If the file is a LOAD LIB, check for the DMSZAP RDLDLIB
desired record. When it is found, check for valid characters as with a TXTLIB
and, if valid, read the next record for
the actual text.
3 Determine the position within the DMSZAP record.
4 If the operation desired is DUMP, go DMSZAP to the PR I NT routine to print out lines. PRTDUMP 5 If the operation is REP, replace each DMSZAP j
byte read with the data supplied in the REP control record. When the
end of the record is reached or the
REP operation is completed, rewrite Diagram 10-8. Reading the Text 204 IBM VM/370 Service Routines prograa Logic
Text Record 8 Module Label WRLlB VERLOOP VERIFY1 RDTXEND I , i I I I ! Ref I I I I I I !
Output
TEXT record ,------. If the start of the record does not
follow the end of the previous
record, put out blanks for the
missing characters. I II; » () I II > 1_ 2 If 'ALL' was specified and this is the first line, put out the CSECT I <f name. I PRTBUF
3 Set up the print line. I I L----I _---'I I :> TEXT record i CSECTNAM I II I I I II I I HOLDLINE 4 Output the print line. I I I Notes
1 If the start of a new record does not
match the end of the previous record,
or the requested start of the dump is
not found, insert blanks in the output I I record to represent the bytes not in the
tile. If 'ALL' was specified and this is the
first line of the CSECT, output the CSECTname. 3 If a line has been started, finish the
line. If not, set up the new line. Determine the address of the new line,
check that the line does not exceed
the requested end of the dump, and
move characters from the record into
the line. If the line does exceed the
requested end of the dump or the
record is exhausted, fill the output
line as much as possible, convert its
characters for printing, and save the
pointers. Return control to caller.
4 When the line is ready for printing,
convert the non-printing characters to
periods, and compare the line to the
previous :;ne. If there is a match, save the address of the current line. If there is no match. and addresses
have been saved, print the message
LINES xxx TO xxx SAME AS ABOVE. Otherwise, print the line and save it
in HOLDINE. Module Label DMSZAP PRTDUMP
SETBLANK DMSZAP INEWLIN PRTHDR DMSZAP FINLINE NOFSTLN SETADD
SETHXLN
SETHXLNA CHARCONV PRTRDNXT DMSZAP CHARCONV PRTLINE
CHKDUP NOTDUP PRTLlN2
Diagram 10-9. Printing the Dump
Ref Notes I I I I Iii < I II trlD I HOLDLINE Module Label I I I I I I I Ref
Chapter 10. The ZAP Service Program 205
Previous Page Next Page