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