DIS 
          IDENT  DIS,DIS
          PERIPH
          BASE   MIXED
          SST    CMEI,HDC,RDS 
 QUAL$    EQU    1           DEFINE UNQUALIFIED COMMON DECKS
          SYSCOM
*COMMENT  DIS - JOB DISPLAY.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          TITLE  DIS - JOB DISPLAY. 
          SPACE  4
***       DIS - JOB DISPLAY.
* 
*         D. A. CAHLANDER.   70/02/24.
*         E. W. HOBBS.       70/06/05.
*         R. S. HORECK.      70/12/19.
*         G. R. MANSFIELD.   70/12/20.
          SPACE  4
***              DIS PROVIDES A CONVIENENT MEANS TO ALTER THE 
*         RUNNING OF A JOB, OR IF CALLED TO A BLANK CONTROL POINT 
*         INITIATE THE OPERATION OF UTILITY PROGRAMS. 
* 
*         DIS PROVIDES AN INTERPRETED DISPLAY OF THE EXCHANGE 
*         AREA FOR THE JOB, AS WELL AS THE STATUS OF THE JOB. 
*         KEYBOARD ENTRIES ARE PROVIDED TO ALLOW THE USER TO
*         ALTER CENTRAL MEMORY IN SEVERAL FORMATS, AND TO EXECUTE 
*         COMMANDS AS IF THEY HAD ENTERED THE SYSTEM WITH 
*         AN INPUT FILE.
          SPACE  4
***       CALL. 
* 
* 
*T        18/ *DIS*, 1/ 0, 5/ CP, 24/ 0, 1/ D, 11/ EQ 
*         D      DIRECT CALL TO CONTROL POINT 
*         CP     CONTROL POINT NUMBER 
*         EQ     DISPLAY CONSOLE EST ORDINAL
          SPACE  4
***       OPERATOR MESSAGES.
* 
* 
*         *REQUEST DISPLAY.  (DIS)* = DIS IS WAITING FOR THE DISPLAY
*         TO BE ASSIGNED. 
          SPACE  4
**        PROGRAMS CALLED.
* 
* 
*         1AJ - ADVANCE JOB STATUS. 
*         1DL - DISPLAY OVERLAY LOADER. 
*         DDF - DISPLAY DISK FILE.
*         O26 - KEYPUNCH SIMULATOR. 
          SPACE  4
*CALL     COMPMAC 
*CALL     COMDMAC 
*CALL     COMSCPS 
*CALL     COMSDST 
*CALL     COMSEJT 
*CALL     COMSEVT 
*CALL     COMSLFD 
*CALL     COMSPRD 
*CALL     COMSMLS 
*CALL     COMSPIM 
*CALL     COMSSSD 
          SPACE  4
****      DIRECT LOCATION ASSIGNMENTS.
  
  
 EB       EQU    16 - 17     EXTENDED MEMORY BUFFER POINTER 
 FA       EQU    20          RELATIVE FNT ADDRESS IN NFL
 NL       EQU    21          NEGATIVE FIELD LENGTH
 AB       EQU    22 - 26     ASSEMBLY BUFFER (5 LOCATIONS)
 UE       EQU    27          USER EM SHIFT COUNT
 LS       EQU    30          LEFT SCREEN DISPLAY
 RS       EQU    31          RIGHT SCREEN DISPLAY 
 LN       EQU    32          CURRENT LEFT SCREEN DISPLAY
 NC       EQU    33          NUMBER OF CONTROL POINTS (FOR *COMDSYS*) 
 AI       EQU    34          LEFT SCREEN ADVANCE INDEX
 BF       EQU    35          BREAKPOINT ACTIVE FLAG 
 BA       EQU    36 - 37     BREAKPOINT ADDRESS (2 LOCATIONS) 
 KI       EQU    40          KEYBOARD INDEX 
 KE       EQU    41          KEYBOARD ENTRY 
 KM       EQU    42          KEYBOARD MESSAGE ADDRESS 
 CA       EQU    43          CHARACTER ADDRESS
 UC       EQU    44          UPPER CASE FLAG
 T8       EQU    46          TEMPORARY STORAGE
 T9       EQU    47          TEMPORARY STORAGE
 CC       EQU    57          CYCLE COUNT
 SM       EQU    60          SECURITY MODE
 SF       EQU    SM 
 PC       EQU    61          BASE OF PP COMMUNICATION AREA
 PN       EQU    62          NUMBER OF PPU-S
 KR       EQU    63          KEYBOARD LINE REFRESH CONTROL
 XC       EQU    66          X-COORDINATE 
 YC       EQU    67          Y-COORDINATE 
****
          SPACE  4
*         ASSEMBLY CONSTANTS. 
  
  
 CH       EQU    CHDS        DISPLAY CHANNEL
 WCDC     EQU    4           WAITING FOR CM DELAY COUNT 
 WDDC     EQU    4           WAITING FOR DISK DELAY COUNT 
 WEDC     EQU    4           WAITING FOR EM DELAY COUNT 
          SPACE  4,10 
*         OVERLAY CONTROL.
  
  
 NAME     MICRO  1,, DIS
 OVNG     MICRO  1,, IH      OVERLAY NUMBER GENERATOR 
 OVNB     MICRO  1,1, "OVNG" OVERLAY NAME BIAS MICRO
 OVNB     EQU    1R"OVNB"    OVERLAY NAME BIAS
          NOREF  .L,.N
 .N       SET    0           OVERLAY NUMBER 
 .N       OCTMIC .N,2 
 .L       SET    *
          TITLE  MACRO DEFINITIONS. 
 COMMAND  SPACE  4
**        COMMAND - GENERATE COMMAND OVERLAY. 
* 
* 
*         COMMAND (SUBTITLE)
*         ENTRY  *SUBTITLE* = COMMAND SUBTITLE. 
  
  
 COMMAND  MACRO  TEXT 
          QUAL
 .M       OVLN   .N 
          QUAL   DIS".M"
          TTL    DIS/9".M" - TEXT 
          TITLE 
          BSS    0
          HERE
          QUAL
          USE    END         FORCE /LITERALS*/
 .1       SET    *
 .N       SET    .N+1 
 .N       MICRO  1,, ".M" 
          QUAL   DIS".N"
          IDENT  9".N",OVL   TEXT 
          ORG    OVL
*COMMENT  DIS - TEXT
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          QUAL
 .L       MAX    .1,.L
          QUAL   *
          ENDM
 DISPLAY  SPACE  4
**        DISPLAY - GENERATE DISPLAY OVERLAY. 
* 
* 
*         DISPLAY (SUBTITLE)
*         ENTRY  *SUBTITLE* = DISPLAY SUBTITLE. 
  
  
 DISPLAY  MACRO  TEXT 
          QUAL
 .M       OVLN   .N 
          QUAL   DIS".M"
          TTL    DIS/9".M" - TEXT 
          TITLE 
          BSS    0
          HERE
 DIS      HERE
          QUAL
          USE    END         FORCE /LITERALS*/
 .1       SET    *
 .N       SET    .N+1 
 .N       MICRO  1,, ".M" 
          QUAL   DIS".N"
          IDENT  9".N",OVD   TEXT 
          ORG    OVD
*COMMENT  DIS - TEXT
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          QUAL
 .L       MAX    .1,.L
          QUAL   *
          ENDM
 ENTER    SPACE  4
**        ENTER - ENTER SPECIAL SYNTAX. 
* 
* 
*ADDR     ENTER  (SYNTAX) 
*         ENTRY  *ADDR* = OVERLAY ENTRY ADDRESS.
*                *SYNTAX* = SYNTAX OF COMMAND.
  
  
          MACRO  ENTER,ADDR,SYNTAX
          CON    ADDR/10000+100*OVNB,ADDR-ADDR/10000*10000
          ORG    *-2
          DATA   Z$SYNTAX$
          VFD    24/ADDR
          ENDM
 ENTRY    SPACE  4
**        ENTRY - DEFINE OVERLAY ENTRY POINT. 
* 
* 
*NAME     ENTRY  ADDR 
*         ENTRY  *NAME* = ENTRY POINT NAME. 
*                *ADDR* = ADDRESS OF ENTRY POINT. 
*                IF *ADDR* IS NOT PRESENT, ADDRESS OF ENTRY 
*                POINT IS THE CURRENT VALUE OF THE ORIGIN COUNTER.
  
  
          PURGMAC ENTRY 
  
          MACRO  ENTRY,NAME,ADDR
          IFC    NE,*ADDR** 
          RMT 
          QUAL
 NAME     EQU    .N*10000B+/DIS".N"/ADDR
          QUAL   *
          RMT 
          ELSE   4
 NAME     BSS    0
          QUAL
 NAME     EQU    .N*10000B+/DIS".N"/NAME
          QUAL   *
          ENDM
 JMP      SPACE  4
**        JMP - THREADED JUMP.
* 
* 
*         JMP    ADDR 
*         ENTRY  *ADDR* = JUMP ADDRESS. 
  
  
 JMP      MACRO  ADDR 
          IF     -DEF,.ADDR,2 
          NOREF  .ADDR
 .ADDR    MAX    ADDR,*-40
          IFGT   .ADDR,*-40 
          UJN    .ADDR
 .ADDR    SET    *-1
          ELSE   2
 .ADDR    SET    *
          LJM    ADDR 
          ENDM
 OVLN     SPACE  4
**        OVLN - GENERATE OVERLAY NUMBER. 
* 
* 
*A        OVLN   B
*         ENTRY  *B* = OVERLAY NUMBER.
*         EXIT   *A* = MICRO OF OVERLAY NAME. 
  
  
          MACRO  OVLN,A,B 
          LOCAL  C
 C        SET    B/1R4
 C        MICRO  C+1,1, "OVNG"
 A        MICRO  B-C*1R4+1,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ01234 
 A        MICRO  1,, "C""A" 
          ENDM
          TITLE  MAIN PROGRAM.
**        DIS - MAIN PROGRAM. 
  
  
          ORG    PPFW 
 DIS      RJM    PRS         PRESET STORAGE 
*         RJM    CJS         (CHECK JOB STATUS) 
 DISD     EQU    *-1
          RJM    DLS         DISPLAY LEFT SCREEN
  
*         PROCESS KEYBOARD IF CDC721 SYSTEM CONSOLE.
  
          DFIM   (CON RJMI) 
          UJN    *+2         SKIP IF CC545
          CON    KBI         PROCESS KEYBOARD INPUT 
  
*         DISPLAY RIGHT SCREEN. 
  
          RJM    SYS         DISPLAY HEADERS
          LDM    DPCA,RS     DISPLAY RIGHT SCREEN 
          STD    T1 
          PAUSE  NE          (R) = CONTROL POINT RA 
          RJM    0,T1 
          CFNC   THCF        COMBINATION OF *THVF* AND *CHSF* 
          DCN    CH+40
          RJM    KBI         KEYBOARD INPUT 
 DIS1     LDD    BA          CHECK BREAKPOINT 
          ADD    BA+1 
          ZJN    DIS3        IF NO BREAKPOINT 
          LDN    STSW 
          ADD    CP 
          CRD    CM          CHECK PP-S ASSIGNED
 DISE     UJN    DIS2        (*BKPA*) 
*         SOD    CM          (*BKP*)
          LPN    37 
          NJN    DIS3        IF OTHER PP-S ASSIGNED 
 DIS2     LDD    CM+2 
          LPN    1
          NJN    DIS3        IF ROLLOUT REQUESTED 
          LDM    KBIA 
          LMC    KBI5 
          NJN    DIS3        IF OVERLAY LOAD IN PROGRESS
          LDC    MBK         MONITOR BREAKPOINT 
          LJM    LOV         LOAD BREAKPOINT OVERLAY
  
 DIS3     AOD    CC          ADVANCE CYCLE COUNT
          RJM    PSS         PAUSE FOR SYSTEM 
          LJM    DIS         LOOP 
 DPP      SPACE  4,10 
**        DPP - DROP PP.
  
  
 DPP      RJM    DDS         DROP DISPLAY 
          RJM    RBW         RESTORE BREAKPOINT WORD
          LDN    10          CLEAR *DIS* FLAG 
          STD    CM+4 
          LDN    CCTS 
          STD    CM+1 
          MONITOR  SJCM 
          MONITOR  DPPM      DROP PP
          LJM    PPR         EXIT TO PP RESIDENT
          SPACE  4,10 
**        GLOBAL VARIABLES. 
  
  
          DFIM   (CON C721)  CODE FOR 721 CONSOLE 
 DCTY     CON    C545        DISPLAY CONSOLE TYPE (0 = *CC545*) 
          DFIM   (CON T721)  FIRST VISIBLE LINE FOR THE 721 
 CTOS     CON    T545        FIRST LINE IN THE BODY OF THE DISPLAY
          DFIM   (CON Y721)  LAST VISIBLE LINE FOR THE 721
 CBOS     CON    Y545        LAST LINE IN THE  BODY OF THE DISPLAY
 MORE     CON    XMOR        X-COORDINATE FOR *MORE* MESSAGE
          DATA   H$MORE$
 MOREL    EQU    *-MORE 
          TITLE  MAIN PROGRAM SUBROUTINES.
 CJS      SPACE  4
**        CJS - CHECK JOB STATUS. 
* 
*         USES   KM, AB - AB+4, CM - CM+4, NL - NL+F, T1 - T6.
* 
*         CALLS  CKB, CRA, IAJ. 
* 
*         MACROS MONITOR. 
  
  
 CJS15    LDN    0           (CPU REQUEST FLAG) 
 CJSC     EQU    *-1
*         LDN    1           (CKR)
          ZJN    CJSX        IF NOT TO REQUEST CPU
          MONITOR RCPM
  
 CJS      SUBR               ENTRY/EXIT 
  
*         MAKE SURE THAT *DIS* FLAG IS SET IN CONTROL POINT AREA. 
  
          LDD    CP          READ CONTROL POINT AREA
          ADN    JCIW 
          CRD    CM 
          LDD    CM+3 
          SHN    21-11
          MJN    CJS0        IF *DIS* FLAG ALREADY SET
          LDN    SCTS        SET JOB CONTROL FLAG(S)
          STD    CM+1 
          LDN    10          SET *DIS* FLAG 
          STD    CM+4 
          MONITOR  SJCM 
 CJS0     LDD    CP          READ STATUS
          ADN    STSW 
          CRD    CM 
          ADN    FLSW-STSW   RESET NFL / 100
          CRD    NL 
          ERRNZ  NL+1-AB     READ DESTROYS DIRECT CELLS 
  
          ADN    RFCW-FLSW   FETCH *TCS* COMMAND REQUEST
          CRD    AB 
          ADN    SEPW-RFCW   READ SPECIAL ENTRY POINT WORD
          CRD    T1 
          ADN    SPCW-SEPW   READ SPECIAL CALL WORD 
          CRD    T2 
          LDD    NL          SET END OF NFL 
          SHN    6
          ADN    1
          STD    NL 
  
*         CHECK ROLLOUT STATUS. 
  
          LDD    CM+2 
          LPN    1
          ZJN    CJS2        IF ROLLOUT NOT REQUESTED 
          LDD    T2 
          ZJN    CJS2        IF DMP= NOT IN PROGRESS
          LDD    CM 
          LPN    37 
          SHN    -1 
 CJS1     NJP    CJSX        IF PP ACTIVITY 
          LDM    IAJB        EJT ORDINAL
          SFA    EJT
          CRD    CM 
          LDD    CM+4 
          LPC    101
          NJP    CJS1        IF ADVANCE OR INTERLOCK SET
          LDD    T2+1        CHECK SPECIAL REQUEST ACTIVE 
          LPN    1S5
          NJN    CJS1        IF NOT SPECIAL REQUEST 
*         LDN    PSNI 
          STM    IAJC 
          UJN    CJS3        CALL *1AJ* 
  
*         CHECK JOB ACTIVITY. 
  
 CJS2     RJM    CAJ         CHECK JOB ACTIVITY 
          NJN    CJS1        IF ACTIVITY
  
*         CHECK IF *TCS* EXECUTE COMMAND REQUEST PENDING. 
  
          LDD    AB+3 
          SCN    77 
          ADD    AB+2 
          ZJN    CJS3.1      IF NO *TCS* COMMAND REQUEST PENDING
          LJM    CJS12       CALL *1AJ* 
  
*         CLEAR  REPRIEVE PROCESSING AFTER SPECIAL ENTRY PROGRAM END. 
  
 CJS2.1   LDN    ZERL        CLEAR REPRIEVE PROCESSING
          CRD    CM 
          LDD    CP 
          ADN    EECW 
          CRD    T1 
          LDD    T1          RESET *NOEXIT* FLAG
          LPC    4000 
          STD    CM 
          LDD    CP 
          ADN    EECW 
          CWD    CM 
 CJS3     LDN    2
          UJN    CJS5        CALL *1AJ* FOR SPECIAL ENTRY JOB 
  
*         CHECK SPECIAL ENTRY CONDITIONS. 
  
 CJS3.1   LDD    T1          CHECK FOR DMP= 
          LPN    20 
          ZJN    CJS4        IF NOT SPECIAL ENTRY JOB 
          RJM    CRA         CHECK SYSTEM REQUEST 
          MJN    CJS6        IF NOT *END* OR *ABT*
          LDD    CM+1 
          ZJN    CJS2.1      IF NO ERROR FLAG SET 
          LDN    ZERL 
          CRD    CM          CLEAR ERROR FLAG 
          MONITOR  CEFM 
 CJS3.2   RJM    CKB         CLEAR KEYBOARD BUFFER
          UJN    CJS10       CLEAR AUTO MODE
  
 CJS4     LDN    0           CHECK IF SPECIAL COMMAND 
 CJSD     EQU    *-1
*         LDN    1           (EXC)
          ZJN    CJS6        IF NOT SPECIAL CALL
          SOM    CJSD 
          LDC    20006       FORCE *1AJ* TO READ COMMAND IN 
 CJS5     LJM    CJS13       MS1W OF CONTROL POINT AREA 
  
*         CHECK FOR NEXT COMMAND. 
  
 CJS6     LDD    KM          CHECK AUTO MODE
          LMC    CJSA 
          NJN    CJS11       IF NOT AUTO MODE 
          LDD    CM+1 
          NJN    CJS3.2      IF ERROR FLAG SET
          LDC    CKR         CHECK KEYBOARD REQUEST 
          LJM    LOV
  
*         GET NEXT COMMAND FROM COMMAND BUFFER. 
  
 CJS7     LDD    CP          READ COMMAND POINTER 
          ADN    CSPW 
          CRD    AB 
          LDD    AB+3        CHECK IF CM PORTION EXHAUSTED
          LMD    AB+4 
          NJN    CJS12       IF BUFFER NOT EMPTY
          LDD    AB+1        CHECK IF EOR ON COMMAND FILE 
          SHN    21-13
          PJN    CJS12       IF NOT EOR 
 CJS10    LDN    0           CLEAR AUTO MODE
          STD    KM 
 CJS11    LDD    CM+1 
          NJN    CJS12       IF ERROR FLAG SET
          LDD    CP 
          ADN    EOJW        READ PROLOGUE/EPILOGUE FLAGS 
          CRD    AB 
          ADN    EECW-EOJW   READ REPRIEVE FLAGS
          CRD    CM 
          LDD    CM 
          SHN    21-12
          MJN    CJS11.1     IF EXTENDED REPRIEVE MODE ACTIVE 
          LDD    CM+1 
          SHN    21-13
          MJN    CJS14       IF ERROR EXIT ACTIVE 
 CJS11.1  LDD    CM+1 
          SHN    21-6 
          MJN    CJS12       IF REPRIEVE ON NORMAL TERMINATION
          LDD    AB+2 
          LPC    700
          ZJN    CJS14       IF NO PROLOGUE OR EPILOGUE ACTIVITY
  
 CJS12    LDC    20000       CALL*1AJ* FOR NORMAL JOBS
 CJS13    RJM    IAJ         ADVANCE JOB
 CJS14    LJM    CJSX        RETURN 
  
 CJSA     DATA   C*AUTO MODE.*
 DKB      SPACE  4
**        DKB - DISPLAY KEYBOARD BUFFER.
* 
*         ENTRY  (KM) = ADDRESS OF KEYBOARD MESSAGE.
*                (KI) = KEYBOARD INDEX. 
* 
*         MACROS CFNC, DFIM.
  
  
 DKB      SUBR               ENTRY/EXIT 
          LDN    XINC        SET CHARACTER SIZE 
          STD    T3 
          LDN    1
          STD    T2 
          CFNC   SLPF        SELECT LEFT SCREEN - PRIORITY OUTPUT 
          DFIM   (UJN DKB1)  BYPASS LARGE CHARACTER CHECK 
          LDD    KI          CHECK KEYBOARD INDEX 
          SBN    40 
          PJN    DKB1        IF > 32 CHARACTERS 
          DCN    CH+40
          CFNC   SLMF        SELECT LEFT SCREEN - MEDIUM CHARACTERS 
          LDN    2*XINC      RESET SIZE 
          STD    T3 
          LDN    2           ADVANCE COUNT
          RAD    T2 
          LDN    LN49-LN50   CHANGE Y-COORDINATE
          RAM    DKBA+1 
 DKB1     LDN    2           OUTPUT COORDINATES 
          OAM    DKBA,CH
          LDD    KM 
          ZJN    DKB3        IF NO MESSAGE
          STD    T1 
 DKB2     LDI    T1          DISPLAY MESSAGE
          ZJN    DKB3        IF END OF MESSAGE
          OAN    CH+40
          AOD    T1 
          UJN    DKB2        DISPLAY NEXT BYTE
  
 DKB3     CFNC   EELF        ERASE TO END OF LINE 
          RJM    DKL         DISPLAY KEYBOARD LINE
          SOD    T2 
          DFIM   (PSN)       INTENSIFICATION NOT TO BE DONE 
          PJN    DKB1        LOOP 
          DCN    CH+40
          LDD    KI          CALCULATE KEYBOARD REFRESH CHECKSUM
          LMD    KM 
          STD    KR 
          LDC    LN50        RESET Y-COORDINATE 
          STM    DKBA+1 
          LJM    DKBX        RETURN 
  
  
 DKBA     CON    CH01,LN50
 DKL      SPACE  4
**        DKL - DISPLAY KEYBOARD LINE.
* 
*         ENTRY  (T3) = CHARACTER SIZE. 
* 
*         USES   T1, XC.
* 
*         MACROS CFNC, DFIM.
* 
*         RESTORES XC.
  
  
 DKL8     CFNC   EELF        ERASE TO END OF LINE 
  
 DKL      SUBR               ENTRY/EXIT 
          LDC    CH01        SET X-COORDINATE 
          STD    XC 
          LDC    LN51        SET Y-COORDINATE 
          STD    YC 
          LDN    2           OUTPUT COORDINATES 
          OAM    XC,CH
*         LDN    0           CLEAR BUFFER INDEX 
          STD    T1 
          LDD    KI 
          ZJN    DKL8        IF BUFFER EMPTY
  
 DKL1     LDM    KBUF,T1     CHECK CHARACTER
          ZJN    DKL2        IF CHARACTER = 00 (COLON IN 64 CHAR SET) 
          SBN    1R$
          ZJN    DKL2        IF CHARACTER = *$* 
          SBN    60-1R$ 
          MJN    DKL3        IF LEGAL CODE
          DFIM   (CFNC DSCF)
          DFIM   (LDM KBUF,T1)
          DFIM   (UJN DKL4)  IF CDC 721 CONSOLE 
 DKL2     LDD    YC          REVISE Y-COORDINATE
          ADD    T3 
          OAN    CH+40
          LDM    KBUF,T1     DISPLAY UPPER DIGIT
          SHN    -3 
          ADN    1R0
          OAN    CH+40
          LDN    2           OUTPUT COORDINATES 
          OAM    XC,CH
          LDM    KBUF,T1     PREPARE LOWER DIGIT
          LPN    7
          SBN    60-1R0 
 DKL3     ADN    60          DISPLAY CHARACTER
 DKL4     OAN    CH+40
          LDD    T3          ADVANCE X-COORDINATE 
          RAD    XC 
          OAN    CH+40
          AOD    T1          ADVANCE BUFFER 
          LMD    KI 
          NJN    DKL1        IF NOT END OF BUFFER 
          LDD    UC          CHECK FOR UPPER CASE 
          DFIM   (ZJN DKL6) 
          ZJN    DKL7        IF NOT UPPER CASE
          DFIM   (UJN DKL5) 
          LDD    YC          OUTPUT Y-COORDINATE
          ADD    T3 
          OAN    CH+40
 DKL5     LDM    KBIC        OUTPUT UPPER CASE CHARACTER
          LPN    77 
 DKL6     OAN    CH+40
 DKL7     LDC    CH01        RESET X-COORDINATE 
          STD    XC 
          LJM    DKL8        ERASE TO END OF LINE 
 DLS      SPACE  4
**        DLS - DISPLAY LEFT SCREEN.
* 
*         ENTRY  (LS) = SCREEN NAME.
* 
*         MACROS CFNC, DISPLA.
  
  
 DLS1     CFNC   SLSF        SELECT LEFT SCREEN - SMALL CHARACTERS
          LDD    CP          READ JOB STATUS
          ADN    STSW 
          CRD    AB 
          ADN    PFCW-STSW   READ FAMILY EST ORDINAL
          CRD    T4 
          ADN    UIDW-PFCW   READ USER IDENTIFICATION 
          CRD    T2 
          ADN    PKNW-UIDW   READ PACKNAME
          CRD    CM 
          DISPLA CH01,HL04,(USER =) 
          LDN    3           DISPLAY ACCOUNT NAME 
          OAM    T2,CH
          LDD    T2+3 
          SCN    77 
          OAN    CH+40
          DISPLA CH16,,(USER INDEX =) 
          LDD    T2+3        DISPLAY USER INDEX 
          LPN    37 
          SHN    14 
          LMD    T2+4 
          RJM    D6S
          LDD    CM+3        DISPLAY PACKNAME 
          SCN    77 
          STD    CM+3 
          LDN    4           DISPLAY WORD 
          OAM    CM,CH
          SFA    EST,T4+3 
          ADK    EQDE 
          CRD    CM 
          LDD    CM+4        READ FAMILY NAME WORD
          SHN    3
          ADN    PFGL 
          CRD    CM 
          LDD    CM+3 
          SCN    77 
          STD    CM+3 
          LDN    4           DISPLAY FAMILY NAME
          OAM    CM,CH
          LDD    AB+2 
          LPN    1
          ZJN    DLS3        IF ROLLOUT FLAG NOT SET
          DISPLA CH52,,(ROLLOUT),H
  
 DLS3     LDM    DPCA,LN     SET DISPLAY PROGRAM
          STD    T1 
          PAUSE  NE          (R) = CONTROL POINT RA/100B
          RJM    0,T1        DISPLAY LEFT SCREEN
          FJM    *,CH        IF DATA TRANSFER NOT COMPLETE
          DCN    CH+40
  
 DLS      SUBR               ENTRY/EXIT 
          LDD    LS          CHECK DISPLAY
          LMD    LN 
          ZJN    DLS0        IF LOADED
          RJM    LDO         LOAD DISPLAY OVERLAY 
 DLS0     LJM    DLS1        DISPLAY GENERAL INFORMATION
 LDO      SPACE  4,10 
**        LDO - LOAD DISPLAY OVERLAY. 
* 
*         USES   LA.
* 
*         CALLS  LOV. 
  
  
 LDO      SUBR               ENTRY/EXIT 
          LDM    KBIA        CHECK LOAD 
          LMC    KBI5 
          NJN    LDOX        IF LOAD BUSY 
          LDC    LDO2        SET DISPLAY LOAD 
          STM    KBIA 
          UJN    LDOX        RETURN 
  
*         START DISPLAY LOAD. 
  
 LDO2     LDC    OVD         SET LOAD ADDRESS 
          STD    LA 
          LDM    DLSA,LS     CHECK OVERLAY
          SHN    14 
          ADC    LDO3 
          LJM    LOV         LOAD OVERLAY 
  
*         COMPLETE DISPLAY LOAD.
  
 LDO3     LDD    LS 
          STD    LN 
          DFIM   (RJM CSB)   CLEAR SCREEN BUFFER, IF CONSOLE IS A 721 
          LJM    KBI3        RETURN 
  
          LJM    KBI3        RETURN (IF 721 CONSOLE)
 PRO      SPACE  4
**        PRO - PROCESS ROLLOUT FLAG WHILE IN HOLD. 
  
  
 PRO      BSS    0           ENTRY
          LDD    CP          CHECK FOR ERROR FLAG IN CPA
          ADN    STSW 
          CRD    AB 
          ADK    SPCW-STSW   GET *DMP=* STATUS
          CRD    CM 
          LDD    CM 
          ZJN    PRO1        IF *DMP=* NOT ACTIVE 
          LDD    CM+1 
          SHN    21-5 
          PJN    PRO2        IF *DMP=* NOT INITIATED
          SHN    5-1
          MJN    PRO2        IF *1RO* NOT COMPLETE
 PRO1     LDD    AB+1 
          ZJN    RPP         IF NO ERROR FLAG 
 PRO2     LJM    /COMDDSP/ROFX  EXIT
 RPP      SPACE  4,10 
**        RPP - RECALL PP.
* 
*         USES   CM - CM+4. 
* 
*         CALLS  DDS, RBW.
* 
*         MACROS MONITOR. 
  
  
 RPP      LDC    4000 
          RAD    IR+4 
          RJM    DDS         DROP DISPLAY 
          RJM    RBW         RESTORE BREAKPOINT WORD
          LDN    ZERL 
          CRD    CM 
          LDD    MA          STORE PP RECALL REQUEST
          CWD    IR 
          MONITOR  RECM 
          LJM    PPR         EXIT TO PP RESIDENT
          TITLE  KEYBOARD INPUT.
 KBI      SPACE  4
