Table of Contents

DMKTCS Abstract

Statistics

Type ASSEMBLE
Source Lines : 1,123
Fixes Applied : 10
Most Recent Version : Thursday, December 14, 1978
Last Fix ID : [HRC106DK]

Synopsis

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