Type ASSEMBLE
Source Lines : 643
Fixes Applied : 2
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [R14498DS]
Operation
READCARD INITIALIZES BLOCK LENGTH AND RECORD SIZE THEN-- IF SPECIAL READ MODE (*): READCARD READS THE FIRST CARD FROM THE CARD READER VIA A CALL TO DMSCIO, IF THE CARD IS NOT A READ CONTROL CARD, READCARD PRINTS AN INFORMATION MESSAGE AND WILL THEN ASSUME A FILEID OF 'READCARD CMSUT1' (THE USER MAY LATER RENAME THE FILE IDENTIFICATION TO WHAT WAS INTENDED.) IF AN ASTERISK WAS SPECIFIED ONLY IN THE FILENAME FIELD, READCARD WILL TAKE THE FILENAME, @VA14498 FILETYPE AND FILEMODE FROM THE READ CONTROL CARD AND @VA14498 PLACE THAT INFORMATION IN THE PARAMETER LIST. IF ASTERISKS WERE PLACED IN THE FILENAME AND FILETYPE FIELDS, AND NO MODE SPECIFIED, THE FILENAME AND FILETYPE FROM THE READ CARD WILL BE PLACED IN THE PARAMETER LIST AND A DEFAULT MODE OF A1 WILL BE PLACED INTO THE PARAMETER LIST. IF '* * FM' WAS SPECIFIED, THE FILENAME AND FILETYPE ARE TAKEN FROM THE READ CARD AND PUT INTO THE PARAMETER LIST AND THE MODE SPECIFIED IS THE DISK UPON WHICH THE FILE WILL BE PLACED. THE CONTROL CARD INFORMATION IS TYPED AT THE CONSOLE VIA A CALL TO CONWRITE. IF '* * MODE', THE MODE IN EFFECT IS TYPED AS PART OF THE CONTROL CARD INFORMATION. IF THE EXISTENCE OF A FILE WITH THE INTENDED IDENTIFICATION HAS BEEN ESTABLISHED, READCARD WILL @VA14498 ERASE THE COPY OF THE OLD FILE ONCE VERIFICATION OF THE INPUT FILE IS OBTAINED. NEXT, IT READS A BLOCK OF CARDS AS DESCRIBED BELOW. IF NEITHER ANOTHER READ CONTROL CARD NOR AN END-OF-FILE IS ENCOUNTERED DURING READING, READCARD CALLS THE DMSBWR FUNCTION PROGRAM TO PLACE THE CARD IMAGES INTO A DISK FILE IT REPEATS THIS PROCEDURE FOR THE NEXT BLOCK OF CARDS IN THE READER. IF ANOTHER READ CONTROL CARD APPEARS IN THE INPUT STREAM, SCAN IS CALLED TO FORMAT IT AND CONWRITE TO TYPE IT AT THE TERMINAL. IT THEN WRITES THE REMAINING IMAGE OF THE PREVIOUS FILE INTO THE DISK FILE, CALLS THE FINIS COMMAND PROGRAM TO CLOSE THAT FILE, AND RETURNS TO PROCESS THE NEW FILE OF CARDS FOLLOWING THE SECOND CONTROL CARD IN THE PRESCRIBED MANNER. READCARD REPEATS THIS PROCEDURE FOR EACH LOGICAL FILE OF CARDS IN THE READER. WHEN AN END-OF-FILE IS ENCOUNTERED DURING THE READING OF CARDS, READCARD PLACES THE REMAINING IMAGES INTO THE LAST DISK FILE, CALLS FINIS TO CLOSE THAT FILE, CALLS CP CLOSE TO CLOSE THE CARD READER OPERATION, AND RETURNS TO THE CALLING PROGRAM, THUS, DURING PROCESSING, READCARD CONVERTS EACH CARD FILE IN THE CARD READER TO A CORRESPONDINGLY NAMED DISK FILE. NO SPECIAL READ MODE. READCARD CALLS THE ERASE COMMAND PROGRAM TO ERASE THE IDENTICALLY NAMED FILE(IF ONE EXISTS AND IF THERE ARE CARDS TO BE READ). NEXT,IT READS A BLOCK OF CARDS,. IT THEN CALLS THE DMSBWR FUNCTION PROGRAM TO WRITE THE IMAGES INTO A DISK FILE. READCARD REPEATS THIS PROCEDURE FOR EACH BLOCK OF CARDS UNTIL AN END-OF-FILE OCCURS. AT THIS TIME, IT WRITES THE REMAINING IMAGES INTO THE DISK FILE, CLOSES THAT FILE (VIA DMSFNS),CLOSES THE CARD READER (VIA CP CLOSE ROUTINE), AND RETURNS TO THE CALLING PROGRAM. THUS, IF THE SPECIAL READ MODE IS NOT SELECTED, READCARD CREATES A SINGLE FILE FROM THE CARDS IN THE READER. IN EITHER CASE, (SPECIAL READ MODE(*) OR NOT), READCARD WILL READ THE FIRST DATA RECORD AND COMPARE ITS RECORD LENGTH AGAINST THE SPECIFIED LENGTH. IF IT GETS AN INCORRECT LENGTH, IT CHECKS TO SEE IF AN ERROR HAS BEEN ENCOUNTERED AND BRANCHES OUT WITH THE APPROPRIATE ERROR CODE. IF THERE IS NO ERROR AND IT IS THE FIRST CARD, IT ASSUMES THE FILE RECORD LENGTH TO BE EQUAL TO THE LENGTH OF THE FIRST RECORD READ AND CONTINUES TO READ AND WRITE AS DESCRIBED IN THE READ MODE DESCRIPTIONS DEPENDING ON WHICH WAS SPECIFIED. (THEREFORE, READCARD WILL NOT READ VARIABLE LENGTH FILES). BEFORE CLOSING THE CARD READER THE RECORD LENGTH IS CHECKED AND IF THE LENGTH IS NOT 80 BYTES THE MESSAGE "RECORD LENGTH = XXX BYTES" IS TYPED. THE FORMAT OF THE CARD EXPECTED BY READCARD IS EITHER THE CMS VER 3.1 "OFFLINE READ..." CONTROL CARD OR THE FOLLOWING FORMAT WHICH IS PRODUCED BY THE PUNCH COMMAND.
Calls to Other Routines
DMSBRD,DMSFNS,DMSERS,DMSSTT,DMSCWR,DMSCIO,DMSCPF, @VA14498 DMSLAD @VA14498 @VA14498