Type ASSEMBLE
Source Lines : 731
Fixes Applied : 2
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [HRC002DS]
Module
DMSTMA (TAPEMAC)
Function
READ AN IEHMOVE UNLOADED PDS FROM TAPE AND PLACE IT IN CMS MACLIB(S).
Attributes
DISK RESIDENT
Operation
1. VALIDATE PARAMETERS AND OPTIONS PASSED BY THE USER. IF ALL OK, ISSUE A GETMAIN FOR UP TO 32768 BYTES OF STORAGE. FROM STORAGE OBTAINED, BREAK OFF A 4096 BYTE SECTION FOR MAINTAINING THE MACLIB DICTIONARY. REMAINDER OF THE BUFFER WILL BE SPLIT FURTHER INTO A BUFFER FOR TAPE I/O AND IEHMOVE RECORD RECONSTRUCTION. 2. READ THE TAPE, DISPLAYING ANY 'VOL' AND 'HDR' RECORDS AT THE USER'S TERMINAL, UNTIL A NON-LABEL TYPE RECORD IS FOUND. VERIFY THAT THE TAPE CONTAINS AN UNLOADED PDS CREATED BY IEHMOVE AND RETRIEVE PERTINENT INFO FROM THE DSCB. CONTINUE TO SCAN THE TAPE UNTIL A MEMBER HEADER RECORD IS FOUND. 3. SET UP NECESSARY PARAMETER INFO TO WRITE THE DISK FILE AND WRITE A DUMMY 80 BYTE HEADER RECORD TO THE FILE. 4. MOVE THE MEMBER NAME FROM THE MEMBER HDR RECORD ON TAPE INTO THE CURRENT DICTIONARY ENTRY AND SAVE THE ITEM NUMBER OF THE FIRST DATA RECORD TO BE WRITTEN IN THE DICTIONARY ENTRY. 5. RECONSTRUCT THE NEXT IEHMOVE RECORD IN CORE AND TEST IT'S TYPE. IF IT IS A DATA RECORD, WRITE THE RESULTING 80 BYTE DATA RECORDS TO THE DISK FILE. IF IT IS A MEMBER HEADER RECORD GO TO STEP 3. OTHERWISE, IGNORE THE RECORD AND REPEAT THIS STEP. 6. IF THE NUMBER OF ITEMS (80 BYTE RECORDS) EXCEEDS THE VALUE OF ITEMCT (DEFAULT = 50000), OR THE DICTIONARY BUFFER BECOMES FULL, THE CHARACTER '2' IS APPENDED TO THE FILE NAME (OVERLAYS LAST CHARACTER IF FN=8 CHARACTERS) AND PROCESSING CONTINUES. IF 9 MACLIBS ARE THUSLY FILLED UP, PROCESSING TERMINATES WITH AN ERROR MESSAGE. 7. AFTER DETERMINING THE NEXT NAME TO USE, THE DICTIONARY FOR THE CURRENT LIBRARY IS PREPARED AND WRITTEN AT THE END OF THE FILE AND THE MACLIB HEADER RECORD IS BUILT AND WRITTEN OVER THE DUMMY HEADER RECORD PUT OUT AT THE BEGINNING. A CHECK IS MADE TO SEE IF THIS STEP WAS ENTERED AS A RESULT OF AN EOF ON TAPE. IF SO, PROGRAM EXECUTION RETURNS CONTROL TO THE USER. IF NOT, EXECUTION PROCEEDS STEP 3.
Calls to Other Routines
DMSBWR, DMSFNS, DMSAUD, DMSERS, DMSCWR, DMSERR, DMSTIO