***       KEYBOARD INPUT. 
* 
*         ALL ENTRIES ARE DISPLAYED ON THE BOTTOM OF THE LEFT SCREEN
*         AS THEY ARE ENTERED.
* 
*         *CR* MUST FOLLOW ALL ENTRIES BEFORE ACTION IS TAKEN.
*         *BKSP* DELETES THE PREVIOUS CHARACTER TYPED.
*         *LEFT BLANK* DELETES THE CURRENT LINE BEING ENTERED.
*         *RIGHT BLANK* ADVANCES LEFT SCREEN DISPLAY. 
* 
*         IF THESE CHARACTERS ARE THE FIRST ENTRY, THE FOLLOWING
*         APPLIES - 
*         *8* = INCREMENT LEFT SCREEN MANAGED TABLE POINTER.
*         *9* = DECREMENT LEFT SCREEN MANAGED TABLE POINTER.
*         *+* = ADVANCE LEFT SCREEN MEMORY DISPLAY ADDRESS BY 40. 
*         *-* = DECREMENT LEFT SCREEN MEMORY DISPLAY ADDRESS BY 40. 
*               INSERT A *BEGIN,* IN THE KEYBOARD BUFFER FOR A LEFT 
*               SCREEN *A* DISPLAY. 
*         (*) = HOLD DISPLAY. 
*         */* = ADVANCE LEFT SCREEN MEMORY DISPLAY ADDRESS BY THE 
*                VALUE IN THE BOTTOM 18 BITS OF THE FIRST WORD
*                DISPLAYED
*         *=* = TOGGLE MEMORY REFERENCES BETWEEN ABSOLUTE AND 
*                RELATIVE.
*         *(* = BREAKPOINT PROGRAM TO (P+1).
*         *)* = BREAKPOINT PROGRAM TO (P-1).
*         *,* = CALL *O26*. 
*         *.* = ENTER AUTOMATIC JOB ADVANCE MODE. 
* 
*         ABOVE THE ENTRY DISPLAY, THE FOLLOWING MESSAGES MAY 
*         APPEAR -
*         *REPEAT ENTRY.* = ENTRY WILL NOT BE CLEARED BY A
*                CARRIAGE RETURN. 
*         *OUT OF RANGE.* = MEMORY ENTRY ADDRESS \ FL.
*         *PP BUSY.* = NO PP IS AVAILABLE TO HANDLE 
*                THE REQUEST. 
*         *DISK BUSY.* = DISK IS BUSY WHILE LOADING 
*                AN OVERLAY.
  
  
  
 KBI      SUBR               ENTRY/EXIT 
 KBI1     RJM    SKI         SELECT KEYBOARD INPUT
          LJM    KBI5        PROCESS OVERLAY LOAD 
 KBIA     EQU    *-1
          UJN    KBI4        PROCESS KEYBOARD ENTRY 
  
 KBI3     LDN    0           CLEAR KEYBOARD ENTRY 
          STD    KE 
          DFIM   (LDD KI)    CHECK FOR CHANGE IN KEYBOARD STATUS
 KBI4     UJN    KBI4.1      CC545 CONSOLE, DISPLAY KEYBOARD
          LMD    KM 
          LMD    KR 
          ZJN    KBI4.2      IF NO CHANGE HAS OCCURRED
 KBI4.1   RJM    DKB         DISPLAY KEYBOARD BUFFER
          DFIM   (CON LDMI) 
 KBI4.2   UJN    KBIX        CC545 CONSOLE, RETURN
          CON    SKIC        CHECK LAST CHARACTER 
          ZJN    KBIX        IF NONE
          UJN    KBI1        CHECK FOR ANOTHER ONE
  
 KBI5     LDD    KE 
          ZJN    KBI4        IF NO INPUT
          LDD    KI 
          NJN    KBI6        IF NOT FIRST CHARACTER 
          LDD    KE 
          SBN    1R8
          MJN    KBI6        IF ALPHANUMERIC
          SBN    KBIFL
          PJN    KBI6        IF CHARACTER NOT IN TABLE
          LDM    KBIF-1R8,KE
          STM    KBIB        SET ADDRESS
          LDN    0
          LJM    *           EXECUTE PROGRAM
 KBIB     EQU    *-1
  
 KBI6     LDD    KE          CHECK CHARACTER
 KBIC     LMN    0
          NJN    KBI7        IF NOT UPPER CASE SHIFT
          LDD    UC 
          NJN    KBI7        IF UPPER CASE SET
          AOD    UC 
          UJP    KBIX        RETURN 
  
 KBI7     LDD    UC 
          ZJN    KBI9        IF NOT UPPER CASE
          LDN    0           CLEAR UPPER CASE FLAG
          STD    UC 
          LDC    KBID-1      SET UPPER CASE TABLE 
          STD    T2 
 KBI8     AOD    T2          ADVANCE TABLE
          LDI    T2 
          ZJN    KBI9        IF END OF TABLE
          SHN    -6 
          LMD    KE          COMPARE ENTRY
          NJN    KBI8        IF NO MATCH
          LDI    T2          ENTER SPECIAL CHARACTER
          LPN    77 
          STD    KE 
          UJN    KBI11       PROCESS NORMAL CHARACTER 
  
 KBI9     LDD    KE          CHECK ENTRY
          SBN    53 
          MJN    KBI11       IF < *$* 
          SBN    KBIEL
          PJN    KBI11       IF > * * 
          LDM    KBIE-53,KE 
          STD    T2 
          LJM    0,T2        PROCESS ENTRY
  
  
*         PROCESS *SPACE*.
  
 KBI10    LDN    1R          SUBSTITUTE * * 
          STD    KE 
  
  
*         PROCESS NORMAL CHARACTER. 
  
 KBI11    LDD    KE          STORE CHARACTER
          STM    KBUF,KI
          AOD    KI 
          LMN    KBUFL
          ZJN    KBI12       IF BUFFER FULL 
          JMP    KBI3        RETURN 
  
  
*         PROCESS *BKSP*. 
  
 KBI12    SOD    KI          CLEAR PREVIOUS ENTRY 
          LDN    0
          STM    KBUF,KI
          LDD    KM 
          LMC    INTB 
          ZJN    KBI13       IF *REPEAT ENTRY.* 
          LMC    CJSA&INTB
          ZJN    KBI13       IF *AUTO COMMAND PROCESSING.*
          LDN    0           CLEAR MESSAGE
          STD    KM 
 KBI13    JMP    KBI3        RETURN 
  
 KBID     BSS    0
          VFD    6/1RS,6/1R$
          VFD    6/1R0,6/1R#
          VFD    6/1R1,6/1R[
          VFD    6/1R2,6/1R]
          VFD    6/1R3,6/63 
          VFD    6/1R4,6/64 
          VFD    6/1R5,6/65 
          VFD    6/1R6,6/1R!
          VFD    6/1R7,6/1R&
          VFD    6/1RQ,6/1R'
          VFD    6/1RW,6/1R?
          VFD    6/1RE,6/1R<
          VFD    6/1RR,6/1R>
          VFD    6/1RT,6/1R@
          VFD    6/1RY,6/1R\
          VFD    6/1RU,6/1R^
          VFD    6/1RI,6/77 
          VFD    6/1RZ,6/00 
          VFD    6/1R=,6/64 
          VFD    6/1RA,6/67 
          VFD    6/1R(,6/72 
          VFD    6/1R),6/73 
          VFD    6/1R+,6/74 
          VFD    6/1R-,6/75 
          VFD    6/1R,,6/77 
          DATA   0
  
 KBIE     BSS    0
          LOC    53 
          CON    PLB         53 *LEFT BLANK*
          CON    KBI11       54 
          CON    ALS         55 *RIGHT BLANK* 
          CON    KBI11       56 
          CON    KBI11       57 
          CON    INT         60 *CR*
          CON    KBI12       61 *BKSP*
          CON    KBI10       62 * * 
          LOC    *O 
 KBIEL    EQU    *-KBIE 
  
*         TABLE OF FIRST CHARACTER FORMATS. 
  
  
 KBIF     BSS    0
          LOC    1R8
          CON    AMT         8 - INCREMENT MANAGED TABLE POINTER
          CON    DMT         9 - DECREMENT MANAGED TABLE POINTER
          CON    AVD3        + - ADVANCE LEFT SCREEN
          CON    AVD1        - - DECREMENT LEFT SCREEN
          CON    RDC         * - RELEASE DISPLAY CHANNEL
          CON    AMV         / - SET LEFT DISPLAY 
          CON    AVD2        ( - ADVANCE RIGHT SCREEN 
          CON    AVD         ) - DECREMENT RIGHT SCREEN 
          CON    KBI6        LEFT BLANK 
          CON    KBI6        =
          CON    KBI6        RIGHT BLANK
          CON    LTE         , - LOAD TEXT EDITOR 
          CON    SAC         . - SET AUTO COMMAND PROCESSING
          CON    SRE         CR 
          CON    KBI3        BKSP 
          CON    KBI3        SPACE
          LOC    *O 
 KBIFL    EQU    *-KBIF 
          TITLE  KEYBOARD INPUT SUBROUTINES.
 ALS      SPACE  4
*         ALS - ADVANCE LEFT SCREEN DISPLAY.
  
  
 ALS      AOD    AI          ADVANCE INDEX
          LDM    ALSA,AI     SET SCREEN INDEX 
          NJN    ALS1 
          STD    AI 
          LDM    ALSA 
 ALS1     STD    LS          SET LEFT SCREEN DISPLAY
          RJM    LDO         LOAD DISPLAY OVERLAY 
          JMP    KBI3        RETURN 
  
 ALSA     BSS    0
          DATA   1RA
          DATA   1RC
          DATA   1RH
          BSSZ   8D 
 ALSAL    EQU    *-ALSA 
 AVD      SPACE  4
**        AVD - ADVANCE DISPLAY.
* 
*         ENTRY  (A) = 0. 
* 
*         EXIT   (T2) = DIRECTION.
*                       0 = INCREMENT OR FORWARD. 
*                       1 = DECREMENT OR BACKWARD.
*                (T3) = NAME OF DISPLAY TO BE PAGED.
* 
*         USES   T1.
  
  
 AVD      LDN    1           DECREMENT RIGHT SCREEN 
 AVD1     ADN    1           DECREMENT LEFT SCREEN
 AVD2     ADN    1           INCREMENT RIGHT SCREEN 
 AVD3     SHN    21-0        INCREMENT LEFT SCREEN
          STD    T2          SET INCREMENT/DECREMENT FLAG 
          SHN    -21
          ADN    LS 
          ERRNZ  LS+1-RS     *LS* AND *RS* ARE NOT CONSECUTIVE
          STD    T3 
          LDI    T3          GET CURRENT DISPLAY
          STD    T3          SET CURRENT DISPLAY
          LDM    TDAD,T3     GET ADDRESS OF ADVANCE ROUTINE 
          STD    T1 
          LJM    0,T1 
 AMV      SPACE  4,10 
**        AMV - ADVANCE LEFT SCREEN MEMORY DISPLAY ADDRESS BY THE 
*         VALUE IN THE BOTTOM 18-BITS OF THE FIRST WORD DISPLAYED.
* 
*         USES   T1, AB - AB+4. 
  
  
 AMV      LDD    LS          CHECK LEFT SCREEN DISPLAY
          LMN    1RM
          NJN    AMV1        IF NOT *M* 
          LDD    EB          SET ADDRESS OF FIRST EXTENDED MEMORY WORD
          SHN    14 
          LMD    EB+1 
          ADN    4
          UJN    AMV2 
  
 AMV1     LDM    DFCA,LS     SET DISPLAY FIELD ADDRESS
          STD    T1 
          LDI    T1          READ FIRST DISPLAY WORD
          SHN    6
          ADD    RA 
          SHN    6
          ADM    1,T1 
 AMV2     CRD    AB 
          LDD    AB+3        ADVANCE = VALUE
          LPN    37 
          STD    AB+3 
          LDD    T1          GET DISPLAY FIELD ADDRESS
          UJN    AMF2        ADVANCE DISPLAY FIELD
 AMF      SPACE  4
**        AMF - ADVANCE MEMORY FIELDS.
* 
*         USES   AB+3, AB+4.
* 
*         CALLS  ADF. 
* 
*         MACROS DFIM.
  
  
 AMF      BSS    0           ENTRY
          LDD    T2          CHECK CHARACTER
          ZJN    AMF1        IF *+* 
          DFIM   (LCN 17+20) TWO-S COMPLEMENT OF 20 
          LCN    37+40       TW0-S COMPLEMENT OF 40 
          DFIM   (ADN 20) 
 AMF1     ADN    40 
          STD    AB+4        (AB+4) = 0040/0020/7760/7740 
          SHN    -6 
          STD    AB+3        (AB+3) = 0000/7777 
          LDM    DFCA,T3
 AMF2     RJM    ADF         ADVANCE DISPLAY FIELD
          JMP    KBI3        RETURN 
 BPA      SPACE  4
**        BPA - BREAKPOINT PROGRAM TO (P) +/- 1.
* 
*         ENTRY  (BA) = BREAKPOINT ACTIVE FLAG. 
*                (T2) = 0, IF INCREMENT P.
*                     = 1, IF DECREMENT P.
* 
*         EXIT   TO BREAKPOINT INCREMENT OVERLAY. 
*                (CA) = 2 * (T2). 
* 
*         USES   CA.
* 
*         CALLS  ECP, LOV.
  
  
 BPA      LDD    T2 
          SHN    1
          STD    CA 
          LDD    BF 
          NJN    BPA2        IF BREAKPOINT ACTIVE 
          LJM    ILE         INCORRECT ENTRY
  
 BPA2     RJM    ECP         END CENTRAL PROGRAM
          LDC    BPI&O26
*         UJN    LTE         LOAD OVERLAY 
 LTE      SPACE  4,10 
**        LTE - LOAD CONSOLE TEXT EDITOR. 
* 
*         CALLS  LOV. 
  
  
 LTE      LMC    O26
          LJM    LOV         LOAD OVERLAY 
 RCD      SPACE  4,10 
**        RDC - RELEASE DISPLAY CHANNEL.
  
  
 RDC      RJM    HDC         HOLD DISPLAY CHANNEL 
          RJM    CSB         CLEAR SCREEN BUFFER
          JMP    KBI3        RETURN 
 SAC      SPACE  4
**        SAC - SET AUTO COMMAND PROCESSING.
  
  
 SAC      LDD    CP          CHECK FOR SPECIAL ENTRY JOB
          ADC    SEPW 
          CRD    CM 
          LDD    CM 
          LPN    24 
          ZJN    SAC1        IF NOT DMP= OR SSJ=
          LDN    2           CALL *1AJ* TO CLEAN UP JOB 
          RJM    IAJ
 SAC1     LDC    CJSA        SET AUTO MODE
          UJN    SRE1 
 SRE      SPACE  4
**        SRE - SET REPEAT ENTRY. 
  
  
 SRE      LDC    INTB        *REPEAT ENTRY.*
 SRE1     STD    KM 
          JMP    KBI3        RETURN 
 AMT      SPACE  4
**        AMT - ADVANCE MANAGED TABLE POINTER.
  
  
 AMT      LDM    DFCA,LS
          STD    T1 
          ZJN    AMT1 
          AOM    -1,T1
 AMT1     JMP    KBI3        RETURN 
 DMT      SPACE  4
**        DMT - DECREMENT MANAGED TABLE POINTER.
  
  
 DMT      LDM    DFCA,LS
          STD    T1 
          ZJN    AMT1 
          SOM    -1,T1
          JMP    KBI3        RETURN 
 ADA      SPACE  4,10 
**        ADA - ADVANCE *A* DISPLAY.
* 
*         IF A *-* HAS BEEN ENTERED, INSERT A *BEGIN,* IN THE 
*         KEYBOARD BUFFER.
* 
*         ENTRY  (T2) = 0, ADVANCE THE A DISPLAY. 
*                     = 1, INSERT *BEGIN,* INTO THE KEYBOARD BUFFER.
  
  
 ADA      LDD    T2 
          ZJN    ADA1        IF *+* 
          LDC    BEG         *-* WAS ENTERED, ENTER *BEGIN,*
          LJM    LOV         LOAD OVERLAY 
  
 ADA1     LDC    DSAA        ADVANCE FNT
          UJN    ADH1        UPDATE PAGING BYTES
 ADH      SPACE  4,10 
**        ADH - ADVANCE *H* DISPLAY.
* 
*         ENTRY  (T2) = 0, IF FORWARD.
*                     = 1, IF BACKWARD. 
*                (A) = FWA OF PAGING BYTES WHEN ENTERED AT *ADH1*.
  
  
 ADH      LDC    DSHA        ADVANCE FNT
 ADH1     STD    T1 
          LDD    T2 
          LMN    1
          ZJN    ADH2        IF *-* 
          LDM    1,T1        ADVANCE FNT
 ADH2     STI    T1 
          JMP    KBI3        RETURN 
 ADT      SPACE  4
**        ADT - ADVANCE *T* DISPLAY.
* 
*         ENTRY  (T2) = 0, IF FORWARD.
*                     = 1, IF BACKWARD. 
*                (T3) = NAME OF DISPLAY TO BE PAGED.
  
  
 ADT      LDD    T2          CHECK CHARACTER
          ZJN    ADT1        IF *+* 
          DFIM   (LDC 377740) 
          LDC    377700      SET *-*
          DFIM   (LMN 20) 
 ADT1     LMN    40 
          RAM    DSTA+2-1RT,T3
          SHN    -14
          ADM    DSTA-1RT,T3
          LPN    37 
          STM    DSTA-1RT,T3
          JMP    KBI3        RETURN 
 CKB      SPACE  4
**        CKB - CLEAR KEYBOARD BUFFER.
  
  
 CKB      SUBR               ENTRY/EXIT 
          LDD    KM 
          ZJN    CKB1        IF NO MESSAGE
          LMC    INTC 
          ZJN    CKB1        IF MESSAGE *DISK BUSY.*
          LMC    CJSA&INTC
          NJN    CKBX        IF NOT *AUTOMATIC COMMAND PROCESSING.* 
 CKB1     STD    KI          CLEAR KEYBOARD INDEX 
          STD    T1 
 CKB2     LDN    0           CLEAR BUFFER 
          STM    KBUF,T1
          AOD    T1 
          LMN    KBUFL
          NJN    CKB2 
          UJN    CKBX        RETURN 
 CSB      SPACE  4,10 
**        CSB - CLEAR SCREEN BUFFER.
* 
*         CLEAR SCREEN BUFFER, RESET TOP OF PAGE, AND SET *KBI*-S 
*         RETURN ADDRESS TO *DIS1* WHEN THE CONSOLE TYPE IS A *CDC721*. 
* 
*         USES   T1.
* 
*         MACROS CFNC, DFIM.
  
  
 CSB1     LDN    CSBAL-1
          STD    T1 
 CSB2     LDM    CSBA,T1     ISSUE FUNCTION 
          CFNC
          SOD    T1 
          PJN    CSB2        IF MORE FUNCTIONS
          STD    KR          FORCE *DKB* TO EXECUTE 
          LDC    DIS1        SET *KBI* EXIT 
          STM    KBI
  
 CSB      SUBR               ENTRY/EXIT 
          DFIM   (UJN CSB1) 
          UJN    CSBX        RETURN 
  
 CSBA     BSS    0           TABLE OF FUNCTION CODES IN REVERSE ORDER 
          CON    CHSF        CLEAR HIDDEN SCREEN
          CON    RTPF        RESET TOP OF PAGE
          CON    SRSF        SELECT RIGHT SCREEN, SMALL CHARACTERS
          CON    RTPF        RESET TOP OF PAGE
          CON    SLSF        SELECT LEFT SCREEN, SMALL CHARACTERS 
 CSBAL    EQU    *-CSBA 
 PLB      SPACE  4
**        PLB - PROCESS *LEFT BLANK*. 
  
  
 PLB      LDN    0           CLEAR KEYBOARD MESSAGE 
          STD    KM 
*         UJN    KBR
 KBR      SPACE  4
**        KBR - NORMAL RETURN.
  
  
 KBR      RJM    CKB         CLEAR KEYBOARD BUFFER
          JMP    KBI3        RETURN 
 ILE      SPACE  4,10 
**        ILE - INCORRECT ENTRY.
  
  
 ILE      LDC    INTG        *INCORRECT ENTRY.* 
*         UJN    KIC         PROCESS INCORRECT ENTRY
 KIC      SPACE  4
**        KIC - INCOMPLETE RETURN.
* 
*         ENTRY  (A) = MESSAGE ADDRESS. 
  
  
 KIC      STD    T1 
          LDD    KE 
          LMN    53 
          NJN    KIC1        IF NOT *LEFT BLANK*
          LJM    AOL         ABORT OVERLAY LOAD 
  
 KIC1     LDD    KM 
          NJN    KIC2        IF MESSAGE 
          LDD    T1 
          STD    KM 
 KIC2     JMP    KBI4        RETURN 
          SPACE  4
          TITLE  INTERPRET KEYBOARD MESSAGE.
 INT      SPACE  4
***       NOTE - ALL NUMERIC ENTRIES ARE OCTAL AND RIGHT JUSTIFIED
*         IN THE FIELD IN WHICH THEY ARE STORED, UNLESS SPECIFIED 
*         OTHERWISE.  IMBEDDED SPACES ARE IGNORED IN NUMERIC FIELDS 
*         AND LEADING ZEROES MAY BE OMMITTED.  SPACES ARE NOT 
*         IGNORED IN ALPHABETIC FIELDS. 
* 
***       MN. 
* 
*         IF M AND N ARE VALID DISPLAY IDENTIFIERS, CHANGE THE LEFT 
*         AND RIGHT SCREEN DISPLAYS TO M AND N RESPECTIVELY.
* 
***       MX,YYYYYY.
* 
*         IF M IS ONE OF THE LETTERS C,D,F,G, OR M, AND X IS
*         AN OCTAL DIGIT, CHANGE THE M DISPLAY FIELDS AS FOLLOWS: 
* 
*         X = 0 - 3, CHANGE FIELD X TO DISPLAY FROM YYYYYY. 
*         X = 4, CHANGE FIELDS 0 - 3 TO DISPLAY FROM YYYYYY 
*                CONSECUTIVELY. 
*         X = 5, ADVANCE DISPLAY OF FIELDS BY YYYYYY. 
*         X = 6, DECREMENT DISPLAY OF FIELDS BY YYYYYY. 
* 
***       M,XXXX. 
* 
*         IF M IS ONE OF THE LETTERS C,D,F,G, OR M, XXXX IS 
*         THE BIAS ADDRESS FOR MANAGED TABLE DISPLAY. 
 INT      SPACE  4
**        INT - INTERPRET KEYBOARD MESSAGE. 
  
  
 INT      LDC    UJNI+ILL-INTD ENTRY
          UJN    INT2 
  
          ERRPL  ILL-INTD-40B 
  
 INT1     LDC    RJMI        ENTRY TO FORCE DIS COMMAND 
 INT2     STM    INTD 
          LDM    KBUF 
          STD    T9 
          SBN    1R0
          MJN    INT4        IF ALPHA 
          SBN    1R8-1R0
          PJN    INT4        IF NON-OCTAL DIGIT 
          LDC    ENM         ENTER MEMORY 
 INT3     LJM    LOV
  
 INT4     LDD    T9          CHECK FIRST CHARACTER
          LMN    1RE
          NJN    INT5        IF NOT *E* 
          LDM    KBUF+1      CHECK SECOND CHARACTER 
          SBN    1R0
          MJN    INT5        IF ALPHA 
          SBN    1R8-1R0
          PJN    INT5        IF NON- OCTAL DIGIT
          LDC    EEC
          UJN    INT3 
  
 INT5     LDM    KBUF+2      CHECK THIRD CHARACTER
          LMN    1R.
          NJN    INT6        IF NOT PERIOD
  
*         CHANGE DISPLAY. 
  
          LDD    T9          CHECK LEFT SCREEN INDEX
          SBN    DPCAL
          PJN    INT6        IF NO DISPLAY
          LDM    KBUF+1      CHECK RIGHT SCREEN INDEX 
          STD    T1 
          SBN    DPCAL
          PJN    INT6        IF NO DISPLAY
          LDM    DLSA,T1
          NJN    INT6        IF RIGHT SCREEN IS OVERLAY 
          LDD    T9          SET LEFT SCREEN DISPLAY
          STD    LS 
          LDD    T1          SET RIGHT SCREEN DISPLAY 
          STD    RS 
          RJM    LDO         LOAD DISPLAY OVERLAY 
          LJM    KBR         RETURN 
  
 INT6     LDM    KBUF+2 
          LMN    1R,
          NJN    INT7        IF NOT COMMA 
  
*         CHANGE DISPLAY FIELD. 
  
          LDD    T9          SET DISPLAY INDEX
          STD    T6 
          SBN    DPCAL
          PJN    INT7        IF NO DISPLAY
          LDM    DFCA,T6     SET DISPLAY FIELD
          STD    T7 
          ZJN    INT7        IF NO FIELD
          LDM    KBUF+1      SET FIELD NUMBER 
          SBN    1R0
          STD    T5 
          MJN    INT7        IF ALPHA 
          SBN    10 
          PJN    INT7        IF NOT DIGIT 
          LDC    CDF
          UJN    INT8.1      LOAD OVERLAY 
  
 INT7     LDM    KBUF+1      CHECK 2ND CHARACTER
          LMN    1R,
          NJN    INT8        IF NOT *,* 
  
*         CHANGE DISPLAY TABLE. 
  
          LDD    T9          SET DISPLAY INDEX
          STD    T6 
          SBN    DPCAL
          PJN    INT8        IF NO DISPLAY
          LDM    DFCA,T6     SET DISPLAY FIELD
          STD    T7 
          ZJN    INT8        IF NO FIELD
          LDC    KBUF+2      ASSEMBLE DIGITS
          RJM    ASD
          LDD    AB+4        SET ADDRESS
          STM    -1,T7
          LDD    T6 
          LJM    SLS         SET LEFT SCREEN
  
 INT8     LDC    INTA        SERACH FOR SPECIAL FORMAT
          RJM    SSF
          LDC    IKM         INTERPRET KEYSET MESSAGE 
 INT8.1   UJN    INT10       LOAD OVERLAY 
  
 INT9     RJM    PPC         PROCESS PP CALL
 INTD     RJM    CKB         CLEAR KEYBOARD BUFFER
          LJM    CJS7 
  
*         INCORRECT DIS COMMAND.
  
 ILL      LDC    KBUF 
          STD    CA 
          LDC    EXC         EXECUTE COMMAND
 INT10    LJM    LOV         LOAD OVERLAY 
  
*         TABLE OF REQUESTS.
  
  
 INTA     BSS    0
  
 CDS      ENTER  (DIS.) 
 DRP      ENTER  (DROP.)
 ERR      ENTER  (ERR.) 
 HOL      ENTER  (HOLD.)
 MCU      ENTER  (M.) 
 O26      ENTER  (O26.)      THIS MUST BE THE LAST ITEM IN THE LIST 
  
          DATA   0           END OF TABLE 
  
 INTB     DATA   C*REPEAT ENTRY.* 
  
 INTC     DATA   C*DISK BUSY.*
  
 INTE     DATA   C*PP BUSY.*
  
 INTF     DATA   C*JOB ACTIVE.* 
  
 INTG     DATA   C*INCORRECT ENTRY.*
 SKI      SPACE  4
**        SKI - SELECT KEYBOARD INPUT.
* 
*         EXIT   (A) = (KE) = (SKIC) = INPUT KEY. 
  
  
 SKI2     LDN    20          SET REPEAT DELAY 
 SKI3     LMN    24          SET INITIAL DELAY
          STM    SKIB 
          LDD    KE 
 SKI4     STM    SKIA        STORE CURRENT CHARACTER
  
 SKI      SUBR               ENTRY/EXIT 
          CFNC   SKIF        SELECT KEYBOARD INPUT
          IAN    CH+40       INPUT CHARACTER
          DCN    CH+40
          STM    SKIC 
          SBN    63 
          MJN    SKI1        IF LEGAL CHARACTER 
          LCN    63 
 SKI1     ADN    63 
          STD    KE 
          DFIM   (UJN SKIX)  RETURN 
          ZJN    SKI4        IF INPUT CHARACTER NOT PRESENT 
          LDC    0
 SKIA     EQU    *-1
          ZJN    SKI3        IF NO PREVIOUS CHARACTER 
          SOM    SKIB        DECREMENT DELAY
          ZJN    SKI2        IF DELAY ELAPSED 
          LDN    0
          STD    KE 
          UJN    SKIX        RETURN 
  
  
 SKIB     DATA   0           REPEAT KEY DELAY 
 SKIC     CON    0
 SSF      SPACE  4
**        SSF - SEARCH FOR SPECIAL FORMAT.
* 
*         ENTRY  (A) = ADDRESS OF FORMAT TABLE. 
* 
*         EXIT   TO PROCESSOR IF FORM FOUND.
*                (A) = CHARACTER ADDRESS. 
* 
*         USES   T1, T2.
  
  
 SSF      SUBR               ENTRY/EXIT 
          STD    T1          SET TABLE ADDRESS
 SSF1     LDI    T1 
          ZJN    SSFX        RETURN IF END OF TABLE 
          LDC    KBUF        SET CHARACTER ADDRESS
          STD    CA 
 SSF2     LDI    T1          COMPARE UPPER
          SHN    -6 
          ZJN    SSF5        IF COMPARE COMPLETE
          LMI    CA 
          NJN    SSF4 
          AOD    CA 
          LDI    T1          COMPARE LOWER
          LPN    77 
          ZJN    SSF5        IF COMPARE COMPLETE
          LMI    CA 
          NJN    SSF4 
          AOD    CA 
          AOD    T1 
          UJN    SSF2 
  
 SSF3     AOD    T1          SKIP TO END OF SYNTAX
 SSF4     LDI    T1 
          LPN    77 
          NJN    SSF3        LOOP 
          LDN    3
          RAD    T1 
          UJN    SSF1        LOOP 
  
 SSF5     LDM    1,T1        SET OVERLAY ADDRESS
          SHN    14 
          ADM    2,T1 
          LJM    LOV         LOAD OVERLAY 
          TITLE  RESIDENT DISPLAY ROUTINES. 
 DSC      SPACE 4 
***       DISPLAY C.  CENTRAL MEMORY, 5 GROUPS OF 4 DIGITS, WITH
* 
*         DISPLAY CODE TRANSLATION. 
  
  
 DSC      CON    *           ENTRY
          LDM    DSC
          STM    DSD         SET RETURN ADDRESS 
          LDC    1RC*10000+DSCA 
*         UJN    DSD1        GENERATE HEADER MESSAGE
 DSD      SPACE  4,10 
***       DISPLAY D.  CENTRAL MEMORY, 5 GROUPS OF 4 DIGITS, WITH
* 
*         DISPLAY CODE TRANSLATION. 
  
  
 DSD1     STD    T8          SAVE FIELD TABLE ADDRESS 
          SHN    -6 
          SCN    77 
          LMN    1R.         FORM DISPLAY IDENTIFIER
          STM    DSDH+4 
*         DISPHD (DIS C.  CENTRAL MEMORY.)
*         DISPHD (DIS D.  CENTRAL MEMORY.)
          LDN    DSDHL
          OAM    DSDH,CH     DISPLAY HEADER 
          LDC    D5F
          STD    T6          SET WORD FORMAT
          LDD    T8 
          RJM    DCM         DISPLAY CENTRAL MEMORY 
  
 DSD      SUBR               ENTRY/EXIT 
          LDC    1RD*10000+DSDA 
          UJN    DSD1        GENERATE HEADER MESSAGE
  
  
 DSDH     CON    CH01,HL01
          DATA   H*DIS D.  CENTRAL MEMORY.* 
 DSDHL    EQU    *-DSDH 
 DSJ      SPACE  4,10 
***       DISPLAY B.  CONTROL POINT STATUS. 
* 
*         DISPLAYS CONTROL POINT STATUS AND NEXT COMMANDS.
* 
*         ENTRY  (CP) = CPA ADDRESS.
* 
*         XREF   COMDGJD. 
* 
*         NOTE - THE DISPLAY FORMAT IS DOCUMENTED IN *COMDGJD*. 
*                ALSO, THE EXIT POINT FROM THIS ROUTINE MUST BE 
*                *DSJX* DUE TO REQUIREMENTS OF *COMDGJD*. 
  
  
 DSJX     LDC    2R.         RESTORE *.*-S
          STM    D6SA 
          STM    D4SB 
          LJM    *           EXIT 
 DSB      EQU    *-1         ENTRY
  
          DISPHD (DIS B.  JOB STATUS.)
*         LDN    0           CLEAR *.*-S
          STM    D6SA 
          STM    D4SB 
          LDD    CP          GET EJTO 
          ADN    TFSW 
          CRD    T7 
          SFA    EJT,T7      GET JSN AND CONNECTION STATUS
          ADK    JSNE 
          CRD    AB 
          LDM    CMEF        GET CENTRAL MEMORY EXTENSION FLAG
*         UJN    GJD
          SPACE  4,10 
*         COMMON DECKS. 
  
  
          QUAL   GJD
 GJD$     EQU    UE          DEFINE LOCATION OF *UESC* SHIFT
          LIST   X
*CALL     COMDGJD 
          LIST   *
          QUAL   *
 DSN      SPACE  4
***       DISPLAY N.  BLANK SCREEN. 
  
  
 DSN      SUBR               ENTRY/EXIT 
          DISPHD (DIS N.  BLANK SCREEN.)
          UJN    DSNX        RETURN 
          TITLE  DISPLAY SUBROUTINES. 
 DAL      SPACE  4,10 
**        DAL - DISPLAY ACCESS LEVEL STRING.
* 
*         ENTRY  (A) = VALID ACCESS LEVEL.
  
  
 DAL      SUBR               ENTRY/EXIT 
          SHN    2           CONVERT ACCESS LEVEL TO TABLE INDEX
          ADK    TALV 
          STM    DALA 
          LDN    4
          OAM    0,CH        DISPLAY STRING 
 DALA     EQU    *-1
          UJN    DALX        RETURN 
 DLA      SPACE  4,10 
**        DLA - DISPLAY LINE ADVANCE. 
* 
*         EXIT   (A) .LT. 0 IF END OF DISPLAY.
* 
*         USES   T4, YC, XC.
  
  
 DLA      SUBR               ENTRY/EXIT 
          LDD    XC          DISPLAY X-COORDINATE 
          OAN    CH+40
          LCN    YINC        ADVANCE Y-COORDINATE 
          RAD    YC 
          OAN    CH+40
          DFIM   (ADC -Y721)
          ADC    -Y545
          UJN    DLAX        RETURN 
 DMS      SPACE  4,10 
          SPACE  4
*         COMMON DECKS. 
          LIST   X
  
  
*CALL     COMDDCM 
 N2Z$     EQU    1           DO NOT ASSEMBLE *D2Z*
*CALL     COMDDIS 
*CALL     COMDDSP 
 DSS$     EQU    0           DISPLAY SUBSYSTEM STATUS 
 N2S$     EQU    1           DO NOT ASSEMBLE *D2S*
*CALL     COMDSYS 
          LIST   *
 EJT$     EQU    1           EJT SEARCH 
 IFP$     EQU    1           *COMPGFP* REMOTE ASSEMBLY
*CALL     COMPGFP 
 VAL$     EQU    1
*CALL     COMPVLC 
          TITLE  RESIDENT COMMAND PROCESSOR ROUTINES. 
  
  
 CMEF     EQU    DCMD        CENTRAL MEMORY EXTENSION FLAG
 DIS      SPACE  4
***       DIS.
* 
*         CALL DIS AND DROP DISPLAY.
  
  
          QUAL   DIS".N"
 CDS      ENTRY 
          LDM    /COMDDSP/DDSA SET EST ORDINAL
          LMC    4000        FORCE DIRECT CALL
          STD    IR+4 
          LDD    KM          CHECK IF AUTO COMMAND PROCESSING 
          LMC    CJSA 
          NJN    CDS1        IF NOT AUTO COMMAND
          LDD    HN 
          RAD    IR+3 
 CDS1     RJM    DDS         DROP DISPLAY 
          LDD    IA          WRITE INPUT REGISTER FOR *DIS* 
          CWD    IR 
          LJM    PPR         EXIT TO PP RESIDENT
 DROP     SPACE  4
***       DROP. 
* 
*         DROP DISPLAY. 
  
  
 DRO      EQU    DPP         DEFINE ENTRY POINT TO DROP DISPLAY 
  
 DRP      ENTRY  DRO
*         RJM    DDS         DROP DISPLAY 
*         RJM    RBW         RESTORE BREAKPOINT WORD
*         LJM    DPP         DROP PPU 
 ERR      SPACE  4
***       ERR.
* 
*         SET ERROR FLAG. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS MONITOR. 
  
  
 ERR      ENTRY 
          LDN    ZERL 
          CRD    CM 
          LDN    FSET        SET FORCED ERROR FLAG
          STD    CM+1 
          MONITOR CEFM
          JMP    KBR         RETURN 
 HOL      SPACE  4
***       HOLD. 
* 
*         DROP DISPLAY AND WAIT FOR RE-ASSIGNMENT.
  
  
 HOL      ENTRY 
          RJM    DDS         DROP DISPLAY 
*         LDN    0
          STM    OVD-5       CLEAR DISPLAY OVERLAY
          LDN    1RN
          STD    LN 
          RJM    RDS         REQUEST DISPLAY
          RJM    CSB         CLEAR SCREEN BUFFER
          JMP    KBR         RETURN 
          QUAL
          TITLE  COMMAND PROCESSOR SUBROUTINES. 
 ADF      SPACE  4
**        ADF - ADVANCE DISPLAY FIELD.
* 
*         ENTRY  (A) = ADDRESS OF FIELD TO BE ADVANCED, 
*                (AB+3 - AB+4) = ADVANCE INCREMENT. 
* 
*         EXIT   NONE.
* 
*         USES   T1, T2.
  
  
 ADF      SUBR               ENTRY/EXIT 
          STD    T1          SET FIELD ADDRESS
          ZJN    ADFX        RETURN IF NO FIELD 
          ADN    10          SET LIMIT
          STD    T2 
 ADF1     LDD    AB+4        ADVANCE DISPLAY FIELD
          RAM    1,T1 
          SHN    -14
          ADD    AB+3 
          RAI    T1 
          LDN    2           ADVANCE FIELD
          RAD    T1 
          LMD    T2 
          NJN    ADF1        LOOP FOR ALL FIELDS
          UJN    ADFX        RETURN 
 ASC      SPACE  4
**        ASC - ASSEMBLE CHARACTERS.
* 
*         ENTRY  (A) = ADDRESS OF CHARACTER STRING. 
* 
*         EXIT   (AB - AB+4) = ASSEMBLY.
* 
*         USES   T1, T2 
  
  
 ASC      SUBR               ENTRY/EXIT 
          STD    T1          STORE CHARACTER ADDRESS
          LDN    AB          SET BYTE ADDRESS 
          STD    T2 
 ASC1     LDI    T1          PACK BYTE
          SHN    6
          ADM    1,T1 
          STI    T2 
          ZJN    ASC2        IF ZERO BYTE 
          LDN    2           ADVANCE ADDRESS
          RAD    T1 
 ASC2     AOD    T2          ADVANCE BYTE 
          LMN    AB+5 
          NJN    ASC1        LOOP TO END OF WORD
          UJN    ASCX        RETURN 
 ASD      SPACE  4
**        ASD - ASSEMBLE DIGITS.
* 
*         ENTRY  (A) = CHARACTER ADDRESS. 
* 
*         EXIT   (AB - AB+4) = ASSEMBLY.
* 
*         CALLS  CDR. 
  
  
 ASD      SUBR               ENTRY/EXIT 
          RJM    CDR         CONVERT DIGITS 
          LMN    1R.
          ZJN    ASDX        RETURN IF PERIOD 
          LJM    ILL         INCORRECT ENTRY
 ASN      SPACE  4,10 
**        ASN - ASSEMBLE NAME.
* 
*         ENTRY  (A) = ADDRESS OF CHARACTER STRING. 
* 
*         EXIT   (A) = SEPARATOR CHARACTER. 
*                (AB - AB+4) = ASSEMBLY.
* 
*         USES   T1, T2.
  
  
 ASN3     ADN    1R+         STORE CHARACTER
          RAI    T2 
          AOD    T1 
          AOD    T2 
          LMN    AB+4 
          NJN    ASN1        LOOP FOR 7 CHARACTERS
          LDI    T1          RETURN WITH CHARACTER
  
 ASN      SUBR               ENTRY/EXIT 
          STD    T1          STORE CHARACTER ADDRESS
          LDN    ZERL        CLEAR ASSEMBLY 
          CRD    AB 
          LDN    AB          SET BYTE ADDRESS 
          STD    T2 
 ASN1     LDI    T1          CHECK UPPER CHARACTER
          SBN    1R+
          MJN    ASN2        IF NOT SEPARATOR 
          ADN    1R+         RETURN WITH SEPARATOR
          UJN    ASNX 
  
 ASN2     ADN    1R+         STORE CHARACTER
          SHN    6
          STI    T2 
          AOD    T1 
          LDI    T1          CHECK LOWER
          SBN    1R+
          MJN    ASN3        IF NOT SEPARATOR 
          ADN    1R+         RETURN WITH SEPARATOR
          UJN    ASNX 
 BCP      SPACE  4
**        BCP - BEGIN CENTRAL PROGRAM.
  
  
 BCP      SUBR               ENTRY/EXIT 
          RJM    CRA         CHECK SYSTEM REQUEST 
          PJN    BCP1        IF *END* OR *ABT*
          LDD    AB+1 
          ADD    AB+2 
          ADD    AB+3 
          NJN    BCP2 
          LDD    AB+4 
          ZJN    BCP2        IF NO PP OA
 BCP1     LDN    ZERL        CLEAR SYSTEM REQUEST (RA+1)
          CRD    CM 
          LDD    RA 
          SHN    6
          ADN    1
          CWD    CM 
 BCP2     MONITOR RCPM       REQUEST CPU
          UJN    BCPX        RETURN 
 CAJ      SPACE  4,10 
**        CAJ - CHECK ACTIVE JOB. 
* 
*         EXIT   (A) = 0, IF NO ACTIVITY. 
* 
*         USES   CM - CM+4. 
  
  
 CAJ      SUBR               ENTRY/EXIT 
          LDD    CP          FETCH CP STATUS WORD 
          ADN    STSW 
          CRD    CM 
          LDD    CM+2        EXTRACT ROLLOUT CPU STATUS 
          LPN    2
          SHN    11-1 
          LMD    CM 
          SBN    1
          SHN    4           APPEND PP REQUEST QUEUE STATUS 
          ADD    CM+4 
          SCN    17 
          UJN    CAJX        RETURN 
 CDR      SPACE 4 
**        CDR - CONVERT DIGITS RIGHT ADJUSTED.
* 
*         ENTRY  (A) = ADDRESS OF CHARACTER STRING. 
* 
*         EXIT   (A) = SEPARATOR CHARACTER. 
*                (AB - AB+4) = ASSEMBLY.
* 
*         USES   T1, T2.
  
  
 CDR      SUBR               ENTRY/EXIT 
          STD    T1          SAVE ADDRESS 
          LDN    ZERL        CLEAR ASSEMBLY AREA
          CRD    AB 
 CDR1     LDI    T1          LOAD CHARACTER 
          SBN    1R0
          MJN    CDR2        IF ALPHA 
          SBN    1R8-1R0
          MJN    CDR3        IF OCTAL DIGIT 
          SBN    1R -1R8
          ZJN    CDR5        IF SPACE 
 CDR2     LDI    T1          LOAD CHARACTER 
          UJN    CDRX        RETURN 
  
 CDR3     ADN    10          STORE DIGIT
          STD    T3 
          LDN    AB+4        SET BYTE ADDRESS 
          STD    T2 
 CDR4     LDI    T2          LOAD BYTE
          SHN    3
          ADD    T3          ADD NEW DIGIT
          STI    T2          STORE
          SHN    -14         SAVE OVERFLOW
          STD    T3 
          SOD    T2          ADVANCE BYTE ADDRESS 
          LMN    AB-1 
          NJN    CDR4        LOOP 
 CDR5     AOD    T1          ADVANCE ADDRESS
          UJN    CDR1        LOOP 
 CRA      SPACE  4
**        CRA - CHECK SYSTEM REQUEST FOR *END* OR *ABT*.
* 
*         EXIT   (A) = 0     IF *END* 
*                (A) = 1     IF *ABT* 
*                (A) = -1    IF NEITHER 
*                (AB - AB+4) = RA+1.
  
  
 CRA1     LDN    1           SET *ABT* EXIT 
  
 CRA      SUBR               ENTRY/EXIT 
          LDD    RA          CHECK SYSTEM REQUEST 
          SHN    6
          ADN    1
          CRD    AB 
          LDD    AB+1 
          SCN    77 
          SHN    6
          LMD    AB 
          LMC    3RDEN
          ZJN    CRAX        IF *END* 
          LMC    3RTAB&3RDEN
          ZJN    CRA1        IF *ABT* 
          LCN    1           SET NEITHER EXIT 
          UJN    CRAX        RETURN 
 ECP      SPACE  4
**        ECP - END CENTRAL PROGRAM.
* 
*         CALLS  FTN. 
  
  
 ECP      SUBR               ENTRY/EXIT 
          LDN    0
          STD    CM+1 
          MONITOR DCPM       DROP CPU 
          RJM    RBW         RESTORE BREAKPOINT WORD
          UJN    ECPX        RETURN 
 IAJ      SPACE  4
**        IAJ - CALL *1AJ*. 
* 
*         ENTRY  (A) = 6/FN,9/0,1/S,1/E,1/R 
*                FN = 0, FOR MTR TYPE REQUEST (FOR SSJ= AND DMP=).
*                   = 2, FOR DIS TYPE REQUEST.
*                R  = RSS FLAG. 
*                E  = FOR RETURN ERROR MESSAGE TO MS2W. 
*                S  = FOR TAKE COMMAND FROM MS1W. 
*                (IAJC) = *PSNI* IF *DMP=* REQUEST
* 
*         EXIT   (KM) = KEYBOARD MESSAGE CODE.
* 
*         USES   KM, CM - CM+4. 
* 
*         CALLS  CAJ. 
* 
*         MACROS EXECUTE, MONITOR, SFA. 
  
  
 IAJ3     LDC    INTF        *JOB ACTIVE.*
          STD    KM 
  
 IAJ      SUBR               ENTRY/EXIT 
          STM    IAJA+4 
          SHN    -14
          STM    IAJA+2 
          RJM    CAJ         CHECK ACTIVE JOB 
 IAJ1     NJN    IAJ3        IF JOB ACTIVE
 IAJC     EQU    *-1
*         PSNI               (DMP=) 
          LDC    0           RESTORE ACTIVITY CHECK 
          ORG    *-1
          LOC    IAJC 
          NJN    IAJ3        IF JOB ACTIVE
          LOC    *O 
          STM    IAJC 
          LDN    ZERL 
          CRD    CM 
          LDC    4001        VERIFY JOB ADVANCE NOT SET 
          STD    CM 
          LDN    6           SET LOW ORDER BIT OF FIELD 
          SHN    6
          STD    CM+1 
          LDD    MA 
          CWD    CM 
          LDN    1           SET JOB ADVANCE
          STD    CM 
          STD    CM+4 
          LDD    MA 
          ADN    1
          CWD    CM 
          LDN    ZERL 
          CRD    CM 
          LDN    40+2        VERIFY AND SET JOB ADVANCE AND INTERLOCK 
          STD    CM+1 
          LDC    **          INTERLOCK EJT ENTRY
 IAJB     EQU    *-1         (EJTO) 
          SFA    EJT
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          MONITOR  UTEM 
          LDD    CM+1 
          NJN    IAJ2        IF INTERLOCK NOT SET 
*         LDN    0           ALLOW QUEUING OF PP REQUEST
*         STD    CM+1 
          EXECUTE 1AJ,= 
          LDD    MA          WRITE REQUEST
          CWM    IAJA,ON
          MONITOR  RPPM 
          LJM    IAJX        RETURN 
  
 IAJ2     LJM    IAJ3        DISPLAY * JOB ACTIVE.* 
  
  
 IAJA     VFD    18D/0L1AJ,6/0,12D/2,12D/0,12D/0
 PPC      SPACE  4
***       AAA. OR AAA,XXXXXX. OR AAA,XXXXXX,YYYYYY. 
* 
*         IF AAA IS THE NAME OF A PP PROGRAM BEGINNING WITH A 
*         LETTER, CALL THIS PROGRAM TO EXECUTE WITH PARAMETERS
*         XXXXXX AND YYYYYY.  IN THE FORMS MISSING EITHER XXXXXX
*         OR YYYYYY, THE ASSUMED VALUE WILL BE 0. 
  
  
 PPC      SUBR               ENTRY/EXIT 
          LDC    KBUF        ASSEMBLE NAME
          RJM    ASN
          SBN    1R+
          MJN    PPCX        RETURN IF NO SEPARATOR 
          LDD    AB          CHECK NAME 
          SHN    -6 
          SBN    1R0
          PJN    PPCX        RETURN IF NOT ALPHA
          LDD    AB+1 
          ZJN    PPCX        RETURN IF NOT 3 CHARACTERS 
          LPN    77 
          NJN    PPCX        RETURN IF MORE THAN 3 CHARACTERS 
          LDC    CPP         CALL PPU 
          LJM    LOV
 RBW      SPACE  4
**        RBW - RESTORE BREAKPOINT WORD.
* 
*         ENTRY  (BA - BA+1) = BREAKPOINT ADDRESS.
* 
*         USES   BA, BA+1.
  
  
 RBW      SUBR               ENTRY/EXIT 
          LDD    BA 
          SHN    14 
          ADD    BA+1 
          ZJN    RBWX        IF BREAKPOINT NOT SET
          SHN    14          RESTORE BREAKPOINT WORD
          ADD    RA 
          SHN    6
          CWM    RBWA,ON
          LDN    0           CLEAR BREAKPOINT 
          STD    BA 
          STD    BA+1 
          UJN    RBWX        RETURN 
  
  
 RBWA     VFD    60D/0       INSTRUCTION WORD BUFFER
 SLS      SPACE  4
**        SLS - SET LEFT SCREEN.
* 
*         ENTRY  (A) = NAME OF SCREEN.
  
  
 SLS      LMD    RS 
          ZJN    SLS1        IF RIGHT SCREEN DISPLAY
          LMD    RS 
          STD    LS          SET LEFT SCREEN
          RJM    LDO         LOAD DISPLAY OVERLAY 
 SLS1     LJM    KBR
          TITLE  TABLE OF DISPLAYS. 
 TDSP     SPACE  4
**        TDSP - TABLE OF DISPLAYS. 
* 
* 
*A        TDSP   B,C
*         ENTRY  (A) = DISPLAY NAME.
*                (B) = DISPLAY FIELD ADDRESS (OPTIONAL).
*                (C) = + AND - PROCESSOR (OPTIONAL).
  
  
          MACRO  TDSP,A,B,C 
          ORG    TDAD+1R;A
          CON    C AMF
          ORG    DFCA+1R;A
          CON    B  0 
          ORG    DPCA+1R;A
          CON    DS;A-DS;A/10000*10000
          ORG    DLSA+1R;A
          CON    DS;A/10000 
          ENDM
 TDSP     SPACE  4
**        TABLE OF DISPLAYS.
  
  
 TDAD     EQU    *-1
          DUP    1RZ,1
          CON    AMF
  
 DFCA     EQU    *-1
          DUP    1RZ,1
          CON    0
 DFCAL    EQU    *-DFCA 
  
 DPCA     EQU    *-1
          DUP    1RZ,1
          CON    DSZ-DSZ/10000*10000
 DPCAL    EQU    *-DPCA 
  
 DLSA     EQU    *-1
          DUP    1RZ,1
          CON    DSZ/10000
 TDSP     SPACE  4
**        TDSP - DISPLAY CONTROL TABLE. 
  
  
 A        TDSP   ,ADA 
 B        TDSP
 C        TDSP   DSCA 
 D        TDSP   DSDA 
 F        TDSP   DSFA 
 G        TDSP   DSGA 
 H        TDSP   ,ADH 
 M        TDSP   DSMA 
 N        TDSP
 T        TDSP   ,ADT 
 U        TDSP   ,ADT 
 V        TDSP
 X        TDSP   ,BPA 
 Y        TDSP
 Z        TDSP
 TFNT     SPACE  4
**        TFNT - TABLE OF FILE TYPES. 
  
 TFNT     DATA   H*"NMFT"*
          TITLE  OVERLAY AREA.
 OVL      SPACE  4
*         TERMINATE RESIDENT ROUTINES.
  
  
          QUAL
          HERE
 DIS      HERE
          USE    END         FORCE /LITERALS*/
          SPACE  4
