~LOAO L-SVAMSG
LOAD 1 PHASE IN THE SHARED VIRTUAL AREA (SVA)
LOAD 1 PHASE IN THE SHARED VIRTUAL AREA (SVA).
SVAMSG
GENERATE SDL AND SVA MESSAGES
GENERATE MESSAGES FOR ERROR SITUATIONS DETECTED DURING SDL UPDATE OR SVA BUILD PROCESS.
INPUT: SDL ENTRIES WITH FLAGS IN SWITCH BYTE.
SWITCH 'SWSVAFUL' AND SAVED NAME IN 'ARGUMENT' OUTPUT: MESSAGES ON SYSLOG OR SYSLST.
GENMSG
GENERAJ:E MESSAGES
'*,
G:ENERATE THESE MESSAGES WHICH COULD NOT BE DISPLAYED BECAUSE FETCH WAS NOT POSSIBLE.
OUTPUT:
MESSAGE BITS IN 'TABIN'.
MSGCOUNT.
MESSAGESQN SYSLOG OR SYSLST.
Fl)NCTION: SCAN 'TAB 11'11 , AND GENERATE MESSAGES.
Chart 55. $MAINDIR (Part, 8 of 10)
DELET
MSG
FUNCTION:
NOTE 1:
NOTE 2:
NOTE
3:
HONOUR DELETE REQUESTBY SKIPPING INPUT DIRECTORY ENTRY AND UPDATE LIBRARY DESCRIPTOR ACCORDINGLY. ISSUE DIAGNOSTIC MESSAGE IF THE APPLICABLE ENTRY IS NOT PRESENT IN INPUT.
FOR A DELETE 'PROG,.ALL' REQUEST MORE THAN ONE ENTRY MAY BE SKIPPED. ,
' '
IF AN ENTRY IN THE SYSTEM DIRECTORY LIST EXISTS FOR THIS PHASE IT IS CLEARED TO BINARY ZEROES. ONLY THE NAME REMAINS THERE, THE NOT FOUND BIT IS TURNED ON, AND THE STOWTYPE IS SAVED.
IF A RAS TRANSIENT IS DELETED (PHASENAMES IN RANGE $$RASTOO - $$RAST99), THE DISK ADDRESS IN THE RAS LOAD LIST IN THE SUPERVisOR IS MADE INVALID.
DISPLAY 'MSGAREA' ON SYSLST IF ASSIGNED, OTHERWISE ON SYSLOG.
LOOKUP
SCAN DI,RECTORYTO
f!r{q;~ f~~~ENAME,
1.
RE~'Qif'~~:~"T;:'O:IRt:HO~Y'BLOCK
wrrH KEY HIGHER THAN OR EQUAL TO 'ARGUMENT'.2. CHE'CICIF tHE PHASENAME IN 'ARGUMENT' EXISTS IN THE CORE IMAGE DIRECTORY.
'FOUND' IN 'SWITCHES' IS SET TO 'YES' OR 'NO'. ' 3. 'DIRPTR' WILL POINT TO THE DIRECTORY ENTRY WHERE THE SCAN STOPPEO;
EXTR
BUILD ARRAY 'TABIN', CONTAINING PHASENAMES, TYPECODES AND POINTERS TO STOWTABLE ENTRIES.
INPUT: STOWTABLE
LAYOUTOF TABIN: ENTRIES CONSISTING OF
8
BYTES PHASENAMELOCATION OF TABIN:
1 BYTE TYPE CODE
3 BYTES POINTER TO ORIGINAL ENTRY
2 BYTES INFORMATION WHICH MESSAGES SHOULD BE DISPLAYED ENTRIES SORTED ON PHASENAME.
THE AREA POINTED TO BY TABREG AS INITIALIZED BY JHEGETMAIN PROGRAMMER MACRO EXPANSION.
SPECIAL CASE: IN ARRAY 'TAB IN' TWO ENTRIES ARE CREATED FOR A 'RENAME' TYPE 'STOWTAB' ENTRY.
1. 'RENAME' WITH THE OLD NAME 2. 'SPECIAL' WITH THE NEW NAME
BOTH,POIN,tINGTO THE SAME 'STOWTAB' ENTRY.
NOTES ABOUT 'RENAME' AND 'SPECIAL' PROCESSING:
BEFORE THESE 2 ENTRIES,ARE CREATED,,2 CHECKS ARE MADE:
> 1. 'OLDNAME' MUST BE IN THE DIRECTORY, aTHERWISE A DIAGNOSTIC,lVIESSAG~,
WILL BE GIVEN: PHASE 'aLDNAME' NOT IN LIBRARY, AND tHE RENAME REQUEST IS NaT PRaCESSED.
2. 'NEWNAME' MUST NOT BEIN THE DIRECTORY:9THERWISEA DIAGNOSTIC MESSAGE WILL BE GIVEN: PHASE 'NEWNAME'ALREADY "r(LlBRARY, AND tHE RENAME REQUESTWI LL NaT BE PRaCESSED. "" " ' " , ' "
niE INFaR FRaM THE 'OL'DNAME' DIRECTORY ENTRY IS SAVED IN THE STaWTABLE ENTRY, WHICH HAS ALWAYS THE MAXIMUM SIZE (30 BYTES).
98
DOS/VS L~brarianChart 56. $l".AINDIR (Part 9 of
10)SORT
SORT ARRAY 'rABIN' ON PHASENAME.
METHOD: SHELLSORT.
INPUT: THE NUMBER OF ELEMENTS IN THE ARRAY IS FOUND IN THE STOWTABLE HEADER FIELD 'NROFENTR'.
GETENTRY
1. PROVIDE AN ADDRESS IN 'INPTR' OF AN INPUT DIRECTORY ENTRY.
2. IF SWFIRST='YES' THEN INITIALIZE DIRECTORY INPUT.
PUTENTRY
1. WHEN CALLED THE FIRST TIME:
SET UP DIRECTORY OUTPUT CCB AND CCW'S, INITIALIZE POINTERS TO CCW STRING AND OUTPUT BUFFER, SET UP DATA FIELD WITH BINARY ZEROES AND A BYTE COUNT OF 2, CALCULATE RELATIVE BLOCKNUMBER-l OF FIRST DIRECTORY BLOCK READ AND INSERT IT INTO SAVED LIBRARY DESCRIPTOR ENTRY (FIELD 'DESDU'), MAKE FIELD 'DESDA' (#OF BLOCKS AVAILABLE) CONSISTENT WITH 'DESDU' BY INSERTING THE DIFFERENCE BETWEEN TOTAL #OF BLOCKS AND 'DESDU', INITIALIZE OUTPUT DISK ADDRESS WITHADDRESS OF
FI RST INPUT BLOCK. .
2. FOR NORMAL CALLS:
GETINP
IF PAST END OF BUFFER THEN WRITE THE BLOCK WITH A WRITE KEY AND DATA COMMAND, CHAINED TO A READ COUNT MULTIPLE TRACK, BUMP 'DESDU' BY 1 AND 'OESDA' BY -I, SET UP DATA FIELD WITH BINARY ZEROES AND A BYTE COUNT OF 2_ RESET 'OUTPTR' TO START OF BLOCK. UPDATA SLD IF APPLICABLE.
DEPENDING ON SWITCH 'SWINPTR' MOVE CURRENT INPUT ENTRY OR CURRENT STOWTABLE ENTRY TO OUTPUT BUFFER, MOVE PHASENAME TO 'KEYOUT' AND BUMP BYTECOUNT BY LENGTH OF OUTPUT ENTRY. INCREASE 'OUTPTR' WITH LENGTH OF CURRENT DI RECTORY ENTRY.
FOR THE LAST ( END) DIRECTORY ENTRY: WRITE OUT THE BLOCK WITH THE END ENTRY AND FILL REST OF TRACK WITH EMPTY BLOCKS, ALL HAVING A KEY OF 16 X'F'.
.'
1. ONLY THE FIRST TIME: BUILD CCW STRING TO FILL ALL INPUT BUFFERS.
2. INITIALIZE CCB AND FILL ALL EMPTY BUFFERS.
PUTOUTP
1_ WRITE ONE OUTPUT BLOCK (KEY AND DATA).
2. FOR LAST BLOCK OF TRACK: UPDATE SECOND LEVEL DIRECTORY.
CLOSE
WRITE UPDATED LIBRARY DESCRIPTOR 1. READ FIRST DIRECTORY BLOCK AGAIN.
2_ REPLACE OLD LIBRARY DESCRIPTOR ENTRY BY NEW VERSION_
3_ RE-WRITE FI RST DI RECTORY BLOCK.
Chart
57.
$MAINDIR (Part10 of 10)
RASCONV1
CONVERT THE 2·BYTE FIELD 'RASARG1' FROM CHARACTER FORMAT TO BINARY FORMAT AND ADD 1 TO MAKE IT USABLE AS INDEX INTO THE RAS LOAD LIST IN THE SUPERVISOR.
RASCONV2
0010
CONVERT TTR TO PRE·RELEASE 29 'CHR' FORMAT.
INPUT AND OUTPUT IN FIELD 'RASARG2'.
THE 'R' PART OF THE FIELD IS NOT TOUCHED.
INPUT: REGISTER 1 POINTS TO A CCB, FOR WHICH I/O SHOULD BE PERFORMED.
FUNCTION: DO READ OR WRITE INCLUDING ALL CHECKS.
FOR CONDENSE OR REALLOCATION THE SEARCH ARGUMENT HAS TO BE ALWAYS PRESENT. THEREFORE A RETRY ON NO RECORD FOUND WILL BE DONE. AFTER 10 TIMES OF RETRY AN ERROR WILL INDICATED BY A RETURN CODE OF 16.
KEEPDIST
KEEP DISTANCE
WHEN LARGE NUMBERS OF PHASES ARE CATALOGED IT WILL BE NECESSARY SOMETIMES TO WRITE A DIRECTORY BLOCK BEFORE IT HAS BEEN READ. AS THIS WOULD CAUSE PART OF THE 01 RECTORY TO BE DUPLICATED, AND ANOTHER PART TO BE SKIPPED, PRECAUTIONS MUST BE TAKEN.
1. SHIFT THE CURRENT INPUT BUFFER AND ALL BUFFERS FOLLOWING OVER ALL INPUT BUFFERS WHICH HAVE BEEN PROCESSED ALREADY.
2. FILL INPUT BUFFERS FREED THIS WAY WITt'! NEW DIRECTORY INFO.
LJPDSLD
UPDATE SECOND LEVEL DIRECTORY
1. INSERT KEY OF LAST DIRECTORY BLOCK ON A TRACK IN THE APPLICABLE SECOND LEVEL DIRECTORY ENTRY.
2. INSERT 16 X'F' IN LAST SLD ENTRY.
3. ISSUE WARNING MESSAGE 3M911 IF MORE DIRECTORY TRACKS ARE USED THAN SLD ENTRIES EXIST.
MSG911
PREPARE WARNING MESSAGE 3M91 I ONLY ONCE PER JOBSTEP.
100
DOS/VS .LibrarianChart 58. $ftAINDIP (Part 1 of 12)
$MAINDIF Overview:
MAINFLOW $MAINDIF STRUCTURE OVERVIEW
1 - - - -
INITIALZL--INITMAIN