Type ASSEMBLE
Source Lines : 1,123
Fixes Applied : 10
Most Recent Version : Thursday, December 14, 1978
Last Fix ID : [HRC106DK]
Module
DMKTCS
Function
TO SET UP A 3800 PRINTER PRIOR TO ACTUALLY PRINTING A SPOOL FILE ON IT. SETUP INCLUDES LOADING THE FCB, TRANSLATE TABLE, GRAPHIC CHARACTER MODIFICATIONS, FORMS OVERLAY SEQUENCE CONTROL, WRITABLE CHARACTER GENERATION MODULES,COPY MODIFICATION, AND COPY NUMBER OF 1.
Attributes
REENTRANT, PAGEABLE, CALLED VIA SVC
Operation
1. DMKTCSET CALL DMKFREE TO OBTAIN A WORKAREA FOR HOLDING THE INFORMATION WHICH WILL BE REQUIRED FOR THE 3800 SETUP. CALL DMKPGTVG, DMKRPAGT TO GET THE FIRST DASD BUFFER. TRANSFER ALL INFORMATION REQUIRED INTO THE WORKAREA AND RELEASE THE PAGE JUST OBTAINED. THEN GO TO STEP 4. IF ENTERED FROM DMKTCSCO, UPDATE THE SFBCOPY AND SFBSTCPY FIELDS AND GO TO STEP 8. 2. DMKTCSSP OBTAIN A WORKAREA VIA DMKFREE AND INITIALIZE IT FOR THE SEPARATOR PAGE WITH INFORMATION IN THE 3800 PRINTER RDEVBLOK AND OTHER DEFAULT INFORMATION. THEN, CONTINUE WITH STEP 4. 3. DMKTCSCO INDICATE THIS ENTRY AND GO TO STEP 1. 4. IF ENTRY WAS VIA DMKTCSET AND IF THE CHARS REQUESTED IS THE SAME AS THAT ALREADY LOADED AS INDICATED IN THE RSPXCHR FIELD, THEN THERE IS NO NEED TO RELOAD THE NEW CHARACTER ARRANGEMENT TABLE. OTHERWISE, CALL INTERNAL SUBROUTINE MEMLOAD TO LOAD THE REQUESTED CHARACTER ARRANGEMENT TABLE INTO THE LOCKED BUFFER. SET UP TO LOAD THE REQUIRED WCGMS INTO EMPTY POSITIONS. IF A WCGM IS ALREADY LOADED AND UNMODIFIED, THERE IS NO NEED TO LOAD IT AGAIN. ALTER THE TRANSLATE TABLE IN STORAGE TO REFLECT CHANGED POSITIONS OF THE THE WCGMS AND ISSUE THE FOLLOWING CCWS TO THE 3800 PRINTER: LOAD WCGM, SELECT TRANSLATE TABLE 0, LOAD TRANSLATE TABLE, DUMMY SENSE. IF A LOAD CHECK OCCURS DUE TO INVALID LOAD DATA, ISSUE ERROR MESSAGE DMKTCS241E TO BOTH THE OWNER OF THE FILE AND THE OPERATOR AND RETURN WITH IOBFATAL SET. IF SUCCESSFUL, UPDATE THE CURRENT CONTENTS OF THE WCGMS. 5. IF ANY GRAPHIC MODIFICATIONS WERE INDICATED, INVALIDATE THE RDEVCRWC FIELDS USED BY THIS TABLE AND CALL MEMLOAD TO LOAD EACH GRAPHIC MODIFICATION AND ISSUE A LOAD GRAPHIC MODIFICATION TO THE 3800 FOR EACH ONE. LOAD CHECKS CAUSE DMKTCS241E TO BE ISSUED AND RETURN WITH IOBFATAL SET. 6. IF NO COPY MODIFICATION WAS SPECIFIED, SET UP A NULL COPY MODIFICATION AND LOAD IT VIA THE 'LOAD COPY MODIFICATION' CCW. ELSE CALL MEMLOAD TO LOAD IT IN AND THEN LOAD IT INTO THE 3800 VIA THE 'LOAD COPY MODIFICATION' CCW. LOAD CHECKS CAUSE DMKTCS241E TO BE ISSUED AND RETURN MADE TO THE CALLER WITH IOBFATAL SET. IF THE COPY MODIFICATION TO BE LOADED IS THE SAME AS THAT ALREADY IN (RSPXCMOD), NO NEED TO LOAD IT IN AGAIN. 7. IF THE FCB IS THE SAME AS THAT ALREADY LOADED (RSPXFCB), THERE IS NO NEED TO RELOAD IT. IF NOT, AND IT IS NOT 6, 8, OR 12, CALL MEMLOAD TO LOAD IT AND THEN ISSUE A 'LOAD FCB' CCW TO GET IT INTO THE 3800. ANY ERRORS CAUSE DMKTCS241E TO BE ISSUED, EXCEPT FOR AN FCB-FORMS MISMATCH WHICH CAUSES DMKTCS240E TO BE ISSUED. IF THE FCB IS 6, 8, OR 12, THEN, USING THE CURRENT PAGE LENGTH (RDEVCURP), CONSTRUCT AN FCB. IF THIS RESULTS IN A FCB-FORMS MISMATCH, TRY WITH DIFFERENT PAGE LENGTHS UNTIL SUCCESSFUL. STORE THE NEWLY DISCOVERED PAGE LENGTH IN RDEVCURP. 8. ISSUE THE 'LOAD COPY NUMBER' CCW FOR COPY MODIFICATION CONTROL INFORMATION, AND THE 'LOAD FORMS OVERLAY SEQUENCE CONTROL' CCW TO CONTROL THE FLASHING STATUS AND NUMBER OF COPIES TO BE PRINTED FOR THE 3800. 9. IF ENTERED VIA DMKTCSCO AND THERE ARE MORE COPIES TO BE PRINTED, ISSUE THE 'END OF TRANSMISSION' CCW. IF NO MORE COPIES REMAIN, ISSUE THE 'MARK FORMS' CCW. ALSO, UPDATE SFBCOPY AND SFBSTCPY. 10. RETURN TO CALLER
Calls to Other Routines
DMKIOSQR - TO ISSUE START I/O TO REAL 3800 DMKPGTVG - GET PAGE OF SYSTEM VIRTUAL STORAGE DMKPGTVR - RELEASE PAGE OF SYSTEM VIRTUAL STORAGE DMKRPAGT - READ IN PAGE OF 3800 IMAGE LIBRARY DMKFREE - OBTAIN FREE STORAGE FOR CCWS DMKFRET - RETURN FREE STORAGE TO THE POOL DMKSCNVS - FIND RDEVBLOK FOR IMAGE LIBRARY DASD VOL DMKERMSG - ISSUE ERROR MESSAGES DMKSCNAU - SEE IF USER IS LOGGED ON DMKCVTBH - CONVERT STUFF FOR MESSAGES DMKSCNRD - GET DEVICE ADDRESS IN PRINTABLE CUU FORM