*         OVERLAY AREA. 
  
  
          USE    OVL
 OVD      EQU    *+5
          TITLE  PRESET PROGRAM.
 PRS      SPACE  4
          QUAL   PRESET 
 PRS      SPACE  4
**        PRS - PRESET PROGRAM. 
* 
*         CALLS  CKB, CUA, DFM, MDC, RDS, SFI.
  
  
 PRS      SUBR               ENTRY/EXIT 
          LDN    0           CLEAR *RCPM* REQUIRED FLAG 
          STD    T8 
          LDD    IR+4 
          SHN    21-13
          MJN    PRS3        IF DIRECT CALL 
          LDD    CP 
          ADN    STSW 
          CRD    CM 
          LDD    CM 
          SHN    -11
          LMN    6
          NJN    PRS2        IF NOT *I* STATUS
          LDD    IR+1 
          LPN    40 
          STD    T8          SET *RCPM* REQUIRED FLAG IF RECALL SET 
 PRS2     RJM    CUA         CHECK USER ACCESS
          ZJN    PRS3        IF VALID USER
          LDC    PRSC        * INCORRECT COMMAND.*
          RJM    DFM
          MONITOR  ABTM      ABORT CONTROL POINT
          LJM    PPR         EXIT TO PP RESIDENT
  
 PRS3     LDD    IR+1        CLEAR AUTO-RECALL IN INPUT REGISTER
          SCN    40 
          STD    IR+1 
          RJM    IFP         INITIALIZE *SFA* MACRO 
          LDN    DSEQ 
          SFA    EST         GET EST ENTRY FOR DISPLAY CONSOLE
          ADK    EQAE 
          CRD    CM 
          LDD    CM+2 
          ZJN    PRS4        IF CC545 CONSOLE 
          MDIN               MODIFY DISPLAY GENERATOR 
 PRS4     LDN    SSML        SAVE SECURITY MODE 
          CRD    CM 
          LDD    CM 
          LPN    3
          STD    SM 
          LDN    NCPL        SAVE NUMBER OF CP-S
          CRD    CM 
          LDD    CM+1 
          STD    NC 
          LDK    EIBP        GET POINTER TO *EICB*
          CRD    CM 
          LDD    CM+3 
          SHN    14 
          LMD    CM+4 
          ZJN    PRS4.1      IF *EICB* NOT DEFINED
          ADK    D7ST        SAVE POINTER TO *D7ST* FOR *COMDSYS* 
          STM    FDPA+1 
          SHN    -14
          RAM    FDPA 
 PRS4.1   LDD    CP          FETCH INPUT FILE STATUS
          ADN    TFSW 
          CRD    T1 
          LDD    T1          SET JOB EJTO 
          STM    IAJB 
          LDD    IR+4 
          SHN    21-13
          PJN    PRS5        IF NOT DIRECT CALL 
          LDD    T1 
          NJN    PRS5        IF JOB PRESENT 
          MONITOR  DPPM      DROP PP
          LJM    PPR         EXIT TO PP RESIDENT
  
 PRS5     LDK    MABL        CHECK MAINFRAME TYPE 
          CRD    CM 
          LDD    CM+1 
          SHN    -11
          LMN    7
          SHN    -2+22       SAVE CM EXTENSION STATUS 
          STM    CMEF 
          ZJN    PRS5.1      IF CYBER 176 MAINFRAME 
          LDC    EEMC        SET DEFAULT ERROR EXIT MODE
          UJN    PRS6        SET ERROR EXIT MODE
  
 PRS5.1   LDC    EEMC&1      DESELECT UNDERFLOW 
 PRS6     STM    PRSA        SET ERROR EXIT MODE
          LDD    IR+4 
          SHN    21-13
          MJN    PRS7        IF CALLED TO RUNNING JOB 
          LDD    CP          SET EXIT MODE IN EXCHANGE PACKAGE
          ADN    3
          CRD    CM          CURRENT EXIT MODE
          LDD    CM 
          LPC    770         RETAIN NON EXIT MODE BITS
          LMC    EEMC 
*         LDC    EEMC&1      (CYBER 176 CPU)
 PRSA     EQU    *-1
          STD    CM 
          LDD    CP 
          ADN    3
          CWD    CM          WRITE CHANGED EXIT MODE
 PRS7     LDN    10          SET MASK FOR *JCIW*
          STD    CM+4 
          LDN    SCTS        SET *DIS* FLAG IN CPA
          STD    CM+1 
          MONITOR  SJCM 
*         LDN    0           CLEAR KEYBOARD MESSAGE 
          STD    KM 
          STD    BA          CLEAR BREAKPOINT 
          STD    BA+1 
          STD    AI          CLEAR ADVANCE INDEX
          STD    UC          CLEAR UPPER CASE FLAG
          LDC    CH01        SET X-COORDINATE 
          STD    XC 
          LDN    1RA         SET LEFT SCREEN DISPLAY
          STD    LS 
          LDN    1RN
          STD    LN 
          LDN    1RB         SET RIGHT SCREEN DISPLAY 
          STD    RS 
          LDC    OVL         SET LOAD ADDRESS 
          STD    LA 
          LDD    IR+2        SET UPPER CASE CHARACTER 
          LPN    77 
          RAM    KBIC 
          LDD    IR+3        CHECK CALLING PARAMETER
          SHN    13 
          PJN    PRS8        IF NOT AUTO COMMAND PROCESSING 
          LDC    CJSA        SET AUTO COMMAND 
          STD    KM 
          LDD    IR+3        CLEAR CALLING PARAMETER
          LPC    7677 
          STD    IR+3 
  
*         SET UP DIRECT CELLS.
  
 PRS8     LDN    PPUL        FETCH PP CONFIGURATION 
          CRD    CM 
          LDN    20D         PRESET NUMBER OF PPU,S 
          STD    PN 
          LDD    CM+2 
          SBN    11D
          PJN    PRS9        IF MORE THAN 10 PP-S 
          LDN    10D         SET 10 PPU,S 
          STD    PN 
 PRS9     LDN    PPCP        FETCH PP COMMUNICATION AREA POINTER
          CRD    CM 
          LDD    CM+4        SET FIRST PP INPUT REGISTER
          STD    PC          SET PP COMMUNICATION AREA POINTER
          LDK    MEFL        SET USER EM SHIFT COUNT
          CRD    CM 
          LDD    CM+2 
          SHN    -11
          STD    UE 
          LDC    EDBP        GET EXTENDED MEMORY DISPLAY BUFFER POINTER 
          CRD    CM 
          LDD    CM 
          STD    EB 
          LDD    CM+1 
          STD    EB+1 
  
*         CALL *9IA* TO COMPLETE PRESET.
  
          LDM    PRS         CALL *9IA* TO COMPLETE PRESET
          STM    EXR
          EXECUTE 9IA,* 
          LJM    EXR+1       LOAD OVERLAY 
  
  
 PRSC     DATA   C* INCORRECT COMMAND.* 
          SPACE  4
**        COMMON DECKS. 
  
  
*CALL     COMPCUA 
          QUAL
  
 IFP      HERE
          QUAL   *
  
  
          QUAL   *
  
 PRS      EQU    /PRESET/PRS
          SPACE  4,10 
**        DUMP INSTRUCTION MODIFICATION BLOCK.
  
  
          DIMB
          SPACE  4,10 
          OVERFLOW
          DISPLAY (PRESET PROGRAM.) 
          SPACE  4,10 
