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 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