***       FINISH PRESETTING *DIS* RESIDENT. 
* 
*         1.  LOAD SUBROUTINES INTO THE MASS STORAGE DRIVER AREA. 
*         2.  CLEAR THE KEYBOARD BUFFER.
*         3.  ISSUE *RCPM* IF THE CONTROL POINT IS IN *I* STATUS. 
 PRP      SPACE  4,15 
***       PRP - PRESET PROGRAM. 
* 
*         FINISH PRESETTING *DIS* RESIDENT. 
* 
*         ENTRY  (T8) .NE. 0 = RESTART CPU PROGRAM WITH *RCPM*. 
* 
*         USES   T1, CM - CM+4. 
* 
*         CALLS  CKB, RDS.
* 
*         MACROS DFIM, DIMB, MDIN, MONITOR, SETMS.
  
  
 PRP      SUBR               ENTRY/EXIT 
          LDM    DCTY 
          ZJN    PRP1        IF THE CONSOLE IS A *CC545*
          MDIN
 PRP1     LDN    0
          STD    T1 
 PRP2     LDM    PRPA,T1     MOVE CODE TO DRIVER AREA 
          STM    MSFW,T1
          AOD    T1 
          LMC    PRPAL
          NJN    PRP2        IF NOT END OF MOVE 
          SETMS  NODRIVER    INVALIDATE DRIVER
          LDD    IR+4        CLEAR ROLLOUT/JOB CALL FLAG
          LPC    3777 
          STD    IR+4 
          LDD    IR+1 
          LPN    37          SET CP NUMBER FOR *1DL*
          RAM    LOVB+1 
          LDC    PRO         SET ADDRESS TO EXIT TO 
          STM    /COMDDSP/ROFA
          RJM    RDS         REQUEST DISPLAY
          RJM    CSB         CLEAR SCREEN BUFFER
          RJM    CKB         CLEAR KEYBOARD BUFFER
          LDN    ZERL        LAST 3 WORDS ALWAYS ZERO 
          CRM    KBUF+KBUFL-2,ON
          LDC    CJS         RESET PRESET CALL
          STM    DISD 
          LDD    T8 
          ZJN    PRP4        IF CP IS NOT IN *I* STATUS 
          MONITOR  RCPM 
 PRP4     LJM    PRPX        RETURN 
 DFT      SPACE  4
**        DISPLAY FIELD TABLES. 
  
  
 PRPA     BSS    0
          QUAL
          LOC    MSFW 
          CON    0
  
 DSAA     CON    0           CURRENT FNT INDEX
          CON    0           NEXT FNT INDEX 
  
          CON    0
 DSCA     CON    0,0
          CON    0,10 
          CON    0,20 
          CON    0,30 
  
          CON    0
 DSDA     CON    0,0
          CON    0,10 
          CON    0,20 
          CON    0,30 
  
  
          CON    0
 DSFA     CON    0,0
          CON    0,10 
          CON    0,20 
          CON    0,30 
  
          CON    0
 DSGA     CON    0,0
          CON    0,10 
          CON    0,20 
          CON    0,30 
  
 DSHA     CON    0
          CON    0
  
          CON    0
 DSMA     CON    0,0
          CON    0,10 
          CON    0,20 
          CON    0,30 
  
 DSTA     CON    0
 DSUA     CON    0
          CON    100
          CON    400
 DSVA     CON    0,0
  
 TDSL     CON    0,0
 LOV      SPACE  4
**        LOV - LOAD OVERLAY. 
* 
*         ENTRY  (A) = BITS 17-12 OVERLAY INDEX.
*                      BITS 11-00 ENTRY ADDRESS.
  
  
 LOV      STM    LOVA        SET ENTRY
          SHN    -14
          ZJN    LOV1        IF RESIDENT
          STD    T0 
          SHN    1
          SCN    77 
          LMD    T0 
          SCN    40 
          STD    T0 
          SHN    -6 
          ADD    T0 
          LMC    2L9"OVNB"
          ERRNZ  2R"OVNG"-2RIH  CODE ASSUMES *9I* AND *9H* OVERLAYS 
          STM    LOVB+4 
          SHN    -14
          STM    LOVB+3 
          SHN    6
          LMM    -5,LA
          SHN    6
          LMM    LOVB+4 
          SHN    6
          LMM    -4,LA
          ZJN    LOV1        IF PROGRAM IN CORE 
          RJM    LPP         LOAD PP PROGRAM
 LOV1     LDN    ZERL        CLEAR ASSEMBLY BUFFER
          CRD    AB 
          LDC    KBI5        CLEAR OVERLAY LOAD 
          STM    KBIA 
          LDC    OVL
          STD    LA 
          LDD    CA          (A) = CHARACTER ADDRESS
          LJM    *
 LOVA     EQU    *-1
  
 LOVB     VFD    24/3L1DL,12/CH,24/0
 LPP      SPACE  4
**        LPP - LOAD PP PROGRAM.
* 
*         ENTRY  (LOVB+3 - LOVB+4) = PP PROGRAM NAME. 
  
  
 LPP      SUBR               ENTRY/EXIT 
          PAUSE  NE          PAUSE FOR STORAGE RELOCATION 
          LDD    LA          SET LOAD ADDRESS 
          SBN    5
          STM    LPPC 
          EXECUTE 1DL,= 
          LDD    MA 
          CWM    LOVB,ON
          LDN    1           SELECT NO QUEUING OF PP REQUEST
          STD    CM+1 
          MONITOR  RPPM      CALL *1DL* 
          LDK    WDDC        SET KEYBOARD MESSAGE DELAY 
          STM    LPPD 
          LDD    CM+1        CHECK CALL 
          STM    LPPA 
          NJN    LPP1        IF PP AVAILABLE
          LDC    INTE 
          UJN    AOL1        ABORT OVERLAY LOAD 
  
*         WAIT FOR 1DL. 
  
 LPP1     RJM    KBIA        SET RE-ENTRY 
          DFIM   (CON SDCF),*+1 
          LDC    0
          CFNC               CLEAR DISPLAY
          LDC    **          READ PP INPUT REGISTER 
 LPPA     EQU    *-1
          CRD    CM 
          LDD    CM+1        CHECK INPUT REGISTER 
          LMM    LOVB+1 
          ZJN    LPP2        IF *1DL* 
  
*         AOL - ABORT OVERLAY LOAD. 
  
 AOL      LDN    0           CLEAR KEYBOARD MESSAGE 
 AOL1     STD    KM 
          LDD    LN          RESET LEFT SCREEN DISPLAY
          STD    LS 
          LDC    OVL         SET LOAD ADDRESS 
          STD    LA 
          DCN    CH+40
          CCF    *+2,CH      CLEAR CHANNEL FLAG 
          LDC    KBI5        CLEAR OVERLAY LOAD 
          STM    KBIA 
          LJM    KBI3        RETURN 
  
  
 LPP2     LDD    CM+2 
          LMC    7777 
          ZJN    LPP4        IF TRANSMISSION READY
          SOM    LPPD 
          SHN    -14
          ZJN    LPP3        IF THE DELAY HAS NOT EXPIRED 
          LDC    INTC 
 LPP3     DCN    CH+40
          CCF    *+2,CH      CLEAR CHANNEL FLAG 
          LJM    KIC         INCOMPLETE ENTRY 
  
*         INPUT OVERLAY.
  
 LPP4     LDD    TH 
          SBN    1
          NJN    *-1
          DCN    CH+40
*         LDN    0           SET RECEIVE READY
          STD    CM+2 
          STD    T1          SET TIMER
          LDM    LPPA 
          CWD    CM 
          ACN    CH+40
 LPP5     FJM    LPP6,CH     IF CHANNEL FULL
          SOD    T1 
          NJN    LPP5        IF NOT TIMED OUT 
          DCN    CH+40
          CCF    *+2,CH      CLEAR CHANNEL FLAG 
*         LDN    0
          UJP    AOL1        ABORT OVERLAY LOAD 
  
 LPP6     LCN    0           INPUT OVERLAY
          STD    T1 
          IAM    OVL,CH 
 LPPC     EQU    *-1
 LPP7     LDM    LPPA        CHECK INPUT REGISTER 
          CRD    CM 
          LDD    CM+1 
          LMM    LOVB+1 
          NJN    LPP8        IF *1DL* GONE
          SOD    T1 
          NJN    LPP7        IF DELAY NOT EXPIRED 
 LPP8     LDD    KM 
          LMC    INTC 
          NJN    LPP9        IF MESSAGE NOT *DISK BUSY.*
*         LDN    0           CLEAR KEYBOARD BUFFER
          STD    KM 
 LPP9     CCF    *+2,CH      CLEAR CHANNEL FLAG 
          LJM    LPPX        RETURN 
  
  
 LPPD     CON    WDDC        WAITING FOR DISK DELAY COUNT 
  
          ERRNG  PPFW-*      IF PP RESIDENT MEMORY OVERFLOW 
          LOC    *O 
          QUAL   *
 PRPAL    EQU    *-PRPA 
          SPACE  4,10 
**        DUMP INSTRUCTION MODIFICATION BLOCK.
  
  
          DIMB
          SPACE  4,10 
          OVERFLOW  OVD 
          TTL    DIS - DISPLAY OVERLAYS.
          DISPLAY (DISPLAY A. - DAYFILE.) 
 .L       SET    0           RESET *.L* FOR THE DISPLAY OVERLAYS
 DSA      SPACE  4
***       *A* DISPLAY.
* 
*         DISPLAYS ACCUMULATED DAYFILE MESSAGES FOR JOB.
  
  
 DSA      ENTRY  DSA
 DSA      SUBR               ENTRY/EXIT 
          DISPHD (DIS A.  JOB DAYFILE.) 
          NFA    LFCN        READ NUMBER OF LOCAL FILES 
          CRD    T2          (T6) = NUMBER OF LOCAL FILES - 1 
  
*         NEXT INSTRUCTION IS AN *SBK* BECAUSE THE TAGS ARE IN NFL. 
  
          SBK    DAPN-LFCN   READ DAYFILE BUFFER POINTERS 
          CRD    AB 
          ADN    1
          CRD    T1 
          ADN    1           READ FILE STATUS 
          CRD    CM 
          NFA    DAYN        SET ABSOLUTE VALUE OF FIRST
          STD    AB+1 
          SHN    -14
          STD    AB 
          RJM    SDF         SET DISPLAY FWA
  
*         DISPLAY NEXT LINE.
  
 DSA1     LDN    2           OUTPUT COORDINATES 
          OAM    XC,CH
 DSA2     LDN    6           SET WORD COUNT PER LINE
          STD    T5 
 DSA3     SOD    T5 
          MJN    DSA6        IF EDGE OF SCREEN
          LDD    AB          DISPLAY NEXT WORD
          LPN    77 
          SHN    14 
          ADD    AB+1 
          ADD    T7 
          CRD    CM 
          RJM    DWD         DISPLAY WORD 
          AOD    T7          UPDATE INDEX 
          LMD    T3 
          NJN    DSA4        IF NOT AT END OF BUFFER
          STD    T7 
 DSA4     LDD    T7 
          LMD    T2 
          ZJN    DSA7        IF ALL DATA DISPLAYED
          LDD    CM+4 
          NJN    DSA3        IF NOT END OF LINE 
          LDD    T5 
          LMN    5
          NJN    DSA5        IF NOT FIRST WORD OF LINE
          LDD    CM 
          ZJN    DSA1        IF NULL LINE 
 DSA5     LCN    YINC        UPDATE Y-COORDINATE
          RAD    YC 
          UJN    DSA1        PROCESS NEXT LINE
  
 DSA6     LDC    CH11        ADJUST X-COORDINATE FOR SECOND LINE
          OAN    CH+40
          LCN    YINC        MOVE DOWN ONE LINE 
          RAD    YC 
          OAN    CH+40
          LJM    DSA2        FINISH CURRENT LINE
  
*         DISPLAY FILES TO END OF SCREEN. 
  
 DSA7     LCN    2*YINC      SET Y-COORDINATE 
          ADM    SDFA 
          OAN    CH+40
          SBN    YINC 
          STD    YC 
          LDD    SM 
          ZJN    DSA8        IF UNSECURED SYSTEM
          LDN    DSAB2-DSAB1
 DSA8     ADN    DSAB1
          OAM    DSAB,CH     DISPLAY COLUMN HEADERS 
*         LDN    0
          STM    /COMDDIS/D4SB  CLEAR *. *
          STM    /COMDSYS/D6SA
          STM    //DSAA+1    CLEAR NEXT INDEX 
          LDM    //DSAA      SET CURRENT INDEX
          STD    T7 
          SHN    1
          ADD    T7 
          STD    T1 
          LDC    FNTN-LENF
          ADD    T1 
          STD    FA 
 DSA9     LDN    LENF        ADVANCE FNT ADDRESS
          RAD    FA 
          SBD    NL 
          PJN    DSA10       IF END OF LOCAL FNT
          AOD    T7          ADVANCE FILE ORDINAL 
          NFA    FA,R        READ FNT ENTRY 
          CRD    CM 
          LDD    CM 
          ZJN    DSA9        IF EMPTY ENTRY 
          LDC    CH01        OUTPUT X-COORDINATE
          OAN    CH+40
          LCN    YINC        DECREMENT Y-COORDINATE 
          RAD    YC 
          OAN    CH+40       OUTPUT Y-COORDINATE
          SBM    CBOS 
          PJN    DSA11       IF NOT BOTTOM OF SCREEN
          LDN    MOREL
          OAM    MORE,CH     DISPLAY *MORE* 
          SOD    T7          SET NEXT INDEX 
          STM    //DSAA+1 
 DSA10    LDC    2R.         RESTORE *. * 
          STM    /COMDDIS/D4SB
          STM    /COMDSYS/D6SA
          LJM    DSAX        RETURN 
  
 DSA11    LDD    T7          DISPLAY NUMBER 
          SBN    1
          RJM    D4S
          LDN    0           SKIP TWO SPACES
          OAN    CH+40
          LDN    3           DISPLAY NAME 
          OAM    CM,CH
          LDD    CM+3 
          SCN    77 
          OAN    CH+40
          LDC    CH18        OUTPUT X-COORDINATE
          OAN    CH+40
          LDD    CM+4        INDEX = TYPE 
          SHN    14 
          STD    T1 
          SHN    -14
          STD    T9 
          LDM    TFNT,T1     DISPLAY TYPE 
          OAN    CH+40
          LDD    CM+3        EXTRACT LOCK BIT 
          LPN    1
          ZJN    DSA12       IF NOT LOCKED
          LDC    2R*
 DSA12    OAN    CH+40       DISPLAY (*) FOR LOCK 
          NFA    FA,R        READ FST INFORMATION 
          ADN    FSTL 
          CRD    CM 
          ADN    FUTL-FSTL   READ FUT INFORMATION 
          CRD    AB 
          LDD    CM          DISPLAY EQUIPMENT
          RJM    D4S
          SFA    EST,CM 
          ADK    EQDE 
          CRD    T1 
          LDD    T1 
          SHN    21-13
          PJN    DSA13       IF NOT MASS STORAGE DEVICE 
          LDD    CM+1        DISPLAY FIRST TRACK
          RJM    D4S
 DSA13    LDC    CH35        OUTPUT X-COORDINATE
          OAN    CH+40
          LDM    TSID,T9     DISPLAY ID STATUS
          OAN    CH+40
          LDN    0
          OAN    CH+40
          LDD    CM+4        DISPLAY STATUS 
          RJM    D6S
          LDD    SM 
          ZJN    DSA14       IF UNSECURED SYSTEM
          LDN    0
          OAN    CH+40
          LDD    AB+2        GET FILE ACCESS LEVEL
          LPN    7
          RJM    DAL         DISPLAY FILE ACCESS LEVEL
 DSA14    LJM    DSA9        DISPLAY NEXT FILE
  
  
 DSAB     CON    CH02 
          DATA   4HFNT
          CON    CH09 
          DATA   4HNAME 
          CON    CH17 
          DATA   30HTYPE  EST  TRACK  FS   STATUS 
 DSAB1    EQU    *-DSAB 
          CON    CH49 
          DATA   6HLEVEL
 DSAB2    EQU    *-DSAB 
 TSID     SPACE  4,10 
**        TSID - TABLE OF STATUS VALUE-ID CODE CORRESPONDENCES. 
  
  
 TSID     INDEX 
          INDEX  UPST,2RUP   USER FILE PRIVACY
          INDEX  SSST,2RSS   SPECIAL SYSTEM JOB FILE
          INDEX  CBST,2RCB   CB CHECKPOINT FILE 
          INDEX  CKST,2RCK   CK CHECKPOINT FILE 
          INDEX  SOST,2RSO   SPECIAL OUTPUT FILE
          INDEX  AAST,2RAA   APPLICATION ACCOUNTING FILE
          INDEX  NDST,2RND   NO DROP FILE 
          INDEX  MXST        END OF TABLE 
 SDF      SPACE  4,25 
**        SDF - SET DISPLAY FWA.
* 
*         ENTRY  (AB - AB+4) = FIRST WORD OF DAYFILE BUFFER POINTERS. 
*                (T1 - T1+4) = SECOND WORD OF DAYFILE BUFFER POINTERS.
*                (CM - CM+4) = THIRD WORD OF DAYFILE BUFFER POINTERS. 
* 
*         EXIT   (T2) = *IN*. 
*                (T7) = POINTER WITHIN BUFFER TO FIRST LINE OF DISPLAY. 
*                (YC) = (*CTOS*). 
*                TO *DSAX* IF THE DAYFILE BUFFER IS EMPTY.
* 
*         USES   AB+2, T2, T4, T7, T8, T9, CM - CM+4. 
* 
*         NOTE - *SDF* USES THE FOLLOWING BYTES FROM THE DAYFILE BUFFER 
*         POINTER WORDS.
* 
*                (AB - AB+1) = FWA OF BUFFER. 
*                (AB+4) = *IN*. 
*                (T1+2) = *LIMIT*.
*                (T1+4) = *OUT*.
*                (CM+1) = FIRST TRACK OF DAYFILE FILE.
*                (CM+2) = CURRENT TRACK OF DAYFILE FILE.
*                (CM+3) = CURRENT SECTOR OF DAYFILE FILE. 
  
  
 SDF      SUBR               ENTRY/EXIT 
          LDD    AB+4        START DISPLAY AT *IN*
          STD    T4 
          STD    T7 
          STD    T2          SAVE *IN*
          LDD    CM+1        COMPARE CURRENT TRACK AND FIRST TRACK
          LMD    CM+2 
          NJN    SDF1        IF BUFFER DUMPED 
          LDD    CM+3        COMPARE CURRENT SECTOR TO SYSTEM SECTOR
          SBN    FSMS+1 
          PJN    SDF1        IF BUFFER DUMPED 
          LDD    T1+4        START DISPLAY AT *OUT* 
          STD    T4 
          LMD    AB+4 
          NJN    SDF1        IF *OUT* .NE. *IN* 
          LJM    DSAX        EXIT 
  
 SDF1     LDM    CTOS        SET Y-COORDINATE 
          STD    YC 
          STD    T9          INITIALIZE LINE COUNTER
          LDM    DCTY        DETERMINE LAST LINE OF DAYFILE 
          ZJN    SDF1.1      IF *CC545* 
          LDK    9D*YINC
 SDF1.1   SBK    21D*YINC 
          ADD    YC 
          STM    SDFA        SET LAST LINE OF DAYFILE 
          LDN    0
 SDF2     STD    T8          INITIALIZE LINE LENGTH COUNTER 
          STD    AB+2        SAVE INITIAL VALUE 
 SDF2.1   SOD    T7          DECREMENT POINTER
          PJN    SDF3        IF POINTER .GE. *FIRST*
          ADD    T1+2        POINTER = *LIMIT* - 1
          STD    T7 
 SDF3     SBD    T4 
          NJN    SDF3.1      IF NOT BACK TO START OF DISPLAY
          LJM    SDFX        RETURN 
  
 SDF3.1   LDD    AB          READ WORD FROM BUFFER
          SHN    14 
          LMD    AB+1 
          ADD    T7 
          CRD    CM 
          AOD    T8          INCREMENT LINE LENGTH COUNTER
          LDD    CM+4 
          NJN    SDF2.1      IF NOT END OF LINE 
          LDD    T8 
          SHN    -1 
          NJN    SDF5        IF NOT NULL LINE 
 SDF4     LDD    CM 
          ZJN    SDF2        IF NULL WORD 
          LDN    1
          UJN    SDF2        FIND NEXT LINE 
  
 SDF5     SHN    -2 
          ZJN    SDF6        IF LINE WAS SIX OR LESS WORDS LONG 
          LCN    YINC 
 SDF6     SBN    YINC 
          RAD    T9          UPDATE LINE COUNT
          SBM    SDFA 
          ZJN    SDF7        IF EXACTLY AT THE BOTTOM LINE
          PJN    SDF4        IF NOT AT THE BOTTOM LINE YET
          LDD    T8          GO BACK TO THE NEXT LINE 
          SBD    AB+2        SKIP PAST NULL WORD IF NECESSARY 
 SDF7     ADN    1
          RAD    T7 
          SBD    T1+2 
          MJN    SDF8        IF POINTER .LT. *LIMIT*
          STD    T7 
 SDF8     LJM    SDFX        RETURN 
  
 SDFA     CON    T545-21D*YINC  BOTTOM LINE FOR THE DAYFILE 
          DISPLAY (DISPLAY X. - EXCHANGE PACKAGE.)
 DSB      SPACE  4,10 
***       *X* DISPLAY.
* 
*         DISPLAY OF THE BREAKPOINT ADDRESS LINE AND
*         EXCHANGE PACKAGE WHEN THE CPU IS NOT ACTIVE.
  
  
 DSX      ENTRY  DSX
 DSX      SUBR               ENTRY/EXIT 
          DISPHD (DIS X.  EXCHANGE PACKAGE.)
  
*         DISPLAY BREAKPOINT ADDRESS LINE.
  
          LDD    BA          CHECK BREAKPOINT ADDRESS 
          ADD    BA+1 
          ZJN    DSX1        IF NOT SET 
          DISPLA CH06,LN06,(BKP = ) 
          LDD    BA          DISPLAY BREAKPOINT ADDRESS 
          SHN    14 
          LMD    BA+1 
          RJM    D6S
  
*         DISPLAY EXCHANGE PACKAGE. 
  
 DSX1     LDD    CP          GET CPU STATUS 
          ADN    STSW 
          CRD    CM 
          LDD    CM 
          SHN    -11
          LMN    1RA
          ZJN    DSXX        IF JOB ACTIVE IN CPU 0 
          LMN    1RB&1RA
          ZJN    DSXX        IF JOB ACTIVE IN CPU 1 
          LDC    LN08        SET Y-COORDINATE 
          STD    YC 
          LDN    0           CLEAR  *. *
          STM    /COMDSYS/D6SA
          STD    T7          CLEAR EXCHANGE REGISTER INDEX
          LDM    CMEF 
          NJN    DSX2        IF NOT CYBER 176 MAINFRAME 
          LDC    2RPS        SET *PSD* REGISTER NAME
          STM    DSXBA
          LDC    2RD
          STM    DSXCA
 DSX2     LDD    YC          OUTPUT Y-COORDINATE
          OAN    CH+40
          LDC    CH06        OUTPUT X-COORDINATE
          OAN    CH+40
          LDD    CP 
          ADD    T7 
          CRD    CM 
          LPN    17 
          SBN    10 
          MJN    DSX3        IF NOT *X* REGISTER
          ADC    2RX0        DISPLAY *XX* 
          OAN    CH+40
          LDC    2R = 
          OAN    CH+40
          RJM    D5F         DISPLAY DIGITS 0-19
          LJM    DSX7        DISPLAY NEXT LINE
  
 DSX3     LDM    DSXB,T7     DISPLAY REGISTER LABEL 
          OAN    CH+40
          LDM    DSXC,T7
          OAN    CH+40
          LDC    2R=
          OAN    CH+40
          LDD    CM          DISPLAY DIGITS 0-1 
          SHN    -6 
          STD    T0 
          ZJN    DSX5        IF 2 LEADING ZEROS 
          SHN    -3 
          ZJN    DSX4        IF 1 LEADING ZERO
          ADN    1R0
          SHN    6
 DSX4     LMD    T0 
          SCN    70 
          ADN    1R0
          OAN    CH+40
          LDD    CM          DISPLAY DIGITS 2-3 
          RJM    D2D
          LDD    CM+1        DISPLAY DIGITS 4-7 
          RJM    D4D
          UJN    DSX6        DISPLAY A REGISTER 
  
*         PROCESS 2 LEADING ZEROS.
  
 DSX5     OAN    CH+40       OUTPUT ZERO BYTE 
          LDD    CM          DISPLAY DIGITS 2-7 
          SHN    14 
          LMD    CM+1 
          RJM    D6S
 DSX6     LDC    CH25        OUTPUT X-COORDINATE
          OAN    CH+40
          LDD    T7          DISPLAY *AX* 
          ADC    2RA0 
          OAN    CH+40
          LDC    2R = 
          OAN    CH+40
          LDC    CH30        OUTPUT X-COORDINATE
          OAN    CH+40
          LDD    CM+3        DISPLAY A REGISTER 
          SCN    77 
          SHN    6
          LMD    CM+2 
          SHN    6
          RJM    D6S
          LDC    CH41        OUTPUT X-COORDINATE
          OAN    CH+40
          LDD    T7          DISPLAY *BX* 
          ADC    2RB0 
          OAN    CH+40
          LDC    2R = 
          OAN    CH+40
          LDC    CH46        OUTPUT X-COORDINATE
          OAN    CH+40
          LDD    CM+3        DISPLAY B REGISTER 
          LPN    77 
          SHN    14 
          LMD    CM+4 
          RJM    D6S
 DSX7     LCN    YINC        DECREASE Y-COORDINATE
          RAD    YC 
          AOD    T7          ADVANCE EXCHANGE ADDRESS 
          LPN    7
          NJN    DSX8        IF NOT END OF FIELD
          LCN    YINC        DECREASE Y-COORDINATE
          RAD    YC 
          LDD    T7          CHECK INDEX
          LMN    20 
          ZJN    DSX9        IF END OF DISPLAY
 DSX8     LJM    DSX2        LOOP 
  
 DSX9     LDC    2R.         RESTORE *. * DISPLAY 
          STM    /COMDSYS/D6SA
          LDD    BF 
          ZJN    DSX10       IF BREAKPOINT NOT ACTIVE 
          DISPLA CH06,LN26,(+ AND - WILL SET *BKP* TO (P) +/- 1.) 
 DSX10    LJM    DSXX        RETURN 
  
  
 DSXB     DATA   H*P *
          DATA   H*RA*
          DATA   H*FL*
 DSXBA    DATA   H*EM*
*         DATA   H*PS*       (CYBER 176)
          DATA   H*RA*
          DATA   H*FL*
          DATA   H*MA*
          DATA   H*EE*
  
 DSXC     DATA   0
          DATA   0
          DATA   0
 DSXCA    DATA   0
*         DATA   L*D *       (CYBER 176)
          DATA   L*E *
          DATA   L*E *
          DATA   0
          DATA   L*A *
          DISPLAY (DISPLAY F. - CENTRAL MEMORY 4 GROUPS OF 5.)
 DSF      SPACE  4
***       *F* DISPLAY.
* 
*         DISPLAY CM IN 4 GROUPS OF 5 DIGITS, WITH
*         DISPLAY CODE TRANSLATION. 
  
  
 DSF      ENTRY  DSF
 DSF      SUBR               ENTRY/EXIT 
          DISPHD (DIS F.  CENTRAL MEMORY.)
          LDC    D4F         SET WORD FORMAT
          STD    T6 
          LDC    DSFA 
*         LDN    (NON-ZERO)  SIMULATE SECURED SYSTEM
          STD    T8 
          RJM    DCM         DISPLAY CENTRAL MEMORY 
          UJN    DSFX 
 D5D      SPACE 4 
**        D5D - DISPLAY 5 DIGITS. 
* 
*         ENTRY  (A) = DIGITS RIGHT ADJUSTED. 
* 
*         USES   T1.
* 
*         CALLS  D4D. 
  
  
 D5D      SUBR               ENTRY/EXIT 
          STD    T1          UNPACK, CONVERT UPPER DIGIT
          SHN    -14
          LPN    7
          ADN    1R0
          OAN    CH+40       DISPLAY ONE DIGIT
          LDD    T1 
          RJM    D4D         DISPLAY 4 DIGITS 
          UJN    D5DX        RETURN 
 D4F      SPACE 4 
**        D4F - DISPLAY 4 GROUPS OF 5 DIGITS. 
* 
*         ENTRY  (CM - CM+4) = CONTENTS OF CM WORD. 
* 
*         USES   T1.
* 
*         CALLS  D5D, DIN.
  
  
 D4F      SUBR               ENTRY/EXIT 
          LDD    XC          OUTPUT X-COORD 
          ADC    110
          OAN    CH+40
          LDD    CM+1        PACK 1ST BYTE
          SHN    -11
          STD    T1 
          LDD    CM 
          SHN    3
          ADD    T1 
          RJM    D5D         DISPLAY 5 DIGITS 
          LDD    CM+2        PACK 2ND BYTE
          SHN    -6 
          STD    T1 
          LDD    CM+1 
          LPC    777
          SHN    6
          ADD    T1 
          RJM    D5D         DISPLAY 5 DIGITS 
          LDD    CM+3        PACK 3RD BYTE
          SHN    -3 
          STD    T1 
          LDD    CM+2 
          LPN    77 
          SHN    11 
          ADD    T1 
          RJM    D5D         DISPLAY 5 DIGITS 
          LDD    CM+3        PACK 4TH BYTE
          LPN    7
          SHN    14 
          ADD    CM+4 
          RJM    D5D         DISPLAY 5 DIGITS 
          LDN    0           DISPLAY 2 SPACES 
          OAN    CH 
          RJM    DWD         DISPLAY WORD 
          LJM    D4FX        RETURN 
          DISPLAY (DISPLAY G. - CM, 4 GROUPS OF 5.) 
 DSG      SPACE  4
***       *G* DISPLAY.
* 
*         DISPLAY CM IN 4 GROUPS OF 5 DIGITS, WITH
*         INSTRUCTION FORMAT TRANSLATION. 
  
  
 DSG      ENTRY  DSG
 DSG      SUBR               ENTRY/EXIT 
          DISPHD (DIS G.  CENTRAL MEMORY.)
          LDC    D4F         SET WORD FORMAT
          STD    T6 
          LDC    DSGA 
*         LDN    (NON-ZERO)  SIMULATE SECURED SYSTEM
          STD    T8 
          RJM    DCM         DISPLAY CENTRAL MEMORY 
          UJN    DSGX        RETURN 
 D5D      SPACE 4 
**        D5D - DISPLAY 5 DIGITS. 
* 
*         ENTRY  (A) = DIGITS RIGHT ADJUSTED. 
* 
*         USES   T1.
* 
*         CALLS  D4D. 
  
  
 D5D      SUBR               ENTRY/EXIT 
          STD    T1          UNPACK, CONVERT UPPER DIGIT
          SHN    -14
          LPN    7
          ADN    1R0
          OAN    CH+40       DISPLAY ONE DIGIT
          LDD    T1 
          RJM    D4D         DISPLAY 4 DIGITS 
          UJN    D5DX        RETURN 
 D4F      SPACE 4 
**        D4F - DISPLAY 4 GROUPS OF 5 DIGITS. 
* 
*         ENTRY  (CM - CM+4) = CONTENTS OF CM WORD. 
* 
*         USES   T1, T3.
* 
*         CALLS  D5D, IIN.
  
  
 D4F      SUBR               ENTRY/EXIT 
          LDD    XC          OUTPUT X-COORD 
          ADC    110
          OAN    CH+40
          LDD    CM+1        PACK 1ST BYTE
          SHN    -11
          STD    T1 
          LDD    CM 
          SHN    3
          ADD    T1 
          RJM    D5D         DISPLAY 5 DIGITS 
          LDD    CM+2        PACK 2ND BYTE
          SHN    -6 
          STD    T1 
          LDD    CM+1 
          LPC    777
          SHN    6
          ADD    T1 
          RJM    D5D         DISPLAY 5 DIGITS 
          LDD    CM+3        PACK 3RD BYTE
          SHN    -3 
          STD    T1 
          LDD    CM+2 
          LPN    77 
          SHN    11 
          ADD    T1 
          RJM    D5D         DISPLAY 5 DIGITS 
          LDD    CM+3        PACK 4TH BYTE
          LPN    7
          SHN    14 
          ADD    CM+4 
          RJM    D5D         DISPLAY 5 DIGITS 
          LDN    0           DISPLAY 2 SPACES 
          OAN    CH+40
  
*         DISPLAY INSTRUCTION FORMAT TRANSLATION. 
  
          LDD    XC          SET PSEUDO X-COORDINATE
          ADC    26D*10+110 
          STD    T3 
          LDD    CM          DISPLAY PARCEL 0 
          SHN    -3 
          RJM    IIN         INTERPRET INSTRUCTION
          ZJN    D4F1        IF 30 BIT INSTRUCTION
          LDN    7*10        SET X-COORDINATE 
          ADD    T3 
          OAN    CH+40
          LDD    CM+1        DISPLAY PARCEL 1 
          LPC    777
          RJM    IIN         INTERPRET INSTRUCTION
          ZJN    D4F2        IF 30 BIT INSTRUCTION
 D4F1     LDC    14D*10      SET X-COORDINATE 
          ADD    T3 
          OAN    CH+40
          LDD    CM+2        DISPLAY PARCEL 2 
          LPN    77 
          SHN    14 
          LMD    CM+3 
          SHN    -11
          RJM    IIN
          ZJN    D4F3        IF 30 BIT INSTRUCTION
 D4F2     LDC    21D*10      SET X-COORDINATE 
          ADD    T3 
          OAN    CH+40
          LDD    CM+3        DISPLAY PARCEL 3 
          LPN    7
          SHN    14 
          LMD    CM+4 
          SHN    -6 
          RJM    IIN
 D4F3     LJM    D4FX        RETURN 
 IIN      SPACE  4
**        IIN - INTERPRET AND DISPLAY INSTRUCTION.
* 
*         ENTRY  (A) = 9 BIT OPCODE.
* 
*         EXIT   (A) " 0 IF 15 BIT INSTRUCTION ENCOUNTERED. 
* 
*         USES   T1, T2.
* 
*         CALLS  NONE.
  
  
*         PROCESS 03X INSTRUCTIONS. 
  
 IIN1     LDD    T1          GET OPCODE 
          LPN    7           GET X
          STD    T2 
          LDM    O3T,T2      DISPLAY MNEMONIC 
          OAN    CH+40
          LDN    1RX         DISPLAY * X* 
          OAN    CH+40
          LDN    0           SET 30 BIT INSTRUCTION FLAG
          UJN    IINX        RETURN 
  
*         PROCESS 5X, 6X, 7X INSTRUCTIONS.
  
 IIN2     SHN    -3 
          STD    T2          SAVE PRIMARY TYPE 5, 6, OR 7 
          LDM    SIM,T2      DISPLAY MENMONIC 
          OAN    CH+40
          LDD    T1          SET SUFFIX 
          LPN    70 
          SHN    -2 
          STD    T2 
          LDM    SIT,T2      DISPLAY FIRST SUFFIX WORD
          OAN    CH+40
          LDM    SIT+1,T2    DISPLAY SECOND SUFFIX WORD 
 IIN3     OAN    CH+40
          LPN    70          SET 15/30 BIT INSTRUCTION FLAG 
  
 IIN      SUBR               ENTRY/EXIT 
          STD    T1          SAVE OPCODE
          SHN    -3 
          SBN    3
          ZJN    IIN1        IF 03X INSTRUCTION 
          SBN    50-3 
          PJN    IIN2        IF 5X, 6X, OR 7X 
  
*         PROCESS 01, 02, 04-47 INSTRUCTIONS. 
  
          ADN    50 
          STD    T2 
          LDM    IND,T2      GET TABLE INDICES
          STD    T2 
          SHN    -6          GET MNEMONIC ORDINAL 
          STD    T1 
          LDM    TMN,T1      DISPLAY MNEMONIC 
          OAN    CH+40
          LDD    T2 
          LPN    77          DISPLAY SUFFIX 
          SHN    1
          STD    T2 
          LDM    OPT,T2      DISPLAY FIRST WORD OF SUFFIX WORD
          OAN    CH+40
          LDM    OPT+1,T2    DISPLAY SECOND SUFFIX WORD 
          UJN    IIN3        EXIT 
  
  
*         O3T - TABLE OF 03X INSTRUCTION MNEMONICS. 
  
 O3T      CON    2RZR        ZERO 
          CON    2RNZ        NON-ZERO 
          CON    2RPL        POSITIVE 
          CON    2RNG        NEGATIVE 
          CON    2RIR        IN RANGE 
          CON    2ROR        OUT OF RANGE 
          CON    2RDF        DEFINITE 
          CON    2RID        INDEFINITE 
  
*         SIM - TABLE OF SET INSTRUCTION MNEMONICS. 
  
 SIM      CON    2RSA        SET (AI) 
          CON    2RSB        SET (BI) 
          CON    2RSX        SET (XI) 
  
*         SIT - TABLE OF SET INSTRUCTION TYPES. 
  
 SIT      DATA   3LA+K       (AJ) + K 
          DATA   3LB+K       (BJ) + K 
          DATA   3LX+K       (XJ) + K 
          DATA   4HX+B       (XJ) + (BK)
          DATA   4HA+B       (AJ) + (BK)
          DATA   4HA-B       (AJ) - (BK)
          DATA   4HB+B       (BJ) + (BK)
          DATA   4HB-B       (BJ) - (BK)
  
*         IND - TABLE OF INDICES TO MNEMONIC CODES AND SUFFIXES FOR 
*         01, 02, 04-47 INSTRUCTIONS. 
* 
*                EACH ENTRY CONTAINS -
*                            VFD 6/ MNEMONIC TABLE ORDINAL. 
*                            VFD 6/ SUFFIX TABLE ORDINAL. 
  
  
 IND      BSS    0
          LOC    0
  
          CON    0000        00 - PS 0
          CON    0101        01 - RJ/RWE
          CON    0202        02 - JP B+K
          CON    0000        03 - (INSTRUCTION PROCESSED SEPARATELY)
          CON    0303        04 - EQ BB 
          CON    0403        05 - NE BB 
          CON    0503        06 - GE BB 
          CON    0603        07 - LT BB 
  
          CON    0704        10 - BX X
          CON    0705        11 - BX X*X
          CON    0706        12 - BX X+X
          CON    0707        13 - BX X-X
          CON    0710        14 - BX  -X
          CON    0711        15 - BXX*-X
          CON    0712        16 - BXX+-X
          CON    0713        17 - BXX--X
  
          CON    1014        20 - LX JK 
          CON    1114        21 - AX JK 
          CON    1015        22 - LX XB 
          CON    1115        23 - AX XB 
          CON    1215        24 - NX XB 
          CON    1315        25 - ZX XB 
          CON    1415        26 - UX XB 
          CON    1515        27 - PX XB 
  
          CON    1606        30 - FX X+X
          CON    1607        31 - FX X-X
          CON    1706        32 - DX X+X
          CON    1707        33 - DX X-X
          CON    2006        34 - RX X+X
          CON    2007        35 - RX X-X
          CON    2106        36 - IX X+X
          CON    2107        37 - IX X-X
  
          CON    1605        40 - FX X*X
          CON    2005        41 - RX X*X
          CON    1705        42 - DX X*X
          CON    2214        43 - MX JK 
          CON    1616        44 - FX X/X
          CON    2016        45 - RX X/X
          CON    2317        46 - NO
          CON    2420        47 - CX   X
          LOC    *O 
  
*         TMN - TABLE OF MNEMONICS FOR 01, 02, 04-47 INSTRUCTIONS.
  
 TMN      BSS    0
          LOC    0
  
          CON    2RPS        PROGRAM/ERROR STOP 
          CON    2RRJ        RETURN JUMP - READ/WRITE ECS/LCM 
          CON    2RJP        GO TO BI+K 
          CON    2REQ        GO TO K IF BI=BK 
          CON    2RNE        GO TO K IF BI"BJ 
          CON    2RGE        GO TO K IF BI\BJ 
          CON    2RLT        GO TO K IF BI<BJ 
          CON    2RBX        PERFORM BOOLEAN OPERATION
          CON    2RLX        PERFORM LOGICAL SHIFT
          CON    2RAX        PERFORM ARITHMETIC SHIFT 
          CON    2RNX        NORMALIZE (XI,BJ FROM XK)
          CON    2RZX        ROUND AND NORMALIZE (XI,BJ FROM XK)
          CON    2RUX        UNPACK (XK TO XI,BJ) 
          CON    2RPX        PACK (XI FROM XK,BJ) 
          CON    2RFX        PERFORM SINGLE PRECISION F.P. OPERATION
          CON    2RDX        PERFORM DOUBLE PRECISION F.P. OPERATION
          CON    2RRX        PERFORM ROUNDED SINGLE PREC. F.P. OPERATION
          CON    2RIX        PERFORM INTEGER ARITHMETIC OPERATION 
          CON    2RMX        SET A MASK OF JK BITS IN XI
          CON    2RNO        NO OPERATION (PASS)
          CON    2RCX        SET XI TO THE NUMBER OF 1 BITS IN XK 
          LOC    *O 
  
*         OPT - SUFFIXES FOR 01, 02, 04-47 INSTRUCTIONS.
  
 OPT      BSS    0
          DATA   3L 
          DATA   4H/RWE 
          DATA   3LB+K
          DATA   3L BB
          DATA   4H X 
          DATA   4HX*X
          DATA   4HX+X
          DATA   4HX-X
          DATA   4H -X
          DATA   4HX*-X 
          DATA   4HX+-X 
          DATA   4HX--X 
          DATA   4H JK
          DATA   4H XB
          DATA   4HX/X
          DATA   4H 
          DATA   4H  X
          DISPLAY (DISPLAY H. - FILE NAME TABLE.) 
 DSH      SPACE  4
***       *H* DISPLAY.
* 
*         DISPLAYS ALL FILES ASSIGNED TO CONTROL POINT ALONG WITH 
*         THE EQUIPMENT ASSIGNED TO THE FILES.
* 
*         EXAMPLE - 
* 
*             1         2         3         4         5         6 
*    1234567890123456789012345678901234567890123456789012345678901234 
* 
*     FNT    NAME    TYPE  EST  TRACK  FS   STATUS   LEVEL
* 
*       0    OUTPUT*  IN*    6  1234   ND       5    LVLXXXX
  
  
 DSH      ENTRY  DSH
 DSH      SUBR               ENTRY/EXIT 
          DISPHD (DIS H.  FILE STATUS.) 
          LDM    CTOS 
          OAN    CH+40
          SBN    YINC        SET Y-COORDINATE 
          STD    YC 
          LDD    SM 
          ZJN    DSH1        IF UNSECURED SYSTEM
          LDN    DSHB2-DSHB1
 DSH1     ADN    DSHB1
          OAM    DSHB,CH     DISPLAY COLUMN HEADERS 
*         LDN    0
          STM    /COMDDIS/D4SB  CLEAR *. *
          STM    /COMDSYS/D6SA
          STM    DSHA+1      CLEAR NEXT INDEX 
          LDM    DSHA        SET INDEX
          STD    T7 
          SHN    1
          ADD    T7 
          STD    T1 
          LDC    FNTN-LENF
          ADD    T1 
          STD    FA 
 DSH2     LDN    LENF        ADVANCE FNT ADDRESS
          RAD    FA 
          SBD    NL 
          MJN    DSH4        IF NOT END OF LOCAL FNT
 DSH3     LDC    2R.         RESTORE *. * 
          STM    /COMDDIS/D4SB
          STM    /COMDSYS/D6SA
          LJM    DSHX        RETURN 
  
 DSH4     AOD    T7          INCREMENT INDEX
          NFA    FA,R        READ FNT ENTRY 
          CRD    CM 
          LDD    CM 
          ZJN    DSH2        IF EMPTY ENTRY 
          LDC    CH01        OUTPUT X-COORDINATE
          OAN    CH+40
          LCN    YINC        DECREMENT Y-COORDINATE 
          RAD    YC 
          OAN    CH+40       OUTPUT Y-COORDINATE
          SBM    CBOS 
          NJN    DSH5        IF NOT BOTTOM OF SCREEN
          LDN    MOREL
          OAM    MORE,CH     DISPLAY *MORE* 
          SOD    T7          SET NEXT INDEX 
          STM    DSHA+1 
          UJN    DSH3        RETURN 
  
 DSH5     LDD    T7          DISPLAY NUMBER 
          SBN    1
          RJM    D4S
          LDN    0           SKIP TWO SPACES
          OAN    CH+40
          LDN    3           DISPLAY NAME 
          OAM    CM,CH
          LDD    CM+3 
          SCN    77 
          OAN    CH+40
          LDC    CH18        OUTPUT X-COORDINATE
          OAN    CH+40
          LDD    CM+4        INDEX = TYPE 
          SHN    14 
          STD    T1 
          SHN    -14
          STD    T9 
          LDM    TFNT,T1     DISPLAY TYPE 
          OAN    CH+40
          LDD    CM+3        EXTRACT LOCK BIT 
          LPN    1
          ZJN    DSH6        IF FILE UNLOCKED 
          LDC    2R*         DISPLAY (*) FOR LOCK 
 DSH6     OAN    CH+40
          NFA    FA,R        READ FST INFORMATION 
          ADN    FSTL 
          CRD    CM 
          ADN    FUTL-FSTL   GET ACCESS LEVEL 
          CRD    AB 
          LDD    CM          DISPLAY EQUIPMENT
          RJM    D4S
          SFA    EST,CM 
          ADK    EQDE 
          CRD    T1 
          LDD    T1 
          SHN    21-13
          PJN    DSH6.1      IF NOT MASS STORAGE DEVICE 
          LDD    CM+1        DISPLAY FIRST TRACK
          RJM    D4S
 DSH6.1   LDC    CH35        OUTPUT X-COORDINATE
          OAN    CH+40
          LDM    TSID,T9     DISPLAY ID STATUS
          OAN    CH+40
          LDN    0
          OAN    CH+40
          LDD    CM+4        DISPLAY STATUS 
          RJM    D6S
          LDD    SM 
          ZJN    DSH7        IF UNSECURED SYSTEM
          LDN    0
          OAN    CH+40
          LDD    AB+2        DISPLAY FILE ACCESS LEVEL
          LPN    7
          RJM    DAL
 DSH7     LJM    DSH2        DISPLAY NEXT FILE
  
  
 DSHB     CON    CH02 
          DATA   4HFNT
          CON    CH09 
          DATA   4HNAME 
          CON    CH17 
          DATA   30HTYPE  EST  TRACK  FS   STATUS 
 DSHB1    EQU    *-DSHB 
          CON    CH49 
          DATA   6HLEVEL
 DSHB2    EQU    *-DSHB 
 TSID     SPACE  4,10 
*         TSID - TABLE OF STATUS VALUE - ID CODE CORRESPONDENCES. 
  
  
 TSID     INDEX 
          INDEX  UPST,2RUP   USER FILE PRIVACY
          INDEX  SSST,2RSS   SPECIAL SYSTEM JOB FILE
          INDEX  CBST,2RCB   CB CHECKPOINT FILE 
          INDEX  CKST,2RCK   CK CHECKPOINT FILE 
          INDEX  SOST,2RSO   SPECIAL OUTPUT FILE
          INDEX  AAST,2RAA   APPLICATION ACCOUNTING FILE
          INDEX  NDST,2RND   NO DROP FILE 
          INDEX  MXST        END OF TABLE 
          DISPLAY (DISPLAY M - EXTENDED MEMORY DISPLAY.)
 DSM      ENTRY  DSM
 DSM      SPACE  4
***       *M* DISPLAY.
* 
*         DISPLAY EXTENDED MEMORY.
  
  
 DSM14    DISPLA CH01,LN06,(EXTENDED MEMORY EQUIPMENT UNDEFINED.) 
  
 DSM      SUBR               ENTRY/EXIT 
          DISPHD (DIS M.  EXTENDED MEMORY.) 
          LDD    EB 
          ADD    EB+1 
          ZJN    DSM14       IF NO EXTENDED MEMORY DEFINED
          LDD    UE          PRESET SHIFT INSTRUCTIONS
          ADD    TH 
          ERRNZ  SHNI-1000
          STM    DSMF 
          LMN    77 
          SBN    11 
          STM    DSMG 
          LDK    MEFL        SET EM CONFIGURATION 
          CRD    CM 
          LDD    CM+2 
          SHN    21-7 
          PJN    DSM1        IF NOT EXPANDED ADDRESSING MODE
          LCN    0
          STM    DSMA 
 DSM1     LDD    CP 
          ADN    ECSW        EXTENDED MEMORY STATUS WORD
          CRD    AB 
          LDD    AB+2        SET EXTENDED MEMORY RA (RAE) 
          SHN    14 
          ADD    AB+3 
 DSMF     SHN    0
*         SHN    UESC 
          SHN    11-14+22 
          STD    T6 
          SHN    11-11+14-22
          SCN    77 
          STD    T7 
          LDD    AB+4        SAVE EXTENDED MEMORY FL
          STD    T8 
          NJN    DSM2        IF EXTENDED MEMORY FL ASSIGNED 
          LJM    DSMX        RETURN 
  
 DSM2     LDC    DSMC        SET ADDRESS OF ERROR STATUS WORDS
          STD    T3 
          LDN    0           SET RELATIVE LIST ADDRESS
          STD    T4 
          ADN    4
          STD    T5 
          SOM    DSMB        CHECK REREAD COUNTER 
          MJN    DSM3        IF TIME TO REREAD
          LJM    DSM7        CHECK FOR ERRORS 
  
 DSM3     LDC    //DSMA      ADDRESS TABLE
          STD    T1 
          ADN    10          SET END OF TABLE 
          STD    T2 
          LDN    0
          STD    AB 
          STD    AB+2 
          LDN    10          SET UP ADDRESS LIST FOR ECSM FUNCTION
          STM    DSMB 
          SHN    6
          STD    AB+1        SET NUMBER OF WORDS IN EACH GROUP = 10 
 DSM4     LDI    T1 
          LPC    777         MASK ADDRESS TO 21 BITS
*         LPC    7777        (ABSOLUTE ESM MODE MASK) 
 DSMA     EQU    *-1
          STI    T1 
          STD    AB+3 
          AOD    T1 
          LDI    T1 
          STD    AB+4 
          LDD    T7          ADD RAE TO EM ADDRESS
          RAD    AB+4 
          SHN    -14
          ADD    T6 
          RAD    AB+3 
          LDD    EB 
          SHN    14 
          LMD    EB+1 
          ADD    T4 
          CWD    AB          WRITE ADDRESS LIST 
          AOD    T4 
          AOD    T1 
          LMD    T2 
          NJN    DSM4        IF NOT END OF ADDRESS TABLE
          LDD    EB+1        SET LIST ADDRESS IN *ECSM* REQUEST 
          STD    CM+2 
          LDD    EB 
          ADC    400         SET NUMBER OF ENTRIES IN LIST = 4
          STD    CM+1 
          LDC    PELS*1000+200  SET *ECSM* READ LIST (USER) REQUEST 
          STD    CM+3 
          MONITOR ECSM       READ EXTENDED MEMORY 
          LDN    3
          STM    DSME 
 DSM6     SOD    T4          READ ERROR RESPONSE
          LDD    EB 
          SHN    14 
          LMD    EB+1 
          ADD    T4 
          CRD    CM 
          LDD    CM+4 
          STM    0,T3 
 DSME     EQU    *-1
          SOM    DSME 
          PJN    DSM6        IF NOT END OF TABLE
 DSM7     LDN    0           TABLE INDEX
          STD    T6 
          LDC    LN07        SET Y-COORDINATE 
          STD    YC 
 DSM8     LDN    1           SET ERROR FLAG MASK
          STD    T4 
          LDI    T3          SET ERROR BITS 
          STM    DSMD 
          LDM    //DSMA,T6   EXTENDED MEMORY ADDRESS
          STD    AB 
          LDM    //DSMA+1,T6
          STD    AB+1 
 DSM9     LCN    YINC        DECREMENT Y-COORDINATE 
          RAD    YC 
          LDD    T4          CHECK FOR EXTENDED MEMORY ERROR
          LPC    1
 DSMD     EQU    *-1
          ZJN    DSM10       IF NO ERROR ON THIS WORD 
          CFNC   BIVF        BEGIN INVERSE VIDEO
          LDD    CC 
          ADD    T5 
          LPN    3
 DSM10    STD    T2          SET INTENSIFICATION COUNT
          LDN    2           OUTPUT COORDINATES 
          OAM    XC,CH
          LDD    AB          DISPLAY ADDRESS
          RJM    D4D
          LDD    AB+1 
          RJM    D4D
          LDD    SM 
          ZJN    DSM10.2     IF SYSTEM UNSECURED
          LDD    AB          GET ADDRESS
          SHN    14 
          LMD    AB+1 
 DSMG     SHN    -11         CHECK ADDRESS
*         SHN    -11-UESC 
          SBD    T8 
          MJN    DSM10.2     IF ADDRESS WITHIN EM FL
          LDN    DCMFL       DISPLAY SECURITY BLANKET 
          OAM    DCMF,CH
          UJN    DSM10.3     CONTINUE 
  
 DSM10.2  LDD    EB          READ AND DISPLAY WORD
          SHN    14 
          LMD    EB+1 
          ADD    T5 
          CRD    CM 
          RJM    D5F         DISPLAY WORD 
 DSM10.3  LDM    DCTY 
          NJN    DSM10.4     IF CDC 721 CONSOLE 
          SOD    T2 
          PJP    DSM10       IF MORE INTENSIFICATION
 DSM10.4  CFNC   EIVF        END INVERSE VIDEO
          AOD    AB+1        INCREMENT ADDRESS
          SHN    -12D 
          RAD    AB 
          AOD    T5 
          LDD    T4          SHIFT MASK 
          SHN    1
          STD    T4 
          SHN    -10
          NJN    DSM11       IF END OF GROUP
          LJM    DSM9        CHECK FOR ERRORS 
  
 DSM11    LCN    YINC        DECREMENT Y-COORDINATE 
          RAD    YC 
          AOD    T3          ADVANCE ERROR WORD POINTER 
          LDN    2
          RAD    T6 
          LMN    10 
          ZJN    DSM13       IF END OF DISPLAY
          LDM    DCTY 
          ZJN    DSM12       IF CC545 CONSOLE 
          LDD    T6 
          LMN    4
          ZJN    DSM13       IF END OF DISPLAY FOR CDC 721 CONSOLE
 DSM12    LJM    DSM8        CHECK FOR ERRORS 
  
 DSM13    LJM    DSMX        RETURN 
  
 DSMB     CON    0           REREAD COUNTER 
 DSMC     BSS    4           ERROR INDICATION TEMPORARIES 
          DISPLAY  (DISPLAYS T,U. - TEXT DISPLAYS.) 
 DST      SPACE  4,10 
***       DISPLAY T.   TEXT DISPLAY.
* 
*         DISPLAYS TEXT FROM CENTRAL MEMORY IN CODED LINES. 
*         LINES ARE FOLDED AT 60 CHARACTERS.
  
  
 DST      ENTRY  DST
 DST      SUBR               ENTRY/EXIT 
          DISPHD (DIS T.  TEXT DISPLAY.)
          LDC    DSTA        DISPLAY CHARACTER TEXT 
          RJM    DCT
          UJN    DSTX        RETURN 
 DSU      SPACE  4,10 
***       DISPLAY U.   TEXT DISPLAY.
* 
*         DISPLAYS TEXT FROM CENTRAL MEMORY IN CODED LINES. 
*         LINES ARE FOLDED AT 60 CHARACTERS.
  
  
 DSU      ENTRY  DSU
 DSU      SUBR               ENTRY/EXIT 
          DISPHD (DIS U.  TEXT DISPLAY.)
          LDC    DSUA        DISPLAY CHARACTER TEXT 
          RJM    DCT
          UJN    DSUX        RETURN 
 DCT      SPACE  4,10 
**        DCT - DISPLAY CHARACTER TEXT. 
* 
*         ENTRY  (A) = ADDRESS TABLE ADDRESS. 
* 
*         USES   T1, T4, T5, T6, T7, CM - CM+4. 
* 
*         CALLS  CYC, DLA, D6S, SMD.
  
  
 DCT      SUBR               ENTRY/EXIT 
          STD    T1 
          DISPLA CH01,BL01,(ADDRESS =)
          LDI    T1          SET DISPLAY ADDRESS
          STD    T6 
          SHN    14 
          ADM    2,T1 
          STD    T7 
          RJM    D6S         DISPLAY ADDRESS
          LDC    LN06        SET Y-COORDINATE 
          STD    YC 
          LCN    0           SET WORD COUNTER 
          STD    T5 
          LDN    T6          SET POINTER TO ADDRESS 
          STD    T2 
          LDD    SM          GET SECURITY MODE
          STD    T8 
  
*         PROCESS END OF LINE.
  
 DCT1     LCN    0           RESET CHARACTER COUNT
          STD    T4 
          RJM    DLA         DISPLAY LINE ADVANCE 
 DCT2     MJN    DCTX        IF END OF SCREEN 
  
*         DISPLAY LINE. 
  
 DCT3     AOD    T5          ADVANCE MEMORY INDEX 
          LDD    T6          CHECK ADDRESS .LE. 131K
          SHN    14 
          ADD    T7 
          ADD    T5 
          MJN    DCT2        IF ADDRESS .GT. 131K 
          SHN    14          READ MEMORY
          ADD    RA 
          SHN    6
          CRD    CM 
          AOD    T4          ADVANCE CHARACTER COUNT
          LMN    6
          NJN    DCT3.5      IF NOT END OF SCREEN 
          STD    T4          RESET CHARACTER COUNT
          RJM    DLA         DISPLAY LINE ADVANCE 
          MJN    DCT2        IF END OF SCREEN 
 DCT3.5   RJM    SMD         SECURE MEMORY DISPLAY
          ZJN    DCT4        IF WORD MAY BE DISPLAYED 
          LDN    DCMFL       DISPLAY SECURITY BLANKET 
          OAM    DCMF,CH
          UJN    DCT1        CONTINUE 
  
 DCT4     LDM    DCTY 
          ZJN    DCT5        IF THE CONSOLE IS A CC545
          RJM    CYC         CHECK Y-COORDINATES
 DCT5     LDN    5           DISPLAY WORD 
          OAM    CM,CH
          LDD    CM+4 
          ZJP    DCT1        IF END OF LINE 
          LJM    DCT3        CONTINUE 
 CYC      SPACE  4,10 
**        CYC - CHECK Y-COORDINATES.
* 
*         ENTRY  (CM - CM+4) = WORD TO BE CHECKED.
* 
*         EXIT   OUT OF BOUNDS Y-COORDINATES REPLACED WITH *LN06*.
* 
*         USES   T0.
  
  
 CYC      SUBR               ENTRY/EXIT 
          LDN    CM          CHECK Y-COORDINATES
          STD    T0 
 CYC1     LDI    T0 
          ADC    -LN51
          MJN    CYC3        IF BYTE IS NOT A Y-COORDINATE
          ADK    -LN46+LN51 
          MJN    CYC2        IF Y-COORDINATE IS IN THE TRAILER AREA 
          ADK    -LN06-1+LN46 
          MJN    CYC3        IF Y-COORDINATE IS NOT IN THE HEADER AREA
 CYC2     LDC    LN06        FORCE Y-COORDINATE TO LINE BELOW ADDRESS 
          STI    T0 
 CYC3     AOD    T0 
          SBN    CM+5 
          MJN    CYC1        IF MORE BYTES TO CHECK 
          UJN    CYCX        RETURN 
          DISPLAY (DISPLAY V. - CENTRAL MEMORY BUFFER.) 
 DSV      SPACE  4
***       *V* DISPLAY.
* 
*         DISPLAY CM.  THE DISPLAY TERMINATES AFTER 240 WORDS 
*         HAVE BEEN DISPLAYED ON A CC545 OR 120 WORDS HAVE
*         BEEN DISPLAYED ON A CDC 721.
  
  
 DSV      ENTRY  DSV
 DSV      SUBR               ENTRY/EXIT 
          DISPHD (DIS V.  CM BUFFER.) 
          DISPLA CH01,BL01,(ADDRESS =)
          LDM    DSVA        SET DISPLAY ADDRESS
          LPN    37 
          STD    T6 
          SHN    14 
          LMM    DSVA+1 
          STD    T7 
          RJM    D6S         DISPLAY ADDRESS
          LDN    50          SET LOOP COUNT FOR 40 GROUPS OF 6
          STD    T5 
          LDM    DCTY 
          ZJN    DSV1        IF CC545 CONSOLE 
          LDN    24          SET LOOP COUNT FOR 20 GROUPS OF 6
          STD    T5 
 DSV1     LDC    LN06        SET Y-COORDINATE 
          STD    YC 
 DSV2     RJM    DLA         DISPLAY LINE ADVANCE 
          LDN    6           SET GROUP SIZE 
          STD    T1 
          LDN    0
          STD    T2 
          LDD    T6          CHECK FWA .LE. 131K
          SHN    14 
          LMD    T7 
          PJN    DSV3        IF FWA .LE. 131K 
          LJM    DSVX        RETURN 
  
 DSV3     ADN    6           CHECK FOR FINAL GROUP
          PJN    DSV4        IF NOT FINAL GROUP 
          LPN    7           SET FINAL GROUP SIZE 
          LMN    7
          ADN    1
          STD    T1 
 DSV4     LDD    T6          GET LWA
          SHN    14 
          LMD    T7 
          ADD    T1 
          SHN    -6          CHECK LWA
          SBD    FL 
          MJN    DSV7        IF WORD GROUP MAY BE DISPLAYED 
          NJN    DSV5        IF WORD GROUP IS SECURED AREA
          LDD    T7          DETERMINE NUMBER OF SECURED WORDS
          ADD    T1 
          LPN    77 
          STD    T2 
          SBD    T1 
          MJN    DSV6        IF NOT ALL WORDS ARE IN SECURED AREA 
 DSV5     LDD    T1 
          STD    T2 
 DSV6     LDD    T1          NUMBER OF WORDS WHICH CAN BE DISPLAYED 
          SBD    T2 
          STD    T1 
 DSV7     LDD    T1 
          ZJN    DSV8        IF NO WORDS TO DISPLAY 
          LDD    T6          READ GROUP OF CM WORDS 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    T7 
          CRM    DSVC,T1
          LDM    DCTY 
          ZJN    DSV7.1      IF THE CONSOLE IS A CC545
          RJM    CYC         CHECK Y-COORDINATES
 DSV7.1   LDD    T1          DISPLAY GROUP OF CM WORDS
          SHN    2
          ADD    T1 
          OAM    DSVC,CH
 DSV8     LDD    T2 
          ZJN    DSV9        IF NO SECURITY BLANKETS TO DISPLAY 
          SHN    2
          ADD    T2 
          OAM    DSVD,CH     DISPLAY SECURITY BLANKETS
 DSV9     LDD    T1          INCREMENT GROUP ADDRESS
          ADD    T2 
          RAD    T7 
          SHN    -14
          RAD    T6 
          SOD    T5          DECREMENT GROUP COUNT
          ZJN    DSV10       IF ALL GROUPS DISPLAYED
          LJM    DSV2        DISPLAY NEXT LINE
  
 DSV10    LJM    DSVX        RETURN 
  
 DSVC     BSS    6*5         SCRATCH AREA FOR CURRENT LINE
 DSVD     BSS    0
          DUP    6,1
          DATA   C$* SECURE *$
 CYC      SPACE  4,10 
**        CYC - CHECK Y-COORDINATES.
* 
*         ENTRY  (T1) = NUMBER OF WORDS TO BE CHECKED.
*                (DSVC - DSVC+(T1)*5-1) = WORDS TO BE CHECKED.
* 
*         EXIT   OUT OF BOUNDS Y-COORDINATES REPLACED WITH *LN06*.
* 
*         USES   T1, T4.
  
  
 CYC      SUBR               ENTRY/EXIT 
          LDD    T1 
          SHN    2
          ADD    T1 
          STD    T4 
 CYC1     SOD    T4 
          MJN    CYCX        IF DONE, RETURN
          LDM    DSVC,T4
          ADC    -LN51
          MJN    CYC1        IF BYTE IS NOT A Y-COORDINATE
          ADK    -LN46+LN51 
          MJN    CYC2        IF Y-COORDINATE IS IN THE TRAILER AREA 
          ADK    -LN06-1+LN46 
          MJN    CYC1        IF Y-COORDINATE IS NOT IN THE HEADER AREA
 CYC2     LDC    LN06        FORCE Y-COORDINATE TO LINE BELOW ADDRESS 
          STM    DSVC,T4
          UJN    CYC1        CHECK NEXT BYTE
          DISPLAY (DISPLAY Y. - MONITOR FUNCTIONS.) 
 DSY      SPACE  4
***       *Y* DISPLAY.
* 
*         DISPLAY MNEMONICS AND VALUES OF ALL MONITOR FUNCTIONS.
  
  
  
 DSY      ENTRY  DSY
 DSY      SUBR               ENTRY/EXIT 
          DISPHD (DIS Y.  MONITOR FUNCTIONS.) 
*         LDN    0           CLEAR FUNCTION TABLE INDEX 
          STD    T6 
          STD    T7 
          LDC    CH01        SET X-COORDINATE 
          STD    XC 
 DSY1     LDM    CTOS        SET Y-COORDINATE TO (*CTOS*) OR *LN06* 
          SBK    LN06 
          MJN    DSY1.1      IF STARTING LINE IS BELOW LINE 6 
          LDN    0
 DSY1.1   ADK    LN06 
          STD    YC 
 DSY2     LDN    2           OUTPUT COORDINATES 
          OAM    XC,CH
          LDN    2           ADVANCE TABLE
          RAD    T7 
          LDM    TFTN,T7
          NJN    DSY3        IF NOT END OF TABLE
          LDC    CH01        RESET X-COORDINATE 
          STD    XC 
          LJM    DSYX        RETURN 
  
 DSY3     LDD    T7          DISPLAY VALUE
          SHN    -1 
          RJM    D4S
          LDM    TFTN,T7     DISPLAY FUNCTION NAME
          OAN    CH+40
          LDM    TFTN+1,T7
          OAN    CH+40
          LDD    T7 
          LPN    37 
          NJN    DSY4        IF NOT END OF COLUMN 
          LDC    XINC*14     ADVANCE X-COORDINATE 
          RAD    XC 
          LJM    DSY1        LOOP 
  
 DSY4     LPN    17 
          ZJN    DSY5        IF DOUBLE SPACING
          LDN    YINC/2+1    DECREMENT Y-COORDINATE 
          SBM    DCTY 
          SHN    -1+22
 DSY5     ADM    DCTY 
          SBN    YINC/2+1 
          SHN    2
          RAD    YC 
          LJM    DSY2        LOOP 
          SPACE  4
*         COMMON DECKS. 
  
  
*CALL     COMDTFN 
          CON    0
          DISPLAY (DISPLAY Z. - DIRECTORY.) 
 DSZ      SPACE  4
***       *Z* DISPLAY.
* 
*         DISPLAY DIRECTORY OF ALL DISPLAYS.
  
  
 DSZ      ENTRY  DSZ
 DSZ      SUBR               ENTRY/EXIT 
          DISPHD (DIS Z.  DIRECTORY.) 
          LCN    0           CLEAR INDEX
          STD    T1 
          LDC    CH13        SET X-COORDINATE 
          STD    XC 
          LDM    CTOS        SET Y-COORDINATE TO (*CTOS*) OR *LN06* 
          SBK    LN06 
          MJN    DSZ0        IF STARTING LINE IS BELOW LINE 6 
          LDN    0
 DSZ0     ADK    LN06 
          STD    YC 
 DSZ1     LDN    2           OUTPUT COORDINATES 
          OAM    XC,CH
 DSZ2     AOD    T1          ADVANCE BYTE 
          LDM    DSZA,T1     OUTPUT BYTE
          OAN    CH+40
          NJN    DSZ2        IF NOT END OF MESSAGE
          LDM    DCTY        DECREMENT Y-COORDINATE 
          SHN    1
          SBN    YINC+2 
          RAD    YC 
          LDM    DSZA+1,T1   CHECK NEXT MESSAGE 
          NJN    DSZ1        IF NOT EMPTY MESSAGE 
          LDC    CH01        RESET X-COORDINATE 
          STD    XC 
          LJM    DSZX        RETURN 
  
 DSZA     BSS    0
          DATA   C*LEFT SCREEN ONLY DISPLAY*
  
          DATA   C* *        BLANK LINE 
  
          DATA   C*A   JOB DAYFILE.*
  
          DATA   C*F   CENTRAL MEMORY.  FOUR GROUPS OF FIVE.* 
  
          DATA   C*G   CENTRAL MEMORY.  FOUR GROUPS OF FIVE.* 
  
          DATA   C*H   FILE STATUS.*
  
          DATA   C*M   EXTENDED MEMORY.*
  
          DATA   C*T   TEXT DISPLAY.* 
  
          DATA   C*U   TEXT DISPLAY.* 
  
          DATA   C*V   CM BUFFER.*
  
          DATA   C*X   EXCHANGE PACKAGE.* 
  
          DATA   C*Y   MONITOR FUNCTIONS.*
  
          DATA   C*Z   DIRECTORY.*
  
          DATA   C* *        BLANK LINE 
  
          DATA   C* *        BLANK LINE 
  
          DATA   C*LEFT AND RIGHT SCREEN DISPLAYS*
  
          DATA   C* *        BLANK LINE 
  
          DATA   C*B   JOB STATUS.* 
  
          DATA   C*C   CENTRAL MEMORY.  FIVE GROUPS OF FOUR.* 
  
          DATA   C*D   CENTRAL MEMORY.  FIVE GROUPS OF FOUR.* 
  
          DATA   C*N   BLANK SCREEN.* 
  
          DATA   0           END OF TABLE 
          TITLE  OVERLAY CONTROL. 
*         TERMINATE DISPLAY OVERLAYS. 
  
  
          QUAL
          HERE
 DIS      HERE
          USE    END         FORCE /LITERALS*/
          SPACE  4
*         OVERLAY CONTROL.
  
  
 .L       MAX    *,.L 
 .L       SET    .L+4-OVD 
 .L       SET    .L/5*5+OVD 
 OVL      EQU    .L+5 
          TTL    DIS - COMMAND OVERLAYS.
          COMMAND (CPU COMMANDS.) 
 ENTL,    SPACE  4
***       ENTL,XXXXXX.
* 
*         ENTER CPU TIME LIMIT OF XXXXXX SECONDS. 
  
  
 ETL      ENTRY 
          RJM    ASD         ASSEMBLE DIGITS
          LDD    AB+3        ENTER TIME LIMIT 
          LPN    77 
          STD    CM+3 
          LDD    AB+4 
          STD    CM+4 
          LDN    RLTL        SET TIME LIMIT SUBFUNCTION 
          STD    CM+1 
          MONITOR RLMM
          JMP    KBR         RETURN 
 GO.      SPACE  4
***       GO. 
* 
*         CLEAR PAUSE BIT.
  
  
 GGO      ENTRY 
          LDN    ZERL 
          CRD    AB 
          LDD    CP          READ SWITCH WORD 
          ADN    SNSW 
          CRD    CM 
          LDD    CM+3        CLEAR PAUSE BIT
          SCN    1
          STD    CM+3 
          LDD    CP          STORE SWITCH WORD
          ADN    SNSW 
          CWD    CM 
          ADN    MS2W-SNSW   CLEAR MESSAGE 2
          CWD    AB 
          LDD    RA          READ (RA)
          SHN    6
          CRD    CM 
          LDD    CM+3        CLEAR PAUSE BIT
          SCN    1
          STD    CM+3 
          LDD    RA          RESTORE (RA) 
          SHN    6
          CWD    CM 
          MONITOR RCLM       RECALL CPU 
          JMP    KBR         RETURN 
 RCP.     SPACE  4
***       RCP.
* 
*         REQUEST CENTRAL PROCESSOR.
  
  
 RCP      ENTRY 
          RJM    ECP         END CENTRAL PROGRAM
          RJM    BCP         BEGIN CENTRAL PROGRAM
          JMP    KBR         RETURN 
 RCS.     SPACE  4
***       RCS.
* 
*         READ AND EXECUTE FOLLOWING COMMANDS.
* 
*         USES   KM, CM - CM+4. 
  
  
 RCS      ENTRY 
          LDC    CJSA        SET AUTO COMMAND MODE
          STD    KM 
          RJM    CAJ         CHECK JOB ACTIVITY 
          ZJN    RNS1        IF NOT ACTIVE
          JMP    KBR         RETURN 
 RNS.     SPACE  4
***       RNS.
* 
*         READ AND EXECUTE NEXT COMMAND.
  
  
 RNS      ENTRY 
          LDN    0           CLEAR RSS
 RNS1     STD    T1 
          LDD    CP          READ COMMAND POINTER 
          ADN    CSPW 
          CRD    CM 
          LDD    CM+3 
          LMD    CM+4 
          NJN    RNS2        IF BUFFER NOT EMPTY
          LDD    CM+1        CHECK STATUS 
          SHN    6
          MJN    RNS3        IF EOR 
 RNS2     LDC    20000       CALL *1AJ* 
          LMD    T1 
          RJM    IAJ
 RNS3     JMP    KBR         RETURN 
 RSS.     SPACE  4
***       RSS.
* 
*         READ COMMAND AND STOP BEFORE EXECUTION. 
  
  
 RSS      ENTRY 
          LDN    1           SET RSS
          JMP    RNS1 
 DCP.     SPACE  4
***       DCP.
* 
*         DROP CENTRAL PROCESSOR. 
  
  
 SCP      ENTRY 
          RJM    ECP         END CENTRAL PROGRAM
          LDN    0           CLEAR AUTO MODE
          STD    KM 
          JMP    KBR         RETURN 
          COMMAND (BREAKPOINT PROCESSING.)
 BKPA     SPACE  4,10 
***       BKPA,XXXXXX.
* 
*         BREAKPOINT CENTRAL PROGRAM TO XXXXXX WITH ASSIGNED PP-S.
  
  
 BKA      ENTRY 
          LDC    *           SET *BKPA* 
          ORG    *-1
          LOC    DISE 
          UJN    DIS2        CHECK BREAKPOINT ADDRESS 
          LOC    *O 
          UJN    BKP1 
 BKP      SPACE  4,10 
***       BKP,XXXXXX. 
* 
*         BREAKPOINT CENTRAL PROGRAM TO XXXXXX. 
  
  
 BKP      ENTRY 
          LDC    SODI+CM     SET *BKP*
 BKP1     STM    DISE        SET BREAKPOINT TYPE
          LDD    CA          ASSEMBLE ADDRESS 
          RJM    ASD
          RJM    ECP         END CENTRAL PROGRAM
          UJN    BPP         BREAKPOINT PROGRAM 
 BPI      SPACE  4,10 
**        BPI - BREAKPOINT P INCREMENT. 
* 
*         ENTRY  (CA) = 0, IF INCREMENT.
*                     = 2, IF DECREMENT.
  
  
 BPI      ENTRY 
          LDD    CP 
          CRD    CM          READ P 
          LDD    CM 
          SHN    14          ADVANCE P
          ADD    CM+1 
          ADN    1
          SBD    CA 
          STD    AB+4        SAVE FOR BPP 
          SHN    -14
          STD    AB+3 
*         UJN    BPP         BREAKPOINT PROGRAM 
 BPP      SPACE  4,10 
***       BPP - BREAKPOINT PROGRAM. 
* 
*         ENTRY  (AB - AB+4) = BREAKPOINT ADDRESS.
  
  
 BPP      ENTRY 
          LDD    AB+3        CHECK ENTRY
          LPN    37 
          SHN    14 
          LMD    AB+4 
          ZJN    BPP1        IF BREAKPOINT AT ZERO
          SHN    -6 
          SBD    FL 
          MJN    BPP2        IF NOT OUT OF RANGE
          LDC    =C*OUT OF RANGE.*
          STD    KM 
 BPP1     UJN    BPP3        EXIT 
  
 BPP2     LDD    AB+3        SET BREAKPOINT ADDRESS 
          STD    BA 
          SHN    14 
          LMD    AB+4 
          STD    BA+1 
          SHN    14          FORM JUMP TO * 
          STD    CM+1 
          SHN    -6 
          SCN    77 
          STD    CM+2 
          LDC    400         SET BREAKPOINT ACTIVE FLAG 
          STD    BF 
          STD    CM 
          LDN    0
          STD    CM+3 
          STD    CM+4 
          LDD    BA          READ INSTRUCTION WORD
          SHN    6
          ADD    RA 
          SHN    6
          ADD    BA+1 
          CRM    RBWA,ON
          SBN    1           STORE JUMP 
          CWD    CM 
          RJM    BCP         BEGIN CENTRAL PROGRAM
 BPP3     LJM    KBR         EXIT 
 MBK      SPACE  4,10 
***       MBK - MONITOR BREAKPOINT. 
* 
*         USES   KM, CM - CM+4. 
* 
*         CALLS  RBW. 
* 
*         MACROS MONITOR. 
  
  
 MBK      ENTRY 
          LDN    ZERL 
          CRD    CM 
          LDD    BA 
          STD    CM+3        SET BREAKPOINT ADDRESS INTO *RPNM* REQUEST 
          LDD    BA+1 
          STD    CM+4 
          MONITOR  RPNM 
          LDD    CM+4 
          NJN    MBK1        IF BREAKPOINT NOT ENCOUNTERED
          RJM    RBW         RESTORE BREAKPOINT WORD
          LDD    KM 
          LMC    CJSA 
          NJN    MBK1        IF NOT *AUTO MODE* 
          STD    KM          CLEAR *AUTO MODE*
 MBK1     LJM    DIS3        RETURN 
          COMMAND (STATEMENT ENTRY.)
 ELS.     SPACE  4
***       ELS.CCC - CCC 
* 
*         ENTER CHARACTERS CCC - CCC AS LAST COMMAND. 
  
  
 ELS      ENTRY 
          RJM    CJA         CHECK JOB ACTIVITY 
          LDD    CM+3        CHECK BUFFER 
          LMD    CM+4 
          NJN    ELS2        IF BUFFER NOT EMPTY
          LDC    CSBN 
          STD    CM+3 
          STD    CM+4 
          LDD    CM+1        CHECK COMMAND FILE 
          SHN    6
          MJN    ELS2        IF EOR 
          LDC    =C*COMMANDS ON FILE.*
          STD    KM 
          UJN    ELS4 
  
 ELS2     LDI    CA 
          ZJN    ELS4        IF KEYBOARD BUFFER EMPTY 
          RJM    EST
          ZJN    ELS3        IF BUFFER NOT FULL 
          LDC    =C*COMMAND BUFFER FULL.* 
          STD    KM 
          UJN    ELS4 
  
 ELS3     LDD    CP          STORE COMMAND POINTER
          ADN    CSPW 
          CWD    CM 
 ELS4     LDD    KM 
          ZJN    ELS5        IF NO KEYBOARD MESSAGE 
          LMC    CJSA 
          NJN    ELS7        IF KEYBOARD MESSAGE SET
 ELS5     LDN    4           SET KEYBOARD MESSAGE 
          STD    KI 
          STD    T1 
 ELS6     LDN    0           CLEAR REMAINDER OF BUFFER
          STM    KBUF,T1
          AOD    T1 
          LMN    KBUFL
          NJN    ELS6 
 ELS7     JMP    KBI3        RETURN 
 ENS.     SPACE  4
***       ENS.CCC - CCC 
* 
*         ENTER CHARACTERS CCC - CCC AS NEXT COMMAND. 
  
  
 ENS      ENTRY 
          RJM    CJA         CHECK JOB ACTIVITY 
          LDD    CM+1        SET EOR FLAG 
          LPC    3777 
          LMC    4000 
          STD    CM+1 
          LDC    CSBN        SET BUFFER EMPTY 
          STD    CM+3 
          STD    CM+4 
          RJM    EST         ENTER STATEMENT
          LDD    CP          STORE COMMAND POINTER
          ADN    CSPW 
          CWD    CM 
          JMP    KBR         RETURN 
 CJA      SPACE  4,10 
**        CJA - CHECK JOB ACTIVITY AND RETURN COMMAND POINTER.
* 
*         EXIT   TO KBI3, IF ACTIVITY EXITS.
*                (CM - CM+4) = CSPW WORD. 
* 
*         CALLS  CAJ. 
  
  
 CJA1     LDD    CP          FETCH COMMAND POINTER WORD 
          ADN    CSPW 
          CRD    CM 
  
 CJA      SUBR               ENTRY/EXIT 
          RJM    CAJ         CHECK ACTIVE JOB 
          ZJN    CJA1        IF NO ACTIVITY 
          LDC    INTF        MESSAGE = *JOB ACTIVE.*
          STD    KM 
          JMP    KBI3        RETURN 
 EST      SPACE  4
**        EST - ENTER STATEMENT (COMMAND).
* 
*         ENTRY  (CA) = CHARACTER ADDRESS.
*                (CM+4) = COMMAND BUFFER LIMIT POINTER. 
* 
*         EXIT   (A) = 0 IF BUFFER NOT FULL.
* 
*         USES   T1.
* 
*         CALLS  ASC. 
* 
*         MACROS NFA. 
  
  
 EST      SUBR               ENTRY/EXIT 
          LDD    CA          SET CHARACTER ADDRESS
          STD    T1 
          LDI    T1 
          ZJN    ESTX        RETURN IF KEYBOARD BUFFER EMPTY
 EST1     LDD    T1          ASSEMBLE CHARACTERS
          RJM    ASC
          NFA    CM+4,R      STORE WORD 
          CWD    AB 
          SOD    CM+4        ADVANCE LIMIT POINTER
          LDD    AB+4 
          ZJN    ESTX        IF END OF COMMAND, RETURN
          LDD    CM+4 
          LMC    CSBN-110 
          NJN    EST1        IF COMMAND BUFFER NOT FULL 
          LDN    1
          UJN    ESTX        RETURN 
          COMMAND (EXECUTE COMMANDS.) 
 GTO      SPACE  4
***       BEGIN,CCC-CCC 
*            OR 
*         CALL,CCC-CCC
*            OR 
*         GOTO,CCC-CCC
*            OR 
*         ENTER./CCCCCCC./CCCCCCC./ 
* 
*         SET AUTO COMMAND PROCESSING AND EXECUTE COMMAND.
  
  
 GTO      ENTRY 
          LDD    CP          READ COMMAND POINTER 
          ADN    CSSW 
          CRD    CM 
          LDD    CM 
          LPC    5777        CLEAR ADVANCE TO EXIT FLAG 
          STD    CM 
          LDD    CP 
          ADN    CSSW 
          CWD    CM 
  
 ESX      ENTRY 
          LDC    CJSA        SET AUTO COMMAND PROCESSING
          STD    KM 
          LDC    KBUF 
          STD    CA 
 X.       SPACE  4
***       X.CCC - CCC 
*            OR 
*         CCC - CCC 
* 
*         EXECUTE CHARACTERS CCC - CCC AS NEXT COMMAND. 
  
  
 EXC      ENTRY 
          LDI    CA 
          ZJN    EXC3        IF KEYBOARD BUFFER EMPTY 
          RJM    EST         ENTER STATEMENT
          LDD    CP          CHECK SPECIAL ENTRY PENDING
          ADC    SEPW 
          CRD    CM 
          LDD    CM 
          LPN    24 
          ZJN    EXC1        IF NOT PENDING 
          LDC    LDNI+1      SET SPECIAL CALL FLAG
          STM    CJSD 
          LDN    2
          UJN    EXC2        CLEAN UP SPECIAL ENTRY POINTS
  
 EXC1     LDC    20006       CALL *1AJ* 
 EXC2     RJM    IAJ
 EXC3     JMP    KBR         RETURN 
 ROLLOUT. SPACE  4
***       ROLLOUT.
* 
*         ALLOW JOB TO ROLLOUT. 
  
  
 ROL      ENTRY 
          LDN    ROSR        SELECT SCHEDULER ROLLOUT OPTION
          UJN    ROL4        ISSUE *ROCM* 
 ROL1     SPACE  4,10 
***       ROLLOUT,XXXX. 
* 
*         SET TIMED ROLLOUT OF XXXX JOB SCHEDULER TIME PERIODS. 
*         IF XXXX .GT. 7777B, 7777B WILL BE USED. 
  
  
 ROL1     ENTRY 
          RJM    ASD
          LDD    AB+3        SET ROLLOUT TIME 
          NJN    ROL2        IF MAXIMUM ROLLOUT TIME EXCEEDED 
          LDD    AB+4 
          UJN    ROL3        STORE ROLLOUT TIME IN *TERW* 
  
 ROL2     LDC    7777        SET MAXIMUM TIME 
 ROL3     STD    CM+4        SET TIME 
          LDK    EXTM/10000  SET EVENT DESCRIPTOR 
          STD    CM+3 
          LDN    0           CLEAR MULTIPLIER 
          STD    CM+2 
          LDD    MA          WRITE TIMED/EVENT PARAMETERS TO MB 
          CWD    CM 
          LDN    ROTE        SET TIMED/EVENT ROLLOUT OPTION 
 ROL4     STD    CM+1 
          MONITOR  ROCM      ROLLOUT CONTROL POINT
          LJM    RPP         SET *DIS* RECALL AND DROP PP 
 RSS,     SPACE  4
***       RSS,CCC-CCC 
* 
*         READ COMMAND CCC-CCC AND STOP BEFORE EXECUTION. 
  
  
 RSN      ENTRY 
          LDI    CA 
          ZJN    RSN1        IF KEYBOARD BUFFER EMPTY 
          RJM    EST         ENTER STATEMENT
          LDC    20007       CALL *1AJ* 
          RJM    IAJ
 RSN1     JMP    KBR         RETURN 
 EST      SPACE  4
**        EST - ENTER (STATEMENT) COMMAND.
* 
*         ENTRY  (CA) = CHARACTER ADDRESS.
* 
*         USES   T1, T3.
* 
*         CALLS  ASC. 
  
  
 EST      SUBR               ENTRY/EXIT 
          LDN    MS1W        SET ADDRESS FOR COMMAND
          STD    T3 
          LDD    CA          SET CHARACTER ADDRESS
          STD    T1 
          LDI    T1 
          ZJN    ESTX        RETURN IF KEYBOARD BUFFER EMPTY
 EST1     LDD    T1          ASSEMBLE CHARACTERS
          RJM    ASC
          LDD    CP          STORE WORD 
          ADD    T3 
          CWD    AB 
          AOD    T3          ADVANCE COMMAND ADDRESS
          LDD    AB+4 
          ZJN    ESTX        IF END OF COMMAND
          LDD    T3 
          LMN    MS2W 
          NJN    EST1        IF NOT END OF BUFFER 
          LDC    =C*COMMAND TOO LONG.*
          STD    KM 
          JMP    KBR         RETURN 
          COMMAND (ENTER REGISTER.) 
 ENA,     SPACE  4
***       ENAX,YYYYYY.
* 
*         ENTER *A* REGISTER *X* WITH YYYYYY. 
  
  
 ENA      ENTRY 
          RJM    REG         SET UP REGISTER ENTRY
          LDD    CP          READ REGISTER WORD 
          ADD    T7 
          CRD    CM 
          LDD    AB+3        REPLACE A REGISTER 
          LPN    77 
          SHN    14 
          LMD    AB+4 
          SHN    14 
          STD    CM+2 
          SHN    -6 
          LMD    CM+3 
          SCN    77 
          LMD    CM+3 
          STD    CM+3 
          LDD    CP          RESTORE REGISTER WORD
          ADD    T7 
          CWD    CM 
          JMP    KBR         RETURN 
 ENB,     SPACE  4
***       ENBX,YYYYYY.
* 
*         ENTER *B* REGISTER *X* WITH YYYYYY. 
  
  
 ENB      ENTRY 
          RJM    REG         SET UP REGISTER ENTRY
          LDD    CP          READ REGISTER WORD 
          ADD    T7 
          CRD    CM 
          LDD    AB+4        REPLACE B REGISTER 
          STD    CM+4 
          LDD    AB+3 
          LMD    CM+3 
          LPN    77 
          LMD    CM+3 
          STD    CM+3 
          LDD    CP          RESTORE REGISTER WORD
          ADD    T7 
          CWD    CM 
          JMP    KBR         RETURN 
 ENEM,    SPACE  4
***       ENEM,X. 
* 
*         ENTER EXIT MODE WITH X. 
  
  
 ENE      ENTRY 
          RJM    ASD         ASSEMBLE DIGITS
          RJM    ECP         END CENTRAL PROGRAM
          LDD    CP          READ EXCHANGE PACKAGE
          ADN    3
          CRD    CM 
          LDD    AB+4        SET EXIT MODE
          LMD    CM 
          LPC    7007        RETAIN EXCHANGE PACKAGE FLAG BITS
          LMD    CM 
          STD    CM 
          LDD    CP          STORE EXCHANGE PACKAGE 
          ADN    3
          CWD    CM 
          JMP    KBR         RETURN 
 ENP,     SPACE  4
***       ENP,XXXXXX. 
* 
*         ENTER *P* REGISTER WITH XXXXXX. 
  
  
 ENP      ENTRY 
          RJM    ASD         ASSEMBLE DIGITS
          RJM    ECP         END CENTRAL PROGRAM
          LDD    CP          READ WORD
          CRD    CM 
          LDD    AB+3        REPLACE P
          LPN    37 
          STD    CM 
          LDD    AB+4 
          STD    CM+1 
          LDD    CP          RESTORE WORD 
          CWD    CM 
          JMP    KBR         RETURN 
 ENPR,    SPACE  4
***       ENPR,XX.
* 
*         ENTER PRIORITY OF XX. 
*         IF NN = *, SET PRIORITY TO SERVICE CLASS VALUE. 
  
  
 EPR      ENTRY 
          STD    T1          SAVE CHARACTER ADDRESS 
          LDI    T1 
          LMN    1R*
          NJN    EPR1        IF NOT ENPR,*. 
          LDM    1,T1 
          LMN    1R.
          NJP    ILL         IF COMMAND NOT TERMINATED
          LDN    0           SET PRIORITY TO SERVICE CLASS VALUE
          STD    CM+4 
          UJN    EPR5        CHECK CURRENT CPU PRIORITY 
  
 EPR1     LDD    T1 
          RJM    ASD
          LDD    AB+4        SET REQUESTED PRIORITY 
          STD    CM+4 
          SBN    LJCS 
          PJN    EPR4        IF .GE. LOWEST USER JOB PRIORITY 
 EPR3     LDC    =C*INCORRECT PRIORITY.*
          STD    KM 
          JMP    KBR         RETURN 
  
 EPR4     SBN    LSCS-LJCS
          PJN    EPR3        IF NOT .LT. SYSTEM PRIORITIES
 EPR5     LDD    CP          CHECK CURRENT PRIORITY 
          ADN    CWQW 
          CRD    T1 
          LDD    T1 
          SHN    -3 
          ADC    -200-LSCS
          PJN    EPR3        IF NOT .LT. SYSTEM PRIORITIES
          LDN    CPRS        CHANGE CPU PRIORITY
          STD    CM+1 
          MONITOR  SJCM 
          JMP    KBR         RETURN 
 REG      SPACE  4
**        REG - SET UP REGISTER ENTRY.
* 
*         EXIT   (T7) = REGISTER NUMBER.
* 
*         CALLS  ASD, ECP.
  
  
 REG2     LDM    KBUF+3      CHECK 4TH CHARACTER
          SBN    1R0
          MJN    REG1        IF ALPHA 
          STD    T7          SET REGISTER NUMBER
          SBN    10 
          PJN    REG1        IF NOT OCTAL DIGIT 
          LDC    KBUF+5      ASSEMBLE ENTRY 
          RJM    ASD
          RJM    ECP         END CENTRAL PROGRAM
  
 REG      SUBR               ENTRY/EXIT 
          LDM    KBUF+4      CHECK 5TH CHARACTER
          LMN    1R,
          ZJN    REG2        IF *,* 
 REG1     LJM    ILL         INCORRECT ENTRY
          COMMAND (ENTER X REGISTER.) 
 ENX,     SPACE  4
***       ENXY,ZZZZ - ZZZZ. 
*         ENTER *X* REGISTER *Y* WITH ZZZZ - ZZZZ.
* 
*         ENXY,LZZZZ - ZZZZ.
*         ENTER *X* REGISTER *Y* WITH ZZZZ - ZZZZ LEFT JUSTIFIED. 
* 
*         ENXY,DCCCC - CCCC 
*         ENTER *X* REGISTER *Y* WITH CHARACTERS CCCC - CCCC. 
* 
*         ENXY,B,ZZZZ.
*         ENTER BYTE B OF *X* REGISTER *Y* WITH ZZZZ. 
* 
  
  
 ENX      ENTRY 
          LDM    KBUF+4      CHECK 5TH CHARACTER
          LMN    1R,
          ZJN    ENX2        IF *,* 
 ENX1     LJM    ILL         INCORRECT ENTRY
  
 ENX2     LDM    KBUF+3      CHECK 4TH CHARACTER
          SBN    1R0
          MJN    ENX1        IF ALPHA 
          STD    T7 
          SBN    10 
          PJN    ENX1        IF NOT OCTAL DIGIT 
          LDN    0           SET ADDRESS
          STD    T6 
          LDD    CP 
          ADN    10 
          RAD    T7 
          RJM    ECP         END CENTRAL PROGRAM
          LDC    KBUF+4      SET CHARACTER ADDRESS
          STD    T1 
          RJM    EWD         ENTER WORD 
          JMP    KBR         RETURN 
 EWD      SPACE  4
**        EWD - ENTER WORD. 
* 
*         ENTRY  (T1) = CHARACTER ADDRESS.
*                (T6 - T7) = CM ADDRESS ABSOLUTE. 
* 
*         USES   T1, T5, AB - AB+4. 
* 
*         CALLS  CDR, CDL, ENI, ASC.
  
  
 EWD      SUBR               ENTRY/EXIT 
          AOD    T1          CHECK NEXT CHARACTER 
          LDI    T1 
          LMN    1RD
          NJN    EWD1        IF NOT *D* 
          AOD    T1          ASSEMBLE CHARACTERS
          RJM    ASC
          LJM    EWD5        STORE WORD 
 EWD1     LMN    1RL&1RD
          NJN    EWD2        IF NOT *L* 
          AOD    T1          ASSEMBLE DIGITS LEFT ADJUSTED
          RJM    CDL
          LMN    1R,
          UJN    EWD3        CHECK SEPARATOR
  
 EWD2     LDD    T1          CONVERT DIGITS RIGHT ADJUSTED
          RJM    CDR
          LMN    1R,
          NJN    EWD3        IF NOT *,* 
          LDD    AB+4        SAVE BYTE NUMBER 
          STD    T5 
          SBN    5
          PJN    EWD4        IF > 4 
          AOD    T1          ASSEMBLE DIGITS
          RJM    ASD
          LDD    AB+4        SAVE ENTRY 
          STD    T1 
          LDD    T6          READ WORD
          SHN    14 
          ADD    T7 
          CRD    AB 
          LDD    T1          STORE BYTE 
          STM    AB,T5
          UJN    EWD5        STORE WORD 
  
 EWD3     LMN    1R.&1R,
          ZJN    EWD5        IF *.* 
 EWD4     LJM    ILL         INCORRECT ENTRY
  
 EWD5     LDD    T6          STORE WORD 
          SHN    14 
          ADD    T7 
          CWD    AB 
          LJM    EWDX        RETURN 
 CDL      SPACE  4
**        CDL - CONVERT DIGITS LEFT JUSTIFIED.
* 
*         ENTRY  (A) = ADDRESS OF CHARACTER STRING. 
* 
*         EXIT   (A) = NON-OCTAL CHARACTER FOUND. 
*                (AB - AB+4) = LEFT JUSTIFIED ASSEMBLY. 
* 
*         USES   T1, T2.
* 
*         CALLS  NONE.
  
  
 CDL      SUBR               ENTRY/EXIT 
          STD    T1          STORE CHARACTER ADDRESS
          LDN    ZERL        CLEAR ASSEMBLY 
          CRD    AB 
          LDN    AB          SET BYTE ADDRESS 
          STD    T2 
 CDL1     LDC    SHNI&11     SET SHIFT
          STM    CDLA 
 CDL2     LDI    T1          CHECK CHARACTER
          SBN    1R0
          MJN    CDL4        IF ALPHA 
          SBN    1R8-1R0
          MJN    CDL3        IF OCTAL DIGIT 
          SBN    1R -1R8
          NJN    CDL4        IF NOT SPACE 
          AOD    T1          SKIP SPACE 
          UJN    CDL2        LOOP 
  
 CDL3     ADN    10          STORE DIGIT
 CDLA     SHN    11 
          RAI    T2 
          AOD    T1          ADVANCE CHARACTER
          LCN    3           ADVANCE SHIFT
          RAM    CDLA 
          SHN    -11
          NJN    CDL2        LOOP FOR 4 DIGITS
          AOD    T2          ADVANCE BYTE 
          LMN    AB+5 
          NJN    CDL1        LOOP FOR FULL WORD 
 CDL4     LDI    T1          LOAD CHARACTER 
          LJM    CDLX        RETURN 
          COMMAND (ENTER MEMORY.) 
 ENM      SPACE  4
***       ENTER MEMORY. 
*         XXXXXX,YYY - YYY.  ENTER YYY - YYY IN MEMORY LOCATION XXXXXX. 
* 
*         XXXXXX,LYYY - YYY.  ENTER YYY - YYY LEFT JUSTIFIED IN 
*         MEMORY LOCATION XXXXXX. 
* 
*         XXXXXX,Y,ZZZZ.  ENTER ZZZZ IN BYTE Y, (0 - 4 FROM LEFT),
*         OF MEMORY LOCATION XXXXXX.
* 
*         XXXXXX,DCCC - CCC.  ENTER CHARACTERS CCC - CCC LEFT 
*         JUSTIFIED IN LOCATION XXXXXX. 
* 
*         SUBSTITUTING A *+* FOR THE FIRST *,*, THE ADDRESS WILL BE 
*         INCREMENTED AND THE ENTRY LEFT UNCLEARED. 
  
  
 ENM      ENTRY 
          LDC    KBUF        ASSEMBLE ADDRESS 
          RJM    CDR
          LMN    1R+
          ZJN    ENM3        IF *+* 
          LMN    1R,&1R+
          ZJN    ENM3        IF *,* 
 ENM1     JMP    ILE         INCORRECT ENTRY
  
 ENM3     LDD    T1          SAVE ADDRESS OF SEPARATOR
          STD    CA 
          LDD    AB+3        SAVE ADDRESS 
          LPN    77 
          STD    T6 
          SHN    14 
          LMD    AB+4 
          STD    T7 
          PJN    ENM5        IF POSITIVE MEMORY 
          LMC    -0 
          ADN    1
          STD    T7 
          SBD    NL 
 ENM4     PJN    ENM1        IF OUT OF NFL
          NFA    T7,R 
          STD    T7          SET ABSOLUTE NFL ADDRESS 
          SHN    -14
          STD    T6 
          UJN    ENM6        ENTER WORD 
  
 ENM5     SHN    -6 
          SBD    FL 
          PJN    ENM4        IF .GE. FL 
          LDD    RA          SET ABSOLUTE ADDRESS 
          SHN    6
          RAD    T7 
          SHN    -14
          RAD    T6 
 ENM6     RJM    EWD         ENTER WORD 
          LDI    CA          CHECK FIRST SEPARATOR
          LMN    1R+
          NJN    ENM7        IF NOT *+* 
          LDC    EIE         ENTER MEMORY/ENTER INSTRUCTION EXIT
          JMP    LOV
  
 ENM7     JMP    KBR         RETURN 
 EWD      SPACE  4,10 
**        EWD - ENTER WORD. 
* 
*         ENTRY  (T1) = CHARACTER ADDRESS.
*                (T6 - T7) = CM ADDRESS ABSOLUTE. 
* 
*         USES   T1, T5, AB - AB+4. 
* 
*         CALLS  CDR, CDL, ENI, ASC.
  
  
 EWD      SUBR               ENTRY/EXIT 
          AOD    T1          CHECK NEXT CHARACTER 
          LDI    T1 
          LMN    1RD
          NJN    EWD1        IF NOT *D* 
          AOD    T1          ASSEMBLE CHARACTERS
          RJM    ASC
          LJM    EWD6        STORE WORD 
  
 EWD1     LMN    1RI&1RD
          NJN    EWD2        IF NOT *I* 
          LDC    ENI         ENTER INSTRUCTION
          JMP    LOV
  
 EWD2     LMN    1RL&1RI
          NJN    EWD3        IF NOT *L* 
          AOD    T1          ASSEMBLE DIGITS LEFT ADJUSTED
          RJM    CDL
          LMN    1R,
          UJN    EWD4        CHECK SEPARATOR
  
 EWD3     LDD    T1          CONVERT DIGITS RIGHT ADJUSTED
          RJM    CDR
          LMN    1R,
          NJN    EWD4        IF NOT *,* 
          LDD    AB+4        SAVE BYTE NUMBER 
          STD    T5 
          SBN    5
          PJN    EWD5        IF > 4 
          AOD    T1          ASSEMBLE DIGITS
          RJM    ASD
          LDD    AB+4        SAVE ENTRY 
          STD    T1 
          LDD    T6          READ WORD
          SHN    14 
          LMD    T7 
          CRD    AB 
          LDD    T1          STORE BYTE 
          STM    AB,T5
          UJN    EWD6        STORE WORD 
  
 EWD4     LMN    1R.&1R,
          ZJN    EWD6        IF *.* 
 EWD5     JMP    ILE         INCORRECT ENTRY
  
 EWD6     LDD    T6          STORE WORD 
          SHN    14 
          LMD    T7 
          CWD    AB 
          LJM    EWDX        RETURN 
 CDL      SPACE  4
**        CDL - CONVERT DIGITS LEFT JUSTIFIED.
* 
*         ENTRY  (A) = ADDRESS OF CHARACTER STRING. 
* 
*         EXIT   (A) = NON-OCTAL CHARACTER FOUND. 
*                (AB - AB+4) = LEFT JUSTIFIED ASSEMBLY. 
* 
*         USES   T1, T2.
  
  
 CDL      SUBR               ENTRY/EXIT 
          STD    T1          STORE CHARACTER ADDRESS
          LDN    ZERL        CLEAR ASSEMBLY 
          CRD    AB 
          LDN    AB          SET BYTE ADDRESS 
          STD    T2 
 CDL1     LDC    SHNI&11     SET SHIFT
          STM    CDLA 
 CDL2     LDI    T1          CHECK CHARACTER
          SBN    1R0
          MJN    CDL4        IF ALPHA 
          SBN    1R8-1R0
          MJN    CDL3        IF OCTAL DIGIT 
          SBN    1R -1R8
          NJN    CDL4        IF NOT SPACE 
          AOD    T1          SKIP SPACE 
          UJN    CDL2        LOOP 
  
 CDL3     ADN    10          STORE DIGIT
 CDLA     SHN    11 
          RAI    T2 
          AOD    T1          ADVANCE CHARACTER
          LCN    3           ADVANCE SHIFT
          RAM    CDLA 
          SHN    -11
          NJN    CDL2        LOOP FOR 4 DIGITS
          AOD    T2          ADVANCE BYTE 
          LMN    AB+5 
          NJN    CDL1        LOOP FOR FULL WORD 
 CDL4     LDI    T1          LOAD CHARACTER 
          LJM    CDLX        RETURN 
          COMMAND (ENTER INSTRUCTION.)
 ENI      SPACE  4
***       ENTER INSTRUCTION.
* 
*         XXXXXX,IY,ZZZZZ.  ENTER ZZZZZ IN INSTRUCTION Y, (0 - 3 FROM 
*         LEFT), OF LOCATION XXXXXX.  ZZZZZ MAY BE A 15 OR 30 BIT 
*         INSTRUCTION. ONE OR MORE BITS MUST BE SET IN UPPER 15 
*         BITS OF 30 BIT INSTRUCTION OR ENTRY WILL BE TREATED AS
*         15 BIT OPERATION. 
* 
*         SUBSTITUTING A *+* FOR THE FIRST *,*, THE ADDRESS WILL BE 
*         INCREMENTED AND THE ENTRY LEFT UNCLEARED. 
  
  
 ENI      ENTRY 
          LDC    KBUF        ASSEMBLE ADDRESS 
          RJM    CDR
          LDD    T1          SAVE ADDRESS OF SEPARATOR
          STD    CA 
          LDD    AB+3        SAVE ADDRESS 
          LPN    37 
          STD    T6 
          SHN    14 
          ADD    AB+4 
          STD    T7 
          LDD    T6          ADD RA TO ADDRESS
          SHN    6
          ADD    RA 
          SHN    6
          RAD    T7 
          SHN    -14
          STD    T6 
          AOD    T1          POSITION PAST *I*
          AOD    T1          ASSEMBLE DIGITS
          RJM    CDR
          LMN    1R,
          ZJN    ENI2        IF COMMA 
 ENI1     JMP    ILE         INCORRECT ENTRY
  
 ENI2     LDD    AB+4        SET PARCEL COUNT 
          STD    T5 
          SBN    4
          PJN    ENI1        IF NOT LESS THAN 4 
          AOD    T1          ASSEMBLE ENTRY 
          RJM    ASD
          LDD    T6          READ WORD
          SHN    14 
          ADD    T7 
          CRD    CM 
 ENI3     LDM    ENIB,T5     SET PARCEL ADDRESS 
          STM    ENIA 
          LDD    AB+3        CHECK INSTRUCTION
          SHN    -3 
          ADD    AB+2 
          ZJN    ENI4        IF 15 BIT
          LDD    AB+2        SET UPPER 15 BITS
          LPN    77 
          SHN    14 
          LMD    AB+3 
          SHN    -3 
          UJN    ENI5 
  
 ENI4     LDD    AB+3        SET SECOND HALF
          LPN    7
          SHN    14 
          LMD    AB+4 
 ENI5     LJM    *           REPLACE PARCEL 
  
 ENIA     EQU    *-1
  
*         ENTER PARCEL 0. 
  
 ENI6     SHN    17 
          STD    CM 
          SHN    -6 
          LMD    CM+1 
          LPC    7000 
          LMD    CM+1 
          STD    CM+1 
          UJN    ENI10
  
*         ENTER PARCEL 1. 
  
 ENI7     SHN    14 
          LMD    CM+1 
          LPC    770777 
          LMD    CM+1 
          STD    CM+1 
          SHN    -6 
          LMD    CM+2 
          SCN    77 
          LMD    CM+2 
          STD    CM+2 
          UJN    ENI10
  
*         ENTER PARCEL 2. 
  
 ENI8     SHN    3
          LMD    CM+3 
          SCN    7
          LMD    CM+3 
          STD    CM+3 
          SHN    -14
          LMD    CM+2 
          LPN    77 
          LMD    CM+2 
          STD    CM+2 
          UJN    ENI10
  
*         ENTER PARCEL 3. 
  
 ENI9     STD    CM+4 
          SHN    -14
          LMD    CM+3 
          LPN    7
          LMD    CM+3 
          STD    CM+3 
  
*         STORE WORD. 
  
 ENI10    AOD    T5          ADVANCE PARCEL COUNT 
          SBN    4
          PJN    ENI11
          LDD    AB+3 
          SHN    -3 
          ADD    AB+2 
          ZJN    ENI11       IF 15-BIT INSTRUCTION
          LDN    0
          STD    AB+2 
          LDD    AB+3 
          LPN    7
          STD    AB+3 
          LJM    ENI3        LOOP TO NEXT INSTRUCTION 
  
 ENI11    LDD    T6          STORE WORD 
          SHN    14 
          ADD    T7 
          CWD    CM 
          LDI    CA          CHECK FIRST SEPARATOR
          LMN    1R+
          ZJN    ENI12       IF *+* 
          JMP    KBR         RETURN 
  
 ENI12    LDC    EIE         ENTER MEMORY/ENTER INSTRUCTION EXIT
          LJM    LOV
  
 ENIB     CON    ENI6        PARCEL 0 
          CON    ENI7        PARCEL 1 
          CON    ENI8        PARCEL 2 
          CON    ENI9        PARCEL 3 
          COMMAND (ENTER EXTENDED MEMORY.)
          SPACE  4
***       ENTER EXTENDED MEMORY.
* 
*         XXXXXXXX,YY. ENTER YY IN EXTENDED MEMORY
*         LOCATION XXXXXXXX, WHERE YY IS FROM 1 TO 20 DIGITS. 
* 
*         XXXXXXXX,Y,ZZZZ. ENTER ZZZZ IN BYTE Y (0 - 4 FROM LEFT) 
*         OF EXTENDED MEMORY LOCATION XXXXXXXX. 
* 
*         XXXXXXXX,DCC. ENTER CHARACTER(S) CC LEFT JUSTIFIED IN 
*         EXTENDED MEMORY LOCATION XXXXXXXX WHERE CC IS FROM
*         1 TO 10 CHARACTERS. 
* 
*         SUBSTITUTING A *+* FOR THE FIRST *,* CAUSES THE 
*         ADDRESS TO BE INCREMENTED AND THE ENTRY LEFT UNCLEARED. 
  
  
 EEC      ENTRY 
          LDD    EB 
          SHN    14 
          LMD    EB+1 
          NJN    EEC2        IF EXTENDED MEMORY DEFINED 
 EEC1     JMP    ILE         INCORRECT ENTRY
  
 EEC2     LDC    KBUF+1      SET START OF ADDRESS 
          RJM    CDR         CONVERT DIGITS RIGHT JUSTIFIED 
          LMN    1R+         CHECK SEPARATOR
          ZJN    EEC3        IF *+* 
          LMN    1R,&1R+
          NJN    EEC1        IF NOT *,* 
 EEC3     LDC    SHNI+77     PRESET SHIFT INSTRUCTION 
          SBD    UE 
          STM    EECA 
          LDD    T1          SAVE ADDRESS 
          STD    CA 
          LDD    CP          READ EXTENDED MEMORY RA AND FL 
          ADN    ECSW 
          CRD    CM 
          LDD    AB+4        CHECK FOR ADDRESS OUT OF RANGE 
          SHN    -11
          SHN    17 
          ADD    AB+3 
          SHN    3
 EECA     SHN    0
*         SHN    -UESC
          SBD    CM+4 
          PJN    EEC1        IF ADDRESS .GE. FLE
          LDD    MA          SAVE EXTENDED MEMORY ADDRESS 
          ADN    1
          CWD    AB 
          AOD    T1          CHECK NEXT CHARACTER 
          LDI    T1 
          LMN    1RD
          ZJN    EEC6        IF *D* 
          LDD    T1          CONVERT DIGITS RIGHT JUSTIFIED 
          RJM    CDR
          LMN    1R,         CHECK BYTE ENTRY 
          NJN    EEC4        IF NOT *,* 
          LDD    AB+4        SAVE BYTE NUMBER 
          STD    T5 
          SBN    5
          PJN    EEC5        IF BYTE NUMBER TOO LARGE 
          AOD    T1          ASSEMBLE DIGITS
          RJM    ASD
          LDD    AB+4        SAVE ENTRY 
          STD    T1 
          LDN    0           READ EXTENDED MEMORY WORD
          RJM    RWE
          LDD    T1          STORE BYTE 
          STM    AB,T5
          UJN    EEC7        STORE WORD 
  
 EEC4     LMN    1R.&1R,
          ZJN    EEC7        IF *.* 
 EEC5     JMP    ILE         PROCESS INCORRECT ENTRY
  
 EEC6     AOD    T1          ASSEMBLE CHARACTERS
          RJM    ASC
 EEC7     LDN    1           WRITE EXTENDED MEMORY WORD 
          RJM    RWE
          LDI    CA          CHECK FIRST SEPARATOR
          LMN    1R+
          NJN    EEC8        IF NOT *+* 
          LDC    EIE         ENTER MEMORY/ENTER EXTENDED MEMORY EXIT
          JMP    LOV         LOAD OVERLAY 
  
 EEC8     JMP    KBR         EXIT 
 RWE      SPACE  4,15 
**        RWE - READ/WRITE RELATIVE EXTENDED MEMORY WORD. 
* 
*         ENTRY  (A) = 0 IF TO READ RELATIVE EXTENDED MEMORY WORD.
*                    = 1 IF TO WRITE RELATIVE EXTENDED MEMORY WORD. 
*                (AB - AB+4) = EXTENDED MEMORY WORD IF TO WRITE.
*                (MB+1) = EXTENDED MEMORY ADDRESS.
* 
*         EXIT   (AB - AB+4) = EXTENDED MEMORY WORD.
* 
*         USES   T6, AB - AB+4, CM - CM+4.
* 
*         MACROS MONITOR. 
  
  
 RWE      SUBR               ENTRY/EXIT 
          STD    T6          SAVE READ/WRITE FLAG 
          LDD    MA          SAVE EXTENDED MEMORY WORD
          CWD    AB 
          ADN    1           GET EXTENDED MEMORY ADDRESS
          CRD    CM 
          LDN    RRES        SET TO READ RELATIVE EXTENDED MEMORY 
          ADD    T6          SET *ECSM* READ/WRITE SUBFUNCTION
          ERRNZ  WRES-RRES-1 CODE DEPENDS ON CONSECUTIVE VALUES 
          SHN    11 
          RAD    CM+3 
          LDN    0           SET WORD COUNT TO TRANSFER 1 WORD
          STD    CM+1 
          LDD    MA          SET CM ADDRESS FOR TRANSFER
          STD    CM+2 
          MONITOR  ECSM      READ/WRITE RELATIVE EXTENDED MEMORY
          LDD    MA          GET EXTENDED MEMORY WORD 
          CRD    AB 
          UJN    RWEX        RETURN 
          COMMAND (ENTER MEMORY/ENTER INSTRUCTION EXIT.)
 EIEX     SPACE  4
**        EIE - ENTER MEMORY/ENTER INSTRUCTION EXIT.
  
  
 EIE      ENTRY 
          LDD    CA          SET PREVIOUS CHARACTER 
          SBN    1
          STD    T1 
 EIE2     LDI    T1          CHECK CHARACTER
          SBN    1RE
          NJN    EIE3        IF NOT *E* 
          LJM    EIE11
  
 EIE3     AOI    T1 
          SBN    1R8
          MJN    EIE6        IF NO OVERFLOW 
          LDN    1R0         RESET NUMBER 
          STI    T1 
          SOD    T1          NEXT 
          ADC    -KBUF
          PJN    EIE2        IF NOT PAST START OF BUFFER
          LDN    KBUFL-1
          STD    T1 
 EIE4     LDM    KBUF,T1     MOVE CONTENTS OF BUFFER
          STM    KBUF+1,T1
          SOD    T1 
          PJN    EIE4        IF BUFFER NOT MOVED
          LDN    1R1         SET FIRST CHARACTER OF BUFFER
          STM    KBUF 
 EIE5     AOD    KI          INCREMENT KEYBOARD INDEX 
          AOD    CA          SKIP PREVIOUS CHARACTER
 EIE6     AOD    CA          SKIP *+* 
          LDI    CA          CHECK NEXT CHARACTER 
          LMN    1RD
          ZJN    EIE7        IF *D* 
          LMN    1RI&1RD
          ZJN    EIE7        IF *I* 
          LMN    1RL&1RI
          NJN    EIE8        IF NOT *L* 
 EIE7     AOD    CA          SKIP CHARACTER 
 EIE8     LDD    KM          CHECK MESSAGE
          NJN    EIE10       IF SET 
          LDD    CA          SET ENTRY INDEX
          ADC    -KBUF
          STD    KI 
          STD    T1          CLEAR BUFFER 
 EIE9     LDN    0
          STM    KBUF,T1
          AOD    T1 
          LMN    KBUFL
          NJN    EIE9        IF BUFFER NOT MOVED
 EIE10    LJM    KBI3        RETURN 
  
 EIE11    LDN    KBUFL-2     OVERFLOW PAST START OF ECS ADDRESS 
          STD    T1 
 EIE12    LDM    KBUF+1,T1   MOVE CONTENTS OF BUFFER
          STM    KBUF+2,T1
          SOD    T1 
          PJN    EIE12       IF BUFFER NOT MOVED
          LDN    1R1         SET FIRST CHARACTER OF ADDRESS 
          STM    KBUF+1 
          LJM    EIE5 
          COMMAND (CPU PROGRAM INTERFACE COMMANDS.) 
 M.       SPACE  4
***       M.CCC - CCC 
* 
*         ENTER CCC - CCC AS CPU PROGRAM COMMAND. 
*         DATA IS PASSED STARTING AT (RA+CCDR). 
  
  
 MCU      ENTRY 
          LDD    FL 
          NJN    MCU1        IF FL GREATER THAN ZERO
          LDC    =C*OUT OF RANGE.*
          STD    KM          SET ERROR MESSAGE
          JMP    KBR         EXIT 
  
 MCU1     LDN    CCDR 
          STD    T3          SET COMMAND ADDRESS
          LDD    CA          SET CHARACTER ADDRESS
          STD    T1 
 MCU2     LDD    T1 
          RJM    ASC         ASSEMBLE CHARACTERS
          LDD    RA          STORE WORD 
          SHN    6
          ADD    T3 
          CWD    AB 
          AOD    T3          ADVANCE WORD ADDRESS 
          LDD    AB+4 
          NJN    MCU2        IF NOT END OF COMMAND
          LDN    2           SET KEYBOARD INDEX 
          STD    KI 
          STD    T1 
 MCU3     LDN    0           CLEAR REMAINDER OF BUFFER
          STM    KBUF,T1
          AOD    T1 
          LMN    KBUFL
          NJN    MCU3        LOOP 
          JMP    KBI3        RETURN 
 N.       SPACE  4
***       N.
* 
*         SET CPU DIRECT INPUT MODE.
  
  
 NCU      ENTRY 
          RJM    CKB         CLEAR KEYBOARD BUFFER
          LDC    NCUA        SET KEYBOARD MESSAGE 
          STD    KM 
          RJM    KBIA        SET DIRECT INPUT MODE
  
*         RE-ENTRY FROM KEYBOARD INPUT. 
  
          LDD    KE          CHECK CHARACTER
          ZJN    NCU3        IF NO INPUT
          LMN    53 
          NJN    NCU1        IF NOT LEFT BLANK
          AOM    NCUB        COUNT LEFT BLANK 
          LMN    2
          NJN    NCU2        IF NOT 2 IN SUCCESSION 
          STD    KM          CLEAR KEYBOARD MESSAGE 
          LDC    KBI5        RESET KEYBOARD INPUT 
          STM    KBIA 
 NCU1     LDN    0           CLEAR COUNT
          STM    NCUB 
 NCU2     LDD    FL 
          ZJN    NCU3        IF NO MEMORY 
          LDN    ZERL        STORE INPUT CHARACTER
          CRD    CM 
          LDD    KE 
          STD    CM+4 
          LDD    RA 
          SHN    6
          ADN    CCDR 
          CWD    CM 
 NCU3     JMP    KBI3        RETURN 
  
 NCUA     DATA   7001B
          DATA   C*DIRECT CPU INPUT.* 
 NCUB     CON    0
          COMMAND (ENTER FIELD LENGTH.) 
 ENFL,    SPACE  4
***       ENFL,XXXXXX.
* 
*         ENTER FIELD LENGTH WITH XXXXXX.  VALUE WILL BE
*         ROUNDED TO NEXT HIGHER MULTIPLE OF 100B.
  
  
 ENF      ENTRY 
          RJM    ASD         ASSEMBLE DIGITS
          RJM    ECP         END CENTRAL PROGRAM
          LDD    CP          GET NFL SIZE 
          ADN    FLSW 
          CRD    CM 
          LDD    AB+3        ROUND REQUEST
          LPN    77 
          SHN    6
          ADD    CM          INCLUDE NFL IN VALIDATION
          SHN    6
          ADD    AB+4 
          ADN    77 
          MJN    ENF1        IF FL .GT. 377700
          SHN    -6 
          SBD    CM 
          STM    RQSA 
          LDD    CP          CHECK FOR EXTENDED MEMORY ASSIGNED 
          ADN    ECSW 
          CRD    CM 
          LDD    CM+4 
          ZJN    ENF0        IF NO EXTENDED MEMORY ASSIGNED 
          LDM    RQSA        CHECK THAT REQUESTED CM IS ENOUGH FOR ECS
          ADC    -MCMX/100
          MJN    ENF1        IF .LT. MCMX WORDS REQUESTED WITH ECS
 ENF0     RJM    RQS         REQUEST STORAGE
          JMP    KBR         RETURN 
  
 ENF1     LDC    =C*INCORRECT FL REQUEST.*
          LJM    RQS3 
 RQS      SPACE  4
**        RQS - REQUEST STORAGE.
* 
*         ENTRY (RQSA) = FIELD LENGTH REQUESTED.
* 
*         CALLS  RSI. 
  
  
 RQS4     STD    KM 
          LDC    KBI5        RESET KEYBOARD 
          STM    KBIA 
  
 RQS      SUBR               ENTRY/EXIT 
          LDK    WCDC        SET KEYBOARD MESSAGE DELAY 
          STM    RQSB 
 RQS1     LDC    *           REQUESTED FIELD LENGTH 
 RQSA     EQU    *-1
          RJM    RSI
          ZJN    RQS4        IF STORAGE ASSIGNED
          MJN    RQS2        IF NOT AVAILABLE 
          SOM    RQSB 
          PJN    RQS1.1      IF THE DELAY HAS NOT EXPIRED 
          LDC    =C*WAITING FOR STORAGE.* 
          STD    KM 
 RQS1.1   RJM    KBIA        RESUME KEYBOARD PROCESSING 
          LDD    KE          CHECK KEYBOARD ENTRY 
          LMN    53 
          NJN    RQS1        IF NOT LEFT BLANK
          RJM    RSI         CLEAR PENDING REQUEST IN *FLIW*
          UJN    RQS3 
  
 RQS2     LDC    =C*STORAGE NOT AVAILABLE.* 
 RQS3     STD    KM 
          LDC    KBI5        RESET KEYBOARD 
          STM    KBIA 
          JMP    KBR         RETURN 
  
  
 RQSB     CON    WCDC        WAITING FOR CM DELAY COUNT 
          SPACE  4
*         COMMON DECKS. 
  
  
*CALL     COMPRSI 
          COMMAND (ENTER EXTENDED MEMORY FIELD LENGTH.) 
          SPACE  4,10 
***       ENFLE,XXXXX.
* 
*         ENTER EXTENDED MEMORY FIELD LENGTH WITH XXXXX*1000B.
  
  
 EFX      ENTRY 
          RJM    ASD         ASSEMBLE DIGITS
          RJM    ECP         END CENTRAL PROGRAM
          LDN    ECRL        DIRECT ACCESS ECS MUST BE DEFINED
          CRD    CM 
          LDD    CM+1 
          ZJP    EFX8        IF NO USER EXTENDED MEMORY 
          LDC    SHNI+77     PRESET SHIFT INSTRUCTIONS
          SBD    UE 
          STM    EFXB 
          ADK    6-77 
          STM    EFXC 
          LDD    CP          EXTENDED MEMORY LENGTH CONTROL WORD
          ADN    ELCW 
          CRD    CM 
          LDD    AB+3        SET CURRENT AMOUNT REQUESTED 
 EFXB     SHN    0
*         SHN    -UESC
          NJN    EFX2        IF .GE. 10000 WORD BLOCKS
          LDD    AB+3 
          ADD    AB+4 
          ZJN    EFX5        IF SETTING EXTENDED MEMORY FL TO ZERO
          LDD    FL          CHECK FOR ENOUGH CM FOR ECS REQUEST
          ADC    -MCMX/100
          MJN    EFX4        IF NOT ENOUGH CM 
          LDD    AB+3 
          SHN    14 
          LMD    AB+4 
 EFXC     SHN    6
*         SHN    6-UESC 
          ADN    77 
          PJN    EFX5        IF REQUEST .LE. 3777 BLOCKS
 EFX2     LDC    =C*REQUEST EXCEEDS MAXIMUM FLE.* 
 EFX3     LJM    EFX9        RETURN WITH ERROR
  
 EFX4     LDC    =C*INSUFFICIENT FIELD LENGTH.* 
          UJN    EFX3        RETURN WITH ERROR
  
 EFX5     SHN    -6          SET LAST EXTENDED MEMORY RFL 
          STD    CM+1 
          LDD    CP          UPDATE EXTENDED MEMORY LENGTH CONTROL WORD 
          ADN    ELCW 
          CWD    CM 
          LDK    WEDC        SET KEYBOARD MESSAGE DELAY 
          STM    EFXA 
 EFX6     LDD    CM+1        REQUESTED FIELD LENGTH 
          RJM    REI         REQUEST ECS FIELD LENGTH CHANGE
          ZJN    EFX9        IF EXTENDED MEMORY ASSIGNED
          MJN    EFX8        IF EXTENDED MEMORY NOT AVAILABLE 
          SOM    EFXA 
          PJN    EFX7        IF DELAY HAS NOT EXPIRED 
          LDC    =C*WAITING FOR EXTENDED MEMORY.* 
          STD    KM 
 EFX7     RJM    KBIA        RESUME KEYBOARD PROCESSING 
          LDD    KE          CHECK KEYBOARD ENTRY 
          LMN    53 
          ZJN    EFX9        IF LEFT BLANK (ABORT)
          LDD    CP          READ EXTENDED MEMORY LENGTH CONTROL WORD 
          ADN    ELCW 
          CRD    CM 
          UJN    EFX6        ISSUE RE-REQUEST 
  
 EFX8     LDC    =C*EXTENDED MEMORY NOT AVAILABLE.* 
 EFX9     STD    KM 
          LDC    KBI5        RESET KEYBOARD 
          STM    KBIA 
          JMP    KBR         RETURN 
  
  
 EFXA     CON    WEDC        WAITING FOR EM DELAY COUNT 
          SPACE  4,10 
*CALL     COMPREI 
          COMMAND (CALL SPECIAL PP DISPLAYS TO CONTROL POINT.)
 DDF      SPACE  4,10 
***       DDF.
* 
*         CALL *DDF* TO CONTROL POINT.
  
  
 DDF      ENTRY 
          LDC    3RFDD       SET NAME TO *DDF*
          EXECUTE  DDF,=
          UJN    LSP         LOAD SPECIAL PP
 O26.     SPACE  4
***       O26.
* 
*         CALL *O26* TO CONTROL POINT.
  
  
 O26      ENTRY 
          LDC    3R6O2       SET NAME TO *O26*
          EXECUTE  O26,=
*         UJN    LSP         LOAD SPECIAL PP
 LSP      SPACE  4,10 
**        LSP - LOAD SPECIAL PP.
* 
*         ENTRY  (A) = PP NAME. 
  
  
 LSP      BSS    0           ENTRY
          STM    LSPA        SAVE PP NAME 
          SHN    -14
          SHN    6
          STM    LSPB 
          RJM    CAJ         CHECK ACTIVE JOB 
          ZJN    LSP1        IF JOB NOT ACTIVE
          LDC    INTF        MESSAGE = *JOB ACTIVE.*
          STD    KM 
          JMP    KBR
  
 LSP1     LDD    CP          READ SPECIAL ENTRY INFORMATION 
          ADC    SEPW 
          CRD    CM 
          LDD    CM 
          LPN    24 
          ZJN    LSP2        IF NO SPECIAL ENTRY
          LDN    2
          RJM    IAJ         CALL 1AJ 
 LSP2     RJM    RQS         REQUEST STORAGE
          LDC    **          CHANGE NAME IN INPUT REGISTER
 LSPA     EQU    *-1
          STD    IR 
          LDD    IR+1 
          LPN    77 
          LMC    ** 
 LSPB     EQU    *-1
          STD    IR+1 
          LJM    CDS         LOAD THE PP
 RQS      SPACE  4
**        RQS - REQUEST STORAGE.
* 
*         USES   CM - CM+4. 
* 
*         CALLS  RSI. 
  
  
 RQS4     STD    KM 
          LDC    KBI5        RESET KEYBOARD 
          STM    KBIA 
  
 RQS      SUBR               ENTRY/EXIT 
          LDK    WCDC        SET KEYBOARD MESSAGE DELAY 
          STM    RQSA 
 RQS1     LDD    CP          READ FL CONTROL
          ADN    FLCW 
          CRD    CM 
          LDD    CM+1        REQUEST STORAGE INCREASE 
          ZJN    RQS1.0      IF NO FL SPECIFIED 
          SBN    2
          MJN    RQS1.3      IF INSUFFICIENT FL 
          SBN    76 
 RQS1.0   ADD    HN 
 RQS1.1   RJM    RSI
          ZJN    RQS4        IF STORAGE ASSIGNED
          MJN    RQS2        IF NOT AVAILABLE 
          SOM    RQSA 
          PJN    RQS1.2      IF THE DELAY HAS NOT EXPIRED 
          LDC    =C*WAITING FOR STORAGE.* 
          STD    KM 
 RQS1.2   RJM    KBIA        RESUME KEYBOARD PROCESSING 
          LDD    KE          CHECK KEYBOARD ENTRY 
          LMN    53 
          NJN    RQS1        IF NOT LEFT BLANK
          UJN    RQS3 
  
 RQS1.3   LDC    =C*INSUFFICIENT FIELD LENGTH.* 
          UJN    RQS3        SET UP ERROR MESSAGE 
  
 RQS2     LDC    =C*STORAGE NOT AVAILABLE.* 
 RQS3     STD    KM 
          LDC    KBI5        RESET KEYBOARD 
          STM    KBIA 
          JMP    KBR         RETURN 
  
  
 RQSA     CON    WCDC        WAITING FOR CM DELAY COUNT 
          SPACE  4
*         COMMON DECKS. 
  
  
*CALL     COMPRSI 
          COMMAND (MISCELLANEOUS COMMANDS.) 
 CEF      SPACE  4,10 
***       CEF.
* 
*         CLEAR SKIP-TO-EXIT FLAG.  THIS ALLOWS COMMAND PROCESSING
*         TO CONTINUE WITH THE NEXT COMMAND INSTEAD OF SKIPPING TO
*         THE *EXIT* COMMAND AFTER AN ERROR.
  
  
 CEF      ENTRY 
          RJM    CAJ         CHECK ACTIVE JOB 
          NJN    CEF1        IF JOB ACTIVE
          LDD    CP          READ *CSSW*
          ADN    CSSW 
          CRD    CM 
          LDD    CM          CLEAR *SKIP TO EXIT* FLAG
          LPC    5777 
          STD    CM 
          LDD    CP          REWRITE *CSSW* 
          ADN    CSSW 
          CWD    CM 
          JMP    KBR         RETURN 
  
 CEF1     LDC    INTF        *JOB ACTIVE.*
          STD    KM 
          JMP    KBR         RETURN 
 OFFSW    SPACE  4
***       OFFSWX. 
* 
*         TURN SENSE SWITCH X OFF.
  
  
 OFS      ENTRY 
          RJM    ASD         ASSEMBLE DIGITS
          LDD    AB+4        COMPUTE SHIFT
          LPN    7
          ADC    SHNI 
          STM    OFSA 
          LDN    40 
 OFSA     SHN    0
          SCN    77 
          LMC    -0          SET MASK 
          STM    OFSB 
          LDD    CP          READ SWITCH WORD 
          ADN    SNSW 
          CRD    CM 
          LDD    CM+4        CLEAR SWITCH 
          LPC    0
 OFSB     EQU    *-1
          STD    CM+4 
          LDD    CP          RESTORE SWITCH WORD
          ADN    SNSW 
          CWD    CM 
          LDD    RA          STORE IN (RA)
          SHN    6
          CWD    CM 
          JMP    KBR         RETURN 
 ONSW     SPACE  4
***       ONSWX.
* 
*         TURN SENSE SWITCH X ON. 
  
  
 ONS      ENTRY 
          RJM    ASD         ASSEMBLE DIGITS
          LDD    AB+4        COMPUTE SHIFT
          LPN    7
          ADC    SHNI 
          STM    ONSA 
          LDN    40 
 ONSA     SHN    0
          SCN    77 
          STD    T1 
          LMC    -0          SET MASK 
          STM    ONSB 
          LDD    CP          READ SWITCH WORD 
          ADN    SNSW 
          CRD    CM 
          LDD    CM+4        SET SWITCH 
          LPC    0
 ONSB     EQU    *-1
          ADD    T1 
          STD    CM+4 
          LDD    CP          RESTORE WORD 
          ADN    SNSW 
          CWD    CM 
          LDD    RA          STORE IN (RA)
          SHN    6
          CWD    CM 
          JMP    KBR         RETURN 
 UCC      SPACE  4,4
***       UCC = C.
* 
*         SET UPPER CASE CHARACTER TO C.
  
  
 UCC      ENTRY 
          LDM    KBIC        CLEAR/SET UPPER CASE CONTROL 
          SCN    77 
          LMI    CA 
          STM    KBIC 
          LDD    IR+2 
          SCN    77 
          LMI    CA 
          STD    IR+2 
          JMP    KBR         RETURN 
          COMMAND (MISCELLANEOUS COMMANDS.) 
 CDF      SPACE  4
**        CDF - CHANGE DISPLAY FIELD. 
  
  
 CDF      ENTRY 
          LDM    KBUF        SET DISPLAY INDEX
          STD    T6 
          LDM    DFCA,T6     SET DISPLAY FIELD
          STD    T7 
          LDM    KBUF+1      SET FIELD NUMBER 
          SBN    1R0
          STD    T5 
          LDC    KBUF+3      ASSEMBLE DIGITS
          RJM    ASD
          LDD    T6          CHECK RIGHT SCREEN DISPLAY 
          LMD    RS 
          ZJN    CDF1        IF THIS DISPLAY
          LMD    RS          SET LEFT SCREEN DISPLAY
          STD    LS 
 CDF1     LDD    T5          CHECK FIELD INDEX
          SBN    4
          PJN    CDF2        IF \ 4 
          ADN    4           SET FIELD INDEX
          SHN    1
          RAD    T7 
          LDD    AB+3        SET ADDRESS
          STI    T7 
          LDD    AB+4 
          STM    1,T7 
          JMP    KBR         RETURN 
  
 CDF2     NJN    CDF3        IF NOT 4 
          STI    T7          CLEAR FIELDS T0 0, 10, 20, 30
          STM    1,T7 
          STM    2,T7 
          STM    4,T7 
          STM    6,T7 
          ADN    10 
          STM    3,T7 
          ADN    10 
          STM    5,T7 
          ADN    10 
          STM    7,T7 
          UJN    CDF4        ADVANCE DISPLAY FIELD
  
 CDF3     SBN    1
          ZJN    CDF4        IF 5 
          SBN    1
          NJN    CDF5        IF NOT 6 
          LDD    AB+3        FORM 2,S COMPLEMENT
          LMC    -770000
          STD    AB+3 
          LDD    AB+4 
          LMC    -770000
          ADN    1
          STD    AB+4 
          SHN    -14
          RAD    AB+3 
 CDF4     LDD    T7          ADVANCE DISPLAY FIELD
          RJM    ADF
          JMP    KBR         RETURN 
  
 CDF5     LDD    AB+4        SET MANAGED TABLE BIAS 
          STM    -1,T7
          JMP    KBR         RETURN 
 SET      SPACE  4,10 
***       SET,IJ...K. 
* 
*         SET LEFT SCREEN ADVANCE TABLE TO DISPLAYS IJ...K.  (UP TO 
*         8 ENTRIES ARE ALLOWED.) 
  
  
 SET      ENTRY 
          LDD    CA          SET INDEX
          STD    T1 
 SET1     LDI    T1 
          NJN    SET3        IF NOT END 
 SET2     JMP    ILE         INCORRECT ENTRY
  
 SET3     SBN    DFCAL
          PJN    SET4        IF NOT DISPLAY 
          AOD    T1 
          UJN    SET1 
  
 SET4     SBN    1R.-DFCAL
          NJN    SET2        IF NOT *.* 
          STD    T2 
          STD    AI 
          LDD    T1          CHECK NUMBER OF ENTRIES
          SBD    CA 
          ZJN    SET2        IF NO ENTRIES
          SBN    ALSAL-1
          PJN    SET2        IF TOO MANY
 SET6     LDI    CA          STORE CHARACTER
          STM    ALSA,T2
          AOD    T2          ADVANCE INDEX
          AOD    CA 
          LMD    T1 
          NJN    SET6        LOOP 
          STM    ALSA,T2
          JMP    KBR         RETURN 
 T,       SPACE  4
***       T,XXXXXX. 
* 
*         CHANGE *T* DISPLAY TO START AT ADDRESS XXXXXX.
 TDC      SPACE  4
***       U,XXXXXX. 
* 
*         CHANGE *U* DISPLAY AT ADDRESS XXXXXX. 
  
  
 TDC      ENTRY 
          RJM    ASD         ASSEMBLE DIGITS
          LDM    KBUF 
          STD    T1 
          LDD    AB+3        SET DISPLAY
          LPN    37 
          STM    DSTA-1RT,T1
          LDD    AB+4 
          STM    DSTA+2-1RT,T1
          LDD    T1 
          JMP    SLS         SET LEFT SCREEN
 V,       SPACE  4
***       V,XXXXXX. 
* 
*         SET *V* DISPLAY ADDRESS TO XXXXXX.
  
  
 VDC      ENTRY 
          RJM    ASD         ASSEMBLE DIGITS
          LDD    AB+3        SET DISPLAY ADDRESS
          LPN    37 
          STM    DSVA 
          LDD    AB+4 
          STM    DSVA+1 
          LDM    KBUF        SET LEFT SCREEN
          JMP    SLS
          COMMAND (INTERPRET KEYSET MESSAGE.) 
 IKM      SPACE  4
**        IKM - INTERPRET KEYSET MESSAGE. 
* 
*         CALLS  SSF. 
  
  
 IKM      ENTRY 
          LDC    IKMA        SEARCH FOR SPECIAL FORMAT
          RJM    SSF
          LDC    IMM         INTERPRET MORE MESSAGES
          LJM    LOV
  
*         TABLE OF REQUESTS.
  
  
 IKMA     BSS    0
  
          QUAL
  
 BKA      ENTER  (BKPA,)
 BKP      ENTER  (BKP,) 
 ESX      ENTER  (BEGIN)
 ESX      ENTER  (CALL) 
 CEF      ENTER  (CEF.) 
 DDF      ENTER  (DDF.) 
 ELS      ENTER  (ELS.) 
 ENF      ENTER  (ENFL,)
 EFX      ENTER  (ENFLE,) 
 ENS      ENTER  (ENS.) 
 EPR      ENTER  (ENPR,)
 ESX      ENTER  (ENTER)
 ETL      ENTER  (ENTL,)
 EXC      ENTER  (X.) 
 GGO      ENTER  (GO.)
 GTO      ENTER  (GOTO) 
 RCP      ENTER  (RCP.) 
 RCS      ENTER  (RCS.) 
 RNS      ENTER  (RNS.) 
 RSN      ENTER  (RSS,) 
 RSS      ENTER  (RSS.) 
 SCP      ENTER  (DCP.) 
          QUAL   *
          DATA   0           END OF TABLE 
          COMMAND (CHECK KEYBOARD REQUEST.) 
 BEG      SPACE  4,10 
**        BEG - ENTER *BEGIN,* INTO KEYBOARD BUFFER.
* 
*         ENTRY  (KBUF) = FIRST CHARACTER.
  
 BEG      ENTRY 
          LDN    6
          STD    KI          SET KEYBOARD INDEX 
          LDN    2           SET WORDS TO WRITE 
          STD    T1 
          LDD    MA 
          CWM    BEGA,T1     WRITE ENTRY
          LDD    MA 
          CRM    KBUF,T1     READ ENTRY 
          LJM    KBIX        PROCESS KEYBOARD INPUT 
  
 BEGA     CON    1RB,1RE,1RG,1RI,1RN,1R,,0,0,0,0
 CKR      SPACE  4
**        CKR - CHECK KEYBOARD REQUEST. 
* 
*         ENTRY  NONE.
* 
*         EXIT   TO CJS 
  
  
 CKR      ENTRY 
          LDD    CP          READ LAST MESSAGE
          ADN    MS1W 
          CRD    CM 
          STD    T1          SET WORD ADDRESS 
          LDN    CM+1        SET BYTE ADDRESS 
          STD    T2 
          LDD    CM          CHECK FIRST CHARACTER
          STD    T3 
          SHN    -6 
          LMN    1R*
          ZJN    CKR1        IF (*) 
          LJM    CJS7        EXIT 
  
 CKR1     LDD    KI          CHECK KEYBOARD BUFFER
          ZJN    CKR2        IF EMPTY 
          LJM    CJSX        EXIT FROM CHECK JOB STATUS 
  
 CKR2     LDD    CM          CHECK SECOND CHARACTER 
          LPN    77 
          ZJN    CKR3        IF NO SECOND CHARACTER 
          LMN    1R 
          NJN    CKR5        IF SECOND CHARACTER NOT BLANK
 CKR3     LDD    CM+1 
          SHN    -6 
          ZJN    CKR5        IF NO THIRD CHARACTER
          SBN    1R8
          PJN    CKR5        IF THIRD CHARACTER NOT ALPHAOCTAL
 CKR4     LDI    T2          UNPACK BYTE
          ZJN    CKR6        IF END OF MESSAGE
          SHN    14 
          STM    KBUF,KI
          SHN    -14
          STM    KBUF+1,KI
          LDN    2
          RAD    KI 
          AOD    T2          ADVANCE WORD 
          LMN    CM+5 
          NJN    CKR4        LOOP TO END OF WORD
          AOD    T1          READ NEXT WORD 
          CRD    CM 
          LDN    CM          RESET BYTE ADDRESS 
          STD    T2 
          LDD    KI          CHECK KEYBOARD 
          SBN    KBUFL
          MJN    CKR4        IF NOT FULL
 CKR5     LDN    0           CLEAR MESSAGE
          STD    CM 
          LDD    CP 
          ADN    MS1W 
          CWD    CM 
          RJM    CKB         CLEAR KEYBOARD BUFFER
          LJM    CJS7        EXIT 
  
 CKR6     LDC    CJS15       SET *KBI* RETURN 
          STM    KBI
          LDC    LDNI        SET CPU REQUEST STATUS 
          STM    CJSC 
          LDD    T3          CHECK 2ND CHARACTER
          LPN    77 
          NJN    CKR7        IF NOT CPU REQUEST 
          LDN    ZERL 
          CRD    CM          CLEAR SYSTEM REQUEST (RA+1)
          LDD    RA 
          SHN    6
          ADN    1
          CWD    CM 
          AOM    CJSC        SET TO REQUEST CPU 
 CKR7     LDN    0           CLEAR MESSAGE
          STD    CM 
          LDD    CP 
          ADN    MS1W 
          CWD    CM 
          LJM    INT1        INTERPRET KEYBOARD MESSAGE 
          COMMAND (INTERPRET MORE MESSAGES.)
 IMM      SPACE  4
**        IMM - INTERPRET MORE MESSAGE. 
* 
*         CALLS  SSF. 
  
  
 IMM      ENTRY 
          LDC    IMMA        SEARCH FOR SPECIAL FORMAT
          RJM    SSF
          LJM    INT9 
  
*         TABLE OF REQUESTS.
  
  
 IMMA     BSS    0
  
          QUAL
  
 ENA      ENTER  (ENA)
 ENB      ENTER  (ENB)
 ENE      ENTER  (ENEM,)
 ENP      ENTER  (ENP,) 
 ENX      ENTER  (ENX)
 NCU      ENTER  (N.) 
 OFS      ENTER  (OFFSW)
 ONS      ENTER  (ONSW) 
 ROL      ENTER  (ROLLOUT.) 
 ROL1     ENTER  (ROLLOUT,) 
 SCS      ENTER  (SCS.) 
 SET      ENTER  (SET,) 
 TDC      ENTER  (T,) 
 TDC      ENTER  (U,) 
 UCC      ENTER  (UCC=) 
 VDC      ENTER  (V,) 
  
          QUAL   *
          DATA   0
 SCS      SPACE  4
***       SCS.
* 
*         STOP AUTO COMMAND SCAN. 
  
  
 SCS      ENTRY 
          LDD    KM          CHECK KEYBOARD MESSAGE 
          LMC    CJSA 
          NJN    SCS1        IF NOT AUTO COMMAND SCAN 
          STD    KM          CLEAR MESSAGE
 SCS1     JMP    KBR         RETURN 
          COMMAND (CALL PPU PROGRAM.) 
 CPP      SPACE  4
**        CPP - CALL PP PACKAGE TO CONTROL POINT. 
* 
*         USES   T1, T6, T7, CM - CM+4. 
* 
*         CALLS  ASD, ASN, CDR, IAJ, RPP, SSF.
  
  
 CPP      ENTRY 
          LDC    CPPA 
          RJM    SSF         SEARCH FOR SPECIAL FORMAT
          LDD    CP          CHECK IF SPECIAL JOB 
          ADC    SEPW 
          CRD    CM 
          LDD    CM 
          LPN    24 
          ZJN    CPP1        IF NOT SPECIAL JOB 
          LDN    2
          RJM    IAJ         CALL *1AJ* TO CLEAN UP JOB 
 CPP1     LDC    KBUF        ASSEMBLE NAME
          RJM    ASN
          LDD    AB+1        SET PROGRAM NAME IN MONITOR REQUEST
          SHN    6
          LMD    AB 
          SHN    6
          STD    CM+3 
          SHN    -14
          STD    CM+2 
          SHN    14 
          LMD    CM+3 
          LMC    3RCIO
          ZJN    CPP2        IF *CIO* REQUEST 
          MONITOR  SPLM 
          LDD    CM+1        CHECK FOR PROGRAM FOUND
          SHN    -6-1 
          ZJN    CPP2        IF PROGRAM FOUND AND IS 12 BIT BINARY
          LJM    PPCX        RETURN 
  
*         ASSEMBLE PARAMETERS IN INPUT REGISTER.
  
 CPP2     LDD    MA          SET PROGRAM NAME 
          CWD    AB 
          CRD    CM 
          LDN    0           CLEAR PARAMETERS 
          STD    CM+2 
          STD    CM+3 
          STD    CM+4 
          LDI    T1          CHECK CHARACTER
          SBN    1R.
          ZJN    CPP5        IF PERIOD
          AOD    T1          ASSEMBLE DIGITS
          RJM    CDR
          SBN    1R.
          ZJN    CPP4        IF PERIOD
          ADN    1R.-1R,
          ZJN    CPP3        IF COMMA 
          LJM    ILL         INCORRECT ENTRY
  
 CPP3     LDD    AB+3        SET PARAMETER 1
          LPN    77 
          SHN    14 
          LMD    AB+4 
          SHN    14 
          STD    CM+2 
          SHN    -6 
          SCN    77 
          STD    CM+3 
          AOD    T1          ASSEMBLE DIGITS
          RJM    ASD
 CPP4     LDD    AB+3        SET PARAMETER 2
          LPN    77 
          RAD    CM+3 
          LDD    AB+4 
          STD    CM+4 
 CPP5     LDN    ZERL 
          CRD    AB 
          LDD    MA          STORE CALL 
          CWD    CM 
          ADN    1
          CWD    AB 
          RJM    CAJ         CHECK ACTIVE JOB 
          NJN    CPP6        IF JOB ACTIVE
          STD    CM+1        ALLOW QUEUING OF PP REQUEST
          MONITOR  RPPM 
          JMP    KBR
  
 CPP6     LDC    INTF        MESSAGE = *JOB ACTIVE.*
          STD    KM 
          JMP    KBR         RETURN 
 CPPA     SPACE  4,10 
*         TABLE OF ENTRIES TO BE INTERPRETED AS CP PROGRAM ENTRY POINTS 
*         RATHER THAN PP PROGRAM NAMES. 
  
  
 CPPA     BSS    0
  
          QUAL
  
 INTD     ENTER  (OUT.)      RETURN TO PROCESS *OUT* COMMAND
  
          QUAL   *
          DATA   0           END OF TABLE 
          TTL    DIS - JOB DISPLAY. 
          TITLE  TABLES AND BUFFERS.
 KBUF     SPACE  4
*         TERMINATE COMMAND OVERLAYS. 
  
  
          QUAL
          HERE
          USE    END         FORCE /LITERALS*/
 KBUF     SPACE  4
*         KEYBOARD ENTRY BUFFER.
  
  
 KBUFL    EQU    49D
 KBUF     EQU    7774-KBUFL  LAST 3 WORDS ALWAYS ZERO 
 OVL      SPACE  4
*         OVERLAY CONTROL.
  
  
 LL.      SET    *+4
          ERRNG  KBUF-LL.    OVERFLOW CHECK FOR LAST OVERLAY
 .L       SET    .L+4-OVL 
 .L       SET    .L/5*5+OVL 
          ERRNG  KBUF-.L-1   PP MEMORY OVERFLOW 
          SPACE  4
          TTL    DIS - JOB DISPLAY. 
          END 
