IDENT DSD,0
PERIPH J
BASE MIXED
SST CP,DLYA,EXR,FTN,.BLI,.EST,CMEI
SYSCOM DEFINE JOB COMMUNICATION AREA SYMBOLS
QUAL$ EQU 1 DEFINE UNQUALIFIED COMMON DECKS
*COMMENT DSD - SYSTEM DISPLAY.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE DSD - DYNAMIC SYSTEM DISPLAY.
SPACE 4,10
*** DSD - DYNAMIC SYSTEM DISPLAY.
*
* G. R. MANSFIELD. 70/12/13.
* C. B. LOSCHEIDER. 78/09/11.
SPACE 4,10
*** DSD IS LOADED IN PP 1 AT DEAD START TIME AND
* REMAINS THERE THROUGHOUT EXECUTION OF THE SYSTEM.
* DSD PROVIDES AN OVERALL STATUS DISPLAY FOR ALL CURRENTLY
* RUNNING JOBS VIA THE 6612 DISPLAY. THE KEYBOARD OF THE
* 6612 IS MONITORED BY DSD AND IS USED FOR OPERATOR
* COMMUNICATION TO THE SYSTEM.
*
* *DSD* INPUT REGISTER.
*
*T, 18/ *DSD*,6/ SC,6/ LDS,6/ RDS,12/ LEJT,12/ REJT
*
* SC SYSTEM CONTROL POINT NUMBER.
* LDS LEFT SCREEN DISPLAY NAME.
* RDS RIGHT SCREEN DISPLAY NAME.
* LEJT EJT ORDINAL OF JOB ASSIGNED TO LEFT SCREEN.
* REJT EJT ORDINAL OF JOB ASSIGNED TO RIGHT SCREEN.
SPACE 4,15
** PROGRAMMING CONSIDERATIONS.
*
* BECAUSE THE LAST DISPLAY OVERLAY AND THE LAST
* COMMAND OVERLAY ARE CHECKED FOR OVERFLOW IN A SPECIAL CASE,
* THE FOLLOWING CONDITIONS MUST BE MAINTAINED TO ALLOW NEW
* OVERLAYS TO REACH THE LARGEST POSSIBLE SIZE.
* 1. THE *Z DISPLAY* OVERLAY MUST BE THE LAST DISPLAY OVERLAY.
* 2. THE *ENTER DATE* OVERLAY MUST BE THE LAST COMMAND OVERLAY.
*
* FOR INFORMATION ON HOW TO SET UP A CALL
* TO *1DS*, SEE COMMON DECK *COMS1DS*.
SPACE 4,10
*CALL COMDMAC
*CALL COMPMAC
*CALL COMSCPS
*CALL COMSDST
*CALL COMSEJT
*CALL COMSHIO
*CALL COMSLFD
*CALL COMSMMF
*CALL COMSMSC
*CALL COMSMLS
*CALL COMSPIM
*CALL COMSPRD
*CALL COMSSSD
*CALL COMSSSJ
SPACE 4,10
**** DIRECT LOCATION ASSIGNMENTS.
ORG 0
T0 CON /DSD/PRS-1 TEMPORARY STORAGE
T1 CON 0
T2 CON 0
T3 CON 0
T4 CON 0
T5 CON 0
T6 CON 0
T7 CON 0
CM VFD 60/0 CM WORD BUFFER
LA CON 0 OVERLAY LOAD ADDRESS
XC CON CH01 X-COORDINATE
YC CON LN02 Y-COORDINATE
AB VFD 60/0 ASSEMBLY BUFFER
AR CON 0 CHANNEL *A* REGISTER
LS CON 0 LEFT SCREEN DISPLAY
RS CON 0 RIGHT SCREEN DISPLAY
TM VFD 60/0 TIME OF DAY (PRESET ONLY)
SR EQU TM SCRATCH (DISPLAY AND COMMAND OVERLAYS)
* (SR DESTROYED BY *MONITOR* OR *EXECUTE*)
DT VFD 60/0 DATE (PRESET, DATE, AND TIME OVERLAYS)
SH EQU DT SCRATCH (DISPLAY AND COMMAND OVERLAYS)
LG CON 0 LOGGING ONLY FLAG
CY CON 0 CYCLE COUNT
ID CON 0 MESSAGE BUFFER INTERLOCK FLAG WITH *1DS*
NC CON 0 NUMBER OF CONTROL POINTS
CN CON 0 CONTROL POINT NUMBER OR DISPLAY NAME
CP CON 0 CONTROL POINT ADDRESS
SP VFD 60/0 SPECIAL PARAMETER WORD FOR *1DS* CALL
SF CON 0 SECURITY FLAG
DK CON 0 DISPLAY KEYBOARD CONTROL
T8 CON 0 SCRATCH
T9 CON 0 SCRATCH
KI CON 0 KEYBOARD INDEX
KM CON 0 KEYBOARD MESSAGE
KE CON 0 PRESET KEYBOARD ENTRY
KR CON 0 KEYBOARD READY FLAG
CA CON 0 CHARACTER ADDRESS
LK CON 0 LOCK FLAG
ST CON 0 STEP FLAG
ON CON 1 CONSTANT 1
HN CON 100 CONSTANT 100
TH CON 1000 CONSTANT 1000
TR CON 3 CONSTANT 3
EI CON 0 EJT ENTRY INTERLOCK
IA CON 0
OA CON 0
MA CON 0
****
SPACE 4,10
* ASSEMBLY CONSTANTS.
ILSP EQU 1RA INITIAL LEFT SCREEN DISPLAY
IRSP EQU 1RB INITIAL RIGHT SCREEN DISPLAY
EWAL EQU 100 ADDRESS OF ADDRESS LIST FOR *ECSM* WRITE
ERAL EQU 102 ADDRESS OF ADDRESS LIST FOR *ECSM* READ
OMT$ EQU 1 OMIT MANAGED TABLES LOGIC FROM *DCM*
MX3C EQU 1R5 MAXIMUM THIRD CHARACTER IN OVERLAY NAMES
SPACE 4,10
* DEFINE QUAL BLOCK ORDER.
QUAL DISPLAY
QUAL COMMAND
QUAL DSD
QUAL KEYBOARD
QUAL RES
QUAL PRESET
QUAL BIO
QUAL REM
QUAL
SPACE 4,10
* SUB-SYSTEM COMMON DECKS.
QUAL BIO
*CALL COMSBIO
QUAL *
QUAL CPS
*CALL COMSCPS
QUAL *
QUAL DSL
*CALL COMSDSL
QUAL *
* UNQUALIFIED *COMSDSL* SYMBOLS.
CH EQU /DSL/CH
SC EQU /DSL/SC
DSCP EQU /DSL/DSCP
*CALL COMSEVT
QUAL IOU
*CALL COMSIOU
QUAL *
* UNQUALIFIED *COMSIOU* SYMBOLS.
MR EQU /IOU/MR
MX EQU /IOU/MX
MXDM EQU /IOU/MXDM
MXPT EQU /IOU/MXPT
QUAL JIO
*CALL COMSJIO
QUAL *
*CALL COMSLFD
*CALL COMSLSD
QUAL MSP
*CALL COMSMSP
QUAL *
*CALL COMSMST
*CALL COMSMTR
QUAL MTX
*CALL COMSMTX
QUAL *
*CALL COMSPRD
QUAL REM
*CALL COMSREM
QUAL *
QUAL RSX
*CALL COMSRSX
QUAL *
QUAL SCR
*CALL COMSSCR
QUAL *
QUAL 1DS
*CALL COMS1DS
QUAL *
MICROS TITLE MICRO DEFINITIONS.
** DEFINE MICROS OF THE DISPLAY TITLES.
AHDR MICRO 1,,$A. DAYFILES.$
BHDR MICRO 1,,$B. SYSTEM STATUS.$
CHDR MICRO 1,,$C. CENTRAL MEMORY.$
DHDR MICRO 1,,$D. CENTRAL MEMORY.$
EHDR MICRO 1,,$E. EQUIPMENT STATUS.$
FHDR MICRO 1,,$F. CENTRAL MEMORY.$
GHDR MICRO 1,,$G. CENTRAL MEMORY.$
HHDR MICRO 1,,$H. SYSTEM FILES.$
IHDR MICRO 1,,$I. BIO STATUS.$
JHDR MICRO 1,,$J. JOB STATUS.$
KHDR MICRO 1,,$K. CPU PROGRAMMABLE.$
LHDR MICRO 1,,$L. CMR BUFFERS.$
MHDR MICRO 1,,$M. EXTENDED MEMORY.$
OHDR MICRO 1,,$O. TAF STATUS.$
PHDR MICRO 1,,$P. PP REGISTERS.$
QHDR MICRO 1,,$Q. QUEUE STATUS.$
RHDR MICRO 1,,$R. ROLLOUT STATUS.$
SHDR MICRO 1,,$S. SYSTEM CONTROL.$
THDR MICRO 1,,$T. INTERACTIVE STATUS.$
UHDR MICRO 1,,$U. INSTALLATION USE.$
VHDR MICRO 1,,$V. PP BREAKPOINT.$
WHDR MICRO 1,,$W. SYSTEM INFORMATION.$
YHDR MICRO 1,,$Y. MONITOR FUNCTIONS.$
ZHDR MICRO 1,,$Z. DIRECTORY.$
TITLE MACRO DEFINITIONS.
MACROS SPACE 4,10
** JMP - THREADED JUMP.
*
* JMP ADDR
*
* ENTRY *ADDR* = JUMP ADDRESS.
*
* NOTE - THIS MACRO IS DESIGNED FOR JUMPING BACKWARDS ONLY.
JMP MACRO ADDR
MACREF JMP
.A IF -DEF,/"QUAL"/.ADDR
NOREF .ADDR
.B IF ABS,ADDR-* INSURE SIMILAR TYPES
.ADDR MAX ADDR,*-40
.A ENDIF
.B IFGT .ADDR,*-40
UJN .ADDR
.ADDR SET *-1
.B ELSE
.ADDR SET *
LJM ADDR
.B ENDIF
JMP ENDM
SCLASS SPACE 4,15
** SCLASS - DEFINE SERVICE CLASS TABLE.
*
* SCLASS NM,MN,DF,ST,TX
*
* ENTRY *NM* = SERVICE CLASS NAME.
* *MN* = TWO CHARACTER MNEMONIC.
* *DF* = DAYFILE MESSAGE CHARACTER.
* *ST* = SHORT TEXT FOR *QFTLIST*.
* *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE.
*
* NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
* THIS MACRO.
SCLASS SPACE 4,10
PURGMAC SCLASS
SCLASS MACRO NM,MN,DF,ST,TX
.A IFC NE,$NM$SSSC$
.SCL RMT
INDEX NM,MN_MK TX
.SCL RMT
.A ENDIF
SCLASS ENDM
SCL$ EQU 0 ONLY PROCESS CLASSES WITH JCB-S
*CALL COMSSCD
TITLE OVERLAY ORGANIZATION.
OVERLAYS SPACE 4,15
** DSD USES THREE TYPES OF OVERLAYS - SYNTAX, DISPLAY,
* AND COMMAND.
* THE FOLLOWING MACROS FACILITATE THE ORGANIZATION AND
* COMMUNICATION BETWEEN OVERLAYS AND THE MAIN PROGRAM.
*
* OVERLAYS MAY RESIDE IN THE *RPL* OR THE *PLD*. FOR THOSE
* OVERLAYS WHICH RESIDE IN THE *PLD*, *DSD* CALLS *1DL* TO
* PROCESS THE PHYSCAL LOAD OF THE OVERLAYS.
*
* DISPLAY OVERLAYS ARE WRITTEN AS LOCATION FREE ROUTINES SINCE
* TWO MUST RESIDE IN DSD FOR THE TWO DISPLAY SCREENS.
* SYNTAX AND COMMAND OVERLAYS ARE ASSEMBLED AS ABSOLUTE
* ROUTINES.
*
* BY SPECIFYING A PARAMETER ON THE *DISPLAY* OR *COMMAND*
* MACRO, SELECTED OVERLAYS MAY AUTOMATICALLY BE MADE CM
* RESIDENT. OVERLAYS MAY ALSO BE MADE CM RESIDENT VIA
* *LIBDECK* ENTRIES. THIS ALLOWS SELECTED OVERLAYS TO BE
* MADE CM RESIDENT FOR DEBUGGING OR ON CERTAIN CONFIGURATIONS
* BUT BE DISK RESIDENT IN OTHER SITUATIONS.
ENTRY SPACE 4,10
** ENTRY - DEFINE OVERLAY ENTRY POINT.
*
*
* ENTRY NAME,D
*
* ENTRY (NAME) = NAME OF ENTRY POINT.
* (D) IF PRESENT, DEFINES DISPLAY OVERLAY ENTRY.
* POINT IS THE CURRENT VALUE OF THE ORIGIN COUNTER.
* EXIT (NAME) = ADDRESS + OVERLAY NUMBER * 10000B.
PURGMAC ENTRY
ENTRY MACRO NAME,D
ERRNG M. *ENTRY* IS NOT DEFINED FOR *RPL* OVERLAYS
IFC NE,*D**
RMT
QUAL DISPLAY
NAME EQU M.*10000B+/DSD"M."/NAME
QUAL *
RMT
ELSE 4
NAME BSS 0
QUAL COMMAND
NAME EQU M.*10000B+/DSD"M."/NAME
QUAL *
ENDM
OVLC SPACE 4,10
** OVLC - GENERATE OVERLAY NAME FOR CM RESIDENT OVERLAY.
*
*
* OVLC
*
* EXIT ("M.") = LAST TWO CHARACTERS OF OVERLAY NAME.
* ("N.") = LAST TWO CHARACTERS OF OVL NAME//OVL NUMBER.
* (M.) = OVERLAY NUMBER.
OVLC MACRO
C. SET C.+1
M. SET C./MX3C
P. MICRO M.,1,/ EFG/
M. SET C.-M.*MX3C
M. MICRO M.+1,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ012345
M. MICRO 1,2, "P.""M."
M. SET C.
N. OCTMIC M.,3
N. MICRO 1,,/"M." ("N.")/
ENDM
OVLF SPACE 4,10
** OVLF - GENERATE OVERLAY NAME FOR BEGINNING OF RPL OVERLAYS.
*
*
* OVLF
*
* EXIT ("N.") = ("M.") = *TA*.
* (M.) = -1.
OVLF MACRO
M. MICRO 1,, TA
N. MICRO 1,, TA
M. SET -1
ENDM
OVLN SPACE 4,10
** OVLN - GENERATE OVERLAY NAME.
*
*
* OVLN
*
* EXIT ("M.") = LAST TWO CHARACTERS OF OVERLAY NAME.
* ("N.") = LAST TWO CHARACTERS OF OVL NAME//OVL NUMBER.
* (M.) = OVERLAY NUMBER.
OVLN MACRO
N. SET N.+1
M. SET N./MX3C
P. MICRO M.,1,/ABCD /
M. SET N.-M.*MX3C
M. MICRO M.+1,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ012345
M. MICRO 1,2, "P.""M."
M. SET N.
N. OCTMIC M.,3
N. MICRO 1,,/"M." ("N.")/
ENDM
SYMBOLS SPACE 4,10
** OVERLAY GENERATION SYMBOLS.
NOREF C.,N.,M.,L.,L.C,L.D
N. SET 1*MX3C-1 NON-CM RESIDENT OVERLAY COUNTER
C. SET 5*MX3C-1 CM RESIDENT OVERLAY COUNTER
M. SET 0 OVERLAY COUNTER
M. MICRO 0,, LAST 2 CHARACTERS OF OVERLAY NAME
L. SET 0 OVERLAY LENGTH
L.C SET 0 MAXIMUM COMMAND OVERLAY LENGTH
L.D SET 0 MAXIMUM DISPLAY OVERLAY LENGTH
TITLE COMMAND ENTRIES.
ENTER SPACE 4,35
** ENTER - SPECIFY COMMAND ENTRY.
* THE *ENTER* MACRO IS USED FOR SPECIFYING THE FORMAT OF
* THE KEYBOARD COMMANDS.
*
*
*NAME ENTER COMMAND,COND,SDF,ERL
* ENTRY (NAME) = ADDRESS OF COMMAND PROCESSING ROUTINE AS
* SPECIFIED BY *ENTER* MACRO.
* (COMMAND) = SYNTAX FOR KEYBOARD ENTRY.
* (COND) = 0 OR MORE CONDITIONS WHICH MUST BE PRESENT TO
* PERMIT THE ENTERING OF COMMANDS IN THIS FORMAT.
* *LOCK* AND *SLOCK* ARE CONDITIONS THAT ARE
* CHECKED IN *CKS* IN *DSD* RESIDENT. ALL OTHER
* CONDITIONS ARE CHECKED IN A SUBROUTINE WHOSE
* NAME IS THE SAME AS THE CONDITION.
* = *LOCK* = UNLOCK IS REQUIRED.
* = *SLOCK* = SECURITY UNLOCK IS REQUIRED.
* (SDF) IF PRESENT, ENTRY IS TO BE ENTERED IN SYSTEM
* DAYFILE.
* (ERL) IF PRESENT, ENTRY IS TO BE ENTERED IN ERROR LOG.
*
* SPECIAL FIELDS MAY BE SPECIFIED BY THE FOLLOWING CHARACTERS -
*
* ' 70 (11-8-5) ALPHANUMERIC FIELD.
*
* ? 71 (11-8-6) OCTAL FIELD.
*
* < 72 (12-0) USED AS <XY - ANY CHARACTER BETWEEN *X*
* AND *Y* MAY BE USED IN THIS FIELD.
*
* > 73 (11-8-7) USED AS >XYZ> - ANY CHARACTER IN THE SET
* *XYZ* MAY BE USED IN THIS FIELD.
*
* @ 74 (8-5) TERMINATE SCAN - CHARACTERS IN ANY FORMAT
* MAY FOLLOW.
*
* \ 75 (12-8-5) LEGAL DISPLAY NAME.
*
* ; 77 (12-8-7) SET NEW SYNTAX TABLE - SYNTAX FIELD
* DESCRIBED BY (ADDRESS) WILL BE USED FOR
* REMAINDER OF FIELDS.
*
* NOTE.
*
* CONDITIONS OTHER THAN *LOCK* AND *SLOCK* CAN ONLY BE USED IN
* OVERLAYS AND THE OVERLAY MUST BEGIN WITH A LABELED *USE*
* PSEUDO-OP SUCH AS -
*
* USE CODE
MACRO ENTER,A,B,C,D,E
CON /COMMAND/A/10000,/COMMAND/A-/COMMAND/A/10000*10000
ORG *-2
ERRZR 0R_A NO COMMAND PROCESSOR SPECIFIED
.1 SET 0 DEFAULT LOCK CONDITION
.F IRP C CHECK FOR CONDITIONS
.G IFC NE,$C$$
.H IFC EQ,$C$SLOCK$
.1 SET 3
.H ELSE
.I IFC EQ,$C$LOCK$
.1 SET 1
.I ELSE
ERRZR 0R"M." ONLY *(S)LOCK* IS PERMITTED IN RESIDENT
.J IF ABS,*
ERR THE OVERLAY MUST BEGIN WITH A *USE*
.J ELSE
.K IF -DEF,/"QUAL"/CP.C
USE 0
CP.C CON C
USE *
.K ENDIF
CON CP.C-.FCOM+5
.J ENDIF
.I ENDIF
.H ENDIF
.G ENDIF
.F IRP
DATA Z$B$ GENERATE SYNTAX
VFD 2/.1
IFC NE,*D**
VFD 1/1
ELSE 1
VFD 1/0
IFC NE,*E**
VFD 1/1
ELSE 1
VFD 1/0
VFD 20//COMMAND/A
ENDM
COMMANDS SPACE 4,10
ORG 100
TCEF SPACE 4,15
** TCEF - TABLE OF COMMAND ENTRY FORMATS.
*
* NOTE - COMMANDS ARE TO BE IN THIS TABLE FOR ONE OF
* THE FOLLOWING REASONS -
*
* 1. THE COMMAND IS PROCESSED IN *DSD* RESIDENT.
* 2. THE COMMAND CAN BE ENTERED DURING DEADSTART
* (INCLUDING AS AN *IPRDECK* ENTRY).
* 3. THE COMMAND IS TO BE AVAILABLE WHEN THE SYSTEM
* IS HUNG. THE COMMAND ITSELF MUST THEN BE IN EITHER
* *DSD* RESIDENT OR IN A CM-RESIDENT OVERLAY.
*
* ALL OTHER SPECIFIC COMMANDS CAN THEREFORE HAVE THEIR
* TABLE ENTRY IN AN OVERLAY RATHER THAN IN *TCEF*.
TCEF BSS 0
CDS ENTER (\\.)
DJS ENTER (>HJKP>,'.)
DJM ENTER (>CDFGM>,'.)
DFC ENTER (>CDFGM><06,?.)
PPC ENTER (PP;) PP BREAKPOINT COMMANDS
STE ENTER (STEP.),LOCK
ULK ENTER (UNLOCK.),,SDF,ERL
* PROGRAMMING NOTE. THE *UNLOCK,USERNUM,PASSWOR.* COMMAND
* SYNTAX IS DISABLED IN PRESET ON NON-SECURE SYSTEMS. IF
* THIS COMMAND IS DELETED FOR ANY REASON, ENSURE THAT THE
* CORRESPONDING DISABLING CODE IS DELETED FROM PRESET, ALSO.
TSUL BSS 0
SUL ENTER (UNLOCK,','.)
UNS ENTER (UNSTEP.)
SAB ENTER (<AB;)
SCC ENTER (>C>;)
SDD ENTER (>D>;)
SEJ ENTER (<EI;)
SKN ENTER (<KN;)
SOP ENTER (<OP;)
SQR ENTER (<QR;)
SSS ENTER (>S>;)
STT ENTER (>T>;)
SUX ENTER (<UX;)
ENM ENTER (?,?.),SLOCK,SDF,ERL
ENM ENTER (?,,?.),SLOCK,SDF,ERL
ENM ENTER (?,<04,?.),SLOCK,SDF,ERL
ENM ENTER (?,I<03,?.),SLOCK,SDF,ERL
EMR ENTER (?<+-?.),SLOCK,SDF,ERL
EMR ENTER (?<+-,?.),SLOCK,SDF,ERL
EMR ENTER (?<+-<04,?.),SLOCK,SDF,ERL
EMD ENTER (?>,+->D@),SLOCK,SDF,ERL
DOV ENTER (99.),,SDF,ERL
CON 0 END OF TABLE
TITLE MAIN PROGRAM.
DSD SPACE 4,10
** DSD - MAIN DISPLAY LOOP.
*
* THE MAIN PROGRAM CONSISTS OF THE OVERALL LOOP CONTROL
* FOR DSD. DSD LOOPS THROUGH THE MAIN PROGRAM AS LONG
* AS THE SYSTEM REMAINS ACTIVE.
QUAL DSD
DSD RJM DLS DISPLAY LEFT SCREEN HEADER DATA
LDC 0 LEFT SCREEN LOWER OVERRIDE FLAG
DSDA EQU *-1
ZJN DSD1 IF NEITHER NEW OVERLAY NOR TOGGLE TO DSD
CFNC RTPF RESET TOP OF PAGE
LDN 0 CLEAR OVERRIDE FLAG
STM DSDA
DSD1 LDD LS SET DISPLAY NAME
STD CN
LDC .FLFT SET LOAD ADDRESS
STD LA
RJM /PRESET/DLS
* RJM .FLFT+DOEP (PRESET COMPLETE)
DSDB EQU *-1
FJM *,CH IF DATA NOT TAKEN, WAIT
DCN CH+40
* PROCESS KEYBOARD IF CDC721 SYSTEM CONSOLE.
DFIM (CON RJMI)
UJN *+2
CON /KEYBOARD/KBI
* DISPLAY RIGHT SCREEN.
RJM SYS DISPLAY SYSTEM STATUS
LDC 0 RIGHT SCREEN LOWER OVERRIDE FLAG
DSDC EQU *-1
ZJN DSD2 IF NEITHER NEW OVERLAY NOR TOGGLE TO DSD
CFNC RTPF RESET TOP OF PAGE
LDN 0 CLEAR OVERRIDE FLAG
STM DSDC
DSD2 LDD RS SET DISPLAY NAME
STD CN
LDC .FRHT SET LOAD ADDRESS
STD LA
RJM /PRESET/DLS
* RJM .FRHT+DOEP (PRESET COMPLETE)
DSDD EQU *-1
* TRANSFER HIDDEN SCREEN TO VISIBLE (CDC721).
CFNC THVF TRANSFER HIDDEN TO VISIBLE
DCN CH+40
* PROCESS KEYBOARD.
RJM /KEYBOARD/KBI PROCESS KEYBOARD INPUT
* PROCESS MISCELLANEOUS TASKS.
RJM CEQ CHECK EQUIPMENT
* LOOP.
AOD CY ADVANCE CYCLE COUNT
LJM DSD LOOP
TITLE MAIN SUBROUTINES.
** CEQ - CHECK EQUIPMENT.
*
* USES CM - CM+4.
*
* CALLS RKB.
*
* MACROS CFNC, DFIM, MONITOR.
CEQ3 STM CEQB CLEAR HOLD FLAG
CEQ SUBR ENTRY/EXIT
CEQA LDC EQAE CHECK CONSOLE ASSIGNMENT
CRD CM
LDD CM+4 GET EJTO
ZJN CEQ3 IF DISPLAY NOT ASSIGNED
LDC 0
CEQB EQU *-1
NJN CEQX IF HOLD FLAG SET
RJM RKB READ KEYBOARD
NJN CEQX IF KEY ENTERED
LDN CH RELEASE CHANNEL
STD CM+1
MONITOR DCHM
CEQ1 LDN CH CHECK CHANNEL
STD CM+1
MONITOR CCHM
.CCHM LDD CM+2
NJN CEQ2 IF CHANNEL NOT BUSY
LDC 10000 DELAY
SBN 1
NJN *-1 IF DELAY NOT DONE
UJN CEQ1 LOOP
CEQ2 LDC EQAE CHECK CONSOLE ASSIGNMENT
CEQC EQU CEQ2
CRD CM
LDD CM+4 CLEAR / SET HOLD FLAG (USING EJTO)
STM CEQB
RJM RKB READ KEYBOARD
STM /KEYBOARD/KRIA STORE KEYBOARD INPUT
DFIM (LDN 1)
LDN 24 SET INITIAL DELAY
STM /KEYBOARD/KRIB
STM DSDA ENABLE RESET TOP OF PAGE FUNCTIONS
STM DSDC
LJM CEQX RETURN
SPACE 4,10
** COMMON DECKS.
QUAL
QUAL GFP
BLI$ EQU 1 BUILD LONG INSTRUCTIONS
EJT$ EQU 1 EJT SEARCH
EST$ EQU 1 EST SEARCH
FNT$ EQU 1 SYSTEM FNT SEARCH
IFP$ EQU 1 *COMPGFP* REMOTE ASSEMBLY
JCB$ EQU 1 JCB SEARCH
QFT$ EQU 1 QFT SEARCH
*CALL COMPGFP
QUAL * DEFINE UNQUALIFIED ENTRY POINTS
.BLI EQU /GFP/.BLI BUILD LONG INSTRUCTIONS
.EJT EQU /GFP/.EJT EJT SEARCH
.EST EQU /GFP/.EST EST SEARCH
.FNT EQU /GFP/.FNT SYSTEM FNT SEARCH
.JCB EQU /GFP/.JCB JCB SEARCH
.QFT EQU /GFP/.QFT QFT SEARCH
*CALL COMPRJC
VAL$ EQU 1
*CALL COMPVLC
QUAL *
TITLE MASTER DISPLAY ROUTINES.
DKB SPACE 4,10
** DKB - DISPLAY KEYBOARD BUFFER.
*
* ENTRY (KM) = ADDRESS OF KEYBOARD MESSAGE.
* (DK) = DISPLAY KEYBOARD CONTROL.
*
* EXIT (A) = (DK).
*
* USES DK, T1, YC.
*
* MACROS CFNC, DFIM.
DKB SUBR ENTRY/EXIT
CFNC SLPF SELECT LEFT PRIORITY OUTPUT
DFIM (CON LN51),*+1
LDC LN49 SET Y-COORDINATE
STD YC
DFIM (UJN DKB1)
LDN 2 SET INTENSIFICATION COUNT
STD DK
* DISPLAY KEYBOARD BUFFER IN MEDIUM CHARACTERS IF .LT. 32
* CHARACTERS IN BUFFER. OTHERWISE, DISPLAY IN SMALL
* CHARACTERS.
LDD KI CHECK KEYBOARD INDEX
SBN 41
PJN DKB1 IF .GT. 32 CHARACTERS
DCN CH+40
CFNC SLMF SELECT LEFT SCREEN, MEDIUM CHARACTERS
LCN 4 DECREMENT Y-COORDINATE
RAD YC
LDN 2 INCREMENT COUNT
RAD DK
DKB1 LDN 2 OUTPUT COORDINATES
OAM XC,CH
* LDN 0
STD T1
DKB2 LDM KBUF,T1
ZJN DKB3 IF END OF KEYBOARD LINE
SHN 6
ADM KBUF+1,T1
OAN CH+40
LDN 2 ADVANCE INDEX
RAD T1
SBD KI
MJN DKB2 IF NOT END OF KEYBOARD LINE
DKB3 CFNC EELF ERASE TO END OF LINE
* DISPLAY KEYBOARD MESSAGE IF SET.
LDN 2 OUTPUT ERROR MESSAGE LINE COORDINATE
OAM DKBA,CH
LDD KM
NJN DKB4 IF ERROR MESSAGE PRESENT
LDM /KEYBOARD/KBRA CHECK REPEAT ENTRY
ZJN DKB6 IF REPEAT ENTRY NOT SET
DKB4 STD T1 SET MESSAGE ADDRESS
DKB5 LDI T1 DISPLAY MESSAGE
ZJN DKB6 IF END OF MESSAGE
OAN CH+40
AOD T1
UJN DKB5 DISPLAY NEXT BYTE
* LOOP FOR PROPER INTENSIFICATION.
DFIM (CFNC EELF)
DKB6 SOD DK
ZJN DKB7 IF INTENSIFICATION COMPLETE
LJM DKB1 LOOP
DKB7 DCN CH+40
LDD DK
LJM DKBX RETURN
DKBA CON CH01
DFIM (CON LN50)
CON LN48+YINC/2
DLS SPACE 4,15
** DLS - DISPLAY LEFT SCREEN DATA.
*
* EXIT DISPLAY CHANNEL STILL ACTIVE.
*
* USES LK, ST, CM - CM+4.
*
* CALLS DAL, HIL, RJC.
*
* MACROS CFNC, DISPLA.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
*
* JSNN STEP 102 SECURITY-UNLOCK ENGR DEBUG 99
*
* LOWLEVL - UPPLEVL MID=AA VERSION LINE.........
DLS SUBR
CFNC SLSF SELECT LEFT SCREEN, SMALL CHARACTERS
CFNC CHSF CLEAR HIDDEN SCREEN
* OUTPUT HEADER LINE TWO.
LDC HL02
OAN CH+40
LDC SCRL CHECK EMERGENCY STEP
CRD CM
LDD CM
SHN 6+5
LPN 3
STD ST
LPN 2
ZJN DLS1 IF EMERGENCY STEP NOT SET
LDN 0 CLEAR JSN
STM DLSC
STM DLSB
LDC 2R
STM DLSD+1 CLEAR LARGE FUNCTION CODE
DPPMDSP OCTMIC DPPM,2
LDC 2R"DPPMDSP"
STM DLSD
DLS1 LDD ST
ZJN DLS2 IF STEP MODE NOT SET
LDC DLSAL*10000+DLSA DISPLAY STEP
RJM HIL
DLS2 LDN SSTL READ SYSTEM STATUS
CRD CM
LDD CM SET LOCK FLAG
SHN -10
LPN 3
STD LK
SHN 21-1
PJN DLS3 IF NOT SECURITY UNLOCK
LDD SF
ZJN DLS4 IF UNSECURED SYSTEM
DISPLA CH21,,(SECURITY-),H
UJN DLS4 CONTINUE
DLS3 SHN 1-0
PJN DLS5 IF NOT UNLOCK
DLS4 DISPLA CH30,,(UNLOCK),H
DLS5 LDD CM+3 CHECK ENGINEERING
LPN 4
NJN DLS6 IF DISABLED
DISPLA CH42,,(ENGR),H
DLS6 LDD CM+3 CHECK DEBUG
LPN 1
ZJN DLS7 IF NOT SET
DISPLA CH52,,(DEBUG),H
DLS7 LDM /KEYBOARD/ADSA
ZJN DLS8 IF SYNTAX CHECKING ENABLED
DISPLA CH62,,(99),H
DLS8 LDC HL04
OAN CH+40
LDD SF CHECK SECURITY
ZJN DLS9 IF UNSECURED SYSTEM
* OUTPUT HEADER LINE FOUR.
LDC CH01
OAN CH+40
LDN 0 GET SYSTEM SECURITY BOUNDS
RJM RJC
CRD CM
LDD CM+1 EXTRACT LOWER BOUND
SHN -3
RJM DAL DISPLAY SECURITY BOUND STRING
LDC 2R- DISPLAY DASH
OAN CH+40
LDD CM+1 EXTRACT UPPER BOUND
RJM DAL DISPLAY SECURITY BOUND STRING
DLS9 LDN DLSEL DISPLAY MACHINE ID AND VERSION
OAM DLSE,CH
LJM DLSX RETURN
DLSA CON CH02
DLSB DATA 0 JSN
DLSC DATA 0 JSN
DATA H* STEP *
DLSD DATA 0 FUNCTION
DATA 0
DLSAL EQU *-DLSA
DLSE CON CH22
DATA H*MID=*
DLSF DATA H* * MACHINE ID
DATA 4H
DLSG BSSZ 12 VERSION
DLSEL EQU *-DLSE LENGTH
TITLE OVERLAY LOADER.
LDO SPACE 4,10
** LDO - LOAD DISPLAY OVERLAYS.
*
* ENTRY (A) = 2 CHARACTERS FOR DISPLAY.
*
* EXIT (LS) = LEFT SCREEN DISPLAY LETTER.
* (RS) = RIGHT SCREEN DISPLAY LETTER.
*
* USES LA, LS, RS, T6, T7.
*
* CALLS LOV, USS.
LDO SUBR ENTRY/EXIT
SHN 14 LEFT SCREEN
STD T6
SHN -14 RIGHT SCREEN
STD T7
* LOAD LEFT SCREEN DISPLAY.
LDD T6
ZJN LDO1 IF NO LEFT SCREEN REQUEST
LDC .FLFT SET LEFT SCREEN LOAD ADDRESS
STD LA
LDM TDSO,T6 LOAD OVERLAY
RJM LOV
STM DSDA
LDD LA ENABLE LEFT SCREEN PAGING
STM /KEYBOARD/AVDA
ADN DOEP SET ENTRY POINT FOR OVERLAY
STM DSDB SAVE ENTRY POINT
LDD T6 SET LEFT SCREEN NAME
STD LS
RJM USS UPDATE SCREEN STATUS
* LOAD RIGHT SCREEN DISPLAY.
LDO1 LDD T7
ZJN LDO2 IF NO RIGHT SCREEN REQUEST
LDC .FRHT SET RIGHT SCREEN LOAD ADDRESS
STD LA
LDM TDSO,T7 LOAD OVERLAY
RJM /PRESET/DRS
LDOA EQU *-1
* RJM LOV (PRESET COMPLETE)
STM DSDC
LDD LA ENABLE RIGHT SCREEN PAGING
STM /KEYBOARD/AVDB
ADN DOEP SET ENTRY POINT FOR OVERLAY
STM DSDD
LDD T7 SET RIGHT SCREEN NAME
STD RS
RJM USS UPDATE SCREEN STATUS
LDO2 LJM LDOX RETURN
LOV SPACE 4,15
** LOV - LOAD OVERLAY.
*
* ENTRY (A) = OVERLAY NUMBER.
* (LA) = LOAD ADDRESS FOR OVERLAY.
*
* EXIT (A) = 0, IF OVERLAY ALREADY LOADED.
* 2, IF DISK OVERLAY LOADED.
*
* USES KM, T1, T2, T3, AB - AB+4, CM - CM+4.
*
* CALLS *1DL*.
*
* MACROS CCF, CFNC, DFIM, EXECUTE.
LOV11 LDN 0 CLEAR OVERLAY LOAD
STM LOVA
IAM *,CH INPUT OVERLAY
LOVD EQU *-1
CCF *+2,CH SIGNAL *SCD* TO RESUME USING CHANNEL
LDM LOVD RESET LOAD ADDRESS
STD LA
* RELOCATE OVERLAY.
LOV12 LDD LA CHECK LOAD ADDRESS
ADC -.FCOM+5
ZJN LOVX IF COMMAND/SYNTAX OVERLAY
SHN -11
STD T3 SET LEFT OR RIGHT SCREEN
LDM 5,LA SET RELOCATION ADDRESS
ADD LA
STD T1
LOV13 LDI T1
ZJN LOV14 IF END OF TABLE
ADD LA SET WORD ADDRESS TO BE RELOCATED
STD T2
LDD LA RELOCATE ADDRESS
RAI T2
AOD T1
UJN LOV13 RELOCATE NEXT ADDRESS
LOV14 STM TGTF,T3 CLEAR TOGGLE FLAG FOR OVERLAY
LDN 2 SET OVERLAY LOADED STATUS
LOV SUBR ENTRY/EXIT
LPC 377 SET OVERLAY NUMBER
STD T1
ZJN LOVX IF RESIDENT OVERLAY
SCN 37 CONVERT OVERLAY NUMBER TO OVERLAY NAME
ADN 1
RAD T1
LDC RPLP READ *RPLP* POINTER
CRD CM
ADN PLDP-RPLP GET PLD POINTER
CRD AB
LDI LA CHECK NAME
SHN 14
LMM 1,LA
SHN -6
LMD T1
ZJN LOVX IF LOADED
LDD AB
ADD AB+1
ZJP CLP1 IF LIBRARY LOCKED
LDM LOVA
NJN LOV1 IF LOAD IN PROGRESS
LDD LA
STM LOVB SET LOAD ADDRESS
STM LOVD
LDN 0
UJN LOV3 BEGIN NEW LOAD
LOV1 LJM 0 CONTINUE CURRENT LOAD
LOVA EQU *-1
LOV2 LDD AB+4 ADVANCE RPL ADDRESS
RAD CM+1
SHN -14
LOV3 RAD CM READ ENTRY
SHN 14
ADD CM+1
CRD AB
LDD AB+4
ZJN LOV4 IF END OF RPL
LDD AB+1 CHECK NAME
SCN 77
LMN 1R9 CHECK FOR *9XX*
SHN 6
LMD AB
SHN 6
LMD T1
NJN LOV2 IF NO MATCH
STD KM CLEAR ERROR MESSAGE
LDD CM READ OVERLAY
SHN 14
ADD CM+1
CRM *,AB+4
LOVB EQU *-1
LJM LOV12 RELOCATE OVERLAY
* SET UP DISK LOAD.
LOV4 LDD T1 SET OVERLAY NAME
STD AB+4
LDN 1R9
STD AB+3
LDN CH SET CHANNEL
STD AB+2
LDC LOV4
STM LOVA SET THIS PHASE
EXECUTE 1DL
LDD CM+1 SAVE PP INPUT REGISTER ADDRESS
STM LOVC
* CHECK STATUS OF LOAD.
LOV5 LDC LOV5 SET THIS PHASE
STM LOVA
LDC DDCF DESELECT DISPLAY
DFIM (CON SDCF),*-1
CFNC
LDC * READ PP INPUT REGISTER
LOVC EQU *-1
CRD CM
LDD CM+1 CHECK INPUT REGISTER
SCN 37
SHN 6
LMD CM
LMC 3RL1D
NJN LOV9 IF NOT *1DL*
LDD CM+2
LMC 7777
ZJN LOV7 IF TRANSMISSION READY
LDC KSBD
UJN LOV10 PROCESS *DISK BUSY*
* INPUT OVERLAY.
LOV7 LDD TH
SBN 1
NJN *-1 IF DELAY NOT OVER
DCN CH+40
STD KM CLEAR KEYBOARD MESSAGE
STD CM+2
LDM LOVC
CWD CM
ACN CH
LOV8 FJM LOV11,CH IF CHANNEL FULL
SOD CM+2
NJN LOV8 IF DELAY NOT OVER
* ABORT OVERLAY LOAD.
LOV9 LDD HN RESET FORMAT TABLE
ERRNZ TCEF-100 CANNOT USE DIRECT CELL *HN*
STM /KEYBOARD/KBIB
LDN 0 CLEAR OVERLAY NAME
STM LOVA
LOV10 DCN CH+40
CCF *+2,CH SIGNAL *SCD* TO RESUME USING CHANNEL
LJM CLP2 PROCESS INCOMPLETE *CR*
USS SPACE 4,15
** USS - UPDATE SCREEN STATUS.
*
* ENTRY (LA) = LEFT OR RIGHT UPDATE FLAG.
* .LT. *.FLFT* = DO NOT UPDATE SCREENS.
* = *.FLFT* = UPDATE LEFT SCREEN DATA.
* = *.FRHT* = UPDATE RIGHT SCREEN DATA.
*
* EXIT SCREEN STATUS UPDATED IN *DSD* INPUT REGISTER.
*
* USES T1, T2, SR - SR+4.
*
* CALLS SJT.
USS SUBR ENTRY/EXIT
LDD LA DETERMINE WHICH SCREEN TO UPDATE
ADC -.FLFT
MJN USSX IF NO SCREEN IS INVOLVED
SHN -10 CONVERT *.FRHT*-*.FLFT* TO A 1
ERRNG .FLFT+777-.FRHT SHIFT COUNT IS TOO LOW
STD T1
LDD IA
CRD SR
LDD LS UPDATE SCREEN NAMES
SHN 6
LMD RS
STD SR+2
LDM LS,T1 SEARCH JSN TABLE
RJM SJT
ZJN USS2 IF ENTRY NOT FOUND
LDM 3,T2 GET EJTO OF ASSIGNED JOB
USS2 STM SR+3,T1 UPDATE INPUT REGISTER
LDD LS
LMD RS
NJN USS3 IF SCREENS ARE NOT THE SAME
LDD T1
LMN 1
STD T2
LDM SR+3,T1 MAKE BOTH EJTO-S THE SAME
STM SR+3,T2
USS3 LDD IA
CWD SR
LJM USSX RETURN
TITLE DISPLAY CONTROL TABLES.
TDSP SPACE 4,10
** TDSP - DEFINE DISPLAY TABLE ENTRIES.
*
*
*T TDSP NAME
* ENTRY *LETTER* = NAME OF DISPLAY.
* *NAME* = NAME OF DISPLAY PROCESSOR.
MACRO TDSP,A,B
ORG TDSO+1R;A
CON /DISPLAY/B/10000
ENDM
TDSO SPACE 4,10
** TDSO - TABLE OF DISPLAY OVERLAY NAMES.
* ENTRY = 1 WORD.
* INDEXED BY DISPLAY LETTER.
*
*T, 12/ NM
* NM LAST 2 CHARACTERS OF OVERLAY NAME
TDSO EQU *-1
DUP 1RZ,1
CON 7777
TJAZ SPACE 4,10
** TJAZ - TABLE OF DISPLAY JSN-S.
*
* ENTRY = 5 WORDS.
*
*T 6/NCM, 6/INDEX, 24/JSN, 12/EJTO
*
* NCM = 40, IF NOT CM DISPLAY.
* = 0, IF CM DISPLAY.
* INDEX = DISPLAY NAME.
* JSN = JSN.
* EJTO = EJTO OF JSN. SET BY ROUTINE *SJS* WHEN
* A DISPLAY IS SELECTED BY THE OPERATOR.
TJAZ BSS 0
TJAA VFD 6/40,6/1RA,24/0,12/0
TJAZE EQU *-TJAZ ENTRY LENGTH
TJCC VFD 12/1RC,24/0,12/0
TJDD VFD 12/1RD,24/0,12/0
TJFF VFD 12/1RF,24/0,12/0
TJGG VFD 12/1RG,24/0,12/0
TJHH VFD 6/40,6/1RH,24/0,12/0
TJJJ VFD 6/40,6/1RJ,24/0,12/0
TJKK VFD 6/40,6/1RK,24/0,12/0
TJMM VFD 6/40,6/1RM,24/0,12/0
TJPP VFD 6/40,6/1RP,24/0,12/0
TJAZL CON 0 END OF TABLE
DISP SPACE 4,10
** ENTER DISPLAY CONTROLS.
DISP BSS 0
A TDSP DSA
B TDSP DSB
C TDSP DSC
D TDSP DSC
E TDSP DSE
F TDSP DSF
G TDSP DSF
H TDSP DSH
I TDSP DSI
J TDSP DSJ
K TDSP DSK
L TDSP DSL
M TDSP DSM
O TDSP DSO
P TDSP DSP7
Q TDSP DSQ
R TDSP DSR
S TDSP DSS
T TDSP DST
V TDSP DSV
W TDSP DSWR
Y TDSP DSY
Z TDSP DSZ
ORG DISP
QUAL
LDO EQU /DSD/LDO
LOV EQU /DSD/LOV
USS EQU /DSD/USS
.CCHM EQU /DSD/.CCHM
COMMON SPACE 4,10
* COMMON DECKS.
LIST X
*CALL COMDDIS
DSS$ EQU 0 DISPLAY SUBSYSTEM STATUS
DSDSYS$ EQU 0 ASSEMBLE *DSD* ONLY CODE
*CALL COMDSYS
LIST *
TITLE KEYBOARD INPUT PROCESSING.
QUAL KEYBOARD
KBI SPACE 4,10
*** KEYBOARD INPUTS ARE PROCESSED AS THEY ARE ENTERED.
* CHECKING IS PERFORMED ON EACH CHARACTER TO VALIDATE THE ENTRY.
* WHEN AN ENTRY BECOMES UNIQUE, THE REMAINDER OF THE ENTRY
* IS FILLED IN BY THE INPUT PROCESSORS.
* AT THIS POINT, THE ENTRY IS CONSIDERED COMPLETE.
*
* *CR* MUST FOLLOW ALL ENTRIES BEFORE ACTION IS TAKEN.
*
* *BKSP* DELETES THE PREVIOUS CHARACTER TYPED.
*
* *LEFT BLANK* DELETES THE CURRENT LINE BEING ENTERED.
*
*
* IF THESE CHARACTERS ARE THE FIRST ENTRY, THE FOLLOWING
* APPLIES -
*
* *+* = ADVANCE LEFT SCREEN DISPLAY AS FOLLOWS -
* 1. ADVANCE DISPLAYED ADDRESSES BY 40 (20 ON A CC634B)
* ON THESE DISPLAYS -
* C, D, F, G, M.
* 2. ADVANCE ENTRIES ON THESE DISPLAYS -
* B, E, H, I, O, P, Q, R, S, T.
* 3. ENABLE DISPLAY SCROLLING ON THE CC545 ON THE *A*
* DISPLAY.
*
* *-* = DECREMENT LEFT SCREEN DISPLAY AS FOLLOWS -
* 1. DECREMENT DISPLAYED ADDRESSES BY 40 (20 ON A
* CC634B) ON THESE DISPLAYS -
* C, D, F, G, M.
* 2. DISPLAY FIRST OR PREVIOUS SCREEN ON THESE
* DISPLAYS -
* B, E, H, I, O, P, Q, R, S, T.
* 3. DISABLE DISPLAY SCROLLING ON THE CC545 ON THE *A*
* DISPLAY.
*
* (*) = HOLD DISPLAY.
*
* */* = ADVANCE LEFT SCREEN MEMORY DISPLAY ADDRESS BY THE
* VALUE IN THE BOTTOM 18 BITS OF THE FIRST WORD DISPLAYED.
*
* *(* = ADVANCE RIGHT SCREEN AS IN *+* ABOVE.
*
* *)* = DECREMENT RIGHT SCREEN AS IN *-* ABOVE.
*
* *CR* = SET REPEAT ENTRY. PROCESS THE FOLLOWING ENTRY, BUT
* DO NOT ERASE AFTER COMPLETION.
*
* ABOVE THE ENTRY DISPLAY, THE FOLLOWING MESSAGES MAY
* APPEAR -
* *INCORRECT ENTRY* = ENTRY IS UNRECOGNIZABLE.
*
* *PPU BUSY* = WAITING FOR THE SYSTEM TO ASSIGN
* A PP FOR PROCESSING OF THE ENTRY.
*
* *MTR BUSY* = WAITING FOR *MTR* TO PROCESS REQUEST.
*
* *LOG - * (PRECEDING EITHER OF THE LAST TWO MESSAGES) =
* COMMAND HAS BEEN EXECUTED BUT LOGGING IN SYSTEM
* DAYFILE AND/OR ERROR LOG IS WAITING.
*
* *DISK BUSY* = WAITING FOR THE DISK TO BECOME
* FREE TO PROCESS THE ENTRY.
* *COMMAND TOO LONG*
* AN ATTEMPT TO ENTER MORE THAN 60 CHARACTERS HAS
* BEEN MADE.
*
* USES DK, KE, KI, T2, T4, T6, T7.
*
* CALLS CKS, CSC, /DSD/DKB, KRI, RKB.
*
* MACROS DFIM.
KBI14 LDN 0 FORCE RETURN
STD DK
KBIX RJM /DSD/DKB DISPLAY KEYBOARD BUFFER
NJN KBI0 IF INPUT NOT COMPLETE
LJM * ENTRY/EXIT
KBI EQU *-1
LDN 0 INITIALIZE KEYBOARD DISPLAY CONTROL
STD DK
KBI0 LDD KE
NJN KBI1 IF PRESET INPUT
AOD DK
RJM RKB READ KEYBOARD
RJM KRI PROCESS REPEAT INPUT
ZJN KBI14 IF NO KEYBOARD INPUT
SBN 63
PJN KBI14 IF ILLEGAL CHARACTER
ADN 63
* CHECK FOR AND PROCESS SPECIAL CHARACTERS.
KBI1 STD T2 SET CHARACTER
LDC TSCE-2 SPECIAL CHARACTER TABLE
RJM CSC CHECK SPECIAL CHARACTER
* ENTER CHARACTER IN BUFFER.
KBI2 LDN 0 CLEAR PRESET ENTRY
STD KE
LDD KI
ZJN KBI3.1 IF FIRST CHARACTER
SBN KBUFL
MJN KBI4 IF BUFFER NOT FULL
LDC KCTL *COMMAND TOO LONG*
STD KM
KBI3 LJM KBIX RETURN
KBI3.1 LDC TSFC-2 FIRST CHARACTER TABLE
RJM CSC CHECK SPECIAL CHARACTER
KBI4 LDD T2 ENTER CHARACTER
STM KBUF,KI
AOD KI
AOD DK SET KEYBOARD DISPLAY
* SCAN SYNTAX TABLE.
KBI5 LDC 0 GET SYNTAX SKIP FLAG
KBIA EQU *-1
NJN KBI3 IF SYNTAX TO BE SKIPPED
STD T6
LDC TCEF SET SYNTAX TABLE START
KBIB EQU *-1
STD T7
* BEGIN NEW SYNTAX CHECK.
KBI6 LDD T7 SET START OF SYNTAX
STD T4
LDI T7
ZJN KBI10 IF END OF SYNTAX TABLE
KBI7 LPN 77 CHECK SYNTAX ENTRY
ZJN KBI8 IF END OF ENTRY
AOD T7
LDI T7
UJN KBI7 SKIP TO END OF ENTRY
KBI8 LDN 3 SET START OF NEXT SYNTAX
RAD T7
* COMPARE ENTRY AND SYNTAX CHARACTER.
RJM CKS CHECK SYNTAX
NJN KBI6 IF NO MATCH
LDD T6
NJN KBI9 IF PREVIOUS MATCH FOUND
LDD T4 SET NEW SYNTAX TABLE START
STM KBIB
LDD T1 SET NEXT SYNTAX CHARACTER
STD T6
KBI9 SBN 66
PJN KBI10 IF SPECIAL CHARACTER
LDD T1
LMD T6
ZJN KBI6 IF SAME CHARACTER
UJN KBI11 RETURN
* CHECK RESULTS OF SEARCH.
KBI10 LDD T6
NJN KBI12 IF UNIQUE ENTRY FOUND
STM KBUF-1,KI CLEAR ENTRY
SOD KI
KBI11 LJM KBIX RETURN
* ENTER NEXT SYNTAX CHARACTER IN KEYBOARD ENTRY.
KBI12 SBN 66
PJN KBI11 IF SPECIAL CHARACTER
ADN 66 SET PRESET ENTRY
STD KE
LMN 1R
NJN KBI13 IF NOT * *
LDN 62 SET SPACE BAR
STD KE
KBI13 LJM KBI0 ATTEMPT TO FILL IN NEXT CHARACTER
KRI SPACE 4,10
** KRI - PROCESS KEYBOARD REPEAT INPUT.
*
* ENTRY (A) = KEYBOARD CHARACTER.
*
* EXIT (A) = KEYBOARD CHARACTER.
*
* USES T0.
*
* MACROS DFIM.
KRI1 LDN 20 SET REPEAT DELAY
DFIM (LDN 1)
KRI2 LMN 24 SET INITIAL DELAY
STM KRIB
LDD T0 STORE CHARACTER
KRI3 STM KRIA
KRI SUBR ENTRY/EXIT
ZJN KRI3 IF NO INPUT
STD T0 SAVE CHARACTER
LDN 0 CLEAR SYNTAX SKIP FLAG
STM KBIA
LDC 0
KRIA EQU *-1
ZJN KRI2 IF NO PREVIOUS INPUT
SOM KRIB DECREMENT DELAY
ZJN KRI1 IF DELAY ELAPSED
LDN 0 RETURN NO CHARACTER
UJN KRIX RETURN
KRIB CON 0
CKS SPACE 4,10
** CKS - CHECK SYNTAX.
*
* ENTRY (T4) = FWA OF CURRENT SYNTAX TABLE ENTRY.
* (T7) = FWA+3 OF NEXT SYNTAX TABLE ENTRY.
* (LK) = CONSOLE LOCK STATUS.
*
* EXIT (A) = 0, IF MATCH AND END OF KEYBOARD ENTRY.
* .NE. 0, IF NO MATCH.
*
* USES T2, T3, T5.
*
* CALLS ADS, LSC.
CKS SUBR ENTRY/EXIT
LDC KBUF SET KEYBOARD BUFFER START
STD T3
LCN 0 CLEAR SYNTAX CHARACTER INDEX
STD T5
CKS1 AOD T5 ADVANCE TO NEXT BYTE IN SYNTAX
RJM LSC LOAD FIRST SYNTAX CHARACTER
NJN CKS4 IF NOT A CONDITIONAL CHECK FLAG
LDM .FCOM-5,T8 GET CHECK SUBROUTINE ADDRESS
STD T2
RJM 0,T2
NJN CKS1 IF CONDITION PRESENT
CKS2 LDN 1 SET MATCH FAILED
CKS3 UJN CKSX RETURN
CKS4 LDM -2,T7 CHECK (S)LOCK CONTROL
SHN -12
LPN 3
SBD LK
SBN 1
PJN CKS2 IF UNLOCK NOT SET
CKS5 LDM -2,T7 SET LOGGING CONTROL
SHN -10
LPN 3
STM LKBA
CKS6 LDI T3 CHECK CHARACTER
ZJN CKS3 IF END OF BUFFER
LDD T1 CHECK SYNTAX
SBN 66
PJN CKS8 IF SPECIAL CHARACTER
ADN 66
LMI T3
NJN CKS3 IF NO MATCH
RJM ADS ADVANCE SYNTAX
CKS7 AOD T3 ADVANCE CHARACTER
UJN CKS6 LOOP
* ALPHA/NUMERIC FIELD.
CKS8 ADN 66
LMN 1R'
NJN CKS10 IF NOT *'*
LDI T3 CHECK CHARACTER
SBN 1R+
MJN CKS7 IF ALPHA/NUMERIC
CKS9 RJM ADS ADVANCE SYNTAX
UJN CKS6 PROCESS NEXT SYNTAX
* OCTAL FIELD.
CKS10 LMN 1R?&1R'
NJN CKS11 IF NOT *?*
LDI T3
SBN 1R0
MJN CKS14 IF ALPHA
SBN 1R8-1R0
MJN CKS7 IF OCTAL DIGIT
SBN 1R -1R8
ZJN CKS7 IF * *
UJN CKS9 ADVANCE SYNTAX
* CHARACTER WITHIN LIMITS.
CKS11 LMN 1R<&1R?
NJN CKS15 IF NOT *<*
RJM ADS ADVANCE SYNTAX
STD T2 NEXT SYNTAX CHAR = LOWER LIMIT
RJM ADS ADVANCE SYNTAX
SBI T3
MJN CKS14 IF CHARACTER > UPPER LIMIT
LDI T3
SBD T2
MJN CKS14 IF CHARACTER < LOWER LIMIT
CKS12 AOD T3 ADVANCE CHARACTER
UJN CKS9 ADVANCE SYNTAX
CKS13 LDD T2
NJN CKS12 IF MATCH IN SET
CKS14 LDN 1 RETURN WITH (A) " 0
LJM CKSX RETURN
* CHARACTER IN SET.
CKS15 LMN 1R>&1R<
NJN CKS17 IF NOT *>*
STD T2 CLEAR FLAG
CKS16 RJM ADS ADVANCE SYNTAX
LMN 1R>
ZJN CKS13 IF SECOND *>*
LMN 1R> COMPARE CHARACTER
LMI T3
NJN CKS16 IF NO MATCH
AOD T2 SET FLAG
UJN CKS16 LOOP
* DISPLAY NAME.
CKS17 LMN 1R\&1R>
NJN CKS14 IF NOT *\*
LDI T3 CHECK CHARACTER
SBN 1R0
PJN CKS14 IF NOT ALPHA
ADN 1R0 SET DISPLAY INDEX
STD T2
LDM /DSD/TDSO,T2 CHECK IF DISPLAY DEFINED
LMC 7777
ZJN CKS14 IF DISPLAY NOT DEFINED
UJN CKS12 ACCEPT FORMAT
ADS SPACE 4,15
** ADS - ADVANCE SYNTAX.
*
* EXIT FROM *KBI* IF FREE SYNTAX SENSED.
* LOAD SYNTAX OVERLAY IF INDICATED.
*
* ENTRY (T4) = SYNTAX ADDRESS.
* (T5) = INDEX.
* (T7) = START OF NEXT SYNTAX ENTRY.
*
* EXIT (T4 - T5) ADVANCED.
* (A) = (T1) = NEXT SYNTAX CHARACTER.
*
* USES KI, KR, LA, T5, T7.
*
* CALLS LOV, LSC.
ADS SUBR ENTRY/EXIT
LDC 774000 ADVANCE CHARACTER
RAD T5
RJM LSC LOAD SYNTAX CHARACTER
ZJN ADS2 IF END OF SYNTAX
LMN 1R@
ZJN ADS3 IF *@*
LMN 1R;&1R@
ZJN ADS4 IF *;*
LMN 1R; RESTORE CHARACTER
UJN ADSX RETURN
ADS2 LDD KR
ZJN ADS3 IF KEYBOARD NOT READY BEFORE
SOD KI CLEAR ENTRY
LDN 0
STM KBUF,KI
ADS3 LDN 1 SET KEYBOARD READY
STD KR
LDM -2,T7 SET OVERLAY NAME
STM KCRA
LDM -1,T7 SET PROCESSOR ADDRESS
STM KCRB
LDD T4 SET SYNTAX TABLE START
STM KBIB
LJM KBIX RETURN
* SWITCH TO NEW SYNTAX OVERLAY.
ADS4 LDC 0
ADSA EQU *-1
NJN ADS5 IF SYNTAX CHECKING DISABLED (99.)
LDM -1,T7 SET TABLE ADDRESS
STM ADSB
LDC .FCOM-5 SET LOAD ADDRESS
STD LA
LDM -2,T7 LOAD OVERLAY
RJM LOV
LDC * SET NEW SYNTAX TABLE
ADSB EQU *-1
STD T7
ADS5 LJM KBI6 CHECK NEW SYNTAX
LSC SPACE 4,10
** LSC - LOAD SYNTAX CHARACTER.
*
* ENTRY (A) = (T5) = INDEX.
* (T4) = SYNTAX ADDRESS.
*
* EXIT (A) = (T1) = NEXT SYNTAX CHARACTER.
* (T8) = BYTE CONTAINING NEXT SYNTAX CHARACTER.
*
* USES T1, T8.
LSC SUBR ENTRY/EXIT
LPN 77 SET BYTE ADDRESS
ADD T4
STD T1
LDD T5 LOAD CHARACTER
SCN 77
SHN 6
LMI T1
STD T8 SET BYTE
MJN LSC1 IF LOWER
SHN -6
LSC1 LPN 77 SET CHARACTER
STD T1
UJN LSCX RETURN
KII SPACE 4,10
** KII - INCOMPLETE INPUT.
*
* USES KE.
*
* CALLS KRI, RKB.
KII BSS 0 ENTRY
RJM RKB READ KEYBOARD
RJM KRI PROCESS REPEAT INPUT
ZJN KII1 IF NO INPUT
SBN 53
NJN KII1 IF NOT *LEFT BLANK*
LJM KLB CLEAR KEYBOARD
KII1 SBN 62-53
NJN KII2 IF NOT *SPACE BAR*
LDD ST
ZJN KII2 IF *STEP* NOT SET
LJM KSP PROCESS STEP
KII2 LDD KE
LMN 55
NJN KII3 IF PRESET ENTRY NOT *RIGHT BLANK* KEY
LJM KRB1 ADVANCE LEFT DISPLAY
KII3 LMN 64&55
NJN KII4 IF NOT INCOMPLETE *1DS* CALL
LJM C1D3 PROCESS INCOMPLETE *1DS* CALL
KII4 LDD KR
NJN KII5 IF KEYBOARD READY
STD KE CLEAR PRESET ENTRY
LJM KBI5 PROCESS AS NORMAL INPUT
KII5 LJM KCR PROCESS *CR*
RKB SPACE 4,10
** RKB - READ KEYBOARD.
*
* EXIT (A) = CHARACTER INPUT.
*
* MACROS CFNC.
RKB SUBR ENTRY/EXIT
CFNC SKIF
IAN CH+40 INPUT CHARACTER
DCN CH+40
UJN RKBX RETURN
TITLE SPECIAL CHARACTER PROCESSING.
CSC SPACE 4,10
** CSC - CHECK SPECIAL CHARACTER.
*
* ENTRY (A) = FWA-2 OF SPECIAL CHARACTER TABLE.
* (T2) = CHARACTER.
*
* EXIT RETURN IF NOT SPECIAL CHARACTER.
* PROCESS CHARACTER IF FOUND.
*
* USES T1.
CSC SUBR ENTRY/EXIT
STD T1 SET TABLE ADDRESS
CSC1 LDN 2 ADVANCE TABLE
RAD T1
LDI T1 CHECK ENTRY
ZJN CSCX IF END OF TABLE
LMD T2
NJN CSC1 IF NO MATCH
LDM 1,T1 PROCESS ENTRY
STD T1
LJM 0,T1 GO TO SPECIAL CHARACTER HANDLER
TSFC SPACE 4,15
** TSFC - TABLE OF SPECIAL FIRST CHARACTERS.
TSFC BSS 0
CON 1R+,AVD *+* - ADVANCE LEFT SCREEN DISPLAY
CON 1R-,AVD *-* - DECREMENT LEFT SCREEN DISPLAY
CON 1R*,RDC (*) - RELEASE DISPLAY CHANNEL
CON 1R/,ALV */* - ADVANCE LEFT SCREEN BY VALUE
CON 1R(,AVD *(* - ADVANCE RIGHT SCREEN DISPLAY
CON 1R),AVD *)* - DECREMENT RIGHT SCREEN DISPLAY
CON 1R=,ARV *=* - ADVANCE RIGHT SCREEN BY VALUE
CON 0 END OF TABLE
TSCE SPACE 4,15
** TSCE - TABLE OF SPECIAL CHARACTER ENTRIES.
TSCE BSS 0
CON 53,KLB *LEFT BLANK* - CLEAR KEYBOARD
CON 55,KRB *RIGHT BLANK* - ADVANCE LEFT DISPLAY
TSCEA EQU *-1
CON 60,KCR *CR* - PROCESS ENTRY
TSCEB EQU *-1 (CHANGED ON INITIAL ENTRY)
CON 61,KBK *BKSP* - ERASE PREVIOUS CHARACTER
CON 62,KSP *SPACE BAR*
CON 63,KII INCOMPLETE INPUT
CON 64,KII INCOMPLETE INPUT (*1DS* CALL)
CON 65,/PRESET/KCR INCOMPLETE INPUT (PRESET)
CON 0
AVD SPACE 4,10
** AVD - ADVANCE DISPLAY.
*
* EXIT (T2) = 0, IF PAGE FORWARD.
* = 1, IF PAGE BACKWARD.
* (T7) = SCREEN INDEX.
*
* USES LA, T2, T7.
AVD BSS 0 ENTRY
LDD LS SET LEFT SCREEN
STD T7
LDC KBIX-DOPG
AVDA EQU *-1
* LDC .FLFT (LEFT SCREEN ORIGIN AFTER OVERLAY LOAD)
STD LA
LDD T2 CHECK ENTRY
SBN 1R+
STD T2
SBN 1R--1R++1
MJN AVD1 IF *+* OR *-*
LDD RS SET RIGHT SCREEN
STD T7
LDC KBIX-DOPG
AVDB EQU *-1
* LDC .FRHT (RIGHT SCREEN ORIGIN AFTER OVERLAY LOAD)
STD LA
LCN 1R(-1R+ SET *+* OR *-*
RAD T2
AVD1 LJM DOPG,LA ENTER OVERLAY AT PAGING ENTRY POINT
AMF SPACE 4,10
** AMF - ADVANCE MEMORY FIELDS.
*
* USES AB+3, AB+4.
*
* CALLS ADA.
*
* 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
LDD T7 ADVANCE DISPLAY ADDRESSES
RJM ADA
JMP KBIX RETURN
RDC SPACE 4,10
** RDC - RELEASE DISPLAY CHANNEL.
RDC LDN 0 CLEAR HOLD FLAG
STM /DSD/CEQB
STD DK ENABLE *KBI* EXIT
JMP KBIX RETURN
ARV SPACE 4,10
** ARV - ADVANCE RIGHT SCREEN BY VALUE, IF C, D, F, G, OR M
* DISPLAY. OTHERWISE, TOGGLE RIGHT SCREEN TOGGLE FLAG.
ARV BSS 0 ENTRY
LDN 1
UJN ALV0 SET RIGHT SCREEN
ALV SPACE 4,10
** ALV - ADVANCE LEFT DISPLAY BY VALUE, IF C, D, F, G, OR M
* DISPLAY. OTHERWISE, TOGGLE LEFT SCREEN TOGGLE FLAG.
*
* USES T1, T2, T3, AB - AB+4.
*
* CALLS ADA.
ALV BSS 0 ENTRY
LDN 0 SET LEFT SCREEN
ALV0 STD T2
LDM LS,T2
STD T3
ZJN ALV3 IF NO SCREEN DISPLAY LOADED
SBN TDFCL
PJN ALV4 IF NO DISPLAY FIELD DEFINED
LDM TDFC-1,T3 SET FIELD TABLE ADDRESS
STD T1
ZJN ALV4 IF NOT DEFINED
LDD T3
LMN 1RM
NJN ALV1 IF NOT *M* DISPLAY
LDC EDBP SET DATA ADDRESS OF EXTENDED MEMORY BUFFER
CRD AB
LDD AB
SHN 14
LMD AB+1
ADN 4
UJN ALV2 READ EXTENDED MEMORY ADDRESS
ALV1 LDI T1
LPN 77
SHN 14
LMM 1,T1
ALV2 CRD AB
LDD AB+3 SET INCREMENT
LPN 37
STD AB+3
LDD T3 ADVANCE DISPLAY
RJM ADA
ALV3 JMP KBIX RETURN
ALV4 LDM TGTF,T2 TOGGLE FLAG
LMN 1
STM TGTF,T2
JMP KBIX RETURN
KBK SPACE 4,10
** KBK - PROCESS *BKSP*.
*
* USES KI, KM.
KBK LDD KI
ZJN KBK1 IF FIRST ENTRY
SOD KI CLEAR ENTRY
LDN 0
STM KBUF,KI
STD KM CLEAR KEYBOARD MESSAGE
KBK1 LJM KBC2 CLEAR KEYBOARD
KLB SPACE 4,10
** KLB - PROCESS *LEFT BLANK*.
*
* USES KM.
KLB LDN 0 CLEAR OVERLAY LOAD
STM /DSD/LOVA
KLB1 STM KBRA CLEAR REPEAT ENTRY
STM KBCA CLEAR INDEX
STD KM CLEAR KEYBOARD MESSAGE
LJM KBC CLEAR KEYBOARD BUFFER
KCR SPACE 4,10
** KCR - PROCESS *CR*.
*
* USES CA, DK, LA, AB - AB+4.
*
* CALLS LOV.
KCR LDD KR
NJN KCR1 IF KEYBOARD READY
LDC KREP *REPEAT ENTRY*
STM KBRA
JMP KBIX RETURN
KCR1 LDC .FCOM-5 SET LOAD ADDRESS
STD LA
LDC 0 LOAD OVERLAY
KCRA EQU *-1
RJM LOV
LDN 0 ENABLE RETURN FROM *KBI*
STD DK
LDN ZERL CLEAR ASSEMBLY BUFFER
CRD AB
STM KBIA SET SYNTAX SKIP FLAG
LDC KBUF-1 SET CHARACTER ADDRESS
STD CA
KCR2 AOD CA SKIP CHARACTER
LDI CA CHECK NEXT CHARACTER
ZJN KCR3 IF END OF BUFFER
SBN 1R0
MJN KCR2 IF ALPHA
SBN 12
MJN KCR3 IF NOT SEPARATOR
LDD CA
LMC KBUF
ZJN KCR3 IF SEPARATOR FIRST CHARACTER
AOD CA SKIP SEPARATOR
KCR3 LJM * PROCESS ENTRY
KCRB EQU *-1
KRB SPACE 4,10
** KRB - PROCESS *RIGHT BLANK* KEY.
*
* USES KE, T1.
*
* CALLS LDO.
KRB BSS 0 ENTRY
LDM /DSD/LOVA
ZJN KRB1 IF NO OVERLAY LOAD IN PROGRESS
JMP KII PROCESS INCOMPLETE INPUT
KRB1 LDN 55 ENTER CHARACTER
STD KE
LDC 0 SET DISPLAY INDEX
KRBA EQU *-1
STD T1
LDM TLSD,T1 SET DISPLAYS
SHN 6
LMD RS
RJM LDO
LDN 0 CLEAR ENTRY
STD KE
AOM KRBA ADVANCE INDEX
LMN TLSDL
NJN KRB2 IF NOT END OF TABLE
STM KRBA
KRB2 JMP KBIX RETURN
KSP SPACE 4,10
** KSP - PROCESS *SPACE*.
*
* USES T2, CM - CM+4.
*
* MACROS MONITOR.
KSP LDD ST
ZJN KSP2 IF *STEP* NOT SET
LDD KI
NJN KSP1 IF NOT FIRST CHARACTER
LDN ZERL
CRD CM
LDN STPS STEP MONITOR
STD CM+1
MONITOR DSRM
KSP1 LDD KE
NJN KSP2 IF PRESET ENTRY
JMP KBIX RETURN
KSP2 LDN 1R ENTER * *
STD T2
LJM KBI2 ENTER CHARACTER
TITLE KEYBOARD RETURN PROCESSORS.
KIE SPACE 4,10
** KIE - INCORRECT ENTRY RETURN.
KIE LDC KILE *INCORRECT ENTRY*
UJN KMS PROCESS MESSAGE
KPC SPACE 4,10
** KPC - KEYBOARD PARTIAL CLEAR RETURN.
*
* ENTRY (A) = NEW KEYBOARD INDEX.
KPC STM KBCA SAVE INDEX
* UJN KBR RETURN
KBR SPACE 4,15
** KBR - NORMAL KEYBOARD RETURN.
* PROCESS COMMAND LOGGING.
*
* KAR - KEYBOARD ALTERNATE RETURN.
* PROCESS *1DS* CALL AND COMMAND LOGGING.
*
* ENTRY (AB+3) - (AB+4) = *1DS* PARAMETERS.
* (A) = 0 FOR NO *1DS* CALL.
* = 8/, 1/LK, 3/, 6/FC FOR *1DS* CALL.
* LK - INTERLOCK REQUIRED.
* FC - *1DS* FUNCTION CODE.
KBR LDN 0 DO NOT CALL *1DS*
KAR RJM C1D CHECK FOR *1DS* CALL
STM KBIA CLEAR SYNTAX SKIP FLAG
KMS SPACE 4,10
** KMS - KEYBOARD ERROR MESSAGE RETURN.
*
* ENTRY (A) = ADDRESS OF ERROR MESSAGE.
KMS STD KM
NJN KBR1 IF MESSAGE PRESENT
LDC 0
KBRA EQU *-1 (REPEAT ENTRY FLAG)
ZJN KBC IF REPEAT ENTRY NOT SET
KBR1 SOD KI ENTER PREVIOUS CHARACTER
LDM KBUF,KI
LMN 1R
ZJN KBR1 IF BLANK
LMN 1R
STD KE
LDN 0
STM KBUF,KI
UJN KBC3 CLEAR KEYBOARD READY
KBC SPACE 4,15
** KBC - CLEAR KEYBOARD BUFFER.
*
* ENTRY (EI) = EJTO OF EJT ENTRY INTERLOCKED.
* (KM) = KEYBOARD MESSAGE FLAG.
*
* EXIT (EI) = 0.
*
* USES EI, KE, KI, KR, T1, CM - CM+4.
*
* MACROS MONITOR, SFA.
KBC LDD KM
NJN KBC2 IF KEYBOARD MESSAGE SET
LDC 0 CLEAR KEYBOARD INDEX
KBCA EQU *-1
STD KI
STD T1
KBC1 LDN 0 CLEAR BUFFER
STM KBUF,T1
AOD T1
LMN KBUFL
NJN KBC1 IF BUFFER NOT CLEARED
STM KBCA
KBC2 LDN 0 CLEAR PRESET ENTRY
STD KE
KBC3 STD KR CLEAR KEYBOARD READY
LDD HN RESET COMMAND FORMAT ADDRESS
ERRNZ TCEF-100 CANNOT USE DIRECT CELL *HN*
STM KBIB
KBC4 LDD EI
ZJN KBC5 IF NO EJT INTERLOCK SET
LDN ZERL SET PARAMETER IN MESSAGE BUFFER
CRD CM
SFA EJT,EI SAVE ABSOLUTE ADDRESS OF EJT ENTRY
STD CM+4
SHN -14
STD CM+3
* SET NUMBER OF REQUESTS, CLEAR INTERLOCK, SET JOB ADVANCE.
LDN 0+40+20
STD CM+1
MONITOR UTEM CLEAR EJT ENTRY INTERLOCK
LDD CM+1
NJN KBC5 IF REQUEST NOT COMPLETE
STD EI CLEAR EJT ENTRY INTERLOCK FLAG
KBC5 JMP KBIX RETURN
C1D SPACE 4,25
** C1D - CHECK FOR *1DS* CALL.
*
* ENTRY (LKBA) = LOGGING CONTROL BITS.
* (LKBA) = 0 - DO NOT LOG.
* BIT 0 SET - LOG IN ERROR LOG.
* BIT 1 SET - LOG IN SYSTEM DAYFILE.
* BIT 2 SET - LOG IN ACCOUNT DAYFILE.
* (A) = 8/, 1/LK, 3/, 6/FC FOR *1DS* CALL.
* LK - INTERLOCK REQUIRED.
* FC - *1DS* FUNCTION CODE.
* (SP) = SPECIAL PARAMETER (IF NEEDED).
*
* EXIT (LKBA) = 0.
* (A) = 0.
* *1DS* CALLED IF NEEDED.
*
* USES ID, AB - AB+4, CM - CM+4, SP - SP+4.
*
* MACROS EXECUTE.
*
* NOTES IF A *1DS* CALL WAS NOT SPECIFIED ON ENTRY
* ((A)=0) AND LOGGING IS REQUIRED, *1DS*
* FUNCTION *FASF* WILL BE USED BY DEFAULT.
* (SEE COMMON DECK *COMS1DS* FOR MORE DETAIL.)
C1D SUBR ENTRY/EXIT
STD AB+2 SAVE CALL INFORMATION
STD LG
LDC 0
LKBA EQU *-1 (LOGGING CONTROL BITS)
LKBB LPN 7
* LPN 0 (LOGGING DISABLED)
SHN 6
RAD AB+2 FORM *1DS* PARAMETER BYTE
ZJN C1DX IF CALL NOT NEEDED
LDN 64 SET INCOMPLETE *1DS* CALL CHARACTER
STD KE
UJN C1D4 BYPASS CM READ
C1D1 LDN /1DS/KBCML SET INITIAL INTERLOCK
STD ID
LDC /1DS/DSDL TRANSFER KEYBOARD BUFFER
CWM KBUF,ID
CWD SP
C1D2 EXECUTE 1DS
LDN 0 CLEAR LOGGING BITS
STM LKBA
STD KE CLEAR PRESET ENTRY
UJN C1DX EXIT
C1D3 LDD MA RESTORE (AB) FOR RETRY
CRD AB
ADN 1 RESTORE (SP) FOR RETRY
CRD SP
C1D4 LDD AB+2
LPC 1700
C1DA PSN (DEADSTART IN PROGRESS)
* ZJN C1D2 IF BUFFER INTERLOCK NOT NEEDED
ERRNZ /1DS/FASF FUNCTION *FASF* MUST BE ZERO
LDC /1DS/DSDL
CRD CM
LDD CM
ZJN C1D1 IF BUFFER IS AVAILABLE
LDD MA SAVE (AB) FOR RETRY
CWD AB
ADN 1 SAVE (SP) FOR RETRY
CWD SP
LJM CLP1 PROCESS PPU BUSY
KIC SPACE 4,10
** KIC - INCOMPLETE *CR*
*
* USES DK, KE, KM.
KIC LDD KE
LMN 55
ZJN KIC1 IF *RIGHT BLANK*
LMN 64&55
ZJN KIC2 IF INCOMPLETE LOGGING
LMN 65&64
ZJN KIC1 IF PRESET
LDN 63 ENTER *INCOMPLETE CR*
STD KE
KIC1 LDN 0 CLEAR PREVIOUS INPUT FLAG
STM KRIA
STD DK
LJM KBC4 CLEAR EJT INTERLOCK
KIC2 LDD LG
NJN KIC1 IF NOT LOGGING ONLY
LCN 2 ADD *LOG-* TO MESSAGE
RAD KM
UJN KIC1 CLEAR FNT INTERLOCK
SLS SPACE 4,10
** SLS - SET LEFT SCREEN.
*
* ENTRY (A) = DISPLAY NAME.
* TO SLS1, (T1) = DISPLAY NAME. LEFT SCREEN SET
* EVEN IF RIGHT SCREEN SET.
*
* EXIT TO *KBR*.
*
* CALLS LDO, USS.
SLS STD T1 SAVE NAME
LMD RS
NJN SLS1 IF DISPLAY NOT ALREADY UP ON RIGHT SCREEN
LDC .FRHT
STD LA
ADN DOEP
STM /DSD/DSDD
RJM USS UPDATE SCREEN STATUS
UJN SLS3 RETURN
SLS1 LDD T1
ZJN SLS3 IF DISPLAY NOT RECOGNIZED
SBN 1RZ+1
PJN SLS3 IF NOT RECOGNIZED
LDD T1 ENTER REQUESTED DISPLAY
SHN 6
RJM LDO LOAD OVERLAY
SLS3 JMP KBR RETURN
SPACE 4,10
QUAL
AMF EQU /KEYBOARD/AMF
C1D EQU /KEYBOARD/C1D
KAR EQU /KEYBOARD/KAR
KBR EQU /KEYBOARD/KBR
KIE EQU /KEYBOARD/KIE
KMS EQU /KEYBOARD/KMS
KPC EQU /KEYBOARD/KPC
KIC EQU /KEYBOARD/KIC
RKB EQU /KEYBOARD/RKB
SLS EQU /KEYBOARD/SLS
SLS1 EQU /KEYBOARD/SLS1
TLSD SPACE 4,10
** TLSD - TABLE OF LEFT SCREEN DISPLAYS.
TLSD BSS 0
CON 1RA
CON 1RI
CON 1RQ
CON 1RT
TLSDL EQU *-TLSD
KMS SPACE 4,10
** KEYBOARD MESSAGES.
KILE DATA C*INCORRECT ENTRY*
KREP DATA C*REPEAT ENTRY*
KSBD DATA C*DISK BUSY*
DATA A*LOG-*
KSBM DATA C*MTR BUSY*
DATA A*LOG-*
KSBP DATA C*PP BUSY*
KCTL DATA C*COMMAND TOO LONG*
TITLE RESIDENT COMMAND PROCESSORS.
QUAL RES
DFC SPACE 4,10
** X0,NNNNNN. CHANGE SECTION A OF MEMORY DISPLAY X TO
* START AT CM/ECS LOCATION NNNNNN.
* X1,NNNNNN. CHANGE SECTION B OF MEMORY DISPLAY X TO
* START AT CM/ECS LOCATION NNNNNN.
* X2,NNNNNN. CHANGE SECTION C OF MEMORY DISPLAY X TO
* START AT CM/ECS LOCATION NNNNNN.
* X3,NNNNNN. CHANGE SECTION D OF MEMORY DISPLAY X TO
* START AT CM/ECS LOCATION NNNNNN.
* X4,NNNNNN. CHANGE MEMORY DISPLAY X TO START AT
* CM/ECS LOCATION NNNNNN.
* X5,NNNNNN. ADVANCE MEMORY DISPLAY X BY NNNNNN
* LOCATIONS.
* X6,NNNNNN. DECREMENT MEMORY DISPLAY X BY NNNNNN
* LOCATIONS.
DFC BSS 0 ENTRY
LDM KBUF SET DISPLAY INDEX
STD T6
LDM TDFC-1,T6 SET DISPLAY ADDRESS TABLE
STD T7
LDC KBUF+3 ASSEMBLE ADDRESS VALUE
STD CA
RJM ASD
LDD AB
ADD AB+1
ADD AB+2
NJN DFC1.1 IF .GT. 8 DIGITS
LDM KBUF+1 CHECK FIELD NUMBER
SBN 1R4
PJN DFC1 IF FIELD NUMBER .GE. 4
ADN 4 SET FIELD INDEX
SHN 1
RAD T7
LDD AB+3 SET ADDRESS
STI T7
LDD AB+4
STM 1,T7
UJN DFC4 SET LEFT SCREEN
DFC1 NJN DFC2 IF NOT 4
RJM RES RESET FIELDS TO 0, 10, 20, 30
UJN DFC3 ADVANCE DISPLAY FIELD
DFC1.1 JMP KIE *INCORRECT ENTRY*
DFC2 SBN 1
ZJN DFC3 IF 5
LDD AB+3 FORM TWO,S COMPLEMENT
LMC -770000
STD AB+3
LDD AB+4
LMC -770000
ADN 1
STD AB+4
SHN -14
RAD AB+3
DFC3 LDD T6 ADVANCE DISPLAY ADDRESSES
RJM ADA
DFC4 LDD T6
JMP SLS SET LEFT SCREEN
DJM SPACE 4,10
** X,JSN.
* X,.
* WHERE X = C, D, F, G, M.
*
* DISPLAY JSN CHANGE
DJM BSS 0
LDD SF
ZJN DJS IF NOT SECURE SYSTEM
LDD LK
LPN 2
ZJN DFC1.1 IF SECURITY UNLOCK NOT SET
* UJN DJS
DJS SPACE 4,10
** X,JSN.
* X,.
* WHERE X = H, J, K, P.
*
* DISPLAY JSN CHANGE.
DJS BSS 0
LDM KBUF SET DISPLAY NAME
DJS1 STD T7
RJM CJS CHANGE JSN
LDD T7
JMP SLS SET LEFT SCREEN
CDS SPACE 4,10
** XY.
*
* CHANGE DISPLAYS ON LEFT AND RIGHT SCREENS.
CDS LDM KBUF LOAD LEFT SCREEN LETTER
SHN 6
LMM KBUF+1 LOAD RIGHT SCREEN LETTER
RJM LDO LOAD DISPLAY OVERLAYS
JMP KBR RETURN
DOV SPACE 4,10
*** 99.
*
* TOGGLE SYNTAX OVERLAY PROCESSING AND COMMAND LOGGING.
DOV LDM /KEYBOARD/ADSA TOGGLE SYNTAX OVERLAY STATUS
LMN 1
STM /KEYBOARD/ADSA
LDM /KEYBOARD/LKBB TOGGLE LOGGING STATUS
LMN 7
STM /KEYBOARD/LKBB
JMP KBR RETURN
QUAL SPACE 4,10
QUAL COMMAND
CDS EQU /RES/CDS
DJS EQU /RES/DJS
DJM EQU /RES/DJM
DFC EQU /RES/DFC
DOV EQU /RES/DOV
QUAL *
TITLE RESIDENT COMMAND PROCESSING SUBROUTINES.
QUAL
ADA SPACE 4,10
** ADA - ADVANCE DISPLAY ADDRESSES.
*
* ENTRY (A) = DISPLAY CHARACTER.
* (AB+3 - AB+4) = INCREMENT.
*
* USES T1, T2.
ADA SUBR ENTRY/EXIT
STD T1 SET CHARACTER
SBN TDFCL
PJN ADAX IF NO DISPLAY FIELD DEFINED
LDM TDFC-1,T1 SET FIELD TABLE ADDRESS
STD T1
ZJN ADAX IF FIELD NOT DEFINED
LDD T1 SET LIMIT
ADN 10
STD T2
ADA1 LDD AB+4 ADVANCE DISPLAY FIELD
RAM 1,T1
SHN -12D
ADD AB+3
RAI T1
LDN 2 ADVANCE FIELD
RAD T1
LMD T2
NJN ADA1 IF LIMIT NOT REACHED
UJN ADAX RETURN
ASD SPACE 4,15
** ASD - ASSEMBLE DIGITS.
*
* ENTRY (CA) = ADDRESS OF NEXT CHARACTER.
*
* EXIT (A) = NON OCTAL DIGIT IN STRING.
* (CA) UPDATED.
* (AB - AB+4) = DIGITS ASSEMBLED, RIGHT-JUSTIFIED.
*
* USES T1, T2, T3, AB - AB+4.
ASD SUBR ENTRY/EXIT
LDN ZERL CLEAR ASSEMBLY
CRD AB
ASD1 LDI CA CHECK CHARACTER
SBN 1R0
MJN ASD2 IF ALPHA
SBN 10
MJN ASD3 IF OCTAL DIGIT
SBN 1R -1R8
ZJN ASD5 IF * *
ASD2 LDI CA GET CHARACTER
UJN ASDX RETURN
ASD3 ADN 10 SET NEW DIGIT
STD T2
LDN AB+4 SET BYTE ADDRESS
STD T3
ASD4 LDI T3 BYTE * 10
SHN 3
ADD T2 ADD NEW DIGIT
STI T3
SHN -14 NEW DIGIT = OVERFLOW
STD T2
SOD T3 DECREMENT BYTE ADDRESS
LMN AB-1
NJN ASD4 IF NOT 5 BYTES
ASD5 AOD CA ADVANCE CHARACTER
UJN ASD1 LOOP
ASN SPACE 4,15
** ASN - ASSEMBLE NAME.
*
* ENTRY (CA) = CHARACTER ADDRESS.
*
* EXIT (AB - AB+4) = ASSEMBLED NAME LEFT JUSTIFIED WITH
* ZERO FILL.
* (CA) ADVANCED TO SEPARATOR CHARACTER.
*
* USES T1, T2, AB - AB+4.
ASN SUBR ENTRY/EXIT
LDN ZERL CLEAR ASSEMBLY
CRD AB
LDN AB SET BYTE ADDRESS
STD T1
ASN1 LDI CA CHECK CHARACTER
ZJN ASNX IF END OF STRING
SBN 1R9+1
PJN ASNX IF SEPARATOR
ADN 1R9+1 STORE UPPER
SHN 6
STI T1
AOD CA ADVANCE CHARACTER
LDI CA CHECK CHARACTER
ZJN ASNX IF END OF STRING
SBN 1R9+1
PJN ASNX IF SEPARATOR
ADN 1R9+1 STORE LOWER
RAI T1
AOD CA ADVANCE CHARACTER
AOD T1 ADVANCE BYTE
LMN AB+5
NJN ASN1 IF NOT 5 BYTES
UJN ASNX RETURN
AST SPACE 4,10
** AST - ACCESS SUBSYSTEM TABLES.
*
* ENTRY (A) = 6/0, 12/SSID, IF ACCESS SSCT.
* = 6/FL, 12/SSID, IF ACCESS SSAT.
* WHERE FL = *SSCTL* VALUE.
* SSID = SUBSYSTEM ID.
*
* EXIT (A) = 6/ , 12/BYTE REQUESTED.
*
* USES T1, T2, T3, CM - CM+4.
AST SUBR ENTRY/EXIT
STD T3 SAVE SUBSYSTEM ID
SHN -14
STD T2 SAVE TABLE FLAG
LDC MXSI COMPUTE BYTE COUNT
SBD T3
STD T3
LCN 0 COMPUTE WORD
STD T1
AST1 AOD T1
LCN 5
RAD T3
PJN AST1 IF BYTE NOT REDUCED
ADN 5
STD T3
LDC SSCP GET FWA SUBSYSTEM TABLE
CRD CM
LDD CM+2
SHN 14
LMD CM+3
ADD T1
ADD T2
CRD CM
LDM CM,T3
UJN ASTX RETURN
CJS SPACE 4,10
** CJS - CHANGE JSN.
*
* ENTRY (T7) = 6/0, 6/DISPLAY NAME.
*
* EXIT (T7) = DISPLAY NAME.
*
* CALLS ASN, GEE, SJT.
CJS2 LDD T7 SEARCH JSN TABLE
RJM SJT
ZJN CJS1 IF DISPLAY NOT FOUND
LDD AB+1
STM 2,T2 SET NEW JSN
LDD AB
STM 1,T2
ZJN CJS3 IF CLEARING JSN
LDN AB SET JSN FWA
RJM GEE GET EJT ENTRY
PJN CJS3 IF EJT ENTRY FOUND
LDN 0
CJS3 STM 3,T2 SET EJT ORDINAL
CJS SUBR ENTRY/EXIT
RJM ASN ASSEMBLE JSN
LDD AB
ZJN CJS2 IF NO JSN
LDD AB+2
NJN CJS1 IF JSN .GT. 4 CHARACTERS
LDD AB+1
NJN CJS2 IF JSN .GT. 2 CHARACTERS
CJS1 JMP KIE PROCESS INCORRECT ENTRY
CLP SPACE 4,15
** CLP - CALL PP.
*
* ENTRY (A) = PP PROGRAM NAME.
* (AB+1 - AB+4) = PARAMETERS.
*
* USES AB, AB+1, ID, KM, CM - CM+4.
*
* MACROS MONITOR.
CLP3 LDN 0 CLEAR INTERLOCK
STD ID
CLP SUBR ENTRY/EXIT
EXR EQU CLP
SHN 14 STORE NAME
STD AB
SHN -6
SCN 77
STD AB+1
LDD MA STORE REQUEST
CWD AB
ADN 1 SAVE (SP) FOR *1DS*
CWD SP
LDN 1 SET PRIORITY REQUEST
STD CM+1
MONITOR RPPM REQUEST PP
LDD CM+1
NJN CLP3 IF PP ASSIGNED
LDD ID CHECK IF MESSAGE BUFFER INTERLOCK SET
ZJN CLP1 IF NOT SET
LDN 0 CLEAR ID
STD ID
LDC /1DS/DSDL
CWD ID
CLP1 LDC KSBP *PPU BUSY*
CLP2 STD KM
JMP KIC INCOMPLETE RETURN
CMM SPACE 4,10
** CMM - CLEAR MONITOR MESSAGE.
*
* ENTRY (CM) = 0.
* (FTND) = SYSTEM CONTROL POINT MESSAGE 2 AREA ADDRESS.
CMM SUBR ENTRY/EXIT
LDM FTND *NO MONITOR RESPONSE* MESSAGE FLAG
ZJN CMMX IF NO MESSAGE PENDING
CWD CM CLEAR MESSAGE
LDN 0
STM FTND CLEAR MESSAGE FLAG
UJN CMMX RETURN
IEE SPACE 4,15
** IEE - INTERLOCK EJT ENTRY.
*
* ENTRY (A) = EJTO OF ENTRY TO INTERLOCK.
*
* EXIT (A) = EJT ORDINAL IF INTERLOCK ACHIEVED.
* .LT. 0 IF INTERLOCK REJECTED.
* (T3) = EJT ORDINAL.
* (EI) = EJT ORDINAL IF INTERLOCK ACHIEVED.
*
* USES AB - AB+4, CM - CM+4.
*
* MACROS MONITOR, SFA.
IEE1 LCN 0 SET REJECT EXIT CONDITION
IEE SUBR ENTRY/EXIT
STD T3
SFA EJT CHECK JSN
ADK JSNE
CRD AB
STD CM+4 SAVE ABSOLUTE ADDRESS OF EJT ENTRY
SHN -14
STD CM+3
LDD AB
ZJN IEE1 IF EJT ENTRY EMPTY
LDN 0 INTERLOCK EJT ENTRY
STD CM+1
STD CM+2 CLEAR UNUSED BYTE
MONITOR UTEM
LDD CM+1
NJN IEE1 IF INTERLOCK REJECT
LDD T3
STD EI
UJN IEEX RETURN
CMT SPACE 4,15
** CMT - CHECK *MAGNET*.
*
* EXIT (A) = 0, IF *MAGNET* NOT ACTIVE.
* = RA + /MTX/UBUF, IF *MAGNET* ACTIVE.
* (T1) = CP NUMBER.
* (T2 - T6) = (UBUF), (T3) = 0.
* (T7) = *MAGNET* RA, IF NOT CME.
* = 4000B, IF CME.
* (R) = *MAGNET* RA, IF CME.
*
* USES CM, T1 - T7.
*
* CALLS FSS.
CMT SUBR ENTRY/EXIT
LDC MTSI FIND *MAGNET*
RJM FSS
ZJN CMTX IF *MAGNET* NOT ACTIVE
STD T1
SHN 7
CMTA ADN FLSW
* ADN FLSW+1 (CENTRAL MEMORY EXTENSION)
CRD T4
LRD T4+1 ((R) = RA IF CME)
* LDD T4+3 SET RA
* STD T7
LDD T7 (T7) = RA
SHN 6
ADN /MTX/UBUF READ *MAGNET* UDT POINTER
CRD T2
UJN CMTX RETURN
DAL SPACE 4,10
** DAL - DISPLAY ACCESS LEVEL STRING.
*
* ENTRY (A) = TABLE ENTRY NUMBER.
DAL SUBR ENTRY/EXIT
LPN 7
SHN 2 CONVERT ENTRY NUMBER TO TABLE INDEX
ADK TALV
STM DALA
LDN 4 DISPLAY STRING
OAM 0,CH
DALA EQU *-1
UJN DALX RETURN
FSS SPACE 4,10
** FSS - FIND SUBSYSTEM.
*
* ENTRY (A) = SUBSYSTEM ID.
*
* EXIT (A) = 0, IF SUBSYSTEM NOT ACCESSIBLE AT A CP.
* = CP NUMBER, IF SUBSYSTEM IS ACCESSIBLE AT A CP.
*
* USES CM - CM+4, T2 - T6.
*
* CALLS AST.
*
* MACROS SFA.
FSS1 LDN 0 SET NOT AT CP
FSS SUBR ENTRY/EXIT
STD T4 SAVE SUBSYSTEM ID
RJM AST GET SSCT ENTRY
SHN 21-13
PJN FSS1 IF SUBSYSTEM NOT ACCESSIBLE
* GET CP NUMBER FROM EJT ENTRY.
LDD T4
ADC SSCTL*10000 GET SSAT ENTRY
RJM AST
ZJN FSSX IF SUBSYSTEM NOT ACTIVE
SFA EJT CALCULATE EJT ENTRY ADDRESS
ERRNZ JSNE NOT FIRST WORD OF EJT ENTRY
CRD CM
ADN SCHE GET CP NUMBER
CRD T2
LDD CM+4
LPN 76
LMN EXJS*2
NJN FSS1 IF SUBSYSTEM NOT EXECUTING
LDD T2+3 GET CP NUMBER
LPN 37
UJN FSSX RETURN
FTN SPACE 4,10
** FTN - PROCESS MONITOR FUNCTION.
*
* ENTRY (A) = FUNCTION.
* (CM+1 - CM+4) = PARAMETERS.
*
* EXIT (CM - CM+4) = OUTPUT REGISTER.
*
* USES KM, T1, CM - CM+4, SR - SR+4.
*
* CALLS CMM.
FTN6 RJM CMM CLEAR MONITOR MESSAGE
FTN SUBR ENTRY/EXIT
LMD TH SET *DSD*/*MTR* INTERLOCK
STD CM SET FUNCTION
LDC 200 SET TIME DELAY
* LDC 100 (2X PP SPEED)
* LDC 40 (1X PP SPEED)
FTNC EQU *-1
STD T1
* THIS CODE ALLOWS FOR DEAD *MTR* AND FOR FUNCTIONS THAT
* WERE HUNG.
LDD OA CHECK FOR PREVIOUS FUNCTION COMPLETE
CRD SR
LDD SR
NJN FTN3 IF PREVIOUS FUNCTION NOT TAKEN
STD T0 INITIALIZE TIMER
LDD OA STORE OUTPUT REGISTER
CWD CM
FTN1 LDD OA READ OUTPUT REGISTER
CRD CM
LDD CM
ZJP FTN6 IF OUTPUT REGISTER CLEAR
SOD T0
NJN FTN1 IF NOT TIMED OUT
SOD T1 COUNT TIMER
NJN FTN1 IF NOT TIMED OUT
LDD NC *NO MONITOR RESPONSE*
SHN 7
ADN MS2W
STM FTND SET FLAG TO SYSTEM MESSAGE BUFFER ADDRESS
CWM FTNB,TR
FTN3 LDM FTN RETURN ADDRESS
ADC -.CCHM CHECK CHANNEL RETURN ADDRESS
ZJN FTN4 IF WAITING FOR CHANNEL
ADC .CCHM-.FLFT LOWEST ADDRESS FOR DISPLAY OVERLAYS
MJN FTN5 IF NOT CALLED BY SOME DISPLAY PROCESSOR
FTN4 LJM FTNX RETURN
FTN5 LDC KSBM *MTR BUSY*
LJM CLP2 PROCESS INCOMPLETE *CR*
FTNB DATA C*NO MONITOR RESPONSE*
FTND CON 0 SYSTEM CONTROL POINT MESSAGE FLAG
GEE SPACE 4,20
*** GEE - GET EJT ENTRY.
*
* ENTRY (A) = FWA OF JSN.
*
* EXIT (A) = EJT ORDINAL OF ENTRY FOUND.
* .LT. 0 IF ENTRY NOT FOUND.
* (T3) = ORDINAL OF ENTRY FOUND.
* (T5) = FWA OF JSN.
* (CM - CM+4) = WORD *JSNE* OF ENTRY FOUND.
*
* USES T3, T5, T6, T8, T9, CM - CM+4.
*
* MACROS SFA.
GEE2 LDD T8
ZJN GEE6 IF NO MORE ENTRIES IN USE
SFA EJT,T3
ADK JSNE
CRD CM FETCH FIRST WORD OF EJT ENTRY
LDD CM
ZJN GEE4 IF EMPTY ENTRY
LMI T5
NJN GEE3 IF NOT MATCHING JSN
LDI T9
LMD CM+1
ZJN GEE7 IF MATCHING JSN
GEE3 SOD T8
GEE4 AOD T3 ADVANCE EJT ORDINAL
LMD T6
GEE5 NJN GEE2 IF NOT END OF EJT
GEE6 LDC 1S17
GEE7 ADD T3 SET EXIT CONDITION
GEE SUBR ENTRY/EXIT
STD T5 SAVE FWA OF JSN
ADN 1
STD T9
LDI T9 CHECK JSN LENGTH
LPN 77
NJN GEE1 IF JSN .GT. 3 CHARACTERS
LDN 1R
RAI T9
GEE1 LDN EJTP
CRD CM
LDN 0 INITIALIZE EJT ORDINAL
STD T3
LDD CM+2 SAVE NUMBER OF EJT ENTRIES
STD T6
SBD CM+3 SAVE NUMBER OF ENTRIES USED
STD T8
UJP GEE5 BEGIN EJT SCAN
RES SPACE 4,5
** RES - RESET ADDRESS FIELDS TO 0, 10, 20, 30.
*
* ENTRY (A) = 0.
* (T7) = DISPLAY ADDRESS TABLE FWA.
RES SUBR ENTRY/EXIT
STI T7 CLEAR FIELDS TO 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 RESX RETURN
SJS SPACE 4,15
** SJS - SEARCH FOR JSN IN EJT.
*
* ENTRY (A) = JSN ADDRESS IN *TJAZ* TABLE.
*
* EXIT (A). LT. 0, IF NO DISPLAY POSSIBLE.
* (A) = 0, IF NO JSN IN *TJAZ* ENTRY.
* (CM+3) = CP NUMBER OF EJT ENTRY.
* (CP) = CP AREA ADDRESS OF EJT ENTRY.
* = 0, IF SYSTEM CP.
* EJTO IN *TJAZ* UPDATED.
*
* USES CP, T3, T5, CM - CM+4.
*
* MACROS DISPLA, SFA.
*
* CALLS GEE, USS.
SJS4 LDM 2,T5 GET JSN FROM EJT ENTRY
STD T3 SAVE EJTO
SFA EJT
ERRNZ JSNE NOT FIRST WORD OF EJT ENTRY
CRD CM
LDI T5
LMD CM
NJN SJS5 IF JSN DOES NOT MATCH
LDM 1,T5
LMD CM+1
ZJN SJS6 IF JSN MATCHES
SJS5 LDD T5 GET FWA OF JSN TO FIND
RJM GEE SEARCH EJT
MJN SJS1 IF EJT ENTRY NOT FOUND
STM 2,T5
RJM USS UPDATE SCREEN STATUS
SJS6 LDD CM+4
LPN 76
LMN EXJS*2
NJN SJS3 IF EJT ENTRY NOT AT A CP
SFA EJT,T3 GET CP NUMBER
ADN SCHE
CRD CM
LDD CM+3 SET CP AREA ADDRESS
SJS7 SHN 7
STD CP
SJS SUBR ENTRY/EXIT
STD T5
LDI T5
NJP SJS4 IF JSN SELECTED
* LDN 0
STM 2,T5
UJN SJS7 SET CPA ADDRESS
SJS1 DISPLA CH01,LN07,(JSN NOT FOUND)
* LDN 0 CLEAR EJTO IN *TJAZ*
STM 2,T5
RJM USS UPDATE SCREEN STATUS
SJS2 LCN 0 SET NO DISPLAY POSSIBLE
UJN SJSX RETURN
SJS3 DISPLA CH01,LN07,(ROLLED)
UJN SJS2 RETURN
SJT SPACE 4,10
** SJT - SEARCH JSN (*TJAZ*) TABLE.
*
* ENTRY (A) = DISPLAY NAME.
*
* EXIT (A) = FWA OF ENTRY FOUND.
* = 0 IF NOT FOUND.
* (T2) = FWA OF ENTRY FOUND.
SJT1 LDN /DSD/TJAZE ADVANCE TABLE ADDRESS
RAD T2
SJT2 LDI T2
ZJN SJTX IF END OF TABLE
LMD T0
LPN 77
NJN SJT1 IF NOT MATCHING ENTRY
LDD T2
SJT SUBR ENTRY/EXIT
STD T0
LDC /DSD/TJAZ INITIALIZE SEARCH
STD T2
UJN SJT2 BEGIN TABLE SCAN
TITLE TABLES AND CONSTANTS FOR OVERLAYS.
TDFC SPACE 4,10
** TDFC - DISPLAY FIELD CHANGE TABLE.
TDFC BSS 0
LOC 1RA
CON 0 NO FIELD
CON 0 NO FIELD
CON TDSC DISPLAY C
CON TDSD DISPLAY D
CON 0 NO FIELD
CON TDSF DISPLAY F
CON TDSG DISPLAY G
CON 0 NO FIELD
CON 0 NO FIELD
CON 0 NO FIELD
CON 0 NO FIELD
CON 0 NO FIELD
CON TDSM DISPLAY M
TDFCL BSS 0
LOC *O
SPACE 4,10
** MISCELLANEOUS CONSTANTS.
DFIM (CON T721)
CTOS CON T545 Y-COORDINATE FOR TOP OF SCREEN BODY
DFIM (CON Y721)
CBOS CON Y545 BOTTOM OF SCREEN COORDINATE
MORE CON XMOR X-COORDINATE FOR THE *MORE* MESSAGE
DATA 4HMORE
MOREL EQU *-MORE
CMEI CON 0 CENTRAL MEMORY EXTENSION PRESENT FLAG
DFIM (CON C721) CODE FOR 721 CONSOLE
DCTY CON C545 DISPLAY CONSOLE TYPE
DLYA SBN 20 1X PP DELAY
* SBN 10 2X PP DELAY
* SBN 4 4X PP DELAY
LUDT CON 0 LENGTH OF MAGNET UNIT DESCRIPTOR TABLE
UESC BSS 1 USER EXTENDED MEMORY SHIFT COUNT
TDSA SPACE 4,15
** TDSA - *A* DISPLAY CONTROL TABLE.
*
* ENTRY = 1 WORD.
*
*T, 12/ IND
* IND BUFFER INDEX
TDSA BSS 0
CON 0 MASTER DAYFILE
CON 0 ACCOUNT FILE
CON 0 ERROR LOG
ADSC CON 0 *A* DISPLAY TYPE
CON -0 LAST LINE USED ON DISPLAY
CON 0 SCREEN FULL FLAG (0 = FULL)
TDSB SPACE 4,10
** TDSB - *B* DISPLAY CONTROL TABLE.
TDSB BSS 0
CON 1RA&1RA DEFAULT DISPLAY TYPE (*B,A*)
TDSC SPACE 4,10
** TDSC - *C* DISPLAY ADDRESS TABLE.
TDSC BSS 0
VFD 24/0
VFD 24/10
VFD 24/20
VFD 24/30
TDSD SPACE 4,10
** TDSD - *D* DISPLAY ADDRESS TABLE.
TDSD BSS 0
DFIM (VFD 24/20)
VFD 24/40
DFIM (VFD 24/30)
VFD 24/50
VFD 24/60
VFD 24/70
TDSE SPACE 4,10
** TDSE - *E* DISPLAY CONTROL TABLE.
TDSE BSS 0
CON 0 CURRENT LEFT SCREEN INDEX
CON 0 NEXT LEFT SCREEN INDEX
CON 0 CURRENT RIGHT SCREEN INDEX
CON 0 NEXT RIGHT SCREEN INDEX
TDSEA CON 0 CURRENT E,T DISPLAY UDT OFFSET
CON 0 NEXT E,T DISPLAY UDT OFFSET
TDSF SPACE 4,10
** TDSF - *F* DISPLAY ADDRESS TABLE.
TDSF BSS 0
VFD 24/0
VFD 24/10
VFD 24/20
VFD 24/30
TDSG SPACE 4,10
** TDSG - *G* DISPLAY ADDRESS TABLE.
TDSG BSS 0
DFIM (VFD 24/20)
VFD 24/40
DFIM (VFD 24/30)
VFD 24/50
VFD 24/60
VFD 24/70
TDSH SPACE 4,10
** TDSH - *H* DISPLAY CONSTANT TABLE.
TDSH BSS 0
CON 0 CURRENT INDEX
CON 0 NEXT INDEX
TDSI SPACE 4,10
** TDSI - *I* DISPLAY CONTROL TABLE.
TDSI BSS 0
CON 0 CURRENT INDEX
CON 0 NEXT INDEX
TDSM SPACE 4,10
** TDSM - *M* DISPLAY ADDRESS TABLE.
TDSM BSS 0
VFD 24/0
VFD 24/10
VFD 24/20
VFD 24/30
TDTL SPACE 4,10
** TDTL - *O,TLD* DISPLAY CONTROL TABLE.
TDTL BSS 0
CON 0 CURRENT *TLD* ENTRY INDEX
CON 0 NEXT *TLD* ENTRY INDEX
CON 0 CURRENT *TLD* LIBRARY OFFSET
CON 0 NEXT *TLD* LIBRARY OFFSET
TDSO SPACE 4,10
** TDSO - *O,TST* DISPLAY CONTROL TABLE.
TDSO BSS 0
CON 1 CURRENT INDEX
CON 1 NEXT INDEX
TDTS SPACE 4,10
** TDTS - *O,SCP* DISPLAY CONTROL TABLE.
TDTS BSS 0
CON 1 CURRENT INDEX
CON 1 NEXT INDEX
TDSP SPACE 4,10
** *P* DISPLAY PP CONTROL.
TDSPA CON 0 PPS SWITCH FLAG (CYBER 17X ONLY)
TDSQ SPACE 4,10
** TDSQ - *Q* DISPLAY CONSTANT TABLE.
TDSQ BSS 0
CON 0 CURRENT QFT ORDINAL
CON 0 NEXT QFT ORDINAL
TDSQA CON 4000 QUEUE TYPE TO DISPLAY (4000 = ALL QUEUES)
TDSR SPACE 4,10
** TDSR - *R* DISPLAY CONTROL TABLE.
TDSR BSS 0
CON 0 CURRENT PAGE FIRST EJTO
CON 0 NEXT PAGE FIRST EJTO
TDSS SPACE 4,10
** TDSS - *S* DISPLAY CONTROL TABLE.
TDSS BSS 0
CON 1 CURRENT PAGE FIRST SERVICE CLASS
CON 0 NEXT PAGE FIRST SERVICE CLASS
TDST SPACE 4,10
* TDST - *T* DISPLAY CONSTANT TABLE.
TDST BSS 0
CON /REM/VPST CURRENT PAGE FIRST CONNECTION NUMBER
CON /REM/VPST NEXT PAGE FIRST CONNECTION NUMBER
SPACE 4,10
** TDSV - *V* DISPLAY CONTROL TABLE.
TDSV CON 0 REFRESH FLAG / PP NUMBER
CON 0 PP MB+5
CON PPFW DISPLAY C POINTER
CON 0 DISPLAY D POINTER
TJOT SPACE 4,10
** TJSC - TABLE OF SERVICE CLASS TYPES.
*
*T 6/CHARACTER, 6/0
TJSC BSS 0
LIST D,G
BASE OCTAL
.A SET 1 INITIALIZE CHARACTER NUMBER
DUP MXSC LOOP FOR ALL SERVICE CLASSES
.C MICRO .A,1,+"NMDS"+
CON 1L".C"
.A SET .A+1 GET NEXT SERVICE CLASS
ENDD
BASE *
LIST *
CON 0 END OF TABLE
TGTF SPACE 4,10
** TGTF - TOGGLE FLAGS.
*
* NOTE - THESE FLAGS ARE CLEARED BY ROUTINE *LOV* WHEN AN
* OVERLAY IS INITIALLY LOADED.
TGTF BSS 0
CON 0 */* - LEFT SCREEN TOGGLE FLAG
CON 0 *=* - RIGHT SCREEN TOGGLE FLAG
JDAT SPACE 4,10
** JDAT - JULIAN DATE.
JDAT VFD 24/0
VFD 36/5R00000
DIS SPACE 4,10
* INSERT DISPLAY MESSAGES.
CON 0
DIS HERE
TITLE FOLLOWING CODE WILL BE OVERLAID AFTER PRESET.
PRS SPACE 4,10
** PRS - PRESET PROGRAM.
*
* EXIT (EJ - EJ+1) = FWA EJT.
* (IA) = ADDRESS OF FIRST PP INPUT REGISTER.
* (LK) = LOCK STATUS.
* (MA) = MESSAGE BUFFER ADDRESS.
* (NC) = NUMBER OF CP-S.
* (OA) = ADDRESS OF FIRST PP OUTPUT REGISTER.
QUAL DSD
PRS LDN PPCP READ PP COMMUNICATION AREA POINTER
CRD CM
LDD CM+4 SET COMMUNICATION ADDRESSES
ADN 10
STD IA
ADN 1
STD OA
ADN 1
STD MA
* SET CONSTANTS.
IJM PRS1,SC IF NOT CYBER 170
LDK /SCR/FCRD+/SCR/PMSW READ PPS SWITCH
OAN SC
IAN SC
SHN 4-11
LPN 20
STM TDSPA A = 0 FOR PPS-0 A = 20 FOR PPS-1
PRS1 RJM /GFP/IFP INITIALIZE *SFA* MACRO
LDK MEFL SET USER EM SHIFT COUNT
CRD T3
LDD T3+2
SHN -11
STM UESC
LDN SSML SET SECURITY FLAG
CRD T3
ADK MABL-SSML READ PP SPEED AND MAINFRAME TYPE
CRD T4
LDD T3
LPN 3
STD SF
NJN PRS1.1 IF SECURE SYSTEM
LDC 2R$$ DISABLE *SECURE-UNLOCK* COMMAND
STM TSUL+2
PRS1.1 LDM PRSA,T4+4 GET TIME DELAY
STM FTNC
LDM PRSB,T4+4
STM DLYA
LDN NCPL READ CONTROL POINT COUNT
CRD T6
ADK MMFL-NCPL READ MMF STATUS WORD
CRD CM
AOD T6+1 SET NUMBER OF CONTROL POINTS
STD NC
LDD CM SET MACHINE ID
STM DLSF
LDD T4+1 CHECK MAINFRAME TYPE
SHN 21-13
MJN PRS3 IF NOT CYBER 170-8X5
AJM PRS2,SC IF CYBER 170-865/875
AOM /DSD/TDSO+1RP USE CYBER 180 *P* DISPLAY DRIVER
ERRNZ /DISPLAY/DSP7/10000+1-/DISPLAY/DSP8/10000 FIX *AOM*
PRS2 AOM CMTA CHANGE TO READ *FLSW*+1
STM CMEI SET R-REGISTER FLAG
LDD T4+1 CHECK MAINFRAME TYPE
SHN 21-6
PJN PRS3 IF NOT CYBER 180
LDC /PRESET/RDT BYPASS DATE/TIME PROMPTS
STM /PRESET/DMRA
LDC KBR SET *KCR* TO IGNORE INPUT OF A *CR*
STM /PRESET/KCRA
PRS3 LDK EIBP SET EICB ADDRESS
CRD CM
LDD CM+3
SHN 14
LMD CM+4
ZJN PRS4 IF NO *EICB*
ADK D7ST
STM FDPA+1
SHN -14
RAM FDPA
PRS4 RJM CTE COUNT TAPE EQUIPMENT
* CLEAR EQUIPMENT ASSIGNMENT.
LDN DSEQ
SFA EST
ADK EQAE
CRD AB FETCH EQUIPMENT ASSIGNMENT WORD
STM CEQA+1
STM CEQC+1
SHN -14
RAM CEQA
STM CEQC
LDC STII+T3+100000 SET (*.BLI*) TO AN *STIL T3*
ACN CH+40
OAN CH+40
LDN 1
IAM .BLI,CH
DCN CH+40
LDN KBUFL+3 LENGTH OF KEYBOARD BUFFER
STD T7
* INITIALIZE *SCD* IF DEADSTART FROM CDC721.
LDK SCDP FETCH *SCD* POINTER WORD
CRD CM
LDD CM+2
SHN 14
ADD CM+3
ZJP PRS5 IF PARAMETER TABLE UNDEFINED
CRD T2
LDD T2+2
LPN 10
ZJN PRS5 IF *SCD* NOT ACTIVE
MDIN /PRESET/SRMT
CCF *,CH SIGNAL *SCD* TO LOOK AT DISPLAY CHANNEL
CFNC SSIF
LDN 2 OUTPUT PARAMETER TABLE ADDRESS
OAM CM+2,CH
FJM *,CH WAIT TRANSMISSION COMPLETE
DCN CH+40
* INITIALIZE KEYBOARD BUFFER.
PRS5 LDN 0
STM KBUF-1,T7
STM /PRESET/TIKB-1,T7
SOD T7
NJN PRS5 IF MORE TO CLEAR
* CLEAR TRAILING *. * IN DISPLAY COMMON DECKS.
STM D2SA
STM D2ZA
STM D4SB
STM D6SA
STD AB+4 CLEAR EQUIPMENT ASSIGNMENT
LDN DSEQ
SFA EST
ADN EQAE UPDATE EST ENTRY
CWD AB
* ENTER INITIAL COMMAND.
LDD IA READ COMMAND WORD
ADN 2
CRD CM
STD T7
LDD CM
ZJN PRS8 IF NO INITIAL COMMAND
LDC /PRESET/TIKB SET INITIAL COMMAND TABLE
STM /PRESET/DLSF
STD T6
PRS6 LDN CM SET BYTE ADDRESS
STD T1
PRS7 LDI T1 UNPACK BYTE
SHN 14
STI T6
SHN -14
STM 1,T6
LDN 2
RAD T6
AOD T1
LMN CM+5
NJN PRS7 IF NOT END OF WORD
AOD T7 ADVANCE WORD
CRD CM
LPN 7
NJN PRS6 IF NOT END OF COMMANDS
PRS8 LDK ZERL CLEAR MESSAGE BUFFER + 1
CRD CM
LDD MA
ADN 1
CWD CM
LDC /PRESET/DTEB COPY DATE SYNTAX
RJM /PRESET/CSY
LDC /KEYBOARD/KLB DISABLE *RIGHT BLANK* KEY
STM /KEYBOARD/TSCEA
LDC /PRESET/KCR SET *CR* PROCESSOR
STM /KEYBOARD/TSCEB
LJM /DSD/DSD ENTER PROGRAM
* TIME DELAY VALUES FOR *FTN*. INDEXED BY PP SPEED.
PRSA EQU *
LOC 0
CON 40 1X PP SPEED
CON 100 2X PP SPEED
CON 200 4X PP SPEED
LOC *O
PRSB BSS 0
LOC 0
SBN 20 1X PP SPEED
SBN 10 2X PP SPEED
SBN 4 4X PP SPEED
LOC *O
CTE SPACE 4,10
** CTE - COUNT TAPE EQUIPMENT.
*
* EXIT (LUDT) = LENGTH OF MAGNET UDT.
*
* USES CM - CM+4, T1 - T5.
*
* MACROS SFA.
CTE SUBR ENTRY/EXIT
LDK ESTP GET NUMBER OF EST ENTRIES
CRD T1
LDN NOPE-1 INITIALIZE EST ORDINAL
STD T5
CTE1 AOD T5 ADVANCE EST ORDINAL
LMD T3
ZJN CTEX IF ALL ENTRIES CHECKED
SFA EST,T5
ADK EQDE
CRD CM
LDD CM+3
LMC 2RMT
ZJN CTE2 IF TAPE EQUIPMENT
LMC 2RNT&2RMT
ZJN CTE2 IF TAPE EQUIPMENT
LMC 2RCT&2RNT
ZJN CTE2 IF TAPE EQUIPMENT
LMC 2RAT&2RCT
NJN CTE1 IF NOT TAPE EQUIPMENT
CTE2 LDK /MTX/UNITL COUNT TAPE EQUIPMENT
RAM LUDT
UJN CTE1 CHECK NEXT EQUIPMENT
SPACE 4,10
QUAL *
* KEYBOARD BUFFER.
KBUF EQU /DSD/PRS
KBUFL EQU /1DS/KBCML*5
ERRNG /DSD/PRSA-KBUF-KBUFL-5 *DSD* PRESET OVERFLOWS
QUAL SPACE 4,10
QUAL GFP
IFP HERE
QUAL
QUAL PRESET
TITLE INITIALIZATION DISPLAYS.
DTM SPACE 4,20
*** ENTER DATE AND TIME.
*
* IF THE DATE AND/OR TIME ENTRIES ARE NOT TO BE MADE,
* A *CR* MAY BE TYPED AND THE CURRENT SYSTEM DATE AND TIME WILL
* BE USED.
*
* THE DATE MUST BE OF THE FORM *YY/MM/DD.*. THE FOLLOWING
* CONDITIONS APPLY -
* 00 @ YY @ 99.
* 1 @ MM @ 12.
* 1 @ DD @ N, WHERE N = NUMBER OF DAYS FOR MONTH MM
*
* THE TIME MUST BE OF THE FORM *HH.MM.SS.* THE FOLLOWING
* CONDITIONS APPLY -
* 0 @ HH @ 23
* 0 @ MM @ 59
* 0 @ SS @ 59
DTM LDN TIML
CRD TM
DTM0 LDN DTEL
CRD DT
DTM1 LDN 28D
STM TDLM+2
LDN ZERL CLEAR ASSEMBLY BUFFERS
CRD AB
LDN 0 CLEAR DAY LIMIT FOR MONTH
STD T3
LDD DT CONVERT YEAR
LPN 77
SHN 14
LMD DT+1
SHN -6
RJM CDD
STD T1
LPN 3
NJN DTM2 IF NOT LEAP YEAR
AOM TDLM+2 ADVANCE FEBRUARY
DTM2 LDD T1 ENTER YEAR
ADC -70D
PJN DTM3 IF YEAR 70-99
ADC 100D
DTM3 SHN 6
STD AB+2
LDD DT+2 CONVERT MONTH
RJM CDD
STD T2
RAD AB+2 ENTER MONTH
LDD DT+3 CONVERT DAY
LPN 77
SHN 14
LMD DT+4
SHN -6
RJM CDD
SHN 6
STD AB+3
LDD TM CONVERT HOURS
LPN 77
SHN 14
LMD TM+1
SHN -6
RJM CDD
RAD AB+3 ENTER HOURS
LDD TM+2 CONVERT MINUTES
RJM CDD
SHN 6 ENTER MINUTES
STD AB+4
LDD TM+3 CONVERT SECONDS
LPN 77
SHN 14
LMD TM+4
SHN -6
RJM CDD
RAD AB+4
LDM TDLM,T2 SET DAY LIMIT
ADN 1
STD T3
* ENTER JULIAN DATE.
LDD DT SET JULIAN YEAR
LPN 77
STM JDAT+2
LDD DT+1
SCN 77
ADN 1R0
STM JDAT+3
LDC 2R00
STM JDAT+4
LDD AB+3 SET CURRENT DAY
SHN -6
STD T2
LDD AB+2 CALCULATE JULIAN DAY
LPN 77
STD T1
UJN DTM5 CALCULATE MONTH
DTM4 LDM TDLM,T1 ACCUMALATE DAYS
RAD T2
DTM5 SOD T1
NJN DTM4 IF MORE MONTHS TO PROCESS
DTM6 LDC -100D COUNT 100-S OF DAYS
RAD T2
MJN DTM7 IF COUNT COMPLETE
AOM JDAT+3
UJN DTM6 COUNT NEXT 100 DAYS
DTM7 ADC 100D
STD T2
DTM8 LCN 10D COUNT 10-S OF DAYS
RAD T2
MJN DTM9 IF COUNT COMPLETE
LDD HN
RAM JDAT+4
UJN DTM8 COUNT NEXT 10 DAYS
DTM9 ADN 10D
RAM JDAT+4
LDN ZERL
CRD CM
LDD MA
ADN 1
STD CM+2
CWM JDAT,ON
CWD AB
ADN 1
CWD TM
ADN 1
CWD DT
ADN 1
CWD T3
LDN EDTS SET SUBFUNCTION
STD CM+1
MONITOR DSRM ENTER DATE AND TIME
LDN 0 CLEAR ENTRY MESSAGE
STM DLSA
LJM KBR RETURN FROM KEYBOARD
DTMB EQU *-1
* LJM RDTX (RETURN FROM CTI CLOCK READ)
TDLM SPACE 4,20
** TDLM - TABLE OF DAY LIMITS FOR MONTHS.
TDLM EQU *-1
BASE D
LOC 1
CON 31
CON 28
CON 31
CON 30
CON 31
CON 30
CON 31
CON 31
CON 30
CON 31
CON 30
CON 31
BASE *
LOC *O
DTE SPACE 4,10
** DTE - ENTER DATE.
DTE LDN 28D SET SECOND MONTH
STM TDLM+2
LDM KBUF CONVERT YEAR
SHN 6
LMM KBUF+1
RJM CDD
LPN 3
NJN DTE1 IF NOT LEAP YEAR
AOM TDLM+2 ADVANCE SECOND MONTH
DTE1 LDM KBUF+3 CONVERT MONTH
SHN 6
LMM KBUF+4
RJM CDD
STD T2
ZJN DTE2 IF 0
SBN 13D
PJN DTE2 IF .GT. 13
LDM KBUF+6 CONVERT DAY
SHN 6
LMM KBUF+7
RJM CDD
STD T3
ZJN DTE2 IF 0
SBN 1 CHECK DAY NUMBER
SBM TDLM,T2
MJN DTE3 IF WITHIN RANGE OF MONTH
DTE2 JMP KIE INCORRECT ENTRY
DTE3 LDN DT ASSEMBLE DATE
RJM ASC
LDN JDAL READ JULIAN DATE
CRD AB
LDN PDTL READ PACKED DATE
CRD T1
LDN TIML READ CURRENT TIME
CRD TM
LDN ZERL
CRD CM
LDD MA
ADN 1
STD CM+2
CWD AB WRITE JULIAN AND PACKED DATES TO BUFFER
ADN 1
CWD T1
ADN 1 WRITE TIME AND DATE TO BUFFER
CWD TM
ADN 1
CWD DT
LDN EDTS SET ENTER DATE SUB-FUNCTION
STD CM+1
MONITOR DSRM *DSD* MONITOR REQUEST
LDC DTEB RESTORE SYNTAX
RJM CSY
LDC TIMA-1 SET TIME REQUEST
STM DLSA
ADN TIMB-TIMA+1 COPY TIME SYNTAX
STM DLSC
RJM CSY
JMP KBR RETURN
DTEA CON CH01,LN19
DATA C*ENTER DATE - YY/MM/DD.*
* SYNTAX FOR DATE ENTRY.
DTEB BSS 0
EDT ENTER (<09<09/<01<09/<03<09.)
CON 0
CON 7777 SYNTAX TERMINATION
KCR SPACE 4,10
** KCR - SPECIAL *CR* EXIT.
KCR LDN 65 SET SPECIAL *CR* INCOMPLETE INPUT
STD KE
LDD KR
ZJN KCR1 IF KEYBOARD NOT READY
LJM /KEYBOARD/KCR PROCESS *CR*
KCR1 LDD KI CHECK KEYBOARD BUFFER
NJN KCR2 IF DATA IN BUFFER
LJM DTM COMPLETE INITIALIZATION
KCRA EQU *-1
* LJM KBR (CYBER 180)
KCR2 JMP KIE INCORRECT ENTRY
RDT SPACE 4,10
** RDT - READ DATE AND TIME FROM CTI CLOCK.
*
* EXIT TO *DTM* TO PROCESS DATE AND TIME.
RDT SUBR ENTRY/EXIT
LDC RDTX MODIFY *DTM* EXIT
STM DTMB
LJM DTM ENTER DATE AND TIME
TIM SPACE 4,10
** TIM - ENTER TIME.
TIM LDM KBUF CONVERT HOURS
SHN 6
LMM KBUF+1
RJM CDD
SBN 24D
MJN TIM1 IF < 24
JMP KIE INCORRECT ENTRY
TIM1 LDN TM ASSEMBLE TIME
RJM ASC
LJM DTM0 COMPLETE DATE AND TIME ENTRY
TIMA CON CH01,LN19
DATA C*ENTER TIME - HH.MM.SS.*
* SYNTAX FOR TIME.
TIMB BSS 0
ETM ENTER (<02<09.<05<09.<05<09.)
CON 0
CON 7777 SYNTAX TERMINATION
ASC SPACE 4,10
** ASC - ASSEMBLE CHARACTERS.
*
* ENTRY (A) = ADDRESS OF ASSEMBLY AREA.
*
* USES T1 - T3.
ASC SUBR ENTRY/EXIT
STD T2 SET BYTE ADDRESS
ADN 5
STD T3
LDC KBUF-1 SET CHARACTER ADDRESS
STD T1
LDN 1R
ASC1 SHN 6 STORE UPPER
STI T2
AOD T1 ADVANCE CHARACTER
LDI T1 ADD LOWER
RAI T2
AOD T2 ADVANCE BYTE
LMD T3
ZJN ASCX IF WORD COMPLETE
AOD T1 ADVANCE CHARACTER
LDI T1
UJN ASC1 LOOP
CDD SPACE 4,10
** CDD - CONVERT DECIMAL DIGITS.
*
* ENTRY (A) = DPC DIGITS.
*
* EXIT (A) = CONVERSION.
*
* USES T0, T1.
CDD SUBR ENTRY/EXIT
STD T1
SHN -6 UPPER * 10
LPN 77
SBN 1R0
SHN 1
STD T0
SHN 2
RAD T0
LDD T1 ADD LOWER
LPN 77
SBN 1R0
ADD T0
UJN CDDX RETURN
CSY SPACE 4,10
** CSY - COPY SYNTAX.
*
* ENTRY (A) = NEW SYNTAX TABLE ADDRESS.
*
* EXIT (A) = 0.
*
* USES T1, T2, T3.
CSY SUBR ENTRY/EXIT
STD T1 SET NEW SYNTAX ADDRESS
LDD HN SET SYNTAX TABLE ADDRESS
ERRNZ TCEF-100 CANNOT USE DIRECT CELL *HN*
STD T2
CSY1 LDI T1 CHECK NEW SYNTAX
STD T3
LMC 7777
ZJN CSYX IF END OF SYNTAX
LDI T2 INTERCHANGE SYNTAX BYTES
STI T1
LDD T3
STI T2
AOD T1 ADVANCE SYNTAX
AOD T2
UJN CSY1 LOOP
PAD SPACE 4,10
** DUE TO THE WAY SCREEN ADDRESSES ARE CALCULATED, THE FOLLOWING
* PAD MUST BE HARDCODED. IT SHOULD BE ADJUSTED TO BE AS SMALL
* AS POSSIBLE WHILE ENSURING THE *ERRPL* BELOW DOES NOT FAIL.
BSS 110 AVOID SELF-MODIFYING PRESET CODE
ERRPL .FRHT+1-* *DSD* PRESET PAD NEEDS ADJUSTMENT
DFP SPACE 4,10
** DFP - DISPLAY FROM PPU CHARACTERS.
*
* ENTRY (A) = FUNCTION CODE.
* (T2) = DISPLAY ADDRESS - 1.
*
* USES T2, T3, T4, T5.
*
* MACROS CFNC.
DFP3 FJM *,CH
DCN CH+40
DFP SUBR ENTRY/EXIT
CFNC
LDM 1,T2 SAVE ORIGINAL COORDINATES
STD T3
LDM 2,T2
STD T4
DFP1 LDN 0 SET CHARACTER COUNT
STD T5
DFP2 AOD T2
LDI T2 DISPLAY BYTE
OAN CH+40
ZJN DFP3 IF MESSAGE COMPLETE
AOD T5 ADVANCE CHARACTER COUNT
LMN 25D CHECK FOR 50 CHARACTERS IN LINE
NJN DFP2 IF NOT YET 50 CHARACTERS
LCN 12 ADVANCE Y-COORDINATE
RAD T4
OAN CH+40
LDD T3 OUTPUT X-COORDINATE
OAN CH+40
UJN DFP1 BEGIN NEW LINE
DMR SPACE 4,10
** DMR - DISPLAY MESSAGE REQUESTED.
*
* ENTRY (A) = FIRST MESSAGE ADDRESS - 1.
*
* USES T2, CM - CM+4.
*
* CALLS DFP, RWC.
*
* MACROS CFNC.
DMR SUBR ENTRY/EXIT
STD T2
ZJN DMR1 IF ONLY COPYRIGHT NOTICE TO BE DISPLAYED
LDN DSCL
CRD CM CHECK *MTR* ACTIVE
LDD CM+2
ZJN DMR1 IF INACTIVE
LDC SLMF SELECT LEFT SCREEN - MEDIUM CHARACTERS
RJM DFP DISPLAY MESSAGE
DMRA EQU *-1
* RJM RDT (CYBER 180)
DMR1 LDD LS
NJN DMR2 IF LEFT SCREEN DISPLAY PRESENT
LDC SLSF
CFNC SELECT LEFT SCREEN - SMALL CHARACTERS
LDN COPYL
OAM COPY,CH DISPLAY COPYRIGHT NOTICE
FJM *,CH
DCN CH+40
DMR2 CFNC SRSF SELECT RIGHT SCREEN - SMALL CHARACTERS
LDN COPYL
OAM COPY,CH DISPLAY COPYRIGHT NOTICE
FJM *,CH
DCN CH+40
UJP DMRX RETURN
SPACE 4,10
QUAL COMMAND
EDT EQU /PRESET/DTE
ETM EQU /PRESET/TIM
QUAL *
SPACE 4,10
** COPY - COPYRIGHT BUFFER.
COPY CON CH01,LN06
DATA H*NOW LOADING THE NOS SOFTWARE SYSTEM.*
CON CH01,LN07
*CALL COPYRT
CPRT HERE
COPYL EQU *-COPY MESSAGE LENGTH
DLS SPACE 4,10
** DLS - DISPLAY LOAD STATUS.
DLS SUBR ENTRY/EXIT
LDN 2
STD T7
LDN SVNL READ VERSION
CRM /DSD/DLSG,T7
DFIM (SOD T7)
AOD T7 SET INTENSIFICATION
DLS1 FJM *,CH
DCN CH+40
LDC DTEA-1 SET DATA ADDRESS
DLSA EQU *-1
RJM DMR DISPLAY MESSAGES
DLS2 CFNC SRMF SELECT RIGHT SCREEN - MEDIUM CHARACTERS
DISPLA CH01,LN13,(DEADSTART STATUS.)
LDN FNTP
CRD CM
LDD CM READ SYSTEM FILE FNT
SHN 14
LMD CM+1
ERRNZ SYFO SYSTEM FILE ORDINAL .NE. 0
CRD CM
LDD CM+4 CHECK STATUS
LPN 1
NJN DLS3 IF SYSTEM FILE BUSY
DISPLA CH01,LN19,(COMPLETE)
UJN DLS4 DISPLAY SYSTEM CP MESSAGE
DLS3 LDN 2 OUTPUT COORDINATES
OAM DLSD,CH
LDC CPAS+MS1W DLSPLAY CP 1 MESSAGE
RJM DOL
FJM *,CH
DCN CH+40
CFNC SRSF SELECT RIGHT SCREEN - SMALL CHARACTERS
LDN 2 OUTPUT COODRINATES
OAM DLSE,CH
LDC CPAS+MS2W DISPLAY CP 1 MESSAGE
RJM DOL
DLS4 LDN 2 OUTPUT COORDINATES
OAM DLSH,CH
LDD NC DISPLAY SYSTEM CP MESSAGE
SHN 7
ADN MS2W
RJM DOL
SOD T7
DLSB ZJN DLS6 IF INTENSIFICATION COMPLETE
* PSN WHEN *RECOVERY COMPLETE* STATUS ACCEPTED
NJN DLS5 IF INTENSIFICATION NOT COMPLETE
LJM DLS9 PROCESS INITIAL COMMAND
DLS5 LJM DLS1 LOOP
DLS6 LDM DLSA
ZJN DLS8 IF DATE/TIME ENTRIES PROCESSED
LMC DTEA-1
NJN DLS7 IF DATE PROCESSED
LDN TIML READ TIME
CRD TM
LDN DTEL READ DATE
CRD DT
DLS7 LJM DLSX RETURN
DLS8 STM DLSB ENABLE COMMAND PROCESSING
LDN DSCL
CRD CM SET DATE/TIME ENTERED
STD CM+1
CWD CM STORE DATE/TIME STATUS FOR *REC*
* RESTORE SYNTAX.
LDC DTEB
DLSC EQU *-1
RJM CSY
* CLEAR OVERLAY INDICATORS.
* LDN 0
STM .FCOM+1-5
STM .FLFT+1
STM .FRHT+1
LDC /KEYBOARD/KCR RESTORE *CR* PROCESSOR
STM /KEYBOARD/TSCEB
LDC /KEYBOARD/KRB RESTORE *RIGHT BLANK* KEY
STM /KEYBOARD/TSCEA
DRS UJN DLS9 PROCESS INITIAL COMMAND
* ENABLE RIGHT SCREEN AND *1DS* PROCESSING.
LDC LOV ENABLE RIGHT SCREEN OVERLAY LOAD
STM /DSD/LDOA
LDC * ENABLE *1DS* CALLS
ORG *-1
LOC /KEYBOARD/C1DA
ZJN /KEYBOARD/C1D2 IF BUFFER INTERLOCK NOT NEEDED
LOC *O
STM /KEYBOARD/C1DA
UJN DLS13 ENTER INCOMPLETE *CR*
* ENTER INITIAL COMMAND.
DLS9 LDD KE
NJN DLS14 IF PRESET ENTRY MADE
STM /KEYBOARD/KBIA CLEAR SYNTAX SKIP FLAG
LDC DLSF SET COMMAND ADDRESS
STD T1
LDI T1
NJN DLS10 IF COMMAND NOT COMPLETE
AOD T1 SET DISPLAY ENTRY
LDI T1
ZJN DLS14 IF DISPLAYS SET
DLS10 STD T2 SET CHARACTER ADDRESS
LDI T2 ENTER CHARACTER
STD KE
ZJN DLS12 IF END OF CHARACTER STRING
LMN 1R
NJN DLS11 IF NOT * *
LDN 62 ENTER *SPACE*
STD KE
DLS11 AOI T1 ADVANCE CHARACTER STRING
UJN DLS14 RETURN
DLS12 STI T1 CLEAR CHARACTER STRING POINTER
DLS13 LDN 63 ENTER INCOMPLETE *CR*
STD KE
DLS14 LJM DLSX RETURN
DLSD CON CH01,LN19
DLSE CON CH01,LN24
DLSF CON 0,DLSG
DLSG CON ILSP
CON IRSP
CON 1R.
CON 0
DLSH CON CH01,LN26
SPACE 4,10
** TIKB - INITIAL KEYBOARD BUFFER IMAGE.
TIKB BSS 0
SPACE 4,10
** DUMP INSTRUCTION MODIFICATION BLOCK.
DIMB
IFLT *-TIKB,KBUFL+2,1
BSS KBUFL+2-*+TIKB
SPACE 4,10
DIS HERE
ERRNG 7772-* IF OVERFLOW FROM D/S TAPE
QUAL *
TITLE DISPLAY OVERLAY MACROS.
DISPLAY SPACE 4,25
*** DISPLAY - BEGIN DISPLAY OVERLAY.
*
* DISPLAY GENERATES THE LINKAGE CONSTANTS FOR DISPLAY OVERLAYS.
*
* DISPLAY (SUBTITLE),PAGE,C
*
* ENTRY (SUBTITLE) = TEXT OF SUBTITLE.
* PAGE = ADDRESS OF PAGING ROUTINE.
* IF NULL, *KBIX* IS USED.
* C = CMR - FORCE OVERLAY TO BE CM RESIDENT.
* = RPL - FORCE OVERLAY TO BEGINNING OF RPL.
* EXIT (M.) = 2 CHARACTER MICRO FOR OVERLAY NAME.
*
* NOTE ALL DISPLAY OVERLAYS HAVE THE FOLLOWING FORMAT.
* WORDS 0-4 DISK LINKAGE BYTES.
* WORD 5 RELOCATION TABLE POINTER.
* WORDS 6-7 *LJM* TO PAGING CODE.
* *LJM* TO *KBIX* IF NO PAGING IMPLEMENTED.
* WORDS 10-11 *SUBR* ENTRY POINT OF OVERLAY.
*
* WORDS 2-5 MAY BE USED AS SCRATCH AREAS BY THE
* OVERLAY. FOR EXAMPLE, STM 5,LA LDM 3,LA.
** DEFINE OVERLAY ENTRY POINT SYMBOLS.
QUAL
DOEP EQU 11 DISPLAY OVERLAY ENTRY POINT
DOPG EQU 6 DISPLAY OVERLAY PAGING ENTRY POINT
QUAL *
DISPLAY MACRO SUBTITLE,PAGE,C
.B IFC EQ,/C//
OVLN
.B ENDIF
.B IFC EQ,/C/CMR/
OVLC
.B ENDIF
.B IFC EQ,/C/RPL/
OVLF
.B ENDIF
TTL DSD/9"N." - SUBTITLE
TITLE
IDENT 9"M.",5 SUBTITLE
*COMMENT DSD - SUBTITLE
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
ORG 5
L.D MAX L.D,L.
QUAL DSD"M."
RLO$ CON .REL
.B IFC NE,/PAGE// IF PAGING ROUTINE DEFINED
LJM PAGE EXECUTE PAGING ROUTINE
.B ELSE
LJM. /KEYBOARD/KBIX EXIT
.B ENDIF
ENDM
DSPEND SPACE 4,15
*** DSPEND - END DISPLAY OVERLAY.
*
* DSPEND TERMINATES A DISPLAY OVERLAY, AND CHECKS FOR OVERFLOW.
*
* THE INSTRUCTION RELOCATION TABLE MUST BE ASSEMBLED FIRST SO
* THAT IT CAN BE OVERLAYED AFTER THE DISPLAY IS LOADED.
*
* DSPEND EOD
*
* ENTRY EOD = INDICATES END OF DISPLAY OVERLAYS, IF NOT NULL.
*
* EXIT (L.NAME) = LENGTH OF OVERLAY (*NAME* IS OVERLAY NAME).
* (L.D) = LENGTH OF LONGEST DISPLAY OVERLAY SO FAR.
* (.REL) = INSRUCTION RELOCATION TABLE FWA.
* (.RELE) = INSTRUCTION RELOCATION TABLE LWA+1.
DSPEND MACRO E
.REL BSS 0
REL HERE INSTRUCTION RELOCATION TABLE
CON 0
.EREL BSS 0 END OF RELOCATION TABLE
HERE
DIS HERE
QUAL
USE END FORCE /LITERALS*/
BSS 0
.A IFPL M. IF NOT *TEXT* OVERLAY
L. SET *
QUAL LENGTH
LIST M
L.9"M." EQU * LENGTH OF OVERLAY
ERRNG .LDIS-L.9"M." BYTES UNTIL LONGEST DISPLAY OVERLAY
ERRNG .LDMX-.INSP-L.9"M." BYTES UNTIL MAXIMUM OVERLAY SIZE
LIST *
QUAL *
.A ENDIF
.B IFC NE,/E// IF END OF DISPLAY OVERLAYS
L.D SET L.D+4
L.D SET L.D/5*5
ERRNG L.D-L. *L.D* IS WRONG WHEN LARGEST OVL IS LAST
L. SET 0
.B ENDIF
ENDM
MACROS SPACE 4,10
** RELM - REDEFINE -M- INSTRUCTIONS FOR RELOCATABLE CODE.
*
*
* RELM OPC
* DEFINE -M- TYPE INSTRUCTION *OPC* TO BE RELOCATABLE.
* FIRST TERM OF -M- PORTION MUST NOT BE RELOCATABLE OR NUMERIC
* IF THE INSTRUCTION IS NOT TO BE RELOCATED.
RELM MACRO OPC
OPC. OPSYN OPC
OPC= MACRO M,D
LOCAL A
IF DEF,//M,2
OPC. M,D
.1 SKIP
IFEQ D,0,2
OPC. M,LA
.1 SKIP
OPC. M,D
A EQU *-1
REL RMT
CON A
REL RMT
ENDIF
OPC= ENDM
OPC OPSYN OPC=
RELM ENDM
RELM LJM
RELM RJM
RELM LDM
RELM ADM
RELM SBM
RELM LMM
RELM STM
RELM RAM
RELM AOM
RELM SOM
RELO SPACE 4,10
** RELO - REDEFINE I/O INSTRUCTIONS FOR RELOCATABLE CODE.
*
*
* RELO OPC
* DEFINE -I/O- TYPE INSTRUCTION *OPC* TO BE RELOCATABLE.
* FIRST TERM OF -M- PORTION MUST NOT BE RELOCATABLE OR NUMERIC
* IF THE INSTRUCTION IS NOT TO BE RELOCATED.
RELO MACRO OPC
OPC. OPSYN OPC
OPC= MACRO M,D
LOCAL A
IF DEF,//M,2
OPC. M,D
.1 SKIP
OPC. M,D
A EQU *-1
REL RMT
CON A
REL RMT
ENDIF
OPC= ENDM
OPC OPSYN OPC=
RELO ENDM
RELO CRM
RELO CWM
RELO IJM
RELO AJM
RELO EJM
RELO FJM
RELO IAM
RELO OAM
RELO SCF
RELO CCF
RELC SPACE 4,10
** RELC - DEFINE RELOCATABLE FORM FOR -C- TYPE INSTRUCTIONS.
*
*
* RELC OPC
* DEFINE -C- TYPE INSTRUCTION TO BE RELOCATABLE.
* RELOCATABLE FORM IS -
* OPC. C
RELC MACRO OPC
OPC. MACRO C
LOCAL A
OPC C
A EQU *-1
REL RMT
CON A
REL RMT
ENDM
RELC LDC
RELC ADC
RELC LPC
RELC LMC
DISPLAY (DISPLAY A - DAYFILE MESSAGES.),SSR
ENTRY DSA,DSA
DSA SPACE 4,10
*** *A* DISPLAY.
*
* DISPLAY ACCUMULATED DAYFILE MESSAGES FOR SYSTEM DAYFILE.
* DISPLAY ACCOUNT FILE.
* DISPLAY ERROR LOG.
*
* ENTRY (ADSC) = 0, IF SYSTEM DAYFILE.
* = 1, IF JOB DAYFILE.
* = (NC), IF ACCOUNT FILE.
* = (NC)+1, IF ERROR LOG.
DIRECT SPACE 4,10
** DIRECT CELL ASSIGNMENTS.
CT EQU SH CONSOLE TYPE
LL EQU SH+1 LAST LINE
DSA SPACE 4,10
DSA SUBR ENTRY/EXIT
LDM. CMEI
ZJN DSA1 IF CME NOT PRESENT
STM DSAB FORCE READ OF FLSW+1
LDN PSNI DISABLE NON-CME CHECK
STM DSAE
LDM DSAJ ENABLE CME CHECK
STM DSAC
DSA1 LDN DFPP READ DAYFILE BUFFER POINTER
CRD CM
LDM DCTY DETERMINE LAST LINE OF DISPLAY
STD CT SET CONSOLE TYPE
ZJN DSA1.1 IF CONSOLE TYPE IS *CC545*
LCN YINC
DSA1.1 ADM CBOS
STD LL SET LAST LINE
LDM DSAF
NJN DSA1.2 IF NOT NEW OVERLAY LOAD
LDM CTOS SET FIRST LINE Y-COORDINATE
STM DSAF
DSA1.2 LDM. ADSC
STD CN
SBN 1
NJN DSA2 IF NOT JOB DAYFILE
LDM. /DSD/TJAA+1 CHECK FOR JSN = *SYS*
LMC 2RSY
NJN DSA1.3 IF NOT *SYS*
LDM. /DSD/TJAA+2
LMC 2RS
ZJN DSA1.4 IF *SYS*
DSA1.3 DISPHD (A. JOB DAYFILE.),/DSD/TJAA+1
LDC /DSD/TJAA+1 GET JSN
RJM SJS
MJP DSAX IF EJT ENTRY ROLLED OUT OR NOT FOUND
LDD CP GET CP NUMBER
DSAB ADN FLSW GET RA
* ADN FLSW+1 (CME PRESENT)
CRD T7
SHN -7
DSA1.4 STD CN SET CP NUMBER
DSA2 LDD CN CHECK IF SAME DAYFILE AS BEFORE
LMC 0
DSAA EQU *-1
ZJN DSA3 IF DISPLAY NOT TOGGLED
STM DSAG SET ROLL NOT NEEDED
LCN 0 INITIALIZE MAXIMUM LINE NUMBER
STM ADSC+1
DSA3 LDK ZERL ASSUME SYSTEM DAYFILE
CRD T2 CLEAR DATA DISPLAYED, SPECIAL DAYFILE FLAG
LDD CN CHECK DAYFILE TYPE
STM DSAA
ZJN DSA5 IF SYSTEM DAYFILE
SBD NC
PJN DSA6 IF ACCOUNT DAYFILE OR ERROR LOG
* GET JOB DAYFILE BUFFER POINTERS.
LDD T7
DSAE ZJN DSA4 IF NO JOB AT CP
* PSN (CME PRESENT)
LRD T7+1
LDD T7+3 READ BUFFER POINTERS
SHN 6
SBN DAPN
CRD AB
ADN 1
CRD SR
ADN 1
CRD CM
ADC 1-DAYN SET JOB DAYFILE BUFFER ADDRESS
DSAC PSN
* PJN DSA4 (CME PRESENT)
STD AB+1
SHN -14
STD AB
LDD SR+2
LMK JDBL
NJN DSA4 IF BAD *LIMIT* FIELD
RJM SDF SET DAYFILE FWA
LJM DSA11 DISPLAY DAYFILE BUFFER
DSA4 LJM DSAX EXIT
* GET SPECIAL DAYFILE BUFFER POINTERS.
DSA5 ZJN DSA7 IF SYSTEM DAYFILE
DSA6 ADN 1 SET ROLL CONTROL
STD T5 (T5) = 0, 1, OR 2
SHN 3 SELECT MESSAGE
STD T2 (T2) = 0, 8, OR 16
SHN -2
ADD T5 (A) = 0, 3, OR 6
SHN 6
DSA7 ADD CM SET FWA OF DAYFILE POINTERS
SHN 14
ADD CM+1
CRD AB
ADN 1
CRD SR
ADN 1 READ FILE STATUS
CRD CM
DISPHD (A. ) DISPLAY HEADER
LDC. DSAI SET REST OF HEADER MESSAGE
ADD T2
STM DSAD
STD T3 SET SPECIAL DAYFILE FLAG
LDN DSAIL DISPLAY REST OF HEADER
OAM DSAI,CH
DSAD EQU *-1
RJM SDF SET DAYFILE FWA
NJN DSA10 IF THE CONSOLE IS NOT A *CC545*
LDM SSRA
ZJN DSA8 IF ROLLING IS NOT INHIBITED
SOM SSRA TIME OUT THE INHIBITION
* SET CURRENT DISPLAY STATUS TO FOLLOW BUFFER.
DSA8 LDM TDSA,T5 CHECK FOR DISPLAY RESET REQUEST
ADC 770000
NJN DSA9 IF NOT RESET
LDD YC RESET Y-COORDINATE
STM DSAF
STM DSAG ROLL NOT NEEDED
LDD T7 NEW INDEX = *OUT*
STM TDSA,T5
DSA9 STD T7
LDM DSAF SET Y-COORDINATE
STD YC
LMM CTOS
ZJN DSA11 IF UPPER LIMIT
AOM DSAF ADVANCE INITIAL Y-COORDINATE
DSA10 STM DSAG SET ROLL NOT NEEDED
* DISPLAY BUFFER.
DSA11 LDN 2 OUTPUT COORDINATES
OAM XC,CH
DSA12 LDN 6 SET WORD COUNT PER LINE
STD T4
DSA13 SOD T4
PJN DSA14 IF NOT EDGE OF SCREEN
LJM DSA22 PROCESS EDGE OF SCREEN
DSA14 LDD AB READ WORD
LPN 77
SHN 14
ADD AB+1
ADD T7
CRD CM
RJM DWD DISPLAY WORD
AOD T7 *OUT* = *OUT* + 1
LMD SR+2
NJN DSA15 IF *OUT* .NE. *LIMIT*
STD T7 *OUT* = *FIRST*
DSA15 LDD T7
LMD AB+4
NJN DSA16 IF *OUT* .NE. *IN*
LDD YC
SBM ADSC+1
PJN DSA15.1 IF NOT NEW MAXIMUM
RAM ADSC+1 SET NEW MAXIMUM
LDN 0 SET SCREEN FULL
DSA15.1 SHN -6
STM ADSC+2 SET SCREEN FULL FLAG
UJN DSA19 RETURN
DSA16 LDD CM+4
NJN DSA13 IF NOT END OF LINE
LDC 1
DSAG EQU *-1 (ROLL NOT NEEDED)
NJN DSA17 IF ROLL NOT NEEDED
LDD T7 SET INDEX = *OUT*
STM TDSA,T5
LCN YINC DECREASE INITIAL Y-COORDINATE
RAM DSAF
STM DSAG SET ROLL NOT NEEDED
DSA17 LDD T4
LMN 5
ADD CM
ZJN DSA20 IF NULL LINE
STD T6 SET DATA DISPLAYED FLAG
LCN YINC
RAD YC DECREMENT Y-COORDINATE
SBD LL
PJN DSA21 IF NOT BOTTOM OF SCREEN
DSA18 LDM SSRA START ROLLING UNLESS INHIBITED BY OPERATOR
STM DSAG
DSA19 LJM DSAX RETURN
DSA20 LDD T3
ZJN DSA21 IF JOB DAYFILE
LDD T6
NJN DSA21 IF DATA DISPLAYED
LDD T7 UPDATE *OUT* FOR NULL LINE
STM TDSA,T5
DSA21 LJM DSA11 PROCESS NEXT LINE
DSA22 AOD T6 SET DATA DISPLAYED FLAG
LDK XINC*10D ADJUST X-COORDINATE FOR SECOND LINE
STD T2
LDD T3
ZJN DSA23 IF JOB DAYFILE
LDD T2 POSITION FOR SPECIAL DAYFILE
DSA23 ADD T2 POSITION FOR NORMAL DAYFILE
ADC CH01
OAN CH+40
LCN YINC
RAD YC
OAN CH+40
SBD LL
MJN DSA18 IF BOTTOM OF SCREEN
LJM DSA12 FINISH CURRENT LINE
DSAF CON 0 CURRENT FIRST LINE Y-COORD WHEN SCROLLING
DSAI BSS 0
DATA H*SYSTEM DAYFILE. *
DSAIL EQU *-DSAI
DATA H*ACCOUNT DAYFILE.*
ERRNZ *-DSAI-2*DSAIL
DATA H*ERROR LOG. *
ERRNZ *-DSAI-3*DSAIL
DSAJ BSS 0
LOC DSAC
PJN DSA4 IF ADDRESS NOT IN NFL
LOC *O
SDF SPACE 4,25
** SDF - SET DISPLAY FWA.
*
* ENTRY (AB - AB+4) = FIRST WORD OF DAYFILE BUFFER POINTERS.
* (SR - SR+4) = SECOND WORD OF DAYFILE BUFFER POINTERS.
* (CM - CM+4) = THIRD WORD OF DAYFILE BUFFER POINTERS.
* (T5) = DAYFILE INDEX.
*
* EXIT (A) = 0, IF THE CONSOLE IS A *CC545*.
* (T7) = POINTER WITHIN BUFFER TO FIRST LINE OF DISPLAY.
* (YC) = (*CTOS*).
* TO *DSAX* IF NO DATA IN BUFFER, OR IF *IN* OR *OUT*
* ARE GREATER THAN OR EQUAL TO *LIMIT*.
*
* USES AB+2, 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*.
* (SR+2) = *LIMIT*.
* (SR+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 T7
SBD SR+2
PJN SDF0 IF *IN* .GE. *LIMIT*
LDD SR+4
SBD SR+2
PJN SDF0 IF *OUT* .GE. *LIMIT*
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 SR+4 START DISPLAY AT *OUT*
STD T7
LMD AB+4
NJN SDF1 IF *OUT* .NE. *IN*
SDF0 LJM DSAX EXIT
SDF1 LDM CTOS SET Y-COORDINATE
STD YC
STD T9 INITIALIZE LINE COUNTER
LDD CT GET CONSOLE TYPE
ADM ADSC+2 GET SCREEN FULL FLAG
ZJN SDFX IF CONSOLE IS A *CC545* AND SCREEN IS FULL
LDD T7
STD T4 (T4) = FIRST POSSIBLE START OF DISPLAY
LDD AB+4
STD T7 INITIALIZE POINTER TO *IN*
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 SR+2 POINTER = *LIMIT* - 1
STD T7
SDF3 SBD T4
NJN SDF3.1 IF NOT BACK TO START OF DISPLAY
LJM SDF8 RETURN
SDF3.1 LDD AB READ WORD FROM BUFFER
SHN 14
ADD 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
SBD LL
ADN YINC
ZJN SDF7 IF EXACTLY AT THE BOTTOM OF SCREEN
PJN SDF4 IF NOT AT BOTTOM OF SCREEN YET
LDD T8 GO BACK TO THE NEXT LINE
SBD AB+2 SKIP PAST NULL WORD IF NECESSARY
SDF7 ADN 1
RAD T7
SBD SR+2
MJN SDF8 IF POINTER .LT. *LIMIT*
STD T7
SDF8 LCN 0 SET RESET REQUEST FLAG
STM TDSA,T5
LDD CT GET CONSOLE TYPE
LJM SDFX RETURN
SSR SPACE 4,10
** SSR - SELECT SCREEN ROLLING.
*
* ENTRY (T2) = 0, IF ENABLE ROLLING.
* = 1, IF INHIBIT ROLLING.
SSR LDM DCTY,T2 GET APPROPRIATE ZERO/NONZERO VALUE
ERRNZ C545 A ZERO VALUE IS REQUIRED TO ENABLE ROLLING
ERRZR C721 CC634B CAN NOT BE ROLLED
ERRNZ DCTY+1-DLYA CODE ASSUMES THE RELATIONSHIP
STM SSRA
LJM. /KEYBOARD/KBIX RETURN
SSRA CON C545 INHIBIT ROLLING FLAG
SPACE 4,10
DSPEND
DISPLAY (DISPLAY OVERLAY MESSAGE TEXT.),,RPL
MSG SPACE 4,10
** THIS OVERLAY CONTAINS TEXT THAT CAN BE ACCESSED FROM THE RPL
* BY DISPLAY OVERLAYS. IT IS NEVER LOADED BY *DSD* AND MUST BE
* THE FIRST ENTRY IN THE RPL.
MSG SPACE 4,10
** MSG - DEFINE *A,O* DISPLAY EVENT DESCRIPTOR MESSAGE.
*
* MSG (TEXT)
* TEXT = TEXT OF MESSAGE.
PURGMAC MSG
MSG MACRO TEXT
LOCAL A,B
A SET *+4
B SET A/5
BSSZ B*5-A+4
MSG RMT
CON /DSD".AMSGOVL"/B TEXT
MSG RMT
DATA C*TEXT*
MSG ENDM
EEMSG SPACE 4,10
** EEMSG - DEFINE *E,E* DISPLAY MESSAGE.
*
* EEMSG (TEXT)
* TEXT = TEXT OF MESSAGE.
PURGMAC EEMSG
MACRO EEMSG,NAME,TEXT
LOCAL A,B
A SET *+4
B SET A/5
BSSZ B*5-A+4
DATA C*TEXT*
QUAL EEMSG
NAME EQU /DSD".AMSGOVL"/B
QUAL *
EEMSG ENDM
SPACE 4,10
PMSG SPACE 4,10
** PMSG - DEFINE *E,P* DISPLAY MESSAGE AND ERROR MNEMONIC.
*
* NAME PMSG CODE,TEXT,MNEM
* NAME = NAME OF TEXT.
* CODE = *COMSRSX* PREVIEW DISPLAY MESSAGE CODE.
* TEXT = MESSAGE TEXT.
* MNEM = ERROR MNEMONIC.
PURGMAC PMSG
MACRO PMSG,A,B,C,D
IFC NE,$A$$
.1 SET *+4
.2 SET .1/5
BSSZ .2*5-.1+4
A EQU */5
.3 SET *
ELSE 5
ORG .3+B*5*3
IFC NE,$C$$,3
LOC B*5*3
DATA 28L_C
DATA 2L_D
BSS 0
ENDM
.AMSGOVL MICRO 1,, "M."
TFTN SPACE 4,10
** TFTN - TABLE OF MONITOR FUNCTIONS.
*
* THE TABLE IS FORCED TO BEGIN ON A CM WORD BOUNDARY. EACH
* WORD CONTAINS TWO CONSECUTIVE MNEMONICS IN ONE WORD.
*
* ENTRY 24/ EVEN MNEMONIC,24/ ODD MNEMONIC, 12/
.1 SET *+4 FORCE THE TABLE TO A WORD BOUNDARY
.2 SET .1/5
BSSZ .2*5-.1+4
QUAL DISPLAY
TFTN EQU */5 WORD OFFSET WITHIN THE TEXT OVERLAY
QUAL *
TXT$ EQU 1 FORCE 2 MNEMONICS PER CM WORD
LIST X,D
*CALL COMDTFN
LIST *
SPACE 4,10
** A,OPERATOR EVENT DESCRIPTOR MESSAGES.
MSG (FAMILY ORDINAL TABLE FULL)
MSG (SYSTEM FNT FULL)
MSG (QUEUED FILE TABLE FULL)
MSG (EXECUTING JOB TABLE FULL)
MSG (DAYFILE LENGTH EXCEEDED)
MSG (ERROR LOG LENGTH EXCEEDED)
MSG (ACCOUNT FILE LENGTH EXCEEDED)
MSG (MAINLOG LENGTH EXCEEDED)
MSG (TRACK LIMIT)
MSG (USER EXTENDED MEMORY DISABLED)
MSG (CHANNEL DOWNED BY SYSTEM)
MSG (ERRLOG ALERT)
MSG (LOW SPACE ON MASS STORAGE DEVICE)
MSG (CHECK TMSDIS,FAM.)
MSG (CHECK E,E DISPLAY)
SPACE 4,10
** E,E DISPLAY MESSAGES.
ERCM EEMSG (ERROR CODE = )
ACRM EEMSG (ACTIVITY RESTRICTED.)
SUSM EEMSG (SUSPECT.)
PPLM EEMSG (PARITY PROTECTION LOST. UNIT = )
PPRM EEMSG (PARITY RESTORE IN PROGRESS. RC = )
PRPM EEMSG (PARITY RESTORE PENDING.)
ERPM EEMSG (ERROR RECOVERY IN PROGRESS.)
COTM EEMSG (CONTROLLER OVERTEMP.)
LWSM EEMSG (LOW SPACE.)
VFTM EEMSG (VERIFICATION FAILURE THRESHOLD.)
RETM EEMSG (RECOVERED ERROR THRESHOLD.)
UETM EEMSG (UNRECOVERED ERROR THRESHOLD.)
SPACE 4,10
** E,P DISPLAY MESSAGES AND ERROR MNEMONICS.
PDMS PMSG
PMSG 0,( ),( )
PMSG /RSX/OFF,(REQUIRED EQUIPMENT OFF/DOWN ),EO
PMSG /RSX/NWE,(NEEDS WRITE ENABLE ),WE
PMSG /RSX/NLB,(NEEDS LABEL ),LB
PMSG /RSX/CAD,(ACCESS NOT PERMITTED ),NP
PMSG /RSX/WVS,(WRONG VSN ),VS
PMSG /RSX/NLG,(NEEDS LABEL GO,EST TO LABEL),LB
PMSG /RSX/CAG,(NO PERMIT GO,EST TO LABEL),NP
PMSG /RSX/WVG,(WRONG VSN GO,EST TO LABEL),VS
PMSG /RSX/TCF,(TAPE CLEANER FAULT ),CF
PMSG /RSX/BFR,(READ ID BURST FAILURE ),RB
PMSG /RSX/BFW,(WRITE ID BURST FAILURE ),WB
PMSG /RSX/VOS,(VSN STORED OFFSITE ),OS
PMSG /RSX/NAC,(VOLUME NOT IN ACS ),NA
PMSG /RSX/UOL,(UNREADABLE OPTICAL LABEL ),OL
PMSG /RSX/NTV,(NEXTVSN,EST,VSN TO CONTINUE),NV
PMSG /RSX/ALC,(ACCESS LEVEL CONFLICT ),LC
PMSG /RSX/DRC,(DRIVE TYPE CONFLICT ),DC
PMSG /RSX/MXPM
SPACE 4,10
DSPEND
DISPLAY (DISPLAY A - OPERATOR STATUS.)
ENTRY DOD,DOD
DOD SPACE 4,10
*** *A,OPERATOR* DISPLAY.
*
*
* DISPLAY SYSTEM STATUS WORD *OPRL*.
DOD SUBR ENTRY/EXIT
DISPHD (A. OPERATOR DISPLAY.)
* LDN 0
STD T5 CLEAR EVENT FLAG
STD T6 CLEAR EVENT BIT NUMBER
STD CM+4
LDM CTOS SET Y-COORDINATE
STD YC
LDC RPLP GET MESSAGE TEXT OVERLAY ADDRESS
CRD AB
LDC OPRL
CRD SH
LDN 4
STD T8
DOD2 LDM SH,T8
LPN 1
ZJN DOD4 IF NOT THIS MESSAGE
LDD T5
NJN DOD3 IF HEADER ALREADY WRITTEN
LDN 2
OAM XC,CH OUTPUT COORDINATES
LDN DODCL
OAM DODC,CH OUTPUT HEADER
LCN 2*YINC SKIP A LINE
RAD YC
STD T5 SET EVENT FLAG
DOD3 LDN 2
OAM XC,CH
LDD T6
RJM D4S DISPLAY EVENT BIT NUMBER
LDD AB DISPLAY MESSAGE
SHN 14
ADD AB+1
ADM DODD,T6
RJM DOL
LCN YINC DECREMENT Y-COORDINATE
RAD YC
DOD4 AOD T6 INCREMENT EVENT BIT NUMBER
SBN DODDL
PJN DOD7 IF END OF OPERATOR EVENTS
ADN DODDL-14
ZJN DOD5 IF NEW BYTE
LDM SH,T8 POSITION TO NEXT EVENT
SHN -1
STM SH,T8
UJN DOD6 CHECK NEXT EVENT
DOD5 SOD T8
DOD6 LJM DOD2 CHECK NEXT EVENT
DOD7 LDD T5
ZJN DOD8 IF NO EVENT MESSAGES DISPLAYED
LCN 2*YINC DISPLAY RESPONSE LINE
RAD YC
ADN 2*YINC
OAN CH+40
DISPLA CH07,,(ENTER *LOG,NUMBER.* WHEN PROBLEM HAS BEEN CORREC
,TED.)
* PROCESS *RDF*/*OPMSG* MESSAGE.
DOD8 LDC LDSP FIND OPERATOR DISPLAY BUFFER
CRD SR
LDD SR+2
SHN 14
LMD SR+3
SBN LODS
CRD T5
LDD T5+1
ZJN DOD10 IF NO MESSAGE
LDN 2 OUTPUT COORDINATES
OAM XC,CH
LDD T5+2
ZJN DOD9 IF NO *RTN*
LDC 3RFRD&3RNJS
DOD9 LMC 3RNJS
STD T2
SHN -6
SCN 77
STD T3
LDC 2R=
STD T4
LDN 5
OAM T2,CH DISPLAY *XXX = JSNA*
LDC 2R -
OAN CH+40 DISPLAY * - *
RJM DMS DISPLAY THE MESSAGE
LCN YINC UPDATE THE Y-COORDINATE
RAD YC
OAN CH+40
LDN DODEL
DOD10 ZJN DOD12 IF NO MESSAGE
OAM DODE,CH DISPLAY THE RESPONSE MESSAGE
LDD T5+2 SELECT THE VARIABLE PART OF THE RESPONSE
ZJN DOD11 IF NOT *RDF*
LDN DODG-DODF
DOD11 ADC. DODF
STM DODA
LDN 3
OAM. **,CH OUTPUT THE VARIABLE PART OF THE RESPONSE
DODA EQU *-1 ADDRESS OF -*DIAL,- OR - *CFO,-
DOD12 LJM DODX RETURN
DODC DATA H*NUMBER* OPERATOR EVENT HEADER
CON CH12
DATA H*MESSAGE TEXT*
DODCL EQU *-DODC
DODD BSS 0
LOC 0
LIST G
MSG HERE
LIST *
DODDL EQU *
LOC *O
DODE CON CH07 RESPONSE MESSAGE
DATA H$ENTER$
CON CH19
DATA H$JSN.MESSAGE.* TO RESPOND.$
CON CH13
DODEL EQU *-DODE
DODF DATA 6H *CFO,
DODG DATA 6H*DIAL,
DMS SPACE 4,10
** DMS - DISPLAY THE MESSAGE.
*
* ENTRY (SR+2 - SR+3) = FWA OF *L* DISPLAY BUFFER.
*
* USES T5, T6, CM - CM+4.
*
* CALLS DWD.
DMS SUBR ENTRY/EXIT
LDN LODS-1 FIND FWA OF MESSAGE
STD T6
DMS1 LDN 4 SET WORD COUNT PER LINE = 5
STD T5
LDC CH14 SET X-COORDINATE
OAN CH+40
DMS2 LDD SR+2 DISPLAY NEXT WORD
SHN 14
ADD SR+3
SBD T6
CRD CM
RJM DWD DISPLAY WORD
SOD T6 UPDATE INDEX
ZJN DMSX IF END OF BUFFER
LDD CM+4
ZJN DMSX IF END OF LINE
SOD T5
PJN DMS2 IF NOT EDGE OF SCREEN
LCN YINC MOVE DOWN ONE LINE
RAD YC
OAN CH+40
UJN DMS1 FINISH CURRENT LINE
SPACE 4,10
DSPEND
DISPLAY (DISPLAY B - SYSTEM STATUS.),PBD
ENTRY DSB,DSB
DSB SPACE 4,10
*** *B* DISPLAY.
*
* DISPLAY SYSTEM STATUS BY CONTROL POINTS.
*
* *B,A* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* CP JSN SC PR FL CPU STATUS
*
* 14 JSNN S 130 1234 X (MS2W, IF NOT BLANK, OR MS1W.)
* 15 (UNUSED CONTROL POINT WILL APPEAR AS A BLANK LINE.)
*
* UPON PRESSING THE *=* KEY (IF DISPLAY IS ON THE RIGHT SCREEN) OR
* THE */* KEY (IF ON THE LEFT), THE *B,A* DISPLAY TOGGLES TO -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* CP JSN EJT SCPR FLE SS STATUS
*
* 14 JSNN 122 4413 1234 ISLM (MS2W, IF NOT BLANK, OR MS1W.)
* 15 (UNUSED CONTROL POINT WILL APPEAR AS A BLANK LINE.)
*
* SPECIAL FLAGS -
* COLUMN 30 = I, IF SUBSYSTEM IDLE SET.
* COLUMN 31 = S, IF SUBCONTROL POINTS ACTIVE.
* COLUMN 32 = L, IF JOB HAS FORCED ROLLIN SET (LOCK).
* COLUMN 32 = R, IF ROLLOUT REQUESTED (OVERRIDES L).
* COLUMN 33 = M, IF CONTROL POINT STORAGE MOVING.
*
* *B,O* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* CP JSN STATUS
*
* 14 JSNN (MS2W MESSAGE, IF NOT BLANK, OR MS1W MESSAGE.)
* 15 (UNUSED CONTROL POINT WILL APPEAR AS A BLANK LINE.)
*
DSB SUBR PRESET ENTRY/EXIT
LDD TH PRESET SHIFT INSTRUCTION
ERRNZ SHNI-1000
ADM UESC
STM DSBJ
LDM TDSB GET DEFAULT DISPLAY TYPE
STM DSBA
SOM DSB UPDATE *RJM* ADDRESS IN *DSD-S* MAIN LOOP
STD T1
LDN DSB1-DOEP
RAI T1
LJM. -1,T1 RETURN AND RE-ENTER AT *DSB1*
DSB1 SUBR MAIN ENTRY/EXIT
DISPHD (B,) DISPLAY SCREEN TITLE
LDC 1RA&1RA CHECK DISPLAY TYPE
* LDC 1RO&1RA (*B,O* DISPLAY TYPE)
DSBA EQU *-1
STD T8
SHN 6
LMC 2RA.
OAN CH+40
DISPLA ,,( SYSTEM STATUS.)
* LDN 0 GET CPU CONDITION BITS FROM LOCATION 0
CRD CM
LDD CM
ADD CM+1
ADD CM+2
ZJN DSB2 IF NONE SET
* ISSUE *CPUMTR ERROR EXIT.* MESSAGE.
LDD NC DISPLAY MESSAGE
SHN 7
ADN MS2W
CWM DSBC,TR *CPUMTR ERROR EXIT.*
* DETERMINE START OF PAGE.
DSB2 LDD LA CHECK WHICH DISPLAY THE OVERLAY IS DRIVING
ADC -.FLFT
SHN -10B
ERRNG .FRHT-.FLFT-400B ENSURE DIFFERENCE IS IN RANGE
ERRNG .FLFT-.FRHT+777B
STD T1
ZJN DSB3 IF *B* IS NOT ON THE RIGHT SCREEN
LDD LS
LMN 1RB
NJN DSB3 IF *B* IS NOT ALSO ON THE LEFT SCREEN
LDM. .FLFT+DSBA
LMM. .FRHT+DSBA
NJN DSB3 IF DIFFERENT TYPE OF *B* DISPLAY
LDM TGTF
LMM TGTF+1
NJN DSB3 IF DIFFERENT TOGGLE STATUS
LDM. .FLFT+DSBH+1 GET NEXT CONTROL POINT NUMBER FROM LEFT
STM DSBH
DSB3 LDM TGTF,T1 SET TOGGLE STATUS
STD T9
LDM DSBH GET FIRST CONTROL POINT FOR THIS PAGE
STD CN
LDM CTOS INITIALIZE THE Y-COORDINATE
STD YC
OAN CH+40
* DISPLAY THE APPROPRIATE HEADER.
LDN DSBDL
OAM DSBD,CH DISPLAY PART 1 OF THE HEADER
LDD T8
NJN DSB5 IF *B,O* DISPLAY
LDD T9
ZJN DSB4 IF SET ONE
LDC DSBFL*10000+DSBF-DSBEL*10000-DSBE
DSB4 ADC. DSBEL*10000+DSBE
STM DSBB
SHN -14
OAM. DSBE,CH DISPLAY SET ONE
* OAM. DSBF,CH DISPLAY SET TWO
DSBB EQU *-1
DSB5 LDN DSBGL DISPLAY *STATUS*
OAM DSBG,CH
LCN 2*YINC POSITION DOWN TWO LINES
RAD YC
OAN CH+40 OUTPUT Y-COORDINATE
* DISPLAY THE CP NUMBER AND JSN.
DSB6 LDD XC OUTPUT X-COORDINATE
OAN CH+40
LDD CN
RJM D2S DISPLAY CP NUMBER
LDD CN SET CP ADDRESS
SHN 7
STD CP
ADK TFSW READ EJT ORDINAL
CRD T2 (T2) = EJT ORDINAL
LDD T2
NJN DSB7 IF ACTIVE CP
LDD CN
SBD NC
ZJN DSB7 IF NOT ACTIVE CP
LJM DSB15 ADVANCE THE CP NUMBER
DSB7 SFA EJT GET EJT DATA
ADK JSNE
CRD SR (SR - SR+1) = JSN
ADK SCLE-JSNE
CRD AB (AB) = SERVICE CLASS,ROLLIN WITH LOCK,OT
ADK SCHE-SCLE
CRD CM (CM+4) = SCHEDULER PRIORITY
LDK CH06
OAN CH+40 OUTPUT X-COORDINATE
ADK CH12-CH06 SET MESSAGE COORDINATE FOR *B,O*
STD AB+1
LDN 2 DISPLAY JSN
OAM SR,CH
LDD T8 CHECK DISPLAY TYPE
NJP DSB12 IF *B,O* DISPLAY
* DISPLAY DATA FIELDS FOR *B,A* DISPLAY (DEFAULT SET).
LDC LMNI+3 MODIFY *DOL* FOR *B,A*
STM DOLA
LDD CP READ CPA DATA
ADK STSW
CRD T3 (T3) = CPU, SUB-CONTROL POINT STATUS
ADK CWQW-STSW
CRD T4 (T4) = CPU PRIORITY
ADK FLSW-CWQW
CRD T7 (CM+3) = CM FIELD LENGTH
LDD T9 CHECK SET ONE OR SET TWO
NJN DSB8 IF SET TWO
OAN CH+40 SKIP TWO SPACES
LDD AB OUTPUT SERVICE CLASS
SHN -6
STD T5
LDM TJSC,T5
SHN -6
OAN CH+40
LDD T4
SHN -3
LPC 177
RJM D6S DISPLAY CPU PRIORITY
LDD CM+3
RJM D6S DISPLAY CM FL
LDD T3 GET CPU STATUS
SHN -11
STD CM+4
LDM DSBI,CM+4 DISPLAY CPU STATUS
UJP DSB11.2 CHECK FOR MESSAGE
* DISPLAY DATA FIELDS FOR *B,A* DISPLAY (ALTERNATE SET).
DSB8 LDD CP READ CPA DATA FOR SET TWO
ADK ECSW
CRD T6 (CM+2) = EM FIELD LENGTH
ADK SNSW-ECSW
CRD T5 (CM) = SUBSYSTEM IDLEDOWN STATUS, PAUSE
LDD T2
RJM D4S DISPLAY EJT ORDINAL
LDD CM+4
RJM D4S DISPLAY SCHEDULER PRIORITY
LDD CM+2
DSBJ SHN 0 BIAS FLE
* SHN UESC (UESC = USER EXTENDED MEMORY SHIFT COUNT)
RJM D6S DISPLAY EXTENDED MEMORY FL
LDD CM CHECK FOR SUBSYSTEM IDLEDOWN STATUS
LPN 10
ZJN DSB9 IF NOT BEING IDLED
LDN 1RI
SHN 6
DSB9 STD T1
LDD T3 GET SUBCONTROL POINT STATUS
SHN -10
LPN 1
ZJN DSB10 IF SUBCONTROL POINTS NOT ACTIVE
LDN 1RS
DSB10 LMD T1
OAN CH+40 DISPLAY SUBSYSTEM IDLEDOWN, SCP STATUS
LDD CP
ADK STSW
CRD T4 CHECK ROLLOUT REQUESTED
LDD T6
LPN 01
ZJN DSB10.1 IF ROLLOUT NOT REQUESTED
LDN 1RR
UJN DSB10.2 SET *R* IN MESSAGE
DSB10.1 LDD AB CHECK FOR ROLLIN WITH LOCK
LPN 20
ZJN DSB11 IF NOT ROLLIN WITH LOCK
LDN 1RL
DSB10.2 SHN 6
DSB11 STD T1
LDK CMCL CHECK IF CONTROL POINT MOVING
CRD T4
LDD T4
LMD CN
NJN DSB11.1 IF CONTROL POINT NOT MOVING
LDN 1RM DISPLAY STORAGE MOVE STATUS
RAD T1
DSB11.1 LDD T1
DSB11.2 OAN CH+40 DISPLAY STATUS
LDK CH35 SET THE MESSAGE COORDINATE FOR *B,A*
STD AB+1
* DISPLAY MESSAGE BUFFER.
DSB12 LDD CP READ THE PAUSE BIT
ADK SNSW
CRD T4 (T7) = PAUSE
ADK MS2W-SNSW READ MESSAGE 2
CRD CM
STD T5
LDD CM
STD T4 SAVE MESSAGE 2 STATUS
ZJN DSB13 IF BLANK
LDC LMNI+3 MODIFY *DOL* FOR MESSAGE 2
STM DOLA
UJN DSB14 DISPLAY MESSAGE
DSB13 LDD CP READ MESSAGE 1
ADN MS1W
CRD CM
STD T5
LDD CM
ZJN DSB15 IF NO MESSAGE
DSB14 RJM DMS DISPLAY MESSAGE
* ADVANCE THE CONTROL POINT NUMBER.
DSB15 LDC LMNI+5+1 RESTORE *DOL*
STM DOLA
AOD CN ADVANCE CP NUMBER
SBD NC
ZJN DSB16 IF ONE MORE CONTROL POINT
PJN DSB19 IF NO MORE CONTROL POINTS
DSB16 STD T1 SAVE LAST CONTROL POINT FLAG
LDM DCTY DECREMENT Y-COORDINATE
SHN 1
SBN YINC+2
RAD YC
OAN CH+40
SBM CBOS
MJN DSB18 IF NO MORE LINES
DSB17 LJM DSB6 LOOP
DSB18 LDD T1
ZJN DSB17 IF LAST CONTROL POINT
LDN MOREL DISPLAY *MORE*
OAM MORE,CH
LDD CN
DSB19 STM DSBH+1 SAVE CONTROL POINT NUMBER OF NEXT PAGE
LJM DSB1X RETURN
DSBC DATA C*CPUMTR ERROR EXIT.*
* SCREEN TITLES.
DSBD CON CH01,2HCP,CH06 COMMON HEADER
DATA 4HJSN
CON CH20
DSBDL EQU *-DSBD
DSBE CON CH12,2HSC *B,A* SET ONE HEADER
CON CH18,2HPR
CON CH25,2HFL
CON CH30
DATA 4HCPU
CON CH42
DSBEL EQU *-DSBE
DSBF CON CH11 *B,A* SET TWO HEADER
DATA 10HEJT SCPR
CON CH25
DATA 8HFLE SS
CON CH42
DSBFL EQU *-DSBF
DSBG DATA 6HSTATUS MESSAGE HEADER
DSBGL EQU *-DSBG
* PAGE CONTROL BYTES.
* BYTE 0 = FIRST CONTROL POINT FOR CURRENT PAGE
* BYTE 1 = FIRST CONTROL POINT FOR NEXT PAGE
DSBH CON 1,1
DSBI SPACE 4,10
** DSBI - TABLE OF CPU STATUS CODES.
*
* INDEXED BY NUMERIC VALUE IN CPA WORD *STSW*.
DSBI BSS 0
LOC 0
VFD 12/1R NULL
VFD 12/1RA JOB ACTIVE IN CPU 0
VFD 12/1RB JOB ACTIVE IN CPU 1
VFD 12/1R (RESERVED)
VFD 12/1RW JOB WAITING FOR CPU
VFD 12/1RX JOB WAITING FOR RECALL
VFD 12/1RI JOB WAITING FOR PP DROP
VFD 12/1R (RESERVED)
LOC *O
DMS SPACE 4,10
** DMS - DISPLAY CONTROL POINT MESSAGE.
*
* ENTRY (CN) = CP NUMBER.
* (CP) = CPA ADDRESS.
* (AB) = 8/ , 4/ ORIGIN TYPE CODE.
* (AB+1) = STARTING COORDINATE.
* (T4) = 0, IF NOT *MS2W*.
* (T5) = MESSAGE ADDRESS.
* (T7) = 11/ , 1/ PAUSE BIT
* (CM - CM+4) = FIRST WORD OF MESSAGE.
*
* USES T6, CM - CM+4.
*
* CALLS DOL.
*
* MACROS CFNC.
DMS SUBR ENTRY/EXIT
LDN 0 CLEAR INTENSITY COUNT
STD T6
LDD T7 CHECK PAUSE BIT
LPN 1
NJN DMS1 IF PAUSE BIT SET
LDD T4
ZJN DMS3 IF NOT *MS2W*
LDD NC
LMD CN
ZJN DMS1 IF SYSTEM CP
LDD AB
LPN 17
LMK SYOT
NJN DMS3 IF NOT SYSTEM ORIGIN
LDD CM
SHN -6
LMN 1R$
NJN DMS3 IF FIRST CHARACTER .NE. *$*
DMS1 CFNC BIVF
PJN DMS3 IF CDC721
LDD CN
SBD CY
LPN 30
ZJN DMS3 IF NOT TIME TO INTENSIFY
LDN 2
STD T6
DMS2 LDK CH06 INTENSIFY JSN
OAN CH+40
LDN 2
OAM SR,CH
DMS3 LDD AB+1 SET X-COORDINATE
OAN CH+40
LDD T5 DISPLAY 1 LINE
RJM DOL
SOD T6
ZJN DMS3 IF NOT DONE INTENSIFYING MESSAGE
PJN DMS2 IF NOT DONE INTENSIFYING JSN
CFNC EIVF
LJM DMSX RETURN
PBD SPACE 4,10
** PBD - PAGE THE *B* DISPLAY.
*
* ENTRY (T2) = 0, IF PAGE FORWARD.
* = 1, IF PAGE BACKWARD.
PBD BSS 0 ENTRY
LDD T2
NJN PBD1 IF PAGE BACKWARD
LDM DSBH+1 GET FIRST CONTROL POINT FOR NEXT PAGE
PBD1 STM DSBH
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAYS C, D - CENTRAL MEMORY.),AMF,CMR
ENTRY DSC,DSC
SPACE 4,10
*** NOTE -
*
* THIS OVERLAY SHOULD BE MADE CM RESIDENT SO THAT
* THE *C* AND *D* DISPLAYS IN THIS OVERLAY WILL
* BE AVAILABLE TO THE OPERATOR EVEN IF THE SYSTEM
* IS HUNG.
DSC SPACE 4,10
*** *C* DISPLAY.
* *D* DISPLAY.
*
* DISPLAY CM AS 5 GROUPS OF 4 DIGITS.
DSC SUBR ENTRY/EXIT
LDD CN DISPLAY HEADER
SHN 6
LMN 1R.
STM DSCB+2
LDN DSCBL
OAM DSCB,CH
LDM DSCA-1RC,CN GET JSN FOR SELECTED SCREEN
STM DSCC
LDN 2
OAM *,CH DISPLAY JSN
DSCC EQU *-1 (ADDRESS OF JSN)
LDM DSCC
RJM SJS SEARCH FOR JSN IN EJT
MJN DSCX IF JOB NOT AT CP OR JSN UNUSED
LDD SF SET SECURE FLAG
STD T8
LDD LK
SHN -1
ZJN DSC1 IF NOT SECURE UNLOCK
LDN 0 CLEAR SECURE FLAG
STD T8
DSC1 LDD CN CHECK DISPLAY
LMN 1RC
ZJN DSC4 IF *C* DISPLAY
DSC2 LDC D5F SET FORMAT
STD T6
LDM TDFC-1,CN DISPLAY CENTRAL MEMORY
DSC3 RJM DCM
LJM DSCX RETURN
DSC4 LDK CMBL FETCH *CPUMTR* BREAKPOINT STATUS
CRD CM
LDD CM+3 CHECK FOR EXCHANGE PACKAGE DISPLAY
LMM TDSC
SHN 14
ADD CM+4
LMM TDSC+1
NJN DSC2 IF NOT EXCHANGE PACKAGE
LDC. DXP SET FORMAT
STD T6
LDC TDSC SET ADDRESS OF DISPLAY BLOCK
UJP DSC3 DISPLAY EXCHANGE PACKAGE
DSCA CON /DSD/TJCC+1 JSN ADDRESS FOR *C* DISPLAY
CON /DSD/TJDD+1 JSN ADDRESS FOR *D* DISPLAY
DSCB CON CH01,HL01 SCREEN TITLE
DATA 22H"CHDR"
DSCBL EQU *-DSCB
ERRNZ XJSN-CH23 CODE DEPENDS ON VALUE
DXP SPACE 4,10
** DXP - DISPLAY EXCHANGE PACKAGE.
*
* ENTRY (T5) = WORD INDEX.
* (CM - CM+4) = CONTENTS OF CM WORD.
*
* EXIT (T6) = *D4F* IF EXCHANGE PACKAGE IS COMPLETE.
*
* CALLS D4D, D4S, D5F, D6S.
DXP3 SBN 2
PJN DXP4 IF NOT *X* REGISTERS
RJM D5F
UJN DXPX RETURN
DXP4 RJM D4F DISPLAY BREAKPOINT AREA
DXP SUBR ENTRY/EXIT
LDD T7
SBK TDSC+2
PJN DXP3 IF NOT *A OR B* REGISTERS
LDC TDSC+10 FORCE 4 BLOCKS OF MEMORY
STM DCMB
LDC CH11
OAN CH+40 OUTPUT X-COORDINATE
LDD CM
SHN -6
NJN DXP1 IF EXIT MODE FLAGS
OAN CH+40
LDD CM DISPLAY 6 DIGITS
SHN 14
LMD CM+1 (LEADING ZERO SUPPRESSION)
RJM D6S
UJN DXP2 DISPLAY *A* REGISTER
DXP1 RJM D4D DISPLAY 4 DIGITS
LDD CM+1
RJM D4D DISPLAY 4 DIGITS
LDN 0
OAN CH+40
DXP2 LDD CM+3 DISPLAY *A* REGISTER
SCN 77
SHN 6
LMD CM+2
SHN 6
RJM D6S
LDD CM+3 DISPLAY *B* REGISTER
LPN 77
SHN 14
LMD CM+4
RJM D6S
UJP DXPX RETURN
D4F SPACE 4,10
** D4F - DISPLAY 4 GROUPS OF 5 DIGITS.
*
* ENTRY (CM - CM+4) = CONTENTS OF CM WORD.
*
* CALLS DWD, D4D.
D4F SUBR ENTRY/EXIT
LDC CH11
OAN CH+40
LDD CM PARCEL 0
SHN -11
ADN 1R0 DISPLAY FIRST DIGIT
OAN CH+40
LDD CM+1
SCN 77
SHN 6
LMD CM
SHN 3 DISPLAY LOWER 4 DIGITS
RJM D4D
LDD CM+1 PARCEL 1
SHN -6
LPN 7
ADN 1R0 DISPLAY FIRST DIGIT
OAN CH+40
LDD CM+2
SCN 77
SHN 6
LMD CM+1
SHN 6 DISPLAY LOWER 4 DIGITS
RJM D4D
LDD CM+2 PARCEL 2
SHN -3
LPN 7
ADN 1R0 DISPLAY FIRST DIGIT
OAN CH+40
LDD CM+2
LPN 7
SHN 14
LMD CM+3
SHN -3 DISPLAY LOWER 4 DIGITS
RJM D4D
LDD CM+3 PARCEL 3
LPN 7
ADN 1R0 DISPLAY FIRST DIGIT
OAN CH+40
LDD CM+4 DISPLAY LOWER 4 DIGITS
RJM D4D
LDN 0 OUTPUT 2 SPACES
OAN CH+40
RJM DWD DISPLAY WORD
LJM D4FX RETURN
COMMON SPACE 4,10
** COMMON DECKS.
*CALL COMDDCM
SPACE 4,10
DSPEND
DISPLAY (DISPLAYS F, G - CENTRAL MEMORY.),AMF
ENTRY DSF,DSF
DSF SPACE 4,10
*** *F* DISPLAY.
* *G* DISPLAY.
*
* DISPLAY CM AS 4 GROUPS OF 5 DIGITS.
DSF SUBR ENTRY/EXIT
LDD CN DISPLAY HEADER
SHN 6
LMN 1R.
STM DSFB+2
LDN DSFBL
OAM DSFB,CH
LDM DSFA-1RF,CN GET JSN FOR SELECTED SCREEN
STM DSFC
LDN 2
OAM *,CH DISPLAY JSN
DSFC EQU *-1 (ADDRESS OF JSN)
LDM DSFC
RJM SJS SEARCH FOR JSN IN EJT
MJN DSFX IF JOB NOT AT CP OR JSN UNUSED
LDC. D4F SET DISPLAY FORMAT
STD T6
LDD SF SET SECURE FLAG
STD T8
LDD LK
SHN -1
ZJN DSF1 IF NOT SECURITY UNLOCK
LDN 0 CLEAR SECURE FLAG
STD T8
DSF1 LDM TDFC-1,CN GET ADDRESS OF FIELD TABLE
RJM DCM
LJM DSFX RETURN
DSFA CON /DSD/TJFF+1
CON /DSD/TJGG+1
DSFB CON CH01,HL01 SCREEN TITLE
DATA 22H"FHDR"
DSFBL EQU *-DSFB
ERRNZ XJSN-CH23 CODE DEPENDS ON VALUE
D4F SPACE 4,10
** D4F - DISPLAY 4 GROUPS OF 5 DIGITS.
*
* ENTRY (CM - CM+4) = CONTENTS OF CM WORD.
*
* USES T1.
*
* CALLS DWD, D4D.
D4F SUBR ENTRY/EXIT
LDC 6120 OUTPUT X-COORDINATE
OAN CH+40
LDD CM+1 PARCEL 0
SHN -11
SHN 17
LMD CM
SHN 3
STD T1 SAVE LOWER 4 DIGITS
SHN -14 DISPLAY UPPER DIGIT
LPN 7
ADN 1R0
OAN CH+40
LDD T1 DISPLAY LOWER DIGITS
RJM D4D
LDD CM+2 PARCEL 1
SCN 77
SHN 6
LMD CM+1
SHN 6
STD T1 SAVE LOWER 4 DIGITS
SHN -14 DISPLAY UPPER DIGIT
LPN 7
ADN 1R0
OAN CH+40
LDD T1 DISPLAY LOWER DIGITS
RJM D4D
LDD CM+2 PARCEL 2
LPN 77
SHN 14
LMD CM+3
SHN -3
STD T1 SAVE LOWER 4 DIGITS
SHN -14 DISPLAY UPPER DIGIT
LPN 7
ADN 1R0
OAN CH+40
LDD T1 DISPLAY LOWER DIGITS
RJM D4D
LDD CM+3 PARCEL 3
LPN 7
SHN 14
LMD CM+4
STD T1 SAVE LOWER 4 DIGITS
SHN -14 DISPLAY UPPER DIGIT
LPN 7
ADN 1R0
OAN CH+40
LDD T1 DISPLAY LOWER DIGITS
RJM D4D
LDN 0 OUTPUT 2 SPACES
OAN CH+40
RJM DWD DISPLAY WORD
LJM D4FX RETURN
COMMON SPACE 4,10
** COMMON DECKS.
LIST X
*CALL COMDDCM
LIST *
SPACE 4,10
DSPEND
DISPLAY (DISPLAY E - EQUIPMENT STATUS TABLE.),PEA
ENTRY DSE,DSE
DSE SPACE 4,25
*** *E,A* DISPLAY.
*
* EACH LINE DISPLAYS STATUS FOR ONE EQUIPMENT IN THE EST. DATA
* SHOWN INCLUDE THE EST ORDINAL, THE ON/OFF/DOWN STATUS OF THE
* EQUIPMENT, THE JSN TO WHICH IT IS ASSIGNED, IF ANY, AND SOME
* HARDWARE CHARACTERISTICS OF THE DEVICE - CHANNELS, FIRST
* UNIT, CONTROLLER, ETC. AN ASTERISK FOLLOWS A *DOWN* CHANNEL.
* A MINUS SIGN FOLLOWS AN *IDLE* CHANNEL.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* EST TYPE STATE JSN EQ UN CHANNELS ACCESS LIMITS
*
* 5 DE OFF 0 0 0 LVLBOTT LVLTOPP
* 6 DF ON 0 0 C00A C01B* LVLBOTT LVLTOPP
* 7 DN ON 2 3 C02B C03A LVLBOTT LVLTOPP
* 10 DJ-1 ON 0 0 1 - 24 LVLBOTT LVLTOPP
* 23 LT ON ASDF 5 0 12 LVLBOTT LVLTOPP
* 50 MT ON 0 0 13 * 22 LVLBOTT LVLTOPP
* 51 NT ON 0 1 13 * 33 LVLBOTT LVLTOPP
* MORE
DSE SUBR ENTRY/EXIT
DISPHD (E,A. EQUIPMENT STATUS.)
LDN ESTP READ EST POINTER
CRD T4
LDD LA SET SCREEN
LMC .FLFT
ZJN DSE1 IF LEFT SCREEN
LDN 2
DSE1 STD T5
LDM CTOS SET INITIAL Y-COORDINATE
OAN CH+40
SBN YINC
STD YC
DISPLA CH02,,(EST TYPE STATE JSN EQ UN CHANNELS)
* LDN 0
STM TDSE+1,T5 CLEAR NEXT EST ORDINAL
LDM TDSE,T5 SET EST ORDINAL
STD T7
LDD SF
ZJN DSE2 IF UNSECURED SYSTEM
DISPLA CH51,,(ACCESS LIMITS)
DSE2 LJM DSE22 READ EST ENTRY
DSE3 LDD XC
OAN CH+40
LDD T7
RJM D4S DISPLAY EST ORDINAL
LDD CM SET MASS STORAGE FLAG
SHN -13
STD T2
LDC CH08 RESET X-COORDINATE
OAN CH+40
LDD CM+3 DISPLAY TYPE
OAN CH+40
LDD T2
ZJN DSE5 IF NOT MASS STORAGE
LDD CM+4 READ NUMBER OF UNITS - 1
SHN 3
ADN DDLL
CRD AB
SBN DDLL-PFGL READ DEVICE ACCESS LEVEL LIMITS
CRD SH
LDD SH+4 SAVE DEVICE ACCESS LEVEL LIMITS
SHN -6
STD T8
LDD CM CHECK FOR *LDAM* TYPE EQUIPMENT
SHN 21-7
PJN DSE4 IF NOT *LDAM* TYPE
LDD AB CHECK NULL LIST BIT
SHN 21-12
PJN DSE4 IF NOT NULL EQUIPMENT
LDC 2R-0 OUTPUT NULL EQUIPMENT INDICATOR
OAN CH+40
LJM DSE21 SKIP TO NEXT EQUIPMENT
DSE4 LDD AB
LPN 7 DISPLAY PHYSICAL UNITS
ZJN DSE5 IF NOT MULTI-SPINDLE DEVICE
ADD T2
ADC 2R-0
DSE5 OAN CH+40
LDN 0 OUTPUT ZERO BYTE
OAN CH+40
OAN CH+40
LDD CM DISPLAY STATE
LPN 3
SHN 1
STD T1
LDM DSEA,T1
OAN CH+40
LDM DSEA+1,T1
OAN CH+40
SFA EST,T7 CHECK EQUIPMENT ASSIGNMENT
ADK EQAE
CRD SH
LDD CM
LPC 4100
LMC 4000
ZJN DSE8 IF MASS STORAGE DEVICE AND AVAILABLE
LDD SH+3 SAVE SECURITY BOUNDS
STD T8
DSE8 LDD SH+4
LMC 7777
ZJN DSE9 IF ASSIGNED AT SYSTEM CONTROL POINT
LMC 7777
NJN DSE9 IF ASSIGNED TO A JOB
* LDN 0
STD SH
STD SH+1
UJN DSE10 DISPLAY JSN
DSE9 SFA EJT GET JSN FROM EJT ENTRY
ADK JSNE
CRD SH
LDN 0 DISPLAY JSN
DSE10 STD SH+2
OAN CH+40
LDN 3
OAM SH,CH
LDD CM+4 PRESET NON MASS STORAGE CONNECT CODE
STD T2
LDD CM+3
LMC 2RMT
ZJN DSE13 IF TYPE *MT*
LMC 2RNT&2RMT
ZJN DSE13 IF TYPE *NT*
LMC 2RCT&2RNT
ZJN DSE13 IF TYPE *CT*
LMC 2RAT&2RCT
NJN DSE14 IF NOT TYPE *AT*
DSE13 LDD T2 MASK OFF UNUSED BITS FOR TAPE
LPC 7017
STD T2
DSE14 LDD CM CHECK EQUIPMENT TYPE
SHN 21-13
PJN DSE18 IF NOT MASS STORAGE EQUIPMENT
LDD AB+4 SET UNIT NUMBER FOR FIRST UNIT
LPN 77
STD T2
LDD AB SET EQUIPMENT (CONTROLLER) NUMBER
SHN -6
LPN 7
SHN 11
RAD T2
DSE18 LDD T2 DISPLAY EQUIPMENT (CONTROLLER) NUMBER
SHN -11
RJM D2Z
LDD T2 DISPLAY UNIT
LPN 77
RJM D2Z
LDC CH37
OAN CH+40
LDD CM+1 DISPLAY FIRST CHANNEL
RJM DCD
LDD CM+2
ZJN DSE19 IF NO SECOND CHANNEL
RJM DCD DISPLAY SECOND CHANNEL
DSE19 LDD T7 CHECK EST ORDINAL
SBN NOPE
MJN DSE21 IF PSEUDO-EQUIPMENT
LDD SF
ZJN DSE21 IF UNSECURED SYSTEM
LDC CH50 SET X-COORDINATE
OAN CH+40
LDD T8 GET LOWER SECURITY BOUND
SHN -3
RJM DAL DISPLAY LOWER SECURITY BOUND STRING
LDC CH58 SET X-COORDINATE
OAN CH+40
LDD T8 GET UPPER SECURITY BOUND
RJM DAL DISPLAY UPPER SECURITY BOUND STRING
DSE21 AOD T7 ADVANCE INDEX
LMD T4+2 LAST EST ORDINAL + 1
ZJN DSE24 IF END OF EST
DSE22 SFA EST,T7
ADK EQDE
CRD CM READ EST ENTRY
LDD CM+3
ZJN DSE21 IF EMPTY ENTRY
LCN YINC
RAD YC DECREMENT Y-COORDINATE
OAN CH+40
SBM CBOS
MJN DSE23 IF BOTTOM OF SCREEN
LJM DSE3 LOOP
DSE23 LDN MOREL OUTPUT *MORE* MESSAGE
OAM MORE,CH
LDD T7 SET NEXT INDEX
STM TDSE+1,T5
DSE24 LJM DSEX RETURN
DSEA DATA H*ON *
DATA H*IDLE*
DATA H*OFF *
DATA H*DOWN*
DCD SPACE 4,15
** DCD - DISPLAY CHANNEL DATA.
*
* *DCD* DISPLAYS THE CHANNEL DATA AS +CNNP* + OR +CNNP- +.
* C = CONCURRENT CHANNEL FLAG (BLANK IF NCH).
* NN = CHANNEL NUMBER (LEADING ZERO SUPPRESSED IF NCH).
* P = CONCURRENT CHANNEL PORT (A OR B; BLANK IF NCH).
* * = DOWN CHANNEL FLAG (BLANK IF UP).
* - = IDLE CHANNEL FLAG (BLANK IF UP).
*
* ENTRY (A) = CHANNEL BYTE FROM THE EST.
* (CM) = BYTE 0 OF EST.
DCD SUBR ENTRY/EXIT
STD T1
LPN 37
STD T0
LDD T1
SHN 21-13
PJN DCDX IF CHANNEL NOT ACCESSIBLE
SHN 13-21
LPN 40
ZJN DCD1 IF NOT CONCURRENT CHANNEL
LDC 1RC*1000
DCD1 LMD T0
SHN -3
ZJN DCD2 IF NCH 0
ADN 1R0
DCD2 OAN CH+40
LDD T1
LPN 40
ZJN DCD3 IF NOT CONCURRENT CHANNEL
LDD T1 GET PORT FLAG
SHN -7
LPN 1
ADN 1RA
SHN 14
DCD3 LMD T0
SCN 70
ADN 1R0
SHN 6
OAN CH+40
LDD T1 CHECK CHANNEL STATE
SHN -11
LPN 3
ZJN DCD5 IF UP CHANNEL
SBN 3
ZJN DCD4 IF DOWN CHANNEL
LDN 1R-&1R* SET *IDLE* STATUS
DCD4 LMN 1R*
SHN 6
DCD5 OAN CH+40
UJP DCDX RETURN
PEA SPACE 4,10
** PEA - PAGE *E,A* DISPLAY.
*
* ENTRY (LA) = LOAD ADDRESS.
* (T2) = 0 IF PAGE FORWARD.
* = 1 IF PAGE BACKWARD (RETURN TO PAGE ONE).
*
* USES T1.
PEA BSS 0 ENTRY
LDD LA GET LOAD ADDRESS
LMC .FLFT
ZJN PEA1 IF LEFT SCREEN
LDN 2
PEA1 STD T1 SET SCREEN INDEX (0=LEFT, 2=RIGHT)
LDD T2
SBN 1
ZJN PEA2 IF RETURN TO PAGE ONE
LDM TDSE+1,T1
PEA2 STM TDSE,T1
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY E - MASS STORAGE CONFIGURATION.),PEC
ENTRY DSEC,DSEC
DSE SPACE 4,10
*** *E,C* DISPLAY.
*
* EACH LINE DISPLAYS THE CONFIGURATION OF ONE MASS STORAGE EQ.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* EST TYPE PN FM/PK DN CHANNELS EQ UNIT-NUMBERS
*
* 6 DF SYST08 1 C00B C01A* 0 0
* 7 DQ SYST08 2 21 22 - 0 0
* 10 DN SYSFAM1 1 C02B 2 5
* 11 EC SYSFAM1 2 C03A* C04A 6 12
* 14 DJ-8/8 SYSFAM2 2 22 - 21 0 40 41 42 43
* 44 45 46 47
* 30 ES 1 SYSFAM2 10 C03A* C04A 4 01
* 31 ES 2 SYSFAM3 11 C03A* C04A 4 01
* 117 DK-3 PACKV22* 40 21 22 - 0 3
*
DSEC SUBR ENTRY/EXIT
DISPHD (E,C. DISK CONFIGURATION.)
LDM CTOS SET INITIAL Y-COORDINATE
OAN CH+40
SBN YINC
STD YC
LDN ESTP READ EST POINTERS
CRD T4
LDD LA SET SCREEN
LMC .FLFT
ZJN DSE0 IF LEFT SCREEN
LDN 2
DSE0 STD T5
LDN DSEAL DISPLAY TITLE
OAM DSEA,CH
* LDN 0 CLEAR NEXT EST ORDINAL
STM TDSE+1,T5
LDM TDSE,T5 SET EST ORDINAL
STD T6
LJM DSE11 ENTER EST SEARCH LOOP
* DISPLAY EST ORDINAL.
DSE1 LDD XC OUTPUT X-COORDINATE
OAN CH+40
LDD T6 DISPLAY EST ORDINAL
RJM D4S
LDN 0 SKIP TWO SPACES
OAN CH+40
* DISPLAY DEVICE TYPE.
LDD CM+3 DISPLAY TYPE
OAN CH+40
LDD CM+4 GET MST ADDRESS/10
SHN 3
ADN PFGL READ PERMANENT FILE DESCRIPTION WORD
CRD AB
ADN DDLL-PFGL READ DEVICE DESCRIPTION
CRD SR
LDD SR GET ORIGINAL NUMBER OF UNITS
SHN -3
LPN 7
STD T3
LDD SR GET NUMBER OF UNITS-1 CURRENTLY IN USE
LPN 7
STD T4
SHN 3
STD T1
ZJN DSE2 IF NOT *EQ-N*
LDD T3
SBD T4
PJN DSE3 IF *EQ-N*
DSE2 LDD AB+4
LPN 77
ZJN DSE4 IF *EQ*
STD T1
DSE3 LDD T1 DISPLAY *-N*
SHN -3
ADC 2R-1
OAN CH+40
LDD T1
LPN 7
ZJN DSE4 IF NOT *EQ-N/M*
ADC 2R/1
OAN CH+40
* DISPLAY EQUIPMENT (CONTROLLER) NUMBER.
DSE4 LDC CH45
OAN CH+40
LDD SR
SHN -6
LPN 7
RJM D2Z
* DISPLAY UNITS.
LDN 3 SET UP LOOP FLAG
STD T1
LDD YC
STD SR+1
LDC CH50
OAN CH+40
LDN SR+4
STD T2
LDD SR
SHN 21-12
MJN DSE6 IF NULL EQUIPMENT
LDD T3
SBD T4
MJN DSE5 IF UNITS IN USE IS LARGER
LDD T3
STD T4
DSE5 SOD T1
NJN DSE5.1 IF LINE NOT FULL
LCN YINC MOVE TO NEXT LINE
RAD YC
OAN CH+40
LDC CH50
OAN CH+40
DSE5.1 LDI T2 DISPLAY UNIT NUMBER
LPN 77
RJM D2Z
SOD T4
MJN DSE6 IF ALL UNITS ARE DISPLAYED
LDI T2 DISPLAY ONE UNIT
SHN -6
LPN 77
RJM D2Z
SOD T2
SOD T4
PJN DSE5 IF MORE UNITS TO DISPLAY
DSE6 LDD SR+1 RESET Y-COORDINATE
OAN CH+40
* DISPLAY PARTITION NUMBER IF ANY.
LDD CM
SHN 21-5
PJN DSE7 IF NOT BUFFERED DEVICE
LDC CH15
OAN CH+40
SFA EST,T6
ADK EQAE
CRD SR
LDD SR+3
SHN 21-13
PJN DSE7 IF NOT A PARTITIONED DEVICE
SHN 6
LPN 17
RJM D2Z
* DISPLAY FAMILY NAME OR PACK NAME.
DSE7 LDC CH19
OAN CH+40
LDN 3 DISPLAY FIRST SIX CHARACTERS
OAM AB,CH
LDD CM+4 READ PERMANENT FILE USER DESCRIPTION
SHN 3
ADN PUGL
CRD SR
LDD SR
ZJN DSE9 IF USER NAME NOT PRESENT
LDN 1R*
DSE9 STD T0
LDD AB+3 DISPLAY LAST CHARACTER+USER FLAG
LPC 7700
LMD T0
OAN CH+40
LDN 0 SKIP TWO SPACES
OAN CH+40
* DISPLAY DEVICE NUMBER.
LDD AB+3
LPN 77
RJM D2Z
* DISPLAY CHANNEL(S).
LDC CH33
OAN CH+40
LDD CM+1 DISPLAY FIRST CHANNEL
RJM DCD
LDD CM+2 CHECK FOR SECOND CHANNEL
ZJN DSE10 IF SECOND CHANNEL NOT PRESENT
RJM DCD DISPLAY SECOND CHANNEL
* SEARCH FOR NEXT ENTRY.
DSE10 AOD T6 ADVANCE EST ORDINAL
SBD T4+3
PJN DSE13 IF END OF MASS STORAGE ENTRIES
DSE11 SFA EST,T6 READ NEXT EST ENTRY
ADK EQDE
CRD CM
LDD CM
SHN 21-13
PJN DSE10 IF NOT MASS STORAGE
LCN YINC
RAD YC DECREMENT Y-COORDINATE
OAN CH+40
SBM CBOS
MJN DSE12 IF BOTTOM OF SCREEN
LJM DSE1 PROCESS NEXT EST ENTRY
DSE12 LDN MOREL OUTPUT *MORE* MESSAGE
OAM MORE,CH
LDD T6
STM TDSE+1,T5
DSE13 LJM DSECX RETURN
* SCREEN TITLE.
DSEA CON CH02
DATA H*EST*
CON CH09
DATA H*TYPE PN*
CON CH20
DATA H*FM/PK*
CON CH29
DATA H*DN CHANNELS EQ UNIT-NUMBERS*
DSEAL EQU *-DSEA
DCD SPACE 4,15
** DCD - DISPLAY CHANNEL DATA.
*
* *DCD* DISPLAYS THE CHANNEL DATA AS +CNNP* + OR +CNNP- +.
* C = CONCURRENT CHANNEL FLAG (BLANK IF NCH).
* NN = CHANNEL NUMBER (LEADING ZERO SUPPRESSED IF NCH).
* P = CONCURRENT CHANNEL PORT (A OR B; BLANK IF NCH).
* * = DOWN CHANNEL FLAG (BLANK IF UP).
* - = IDLE CHANNEL FLAG (BLANK IF UP).
*
* ENTRY (A) = CHANNEL BYTE FROM THE EST.
* (CM) = BYTE 0 OF EST.
DCD SUBR ENTRY/EXIT
STD T1
LPN 37
STD T0
LDD T1
SHN 21-13
PJN DCDX IF CHANNEL NOT ACCESSIBLE
SHN 13-21
LPN 40
ZJN DCD1 IF NOT CONCURRENT CHANNEL
LDC 1RC*1000
DCD1 LMD T0
SHN -3
ZJN DCD2 IF NCH 0
ADN 1R0
DCD2 OAN CH+40
LDD T1
LPN 40
ZJN DCD3 IF NOT CONCURRENT CHANNEL
LDD T1 GET PORT FLAG
SHN -7
LPN 1
ADN 1RA
SHN 14
DCD3 LMD T0
SCN 70
ADN 1R0
SHN 6
OAN CH+40
LDD T1 CHECK CHANNEL STATE
SHN -11
LPN 3
ZJN DCD5 IF UP CHANNEL
SBN 3
ZJN DCD4 IF DOWN CHANNEL
LDN 1R-&1R* SET *IDLE* STATUS
DCD4 LMN 1R*
SHN 6
DCD5 OAN CH+40
UJP DCDX RETURN
PEC SPACE 4,10
** PEC - PAGE *E,C* DISPLAY.
*
* ENTRY (LA) = LOAD ADDRESS.
* (T2) = 0 IF PAGE FORWARD.
* = 1 IF PAGE BACKWARD (RETURN TO PAGE ONE).
*
* USES T1.
PEC BSS 0 ENTRY
LDD LA GET LOAD ADDRESS
LMC .FLFT
ZJN PEC1 IF LEFT SCREEN
LDN 2
PEC1 STD T1 STORE SCREEN INDEX (0=LEFT, 2=RIGHT)
LDD T2
SBN 1
ZJN PEC2 IF RETURN TO PAGE ONE
LDM TDSE+1,T1
PEC2 STM TDSE,T1
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY E - MASS STORAGE DEVICE ERRORS.),PEE
ENTRY DSEE,DSEE
DSE SPACE 4,15
*** *E,E* DISPLAY.
*
* EACH LINE SHOWS ERROR CONDITIONS THAT EXIST ON A DEVICE.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* EST TYPE STATE CONDITIONS
*
* 6 DQ-3 ON ERROR CODE = NR.
* 15 DJ IDLE LOW SPACE.
* SUSPECT.
DSEE SUBR ENTRY/EXIT
DISPHD (E,E. DISK ERRORS.)
* SET BASE ADDRESS FOR *PUT*.
LDK BIOL
CRD CM
LDD CM+1
SHN 14
LMD CM+2
ADK PUTP
CRD CM
LDD CM+4
STM DSED+1
LDD CM+3
LPN 77
ADC ADCI
STM DSED
* DISPLAY HEADER.
LDM CTOS SET INITIAL Y-COORDINATE
OAN CH+40
SBN YINC
STD YC
LDN ESTP READ EST POINTERS
CRD T4
LDD T4+3 SAVE LAST MS EST ORDINAL + 1
LMC -0
STM DSEC+1
LDD LA SET SCREEN
LMC .FLFT
ZJN DSE1 IF LEFT SCREEN
LDN 2
DSE1 STD T5
DISPLA CH02,,(EST TYPE STATE CONDITIONS)
* LDN 0
STM TDSE+1,T5 CLEAR NEXT EST ORDINAL
LDM TDSE,T5 SET EST ORDINAL
STD T6
LCN YINC
RAD YC
OAN CH+40
LDC 2R. SET SUFFIX FOR *D2Z* AND *D2S*
STM D2ZA
STM D2SA
UJN DSE3 ENTER LOOP
* CHECK NEXT EST ENTRY.
DSE2 AOD T6 ADVANCE EST ORDINAL
DSEC ADC -* - (LAST MS EST ORDINAL + 1)
PJN DSE4 IF END OF EST
DSE3 SFA EST,T6 READ NEXT EST ENTRY
ADK EQDE
CRD AB
LDD AB
SHN 21-13
PJN DSE2 IF NOT MASS STORAGE
LDD YC
SBM CBOS
SBN YINC
PJN DSE5 IF NOT BOTTOM OF SCREEN
LDN MOREL DISPLAY *MORE*
OAM MORE,CH
LDD T6
STM TDSE+1,T5
DSE4 LDC CH01 RESET DEFAULT X-COORDINATE
STD XC
OAN CH+40
LDN 0 CLEAR SUFFIX FOR *D2Z* AND *D2S*
STM D2ZA
STM D2SA
UJP DSEEX RETURN
* GET INFORMATION ABOUT DEVICE.
DSE5 LDD AB+4
SHN 3
ADN DALL
CRD SR
ADN STLL-DALL
CRD SH
ADN DDLL-STLL
CRD CM
LDD CM GET UNIT COUNT
LPN 7
STD T7
LDD AB
SHN 1
LPN 6
STD T5
LDC CH26 OUTPUT X-COORDINATE
STD XC
OAN CH+40
* DISPLAY ERROR CODE.
LDD SH+1
LPN 77
ZJN DSE6 IF NO ERROR CODE TO DISPLAY
STD AB+1
SBN MXEC
MJN DSE5.1 IF VALID ERROR STATUS
LDN 0 INDICATE INVALID ERROR STATUS
STD AB+1
DSE5.1 LDC /EEMSG/ERCM * ERROR CODE = *
RJM DEM DISPLAY ERROR MESSAGE
LDM DSEA,AB+1
OAN CH+40
LDC 2R.
OAN CH+40
RJM ANL ADVANCE TO NEXT LINE
* DISPLAY *RESTRICT ACTIVITY* AND *SUSPECT* FLAGS.
DSE6 LDD SR
SHN 21-6
PJN DSE7 IF RESTRICT ACTIVITY NOT SET
LDC /EEMSG/ACRM * ACTIVITY RESTRICTED.*
RJM DEM DISPLAY ERROR MESSAGE
RJM ANL ADVANCE TO NEXT LINE
DSE7 LDD SR
SHN 21-7
PJN DSE8 IF SUSPECT NOT SET
LDD T5
SBN 2S1
PJN DSE8 IF DEVICE OFF OR DOWN
LDC /EEMSG/SUSM * SUSPECT.*
RJM DEM DISPLAY ERROR MESSAGE
RJM ANL ADVANCE TO NEXT LINE
* DISPLAY *DAS* PARITY PROTECTION MESSAGES.
DSE8 LDD AB+4
SHN 3
ADN BDLL
CRD SR
ADK DILL-BDLL
CRD SR+1
ADK ACGL-DILL
CRD SH
LDD SH+4
SHN 21-2
PJN DSE8.1 IF PARITY PROTECTION NOT LOST
LDC /EEMSG/PPLM * PARITY PROTECTION LOST. UNIT = *
RJM DEM DISPLAY ERROR MESSAGE
LDD SH+1
SHN -6
RJM D2Z DISPLAY UNIT NUMBER
RJM ANL ADVANCE TO NEXT LINE
DSE8.1 LDD SR+1+2 GET PUT ORDINAL
ZJN DSE8.3 IF NOT BUFFERED DEVICE
SHN PUTLS
DSED ADC ** (BASE ADDRESS OF *PUT*)
ADN PILL
CRD CM
CRD CM READ SPECIAL REQUEST FLAGS FROM *PUT*
LDD CM+3 CHECK FOR *RESTORE* SPECIAL REQUEST
SHN 21-1
MJN DSE8.2 IF RESTORE PENDING
LDD SH+4 CHECK FOR *PARITY RESTORE INITIATION* FLAG
SHN 21-3
PJN DSE8.3 IF NO RESTORE PENDING
DSE8.2 LDC /EEMSG/PRPM * PARITY RESTORE PENDING.*
RJM DEM DISPLAY ERROR MESSAGE
RJM ANL ADVANCE TO NEXT LINE
UJN DSE8.4 SKIP RESTORE IN PROGRESS MESSAGE
DSE8.3 LDD SH+4
SHN 21-0
PJN DSE8.4 IF PARITY RESTORE NOT IN PROGRESS
LDC /EEMSG/PPRM * PARITY RESTORE IN PROGRESS. RC = *
RJM DEM DISPLAY ERROR MESSAGE
LDD SH+1
LPN 77
RJM D2Z DISPLAY REMAINING CYLINDERS / 100B
RJM ANL ADVANCE TO NEXT LINE
* DISPLAY *DAS* ERROR RECOVERY MESSAGE.
DSE8.4 LDD SH+4
SHN 21-1
PJN DSE8.5 IF NO ERROR RECOVERY IN PROGRESS
LDC /EEMSG/ERPM * ERROR RECOVERY IN PROGRESS.*
RJM DEM DISPLAY ERROR MESSAGE
RJM ANL ADVANCE TO NEXT LINE
* DISPLAY 9853 / *DAS* CONTROLLER MESSAGES.
DSE8.5 LDD SR
SHN 21-3
PJN DSE8.6 IF NO CONTROLLER OVERTEMP
LDC /EEMSG/COTM * CONTROLLER OVERTEMP.*
RJM DEM DISPLAY ERROR MESSAGE
RJM ANL ADVANCE TO NEXT LINE
* DISPLAY THRESHOLD MESSAGES.
DSE8.6 LDD AB+4
SHN 3
ADK TDGL
CRD CM
ADN THLL-TDGL
CRD SH
ADN CTLL-THLL
CRD SR
LDN 0 CLEAR THE OPERATOR NOTIFIED FLAGS
STD T1
DSE9 LDM SR,T1
LPC 3777
STM SR,T1
AOD T1
LMN 5
NJN DSE9 IF MORE BYTES
LDD SH+2
LPC 3777
SBD CM+4
MJN DSE10 IF LOW SPACE THRESHOLD NOT REACHED
LDC /EEMSG/LWSM * LOW SPACE.*
RJM DEM DISPLAY ERROR MESSAGE
RJM ANL ADVANCE TO NEXT LINE
DSE10 LDD SR
SBD SH
MJN DSE11 IF NOT VERIFICATION FAILURE THRESHOLD
LDC /EEMSG/VFTM * VERIFICATION FAILURE THRESHOLD.*
RJM DEM DISPLAY ERROR MESSAGE
RJM ANL ADVANCE TO NEXT LINE
DSE11 LDD SR+3
SBD SH+3
MJN DSE12 IF NOT RECOVERED ERROR THRESHOLD
LDC /EEMSG/RETM * RECOVERED ERROR THRESHOLD.*
RJM DEM DISPLAY ERROR MESSAGE
RJM ANL ADVANCE TO NEXT LINE
DSE12 LDD SR+4
SBD SH+4
MJN DSE13 IF NOT UNRECOVERED ERROR THRESHOLD
LDC /EEMSG/UETM * UNRECOVERED ERROR THRESHOLD.*
RJM DEM DISPLAY ERROR MESSAGE
RJM ANL ADVANCE TO NEXT LINE
DSE13 LJM DSE2 LOOP
DSEA BSS 0 TABLE OF MST ERROR MNEMONICS
CON 2R** (INVALID ERROR STATUS)
ECHO 1,ERRCODE=("MSTERR")
CON 2R_ERRCODE
ANL SPACE 4,20
** ANL - ADVANCE TO NEXT LINE.
*
* SET COORDINATES FOR MESSAGE TEXT ON NEXT LINE. IF FIRST
* LINE OF EQUIPMENT, DISPLAY EST ORDINAL, DEVICE TYPE AND
* DEVICE STATUS BEFORE ADVANCING.
*
* ENTRY (T5) = STATE * 2.
* (T6) = EST ORDINAL.
* (T7) = NUMBER OF UNITS.
* (AB+3) = EQUIPMENT MNEMONIC IF FIRST LINE.
*
* EXIT (XC) = COORDINATE FOR MESSAGE TEXT ON NEXT LINE.
* (YC) = COORDINATE FOR NEXT LINE.
*
* USES XC, YC.
*
* CALLS D4S.
ANL SUBR ENTRY/EXIT
LDD AB+3
ZJN ANL2 IF NOT FIRST LINE
LDC CH01
OAN CH+40
LDD T6 DISPLAY EST ORDINAL
RJM D4S
LDN 0
OAN CH+40
LDD AB+3 DISPLAY EQUIPMENT TYPE
OAN CH+40
LDD T7 DISPLAY NUMBER OF UNITS
ZJN ANL1 IF NOT MULTI UNIT DEVICE
ADC 2R-1
ANL1 OAN CH+40
LDN 0
STD AB+3
OAN CH+40
OAN CH+40
LDM ANLA,T5 DISPLAY DEVICE STATE
OAN CH+40
LDM ANLA+1,T5
OAN CH+40
ANL2 LCN YINC
RAD YC
OAN CH+40
LDC CH26
STD XC
OAN CH+40
UJP ANLX RETURN
ANLA DATA H*ON *
DATA H*IDLE*
DATA H*OFF *
DATA H*DOWN*
DEM SPACE 4,10
** DEM - DISPLAY ERROR MESSAGE.
*
* ENTRY (A) = CM OFFSET OF ERROR MESSAGE WITHIN TEXT OVERLAY.
*
* USES (CM - CM+4).
*
* CALLS DOL.
DEM SUBR ENTRY/EXIT
STD T0 SAVE MESSAGE OFFSET
LDK RPLP GET MESSAGE TEXT OVERLAY ADDRESS
CRD CM
LDD CM SET MESSAGE ADDRESS
SHN 14
ADD CM+1
ADD T0
RJM DOL DISPLAY ONE LINE
UJN DEMX RETURN
PEE SPACE 4,10
** PEE - PAGE *E,E* DISPLAY.
*
* ENTRY (LA) = LOAD ADDRESS.
* (T2) = 0 IF PAGE FORWARD.
* = 1 IF PAGE BACKWARD (RETURN TO PAGE ONE).
*
* USES T1.
PEE BSS 0 ENTRY
LDD LA GET LOAD ADDRESS
LMC .FLFT
ZJN PEE1 IF LEFT SCREEN
LDN 2
PEE1 STD T1 STORE SCREEN INDEX (0=LEFT, 2=RIGHT)
LDD T2
SBN 1
ZJN PEE2 IF RETURN TO PAGE ONE
LDM TDSE+1,T1
PEE2 STM TDSE,T1
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY E - FAMILY STATUS.),PEF
ENTRY DSEF,DSEF
DSE SPACE 4,10
*** *E,F* DISPLAY.
*
* EACH LINE DISPLAYS THE STATUS OF ONE MASS STORAGE EQ.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* EST TYPE PN FM/PK DN FAMC DAFC IAM DAM
*
* 123 EM 1 FAMILYA* 10 1 23 377 377
* 234 EM 2 PACKB 0 0 377 377
* 253 DL-2 FAMILYA* 10 1 23 377 377
* 432 DI-1/2 PACKB 0 0 377 377
DSEF SUBR ENTRY/EXIT
DISPHD (E,F. FAMILY STATUS.)
LDN ESTP READ EST POINTERS
CRD T4
LDD LA SET SCREEN
LMC .FLFT
ZJN DSE1 IF LEFT SCREEN
LDN 2
DSE1 STD T5
LDM CTOS SET INITIAL Y-COORDINATE
OAN CH+40
SBN YINC
STD YC
LDN DSEAL DISPLAY TITLE
OAM DSEA,CH
* LDN 0 CLEAR NEXT EST ORDINAL
STM TDSE+1,T5
LDM TDSE,T5 SET EST ORDINAL
STD T6
UJN DSE4 ENTER TABLE SCAN
* SCAN EST.
DSE2 AOD T6 ADVANCE EST ORDINAL
SBD T4+3
DSE3 PJN DSEFX IF END OF EST
DSE4 SFA EST,T6 READ NEXT EST ENTRY
ADK EQDE
CRD CM
LDD CM
SHN 21-13
PJN DSE2 IF NOT MASS STORAGE
LCN YINC UPDATE Y-COORDINATE
RAD YC
OAN CH+40
SBM CBOS
PJN DSE5 IF NOT BOTTOM OF SCREEN
LDN MOREL DISPLAY *MORE*
OAM MORE,CH
LDD T6
STM TDSE+1,T5
UJN DSE3 RETURN
* DISPLAY EST ORDINAL.
DSE5 LDD XC OUTPUT X-COORDINATE
OAN CH+40
LDD T6 DISPLAY EST ORDINAL
RJM D4S
LDN 0 SKIP TWO SPACES
OAN CH+40
* DISPLAY DEVICE TYPE.
LDD CM+3 DISPLAY TYPE
OAN CH+40
LDD CM+4 GET MST ADDRESS/10
SHN 3
ADN PFGL READ PERMANENT FILE DESCRIPTION WORD
CRD AB
ADN DDLL-PFGL READ DEVICE DESCRIPTION
CRD SR
LDD SR GET ORIGINAL NUMBER OF UNITS
SHN -3
LPN 7
STD T3
LDD SR GET NUMBER OF UNITS-1 CURRENTLY IN USE
LPN 7
STD T4
SHN 3
STD T1
ZJN DSE6 IF NOT *EQ-N*
LDD T3
SBD T4
PJN DSE7 IF *EQ-N*
DSE6 LDD AB+4
LPN 77
ZJN DSE7.1 IF *EQ*
STD T1
DSE7 LDD T1 DISPLAY *-N*
SHN -3
ADC 2R-1
OAN CH+40
LDD T1
LPN 7
ZJN DSE7.1 IF NOT *EQ-N/M*
ADC 2R/1
OAN CH+40
* DISPLAY PARTITION NUMBER IF ANY.
DSE7.1 LDD CM
SHN 21-5
PJN DSE8 IF NOT BUFFERED DEVICE
LDC CH15
OAN CH+40
SFA EST,T6 READ NEXT EST ENTRY
ADK EQAE
CRD SR
LDD SR+3
SHN 21-13
PJN DSE8 IF NO PARTITION NUMBER
SHN 6
LPN 17
RJM D2Z
* DISPLAY FAMILY NAME OR PACKNAME.
DSE8 LDC CH19
OAN CH+40
LDN 3 DISPLAY FIRST SIX CHARACTERS
OAM AB,CH
LDD CM+4 READ PERMANENT FILE USER DESCRIPTION
SHN 3
ADN PUGL
CRD SR
ADN DULL-PUGL READ DEVICE USAGE DESCRIPTION
CRD T0
ADN STLL-DULL
CRD CM
LDD SR
ZJN DSE9 IF USER NUMBER NOT PRESENT
LDN 1R*
DSE9 STD T0
LDD AB+3 DISPLAY LAST CHARACTER+USER FLAG
SCN 77
LMD T0
OAN CH+40
LDN 0 SKIP FOUR SPACES
OAN CH+40
OAN CH+40
* DISPLAY DEVICE NUMBER.
LDD AB+3
LPN 77
RJM D2Z
* DISPLAY FAMILY AND DIRECT FILE COUNTS.
LDD T0+4 DISPLAY FAMILY COUNT
LPC 3777
RJM D6S
LDD CM+3 DISPLAY DIRECT ACCESS FILE COUNT
RJM D6S
* OUTPUT DEVICE MASKS.
LDD SR+4 DISPLAY INDIRECT FILE MASK
LPC 377
RJM D6S
LDD SR+3 DISPLAY DIRECT FILE MASK
LPN 17
SHN 14
LMD SR+4
SHN -10
LPC 377
RJM D4S
LJM DSE2 PROCESS NEXT EST ENTRY
* SCREEN TITLE.
DSEA CON CH02
DATA H*EST*
CON CH09
DATA H*TYPE PN*
CON CH20
DATA H*FM/PK*
CON CH31
DATA H*DN*
CON CH37
DATA H*FAMC*
CON CH45
DATA H*DAFC*
CON CH54
DATA H*IAM DAM*
DSEAL EQU *-DSEA
PEF SPACE 4,10
** PEF - PAGE *E,F* DISPLAY.
*
* ENTRY (LA) = LOAD ADDRESS.
* (T2) = 0 IF PAGE FORWARD.
* = 1 IF PAGE BACKWARD (RETURN TO PAGE ONE).
*
* USES T1.
PEF BSS 0 ENTRY
LDD LA GET LOAD ADDRESS
LMC .FLFT
ZJN PEF1 IF LEFT SCREEN
LDN 2
PEF1 STD T1 STORE SCREEN INDEX (0=LEFT, 2=RIGHT)
LDD T2
SBN 1
ZJN PEF2 IF RETURN TO PAGE ONE
LDM TDSE+1,T1
PEF2 STM TDSE,T1
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY E - MASS STORAGE THRESHOLDS.),PEH
ENTRY DSEH,DSEH
DSE SPACE 4,15
*** *E,H* DISPLAY.
*
* TWO LINES ARE DISPLAYED FOR EACH MASS STORAGE DEVICE. THE
* FIRST LINE SHOWS THE VALUES OF THE THRESHOLDS FOR THE DEVICE
* AND THE SECOND LINE SHOWS THE CURRENT VALUES THAT CORRESPOND
* TO EACH THRESHOLD.
*
* EXAMPLE -
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* EST TYPE SIZE VF RA LS RE UE
*
* 6 DQ-3 3050 100 1000 400 10 4
* 0 2076 2076 14 1
DSEH SUBR ENTRY/EXIT
DISPHD (E,H. DISK THRESHOLDS.)
LDM CTOS SET INITIAL Y-COORDINATE
OAN CH+40
STD YC
LDN ESTP READ EST POINTERS
CRD T4
LDD LA SET SCREEN
LMC .FLFT
ZJN DSE1 IF LEFT SCREEN
LDN 2
DSE1 STD T5
DISPLA CH01,,( EST TYPE SIZE)
* LDN 0
STM TDSE+1,T5 CLEAR NEXT EST ORDINAL
STD T1
LDM TDSE,T5 SET EST ORDINAL
STD T6
DSE2 LDN 0 SKIP SIX SPACES
OAN CH+40
OAN CH+40
OAN CH+40
LDM DSEA,T1 OUTPUT NEXT TITLE
OAN CH+40
AOD T1
LMN DSEAL
NJN DSE2 IF MORE TITLES TO DISPLAY
UJN DSE5 ENTER LOOP
* SCAN EST.
DSE3 AOD T6 ADVANCE EST ORDINAL
SBD T4+3
DSE4 PJP DSEHX IF END OF MASS STORAGE EST
DSE5 SFA EST,T6
ADK EQDE
CRD CM READ NEXT EST ENTRY
LDD CM
SHN 21-13
PJN DSE3 IF NOT MASS STORAGE
LDM CBOS
ADN YINC*3
SBD YC
MJN DSE6 IF AT LEAST 3 LINES UNTIL BOTTOM OF SCREEN
LDN MOREL+1 DISPLAY *MORE*
OAM CBOS,CH
ERRNZ CBOS+1-MORE CODE ASSUMES *CBOS* IS BEFORE *MORE*
LDD T6
STM TDSE+1,T5
UJN DSE4 RETURN
* DISPLAY EST ORDINAL.
DSE6 LCN YINC*2 ADVANCE 2 LINES
RAD YC
OAN CH+40
LDD XC OUTPUT X-COORDINATE
OAN CH+40
LDD T6 DISPLAY EST ORDINAL
RJM D4S
LDN 0
OAN CH+40
STD T9
* DISPLAY DEVICE TYPE AND GET VALUES TO DISPLAY.
LDD CM+3 DISPLAY TYPE
OAN CH+40
LDD CM+4 READ NUMBER OF UNITS AND VALUES FROM MST
SHN 3
ADK TDGL
CRD CM
ADN DDLL-TDGL
CRD AB
ADN THLL-DDLL
CRD SH
ADN CTLL-THLL
CRD SR
LDD CM+4 SET CURRENT TRACK COUNT VALUES
STD SR+1
STD SR+2
LDD AB
LPN 7
ZJN DSE7 IF NOT MULTI UNIT DEVICE
ADC 2R-1
DSE7 OAN CH+40
LDN 0
OAN CH+40
OAN CH+40
STD T1 CLEAR OPERATOR NOTIFIED FLAGS
DSE8 LDM SR,T1
LPC 3777
STM SR,T1
LDM SH,T1
LPC 3777
STM SH,T1
AOD T1
LMN 5
NJN DSE8 IF MORE BYTES
LDD CM
RJM D4S DISPLAY TOTAL NUMBER OF TRACKS ON DEVICE
* DISPLAY THRESHOLDS.
DSE9 LDN 0 SKIP TWO SPACES
OAN CH+40
LDM SH,T9 DISPLAY NEXT THRESHOLD
RJM D4S
AOD T9
LMN 5
NJN DSE9 IF MORE THRESHOLDS TO DISPLAY
* DISPLAY VALUES CORRESPONDING TO THE THRESHOLDS.
STD T9
LCN YINC ADVANCE TO NEXT LINE
RAD YC
OAN CH+40
DSE10 LDM SH,T9 CHECK NEXT VALUE
SBM SR,T9
SBN 1
ADM DSEB,T9
SHN 0-21
LMM DSEB,T9
ZJN DSE11 IF THRESHOLD NOT REACHED
CFNC BIVF
SHN 1-21
LPN 2
DSE11 STD T2
DSE12 LDD T9 COMPUTE THE COORDINATE
SHN 3+3
ADK CH25
OAN CH+40
LDM SR,T9 DISPLAY VALUE
RJM D4S
SOD T2
PJN DSE12 IF MORE INTENSIFICATION
CFNC EIVF
AOD T9
LMN 5
NJP DSE10 IF MORE VALUES TO DISPLAY
LJM DSE3 ADVANCE TO NEXT EST ENTRY
DSEA CON 2RVF VERIFICATION FAILURES
CON 2RRA RESTRICT ACTIVITY
CON 2RLS LOW SPACE
CON 2RRE RECOVERED ERRORS
CON 2RUE UNRECOVERED ERRORS
DSEAL EQU *-DSEA
DSEB CON 0
CON 1
CON 1
CON 0
CON 0
PEH SPACE 4,10
** PEH - PAGE *E,H* DISPLAY.
*
* ENTRY (LA) = LOAD ADDRESS.
* (T2) = 0 IF PAGE FORWARD.
* = 1 IF PAGE BACKWARD (RETURN TO PAGE ONE).
*
* USES T1.
PEH BSS 0 ENTRY
LDD LA GET LOAD ADDRESS
LMC .FLFT
ZJN PEH1 IF LEFT SCREEN
LDN 2
PEH1 STD T1 STORE SCREEN INDEX (0=LEFT, 2=RIGHT)
LDD T2
SBN 1
ZJN PEH2 IF RETURN TO PAGE ONE
LDM TDSE+1,T1
PEH2 STM TDSE,T1
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
** COMMON DECKS.
*CALL COMPC2D
SPACE 4,10
DSPEND
DISPLAY (DISPLAY E - MASS STORAGE STATUS.),PEM,CMR
ENTRY DSEM,DSEM
DSE SPACE 4,10
*** *E,M* DISPLAY.
*
* EACH LINE DISPLAYS THE STATUS OF ONE MASS STORAGE DEVICE.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* EST TYPE STATE STATUS FILES TRACKS RP ERROR
*
* 5 DE ON ------IA-------- --------- 601 10
* 6 DQ-2 IDLE S--------F------ --------T 3027 FF
* 10 DJ OFF --RU------------ --------- 3150 LE
* 15 DI-8 DOWN SMRULCIAXFDO*NPG SBLPDROIT 3140
*
* PROGRAMMING NOTE.
*
* WHEN ADDING OR REMOVING A LETTER FROM THE STATUS OR FILE
* FIELDS, BE SURE TO UPDATE THE X-COORDINATES IN THE HEADER
* MESSAGE AND IN THE ERROR INTENSIFICATION CODE.
ERRNZ SR+5-SH DEFINITIONS ASSUME *SH* FOLLOWS *SR+4*
* FIRST SET OF READS.
.ACGL EQU AB BYTES 0 AND 4
.STLL EQU SR BYTES 0 AND 1
.MDGL EQU SR+2 BYTE 0
.DDLL EQU SR+3 BYTE 0
.SDGL EQU SR+5 BYTES 0 AND 4
* SECOND SET OF READS.
.TDGL EQU AB BYTES 1 AND 4
.STLL EQU SR BYTES 0 AND 1
.DALL EQU SR+2 BYTE 0
.DILL EQU SR+3 BYTE 0
DSEM SUBR ENTRY/EXIT
DISPHD (E,M. DISK STATUS.)
LDN ESTP READ EST POINTERS
CRD T4
LDD LA SET SCREEN
LMC .FLFT
ZJN DSE0 IF LEFT SCREEN
LDN 2
DSE0 STD T5
LDM CTOS SET INITIAL Y-COORDINATE
OAN CH+40
SBN YINC
STD YC
LDN DSEAL DISPLAY TITLE LINE
OAM DSEA,CH
* LDN 0 CLEAR NEXT EST ORDINAL
STM TDSE+1,T5
LDM TDSE,T5 SET EST ORDINAL
STD T6
LJM DSE8 ENTER EST SEARCH LOOP
* PROCESS NEXT EST ENTRY.
DSE1 LDD CM+4 READ MST DATA
SHN 3
ADK ACGL READ DEVICE ACTIVITY
CRD .ACGL
ADK STLL-ACGL READ DEVICE STATUS
CRD .STLL
ADK MDGL-STLL READ DEVICE DESCRIPTION WORD
CRD .MDGL
ADK DDLL-MDGL READ NUMBER OF UNITS
CRD .DDLL
ADK SDGL-DDLL READ SHARED DEVICE TYPE
CRD .SDGL
LDD XC OUTPUT X-COORDINATE
OAN CH+40
LDD T6 DISPLAY EST ORDINAL
RJM D4S
* DISPLAY DEVICE TYPE.
LDD CM+3
OAN CH+40
LDD .DDLL
LPN 7
ZJN DSE2 IF NOT MULTI UNIT DEVICE
ADC 2R-1
DSE2 OAN CH+40
LDN 0 SKIP TWO SPACES
OAN CH+40
* DISPLAY DEVICE STATE.
LDD CM GET STATE
SHN 1
LPN 6
STD T1
LDM DSEG,T1
OAN CH+40
LDM DSEG+1,T1
OAN CH+40
LDN 0 SKIP TWO SPACES
OAN CH+40
* COLLECT STATUS BITS.
LDD CM
LPC 3400 SET S,M,R
SHN 1
STD CN SMR.........
LDD CM SET U
LPC 100
SHN 10-6
RAD CN SMRU........
LDD .SDGL CHECK FOR ISHARED
SHN 21-13
LMD .STLL SET L,C
PJN DSE4 IF NOT ISHARED
LPN 10 SAVE L
STD T0
LDN 15 CHANGE *LC* TO *LT*
IFNE 2RLT&2R--,2RLC&2R--+15,1
ERR 15 WILL NOT CHANGE *LC* INTO *LT*
RAM DSEH
LDD .SDGL+4 CHECK FOR INTERLOCK
LPN 76
ZJN DSE3 IF NOT INTERLOCKED
LDN 4 SET T
DSE3 ADD T0
DSE4 LPN 14
SHN 7-3
RAD CN SMRULC......
LDD .STLL SET I
LPN MLIRP
ZJN DSE5 IF NO INITIALIZE OR FORMAT STATUS SET
LDN 40 SMRULCI.....
RAD CN
DSE5 LDD .STLL SET A
LPN 1
SHN 4-0
RAD CN SMRULCIA....
LDD .MDGL SET X
SHN 3-12
LPN 10
RAD CN SMRULCIAX...
LDD .ACGL SET F,D,O
SHN -11
RAD CN SMRULCIAXOFD
LDC. DSEB
RJM DBS
LDC 2RLC&2R-- RESTORE CHECKPOINT CODE
STM DSEH
LDD .ACGL+4 SET *
LPC 4000
STD CN *...
LDD .ACGL+4 SET N
LPN 40
SHN 12-5
RAD CN *N..
LDD CM
LPN 4
SHN 10-2 SET G
RAD CN
LDD CM+4 READ TRT DEFINITION
SHN 3
ADK TDGL READ DEVICE PERMANENT FILE INTERLOCK
CRD .TDGL
ADK DALL-TDGL READ NUMBER OF REQUESTS PENDING
CRD .DALL
ADK DILL-DALL READ ALLOWABLE FILE TYPES
CRD .DILL
LDD .TDGL+1 SET P
LPC 100
SHN 11-6
RAD CN *NPG
LDC. DSEC
RJM DBS
* LDN 0 SKIP TWO SPACES
OAN CH+40
* GET FILE TYPE BITS.
LDD .DILL
LPC 777
SHN 3
ADN 4 SET UNUSED BIT
STD CN
LDC. DSED
RJM DBS
* LDN 0 SKIP TWO SPACES
OAN CH+40
* DISPLAY AVAILABLE TRACKS.
LDD .TDGL+4 DISPLAY TRACKS AVAILABLE COUNT
RJM D4S
* DISPLAY REQUESTS PENDING.
LDC CH54
OAN CH+40
LDD .DALL DISPLAY PENDING REQUESTS
LPN 77
ZJN DSE6 IF NO PENDING REQUESTS
RJM D4S
* DISPLAY ERROR STATUS.
DSE6 LDD .STLL+1 GET ERROR STATUS
LPN 77
ZJN DSE7 IF NO ERROR STATUS
STD T1
SBN MXEC
MJN DSE6.1 IF VALID ERROR STATUS
LDN 0 INDICATE INVALID ERROR STATUS
STD T1
DSE6.1 LDM DSEE,T1 SET ERROR STATUS MNENONIC
STM DSEF+1
LDC. 2S12+DSEF DISPLAY ERROR STATUS
RJP HIL
* ADVANCE TO NEXT EST ENTRY.
DSE7 AOD T6 ADVANCE EST ORDINAL
SBD T4+3
PJN DSE10 IF END OF MASS STORAGE ENTRIES
DSE8 SFA EST,T6 READ NEXT EST ENTRY
ADK EQDE
CRD CM
LDD CM
SHN 21-13
PJN DSE7 IF NOT MASS STORAGE
LCN YINC
RAD YC DECREMENT Y-COORDINATE
OAN CH+40
SBM CBOS
MJN DSE9 IF BOTTOM OF SCREEN
LJM DSE1 LOOP FOR NEXT EST ENTRY
DSE9 LDN MOREL
OAM MORE,CH
LDD T6
STM TDSE+1,T5
DSE10 LJM DSEMX RETURN
* COLUMN HEADERS.
DSEA CON CH02
DATA H*EST TYPE STATE*
CON CH24
DATA H*STATUS*
CON CH39
DATA H*FILES*
CON CH48
DATA H*TRACKS*
CON CH56
DATA H*RP*
CON CH60
DATA H*ERROR*
DSEAL EQU *-DSEA
DSEB CON 2RSM&2R--
CON 2RRU&2R--
DSEH CON 2RLC&2R--
CON 2RIA&2R--
CON 2RXF&2R--
CON 2RDO&2R--
CON 0
DSEC CON 2R*N&2R--
CON 2RPG&2R--
CON 0
DSED CON 2RSB&2R--
CON 2RLP&2R--
CON 2RDR&2R--
CON 2ROI&2R--
CON 2RT &2R--
CON 0
DSEE BSS 0 TABLE OF MST ERROR MNEMONICS
CON 2R** (INVALID ERROR STATUS)
ECHO 1,ERRCODE=("MSTERR")
CON 2R_ERRCODE
DSEF CON CH62,0 ERROR CODE
DSEG DATA H*ON *
DATA H*IDLE*
DATA H*OFF *
DATA H*DOWN*
SPACE 4
** COMMON DECKS.
LIST X
*CALL COMDDBS
LIST *
PEM SPACE 4,10
** PEM - PAGE *E,M* DISPLAY.
*
* (LA) = LOAD ADDRESS.
* (T2) = 0 IF PAGE FORWARD.
* = 1 IF PAGE BACKWARD (RETURN TO PAGE ONE).
*
* USES T1.
PEM BSS 0 ENTRY
LDD LA GET LOAD ADDRESS
LMC .FLFT
ZJN PEM1 IF LEFT SCREEN
LDN 2
PEM1 STD T1 STORE SCREEN INDEX (0=LEFT, 2=RIGHT)
LDD T2
SBN 1
ZJN PEM2 IF RETURN TO PAGE ONE
LDM TDSE+1,T1
PEM2 STM TDSE,T1
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY E - OPTICAL DISK REQUEST PREVIEW.),PEO
ENTRY DSEO,DSEO
DSE SPACE 4,20
*** *E,O* DISPLAY.
*
* PREVIEW OPTICAL DISK REQUESTS.
* EACH LINE DISPLAYS ONE OPTICAL DISK REQUEST.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* JSN EQ VSN USERNAM WT STATUS JBM=AAAQ
*
* AABK OD LABEL12 DON YES
* AAQI OD VV0002 3KSNN64
* AAAQ JB AA0077 SYSTEMX (STAGE)
DSEO SUBR ENTRY/EXIT
DISPHD (E,O. OPTICAL DISK REQUESTS.)
DSED RJM IFP INITIALIZE *SFA* MACRO
* UJN DSE1 (AFTER FIRST ENTRY)
ISTORE DSED,(UJN DSE1)
DSE1 LDD LA SET SCREEN
LMC .FLFT
ZJN DSE2 IF LEFT SCREEN
LDN 2
DSE2 STD T4 (T4) = 0 IF LEFT, 2 IF RIGHT
LDM CTOS SET INITIAL Y-COORDINATE
OAN CH+40
SBN YINC
STD YC
LDN DSEAL DISPLAY TITLE LINE
OAM DSEA,CH
* LDN 0 DISPLAY JSN OF JUKEBOX MANAGER
SFA ORT
ADN ORTJ
CRD CM
LDN 2
OAM CM+3,CH
* LDN 0 CLEAR NEXT ORT ORDINAL
STM TDSE+1,T4
LDM TDSE,T4 SET CURRENT ORT ORDINAL
STD T6
LDC ORTP GET NUMBER OF ENTRIES
CRD SR
LDD SR+2 CALCULATE NUMBER OF ENTRIES IN USE
SBD SR+3
STD T3
NJN DSE5 IF ENTRIES IN USE
DSE3 UJP DSEOX RETURN
DSE4 SOD T3
ZJP DSE3 IF NO MORE ENTRIES IN USE
DSE5 AOD T6 ADVANCE INDEX
LMD SR+2
ZJP DSE3 IF END OF ORT
SFA ORT,T6 GET NEXT ORT ENTRY
ADK ORTV
CRD CM GET CHARACTERS 1-10 OF VSN
ADN ORTU-ORTV
CRD AB GET JUKEBOX FLAG
LDD CM
ZJN DSE5 IF ENTRY NOT USED
LCN YINC
RAD YC DECREMENT Y-COORDINATE
OAN CH+40
SBM CBOS
PJN DSE6 IF NOT BOTTOM OF SCREEN
LDN MOREL
OAM MORE,CH
LDD T6 SET NEXT ORDINAL
STM TDSE+1,T4
UJP DSE3 RETURN
DSE6 LDD AB+4 GET JUKEBOX FLAG
LPN 4
SHN -2
STD T1
ZJN DSE7 IF DISK NOT IN JUKEBOX
LDM TGTF,T4 GET TOGGLE FLAG FOR DISPLAY
NJP DSE4 IF DISPLAY OF JUKEBOX REQUESTS DISABLED
DSE7 LDD XC OUTPUT X-COORDINATE
OAN CH+40
SFA ORT,T6 READ JSN AND CHARACTERS 11-12 OF VSN
ADN ORTJ
CRD AB
LDN 2 DISPLAY JSN
OAM AB+3,CH
OAN CH DISPLAY 2 SPACES
LDM DSEC,T1 DISPLAY EQUIPMENT TYPE
OAN CH
LDN 0
OAN CH DISPLAY 2 SPACES
LDN 5 DISPLAY VSN (CHARACTERS 1-10)
OAM CM,CH
LDD AB DISPLAY VSN (CHARACTERS 11-12)
OAN CH
SFA ORT,T6 GET USER NAME
ADN ORTU
CRD CM
LDN 0
OAN CH DISPLAY 2 SPACES
LDN 3 DISPLAY USER NAME
OAM CM,CH
LDD CM+3
SCN 77
OAN CH
LDD CM+4 GET WRITE STATUS
LPN 1
ZJN DSE8 IF WRITE NOT REQUIRED
LDC 2RYE DISPLAY *YES*
OAN CH
LDC 2RS
OAN CH
DSE8 LDC CH44
OAN CH
LDD CM+4 GET PF STAGING STATUS
LPN 2
ZJN DSE9 IF NOT STAGING JOB
LDN DSEBL DISPLAY *(STAGE)*
OAM DSEB,CH
DSE9 LJM DSE4 PROCESS NEXT ENTRY
* DISPLAY CONSTANTS.
DSEA CON CH01
DATA H*JSN EQ VSN*
CON CH25
DATA H*USERNAM WT*
CON CH44
DATA H*STATUS*
CON CH54
DATA H*JBM=*
DSEAL EQU *-DSEA
DSEB DATA H*(STAGE)*
DSEBL EQU *-DSEB
DSEC DATA 2ROD REQUEST EQUIPMENT TYPES
DATA 2RJB
PEO SPACE 4,10
** PEO - PAGE *E,O* DISPLAY.
*
* (LA) = LOAD ADDRESS.
* (T2) = 0 IF PAGE FORWARD.
* = 1 IF PAGE BACKWARD (RETURN TO PAGE ONE).
*
* USES T1.
PEO BSS 0 ENTRY
LDD LA GET LOAD ADDRESS
LMC .FLFT
ZJN PEO1 IF LEFT SCREEN
LDN 2
PEO1 STD T1 STORE SCREEN INDEX (0=LEFT, 2=RIGHT)
LDD T2
SBN 1
ZJN PEO2 IF RETURN TO PAGE ONE
LDM TDSE+1,T1
PEO2 STM TDSE,T1
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
* COMMON DECKS.
ORT$ EQU 1 ORT SEARCH
IFP$ EQU 1 *COMPGFP* REMOTE ASSEMBLY
*CALL COMPGFP
IFP HERE
SPACE 4,10
DSPEND
DISPLAY (DISPLAY E - RESOURCE MOUNTING PREVIEW.)
ENTRY DSEP,DSEP
DSE SPACE 4,30
*** *E,P* DISPLAY.
*
* PREVIEW RESOURCE (TAPES AND PACKS) MOUNTING.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* JSN UNIT RS VSN/PN MD LEVEL USER FAMILY ERR
*
* AWRE NT060 GE AA0012 W USERAAA FAM AC
* AQQQ CT100 CT DB1140 R GSY2447 KTJ VS
* AJQR PE SCRATCH W SYSTEMX DEFTFAM
* AAAD DL1 PACKC - GSY2447 DNB OF
* ABCD CT C00800 - GSY2447 KTJ
* ABDR GE ARX007 - GSY2447 NVE DC
*
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* JSN UNIT RS IVSN/PN FLG
*
* AWRE NT060 GE BB0012 T- ACCESS NOT PERMITTED
* AQQQ CT100 CT R45678 TL WRONG VSN
* AJQR PE SCRATCH T-
* AAAD DL1 PACKC -- REQUIRED EQUIPMENT OFF/DOWN
* ABCD CT C00800 --
* ABDR GE ARX007 T- NT062 DRIVE TYPE CONFLICT
DSEP SUBR ENTRY/EXIT
DISPHD (E,P. RESOURCE REQUESTS.)
LDM CTOS SET INITIAL Y-COORDINATE
OAN CH+40
SBN YINC
STD YC
RJM CMT CHECK MAGNET
NJN DSE1 IF MAGNET ACTIVE
DISPLA CH01,,(NOT ACTIVE)
UJN DSEPX RETURN
* DISPLAY HEADER.
DSE1 LDD LA
LMC .FLFT
ZJN DSE2 IF LEFT SCREEN
LDN 1
DSE2 STD T9 SET *TGTF* INDEX FOR SCREEN
LDD T1 CLEAR *MAGNET* MESSAGE LINE
SHN 7
ADN MS2W
CRD AB SAVE MESSAGE
CWD T3
LDD AB
ZJN DSE3 IF NO MESSAGE
RJM SBO INDICATE OPERATOR ACTION REQUIRED
DSE3 LDN DSEAL DISPLAY COMMON TITLE TEXT
OAM DSEA,CH
LDM TGTF,T9
STD T9 SET ALTERNATE DISPLAY STATUS
NJP DSE4 IF ALTERNATE DISPLAY
LDN DSEBL DISPLAY MAIN TITLE TEXT
OAM DSEB,CH
UJN DSE5 DISPLAY UDT REQUESTS
DSE4 LDN DSECL DISPLAY ALTERNATE TITLE TEXT
OAM DSEC,CH
* DISPLAY UDT REQUESTS.
DSE5 LDN 0 INITIALIZE UDT OFFSET
STD T8
DSE6 LDD T7 SET UDT ADDRESS
SHN 6
ADD T6
ADD T8
ADK /MTX/UST1 GET EST ORDINAL
CRD CM
ADK /MTX/UVRI-/MTX/UST1 GET EJT ORDINAL AND FLAGS
CRD T1
ADK /MTX/UESN-/MTX/UVRI GET EXTERNAL VSN AND FLAGS
CRD SH
CRM EVSN,ON
ADK /MTX/UISN-/MTX/UESN-1 GET INTERNAL VSN AND FLAGS
CRD SR
CRM IVSN,ON
ADK /MTX/UUFN-/MTX/UISN-1 GET USER NAME AND FAMILY
CRD AB
LDD T1+4
SHN 21-0
PJN DSE7 IF NO DISPLAY REQUEST
LDD T1 SET EJT ORDINAL
STD AB+4
LDN 0 CLEAR UNUSED VSN FIELDS
STM EVSN+3
STM EVSN+4
STD SH
STM IVSN+3
STM IVSN+4
STD SR
RJM DPI DISPLAY PREVIEW INFORMATION
DSE7 LDK /MTX/UNITL ADVANCE UDT OFFSET
RAD T8
LMM LUDT
NJP DSE6 IF NOT END OF UNITS
* DISPLAY PREVIEW BUFFER.
STD T8 INITIALIZE BUFFER OFFSET
LDK LDSP GET PREVIEW DISPLAY BUFFER POINTER
CRD T4
DSE8 LDD T6 SET ENTRY ADDRESS
SHN 14
ADD T7
ADK LLDS+1
ADD T8
ADK /RSX/PVSN GET VSN OR PACK NAME
CRM EVSN,ON
ADK /RSX/PRES-/RSX/PVSN-1 GET RESOURCE TYPE AND FLAGS
CRD SH
ADK /RSX/PVSI-/RSX/PRES GET INTERNAL VSN
CRM IVSN,ON
ADK /RSX/PFLG-/RSX/PVSI-1 GET FLAGS
CRD SR
ADK /RSX/PJID-/RSX/PFLG GET JOB AND USER IDENTIFICATION
CRD AB
LDM EVSN
ZJN DSE9 IF END OF ENTRIES
LDN 0 INDICATE NO EST ORDINAL
STD CM+2
RJM DPI DISPLAY PREVIEW INFORMATION
LDN /RSX/PVEL ADVANCE ENTRY OFFSET
RAD T8
LMK LPDS-1
NJN DSE8 IF NOT END OF ENTRIES
DSE9 LJM DSEPX EXIT
DSEA CON CH01
DATA H*JSN UNIT RS *
DSEAL EQU *-DSEA
DSEB CON CH16
DATA H*VSN/PN MD LEVEL USER FAMILY ERR*
DSEBL EQU *-DSEB
DSEC CON CH16
DATA H*IVSN/PN FLG*
DSECL EQU *-DSEC
DEO SPACE 4,15
** DEO - DISPLAY EST ORDINAL WITH EQUIPMENT MNEMONIC.
*
* ENTRY (A) = EST ORDINAL.
*
* EXIT EST EQUIPMENT MNEMONIC AND EST ORDINAL DISPLAYED.
*
* USES T1 - T5.
*
* CALLS D2D.
*
* MACROS SFA.
DEO SUBR ENTRY/EXIT
STD T0 SAVE EST ORDINAL
SFA EST GET EQUIPMENT MNEMONIC
ADK EQDE
CRD T1
LDD T1+3 DISPLAY EQUIPMENT MNEMONIC
OAN CH+40
LDD T0 SAVE EST ORDINAL
STD T1
SHN -3
RJM D2D
LDD T1
LPN 7
ADN 1R0
SHN 6
OAN CH+40
UJN DEOX RETURN
DPI SPACE 4,20
** DPI - DISPLAY PREVIEW INFORMATION.
*
* ENTRY (T9) .NE. 0 IF ALTERNATE DISPLAY.
* (CM+2) = EST ORDINAL IF UDT REQUEST.
* (CM+2) = 0 IF PREVIEW BUFFER REQUEST.
* (EVSN - EVSN+4) = *PVSN*.
* (SH - SH+4) = *PRES*.
* (IVSN - IVSN+4) = *PVSI*.
* (SR - SR+4) = *PFLG*.
* (AB - AB+4) = *PJID*.
*
* EXIT TO CALLER IF LINE DISPLAYED.
* TO *DSEPX* IF DISPLAY FULL.
*
* USES T1 - T5, YC, SH - SH+4.
*
* CALLS DAL, DEO.
DPI SUBR ENTRY/EXIT
* CHECK SPACE REMAINING ON DISPLAY AND GET MESSAGE TEXT.
LCN YINC
RAD YC
SBM CBOS
MJP DSEPX IF NO MORE ROOM ON DISPLAY
LDK RPLP GET RPL POINTER
CRD T1
LDD SR+3 SET MESSAGE OFFSET
LPN 77
STD T3
SHN 1
RAD T3
LDD T1 SET MESSAGE ADDRESS
SHN 14
ADD T2
ADD T3
ADK /DSD".AMSGOVL"/PDMS
CRM MSGB,TR READ MESSAGE AND MNEMONIC
* DISPLAY JSN, ASSIGNED UNIT NUMBER, AND RESOURCE TYPE.
LDN 2 OUTPUT COORDINATES
OAM XC,CH
SFA EJT,AB+4 GET JSN
ADK JSNE
CRD T1
LDN 2 DISPLAY JSN
OAM T1,CH
LDC CH06 POSITION TO EST ORDINAL
OAN CH+40
LDD CM+2
ZJN DPI1 IF NOT UDT REQUEST
RJM DEO DISPLAY EST ORDINAL
DPI1 LDC CH12 POSITION TO RESOURCE TYPE
OAN CH+40
LDD SH+3 DISPLAY RESOURCE TYPE
OAN CH+40
LDD SH+4
LPN 20
ZJN DPI2 IF NOT TO DISPLAY UNIT COUNT
LDD SH+4
SHN -3
LPC 700
ADC 1R1*100
DPI2 OAN CH+40 DISPLAY UNIT COUNT
LDD T9
NJP DPI8 IF ALTERNATE DISPLAY
* DISPLAY VSN/PACK, MODE, LEVEL, USER NAME, FAMILY, AND ERROR.
LDD SH+4
SHN 21-5
PJN DPI3 IF NOT SCRATCH VSN
LDN 5
OAM DPIC,CH DISPLAY *SCRATCH* AS VSN
UJN DPI4 DISPLAY VSN
DPI3 LDN 5 DISPLAY VSN/PACK NAME
OAM EVSN,CH
DPI4 LDD SH
OAN CH+40
LDD SR+3 DISPLAY ACCESS MODE
SHN -6
LPN 3
STD T1
LDM DPIA,T1
OAN CH+40
LDD SF
ZJN DPI5 IF NOT SECURED MODE
LDC CH31 POSITION TO ACCESS LEVEL
OAN CH+40
LDD SH+4
SHN 21-3
PJN DPI5 IF NOT TO DISPLAY ACCESS LEVEL
SHN 0-6-21+3+22
LPN 7
RJM DAL DISPLAY ACCESS LEVEL
UJN DPI6 DISPLAY USER NAME
DPI5 LDC CH39 POSITION TO USER NAME
OAN CH+40
DPI6 LDN 3 DISPLAY USER NAME
OAM AB,CH
LDD AB+3
SCN 77
OAN CH+40
LDN ZERL PRESET FAMILY NAME
CRD SH
LDD AB+3 GET FAMILY ORDINAL
LPN 77
ZJN DPI7 IF FAMILY NOT DEFINED
STD T0
LDK FOTP GET FOT POINTER
CRD T1
LDD T1
SHN 14
ADD T2
ADD T0
CRD SH GET FAMILY NAME
DPI7 LDN 3 DISPLAY FAMILY
OAM SH,CH
LDD SH+4
SCN 77
OAN CH+40
LDM MSGB+16 DISPLAY ERROR MNEMONIC
OAN CH+40
LJM DPIX RETURN
* DISPLAY INTERNAL VSN/PACK, FLAGS, AND ERROR MESSAGE.
DPI8 LDN 5 DISPLAY INTERNAL VSN
OAM IVSN,CH
LDD SR
OAN CH+40
LDC CH29 POSITION TO FLAGS
OAN CH+40
LDD SR+3
SHN -10
LPN 3
STD T1
LDM DPIB,T1 DISPLAY TMS, LABELED STATUS
OAN CH+40
LDN 0
OAN CH+40
LDD SR+4
ZJN DPI9 IF NOT MESSAGE WITH EST ORDINAL
RJM DEO DISPLAY EST ORDINAL AND EQUPMENT TYPE
LCN 3 ADJUST BYTE COUNT
DPI9 ADN 16 DISPLAY ERROR MESSAGE
OAM MSGB,CH
LJM DPIX RETURN
DPIA BSS 0 ACCESS MODES
DATA H* -*
DATA H* R*
DATA H* W*
SPACE 4,10
DPIB BSS 0 TMS, LABELED REQUEST FLAGS
DATA H*--*
DATA H*-L*
DATA H*T-*
DATA H*TL*
DPIC DATA 10LSCRATCH
SPACE 4,10
** BUFFERS OVERLAYING INSTRUCTION RELOCATION TABLE.
MSGB EQU * ERROR MESSAGE AND MNEMONIC BUFFER
EVSN EQU MSGB+3*5 *PVSN*
IVSN EQU EVSN+5 *PVSI*
EBUF EQU IVSN+5 END OF BUFFERS
BSS 10 PAD FOR DATA AREA
ERRNG .EREL-EBUF BUFFER OVERFLOW
DSPEND
DISPLAY (DISPLAY E - OPTICAL DISK STATUS.),PES
ENTRY DSES,DSES
DSE SPACE 4,20
*** *E,S* DISPLAY.
*
* OPTICAL DISK STATUS DISPLAY.
* EACH LINE DISPLAYS THE STATUS OF ONE OPTICAL DISK DRIVE.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* EST VSN PARTITION WT STATUS AFC
*
* 30 DON DEFAULT NO READY 0
* 31* LABEL12 PART01 YES READY 12
* 32 YES IDLE 0
* 33 3KSNN64 DEFAULT YES FAULT 10
DSES SUBR ENTRY/EXIT
DISPHD (E,S. OPTICAL DISK STATUS.)
LDM CTOS SET INITIAL Y-COORDINATE
OAN CH+40
SBN YINC
STD YC
LDN ESTP READ EST POINTERS
CRD T4
LDD T4+2 SET LAST EST ORDINAL
STM DSED
LDC OSTP READ OST POINTER
CRD CM
LDD CM SET FWA OF OST
LPN 77
ADC ADCI
STM DSEE
LDD CM+1
STM DSEE+1
LDD LA SET SCREEN
LMC .FLFT
ZJN DSE1 IF LEFT SCREEN
LDN 2
DSE1 STD T5
LDN DSEAL DISPLAY TITLE
OAM DSEA,CH
* LDN 0 CLEAR NEXT EST ORDINAL
STM TDSE+1,T5
LDM TDSE,T5 SET EST ORDINAL
STD T6
LJM DSE9 ENTER EST SEARCH LOOP
* DISPLAY EST ORDINAL.
DSE2 LDD XC OUTPUT X-COORDINATE
OAN CH+40
LDD AB+4
ZJN DSE3 IF NOT ASSIGNED
LDC 2R*
DSE3 STM D4SB SET ASSIGNMENT STATUS
LDD T6 DISPLAY EST ORDINAL
RJM D4S
LDN 0
STM D4SB
OAN CH+40 DISPLAY 2 SPACES
* DISPLAY VSN/PARTITION NAME.
LDN 6 DISPLAY VSN
OAM ODST+5*OSTV,CH
OAN CH DISPLAY 4 SPACES
OAN CH
LDN 6 DISPLAY PARTITION NAME
OAM ODST+5*OSTI,CH
OAN CH DISPLAY 4 SPACES
OAN CH
* DISPLAY WRITE PROTECT STATUS.
LDM ODST+5*OSTS+3 GET DETAILED STATUS BYTE 21
LPC 140
ZJN DSE4 IF NOT WRITE PROTECTED
LDC 2RNO DISPLAY *NO*
OAN CH
LDN 0
UJN DSE5 DISPLAY WRITE STATUS
DSE4 LDC 2RYE DISPLAY *YES*
OAN CH
LDC 2RS
DSE5 OAN CH DISPLAY WRITE STATUS
LDN 0 DISPLAY 2 SPACES
OAN CH
* DISPLAY STATUS.
LDC. DSEB SET FWA OF STATUS LIST
STD T1
LDD CM GET EQUIPMENT STATUS
LPN 3
SBN 2
ZJN DSE6 IF *OFF*
LDN 3
RAD T1
LDD CM
LPN 3
SBN 3
ZJN DSE6 IF *DOWN*
LDN 3
RAD T1
LDM ODST+5*OSTS+2 GET CARTRIDGE STATUS
ZJN DSE6 IF *IDLE*
LDN 3
RAD T1
LDM ODST+5*OSTS+2
SHN 21-13
MJN DSE7 IF *BUSY*
LDN 3
RAD T1
LDM ODST+5*OSTS+3 GET DETAILED STATUS BYTE 21
STD T2
LPN 4 GET DRIVE SPINNING FLAG
DSE6 ZJN DSE7 IF *NOTRDY*
LDN 3
RAD T1
LDD T2
LPC 200 GET DEVICE ERROR FLAG
NJN DSE7 IF *ERROR*
LDN 3
RAD T1
LDD T2
LPN 10 GET DEVICE FAULT FLAG
NJN DSE7 IF *FAULT*
LDN 3
RAD T1 SET DEFAULT STATUS = *READY*
DSE7 LDD T1
STM DSEC
LDN 3 DISPLAY STATUS
OAM **,CH
DSEC EQU *-1
* DISPLAY ACTIVE FILE COUNT.
LDN 0 DISPLAY 2 SPACES
OAN CH
LDM ODST+5*OSTF+3 GET ACTIVE FILE COUNT
SHN 14
LMM ODST+5*OSTF+4
RJM D6S DISPLAY FILE COUNT
* SEARCH FOR NEXT ENTRY.
DSE8 AOD T6 ADVANCE EST ORDINAL
LMC **
DSED EQU *-1
ZJP DSESX IF NO MORE EQUIPMENT ENTRIES
DSE9 SFA EST,T6 READ NEXT EST ENTRY
ADK EQDE
CRD CM
ADN EQAE-EQDE
CRD AB
LDD CM+3
LMC 2ROD
NJN DSE8 IF NOT OPTICAL DISK
LCN YINC
RAD YC DECREMENT Y-COORDINATE
OAN CH+40
SBM CBOS
MJN DSE10 IF BOTTOM OF SCREEN
LDN OSTE SET LENGTH OF OST ENTRY
STD T1
LDD AB+2 GET OST ORDINAL FOR EQUIPMENT
LPN 77
SHN 2 *4, CONVERT ORDINAL TO OFFSET
ERRNZ OSTE-4 CODE DEPENDS ON VALUE
DSEE ADC **
CRM ODST,T1 READ OST ENTRY
LJM DSE2 PROCESS EST ENTRY
DSE10 LDN MOREL OUTPUT *MORE* MESSAGE
OAM MORE,CH
LDD T6
STM TDSE+1,T5
LJM DSESX RETURN
* SCREEN TITLE.
DSEA CON CH02
DATA H*EST*
CON CH09
DATA H*VSN*
CON CH25
DATA H*PARTITION*
CON CH41
DATA H*WT STATUS AFC*
DSEAL EQU *-DSEA
* STATUS MESSAGES.
DSEB DATA H*OFF *
DATA H*DOWN *
DATA H*IDLE *
DATA H*BUSY *
DATA H*NOTRDY*
DATA H*ERROR *
DATA H*FAULT *
DATA H*READY *
PES SPACE 4,10
** PES - PAGE *E,C* DISPLAY.
*
* ENTRY (LA) = LOAD ADDRESS.
* (T2) = 0 IF PAGE FORWARD.
* = 1 IF PAGE BACKWARD (RETURN TO PAGE ONE).
*
* USES T1.
PES BSS 0 ENTRY
LDD LA GET LOAD ADDRESS
LMC .FLFT
ZJN PES1 IF LEFT SCREEN
LDN 2
PES1 STD T1 STORE SCREEN INDEX (0=LEFT, 2=RIGHT)
LDD T2
SBN 1
ZJN PES2 IF RETURN TO PAGE ONE
LDM TDSE+1,T1
PES2 STM TDSE,T1
LJM. /KEYBOARD/KBIX RETURN
ODST SPACE 4,16
** OST ENTRY BUFFER.
ODST BSS 5*OSTE
SPACE 4,10
DSPEND
DISPLAY (DISPLAY E - MAGNETIC TAPES.),PET
ENTRY DSET,DSET
DSET SPACE 4,10
*** *E,T* DISPLAY.
*
* EACH TWO LINES DISPLAY THE STATUS OF ONE TAPE EQUIPMENT.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* EST VSN DEN RING FMT JSN STATUS REEL MODE
*
* MT052 1600 IDLE
*
* NT053 ***053 1600 IN SI ASDF LOADPT 1 AS
* UNLABELED.
DSET SUBR ENTRY/EXIT
DISPHD (E,T. TAPE STATUS.)
LDM CTOS SET INITIAL Y-COORDINATE
OAN CH+40
SBN YINC*2
STD YC
RJM CMT CHECK MAGNET
NJN DSE1 IF *MAGNET* ACTIVE
DISPLA CH01,,(NOT ACTIVE)
UJN DSETX RETURN
DSE1 LDN 0 INITIALIZE NEXT UDT OFFSET
STM TDSEA+1
LDM TDSEA SET STARTING UDT OFFSET
STM DSED
ADD T6 SET STARTING UDT ADDRESS
STD T9
* DISPLAY TITLE.
DSE2 LDN DSECL DISPLAY TITLE LINE
OAM DSEC,CH
LDD T9
ZJN DSETX IF NO TAPES IN CONFIGURATION
LDN /MTX/PGS2 SET NUMBER OF ENTRIES PER PAGE
STD T8
LDM DCTY SET SPACING
NJN DSE3 IF CC634B
LDC /MTX/PGSZ*/MTX/UNITL
SBM LUDT
MJN DSE4 IF .GT. *PGSZ* UNITS
LDN YINC&C721
DSE3 LMN YINC&C721
STM DSEB
RAD YC
LDN /MTX/PGSZ RESET NUMBER OF ENTRIES PER PAGE
STD T8
* GET DATA FROM MAGNET.
DSE4 LDD T7 COMPUTE UDT ADDRESS
SHN 6
ADD T9
ADK /MTX/UST5
CRD T1 (T1) = DENSITY, COVERSION MODE
ADK /MTX/UVRI-/MTX/UST5
CRD T2 (T2) = EJT, (T5)= REEL, (T6) = FLAGS
ADK /MTX/UST4-/MTX/UVRI
CRD CM (CM+2) = FORMAT
ADK /MTX/UST1-/MTX/UST4
CRD AB (AB+2) = EST ORDINAL, (AB+4) = STATUS
ADK /MTX/UVSN-/MTX/UST1
CRD SR (SR - SR+2) = VSN, (SR+3) = FLAGS
ADK /MTX/UFID-/MTX/UVSN
CRD SH GET FILE IDENTIFIER
ADK /MTX/UFSN-/MTX/UFID
CRD SP
LDD CM+2 SAVE FORMAT
SHN -6
STD T3
LDD T1 SAVE DENSITY AND CONVERSION MODE
STD T4
SFA EST,AB+2 READ EST ENTRY
ADK EQDE
CRD CM
LDN 2 SET DISPLAY COORDINATES
OAM XC,CH
* DISPLAY UNIT TAPE DEVICE TYPE.
LDD CM+3 DISPLAY TAPE DEVICE TYPE
OAN CH+40
* DISPLAY EST ORDINAL.
LDD AB+2
SHN -3
RJM D2D OUTPUT UPPER DIGITS
LDD AB+2
LPN 7
ADN 1R0
SHN 6
OAN CH+40 OUTPUT LAST DIGIT
* DISPLAY VSN.
LDC CH10
OAN CH+40
LDD SR+3 CHECK IF SCRATCH VSN
SHN 7
MJN DSE5 IF SCRATCH VSN
LDC 2R
STD SR+3
SBD SR
NJN DSE6 IF NOT SCRATCH
LDD SR+1
SBD SR+3
NJN DSE6 IF NOT SCRATCH
LDD SR+2
SBD SR+3
NJN DSE6 IF NOT SCRATCH
DSE5 BSS 0
DISPLA ,,(SCRATCH ) DISPLAY SCRATCH VSN
UJN DSE7 DISPLAY DENSITY
DSE6 LDN 4
OAM SR,CH DISPLAY VSN
* DISPLAY DENSITY.
DSE7 LDD T2
ADD SR
ZJP DSE8.1 IF NO VSN AND UNIT NOT ASSIGNED
LDN 0
OAN CH+40 SKIP TWO SPACES
LDD T4
SHN -3
LPN 7
STD T1 SET DENSITY
SHN 1
RAD T1
LDM TDEN,T1 DISPLAY FIRST TWO CHARACTERS
OAN CH+40
LDM TDEN+1,T1 DISPLAY SECOND TWO CHARACTERS
OAN CH+40
LDM TDEN+2,T1 DISPLAY THIRD TWO CHARACTERS
OAN CH+40
* DISPLAY RING STATUS
LDN 0
OAN CH+40
OAN CH+40
LDD AB+4
LPC 200
ZJN DSE8 IF RING OUT
LDC 2RIN
DSE8 OAN CH+40
* CHECK JOB ASSIGNMENT.
DSE8.1 LDN 0 CLEAR INTENSIFICATION COUNTER
STD T1
LDD T2 EJT ORDINAL
NJN DSE11 IF ASSIGNED
* DETERMINE STATUS FOR UNASSIGNED TAPE UNIT.
LDD CM CHECK DEVICE STATE
LPN 3
LMN DWES
ZJN DSE10 IF DOWN
LMN OFES&DWES
ZJN DSE9 IF OFF
LDN SM2&SM3 STATUS MESSAGE 2 = IDLE
DSE9 LMN SM3&SM1 STATUS MESSAGE 3 = OFF
DSE10 LMN SM1 STATUS MESSAGE 1 = DOWN
DSE10.1 UJN DSE12 DISPLAY STATUS MESSAGE
* DISPLAY FORMAT AND JSN.
DSE11 SFA EJT GET JSN
CRD CM
AOD T5 SET REEL NUMBER
LDN 0
OAN CH+40
OAN CH+40
LDM TFMT,T3
OAN CH+40 DISPLAY FORMAT
LDC CH42 RESET X-COORDINATE
OAN CH+40
LDN 2 DISPLAY JSN
OAM CM,CH
* DISPLAY STATUS.
LDD T6 CHECK PREVIEW DISPLAY MESSAGE FLAG
LPN 1
ZJN DSE14 IF NO MESSAGE
CFNC BIVF
SHN 1-21 SET REPEAT COUNT
LPN 2
STD T1
LDN SM7 STATUS MESSAGE 7 = MOUNT
DSE12 UJN DSE17 DISPLAY STATUS MESSAGE
DSE14 LDD AB+4 CHECK FOR READY
SHN 21-0
MJN DSE15 IF READY
LDN SM4 STATUS MESSAGE 4 = NOTRDY
UJN DSE17 DISPLAY STATUS MESSAGE
DSE15 LPN 2
ZJN DSE16 IF NOT LOAD POINT
LCN SM6-SM5 STATUS MESSAGE 5 = LOADPT
DSE16 ADN SM6 STATUS MESSAGE 6 = READY
* DISPLAY STATUS MESSAGE.
DSE17 ADC. TSTM SET MESSAGE
STM DSEA
DSE18 LDC CH49 RESET X-COORDINATE
OAN CH+40
LDN 3 DISPLAY STATUS MESSAGE
OAM *,CH
DSEA EQU *-1
SOD T1
PJN DSE18 IF NOT ENOUGH INTENSITY
CFNC EIVF
* DISPLAY LABEL FILE IDENTIFIER.
LDD SR
ZJN DSE21 IF NO VSN
LDD SH
ZJN DSE21 IF NO FILE IDENTIFIER
LDC CH56 RESET X-COORDINATE
OAN CH+40
LDD T5 DISPLAY REEL NUMBER IF JOB ASSIGNED
NJN DSE20 IF SPECIFIED
LDD SP+4
DSE20 RJM D4S
LDD T4 SET CONVERSION MODE
LPN 7
STD T1
LDM TCVM,T1
OAN CH+40
LDC CH09 SET COORDINATES
OAN CH+40
LCN YINC
ADD YC
OAN CH+40
LDN 5 DISPLAY FILE IDENTIFIER
OAM SH,CH
LDN 4
OAM SP,CH
* LOOP FOR NEXT UDT.
DSE21 LDN /MTX/UNITL ADVANCE UDT POINTER
RAD T9
LDN /MTX/UNITL ADVANCE UDT OFFSET
RAM DSED
LMM LUDT
ZJN DSE24 IF END OF UDT
SOD T8
ZJN DSE22 IF END OF PAGE
LCN YINC*3
ADC YINC-2 SPACING FOR CC545 WITH .GT. *PGSZ* UNITS
* ADC YINC (SPACING FOR CC634B)
* ADC 0 (SPACING FOR CC545 WITH .LE. *PGSZ* UNITS)
DSEB EQU *-1
RAD YC
LJM DSE4 LOOP FOR NEXT UDT
DSE22 LDM DCTY
NJN DSE23 IF CC634B CONSOLE
LDN MOREL+1 DISPLAY *MORE*
OAM CBOS,CH
ERRNZ MORE-CBOS-1 CODE ASSUMES CONTIGUOUS DATA
DSE23 LDM DSED SET STARTING UDT OFFSET FOR NEXT PAGE
STM TDSEA+1
DSE24 LJM DSETX RETURN
DSEC CON CH02
DATA H*EST*
CON CH12
DATA H*VSN*
CON CH23
DATA H*DEN RING FMT JSN*
CON CH49
DATA H*STATUS REEL MODE*
DSECL EQU *-DSEC
DSED CON 0 CURRENT UDT OFFSET
TCVM SPACE 4,10
** TCVM - TABLE OF CONVERSION MODES.
TCVM BSS 0
LOC 0
CON 2R NO CONVERSION MODE
CON 2RBC BCD (7 TRACK)
CON 2RAS ASCII (9 TRACK)
CON 2REB EBCDIC (9 TRACK)
LOC *O
TDEN SPACE 4,10
** TDEN - TABLE OF DENSITIES.
TDEN BSS 0
LOC 0
VFD 36/6H
VFD 36/6H 200
VFD 36/6H 556
VFD 36/6H 800
VFD 36/6H 1600
VFD 36/6H 6250
VFD 36/6H 38000
LOC *O
TFMT SPACE 4,10
** TFMT - TABLE OF FORMATS.
TFMT BSS 0
LOC 0
CON 2H I
CON 2HSI
CON 2H F
CON 2H S
CON 2H L
CON 2HLI
LOC *O
TSTM SPACE 4,10
** TSTM - TABLE OF STATUS MESSAGES.
TSTM BSS 0
LOC 0
SM1 VFD 36/6HDOWN
SM2 VFD 36/6HIDLE
SM3 VFD 36/6HOFF
SM4 VFD 36/6HNOTRDY
SM5 VFD 36/6HLOADPT
SM6 VFD 36/6HREADY
SM7 VFD 36/6HMOUNT
LOC *O
PET SPACE 4,10
** PET - PAGE *E,T* DISPLAY.
*
* ENTRY (T2) = 0, IF PAGE FORWARD.
* = 1, IF PAGE BACKWARD (RETURN TO PAGE 1).
*
* CALLS CMT.
PET BSS 0 ENTRY
RJM CMT
ZJN PET2 IF *MAGNET* NOT ACTIVE
LDD T2
LMN 1
ZJN PET1 IF RETURN TO PAGE ONE
LDM TDSEA+1
PET1 STM TDSEA SET FIRST UDT OFFSET
PET2 LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY H - FILE NAME TABLE.),PHD
ENTRY DSH,DSH
DSH SPACE 4,15
*** *H* DISPLAY.
*
* DISPLAY FILES IN THE SYSTEM FNT (ONE FILE PER
* LINE) OR FILES IN A JOB-S LOCAL FNT.
*
* EXAMPLE (IF SYSTEM FNT) -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* FNT NAME TYPE EST TRACK (LENGTH)
*
* 1 SYSTEM LI 1 1234 (1234567)
*
* EXAMPLE (IF LOCAL FNT) -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* FNT NAME TYPE EST TRACK FS STATUS (POSITION) (LENGTH)
*
* 1 INPUT IN* 11 1234 ND 5 (1234567) (1234567)
*
* PRESSING THE *=* KEY (IF ON THE RIGHT SCREEN) OR THE */* KEY
* (IF ON THE LEFT) WILL CAUSE THE *POSITION* AND *LENGTH*
* FIELDS TO NOT BE DISPLAYED. THIS IS DONE BECAUSE THE SCREEN
* MAY FLICKER IF SEVERAL VERY LARGE FILES ARE ATTACHED TO A JOB
* AND THE *POSITION* AND *LENGTH* FIELDS ARE BEING DISPLAYED.
DSH SUBR ENTRY/EXIT
LDM. /DSD/TJHH+1
ZJN DSH2 IF SYSTEM FNT
DISPHD (H. LOCAL FILES.),/DSD/TJHH+1
LDK /DSD/TJHH+1 GET JSN ADDRESS
RJM SJS
MJP DSHX IF EJT ENTRY IS ROLLED OR NOT FOUND
LDD CP GET RELATIVE ADDRESS INFORMATION
ADK FLSW
CRD SR
ADN 1
CRD CM
LDM. CMEI
ZJN DSH1 IF NOT CENTRAL MEMORY EXTENSION
LRD CM+1
LDD CM+3
STD SR+3
DSH1 LDK FNTN-LENF
STD T6
UJN DSH3 CONTINUE
DSH2 STD CP
DISPHD ("HHDR")
LDN FNTP GET NUMBER OF ENTRIES
CRD SR
DSH3 LDM CTOS SET Y-COORDINATES
OAN CH+40
SBN YINC
STD YC
LDD CP
ZJN DSH4 IF SYSTEM FNT
LDN DSHDL
DSH4 ADN DSHCL
OAM DSHC,CH
* LDN 0
STM TDSH+1 CLEAR NEXT PAGE INDEX
STM D7SA
STD T7 INITIALIZE FNT ORDINAL
LDD LA CHECK WHICH DISPLAY THE OVERLAY IS DRIVING
ADC -.FLFT
SHN -10B
ERRNG .FRHT-.FLFT-400B ENSURE DIFFERENCE IS IN RANGE
ERRNG .FLFT-.FRHT+777B
STD T9
LDM TGTF,T9 SET TOGGLE STATUS
STD T9
NJN DSH6 IF NOT TO DISPLAY *POSITION*, *LENGTH*
LDD CP
ZJN DSH5 IF SYSTEM FNT
DISPLA ,,( POSITION )
* LDN 0
DSH5 OAN CH+40
DISPLA ,,( LENGTH )
DSH6 LJM DSH18 READ FNT ENTRY
* DISPLAY FNT ENTRY.
DSH7 LDD CM+4 SET FILE TYPE
SHN 14
STD T5
SHN -14 SAVE FS STATUS
STD T8
LDD XC OUTPUT X-COORDINATE
OAN CH+40
LDD T7 DISPLAY INDEX
RJM D4S
LDN 3 DISPLAY FILE NAME
OAM CM,CH
LDD CM+3
SCN 77
OAN CH+40
LDN 0 SKIP TWO SPACES
OAN CH+40
LDM DSHA,T5 DISPLAY TYPE
OAN CH+40
LDD CP
NJN DSH8 IF NOT SYSTEM FNT
STD AB+2 ENSURE *CURRENT TRACK* BYTE CLEAR
UJN DSH9 CONTINUE
DSH8 LDD CM+3 EXTRACT LOCK BIT
LPN 1
ZJN DSH9 IF FILE UNLOCKED
LDC 2R* DISPLAY (*) FOR LOCK
DSH9 OAN CH+40
LDD AB DISPLAY EQUIPMENT
RJM D4S
SFA EST,AB
ADK EQDE
CRD CM
LDD CM
SHN 21-13
DSH10 PJP DSH17 IF NOT MASS STORAGE DEVICE
LDD AB+1 DISPLAY FIRST TRACK
RJM D4S
LDD CP
ZJN DSH11 IF SYSTEM FNT
LDM DSHB,T8 DISPLAY FS STATUS
OAN CH+40
LDN 0 SKIP TWO SPACES
OAN CH+40
LDD AB+4 DISPLAY FILE STATUS
RJM D6S
DSH11 LDD AB+1
ZJN DSH10 IF NO TRACKS ASSIGNED
LDD T9
NJN DSH10 IF NOT TO DISPLAY POSITION, LENGTH
LDD AB+2
NJN DSH12 IF CURRENT TRACK SET
STD AB+3 SET POSITION AT BOI
LDD AB+1
STD AB+2
DSH12 LDD CM+4
SHN 3
ADK MDGL
CRD T1 (T5) = SECTOR LIMIT
ADN TRLL-MDGL
CRD CM
LDD CM+3
LPN 77
SHN 14
LMD CM+4
SBD TH 4000 / 4
STM LNBA+1
SHN -14
LMC ADCI
STM LNBA
LCN 0 INITIALIZE LIMIT FOR TRACK CHAIN SEARCH
STD SR+4
LDD AB+3 CURRENT SECTOR
STD T3
SHN -14
STD T2
LDD AB+1
UJN DSH14 ENTER TRACK SEARCH LOOP
DSH13 SHN -6 CHECK TRACK
STD T4
LMD AB+2
ZJN DSH15 IF CURRENT TRACK REACHED
LDD T5
RAD T3
SHN -14
RAD T2
RJM LNB LINK TO NEXT BYTE IN TRT
DSH14 SHN 6
MJN DSH13 IF NOT END OF CHAIN
DISPLA ,,(LINKAGE ERROR.)
UJN DSH17 READ NEXT ENTRY
DSH15 LDD CP
ZJN DSH16 IF SYSTEM FNT
RJM D7S DISPLAY CURRENT POSITION
DSH16 LDD T3 SET END OF INFORMATION
SBD AB+3
STD T3
PJN DSH16.1 IF NO BORROW
SOD T2
AOD T3
DSH16.1 RJM LNB LINK TO NEXT BYTE IN TRT
SHN 6
PJN DSH16.2 IF LAST SECTOR
SHN -6
STD T4
LDD T5
RAD T3
SHN -14
RAD T2
UJN DSH16.1 LOOP
DSH16.2 SHN -6 SET FINAL SECTOR COUNT
RAD T3
SHN -14
RAD T2
RJM D7S DISPLAY LENGTH
* GET NEXT FNT ENTRY.
DSH17 AOD T7 NEXT FNT ORDINAL
DSH18 LDD CP
ZJN DSH19 IF SYSTEM FNT
LDK LENF
RAD T6 NEXT FNT ADDRESS
SHN -6
SBD SR
PJN DSH20 IF END OF LOCAL FNT
LDD SR+3 RA / 100
SHN 6
SBD T6
ADK FNTL
UJN DSH21 READ ENTRY
DSH19 LDD T7
SBD SR+2
DSH20 PJN DSH22 IF END OF SYSTEM FNT
SFA FNT,T7
ADK FNTG
DSH21 CRD CM READ FNT
ADK FSTG-FNTG
ERRNZ FSTG-FSTL CODE REQUIRES SAME INDEX FOR SECOND WORD
CRD AB READ FST
LDD CM
ZJP DSH17 IF EMPTY ENTRY
* CHECK IF ENTRY IS OUTSIDE RANGE OF CURRENT SCREEN.
LDD T7
SBM TDSH
MJP DSH17 IF BEFORE START INDEX
LCN YINC
RAD YC DECREMENT Y-COORDINATE
OAN CH+40
SBM CBOS
PJP DSH7 IF SCREEN NOT FULL
LDN MOREL OUTPUT *MORE* MESSAGE
OAM MORE,CH
LDD T7 SET NEXT PAGE STARTING ORDINAL
STM TDSH+1
DSH22 LJM DSHX RETURN
DSHA DATA H*"NMFT"*
DSHB 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
DSHC CON CH01
DATA 10H FNT NAME
CON CH16
DATA 16HTYPE EST TRACK
DSHCL EQU *-DSHC
DSHD DATA 12H FS STATUS
DSHDL EQU *-DSHD
LNB SPACE 4,10
** LNB - LINK TO NEXT BYTE IN TRT.
*
* ENTRY (T4) = TRACK LINK.
* (SR+4) = TRACK CHAIN SEARCH LIMIT COUNTER.
* (LNBA) = TRT FWA - 4000 / 4.
*
* EXIT (A) = NEXT TRACK RESERVATION BYTE.
* = 0 IF END OF TRACK CHAIN NOT FOUND.
* (CM - CM+4) = NEXT TRACK RESERVATION WORD.
* (T1) = INDEX INTO RESERVATION WORD.
*
* USES T1, CM - CM+4, SR+4.
LNB SUBR
SOD SR+4
ZJN LNBX IF END OF TRACK CHAIN NOT FOUND
LDD T4 READ TRT WORD
SHN -2
LNBA ADC **
CRD CM
LDD T4 COMPUTE BYTE INDEX
LPN 3
STD T1
LDM CM,T1 NEXT TRACK BYTE
UJN LNBX RETURN
PHD SPACE 4,10
** PHD - PAGE *H* DISPLAY.
*
* ENTRY (T2) = 0, IF PAGE FORWARD.
* = 1, IF PAGE BACKWARD.
PHD BSS 0 ENTRY
LDD T2
SBN 1
ZJN PHD1 IF PAGE BACKWARD
LDM TDSH+1
PHD1 STM TDSH STORE NEW PAGE INDEX
LJM. /KEYBOARD/KBIX RETURN
** COMMON DECKS.
*CALL COMDD7S
SPACE 4,10
DSPEND
DISPLAY (DISPLAY I - BATCHIO STATUS.),PID
ENTRY DSI,D
DSI SPACE 4,10
*** *I* DISPLAY.
*
* EACH ENTRY DISPLAYS THE STATUS OF ONE *BATCHIO* DEVICE.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* EST JSN TR PS ID FC REP SIZE DONE STATUS
*
* LR021 AAZZ 1 S 40 2 636 123
* LT022 7 L NOT READY.
* LT023 ABCD 6 L LF 3 421 25
* CR024 JOBC ADV 1 CD RE-RD 3 CDS.
* LX025 ACXY 7 331 157
DSI SUBR ENTRY/EXIT
DISPHD ("IHDR")
LDM CTOS SET UP INITIAL Y-COORDINATES
STD YC
LDN 2
OAM XC,CH
LDC BISI FIND *BATCHIO*
RJM FSS
STD CN
NJN DSI1 IF *BATCHIO* ACTIVE
DISPLA ,,(NOT ACTIVE.)
UJN DSIX RETURN
DSI1 LDN DSICL DISPLAY COLUMN HEADERS
OAM DSIC,CH
* LDN 0 CLEAR CP MESSAGE
STD CM
STM TDSI+1 CLEAR NEXT PAGE INDEX
LCN YINC SET FIRST LINE Y-COORDINATE
RAD YC
LDM. CMEI
ZJN DSI2 IF NOT CME
LDC SBNI+MS2W-FLSW-1 FORCE READ OF FLSW+1
STM DSIA
DSI2 LDD CN CLEAR CP MESSAGE
SHN 7
ADN MS2W
CRD AB SAVE MESSAGE
CWD CM
DSIA SBN MS2W-FLSW
* SBN MS2W-FLSW-1 (CENTRAL MEMORY EXTENSION)
CRD CM
LDD AB
ZJN DSI3 IF NO MESSAGE
RJM SBO INDICATE OPERATOR ACTION REQUIRED
DSI3 LDC /BIO/BFCW
SBM TDSI
STD T7
LRD CM+1
LDD CM+3 READ AVAILABLE EQUIPMENT WORD
STD T2 SAVE *BATCHIO* RA/100
SHN 6
ADN /BIO/TEQR
CRD CM
AOD CM SET AVAILABLE EQUIPMENT COUNT
STD T5
LDM TDSI SET FIRST BUFFER POINT NUMBER
ADN 1
STD T6
DSI4 LCN YINC
RAD YC
OAN CH+40
SBM CBOS
PJN DSI5 IF NOT BOTTOM OF SCREEN
SOD T6 STORE NEXT PAGE INDEX
STM TDSI+1
LDN MOREL
OAM MORE,CH
LJM DSIX RETURN
DSI5 LDD XC OUTPUT INITIAL X-COORDINATE
OAN CH+40
LDD T2 READ BUFFER POINT WORD
SHN 6
SBD T7
CRD AB
SFA EST,AB+3
ADK EQDE
CRD CM
ADK EQAE-EQDE
CRD SR
LDD CM+3 DISPLAY TYPE
OAN CH+40
LDC CH02 RESET X-COORDINATE
OAN CH+40
LDD AB+3 DISPLAY UPPER DIGIT
SHN -6
ADN 1R0
OAN CH+40
LDD AB+3 DISPLAY LOWER DIGITS
RJM D2D
LDN 0 SKIP TWO SPACES
OAN CH+40
LDN 2 DISPLAY JOBCARD OR JSN
OAM AB,CH
LDD CM+3
SHN -6
LMN 1RL
ZJN DSI6 IF LINE PRINTER
LDC CH20 RESET X-COORDINATE
UJN DSI9 CONTINUE
DSI6 LDD CM+4 DISPLAY TRAIN
SHN -6
LPN 7
RJM D4S
LDD CM+3
LPN 77
LMN 1RX
ZJN DSI9 IF *LX*
LMN 2RLY&2RLX
ZJN DSI9 IF *LY*
LDD CM CHECK PAPER SIZE
SHN -11
ZJN DSI7 IF NOT SHORT PAPER
LDN 1RS-1RL
DSI7 ADN 1RL
SHN 6
DSI9 OAN CH+40 DISPLAY PAPER SIZE
LDD CM+4 DISPLAY EQUIPMENT ID
LPN 77
RJM D2S
LDD SR+2 DISPLAY FORMS CODE
OAN CH+40
LDC CH27 RESET X-COORDINATE
OAN CH+40
LDD AB+4 DISPLAY REPEAT COUNT
SHN -6
RJM D2S
LDD AB
ZJN DSI10 IF NO JSN
LDD T2
SHN 6
ADC -/BIO/BFSP-1
ADD T6 FETCH FET ADDRESS
CRD CM
LDD CM+3
SHN 6
ADD T2 BATCHIO RA/100
SHN 6
ADD CM+4
ADN /BIO/FPSN
CRD AB CURRENT FILE POSITION
ADN /BIO/FLEN-/BIO/FPSN
CRD CM FILE EOI
LDD CM+3
ADD CM+4
DSI10 ZJN DSI11 IF ZERO LENGTH
LDC CH30
OAN CH+40 RESET X-COORDINATE
LDD CM+3
SHN 14
ADD CM+4
RJM D6S DISPLAY FILE EOI
LDC CH37
OAN CH+40 SET X-COORDINATE
LDD AB+2
SHN 6
LMD AB+1
SHN 6
RJM D6S DISPLAY CURRENT FILE POSITION
* DISPLAY STATUS MESSAGE.
DSI11 SOD T7 SET MESSAGE CODE
LDD T2
SHN 6
SBD T7
CRD CM
LDD CM
SBN /BIO/EMAX
PJN DSI13 IF INVALID ERROR CODE
LDM DSIB,CM
ZJN DSI13 IF NO MESSAGE
ADD LA
SBN 1
STD T1
LDC CH44 RESET X-COORDINATE FOR STATUS MESSAGE
DSI12 OAN CH+40
AOD T1
LDI T1 OUTPUT MESSAGE
NJN DSI12 IF NOT END OF MESSAGE
DSI13 SOD T7
AOD T6 ADVANCE BUFFER POINT NUMBER
LMD T5
ZJN DSI14 IF END OF BUFFER POINTS
LDD T6
SBN /BIO/MXEQ+1
PJN DSI14 IF TOO MANY BUFFERS
LJM DSI4 LOOP
DSI14 LJM DSIX RETURN
* ERROR/STATUS MESSAGES - CANNOT EXCEED 21 CHARACTERS.
DSIB INDEX MESSAGE TABLE
INDEX /BIO/ECLE,0 CLEAR MESSAGE
INDEX /BIO/ENRD,(=C*NOT READY.*)
INDEX /BIO/ENPA,(=C*NO PAPER.*)
INDEX /BIO/ERCA,(=C*RE-RD CD COMPARE ERR.*)
INDEX /BIO/ERCB,(=C*ADV 1 CD RE-RD 3 CDS.*)
INDEX /BIO/ECPE,(=C*COMPARE ERROR.*)
INDEX /BIO/EFED,(=C*FEED FAILURE.*)
INDEX /BIO/EOFF,(=C*OFF.*)
INDEX /BIO/EDWN,(=C*DOWN.*)
INDEX /BIO/EHLD,(=C*HOLD.*)
INDEX /BIO/EPMM,(=C*PM MESSAGE.*)
INDEX /BIO/EPRH,(=C*PRINT ERROR.*)
INDEX /BIO/ECPA,(=C*PAPER FAULT.*)
INDEX /BIO/EOHE,(=C*OFF - CHECK ERRLOG.*)
INDEX /BIO/EIVR,(=C*INTERVENTION NEEDED.*)
INDEX /BIO/ECUA,(=C*CH UNAVAILABLE.*)
INDEX /BIO/EMAX
* COLUMN HEADERS.
DSIC DATA H* EST*
CON CH08
DATA H*JSN*
CON CH14
DATA H*TR PS ID FC REP SIZE*
CON CH39
DATA H*DONE*
CON CH46
DATA H*STATUS*
DSICL EQU *-DSIC
PID SPACE 4,10
** PID - PAGE *I* DISPLAY.
*
* ENTRY (T2) = 0, IF PAGE FORWARD.
* = 1, IF PAGE BACKWARD.
PID BSS 0 ENTRY
SOD T2
ZJN PID1 IF PAGE BACKWARD
LDM TDSI+1
PID1 STM TDSI STORE NEW PAGE INDEX
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY J - JOB STATUS.)
ENTRY DSJ,D
DSJ SPACE 4,10
*** *J* DISPLAY.
*
* DISPLAY STATUS OF JOB WITH SPECIFIED JSN.
*
* NOTE - THE DISPLAY FORMAT IS DOCUMENTED IN *COMDGJD*.
DSJ SUBR ENTRY/EXIT
DISPHD ("JHDR"),/DSD/TJJJ+1
LDC /DSD/TJJJ+1 GET JSN ADDRESS
RJM SJS
MJN DSJX IF EJT ENTRY IS ROLLED OR NOT FOUND
ZJN DSJX IF NO JSN SPECIFIED
LDD T3 SAVE EJT ORDINAL
STD T7
SFA EJT GET EJT ADDRESS
ADK JSNE
CRD AB GET JSN
LDM CMEI GET CME FLAG
* UJN GJD GENERATE *J* DISPLAY
SPACE 4,10
* COMMON DECKS.
LIST X
GJD$ EQU UESC LOCATION OF USER EM SHIFT COUNT
*CALL COMDGJD
LIST *
SPACE 4,10
DSPEND
DISPLAY (DISPLAY K - CENTRAL PROGRAM BUFFER.)
ENTRY DSK,D
DSK SPACE 4,10
*** *K* DISPLAY.
*
* DATA FROM A CENTRAL MEMORY BUFFER WILL BE DISPLAYED IF A CPU
* PROGRAM IS ACTIVE AT THE CONTROL POINT ASSIGNED, AND IN THE
* CONTROL POINT AREA THERE IS A DISPLAY ADDRESS POINTING TO A
* CONTROL WORD (A) DESCRIBED BELOW -
*
*T A 1/0,1/U,4/0,18/KBUF,18/RSCR,18/LSCR
*
* U = 1, IF UPDATE OF STATUS WORD IS NOT REQUIRED.
* KBUF KEYBOARD BUFFER (8 CM WORDS).
*
*T LSCR 10/,1/S,1/F,1/A,5/,18/TBUF,23/,1/I
* LEFT-SCREEN CONTROL WORD
*
*T RSCR 10/,1/S,1/F,1/A,5/,18/TBUF,23/,1/I
* RIGHT-SCREEN CONTROL WORD
*
* S = CHARACTER SIZE.
* 0 = SMALL (64 CHARACTERS/LINE) LINES 12B UNITS APART.
* (DISPLAY IS 1000B * 1000B UNITS)
* 1 = MEDIUM (32 CHARACTERS/LINE) LINES 24B UNITS APART.
*
* F = FORMAT.
* 0 = PROGRAM FORMATTED.
* AFTER DISPLAY IS SELECTED, DATA IS OUTPUT
* UNTIL A ZERO IN BYTE (0) OF A WORD IS
* ENCOUNTERED OR UNTIL 1000B WORDS HAVE BEEN OUTPUT.
* THE DATA MUST CONTAIN ALL COORDINATES.
* IF A WORD CONTAINING 7777 IN BYTE (0) IS
* FOUND, THE LOWER 18 BITS WILL BE USED AS AN
* INDEX. IF THE INDEX IS ZERO OR GREATER THAN
* FL, THE DATA WILL BE TERMINATED.
*
* 1 = CODED FORMAT (*C* FORMAT).
* BUFFER IS ASSUMED TO BE IN *C* FORMAT (LINE IS
* TERMINATED BY A ZERO IN BYTE (4)) AND IS
* OUTPUT UNTIL A ZERO IN BYTE (0) OF THE FIRST WORD
* IN A LINE IS ENCOUNTERED, OR UNTIL 1000B
* WORDS HAVE BEEN DISPLAYED.
* IF A WORD CONTAINING 7777 IN BYTE (0) IS
* FOUND, THE LOWER 18 BITS WILL BE USED AS AN
* INDEX. IF THE INDEX IS ZERO OR GREATER THAN
* FL, THE DATA WILL BE TERMINATED.
*
* A = ALTERNATE LINE SPACING.
* 0 = NORMAL LINE SPACING AS SPECIFIED BY THE *S* BIT.
* 1 = LINE SPACING IS ONE AND HALF TIMES THAT SPECIFIED
* BY THE *S* BIT.
*
* TBUF = FWA OF TITLE.
* THIS STRING OF 16 CHARACTERS WILL BE PLACED ON LINE
* CHARACTER POSITIONS 5-20 OF THE DISPLAY. IMBEDDED
* CHARACTERS WITH A VALUE OF 60B OR MORE WILL APPEAR
* AS A BLANK. THE STRING MAY BE TERMINATED BY AN END
* OF LINE BYTE. IF *TBUF* IS ZERO, OR THE (*TBUF*) IS
* ZERO, A DEFAULT TITLE WILL BE USED. THE DEFAULT TITLE IS
* FOUND AT RA+*PGNR* (THE PROGRAM NAME WORD) FOR NON-SUBSYSTEM
* JOBS, AND IS BLANK FOR SUBSYSTEM JOBS.
*
* I = DISPLAY STATUS.
*
* IF THIS IS PRESET TO ZERO (0), IT MAY BE SUBSEQUENTLY
* CHECKED FOR NONZERO WHICH INDICATES DATA HAS BEEN
* DISPLAYED AT LEAST ONCE.
DSK SUBR ENTRY/EXIT
DISPHD (K.),/DSD/TJKK+1 DISPLAY HEADER
* LDN 0
STD AB
STD T1 CLEAR TERMINATE FLAG
LDC /DSD/TJKK+1
RJM SJS SEARCH FOR JSN IN EJT
MJN DSKX IF JOB NOT AT CP OR JSN UNUSED
ZJN DSKX IF SYSTEM CP
LDD CM+3 CHECK CP NUMBER BEFORE CLEARING *MS2W*
SBD NC
PJN DSKX IF INVALID CP NUMBER
ZJN DSKX IF INVALID CP NUMBER
LDD CP
ADN FLSW
CRD SR
ADN MS2W-FLSW CLEAR CP MESSAGE
CWD AB
ADN DBAW-MS2W READ DISPLAY CONTROL WORD
CRD AB
LDD AB SAVE DISPLAY STATUS UPDATE FLAG
SHN 0-12
LPN 1
STM DSKA
LDD LA CHECK LOAD ADDRESS
LMC .FLFT
ZJN DSK1 IF LEFT SCREEN ADDRESS
LDD AB+3 SET RIGHT SCREEN ADDRESS
SCN 77
SHN 6
LMD AB+2
SHN 6
STD AB+4
SHN -14
STD AB+3
LDD HN SET RIGHT SCREEN
DSK1 STM DSKF SET RIGHT/LEFT SCREEN FLAG
LDD AB+3 CHECK CONTROL WORD ADDRESS
LPN 37
SHN 14
ADD AB+4
NJN DSK2 IF BUFFER ADDRESS DEFINED
AOD T1 SET TERMINATE FLAG IN *DTL*
DSK2 SHN -6 BUFFER ADDRESS/100B
SBD SR+4
MJN DSK3 IF BUFFER ADDRESS IN RANGE
AOD T1 SET TERMINATE FLAG IN *DTL*
LDN 0 CLEAR BUFFER ADDRESS
STD AB+3
STD AB+4
DSK3 RJM SMA SET MEMORY ADDRESS OF CONTROL WORD
SOD SR UPDATE COUNT LEFT TILL END OF FL
LDD T6 READ CM BUFFER CONTROL WORD
SHN 14
ADD T7
CRD AB
ADN 1
STD T7 SAVE DATA ADDRESS
SHN -14
STD T6
RJM DTL DISPLAY TITLE
LDN 7 WORD COUNT/LINE = 6
STD T3
LDN YINC INITIALIZE LINE SPACING
STD T2
LDM DCTY
NJN DSK4 IF THE CONSOLE IS NOT A *CC545*
LDD AB+1 CHECK THE ALTERNATE SPACING BIT
SHN 21-13
PJN DSK3.1 IF SINGLE SPACING REQUESTED
LDN YINC/2
RAD T2
DSK3.1 LDD AB CHECK THE SIZE BIT
LPN 2
ZJN DSK4 IF SMALL SIZE
RJM SMC SET MEDIMUM CHARACTER SIZE
LDN 4 WORD COUNT/LINE = 3
STD T3
LDD T2 DOUBLE THE LINE SPACING
RAD T2
DSK4 LDD T2 SET SPACING FOR CODED DISPLAYS
LMC LCNI
STM DSKD
LDM DCTY DETERMINE IF COORDINATE CHECKS TO BE MADE
ZJN DSK4.1 IF *CC545*
STM DSKE ENABLE THE STATUS UPDATE
LMD AB CHECK CODED/PROGRAM MODE
LPN 1
DSK4.1 STD T4
LDM RNWB,T4
STM RNWA
LDN 0 SET WORD COUNT
STD T2
LDM CTOS SET Y-COORDINATE
OAN CH+40
STD YC
LDD AB CHECK FORMAT
LPN 1
NJN DSK6 IF CODED FORMAT
* DISPLAY PROGRAM FORMAT.
DSK5 RJM RNW READ NEXT WORD
ZJN DSK7 IF END OF DATA
LDN 5 DISPLAY WORD
OAM CM,CH
UJN DSK5 DISPLAY NEXT WORD
* DISPLAY CODED FORMAT.
DSK6 RJM RNW READ NEXT WORD
DSK7 ZJN DSK12 IF END OF DATA
LDN 2 OUTPUT COORDINATES
OAM XC,CH
STD T4 CLEAR DISPLAY COUNT
DSK8 LDD CM+4 SAVE END OF WORD
STD T1
AOD T4 COUNT WORD DISPLAYED
SBD T3
MJN DSK8.1 IF NOT LAST WORD
NJN DSK9 IF FULL LINE DISPLAYED
STD CM+2 DISPLAY CHARACTERS 61-64
STD CM+3
STD CM+4
DSK8.1 RJM DWD DISPLAY WORD
DSK9 LDD T1
ZJN DSK10 IF END OF LINE
RJM RNW READ NEXT WORD
UJN DSK8 LOOP TO END OF LINE
DSK10 LCN YINC DECREMENT Y-COORDINATE
DSKD EQU *-1 (COORDINATE POSITIONS PER LINE)
RAD YC
ADC -Y545+YINC CHECK SCREEN BOTTOM FOR BOTH CONSOLE TYPES
PJN DSK6 IF NOT BOTTOM OF SCREEN
* SET DISPLAY STATUS.
DSK12 LDC 0 GET STATUS UPDATE FLAG
DSKA EQU *-1
NJN DSK13 IF NO STATUS UPDATE REQUIRED
DSKE LDD CY
* PSN 1 (IF NOT A *CC545*)
LPN 17
NJN DSK13 IF NOT TIME TO SET COMPLETE BIT
LDN SKCS SET *K* DISPLAY COMPLETE BIT
ADC 0 SET LEFT/RIGHT SCREEN FLAG
* ADC 100 RIGHT SCREEN
DSKF EQU *-1 LEFT/RIGHT SCREEN FLAG
STD CM+1
LDD CP SET CP ADDRESS OF JOB
STD CM+2
MONITOR DSRM REQUEST *MTR* TO SET COMPLETE BIT
DSK13 LJM DSKX RETURN
DTL SPACE 4,15
** DTL - DISPLAY TITLE LINE.
*
* ENTRY (SR+1) = RA/100.
* (SR+4) = FL/100.
* (T1) = TERMINATE FLAG.
* 0 = CONTINUE PROCESSING.
* 1 = EXIT TO *DSKX*.
* (AB - AB+4) = LEFT OR RIGHT SCREEN CONTROL WORD.
*
* EXIT TO *DSKX* IF (T1) .NE. 0.
*
* USES T0, CM - CM+4.
*
* CALLS DWD.
DTL6 LDD T1
NJN DSK13 IF TERMINATING
DTL SUBR ENTRY/EXIT
LDD T1 CHECK TERMINATION FLAG
NJN DTL1 IF TERMINATING
LDD AB+1 CHECK FOR LEGAL ADDRESS
LPN 37
SHN 14
LMD AB+2
ZJN DTL1 IF *TBUF* = 0
ADN 1
SHN -6
SBD SR+4
PJN DTL1 IF *TBUF* .GE. FL
LDD AB+1 READ THE TITLE
LPN 37
SHN 6
ADD SR+1
SHN 6
ADD AB+2
CRD CM
LDD CM
NJN DTL4 IF (*TBUF*) .NE. 0
DTL1 LDD CP DETERMINE DEFAULT TITLE
ADK JCIW
CRD CM
LDD CM+2
SBK LSSI+1
PJN DTL6 IF SUBSYSTEM
LDD SR+1 GET PROGRAM NAME FROM (RA+*PGNR*)
SHN 6
ADK PGNR
CRD CM
LDD CM+3 CLEAR PARAMETER COUNT
SCN 77
STD CM+3
LDN 0
STD CM+4
LDN CM-1 APPEND PERIOD TO PROGRAM NAME
STD T0
DTL2 AOD T0
LDI T0
ZJN DTL3 IF END OF NAME
LPN 77
NJN DTL2 IF NOT END OF NAME
LDC 1R.&2R.
DTL3 LMC 2R.
RAI T0
DTL4 LDC CH05
OAN CH+40 SET X-COORDINATE
RJM DWD DISPLAY THE FIRST WORD
LDD CM+4
ZJN DTL5 IF ONLY ONE WORD
LDD AB+1
LPN 37
SHN 6
ADD SR+1
SHN 6
ADD AB+2
ADN 1
CRD CM
LDN 0
STD CM+3
STD CM+4
RJM DWD DISPLAY THE SECOND WORD
DTL5 LJM DTL6 RETURN
RNW SPACE 4,20
** RNW - READ NEXT WORD.
*
* ENTRY (T6 - T7) = ABSOLUTE MEMORY ADDRESS.
* (T2) = COUNT OF WORDS READ.
* (SR) = COUNT TILL END OF FL
*
* EXIT (CM - CM+4) = NEXT WORD.
* (T2) UPDATED.
* (SR) UPDATED.
* (T6 - T7) UPDATED.
* (A) = 0, IF END OF DATA FOUND.
*
* ERROR TO *DSK11*, IF THE COUNT EXCEEDS 1000B OR
* READ PAST FL IS FOUND.
*
* USES SR, T0, T2, AB+3 - AB+4, CM - CM+4, T6 - T7.
*
* CALLS SMA.
RNW SUBR ENTRY/EXIT
SOD SR UPDATE COUNT TILL END OF FL
NJN RNW2 IF WITHIN FL
RNW1 LJM DSK12 PROCESS END OF DATA
RNW2 AOD T2 UPDATE READ COUNT
SHN -11
NJN RNW1 IF 1000B WORDS READ
LDD T6 GET MEMORY ADDRESS
SHN 14
ADD T7
CRD CM READ NEXT WORD
ADN 1 UPDATE MEMORY ADDRESS
STD T7
SHN -14
STD T6
LDD CM
ZJN RNWX IF END OF DATA WORD
LMC 7777
RNWA NJN RNWX IF NOT INDEX WORD
* NJN RNW3 (PROGRAM FORMAT REQUEST FOR A *CDC721*)
LDD CM+3 SET NEW MEMORY ADDRESS
STD AB+3
LDD CM+4
STD AB+4
ADD CM+3
ZJN RNW1 IF END OF CHAIN
RJM SMA SET ABSOLUTE MEMORY ADDRESS
UJN RNW2 PROCESS NEXT READ
RNW3 LDN CM CHECK Y-COORDINATES
STD T0
RNW4 LDI T0
ADC -LN51
MJN RNW6 IF BYTE IS NOT A Y-COORDINATE
ADK -LN46+LN51
MJN RNW5 IF Y-COORDINATE IS IN THE TRAILER AREA
ADK -LN05-1+LN46
MJN RNW6 IF Y-COORDINATE IS NOT IN THE HEADER AREA
RNW5 LDC BL01 FORCE Y-COORDINATE TO FIRST LINE OF BODY
STI T0
RNW6 AOD T0
SBN CM+5
MJN RNW4 IF MORE BYTES TO CHECK
LDN 1 DATA FOUND
LJM RNWX RETURN
RNWB BSS 0
LOC RNWA
NJN RNWX IF NOT INDEX WORD
LOC RNWA
NJN RNW3 IF NOT INDEX WORD
LOC *O
SMA SPACE 4,15
** SMA - SET MEMORY ADDRESS.
*
* ENTRY (AB+3 - AB+4) = RELATIVE ADDRESS.
* (SR+2 - SR+3) = RA/100B.
* (SR+4) = FL/100B.
*
* EXIT (T6 - T7) = ABSOLUTE ADDRESS.
* (SR) = COUNT UNTIL END OF FL.
* (SR+1) = RA/100B IF NOT CME.
* = 4000B IF CME.
*
* ERROR TO *DSK12*, IF ADDRESS IS OUTSIDE OF FL.
*
* USES SR, SR+1, T0, T7, T2 - T6.
SMA SUBR ENTRY/EXIT
LDD AB+3 GET RELATIVE ADDRESS
LPN 37
SHN 14
ADD AB+4
SHN -6 RELATIVE ADDRESS/100B
STD SR
LDD SR+3
STD SR+1
LDM. CMEI
ZJN SMA1 IF NOT CENTRAL MEMORY EXTENSION
LRD SR+2 (R) = REFERENCE ADDRESS
LDC 4000
STD SR+1
SMA1 LDD SR+4
SBD SR
MJN SMA2 IF INCORRECT ADDRESS
NJN SMA3 IF VALID ADDRESS
SMA2 LJM DSK12 PROCESS END OF DATA
SMA3 STD SR
SBN 21
MJN SMA4 IF WITHIN 2000B WORDS OF FL
LDC 1001 SET COUNT
STD SR
UJN SMA5 FORM ADDRESS
SMA4 LDD AB+4 FORM COUNT
LPN 77
STD T0
LDD SR
SHN 6
SBD T0
STD SR
SMA5 LDD AB+3 FORM ABSOLUTE ADDRESS
LPN 37
SHN 6
ADD SR+1
SHN 6
ADD AB+4
STD T7
SHN -14
STD T6
LJM SMAX RETURN
SMC SPACE 4,10
** SMC - SET MEDIMUM CHARACTER SIZE
SMC SUBR ENTRY/EXIT
FJM *,CH
DCN CH+40
LDD LA CHECK SCREEN
LMC .FLFT
ZJN SMC1 IF LEFT SCREEN
LDD HN SET RIGHT SCREEN
ERRNZ SLMF+100-SRMF CODE DEPENDS ON VALUE
SMC1 LMC SLMF SELECT MEDIUM CHARACTERS
CFNC
UJN SMCX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY L - CENTRAL PROGRAM BUFFER.)
ENTRY DSL,D
SPACE 4,10
*** *L* DISPLAY.
*
* DISPLAY DATA FROM CMR BUFFER.
DSL SUBR ENTRY/EXIT
DISPHD (L. ) DISPLAY SCREEN NAME
* LDN 0 STORE *L* DISPLAY ACTIVE FLAG
STM. /COMDSYS/SYSB
LDM. /COMDSYS/SYSC READ *L* DISPLAY CONTROL WORD
LPN 77
STD CM+3
SHN 14
LMM. /COMDSYS/SYSC+1
STD CM+4
CRD AB
ADN LCOM+1
STD T7 SAVE DATA ADDRESS
SHN -14
STD T6
LDD AB+4
SHN 21-3
PJN DSL1 IF NO DATA TO DISPLAY
SHN 21-0-21+3
PJN DSL2 IF *L* DISPLAY REQUESTED
LDN 0 CLEAR *L* DISPLAY REQUESTED FLAG
STD CM+2
LDN 2
STD CM+1 STORE WORD COUNT OF OPTIONS
LDD MA
CWM DSLB,CM+1
MONITOR UTEM
LDD CM+1
ZJN DSL2 IF VERIFICATION PASSED
DSL1 DISPLA ,,(DISPLAY NOT ACTIVE.)
DISPLA CH01,LN07,(L DISPLAY NOT ACTIVE)
LJM DSLX RETURN
DSL2 LDD T6 DISPLAY THE REST OF THE TITLE
SHN 14
LMD T7
ADK LDSY+2
CRD CM
RJM DWD DISPLAY WORD
LDD CM+4
ZJN DSL2.1 IF THIS IS A ONE WORD TITLE
LDD T6
SHN 14
LMD T7
ADK LDSY+3
CRD CM
RJM DWD DISPLAY WORD
DSL2.1 LDD AB+4 CHECK FOR INPUT REQUESTED
LPN 20
ZJN DSL3 IF INPUT NOT REQUESTED
LDC 0 (*L.* NOT PROCESSED)
* LDC 2 (*L.* PROCESSED)
DSLA EQU *-1
NJN DSL4 IF *L.* ALREADY PROCESSED
LDD KI
ADD KE
NJN DSL4 IF KEYBOARD ACTIVE
LDN 1RL SET *L.* INTO *KBUF*
STM KBUF
LDN 1R.
STM KBUF+1
LDN 2 ADJUST KEYBOARD INDEX
STD KI
DSL3 STM DSLA
DSL4 LDN 7 WORD COUNT/LINE=6
STD T3
LDN YINC INITIALIZE LINE SPACING
STD T4
LDM DCTY
NJN DSL5 IF THE CONSOLE IS NOT A *CC545*
LDD AB+4 CHECK THE ALTERNATE SPACING BIT
SHN 21-6
PJN DSL4.1 IF SINGLE SPACING REQUESTED
LDN YINC/2
RAD T4
DSL4.1 LDD AB+4 CHECK THE SIZE BIT
LPN 4
ZJN DSL5 IF SMALL CHARACTER SIZE
RJM SMS SET MEDIUM CHARACTER SIZE
LDN 4
STD T3
LDD T4 DOUBLE THE LINE SPACING
RAD T4
DSL5 LDD T4 SET SPACING FOR CODED DISPLAYS
LMC LCNI
STM DSLC
LDM DCTY DETERMINE IF COORDINATE CHECKS TO BE MADE
ZJN DSL5.1 IF *CC545*
LMD AB CHECK CODED/PROGRAM MODE
LPN 1
DSL5.1 STD T4
LDM RNWB,T4
STM RNWA
LDM CTOS SET Y-COORDINATE
OAN CH+40
STD YC
LDD AB+4 CHECK FORMAT
LPN 2
NJN DSL7 IF CODED FORMAT
* DISPLAY PROGRAM FORMAT
DSL6 RJM RNW READ NEXT WORD
ZJN DSL8 IF END OF DATA
LDN 5 DISPLAY WORD
OAM CM,CH
UJN DSL6 DISPLAY NEXT WORD
* DISPLAY CODED FORMAT.
DSL7 RJM RNW READ NEXT WORD
DSL8 ZJN DSL13 IF END OF DATA
LDN 2 OUTPUT COORDINATES
OAM XC,CH
STD T4 CLEAR DISPLAY COUNT
DSL9 LDD CM+4 SAVE LAST BYTE
STD T1
AOD T4 COUNT WORD DISPLAYED
SBD T3
MJN DSL9.1 IF NOT LAST WORD
NJN DSL10 IF FULL LINE DISPLAYED
STD CM+2 DISPLAY CHARACTERS 61-64
STD CM+3
STD CM+4
DSL9.1 RJM DWD DISPLAY WORD
DSL10 LDD T1
ZJN DSL11 IF END OF LINE
RJM RNW READ NEXT WORD
UJN DSL9 LOOP TO END OF FILE
DSL11 LCN YINC DECREMENT Y-COORDINATE
DSLC EQU *-1 (COORDINATE POSITIONS PER LINE)
RAD YC
ADC -Y545+YINC CHECK SCREEN BOTTOM FOR BOTH CONSOLE TYPES
PJN DSL7 IF NOT BOTTOM OF SCREEN
DSL13 LJM DSLX RETURN
DSLB SPACE 4,10
* *UTEM* MONITOR FUNCTION BUFFER.
DSLB VFD 1/1,5/0,6/1,6/0,6/0 VERIFY *L* DISPLAY REQUESTED
CON 0,0,1
VFD 1/0,5/0,6/1,6/0,6/0 CLEAR *L* DISPLAY REQUESTED
CON 0,0,0
RNW SPACE 4,10
** RNW - READ NEXT WORD.
*
* ENTRY (T6 - T7) = ABSOLUTE ADDRESS.
*
* EXIT (CM - CM+4) = NEXT WORD.
* (T6 - T7) UPDATED.
* (A) = 0, IF END OF DATA FOUND.
*
* USES T0, T6, T7, CM - CM+4.
RNW SUBR ENTRY/EXIT
LDD T6 GET MEMORY ADDRESS
SHN 14
LMD T7
CRD CM READ NEXT WORD
AOD T7 UPDATE MEMORY ADDRESS
SHN -14
RAD T6
LDD CM
RNWA UJN RNWX IF NOT INDEX WORD
* ZJN RNWX (PROGRAM FORMAT REQUEST FOR A *CDC721*)
LDN CM CHECK Y-COORDINATES
STD T0
RNW1 LDI T0
ADC -LN51
MJN RNW3 IF BYTE IS NOT A Y-COORDINATE
ADK -LN46+LN51
MJN RNW2 IF Y-COORDINATE IS IN THE TRAILER AREA
ADK -LN05-1+LN46
MJN RNW3 IF Y-COORDINATE IS NOT IN THE HEADER AREA
RNW2 LDC BL01 FORCE Y-COORDINATE TO FIRST LINE OF BODY
STI T0
RNW3 AOD T0
SBN CM+5
MJN RNW1 IF MORE BYTES TO CHECK
LDN 1 DATA FOUND
LJM RNWX RETURN
RNWB BSS 0
LOC RNWA
UJN RNWX IF NOT INDEX WORD
LOC RNWA
ZJN RNWX IF NOT INDEX WORD
LOC *O
SMS SPACE 4,10
** SMS - SET MEDIUM CHARACTER SIZE.
SMS SUBR ENTRY/EXIT
FJM *,CH
DCN CH+40
LDD LA CHECK IF LEFT SCREEN
LMC .FLFT
ZJN SMS1 IF LEFT SCREEN
LDD HN SELECT RIGHT SCREEN
ERRNZ SLMF+100-SRMF CODE DEPENDS ON VALUE
SMS1 LMC SLMF SELECT MEDIUM CHARACTERS
CFNC
UJN SMSX RETURN
QUAL
DSLA EQU /DSD"M."/DSLA
QUAL *
SPACE 4,10
DSPEND
DISPLAY (DISPLAY M - EXTENDED MEMORY DISPLAY.),AMF
ENTRY DSM,DSM
DSM SPACE 4,10
*** *M* DISPLAY.
*
* DISPLAY EXTENDED MEMORY IN 5 GROUPS OF 4 DIGITS WITH
* DISPLAY CODE TRANSLATION.
EMRA EQU 2 - 3 EM RAE (IN WORDS)
EMFL EQU 4 - 5 EM FIELD LENGTH (IN WORDS)
DSM SUBR ENTRY/EXIT
DISPHD ("MHDR"),/DSD/TJMM+1
LDC SHNI+22-3 PRESET SHIFT INSTRUCTIONS
ADM UESC
STM DSMF
STM DSMG
LDC EDBP
CRD SH
LDD SH
ADD SH+1
NJN DSM1 IF EXTENDED MEMORY DEFINED
DISPLA CH01,LN08,(EXTENDED MEMORY UNDEFINED.)
DSM0 UJN DSMX RETURN
DSM1 LDD SF SET SECURE FLAG (LOCAL)
STD T8
LDD LK
SHN -1
ZJN DSM2 IF NOT SECURE UNLOCK
LDN 0 CLEAR SECURE FLAG
STD T8
DSM2 LDC /DSD/TJMM+1 SEARCH FOR JSN IN EST
RJM SJS
MJN DSM0 IF JOB NOT AT CP OR JSN UNUSED
LDM CTOS INITIALIZE LINE NUMBER
SBN YINC
STD YC
OAN CH+40
LDN 2 SET (T9) FOR 2 OR 4 GROUPS OF DISPLAY DATA
SBM DCTY
SHN 2
STD T9
* SET EXTENDED MEMORY EQUIPMENT.
LDD CP
NJP DSM5 IF CP RELATIVE MEMORY DISPLAY
LDK MMFL LINK DEVICE IS DEFAULT
CRD CM
LDD CM+1
LPC 777
NJN DSM3 IF LINK DEVICE DEFINED
LDK EXML GET EM EQUIPMENT WITH CPU ACCESS
CRD CM
LDD CM+4
LPC 777
ZJN DSM4 IF NO EM EQUIPMENT DEFINED
DSM3 STD T5
LDK MEFL
CRD CM
LDD CM+2 CALCULATE SHIFT COUNT
SHN -5
LPN 3
ADD TH
ERRNZ SHNI-1000
STM DSMH
LDD CM+3
SHN 0
* SHN (EMBS/1000B)-1
DSMH EQU *-1
SHN 21-2
STM EMFL
SHN 14
SCN 77
STM EMFL+1
LDN 0
UJN DSM6 SET ABSOLUTE RAE
DSM4 LDD NC USE SYSTEM CP RAE, FLE
SHN 7
DSM5 ADN ECSW READ EXTENDED MEMORY STATUS WORD
CRD CM
LDD CM+4 SET EM FIELD LENGTH
NJN DSM5.1 IF USER EM PRESENT
DISPLA CH01,LN08,(USER EM NOT ASSIGNED.)
LJM DSMX RETURN
DSM5.1 SHN 22-3
* SHN 22-3+UESC
DSMF EQU *-1
STM EMFL
SHN -6
SCN 77
STM EMFL+1
LDD CM+2 SET EM RA (RAE) IN WORDS
SHN 14
LMD CM+3
DSMG SHN 22-3
* SHN 22-3+UESC
DSM6 STM EMRA
SHN -6
SCN 77
STM EMRA+1
LDC EFRL READ FLAG REGISTER
CRD CM
LDD CM+3
SHN 21-13
MJN DSM7 IF NO FLAG REGISTER TO DISPLAY
DISPLA CH01,,(FLAG REGISTER =)
LDD CM+3 DISPLAY FLAG REGISTER
RJM D2D
LDD CM+4
RJM D4D
DSM7 LDC. DSMD SET ADDRESS OF ERROR STATUS WORDS
STD T3
LDN 0 PRESET INDEX INTO BUFFER
STD T4
LDD T9 PRESET LAST INDEX-INTO-BUFFER + 1
SHN -1
STD T5
SOM DSMC CHECK REREAD COUNTER
MJN DSM8 IF TIME TO REREAD
LJM DSM14 CHECK TIME AND DISPLAY
DSM8 LDC TDSM ADDRESS TABLE
STD T7
ADD T9 SET END OF TABLE
STD T2
LDI T7
SHN -13
LMN 1
ADD CP
NJN DSM8.1 IF NOT ABSOLUTE OVERLAY WITH POSITIVE FWA
RJM RES
DSM8.1 LDN 0
STD AB
STD AB+2
LDD TH SET NUMBER OF WORDS IN EACH GROUP = 10
STD AB+1
DSM9 LDM EMFL
NJN DSM10 IF EXPANDED MODE ADDRESSING
LDI T7
LPC 777
STI T7
DSM10 LDI T7
STD AB+3
AOD T7
LDI T7
STD AB+4
LDD CP
ZJN DSM11 IF ABSOLUTE DISPLAY
LDM EMRA+1 ADD RAE TO ADDRESS
RAD AB+4
SHN -14
ADM EMRA
RAD AB+3
DSM11 LDD SH
SHN 14
LMD SH+1
ADD T4
CWD AB WRITE ADDRESS LIST
AOD T4
AOD T7
LMD T2
NJN DSM9 IF NOT END OF ADDRESS TABLE
LDD SH+1 SET LIST ADDRESS IN *ECSM* REQUEST
STD CM+2
LDD T9 SET NUMBER OF ENTRIES IN LIST = 4 (OR 2)
SHN -1+6
ADD SH
STD CM+1
LDD CP
ZJN DSM12 IF ABSOLUTE EXTENDED MEMORY DISPLAY
LDN 2 INDICATE READ FROM USER EXTENDED MEMORY
DSM12 ADN /CPS/PELS*10 SET *ECSM* READLIST SUBFUNCTION
SHN 6
STD CM+3
MONITOR ECSM READ EXTENDED MEMORY
LDD T9
LPN 10
STM DSMC RESET COUNTER = 10 (OR 0)
LDD T9
SHN -1
SBN 1
STM DSMA
DSM13 SOD T4 READ ERROR RESPONSE
LDD SH
SHN 14
LMD SH+1
ADD T4
CRD CM
LDD CM+4
STM 0,T3
DSMA EQU *-1
SOM DSMA
PJN DSM13 IF NOT END OF TABLE
DSM14 LDN 0 TABLE INDEX
STD T6
LCN 2*YINC
RAD YC
DSM15 LDN 1 SET ERROR FLAG MASK
STD T4
LDI T3 SET ERROR BITS
STM DSMB
LDM TDSM,T6 EXTENDED MEMORY ADDRESS
STD AB
LDM TDSM+1,T6
STD AB+1
DSM16 LCN YINC
RAD YC
LDD T4 CHECK FOR EXTENDED MEMORY ERROR
LPC 1
DSMB EQU *-1
ZJN DSM17 IF NO ERROR ON THIS WORD
CFNC BIVF
SHN 1-21
LPN 2
DSM17 STD T2 SET INTENSIFICATION COUNT
LDN 2 OUTPUT COORDINATES
OAM XC,CH
LDD AB DISPLAY ADDRESS
RJM D4D
LDD AB+1
RJM D4D
LDD T8
ZJN DSM19 IF OKAY TO DISPLAY EXTEMDED ME
LDD AB
NJN DSM18 IF ADDRESS IN SECURED AREA
LDC 2000B
SBD AB+1
PJN DSM19 IF ADDRESS NOT IN SECURED AREA
DSM18 LDN DSMJL
OAM DSMJ,CH DISPLAY SECURITY BLANKET
LDN DSMEL
OAM DSME,CH
UJN DSM20 CONTINUE
DSM19 LDD SH FETCH WORD FROM BUFFER
SHN 14
LMD SH+1
ADD T5
CRD CM
RJM D5F DISPLAY WORD
DSM20 SOD T2
PJP DSM17 IF MORE INTENSIFICATION NEEDED
AOD AB+1 INCREMENT ADDRESS
SHN -12D
RAD AB
CFNC EIVF
AOD T5
LDD T4 SHIFT MASK
SHN 1
STD T4
SHN -10
NJN DSM21 IF END OF GROUP
LJM DSM16 LOOP
DSM21 LCN YINC
RAD YC
AOD T3 ADVANCE ERROR WORD POINTER
LDN 2
RAD T6
LMD T9
ZJN DSM22 IF END OF DISPLAY
LJM DSM15 LOOP TO NEXT GROUP
DSM22 LJM DSMX EXIT
DSMC CON 0
DSMD BSS 4 ERROR INDICATION TEMPORARIES
DSME DATA H$ SECURED AREA$
DSMJ DATA H$ **********$
DSMJL EQU *-DSMJ
DSMEL EQU *-DSME
* DEFINE SYMBOLS FOR USE BY *EEC*.
QUAL
EMRA EQU /DSD"M."/EMRA
EMFL EQU /DSD"M."/EMFL
QUAL *
SPACE 4,10
DSPEND
DISPLAY (DISPLAY O - TRANSACTION STATUS TABLE.),POD
ENTRY DSO,D
DSO SPACE 4,10
*** *O,TST* DISPLAY.
*
* EXAMPLE.
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* TERMINALS = 313.
*
* NUMBER NAME DB STATUS USER AREA ACN COUNT
* 120 AAAAAAA SS -L--R--I--- 12345670 1234 1234
VTST EQU 12 ADDRESS OF TERMINAL TABLE POINTER
DSO SUBR ENTRY/EXIT
DISPHD (O,TST. TAF TERMINALS.)
LDM. CMEI
ZJN DSO1 IF CME NOT PRESENT
STM DSOA FORCE READ OF *FLSW*+1
DSO1 LDC TRSI FIND *TAF*
RJM FSS
NJN DSO3 IF *TAF* ACTIVE
DSO2 DISPLA CH01,LN08,(NOT ACTIVE)
UJN DSOX RETURN
DSO3 SHN 7
DSOA ADN FLSW
* ADN FLSW+1 (CME PRESENT)
CRD AB
LRD AB+1
LDD AB+3 READ TABLE POINTER
SHN 6
ADN VTST
CRD T3
LDD T4
ADD T5
ZJN DSO2 IF *TAF* IDLE
LDM CTOS INITIALIZE LINE NUMBER
OAN CH+40
SBN 2*YINC
STM DSOC+2
STD YC
DISPLA CH01,,(TERMINALS = )
LDD T6 FIND NUMBER OF TERMINALS
SBD T4
SHN 14
ADD T7
SBD T5
ADN 2
SHN -1
SBN 1
STD T7 TERMINAL COUNT
RJM D4S DISPLAY NUMBER OF TERMINALS
LDN DSOCL
OAM DSOC,CH
LDD AB+3 SAVE RA
STD T6
LDM TDSO SET FIRST TERMINAL
STD T3
SHN 1
RAD T5
SHN -14
RAD T4
LCN 2*YINC SET Y-COORDINATE
RAD YC
OAN CH+40
* DISPLAY TERMINAL STATUS.
DSO4 LDD XC OUTPUT X-COORDINATE
OAN CH+40
LDD T4 READ TERMINAL ENTRY
SHN 6
ADD T6
SHN 6
ADD T5
CRD AB
ADN 1
CRD CM
CRD SR
LDD T3 DISPLAY TERMINAL NUMBER
RJM D4S
LDN 0 DISPLAY TERMINAL NAME
STD CM+4
LDD CM+3
SCN 77
STD CM+3
LDC CH09
OAN CH+40
LDN 5
OAM CM,CH
LDD AB+2 DISPLAY DATA BASE NAME
OAN CH+40
LDC CH24
OAN CH+40
LDD SR+3 FORM LOWER 5 BITS FROM WORD 2
LPN 76
LMN 1 SET UNUSED BIT
STD CN
LDD AB FORM UPPER 6 BITS FROM WORD 1
LPC 7700
RAD CN
LDC. DSOB DISPLAY BIT STATUS
RJM DBS
LDC CH38
OAN CH+40
LDD AB+3 DISPLAY USER AREA
RJM D4D
LDD AB+4
RJM D4D
LDC CH49
OAN CH+40
LDD AB+1 DISPLAY APPLICATION CONNECTION NUMBER
SHN -6
SHN 14
ADD AB
SHN 6
LPC 7777
RJM D4S
LDD SR+4 DISPLAY NUMBER OF TRANSACTIONS
RJM D4S
AOD T3 ADVANCE TERMINAL NUMBER
SBD T7
ZJN DSO4.1 IF ONE MORE TERMINAL
PJN DSO6 IF END OF TERMINALS
DSO4.1 LDN 2 ADVANCE ENTRY ADDRESS
RAD T5
SHN -14
RAD T4
LCN YINC
RAD YC DECREMENT Y-COORDINATE
OAN CH+40
SBM CBOS
MJN DSO5 IF SCREEN FULL
LJM DSO4 LOOP FOR ANOTHER TERMINAL
DSO5 LDN MOREL OUTPUT *MORE* MESSAGE
OAM MORE,CH
LDD T3 SET STARTING TERMINAL FOR NEXT PAGE
DSO6 STM TDSO+1
LJM DSOX RETURN
DSOB CON 2RAL&2R--
CON 2R-C&2R--
CON 2RRT&2R--
CON 2RMI&2R--
CON 2RFP&2R--
CON 2RD &2R--
CON 0
DSOC CON CH17,2H.
CON T545-2*YINC,CH01
* CON T721-2*YINC,CH01
DATA H*NUMBER*
CON CH10
DATA H*NAME*
CON CH19
DATA H*DB*
CON CH26
DATA H*STATUS*
CON CH38
DATA H*USER AREA*
CON CH50
DATA H*ACN COUNT*
DSOCL EQU *-DSOC LENGTH OF HEADING
SPACE 4
** COMMON DECKS.
*CALL COMDDBS
POD SPACE 4,10
** POD - PAGE *O* DISPLAY.
*
* ENTRY (T2) = 0, IF PAGE FORWARD.
* = 1, IF PAGE BACKWARD.
POD BSS 0 ENTRY
LDD T2
NJN POD1 IF *-*
LDM TDSO+1
POD1 STM TDSO
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY O - SUBCONTROL POINT STATUS.),POD
ENTRY DTS,D
DTS SPACE 4,10
*** *O,SCP* DISPLAY.
*
* EXAMPLE.
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* SCP NAME RA FL NT USER RA+1 STATUS
*
* 1 ABCDEFG 111100 110000 0 ABCDEFG CIOP ------------
* 2
DTS SUBR ENTRY/EXIT
DISPHD (O,SCP. TAF SUBCONTROL PT.)
LDM. CMEI
ZJN DTS1 IF CME NOT PRESENT
STM DTSA FORCE READ OF FLSW+1
DTS1 LDC TRSI FIND *TAF*
RJM FSS
NJN DTS3 IF *TAF* IS ACTIVE
DTS2 DISPLA CH01,LN08,(NOT ACTIVE)
UJN DTSX RETURN
DTS3 SHN 7
DTSA ADN FLSW
* ADN FLSW+1 (CME PRESENT)
CRD AB
LRD AB+1
LDD AB+3 SET RA
STD T7
SHN 6
ADN VNSCP NUMBER OF SUB CONTROL POINTS
CRD CM
ADN VTST-VNSCP *TAF* IDLE FLAG
CRD AB
ADN VLSP-VTST LAST SUB CONTROL POINT
CRD T2
LDD AB+3
ADD AB+4
ZJN DTS2 IF *TAF* IS IDLE
LDD CM+2
STD T6
SHN 3
STD CM+2
LDD T3 COMPUTE ADDRESS OF FIRST SUBCONTROL POINT
SHN 6
ADD T7
SHN 6
ADD T4
SBD CM+2 ADDRESS OF FIRST SUBCONTROL POINT
STM DTSB+1
STM DTSC+1
SHN -14
ADC ADCI
STM DTSB
STM DTSC
LDD T7
SHN 6
ADN VTLD TASK LIBRARY DIRECTORY POINTER
CRD AB
LDD AB+1
STD T3
LDD AB+2
STD T4
LDM CTOS INITIALIZE LINE NUMBER
OAN CH+40
SBN 2*YINC
STD YC
LDN DTSEL DISPLAY HEADER
OAM DTSE,CH
LDM TDTS CURRENT INDEX
STD T5
DTS4 LDN 2 OUTPUT COORDINATES
OAM XC,CH
LDD T5
SHN 3 READ FIRST WORD OF SUBCONTROL POINT TABLE
DTSB ADC *
CRD AB
ADN 2 READ THIRD WORD OF SUBCONTROL POINT TABLE
CRD CM
LDD AB
SHN 21-6
PJN DTS5 IF NOT BATCH CONCURRENT JOB
LDD AB+3
LPN 77
SHN 6
ADD T7
SHN 6
ADD AB+4
ADC -NUAPL+BCTN GET BATCH CONCURRENT JOB NAME
CRD CM
UJN DTS6 DO NOT GET NAME FROM *TASKLIB* DIRECTORY
DTS5 BSS 0
LDD T3
SHN 6
ADD T7
SHN 6
ADD T4
ADD CM GET TASK NAME
SBN 1
CRD CM
LDD CM+3
SCN 77
STD CM+3
DTS6 BSS 0
LDD T5 DISPLAY SUBCONTROL POINT NUMBER
RJM D2S
LDD AB+3
SCN 77
ADD AB+2
NJN DTS7 IF SUBCONTROL POINT ACTIVE
LJM DTS9 ADVANCE SUBCONTROL POINT
DTS7 LDC CH06
OAN CH+40
LDN 4 DISPLAY TASK NAME
OAM CM,CH
* LDN 0
OAN CH+40 SKIP TWO SPACES
LDD T5
SHN 3
ADN 1 READ SECOND WORD OF SUBCONTROL POINT TABLE
DTSC ADC *
CRD CM
LDD AB+3
LPN 77
SHN 14
ADD AB+4 DISPLAY TASK RA
RJM D6S
LDD AB+3 DISPLAY TASK FL
SHN -6
STD T0
LDD AB+2
SHN 6
ADD T0
RJM D6S
LDD CM+1 DISPLAY NUMBER OF TASKS ACTIVE AT SUB CP
LPN 7
RJM D2S
LDC CH37
OAN CH+40
LDD AB SAVE STATUS BITS
SCN 77
STD CN
LDD CM
SHN -5
LPN 77
RAD CN
LDN ZERL BLANK TERMINAL NAME
CRD SR
LDD CM+3
LPN 77
ADD CM+4
ZJN DTS8 IF NO STATUS WORDS PRESENT
SBD CM+4
SHN 6
ADD T7
SHN 6
ADD CM+4
CRD CM READ STATUS WORD
LDD CM+3 GET ADDRESS OF USER NAME WORD
LPN 77
SHN 6
ADD T7
SHN 6
ADD CM+4
ADN CBWCW
CRD SR
LDD SR+3
SCN 77
STD SR+3
DTS8 LDN 4 DISPLAY USER NAME
OAM SR,CH
* LDN 0 SKIP TWO SPACES
OAN CH+40
LDD AB+3 GET ADDRESS OF LAST SYSTEM REQUEST CALL
LPN 77
SHN 6
ADD T7
SHN 6
ADD AB+4
ADC LRA1-NUAPL
CRD CM
LDN 2 DISPLAY LAST RA+1 CALL
OAM CM,CH
* LDN 0 SKIP TWO SPACES
OAN CH+40
LDC. DTSD DISPLAY BIT STATUS
RJM DBS
DTS9 AOD T5
SBD T6
ZJN DTS9.1 IF ONE MORE SUBCONTROL POINT
PJN DTS11 IF AT END OF SUBCONTROL POINTS
DTS9.1 LCN YINC
RAD YC DECREMENT Y-COORDINATE
SBM CBOS
MJN DTS10 IF SCREEN FULL
LJM DTS4 LOOP
DTS10 LDD YC DISPLAY MORE MESSAGE
OAN CH+40
LDN MOREL
OAM MORE,CH
LDD T5 SET FIRST SUBCONTROL POINT FOR NEXT PAGE
DTS11 STM TDTS+1
LJM DTSX RETURN
DTSD CON 2RSF&2R--
CON 2RLM&2R--
CON 2R-B&2R--
CON 2RUC&2R--
CON 2REA&2R--
CON 2RTD&2R--
CON 0
DTSE CON CH01 HEADER LINE
DATA H*SCP NAME*
CON CH19,2HRA
CON CH27,2HFL
CON CH32,2HNT
CON CH38
DATA H*USER*
CON CH47
DATA H*RA+1*
CON CH56
DATA H*STATUS*
DTSEL EQU *-DTSE LENGTH OF HEADING
BCTN EQU 113 BATCH CONCURRENCY JOB NAME IN NEGATIVE FL
NUAPL EQU 120 LENGTH OF NEGATIVE *FL*
VNSCP EQU 10 NUMBER OF SUB CONTROL POINTS
VTST EQU 12 TERMINAL STATUS TABLE
VLSP EQU 15 LAST SUB CONTROL POINT
VTLD EQU 22 TASK LIBRARY DIRECTORY
LRA1 EQU 32 LAST SYSTEM REQUEST CALL
CBWCW EQU 11D WORD COUNT OF INPUT DATA
SPACE 4
** COMMON DECKS.
*CALL COMDDBS
POD SPACE 4,10
** POD - PAGE *O* DISPLAY.
*
* ENTRY (T2) = 0, IF PAGE FORWARD.
* = 1, IF PAGE BACKWARD.
POD BSS 0 ENTRY
LDD T2
NJN POD1 IF *-*
LDM TDTS+1
POD1 STM TDTS
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY O - TASK LIBRARY DIRECTORY.),POD
ENTRY DTL,D
DTL SPACE 4,10
*** *O,TLD* DISPLAY.
*
* EXAMPLE.
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* LIBRARY = TAFLIB
*
* NUMBER NAME CALLED LOADED FL EFL STATUS
* 1234 ABCDEFG 123456 123456 2000 4000 --------
SPACE 4,10
*** ABBREVIATIONS.
*
* *TLD* = TASK LIBRARY DIRECTORY.
DTL SUBR ENTRY/EXIT
DISPHD (O,TLD. TAF TASK LIBRARY.)
LDM. CMEI
ZJN DTL1 IF CME NOT PRESENT
STM DTLA FORCE READ OF *FLSW*+1
DTL1 LDC TRSI FIND *TAF*
RJM FSS
NJN DTL3 IF *TAF* IS ACTIVE
DTL2 DISPLA CH01,LN08,(NOT ACTIVE)
UJN DTLX RETURN
DTL3 SHN 7
DTLA ADN FLSW
* ADN FLSW+1 (CME PRESENT)
CRD T4 (T7) = RA
LRD T4+1
LDD T7
SHN 6
ADN VTST *TAF* IDLE FLAG
CRD AB
ADN VTLD-VTST READ *TLD* ADDRESS
CRD T2
LDD AB+3
SHN 6
ADD AB+4
ZJN DTL2 IF *TAF* IS IDLE
LDD T3 READ FIRST *TLD* HEADER
SHN 6
ADD T7
SHN 6
ADD T4
SBN TLDLH
CRD CM
ADM TDTL+2 READ CURRENT *TLD* HEADER
CRD SR
ADN TLDLH-1 READ CURRENT LIBRARY NAME
CRD SH
LDD SH+3
SCN 77
STD SH+3
LDD CM+1
LPN 77B
SHN 14
LMD CM+2 LWA OF ALL *TLD*-S
SBD T4
STD SR TOTAL LENGTH OF ALL THE *TLD*-S
LDM CTOS INITIALIZE LINE NUMBER
OAN CH+40
SBN 2*YINC
STM DTLB
SBN YINC
STD YC
DISPLA CH01,,(LIBRARY = )
LDN 4
OAM SH,CH
LDN DTLBL OUTPUT COLUMN HEADINGS
OAM DTLB,CH
LDM TDTL CURRENT *TLD* ENTRY INDEX
STM TDTL+1 NEXT *TLD* ENTRY INDEX
SHN 1
ADM TDTL
ADM TDTL+2 CURRENT *TLD* LIBRARY OFFSET
STD T6 CURRENT *TLD* ENTRY OFFSET
DTL5 LDD T3 READ ENTRY
SHN 6
ADD T7
SHN 6
ADD T4
ADD T6 CURRENT OFFSET
CRD CM
LDD CM
NJN DTL9 IF NON-ZERO *TLD* ENTRY
LDM TDTL+2
ADD SR+4 LENGTH OF CURRENT LIBRARY DIRECTORY
STM TDTL+3 PAGE TO NEXT LIBRARY
SBD SR
MJN DTL7 IF NOT END OF *TLD*-S
DTL6 LDN 0
STM TDTL+3 RESET NEXT *TLD* LIBRARY OFFSET
DTL7 LDN 0
STM TDTL+1 RESET NEXT *TLD* ENTRY INDEX
DTL8 LJM DTLX RETURN
DTL9 LCN YINC DECREMENT Y-COORDINATE
RAD YC
OAN CH+40
SBM CBOS
PJN DTL10 IF NOT THE BOTTOM OF THE SCREEN
LDN MOREL OUTPUT *MORE*
OAM MORE,CH
LDM TDTL+2 PAGE TO SUBSEQUENT ENTRIES IN SAME LIBRARY
STM TDTL+3
UJN DTL8 RETURN
DTL10 LDD XC OUTPUT X-COORDINATE
OAN CH+40
AOM TDTL+1 DISPLAY TASK NUMBER
RJM D4S
LDN 0 SKIP TWO SPACES
OAN CH+40
LDD CM+3
SCN 77 CLEAR LAST TASK CHARACTER
STD CM+3
LDN 4 DISPLAY NAME
OAM CM,CH
* LDN 0 SKIP TWO SPACES
OAN CH+40
LDD T3
SHN 6
ADD T7 READ SECOND WORD OF *TLD* ENTRY
SHN 6
ADD T4
ADD T6
ADN 1
CRD CM
ADN 1 READ THIRD WORD OF *TLD* ENTRY
CRD AB
LDD AB+3 DISPLAY TIMES TASK HAS BEEN CALLED
SHN -6
STD T0
LDD AB+2
SHN 6
ADD T0
RJM D6S
LDN 0 SKIP TWO SPACES
OAN CH+40
LDD AB DISPLAY TIMES TASK HAS BEEN LOADED
LPN 77
SHN 14
ADD AB+1
RJM D6S
LDD CM+2 DISPLAY TASK FIELD LENGTH
LPN 77
SHN 14
ADD CM+3
SCN 77
RJM D6S
LDD CM+3 DISPLAY EXPANDABLE FIELD LENGTH
LPN 77
SHN 14
ADD CM+4
SCN 77
RJM D6S
LDN 0 SKIP TWO SPACES
OAN CH+40
LDD AB FORM STATUS BITS
LPC 3700 FORM UPPER 5 BITS
SHN 1
STD CN
LDD AB+3 FORM LOWER 3 BITS
LPN 70
SHN 6-5
RAD CN
LDC. DTLC GET ADDRESS OF LETTER TABLE
RJM DBS DISPLAY BIT STATUS
LDN TLDLE ADVANCE OFFSET TO NEXT ENTRY
RAD T6
SBD SR
MJP DTL5 IF NOT END OF *TLD*-S
DTL11 LJM DTL6 UPDATE PAGING AND RETURN
VTST EQU 12B TERMINAL STATUS TABLE
VTLD EQU 22B TASK LIBRARY POINTER WORD
TLDLH EQU 4 LENGTH OF TLD HEADER
TLDLE EQU 3 LENGTH OF TLD ENTRY
DTLB CON T545-2*YINC COLUMN HEADINGS
* CON T721-2*YINC
CON CH01
DATA H*NUMBER NAME*
CON CH19
DATA H*CALLED*
CON CH29
DATA H*LOADED*
CON CH40
DATA H*FL*
CON CH48
DATA H*EFL*
CON CH56
DATA H*STATUS*
DTLBL EQU *-DTLB LENGTH OF COLUMN HEADINGS
DTLC CON 2RUC&2R--
CON 2REO&2R--
CON 2RDS&2R--
CON 2RQR&2R--
CON 0
POD SPACE 4,10
** POD - PAGE *O* DISPLAY.
*
* ENTRY (T2) = 0, IF PAGE FORWARD.
* 1, IF PAGE BACKWARD.
*
* USES T1.
POD BSS 0 ENTRY
LDM TDTL+3 ADVANCE MULTIPLE DIRECTORY INDEX
STM TDTL+2
LDD T2
LMN 1
ZJN POD1 IF *-*
LDM TDTL+1 ADVANCE DIRECTORY INDEX
POD1 STM TDTL
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
** COMMON DECKS.
*CALL COMDDBS
SPACE 4,10
DSPEND
TTL DSD/P DISPLAY SKELETON.
EJECT
LIST E
.MODEL ECHO ,M=(7,8)
DISPLAY (DISPLAY P - 1_M_0 PP REGISTERS.),PPD,CMR
ENTRY DSP_M,D
DSP_M SPACE 4,15
*** *P* DISPLAY.
*
* DISPLAY PP REGISTERS BY CONTROL POINTS.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* PP PGM CP JSN CH IA/FCN INPUT/OUTPUT REGISTERS ADDR
* 0 MTR 20 AAAQ 7400 1524 2220 0000 0000 0000 1354
* 0000 0000 0000 0000 0000
* 1 DSD 35 SYS * 7410 0423 0435 0102 0031 0000 7057
* RPPM 0071 0001 0000 0000 0000
SPACE 4,20
** NOTES.
*
* BECAUSE OF THE DIFFERENCES BETWEEN CYBER 170 AND 180 PPS AND
* BECAUSE OF THE SPACE CONSTRAINTS IN THE *P* DISPLAY DRIVER,
* THE DRIVER CODE IS ASSEMBLED IN A 170 AND A 180 VARIANT BY
* PLACING IT ALL IN A LARGE *ECHO* BLOCK. EACH VARIANT IS A
* SEPARATE OVERLAY. WHEN *DSD* PRESETS ITSELF, IT SELECTS THE
* CORRECT OVERLAY FOR THE SYSTEM. *DSD* DOES NOT FORCE THE *P*
* DISPLAY DRIVER TO BE CM RESIDENT, BUT WHEN *LIBDECK* DIREC-
* TIVES ARE USED TO FORCE IT INTO CM, ONLY THE APPROPRIATE
* OVERLAY NEEDS TO BE THERE.
*
* CONDITIONAL CODE SEQUENCES ARE USED TO EXCLUDE CODE WHEN IT
* IS UNNECESSARY. THE *ECHO* PARAMETER *M* IS USED TO DISTIN-
* GUISH WHICH VARIANT IS BEING ASSEMBLED.
*
* M=7 = THE 170 VARIANT
* M=8 = THE 180 VARIANT
DIRECT SPACE 4,10
* DIRECT CELL ASSIGNMENTS.
JA EQU AB JSN ADDRESS
PN EQU AB+1 PP NUMBER
PR EQU AB+2 PP INPUT REGISTER ADDRESS
SI EQU AB+3 SPACING INCREMENT
* = 0 UNLESS *P* UP ON BOTH SIDES OF A CC545
* = *YINC* UNLESS CPP-S ARE PRESENT
* = 3 WHEN CPP-S ARE PRESENT
TA EQU AB+4 TEMPORARY
DSP SPACE 4,10
DSP_M SUBR * ENTRY/EXIT
DSPA LJM PRS PRESET OVERLAY
* UJN DSP1 (AFTER INITIAL PRESET)
DSP1 DISPHD ("PHDR"),/DSD/TJPP+1
LDC /DSD/TJPP+1 GET JSN ADDRESS
STD JA
RJM SJS SEARCH FOR JSN IN EJT
MJN DSP_M_X IF NO DISPLAY POSSIBLE
LDN CTALL READ CHANNEL STATUS TABLE
STD T1
DSPB LDC ** (FWA OF THE CHANNEL RESERVATION TABLE)
CRM CTAL,T1
* DETERMINE THE FIRST PP TO DISPLAY AND THE PROPER SPACING.
LDD LS
LMD RS
NJN DSP2 IF *P* IS NOT UP ON BOTH SCREENS
LDM. .FLFT+DSPJ GET LEFT SCREEN FIRST INDEX
* LDM. .FLFT+DSPJ+1 (GET RIGHT SCREEN FIRST INDEX)
DSPC EQU *-1 (ADDRESS OF CURRENT INDEX)
STM DSPJ
LDC YINC*100
* LDC 3*100 (CC545 AND CPP-S PRESENT)
* LDC 0*100+C721 (CC634B)
DSPD EQU *-1
DSP2 SHN -6
STD SI
LDC BL01-5 SET TOP OF SCREEN
SBD SI
OAN CH+40
STD YC
STD T8 SET NEW BANK FLAG
LDN DSPKL DISPLAY HEADER COLUMNS
OAM DSPK,CH
LDM DSPJ
STD PN
* DISPLAY NEXT PP.
DSP3 LDD PN READ INPUT AND OUTPUT REGISTERS
SHN 3
ADD IA
SBN 10
STD PR SAVE INPUT REGISTER ADDRESS
CRD CM
ADN 1
CRD SP
LDD PN
DSPE SBN ** (NUMBER OF NPP-S + NUMBER OF CPP-S)
MJN DSP4 IF THIS IS NOT THE PSEUDO PP
* LDN 0 SET PP IDENTIFIER
STD T7
LDC 2RPS
STD T6
UJN DSP10 DETERMINE LINE SPACING
DSP4 BSS 0
.A IFC EQ,/M/8/
DSPF ADN ** (NUMBER OF CPP-S)
MJN DSP5 IF THIS IS NOT A CPP
ADC 2RC0*10 SET PP IDENTIFIER
SHN -3+22
STD T6
SHN -11
ADC 1R0*100
STD T7
UJN DSP9 CHECK FOR A CHANGE IN BARRELS
DSP5 BSS 0
.A ENDIF
DSPG CON ADNI+**-10D (NUMBER OF PP-S IN THE SECOND BARREL)
* ADN **-10D
MJN DSP6 IF FIRST BANK
ADN 6
DSP6 ADN 10D
STD T6 SET THE PHYSICAL PP NUMBER
DSP9 LDD T6 CHECK FOR A CHANGE IN BARRELS
SCN 17
LMD T8
ZJN DSP11 IF SAME BANK AS PREVIOUS LINE
LMD T8
STD T8
.A IFC EQ,/M/7/
AJM ISR,SC IF CYBER 17X
.A ENDIF
DSP10 LDN 0 SKIP A LINE
SBD SI
DSP11 SBN YINC SKIP TO NEXT LINE
SBD SI DOUBLE SPACE WHEN *P* IS ON BOTH SCREENS
RAD YC
OAN CH+40 OUTPUT Y-COORDINATE
SBM CBOS
SBN YINC
PJN DSP12 IF SPACE IS AVAILABLE
LDD T6
SHN -11
NJN DSP12 IF THIS IS THE PSEUDO-PP
LDD PN
LJM DSP22 EXIT
* DISPLAY PP INFORMATION.
DSP12 LDD XC OUTPUT X COORDINATE
OAN CH+40
LDD T6 DISPLAY IDENTIFIER
SBN 77
PJN DSP13 IF THIS IS NOT AN NPP
LPN 77
RJM D2Z DISPLAY PP NUMBER
UJN DSP14 COMPARE JSN-S
DSP13 LDN 2 DISPLAY *PS* OR *CNN*
OAM T6,CH
* COMPARE JSN-S IF INCLUDED ON OPERATOR DISPLAY SELECTION.
DSP14 LDD PN
SHN PPXES
DSPL ADC ACPP GET CONTROL POINT ADDRESS
CRD T1
LDD T1+4 USE FUNCTION PROCESSING CP
STD T7 SAVE CP ADDRESS
ADN TFSW GET EJTO
CRD T1
SFA EJT,T1 CALCULATE EJT ENTRY ADDRESS
CRD SH GET JSN
LDI JA
ZJN DSP16 IF JSN NOT SPECIFIED
LDD CM
ZJN DSP15 IF PP NOT ACTIVE
LDI JA
LMD SH
NJN DSP15 IF JSN-S DO NOT MATCH
LDM. 1,JA
LMD SH+1
ZJN DSP16 IF JSN-S MATCH
DSP15 LCN YINC-1 SKIP SECOND LINE
SBM DCTY
RAD YC
LJM DSP21 ADVANCE TO NEXT PP
* DISPLAY P ADDRESS.
DSP16 LDD T6 CHECK FOR PSEUDO-PP
STD T5
SHN -11
NJN DSP17 IF THIS IS THE PSEUDO-PP
.A IFC EQ,/M/7/
AJM RPR,SC IF CYBER 17X
.A ENDIF
* DISPLAY PROGRAM NAME, CP NUMBER AND JSN.
DSP17 LDC CH06 SET X-COORDINATE
OAN CH+40
LDD CM
ZJN DSP15 IF PP IS NOT ACTIVE
OAN CH+40 DISPLAY PROGRAM NAME
LDD CM+1
SCN 77
OAN CH+40
LDD T7 DISPLAY CP NUMBER
SHN -7
RJM D4S
LDC CH17
OAN CH+40
LDN 2 DISPLAY JSN
OAM SH,CH
* INDICATE IF CHANNEL IS ASSIGNED.
* LDN 0
OAN CH+40
LDD T6
ZJN DSP19 IF PP NUMBER ZERO
LDN MXCH+2
STD T2
DSP18 SOD T2
ZJN DSP19 IF NO MORE TO CHECK
LDM CTAL-1,T2
LPN 37
LMD PN
NJN DSP18 IF NOT ASSIGNED TO THIS PP
LDN 1R* OUTPUT -*-
DSP19 OAN CH+40
* DISPLAY THE INPUT REGISTER
LDC CH28 DISPLAY INPUT REGISTER ADDRESS
OAN CH+40
LDD PR
RJM D4D
LDN CM
ERRNZ CM-CM/10*10 ADDRESS MUST BE ON A 10-BYTE BOUNDARY
RJM DOW DISPLAY ONE WORD
* DISPLAY THE MONITOR FUNCTION AND OUTPUT REGISTER.
LCN YINC-1 SKIP TO A NEW LINE
SBM DCTY
RAD YC
OAN CH+40
LDC CH28 DISPLAY THE MONITOR FUNCTION
OAN CH+40
LDD SP
LPC 177
SHN -1+22
STD TA
SHN 1-0+1-22
ADN SH
STM DSPH
LDC RPLP
CRD CM
LDD CM FORM TEXT OVERLAY ADDRESS
SHN 14
LMD CM+1
ZJN DSP20 IF LIBRARY LOCKED
ADK /DISPLAY/TFTN
ADD TA
CRD SH
LDN 2
OAM. **,CH
DSPH EQU *-1
DSP20 LDN SP
ERRNZ SP-SP/10*10 ADDRESS MUST BE ON A 10-BYTE BOUNDARY
RJM DOW DISPLAY ONE WORD
* ADVANCE TO NEXT PP.
DSP21 AOD PN ADVANCE TO NEXT PP
SBN **+1
DSPI EQU *-1 (NUMBER OF NPP-S + NUMBER OF CPP-S + 1)
PJN DSP22 IF ALL PPS HAVE BEEN DISPLAYED
LJM DSP3 DISPLAY NEXT PP
DSP22 STM DSPJ+1 SAVE START OF NEXT PAGE
ZJN DSP23 IF THE LAST PP WAS DISPLAYED
LDM CBOS DISPLAY *MORE*
SBN YINC
OAN CH+40
LDN MOREL
OAM MORE,CH
DSP23 BSS 0
.A IFC EQ,/M/7/
IJM DSP_M_X,SC IF NOT A CYBER 17X
LDC /SCR/FCCL+/SCR/AMMS CLEAR AUTO PP SELECT
RJM ODW
.A ENDIF
LJM DSP_M_X RETURN
DSPJ CON 0,0 CURRENT AND NEXT PAGE INDICES
* *P* DISPLAY HEADER.
DSPK CON CH01
DATA 34HPP PGM CP JSN CH IA/FCN
DATA H*INPUT/OUTPUT REGISTERS*
CON CH61
DATA H*ADDR*
DSPKL EQU *-DSPK
DOW SPACE 4,10
** DOW - DISPLAY ONE WORD.
*
* ENTRY (A) = FWA OF THE 5 BYTES TO BE OUTPUT.
* NOTE - THE CODE ASSUMES THAT THE FWA IS A
* MULTIPLE OF 10B.
*
* USES TA, T4.
*
* CALLS D4D.
DOW SUBR ENTRY/EXIT
STD TA
LDC CH34 SET X-COORDINATE
STD T4
DOW1 OAN CH+40
LDI TA OUTPUT BYTE
RJM D4D
AOD TA
LPN 7
LMN 5
ZJN DOWX IF NO MORE BYTES TO OUTPUT
LDN 5*XINC
RAD T4
UJN DOW1 OUTPUT COORDINATES OF NEXT BYTE
.A IFC EQ,/M/7/
ISR SPACE 4,10
** ISR - INITIALIZE SCR REGISTER.
*
* ENTRY (A) .GT. 77B IF THIS IS THE INITIAL CALL.
* (T6) = PHYSICAL PP NUMBER.
* (TDSPA) = THE PP SUBSYSTEM TOGGLE SWITCH.
*
* EXIT (ODWA) AND (ODWB) CONTAIN THE CORRECT CHANNEL.
*
* CALLS ODW.
ISR BSS 0 ENTRY
SHN -6
NJN ISR1 IF INITIAL CALL
LDC /SCR/FCCL+/SCR/AMMS CLEAR AUTO PP SELECT
RJM ODW
ISR1 LDD T6
LPN 20
LMM TDSPA SELECT CORRECT CHASSIS
LMC OANI+SC SET S/C REGISTER CHANNEL
STM ODWA
LMC IANI&OANI
STM ODWB
LDC /SCR/FCSB+/SCR/AMMS SET AUTO PP SELECT
RJM ODW
LJM DSP10 RETURN
ODW SPACE 4,10
** ODW - OUTPUT DESCRIPTOR WORD TO S/C REGISTER.
*
* ENTRY (A) = DESCRIPTOR WORD.
* (ODWA) = CORRECT CHANNEL.
* (ODWB) = CORRECT CHANNEL.
*
* EXIT (A) = S/C REGISTER RESPONSE.
ODW SUBR ENTRY/EXIT
ODWA OAN SC
* OAN SC+20 (SECOND PPS)
ODWB IAN SC
* IAN SC+20 (SECOND PPS)
UJN ODWX EXIT
RPR SPACE 4,10
** RPR - READ P REGISTER.
*
* ENTRY (T5) = PHYSICAL PP NUMBER.
*
* USES T4, T5.
*
* CALLS ODW.
RPR LDC CH61 SET X-COORDINATE FOR P-ADDRESS
OAN CH+40
LDN 3 LOOP FOR BITS 3-0 OF PP NUMBER
STD T4
RPR1 LDD T5 FORM NEXT BIT TO SET/CLEAR
RAD T5
LPN 20
SHN 6
ADC /SCR/FCCL+/SCR/PPSC (A) = 2170 OR 4170
ADD T4
RJM ODW
SOD T4
PJN RPR1 IF ALL BITS NOT PROCESSED
LDN /SCR/FCRD+5 READ BYTE 5 OF S/C REGISTER
RJM ODW
RJM D4S DISPLAY P-REGISTER
LJM DSP17 RETURN
.A ENDIF
PPD SPACE 4,10
** PPD - PAGE *P* DISPLAY.
*
* ENTRY (T2) = 0, IF PAGE FORWARD.
* = 1, IF PAGE BACKWARD.
PPD BSS 0 ENTRY
SOD T2
ZJN PPD1 IF PAGING BACKWARD
LDM DSPJ+1 GET INDEX FOR NEXT PAGE
PPD1 STM DSPJ SET CURRENT INDEX
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
** REMOTE CODE
DIS HERE
PRS SPACE 4,10
** PRS - PRESET *P* DISPLAY.
*
PRS BSS 0 ENTRY
* LDD LA SET ADDRESS OF CURRENT INDEX
SBD XC
SHN -11
RAM DSPC
ERRNG .FLFT-CH01 CODE DEPENDS ON THE RELATIONSHIP
ERRPL .FLFT-CH01-1000 CODE DEPENDS ON THE RELATIONSHIP
ERRNG .FRHT-CH01-1000 CODE DEPENDS ON THE RELATIONSHIP
ERRPL .FRHT-CH01-2000 CODE DEPENDS ON THE RELATIONSHIP
LDK PPUL GET NUMBER OF PP-S
CRD CN
ADK PPCP-PPUL GET PP COMMUNICATION AREA POINTERS
CRD AB
ADK CHTP-PPCP GET CHANNEL RESERVATION TABLE FWA
CRD CM
LDD CM+2 PRESET THE CHANNEL RESERVATION TABLE FWA
RAM DSPB
LDD CM+3
STM DSPB+1
LDD AB+1 SET *ACPP* BASE ADDRESS
RAM DSPL+1
SHN -14
RAM DSPL
LDD CN+2 GET NUMBER OF PP-S
RAM DSPG (ADN NPP-10D)
LDD CN+2 GET NUMBER OF PP-S
.A IFC EQ,/M/8/
ADD CN+3 GET NUMBER OF CPP-S
ERRNZ CPPL-PPUL CODE ASSUMES VALUE
LPN 77
.A ENDIF
RAM DSPI (SBN NPP+CPP+1)
SBN 1
STM DSPE (SBN NPP+CPP)
.A IFC EQ,/M/8/
SBD HN (ADN NPP+CPP)
ERRNZ ADNI+100-SBNI
SBD CN+2
STM DSPF (ADN CPP)
LPN 77
ZJN PRS0 IF NO CPP-S
LDC 3*100
STM DSPD REDUCE DOUBLE SPACING
PRS0 LDM DCTY
ZJN PRS1 IF CC545 CONSOLE
STM DSPD DISABLE DOUBLE SPACING
.A ENDIF
PRS1 ISTORE DSPA,(UJN DSP1)
LJM DSP1 RETURN
CTAL EQU PRS CHANNEL RESERVATION TABLE
ERRNG .LDMX-CTAL-5*CTALL CHANNEL TABLE WILL NOT FIT
SPACE 4,10
DSPEND
.MODEL ENDD
LIST *
DISPLAY (DISPLAY Q - QUEUED FILES.),PQD
ENTRY DSQ,D
DSQ SPACE 4,10
*** *Q* DISPLAY.
*
* DISPLAY QUEUED FILES.
*
* EXAMPLE -
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* QFT JSN SC QP QT FSI REP LID DS ID FC EC LEVEL
*
* 0 SYS S 0 IN 0
* 1 AAAN B 212 PR 0 2 MQE BC 40 LF A9 LVLMIDD
DSQ SUBR ENTRY/EXIT
LDM CTOS SET FIRST LINE OF DISPLAY
OAN CH+40
SBN YINC
STD YC
LDN QFTP
CRD SH
LDD SF
ZJN DSQ1 IF UNSECURED SYSTEM
LDN DSQCL
DSQ1 ADN DSQBL DISPLAY COLUMN HEADERS
OAM DSQB,CH
* LDN 0 CLEAR NEXT QFT ORDINAL
STM TDSQ+1
STD T6
STD SH INITIALIZE NUMBER OF ENTRIES IN USE
LDD SH+2 CALCULATE NUMBER OF ENTRIES IN USE
SBD SH+3
STD SH+4
LDM TDSQ GET FIRST QFT ORDINAL
STD T7
ZJN DSQ4 IF BEGINNING OF QFT
DSQ2 SFA QFT,T6
CRD CM
LDD CM
ZJN DSQ3 IF ENTRY NOT IN USE
AOD SH INCREMENT NUMBER OF ENTRIES IN USE
DSQ3 AOD T6 INCREMENT INDEX
LMD T7
NJN DSQ2 IF NOT END OF SEARCH
DSQ4 LDM TDSQA
SHN 21-13
PJN DSQ5 IF SPECIFIC QUEUE TYPE
LDN TQTYL
STD AB
LDN PSNI
UJN DSQ6 SELECT ALL QUEUE TYPES
DSQ5 LDM TDSQA
STD AB
LDC NJNI+77-DSQA+DSQ8
ERRNG 37+DSQA-DSQ8 INCORRECT JUMP INSTRUCTION
ERRNG 37+DSQ8-DSQA INCORRECT JUMP INSTRUCTION
DSQ6 STM DSQA
DISPHD (Q, QUEUE STATUS.)
LDC CH03
OAN CH+40
LDM TQTY,AB DISPLAY QUEUE TYPE
ZJN DSQ7 IF ALL QUEUE TYPES SELECTED
OAN CH+40
DSQ7 LDC 2R.
OAN CH+40
LDD T7
UJN DSQ9 ENTER LOOP
DSQ8 LDD SH+4
LMD SH
ZJN DSQ10 IF NOT MORE ENTRIES IN USE
AOD T7 ADVANCE INDEX
DSQ9 LMD SH+2
NJN DSQ11 IF NOT END OF QFT
DSQ10 LJM DSQX RETURN
DSQ11 SFA QFT,T7 GET NEXT QFT ENTRY
ADK JSNQ
CRD AB GET JSN, FILE TYPE
LDD AB
ZJN DSQ8 IF ENTRY BLANK
AOD SH INCREMENT NUMBER OF ENTRIES IN USE
LDD AB+4
LPN 16
NJN DSQ8 IF FILE ASSIGNED OR NOT QUEUED
LDD AB+4 SAVE DISPOSITION CODE
SHN -6
STD AB+4
SHN -11+6 SAVE QUEUE TYPE
STD SH+3
LMM TDSQA
NJN DSQ8 IF NOT SELECTED QUEUE TYPE
* PSN (ALL QUEUE TYPES SELECTED)
DSQA EQU *-1
* PROCESS FIELDS COMMON TO ALL FILE TYPES.
LDC CH01
OAN CH+40
LCN YINC
RAD YC DECREMENT Y-COORDINATE
OAN CH+40
SBM CBOS
PJN DSQ12 IF NOT BOTTOM OF SCREEN
LDN MOREL
OAM MORE,CH
LDD T7 SET NEXT PAGE QFT ORDINAL
STM TDSQ+1
LJM DSQX RETURN
DSQ12 LDD T7 DISPLAY QFT ORDINAL
RJM D4S
SFA QFT,T7 GET ENTRY TIME
ADN ENTQ
CRD SR
ADN INSQ-ENTQ GET LID
CRD SP
ADN SCLQ-INSQ GET SERVICE CLASS, ID, FORMS CODE
CRD T2
LDN 2 DISPLAY JSN
OAM AB,CH
* LDN 0 SKIP TWO SPACES
OAN CH+40
LDD T2
SHN -6
STD SR+1
LDM TJSC,SR+1 DISPLAY SERVICE CLASS
OAN CH+40
LDD SR+3 SET ENTRY TIME
STD T1
LDD SR+4
STD T2
LDD SH+3 SET FILE TYPE
ZJN DSQ13 IF INPUT TYPE
LDN OTQT-INQT
DSQ13 BSS 0
* ADN INQT
ERRNZ INQT QUEUE TYPE .NE. 0
SHN 6
ADD SR+1 SET SERVICE CLASS
SHN 14
RJM CPR CONVERT ENTRY TIME TO QUEUE PRIORITY
PJN DSQ14 IF JCB EXISTS FOR THIS SERVICE CLASS
LDN 0 DISPLAY ZERO
DSQ14 RJM D6S DISPLAY QUEUE PRIORITY
LDM TQTY,SH+3 DISPLAY QUEUE TYPE
OAN CH+40
LDD SR+2 DISPLAY FILE SIZE INDEX
LPN 7
RJM D4S
LDC CH32
OAN CH+40 RESET X-COORDINATE
LDD SH+3
ZJN DSQ14.1 IF NOT OUTPUT FILE
LDD SP+4 DISPLAY REPEAT COUNT
DSQ14.1 RJM D2S
LDD SP+1 DISPLAY LID
SHN -6
OAN CH+40
LDD SP+1
SHN 14
LMD SP+2
SHN -6
OAN CH+40
LDD SH+3
ERRNZ /JIO/INQT QUEUE TYPE .NE. 0
ZJP DSQ18 IF NOT OUTPUT FILE
* PROCESS OUTPUT FILE TYPE FIELDS.
LDN 0 SKIP TWO SPACES
OAN CH+40
LDD T2+1 CHECK FOR FAMILY ORDINAL
ZJN DSQ15 IF FAMILY ORDINAL NOT PRESENT
LDN 0
STD T2+2 CLEAR FILE ID
LDC 2RRB&2RBC DISPLAY REMOTE BATCH DESTINATION
DSQ15 LMC 2RBC DISPLAY LOCAL BATCH DESTINATION
OAN CH+40
LDN 0
OAN CH+40
LDD T2+2 DISPLAY FILE ID
RJM D2S
LDD T2+4 DISPLAY FORMS CODE
OAN CH+40
LDN 0 DISPLAY * *
OAN CH+40
LDD T2+3 GET EXTERNAL CHARACTERISTICS
LPN 70
SHN -3
STD T2+3
LDD SH+3
SBN /JIO/PHQT
ZJN DSQ17 IF PUNCH
SBN /JIO/PLQT-/JIO/PHQT
ZJN DSQ16 IF PLOT
SBN /JIO/PRQT-/JIO/PLQT
NJN DSQ18 IF NEITHER PUNCH, PLOT, NOR PRINT
LDN TPLE-TPHE
DSQ16 ADN TPRE-TPLE
RAD T2+3
DSQ17 LDM TPHE,T2+3 GET PUNCH EXTERNAL CHARACTERISTICS
OAN CH+40
DSQ18 LDD SF
ZJN DSQ19 IF UNSECURED SYSTEM
LDC CH58 SET X-COORDINATE
OAN CH+40
LDD SP+3
SHN -3
RJM DAL DISPLAY ACCESS LEVEL STRING
DSQ19 LJM DSQ8 LOOP
* DISPLAY HEADER.
DSQB BSS 0
CON CH02
DATA H*QFT JSN SC*
CON CH19
DATA H*QP QT FSI REP LID DS ID FC EC*
DSQBL EQU *-DSQB
DSQC CON CH59
DATA H*LEVEL*
DSQCL EQU *-DSQC
ERRNZ *-DSQB-DSQBL-DSQCL CODE ASSUMES TITLES CONTIGUOUS
TPHE SPACE 4,10
** TPHE - TABLE OF PUNCH EXTERNAL CHARACTERISTICS.
TPHE BSS 0
LOC 0
CON 2RPH DEFAULT
CON 2RSB SYSTEM BINARY
CON 2R80 80 COLUMN
CON 0 (RESERVED)
CON 2R26 O26
CON 2R29 O29
CON 2RAS ASCII
CON 0 (RESERVED)
LOC *O
TPLE SPACE 4,10
** TPLE - TABLE OF PLOT EXTERNAL CHARACTERISTICS.
TPLE BSS 0
LOC 0
CON 0 (RESERVED)
CON 2RT6 TRANSPARENT 6-BIT PLOTTER DATA
CON 2RT8 TRANSPARENT 8-BIT PLOTTER DATA
CON 0 (UNUSED)
CON 0 (UNUSED)
CON 0 (UNUSED)
CON 0 (UNUSED)
CON 0 (RESERVED)
LOC *O
TPRE SPACE 4,10
** TPRE - TABLE OF PRINT EXTERNAL CHARACTERISTICS.
TPRE BSS 0
LOC 0
CON 0 DEFAULT
CON 0 (RESERVED)
CON 2RA4 48 CHARACTER ASCII GRAPHIC
CON 2RB4 48 CHARACTER DISPLAY
CON 2RB6 64 CHARACTER DISPLAY
CON 2RA6 64 CHARACTER ASCII GRAPHIC
CON 2RA9 95 CHARACTER ASCII GRAPHIC
CON 0 (RESERVED)
LOC *O
TQTY SPACE 4,10
* TQTY - TABLE OF QUEUE TYPES.
TQTY BSS 0
LOC 0
DATA H*"NMQT"*
LOC *O
TQTYL EQU *-TQTY TABLE LENGTH
* NOTE THE FOLLOWING *DATA* STATEMENT MUST IMMEDIATELY
* FOLLOW THE *TQTY* TABLE.
DATA 0 ALL QUEUE TYPES SELECTED
SPACE 4,10
** COMMON DECKS.
CPR$ EQU 1 CALCULATE QUEUE PRIORITY
IOQ$ EQU 1 CALCULATE QUEUE PRIORITY
DRC$ EQU 1 USE DIRECT CELLS TO SAVE SPACE
*CALL COMPCPE
PQD SPACE 4,10
** PQD - PAGE *Q* DISPLAY.
*
* ENTRY (T2) = 0, IF PAGE FORWARD.
* = 1, IF PAGE BACKWARD.
PQD BSS 0 ENTRY
LDD T2
SBN 1
ZJN PQD1 IF PAGE BACKWARD
LDM TDSQ+1 ADVANCE QFT ORDINAL
PQD1 STM TDSQ
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY R - ROLLED EJT ENTRIES.),PRD
ENTRY DSR,DSR
DSR SPACE 4,15
*** *R* DISPLAY.
*
* DISPLAY ROLLED EJT ENTRIES.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* JSN SC EJT ST LR SCPR FL FLE ACCESS LIMITS
*
* AAAC C 10 TE * 0 22 5 LVLBOTT LVLTOPP
* AAAM N 20 SO 1234 1234 1234 LVLBOTT LVLTOPP
*
* COLUMN 21 = * IF JOB IS LOCKED IN ROLLOUT.
DSR SUBR ENTRY/EXIT
DISPHD ("RHDR") DISPLAY SCREEN NAME
LDM UESC
ADD TH
ERRNZ SHNI-1000
STM DSRD
LDM CTOS INITIALIZE Y-COORDINATE
OAN CH+40
SBN YINC
STD YC
LDN DSRAL DISPLAY MAIN HEADER
OAM DSRA,CH
LDD SF
ZJN DSR1 IF UNSECURED SYSTEM
LDN DSREL DISPLAY SECURITY HEADER
OAM DSRE,CH
* LDN 0 INITIALIZE DATA LOCATIONS
DSR1 STM TDSR+1 NEXT PAGE FIRST EJTO
STD T5 EJT ENTRIES IN USE
STD T6 CURRENT EJTO
LDK EJTP GET NUMBER OF ENTRIES
CRD SR
LDD SR+2 CALCULATE NUMBER OF ENTRIES IN USE
STD T8 SAVE NUMBER OF EJT ENTRIES
SBD SR+3
STD T3
LDM TDSR SET CURRENT PAGE FIRST EJTO
STD T7
ZJN DSR4 IF BEGINNING OF EJT
DSR2 SFA EJT,T6
ADK JSNE
CRD CM
LDD CM
ZJN DSR3 IF ENTRY NOT IN USE
AOD T5 INCREMENT NUMBER OF ENTRIES IN USE
DSR3 AOD T6 INCREMENT INDEX
LMD T7
NJN DSR2 IF NOT END OF SEARCH
DSR4 LDD T7
UJN DSR6 ENTER DISPLAY LOOP
DSR5 LDD T3
LMD T5
ZJN DSR7 IF NO MORE ENTRIES IN USE
AOD T7 ADVANCE INDEX
DSR6 LMD T8
ZJN DSR7 IF END OF EJT
SFA EJT,T7 GET NEXT EJT ENTRY
ADK JSNE
CRD AB GET JSN
LDD AB
ZJN DSR5 IF ENTRY BLANK
AOD T5 INCREMENT NUMBER OF ENTRIES IN USE
LDD AB+4 CHECK JOB STATUS
LPN 76
SHN -1
STD T4 SAVE JOB STATUS
LMN NVJS
ZJN DSR5 IF NVE
LCN YINC
RAD YC DECREMENT Y-COORDINATE
OAN CH+40
SBM CBOS
PJN DSR8 IF NOT BOTTOM OF SCREEN
LDN MOREL
OAM MORE,CH
LDD T7 SET NEXT EJTO
STM TDSR+1
DSR7 LJM DSRX RETURN
DSR8 SFA EJT,T7 GET ENTRY TIME
ADN SCHE
CRD SR
ADN PRFE-SCHE GET ACCESS LEVEL
CRD SP
ADN SCLE-PRFE GET SERVICE CLASS, CM FL, EM FL
CRD SH
LDD XC OUTPUT X-COORDINATE
OAN CH+40
LDN 2 DISPLAY JSN
OAM AB,CH
* LDN 0 ADVANCE X-COORDINATE TWO SPACES
OAN CH+40
LDD SH
SHN -6
STD SR+1
LDM TJSC,SR+1 DISPLAY SERVICE CLASS
SHN -6
OAN CH+40
LDD T7 DISPLAY EJTO
RJM D6S
LDC CH26 RESET X-COORDINATE
OAN CH+40
* IF JOB STATUS = *EXJS*/*PCJS*/*PRJS*/*ROJS*, DISPLAY
* SCHEDULING PRIORITY, CM FL AND EM FL.
LDD T4 CHECK JOB STATUS
LMK EXJS
NJN DSR8.1 IF JOB NOT AT CONTROL POINT
LDD SR+3 GET CM/EM FL
SHN 7
ADK FLSW
CRD SH
ADK ECSW-FLSW
CRD CM
LDD CM+4
STD SH+3
LDD SR+4 GET SCHEDULING PRIORITY
UJN DSR10 DISPLAY SCHEDULING PRIORITY, CM FL, XM FL
DSR8.1 LMK ROJS&EXJS
ZJN DSR9 IF SCHEDULER ROLLOUT
LMN PRJS&ROJS
ZJN DSR9 IF PRE-INITIAL JOB STATE
LMN PCJS&PRJS
NJN DSR12 IF NOT PSEUDO-CONTROL POINT JOB
DSR9 LDD SR+3 SET ENTRY TIME
STD T1
LDD SR+4
STD T2
LDD SR+1 SET SERVICE CLASS
SHN 14
ADN EXQT SET FILE TYPE
RJM CPR CONVERT ENTRY TIME TO SCHEDULING PRIORITY
PJN DSR10 IF JOB EXISTS FOR THIS SERVICE CLASS
LDN 0 SKIP FIELD
DSR10 RJM D4S
LDD SH+4 DISPLAY FL/100B
RJM D6S
LDD SH+3 DISPLAY FLE/1000B
DSRD SHN 0
* SHN UESC
RJM D6S
DSR11 LJM DSR18 DISPLAY JOB STATUS
* IF JOB STATUS = *TOJS*/*ERJS*/*PWJS*, DISPLAY ROLLOUT
* DESCRIPTOR AND TIME REMAINING UNTIL ROLLIN.
DSR12 LMN TOJS&PCJS
ZJN DSR13 IF TIMED/EVENT ROLLOUT
LMN ERJS&TOJS
ZJN DSR13 IF ERROR ON ROLLOUT FILE
LMN PWJS&ERJS
NJN DSR11 IF NOT PRE-INITIAL JOB STEP WAIT
DSR13 LDD SR+2 GET TIME UNTIL ROLLIN
LPN 77
SHN 14
LMD SR+3
SHN -11
STD SR+2
LDD SR+3 ISOLATE EST ORDINAL OF EVENT DESCRIPTOR
LPC 377
STD SR+3
LMN EXTM/10000
NJN DSR14 IF NOT EXTENDED TIME EVENT
LDD SR+4 DISPLAY TIME UNTIL ROLLIN
RJM D4S
LDC CH34 OUTPUT X-COORDINATE
OAN CH+40
DSR14 LDD SR+2 DISPLAY TIME UNTIL ROLLIN / EXTENDED TIME
RJM D4S
LDC CH18 OUTPUT X-COORDINATE
OAN CH+40
LDD SR+3 GET EST ORDINAL OF EVENT DESCRIPTOR
ZJN DSR17 IF WAITING FOR RESOURCE
SBN WRKE/10000+1
PJN DSR15 IF NORMAL EST ORDINAL
LDM DSRB-2,SR+3
UJN DSR19 DISPLAY *RS*, *TE*, OR *WK*
DSR15 LDD SR+4
ZJN DSR16 IF NO TRACK NUMBER
LDC 2RPF&2RWI
DSR16 LMC 2RWI
UJN DSR19 DISPLAY *PF* OR *WI*
DSR17 LDD SR+4
ZJN DSR17.1 IF TIMED/EVENT ROLLOUT
SBN MAXE
MJN DSR17.2 IF VALID DESCRIPTOR
LDN 0 DISPLAY GENERIC TIMED/EVENT DESCRIPTOR
DSR17.1 LMC 2RTE
UJN DSR19 DISPLAY ROLLOUT DESCRIPTOR
DSR17.2 LDM DSRB+2,SR+4
UJN DSR19 DISPLAY ROLLOUT DESCRIPTOR
* IF JOB STATUS IS NEITHER *TOJS* NOR *PWJS*, DISPLAY IT.
DSR18 LDC CH18
OAN CH+40
LDM DSRC,T4 DISPLAY JOB STATUS
DSR19 OAN CH+40
LDD SH GET FORCED ROLLOUT FLAG
SHN 21-5
PJN DSR20 IF JOB NOT LOCKED OUT
LDN 1R* DISPLAY LOCKED OUT STATUS
OAN CH+40
DSR20 LDD SF
ZJN DSR21 IF UNSECURED SYSTEM
LDC CH50
OAN CH+40
LDD SP+2 GET ACCESS LEVELS
SHN -3
RJM DAL DISPLAY LOWER ACCESS LEVEL
LDD SP+2
RJM DAL DISPLAY UPPER ACCESS LEVEL
DSR21 LJM DSR5 LOOP
* DISPLAY HEADERS.
DSRA BSS 0 MAIN HEADER
CON CH01
DATA H*JSN SC EJT ST LR*
CON CH26
DATA H*SCPR*
CON CH35
DATA H*FL*
CON CH43
DATA H*FLE*
DSRAL EQU *-DSRA
DSRE BSS 0 SECURITY HEADER
CON CH51
DATA H*ACCESS LIMITS *
DSREL EQU *-DSRE
* ROLLOUT DESCRIPTORS.
DSRB BSS 0 TWO-CHARACTER ROLLOUT DESCRIPTORS
QUAL
LIST D,G
RODS
LIST *
* JOB STATUS NAMES.
QUAL *
DSRC BSS 0 TABLE OF JOB STATUS NAMES
DATA H*IN* PRJS
DATA H*EX* EXJS
DATA H*RO* ROJS
DATA H*SI* SIJS
DATA H*SO* SOJS
DATA H*TO* TOJS
DATA H*IO* IOJS
DATA H*DO* DOJS
DATA H*SU* SUJS
DATA H*PC* PCJS
DATA H*ER* ERJS
DATA H*NV* NVJS
DATA H*PW* PWJS
DATA H*SW* SWJS
SPACE 4,10
** COMMON DECKS.
CPR$ EQU 1 CALCULATE SCHEDULING PRIORITY
*CALL COMPCPE
PRD SPACE 4,10
** PRD - PAGE *R* DISPLAY.
*
* ENTRY (T2) = 0, IF PAGE FORWARD.
* = 1, IF PAGE BACKWARD.
PRD BSS 0 ENTRY
LDD T2
SBN 1
ZJN PRD1 IF PAGE BACKWARD
LDM TDSR+1
PRD1 STM TDSR STORE NEW PAGE INDEX
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY S - SYSTEM CONTROL INFORMATION.),PSD
ENTRY DSS,D
DSS SPACE 4,10
*** *S* DISPLAY.
*
* DISPLAY SYSTEM CONTROL INFORMATION.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
*
* SC QU QUEUE VALUES SERVICE LIMITS
* CP CT CM NJ TD
* FL AM TP AJ DT
* IL LP UP WF IP EC EM DS FC CS FS
* PR SE RS US
*
* TS IN 1234 1234 1234 1234 1234 1234 1234 1234
* EX 1234 1234 1234 1234 1234 1234 123456 1234 1234 SC
* OT 1234 1234 1234 123456 123456 2 2 2 2
* 12 1234 1234 1234
*
*
* SSTL = 0102 0304 0506 0710 1112 ABCDEFGHIJ
* INWL = 0102 0304 0506 0710 1112 ABCDEFGHIJ
DSS SUBR ENTRY/EXIT
DISPHD ("SHDR")
LDM UESC PRESET SHIFT INSTRUCTIONS
ADD TH
ERRNZ SHNI-1000
STM DSSE
STM DSSF
LDM DCTY
ZJN DSS0 IF CC545 CONSOLE
LCN 6-2
DSS0 ADN 6 SET NUMBER OF SERVICE CLASSES ON PAGE
STM DSSB
LDC DSSAL DISPLAY HEADER
OAM DSSA,CH
LDN 1 RESET NEXT PAGE INDEX
STM TDSS+1
LDC LN12 SET INITIAL Y-COORDINATE
STD YC
LDM TDSS INITIALIZE SERVICE CLASS
STD T7
RAM DSSB SET NUMBER OF LAST SERVICE CLASS ON PAGE+1
DSS1 LDN 2
OAM XC,CH OUTPUT COORDINATES
* LDN 0
STD T6 INITIALIZE QUEUE TYPE
LDD T7
SBN MXJC
MJN DSS3 IF JCB EXISTS
DSS2 LJM DSS12 DISPLAY *SSTL*
DSS3 LDM TNSC,T7 DISPLAY SERVICE CLASS
OAN CH+40
DSS4 SFA JCB,T7 READ QUEUE WORD
ADD T6
CRD CM
LDC CH04 OUTPUT X-COORDINATE
OAN CH+40
LDD YC OUTPUT Y-COORDINATE
OAN CH+40
LDM TQUT,T6 DISPLAY QUEUE TYPE
OAN CH+40
LDC CH02 PRESET X-COORDINATE
STD T3
* DISPLAY QUEUE VALUES.
LDN CM SET BYTE INDEX
STD T2
LDD CM+3 EXTRACT SHIFT COUNT
LPN 77
LMD TH
STM DSSD
LDN 1 CALCULATE WEIGHTING FACTOR
DSSD SHN 0
STD CM+3
DSS5 LDN 5*XINC ADVANCE X-COORDINATE
RAD T3
OAN CH+40 OUTPUT X-COORDINATE
LDI T2
RJM D4S DISPLAY BYTE
AOD T2
LMN CM+5
NJN DSS5 IF MORE QUEUE VALUES
* ADVANCE QUEUE TYPE.
DSS7 LCN YINC
RAD YC
AOD T6 ADVANCE QUEUE TYPE
LMN MXQT
ZJN DSS8 IF ALL QUEUES COMPLETE
LJM DSS4 LOOP
* DISPLAY SERVICE LIMITS.
DSS8 LDN MXQT*YINC ADJUST Y-COORDINATE
RAD YC
OAN CH+40
LDC CH37
OAN CH+40
SFA JCB,T7 GET SERVICE LIMIT WORDS FROM JCB
ADN SVJT
CRD CM
ADN MCMT-SVJT
CRD SH
ADN MECT-MCMT
CRD SR
ADN CSJT-MECT
CRD SP
ADK JCTT-CSJT
CRD T0
ADK PFCT-JCTT
CRD T1
LDD T1 SAVE *PF* VALUES
STD T3
LDD T0
STD T4
* DISPLAY *CP*, *CT*, *CM*, *NJ*, *TD*.
LDC CH37 OUTPUT X-COORDINATE
OAN CH+40
LDD SH SET CONTROL POINT SLICE PRIORITY
STD CM
LDN CM INITIALIZE BYTE NUMBER
STD T2
DSS9 LDI T2 DISPLAY NEXT BYTE
RJM D4S
AOD T2
LMN CM+5
NJN DSS9 IF NOT END OF WORD
* DISPLAY *FL*, *AM*, *EC*, *EM*.
LCN YINC
RAD YC OUTPUT COORDINATES
OAN CH+40
LDC CH37
OAN CH+40
LDD SH+2 DISPLAY *FL* VALUE
RJM D4S
LDC CH42
OAN CH+40
LDD SH+3 DISPLAY *AM* VALUE
SHN 14
LMD SH+4
RJM D6S
LCN YINC OUTPUT COORDINATES
ADD YC
OAN CH+40
LDC CH35
OAN CH+40
LDD SR+2 DISPLAY *EC* VALUE
DSSE SHN 0
* SHN UESC (UESC = USER EXTENDED MEMORY SHIFT COUNT)
RJM D6S
LDC CH42
OAN CH+40
LDD SR+4 DISPLAY *EM* VALUE
DSSF SHN 0
* SHN UESC (UESC = USER EXTENDED MEMORY SHIFT COUNT)
RJM D6S
* DISPLAY *DS*, *FC*, *CS*, *FS*.
LDC CH51
OAN CH+40
LDN 4 INITIALIZE *PF* COUNTER
STD T6
DSS10 LDD T3
SHN 3
STD T3
SHN -14
RJM D2S
SOD T6
NJN DSS10 IF MORE PARAMETERS
* DISPLAY *TP*, *AJ*, AND *DT*.
LDD YC OUTPUT COORDINATES
OAN CH+40
LDC CH49
OAN CH+40
LDD SH+1 DISPLAY *TP*
RJM D4S
LDD T4 DISPLAY *AJ*
RJM D4S
LDC CH63
OAN CH+40
LDM TNSC,T5
OAN CH+40
* DISPLAY *PR*, *SE*, *RS* AND *US*.
LCN 2*YINC MOVE TO 4TH LINE
ADD YC
OAN CH+40 OUTPUT Y-COORDINATE
LDC CH37
OAN CH+40 OUTPUT X-COORDINATE
LDD SP
STD SP+1
LDN SP+1 INITIALIZE BYTE NUMBER
STD T2
DSS10.1 LDI T2 DISPLAY NEXT BYTE
RJM D4S
AOD T2
LMN SP+5
NJN DSS10.1 IF NOT END OF WORD
* ADVANCE COORDINATES FOR NEXT SERVICE CLASS.
LCN 4*YINC DECREMENT Y-COORDINATE
RAD YC
AOD T7 ADVANCE SERVICE CLASS
SBM DSSB
ZJN DSS11 IF PAGE FULL
LJM DSS1 LOOP
* DISPLAY *SSTL* AND *INWL*.
DSS11 LDD T7 SET NEXT PAGE INDEX
STM TDSS+1
DSS12 LCN YINC
RAD YC
OAN CH+40
DISPLA CH03,,(SSTL =)
LDN SSTL READ SYSTEM STATUS
CRD CM
RJM D5F DISPLAY STATUS WORD
LCN YINC DECREMENT Y-COORDINATE
RAD YC
OAN CH+40
DISPLA CH03,,(INWL =)
LDC INWL READ INTERLOCK WORD
CRD CM
RJM D5F DISPLAY INTERLOCK WORD
LJM DSSX RETURN
DSSA CON CH01,LN06
DATA H*SC QU QUEUE VALUES*
CON CH35
DATA H*SERVICE LIMITS*
CON CH39,LN07
DATA H*CP*
CON CH45
DATA H*CT*
CON CH51
DATA H*CM*
CON CH57
DATA H*NJ*
CON CH63
DATA H*TD*
CON CH39,LN08
DATA H*FL*
CON CH45
DATA H*AM*
CON CH51
DATA H*TP*
CON CH57
DATA H*AJ*
CON CH63
DATA H*DT*
CON CH09,LN09
DATA H*IL*
CON CH14
DATA H*LP*
CON CH19
DATA H*UP*
CON CH24
DATA H*WF*
CON CH29
DATA H*IP*
CON CH39
DATA H*EC*
CON CH45
DATA H*EM*
CON CH51
DATA H*DS FC CS FS*
CON CH39,LN10
DATA H*PR*
CON CH45
DATA H*SE*
CON CH51
DATA H*RS*
CON CH57
DATA H*US*
DSSAL EQU *-DSSA
DSSB CON 0 FIRST SERVICE CLASS NEXT PAGE
TQUT SPACE 4,10
** TQUT - TABLE OF QUEUE TYPES.
TQUT CON 2RIN
CON 2REX
CON 2ROT
CON 0 END OF TABLE
TNSC SPACE 4,10
** TNSC - TABLE OF TWO-CHARACTER SERVICE CLASS TYPES.
LIST D,G
TNSC DATA H+"NMSC"+
LIST *
CON 0 END OF TABLE
PSD SPACE 4,10
** PSD - PAGE *S* DISPLAY.
*
* ENTRY (T2) = 0, IF PAGE FORWARD.
* = 1, IF PAGE BACKWARD.
PSD BSS 0 ENTRY
LDD T2
NJN PSD1 IF *-*
LDP TDSS+1
PSD1 STP TDSS
LJM. /KEYBOARD/KBIX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY T - TIME SHARING STATUS.),PTD
ENTRY DST,D
DST SPACE 4,10
*** *T* DISPLAY.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* TOTAL USERS = 123456D ACTIVE USERS = 123D
*
* CONN USER JSN W ST TERM CONN USER JSN W ST TERM
*
* 2 CDCCE ABBC * TE 56 USERXYZ BBCC IO CLNTN17
* 23 ASDFASD ACCC EX BLNTA1F 65 ABCDEFG BCCC * DO ALNTN07
* MORE
*
* THE FOLLOWING DIRECT CELLS ARE USED FOR SPECIFIC FUNCTIONS.
*
* (SR+1 - SR+2) = WARN MESSAGE ADDRESS.
* (SR+3) = NUMBER OF ACTIVE USERS.
* (SR+4) = COUNT OF NUMBER OF ACTIVE USERS FOUND SO FAR.
* (T3) = MAXIMUM NUMBER OF USERS POSSIBLE.
* (T5) = DISPLAY COLUMN INDICATOR.
* (T6) = CURRENT CONNECTION NUMBER.
* (T8) = RA/100B.
* (YC) = Y-COORDINATE.
DST SUBR ENTRY/EXIT
DISPHD ("THDR") DISPLAY SCREEN TITLE
LDM CTOS SET TOP OF SCREEN
OAN CH+40
SBN 2*YINC
STM DSTD
SBN YINC
STD YC
LDM. CMEI
ZJN DST1 IF CME NOT PRESENT
STM DSTA
DST1 LDC IFSI FIND *IAF*
RJM FSS
NJN DST2 IF INTERACTIVE SUBSYSTEM ACTIVE
DISPLA CH01,,(NOT ACTIVE)
UJN DSTX RETURN
DST2 SHN 7 READ JOB STATUS
DSTA ADN FLSW
* ADN FLSW+1 (CME PRESENT)
CRD CM
LRD CM+1
LDD CM+3 GET TERMINAL TABLE POINTER
SHN 6
ADN /REM/VTTP
CRD AB
ADN /REM/VWMP-/REM/VTTP GET WARN MESSAGE ADDRESS
CRD SR
ADN /REM/VTNL-/REM/VWMP TOTAL USER COUNT (CM+3 - CM+4)
CRD CM
ADN /REM/VANL-/REM/VTNL ACTIVE USER COUNT (CM+2)
CRD T6
ADN /REM/VMNL-/REM/VANL MAXIMUM USER COUNT (CM+1)
CRD T5
ADN /REM/VCTL-/REM/VMNL CONVERTED *VTNL* (T6 - CM)
CRD T4
ADN /REM/VCAL-/REM/VCTL CONVERTED *VANL* (T4 - T5)
CRD T1
SHN -6 SET RA
STD T8
LDD CM+1 SAVE MAXIMUM USER COUNT
ADN /REM/VPST
STD T3
DISPLA CH01,,(TOTAL USERS = )
LDN 3 DISPLAY TOTAL USER COUNT
OAM T6,CH
LDD CM+3
ADD CM+4
ZJN DST3 IF NO USERS
LDC 1RD*100 ADD DECIMAL POST-RADIX
DST3 OAN CH+40
DISPLA ,,( ACTIVE USERS =)
LDN 2
OAM T4,CH DISPLAY ACTIVE USER COUNT
LDD CM+2 SAVE NUMBER OF ACTIVE USERS
STD SR+3
ZJN DST4 IF NO ACTIVE USERS
LDC 1RD*100 ADD DECIMAL POST-RADIX
DST4 OAN CH+40
LDM TDST SET FIRST CONNECTION NUMBER ON PAGE
STD T6
LDN DSTCL
OAM DSTC,CH
* LDN 0 INITIALIZE DISPLAY COLUMN
STD T5
STD SR+4 INITIALIZE NUMBER OF ENTRIES USED
* INITIALIZE TERMINAL TABLE ADDRESSES.
LDD AB+1 SET ADDRESS OF FIRST TERMINAL TABLE ENTRY
SHN 6
ADD T8
SHN 6
ADD AB+2
STM TTAA+1
SHN -14
LMC ADCI
STM TTAA
* COUNT NUMBER OF ACTIVE USERS BEFORE BEGINNING OF CURRENT
* PAGE.
LDD T6 SAVE FIRST CONNECTION NUMBER ON PAGE
STD T4
LMN /REM/VPST
ZJN DST7 IF BEGINNING OF TERMINAL TABLE
LDN /REM/VPST INITIALIZE INDEX
STD T6
DST5 RJM TTA GET NEXT JSN
ADN /REM/VFST
CRD CM
LDD CM
ZJN DST6 IF ENTRY NOT IN USE
AOD SR+4 INCREMENT NUMBER OF ENTRIES IN USE
DST6 AOD T6 INCREMENT INDEX
LMD T4
NJN DST5 IF NOT BEGINNING OF PAGE
DST7 LDD T6 GET FIRST CONNECTION NUMBER ON PAGE
UJN DST9 ENTER LOOP
* PROCESS NEXT TERMINAL.
DST8 LDD SR+3
LMD SR+4
ZJN DST11 IF NO MORE ACTIVE USERS
AOD T6 INCREMENT CONNECTION NUMBER
DST9 LMD T3
ZJN DST11 IF END OF TERMINALS
RJM TTA SET TERMINAL TABLE ADDRESS
ADN /REM/VFST GET JSN
CRD CM
LDD CM
ZJN DST8 IF USER NOT ACTIVE
AOD SR+4 INCREMENT NUMBER OF ENTRIES IN USE
LCN YINC
RAD YC DECREMENT Y-COORDINATE
DST10 OAN CH+40
SBM CBOS
PJN DST14 IF COLUMN NOT FULL
LDD T5
NJN DST12 IF BOTH COLUMNS FULL
AOD T5
LDM DSTE,T5 OUTPUT RIGHT COLUMN HEADER
OAN CH+40
LDN DSTDL DISPLAY HEADER
OAM DSTD,CH
LDM DSTD RESET Y-COORDINATE
SBN 2*YINC
STD YC
UJN DST10 USE RIGHT COLUMN
DST11 LDN /REM/VPST RESET FIRST CONNECTION NUMBER
UJN DST13 RETURN
DST12 LDN TMREL OUTPUT *MORE* MESSAGE
OAM TMRE,CH
LDD T6
DST13 STM TDST+1 SET FIRST CONNECTION NUMBER FOR NEXT PAGE
LJM DSTX RETURN
* DISPLAY TERMINAL STATUS.
DST14 RJM TTA SET TERMINAL TABLE ADDRESS
ADK /REM/VUIT GET USER NAME
CRD SH
ADN /REM/VSTT-/REM/VUIT GET WARNING STATUS
CRD AB
LDM DSTE,T5 OUTPUT X-COORDINATE
OAN CH+40
LDD T6 DISPLAY CONNECTION NUMBER
RJM D4S
LDD SH+3 DISPLAY USER NAME
SCN 77
STD SH+3
LDM DSTF,T5 OUTPUT X-COORDINATE
OAN CH+40
LDN 4
OAM SH,CH
STD T1 CLEAR MESSAGE INDEX
LDM DSTG,T5 OUTPUT X-COORDINATE
OAN CH+40
LDN 2 DISPLAY JSN
OAM CM,CH
LDD SR+1
ADD SR+2
ZJN DST15 IF NO WARN MESSAGE PRESENT
LDD AB
LPN 4
NJN DST15 IF WARN MESSAGE ISSUED
LDC 2R *
UJN DST16 ISSUE WARN MESSAGE REMINDER
DST15 LDN 0
DST16 OAN CH+40
SFA EJT,SH+4
ADK JSNE
CRD SH READ JOB STATUS
LDD SH+4
LPN 76
SHN -1
STD SH+4
LDM DSTH,T5 OUTPUT X-COORDINATE
OAN CH+40
LDM DSTJ,SH+4
OAN CH+40 DISPLAY JOB STATUS
* DISPLAY TERMINAL NAME.
LDD T8 RA
SHN 6
ADN /REM/VTNP ADDRESS OF TABLE
CRD CM
LDD CM+1
SHN 6
ADD T8
SHN 6
ADD CM+2
ADD T6
CRD CM GET TERMINAL NAME
LDM DSTI,T5 OUTPUT X-COORDINATE
OAN CH+40
LDN 4
OAM CM,CH DISPLAY TERMINAL NAME
LJM DST8 PROCESS NEXT TERMINAL
* HEADER.
DSTC CON CH01
DSTD CON LN07
DATA H*CONN USER JSN W ST TERM*
DSTDL EQU *-DSTD
DSTCL EQU *-DSTC
* X-COORDINATE FOR CONNECTION NUMBER.
DSTE BSS 0
CON CH01 LEFT COLUMN
CON CH35 RIGHT COLUMN
* X-COORDINATE FOR USERNAME.
DSTF BSS 0
CON CH06
CON CH40
* X-COORDINATE FOR JSN.
DSTG BSS 0
CON CH14
CON CH48
* X-COORDINATE FOR JOB STATUS.
DSTH BSS 0
CON CH21 LEFT COLUMN
CON CH55 RIGHT COLUMN
* X-COORDINATE FOR TERMINAL NAME
DSTI BSS 0
CON CH24 LEFT COLUMN
CON CH58 RIGHT COLUMN
* T - DISPLAY *MORE* MESSAGE.
TMRE CON CH30
DATA 4HMORE
TMREL EQU *-TMRE
* JOB STATUS CODES.
DSTJ BSS 0
DATA H*IN* PRJS
DATA H*EX* EXJS
DATA H*RO* ROJS
DATA H*SI* SIJS
DATA H*SO* SOJS
DATA H*TE* TOJS
DATA H*IO* IOJS
DATA H*DO* DOJS
DATA H*SU* SUJS
DATA H*PC* PCJS
DATA H*ER* ERJS
DATA H*NV* NVJS
DATA H*PW* PWJS
DATA H*SW* SWJS
DSTJL EQU *-DSTJ
ERRNZ DSTJL-MXJS TABLE SIZE ERROR
PTD SPACE 4,10
** PTD - PAGE *T* DISPLAY.
*
* ENTRY (T2) = 0, IF PAGE FORWARD.
* = 1, IF PAGE BACKWARD.
PTD BSS 0 ENTRY
LDD T2
NJN PTD1 IF *-*
LDM TDST+1
UJN PTD2 ADVANCE DISPLAY
PTD1 LDN /REM/VPST RESET TO FIRST CONNECTION NUMBER
PTD2 STM TDST STORE NEW PAGE INDEX
LJM. /KEYBOARD/KBIX RETURN
TTA SPACE 4,10
** TTA - SET TERMINAL TABLE ADDRESS.
*
* ENTRY (T6) = TERMINAL NUMBER.
*
* EXIT (A) = TERMINAL TABLE ADDRESS.
TTA SUBR ENTRY/EXIT
TTAP LDD,T6 SET RELATIVE INDEX IN TABLE
TTAA ADC * ADD BASE ADDRESS
UJN TTAX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY V - PP BREAKPOINT.),,CMR
ENTRY DSV,DSV
SPACE 4,10
*** *V* DISPLAY.
DSV SUBR ENTRY/EXIT
DISPHD (V,)
LDM TDSV SAVE REFRESH FLAG
STD T5
RJM DPN DISPLAY PP NUMBER
DISPLA ,,(. PP BREAKPOINT.)
* LDN 0
STD T6 INITIALIZE CM BUFFER INDEX
* SET COMMUNICATIONS ADDRESS.
LDM TDSV+1 PP MB+5
STD CN
ZJN DSVX IF NO PP PRESENT
SBN 1
STD T7 SET END OF COMMUNICATIONS AREA DISPLAY
SBN 6
STD T4 FWA OF PP COMMUNICATIONS AREA
* LOCATE COMMUNICATION AREA IN CMR.
LDN DFPP FETCH DAYFILE-S POINTER
CRD CM
LDD CM
SHN 14
LMD CM+1
SBN 50 LOCATE COMMUNICATION AREA
STM ACAA+1
SHN -14
ADC ADCI UPDATE ROUTINE *ACA*
STM ACAA
* DISPLAY PP COMMUNICATIONS AREA.
LDM CTOS
ADN YINC
STD YC SET COORDINATES
RJM PNL
LDD T4 DISPLAY PP COMMUNICATIONS ADDRESS
RJM D4D
RJM CBK CHECK PP AT BREAKPOINT
STD T3
ZJN DSV1 IF AT BREAKPOINT
LDN 2
RAD T7 ADJUST MESSAGE BUFFER LIMIT CHECK
DSV1 LDD T4
RJM DCA DISPLAY WORD
RJM PNL
AOD T4 ADVANCE ADDRESS
LMD T7
NJN DSV1 IF MORE TO DISPLAY
LDD T3
ZJN DSV3 IF AT BREAKPOINT
DISPLA CH01,LN17,(NOT AT BREAKPOINT)
DSV2 LJM DSVX RETURN
* DISPLAY MB+4 AND MB+5.
DSV3 AOD T6 FETCH DATA FROM CM BUFFER
RJM ACA
CRD CM DISPLAY 5 GROUPS OF 4 DIGITS
RJM D5F
RJM PNL SWITCH TO NEXT DISPLAY LINE
AOD T6
RJM ACA READ MB+5 DATA
CRD CM
RJM D5F DISPLAY DATA
AOD T6
* CHECK FOR DISPLAY UPDATE REQUIRED.
LDD T5 CHECK REFRESH FLAG
SCN 77
ZJN DSV4 IF NO UPDATE REQUIRED
LMD T5
STM TDSV CLEAR UPDATE FLAG
RJM BLD ASSEMBLE NEW DISPLAY DATA
UJN DSV2 RETURN
* DISPLAY *P* AND *A* REGISTERS.
DSV4 LDD CN READ REGISTER DATA
CRD CM
DISPLA CH54,LN10,(P = )
LDD CM+4 DISPLAY *P* REGISTER
RJM D4D
DISPLA CH54,LN12,(A = )
LDD CM+2 DISPLAY *A* REGISTER
RJM D2D
LDD CM+3
RJM D4D
LCN YINC SKIP ONE LINE
RAD YC
RJM PNL RESET DISPLAY COORDINATES
* DISPLAY PP MEMORY AT *C*.
LDM DCTY
ZJN DSV6 IF CC545
LCN 3
DSV6 ADN 10 SET BLOCK COUNT
STD T5
LDN 1RC DISPLAY BLOCK IDENTIFIER *C*
OAN CH
DSV7 RJM DPM DISPLAY EIGHT BYTES
SOD T5
NJN DSV7 IF NOT END OF BLOCK
RJM PNL SKIP ONE LINE
* DISPLAY PP MEMORY AT *D*.
LDN 10 SET BLOCK COUNT
STD T5
LDN 1RD DISPLAY BLOCK IDENTIFIER *D*
OAN CH
DSV8 RJM DPM DISPLAY EIGHT BYTES
SOD T5
NJN DSV8 IF NOT END OF BLOCK
LJM DSVX RETURN
ACA SPACE 4,10
** ACA - ADD CM BUFFER ADDRESS.
*
* ENTRY (A) = OFFSET INTO BUFFER.
ACA SUBR ENTRY/EXIT
ACAA ADC 0
UJN ACAX RETURN
BLD SPACE 4,10
** BLD - BUILD BUFFER.
*
* ENTRY (T3) = CM BUFFER INDEX.
* (CN) = PP MB+5 ADDRESS.
*
* USES T5.
*
* CALLS SPM.
*
* NOTE - DATA STORED IN CM AS (12/ADDR, 48/DATA)
BLD SUBR ENTRY/EXIT
AOM SPMA
LDC PBK4 SAVE MB+4 IN CM BUFFER
RJM SPM
LDC PBK5 SAVE MB+5
RJM SPM
SOM SPMA RESTORE INSTRUCTION FOR MEMORY DATA
* READ AREA AT C AND D.
LDM DCTY
ZJN BLD1 IF CC545
LCN 3*2
BLD1 ADN 10*2 SET BLOCK COUNT
STD T5
LDM TDSV+2 ASSEMBLE DATA FOR DISPLAY AT C
STD T7
BLD2 LDD T7 SAVE FOUR BYTES
RJM SPM
SOD T5
NJN BLD2 IF NOT END OF BLOCK
LDN 10*2
STD T5 SET BLOCK COUNT
LDM TDSV+3
STD T7 ASSEMBLE DATA FOR DISPLAY AT D
BLD3 LDD T7
RJM SPM SAVE FOUR BYTES
SOD T5
NJN BLD3 IF NOT END OF BLOCK
UJP BLDX RETURN
CBK SPACE 4,10
** CBK - CHECK PP AT BREAKPOINT.
*
* ENTRY (CN) = PP MB+5 ADDRESS.
*
* EXIT (A) = 0 IF AT BREAKPOINT.
* (CM - CM+4) = (MB+5).
CBK SUBR ENTRY/EXIT
LDD CN
CRD CM READ PP MESSAGE BUFFER
LDD CM
ADD CM+1 CHECK PP AT BREAKPOINT
LMC 2*7777
UJN CBKX RETURN
DCA SPACE 4,10
** DCA - DISPLAY COMMUNICATIONS AREA WORD.
*
* ENTRY (A) = ADDRESS OF WORD.
*
* USES CM - CM+4, SH - SH+4.
*
* CALLS D5F.
DCA1 LDN CM SET ADDRESS OF PROGRAM NAME
DCA2 STM DCAA
LDC CH06 OUTPUT X-COORDINATE
OAN CH+40
LDN 2 TRANSLATE NAME / FUNCTION
OAM **,CH
DCAA EQU *-1
DCA3 RJM D5F DISPLAY WORD
DCA SUBR ENTRY/EXIT
CRD CM
LPN 7
ZJN DCA1 IF PP INPUT REGISTER ADDRESS
LMN 1
NJN DCA3 IF NOT OUTPUT REGISTER ADDRESS
LDD CM
SHN -1 UNPACK MONITOR FUNCTION
LPN 77
STD T0 SET TRANSLATION TABLE INDEX
LDC RPLP
CRD SH FETCH RPL POINTER
LDD SH
SHN 14 FORM FWA OF RPL
LMD SH+1
ZJN DCA3 IF LIBRARY LOCKED
ADK /DISPLAY/TFTN
ADD T0 GET MONITOR FUNCTION MNEMONIC
CRD SH
LDD CM UNPACK MONITOR FUNCTION
SHN 1
LPN 2 FORM BYTE INDEX
ADN SH
UJP DCA2 SET ADDRESS OF MNEMONIC
DPM SPACE 4,10
** DPM - DISPLAY PP MEMORY.
*
* ENTRY (T6) = CM BUFFER INDEX.
*
* EXIT (T6) = (T6) + 2.
* (YC) = Y-COORDINATE ADVANCED TO NEXT LINE.
*
* USES T7, CM - CM+4.
*
* CALLS ACA, D4F, PNL.
DPM SUBR ENTRY/EXIT
LDD T6
RJM ACA FETCH DATA FROM CM BUFFER
CRD T7
LDC CH03
OAN CH OUTPUT X-COORDINATE
LDN 1R(
OAN CH
LDD T7 DISPLAY ADDRESS VALUE
RJM D4D
LDC 2R)
OAN CH
LDC CH11-5*XINC SET X-COORDINATE
STD T3
RJM D4F DISPLAY FOUR FIELDS
AOD T6
RJM ACA GET NEXT FOUR BYTES
CRD T7
RJM D4F DISPLAY FOUR FIELDS
RJM PNL
AOD T6
UJN DPMX RETURN
DPN SPACE 4,10
** DPN - DISPLAY PP NUMBER.
*
* ENTRY (T5) = PP NUMBER.
*
* USES AB - AB+4, CM - CM+4.
*
* CALLS D2D.
DPN1 LDD T5 DISPLAY PP NUMBER
RJM D2D
DPN SUBR ENTRY/EXIT
LDN PPUL
CRD CM FETCH PP COUNTS
LDN PPCP
CRD AB GET PP COMMUNICATIONS AREA ADDRESS
AOD CM+3
LPN 77 PSEUDO PP + CPP COUNT
ADD CM+2
SHN 3 CALCULATE LWA+1 OF COMMUNICATION AREA
ADD AB+4
SBN 1 LWA OF PSEUDO PP MESSAGE BUFFER
LMM TDSV+1
NJN DPN1 IF NOT PSEUDO PP
LDC 2RPS
OAN CH+40
UJN DPNX RETURN
D4F SPACE 4,10
** D4F - DISPLAY FOUR FIELDS.
*
* ENTRY (T3) = CURRENT X-COORDINATE.
* (CM - CM+4) = DATA TO DISPLAY.
*
* EXIT (T3) ADVANCED.
*
* USES T2.
*
* CALLS D4D.
D4F SUBR ENTRY/EXIT
LDN CM
STD T2
D4F1 LDN 5*XINC ADVANCE X-COORDINATE
RAD T3
OAN CH OUTPUT COORDINATE
LDI T2
RJM D4D DISPLAY FOUR DIGITS
AOD T2
LMN CM+4
NJN D4F1 IF MORE TO DISPLAY
UJN D4FX RETURN
PNL SPACE 4,10
** PNL - POSITION DISPLAY TO NEXT LINE.
*
* ENTRY (XC) = X-COORDINATE.
* (YC) = CURRENT Y-COORDINATE.
*
* EXIT (YC) = (YC) - YINC.
PNL SUBR ENTRY/EXIT
LCN YINC
RAD YC
LDN 2 POSITION DISPLAY
OAM XC,CH
UJN PNLX RETURN
SPM SPACE 4,10
** SPM - SAVE PP MEMORY.
*
* ENTRY (A) = PP MEMORY ADDRESS.
* (T3) = CM BUFFER INDEX.
* (CN) = PP MB+5 ADDRESS.
*
* EXIT (T3) = (T3) + 1.
* (T7) = PP MEMORY ADDRESS + 4.
*
* USES T1, CM - CM+4.
*
* CALLS ACA, CBK.
SPM2 RJM CBK CHECK REQUEST COMPLETE
NJN SPM1 IF NOT COMPLETE
LDD CN
SBN 1
CRD CM FETCH DATA FROM PP
AOD T3
RJM ACA STORE DATA IN CM BUFFER
SPMA CWD T7
* CWD CM (SAVING MB+4 AND MB+5)
LDN 4
RAD T7 ADVANCE PP MEMORY ADDRESS
SPM SUBR ENTRY/EXIT
STD T7
STD CM+4
LDN PBCF PPN.C,XXXX.
STD CM+3
STD CM ENSURE NO 7777
LDD CN
CWD CM STORE PP REQUEST
LDN 77
STD T1 INITIALIZE COUNTER
SPM1 SOD T1
PJN SPM2 IF NOT TIMED OUT
LJM DSVX EXIT - PP LOST
SPACE 4,10
DSPEND
DISPLAY (DISPLAY W - MEMORY ALLOCATION.)
ENTRY DSWA,DSWA
SPACE 4,10
*** *W,A* DISPLAY - MEMORY ALLOCATION.
*
* DISPLAY MEMORY ALLOCATION.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
*
* CENTRAL MEMORY
*
* 40000
*
*
*
*
* EXTENDED MEMORY
*
* FILE I/O BUFF TRACK USER XM
* USER XM SPACE SPACE SIZE BLOCK SIZE
*
* UEM 2000 0 1000
* EQ 5 7700 20
DSWA SUBR ENTRY/EXIT
DISPHD (W,A. MEMORY ALLOCATION.)
* LDN 0 PRESET T9
STD T9
STD T7 PRESET NUMBER OF CONTROL BLOCK ENTRIES
* READ INFORMATION FROM LOW CORE.
LDK ECRL NO. OF *UEBS*-WORD BLOCKS FOR USER ACCESS
CRD AB
ADK UEML-ECRL DETERMINE IF UEM PRESENT
CRD CM
ADK EXML-UEML GET EST ORDINAL OF EQ WITH CPU PORT
CRD T2
ADK BIOL-EXML FWA BUFFERED I/O TABLES
CRD SR
ADK MEFL-BIOL GET SHIFT COUNTS
CRD SH
LDD SH+2 GET USER EM BLOCK SHIFT COUNT
SHN -11
ADD TH
ERRNZ SHNI-1000
STM DSWB
STM DSWD
STM DSWE
LDK ESTP GET LAST MS ORDINAL+1
CRD T1
ADK MABL-ESTP GET CM SIZE/100B
CRD SH
LDD SR+1
SHN 14
LMD SR+2
ZJN DSW1 IF NO I/O BUFFER SPACE DEFINED
ADK CBTP POINTER TO CONTROL BLOCK TABLES
CRD T7
* DISPLAY TITLES, COLUMN HEADERS, AND CENTRAL MEMORY.
DSW1 LDN DSWFL
OAM DSWF,CH
LDD SH+2
SHN 14
LMD SH+3
RJM D6S
LDC LN19 SET Y-COORDINATE
STD YC
OAN CH+40
* DISPLAY UEM FIRST IF PRESENT AND NO EQ ENTRY FOR IT.
LDD CM+4
LPN 2
ZJN DSW4 IF UEM NOT PRESENT
LDK NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
STD T5
DSW2 RJM FEM DETERMINE IF UEM HAS AN EQ ENTRY
ZJN DSW4 IF EQ ENTRY FOR UEM FOUND
PJN DSW2 IF EM TYPE IS NOT UEM, AND NOT END OF EST
STD T8 DO NOT DISPLAY *UEM* FLAG
STD T9 FLAG - UEM PRESENT WITHOUT EQ ENTRY
DISPLA CH01,,(UEM )
* LDN 0
STD T5 EQ ENTRY FOR UEM NOT APPLICABLE
LJM DSW9 DISPLAY USER EM FOR UEM
* FIND AND DISPLAY EACH EM EQUIPMENT.
DSW3 NJN DSW5 IF EST ORDINAL ALREADY INITIALIZED
DSW4 LDK NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
STD T5
DSW5 RJM FEM FIND EXTENDED MEMORY EQUIPMENT
MJP DSWAX IF END OF EST
DISPLA CH01,,(EQ)
LDD T5
RJM D4S
* DISPLAY FILE SPACE ALLOCATED ON EQUIPMENT AND TRACK SIZE.
LDC CH20
OAN CH+40
LDD CM+4 MST ADDRESS/10B
SHN 3
ADK TDGL GET NO. OF TRACKS ON DEVICE
CRD SR
ADK MDGL-TDGL
CRD SH SECTOR LIMIT
LDD SH+4 CREATE TRACK SHIFT FACTOR
SHN -5
LMN 4
ZJN DSW6 IF SHIFT FACTOR .EQ. 4
ADN 1
DSW6 LMN 4
ADD TH
ERRNZ SHNI-1000
STM DSWC
LDD T2+4 EQ WITH CPU PORT
LPC 777
LMD T5
ADD T9
STD T3
ZJN DSW7 IF EQ HAS CPU PORT AND UEM HAS EQ ENTRY
LDN 0
UJN DSW8 NO USER EM TO SUBTRACT
DSW7 LDD AB+1 NO. OF *UEBS*-WORD BLOCKS FOR USER ACCESS
DSWB SHN 0 (*UEBS* = 1000B WORDS)
* SHN 1 (*UEBS* = 2000B WORDS)
* SHN 2 (*UEBS* = 4000B WORDS)
* SHN 3 (*UEBS* = 10000B WORDS)
* SHN 4 (*UEBS* = 20000B WORDS)
DSW8 STD AB+4 SAVE USER EM SIZE
SHN -14
STD AB+3
LDD SR NUMBER OF TRACKS ON DEVICE
DSWC SHN 1 (TRACK SIZE = 20B SECTORS)
* SHN 2 (TRACK SIZE = 40B SECTORS)
* SHN 3 (TRACK SIZE = 100B SECTORS)
* SHN 4 (TRACK SIZE = 200B SECTORS)
SBD AB+4 SUBTRACT USER EM ON DEVICE
STD SR+4
SHN -14
SBD AB+3
SHN 14
LMD SR+4
RJM D6S DISPLAY FILE SPACE
LDC CH40
OAN CH+40
LDD SH+4
RJM D4S DISPLAY TRACK SIZE
LDD T3
NJN DSW10 IF EQ W/O CPU PORT OR UEM W/O EQ ENTRY
* DISPLAY USER EM, I/O BUFFER SPACE AND USER EM BLOCK SIZE.
DSW9 LDC CH11
OAN CH+40
LDD AB+1 NO. OF *UEBS*-WORD BLOCKS FOR USER ACCESS
DSWD SHN 0 (*UEBS* = 1000B WORDS)
* SHN 1 (*UEBS* = 2000B WORDS)
* SHN 2 (*UEBS* = 4000B WORDS)
* SHN 3 (*UEBS* = 10000B WORDS)
* SHN 4 (*UEBS* = 20000B WORDS)
RJM D6S
LDC CH30
OAN CH+40
LDD T7 NUMBER OF CBT ENTRIES
SHN 2 ONE CBT PER 4000-WORD I/O BUFFER
RJM D6S
LDD AB+1
ZJN DSW10 IF NO USER EM DEFINED
LDC CH50
OAN CH+40
LDC 1000 DEFAULT USER EM BLOCK SIZE
DSWE SHN 0 (*UEBS* = 1000B WORDS)
* SHN 1 (*UEBS* = 2000B WORDS)
* SHN 2 (*UEBS* = 4000B WORDS)
* SHN 3 (*UEBS* = 10000B WORDS)
* SHN 4 (*UEBS* = 20000B WORDS)
RJM D6S
* DISPLAY *UEM* IF THIS EQ IS UEM.
DSW10 LDD T8
NJN DSW11 IF THIS EQ IS NOT UEM
DISPLA CH60,,(UEM )
DSW11 LCN YINC
RAD YC
OAN CH+40
LDD T5
LJM DSW3 CHECK NEXT EST ORDINAL
DSWF CON LN07 CM TITLE
CON CH26
DATA H*CENTRAL MEMORY*
CON LN14 EM TITLE AND COLUMN HEADERS
CON CH25
DATA H*EXTENDED MEMORY*
CON LN16
CON CH21
DATA H*FILE*
CON CH29
DATA H*I/O BUFF*
CON CH40
DATA H*TRACK *
CON CH49
DATA H*USER XM *
CON LN17
CON CH11
DATA H*USER XM *
CON CH21
DATA H*SPACE *
CON CH30
DATA H*SPACE *
CON CH40
DATA H*SIZE*
CON CH48
DATA H*BLOCK SIZE*
CON LN09 POSITION FOR CM SIZE
CON CH29
DSWFL EQU *-DSWF
FEM SPACE 4,10
** FEM - FIND EXTENDED MEMORY EQUIPMENTS.
*
* ENTRY (T4) = LAST MASS STORAGE EST ORDINAL+1.
* (T5) = EST ORD OF LAST EQ CHECKED.
*
* EXIT (A) .GT. 0, IF EM TYPE IS NOT UEM.
* = 0, IF EM TYPE IS UEM.
* = -1, IF END OF EST.
* (T8) .GT. 0, IF EM TYPE IS NOT UEM.
* = 0, IF EM TYPE IS UEM.
* (T5) = EST ORDINAL, IF EQ TYPE IS *DE* OR *DP*.
* (CM+4) = MST ADDRESS/10B.
*
* USES T5, T8, CM - CM+4, SR - SR+4.
FEM3 LCN 1
FEM SUBR ENTRY/EXIT
FEM1 AOD T5
SBD T4
PJN FEM3 IF END OF LIST
LDD T5
SFA EST GET EST FWA
ADK EQDE
CRD CM
LDD CM+3 CHECK DEVICE TYPE
LMC 2RDE
ZJN FEM2 IF EM EQUIPMENT
LMN 2RDE&2RDP
NJN FEM1 IF NOT EM EQUIPMENT
FEM2 LDD CM+4 MST ADDRESS/10B
SHN 3
ADK DILL GET EM TYPE
CRD SR
LDD SR+3
SHN -6
LPN 7
LMN 4 UEM
STD T8
UJN FEMX RETURN
SPACE 4,10
DSPEND
DISPLAY (DISPLAY W - CHANNEL STATUS.),,CMR
ENTRY DSWC,DSWC
SPACE 4,35
*** *W,C* DISPLAY - CHANNEL STATUS.
*
* DISPLAY CHANNEL STATUS.
*
* EXAMPLE (NO CONCURRENT CHANNELS) -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
*
* CHANNEL A REGISTER = 0000
*
* CH PP PGM STATUS (170) CH PP PGM STATUS (180)
*
* 0 20 11 1MI -CF
* 1 21 ---
* 2 3 1SJ FULL 22 D-E
* 3 22 1TO DOWN FULL 23 7 1AJ ---
*
*
* EXAMPLE (CONCURRENT CHANNELS) -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
*
* CHANNEL A REGISTER = 0000
*
* CH PP PGM STATUS CH PP PGM STATUS CCH PP PGM STATUS
*
* 0 --- 20 11 1TO -CF 0 ---
* 1 --- 21 --- 1 C01 1XY ---
* 2 3 1MB --F 22 D-E 2 DC-
* 3 22 1XM D-F 23 7 1TA --- 3 C04 1XY -C-
DIRECT SPACE 4,10
** DIRECT CELL ASSIGNMENTS.
CN EQU AB CHANNEL NUMBER
CW EQU AB+1 COLUMN WIDTH
CC EQU AB+2 CONCURRENT CHANNEL COLUMN FLAG
DSWC SUBR ENTRY/EXIT
DSWA LJM PRS PRESET OVERLAY
* UJN DSW1 (AFTER PRESET IS COMPLETE)
DSW1 DISPHD (W,C. CHANNEL STATUS.)
* LDN 0
STD CN CLEAR CHANNEL NUMBER
STD CW CLEAR COLUMN WIDTH
STD CC CLEAR CCH COLUMN FLAG
DSWB LDN ** SET LAST NCH + 1
STD T7
LDM CTOS INITIALIZE Y-COORDINATES
OAN CH+40
DISPLA CH01,,(CHANNEL A REGISTER = )
LDD AR
RJM D4D DISPLAY *A* REGISTER
* DISPLAY CHANNEL STATUS.
LDN CTALL CHANNEL STATUS TABLE LENGTH
STD T2
DSWD LDC ** FWA OF CHANNEL TABLES
CRM CHTB,T2
DSW2 RJM DCH DISPLAY COLUMN HEADER
DSW3 LCN YINC MOVE TO NEXT LINE
RAD YC
LDN 2
OAM XC,CH
LDD CN
LPN 37
RJM D2Z OUTPUT CHANNEL NUMBER
LDM DCHD+1 OUTPUT COORDINATE OF ASSIGNED PP
OAN CH+40
LDM CHTB,CN CHECK ASSIGNMENT
LPN 37
ZJN DSW6 IF NOT ASSIGNED
STD T2
SBN 20D
MJN DSW4 IF THIS IS AN NPP
STD T0
LDN 1RC
OAN CH+40
LDD T0
RJM D2D DISPLAY CPP NUMBER
LDN 0
OAN CH+40
UJN DSW5.1 DISPLAY PROGRAM NAME
DSW4 ADN 10D
MJN DSW5 IF LOWER BANK
ADN 6 SET UPPER BANK PP NUMBER
DSW5 ADN 10D
RJM D4S DISPLAY NPP NUMBER
DSW5.1 LDD T2 DISPLAY PROGRAM NAME
SHN 3
ADD IA
SBN 10
CRD CM
LDD CM
ZJN DSW6 IF PP IS NOT ACTIVE
OAN CH+40
LDD CM+1
SCN 77
OAN CH+40
DSW6 RJM DCS DISPLAY CHANNEL STATUS
AOD CN ADVANCE CHANNEL
LMD T7
ZJN DSW8 IF NO MORE NCH-S TO DISPLAY
LDD CN
LMN 20
ZJN DSW9 IF CHANNEL 17 JUST PROCESSED
LPN 7
NJN DSW7 IF NOT 10 OR 30 CHANNELS
LCN YINC LEAVE BLANK LINE
RAD YC
DSW7 LJM DSW3 CONTINUE DISPLAY
DSW8 LDN 40 RESET CHANNEL NUMBER
STD CN
DSWE LDN ** LAST CHANNEL + 1
LMD T7
ZJN DSW10 IF LAST CHANNEL DISPLAYED
LDN XINC SET UP CCH DISPLAY
STD CC
DSWF LDN 40+** SET LAST CCH + 1
STD T7
DSW9 LJM DSW2 RESET Y AND CONTINUE DISPLAY
DSW10 LDC CH01 RESTORE X-COORDINATE
STD XC
LJM DSWCX RETURN
DCH SPACE 4,15
** DCH - DISPLAY COLUMN HEADER.
*
* ENTRY (XC) = STARTING POSITON OF THE COLUMN.
* (CW) = WIDTH OF COLUMN.
* = 0, ON FIRST CALL.
* (CC) = CCH COLUMN FLAG.
* = 0 WHEN DISPLAYING NCH COLUMNS.
* = *XINC* WHEN DISPLAYING CCH COLUMN.
*
* EXIT (XC) = STARTING POSITION OF THE NEW COLUMN.
* (YC) = FIRST LINE OF THE DISPLAY DATA.
* (CW) = WIDTH OF COLUMN.
* (A) = 0.
DCH SUBR ENTRY/EXIT
LDM CTOS OUTPUT Y-COORDINATE OF COLUMN HEADING
SBN 2*YINC
OAN CH+40
SBN YINC SKIP A LINE
STD YC
LDD CW OUTPUT X-COORDINATE OF THE COLUMN HEADING
RAD XC
SBD CC BACKSPACE 2 POSITIONS IF CCH COLUMN
SBD CC
OAN CH+40
LDD CC
ZJN DCH1 IF THIS IS NOT THE CCH COLUMN
LDN 1RC
OAN CH+40
DCH1 LDD XC
ADK CH05-CH01 SET FIELD COORDINATES
* ADK CH03-CH01 (CCH-S PRESENT)
DCHA EQU *-1
ADD CC
STM DCHD+1
ADK CH17-CH05
* ADK CH14-CH03 (CCH-S PRESENT)
DCHB EQU *-1
STM DCHE
LDC CH33-CH01 SET COLUMN WIDTH
* LDC CH23-CH01 (CCH-S PRESENT)
DCHC EQU *-1
STD CW
LDN DCHDL DISPLAY COLUMN HEADER
OAM DCHD,CH
UJP DCHX RETURN
* CON CH01
DCHD CON 2HCH,CH05
DATA 10H PP PGM
DCHE CON CH17
DATA 6HSTATUS
DCHDL EQU *-DCHD
DCS SPACE 4,10
** DCS - DISPLAY CHANNEL STATUS.
*
* ENTRY (CN) = CHANNEL NUMBER.
DCS SUBR ENTRY/EXIT
LDM DCHE ADVANCE TO STATUS FIELD
OAN CH+40
LDD CN SET CHANNEL INSTRUCTIONS
LMC AJMI+100000 SET UP JUMP IF CHANNEL FLAG SET
DCSA STM DCSC
* STML DCSC (CYBER 180)
ADD HN
ERRNZ AJMI+100-IJMI CODE ASSUMES VALUE
STM DCSD
STM DCSF
ADD HN
ERRNZ IJMI+100-FJMI CODE ASSUMES VALUE
STM DCSE
STM DCSG
LDM CHTB,CN DISPLAY DOWN STATUS
LPN 40
DCSB UJN DCS5 CHECK DOWN STATUS ON A CYBER 170
* ZJN DCS1 (CYBER 180)
LDN 1RD&1R-
DCS1 LMN 1R-
STM DOWN
LDD CC
ZJN DCS2 IF NOT A CONCURRENT CHANNEL
LDN 0
UJN DCS4 SKIP FULL/EMPTY CHECK
DCS2 LDN 1RC&1R-
DCSC AJM DCS3,** IF CHANNEL FLAG SET
* FSJM DCS3,** (CYBER 180)
LDN 0
DCS3 SHN 6
DCSD IJM DCS4,** IF CHANNEL INACTIVE
ADN 1RF&1R-
DCSE FJM DCS4,** IF CHANNEL FULL
ADN 1RE&1RF
DCS4 LMC 2R--
STM DOWN+1
LDC. DOWN
UJN DCS7 DISPLAY STATUS
DCS5 ZJN DCS6 IF NO DOWN STATUS
LDN DOWNL
OAM DOWN,CH
DCS6 LDC. FULL DISPLAY FULL/EMPTY STATUS
DCSF IJM DCSX,** IF CHANNEL INACTIVE
DCSG FJM DCS7,** IF CHANNEL FULL
ADN EMPT-FULL
DCS7 STM DCSH
LDN FULLL
OAM *,CH
DCSH EQU *-1 TEXT ADDRESS
UJP DCSX RETURN
DOWN DATA 6HDOWN
DOWNL EQU *-DOWN
FULL DATA 6HFULL
FULLL EQU *-FULL
EMPT DATA 6HEMPTY
ERRNZ *-EMPT-FULLL *FULL* AND *EMPT* MUST BE SAME LENGTH
REMOTE SPACE 4,10
DIS HERE FORCE REMOTE CODE HERE
PRS SPACE 4,10
** PRS - PRESET *W,C* DRIVER.
PRS BSS 0 ENTRY
LDK NCHL SET NCH COUNT
CRD CM
ADK CHTP-NCHL
CRD CN
ADK MABL-CHTP
CRD SP
LDD CM
RAM DSWB
STM DSWE SET LAST CHANNEL NUMBER
LDD SP+1
LPC 4100
LMD HN
NJN PRS0 IF NOT 180-TYPE CHANNELS
ISTORE DCSB,(ZJN DCS1)
LDC. DCSA CONVERT *AJM* TO *FSJM*
STD T3
BLI T3
LDD CM+3 SET CCH COUNT
ERRNZ CPPL-NCHL CODE ASSUMES THE SAME LOCATION
LPN 77
ZJN PRS1 IF NO CCH-S
RAM DSWF
STM DSWE SET LAST CHANNEL NUMBER
LDN 20B
SBD CM
PRS0 PJN PRS1 IF ONLY 2 COLUMNS NEED TO BE DISPLAYED
LDK CH03-CH01-CH05+CH01
RAM DCHA
LDK CH14-CH03-CH17+CH05
RAM DCHB
LDK CH23-CH01-CH33+CH01
RAM DCHC
PRS1 LDD CC SET CHANNEL TABLE ADDRESS
RAM DSWD
LDD CN+3
STM DSWD+1
ISTORE DSWA,(UJN DSW1) PREVENT PRESET PROCESSING NEXT TIME
LJM DSW1 RETURN
CHTB EQU PRS RESERVE SPACE FOR CHANNEL STATUS TABLE
ERRNG .LDMX-CHTB-5*CTALL CHANNEL TABLE WILL NOT FIT
SPACE 4,10
DSPEND
DISPLAY (DISPLAY W - MISC. PARAMETERS.)
ENTRY DSWM,DSWM
SPACE 4,20
*** *W,M* DISPLAY - MISC. PARAMETERS.
*
* DISPLAY MISCELLANEOUS SYSTEM PARAMETERS.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* SYSTEM DELAY PARAMETERS
*
* OPTION DESCRIPTION
*
* JQ = 1234 INPUT FILE SCHEDULING INTERVAL (2**JQ SECONDS)
* JS = 1234 JOB SCHEDULER DELAY (SECONDS)
*
* CR = 1234 CPU PROGRAM RECALL (MILLISECONDS)
* AR = 1234 PP AUTO RECALL (MILLISECONDS)
*
* MP = 1234 MEMORY PAD (BLOCKS)
*
* FILE THRESHOLDS
*
* OPTION DESCRIPTION
*
* CPTT = 1234 CPU TRANSFER THRESHOLD
* SRST = 1234 SECONDARY ROLLOUT SECTOR THRESHOLD
* OQSH = LEVEL67 OUTPUT QUEUE SPECIAL HANDLING LEVEL
DSWM SUBR ENTRY/EXIT
* DISPLAY HEADERS.
LDM CTOS SET INITIAL Y-COORDINATES
STM DSWA+1
SBK 2*YINC
STM DSWB+1
STD YC
LDN DSWAL
OAM DSWA,CH
DISPHD (W,M. MISC. PARAMETERS.)
* OBTAIN DELAY VALUES.
LDK JSCL READ SCHEDULER CONTROL
CRD T5
LDK MSCL READ MONITOR SCAN
CRD CM
LDD T7
STD CM
LDD T6
STD T7
LDD CM+4
STD CM+3
LDN T7 SET DELAY VALUE INDEX
STD T6
* DISPLAY EACH LINE.
DSW1 LCN YINC
RAD YC
OAN CH+40
LDD T6 CHECK IF DOUBLE SPACE NEEDED
SHN 21-0
PJN DSW2 IF DOUBLE SPACE NOT NEEDED
LCN YINC
RAD YC
OAN CH+40
DSW2 LDM TDLN-T7,T6 COMPUTE FWA-1 OF CURRENT MESSAGE
ADD LA
STD T1
DSW3 AOD T1
LDI T1
OAN CH+40
NJN DSW3 IF NOT THROUGH WITH CURRENT MESSAGE
LDC CH06 REPOSITION X-COORDINATE
OAN CH+40
LDI T6
RJM D4S OUTPUT DATA PORTION
AOD T6 CHECK IF THERE ARE MORE MESSAGES
LMN CM+4
NJN DSW1 IF MORE MESSAGES TO DISPLAY
* DISPLAY FILE THRESHOLD HEADER.
LCN YINC*2 DOUBLE SPACE
RAD YC
OAN CH+40
LDN DSWCL
OAM DSWC,CH
LCN YINC*2
RAD YC
STM DSWB+1 RESET SUBHEADER LINE COORDINATES
LDN DSWBL
OAM DSWB,CH
* DISPLAY CPU TRANSFER THRESHOLD.
LCN YINC*2
RAD YC
OAN CH+40
DISPLA CH01,,(CPTT = )
LDK PFNL DISPLAY *CPTT*
CRD CM
LDD CM+4
RJM D4S
DISPLA CH20,,(CPU TRANSFER THRESHOLD)
* DISPLAY SECONDARY ROLLOUT SECTOR THRESHOLD.
LCN YINC
RAD YC
OAN CH+40
DISPLA CH01,,(SRST = )
LDK IPRL DISPLAY *SRST*
CRD CM
LDD CM+1
RJM D4S
DISPLA CH20,,(SECONDARY ROLLOUT SECTOR THRESHOLD)
* DISPLAY OUTPUT QUEUE SPECIAL HANDLING LEVEL.
LDD SF
ZJN DSW4 IF UNSECURED SYSTEM
LCN YINC
RAD YC
OAN CH+40
DISPLA CH01,,(OQSH = )
LDN SSML DISPLAY *OQSH*
CRD CM
LDD CM
SHN -6 RIGHT JUSTIFY INDEX
RJM DAL DISPLAY ACCESS LEVEL
DISPLA CH20,,(OUTPUT QUEUE SPECIAL HANDLING LEVEL)
DSW4 LJM DSWMX RETURN
DSWA CON CH01,LN05
DATA H*SYSTEM DELAY PARAMETERS*
DSWB CON CH03,LN07
DATA H*OPTION*
CON CH27
DATA H*DESCRIPTION*
DSWAL EQU *-DSWA LENGTH OF HEADER
DSWBL EQU *-DSWB LENGTH OF SUBHEADER
DSWC CON CH01
DATA H*FILE THRESHOLDS*
DSWCL EQU *-DSWC LENGTH OF HEADER
DLINE SPACE 4,10
** DLINE - DELAY LINE FOR DISPLAY.
*
* DLINE P,D
*
* ENTRY *P* = MNEMONIC.
* *D* = DESCRIPTION OF *P*.
PURGMAC DLINE
DLINE MACRO P,D
LOCAL A
MACREF DLINE
DBLK RMT
A CON CH01
DATA 2L_P
DATA 2L =
CON CH16
DATA C$D$
DBLK RMT
CON A-1
DLINE ENDM
TDLN SPACE 4,10
** TDLN - TABLE OF DISPLAY LINES.
TDLN BSS 0
CHAR 1R[,1R( REPLACE *[* WITH *(*
CHAR 1R],1R) REPLACE *]* WITH *)*
CODE O
LOC 7
DLINE JQ,(INPUT FILE SCHEDULING INTERVAL [2**JQ SECONDS])
DLINE JS,(JOB SCHEDULER DELAY [SECONDS])
DLINE CR,(CPU PROGRAM RECALL [MILLISEONDS])
DLINE AR,(PP AUTO RECALL [MILLISECONDS])
DLINE MP,(MEMORY PAD [BLOCKS])
LOC *O
DBLK HERE
CODE *
SPACE 4,10
DSPEND
DISPLAY (DISPLAY W - SYSTEM TABLE ADDRESSES.)
ENTRY DSWP,DSWP
SPACE 4,10
*** *W,P* DISPLAY - SYSTEM TABLE ADDRESSES.
*
* DISPLAY THE FWA OF VARIOUS SYSTEM TABLES.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
*
* EJT = 25344 EST = 7664 PPC = 7200 RPL = 103657
XCIN EQU 16D*XINC X-COORDINATE INCREMENT
DSWP SUBR ENTRY/EXIT
DISPHD (W,P. SYSTEM TABLE ADDRESSES.)
LDM CTOS SET Y-COORDINATE FOR TITLE LINE
OAN CH+40
SBN 3*YINC INITIALIZE Y-COORDINATE FOR DATA
STD T6
DISPLA CH26,,(SYSTEM TABLES)
LDM DCTY
ZJN DSW1 IF CONSOLE TYPE CC545
LCN YINC/2
DSW1 ADN YINC+YINC/2
STD T3 SET DECREMENT FOR Y-COORDINATE
LDC. TSTP
STD T7 PRESET POINTER TABLE ADDRESS
LDC CH03
STD T5 INITIALIZE X-COORDINATE
OAN CH+40
LDD T6 OUTPUT Y-COORDINATE
OAN CH+40
LDN ZERL CLEAR BASE ADDRESS
CRD AB
UJN DSW4 ENTER DISPLAY LOOP
DSW2 SHN -5 POSITION TO POINTER OFFSET
STD T0
LDD AB FORM BASE ADDRESS
SHN 14
LMD T0 APPEND OFFSET
ADD AB+1
CRD CM READ POINTER WORD
LMN PPCP
NJN DSW3 IF NOT PP COMMUNICATIONS AREA
STD CM+3
DSW3 RJM DTA DISPLAY TABLE ADDRESS
DSW4 LDI T7
NJN DSW2 IF MORE POINTERS
AOD T7
LDI T7
ZJN DSW7 IF END OF DISPLAY
CRD AB
AOD T7 ADVANCE TO BYTE ADDRESS
LDI T7
STD T1 EXTRACT BYTE ADDRESS
AOD T7
LDI T1 SET BASE ADDRESS OF TABLE
STD AB
AOD T1 ADVANCE BYTE ADDRESS
LDI T1
STD AB+1 CHECK TABLE DEFINED
ADD AB
DSW5 ZJN DSW7 IF UNDEFINED
LCN 3*YINC DISPLAY TITLE
RAD T6
OAN CH+40
DISPLA CH23,,(BUFFERED I/O TABLES)
LDC CH03
STD T5 RESET X-COORDINATE
OAN CH+40
LCN 3*YINC SELECT DISPLAY LINE
RAD T6
OAN CH+40
UJN DSW4 DISPLAY NEXT BLOCK
DSW7 LJM DSWPX RETURN
DTA SPACE 4,15
** DTA - DISPLAY TABLE ADDRESS.
*
* ENTRY (T3) = DECREMENT FOR Y-COORDINATE.
* (T5) = X-COORDINATE.
* (T6) = Y-COORDINATE.
* (T7) = ADDRESS OF *TSTP* ENTRY.
*
* EXIT (T5) = X-COORDINATE FOR NEXT ADDRESS.
* (T6) = Y-COORDINATE FOR NEXT ADDRESS.
* (T7) = ADDRESS OF NEXT *TSTP* ENTRY.
*
* USES T1, T5 - T7.
*
* CALLS D6S.
DTA3 LDC XCIN ADVANCE X-COORDINATE
RAD T5
OAN CH+40 OUTPUT COORDINATE
SBK CH64
MJN DTAX IF NOT END OF LINE
LDD T6
SBD T3 DECREMENT Y-COORDINATE
STD T6
OAN CH+40 ADVANCE TO NEXT LINE
LDC CH03
STD T5 RESET X-COORDINATE
OAN CH+40
DTA SUBR ENTRY/EXIT
LDI T7
LPN 17 EXTRACT BYTE NUMBER
STD T1
AOD T7 ADVANCE POINTER TABLE
LDI T7
OAN CH+40 DISPLAY TABLE IDENTIFIER
AOD T7
LDI T7 DISPLAY TABLE IDENTIFIER
OAN CH+40
LDC 2R= DISPLAY SEPARATOR
OAN CH+40
LDI T1 FORM TABLE ADDRESS
LPN 77
SHN 14
LMM. 1,T1
ZJN DTA2 IF TABLE UNDEFINED
RJM D6S
DTA2 AOD T7
LJM DTA3 ADVANCE COORDINATES
SPACE 4,10
** DPTE - MACRO TO DEFINE POINTER TABLE ENTRY.
*
* DPTE PO,BN,TID
*
* ENTRY *PO* = POINTER ADDRESS / OFFSET.
* *BN* = BYTE CONTAINING TABLE ADDRESS.
* *TID* = TABLE IDENTIFIER (DEFAULTS TO *PO* NAME).
PURGMAC DPTE
DPTE MACRO PO,BN,TID
VFD 7/PO
.B SET BN 0
VFD 5/CM+_.B
IFC NE,*TID**
.T MICRO 1,3, TID
ELSE 1
.T MICRO 1,3, PO
VFD 24/4H".T"
ENDM
SPACE 4,10
** TSTP - TABLE OF SYSTEM TABLE POINTERS.
*
* NOTE - THE POINTERS ARE DISPLAYED IN ALPHABETIC ORDER BY
* COLUMN, IN FOUR COLUMNS. HOWEVER, DUE TO PROGRAMMING
* CONSIDERATIONS TABLE *TSTP* IS ORGANIZED BY ROW. CARE MUST
* EXERCISED IN INSERTING OR DELETING ANY ENTRY TO PRESERVE THE
* ALPHABETIC ORDER OF THE DISPLAY.
TSTP BSS 0 TABLE OF SYSTEM TABLE POINTERS
DPTE BIOL,1 BUFFERED I/O TABLES
DPTE EPBP,3 EXTENDED MEMORY PP BUFFER
DPTE LDSP,2 *L* DISPLAY BUFFER
DPTE PRBP,3 *PROBE* TABLE
DPTE CMBL,3,BKP BREAKPOINT TABLE
DPTE EPDP ENTRY POINT DIRECTORY
DPTE LIDP LOGICAL ID TABLE
DPTE PSTP,2 PROGRAM STATUS TABLE
DPTE CMBL,,BNT *CPUMTR* BLOCKS LOADED TABLE
DPTE ESTP EQUIPMENT STATUS TABLE
DPTE MCTP MEMORY CONTROL TABLE
DPTE QFTP QUEUE FILE TABLE
DPTE CHTP,2 CHANNEL TABLES
DPTE EVTP EVENT TABLE
DPTE EFRL,,MFS MAINFRAME STATE TABLE
DPTE RCLP RESIDENT CENTRAL LIBRARY
DPTE CLTP COMMON LIBRARIES TABLE
DPTE FNTP FILE NAME TABLE
DPTE MSAP MASS STORAGE ALLOCATION TABLE
DPTE RPLP RESIDENT PERIPHERAL LIBRARY
DPTE DFPP,2,DDB DAYFILE DUMP BUFFER
DPTE FOTP FAMILY ORDINAL TABLE
DPTE BIOL,3,MTR FWA OF *CPUMTR*
DPTE SABL SYSTEM ATTRIBUTE BLOCK
DPTE DFPP SYSTEM DAYFILE FET-S
DPTE INBP,2 INSTALLATION BLOCK
DPTE PCPP,3 PSEUDO CONTROL POINT AREA
DPTE SDAP STATISTICAL DATA AREA
DPTE EDBP EXTENDED MEMORY DISPLAY BUFFER
DPTE JBCP,,JCB JOB CONTROL BLOCK TABLE
DPTE PLDP PERIPHERAL LIBRARY DIRECTORY
DPTE SCRL,,SID *SECDED* ID TABLE
DPTE EJTP EXECUTING JOB TABLE
DPTE LBDP,2 USER LIBRARY DIRECTORY
DPTE PPCP,3 PP COMMUNICATIONS AREA
DPTE SSCP,2 SUBSYSTEM CONTROL POINT TABLE
DPTE EMBP,1 ERROR MESSAGE BUFFER
CON 0,BIOL,AB+1 BUFFERED I/O TABLES
DPTE CBTP,3 CONTROL BUFFER TABLE
DPTE FTTP,3 FUNCTION TIMEOUT TABLE
DPTE IBSP,3 I/O BUFFER STATISTICS TABLE
DPTE PLTP,3 PP - I/O BUFFER LINK TABLE
DPTE CCTP,3 CHANNEL CONTROL TABLE
DPTE HATP,3 HASH TABLE
DPTE IOSP,3 I/O STATISTICS TABLE
DPTE PUTP,3 PHYSICAL UNIT TABLE
CON 0,0
SPACE 4,10
DSPEND
DISPLAY (DISPLAY W - SYSTEM QUEUES.)
ENTRY DSWQ,DSWQ
DSW SPACE 4,10
*** *W,Q* DISPLAY - SYSTEM QUEUES.
*
* DISPLAY QUEUES INTERNAL TO *CPUMTR* AND *MTR*.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* ---CPU--- -RECALL- ---PP--- PSEUDO-PP -BUFFER-
* CP CPU CP TYPE CP PP CP CP BUF
*
* PSP 0 17 CPU 21 1MI 23 24 147
* 10 1 33 1IO
* IDL 1 5 LFM
* 22 END
DSWQ SUBR ENTRY/EXIT
DISPHD (W,Q. SYSTEM QUEUES.)
LDM CTOS SET UP HEADER COORDINATES
STM DSWA
SBN YINC
STM DSWAA
SBN YINC SET INITIAL Y-COORDINATE
STD YC
STD T3
LDC DSWAL DISPLAY HEADER
OAM DSWA,CH
* LDN 0 SET QUEUE PROCESSOR INDEX
STD T7
LDD NC GET NUMBER OF CONTROL POINTS
STD T6
* PROCESS CPU WAIT QUEUE.
LDM DSWC,T7 READ *WQ* POINTER
CRD CM
DSW1 LDD CM+3 GET LINK
LPN 77
SHN 14
ADD CM+4
ZJN DSW5 IF NO *WQ* LINKAGE
CRD CM READ ENTRY
SHN -7 CONVERT TO CONTROL POINT NUMBER
STD T1
LDD CM
LMC 2000B
ZJN DSW5 IF *WQ* TERMINATOR
RJM CBS CHECK FOR BOTTOM OF SCREEN
ZJN DSW5 IF BOTTOM OF SCREEN
LDD T1
SBD T6
MJN DSW2 IF BEFORE SYSTEM CONTROL POINT
RJM DCD DISPLAY CHARACTER DATA
UJN DSW3 PROCESS CPU
DSW2 LDD T1
RJM D2S DISPLAY CONTROL POINT NUMBER
LDN 0 SKIP TWO SPACES
OAN CH+40
DSW3 LDD CM+2 CHECK CPU SELECTION
LPN 3
ZJN DSW1 IF NO CPU SELECTION
SBN 1
RJM D2Z DISPLAY CPU SELECTION
LJM DSW1 GET NEXT ENTRY
DSW5 AOD T6 INCLUDE SYSTEM CP
* PROCESS ALL OTHER QUEUES.
DSW6 AOD T7
LDD YC RESET INITIAL Y-COORDINATE
STD T3
LDM DSWC,T7 GET INITIAL QUEUE POINTER
NJN DSW7 IF NOT END OF QUEUES
LJM DSWQX RETURN
DSW7 CRD CM READ ENTRY
STD T2 SAVE POINTER
SHN -7 CONVERT TO CONTROL POINT NUMBER
ZJN DSW9 IF CP 0
STD T1
RJM CBS CHECK FOR BOTTOM OF SCREEN
ZJN DSW6 IF BOTTOM OF SCREEN
LDD T1
SBD T6
DSW8 PJN DSW6 IF SYSTEM CP
LDD T1
RJM D2S DISPLAY CONTROL POINT NUMBER
LDM DSWD,T7
DSW9 ZJN DSW10 IF NO ADDITIONAL PARAMETERS
LDN DSWDL-1 CHECK FOR *BQRL* PROCESSING
SBD T7
ZJN DSW12 IF PROCESSING *BQRL*
LDD T2
LPN 77
LMN CRCW-100
ERRNG CRCW-100 *CRCW* MUST BE .GE. 100
ZJN DSW11 IF CPU RECALL
LDD T2 DISPLAY PP REQUEST
ADN RECW-RCCW
CRD SR
LDD SR OUTPUT BLANK AND FIRST CHARACTER
SHN -6
OAN CH+40
LDD SR
LPN 77
SHN 14
LMD SR+1 OUTPUT SECOND AND THIRD CHARACTERS
SCN 77
SHN 14
OAN CH+40
DSW10 LDD CM+4 GET LINK
ZJN DSW8 IF END OF QUEUE
LJM DSW7 PROCESS NEXT ENTRY
DSW11 DISPLA ,,( CPU)
UJN DSW10 GET NEXT ENTRY
* PROCESS *BQRL* PARAMETER.
DSW12 LDD T2 GET BUFFER NUMBER
CRD SR
LDD SR+3
RJM D4S DISPLAY BUFFER NUMBER
UJN DSW10 GET NEXT ENTRY
DSW SPACE 4,10
* DISPLAY HEADER.
DSWA CON BL01
CON CH02
DATA H*---CPU---*
CON CH16
DATA H*-RECALL-*
CON CH29
DATA H*---PP---*
CON CH42 (45)
DATA H*PSEUDO-PP*
CON CH56
DATA H*-BUFFER-*
DSWAA CON BL01-YINC
CON CH02
DATA H*CP CPU*
CON CH16
DATA H*CP TYPE*
CON CH29
DATA H*CP PP*
CON CH45 (45)
DATA H*CP*
CON CH56
DATA H*CP BUF*
DSWAL EQU *-DSWA
* INITIAL X-COORDINATES.
DSWB BSS 0
CON CH02 CPU
CON CH16 RECALL
CON CH29 PP
CON CH45 CIO PSEUDO-PP
CON CH56 CIO BUFFER
* QUEUE POINTERS.
DSWC CON WQRL
CON RQRL
CON PQRL
CON CQRL
CON BQRL
CON 0 END OF TABLE
** PARAMETER TERMINATORS.
*
*T 12/ V
*
* WHERE V = 0, IF NO MORE PARAMETERS FOR THIS QUEUE TYPE.
DSWD CON 0 CPU
CON 1 RECALL
CON 1 PP
CON 0 CIO PSEUDO-PP
CON 1 CIO BUFFER
DSWDL EQU *-DSWD
CBS SPACE 4,15
** CBS - CHECK FOR BOTTOM OF SCREEN.
*
* *CBS* CHECKS FOR THE BOTTOM OF THE DISPLAY SCREEN, AND
* DISPLAYS *MORE* IF THERE IS NO ROOM FOR ADDITIONAL ENTRIES.
*
* ENTRY (T3) = LAST Y-COORDINATE.
* (T7) = QUEUE PROCESSING INDEX.
*
* EXIT (A) = NON-ZERO IF BOTTOM OF SCREEN NOT REACHED.
* = 0 IF BOTTOM OF SCREEN AND *MORE* DISPLAYED.
* (T3) = UPDATED Y-COORDINATE.
* COORDINATES SENT TO DISPLAY CONTROLLER.
*
* USES T3.
CBS1 LDM DSWB,T7 OUTPUT X-COORDINATE
OAN CH+40
CBS SUBR ENTRY/EXIT
LCN YINC
RAD T3 DECREMENT Y-COORDINATE
OAN CH+40
SBM CBOS
PJN CBS1 IF NOT BOTTOM OF SCREEN
LDN MOREL
OAM MORE,CH
* LDN 0 RETURN BOTTOM OF SCREEN REACHED
UJN CBSX RETURN
DCD SPACE 4,10
** DCD - DISPLAY CHARACTER DATA FOR SYSTEM CONTROL POINT ENTRY.
*
* ENTRY (CM - CM+4) = *WQ* ENTRY.
DCD SUBR ENTRY/EXIT
LDD CM+3
SHN -5
LPN 16 (EXCHANGE PACKAGE TYPE) * 2
STD T1
LDM DCDA,T1 OUTPUT EXCHANGE PACKAGE TYPE
OAN CH+40
LDM DCDA+1,T1
OAN CH+40
LDN 0 SKIP TWO SPACES
OAN CH+40
UJN DCDX RETURN
DCDA BSS 0
DATA 4HFTN PROGRAM MODE *CPUMTR* FUNCTIONS
DATA 4HMVE STORAGE MOVE
DATA 4HFLV FIELD LENGTH VERIFICATION
DATA 4HPSP PSEUDO-PP
DATA 4HIDL CPU 0 IDLE PACKAGE
DATA 4HIDL CPU 1 IDLE PACKAGE
SPACE 4,10
DSPEND
DISPLAY (DISPLAY W - SYSTEM RESOURCES.)
ENTRY DSWR,DSWR
SPACE 4,10
*** *W,R* DISPLAY - SYSTEM RESOURCES.
*
* DISPLAY AVAILABLE SYSTEM RESOURCES.
*
* EXAMPLE -
*
* 1 2 3 4 5 6
* 1234567890123456789012345678901234567890123456789012345678901234
* SYSTEM ACTIVITY
*
* JOB IN CPU0 = ASDF NEXT JSN = ASST
* JOB IN CPU1 = SYS MVE JOBS ROLLED = 123
*
* AVAILABLE RESOURCES
*
* CM = 13647 UXM = 0
* PP-S = 20 CPP-S = 7
*
* CLD = 0 EJT = 1052
* FNT = 145 FOT = 6
* LID = 24 QFT = 612
*
* CP-S = 13 PCP-S = 23
DSWR SUBR ENTRY/EXIT
LJM PRS EXIT
DSWA EQU *-1
* LJM DSW1 (PRESET COMPLETE)
PRS LDM UESC SET UXM SHIFT COUNT
RAM DSWC
LDN PPUL GET NUMBER OF PP-S
CRD CM
ADK MABL-PPUL READ HARDWARE OPTIONS
CRD T5
LDD CM+3 SET NUMBER OF CPP-S
LPN 77
ERRNZ CPPL-PPUL CPP COUNT NOT IN *PPUL*
RAM DSWD
LDD T5+1 CHECK CPU-1 AVAILABLE
LPN 2
ZJN PRS1 IF SECOND CPU PRESENT
SOM DSWB
PRS1 LDN DSW1-PRS CHANGE *PRS* CALL
RAM DSWA
DSW1 LDM CTOS SET Y-COORDINATE
OAN CH+40
STD YC
* DISPLAY FIRST TITLE.
DISPLA CH16,,(SYSTEM ACTIVITY)
LCN 2*YINC
RAD YC
OAN CH+40
* DISPLAY NEXT JSN.
DISPLA CH28,,( NEXT JSN = )
LDK JSNL
CRD CM
LDN 2
OAM CM+3,CH
DISPHD (W,R. SYSTEM RESOURCES.)
* LDN 0 CLEAR CPU NUMBER
STD T3
* DISPLAY CPU STATUS.
DSW2 LDN 2 OUTPUT COORDINATES
OAM XC,CH
DISPLA ,,(JOB IN CPU)
LDD T3
ADN 1R0
SHN 6
OAN CH+40
LDC 2R=
OAN CH+40
LDK ACPL GET CPU ON/OFF STATUS
ADD T3
CRD CM
LDD CM
SHN 21-13
MJN DSW6 IF CPU OFF
LDK CPAL GET CPU STATUS
ADD T3
CRD CM
LDD CM+2
ADK TFSW GET EJT ORDINAL
CRD AB
LDD AB
SFA EJT SET EJT ENTRY ADDRESS
ADK JSNE GET JSN
CRD AB
LDN 2 DISPLAY JSN
OAM AB,CH
LDD CM+2
SHN -7
LMD NC
NJN DSW6 IF NOT SYSTEM CONTROL POINT
LDD CM+1 GET EXCHANGE PACKAGE TYPE
SHN -6
SHN 1
STD T1 SET *DSWF* INDEX
LDM DSWF,T1 DISPLAY EXCHANGE PACKAGE TYPE
OAN CH+40
LDM DSWF+1,T1
OAN CH+40
DSW6 LCN YINC DECREMENT Y-COORDINATE
RAD YC
AOD T3 ADVANCE CPU NUMBER
DSWB LMN 2
NJP DSW2 IF ANOTHER CPU TO PROCESS
* DISPLAY TITLE.
DSW7 LCN 5*YINC
ADM CTOS
STD YC
OAN CH+40
LDN DSWEL
OAM DSWE,CH
* DISPLAY AVAILABLE MEMORY.
LCN 2*YINC DECREMENT Y-COORDINATE
RAD YC
OAN CH+40
DISPLA CH04,,( CM = )
LDN ACML READ AVAILABLE CM/100B
CRD CM
LDD CM DISPLAY AVAILABLE CM/100B
SHN 14
LMD CM+1
RJM D6S
DISPLA CH34,,(UXM = )
LDD CM+3 DISPLAY AVAILABLE USER XM/1000B
DSWC SHN 0
* SHN UESC (UESC = USER EXTENDED MEMORY SHIFT COUNT)
RJM D6S
* DISPLAY PP STATISTICS.
LDK PPAL GET NUMBER OF FREE PPS/CPPS
CRD AB
LDC CH32 PRESET X-COORDINATE
STD T3
RJM ODC OUTPUT COORDINATES
LDC 2R P
RJM DPS DISPLAY NUMBER OF PP-S
LDD AB+3
LPN 77 SET NUMBER OF FREE CPP-S
STD AB+4
RJM ODC OUTPUT COORDINATES
DSWD LDN 0
ZJN DSW8 IF NO CPP-S
LDC 2RCP
RJM DPS DISPLAY NUMBER OF CPP-S
* DISPLAY MANAGED TABLE STATISTICS.
DSW8 LDC. TMTP SET POINTER TABLE ADDRESS
STD T2
LCN YINC DECREMENT Y-COORDINATE
RAD YC
LDI T2
DSW9 CRD CM READ MANAGED TABLE POINTER
AOD T2
RJM ODC OUTPUT DISPLAY COORDINATES
LDC 2R
OAN CH+40 OUTPUT LEADING BLANKS
LDI T2
OAN CH+40 DISPLAY TABLE IDENTIFIER
AOD T2
LDI T2 DISPLAY TABLE IDENTIFIER
OAN CH+40
LDC 2R= DISPLAY SEPARATOR
OAN CH+40
LDD CM+3 DISPLAY FREE ENTRIES
RJM D6S
AOD T2 ADVANCE LIST
LDI T2
NJN DSW9 IF MORE MANAGED TABLES
* DISPLAY CONTROL POINT COUNTS.
* LDN 0 SET BASE ADDRESS OF CP-S
STD AB+3
LDC CPAS
STD AB+4
LCN YINC DECREMENT Y-COORDINATE
RAD YC
LDC CH32 PRESET X-COORDINATE
STD T3
LDC 2R C FIX CP TITLE
STM DPSA
LDD NC DISPLAY NUMBER OF CP-S
SBN 1
RJM DCP
LDD NC
SBD AB+2 SAVE NUMBER OF ACTIVE CP-S
STD T8
LDK PCPP FETCH PCP POINTER
CRD AB
LDC 2RPC FIX PCP TITLE
STM DPSA
SOD AB+2 CHECK PSEUDO CP-S DEFINED
SBD NC
STD T9 SAVE NUMBER OF PCP-S
ZJN DSW13 IF UNDEFINED
RJM DCP
* DISPLAY JOBS ROLLED.
DSW13 LCN 3*YINC RESET Y-COORDINATE
ADM CTOS
OAN CH+40
DISPLA CH26,,(JOBS ROLLED = )
LDK EJTP
CRD CM
LDD T9
ZJN DSW14 IF NO PCP-S DEFINED
LDD AB+2 CALCULATE -(NUMBER OF ACTIVE PCP-S)
SBD T9
DSW14 ADD CM+2 MAX EJT ENTRIES
SBD CM+3 ACTIVE EJT ENTRIES
SBD T8 NON-*EXJS* ACTIVE EJT ENTRIES
RJM D4S DISPLAY ROLLED EJT ENTRIES
LJM DSWRX RETURN
DSWE CON CH14
DATA H*AVAILABLE RESOURCES*
DSWEL EQU *-DSWE
DSWF BSS 0 SYSTEM CP EXCHANGE PACKAGE IDENTIFIERS
DATA 4H FTN PROGRAM MODE *CPUMTR* FUNCTIONS
DATA 4H MVE STORAGE MOVE
DATA 4H FLV FIELD LENGTH VERIFICATION
DATA 4H PSP PSEUDO-PP
DATA 4H IDL CPU 0 IDLE PACKAGE
DATA 4H IDL CPU 1 IDLE PACKAGE
DCP SPACE 4,10
** DCP - DISPLAY CP / PCP COUNT.
*
* ENTRY (A) = NUMBER OF CP/PCP-S.
* (AB+3 - AB+4) = CP/PCP BASE ADDRESS.
*
* USES T2, AB+2 - AB+4, CM - CM+4.
*
* CALLS ODC.
DCP SUBR ENTRY/EXIT
STD AB+2
STD T2 SET LOOP COUNT
DCP1 LDD AB+3
SHN 14 FORM CP/PCP AREA ADDRESS
LMD AB+4
ADN TFSW GET CP/PCP ASSIGNMENT STATUS
CRD CM
LDD CM
ZJN DCP2 IF CP/PCP UNASSIGNED
SOD AB+2
DCP2 LDC CPAS ADVANCE BASE ADDRESS
RAD AB+4
SHN -14
RAD AB+3 SET NEXT ADDRESS
SOD T2
NJN DCP1 IF MORE CP/PCP-S
RJM ODC
LDK DPSAL DISPLAY TITLE
OAM DPSA,CH
LDD AB+2 DISPLAY NUMBER OF FREE CP/PCP-S
RJM D6S
UJP DCPX RETURN
DPS SPACE 4,10
** DPS - DISPLAY PP STATISTICS.
*
* ENTRY (A) = FIRST TWO CHARACTERS OF TITLE.
* (AB+4) = PP / CPP COUNT.
*
* CALLS D6S.
DPS SUBR ENTRY/EXIT
STM DPSA
LDN DPSAL OUTPUT TITLE
OAM DPSA,CH
LDD AB+4 DISPLAY FREE PP COUNT
RJM D6S
UJN DPSX RETURN
DPSA DATA 8H PP-S =
DPSAL EQU *-DPSA
ODC SPACE 4,10
** ODC - OUTPUT DISPLAY COORDINATES.
*
* ENTRY (T3) = PREVIOUS X-COORDINATE.
* (YC) = PREVIOUS Y-COORDINATE.
*
* EXIT (T3) = CURRENT X-COORDINATE.
* (YC) = CURRENT Y-COORDINATE.
ODC SUBR ENTRY/EXIT
LDD T3
LMC CH02&CH32 ADVANCE X-COORDINATE
STD T3
OAN CH+40 OUTPUT X-COORDINATE
LMC CH02
NJN ODCX IF NOT LINE CHANGE
LCN YINC
RAD YC DECREMENT AND OUTPUT Y-COORDINATE
OAN CH+40
UJN ODCX RETURN
SPACE 4,10
** DPTE - MACRO TO DEFINE POINTER TABLE ENTRY.
*
* DPTE PA,TID
*
* ENTRY *PA* = POINTER ADDRESS.
* *TID* = TABLE IDENTIFIER (DEFAULTS TO *PA* NAME).
PURGMAC DPTE
DPTE MACRO PA,TID
VFD 12/PA
IFC NE,*TID**
.T MICRO 1,3, TID
ELSE 1
.T MICRO 1,3, PA
VFD 24/4H".T"
ENDM
SPACE 4,10
TMTP BSS 0 TABLE OF MANAGED TABLE POINTERS
DPTE CLTP COMMON LIBRARIES TABLE
DPTE EJTP EXECUTING JOB TABLE
DPTE FNTP FILE NAME TABLE
DPTE FOTP FAMILY ORDINAL TABLE
DPTE LIDP LOGICAL ID TABLE
DPTE QFTP QUEUE FILE TABLE
CON 0
SPACE 4,10
DSPEND
DISPLAY (DISPLAY Y - MONITOR FUNCTIONS.)
ENTRY DSY,D
DSY SPACE 4,10
*** *Y* DISPLAY.
*
* DISPLAY MNEMONICS AND VALUES OF ALL MONITOR FUNCTIONS.
DSY SUBR ENTRY/EXIT
DISPHD ("YHDR")
* LDN 0 CLEAR FUNCTION TABLE INDEX
STD T7
LDC 2R. MODIFY *D4S* TO OUTPUT PERIODS
STM D4SB
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
STM D4SB RESET *D4S* TO OMIT PERIODS
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
TFN SPACE 4,10
* COMMON DECKS.
*CALL COMDTFN
CON 0
SPACE 4,10
DSPEND
DISPLAY (DISPLAY Z - DIRECTORY.)
ENTRY DSZ,D
DSZ SPACE 4,10
*** *Z* DISPLAY.
*
*
* DISPLAY DIRECTORY OF ALL DISPLAYS.
OVC SPACE 4,10
** OVERFLOW CHECK.
*
* NOTE - THE *Z* DISPLAY OVERLAY IS NOT CHECKED FOR OVERFLOW
* DIRECTLY. RATHER, IT IS COMPARED TO THE LARGEST
* DISPLAY OVERLAY FOUND. IF THE *Z DISPLAY* IS LARGER
* AN ERROR WILL BE FLAGGED. BECAUSE OF THIS, THE
* *Z DISPLAY* MUST REMAIN THE LAST OF THE DISPLAY
* OVERLAYS TO ALLOW NEW OVERLAYS TO REACH THE
* LARGEST POSSIBLE SIZE.
DIR SPACE 4,15
** DIR - DIRECTORY DATA.
*
* *DIR* (WHICH CALLS *DIR.* TO DO ITS WORK) USES THE DISPLAY
* HEADER MICROS FOR THE CONTENT OF THE DIRECTORY.
*
*NAMES DIR (TEXT)
*
* ENTRY *NAMES* = THE NAME OR NAMES OF THE DISPLAY(S) BEING
* DEFINED.
* *TEXT* = OPTIONAL ADDITIONAL TEXT THAT REPLACES THE
* *.* AT THE END OF THE MICRO.
PURGMAC DIR
MACRO DIR,NAMES,TEXT
DIR. (TEXT),(NAMES),NAMES
DIR ENDM
PURGMAC DIR.
DIR. MACRO TEXT,NAMES,NAME
.1 MICRO 5,,$"NAME_HDR"$
DATA L$NAMES$
CON CH07
DATA C$".1"TEXT$
DIR. ENDM
DSZ SPACE 4,10
DSZ SUBR ENTRY/EXIT
DISPHD ("ZHDR")
LDM CTOS SET Y-COORDINATE
STD YC
LCN 0 CLEAR INDEX
STD T1
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
UJN DSZX RETURN
CHAR 1R[,1R( REPLACE *[* WITH *(*
CHAR 1R],1R) REPLACE *]* WITH *)*
CODE OTHER
DSZA BSS 0
A DIR ( [A. A,. A,OPERATOR. A,ERROR LOG.)
CON CH17
DATA C*A,ACCOUNT FILE. DAYFILE,JSN.]*
B DIR ( [B,A. B,O.])
C,D DIR ( 5 GROUPS OF 4.)
E DIR ( [E,X. X = A, C, E, F, H, M, O, P, S, T.])
F,G DIR ( 4 GROUPS OF 5.)
H DIR ( [H. H,JSN.])
I DIR
J DIR
K DIR
L DIR
M DIR
O DIR ( [O,SCP. O,TLD. O,TST.])
P DIR
Q DIR ( [Q,. Q,IN. Q,PL. Q,PR. Q,PU. Q,WT.])
R DIR
S DIR
T DIR
U DIR
V DIR
W DIR ( [W,A. W,C. W,M. W,P. W,Q. W,R.])
Y DIR
DATA 0 END OF TABLE
CODE *
TTL DSD - DYNAMIC SYSTEM DISPLAY.
TITLE TERMINATE DISPLAY OVERLAYS.
TERM SPACE 4,10
* TERMINATE DISPLAY OVERLAYS.
DSPEND LAST
RES SPACE 4,10
* RESET OVERLAY CONSTANTS.
M. MICRO 1,2,
RES SPACE 4,10
* RESTORE INSTRUCTIONS.
LJM OPSYN LJM.
RJM OPSYN RJM.
LDM OPSYN LDM.
ADM OPSYN ADM.
SBM OPSYN SBM.
LMM OPSYN LMM.
STM OPSYN STM.
RAM OPSYN RAM.
AOM OPSYN AOM.
SOM OPSYN SOM.
CRM OPSYN CRM.
CWM OPSYN CWM.
IJM OPSYN IJM.
AJM OPSYN AJM.
EJM OPSYN EJM.
FJM OPSYN FJM.
IAM OPSYN IAM.
OAM OPSYN OAM.
TITLE COMMAND PROCESSING OVERLAY MACROS.
COMMAND SPACE 4,15
** COMMAND - BEGIN COMMAND OVERLAY.
*
* COMMAND GENERATES THE LINKAGE CONSTANTS FOR COMMAND
* PROCESSING OVERLAYS.
*
* COMMAND (SUBTITLE),CMR
*
* ENTRY (SUBTITLE) = TEXT OF SUBTITLE.
* CMR = FORCE OVERLAY TO BE CM RESIDENT, IF NON-BLANK.
*
* EXIT (M.) = 2 CHARACTER MICRO FOR OVERLAY NAME.
.FCOM EQU KBUF+KBUFL+5 SET COMMAND OVERLAY ORIGIN
COMMAND MACRO SUBTITLE,CMR
QUAL
.B IFC EQ,/CMR//
OVLN
.B ELSE
OVLC
.B ENDIF
TTL DSD/9"N." - SUBTITLE
TITLE
IDENT 9"M.",.FCOM SUBTITLE
*COMMENT DSD - SUBTITLE
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
ORG .FCOM
L.C MAX L.C,L.
QUAL DSD"M."
ENDM
CMDEND SPACE 4,15
** CMDEND - END COMMAND OVERLAY.
*
* CMDEND ENDS A COMMAND OVERLAY, AND CHECKS FOR OVERFLOW.
*
* CMDEND EOC
*
* ENTRY EOC = END OF COMMAND OVERLAYS, IF NOT NULL.
*
* EXIT (L.NAME) = LENGTH OF OVERLAY (*NAME* IS OVERLAY NAME).
* (L.C) = MAXIMUM COMMAND OVERLAY LENGTH SO FAR.
CMDEND MACRO E
HERE
USE END DUMP LITERALS BLOCK
QUAL
L. SET *-.FCOM
QUAL LENGTH
LIST M
L.9"M." EQU L. LENGTH OF OVERLAY
ERRNG .LCOM-L.9"M." BYTES UNTIL LONGEST COMMAND OVERLAY
ERRNG .LCMX-.INSP-L.9"M." BYTES UNTIL MAXIMUM OVERLAY SIZE
LIST *
QUAL *
.A IFC NE,*E** IF END OF COMMAND OVERLAYS
L.C SET L.C+4
L.C SET L.C/5*5
ERRNG L.C-L. *L.C* IS WRONG WHEN LARGEST OVL IS LAST
.A ENDIF
ENDM
COMMAND (SYSTEM SYNTAX TABLE - CHARACTERS A - B.),CMR
SPACE 4,10
** SYSTEM SYNTAX TABLE - CHARACTERS A - B.
ENTRY SAB
AAF ENTER (A,ACCOUNT FILE.)
AEL ENTER (A,ERROR LOG.)
AOD ENTER (A,OPERATOR.)
RSA ENTER (A.)
ADS ENTER (A,.)
ACN ENTER (ACN,?.),LOCK,SDF,ERL
AGD ENTER (ASSIGN,',DS.),,SDF
AGE ENTER (ASSIGN,',NE.),,SDF
AGN ENTER (ASSIGN,',?.),,SDF
AUT ENTER (AUTO.),,SDF
CHB ENTER (B,.)
CHB ENTER (B,>AO>.)
BIO ENTER (BIO.),,SDF
BKA ENTER (BKP.),SLOCK,SDF
BKB ENTER (BKP,<A9<A9<A9.),SLOCK,SDF
BKB ENTER (BKP,<A9<A9<A9,?.),SLOCK,SDF
BKR ENTER (BKSP,?.),,SDF
BKR ENTER (BKSP,?,?.),,SDF
BKF ENTER (BKSPF,?.),,SDF
BKF ENTER (BKSPF,?,?.),,SDF
BKP ENTER (BKSPRU,?,?.),,SDF
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (SYSTEM SYNTAX TABLE - CHARACTER C.),CMR
SPACE 4,10
** SYSTEM SYNTAX TABLE - CHARACTER C.
USE CODE
ENTRY SCC
CDC ENTER (CDC@),,SDF
CJM ENTER (CFO,'.@),,SDF
CFR ENTER (CFR,?.),LOCK,SDF,ERL
CKP ENTER (CHECK POINT SYSTEM.),LOCK,SDF
CHK ENTER (CKP,'.),,SDF
CLA ENTER (CLASS,@),,SDF
CMD ENTER (COMMENT,'.@),,SDF
CNT ENTER (CONTINUE,?.),,SDF
CPB ENTER (CPB,BKP,?.),SLOCK
CPT ENTER (CPB,BKP,/'/?.),SLOCK
CPT ENTER (CPB,BKP,//?.),SLOCK
CPD ENTER (CPB,DSP.),SLOCK
SPD ENTER (CPB,DSP>+->;),SLOCK
CPB ENTER (CPB,DSP,?.),SLOCK
CPT ENTER (CPB,DSP,//?.),SLOCK
CPT ENTER (CPB,DSP,/'/?.),SLOCK
CPG ENTER (CPB,GO.),SLOCK
SPI ENTER (CPB,P>+->;),SLOCK
CTT ENTER (CPTT=?.),,SDF
CYB ENTER (CYB@),,SDF
CON 0 END OF TABLE
SPD SPACE 4,10
ENTRY SPD
CPD ENTER (CPB,DSP>+->),(SLOCK,PBD)
CON 0 END OF TABLE
PBD SUBR ENTRY/EXIT
LDM KBUF-1,KI
LMN 1R-
ZJN PBD1 IF *-* (PAGING BACKWARD)
LDN 20
PBD1 STD T0 ADJUST DISPLAY ADDRESSES
SBN 10
RAM TDSC+7 CHANGE *C3*
SHN -14
RAM TDSC+6
LDD T0
SBN 10
RAM TDSC+5 CHANGE *C2*
SHN -14
RAM TDSC+4
LDN 0 REJECT THE PAGING COMMAND
UJN PBDX RETURN
SPI SPACE 4,10
ENTRY SPI
CPD ENTER (CPB,P>+->),(SLOCK,CBA)
CON 0 END OF TABLE
CBA SUBR ENTRY/EXIT
LDN 60 AUTOMATE *CR*
STD KE
UJN CBAX RETURN
SPACE 4,10
CMDEND
COMMAND (SYSTEM SYNTAX TABLE - CHARACTER D.),CMR
SPACE 4,10
** SYSTEM SYNTAX TABLE - CHARACTER D.
SPACE 4,10
** NOTE - THIS OVERLAY SHOULD BE CM RESIDENT (FOR
* *DCN*, *DCH*, AND *DEBUG*).
USE CODE FORCE CONDITIONAL SUBROUTINE POINTERS HERE
ENTRY SDD
DAT ENTER (DATE.;),LOCK
DAY ENTER (DAYFILE,'.)
DCH ENTER (DCH,?.),LOCK,SDF,ERL
DCN ENTER (DCN,?.),LOCK,SDF,ERL
DBG ENTER (DEBUG.),SLOCK,SDF,ERL
DLY ENTER (DELAY,@),,SDF
DIA ENTER (DIAL,',@),,SDF
DIB ENTER (DIAL,*,@),LOCK,SDF
DIS ENTER (DIS,'.),CLS,SDF
DAP ENTER (DISABLE,<AP;)
DQZ ENTER (DISABLE,<QZ;)
CDN ENTER (DOWN,CCH=?.),CCH,SDF,ERL
CDN ENTER (DOWN,CCH=?,EQ=?.),CCH,SDF,ERL
DWN ENTER (DOWN,CH=?.),,SDF,ERL
DWN ENTER (DOWN,CH=?,EQ=?.),,SDF,ERL
DWE ENTER (DOWN,EQ=?.),,SDF,ERL
MDN ENTER (DOWN,MCH=?.),,SDF,ERL
MDN ENTER (DOWN,MCH=?,EQ=?.),,SDF,ERL
DWM ENTER (DOWN,MID='.),,SDF,ERL
DRP ENTER (DROP,'.),,SDF
DRC ENTER (DROP,',@),,SDF
DVE ENTER (DROPVE.),LOCK,SDF
CON 0 END OF TABLE
CCH SPACE 4,10
** CCH - CHECK FOR CONCURRENT CHANNELS.
*
* EXIT (A) = NUMBER OF CONCURRENT CHANNELS.
* = 0 = COMMAND NOT ALLOWED.
*
* USES AB - AB+4.
CCH SUBR ENTRY/EXIT
LDK CPPL
CRD AB
LDD AB+3
LPN 77
UJN CCHX RETURN
CLS SPACE 4,10
** CLS - CHECK LOCK STATUS IF SECURED SYSTEM.
*
* EXIT (A) .NE. 0 IF UNSECURED SYSTEM OR IF SECURITY UNLOCK
* STATUS SET FOR SECURED SYSTEM.
* = 0 IF SECURITY UNLOCK STATUS NOT SET FOR
* SECURED SYSTEM.
CLS SUBR ENTRY/EXIT
LDD SF
LMN 1
NJN CLSX IF UNSECURED SYSTEM
LDD LK
SCN 1
UJN CLSX RETURN
SPACE 4,10
CMDEND
COMMAND (SYSTEM SYNTAX TABLE - CHARACTERS E - J.),CMR
SPACE 4,10
** SYSTEM SYNTAX TABLE - CHARACTERS E - J.
SPACE 4,10
** NOTE - THIS OVERLAY SHOULD BE CM RESIDENT (FOR
* *ENGR*).
ENTRY SEJ
CHE ENTER (E,.)
CHE ENTER (E,>ACEFHMOPST>.)
EAP ENTER (ENABLE,>ACDEFLMP>;)
EQZ ENTER (ENABLE,<QZ;)
END ENTER (END,?.),,SDF
END ENTER (END,?,?.),,SDF
ECP ENTER (ENPR,',?.),,SDF
ECP ENTER (ENPR,',*.),,SDF
ENQ ENTER (ENQP,',?.),,SDF
EEC ENTER (E?>,+->?.),LOCK,SDF,ERL
EEC ENTER (E?>,+->,?.),LOCK,SDF,ERL
EEC ENTER (E?>,+-><04,?.),LOCK,SDF,ERL
EEC ENTER (E?>,+->D@),LOCK,SDF,ERL
FCN ENTER (FCN,?.),LOCK,SDF,ERL
FCN ENTER (FCN,?,?.),LOCK,SDF,ERL
FRM ENTER (FORM,?,'.),,SDF,ERL
HLD ENTER (HOLD,?.),,SDF
ILD ENTER (FOTD@),,SDF
CLR ENTER (GO,.),,SDF
GBL ENTER (GO,?.),,SDF
CLR ENTER (GO,'.),,SDF
IAF ENTER (IAF@),,SDF
IAN ENTER (IAN,?.),LOCK,SDF,ERL
SID ENTER (ID,?,?.),,SDF
IDL ENTER (IDLE.),,SDF
IDE ENTER (IDLE,EQ=?.),,SDF,ERL
IDD ENTER (IDLE,'.),,SDF
IDF ENTER (IDLEFAMILY,?.),,SDF
INI ENTER (INITIALIZE,',@),,SDF,ERL
IN1 ENTER (IN1@),,SDF
IN2 ENTER (IN2@),,SDF
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (SYSTEM SYNTAX TABLE - CHARACTERS K - N.),CMR
SPACE 4,10
** SYSTEM SYNTAX TABLE - CHARACTERS K - N.
ENTRY SKN
ECB ENTER (K.@),,SDF
KIL ENTER (KILL,'.),,SDF
ELB ENTER (L.@)
LDC ENTER (LDC,?.),,SDF,ERL
ILD ENTER (LDIS@),,SDF
ILD ENTER (LIDOU@),,SDF
LOD ENTER (LOAD,?.),,SDF
LOD ENTER (LOAD,?,?.),,SDF
LCK ENTER (LOCK.),,SDF
LOG ENTER (LOG,?.),,SDF,ERL
MAG ENTER (MAG@),,SDF
MAI ENTER (MAINTENANCE.),,SDF,ERL
MAP ENTER (MAP@),,SDF
MCH ENTER (MCH,?.),LOCK,SDF,ERL
MCS ENTER (MCS@),,SDF
MNT ENTER (MOUNT,?.),,SDF
MNT ENTER (MOUNT,?,>P>.),,SDF
MTA ENTER (MOUNT,?,'.),,SDF
AJF ENTER (MSAL,>SBLPDROIT>=@),,SDF
MSE ENTER (MSE@),,SDF
MSS ENTER (MSS@),,SDF
NAM ENTER (NAM@),,SDF
NVS ENTER (NEXTVSN,?,@),,SDF
NJF ENTER (NJF@),,SDF
NVE ENTER (NVE@),,SDF
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (SYSTEM SYNTAX TABLE - CHARACTERS O - P.),CMR
SPACE 4,10
** SYSTEM SYNTAX TABLE - CHARACTERS O - P.
ENTRY SOP
SCP ENTER (O,SCP.)
STL ENTER (O,TLD.)
STS ENTER (O,TST.)
OAN ENTER (OAN,?.),LOCK,SDF,ERL
OFE ENTER (OFF,EQ=?.),,SDF,ERL
CMD ENTER (OFFSW,',<16.),,SDF
ONE ENTER (ON,EQ=?.),,SDF,ERL
CMD ENTER (ONSW,',<16.),,SDF
OQS ENTER (OQSH='.),,SDF
OVR ENTER (OVERRIDE,'.),LOCK,SDF,ERL
CLR ENTER (PAUSE,'.),,SDF
PCL ENTER (PCLASS,@),,SDF
PSZ ENTER (PRSIZE,?,>SL>.),,SDF,ERL
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (SYSTEM SYNTAX TABLE - CHARACTERS Q - R.),CMR
SPACE 4,10
** SYSTEM SYNTAX TABLE - CHARACTERS Q - R.
USE CODE FORCE CONDITIONAL SUBROUTINE POINTERS HERE
ENTRY SQR
SQD ENTER (Q,.)
SQT ENTER (Q,<AZ<AZ.)
ILD ENTER (QDSPLAY,'.),CLS,SDF
QUE ENTER (QUEUE,@),,SDF
RDF ENTER (RDF@),,SDF
RED ENTER (REDEFINE,?.),,SDF,ERL
REL ENTER (RELEASE,'.),,SDF
REP ENTER (REPEAT,'.),,SDF
REP ENTER (REPEAT,',?.),,SDF
RRN ENTER (REPRINT,?.),,SDF
RRN ENTER (REPRINT,?,?.),,SDF
RRN ENTER (REPUNCH,?.),,SDF
RRN ENTER (REPUNCH,?,?.),,SDF
RRJ ENTER (RERUN,'.),,SDF
RST ENTER (RESTORE,?.),LOCK,SDF,ERL
RTY ENTER (RETRY,?.),,SDF
RHF ENTER (RHF@),,SDF
RIF ENTER (ROLLIN,'.),,SDF
RIF ENTER (ROLLIN,',L.),,SDF
ROL ENTER (ROLLOUT,'.),,SDF
ROL ENTER (ROLLOUT,',?.),,SDF
CON 0 END OF TABLE
CLS SPACE 4,10
** CLS - CHECK LOCK STATUS IF SECURED SYSTEM.
*
* EXIT (A) .NE. 0 IF UNSECURED SYSTEM OR IF SECURITY UNLOCK
* STATUS SET FOR SECURED SYSTEM.
* = 0 IF SECURITY UNLOCK STATUS NOT SET FOR
* SECURED SYSTEM.
CLS SUBR ENTRY/EXIT
LDD SF
LMN 1
NJN CLSX IF UNSECURED SYSTEM
LDD LK
SCN 1
UJN CLSX RETURN
SPACE 4,10
CMDEND
COMMAND (SYSTEM SYNTAX TABLE - CHARACTER S.),CMR
SPACE 4,10
** SYSTEM SYNTAX TABLE - CHARACTER S.
ENTRY SSS
SCH ENTER (SCHEDULE.),,SDF
SCR ENTER (SCRATCH,?.),,SDF
ILD ENTER (SCTD@),,SDF
ILD ENTER (SDSPLAY@),,SDF
SCQ ENTER (SECUREQ,@),SLOCK,SDF
SCU ENTER (SECURES,@),SLOCK,SDF
SER ENTER (SERVICE,@),,SDF
SET ENTER (SET,\\\\.)
SFR ENTER (SFR,?.),LOCK,SDF,ERL
SKR ENTER (SKIP,?.),,SDF
SKR ENTER (SKIP,?,?.),,SDF
SKF ENTER (SKIPF,?.),,SDF
SKF ENTER (SKIPF,?,?.),,SDF
SKP ENTER (SKIPRU,?,?.),,SDF
SMF ENTER (SMF@),,SDF
SDU ENTER (SPINDOWN,?.),LOCK,SDF
SUU ENTER (SPINUP,?.),,SDF
SRS ENTER (SRST=?.),,SDF
SSF ENTER (SSF@),,SDF
STP ENTER (STEP,@),LOCK
STM ENTER (STM@),,SDF
SBL ENTER (STOP,?.),,SDF
STO ENTER (STOP,'.),LOCK,SDF
ILD ENTER (SUBSYST@),,SDF
SUP ENTER (SUPPRESS,?.),,SDF
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (SYSTEM SYNTAX TABLE - CHARACTER T.),CMR
STT SPACE 4,10
** SYSTEM SYNTAX TABLE - CHARACTER T.
USE CODE FORCE CONDITIONAL SUBROUTINE POINTERS HERE
ENTRY STT
TAF ENTER (TAF@),,SDF
TMP ENTER (TEMP=@),,SDF
TRM ENTER (TERMINATE,?.),,SDF
THR ENTER (THRESHOLD,@),,SDF
TIM ENTER (TIME.;),LOCK
TLF ENTER (TLF@),,SDF
ILD ENTER (TMSDIS,@),,SDF
TCA ENTER (TRACE,SET,ABS,?,?.),(CTB,LOCK),SDF,ERL
TCC ENTER (TRACE,SET,CPA,?,?.),(CTB,LOCK),SDF,ERL
TCM ENTER (TRACE,MTR@),(CTB,LOCK),SDF,ERL
TCP ENTER (TRACE,PPU@),(CTB,LOCK),SDF,ERL
LPT ENTER (TRAIN,?,?.),,SDF
TPA ENTER (TRAP.),(CTB,LOCK),SDF,ERL
TPD ENTER (TRAP,DJB.),(CTB,LOCK),SDF,ERL
TPJ ENTER (TRAP,EJT.),(CTB,LOCK),SDF,ERL
TPM ENTER (TRAP,MCT.),(CTB,LOCK),SDF,ERL
TPN ENTER (TRAP,NFL.),(CTB,LOCK),SDF,ERL
TPC ENTER (TRAP,CPA,?,@),(CTB,LOCK),SDF,ERL
TPF ENTER (TRAP,MEM,?,@),(CTB,LOCK),SDF,ERL
CON 0 END OF TABLE
CTB SPACE 4,10
** CTB - CHECK FOR TRACE BLOCK.
*
* EXIT (A) = 0 IF COMMAND NOT ALLOWED.
*
* USES AB - AB+4.
CTB SUBR ENTRY/EXIT
LDK SSTL
CRD AB
LDD AB+2
LPN 40
LMN 40
ZJN CTBX IF SYSTEM DEBUG NOT ENABLED
LDD AB+3 CHECK FOR TRACE BLOCK ENABLED
LPN 2
LMN 2
UJN CTBX RETURN
SPACE 4,10
CMDEND
COMMAND (SYSTEM SYNTAX TABLE - CHARACTERS U - X.),CMR
SUX SPACE 4,10
** SYSTEM SYNTAX TABLE - CHARACTERS U - X.
SUX SPACE 4,10
** NOTE - THIS OVERLAY SHOULD BE CM RESIDENT (FOR
* THE *X.* COMMANDS).
USE CODE FORCE CONDITIONAL SUBROUTINE POINTERS HERE
ENTRY SUX
UNL ENTER (UNLOAD,?.),,SDF
CUP ENTER (UP,CCH=?.),CCH,SDF,ERL
CUP ENTER (UP,CCH=?,EQ=?.),CCH,SDF,ERL
UPC ENTER (UP,CH=?.),,SDF,ERL
UPC ENTER (UP,CH=?,EQ=?.),,SDF,ERL
MUP ENTER (UP,MCH=?.),,SDF,ERL
MUP ENTER (UP,MCH=?,EQ=?.),,SDF,ERL
VHP ENTER (V,HNG.)
VPS ENTER (V,PS.)
VPP ENTER (V,?.)
VMS ENTER (VALIDATE,?.),,SDF
VSN ENTER (VSN,?,@),,SDF
VSN ENTER (VSN,?.),,SDF
SWD ENTER (W,>ACMPQR>.)
WAR ENTER (WARN.),,SDF
WAR ENTER (WARN,@),,SDF
IIF ENTER (X.<AZ'.),,SDF
IIF ENTER (X.<AZ',?.),,SDF
*ISJ ENTER (X.<AZ'(@),,SDF
DATA Z*X.<AZ'(@*
VFD 4/2,20//COMMAND/ISJ
CON 0 END OF TABLE
CCH SPACE 4,10
** CCH - CHECK FOR CONCURRENT CHANNELS.
*
* EXIT (A) = NUMBER OF CONCURRENT CHANNELS.
* = 0 = COMMAND NOT ALLOWED.
*
* USES AB - AB+4.
CCH SUBR ENTRY/EXIT
LDK CPPL
CRD AB
LDD AB+3
LPN 77
UJN CCHX RETURN
SPACE 4,10
CMDEND
COMMAND (JOB TERMINATION COMMANDS.),CMR
SPACE 4,10
*** NOTE -
* THIS OVERLAY SHOULD BE MADE CM RESIDENT SO THAT
* THE COMMANDS IN THIS OVERLAY WILL BE AVAILABLE TO
* THE OPERATOR EVEN IF THE SYSTEM IS HUNG.
SPACE 4,10
SPACE 4,10
*** DROP,JSN.
*
* DROP JOB IN EJT WHICH HAS THE SPECIFIED JSN. THE JOB
* CANNOT BE A SUBSYSTEM.
ENTRY DRP
LDC ZJNI+DRP2-DRPA+ODET*10000
ERRNG 37+DRPA-DRP2 INCORRECT JUMP INSTRUCTION
ERRNG 37+DRP2-DRPA INCORRECT JUMP INSTRUCTION
DRP1 STM DRPA
SHN -14
STM DRPB
RJM ASN GET JSN
LDD AB+2
NJP DRP2 IF JSN .GT. 4 CHARACTERS
LDN AB GET EJTO
RJM GEE
MJN DRP2 IF EJT ENTRY NOT FOUND
STD CM+2
ZJN DRP2 IF JSN = *SYS*
SFA EJT
ADN SCLE GET SERVICE CLASS
CRD SR
LDD CM SAVE JSN
STD CM+3
LDD CM+1
STD CM+4
LDD SR
SHN -6
LMN SSSC
DRPA ZJN DRP2 IF SUBSYSTEM SERVICE CLASS
* NJN DRP2 (NOT SUBSYSTEM SERVICE CLASS)
* PSN (OVERRIDE)
LDC ODET
DRPB EQU *-1 (ERROR FLAG)
* LDC OKET (KILL)
* LDC ORET (OVERRIDE)
ADC 4000
STD CM+1
MONITOR CEFM
LDM DRPB
SBN OKET
ZJN KIL1 IF OPERATOR KILL
DRP1.1 JMP KBR IF NO ERROR
DRP2 JMP KIE *INCORRECT ENTRY*
KIL SPACE 4,10
*** KILL,JSN.
*
* TERMINATE JOB IN THE EJT WITHOUT EXIT
* PROCESSING. THE JOB CANNOT BE A SUBSYSTEM.
ENTRY KIL
LDC ZJNI+DRP2-DRPA+OKET*10000 SET NO SUBSYSTEMS, KILL
ERRNG 37+DRPA-DRP2 INCORRECT JUMP INSTRUCTION
ERRNG 37+DRP2-DRPA INCORRECT JUMP INSTRUCTION
JMP DRP1 CONTINUE
KIL1 SFA EJT,T3 GET JOB STATUS
ADK JSNE
CRD CM
LDD CM+4
LPN 76
LMN IOJS*2
ZJN KIL2 IF *IOJS*
LMN DOJS*2&IOJS*2
NJN DRP1.1 IF NEITHER *DOJS* NOR *IOJS*
KIL2 LDD AB SET JSN FOR *1DS*
STD AB+3
LDD AB+1
STD AB+4
LDK /1DS/KIJF KILL INTERACTIVE JOB
STD AB+2
JMP KAR PROCESS *1DS* CALL
OVR SPACE 4,10
*** OVERRIDE,JSN.
*
* TERMINATE JOB IN EJT.
ENTRY OVR
LDC PSNI+ORET*10000 SET NO SUSBSYSTEM CHECK, OVERRIDE
JMP DRP1 CONTINUE
STO SPACE 4,10
*** STOP,SUBSY.
*
* DROP SUBSYSTEM *SUBSY* FROM THE EJT, WHERE
* *SUBSY* IS ANY LEGAL SUBSYSTEM NAME.
ENTRY STO
LDC NJNI+DRP2-DRPA+ODET*10000 SET SUBSYSTEM CHECK, DROP
ERRNG 37+DRPA-DRP2 INCORRECT JUMP INSTRUCTION
ERRNG 37+DRP2-DRPA INCORRECT JUMP INSTRUCTION
JMP DRP1 CONTINUE
SPACE 4,10
CMDEND
COMMAND (SYSTEM CONTROL COMMANDS.),CMR
SPACE 4,10
*** NOTE -
* THIS OVERLAY SHOULD BE MADE CM RESIDENT SO THAT
* THE COMMANDS IN THIS OVERLAY WILL BE AVAILABLE TO
* THE OPERATOR EVEN IF THE SYSTEM IS HUNG.
DBG SPACE 4,10
*** DEBUG.
*
* TOGGLE DEBUG MODE.
ENTRY DBG
LDN SSTL READ SYSTEM STATUS
CRD CM
LDD CM+3 TOGGLE DEBUG
LMN 1
STD CM+3
LDN SSTL STORE SYSTEM STATUS
CWD CM
UJN STE1 SET STATUS
STM SPACE 4,10
*** STEP.
*
* SET MONITOR IN STEP MODE.
ENTRY STE
LDN ZERL SET MONITOR STEP
CRD CM
* LDN MSPS
* STD CM+1
ERRNZ MSPS
LDC 2R CLEAR FUNCTION
STM /DSD/DLSD
STM /DSD/DLSD+1
STM /DSD/DLSB CLEAR JSN
STM /DSD/DLSC
MONITOR DSRM SET STEP MODE
STE1 LDN 0 SET NO *1DS* CALL
UJN LCK2 SET STATUS IN *EICB*
LCK SPACE 4,10
*** LOCK.
*
* LOCK KEYBOARD INPUT.
ENTRY LCK
LDN 0 CLEAR UNLOCK FLAG
STD LK
LDN 1
LCK1 SHN 10D
STD AB+3
LDN SSTL SET CONSOLE LOCK STATUS
CRD CM
LDD CM
SHN 12
SCN 3
LMD LK
SHN 10
STD CM
LDN SSTL STORE STATUS
CWD CM
LDK /1DS/SAMF SET *1DS* CALL
LCK2 LJM SVF SET STATUS IN *EICB*
ULK SPACE 4,10
*** UNLOCK.
*
* UNLOCK SPECIAL KEYBOARD INPUT.
ENTRY ULK
LDD LK
NJN UNL1 IF UNLOCKED ALREADY
LDD SF SET SECURITY UNLOCK BIT IF UNSECURED
SBN 1
LPN 4
SHN -1
ADN 1 SET UNLOCK BIT
STD LK
UNL1 LDN 3
UJN LCK1 SET CONSOLE UNLOCK STATUS
SUL SPACE 4,10
*** UNLOCK,USRNAME,PASSWRD.
*
* SECURITY UNLOCK THE CONSOLE.
ENTRY SUL
LDN 0 RESET PASS FLAG
STD T3
LDD CA SAVE POINTER TO BUFFER
SBK KBUF
STD T5
SUL1 RJM ASN ASSEMBLE STRING
LDD AB+3
LPN 77
NJN SUL2 IF STRING .GT. 7 CHARACTERS
LDI CA CHECK SEPARATOR
SBN 1R.
ZJN SUL3 IF END OF STATEMENT
LDD T3
SUL2 NJN SUL6 IF EXTRANEOUS PARAMETER FOUND
AOD T3 SET PASS FLAG
AOD CA
UJN SUL1 ASSEMBLE SECOND PARAMETER
SUL3 LDD T5 PASS BUFFER POINTER
STD AB+4
LDC /1DS/VSAF+/1DS/LOCK
RJM C1D PROCESS FUNCTION
LDC SUL4 SET REENTRY ADDRESS
STM /KEYBOARD/KCRB
SUL4 LDC /1DS/DSDL
CRD CM
LDD CM
ZJN SUL5 IF *1DS* COMPLETE
LJM CLP1 REENTER
SUL5 LDC /1DS/DSDL+1 CHECK RESULTS
CRD CM
LDD CM
NJN SUL6 IF UNSUCCESSFUL
UJN SVF SET STATUS IN *EICB*
SUL6 JMP KIE INCORRECT ENTRY
UNS SPACE 4,10
*** UNSTEP.
*
* CLEAR MONITOR STEP.
ENTRY UNS
LDC SCRL
CRD CM
LDD CM
SHN 21-11
PJN UNS1 IF EMERGENCY STEP NOT REQUESTED
JMP KIE *INCORRECT ENTRY*
UNS1 LDN ZERL
CRD CM
LDN CSPS SET *DSRM* SUBFUNCTION TO CLEAR STEP
STD CM+1
MONITOR DSRM
* LDN 0 CLEAR STEP FLAG
STD ST
* UJN SVF SET STATUS
SVF SPACE 4,12
** SVF - SET STATUS IN *EICB*.
*
* ENTRY (A) = *1DS* FUNCTION CODE IF *1DS* CALL REQUIRED.
* (A) = 0 IF NO CALL TO *1DS* REQUIRED.
*
* EXIT TO *KAR*.
* *D7ST* OF THE *EICB* UPDATED.
*
* CALLS FDP.
*
* USES T1, CM - CM+4, CN - CN+4.
SVF BSS 0 ENTRY
STD T1 SAVE *1DS* FUNCTION CODE
RJM FDP GET *D7ST* ADDRESS
ZJN SVF4 IF NO *EICB*
CRD CN READ CURRENT *D7ST*
LDD CN
LPC 777 CLEAR STATUS FLAGS
STD CN
LDN SSTL
CRD CM
LDD ST
ZJN SVF1 IF NOT *STEP* MODE
LDC 1000 SET STEP FLAG
RAD CN
SVF1 LDD CM+3
SHN 21-2
MJN SVF2 IF *ENGR* DISABLED
LDC 2000
RAD CN
SVF2 LDD CM
SHN 21-10
PJN SVF2.1 IF LOCKED
LDD CM+3
SHN 21-0
MJN SVF3 IF *DEBUG*
SVF2.1 LDC 4000 SET OPERATIONAL MODE
RAD CN
SVF3 RJM FDP WRITE NEW STATUS
CWD CN
SVF4 LDD T1 ISSUE *1DS* REQUEST
JMP KAR RETURN
DVE SPACE 4,10
*** DROPVE.
*
* SIGNAL *NVE* TO DROP.
ENTRY DVE
LDN SSTL
CRD CM
LDD CM+3
SHN 21-13
MJN DVE1 IF *VE=* NOT ENTERED AT DEADSTART
RJM FDP FETCH *EICB* POINTER
CRD CN
LDD CN+1 SET *DROPVE* BIT
SCN 1
LMN 1
STD CN+1
RJM FDP UPDATE STATUS
CWD CN
JMP KBR RETURN
DVE1 JMP KIE INCORRECT ENTRY
SPACE 4,10
CMDEND
COMMAND (CENTRAL MEMORY CHANGES.),CMR
SPACE 4,10
** NOTE -
*
* THIS OVERLAY SHOULD BE MADE CM RESIDENT SO THAT
* THE COMMANDS IN THIS OVERLAY WILL BE AVAILABLE TO
* THE OPERATOR EVEN IF THE SYSTEM IS HUNG.
ENM SPACE 4,10
*** XXXXXXX,YYY - YYY.
* XXXXXXX,Y,ZZZZ.
* XXXXXXX,IP,FFFFF.
*
* ENTER YYY - YYY INTO CENTRAL MEMORY LOCATION XXXXXXX.
* ENTER ZZZZ INTO BYTE Y OF CENTRAL MEMORY LOCATION
* XXXXXXX.
* ENTER INSTRUCTION FFFFF INTO PARCEL P OF CENTRAL MEMORY
* LOCATION XXXXXXX.
*
* 0 .LE. Y .LE. 4.
* 0 .LE. P .LE. 3.
* 0 .LE. XXXXXXX .LE. 7,777,777B.
ENTRY ENM
RJM GCA GET CM ADDRESS
LDD CM CONVERT RA/100B TO RA
SHN 6
STD CM
LDD CM+1
SHN 6
STD CM+1
SHN -14
RAD CM
RJM ASD ASSEMBLE ADDRESS
LDD AB+3 SAVE ADDRESS
LPC 7000
ADD AB+2
ADD AB+1
ADD AB
NJN ENM1 IF ADDRESS .GT. 21 BITS
LDD CP
ZJN ENM2 IF ABSOLUTE MEMORY MODIFICATION
LDD AB+3
SHN -6
NJN ENM1 IF RELATIVE ADDRESS .GT. 18 BITS
LCN 0
LMD AB+3 SET COMPLEMENT OF RELATIVE ADDRESS
SHN 14
LMD AB+4
MJN ENM2 IF POSITIVE FL CHANGE
* PROCESS RELATIVE NFL MEMORY CHANGE.
STD T7 NEGATIVE ADDRESS RELATIVE TO RA-1
SHN -6
SBD CM+4
PJN ENM1 IF ADDRESS NOT IN NFL
LDD CM
STD T6
SOD CM+1 FORM RA-1 - ADDRESS
SBD T7
STD T7
PJN ENM3 IF NO BORROW OCCURRED
SOD T6 ADJUST FOR BORROW
AOD T7
UJN ENM3 CHECK FOR CM EXTENSION
ENM1 JMP KIE *INCORRECT ENTRY*
* PROCESS ABSOLUTE MEMORY CHANGE OR
* PROCESS RELATIVE FL MEMORY CHANGE.
ENM2 LDD AB+3 COMPARE ADDRESS WITH FL
STD T6
LDD AB+4
STD T7
SHN -6
SHN 14
LMD T6
SHN 6
SBD CM+3
SHN 6
SBD CM+2
SHN 14
PJN ENM1 IF ADDRESS .GT. FL
LDD CM+1 CALCULATE ABSOLUTE ADDRESS
RAD T7
SHN -14
ADD CM
RAD T6
ENM3 LDM CMEI
ZJN ENM4 IF NOT CM EXTENSION
LDD T6 SET (R) = UPPER 9 ADDRESS BITS
SHN 6
STD T2
SHN 6
STD T1
LRD T1
* SET (T6 - T7) = LOWER 12 ADDRESS BITS + 400,000B.
LDN 40
STD T6
ENM4 AOD CA SKIP SEPERATOR
RJM ASD ASSEMBLE DIGITS
LMN 1R.
NJN ENM6 IF NOT *.*
ENM5 LDD T6
SHN 14
LMD T7 STORE WORD
CWD AB
JMP KBR RETURN
ENM6 LMN 1RI&1R.
ERRNG 1R,&1RI-40 ASSUMES *,* WILL PRODUCE A RESULT .GE. 40
STD T4
NJN ENM7 IF BYTE CHANGE
AOD CA
RJM ASD ASSEMBLE PARCEL NUMBER
LDN 0
SBM ENMF,AB+4
STM ENMB SET MASKS
SHN -3
STM ENMD
ENM7 LDD AB+4 SAVE BYTE ADDRESS
ADN CM
STD T5
SHN 22-2 CALCULATE SHIFT COUNT
SBD AB+4
SHN 2
ADK SHNI+77-3-CM
STM ENMA
ADK SHNI+11-SHNI-77+3
STM ENMC
AOD CA ASSEMBLE ENTRY
RJM ASD
LDD T6 READ WORD
SHN 14
LMD T7
CRD CM
LDD AB+3 CHANGE BYTE
LPN 7
LMD T4
SHN 14
LMD AB+4
MJN ENM8 IF BYTE CHANGE
ENMA SHN -3-3* PARCEL
STD AB+3
LDI T5
LPC 770000
ENMB EQU *-1
LMD AB+3
STI T5
AOD T5
LDD AB+4
ENMC SHN 11-3* PARCEL
LMI T5
LPC 777000
ENMD EQU *-1
LMI T5
ENM8 STI T5 SET BYTE
LDD T6
SHN 14
LMD T7 STORE WORD
CWD CM
JMP KBR RETURN
ENMF CON 7777,777,77,7
GCA SPACE 4,10
** GCA - GET CM DISPLAY ADDRESS.
*
* ENTRY (LS) = LEFT DISPLAY INDEX.
*
* EXIT (CP) = CP AREA ADDRESS.
* = 0, IF SYSTEM.
* (CM - CM+1) = 9/ , 15/ RA/100B.
* (CM+2 - CM+3) = 9/ , 15/ FL/100B.
* (CM+4) = NFL/100B, IF DISPLAY ASSIGNED TO JSN.
*
* USES CP, T2, T6, T7, CM - CM+4.
*
* CALLS GCP, SJT.
GCA2 AOD T2 GET CPA ADDRESS
RJM GCP
ZJN GCA3 IF NO JSN
ADN FLSW
CRD T6
LDD CM+2 MOVE FL/100B
STD CM+3
LDN 0
STD CM+2
LDD T6 MOVE NFL/100B
STD CM+4
UJN GCAX RETURN
GCA3 STD CP SET SYSTEM CP
LDC MABL GET CM/100B
CRD CM
LDN 0 SET SYSTEM RA
STD CM
STD CM+1
GCA SUBR ENTRY/EXIT
LDD LS SEARCH JSN TABLE
RJM SJT
NJN GCA2 IF DISPLAY FOUND
GCA1 JMP KIE PROCESS INCORRECT ENTRY
GCP SPACE 4,10
** GCP - GET CPA ADDRESS.
*
* ENTRY (A) = JSN ADDRESS IN *TJAZ* TABLE.
*
* EXIT (A) = CPA ADDRESS OF JOB WITH DISPLAY-S JSN.
* = 0, IF NO JSN ASSOCIATED WITH DISPLAY.
* (CN) = CP NUMBER.
* (CP) = CPA ADDRESS, IF JSN DISPLAY.
*
* USES CN, CP, T3, AB - AB+4, CM - CM+4.
*
* CALLS GEE, IEE.
*
* MACROS SFA.
GCP SUBR ENTRY/EXIT
STD T3
LDI T3
ZJN GCPX IF JSN NOT PRESENT
LDD T3 SET FWA OF JSN TO FIND
RJM GEE SEARCH EJT
ZJN GCPX IF JSN = *SYS*
PJN GCP2 IF EJT ENTRY FOUND
GCP1 JMP KIE *INCORRECT ENTRY*
GCP2 RJM IEE INTERLOCK EJT ENTRY
MJN GCP1 IF INTERLOCK UNAVAILABLE
SFA EJT
ADK JSNE GET JOB STATUS
CRD CM
ADN SCHE GET CP NUMBER
CRD AB
LDD CM+4
LPN 76
LMN EXJS*2
NJN GCP1 IF JOB NOT AT CP
LDD AB+3 SET CPA ADDRESS
LPN 37
STD CN
SHN 7
STD CP
UJN GCPX RETURN
SPACE 4,10
CMDEND
COMMAND (CENTRAL MEMORY CHANGES - MULTIPLE.)
EMR SPACE 4,10
*** XXXXXXX+YYY.
* XXXXXXX-YYY - YYY.
* XXXXXXX+Y,ZZZZ.
* XXXXXXX-Y,ZZZZ.
*
* ENTER YYY - YYY IN MEMORY LOCATION XXXXXXX.
* ENTER ZZZZ IN BYTE Y OF MEMORY LOCATION XXXXXXX.
*
* 0 .LE. XXXXXXX .LE. 7,777,777B.
* 0 .LE. Y .LE. 4.
ENTRY EMR
RJM ASA ASSEMBLE ADDRESS
RJM ASD ASSEMBLE ENTRY
SBN 1R.
ZJN EMR1 IF *.*
LDD AB+4 SAVE BYTE NUMBER
STD T4
AOD CA ASSEMBLE ENTRY
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,T4
EMR1 LDD T6 STORE WORD
SHN 14
LMD T7
CWD AB
* UJN ADV ADVANCE ADDRESS
ADV SPACE 4,10
** ADV - ADVANCE/DECREMENT ADDRESS.
*
* ENTRY (T5) = SEPARATOR CHARACTER ADDRESS.
*
* USES KI, T1, T2, T5.
*
* CALLS C1D.
ADV LDD T5 SET SEPARATOR CHARACTER ADDRESS
STM ADVA
LDN 0 CHECK COMMAND LOGGING
RJM C1D
LDC *
ADVA EQU *-1 (SEPARATOR CHARACTER ADDRESS)
STD T5
STD T1
LDI T5 CHECK SEPARATOR
SBN 1R+
ZJN ADV3 IF *+*
SBN 1R--1R+
NJN ADV1 IF NOT *-*
LJM ADV8 PROCESS *-*
ADV1 JMP KBR RETURN
ADV2 AOI T5 ADVANCE ENTRY
SBN 1R8
MJN ADV6 IF NO OVERFLOW
SOI T5
LMN 1R.
ZJN ADV4 IF *.*
LDN 1R0 RESET DIGIT
STI T5
ADV3 SOD T5
ADC -KBUF
PJN ADV2 IF NOT PAST START OF BUFFER
ADV4 LDC KBUF+KBUFL-1
STD T2
ADV5 LDI T2 MOVE CONTENTS OF BUFFER
STM 1,T2
SOD T2
SBD T5
NJN ADV5 IF BUFFER NOT MOVED
LDN 1R1 SET FIRST CHARACTER OF BUFFER
STM 1,T2
AOD KI INCREMENT KEYBOARD INDEX
AOD T1 SKIP PREVIOUS CHARACTER
ADV6 UJN ADV9 SET CHARACTER INDEX
ADV7 SOI T5 DECREMENT ENTRY
SBN 1R0
PJN ADV9 IF NO UNDERFLOW
LDN 1R7 RESET DIGIT
STI T5
ADV8 SOD T5
ADC -KBUF
PJN ADV7 IF NOT PAST START OF BUFFER
ADV9 AOD T1 SKIP SEPARATOR
LDI T1 CHECK NEXT CHARACTER
SBN 1RD
NJN ADV10 IF NOT *D*
AOD T1 SKIP *D*
ADV10 LDD T1 RETURN TO PARTIAL CLEAR
ADC -KBUF
LJM KPC RETURN TO PARTIAL CLEAR
ASA SPACE 4,10
** ASA - ASSEMBLE ADDRESS.
*
* ENTRY (CA) = CHARACTER ADDRESS.
*
* EXIT (T5) = SEPARATOR CHARACTER INDEX.
* (T6 - T7) = ADDRESS.
*
* USES CA, CM, CM+1, CM+2, CM+3, T5, T6, T7.
*
* CALLS ASD, GCA.
ASA SUBR ENTRY/EXIT
RJM GCA GET CM ADDRESS
LDD CM CONVERT RA/100B TO RA
SHN 6
STD CM
LDD CM+1
SHN 6
STD CM+1
SHN -14
RAD CM
RJM ASD ASSEMBLE ADDRESS
LDD AB+3
LPC 7000
ADD AB+2
ADD AB+1
ADD AB
NJN ASA1 IF .GT. 21 BITS
LDD AB+3 COMPARE ENTERED CM LOCATION WITH FL
STD T6
LDD AB+4
STD T7
SHN -6
SHN 14
LMD T6
SHN 6
SBD CM+3
SHN 6
SBD CM+2
SHN 14
MJN ASA2 IF ADDRESS .LE. FL
ASA1 JMP KIE *INCORRECT ENTRY*
ASA2 LDD CM+1
RAD T7
SHN -14
ADD CM
ADD T6
STD T6
LDM. CMEI
ZJN ASA3 IF NOT CME
LDD T6 SET (R) = UPPER 9 ADDRESS BITS
SHN 6
STD CM+3
SHN 6
STD CM+2
LRD CM+2
* SET (T6 - T7) = LOWER 12 ADDRESS BITS + 400,000B.
LDN 40
STD T6
ASA3 LDD CA SET SEPARATOR ADDRESS
STD T5
AOD CA SKIP SEPARATOR
LJM ASAX EXIT
GCA SPACE 4,10
** GCA - GET CM DISPLAY ADDRESS.
*
* ENTRY (LS) = LEFT DISPLAY INDEX.
*
* EXIT (CP) = CP AREA ADDRESS.
* = 0, IF SYSTEM.
* (CM - CM+1) = 9/ , 15/ RA/100B.
* (CM+2 - CM+3) = 9/ , 15/ FL/100B.
*
* USES CP, T2, T6, T7, CM - CM+4.
*
* CALLS SJT.
GCA3 AOD T2 SET FWA OF JSN
LDI T2
NJN GCA2 IF JSN PRESENT
GCA3.1 STD CP SET SYSTEM CP
LDC MABL GET CM/100B
CRD CM
LDN 0 SET SYSTEM RA
STD CM
STD CM+1
GCA SUBR ENTRY/EXIT
LDD LS SEARCH JSN TABLE
RJM SJT
NJN GCA3 IF DISPLAY FOUND
GCA1 JMP KIE PROCESS INCORRECT ENTRY
GCA2 LDD T2 SEARCH EJT
RJM GEE
ZJN GCA3.1 IF JSN = *SYS*
MJN GCA1 IF EJT ENTRY NOT FOUND
RJM IEE INTERLOCK EJT ENTRY
MJN GCA1 IF INTERLOCK UNAVAILABLE
SFA EJT
ADK JSNE GET JOB STATUS
CRD CM
ADN SCHE GET CP NUMBER
CRD AB
LDD CM+4
LPN 76
LMN EXJS*2
NJN GCA1 IF JOB NOT AT CP
LDD AB+3 SET CPA ADDRESS
LPN 37
STD CN
SHN 7
STD CP
ADN FLSW
CRD T6
LDD CM+2 MOVE FL/100B
STD CM+3
LDN 0
STD CM+2
LJM GCAX RETURN
SPACE 4,10
CMDEND
COMMAND (CENTRAL MEMORY CHANGES - DISPLAY CODE.)
EMD SPACE 4,10
*** XXXXXXX+DCCC - CCC.
* XXXXXX-DCCC - CCC.
*
* 0 .LE. XXXXXXX .LE. 7,777,777B.
*
*** XXXXXXX,DCCC - CCC
*
* ENTER MEMORY LOCATION XXXXXXX WITH DISPLAY CODE CHARACTERS
* CCC - CCC. ENTRY WILL BE LEFT-JUSTIFIED.
ENTRY EMD
RJM ASA ASSEMBLE ADDRESS
AOD CA SKIP *D*
LDN ZERL CLEAR ASSEMBLY
CRD AB
LDN AB SET BYTE ADDRESS
STD T1
EMD1 LDI CA STORE UPPER
ZJN EMD2 IF END OF BUFFER
SHN 6
STI T1
AOD CA ADVANCE CHARACTER
LDI CA STORE LOWER
ZJN EMD2 IF END OF BUFFER
RAI T1
AOD CA ADVANCE CHARACTER
AOD T1 ADVANCE BYTE
LMN AB+5
NJN EMD1 IF NOT END OF WORD
EMD2 LDD T6 STORE WORD
SHN 14
ADD T7
CWD AB
* UJN ADV ADVANCE ADDRESS
ADV SPACE 4,10
** ADV - ADVANCE/DECREMENT ADDRESS.
*
* ENTRY (T5) = SEPARATOR CHARACTER ADDRESS.
*
* USES KI, T1, T2, T5.
*
* CALLS C1D.
ADV LDD T5 SET SEPARATOR CHARACTER ADDRESS
STM ADVA
LDN 0 CHECK COMMAND LOGGING
RJM C1D
LDC *
ADVA EQU *-1 (SEPARATOR CHARACTER ADDRESS)
STD T5
STD T1
LDI T5 CHECK SEPARATOR
SBN 1R+
ZJN ADV3 IF *+*
SBN 1R--1R+
NJN ADV1 IF NOT *-*
LJM ADV8 PROCESS *-*
ADV1 JMP KBR RETURN
ADV2 AOI T5 ADVANCE ENTRY
SBN 1R8
MJN ADV6 IF NO OVERFLOW
SOI T5
LMN 1R.
ZJN ADV4 IF *.*
LDN 1R0 RESET DIGIT
STI T5
ADV3 SOD T5
ADC -KBUF
PJN ADV2 IF NOT PAST START OF BUFFER
ADV4 LDC KBUF+KBUFL-1
STD T2
ADV5 LDI T2 MOVE CONTENTS OF BUFFER
STM 1,T2
SOD T2
SBD T5
NJN ADV5 IF BUFFER NOT MOVED
LDN 1R1 SET FIRST CHARACTER OF BUFFER
STM 1,T2
AOD KI INCREMENT KEYBOARD INDEX
AOD T1 SKIP PREVIOUS CHARACTER
ADV6 UJN ADV9 SET CHARACTER INDEX
ADV7 SOI T5 DECREMENT ENTRY
SBN 1R0
PJN ADV9 IF NO UNDERFLOW
LDN 1R7 RESET DIGIT
STI T5
ADV8 SOD T5
ADC -KBUF
PJN ADV7 IF NOT PAST START OF BUFFER
ADV9 AOD T1 SKIP SEPARATOR
LDI T1 CHECK NEXT CHARACTER
SBN 1RD
NJN ADV10 IF NOT *D*
AOD T1 SKIP *D*
ADV10 LDD T1 RETURN TO PARTIAL CLEAR
ADC -KBUF
LJM KPC RETURN TO PARTIAL CLEAR
ASA SPACE 4,10
** ASA - ASSEMBLE ADDRESS.
*
* ENTRY (CA) = CHARACTER ADDRESS.
*
* EXIT (T5) = SEPARATOR CHARACTER INDEX.
* (T6 - T7) = ADDRESS.
*
* USES CA, CM, CM+1, CM+2, CM+3, T5, T6, T7.
*
* CALLS ASD, GCA.
ASA SUBR ENTRY/EXIT
RJM GCA GET CM ADDRESS
LDD CM CONVERT RA/100B TO RA
SHN 6
STD CM
LDD CM+1
SHN 6
STD CM+1
SHN -14
RAD CM
RJM ASD ASSEMBLE ADDRESS
LDD AB+3
LPC 7000
ADD AB+2
ADD AB+1
ADD AB
NJN ASA1 IF .GT. 21 BITS
LDD AB+3 COMPARE ENTERED CM LOCATION WITH FL
STD T6
LDD AB+4
STD T7
SHN -6
SHN 14
LMD T6
SHN 6
SBD CM+3
SHN 6
SBD CM+2
SHN 14
MJN ASA2 IF ADDRESS .LE. FL
ASA1 JMP KIE *INCORRECT ENTRY*
ASA2 LDD CM+1
RAD T7
SHN -14
ADD CM
ADD T6
STD T6
LDM. CMEI
ZJN ASA3 IF NOT CME
LDD T6 SET (R) = UPPER 9 ADDRESS BITS
SHN 6
STD CM+3
SHN 6
STD CM+2
LRD CM+2
* SET (T6 - T7) = LOWER 12 ADDRESS BITS + 400,000B.
LDN 40
STD T6
ASA3 LDD CA SET SEPARATOR ADDRESS
STD T5
AOD CA SKIP SEPARATOR
LJM ASAX EXIT
GCA SPACE 4,10
** GCA - GET CM DISPLAY ADDRESS.
*
* ENTRY (LS) = LEFT DISPLAY INDEX.
*
* EXIT (CP) = CP AREA ADDRESS.
* = 0, IF SYSTEM.
* (CM - CM+1) = 9/ , 15/ RA/100B.
* (CM+2 - CM+3) = 9/ , 15/ FL/100B.
*
* USES CP, T2, T6, T7, CM - CM+4.
*
* CALLS SJT.
GCA3 AOD T2 SET FWA OF JSN
LDI T2
NJN GCA2 IF JSN PRESENT
GCA3.1 STD CP SET SYSTEM CP
LDC MABL GET CM/100B
CRD CM
LDN 0 SET SYSTEM RA
STD CM
STD CM+1
GCA SUBR ENTRY/EXIT
LDD LS SEARCH JSN TABLE
RJM SJT
NJN GCA3 IF DISPLAY FOUND
GCA1 JMP KIE PROCESS INCORRECT ENTRY
GCA2 LDD T2 SEARCH EJT
RJM GEE
ZJN GCA3.1 IF JSN = *SYS*
MJN GCA1 IF EJT ENTRY NOT FOUND
RJM IEE INTERLOCK EJT ENTRY
MJN GCA1 IF INTERLOCK UNAVAILABLE
SFA EJT
ADK JSNE GET JOB STATUS
CRD CM
ADN SCHE GET CP NUMBER
CRD AB
LDD CM+4
LPN 76
LMN EXJS*2
NJN GCA1 IF JOB NOT AT CP
LDD AB+3 SET CPA ADDRESS
LPN 37
STD CN
SHN 7
STD CP
ADN FLSW
CRD T6
LDD CM+2 MOVE FL/100B
STD CM+3
LDN 0
STD CM+2
LJM GCAX RETURN
SPACE 4,10
CMDEND
COMMAND (EXTENDED MEMORY CHANGES.)
EEC SPACE 4,10
*** EXXXXXXX,YYY - YYY.
* EXXXXXXX,Y,ZZZZ.
*
* ENTER YYY - YYY INTO EXTENDED MEMORY LOCATION XXXXXXX.
* ENTER ZZZZ INTO BYTE Y OF EXTENDED MEMORY LOCATION XXXXXXX.
* 0 .LE. Y .LE. 4.
*** EXXXXXXX,DCCC-CCC
*
* ENTER DISPLAY CODE CHARACTERS CCC-CCC IN EXTENDED MEMORY
* LOCATION XXXXXXX. ENTRY WILL BE LEFT JUSTIFIED.
*** ALL EXTENDED MEMORY COMMANDS MAY HAVE *+* OR *-* IN PLACE OF
* THE *,*. THIS FORM WILL ADVANCE/DECREMENT THE EM ADDRESS.
*
* PROGRAMMING NOTE - THIS OVERLAY MAKES DIRECT REFERENCES TO
* *EMRA* AND *EMFL* IN THE *M* DISPLAY LEFT-SCREEN BUFFER.
* THEREFORE, THE CHECK FOR THE *M*-DISPLAY ON THE LEFT
* SCREEN MUST NOT BE REMOVED.
ENTRY EEC
RJM ASR ASSEMBLE ADDRESS AND READ EXTENDED MEMORY
LDI CA
LMN 1RD
NJN EEC2 IF NOT DISPLAY CODE
AOD CA SKIP *D*
LDN AB SET BYTE ADDRESS
STD T1
EEC1 LDI CA
SHN 6
STI T1
AOD CA ADVANCE CHARACTER
LDI CA
RAI T1
AOD CA ADVANCE CHARACTER
AOD T1 ADVANCE BYTE
LMN AB+5
ZJN EEC3 IF 10 CHARACTERS PROCESSED
UJN EEC1 PROCESS NEXT CHARACTER
EEC2 RJM ASD ASSEMBLE DIGITS
SBN 1R.
ZJN EEC3 IF NOT BYTE COMMAND
LDD AB+4
STD T4 SAVE BYTE NUMBER
AOD CA
RJM ASD ASSEMBLE ENTRY
LDD AB+4
STD T3 SAVE ENTRY
LDD MA FETCH EXTENDED MEMORY WORD
ADN 1
CRD AB
LDD T3
STM AB,T4 STORE BYTE
EEC3 LDD MA SET LIST ADDRESS
STD CM+2
ADN 1 STORE WORD FOR EXTENDED MEMORY TRANSFER
CWD AB
LDD HN SET NUMBER OF LIST ENTRIES = 1
STD CM+1
LDD T6
STD CM+3
MONITOR ECSM WRITE EXTENDED MEMORY WORD
* UJN ADV ADVANCE ADDRESS
ADV SPACE 4,10
** ADV - ADVANCE/DECREMENT ADDRESS.
*
* ENTRY (SH) = CHARACTER POSITION OF ADDRESS.
* (SH+1) = SEPARATOR ADDRESS.
*
* USES T1, T5.
*
* CALLS C1D.
ADV LDN 0 CHECK COMMAND LOGGING
RJM C1D
LDD SH+1
STD T5
STD T1
LDI T5 CHECK SEPARATOR
SBN 1R+
ZJN ADV2 IF *+*
SBN 1R--1R+
ZJN ADV6 IF *-*
JMP KBR RETURN
ADV1 AOI T5 ADVANCE ENTRY
SBN 1R8
MJN ADV4 IF NO OVERFLOW
LDN 1R0 RESET DIGIT
STI T5
ADV2 SOD T5
ADC -KBUF-1
PJN ADV1 IF NOT PAST START OF BUFFER
LDN KBUFL-2
STD T5
ADV3 LDM KBUF+1,T5 MOVE CONTENTS OF BUFFER
STM KBUF+2,T5
SOD T5
PJN ADV3 IF BUFFER NOT MOVED
LDN 1R1 SET FIRST CHARACTER OF ADDRESS
STM KBUF+1
AOD KI INCREMENT KEYBOARD INDEX
AOD T1 SKIP PREVIOUS CHARACTER
ADV4 UJN ADV7 CHECK NEXT CHARACTER
ADV5 SOI T5 DECREMENT ENTRY
SBN 1R0
PJN ADV7 IF NO UNDERFLOW
LDN 1R7 RESET DIGIT
STI T5
ADV6 SOD T5
ADC -KBUF-1
PJN ADV5 IF NOT PAST START OF BUFFER
ADV7 AOD T1 SKIP SEPARATOR
LDI T1 CHECK NEXT CHARACTER
SBN 1RD
NJN ADV8 IF NOT *D*
AOD T1 SKIP *D*
ADV8 LDD T1
ADC -KBUF
LJM KPC RETURN TO PARTIAL CLEAR
ASR SPACE 4,10
** ASR - ASSEMBLE ADDRESS AND READ EXTENDED MEMORY.
*
* ENTRY (CA) = CHARACTER ADDRESS.
*
* EXIT (CA) = ADVANCED CHARACTER ADDRESS.
* (SH+1) = SEPARATOR ADDRESS
* (T6) = *ECSM* WRITE LIST SUBFUNCTION CODE.
* (MB) = LIST ENTRY FOR EXTENDED MEMORY TRANSFER.
*
* USES CA, SH+1, T6, AB - AB+4, CM - CM+4, SR - SR+4.
*
* CALLS ASD.
*
* MACROS MONITOR.
ASR SUBR
LDD LS CHECK LEFT SCREEN DISPLAY
LMN 1RM
ZJN ASR2 IF *M*
ASR1 JMP KIE *INCORRECT ENTRY*
ASR2 RJM ASD ASSEMBLE ADDRESS
LDM .FLFT+EMFL
SBD AB+3
MJN ASR1 IF ADDRESS .GT. FLE
NJN ASR3 IF LEGAL ADDRESS
LDD AB+4
SBM .FLFT+EMFL+1
PJN ASR1 IF ADDRESS .GE. FLE
ASR3 LDK EDBP
CRD SR
LDD SR
ADD SR+1
ZJN ASR1 IF EXTENDED MEMORY UNDEFINED
LDM .FLFT+EMRA
ADM .FLFT+EMRA+1
ZJN ASR4 IF ABSOLUTE EXTENDED MEMORY ADDRESS
LDM .FLFT+EMRA+1 ADD RAE TO EXTENDED MEMORY ADDRESS
RAD AB+4
SHN -14
ADM .FLFT+EMRA
RAD AB+3
LDN 2 INDICATE READ FROM USER EM
ASR4 ADN /CPS/PELS*10 SET *ECSM* READ LIST SUBFUNCTION
SHN 6
STD CM+3
ADC 400 SAVE *ECSM* WRITE LIST SUBFUNCTION
STD T6
LDD HN SET NUMBER OF WORDS TO READ = 1
STD AB+1
STD CM+1 SET NUMBER OF LIST ENTRIES = 1
LDD MA WRITE LIST ENTRY
CWD AB
STD CM+2 SET LIST ADDRESS
MONITOR ECSM READ EXTENDED MEMORY WORD
LDD MA RESET LIST ENTRY FOR WRITE
CWD AB
LDD CA SET SEPARATOR ADDRESS
STD SH+1
AOD CA SKIP SEPERATOR
LJM ASRX RETURN
SPACE 4,10
CMDEND
COMMAND (CHANNEL COMMANDS.),CMR
LDC SPACE 4,10
*** LDC,XXXX.
*
* LOAD CHANNEL A REGISTER WITH XXXX.
ENTRY LDC
RJM ASD ASSEMBLE DIGITS
LDD AB+4 ENTER A REGISTER
STD AR
JMP KBR RETURN
DCH SPACE 4,10
*** DCH,XX.
*
* DROP CHANNEL XX.
ENTRY DCH
RJM PSC PRESET CHANNELS
LDD AB+4 DROP CHANNEL
STD CM+1
MONITOR DCHM
JMP KBR RETURN
DCN SPACE 4,10
*** DCN,XX.
*
* DISCONNECT CHANNEL XX.
ENTRY DCN
RJM PSC PRESET CHANNELS
DCN1 IJM KMS,** IF CHANNEL INACTIVE
DCN2 DCN 40 DEACTIVATE CHANNEL
JMP KBR RETURN
FCN SPACE 4,10
*** FCN,XX.
* FCN,XX,YYYY.
*
* FUNCTION CHANNEL XX WITH ZERO.
* FUNCTION CHANNEL XX WITH YYYY.
ENTRY FCN
RJM PSC PRESET CHANNELS
AOD CA ASSEMBLE FUNCTION
RJM ASD
LDN 0 SET NO MESSAGE
FCN1 AJM KMS,** IF CHANNEL ACTIVE
LDD AB+4 SET FUNCTION
STM FCNA
FCN2 FNC *,40 FUNCTION CHANNEL
FCNA EQU *-1
JMP KBR RETURN
ACN SPACE 4,10
*** ACN,XX.
*
* ACTIVATE CHANNEL XX.
ENTRY ACN
RJM PSC PRESET CHANNELS
ACN1 AJM KMS,** IF CHANNEL ACTIVE
ACN2 ACN 40 ACTIVATE CHANNEL
JMP KBR RETURN
IAN SPACE 4,10
*** IAN,XX.
*
* INPUT TO CHANNEL *A* REGISTER FROM CHANNEL XX.
ENTRY IAN
RJM PSC PRESET CHANNELS
IAN1 EJM KMS,** IF CHANNEL EMPTY
IAN2 IJM KMS,** IF CHANNEL INACTIVE
IAN3 IAN 40 INPUT TO *A*
STD AR
JMP KBR RETURN
OAN SPACE 4,10
*** OAN,XX.
*
* OUTPUT FROM CHANNEL *A* REGISTER TO CHANNEL XX.
ENTRY OAN
RJM PSC PRESET CHANNELS
OAN1 FJM KMS,** IF CHANNEL FULL
OAN2 IJM KMS,** IF CHANNEL INACTIVE
LDD AR OUTPUT FROM *A*
OAN3 OAN 40
JMP KBR RETURN
MCH SPACE 4,10
*** MCH,XX.
*
* MASTER CLEAR CHANNEL XX.
ENTRY MCH
RJM PSC PRESET CHANNELS
MCH1 AJM KMS,** IF CHANNEL ACTIVE
MCH2 FNC 2000,40 SELECT 6681
LDN 77 DELAY
SBN 1
NJN *-1 IF MORE DELAY
MCH3 AJM KBR,** IF CHANNEL IS ACTIVE, ABORT
MCH4 FNC 1700,40 MASTER CLEAR
JMP KBR RETURN
CFR SPACE 4,10
*** CFR,XX.
*
* CLEAR EXTENDED MEMORY FLAG REGISTER BIT XX.
ENTRY CFR
LDN CFRS CLEAR FUNCTION
UJN SFR1 CLEAR BIT
SFR SPACE 4,10
*** SFR,XX.
*
* SET EXTENDED MEMORY FLAG REGISTER BIT XX.
ENTRY SFR
LDN SFRS SET FUNCTION
SFR1 SHN 11 SAVE FLAG REGISTER FUNCTION
STD T4
RJM ASD ASSEMBLE DIGITS
LDC MMFL
CRD CM
LDD CM+4
ZJN SFR2 IF NOT IN SHARED MODE
LDD AB
ADD AB+1
ADD AB+2
ADD AB+3
NJN SFR2 IF BIT NUMBER TOO LARGE
LDD AB+4
SBN 22 CHECK BIT NUMBER TOO LARGE
PJN SFR2 IF BIT NUMBER GREATER THAN 17D
LDD AB+4
SHN 6
STD CM+1
LDD T4
STD CM+3
MONITOR ECSM
JMP KBR RETURN
SFR2 JMP KIE INCORRECT ENTRY
PSC SPACE 4,15
** PSC - PRESET CHANNELS.
*
* ENTRY (CA) = CHARACTER INDEX.
* ALL CHANNEL COMMANDS ARE CONSIDERED TO HAVE THREE
* CHARACTER NAMES.
*
* EXIT CHANNEL INSTRUCTIONS MODIFIED.
* (A) = 0.
*
* USES T1, T2.
*
* CALLS ASD.
PSC SUBR ENTRY/EXIT
RJM ASD ASSEMBLE CHANNEL
LDD AB+4 CHECK CHANNEL
SBN 40
PJN PSC2 IF NOT LEGAL CHANNEL
LDC TILC-1 SET INCORRECT CHANNEL TABLE
STD T1
LDC TPSC-1 SET PRESET CHANNEL TABLE
STD T2
PSC1 AOD T1 ADVANCE TABLE
LDI T1
ZJN PSC3 IF END OF TABLE
LMD AB+4 COMPARE CHANNELS
NJN PSC1 IF NO MATCH
PSC2 JMP KIE INCORRECT ENTRY
PSC3 AOD T2 ADVANCE CHANNEL TABLE
LDI T2
ZJN PSCX IF END OF TABLE
STD T1 MODIFY CHANNEL COMMANDS
LDI T1
SCN 37
LMD AB+4
STI T1
UJN PSC3 LOOP
TILC SPACE 4,10
** TILC - TABLE OF INCORRECT CHANNELS.
TILC BSS 0
CON CH DISPLAY CHANNEL
CON CHMX CYBER 170-8X5 TWO PORT MUX CHANNEL
CON CHMR CYBER 170-8X5 MAINTENANCE CHANNEL
CON 0 END OF TABLE
TPSC SPACE 4,10
** TPSC - TABLE OF CHANNEL INSTRUCTIONS.
TPSC BSS 0
CON DCN1
CON DCN2
CON FCN1
CON FCN2
CON ACN1
CON ACN2
CON IAN1
CON IAN2
CON IAN3
CON OAN1
CON OAN2
CON OAN3
CON MCH1
CON MCH2
CON MCH3
CON MCH4
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (K AND L DISPLAY PROCESSING.)
ECB SPACE 4,10
*** K.CCC-CCC
*
* ENTER CHARACTERS CCC-CCC IN CPU BUFFER FOR CONTROL ON
* *K* DISPLAY.
ECB SPACE 4,10
ENTRY ECB
LDD KI GET KEYBOARD BUFFER INDEX
SBN 53D
MJN ECB1 IF .LE. 50 CHARACTERS ENTERED
LDC ECBA *LINE TOO LONG*
LJM KMS REPORT ERROR
ECB1 LDM KBUF SET DISPLAY INDEX
STD T1
LDD LS
LMN 1RK
NJN ECB2 IF K DISPLAY NOT UP
LDC /DSD/TJKK+1
RJM SJS SEARCH FOR JSN IN EJT
MJN ECB2 IF JOB NOT AT CP OR NO JSN ASSIGNED
LDD CP
ADC DBAW READ DISPLAY POINTER
CRD CM
LDD CM CHECK ADDRESS
SHN 21-10
PJN ECB1.1 IF NOT SECURE K-DISPLAY
LDN 0
STM /KEYBOARD/LKBA CLEAR LOGGING FOR SECURE K-DISPLAY
ECB1.1 LDD CM CHECK ADDRESS
LPN 77
SHN 14
LMD CM+1
NJN ECB3 IF BUFFER DEFINED
ECB2 JMP KIE *INCORRECT ENTRY*
ECB3 LDN ZERL
CRD AB
LDI CA
NJN ECB4 IF FIRST CHARACTER NOT NULL
LDN 1R GUARANTEE AT LEAST 1 CHARACTER
STI CA
ECB4 LDD CA SAVE KEYBOARD OFFSET
ADC -KBUF
SHN 6
STD AB+4
LDN 2 SET KEYBOARD PARTIAL CLEAR INDEX
STM /KEYBOARD/KBCA
LDD CP SET CP NUMBER
SHN -7
RAD AB+4
LDC /1DS/LOCK+/1DS/ECBF
STD AB+2
LMC /1DS/CMOV SET CP MOVE
JMP KAR CALL *1DS*
ECBA DATA C*LINE TOO LONG*
ELB SPACE 4,10
*** L.CCC-CCC
*
* ENTER CHARACTERS CCC-CCC IN CMR *L* DISPLAY BUFFER.
ENTRY ELB
LDD LS
LMN 1RL
NJP ECB2 IF L DISPLAY NOT UP
LDN LCOM COMMAND BUFFER LENGTH
SHN 2
ADN LCOM+3
STD T1 STORE MAXIMUM NUMBER OF CHARACTERS
LDD KI GET KEYBOARD BUFFER INDEX
SBD T1
MJN ELB1 IF NUMBER OF CHARACTERS .LE. LIMIT
LDC ECBA *LINE TOO LONG*
JMP KMS REPORT ERROR
* CHECK FOR INCORRECT ENTRY.
ELB1 LDM /COMDSYS/SYSC READ *L* DISPLAY CONTROL WORD
LPN 77
STD CM+3
SHN 14
LMM /COMDSYS/SYSC+1
STD CM+4
CRD T1
LDD T1
ADD T2
NJN ELB2 IF JSN .NE. 0
LDC ELBB *L DISPLAY NOT ASSIGNED*
JMP KMS KEYBOARD ERROR MESSAGE RETURN
* CHECK IF COMMAND AVAILABLE.
ELB2 LDD T5
SHN 21-5
PJN ELB3 IF COMMAND NOT AVAILABLE
LDC ELBC *SYSTEM BUSY*
JMP KMS KEYBOARD ERROR MESSAGE RETURN
* TRANSFER DATA TO CMR BUFFER.
ELB3 LDN LCOM STORE MAXIMUM NUMBER OF WORDS
STD T6
LDD CM+3 WRITE WORDS TO CMR BUFFER
SHN 14
LMD CM+4
ADN 1
CWM KBUF+2,T6
* SET *L* DISPLAY STATUS TO REFLECT INPUT AVAILABLE.
LDD T1 VERIFY *JSN* .NE. 0
STM ELBA+3
LDD T2
STM ELBA+4
LDN 0
STD CM+2
LDN 3
STD CM+1 STORE WORD COUNT OF OPTIONS
LDD MA
CWM ELBA,CM+1
MONITOR UTEM SET BITS
LDD CM+1
ZJN ELB4 IF VERIFICATION PASSED
LJM ELB1 CHECK FOR INCORRECT ENTRY
* INDICATE *L* DISPLAY INPUT AVAILABLE.
ELB4 LDN ZERL ISSUE *L* DISPLAY INPUT EVENT
CRD CM
LDN LINE
STD CM+4
MONITOR EATM
* ENABLE THE NEXT *L.* PROMPT.
LDC .FLFT
STD T1
LDD LS
LMN 1RL
ZJN ELB5 IF *L* DISPLAY IS ON THE LEFT SCREEN
LDC .FRHT
STD T1
LDD RS
LMN 1RL
NJN ELB6 IF *L* DISPLAY IS NOT ON THE RIGHT SCREEN
ELB5 STM DSLA,T1
ELB6 JMP KBR KEYBOARD PROCESSOR
* *UTEM* MONITOR FUNCTION BUFFER.
ELBA VFD 1/1,5/0,6/24D,6/36D,6/0 VERIFY *JSN* .NE. 0
CON 0,0,0
VFD 1/1,5/0,6/1,6/5,6/0 VERIFY COMMAND NOT ENTERED
CON 0,0,0
VFD 1/0,5/0,6/2,6/4,6/0 COMMAND ENTERED/NO INPUT REQUEST
CON 0,0,2
ELBB DATA C*L DISPLAY NOT ASSIGNED*
ELBC DATA C*SYSTEM BUSY*
SPACE 4,10
CMDEND
COMMAND (EJT REQUESTS - PART 1.)
ECP SPACE 4,10
*** ENPR,XXXX,NN.
* ENPR,XXXX,*.
*
* SET CPU PRIORITY NN ON JOB WITH JSN = XXXX.
* IF NN = *, SET CPU PRIORITY FROM SERVICE CLASS VALUE.
* JOB WITH JSN = XXXX CANNOT BE A SUBSYSTEM.
ENTRY ECP
RJM ASN ASSEMBLE JSN
LDD AB+2
NJN ECP1 IF JSN .GT. 4 CHARACTERS
LDD AB+1
LPN 77
NJN ECP0 IF JSN .EQ. 4 CHARACTERS
LDN 1R
RAD AB+1
ECP0 LDN AB GET EJT ENTRY
RJM GEE
MJN ECP1 IF EJT ENTRY NOT FOUND
ZJN ECP1 IF SYSTEM CP
STD T7 SAVE EJT ORDINAL
SFA EJT GET SERVICE CLASS
ADN SCLE
CRD SR
LDD SR CHECK SERVICE CLASS
SHN -6
LMN SSSC
NJN ECP2 IF NOT SUBSYSTEM
ECP1 JMP KIE *INCORRECT ENTRY*
ECP2 LDD AB SAVE JSN FOR *1DS* CALL
STD SP+3
LDD AB+1
STD SP+4
AOD CA SKIP SEPARATOR
LDI CA
LMN 1R*
NJN ECP3 IF NEXT CHARACTER NOT ASTERISK
LDN 0 INDICATE SET SERVICE CLASS PRIORITY
STD AB+4
UJN ECP4 SET *1DS* CALL
ECP3 RJM ASD ASSEMBLE CPU PRIORITY
LDD AB+4
SBN LJCS
MJN ECP1 IF BELOW LOWER LIMIT
SBN LSCS-LJCS
PJN ECP1 IF REQUESTED PRIORITY TOO LARGE
ECP4 LDD T7 SET EJT ORDINAL FOR *1DS*
STD AB+3
LDC /1DS/LOCK+/1DS/ECPF
RJM C1D PROCESS FUNCTION
LDC ECP5
STM /KEYBOARD/KCRB SET REENTRY ADDRESS
ECP5 LDC /1DS/DSDL
CRD CM CHECK IF *1DS* COMPLETE
ADN 1 CHECK RESULTS
CRD AB
LDD CM
NJP CLP1 IF NOT COMPLETE
LDD AB
ZJP KBR IF NO ERROR
LDM ECPA-1,AB
JMP KMS DISPLAY ERROR MESSAGE
ECPA CON =C*EJT ENTRY BUSY.*
CON =C*CANNOT ACCESS ROLLOUT DEVICE.*
CON KILE *INCORRECT ENTRY.*
SPACE 4,10
USE END DUMP LITERALS BLOCK
SPACE 4,10
CMDEND
COMMAND (EJT REQUESTS - PART 2.)
CSP SPACE 4,10
*** RERUN,JSN.
*
* RERUN JOB WHICH HAS THE SPECIFIED JSN. JOB CAN BE A
* SUBSYSTEM.
ENTRY RRJ
RJM PJS PROCESS JSN
SFA EJT FIND ABSOLUTE ADDRESS OF EJT ENTRY
ADN SCHE GET NO RERUN BIT
CRD CM
LDD CM+2 GET NO RERUN BIT
SHN 21-13
MJN RRJ1 IF NO RERUN SET
LDD AB SET JSN
STD CM+3
LDD AB+1
STD CM+4
LDD T3 SET EJTO
STD CM+2
LDC RRET+4000 SET RERUN ERROR
STD CM+1
MONITOR CEFM SET ERROR FLAG
JMP KBR RETURN
RRJ1 JMP KIE *INCORRECT ENTRY*
RIF SPACE 4,10
*** ROLLIN,JSN.
* ROLLIN,JSN,L.
*
* ROLLIN JOB *JSN*. IF *L* IS SPECIFIED, LOCK JOB
* AT A CONTROL POINT. JOB CAN NOT BE A SUBSYSTEM.
ENTRY RIF
RJM PJS PROCESS JSN
LDD AB+1 SAVE JSN FOR *UTEM* CALL
STM URB+4
LDD AB
STM URB+3
LDN 2 WORD COUNT FOR *UTEM* REQUEST
STD CM+1
LDD CM+4
SHN -1
LMK TOJS
NJN RIF1 IF NOT *TOJS* STATUS
LDN 5 WORD COUNT FOR *TOJS* STATUS
STD CM+1
RIF1 SFA EJT,T3 GET SERVICE CLASS FROM EJT ENTRY
ADN SCLE
CRD SR
SBN SCLE
STD CM+4
SHN -14
STD CM+3
LDD SR
SHN -6
LMN SSSC
ZJN RIF3 IF SUBSYSTEM SERVICE CLASS
LDN 0 CLEAR UNUSED BYTE IN *UTEM* REQUEST
STD CM+2
LDI CA
LMN 1R.
ZJN RIF2 IF LOCK NOT SPECIFIED
LDN 1 SET FORCED ROLLIN
RIF2 STM URBA SAVE FORCED ROLLIN STATUS
LDD MA WRITE *UTEM* REQUEST WORDS
CWM URB,CM+1
MONITOR UTEM
LDD CM+1
NJN RIF3 IF VERIFICATION FAILED
JMP KBR RETURN
RIF3 JMP KIE *INCORRECT ENTRY*
ROL SPACE 4,10
*** ROLLOUT,JSN.
* ROLLOUT,JSN,NNNN.
*
* ROLLOUT JOB *JSN* OR ROLLOUT JOB *JSN* FOR NNNN
* SCHEDULER CYCLES. JOB CAN NOT BE A SUBSYSTEM.
ENTRY ROL
RJM PJS PROCESS JSN
LDD AB+1 SAVE JSN FOR *UTEM* CALL
STM URB+4
LDD AB
STM URB+3
LDD CM+4 SAVE JOB STATUS
STD T6
SFA EJT,T3 GET CP NUMBER
ADN SCHE
CRD SH
ADN SCLE-SCHE GET SERVICE CLASS
CRD SR
SBN SCLE
STD CM+4 SAVE ADDRESS OF EJT ENTRY
SHN -14
STD CM+3
LDD SR
SHN -6
LMN SSSC
ZJN ROL2 IF SUBSYSTEM SERVICE CLASS
LDD T6 CHECK JOB STATUS
LPN 76
SHN -1
LMK EXJS
ZJN ROL4 IF JOB AT CP
LMK PCJS&EXJS
NJN ROL1 IF JOB NOT AT PCP
LDD SH+1 SET PCP NUMBER IN *ROCM* REQUEST
STD CM+2
UJN ROL6 CONTINUE
ROL1 LDI CA
LMN 1R.
ZJN ROL3 IF TIME NOT ENTERED
ROL2 JMP KIE *INCORRECT ENTRY*
* PROCESS ROLLOUT WITH NO TIME SPECIFIED.
ROL3 STD CM+2
LDN 2
STD CM+1
STM URBA SET FORCED ROLLOUT STATUS
LDD MA WRITE *UTEM* REQUEST WORDS
CWM URB,CM+1
MONITOR UTEM
LDD CM+1
NJN ROL2 IF VERIFICATION FAILED
LJM KBR RETURN
* PROCESS JOB AT A CP/PCP.
ROL4 LDD SH+3 SET CONTROL POINT NUMBER
STD CM+2
SHN 7 SET CPA ADDRESS
ADN JCIW GET SUBSYSTEM ID
CRD AB
LDD AB+2
ZJN ROL6 IF ROLLABLE JOB
LMN ORSI CHECK IF OPERATOR ROLLOUT ALLOWED
ROL5 NJN ROL2 IF ROLLOUT NOT ALLOWED
ROL6 LDI CA
LMN 1R.
ZJN ROL3 IF TIME NOT ENTERED
LMN 1R,&1R.
NJN ROL5 IF INCORRECT SEPARATOR
AOD CA SKIP SEPERATOR
RJM ASD ASSEMBLE TIME
LDD AB
ADD AB+1
ADD AB+2
ADD AB+3
NJN ROL5 IF TIME .GT. 777B
LDD AB+4
STD SP+2 SET ROLLOUT TIME
SHN -11
NJN ROL5 IF TIME .GT. 777B
STD SP+3
STD SP+4
LDD MA WRITE *ROCM* PARAMETERS TO MB
CWD SP
LDC 4000+ROTE ALTERNATE CP/PCP, TIMED/EVENT OPTIONS
STD CM+1
MONITOR ROCM REQUEST ROLLOUT
LJM KBR RETURN
URB SPACE 4,10
* *UTEM* REQUEST BLOCK.
URB VFD 1/1,5/JSNE,6/24D VERIFY THAT JSN-S MATCH
VFD 6/36D,6/0
CON 0
CON 0
CON 0
VFD 1/0,5/SCLE,6/2 CHANGE *ROLLOUT* AND *ROLLIN* BITS
VFD 6/52D,6/0
CON 0
CON 0
URBA CON 0
URBB VFD 1/1,5/JSNE,6/5 VERIFY STATUS IS *TOJS*
VFD 6/1,6/0
CON 0
CON 0
CON TOJS
URBC VFD 1/0,5/JSNE,6/5 CHANGE *TOJS* STATUS TO *ROJS* STATUS
VFD 6/1,6/0
CON 0
CON 0
CON ROJS
URBD VFD 1/0,5/SCHE,6/30D CHANGE SCHEDULING DATA TO ZERO
VFD 6/0,6/0
CON 0
CON 0
CON 0
PJS SPACE 4,10
** PJS - PROCESS JSN.
*
* EXIT (AB - AB+1) = JSN.
* (CM - CM+4) = WORD *JSNE* OF EJT ENTRY.
* (A) = (T3) = EJT ORDINAL.
* TO *KIE* IF ERROR.
*
* CALLS ASN, GEE.
PJS SUBR ENTRY/EXIT
RJM ASN ASSEMBLE JSN
LDD AB+2
NJN PJS2 IF JSN .GT. 4 CHARACTERS
LDD AB+1 SPACE FILL JSN
LPN 77
NJN PJS1 IF JSN .EQ. 4 CHARACTERS
LDN 1R
RAD AB+1
PJS1 LDN AB GET EJT ENTRY
RJM GEE
MJN PJS2 IF EJT ENTRY NOT FOUND
NJN PJSX IF JSN .NE. *SYS*
PJS2 JMP KIE *INCORRECT ENTRY*
SPACE 4,10
CMDEND
COMMAND (QFT REQUESTS.)
ENQ SPACE 4,10
*** ENQP,JSN,XXXX.
*
* SET QUEUE PRIORITY XXXX FOR THE QFT ENTRY WITH
* THE GIVEN JSN. 0 .LE. XXXX .LE. 7777B. IF XXXX = 0,
* THE ENTRY TIME WILL BE SET TO 0.
ENTRY ENQ ENTRY
LDN QFTP GET NUMBER OF QFT ENTRIES
CRD T3
RJM ASN ASSEMBLE JSN
LDD AB+2
NJN ENQ4 IF JSN .GT. 4 CHARACTERS
LDD AB+1
LPN 77
NJN ENQ1 IF JSN .GT. 3 CHARACTERS
LDN 1R
RAD AB+1
ENQ1 LDN 0 INITIALIZE QFT ORDINAL
STD T4
ENQ2 SFA QFT,T4
ERRNZ JSNQ NOT FIRST WORD OF EJT ENTRY
CRD CM
LDD AB
LMD CM
NJN ENQ3 IF JSN DOES NOT MATCH
LDD AB+1
LMD CM+1
ZJN ENQ5 IF JSN MATCHES
ENQ3 AOD T4
SBD T5
NJN ENQ2 IF NOT END OF QFT
ENQ4 JMP KIE *INCORRECT ENTRY*
ENQ5 LDD CM SET JSN
STM ENQB+3
LDD CM+1
STM ENQB+4
LDD CM+4
SHN -11
SBN /JIO/INQT
ZJN ENQ6 IF INPUT FILE TYPE
LDN 2 SET OUTPUT FILE TYPE
ENQ6 STD T6
SFA QFT,T4 GET SERVICE CLASS
ADN SCLQ
CRD SR
AOD CA SKIP *,*
RJM ASD GET QUEUE PRIORITY
LDD AB
ADD AB+1
ADD AB+2
ADD AB+3
NJN ENQ4 IF .GT. 7777B
LDD AB+4
NJN ENQ7 IF .NE. 0
STD T1
STD T2
UJN ENQ8 SET ENTRY TIME = 0
ENQ7 STD T1 SET QUEUE PRIORITY
LDD SR
SCN 77
SHN 6
ADD T6
RJM CET CALCULATE ENTRY TIME
ENQ8 LDN ZERL
CRD CM
LDN 3 SET NUMBER OF REQUESTS
STD CM+1
SFA QFT,T4 GET QFT ENTRY ABSOLUTE ADDRESS
STD CM+4
SHN -14
STD CM+3
LDD T1
STM ENQC+3
LDD T2
STM ENQC+4
LDD MA
CWM ENQA,TR
MONITOR UTEM SET ENTRY TIME IN QFT ENTRY
LDD CM+1
NJN ENQ9 IF OPERATION NOT COMPLETE
JMP KBR RETURN
ENQ9 JMP KIE *INCORRECT ENTRY*
* *UTEM* PARAMETER WORD.
ENQA VFD 1/1,5/JSNQ,6/6,6/0,42/0 VERIFY ENTRY NOT BUSY
ENQB VFD 1/1,5/JSNQ,6/24D,6/36D,42/0 VERIFY QFT ENTRY JSN
ENQC VFD 6/ENTQ,6/24D,6/0,42/0 SET NEW ENTRY TIME
COMMON SPACE 4,10
* COMMON DECKS.
CET$ EQU 1 ASSEMBLE *CET* ROUTINE
*CALL COMPCPE
SPACE 4,10
CMDEND
COMMAND (EXECUTING JOB REQUESTS - PART 1.)
CSP SPACE 4,10
** CSP - CALL *1DS*.
*
* ENTRY (A) = FUNCTION REQUEST.
* (CN) = CONTROL POINT NUMBER.
*
* USES AB+2, AB+4.
CSP STD AB+2 SAVE *1DS* FUNCTION CODE
LDD CN SET CONTROL POINT NUMBER
STD AB+4
LDD AB+2
LMC /1DS/CMOV ADD CONTROL POINT MOVE
JMP KAR PROCESS *1DS* CALL
AGD SPACE 4,10
*** ASSIGN,JSN,DS.
*
* ASSIGN JOB WITH SPECIFIED JSN TO EST ENTRY 1 (*DS*
* EQUIPMENT).
ENTRY AGD
LDN DSEQ EST ORDINAL OF *DS*
STM AGNA
UJN AGN ENTER COMMON PROCESSING
AGE SPACE 4,10
*** ASSIGN,JSN,NE.
*
* ASSIGN JOB WITH SPECIFIED JSN TO EST ENTRY 1 (*NE*
* EQUIPMENT).
ENTRY AGE
LDN NEEQ EST ORDINAL OF *NE*
STM AGNA
UJN AGN ENTER COMMON PROCESSING
AGN SPACE 4,10
*** ASSIGN,JSN,XXX.
*
* ASSIGN JOB WITH SPECIFIED JSN TO EST ORDINAL XXX. THE JOB
* MUST BE AT A CONTROL POINT.
ENTRY AGN ENTRY
RJM ASN ASSEMBLE JSN
LDN AB GET EJTO
RJM GEE
MJN AGN1 IF JSN NOT FOUND
STD T7
LDD AB+2
NJN AGN1 IF JSN .GT. 4 CHARACTERS
LDD CM+4
LPN 76
LMN EXJS*2
AGN1 NJN AGN2 IF JOB NOT AT CONTROL POINT
LDK ZERL
CRD AB
LDC 0
* LDC DSEQ (*DS* EQUIPMENT)
* LDC NEEQ (*NE* EQUIPMENT)
AGNA EQU *-1
STD AB+4 STORE EST ORDINAL (OR ZERO)
NJN AGN1.1 IF *DS* OR *NE*
AOD CA SKIP SEPARATOR
RJM ASD ASSEMBLE EST ORDINAL
AGN1.1 SFA EJT,T7 GET CP NUMBER
ADN SCHE
CRD SR
LDD SR+3
STD CN
LDN ESTP SET EST LENGTH
CRD SR
LDD AB+4
SBD SR+2
PJN AGN2 IF NON-EXISTENT EQUIPMENT
SFA EST,AB+4 READ EST ENTRY
ADK EQDE
CRD CM
ADK EQAE-EQDE READ EQUIPMENT ASSIGNMENT
CRD SR
LDD SR+4
ZJN AGN3 IF EQUIPMENT AVAILABLE
AGN2 JMP KIE *INCORRECT ENTRY*
AGN3 LDD CM+3
ZJN AGN4 IF EQUIPMENT UNDEFINED
LDD CM
SHN 21-1
MJN AGN4 IF DEVICE OFF (OR DOWN)
SHN 2+21-13
PJN AGN5 IF NOT MASS STORAGE
SHN 13-10
MJN AGN4 IF REMOVABLE
SHN 10-6
PJN AGN5 IF AVAILABLE
AGN4 LDC =C*NOT AVAILABLE.*
JMP KMS DISPLAY MESSAGE
AGN5 LDC TIET
STD T1
LDI T1 SEARCH FOR INCORRECT EQUIPMENT
AGN6 LMD CM+3
ZJN AGN2 IF INCORRECT EQUIPMENT ASSIGNMENT
AOD T1
LDI T1
NJN AGN6 IF NOT END OF SEARCH
LDD AB+4 GET EST ORDINAL
STD AB+3
LDN 0
STD AB+1
LDN /1DS/AEJF
JMP CSP CALL *1DS*
TIET SPACE 4,10
** TIET - TABLE OF INCORRECT EQUIPMENTS TO *ASSIGN*.
TIET BSS 0
CON 2RCP
CON 2RCR
CON 2RLQ
CON 2RLR
CON 2RLS
CON 2RLT
CON 2RLX
CON 2RLY
CON 2RRD
TIETE CON 0 END OF TABLE
ERRZR TIETE-TIET REMOVE TABLE AND SEARCH LOOP
SPACE 4,10
CMDEND
COMMAND (EXECUTING JOB REQUESTS - PART 2.)
CSP SPACE 4,10
** CSP - CALL *1DS*.
*
* ENTRY (A) = FUNCTION REQUEST.
* (CN) = CONTROL POINT NUMBER.
*
* USES AB+2, AB+4.
CSP STD AB+2 SAVE *1DS* FUNCTION CODE
LDD CN SET CONTROL POINT NUMBER
STD AB+4
LDD AB+2
LMC /1DS/CMOV ADD CONTROL POINT MOVE
JMP KAR PROCESS *1DS* CALL
CHK SPACE 4,10
*** CKP,JSN.
*
* CHECKPOINT JOB WITH SPECIFIED JSN. THE JOB MUST BE
* AT A CP. THE JOB CANNOT BE A SUBSYSTEM.
ENTRY CHK
RJM ASN ASSEMBLE JSN
LDD AB+2
NJN CHK1 IF JSN .GT. 4 CHARACTERS
RJM GCE GET CP NUMBER
SHN 7 SAVE CPA ADDRESS
STD CP
ADN STSW READ *STSW*
CRD AB
ADN JCIW-STSW READ *JCIW*
CRD SR
LDD AB+2
SHN 21-0
MJN CHK1 IF ROLLOUT SET
LDD SR+2 CHECK SUBSYSTEM IDENTIFICATION
ADC -LSSI-1
MJN CHK2 IF JOB NOT A SUBSYSTEM
CHK1 JMP KIE *INCORRECT ENTRY*
CHK2 LDD CP GET CP ADDRESS
ADC SEPW READ *SEPW*
CRD SH
ADN SPCW-SEPW READ *SPCW*
CRD T1
ADN DBAW-SPCW READ *DBAW*
CRD T2
ADN SSCW-DBAW
CRD CM
LDD SR+3
LPC 600
NJN CHK1 IF USER FILE PRIVATE
LDD AB+4
SHN -4
NJN CHK1 IF RECALL REQUESTS
LDD CM
ADD CM+1
ADD CM+2
ADD CM+3
ADD CM+4
NJN CHK1 IF *SSCW* BUSY
LDD SH
LPN 24
NJN CHK1 IF *DMP=* OR *SSJ=*
LDD T1
NJN CHK1 IF *SPCW* NOT FREE
LDD T2
SHN 21-13
MJP CHK1 IF SECURE SYSTEM MEMORY SET
LDN ZERL
CRD AB
LDC /1DS/CKPF+/1DS/LOCK
JMP CSP CALL *1DS*
DIS SPACE 4,10
*** DIS,JSN.
*
* CALL JOB DISPLAY PACKAGE TO JOB JSN.
ENTRY DIS
RJM ASN ASSEMBLE JSN
LDD AB+2
NJN DIS1 IF JSN .GT. 4 CHARACTERS
RJM GCE GET CP NUMBER
LDN ZERL CLEAR *AB* FOR 1DS CALL
CRD AB
LDN /1DS/DISF
JMP CSP CALL *1DS*
DIS1 JMP KIE *INCORRECT ENTRY*
SPACE 4,10
USE END DUMP LITERALS BLOCK
GCE SPACE 4,10
*** GCE - GET CONTROL POINT FROM EJT ENTRY.
*
* *GCE* GETS THE CONTROL POINT NUMBER FOR THE JSN GIVEN.
*
* ENTRY (AB - AB+4) = JSN.
*
* EXIT (A) = CONTROL POINT NUMBER.
* (CN) = CONTROL POINT NUMBER.
*
* USES CN, CM - CM+4.
*
* CALLS GEE.
*
* MACROS SFA.
GCE SUBR ENTRY/EXIT
LDN AB
RJM GEE GET EJT ENTRY
PJN GCE2 IF EJT ENTRY FOUND
GCE1 JMP KIE PROCESS INCORRECT ENTRY
GCE2 LDD CM+4 CHECK JOB STATUS
LPN 76
LMN EXJS*2
NJN GCE1 IF JOB NOT AT CP
LDD T3
ZJN GCE1 IF JSN = *SYS*
SFA EJT
ADN SCHE
CRD CM
LDD CM+3
STD CN SET CP NUMBER
UJN GCEX RETURN
SPACE 4,10
CMDEND
COMMAND (SUBSYSTEM REQUESTS.)
SPACE 4,10
* MACROS.
SUBSYST SPACE 4,10
** SUBSYST - GENERATE SUBSYSTEM TABLE.
*
* SUBSYST NAME,ID,PR,PP,AUTO,DEF,DCP,CP,PROC,ABT
*
* ENTRY *NAME* = THREE CHARACTER SUBSYSTEM NAME.
* *ID* = SUBSYSTEM ID.
*
* GENERATE CODE TO INITIATE EACH SUBSYSTEM.
PURGMAC SUBSYST
SUBSYST MACRO NM,ID,PT,PP,AU,DF,DC,CP,PR,AB
.SUB RMT
.A IFC NE,*NM*RBF*
.A IFC NE,*NM*ATF*
ENTRY NM
LDC ID
JMP ISS
.A ENDIF
.SUB RMT
SUBSYST ENDM
SPACE 4,10
SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO CALLS
*CALL COMSSSD
ISS SPACE 4,10
** ISS - INITIATE SUBSYSTEM.
*
* ENTRY (A) = SUBSYSTEM ID.
*
* USES AB - AB+4.
*
* CALLS AST, IEE, PPN.
ISS BSS 0 ENTRY
ADC SSCTL*10000 GET SSAT ENTRY
RJM AST
ZJN ISS2 IF SUBSYSTEM NOT ACTIVE
ISS1 JMP KIE *INCORRECT ENTRY*
ISS2 RJM PPN PACK PROCEDURE NAME
LDD SP+4
NJN ISS1 IF KEYWORD TOO LONG
LDN ZERL
CRD AB
LDC /1DS/ISSF+/1DS/LOCK
JMP KAR PROCESS *1DS* CALL
SPACE 4,10
LIST G
.SUB HERE CODE FOR SUBSYSTEM INITIATION
LIST *
PPN SPACE 4,10
** PPN - PACK PROCEDURE NAME.
*
* EXIT (SP - SP+4) = *1DS* PARAMETER.
*
* USES CA, T1, SP - SP+4.
PPN SUBR ENTRY/EXIT
LDN ZERL
CRD SP
LDN SP
STD T1
LDC KBUF
STD CA
LDI CA PACK SUBSYSTEM NAME
SHN 6
STI T1
AOD CA
LDI CA
RAI T1
AOD CA
AOD T1
LDI CA
SHN 6
STI T1
AOD CA
AOD T1
PPN1 LDI CA PACK PROCEDURE FILE NAME
ZJN PPN3 IF END OF COMMAND
LMN 1R.
ZJN PPNX IF *.*
LMN 1R.
SBN 1R9+1
PJN PPN3 IF CHARACTER IS NOT ALPHANUMERIC
LDI CA
SHN 6
STI T1
AOD CA ADVANCE POINTER
LDI CA
LMN 1R.
ZJN PPN2 IF *.*
LMN 1R.
SBN 1R9+1
PJN PPN3 IF CHARACTER IS NOT ALPHANUMERIC
LDI CA
RAI T1
AOD CA ADVANCE POINTER
AOD T1
SBN SP+4+1
MJN PPN1 IF .LT. 5 CHARACTERS ENTERED
PPN2 LJM PPNX RETURN
PPN3 JMP KIE *INCORRECT ENTRY*
SPACE 4,10
CMDEND
COMMAND (INTERACTIVE MESSAGE REQUESTS.)
DIA SPACE 4,10
*** DIAL,JSN,CCC - CCC
* DIAL,*,CCC - CCC
*
* SEND MESSAGE CCC - CCC TO THE TERMINAL WITH THE SPECIFIED
* JSN. IF AN ASTERISK (*) IS SPECIFIED FOR THE JSN, THE
* MESSAGE IS SENT TO ALL CONNECTED TERMINALS.
ENTRY DIB
AOD CA SKIP SEPERATOR
LCN 0 SET THE DIAL ALL FLAG
STD AB+3
LJM DIA3.1 SET UP *1DS* CALL
DIA5 LJM KIE *INCORRECT ENTRY*
ENTRY DIA
RJM CTS CHECK INTERACTIVE STATUS
RJM ASN ASSEMBLE JSN
LDD AB+2
NJN DIA5 IF JSN .GT. 4 CHARACTERS
* LDN 0 INITIALIZE TERMINAL NUMBER
* STD AB+3
LDI CA
LMN 1R,
NJN DIA5 IF NOT *,*
LDN AB GET EJTO
RJM GEE
PJN DIA2 IF EJT ENTRY FOUND
DIA1 LDC =C*USER NOT ACTIVE*
JMP KMS DISPLAY MESSAGE
DIA2 SFA EJT CHECK CONNECTION STATUS
ADK JSNE
CRD CM
LDD CM+4
SHN -7
LPN 17
LMN OLCS
NJN DIA5 IF JOB IS NOT ONLINE CONNECTED
LDM. CMEI
ZJN DIA2.1 IF NOT *CME* MACHINE
STM DIAB
DIA2.1 LDC /REM/VCPT*200 GET *RA* FOR *IAF*
DIAB ADN FLSW
* ADN FLSW+1 (*CME* MACHINE)
CRD T4
LRD T4+1 SET R REGISTER
RJM GTN GET TERMINAL NUMBER
MJN DIA1 IF JOB NOT FOUND IN TERMINAL TABLE
LDC LDSP GET *RDF* MESSAGE TERMINAL NUMBER
CRD SH
LDD SH+2
SHN 14
LMD SH+3
SBN LODS
CRD CM
LDD CM+1
LMD AB+1
NJN DIA3 IF JSN DOES NOT MATCH OPERATOR DISPLAY
LDD CM
LMD AB
NJN DIA3 IF JSN DOES NOT MATCH
LDD CM+2
ZJN DIA3 IF NOT A MESSAGE FROM *1TM*
LDN ZERL CLEAR OPERATOR MESSAGE AREA
CRD CM
LDN 1
STD CM
LDD SH+2
SHN 14
LMD SH+3
SBN LODS
CWD CM
LDN 1
STD CM+1
LDC OPRL
STD CM+4
LDD MA
CWM DIAA,ON
MONITOR UTEM
LRD T4+1 SET R REGISTER
DIA3 LDD SR+1
SHN 6
ADD T7
SHN 6
ADD SR+2
ADN /REM/VDCT GET FIRST POT OF OUTPUT MESSAGE
CRD SR
ADN /REM/VSTT-/REM/VDCT GET POT COUNT/COMMAND TABLE INDEX
CRD SH
LDD SR+4
ADD SH+4
NJN DIA4 IF OUTPUT QUEUED
* CALL *1DS*.
DIA3.1 LDK /1DS/DIAF
STD AB+2
AOD CA
UJN PTM PROCESS INTERACTIVE MESSAGE
DIA4 LDC =C*OUTPUT BUSY*
JMP KMS DISPLAY MESSAGE
DIAA VFD 1/0,5/0,6/1,6/59D,42/0 CLEAR BIT
WAR SPACE 4,10
*** WARN,CCC - CCC
* WARN.
*
* SEND WARNING MESSAGE CCC - CCC TO ALL TERMINAL USERS.
* IF CCC - CCC IS NULL, CLEAR PREVIOUS WARNING MESSAGE.
ENTRY WAR
LDN /1DS/WARF
STD AB+2
LDM KBUF+6
ZJN PTM1 IF CLEARING PREVIOUS MESSAGE
LDC KBUF+5 SET START OF BUFFER ADDRESS
* UJN PTM PROCESS INTERACTIVE MESSAGE
PTM SPACE 4,10
** PTM - PROCESS INTERACTIVE MESSAGE.
*
* ENTRY (A) = STARTING KEYBOARD BUFFER ADDRESS.
* (AB+2) = *1DS* FUNCTION TO CALL.
* (AB+3) = 0, IF *WARN* OR *MESSAGE*.
* = TERMINAL NUMBER, IF *DIAL*.
* = 7777 IF DIALING ALL TERMINALS.
PTM BSS 0 ENTRY
SBK KBUF KEYBOARD BUFFER OFFSET
SHN 6
PTM1 STD AB+4
RJM CTS CHECK INTERACTIVE STATUS
LDN /REM/VCPT SET CP NUMBER
RAD AB+4
LDC /1DS/LOCK+/1DS/CMOV
RAD AB+2
JMP KAR PROCESS *1DS* CALL
CTS SPACE 4,10
** CTS - CHECK INTERACTIVE STATUS.
*
* ERROR TO *KMS*, IF *IAF* NOT ACTIVE.
*
* USES T4 - CM.
*
* CALLS FSS.
CTS SUBR ENTRY/EXIT
LDC IFSI FIND *IAF*
RJM FSS
NJN CTSX IF *IAF* ACTIVE
LDC =C*IAF NOT ACTIVE*
LJM KMS DISPLAY MESSAGE
SPACE 4,10
** COMMON DECKS.
*CALL COMPGTN
SPACE 4,10
CMDEND
COMMAND (BATCHIO REQUESTS - PART 1.)
BKF SPACE 4,10
*** BKSPF,XXX,YY.
*
* BACKSPACE FILE PRINTING ON *BATCHIO* EQUIPMENT XXX, YY FILES.
ENTRY BKF
LDN /BIO/BKFO REQUEST BACKSPACE FILES
UJN SIO SET *BATCHIO* FLAG
BKP SPACE 4,10
*** BKSPRU,XXX,YY.
*
* BACKSPACE FILE PRINTING ON *BATCHIO* EQUIPMENT XXX, YY PRUS.
ENTRY BKP
LDN /BIO/BKPO REQUEST BACKSPACE PRUS
UJN SIO SET *BATCHIO* FLAG
BKR SPACE 4,10
*** BKSP,XXX,YY.
*
* BACKSPACE FILE PRINTING ON *BATCHIO* EQUIPMENT XXX, YY
* RECORDS.
ENTRY BKR
LDN /BIO/BKRO REQUEST BACKSPACE RECORDS
UJN SIO SET *BATCHIO* FLAG
CNT SPACE 4,10
*** CONTINUE,XXX.
*
* CONTINUE OPERATION ON *BATCHIO* EQUIPMENT XXX.
ENTRY CNT
LDN /BIO/CNTM REQUEST CONTINUE
UJN SIO SET *BATCHIO* FLAG
END SPACE 4,10
*** END,XXX.
* END,XXX,YY.
*
* END OPERATION ON *BATCHIO* EQUIPMENT XXX, YY TIMES.
* (USED TO CLEAR REPEAT COUNT.)
ENTRY END
LDN /BIO/ENDM REQUEST END
UJN SIO SET *BATCHIO* FLAG
HLD SPACE 4,10
*** HOLD,XXX.
*
* STOP OPERATION ON *BATCHIO* EQUIPMENT XXX.
ENTRY HLD
LDN /BIO/HLDM REQUEST HOLD
UJN SIO SET *BATCHIO* FLAG
REP SPACE 4,10
*** REPEAT,XXX.
* REPEAT,XXX,YY.
*
* REPEAT OPERATION ON *BATCHIO* EQUIPMENT XXX, YY TIMES.
ENTRY REP
LDN /BIO/REPM REQUEST REPEAT
UJN SIO SET *BATCHIO* FLAG
RRN SPACE 4,10
*** REPRINT,XXX.
* REPRINT,XXX,YY.
* REPUNCH,XXX.
* REPUNCH,XXX,YY.
*
* REQUEUE FILE CURRENTLY ON *BATCHIO* EQUIPMENT XXX WITH A
* PRIORITY OF YY (IF SPECIFIED).
ENTRY RRN
LDN /BIO/RRNM REQUEST RERUN
UJN SIO SET *BATCHIO* FLAG
SKF SPACE 4,10
*** SKIPF,XXX,YY.
*
* SKIP FILE PRINTING ON *BATCHIO* EQUIPMENT XXX FORWARD,
* YY FILES.
ENTRY SKF
LDN /BIO/SKFO REQUEST SKIP FILES
UJN SIO SET *BATCHIO* FLAG
SKP SPACE 4,10
*** SKIPRU,XXX,YY.
*
* SKIP FILE PRINTING ON *BATCHIO* EQUIPMENT XXX, YY PRUS.
ENTRY SKP
LDN /BIO/SKPO REQUEST SKIP PRUS
UJN SIO SET *BATCHIO* FLAG
SKR SPACE 4,10
*** SKIP,XXX,YY.
*
* SKIP FILE PRINTING ON *BATCHIO* EQUIPMENT XXX FORWARD,
* YY RECORDS.
ENTRY SKR
LDN /BIO/SKRO REQUEST SKIP RECORDS
UJN SIO SET *BATCHIO* FLAG
SUP SPACE 4,10
*** SUPPRESS,XXX.
*
* TOGGLE USE OF FORMAT CONTROL ON *BATCHIO* PRINTER XXX.
ENTRY SUP
LDN /BIO/SUPM REQUEST SUPPRESS
* UJN SIO SET *BATCHIO* FLAG
SIO SPACE 4,10
** SIO - SET *BATCHIO* FLAG.
*
* ENTRY (A) = *BATCHIO* FLAG.
*
* PROGRAMMERS NOTE - *DSD* CHANGES A *RERUN* REQUEST FOR A
* CARD READER TO AN *END*. *1CD* EXPECTS THIS TO BE DONE.
SIO BSS 0 ENTRY
STD SP+4 SAVE REQUEST
LDC KBUF+3 SET ASSEMBLY STARTING POINT
STD CA
RJM ASN POSITION TO END OF REQUEST
AOD CA SKIP SEPARATOR
LDN 0 CLEAR PRIORITY FIELD
STD SP+1
LDD SP+4
LMN /BIO/REPM
STM SIOA
NJN SIO3 IF NOT *REPEAT*
RJM ASN
LDD AB SAVE JSN
STM REPB+0
STD SP
LDD CA
SBK KBUF+13
ZJN SIO1 IF JSN 4 CHARACTERS LONG
ADN 1
NJN SIO2 IF JSN .GT. 4 OR .LT. 2 CHARACTERS
LDN 1R SPACE FILL 3 CHARACTER JSN
SIO1 LMD AB+1
STM REPB+1
UJN SIO5 FINISH SAVING JSN
SIO2 JMP KIE *INCORRECT ENTRY*
SIO3 RJM ASD ASSEMBLE EST ORDINAL
LDD SP+4
LMN /BIO/RRNM
NJN SIO4 IF NOT *REPRINT* OR *REPUNCH* (RERUN)
LCN 0 SET DEFAULT PRIORITY
STD SP+1
SFA EST,AB+4 READ EST ENTRY
ADK EQDE
CRD CM
LDD CM+3
LMC 2RCR
NJN SIO4 IF NOT *CR*
LDN /BIO/ENDM SET *END* FOR *CR*
STD SP+4
SIO4 LDD AB+4 SET EST ORDINAL
SIO5 STD SP+3
LDI CA CHECK SEPARATOR
LMN 1R.
ZJN SIO8 IF END OF COMMAND
LMN 1R,&1R.
SIO6 NJN SIO2 IF NOT *,*
AOD CA SKIP SEPARATOR
RJM ASD ASSEMBLE PARAMETER
LDI CA CHECK SEPARATOR
LMN 1R.
NJN SIO6 IF NOT END OF COMMAND
LDD SP+4 CHECK COMMAND
LMN /BIO/RRNM
NJN SIO7 IF NOT *REPRINT* OR *REPUNCH*
LDD AB+4 SET PRIORITY VALUE
STD SP+1
LDN 0
UJN SIO8 CONTINUE
SIO7 LDD AB+4 SET PARAMETER
SIO8 STD SP+2
SHN -6
ADD AB+3
ADD AB+2
NJN SIO6 IF INCORRECT PARAMETER
LDD SP+2 CONVERT AND STORE REPEAT COUNT
SHN 3
LMD SP+2
SCN 70
RAM REPC
LDC BISI GET SSCT ENTRY
RJM AST
SHN 21-13
PJN SIO9 IF *BATCHIO* NOT ACTIVE
LDC BISI+SSCTL*10000
RJM AST
ZJN SIO9 IF *BATCHIO* INACTIVE
SFA EJT GET *BATCHIO* JOB STATUS AND CP NUMBER
ADK JSNE
CRD SR
ADN SCHE
CRD SH
LDD SR+4
LPN 76
LMN EXJS*2
ZJN SIO10 IF *BATCHIO* AT A CP
SIO9 UJN SIO12 *BATCHIO* NOT AVAILABLE
SIO10 LDD SH+3 SET *BATCHIO* CP NUMBER
LPN 77
STD AB+4
LDC /1DS/CMOV+/1DS/LOCK+/1DS/EBRF
RJM C1D PROCESS FUNCTION
LDC SIO11 SET REENTRY ADDRESS
STM /KEYBOARD/KCRB
SIO11 LDC /1DS/DSDL CHECK IF *1DS* COMPLETE
CRD T7
ADN 1 CHECK RESULT
CRD CM
LDD T7
NJP CLP1 IF NOT COMPLETE
LDD CM
ZJP KBR IF NO ERROR, RETURN
LMN 1
ZJN SIO12 IF PREVIOUS REQUEST PROCESSED
LDC KBIB *BIO BUSY*
LJM KMS ISSUE MESSAGE
* IF *REPEAT*, BUILD *QALTER* COMMAND TO CHANGE REPEAT COUNT.
SIO12 LDC 1
* LDC 0 (*REPEAT*)
SIOA EQU *-1
NJP KIE IF NOT *REPEAT*
STD T1
STD T2
LDD MA
CWM REPA,ON
CRD SP
SIO13 LDM REPA,T1 REPLACE *REPEAT* WITH *QALTER*
SHN 14
STM KBUF,T2
SHN -14
STM KBUF+1,T2
AOD T2
AOD T2
AOD T1
SBN REPAL
NJN SIO13 IF NOT DONE REPLACING COMMAND
STD SP+3
STD SP+4
STM /KEYBOARD/KBRA DISALLOW *REPEAT ENTRY*
STD AB+4 SET NO BUFFER OFFSET
LDC /1DS/ICJF+/1DS/LOCK
JMP KAR PROCESS *1DS* CALL
REPA DATA H*QALTER,PO=N,L=0,JSN=*
REPB DATA H*JSNN, NRC=*
REPC DATA H*00B.*
REPAL EQU *-REPA
KBIB DATA C*BIO BUSY*
SPACE 4,10
CMDEND
COMMAND (BATCHIO REQUESTS - PART 2.)
SPACE 4,10
SID SPACE 4,20
*** ID,XXX,YY.
*
* SET *BATCHIO* EQUIPMENT XXX TO HAVE *ID* YY.
ENTRY SID
RJM REE READ EST ENTRY
LDC SIDA-1
STD T2
SID1 AOD T2 CHECK EQUIPMENT TYPE
LDI T2
ZJN SID4 IF END OF LIST
LMD CM+3
NJN SID1 IF NO MATCH
SID2 AOD CA ASSEMBLE ID
RJM ASD
LDD AB+4 ENTER ID
LPN 77
STD T1
SBN IDLM
PJN SID4 IF ID OUT OF RANGE
LDN SB4S SET BYTE 4 OF EST
STD CM+2
LCN 77 SET MASK
STD CM+3
LDD T1 GET ID PARAMETER
SID3 STD CM+4 SAVE *SEQM* PARAMETER
LDD T7 SET EST ORDINAL
STD CM+1
MONITOR SEQM SET EQUIPMENT
JMP KBR RETURN
SID4 JMP KIE INCORRECT ENTRY
SIDA BSS 0 LIST OF VALID BATCHIO EQUIPMENT TYPES
CON 2RCP
CON 2RCR
CON 2RLQ
CON 2RLR
CON 2RLS
CON 2RLT
CON 2RLX
CON 2RLY
CON 0
FRM SPACE 4,10
*** FORM,XXX,FF.
*
* SET *BATCHIO* EQUIPMENT XXX TO HAVE FORMS CODE YY.
ENTRY FRM
RJM REE READ EST ENTRY
LDD CM+3 CHECK DEVICE TYPE
SBK 2RCP
ZJN FRM1 IF CARD PUNCH
ADC 2RCP-2RLQ
MJN FRM2 IF NOT LINE PRINTER
SHN -6
NJN FRM2 IF NOT PRINTER
FRM1 AOD CA ASSEMBLE FORMS CODE
RJM ASN
LDD AB ENTER FORMS CODE
ZJN FRM3 IF NULL
LPN 77
NJN FRM3 IF TWO CHARACTERS
FRM2 JMP KIE INCORRECT ENTRY
FRM3 LDD T7 SET UP *UTEM* PARAMETERS
SFA EST
STD CM+4
SHN -14
STD CM+3
LDN 1
STD CM+1
LDD AB
STM FRMA+4
LDD MA
CWM FRMA,CM+1
MONITOR UTEM
LJM KBR RETURN
FRMA VFD 6/1,6/12D,6/24D,42/0
PSZ SPACE 4,10
*** PRSIZE,XXX,Y.
*
* SET PAPER SIZE Y ON PRINTER XXX.
*
* NOTE - ENTRY NOT VALID FOR TYPES *LX* AND *LY*.
ENTRY PSZ ENTRY/EXIT
RJM REE READ EST ENTRY
LDD CM+3 CHECK EQUIPMENT TYPE
SBK 2RLQ CHECK FOR PRINTER
MJN FRM2 IF NOT *LQ*
SBN 1RT+1-1RQ
PJP FRM2 IF NOT PRINTER
LDN SB0S SUBFUNCTION FOR BYTE 0
STD CM+2
LDC 6777
STD CM+3 SET MASK FOR BIT 57
AOD CA
LDI CA GET PARAMETER
LMN 1RL
ZJN PRS1 IF *L*
LDD TH SET BIT 57 OF EST ENTRY
PRS1 LJM SID3 PROCESS *SEQM*
REE SPACE 4,10
** REE - READ EST ENTRY.
*
* EXIT (T7) = EST ORDINAL.
* (CM - CM+4) = EST ENTRY.
*
* USES T7, CM - CM+4.
*
* CALLS ASD.
*
* MACROS SFA.
REE SUBR ENTRY/EXIT
RJM ASD ASSEMBLE EST ORDINAL
LDD AB+4 READ EST ENTRY
STD T7
SFA EST
ADK EQDE
CRD CM
UJN REEX RETURN
SPACE 4,10
CMDEND
COMMAND (SYSTEM REQUESTS - PART 1.)
STP SPACE 4,10
*** STEP,JSN.
* STEP,JSN,XXX.
* STEP,JSN,XXX,B,V.
*
* SET MONITOR IN STEP MODE FOR THE EXISTING EJT
* ENTRY WITH THE GIVEN JSN.
* XXX = OPTIONAL FUNCTION NUMBER ON WHICH TO STEP.
* B = OPTIONAL BYTE NUMBER. IF SPECIFIED, V IS
* REQUIRED.
* V = OPTIONAL BYTE VALUE FOR BYTE B.
*
* NOTE - WHEN MAKING THE MONITOR CALL BUT WITHOUT A BYTE AND
* VALUE, BOTH (CM+3) AND (CM+4) MUST BE SET WITH THE
* FUNCTION CODE.
SPACE 4,10
*** STEP,,XXX.
* STEP,,XXX,B,V.
*
* SET MONITOR IN STEP MODE.
* XXX = OPTIONAL FUNCTION NUMBER ON WHICH TO STEP.
* B = OPTIONAL BYTE NUMBER. IF SPECIFIED, V IS
* REQUIRED.
* V = OPTIONAL BYTE VALUE FOR BYTE B.
ENTRY STP
LDC SCRL CHECK EMERGENCY STEP FLAG
CRD SH
LDD SH
LPC 1400
NJN STP1 IF EMERGENCY STEP REQUIRED / SET
RJM ASN GET JSN
LDD AB
NJN STP2 IF JSN PRESENT
STD T3
LDI CA
LMN 1R.
NJN STP3 IF FUNCTION NUMBER NEXT
STP1 JMP KIE PROCESS INCORRECT ENTRY
STP2 LDD AB+2
NJN STP1 IF JSN .GT. 4 CHARACTERS
LDN AB SET FWA OF JSN
RJM GEE GET EJT ENTRY
MJN STP1 IF EJT ENTRY NOT FOUND
ZJN STP1 IF JSN = *SYS*
STP3 LDD AB SET JSN
STM STPA
LDD AB+1
STM STPB
LDN ZERL INITIALIZE PARAMETER BLOCK
CRD CM
* LDN MSPS
* STD CM+1
ERRNZ MSPS
LDD T3 SET EJTO
STD CM+2
LDI CA CHECK NEXT SEPARATOR
LMN 1R.
STD T6
ZJN STP5 IF FUNCTION STEP
LMN 1R,&1R.
NJN STP1 IF INVALID SEPARATOR
AOD CA SKIP *,*
RJM ASD ASSEMBLE FUNCTION
LDI CA
LMN 1R.
ZJN STP4 IF END OF COMMAND
LMN 1R,&1R.
NJN STP6 IF INVALID SEPARATOR
STP4 LDD AB+4 SET FUNCTION NUMBER
STD T6
STD CM+3
STD CM+4 PRESET WITH FUNCTION NUMBER
STP5 ZJN STP8 IF NOT A FUNCTION STEP
SHN -7
STP6 NJN STP9 IF FUNCTION .GT. 177B
LDD AB+4
SBN CPUM
MJN STP7 IF NOT *CPUMTR* FUNCTION
LDD TH FUNCTION + 1000B
RAD CM+4
STP7 LDI CA
LMN 1R.
STP8 ZJN STP12 IF END OF ASSEMBLY
AOD CA
RJM ASD ASSEMBLE BYTE
LDD AB+4 SET BYTE NUMBER
PJN STP10 IF VALUE .GT. 0
STP9 JMP KIE *INCORRECT ENTRY*
STP10 SBN 5
PJN STP9 IF VALUE .GT. 4
LDD AB+4
SHN 6
ZJN STP12 IF NOT BYTE VALUE STEP
STD CM+1
AOD CA
RJM ASD
LDI CA
LMN 1R.
ZJN STP11 IF END OF COMMAND
LMN 1R,&1R.
NJN STP9 IF INCORRECT VALUE
STP11 LDD AB+4 SET BYTE VALUE
STD CM+4
STP12 MONITOR DSRM
LDC ** CHECK FOR JSN
STPA EQU *-1 (JSN)
NJN STP13 IF JSN PRESENT
LDC 2R
STP13 STM /DSD/DLSB SET JSN IN LEFT DISPLAY HEADER
LDC **
STPB EQU *-1 (JSN)
NJN STP14 IF JSN PRESENT
LDC 2R SET JSN IN LEFT DISPLAY HEADER
STP14 STM /DSD/DLSC
LDD T6
SHN -6
ZJN STP15 IF FUNCTION .LT. 100B
LDD T6
SHN 21-2
STD T6
SHN 2-21+6
ADC 2L00-2L0
STP15 ADC 2R
STM /DSD/DLSD+1
LDD T6 CHECK FUNCTION
ZJN STP16 IF NO FUNCTION
SHN 3 CONVERT
LMD T6
SCN 70
ADC 2R00-2R
STP16 ADC 2R
STM /DSD/DLSD
STP17 JMP KBR RETURN
IDL SPACE 4,10
*** IDLE.
*
* IDLE CONTROL POINTS.
ENTRY IDL
LDN 1
STD CM+1 SET OPTION COUNT
STD CM+2 DO NOT DROP PPU
LDD MA
CWM IDLA,ON
MONITOR UADM DISABLE JOB SCHEDULING
LDN JSCL
CRD CM
LDD CM
SHN 21-13
PJN STP17 IF SCHEDULER NOT ACTIVE
JMP KIC INCOMPLETE RETURN
IDLA CON LIOS DECREMENT BY ONE
CON INWL WORD ADDRESS
CON 13D*100+1 BIT ADDRESS AND FIELD WIDTH
LPT SPACE 4,10
*** TRAIN,XXX,N.
*
* DECLARE PRINT TRAIN N IS MOUNTED ON *BATCHIO* PRINTER XXX.
* N = 0 IF CDC GRAPHIC 64-CHARACTER SET.
* 1 IF CDC GRAPHIC 64-CHARACTER SET.
* 4 IF ASCII GRAPHIC 64-CHARACTER SET.
* 5 IF ASCII GRAPHIC 64-CHARACTER SET.
* 6 IF ASCII GRAPHIC 95-CHARACTER SET.
* 7 IF ASCII GRAPHIC 64-CHARACTER SET TO PRINT ON
* 595-6/596-6.
*
* NOTE - ENTRY NOT VALID FOR TYPES *LX* AND *LY*.
ENTRY LPT
RJM ASD ASSEMBLE EST ORDINAL
LDD AB+4 READ EST ENTRY
STD T7
SFA EST
ADK EQDE
CRD CM
LDD CM+3 CHECK PRINTER ENTRY
SBK 2RLQ
MJN LPT1 IF NOT LINE PRINTER
SBN 1RT+1-1RQ
MJN LPT2 IF LINE PRINTER
LPT1 JMP KIE INCORRECT ENTRY
LPT2 AOD CA ASSEMBLE TRAIN NUMBER
RJM ASD
LDD AB+4
SCN 7
NJN LPT1 IF .GT. 7
LDC 7077 SET MASK FOR TRAIN
STD CM+3
LDD AB+4 SET NEW TRAIN NUMBER
SHN 6
STD CM+4
LDN SB4S SET BYTE 4 OF EST
STD CM+2
LDD T7 SET EST ORDINAL
STD CM+1
MONITOR SEQM
JMP KBR RETURN
SPACE 4,10
CMDEND
COMMAND (SYSTEM REQUESTS - PART 2.),CMR
INI SPACE 4,10
*** INITIALIZE,OP,EQ1,EQ2,EQ3,EQ4,EQ5.
*
* INITIALIZE DEVICE.
* THIS COMMAND WILL TOGGLE *MSI* ACTIVATION TO PROCESS
* INITIALIZE REQUESTS VIA THE *K* DISPLAY.
*
* OP = PF - INITIALIZE PERMANENT FILES.
* QF - INITIALIZE INACTIVE QUEUED FILES.
* DF - INITIALIZE INACTIVE SYSTEM DAYFILE.
* AF - INITIALIZE INACTIVE ACCOUNT FILE.
* EF - INITIALIZE INACTIVE ERROR LOG FILE.
* MF - INITIALIZE INACTIVE MAINTENANCE LOG.
* AL - INITIALIZE ALL PRESERVED FILES.
* FP - FORMAT PACK.
* HT - INITIALIZE AS HALF TRACK DEVICE.
* FT - INITIALIZE AS FULL TRACK DEVICE.
* EQN = MASS STORAGE EST ORDINAL. A MAXIMUM
* OF 5 EST ORDINALS MAY BE SPECIFIED.
ENTRY INI
LDN ESTP GET EST FWA
CRD T4
RJM ASN ASSEMBLE OPTION
LDD AB+1
NJN INI2 IF OPTION .GT. 2 CHARACTERS
LDN ZERL
CRD SP
LDN SP SET ADDRESS OF FIRST EST ORDINAL
STD SR+1
LDD AB SAVE OPTION
STD SR
INI1 RJM CMS CHECK FOR MASS STORAGE EQUIPMENT
LDI CA
LMN 1R.
ZJN INI3 IF END OF COMMAND
LMN 1R,&1R.
NJN INI2 IF INCORRECT SEPARATOR
AOD SR+1
LMN SP+4+1
NJN INI1 IF .LT. 5 EQUIPMENTS
INI2 JMP KIE *INCORRECT ENTRY*
INI3 LDM IOPT+1,AB+1 SET OPTION
INI4 STD AB+3
LDN /1DS/TPSF
JMP KAR PROCESS *1DS* CALL
IOPT SPACE 4,10
* TABLE OF INITIALIZE OPTIONS.
* NOTE TABLE IS ORDER DEPENDENT.
IOPT BSS 0 TABLE OF INITIALIZE OPTIONS
LOC 0
CON 2RHT,LIHD
CON 2RFT,LIFD
NRML EQU * END OF OPTIONS REQUIRING REMOVABLE DEVICE
CON 2RFP,LFPR
NLDL EQU * END OF OPTIONS REQUIRING *LDAM* DEVICES
CON 2RAL,LIAL
CON 2RMF,LIMF
CON 2REF,LIEF
CON 2RAF,LIAF
CON 2RDF,LIDF
CON 2RQF,LIQF
CON 2RPF,LIPF
LOC *O
IOPTL EQU *-IOPT
IDF SPACE 4,10
*** IDLEFAMILY,XXX.
*
* SET/CLEAR FAMILY IDLE DOWN STATUS FOR EST ORDINAL XXX.
ENTRY IDF
RJM CME CHECK MS EQUIPMENT
LDD CM+4
SHN 3
ADN PUGL
CRD CM
ADN MDGL-PUGL
CRD AB
LDD CM+4
SHN 21-7
PJN IDF1 IF NOT FAMILY MASTER DEVICE
LDD AB
SHN 21-12
PJN IDF2 IF NOT AUXILIARY DEVICE
IDF1 JMP KIE INCORRECT ENTRY
IDF2 LDD T6 TOGGLE FAMILY IDLE DOWN STATUS
STD CM+1
LDN TFIS
STD CM+3
MONITOR SMDM
JMP KBR RETURN
IDD SPACE 4,10
*** IDLE,SUBSYSTEM.
*
* SET SUBSYSTEM IDLEDOWN VIA A *1DS* CALL.
ENTRY IDD
RJM ASN GET SUBSYSTEM NAME
LDD AB+2
NJN IDD1 IF JSN .GT. 4 CHARACTERS
LDN AB GET EJTO
RJM GEE
MJN IDD1 IF EJT ENTRY NOT FOUND
STD AB+4
ZJN IDD1 IF JSN = *SYS*
SFA EJT
ADN SCLE CHECK SERVICE CLASS
CRD SR
LDD SR
SHN -6 CHECK FOR SUBSYSTEM SERVICE CLASS
LMN SSSC
NJN IDD1 IF NOT SUBSYSTEM SERVICE CLASS
LDK /1DS/IDLF
JMP KAR PROCESS *1DS* CALL
IDD1 JMP KIE *INCORRECT ENTRY*
CME SPACE 4,10
** CME - CHECK MASS STORAGE EQUIPMENT.
*
* EXIT (A) = BYTE 0 OF EST ENTRY SHIFTED.
* (T6) = (AB+4) = EST ORDINAL.
* (CM - CM+4) = MASS STORAGE EST ENTRY.
*
* USES T1, T5 - T7, CM - CM+4.
*
* CALLS ASD.
CME SUBR ENTRY/EXIT
RJM ASD ASSEMBLE EST ORDINAL
LDN ESTP GET EST POINTERS
CRD T5
LDD AB+4 READ EST ENTRY
STD T6
SBD T5+3
PJN CME1 IF BEYOND LAST MASS STORAGE ORDINAL
SFA EST,AB+4
ADK EQDE
CRD CM
LDD CM
SHN 21-13
MJN CMEX IF MS EQUIPMENT
CME1 JMP KIE *INCORRECT ENTRY*
CMS SPACE 4,15
** CMS - CHECK FOR MASS STORAGE EQUIPMENT.
*
* ENTRY (SR) = OPTION.
* (SR+1) = ADDRESS WHERE NEXT EST ORDINAL
* IS TO BE STORED.
* (T4+3) = LAST MASS STORAGE ORDINAL + 1.
*
* EXIT ((CA)) = NEXT PARAMETER SEPARATOR.
* ((SR+1)) = PROCESSED EST ORDINAL.
*
* USES AB+1, CA, CM - CM+4.
*
* CALLS ASD.
CMS SUBR ENTRYEXIT
AOD CA SKIP*,*
RJM ASD ASSEMBLE NEXT EST ORDINAL
LDD AB
ADD AB+1
ADD AB+2
ADD AB+3
NJN CMS1 IF EST ORDINAL .GT. 7777B
LDD AB+4 READ EST ENTRY
STI SR+1 SAVE EST ORDINAL
SBD T4+3
PJN CMS1 IF ORDINAL BEYOND MASS STORAGE ORDINALS
SFA EST,AB+4
ADK EQDE
CRD CM
LDD CM
SHN 21-13
MJN CMS2 IF MS EQUIPMENT
CMS1 JMP KIE *INCORRECT ENTRY*
CMS2 SHN 13-7
PJN CMS4 IF NOT *LDAM* EQUIPMENT
SHN 10+21-10
PJN CMS3 IF NOT REMOVABLE EQUIPMENT
SHN 11
LPN 3 CHECK DEVICE STATE
LMN 3
NJN CMS5 IF EQUIPMENT NOT DOWN
LDC =C*DEVICE DOWN*
JMP KMS DISPLAY MESSAGE
CMS3 LDN NRML START AT NON-REMOVABLE EQUIPMENT OPTIONS
STD AB+1
UJN CMS5 ENTER SEARCH LOOP
CMS4 LDN NLDL START AT NON-*LDAM* OPTIONS
STD AB+1
CMS5 LDM IOPT,AB+1
LMD SR
NJN CMS6 IF OPTION NOT FOUND
LJM CMSX RETURN
CMS6 LDN 2
RAD AB+1
LMN IOPTL
ZJN CMS1 IF END OF TABLE
UJN CMS5 LOOP
SPACE 4,10
CMDEND
COMMAND (JOB CALL REQUESTS.)
IIF SPACE 4,10
*** X.CCC.
* X.CCC,XXXXXX.
*
* INITIATE A SYSTEM JOB *CCC* WITH A FIELD LENGTH OF XXXXXX
* WORDS. *CCC* MUST BE AT LEAST 3 CHARACTERS LONG AND NOT
* MORE THAN 7 CHARACTERS LONG.
ENTRY IIF
RJM ASN ASSEMBLE NAME
LDD AB+3
LPN 77
NJN IIF1 IF MORE THAN 7 CHARACTERS
LDD AB+1
NJN IIF2 IF AT LEAST 3 CHARACTERS
IIF1 JMP KIE *INCORRECT ENTRY*
IIF2 LDD MA MOVE AB - AB+4 TO SP - SP+4
CWD AB
CRD SP
AOD CA
RJM ASD ASSEMBLE FIELD LENGTH
LDD AB+3 ROUND UP FIELD LENGTH
LPN 37
SHN 14
LMD AB+4
ADN 77
SHN -6 SET FL
STD AB+3
LDN 0 SET KEYBOARD BUFFER OFFSET
STD AB+4
LDC /1DS/IJCF+/1DS/LOCK
UJN RSJ REQUEST SYSTEM JOB
DFD SPACE 4,10
*** LOAD,XXX,YY.
*
* REQUEST JOB LOAD FROM EST ORDINAL XXX WITH AN ID OF YY.
ENTRY LOD
LDN /1DS/LODF
STD T7 SAVE REQUEST
RJM ASD ASSEMBLE EST ORDINAL
LDD AB+4 SAVE NUMBER
STD T6
AOD CA ASSEMBLE ID
RJM ASD
LDD T6 SET EST ORDINAL
STD AB+3
LDD T7 SET JOB REQUEST
* UJN RSJ CALL *1DS*
RSJ SPACE 4,10
** RSJ - REQUEST SYSTEM JOB.
*
* ENTRY (A) = *1DS* FUNCTION CODE.
RSJ JMP KAR PROCESS *1DS* CALL
ISJ SPACE 4,10
*** X.NAME(CCC-CCC)
*
* INITIATE SYSTEM JOB *NAME* WITH PARAMETER CCC-CCC.
* *NAME* MUST BE NO MORE THAN 7 CHARACTERS LONG.
ENTRY ISJ
RJM ASN ASSEMBLE NAME
LDD AB+3
LPN 77
ZJN ISJ1 IF NO MORE THAN 7 CHARACTERS
JMP KIE *INCORRECT ENTRY*
ISJ1 LDD MA MOVE AB - AB+4 TO SP - SP+4
CWD AB
CRD SP
LDN ZERL
CRD AB
LDC 2*100 KEYBOARD BUFFER OFFSET
STD AB+4
LDC /1DS/ICJF+/1DS/LOCK
UJN RSJ REQUEST SYSTEM JOB
DROP SPACE 4,10
*** DROP,,PARAMETERS.
* DROP,JSN,PARAMETERS.
*
* *DROP,,PARAMETERS.* IS ONLY PASSED TO CMD IF THE
* CONSOLE IS UNLOCKED.
* *DROP,JSN,PARAMETERS.* IS PASSED DIRECTLY TO CMD.
ENTRY DRC
LDI CA CHECK FOR DROP COMMA COMMA
LMN 1R,
NJN CMD IF NOT COMMA
LDD LK
NJN CMD IF CONSOLE UNLOCKED
JMP KIE *ILLEGAL ENTRY*
CMD SPACE 4,10
*** COMMAND,CCC-CCC.
*
* SEND COMMAND TO SYSTEM TO PROCESS AS
* A CONTROL STATEMENT.
ENTRY CMD
LDC KBUF RESET KEYBOARD INDEX
STD CA
RJM ASN ASSEMBLE NAME
LDD MA
CWD AB
CRD SP
LDN 0 SET KEYBOARD BUFFER OFFSET
STD AB+4
LDC /1DS/ISCF+/1DS/LOCK
JMP KAR CALL *1DS*
ILD SPACE 4,10
*** NAME(CCC-CCC)
*
* INITIATE *L* DISPLAY WITH PARAMETERS CCC-CCC.
ENTRY ILD
LDC KBUF SET CHARACTER ADDRESS
STD CA
RJM ASN ASSEMBLE NAME
LDD MA SET PARAMETER WORD
CWD AB
CRD SP
LDN 0 SET KEYBOARD BUFFER OFFSET
STD AB+4
LDC /1DS/DSPF+/1DS/LOCK
RJM C1D CALL *1DS*
LDC ILD2 SET REENTRY ADDRESS
STM /KEYBOARD/KCRB
ILD2 LDC /1DS/DSDL
CRD CM
ADN 1
CRD AB
LDD CM
ZJN ILD4 IF *1DS* COMPLETE
ILD3 LJM CLP1 REENTER
ILD4 LDD AB
ZJN ILD4.1 IF *L* DISPLAY JOB SUBMITTED
LDC ILDA *L DISPLAY NOT AVAILABLE*
LJM KMS ISSUE KEYBOARD MESSAGE
ILD4.1 LDC ILD5 SET REENTRY ADDRESS
STM /KEYBOARD/KCRB
ILD5 LDM /COMDSYS/SYSB GET *L* DISPLAY REQUESTED FLAG
SHN -1
ZJN ILD6 IF *L* DISPLAY DRIVER IS ACTIVE
LPN 10/2
ZJN ILD3 IF *L* DISPLAY NOT REQUESTED
LDN 1RL LOAD *L* DISPLAY ON LEFT SCREEN
SHN 6
RJM /DSD/LDO LOAD *L* DISPLAY OVERLAY
ILD6 LJM KBR RETURN
ILDA DATA C*L DISPLAY NOT AVAILABLE*
SPACE 4,10
CMDEND
COMMAND (SYSTEM REQUESTS - PART 3.),CMR
AUT SPACE 4,10
*** AUTO.
*
* INITIATE ANY JOB CURRENTLY IN THE INPUT QUEUE.
ENTRY AUT
RJM CCP CLEAR CHECKPOINT BITS
LDC /1DS/LOCK+/1DS/IASF
JMP KAR CALL *1DS*
CKP SPACE 4,10
*** CHECK POINT SYSTEM.
*
* IDLE SYSTEM, ROLL OUT ALL JOBS, WRITE TABLES TO DISK.
ENTRY CKP
LDN 1 SET CHECKPOINT REQUEST
STD AB+2
STD AB+4
EXECUTE 1CK
JMP KBR RETURN
CLR SPACE 4,10
*** GO,JSN.
* PAUSE,JSN.
*
* CLEAR/SET PAUSE BIT FOR SPECIFIED JSN.
* IF JSN IS NULL, THE SYSTEM CONTROL POINT IS USED.
ENTRY CLR
RJM ASN ASSEMBLE JSN
LDD MA MOVE JSN TO PARAMETER WORD
CWD AB
CRD SP
LDN ZERL CLEAR OFFSET
CRD AB
LDM KBUF CHECK COMMAND
LMN 1RP
NJN CLR1 IF NOT *PAUSE*
AOD AB+3 SET PAUSE STATUS
CLR1 LDD SP
ZJN CLR1.1 IF NO JSN SPECIFIED
LMC 2RSY
NJN CLR2 IF JSN NOT *SYS*
LDD SP+1
LMC 100*1RS
NJN CLR2 IF JSN NOT *SYS*
STD SP
CLR1.1 LDD NC
SHN 7
ADN SNSW FETCH SENSE SWITCH WORD AT SYSTEM CP
CRD CM
STD T2
LDD CM+3 SET / CLEAR PAUSE FLAG
SCN 3
LMD AB+3
STD CM+3
LDD T2 STORE SENSE SWITCH WORD
CWD CM
ADN MS2W-SNSW CLEAR MESSAGE
CWD SP
JMP KBR RETURN
CLR2 LDN DSSL FETCH DEADSTART STATUS
CRD CM
LDD CM+4 CHECK DEADSTART IN PROGRESS
LPN 4
ZJN CLR3 IF SYSTEM OPERATIONAL
JMP KIE PROCESS INCORRECT ENTRY
CLR3 LDC /1DS/LOCK+/1DS/CLRF
JMP KAR PROCESS *1DS* CALL
DLY SPACE 4,15
*** DELAY,T1XXX,T2XXX,...TNXXX.
*
* SET SCAN VALUE FOR PARAMETER *TN*.
*
* TN DELAY
*
* CR CPU RECALL DELAY (MILLISECONDS).
* AR PP/AUTO RECALL DELAY (MILLISECONDS).
* MP MEMORY PAD FOR *RSTM* (100B WORD BLOCKS).
* JQ QFT/EJT (INPUT JOB) SCHEDULING DELAY (2**JS).
* JS JOB SCHEDULER DELAY (SECONDS).
ENTRY DLY
DLY1 LDI CA ASSEMBLE TYPE
SHN 6
LMM 1,CA
STD T1
LDC TDLY-TDLYE SET FWA DELAY PARAMETER TABLE
STD T7
DLY2 LDN TDLYE GET NEXT TABLE ENTRY
RAD T7
LDI T7
ZJN DLY3 IF END OF TABLE
LMD T1
NJN DLY2 IF NO MATCH FOR ENTRY
LDN 2 SKIP PARAMETER NAME
RAD CA
RJM ASD ASSEMBLE DIGITS
LMN 1R,
ZJN DLY4 IF *,*
LMN 1R.&1R,
ZJN DLY4 IF *.*
DLY3 JMP KIE *INCORRECT ENTRY*
DLY4 LDM 3,T7
SBD AB+4
MJN DLY3 IF .GT. MAXIMUM
LDD AB+4
SBM 4,T7
MJN DLY3 IF .LT. MINIMUM
* CHANGE PARAMETER IN CMR.
LDN ZERL
CRD CM
CRD SH
LDN 12D SET FIELD SIZE
STD SH
LDM 1,T7 SET LOW ORDER BIT OF FIELD
SHN 6
STD SH+1
LDD AB+4 SET VALUE
STD SH+4
LDD MA
CWD SH
LDN 1 SET NUMBER OF REQUESTS
STD CM+1
LDM 2,T7 SET ABSOLUTE ADDRESS OF WORD
STD CM+4
MONITOR UTEM
LDN 2 RESET RECALL CYCLE FLAG
STD CM+2
LDI T7
LMC 2RJS
ZJN DLY5 IF *JS* PARAMETER CHANGED
LMN 2RJQ&2RJS
NJN DLY6 IF NOT *JQ* ENTRY
DLY5 MONITOR RSJM
DLY6 LDI CA CHECK SEPARATOR
LMN 1R.
ZJN DLY7 IF *.*
AOD CA SKIP SEPARATOR
LJM DLY1 LOOP
DLY7 JMP KBR RETURN
TDLY SPACE 4,10
** TDLY - TABLE OF DELAY ENTRY ADDRESSES.
*
* ENTRY = *TDLYE* WORDS LONG.
*
* VFD 12/EN ENTRY
* VFD 12/LB LOW ORDER BIT OF FIELD.
* VFD 12/ADDR ABSOLUTE ADDRESS OF WORD.
* VFD 12/MAX MAXIMUM VALUE OF FIELD
* VFD 12/MIN MINIMUM VALUE OF FIELD
TDLY BSS 0
VFD 12/2RCR,12/36D,12/MSCL,12/7777,12/1
TDLYE EQU *-TDLY TABLE ENTRY LENGTH
VFD 12/2RAR,12/24D,12/MSCL,12/7777,12/1
VFD 12/2RMP,12/0,12/MSCL,12/777,12/0
VFD 12/2RJQ,12/36D,12/JSCL,12/12D,12/0
VFD 12/2RJS,12/24D,12/JSCL,12/7777,12/1
CON 0 END OF TABLE
MAI SPACE 4,10
*** MAINTENANCE.
*
* INITIATE ANY JOBS CURRENTLY IN THE INPUT QUEUE,
* INITIATE THE CORRECT SET OF MAINTENENACE JOBS FOR
* THIS MAINFRAME.
ENTRY MAI
RJM CCP CLEAR CHECKPOINT BITS
LDC /1DS/LOCK+/1DS/ITJF
JMP KAR CALL *1DS*
CCP SPACE 4,10
*** CCP - CLEAR CHECKPOINT BITS.
*
* EXIT CHECKPOINT BITS IN *EICB* CLEARED.
* TO *KIE* IF CHECKPOINT IN PROGRESS FLAG SET.
*
* USES CN - CN+4.
*
* CALLS FDP.
CCP SUBR ENTRY/EXIT
LDC INWL CHECK CHECKPOINT IN PROGRESS FLAG
CRD CN
LDD CN+4
LPN 20
ZJN CCP1 IF NO CHECKPOINT IN PROGRESS
JMP KIE *INCORRECT ENTRY*
CCP1 RJM FDP FETCH *EICB* POINTER
ZJN CCPX IF BLOCK NOT PRESENT
CRD CN
LDD CN
SCN 14
STD CN
RJM FDP UPDATE STATUS
CWD CN
UJN CCPX RETURN
SCH SPACE 4,10
*** SCHEDULE.
*
* ENABLE THE SCHEDULING OF JOBS IN THE INPUT QUEUE.
ENTRY SCH
RJM CCP CLEAR CHECKPOINT BITS
LDC /1DS/LOCK+/1DS/SCHF
JMP KAR CALL *1DS*
SPACE 4,10
CMDEND
COMMAND (SYSTEM MESSAGE REQUESTS.)
CJM SPACE 4,10
*** CHECK CFO JSN EQUAL *RDF* MESSAGE JSN AND PROCESS
* CFO COMMAND.
*
*
* CLEAR OPERATOR DISPLAY MESSAGE BUFFER IF JSN IN
* DISPLAY BUFFER IS EQUAL TO JSN IN CFO MESSAGE.
ENTRY CJM
LDC LDSP
CRD SR
LDD SR+2
SHN 14
LMD SR+3
SBN LODS
CRD CM
LDD CM+1
ZJP CJM3 IF NO MESSAGE
RJM ASN ASSEMBLE JSN
LDD MA SAVE JSN
CWD AB
CRD SP
AOD CA CHECK FOR MESSAGE
RJM ASN
LDD AB
NJN CJM1 IF A MESSAGE WAS ENTERED
JMP KIE *INCORRECT ENTRY*
CJM1 LDD SP+1 CHECK FOR THREE CHARACTER JSN
LPN 77
NJN CJM2 IF A FOURTH CHARACTER IS PRESENT
LDN 1R
RAD SP+1
CJM2 LDD CM+1 CHECK IF *CFO* JSN = *OPMSG* JSN
SBD SP+1
NJN CJM3 IF JSN NOT EQUAL
LDD CM
SBD SP
NJN CJM3 IF JSNS NOT EQUAL
LDN ZERL CLEAR OPERATOR MESSAGE BUFFER
CRD CM
LDN 1
STD CM
LDD SR+2
SHN 14
LMD SR+3
SBN LODS
CWD CM
LDN 1 CLEAR BIT IN *OPRL* WORD
STD CM+1
LDC OPRL
STD CM+4
LDD MA
CWM LOGC,ON
MONITOR UTEM
CJM3 LDN 0 SET FIELD LENGTH
STD AB+4
STD AB+3 SET OF SET
LDC /1DS/ISCF+/1DS/LOCK
JMP KAR CALL 1DS
LOG SPACE 4,10
*** LOG,NN.
*
*
* CLEAR OPERATOR MESSAGE IN LOW CORE WORD *OPRL* AND LOG
* IN ERROR LOG DAYFILE.
ENTRY LOG ENTRY
RJM ASD ASSEMBLE MESSAGE NUMBER
LDD AB
ADD AB+1
ADD AB+2
ADD AB+3
ZJN LOG2 IF VALUE .LE. 7777B
LOG1 JMP KIE *INCORRECT ENTRY*
LOG2 LDD AB+4
SBN 60D
PJN LOG1 IF BIT NUMBER .GT. 59D
LDD AB+4 SET BIT NUMBER IN REQUEST
SHN 6
STM LOGB+1
STM LOGC+1
LDN ZERL
CRD CM
LDN 2 SET NUMBER OF REQUESTS
STD CM+1
STD T7
LDC OPRL SET WORD ADDRESS
STD CM+4
LDD MA
CWM LOGB,T7
MONITOR UTEM
LDD CM+1
NJN LOG1 IF OPERATION NOT COMPLETE
LDD AB+4
SBN ELAE-1
ZJN LOG4 IF *ERRLOG ALERT*
LOG3 JMP KBR RETURN
LOG4 LDK ESTP INITIALIZE FOR EST SEARCH
CRD AB
LOG5 SOD AB+3 DECREMENT EST ORDINAL
ZJN LOG3 IF END OF MASS STORAGE DEVICES
SFA EST READ EST ENTRY
ADK EQDE
CRD SH
LDD SH
SHN 21-13
PJN LOG5 IF NOT MASS STORAGE DEVICE
LDD SH+4 SET MST ADDRESS
SHN 3
STD CM+4
SHN -14
STD CM+3
LDN 2 SET NUMBER OF REQUESTS
STD CM+1
LDD MA
CWM LOGD,T7
MONITOR UTEM CLEAR UNRECOVERED ERROR COUNT
LDD SH+4 SET MST ADDRESS
SHN 3
STD CM+4
SHN -14
STD CM+3
LDN 2 SET NUMBER OF REQUESTS
STD CM+1
LDD MA
CWM LOGE,T7
MONITOR UTEM CLEAR RECOVERED ERROR COUNT
LJM LOG5 PROCESS NEXT EST ENTRY
* *UTEM* PARAMETER WORDS.
LOGB VFD 1/1,5/0,6/1,6/0,42/1 VERIFY BIT IS CURRENTLY SET
LOGC VFD 1/0,5/0,6/1,6/59D,42/0 CLEAR BIT
LOGD VFD 1/1,5/CTLL,6/1,6/11D,42/1 VERIFY PROCESSED BIT SET
VFD 1/0,5/CTLL,6/12D,6/0,42/0 CLEAR ERROR COUNT
LOGE VFD 1/1,5/CTLL,6/1,6/23D,42/1 VERIFY PROCESSED BIT SET
VFD 1/0,5/CTLL,6/12D,6/12D,42/0 CLEAR ERROR COUNT
SPACE 4,10
CMDEND
COMMAND (ENABLE SYNTAX TABLE - CHARACTERS A - P.),CMR
EAP SPACE 4,10
** ENABLE SYNTAX TABLE - CHARACTERS A - P.
* NOTE - CHECK THE SYSTEM SYNTAX TABLE ENTRY FOR *ENABLE,A-P*
* IF ANY NEW *ENABLE* COMMANDS ARE ADDED TO THIS TABLE.
ENTRY EAP
EAC ENTER (ENABLE,ACS TAPE PF STAGING.),,SDF
EAR ENTER (ENABLE,AUTORESTART.),,SDF
ECS ENTER (ENABLE,CARTRIDGE PF STAGING.),,SDF
EDP ENTER (ENABLE,DDP ROLLOUT PATH.),,SDF
ENG ENTER (ENABLE,ENGR.),SLOCK,SDF,ERL
EFP ENTER (ENABLE,FLEXIBLE PARTITIONS.),,SDF
EFF ENTER (ENABLE,FORCED FORMATTING.),LOCK,SDF
EAL ENTER (ENABLE,LOGGING.),,SDF
EMA ENTER (ENABLE,MASTER MSE.),,SDF
EMM ENTER (ENABLE,MASTER MSS.),,SDF
EMV ENTER (ENABLE,MS VALIDATION.),,SDF
EPF ENTER (ENABLE,PF VALIDATION.),,SDF
EPA ENTER (ENABLE,PRIVILEGED ANALYST MODE.),LOCK,SDF
EPR ENTER (ENABLE,PRIVILEGED RDF.),,SDF
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (ENABLE SYNTAX TABLE - CHARACTERS Q - Z.),CMR
EQZ SPACE 4,10
** ENABLE SYNTAX TABLE - CHARACTERS Q - Z.
ENTRY EQZ
ERP ENTER (ENABLE,REMOVABLE PACKS.),,SDF
ERR ENTER (ENABLE,RESIDENT RDF.),,SDF
ESU ENTER (ENABLE,SECONDARY USER COMMANDS.),LOCK,SDF
ESD ENTER (ENABLE,SPINDOWN.),,SDF
ESY ENTER (ENABLE,SYSTEM DEBUG.),LOCK,SDF,ERL
ETS ENTER (ENABLE,TAPE PF STAGING.),,SDF
EUE ENTER (ENABLE,USER EXTENDED MEMORY.),,SDF
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (DISABLE SYNTAX TABLE - CHARACTERS A - P.),CMR
DAP SPACE 4,10
** DISABLE SYNTAX TABLE - CHARACTERS A - P.
ENTRY DAP
EAC ENTER (DISABLE,ACS TAPE PF STAGING.),,SDF
EAR ENTER (DISABLE,AUTORESTART.),,SDF
ECS ENTER (DISABLE,CARTRIDGE PF STAGING.),,SDF
EDP ENTER (DISABLE,DDP ROLLOUT PATH.),,SDF
ENG ENTER (DISABLE,ENGR.),LOCK,SDF,ERL
EFP ENTER (DISABLE,FLEXIBLE PARTITIONS.),,SDF
EFF ENTER (DISABLE,FORCED FORMATTING.),LOCK,SDF
EAL ENTER (DISABLE,LOGGING.),,SDF
EMA ENTER (DISABLE,MASTER MSE.),,SDF
EMM ENTER (DISABLE,MASTER MSS.),,SDF
EMV ENTER (DISABLE,MS VALIDATION.),,SDF
EPF ENTER (DISABLE,PF VALIDATION.),,SDF
EPA ENTER (DISABLE,PRIVILEGED ANALYST MODE.),LOCK,SDF
EPR ENTER (DISABLE,PRIVILEGED RDF.),,SDF
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (DISABLE SYNTAX TABLE - CHARACTERS Q - Z.),CMR
DQZ SPACE 4,10
** DISABLE SYNTAX TABLE - CHARACTERS Q - Z.
ENTRY DQZ
ERP ENTER (DISABLE,REMOVABLE PACKS.),,SDF
ERR ENTER (DISABLE,RESIDENT RDF.),,SDF
ESU ENTER (DISABLE,SECONDARY USER COMMANDS.),LOCK,SDF
ESD ENTER (DISABLE,SPINDOWN.),,SDF
ESY ENTER (DISABLE,SYSTEM DEBUG.),LOCK,SDF,ERL
ETS ENTER (DISABLE,TAPE PF STAGING.),,SDF
EUE ENTER (DISABLE,USER EXTENDED MEMORY.),,SDF
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (ENABLE/DISABLE SYSTEM ATTRIBUTE REQUESTS.)
ESB SPACE 4,10
** ESB - ENTER STATUS BIT.
*
* ENTRY (A) = 6/BYTE,12/BITS.
* WHERE BYTE = BYTE NUMBER IN *SSTL*.
* BITS = BIT TO CHANGE.
*
*
* USES T1, T2, CM - CM+4, CN - CN+4.
*
* CALLS FDP.
ESB STD T2 SET BIT
SHN -14 SET BYTE
ADN CM
STD T1
LCN 0 SET MASK
LMD T2
STM ESBA
LDM KBUF CHECK LEADING CHARACTER
LMN 1RE
NJN ESB1 IF NOT *E*
STD T2 CLEAR BITS
ESB1 LDN SSTL READ STATUS WORD
CRD CM
LDI T1 MASK BYTE
LPC *
ESBA EQU *-1
LMD T2
STI T1
LDN SSTL STORE STATUS WORD
CWD CM
LDD CM+3 SAVE ENGINEERING STATUS
STD T1
RJM FDP
ZJN ESB3 IF NO *EICB*
CRD CN
LDD CN UPDATE ENGINEERING STATUS
LPC 5777
STD CN
LDD T1
SHN 21-2
MJN ESB2 IF *ENGR* DISABLED
LDC 2000
RAD CN
ESB2 RJM FDP
CWD CN
ESB3 JMP KBR RETURN
EAC SPACE 4,10
*** ENABLE,ACS TAPE PF STAGING.
* DISABLE,ACS TAPE PF STAGING.
*
* ENABLE/DISABLE STAGING OF PERMANENT FILES FROM ACS TAPE.
ENTRY EAC
LDC 11000
JMP ESB ENTER STATUS BIT
EAR SPACE 4,10
*** ENABLE,AUTORESTART.
* DISABLE,AUTORESTART.
*
* ENABLE/DISABLE AUTORESTART.
ENTRY EAR ENTRY
LDC 4000
JMP ESB ENTER STATUS BIT
ECS SPACE 4,10
*** ENABLE,CARTRIDGE PF STAGING.
* DISABLE,CARTRIDGE PF STAGING.
*
* ENABLE/DISABLE STAGING OF *MSS*/*MSE* RESIDENT PFS.
ENTRY ECS
LDC 100
JMP ESB ENTER STATUS BIT
EDP SPACE 4,10
*** ENABLE,DDP ROLLOUT PATH.
* DISABLE,DDP ROLLOUT PATH.
*
* ENABLE/DISABLE DDP ROLLOUT PATH.
ENTRY EDP ENTRY
LDC 31000
JMP ESB ENTER STATUS BIT
ENG SPACE 4,10
*** ENABLE,ENGR.
* DISABLE,ENGR.
*
* ENABLE/DISABLE ENGINEERING MODE.
ENTRY ENG ENTRY
LDC 30004
JMP ESB ENTER STATUS BIT
EFP SPACE 4,10
*** ENABLE,FLEXIBLE PARTITIONS.
* DISABLE,FLEXIBLE PARTITIONS.
*
* ENABLE/DISABLE VIOLATION OF MEMORY USAGE SERVICE CLASS
* CONSTRAINTS IN THE JOB SCHEDULER.
ENTRY EFP
LDC 32000
JMP ESB ENTER STATUS BIT
EFF SPACE 4,10
*** ENABLE,FORCED FORMATTING.
* DISABLE,FORCED FORMATTING.
*
* ENABLE/DISABLE FORCED FORMATTING OF 583X DEVICES.
ENTRY EFF
LDC 12000
JMP ESB ENTER STATUS BIT
EAL SPACE 4,10
*** ENABLE,LOGGING.
* DISABLE,LOGGING.
*
* ENABLE/DISABLE LOGGING OF ANALYST DAYFILE MESSAGES.
ENTRY EAL
LDC 30020
JMP ESB ENTER STATUS BIT
EMA SPACE 4,10
*** ENABLE,MASTER MSE.
* DISABLE,MASTER MSE.
*
* ENABLE/DISABLE *MSE* EXECUTIVE MASTER MODE.
ENTRY EMA
LDN 2
JMP ESB ENTER STATUS BIT
EMM SPACE 4,10
*** ENABLE,MASTER MSS.
* DISABLE,MASTER MSS.
*
* ENABLE/DISABLE *MSSEXEC* MASTER MODE.
ENTRY EMM
LDC 200
JMP ESB ENTER STATUS BIT
EMV SPACE 4,10
*** ENABLE,MS VALIDATION.
* DISABLE,MS VALIDATION.
*
* ENABLE/DISABLE MS VALIDATION.
ENTRY EMV
LDN SSTL CHECK SYSTEM STATUS
CRD CM
LDD CM
LPN 4
ZJN EMV1 IF ALREADY PROCESSING ENABLE MS VALIDATION
JMP KIE *INCORRECT ENTRY*
EMV1 LDN 10
JMP ESB
EPA SPACE 4,10
*** ENABLE,PRIVILEGED ANALYST MODE.
* DISABLE,PRIVILEGED ANALYST MODE.
*
* ENABLE/DISABLE PRIVILEGED ANALYST MODE.
ENTRY EPA
LDD SF
NJN EPA1 IF SECURED SYSTEM
LDC 30100
JMP ESB ENTER STATUS BIT
EPA1 JMP KIE INCORRECT ENTRY
EPF SPACE 4,10
*** ENABLE,PF VALIDATION.
* DISABLE,PF VALIDATION.
*
* ENABLE/DISABLE PRESERVED FILE VALIDATION.
ENTRY EPF
LDN 20
JMP ESB ENTER STATUS BIT
EPR SPACE 4,10
*** ENABLE,PRIVILEGED RDF.
* DISABLE,PRIVILEGED RDF.
*
* ENABLE/DISABLE PRIVILEGED RDF ALLOWS CPM
* TO SET THE *SHELL* PROGRAM CONTROLS.
ENTRY EPR
LDC 30200
JMP ESB ENTER STATUS
ERP SPACE 4,10
*** ENABLE,REMOVABLE PACKS.
* DISABLE,REMOVABLE PACKS.
*
* ENABLE/DISABLE LABEL CHECKING FOR REMOVABLE DEVICES.
ENTRY ERP
LDC 10100
JMP ESB ENTER STATUS BIT
ERR SPACE 4,10
*** ENABLE,RESIDENT RDF.
* DISABLE,RESIDENT RDF.
*
* ENABLE/DISABLE RESIDENT RDF WILL CONTROL
* HOW LONG THE SUBSYSTEM WILL STAY ACTIVE
* WAITING FOR A USER TO LOGIN.
ENTRY ERR
LDC 30400
JMP ESB ENTER STATUS
ESU SPACE 4,10
*** ENABLE,SECONDARY USER CARDS.
* DISABLE,SECONDARY USER CARDS.
*
* ENABLE/DISABLE ALLOWING SECONDARY USER STATEMENTS.
ENTRY ESU
LDD SF
NJN ESU1 IF SECURE SYSTEM
LDC 10020
JMP ESB ENTER STATUS BIT
ESU1 JMP KIE INCORRECT ENTRY
ESD SPACE 4,10
*** ENABLE,SPINDOWN.
* DISABLE,SPINDOWN.
*
* ENABLE/DISABLE SPINDOWN OF ISMD DRIVES AFTER A
* *CHECKPOINT,SYSTEM* COMMAND IS ENTERED BY THE OPERATOR.
ENTRY ESD ENTRY
LDN 1
JMP ESB ENTER STATUS BIT
ESY SPACE 4,10
*** ENABLE,SYSTEM DEBUG.
* DISABLE,SYSTEM DEBUG.
*
* ENABLE/DISABLE SYSTEM DEBUG WILL CONTROL WHETHER *CHGM*
* WILL HALT THE ISSUING PP OR ALLOW IT TO CONTINUE.
ENTRY ESY ENTRY
LDC 30002
JMP ESB ENTER STATUS BIT
ETS SPACE 4,10
*** ENABLE,TAPE PF STAGING.
* DISABLE,TAPE PF STAGING.
*
* ENABLE/DISABLE STAGING OF PERMANENT FILES FROM NON-ACS TAPE.
ENTRY ETS
LDC 10200
JMP ESB ENTER STATUS BIT
EUE SPACE 4,10
*** ENABLE,USER ECS.
* DISABLE,USER ECS.
*
* ENABLE/DISABLE USER ECS.
ENTRY EUE
LDN 40
JMP ESB ENTER STATUS BIT
SPACE 4,10
CMDEND
COMMAND (JOB CONTROL REQUESTS - DEVICES.)
AJF SPACE 4,10
*** MSAL,Z=N1,N2....
*
* WHERE Z = S FOR SECONDARY ROLLOUT FILES.
* B FOR LGO FILES.
* L FOR LOCAL FILES.
* P FOR PRIMARY FILES.
* D FOR DAYFILE FILES.
* R FOR ROLLOUT FILES.
* O FOR OUTPUT FILES.
* I FOR INPUT FILES.
* T FOR TEMP FILES.
* AND N1,N2... IS A LIST OF EQUIPMENTS ON WHICH
* TO TOGGLE THE FILE TYPE SPECIFIED.
AJF4 JMP KIE *INCORRECT ENTRY*
ENTRY AJF
LDN MXRS SET INDEX FOR TABLE SEARCH
STD T6
AJF1 SOD T6 UPDATE INDEX
LDM AJFB,T6 GET TABLE ENTRY
LMM KBUF+5 COMPARE TO KEYBOARD ENTRY
NJN AJF1 IF NO MATCH
LDC KBUF+6 SET KEYBOARD INDEX
AJF2 STD CA
LDD T6 SET BIT TO SET
ADD TH SHNI
STM AJFA
AJF3 AOD CA UPDATE KEYBOARD INDEX
RJM ASD ASSEMBLE NEXT EST ORDINAL
LDD AB+4 CHECK FOR VALID *MSAL* EQUIPMENT
STD T4
SBN 47D+1
PJN AJF4 IF INCORRECT REQUEST
AJF3.1 SFA EST,AB+4
ADK EQDE
CRD CM READ EST ENTRY
LDD CM
SHN -6
LPN 44
LMN 40
NJP AJF4 IF NOT MASS STORAGE AND NON-REMOVABLE
LDD CM SAVE BYTE ZERO OF THE EST ENTRY
STD T3
LDD CM+4 GET MST ADDRESS
SHN 3
ADN DILL READ MST WORD DILL
CRD SR
LDN 1
AJFA SHN ** SHIFT TO CORRECT BIT
LMD SR TOGGLE SELECTED FILE TYPE BIT
STD SR
LDD CM+4
SHN 3
ADN DILL
CWD SR
RJM TMB TOGGLE *MSAL* BIT
LDD T6
LMK TMPS
NJN AFJ3.2 IF NOT TEMP SELECTION
LDD T3
SHN 21-11
MJN AFJ3.3 IF SHARED DEVICE
LDN TNDS SET TEMP-NONSHARED
STD T6
ERRNZ TMPS CODE DEPENDS ON VALUE
RAM AJFA
LDD T4
STD AB+4
LJM AJF3.1 LOOP TO PROCESS TEMP-NONSHARED
AFJ3.2 LMN TNDS&TMPS
NJN AFJ3.3 IF NOT TEMP-NONSHARED SELECTION
* LDN TMPS RESET TO TEMP
ERRNZ TMPS CODE DEPENDS ON VALUE
STD T6
LCN TNDS RESET SHIFT COUNT
RAM AJFA
AFJ3.3 LDI CA GET SEPARATOR CHARACTER
LMN 1R,
ZJP AJF3 IF COMMA
JMP KBR NORMAL KEYBOARD RETURN
AJFB BSS 0
LOC 0
TMPS CON 1RT TEMP FILES
INPS CON 1RI INPUT FILES
OUTS CON 1RO OUTPUT FILES
ROLS CON 1RR ROLLOUT FILES
UDFS CON 1RD DAYFILES
PRIS CON 1RP PRIMARY FILES
LCLS CON 1RL LOCAL FILES
LGOS CON 1RB LGO FILES
SRSS CON 1RS SECONDARY ROLLOUT FILES
LOC *O
TMB SPACE 4,10
** TMB - TOGGLE *MSAL* BITS.
*
* ENTRY (T6) = ALLOCATION INDEX.
* (AB+4) = EST ORDINAL.
*
* USES T0, AB - AB+4, CM - CM+4.
TMB SUBR ENTRY/EXIT
LDN AB SET BYTE POINTER
STD T0
TMB1 AOD T0
LCN 12D DIVIDE BY 12
RAD AB+4
PJN TMB1 IF NOT END OF DIVISION
LMC 777777-SHNI
SBN 1
STM TMBA
LDC MSAP READ ALLOCATION AREA ADDRESS
CRD CM
LDD CM
SHN 14
ADD CM+1
ADD T6
CRD AB
LDN 1 TOGGLE BIT
TMBA SHN **
LMI T0
STI T0
LDD CM WRITE ALLOCATION WORD
SHN 14
ADD CM+1
ADD T6
CWD AB
CWD AB INSURE *CPUMTR* *RTCM* DOES NOT OVERWRITE
LJM TMBX RETURN
CPTT SPACE 4,10
*** CPTT=NNNN.
*
* SET CPU TRANSFER THRESHOLD FOR INDIRECT FILES.
ENTRY CTT
RJM ASD ASSEMBLE DIGITS
LDD AB DETERMINE IF VALUE .LE. 7777B
ADD AB+1
ADD AB+2
ADD AB+3
ZJN CPT1 IF THRESHOLD .LE. 7777B
JMP KIE *INCORRECT ENTRY*
CPT1 LDK PFNL PERMANENT FILE PARAMETER WORD
CRD CM
LDD AB+4 *CPTT* VALUE
STD CM+4
LDK PFNL
CWD CM
JMP KBR RETURN
SET SPACE 4,10
*** SET,ABCD.
*
* SET LEFT SCREEN TABLE TO DISPLAYS A, B, C, AND D.
* THE DISPLAYS CAN THEN BE TOGGLED USING THE *RIGHT
* BLANK* KEY.
ENTRY SET
LDN 0 INITIALIZE INDEX
STD T1
SET1 LDM KBUF+4,T1 CHECK CHARACTER
LMN 1R.
ZJN SET2 IF *.*
LMN 1R. ENTER CHARACTER
STM TLSD,T1
AOD T1 ADVANCE INDEX
UJN SET1 LOOP
SET2 JMP KBR RETURN
TMP SPACE 4,10
*** TEMP=N1,N2....
*
* WHERE N1,N2.... IS A LIST OF EQUIPMENTS ON WHICH
* TO TOGGLE THE TEMPORARY FILE TYPE.
ENTRY TMP
LDN TMPS GET BIT POSITION FOR TEMP
STD T6
LDC KBUF+4 SET KEYBOARD INDEX
LJM AJF2 PROCESS *TEMP* COMMAND
SRS SPACE 4,10
*** SRST=NNNN.
*
* SET SECONDARY ROLLOUT SECTOR THRESHOLD TO NNNN SECTORS.
ENTRY SRS
LDC KBUF+5 SET KEYBOARD INDEX
STD CA
RJM ASD ASSEMBLE DIGITS
LDD AB DETERMINE IF VALUE .LE. 7777B
ADD AB+1
ADD AB+2
ADD AB+3
ZJN SRS1 IF THRESHOLD .LE. 7777B
JMP KIE *INCORRECT ENTRY*
SRS1 LDN IPRL INSTALLATION PARAMETER WORD
CRD CM
LDD AB+4 *SRST* VALUE
STD CM+1
LDN IPRL
CWD CM
JMP KBR RETURN
SPACE 4,10
CMDEND
COMMAND (JOB CONTROL REQUESTS - QUEUE/SERVICE.)
QUE SPACE 4,10
*** QUEUE,SC,OT,ILXXXX,IPXXXX,LPXXXX,UPXXXX,WFXXXX.
*
* SET QUEUE PARAMETERS FOR QUEUE *QT* OF SERVICE
* CLASS *SC*.
*
* WHERE -
* QT = QUEUE TYPE.
* IN = INPUT.
* EX = EXECUTING.
* OT = OUTPUT.
*
* ILXXXX = LOWER BOUND PRIORITY USED FOR INITIAL
* SLICE OF JOB (ONLY FOR EXECUTING JOBS).
* IPXXXX = INITIAL SCHEDULING PRIORITY (ONLY FOR
* EXECUTING JOBS).
* LPXXXX = LOWEST PRIORITY AT WHICH A FILE OR JOB
* CAN ENTER THE SPECIFIED QUEUE.
* UPXXXX = UPPER PRIORITY A JOB OR QUEUE FILE
* CAN REACH IN THE SPECIFIED QUEUE.
* WFXXXX = WEIGHTING FACTOR FOR QUEUE PRIORITY
* CALCULATION (WF IS A POWER OF 2, RANGING
* FROM 0 TO 40000).
ENTRY QUE
LDM 2,CA CHECK SEPARATORS
LMN 1R,
NJN QUE1 IF NOT *,*
LDM 5,CA
LMN 1R,
ZJN QUE2 IF *,* PRESENT
QUE1 JMP KIE *INCORRECT ENTRY*
QUE2 LDC TNSC SEARCH FOR SERVICE CLASS
RJM SPT
STD T6 SET SERVICE CLASS
LDN 3 SKIP SERVICE CLASS
RAD CA
LDC TQUT SEARCH FOR QUEUE TYPE
RJM SPT
STD T7 SAVE QUEUE TYPE
STD SP
LDD T6 GET JOB CONTROL AREA FWA FOR SERVICE CLASS
RJM RJC
ZJN QUE1 IF NO JCB FOR SPECIFIED SERVICE CLASS
RAD T7 SET WORD ADDRESS
CRD CM
SHN -14
STD T6
LDN 2 SKIP QUEUE TYPE
RAD CA
LDN 1 INDICATE NOT END OF PARAMETERS
STD T5
QUE3 AOD CA SKIP SEPARATOR
LDC TQPN SEARCH PARAMETER TABLE
RJM SPT
ADN CM SET BYTE ADDRESS
STD T4
LDN 2 SKIP PARAMETER NAME
RAD CA
RJM AOD CONVERT DIGITS
STI T4
LJM QUEA-CM,T4 CHECK PARAMETER
QUEA UJN QUE4 ILXXXX
UJN QUE8 LPXXXX
UJN QUE8 UPXXXX
UJN QUE6 WFXXXX
UJN QUE4 IPXXXX
QUE4 LDD SP CHECK QUEUE TYPE
LMN TQUTA-TQUT
ZJN QUE8 IF EXECUTING JOB
QUE5 JMP KIE *INCORRECT ENTRY*
QUE6 ZJN QUE5 IF NULL WEIGHTING FACTOR
SBK MXWF+1
PJN QUE5 IF WEIGHTING FACTOR TOO LARGE
LCN 0
STI T4
QUE7 AOI T4 ADVANCE SHIFT COUNT
LDD AB+4
SHN 21
STD AB+4
PJN QUE7 IF BIT NOT SET
LDD AB+4
NJN QUE5 IF WEIGHTING FACTOR NOT POWER OF 2
QUE8 LDD T5
ZJN QUE9 IF END OF PARAMETERS
LJM QUE3 LOOP
QUE9 LDD CM+1 CHECK AGING PARAMETERS
SBD CM+2
PJN QUE5 IF LOWER BOUND .GE. UPPER BOUND
LDD T6 STORE QUEUE CONTROL
SHN 14
ADD T7
CWD CM
JMP KBR RETURN
TNSC SPACE 4,10
** TNSC - TABLE OF TWO-CHARACTER SERVICE CLASS TYPES.
LIST D,G
TNSC DATA H+"NMSC"+
LIST *
CON 0 END OF TABLE
SER SPACE 4,25
*** SERVICE,SC,P1XXXX,P2XXXX,...,PNXXXX.
*
* SET SERVICE LIMITS FOR JOB SERVICE CLASS *SC*.
*
* CT CONTROL POINT TIME SLICE (SECONDS).
* CM CM TIME SLICE (SECONDS).
* NJ MAXIMUM NUMBER OF JOBS.
* TD TIMEOUT DELAY.
* CP CONTROL POINT TIME SLICE PRIORITY.
* TP BASE PRIORITY FOR SCHEDULABLE ON-LINE
* INTERACTIVE JOBS.
* FL MAXIMUM FL/100B OF ANY JOB.
* AM MAXIMUM FL/100B FOR ALL JOBS.
* EC MAXIMUM FLE/1000B OF ANY JOB.
* EM MAXIMUM FLE/1000B FOR ALL JOBS.
* DT SERVICE CLASS TO ASSIGN TO JOB ON A DETACH.
* PR CPU PRIORITY.
* IT SYSTEM I/O CPU THRESHOLD.
* SE CPU SLICE EXTENSION.
* RS RECALL CPU SLICE.
* US UNEXTENDED CPU SLICE.
*
* THE FOLLOWING ARE INDICES INTO TABLES OF LIMIT VALUES
* DEFINED IN *COMSPFM*.
* FC NUMBER OF FILES IN CATALOG (0-7).
* CS CUMULATIVE SIZE OF INDIRECT ACCESS FILES (0-7).
* FS INDIVIDUAL SIZE OF INDIRECT ACCESS FILES (0-7).
* DS INDIVIDUAL SIZE OF INDIRECT ACCESS FILES (0-7).
ENTRY SER
LDM 2,CA CHECK SEPARATOR
LMN 1R,
ZJN SER2 IF *,*
SER1 JMP KIE *INCORRECT ENTRY*
SER2 LDC TNSC SEARCH FOR SERVICE CLASS
RJM SPT
STD AB+3 SET SERVICE CLASS FOR *1DS*
SBN MXJC
PJN SER1 IF NO JCB FOR SPECIFIED SERVICE CLASS
LDD CA SAVE BUFFER POINTER FOR RETRY
SBK KBUF
STD AB+4
LDC /1DS/SERF+/1DS/LOCK SET FUNCTION CODE
RJM C1D PROCESS FUNCTION
LDC SER3 SET REENTRY ADDRESS
STM /KEYBOARD/KCRB
SER3 LDC /1DS/DSDL
CRD CM
LDD CM
ZJN SER4 IF PROCESSING COMPLETE
LJM CLP1 RETRY
SER4 LDC /1DS/DSDL+1 CHECK FOR ERROR
CRD CM
LDD CM
NJP SER1 IF ERROR
LJM KBR RETURN
TQPN SPACE 4,10
** TQPN - TABLE OF *QUEUE* PARAMETERS.
*
* NOTE THE INDEX OF AN ENTRY IN *TQPN* IS THE
* BYTE NUMBER OF WHERE THE VALUE WILL BE
* STORED IN THE JOB CONTROL AREA WORD.
TQPN BSS 0
LOC 0
CON 2RIL LOWER BOUND PRIORITY
CON 2RLP LOWER PRIORITY RANGE
CON 2RUP UPPER PRIORITY RANGE
CON 2RWF WEIGHTING FACTOR
CON 2RIP INITIAL SCHEDULING PRIORITY
LOC *O
CON 0
AOD SPACE 4,10
** AOD - ASSEMBLE OCTAL DIGITS.
*
* ENTRY (CA) = ADDRESS OF NEXT CHARACTER.
*
* EXIT (A) = (AB+4) = ASSEMBLED VALUE.
* (T5) = 0 IF SEPARATOR CHARACTER = *.*.
*
* ERROR TO *KIE* IF INCORRECT SEPARATOR OR VALUE .GT. 7777.
*
* CALLS ASD.
AOD2 LDD AB CHECK ASSEMBLY
ADD AB+1
ADD AB+2
ADD AB+3
NJN AOD1 IF VALUE .GT. 7777
LDD AB+4
AOD SUBR ENTRY/EXIT
RJM ASD ASSEMBLE DIGITS
LMN 1R,
ZJN AOD2 IF SEPARATOR = *,*
LMN 1R.&1R,
STD T5
ZJN AOD2 IF SEPARATOR = *.*
AOD1 JMP KIE *INCORRECT ENTRY*
SPT SPACE 4,10
** SPT - SEARCH PARAMETER TABLE.
*
* ENTRY (A) = FWA OF PARAMETER TABLE.
* (CA) = CHARACTER ADDRESS.
*
* EXIT (A) = INDEX OF ENTRY FOUND.
*
* USES T1, T2, T3.
SPT2 LDD T2 RETURN WITH INDEX
SBD T3
SPT SUBR ENTRY/EXIT
STD T3 SET TABLE FWA
STD T2
LDI CA ASSEMBLE PARAMETER NAME
SHN 6
LMM 1,CA
STD T1
LDI T2
SPT1 LMD T1
ZJN SPT2 IF MATCH FOUND
AOD T2 ADVANCE TABLE
LDI T2
NJN SPT1 IF NOT END OF TABLE
JMP KIE *INCORRECT ENTRY*
TQUT SPACE 4,10
** TQUT - TABLE OF QUEUE TYPES.
TQUT CON 2RIN
TQUTA CON 2REX
CON 2ROT
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (DISPLAY CHANGE REQUESTS.),CMR
RSA SPACE 4,10
*** A.
*
* ROLL SYSTEM DAYFILE.
DSA EQU /DISPLAY/DSA SET OVERLAY NAME
ENTRY RSA
LDN 0 SET MASTER DAYFILE
RSA1 STM ADSC SET DAYFILE TYPE
SHN -14
STD T2
LCN 0 SET DISPLAY RESET REQUEST
STM TDSA,T2
RSA2 LDN 1RA SET DISPLAY NAME
STD T7
RJM CJS CLEAR JSN ON SCREEN HEADER
LDC DSA/10000 OVERLAY NAME
STM /DSD/TDSO+1RA
LDN 0 SET SCREEN FULL
STM ADSC+2
RSA3 LDN 1RA SET *A* DISPLAY
STD T1
LJM SLS1 EXIT
ADS SPACE 4,10
*** A,.
*
* DISPLAY SYSTEM DAYFILE WITH NO ROLL.
ENTRY ADS ENTRY
LDN 0
STM ADSC
UJN RSA2 CONTINUE
AAF SPACE 4,10
*** A,ACCOUNT FILE.
*
* SET *A* DISPLAY TO ACCOUNT FILE.
ENTRY AAF
LDN 14 SKIP TO *.*
RAD CA
LDC 10000 SET ACCOUNT FILE
AAF1 ADD NC
JMP RSA1 SET DISPLAY
AEL SPACE 4,10
*** A,ERROR LOG.
*
* SET *A* DISPLAY TO ERROR LOG.
ENTRY AEL
LDN 11 SKIP TO *.*
RAD CA
LDC 20001 SET ERROR LOG
UJN AAF1 SET DISPLAY
AOD SPACE 4,10
*** A,OPERATOR.
*
* SET *A* DISPLAY TO OPERATOR STATUS.
DOD EQU /DISPLAY/DOD OVERLAY NAME
ENTRY AOD ENTRY
LDC DOD/10000 SET OVERLAY NAME
STM /DSD/TDSO+1RA
JMP RSA3 SET *A* DISPLAY
DAY SPACE 4,10
*** DAYFILE,JSN.
*
* SET DAYFILE OF JOB SPECIFIED ON LEFT SCREEN.
ENTRY DAY ENTRY
LDI CA
LMN 1R.
ZJN DAY1 IF NO JSN
LDN 1 SET JOB DAYFILE
JMP RSA1 SET *A* DISPLAY
DAY1 JMP KIE *INCORRECT ENTRY*
CHB SPACE 4,10
*** B,TYPE.
*
* REQUEST ONE OF THE FOLLOWING SYSTEM STATUS DISPLAYS.
*
* B,A. - ANALYST DISPLAY.
* B,. OR B,O. - OPERATOR DISPLAY.
ENTRY CHB
LDM KBUF+2 GET THE TYPE CHARACTER
LMN 1RA
ZJN CHB1 IF *B,A*
LDN 1RO&1RA
CHB1 STM TDSB SET THE DEFAULT TYPE
LDN 1RB SET DISPLAY NAME
LJM SLS SET LEFT SCREEN
CHE SPACE 4,10
*** E,TYPE.
*
* REQUEST ONE OF THE FOLLOWING EQUIPMENT DISPLAYS.
*
* A - ALL EQUIPMENTS.
* C - MASS STORAGE CONFIGURATION.
* E - MASS STORAGE ERROR CONDITIONS.
* F - FAMILY STATUS.
* H - MASS STORAGE DEVICE THRESHOLDS.
* M - MASS STORAGE DEVICE STATUS.
* O - OPTICAL DISK REQUEST PREVIEW.
* P - MOUNTING PREVIEW.
* S - OPTICAL DISK STATUS.
* T - MAGNETIC TAPES.
ENTRY CHE
LDM KBUF+2 SET CHARACTER
STD T1
LDC TCHE-1 SET TABLE INDEX
STD T2
CHE1 AOD T2 ADVANCE TABLE
LDI T2 COMPARE CHARACTERS
SHN -6
ZJN CHE2 IF END OF TABLE
LMD T1
NJN CHE1 IF NO MATCH
CHE2 LDM TCHEL,T2 LOAD OVERLAY NAME
STM /DSD/TDSO+1RE
LDN 1RE SET LEFT SCREEN DISPLAY = *E*
STD T1
LDN 0 CLEAR LEFT SCREEN INDEX
STM TDSE
LJM SLS1 EXIT
TCHE BSS 0
QUAL DISPLAY
VFD 6/1RC,6/DSEC-DSEC/10000*10000
VFD 6/1RE,6/DSEE-DSEE/10000*10000
VFD 6/1RF,6/DSEF-DSEF/10000*10000
VFD 6/1RH,6/DSEH-DSEH/10000*10000
VFD 6/1RM,6/DSEM-DSEM/10000*10000
VFD 6/1RO,6/DSEO-DSEO/10000*10000
VFD 6/1RP,6/DSEP-DSEP/10000*10000
VFD 6/1RS,6/DSES-DSES/10000*10000
VFD 6/1RT,6/DSET-DSET/10000*10000
CON DSE-DSE/10000*10000
QUAL *
TCHEL EQU *-TCHE
QUAL DISPLAY
CON DSEC/10000
CON DSEE/10000
CON DSEF/10000
CON DSEH/10000
CON DSEM/10000
CON DSEO/10000
CON DSEP/10000
CON DSES/10000
CON DSET/10000
CON DSE/10000
QUAL *
SCP SPACE 4,10
*** O,SCP.
*
* DISPLAY SUB CONTROL POINT STATUS.
ENTRY SCP
LDC /DISPLAY/DTS/10000
SCP1 STM /DSD/TDSO+17B SET DISPLAY OVERLAY NAME
LDN 1RO SET *O* DISPLAY
STD T1 STORE *O* DISPLAY
LJM SLS1 EXIT
STL SPACE 4,10
*** O,TLD.
*
* DISPLAY TASK LIBRARY DIRECTORY.
ENTRY STL
LDC /DISPLAY/DTL/10000
UJN SCP1 SET DISPLAY
STS SPACE 4,10
*** O,TST.
*
* DISPLAY TRANSACTION STATUS TABLE.
ENTRY STS
LDC /DISPLAY/DSO/10000
UJN SCP1 SET DISPLAY
SQT SPACE 4,10
*** Q,QT.
*
* SET *Q,QT* DISPLAY ON LEFT SCREEN.
*
* QT = IN, INPUT QUEUE FILES.
* PU, PUNCH QUEUE FILES.
* PL, PLOT QUEUE FILES.
* PR, PRINT QUEUE FILES.
* WT, WAIT QUEUE FILES.
ENTRY SQT
RJM ASN ASSEMBLE QUEUE TYPE
LDD AB+1
NJN SQT2 IF QUEUE TYPE .GT. 2 CHARACTERS
LDN TQTYL-TQTYE INITIALIZE TABLE SEARCH
STD T4
SQT1 LDM TQTY,T4
LMD AB
ZJN SQT3 IF QUEUE TYPE FOUND
LCN TQTYE
RAD T4
PJN SQT1 IF NOT END OF TABLE
SQT2 JMP KIE *INCORRECT ENTRY*
SQT3 LDM TQTY+1,T4 SAVE QUEUE TYPE
SQT4 STM TDSQA
LDN 1RQ
STD T1
LJM SLS1 SET DISPLAY ON LEFT SCREEN
TQTY SPACE 4,10
* TQTY - TABLE OF QUEUE TYPES.
TQTY CON 2RIN,/JIO/INQT
TQTYE EQU *-TQTY ENTRY LENGTH
CON 2RPU,/JIO/PHQT
CON 2RPL,/JIO/PLQT
CON 2RPR,/JIO/PRQT
CON 2RWT,/JIO/WTQT
TQTYL EQU *-TQTY
SQD SPACE 4,10
*** Q,.
*
* SET *Q* DISPLAY ON LEFT SCREEN.
ENTRY SQD
LDC 4000 SET ALL QUEUE TYPES
UJN SQT4 SET DISPLAY ON LEFT SCREEN
SWD SPACE 4,10
*** W,TYPE.
*
* REQUEST ONE OF THE FOLLOWING DISPLAYS.
*
* TYPE = A, MEMORY ALLOCATION.
* C, CHANNEL STATUS.
* M, MISC. PARAMETERS.
* P, TABLE ADDRESSES.
* Q, SYSTEM REQUESTS.
* R, SYSTEM RESOURCES.
ENTRY SWD
LDM KBUF+2 SET CHARACTER
STD T1
LDC TSWD-1 SET TABLE ADDRESS
STD T2
SWD1 AOD T2
LDI T2 GET VALID CHARACTER
ZJN SWD2 IF END OF TABLE
LMD T1
NJN SWD1 IF NO MATCH
SWD2 LDM TSWDL,T2 LOAD OVERLAY NAME
STM /DSD/TDSO+1RW
LDN 1RW
STD T1
LJM SLS1 SET LEFT SCREEN
TSWD BSS 0 TABLE OF VALID CHARACTERS
CON 1RA MEMORY ALLOCATION
CON 1RC CHANNEL STATUS
CON 1RM MISC. PARAMETERS
CON 1RP TABLE ADDRESSES
CON 1RQ SYSTEM REQUESTS
CON 1RR SYSTEM RESOURCES
CON 0 END OF TABLE
TSWDL EQU *-TSWD
QUAL DISPLAY
CON DSWA/10000 A
CON DSWC/10000 C
CON DSWM/10000 M
CON DSWP/10000 P
CON DSWQ/10000 Q
CON DSWR/10000 R
CON DSWR/10000 DISPLAY *R* OPTION IF NO MATCH
QUAL *
SPACE 4,10
CMDEND
COMMAND (RESOURCE CONTROL COMMANDS.)
MNT SPACE 4,10
*** MOUNT,XXX.
* MOUNT,XXX,P.
*
* REQUEST PROCESSING OF MASS STORAGE EST ORDINAL XXX. IF *P*
* IS SPECIFIED, PROCESS INDEPDENDENT SHARED DEVICE.
ENTRY MNT
RJM ASD ASSEMBLE EST ORDINAL
LDI CA CHECK FOR EXTENDED PARAMETER
SBN 1R,
NJN MNT2 IF NON-SHARED RMS CALL
AOD CA INCREMENT TO NEXT CHARACTER
LDI CA
SBN 1RP
ZJN MNT1 IF PRESETTING FOR SHARED RMS
JMP KIE *INCORRECT ENTRY*
MNT1 LDC MMFL TEST FOR SHARED RMS
CRD CM
LDC 2000 SET FOR PRESET PROCESSING
RAD AB+4
LDD CM+1
SHN 21-13
MJN MNT2 IF SHARED RMS PRESET
JMP KIE *INCORRECT ENTRY*
MNT2 LDC 4000 FLAG MOUNT REQUEST
STD AB
UJN UNL1 READ EST POINTER
UNL SPACE 4,10
*** UNLOAD,XXX.
*
* LOGICALLY REMOVE RESOURCE (MAGNETIC TAPE OR MASS STORAGE)
* DRIVE FROM ENVIRONMENT WHILE THAT DRIVE IS BEING UNLOADED
* BY THE OPERATOR.
ENTRY UNL
RJM ASD ASSEMBLE EST ORDINAL
* ENTRY FROM *MOUNT* COMMAND.
UNL1 LDN ESTP READ EST POINTER
CRD CM
LDD AB+4
LPC 5777 MASK OFF *MOUNT* PRESET BIT
STD CM
SBD CM+2
PJN UNL5 IF BEYOND EST
SFA EST,CM
ADK EQDE
CRD CM READ EST ENTRY
LDD CM
SHN 21-13
MJN UNL3 IF MASS STORAGE
LJM UNL12 PROCESS NON-MASS STORAGE
UNL3 SHN 4 CHECK REMOVABLE AND SHARED STATUSES
LPN 3
NJN UNL4 IF REMOVABLE AND/OR SHARED DEVICE
JMP KIE *INCORRECT ENTRY*
UNL4 LDD AB
ZJN UNL6 IF UNLOAD REQUEST
LDD CM
SHN 21-7
PJN UNL6 IF NOT *LDAM* TYPE EQUIPMENT
LDD CM+4 READ UNIT LIST WORD
SHN 3
ADN DDLL
CRD T3
LDD T3 CHECK NULL LIST BIT
SHN 21-12
PJN UNL6 IF NOT NULL EQUIPMENT
UNL5 LJM UNL13 *INCORRECT EQUIPMENT*
UNL6 LDD CM
SHN 21-10
PJN UNL8 IF DEVICE NOT REMOVABLE
LDD AB
ZJN UNL9 IF UNLOAD REQUEST
LDD CM
LPN 3 CHECK DEVICE STATE
LMN 3
NJN UNL9 IF NOT DOWN
UNL7 JMP KIE *INCORRECT ENTRY*
UNL8 LDD LK
ZJN UNL7 IF CONSOLE LOCKED
UNL9 LDD CM+4 GET MST STATUS WORD
SHN 3
ADN STLL
CRD T3
LDD AB
NJN UNL10 IF MOUNT REQUEST
LDD T3
LPN MLIRP
ZJN UNL10 IF NO INITIALIZATION SCHEDULED
LDC =C*INITIALIZE PENDING*
JMP KMS DISPLAY MESSAGE
UNL10 LDD CM+1
SHN 0-11 CHECK PRIMARY CHANNEL
LMN 4
ZJN UNL11 IF CHANNEL 1 AVAILABLE
LDD CM+2
SHN 0-11 CHECK SECONDARY CHANNEL
LMN 4
NJN UNL7 IF CHANNEL 2 UNAVAILABLE
UNL11 LDD AB SET MOUNT / UNLOAD REQUEST
LMN LUNL
STD AB+3
LDN /1DS/TPSF
JMP KAR PROCESS *1DS* CALL
* PROCESS NON MASS STORAGE REQUEST.
UNL12 LDD AB
NJN UNL13 IF MOUNT COMMAND
LDD CM+3 CHECK IF TAPE DRIVE
LMC 2RMT
ZJN UNL14 IF *MT*
LMC 2RNT&2RMT
ZJN UNL14 IF *NT*
LMC 2RCT&2RNT
ZJN UNL14 IF *CT*
LMC 2RAT&2RCT
ZJN UNL14 IF *AT*
LMC 2ROD&2RAT
NJN UNL13 IF NOT *OD*
LDD CM+4 CHECK FOR JUKEBOX UNIT
LPN 10
ZJN UNL11 IF NOT JUKEBOX UNIT
UNL13 LDC =C*INCORRECT EQUIPMENT*
JMP KMS DISPLAY MESSAGE
* PROCESS TAPE EQUIPMENT.
UNL14 LDN ZERL
CRD SP
LDN /MTX/XUU SET UNLOAD REQUEST
STD SP
LDD AB+4 SET EST ORDINAL
STD SP+1
LDN ZERL
CRD AB
LDC MTSI CHECK MAGNET STATUS
RJM FSS
NJN UNL15 IF MAGNET ACTIVE
LDC =C*MAG NOT ACTIVE*
JMP KMS DISPLAY MESSAGE
UNL15 STD AB+4 SET MAGNET CP NUMBER
LDC /1DS/EUFF+/1DS/CMOV+/1DS/LOCK
RJM C1D
LDC UNL16 SET REENTRY ADDRESS
STM /KEYBOARD/KCRB
UNL16 LDC /1DS/DSDL
CRD CM
ADN 1
CRD AB
LDD CM
NJP CLP1 IF *1DS* NOT COMPLETE
LDD AB
ZJP KBR IF NO ERROR
LDC =C*INCORRECT EQUIPMENT*
JMP KMS DISPLAY ERROR MESSAGE
SPACE 4,10
CMDEND
COMMAND (TAPE EQUIPMENT COMMANDS.)
SPACE 4,10
*** GO,XXX.
*
* PROCEED WITH ASSIGNMENT OF REEL ON UNIT XXX.
ENTRY GBL
LDN /MTX/XUG SET *GO* REQUEST
UJN PTC PROCESS TAPE EQUIPMENT COMMAND
SPACE 4,10
*** STOP,XXX.
*
* UNLOAD REEL ON UNIT XXX TO REJECT ASSIGNMENT TO JOB.
ENTRY SBL
LDC /MTX/XUS SET *STOP* REQUEST
UJN PTC PROCESS TAPE EQUIPMENT COMMAND
SPACE 4,10
*** RETRY,XXX.
*
* RETRY TAPE I/O OPERATION AFTER LOAD POINT ERROR.
ENTRY RTY
LDC /MTX/XRT SET *RETRY* REQUEST
UJN PTC PROCESS TAPE EQUIPMENT COMMAND
TRM SPACE 4,10
*** TERMINATE,XXX.
*
* TERMINATE TAPE I/O OPERATION AFTER LOAD POINT ERROR.
ENTRY TRM
LDN /MTX/XTR SET *TERMINATE* REQUEST
UJN PTC PROCESS TAPE EQUIPMENT COMMAND
NVS SPACE 4,10
*** NEXTVSN,XXX,YYYYYY.
*
* SPECIFY NEXT VSN AT END OF REEL.
ENTRY NVS
LDN /MTX/XNV SET *NEXTVSN* REQUEST
UJN PTC PROCESS TAPE EQUIPMENT COMMAND
MTA SPACE 4,10
*** MOUNT,XXX,YYYYYY.
*
* MOUNT CARTRIDGE WITH VSN YYYYYY ON ACS TAPE UNIT WITH EST
* ORDINAL XXX.
ENTRY MTA
LDN /MTX/XMU SET MOUNT UNIT
UJN PTC PROCESS TAPE EQUIPMENT COMMAND
SCR SPACE 4,10
*** SCRATCH,XXX.
*
* DECLARE TAPE EST ORDINAL XXX TO BE AN AVAILABLE SCRATCH TAPE
* WHICH MAY BE ASSIGNED BY ANY SCRATCH VSN. EXISTING VOL1
* VSN WILL NOT BE CHANGED.
ENTRY SCR
LDN /MTX/XSV SET SCRATCH VSN
UJN PTC PROCESS TAPE EQUIPMENT COMMAND
VSN SPACE 4,10
*** VSN,XXX,YYYYYY.
*
* ASSIGN VOLUME SERIAL NUMBER TO TAPE ON EST ORDINAL XXX.
VSN SPACE 4,10
*** VSN,XXX,.
*
* DECLARE TAPE EST ORDINAL XXX TO BE AN AVAILABLE SCRATCH TAPE.
VSN SPACE 4,10
*** VSN,XXX.
*
* CLEAR VSN ON EST ORDINAL XXX AND RECHECK FOR LABELS.
ENTRY VSN
LDN /MTX/XEV SET ENTER VSN
* UJN PTC PROCESS TAPE EQUIPMENT COMMAND
PTC SPACE 4,10
** PTC - PROCESS TAPE EQUIPMENT COMMAND.
*
* ENTRY (A) = REQUEST CODE.
*
* USES T1, AB - AB+4, CM - CM+4, SP - SP+4.
*
* CALLS ASD, AVS, C1D, FSS.
PTC BSS 0 ENTRY
STD T1 SAVE REQUEST CODE
LDN ZERL
CRD SP
LDD T1 SET REQUEST CODE
STD SP
RJM ASD ASSEMBLE EST ORDINAL
LDD AB+4 SET EST ORDINAL
STD SP+1
LDI CA
LMN 1R.
ZJN PTC1 IF NO VSN SPECIFIED
RJM AVS ASSEMBLE VSN
PTC1 LDN ZERL
CRD AB
LDC MTSI CHECK MAGNET STATUS
RJM FSS
NJN PTC2 IF MAGNET ACTIVE
LDC =C*MAG NOT ACTIVE*
JMP KMS DISPLAY MESSAGE
PTC2 STD AB+4 SET MAGNET CP NUMBER
LDC /1DS/EUFF+/1DS/CMOV+/1DS/LOCK
RJM C1D
LDC PTC3 SET REENTRY ADDRESS
STM /KEYBOARD/KCRB
PTC3 LDC /1DS/DSDL
CRD CM
ADN 1
CRD AB
LDD CM
NJP CLP1 IF *1DS* NOT COMPLETE
LDD AB
ZJP KBR IF NO ERROR
LMN 1
NJN PTC4 IF NOT EQUIPMENT ERROR
LDC =C*INCORRECT EQUIPMENT*
JMP KMS DISPLAY MESSAGE
PTC4 LDC =C*VSN NOT AVAILABLE*
JMP KMS DISPLAY MESSAGE
AVS SPACE 4,10
** AVS - ASSEMBLE VSN.
*
* EXIT (SP+2 - SP+4) = VSN SPACE FILLED.
*
* USES CA, T1, T2, SP+2 - SP+4.
AVS SUBR ENTRY/EXIT
LDC 2R SPACE FILL VSN
STD SP+2
STD SP+3
STD SP+4
AOD CA BYPASS PREVIOUS SEPARATOR
LDN SP+2 ASSEMBLE VSN
STD T1
AVS1 LDI CA
ZJN AVSX IF END OF STRING
SBN 1R9+1
PJN AVSX IF SEPARATOR
ADN 1R9+1
SHN 6
STD T2
LDI T1
LPN 77
ADD T2
STI T1
AOD CA
LDI CA
ZJN AVSX IF END OF STRING
SBN 1R9+1
PJN AVSX IF SEPARATOR
ADN 1R9+1
STD T2
LDI T1
SCN 77
ADD T2
STI T1
AOD CA
AOD T1
LMN SP+5
NJN AVS1 IF MORE CHARACTERS POSSIBLE
LJM AVSX RETURN
SPACE 4,10
CMDEND
COMMAND (MAINTENANCE COMMANDS.),CMR
RDF SPACE 4,10
*** REDEFINE,XXX.
*
* SET REDEFINITION REQUESTED BIT IN MST FOR *LDAM* TYPE
* EQUIPMENT TO BEGIN RECONFIGURATION RUN.
ENTRY RED
RJM CMS CHECK FOR MASS STORAGE EQUIPMENT
SHN 21-7
PJN RDF1 IF NOT *LDAM* TYPE DEVICE
SHN 7-4
MJN RDF1 IF INDEPENDENT SHARED DEVICE
LDD CM+3 CHECK DEVICE TYPE
LMC 2RDD
ZJN RDF1 IF 834
LMN 2RDG&2RDD
ZJN RDF1 IF 836
LDD CM+4 CHECK FOR BUFFERED DEVICE
SHN 3
ADN DILL
CRD CM
LDD CM+3
SHN 21-13
MJN RDF1 IF BUFFERED DEVICE
SFA EST,AB+4 CHECK IF DEVICE ALREADY ASSIGNED
ADK EQAE
CRD CM
LDD CM+4
NJN RDF1 IF DEVICE ALREADY ASSIGNED
LDN GRDR SET REDEFINITION REQUESTED
STD AB+3
LDN /1DS/SCAF
JMP KAR PROCESS *1DS* CALL
RDF1 JMP KIE *INCORRECT ENTRY*
RST SPACE 4,10
*** RESTORE,XXX.
*
* RESTORE PARITY PROTECTION FOR DAS DRIVE WITH EST ORDINAL XXX.
ENTRY RST
RJM CMS CHECK FOR MASS STORAGE EQUIPMENT
LDN TRSTL CHECK DEVICE TYPE
STD T1
RST1 SOD T1
MJN RST2 IF DEVICE DOES NOT SUPPORT RESTORE
LDD CM+3
LMM TRST,T1
NJN RST1 IF DEVICE TYPE DOES NOT MATCH
LDD CM+1
SHN 0-11 CHECK PRIMARY CHANNEL
LMN 4
ZJN RST3 IF CHANNEL 1 AVAILABLE
LDD CM+2
SHN 0-11 CHECK SECONDARY CHANNEL
LMN 4
ZJN RST3 IF CHANNEL 2 AVAILABLE
RST2 JMP KIE *INCORRECT ENTRY*
RST3 LDD CM
SHN 21-11
PJN RST4 IF NOT SHARED DEVICE
SHN 21-6-21+11
MJN RST2 IF DEVICE UNAVAILABLE (NOT RECOVERED)
RST4 LDN /1DS/RSTF
JMP KAR PROCESS *1DS* REQUEST
TBLM SPACE 4,10
** TBLM - GENERATE TABLE OF DEVICES WITH PARITY PROTECTION.
*
* TBLM TY
*
* ENTRY (TY) = MASS STORAGE EQUIPMENT MNEMONIC.
PURGMAC TBLM
TBLM MACRO TY
TBLM IFEQ /MSP/BF_TY,7,1
CON 2R_TY
TBLM ENDIF
TBLM ENDM
TRST BSS 0 DEVICES ALLOWED FOR RESTORE
LIST G
TBL "MSEQ"
LIST *
TRSTL EQU *-TRST LENGTH OF TABLE
PURGMAC TBLM
SDU SPACE 4,10
*** SPINDOWN,XXX.
*
* SPIN DOWN DRIVE WITH EST ORDINAL XXX.
ENTRY SDU
AOM SUUB
* UJN SUU PROCESS COMMAND
SUU SPACE 4,10
*** SPINUP,XXX.
*
* SPIN UP DRIVE WITH EST ORDINAL XXX.
ENTRY SUU
RJM CMS CHECK FOR MASS STORAGE EQUIPMENT
LDN TSUUL CHECK DEVICE TYPE
STD T1
SUU1 SOD T1
MJN SUU3 IF DEVICE DOES NOT SUPPORT SPIN UP/DOWN
LDD CM+3
LMM TSUU,T1
NJN SUU1 IF DEVICE TYPE DOES NOT MATCH
SUUB LDN 0
* LDN 1 (SPIN DOWN DRIVE)
STD AB+3
ZJN SUU2 IF SPIN UP REQUEST
LDD CM
LPN 3 CHECK DEVICE STATE
LMN 3
NJN SUU3 IF DEVICE NOT DOWN
SUU2 LDD CM+1
SHN 0-11 CHECK PRIMARY CHANNEL
LMN 4
ZJN SUU4 IF CHANNEL 1 AVAILABLE
LDD CM+2
SHN 0-11 CHECK SECONDARY CHANNEL
LMN 4
ZJN SUU4 IF CHANNEL 2 AVAILABLE
SUU3 JMP KIE *INCORRECT ENTRY*
SUU4 LDN /1DS/SPNF
JMP KAR PROCESS *1DS* REQUEST
TSUU BSS 0 DEVICES ALLOWED FOR SPINUP/SPINDOWN
CON 2RDD 834
CON 2RDG 836
CON 2RDF 887 (4KB SECTOR)
CON 2RDH 887 (16KB SECTOR)
TSUUL EQU *-TSUU LENGTH OF TABLE
SPACE 4,10
*** VALIDATE,XXX.
*
* VALIDATE MST/TRT FOR EST ORDINAL XXX.
ENTRY VMS
LDN SSTL
CRD CM
LDD CM
LPN 4
NJN SUU3 IF MONITOR SEGMENT *VMS* NOT LOADED
RJM CMS CHECK FOR MASS STORAGE EQUIPMENT
SHN 21-6
PJN VMS2 IF AVAILABLE MASS STORAGE DEVICE
VMS1 LDC =C*ILLEGAL EQUIPMENT.*
JMP KMS
VMS2 LDN /1DS/VMSF
JMP KAR VALIDATE EQUIPMENT
CMS SPACE 4,15
** CMS - CHECK FOR MASS STORAGE EQUIPMENT.
*
* ENTRY (CA) = ADDRESS OF NEXT CHARACTER.
*
* EXIT (A) = BYTE 0 OF EST ENTRY.
* (CM - CM+4) = EST ENTRY.
*
* CALLS ASD.
*
* MACROS SFA.
CMS2 LDD CM
CMS SUBR ENTRY/EXIT
RJM ASD ASSEMBLE EST ORDINAL
LDK ESTP
CRD CM
LDD AB+4
SBD CM+3
PJN CMS1 IF ORDINAL BEYOND MASS STORAGE MAXIMUM
SFA EST,AB+4
ADK EQDE
CRD CM
LDD CM
SHN 21-13
MJN CMS2 IF MASS STORAGE DEVICE
CMS1 JMP KIE *INCORRECT ENTRY*
SPACE 4,10
CMDEND
COMMAND (UP/DOWN CHANNEL COMMANDS.),CMR
UPC SPACE 4,10
*** UP,CH=XX.
* UP,CH=XX,EQ=YYY.
*
* UP CHANNEL XX ON EST ORDINAL YYY OR ALL EST ORDINALS.
ENTRY UPC
LDN 1 SET *UP* FLAG
UJN DWN1 PROCESS COMMAND
MUP SPACE 4,10
*** UP,MCH=XX.
* UP,MCH=XX,EQ=YYY.
*
* UP MUX CHANNEL XX ON EST ORDINAL YYY OR ALL EST ORDINALS.
ENTRY MUP
AOD CA INCREMENT KEYBOARD INDEX
LDN 3 SET *UP* AND MUX FLAGS
UJN DWN1 PROCESS COMMAND
MDN SPACE 4,10
*** DOWN,MCH=XX.
* DOWN,MCH=XX,EQ=YYY.
*
* DOWN MUX CHANNEL XX ON EST ORDINAL YYY OR ALL EST ORDINALS.
ENTRY MDN
AOD CA INCREMENT KEYBOARD INDEX
LDN 2 SET MUX FLAG
UJN DWN1 PROCESS COMMAND
CUP SPACE 4,10
*** UP,CCH=XX.
* UP,CCH=XX,EQ=YYY.
*
* UP CONCURRENT CHANNEL XX ON ESTO YYY OR ALL EST ORDINALS.
ENTRY CUP
AOD CA INCREMENT KEYBOARD INDEX
LDN 41 SET *UP* FLAG AND CCH FLAG
UJN DWN1 PROCESS COMMAND
CDN SPACE 4,10
*** DOWN,CCH=XX.
* DOWN,CCH=XX,EQ=YYY.
*
* DOWN CONCURRENT CHANNEL XX ON ESTO YYY OR ALL EST ORDINALS.
ENTRY CDN
AOD CA INCREMENT KEYBOARD INDEX
LDN 40 SET CCH FLAG
UJN DWN1 PROCESS COMMAND
DWN SPACE 4,10
*** DOWN,CH=XX.
* DOWN,CH=XX,EQ=YYY.
*
* DOWN CHANNEL XX ON EST ORDINAL YYY OR ALL EST ORDINALS.
ENTRY DWN
LDN 0 CLEAR *UP* AND MUX FLAGS
DWN1 STD SR
LDN 3 SET KEYBOARD INDEX
RAD CA
LDN ESTP READ EST POINTERS
CRD T4
RJM ASD ASSEMBLE CHANNEL NUMBER
LDD AB+4
SBN 40
PJN DWN2 IF INCORRECT CHANNEL
LDD SR
LPN 40
LMD AB+4
STD SR+1 SET CHANNEL NUMBER AND CONCURRENT STATUS
LDI CA
LMN 1R.
STM DWNA
NJN DWN3 IF EST ORDINAL ENTERED
STD AB+4
LDN NOPE-1 SET EST INDEX
STD T7
UJN DWN4 READ EST
DWN2 JMP KIE *INCORRECT ENTRY*
DWN3 LDN 4
RAD CA
RJM ASD ASSEMBLE EQUIPMENT
LDD AB+4
SBD T6
PJN DWN2 IF INCORRECT EST ORDINAL
LDD AB+4
SBN 1
STD T7 SAVE EST INDEX
ADN 2 SET END OF SEARCH
STD T6
DWN4 AOD T7
LMD T6
ZJN DWN2 IF END OF EST
SFA EST,T7 READ EST ENTRY
ADK EQDE
CRD CM
ADK EQAE-EQDE
CRD SH
RJM CCH CHECK FOR CHANNEL MATCH
NJN DWN4 IF NO MATCH
LDD CM+3
LMC 2RMT
ZJN DWN5 IF *MT*
LMC 2RNT&2RMT
ZJN DWN5 IF *NT*
LMC 2RCT&2RNT
ZJN DWN5 IF *CT*
LMC 2RAT&2RCT
NJN DWN6 IF NOT *AT*
DWN5 LDM DWNA
NJP DWN2 IF EST ORDINAL ENTERED
DWN6 LDD SR FORM *1DS* PARAMETER
LPN 2
SHN 6-1
ADD SR+1
STD AB+3 SET CHANNEL, CONCURRENCY, AND MUX FLAGS
LDD SR
LPN 1
ADK /1DS/DWNF
ERRNZ /1DS/UPCF-/1DS/DWNF-1 CODE DEPENDS ON VALUE
JMP KAR PROCESS *1DS* CALL
DWNA BSSZ 1 FLAG INDICATING EST ORDINAL ENTERED
CCH SPACE 4,10
** CCH - CHECK FOR VALID CHANNEL.
*
* ENTRY (SR) = 10/0, 1/M, 1/U.
* M = 1 IF MUX CHANNEL.
* U = 1 IF *UP* REQUEST.
* (SR+1) = CHANNEL NUMBER (AND CONCURRENCY FLAG).
* (CM - CM+4) = WORD *EQDE* OF EST ENTRY.
* (SH - SH+4) = WORD *EQAE* OF EST ENTRY.
*
* EXIT (A) = 0 IF MATCH.
* (A) .NE. 0 IF NO MATCH.
* (CM - CM+4) = ENTRY VALUE.
*
* USES T1.
CCH6 LDD SH+4
ZJP CCH1 IF DEVICE NOT CURRENTLY ASSIGNED
CCH SUBR ENTRY/EXIT
LDD CM
SHN 21-13
MJN CCH1 IF MASS STORAGE
LDD CM GET DOWN/OFF BIT
LPN 2
SHN 14
LMD CM+3 GET DEVICE TYPE
LMC 2RLX+20000
ZJN CCH6 IF *LX* AND OFF/DOWN
LMN 2RLY&2RLX
ZJN CCH6 IF *LY* AND OFF/DOWN
LPC 7777 IGNORE DOWN/OFF STATUS
LMC 2RNT&2RLY
ZJN CCH1 IF TYPE *NT*
LMC 2RMT&2RNT
ZJN CCH1 IF TYPE *MT*
LMC 2RCT&2RMT
ZJN CCH1 IF TYPE *CT*
LMC 2RAT&2RCT
ZJN CCH1 IF TYPE *AT*
LMC 2ROD&2RAT
NJP CCHX IF NOT TYPE *OD*
CCH1 LDN 1 SET CHANNEL BYTE INDEX
STD T1
CCH2 LDD SR
LPN 1
SHN 12-0
LMM CM+1,T1
LMD SR+1
LPC 6077
SHN 21-13
PJN CCH3 IF CHANNEL NOT PRESENT OR DISABLED
LPC 207700
ZJN CCH4 IF CHANNEL, TYPE, STATE MATCH
CCH3 SOD T1
PJN CCH2 IF CHANNEL 1 NOT YET CHECKED
UJN CCH5 RETURN
CCH4 LDD SR
LPN 2
ZJN CCH5 IF NOT A MUX CHANNEL
LDD CM
SHN 0-13
ZJN CCH5 IF NOT MASS STORAGE
LDD CM
LPC 200
CCH5 LJM CCHX RETURN WITH (A) = REPLY STATUS
SPACE 4,10
CMDEND
COMMAND (DOWN/OFF/IDLE/ON EQUIPMENT COMMANDS.),CMR
DWM SPACE 4,10
*** DOWN,MID=XX.
*
* CONFIRM MACHINE ID XX IS IN THE *DOWN* STATE.
ENTRY DWM
LDN 4
RAD CA
LDK EFRL READ MAINFRAME STATE TABLE
CRD CM
LDN 0
STD CM+2
DWM1 LDD CM
SHN 14
LMD CM+1
ZJN DWM2 IF NOT MMF MODE
ADD CM+2
CRD AB
LDI CA
SHN 6
ADM 1,CA
LMD AB
ZJN DWM3 IF MACHINE ID FOUND
AOD CM+2
SBN MXMF
MJN DWM1 IF NOT ALL MACHINES CHECKED
DWM2 JMP KIE *INCORRECT ENTRY*
DWM3 LDD AB+4
LMN MFD2
NJN DWM2 IF NOT IN PROPER *DOWN* STATE
LDM 2,CA
LMN 1R.
NJN DWM2 IF INCORRECT TERMINATOR
LDN MFDA SET *DOWN ACKNOWLEGED* STATE
STD AB+4
LDD CM
SHN 14
LMD CM+1
ADD CM+2
CWD AB
LJM KBR SET COMMAND COMPLETE
DWE SPACE 4,10
*** DOWN,EQ=XXX.
*
* SET EST ORDINAL XXX TO THE *DOWN* STATE.
ENTRY DWE
LDN DWES CHECK EST ENTRY
RJM CEN
MJN DWE1 IF MASS STORAGE DEVICE
LDD AB+4
ZJN OFE3 IF EQUIPMENT ZERO
LDD SR+4
NJN OFE3 IF DEVICE ASSIGNED
LDM CENA
LMC 2RCM
NJN OFE2 IF NOT CONTROL MODULE
LDC /1DS/DCMF+/1DS/LOCK
LJM C1R1 CALL *1DS*
DWE1 UJN IDE2 CALL *1DS*
OFE SPACE 4,10
*** OFF,EQ=XXX.
*
* SET EST ORDINAL XXX TO THE *OFF* STATE.
ENTRY OFE
LDN OFES CHECK EST ENTRY
RJM CEN
OFE1 MJN IDE2 IF MASS STORAGE DEVICE
LDM CENA
LMC 2RCM
OFE2 NJN ONE1 IF NOT CONTROL MODULE
OFE3 JMP KIE *INCORRECT ENTRY*
IDE SPACE 4,10
*** IDLE,EQ=XXX.
*
* SET EST ORDINAL XXX TO THE *IDLE* STATE.
ENTRY IDE
LDN IDES CHECK EST ENTRY
RJM CEN
PJN OFE3 IF NOT MASS STORAGE DEVICE
LDD CM
LPN 3 CHECK CURRENT STATE
* LMN 0
ZJN ONE1 IF DEVICE *ON*
IDE2 LJM C1R CALL *1DS*
ONE SPACE 4,10
*** ON,EQ=XXX.
*
* SET EST ORDINAL XXX TO THE *ON* STATE.
ENTRY ONE
LDN ONES CHECK EST ENTRY
RJM CEN
PJN ONE1 IF NOT MASS STORAGE DEVICE
LDD CM
LPN 3 CHECK CURRENT STATE
LMN 1
NJN IDE2 IF DEVICE NOT *IDLE*
ONE1 LDM CENA
LMC 2RCM
NJN ONE2 IF NOT CONTROL MODULE
LDK /1DS/OCMF
LJM C1R1 CALL *1DS*
ONE2 LDD AB+3
STD CM+2
LDD AB+4 CHANGE DEVICE STATE
STD CM+1
MONITOR SEQM
JMP KBR RETURN
CEN SPACE 4,20
** CEN - CHECK EST ORDINAL.
*
* ENTRY (A) = NEW DEVICE STATE.
*
* EXIT (A) = BYTE 0 OF EST ENTRY SHIFTED 21-13.
* (AB+3) = *SCAF* SUBFUNCTION TO *1DS*.
* (AB+4) = (CENA) = EST ORDINAL.
* (CM - CM+4) = EST ENTRY.
* (SR - SR+4) = *EQAE* WORD OF EST ENTRY.
* (CENA) = DEVICE MNEMONIC.
* TO *KIE* IF ERROR.
*
* USES CA, T7, AB+3, CM - CM+4, SR - SR+4.
*
* CALLS ASD.
*
* MACROS SFA.
CEN SUBR ENTRY/EXIT
STD T7
LDN 3 ADVANCE KEYBOARD INDEX
RAD CA
RJM ASD ASSEMBLE EST ORDINAL
LDK ESTP READ EST POINTER
CRD CM
LDD AB+4 CHECK ORDINAL
SBN NOPE
MJN CEN1 IF PSEUDO-EQUIPMENT
ADN NOPE
SBD CM+2
PJN CEN1 IF ORDINAL BEYOND EST MAXIMUM
SFA EST,AB+4 READ EST ENTRY
ADK EQDE
CRD CM
ADK EQAE-EQDE READ EQUIPMENT ASSIGNMENT
CRD SR
LDD CM+3
NJN CEN2 IF EQUIPMENT DEFINED
CEN1 JMP KIE *INCORRECT ENTRY*
CEN2 STM CENA SAVE DEVICE MNEMONIC
LDD T7 CHECK CURRENT DEVICE STATE
STD AB+3
LMD CM
ERRNZ ONES-0 CODE DEPENDS ON VALUE
ERRNZ IDES-1 CODE DEPENDS ON VALUE
ERRNZ OFES-2 CODE DEPENDS ON VALUE
ERRNZ DWES-3 CODE DEPENDS ON VALUE
LPN 3
ZJN CEN1 IF NO STATE CHANGE
LMD T7
LMN 3
NJN CEN4 IF DEVICE NOT DOWN
LDD SR+4
NJN CEN1 IF ASSIGNED
LDN CM
STD T0
CEN3 AOD T0 ADVANCE CHANNEL BYTE INDEX
LMN CM+3
ZJN CEN1 IF BOTH POSSIBLE CHANNELS CHECKED
LDI T0
SHN -11 POSITION CHANNEL STATUS
LMN 4
NJN CEN3 IF NOT UP AND ACCESSIBLE
CEN4 LDD CM
SHN 21-13
LJM CENX RETURN
CENA CON 0 DEVICE MNEMONIC
C1R SPACE 4,10
** C1R - CALL *1DS* AND REENTER.
*
* USES CM - CM+4.
*
* CALLS C1D.
C1R3 JMP KIE INCORRECT ENTRY
C1R LDC /1DS/SCDF+/1DS/LOCK PROCESS *1DS* CALL
C1R1 RJM C1D
LDC C1R2 SET REENTRY ADDRESS
STM /KEYBOARD/KCRB
C1R2 LDC /1DS/DSDL
CRD CM
LDD CM
NJP CLP1 IF *1DS* NOT COMPLETE
LDC /1DS/DSDL+1
CRD CM
LDD CM
NJN C1R3 IF INVALID CALL
JMP KBR RETURN
SPACE 4,10
CMDEND
COMMAND (ENTER TIME.),CMR
TIM SPACE 4,10
** SYNTAX TABLE.
ENTRY TIM
TME ENTER (TIME. <02<09.<05<09.<05<09.),,SDF,ERL
ENTRY DAT
DTE ENTER (DATE. <09<09/<01<09/<03<09.),,SDF,ERL
CON 0 END OF TABLE
PD SPACE 4,10
** DIRECT CELLS.
PD EQU SR PACKED DATE AND TIME
TME SPACE 4,10
*** TIME. HH.MM.SS.
*
* ENTER SYSTEM TIME.
ENTRY TME
LDK JDAL READ DATE
CRM JDAT,ON
LDM KBUF+6 CHECK LEADING HOUR
LMN 1R2
NJN TME1 IF NOT *2*
LDM KBUF+7 CHECK NEXT HOUR
SBN 1R4
MJN TME1 IF .LE. 3
JMP KIE *INCORRECT ENTRY*
TME1 LDN 4 SET ACCOUNT LOGGING BIT
RAM /KEYBOARD/LKBA
LDN 0
RJM C1D CHECK FOR COMMAND LOGGING
LDC TME1.1 SET REENTRY ADDRESS
STM /KEYBOARD/KCRB
TME1.1 LDC /1DS/DSDL
CRD CM
LDD CM
ZJN TME1.2 IF *1DS* COMPLETE
LJM CLP1 REENTER
TME1.2 LDN PDTL READ PACKED DATE AND TIME
CRD PD
LDK DTEL READ DATE
CRD DT
LDC TMEA ASSEMBLE TIME
STD T1 SET ASSEMBLY
LDC KBUF+5 SET CHARACTER ADDRESS
STD T2
STD CA
TME2 LDI T2
SHN 6
LMM 1,T2
STI T1
AOD T1
LDN 2
RAD T2
LMC KBUF+5+2*5
NJN TME2 IF MORE CHARACTERS
LDD PD+3 CLEAR HOURS
SCN 77
STD PD+3
RJM ADD ASSEMBLE HOURS
RAD PD+3
AOD CA ASSEMBLE MINUTES
RJM ADD
SHN 6
STD PD+4
AOD CA ASSEMBLE SECONDS
RJM ADD
RAD PD+4
LDN ZERL
CRD AB
CRD CM
LDD MA
ADN 1
STD CM+2
CWM JDAT,ON WRITE DATE AND TIME WORDS TO BUFFER
CWD PD
ADN 1
CWM TMEA,ON
CWD DT
ADN 1 WRITE DAY LIMIT (UNCHANGED)
CWD AB
LDN EDTS SET SUBFUNCTION
STD CM+1
MONITOR DSRM ENTER DATE/TIME
JMP KBR RETURN
TMEA BSS 5 ASSEMBLY BUFFER FOR TIME
ADD SPACE 4,10
** ADD - ASSEMBLE DECIMAL DIGITS.
*
* ENTRY (CA) = CHARACTER ADDRESS.
*
* EXIT (A) = ASSEMBLY.
* (CA) ADVANCED.
*
* USES CA, T0.
ADD SUBR ENTRY/EXIT
AOD CA
LDI CA UPPER DIGIT * 10
SBN 1R0
STD T0
SHN 2
ADD T0
SHN 1
STD T0
AOD CA ADD LOWER DIGIT
LDI CA
SBN 1R0
ADD T0
UJN ADDX RETURN
SPACE 4,10
CMDEND
COMMAND (JOB CONTROL REQUESTS - CLASS.),CMR
CLA SPACE 4,10
*** CLASS,OT,C1,C2,...,CN.
*
* TOGGLE SERVICE CLASS MASK BIT FOR SPECIFIED ORIGIN TYPE.
*
* OT ORIGIN TYPE. (BC, EI, IA, RB, TX)
* CN TWO CHARACTER SERVICE CLASS MNEMONIC.
* *ALL* OR *NUL* ARE ALSO ACCEPTED.
ENTRY CLA
LDM 2,CA
LMN 1R,
ZJN CLA2 IF VALID SEPARATOR
CLA1 JMP KIE *INCORRECT ENTRY*
CLA2 RJM SOT SEARCH FOR VALID ORIGIN TYPE
LDK JBCP GET SCT ADDRESS
CRD CM
LDD CM GET CURRENT SCT ENTRY
SHN 14
ADD CM+1
ADD T2
CRD SR
LDN 2 GET FIRST SERVICE CLASS
RAD CA
LDM 3,CA CHECK FOR *ALL* OR *NUL*
SHN 6
LMM 4,CA
LMC 2RL.
NJN CLA3 IF NOT *ALL* OR *NUL*
LDM 1,CA
SHN 6
LMM 2,CA
LMC 2RNU
ZJP CLA6 IF *NUL* SELECTED
LMC 2RAL&2RNU
ZJP CLA7 IF *ALL* SELECTED
* PROCESS SERVICE CLASS PARAMETERS.
CLA3 AOD CA SKIP SEPARATOR
LDC TNSC
RJM SPT SEARCH FOR VALID SERVICE CLASS
STD T3
LDM TSCM,T3 GET SERVICE CLASS VALIDATION BIT
ZJP CLA1 IF INCORRECT SERVICE CLASS
STD T5
LDN SR+5 DETERMINE BYTE TO TOGGLE BIT IN
STD T1
CLA4 SOD T1
LCN 12D
RAD T3
PJN CLA4 IF NOT CORRECT BYTE
LDI T1 TOGGLE VALIDATION BIT
LMD T5
STI T1
LDN 2
RAD CA
LDI CA
LMN 1R,
ZJN CLA3 IF NOT END OF ENTRY
LMN 1R.&1R,
NJP CLA1 IF NOT VALID TERMINATOR
CLA5 LDD CM STORE SCT ENTRY
SHN 14
ADD CM+1
ADD T2
CWD SR
JMP KBR RETURN
CLA6 STD SR+3
UJN CLA8 CLEAR ALL MASK BITS
CLA7 LDK A2MK SET ALL MASK BITS
STD SR+3
LDK A1MK
CLA8 STD SR+4
UJN CLA5 STORE SCT ENTRY
SOT SPACE 4,10
** SOT - SEARCH FOR VALID ORIGIN TYPE.
*
* ENTRY ((CA - CA+1)) = ORIGIN TYPE PARAMETER.
*
* EXIT (T2) = ORIGIN TYPE VALUE.
*
* ERROR TO *KBR* IF ORIGIN TYPE INCORRECT.
* ERROR TO *KIE* IF ORIGIN TYPE INVALID.
*
* USES T1, T2, T3.
SOT2 AOD T1 RETURN ORIGIN TYPE VALUE
LDM TCOT,T1
STD T2
SOT SUBR ENTRY/EXIT
LDN 0 INITIALIZE TABLE INDEX
STD T1
LDI CA ASSEMBLE ORIGIN TYPE
SHN 6
LMM 1,CA
STD T3
LDM TCOT,T1 SEARCH TABLE FOR ORIGIN TYPE
SOT1 LMD T3
ZJN SOT2 IF MATCH FOUND
LDN 2 INCREMENT TABLE INDEX
RAD T1
LDM TCOT,T1
NJN SOT1 IF NOT END OF TABLE
JMP KIE PROCESS INVALID ENTRY
SPT SPACE 4,10
** SPT - SEARCH PARAMETER TABLE.
*
* ENTRY (A) = FWA OF PARAMETER TABLE.
* (CA) = CHARACTER ADDRESS.
*
* EXIT (A) = INDEX OF ENTRY FOUND.
*
* USES T1, T3, T5.
SPT2 LDD T5
SBD T3
SPT SUBR ENTRY/EXIT
STD T3
STD T5
LDI CA ASSEMBLE PARAMETER NAME
SHN 6
LMM 1,CA
STD T1
LDI T5
SPT1 LMD T1
ZJN SPT2 IF MATCH FOUND
AOD T5 INCREMENT TABLE INDEX
LDI T5
NJN SPT1 IF NOT END OF TABLE
JMP KIE *INCORRECT ENTRY*
TCOT SPACE 4,10
** TCOT - TABLE OF *CLASS* ORIGIN TYPES.
TCOT BSS 0
CON 2RBC,BCOT LOCAL BATCH
CON 2RRB,RBOT REMOTE BATCH
CON 2RIA,IAOT INTERACTIVE
CON 2REI,EIOT REMOTE BATCH
CON 2RTX,TXOT INTERACTIVE
CON 0
TSCM SPACE 4,10
** TSCM - TABLE OF SERVICE CLASS MASK BITS.
*
* THIS TABLE IS INDEXED BY SERVICE CLASS VALUES.
*
* ONLY SERVICE CLASSES DEFINED IN THIS TABLE ARE
* ALLOWED ON THE *PCLASS* AND *CLASS* COMMANDS.
TSCM INDEX
LIST D
.SCL HERE
LIST *
INDEX MXSC
TNSC SPACE 4,10
** TNSC - TABLE OF TWO-CHARACTER SERVICE CLASS TYPES.
LIST D,G
TNSC DATA H+"NMSC"+
LIST *
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (JOB CONTROL REQUESTS - PCLASS.),CMR
PCL SPACE 4,10
** PCLASS,P0,P1,...,P7.
*
* SET PRIORITY ORDERED SERVICE CLASSES.
*
* EACH PARAMETER SETS THE SERVICE CLASS FOR THE INDICATED
* PRIORITY LEVEL. THE DEFAULT FOR EACH NULL PARAMETER IS
* ZERO.
PCL4 JMP KIE PROCESS INCORRECT ENTRY
ENTRY PCL
ERRNZ SR+5-SH SCRATCH STORAGE NOT CONTIGUOUS
LDN ZERL INITIALIZE SERVICE CLASSES
CRD SR
CRD SH
LDN 0 INITIALIZE PRIORITY INDEX
STD T2
LDI CA
LMN 1R.
ZJN PCL3 IF TERMINATOR
PCL1 LDI CA
LMN 1R,
ZJN PCL2 IF NULL PARAMETER
LDC TNSC
RJM SPT SEARCH FOR VALID SERVICE CLASS
STD T3
LDM TSCM,T3
ZJN PCL4 IF SERVICE CLASS NOT ALLOWED
LDD T1 SET SERVICE CLASS INTO SCT
STM SR,T2
LDN 2
RAD CA
LDI CA
LMN 1R.
ZJN PCL3 IF TERMINATOR
PCL2 AOD CA
LDI CA
LMN 1R.
ZJN PCL3 IF END OF ENTRY
AOD T2
SBN 10
NJN PCL1 IF NOT MAXIMUM PRIORITIES
LJM PCL4 PROCESS INCORRECT ENTRY
PCL3 LDK JBCP SET PRIORITY LEVEL SERVICE CLASSES
CRD CM
LDD CM
SHN 14
ADD CM+1
ADN PLSC
CWD SR
ADN 1
CWD SH
JMP KBR RETURN
SPT SPACE 4,10
** SPT - SEARCH PARAMETER TABLE.
*
* ENTRY (A) = FWA OF PARAMETER TABLE.
* (CA) = CHARACTER ADDRESS.
*
* EXIT (A) = INDEX OF ENTRY FOUND.
*
* USES T1, T3, T5.
SPT2 LDD T5
SBD T3
SPT SUBR ENTRY/EXIT
STD T3
STD T5
LDI CA ASSEMBLE PARAMETER NAME
SHN 6
LMM 1,CA
STD T1
LDI T5
SPT1 LMD T1
ZJN SPT2 IF MATCH FOUND
AOD T5 INCREMENT TABLE INDEX
LDI T5
NJN SPT1 IF NOT END OF TABLE
JMP KIE *INCORRECT ENTRY*
TSCM SPACE 4,10
** TSCM - TABLE OF SERVICE CLASS MASK BITS.
*
* THIS TABLE IS INDEXED BY SERVICE CLASS VALUES.
*
* ONLY SERVICE CLASSES DEFINED IN THIS TABLE ARE
* ALLOWED ON THE *PCLASS* AND *CLASS* COMMANDS.
*CALL COMSSCD
TSCM INDEX
LIST D
.SCL HERE
LIST *
INDEX MXSC
TNSC SPACE 4,10
** TNSC - TABLE OF TWO-CHARACTER SERVICE CLASS TYPES.
LIST D,G
TNSC DATA H+"NMSC"+
LIST *
CON 0 END OF TABLE
SPACE 4,10
CMDEND
COMMAND (PROCESS THRESHOLDS.)
THR SPACE 4,10
*** THRESHOLD,TH=XXXX,E1,E2,...,EN.
*
* TH = VF - SET VALIDATION FAILURE THRESHOLD.
* RA - SET RESTRICTED ACTIVITY THRESHOLD.
* LS - SET LOW SPACE THRESHOLD.
* RE - SET RECOVERED ERROR THRESHOLD.
* UE - SET UNRECOVERED ERROR THRESHOLD.
* XXXX = THRESHOLD VALUE.
* = * TO SET DEFAULT VALUES.
* EN = EST ORDINAL ON WHICH TO SET THRESHOLD.
ENTRY THR
LDN 0 CHECK THRESHOLD TYPE
STD T6
LDI CA
SHN 6
ADM 1,CA
STD T1
LDM TTHR,T6
THR1 LMD T1
ZJN THR3 IF MATCH FOUND
AOD T6
LDM TTHR,T6
NJN THR1 IF MORE ENTRIES TO COMPARE
THR2 JMP KIE *INCORRECT ENTRY*
THR3 LDN 2 ADVANCE KEYBOARD INDEX
RAD CA
LDI CA
LMN 1R=
NJN THR2 IF INCORRECT SEPARATOR
AOD CA
LDI CA
LMN 1R*
STD T7
NJN THR4 IF NOT DEFAULT
AOD CA
UJN THR5 PROCESS EQUIPMENT LIST
THR4 RJM ASD GET THRESHOLD VALUE
LDD AB+4
LPC 3777
STM TDTV,T6
THR5 LDI CA CHECK SEPARATOR CHARACTER
LMN 1R,
ZJN THR7 IF VALID SEPARATOR
THR6 JMP KIE *INCORRECT ENTRY*
THR7 LDN 5
SBD T6
SHN 2
STD T0 SET BIT NUMBER OF OPERATOR NOTIFIED FLAG
SHN 1
ADD T0
SBN 1
SHN 6
STM THRA+1
LDK ESTP
CRD T1
THR8 AOD CA GET NEXT EQUIPMENT NUMBER
RJM ASD
LDD AB
ADD AB+1
ADD AB+2
ADD AB+3
NJN THR6 IF ORDINAL IS TOO LARGE
LDD AB+4
SBD T1+3
THR9 PJN THR6 IF ORDINAL BEYOND MASS STORAGE LIMIT
SFA EST,AB+4
ADK EQDE
CRD CM
LDD CM
SHN 21-13
PJN THR9 IF NOT MASS STORAGE DEVICE
LDI CA
LMN 1R.
ZJN THR10 IF VALID TERMINATOR
LMN 1R,&1R.
NJN THR9 IF NOT VALID SEPARATOR
THR10 LDD CM+4
SHN 3
ADK TDGL
CRD SH
ADN THLL-TDGL READ MST THRESHOLD WORD
CRD SR
LDD T7
NJN THR11 IF NOT ENTERING DEFAULT VALUE
LDD SH
SHN -3
STM TDTV+1 SET DEFAULT VALUES FOR TRACK THRESHOLDS
SHN -1
STM TDTV+2
THR11 LDM TDTV,T6 STORE NEW THRESHOLD
STM SR,T6
LDD CM+4 WRITE MST THRESHOLD WORD
SHN 3
ADN THLL
CWD SR
ADN CTLL-THLL CLEAR OPERATOR NOTIFIED FLAG
STD CM+4
SHN -14
STD CM+3
LDN 1
STD CM+1
LDD MA
CWM THRA,CM+1
MONITOR UTEM
LDI CA CHECK NEXT CHARACTER
LMN 1R,
ZJP THR8 IF MORE EST ORDINALS
JMP KBR RETURN
THRA VFD 1/0,5/0,6/1,6/0,42/0
TTHR SPACE 4,10
** TTHR - TABLE OF THRESHOLDS.
TTHR BSS 0
LOC 0
CON 2RVF VERIFICATION FAILURES
CON 2RRA RESTRICT ACTIVITY
CON 2RLS LOW SPACE
CON 2RRE RECOVERED ERRORS
CON 2RUE UNRECOVERED ERRORS
LOC *O
CON 0
TDTV CON 1 VERIFICATION FAILURES
CON 0 RESTRICT ACTIVITY (=SIZE/8)
CON 0 LOW SPACE (=SIZE/16)
CON 50 RECOVERED ERRORS
CON 1 UNRECOVERED ERRORS
SPACE 4,10
CMDEND
COMMAND (SECURITY FUNCTIONS - QUEUES.),CMR
OQSH SPACE 4,10
*** OQSH=NNNNNNN.
* SELECTS OUTPUT SPECIAL HANDLING LEVEL.
* NNNNNNN OUTPUT QUEUE SPECIAL HANDLING LEVEL.
ENTRY OQS
RJM ASN ASSEMBLE PARAMETER
LDN AB SET POINTER TO PARAMETER
RJM VAL SEARCH TABLE FOR PARAMETER
MJN OQS1 IF PARAMETER NOT FOUND
STD T3
LDN SSML CLEAR OQSH
CRD CM
LDD CM
SHN 14
SCN 77
LMD T3 SET NEW OQSH
SHN 6
STD CM
LDN SSML
CWD CM
JMP KBR RETURN
OQS1 JMP KIE INCORRECT ENTRY
REL SPACE 4,10
*** RELEASE,JSN.
*
* SETS THE OPERATOR RELEASE BIT FOR THE QFT ENTRY.
ENTRY REL
RJM ASN ASSEMBLE JSN
LDD AB+2
NJN REL3 IF JSN .GT. 4 CHARACTERS
STD T1 INITIALIZE QFT ORDINAL
LDK QFTP GET MAXIMUM NUMBER OF QFT ENTRIES
CRD CM
LDD CM+2
STD T2
REL1 SFA QFT,T1 GET QFT ENTRY
CRD CM
LDD CM COMPARE JSN TO REQUESTED JSN
LMD AB
NJN REL2 IF NO MATCH
LDD CM+1
LMD AB+1
ZJN REL4 IF MATCH
REL2 AOD T1 INCREMENT QFT ORDINAL
SBD T2
NJN REL1 IF MORE ENTRIES TO CHECK
REL3 JMP KIE *INCORRECT ENTRY*
REL4 SFA QFT,T1 SET UP *UTEM* PARAMETERS
STD CM+4
SHN -14
STD CM+3
LDN 0
STD CM+2
LDN 1 NUMBER OF REQUESTS TO BE PROCESSED
STD CM+1
LDD MA WRITE *UTEM* REQUEST WORD
CWM RELA,ON
MONITOR UTEM
LDD CM+1
NJN REL3 IF FUNCTION FAILED
LJM KBR RETURN
RELA VFD 1/0,5/INSQ,6/1,6/18D,42/1
SPACE 4,10
* COMMON DECKS.
QUAL
SCH$ SET 1
QUAL *
*CALL COMPVLC
SPACE 4,10
CMDEND
COMMAND (SECURITY FUNCTIONS - SECUREQ.),CMR
SECUREQ SPACE 4,10
*** SECUREQ,EQ,LA=XXXXXXX,UA=YYYYYYY.
*
* SET EQUIPMENT ACCESS LIMITS.
*
* EQ EST ORDINAL OF EQUIPMENT.
* XXXXXXX LOWER BOUND.
* YYYYYYY UPPER BOUND.
ENTRY SCQ
LDN 3 RESET BOUNDS FLAG
STD T8
RJM ASD ASSEMBLE EST ORDINAL
LDN ESTP
CRD SH
LDD AB+4 CHECK EST ORDINAL
STD CM+1
SBD SH+2
PJN SCQ1 IF INCORRECT EST ORDINAL
SFA EST,AB+4 GET EST ENTRY
ADK EQDE
CRD SH
LDC TURE FWA OF UNIT RECORD EQUIPMENT MNEMONICS
STD T3
LDD SH+3
ZJN SCQ1 IF NULL ENTRY
RJM SST CHECK IF UNIT RECORD EQUIPMENT
LDI CA
LMN 1R,
ZJN SCQ2 IF SEPARATOR A COMMA
SCQ1 LJM KIE INCORRECT COMMAND
SCQ2 AOD CA CHECK PREFIX
LDC TBDP
STD T3
LDN 0
RJM SST
STD T5
LDN 2
RAD CA
LDI CA CHECK SEPARATOR
LMN 1R=
NJN SCQ1 IF SEPARATOR NOT AN =
AOD CA
RJM ASN ASSEMBLE PARAMETER
LDN AB SET POINTER TO PARAMETER
RJM VAL SEARCH TABLE FOR PARAMETER
MJN SCQ1 IF MATCH NOT FOUND
STD T3
LDD T5
ZJN SCQ3 IF PARAMETER NOT AN UPPER BOUND
LDD T3 SET UPPER BOUND
STD SP+1
LDD T8 UPDATE BOUNDS FLAG
SCN 2
STD T8
UJN SCQ4 CHECK FOR ADDITIONAL PARAMETERS
SCQ3 LDD T3 SET LOWER BOUND
STD SP
LDD T8 UPDATE BOUNDS FLAG
SCN 1
STD T8
SCQ4 LDI CA
LMN 1R.
ZJN SCQ5 IF END OF STATEMENT
LJM SCQ2 PROCESS NEXT PARAMETER
SCQ5 LDD T8
ZJN SCQ7 IF BOTH LOWER AND UPPER BOUNDS PRESENT
SCQ6 JMP KIE INCORRECT PARAMETER
SCQ7 LDD SP+1
SBD SP
MJN SCQ6 IF LOWER .GT. UPPER BOUND
LDD SP INSERT LIMITS INTO *SEQM* CALL
SHN 3
LMD SP+1
LMC 4000 SET *MSEQ* ACCOUNT FILE MESSAGE FLAG
STD AB+3
LPN 77
STM SCQA+4
LDD CM+1 SET EST ORDINAL
STD AB+4
SFA EST STORE EST ENTRY ADDRESS
STD CM+4
SHN -14
STD CM+3
LDN 1 STORE REQUEST COUNT
STD CM+1
LDD MA PLACE REQUEST IN MESSAGE BUFFER
CWM SCQA,ON
MONITOR UTEM SET LIMITS IN EST ENTRY
LDK /1DS/SAMF
JMP KAR PROCESS *1DS* REQUEST
SCQA VFD 1/0,5/EQAE,6/6,6/12D,42/0 *UTEM* REQUEST
SPACE 4,10
** SST - SEARCH STRING TABLE.
*
* ENTRY (A) = 2 CHARACTERS, RIGHT JUSTIFIED.
* = 0, IF CHARACTERS IN (CA).
* (T3) = FWA PARAMETER TABLE.
* (CA) = CHARACTER ADDRESS.
*
* EXIT (A) = INDEX OF ENTRY FOUND.
*
* USES T1, T2.
SST3 LDD T2 RETURN WITH INDEX
SBD T3
SST SUBR ENTRY/EXIT
NJN SST1 IF CHARACTER IN ACCUMULATOR
LDI CA ASSEMBLE PARAMETER NAME
SHN 6
LMM 1,CA
SST1 STD T1
LDD T3 SET TABLE FWA
STD T2
LDI T2
SST2 LMD T1
ZJN SST3 IF MATCH FOUND
AOD T2 ADVANCE TABLE
LDI T2
NJN SST2 IF NOT END OF TABLE
JMP KIE *INCORRECT ENTRY*
TBDP SPACE 4,10
** TBDP - TABLE OF BOUNDS PARAMETERS.
TBDP BSS 0
CON 2RLA
CON 2RUA
CON 0
SPACE 4,10
** TURE - UNIT RECORD EQUIPMENT MNEMONICS.
TURE BSS 0
DATA 2RCP
DATA 2RCR
DATA 2RLQ
DATA 2RLR
DATA 2RLS
DATA 2RLT
DATA 2RLX
DATA 2RLY
CON 0
SPACE 4,10
* COMMON DECKS.
QUAL
SCH$ SET 1
QUAL *
*CALL COMPVLC
SPACE 4,10
CMDEND
COMMAND (SECURITY FUNCTIONS - SECURES.),CMR
SECURES SPACE 4,10
*** SECURES,OT,LA=XXXXXXX,UA=YYYYYYY.
* SET THE SYSTEM ACCESS LEVEL LIMITS (OT = SY).
* SET ORIGIN TYPE ACCESS LEVEL LIMITS (OT = BC, RB, IA).
* XXXXXXX LOWER BOUND.
* YYYYYYY UPPER BOUND.
ENTRY SCU
LDK INWL CHECK SYSTEM ACCESS LIMITS CHANGE STATUS
CRD CM
LDD CM+3
SHN 21-2
MJN SCU1 IF CHANGE IN PROGRESS
LDN 10 SET INITIAL VALUES
STD SP
STD SP+1
LDC TJOT CHECK ORIGIN TYPE
RJM SPT
SHN -1
STD T5
RAM SCUA
LDN 2
RAD CA
LDI CA
LMN 1R,
ZJN SCU2 IF SEPARATOR A COMMA
SCU1 LJM KIE INCORRECT COMMAND
SCU2 AOD CA CHECK PREFIX
LDC TBDP
RJM SPT
STD T9
LDN 2
RAD CA
LDI CA
LMN 1R=
NJN SCU1 IF SEPARATOR NOT AN *=*
AOD CA
RJM ASN
LDN AB SET POINTER TO PARAMETER
RJM VAL SEARCH TABLE FOR PARAMETER
MJN SCU1 IF PARAMETER NOT FOUND
STM SP,T9 SET BOUND
LDI CA
LMN 1R.
NJN SCU2 IF NOT END OF COMMAND
STD T7 ASSUME ONE ORIGIN TYPE TO BE CHANGED
LDD SP+1
SBD SP
MJN SCU6 IF LOWER BOUND .GT. UPPER BOUND
LDN 0 GET CURRENT SYSTEM ACCESS LIMITS
RJM RJC
CRD AB
LDD AB+1
LPN 77
SHN -3+22
STD T3
SHN -22+3
STD T4
LDD T5
LMK SYOT
ZJN SCU7 IF SYSTEM ORIGIN TYPE
LDD T4
SBD SP+1
MJN SCU6 IF UPPER BOUND .GT. SYSTEM UPPER BOUND
LDD T3
SBD SP
MJN SCU9 IF LOWER BOUND .GE. SYSTEM LOWER BOUND
ZJN SCU9 IF LOWER BOUND .GE. SYSTEM LOWER BOUND
SCU6 JMP KIE INCORRECT PARAMETER
SCU7 LDD SP CHECK BOTH *LA* AND *UA* ENTERED
SCN 7
ADD SP+1
SCN 7
NJN SCU6 IF BOTH PARAMETERS NOT ENTERED
LDD SF
ZJN SCU8 IF UNSECURE SYSTEM
SBN 1
ZJN SCU8 IF VALID TO RAISE OR LOWER LIMITS
SBN 3-1
ZJN SCU6 IF INCORRECT TO RAISE OR LOWER LIMITS
LDD SP+1
SBD T4
MJN SCU6 IF LOWERING LIMITS
LDD SP
SBD T3
MJN SCU6 IF LOWERING LIMITS
SCU8 LDN IAOT SET TO FIX ALL ORIGIN TYPE BOUNDS
STD T7
SCU9 LDD SP
SHN 3
RAD SP+1
SCU10 LDN 0 GET SERVICE CONTROL TABLE ADDRESS
RJM RJC
ADD T5 GET SERVICE CONTROL WORD
CRD AB
LDD AB+1 SET BOUND IN WORD
SCN 77
LMD SP+1
STD AB+1
LDN 0 GET SERVICE CONTROL TABLE ADDRESS
RJM RJC
ADD T5 WRITE SERVICE CONTROL WORD
CWD AB
AOD T5
SOD T7
PJN SCU10 IF MORE BOUNDS TO SET (OT = *SY* ONLY)
LDD SF
ZJN SCU11 IF UNSECURED SYSTEM
LDN 1
STD CM+1 SET OPTION COUNT
STD CM+2 DO NOT DROP PP
LDD MA
CWM SCUB,ON
MONITOR UADM SET ACCESS LIMITS CHANGED FLAG
SCU11 LDD SP+1 NEW ACCESS LEVEL LIMITS
STD AB+3
LDN 0 ORIGIN TYPE
SCUA EQU *-1
STD AB+4
LDK /1DS/SAMF
JMP KAR PROCESS *1DS* REQUEST
SCUB CON LIOS INCREMENT BY ONE
CON INWL
CON 14D*100+1 BIT ADDRESS AND FIELD WIDTH
SPACE 4,10
** SPT - SEARCH PARAMETER TABLE.
*
* ENTRY (A) = FWA PARAMETER TABLE.
* (CA) = CHARACTER ADDRESS.
*
* EXIT (A) = INDEX OF ENTRY FOUND.
*
* USES T1, T2, T3.
SPT2 LDD T2 RETURN WITH INDEX
SBD T3
SPT SUBR ENTRY/EXIT
STD T2 SET TABLE FWA
STD T3
LDI CA ASSEMBLE PARAMETER NAME
SHN 6
LMM 1,CA
STD T1
LDI T2
SPT1 LMD T1
ZJN SPT2 IF MATCH FOUND
AOD T2
LDI T2
NJN SPT1 IF NOT END OF TABLE
JMP KIE *INCORRECT ENTRY*
TBDP SPACE 4,10
** TBDP - TABLE OF BOUNDS PARAMETERS.
TBDP BSS 0
CON 2RLA
CON 2RUA
CON 0
TJOT SPACE 4,10
** TJOT - TABLE OF JOB ORIGIN TYPES.
TJOT BSS 0
CON 2RSY,6060
CON 2RBC,6060
CON 2REI,2RRB
CON 2RTX,2RIA
CON 0
SPACE 4,10
* COMMON DECKS.
QUAL
SCH$ SET 1
QUAL *
*CALL COMPVLC
SPACE 4,10
CMDEND
COMMAND (TRAP/TRACE COMMANDS - PART 1.),CMR
SPACE 4,10
*** THIS COMMAND OVERLAY WORKS IN CONJUNCTION WITH THE *TRACE*
* BLOCK IN *CPUMTR*. THE TRAP AND TRACE COMMANDS ARE AVAILABLE
* WHEN THE *TRACE* BLOCK IS ENABLED AT DEADSTART AND WHEN
* SYSTEM DEBUG IS ENABLED.
TPF SPACE 4,10
*** TRAP,NFL.
* TRAP,MCT.
* TRAP,EJT.
* TRAP,DJB.
*
* CHECK FOR IRREGULARITIES IN NFL, THE MEMORY CONTROL TABLE
* (MCT), IN THE EJT AND PCPA ENTRIES, OR FOR DEAD JOBS,
* RESPECTIVELY. THE CHECK IS MADE IN *CPUMTR* WHEN EXITING
* MONITOR MODE.
*** TRAP,MEM,W,V,H,L.
* TRAP,CPA,W,V,H,L.
*
* SET A TRAP ON THE CM WORD WITH ABSOLUTE ADDRESS (*TRAP,MEM*)
* OR CPA ADDRESS (*TRAP,CPA*) W FOR VALUE V. H AND L
* (OPTIONAL - DEFAULTS ARE 59 AND 0) ARE THE HIGH AND LOW BIT
* POSITIONS, IN DECIMAL, OF THE FIELD IN THE WORD TO CHECK.
* IF V IS *N*, THE TRAP IS FOR ANY NON-ZERO VALUE IN THE FIELD.
* THE TRAP CHECK IS MADE IN *CPUMTR* WHEN EXITING MONITOR MODE.
* FOR *TRAP,CPA*, ALL OF THE CPA-S AND PCPA-S ARE CHECKED FOR
* WORD W HAVING VALUE V.
*** TRAP.
*
* CLEAR TRAP.
*** TRACE,SET,ABS,ADD1,ADD2.
* TRACE,SET,CPA,ADD1,ADD2.
*
* SET THE ADDRESSES OF THE ABSOLUTE OR CPA WORDS TO CAPTURE
* WHEN TRACE IS ENABLED. ADD1 AND ADD2 MUST BE ENTERED AS
* OCTAL DIGITS. *TRACE,MTR* OR *TRACE,PPU* ARE USED TO SELECT
* THE FUNCTIONS TO TRACE. TRACE DATA IS COLLECTED BY *CPUMTR*
* IMMEDIATELY BEFORE THE SELECTED FUNCTION IS PROCESSED.
ENTRY TCA *TRACE,SET,ABS*
LDN 2 ASSEMBLE ABSOLUTE ADDRESS
UJN TCC1 CONTINUE
ENTRY TCC *TRACE,SET,CPA*
LDN 1
TCC1 STD T8
LDC KBUF+16
STD CA
RJM AVA ASSEMBLE FIRST ADDRESS
LDD MA SAVE ADDRESS
CWD AB
CRD CM
AOD CA
RJM AVA ASSEMBLE SECOND ADDRESS
LDD MA
CWD AB
CRD CM-2
CWD CM
LDD T8
SHN 1
UJN TPF2 SEND MONITOR FUNCTION
ENTRY TPN
LDN 10
UJN TPF1 SET NFL CHECK
ENTRY TPM
LDN 4
UJN TPF1 SET MCT CHECK
ENTRY TPD
LDN 2
UJN TPF1 SET DEAD JOB CHECK
ENTRY TPJ
LDN 1
UJN TPF1 SET EJT/PCPA CHECK
ENTRY TPA
LDN 0 CLEAR TRAP
TPF1 SHN 6
TPF2 STD CM+1 SET/CLEAR TRAP/TRACE FLAGS
LJM TPF8 SEND MONITOR FUNCTION
ENTRY TPC
LDN 1
UJN TPF3 SET CPA TRAP
ENTRY TPF
LDN 2 SET CM TRAP
TPF3 STD T8
LDC KBUF+11
STD CA
RJM AVA ASSEMBLE AND VALIDATE ADDRESS
LDD MA SAVE ADDRESS FOR MONITOR FUNCTION
CWD AB
CRD CM
AOD CA ASSEMBLE VALUE
RJM ASD
* LDI CA
LMN 1RN
NJN TPF4 IF NOT *N*
AOD CA ADVANCE PAST *N*
LDN 40 SET TRAP-ON-ANY-NON-ZERO-VALUE FLAG
STD CM+1
LDK ZERL ENSURE MB+1 CLEAR
CRD AB
TPF4 LDD MA SAVE VALUE IN MB+1
ADN 1
CWD AB
LDK ZERL PRESET FIELD DELIMITER WORD
CRD AB
LDN 59D
STD AB+2
LDI CA
LMN 1R.
ZJN TPF7 IF TRAP ON WHOLE WORD
RJM ADD ASSEMBLE HIGH BIT
STD T7 SAVE HIGH BIT
SBN 60D
MJN TPF6 IF HIGH BIT .LT. 60D
TPF5 JMP KIE *INCORRECT ENTRY.*
TPF6 RJM ADD ASSEMBLE LOW BIT
STD AB+4 SAVE LOW BIT
LDD T7
SBD T1
MJN TPF5 IF LOW .GT. HIGH
STD AB+2 SAVE DIFFERENCE
TPF7 LDD MA SAVE FIELD DELIMITERS IN MB+0
CWD AB
LDD T8 SET TRAP TYPE
SHN 12
RAD CM+1
TPF8 MONITOR TRCM SEND MONITOR FUNCTION
JMP KBR RETURN
ADD SPACE 4,10
** ADD - ASSEMBLE TWO DECIMAL DIGITS.
*
* EXIT (A) = (T1) = ASSEMBLED DIGIT(S).
* TO *KIE* IF ASSEMBLY ERROR.
*
* USES T1 - T3.
ADD2 JMP KIE *INCORRECT ENTRY.*
ADD3 LDD T1 RETURN ASSEMBLED DIGIT(S)
ADD SUBR ENTRY/EXIT
LDN 0
STD T1 ASSEMBLED DIGITS
STD T2 DIGIT COUNTER
ADD1 AOD CA ADVANCE CHARACTER
LDI CA
ZJN ADD3 IF END OF STRING
SBN 1R9+1
PJN ADD3 IF SEPARATOR
ADN 1R9+1-1R0
MJN ADD2 IF LETTER
STD T3 SAVE DIGIT
AOD T2
SBN 3
PJN ADD2 IF MORE THAN TWO DIGITS
LDD T1 MULTIPLY TOP DIGIT BY 10D
SHN 2
RAD T1
SHN 1
ADD T3 ADD SECOND DIGIT
STD T1
UJN ADD1 CHECK NEXT DIGIT
AVA SPACE 4,10
** AVA - ASSEMBLE AND VALIDATE ADDRESS.
*
* ENTRY (T8) = 2 IF VALIDATE ABSOLUTE ADDRESS.
* = 1 IF VALIDATE CPA ADDRESS.
* (CA) POSITIONED TO FIRST DIGIT.
*
* EXIT (AB+3 - AB+4) = ASSEMBLED ADDRESS.
* (CA) ADVANCED TO SEPARATOR.
* TO *KIE* IF ADDRESS OUT OF RANGE.
*
* USES T1 - T1+4.
AVA1 JMP KIE *INCORRECT ENTRY.*
AVA2 LDD AB+3
NJN AVA1 IF ADDRESS TOO BIG
LDD AB+4
SBK CPAS
AVA3 PJN AVA1 IF ADDRESS OUT OF RANGE
AVA SUBR ENTRY/EXIT
RJM ASD
LDD AB
ADD AB+1
ADD AB+2
NJN AVA1 IF OVER EIGHT DIGITS
LDD T8
LMN 2
NJN AVA2 IF NOT VALIDATING ABSOLUTE ADDRESS
LDK MABL CHECK ADDRESS AGAINST CM FL
CRD T1
LDD AB+4
SHN -6
SHN 14
LMD AB+3
SHN 6
SBD T1+3
SHN 6
SBD T1+2
SHN 14
UJN AVA3 CHECK IF ADDRESS TOO BIG
SPACE 4,10
CMDEND
COMMAND (TRAP/TRACE COMMANDS - PART 2.),CMR
SPACE 4,10
*** THIS COMMAND OVERLAY WORKS IN CONJUNCTION WITH THE *TRACE*
* BLOCK IN *CPUMTR*. THE TRAP AND TRACE COMMANDS ARE AVAILABLE
* WHEN THE *TRACE* BLOCK IS ENABLED AT DEADSTART AND WHEN
* SYSTEM DEBUG IS ENABLED.
TRA SPACE 4,10
*** TRACE,PPU,FCN1,FCN2,FCN3,FCN4,FCN5.
*
* TRACE THE SPECIFIED MONITOR FUNCTIONS. UP TO FIVE FUNCTIONS
* MAY BE SELECTED. *MTR* MONITOR FUNCTIONS MAY NOT BE
* SELECTED. TRACE DATA IS COLLECTED BY *CPUMTR* IMMEDIATELY
* BEFORE THE SELECTED FUNCTION IS PROCESSED. EACH TRACE BUFFER
* ENTRY CONSISTS OF THE FOLLOWING WORDS:
*
* TIME STAMP
* IR
* OR
* MB
* ABS1 (DEFAULT = SMRL)
* ABS2 (DEFAULT = CMCL)
*
* THE FORMAT OF THE TIME STAMP WORD IS: +***DHMSLLL+ WHERE
* DHMS IS BITS 23-0 OF PDTL AND LLL IS BITS 17-0 OF RTCL.
*
* WORDS ABS1 AND ABS2 CAN BE CHANGED BY THE *TRACE,SET,ABS*
* COMMAND.
*** TRACE,MTR,FCN1,FCN2,FCN3,FCN4,FCN5.
*
* TRACE THE SPECIFIED MTR REQUESTS TO CPUMTR. UP TO FIVE
* REQUESTS MAYBE SELECTED. TRACE DATA IS COLLECTED BY *CPUMTR*
* IMMEDIATELY BEFORE THE SELECTED FUNCTION IS PROCESSED. EACH
* TRACE BUFFER ENTRY CONSISTS OF THE FOLLOWING WORDS:
*
* TIME STAMP
* REQUEST
* ABS1 (DEFAULT = SMRL)
* ABS2 (DEFAULT = CMCL)
* *MCT*
*
* *MCT* EXPANDS TO THE FOLLOWING:
* MCT WORD 1
* MCT WORD 2
* CPA1 (DEFAULT = STSW)
* CPA2 (DEFAULT = FLSW)
* TFSW
* JSNE
* ONE FOR EACH ENTRY IN THE MEMORY CONTROL TABLE (MCT).
*
* WORDS CPA1 AND CPA2 CAN BE CHANGED BY THE *TRACE,SET,CPA*
* COMMAND.
*** TRACE,PPU,*.
* TRACE,MTR,*.
*
* TRACE ALL PPU OR MTR FUNCTIONS.
*** TRACE,PPU.
* TRACE,MTR.
*
* CLEAR PPU OR MTR TRACE.
ENTRY TCM
LDN 20 SET TRACE ON PPU FUNCTIONS
STD CM+1
LDN MXPF SET MAXIMUM REQUEST ORDINAL
STD T5
LDC TFTN+MXFM-CPUM-1
STM TRAA
LDN 0 SET NO BIAS
UJN TRA1 ENTER LOOP
ENTRY TCP
LDN 10 SET TRACE ON MTR FUNCTIONS
STD CM+1
LDK MXFM-CPUM+1 SET MAXIMUM REQUEST ORDINAL
STD T5
LDN CPUM-1 PPU REQUEST BIAS
TRA1 STD T4
LDK ZERL CLEAR FUNCTION LIST
CRD SR
LDC KBUF+11
STD CA
LDN 5 INITIALIZE BYTE POINTER
STD T3
TRA2 LDI CA
LMN 1R.
NJN TRA4 IF NOT END OF COMMAND
TRA3 LDD MA WRITE PARAMETER WORD TO MESSAGE BUFFER
CWD SR
MONITOR TRCM
JMP KBR RETURN
TRA4 SOD T3
PJN TRA6 IF .LE. 5 FUNCTIONS REQUESTED
TRA5 JMP KIE *INCORRECT ENTRY.*
TRA6 AOD CA SKIP SEPERATOR
RJM ASN ASSEMBLE FUNCTION NAME
LDI CA
LMN 1R*
NJN TRA7 IF NOT TRACING ALL FUNCTIONS
LDC 1S11 SET TRACE ON ALL FUNCTIONS
STD SR
UJN TRA3 WRITE PARAMETER WORD
TRA7 LDD AB+2
NJN TRA5 IF OVER 4 CHARACTERS
STD T2 INITIALIZE ORDINAL
LDD AB+1 HASH FUNCTION
SHN -11
STD T1
LDD AB
LPN 37
SHN 2
RAD T1
LDD AB
SHN -6
SHN 7
RAD T1
TRA8 AOD T2
SBD T5
ZJN TRA5 IF END OF TABLE AND NO MATCH
LDM TFTN-1,T2
* LDM TFTN+MXFM-CPUM-1,T2 (TRACE,MTR)
TRAA EQU *-1
LMD T1
NJN TRA8 IF NO MATCH
LDD T2
ADD T4 ADD BIAS
STM SR,T3 SAVE FUNCTION NUMBER
JMP TRA2 CHECK NEXT FUNCTION
MNF$ EQU 1 SET NON-STANDARD *MNF* FOR *COMDTFN*
MTF$ EQU 1 ASSEMBLE MTR FUNCTIONS
MNF SPACE 4,10
** MNF - PP REQUEST HASHING MACRO.
PURGMAC MNF
MNF MACRO MF
NOREF .1,.A,.B,.C,.D
.1 IFGE MF,CPUM
.A MICRO 1,1,/MF/
.B MICRO 2,1,/MF/
.C MICRO 3,1,/MF/
.A SET 1R".A"
.B SET 1R".B"
.C SET 1R".C"
.C SET .C/10B
ORG TFTN+MF-CPUM
LOC MF
VFD 5/.A,5/.B,2/.C
.D SET .A*200B+.B*4+.C
.D OCTMIC .D
X".D" EQU 0
.1 ENDIF
ENDM
MTF SPACE 4,10
** MTF - MONITOR REQUEST HASHING MACRO.
PURGMAC MTF
MTF MACRO MF
NOREF .A,.B,.C,.D
.A MICRO 1,1,/MF/
.B MICRO 2,1,/MF/
.C MICRO 3,1,/MF/
.A SET 1R".A"
.B SET 1R".B"
.C SET 1R".C"
.C SET .C/10B
ORG TFTN+MXFM-CPUM+MF-1
LOC MF
VFD 5/.A,5/.B,2/.C
.D SET .A*200B+.B*4+.C
.D OCTMIC .D
X".D" EQU 0
ENDM
LIST X,D
*CALL COMDTFN
LIST *
ORG TFTN+MXFM-CPUM+MXPF
SPACE 4,10
CMDEND
COMMAND (CPUMTR BREAKPOINT.),CMR
SPACE 4,10
*** THIS COMMAND OVERLAY WORKS IN CONJUNCTION WITH THE *CPB*
* BLOCK IN *CPUMTR*. WHEN A *CPB,DSP....* COMMAND IS ENTERED,
* IT SETS UP THE *C* DISPLAY ADDRESSES AND THEN CHANGES THE
* LEFT SCREEN TO THE *C* DISPLAY. DATA COMMUNICATION BETWEEN
* THE ROUTINES IS THROUGH DATA BLOCKS WHOSE POINTERS ARE IN
* *CMBL* IN CMR.
CPB SPACE 4,10
*** CPB,BKP,N. SET A *CPUMTR* BREAKPOINT ADDRESS AT *N*.
* CPB,DSP,N. SET UP *C* DISPLAY FOR *N*.
* *N* IS AN ABSOLUTE ADDRESS.
ENTRY CPB
LDC KBUF+8D-1 SET START OF KEYBOARD BUFFER
STD CA
LDN ZERL
CRD CM
ADN CMBL-ZERL FETCH BREAKPOINT ADDRESSES
CRD T2
LJM CPT6 USE *CPT* PROCESSOR
CPD SPACE 4,10
*** CPB,DSP. BRING UP *C* DISPLAY AT CURRENT BKP.
* CPB,P+ INCREMENT THE BREAKPOINT ADDRESS BY 1.
* CPB,P- DECREMENT THE BREAKPOINT ADDRESS BY 1.
ENTRY CPD
LDK CMBL GET ADDRESSES
CRD T2
RJM AAD FETCH *P* REGISTER
CRD CM
LDD CM MOVE *P* REGISTER TO *AB*
STD AB+3
LDD CM+1
STD AB+4
LDN 1RS CHECK COMMAND
SBM KBUF+5
ZJN CPD1 IF *CPB,DSP.* COMMAND
ADN 1R+-1RS
LMN 1 SET +/- 1 (TWOS COMPLEMENT)
STD CM+4
SHN -6
STD CM+3
LJM CPT7 INCREMENT OR DECREMENT THE ADDRESS
CPD1 LDC TDSC *C* DISPLAY ADDRESS
STD T2
RJM AAD SET *C0* ADDRESS
RJM SDA
RJM AAD SET *C1* ADDRESS
ADN 10
RJM SDA
LDD AB+3 SET *C2* ADDRESS
SHN 14
ADD AB+4
RJM SDA
LDD AB+3 SET *C3* ADDRESS
SHN 14
ADD AB+4
ADN 10
RJM SDA
LDN 7 LEAVE *CPB,DSP*
STM /KEYBOARD/KBCA
LDC KBUF+7 SET END OF COMMAND FOR *CJS*
STD CA
LDN 1RC
LJM /RES/DJS1 COMPLETE *C* DISPLAY SELECT
CPG SPACE 4,10
*** CPB,GO.
*
* GIVE A GO TO A *CPUMTR* BREAKPOINT HALT.
*
* THE *CPFG* WORD IN THE BREAKPOINT TABLE IS SET TO ZERO.
ENTRY CPG
LDN ZERL
CRD AB
ADN CMBL-ZERL *CPUMTR* BREAKPOINT POINTER
CRD T2
LJM CPT10 CLEAR EXISTING BREAKPOINT
CPT SPACE 4,20
*** CPB,BKP,/NAME/N. SET *CPUMTR* BREAKPOINT.
* CPB,DSP,/NAME/N. DISPLAY *CPUMTR* ADDRESS.
*
* *N* IS AN ADDRESS RELATIVE TO BLOCK *NAME*. IF NAME IS
* NULL, THEN THE BASE ADDRESS FOR *CPUMTR* IS USED.
*
* ANY EXISTING BREAKPOINT IS CLEARED BEFORE THE NEW ONE
* IS SET.
*
* IF THERE IS AN EXISTING BREAKPOINT ADDRESS, THE BREAKPOINT
* WORD IN THE BREAKPOINT TABLE IS REWRITTEN TO THAT ADDRESS.
* *DSD* MOVES THE WORD FROM *CPUMTR* AT THE ADDRESS DETERMINED
* BY THE COMMAND, AND SAVES IT IN THE BREAKPOINT TABLE. THEN
* THE *RJ BKP* IS STORED IN ITS PLACE IN *CPUMTR*. THE NEW
* BREAKPOINT ADDRESS IS SAVED IN THE BREAKPOINT TABLE. EXIT IS
* THRU *CPG1* TO LET *CPUMTR* GO IF CURRENTLY BREAKPOINTED.
ENTRY CPT
LDC KBUF+8D+1 SET STRING POINTER TO BEGINNING OF NAME
STD CA
RJM ASN ASSEMBLE NAME
LDK CMBL
CRD T2 FETCH BREAKPOINT ADDRESSES
* SEARCH BLOCK ORIGIN TABLE FOR BLOCK NAME.
LDD T2 GET ENTRY FROM BLOCKS LOADED TABLE
CPT1 SHN 14
LMD T3
CRD CM
LDD CM+3 CHECK ENTRY
ADD CM+4
ZJN CPT4 IF END OF TABLE
* COMPARE NAMES.
LDD CM
LMD AB
NJN CPT3 IF NO MATCH ON 1ST TWO CHARACTERS
LDD CM+1
LMD AB+1
NJN CPT3 IF NO MATCH ON 2ND TWO CHARACTERS
LDD CM+2
LMD AB+2
NJN CPT3 IF NO MATCH ON 3RD TWO CHARACTERS
LDD CM+3
LMD AB+3 CHECK LAST CHARACTER
SCN 77
ZJN CPT5 IF MATCHING BLOCK NAME
CPT3 AOD T3
SHN -14 INCREMENT TO NEXT WORD
RAD T2
UJN CPT1 CHECK NEXT ENTRY
CPT4 JMP KIE INCORRECT ENTRY
* A MATCH WAS FOUND (BASE ADDRESS IS IN CM+3 - CM+4).
CPT5 LDD CM+3
LPN 77
STD CM+3
* ASSEMBLE NUMERIC DELTA AND ADD TO BASE ADDRESS.
CPT6 AOD CA
RJM ASD
CPT7 LDD CM+4 ADD BASE ADDRESS
RAD AB+4
SHN -14
ADD CM+3
RAD AB+3
LDM KBUF+4 CHECK COMMAND
LMN 1RD
NJN CPT8 IF *CPB,BKP,...* OR *CPB,P+/-* COMMAND
LJM CPD1 PROCESS *CPB,DSP,...* COMMAND
* CHECK THAT ADDRESS IS WITHIN *CPUMTR*.
CPT8 LDC BIOL FETCH FWA OF *CPUMTR*
CRD SR
SBN BIOL-RPLP GET RPL POINTER
CRD CM
LDD AB+3 VERIFY ADDRESS
SBD SR+3
SHN 14
ADD AB+4
SBD SR+4
CPT9 MJN CPT4 IF ADDRESS BELOW *CPUMTR*
LDD CM
SBD AB+3
SHN 14
ADD CM+1
SBD AB+4
SBN PPIL+1
MJN CPT9 IF ADDRESS ABOVE *CPUMTR*
* CLEAR EXISTING BREAKPOINT AND SET NEW BREAKPOINT ADDRESS.
CPT10 RJM AAD READ ADDRESS OF PENDING BREAKPOINT
ADN /CPB/CPBA
CRD CM
CWD AB SET NEW BREAKPOINT ADDRESS
ADN /CPB/CPBW-/CPB/CPBA
CRD AB OLD BREAKPOINT WORD
LDD CM+3
SHN 14 ASSEMBLE BREAKPOINT ADDRESS
LMD CM+4
ZJN CPT11 IF NO BREAKPOINT PENDING
CWD AB REPLACE BREAKPOINT WORD
* SAVE WORD AT NEW BREAKPOINT AND REPLACE IT WITH A *RJ BKP*.
CPT11 RJM AAD
ADN /CPB/CPBA
CRD AB READ BREAKPOINT ADDRESS
ADN /CPB/CPBP-/CPB/CPBA
CRD CM READ UP BREAKPOINT PROTOTYPE
LDD AB+3
SHN 14 ASSEMBLE CM ADDRESS
LMD AB+4
ZJN CPT12 IF NO BREAKPOINT
CRD AB READ WORD AT BREAKPOINT ADDRESS
CWD CM STORE BREAKPOINT PROTOTYPE IN ITS PLACE
RJM AAD
ADN /CPB/CPBW
CWD AB SAVE BREAKPOINT WORD IN TABLE
CPT12 LDN ZERL
CRD CM
RJM AAD LET *CPUMTR* GO IF STOPPED
ADN /CPB/CPFG
CWD CM
LDN 4 LEAVE *CPB,*
STM /KEYBOARD/KBCA
JMP KBR RETURN
AAD SPACE 4,10
** AAD - ASSEMBLE ADDRESS OF *CPUMTR* BREAKPOINT PARAMETERS.
*
* ENTRY (T2 - T6) = *CMBL* WORD.
*
* EXIT (A) = ABSOLUTE CM ADDRESS.
AAD SUBR ENTRY/EXIT
LDD T5
SHN 14
LMD T6
NJN AADX IF BREAKPOINT ENABLED
JMP KIE INCORRECT ENTRY
SAD SPACE 4,10
** SDA - SET *C* DISPLAY ADDRESS.
*
* ENTRY (A) = ADDRESS.
* (T2) = DESTINATION OF ADDRESS.
*
* EXIT (T2) = (T2) + 2.
SDA SUBR ENTRY/EXIT
STM 1,T2
SHN -14
STI T2
LDN 2
RAD T2
UJN SDAX RETURN
SPACE 4,10
CMDEND
COMMAND (PP BREAKPOINT COMMANDS.),CMR
SPACE 4,10
** PP BREAKPOINT COMMANDS.
ENTRY PPC
PBJ ENTER (PP?.SX.),SLOCK STEP (DON-T FOLLOW RJM-S)
PBS ENTER (PP?.S.),SLOCK STEP
PP1 ENTER (PP?.G.),SLOCK GO
PP2 ENTER (PP?.G,?.),SLOCK SET BREAKPOINT AND GO
PP3 ENTER (PP?.<CD,?.),SLOCK DISPLAY PP MEMORY
PP4 ENTER (PP?.<CD,?,?.),SLOCK CHANGE PP MEMORY
PP5 ENTER (PP?.A,?.),SLOCK SET *A* REGISTER
PP6 ENTER (PP?.P,?.),SLOCK SET *P* REGISTER
PP7 ENTER (PP?.EXR.),SLOCK BREAKPOINT OVERLAY LOAD
PP8 ENTER (PP?.FTN.),SLOCK BREAKPOINT NEXT FUNCTION
CON 0 END OF TABLE
BKP SPACE 4,10
*** BKP.
*
* CLEAR PP BREAKPOINT REQUEST.
ENTRY BKA
LDC PPFW RESET DISPLAY AT C ADDRESS
STM TDSV+2
LDN 0 RESET DISPLAY AT D ADDRESS
STM TDSV+3
LDN CBKS
UJN BKB3 CLEAR BREAKPOINT
BKP SPACE 4,10
*** BKP,XXX.
*
* INITIATE BREAKPOINT FOR PP ROUTINE *XXX*.
*** BKP,XXX,NN.
*
* INITIATE BREAKPOINT FOR PP ROUTINE *XXX* AT CP *NN*.
ENTRY BKB
RJM ASN ASSEMBLE NAME
LDD AB+1
STD CM+3
LDD AB
STD CM+2
SHN -6
LMN 1R7
NJN BKB2 IF NOT MASS STORAGE OVERLAY
BKB1 JMP KIE INCORRECT ENTRY
BKB2 AOD CA ASSEMBLE POSSIBLE CP NUMBER
RJM ASD
LDD AB+4 SET CP NUMBER
STD CM+4
SBD NC
PJN BKB1 IF ILLEGAL CP
LDN SBKS
BKB3 STD CM+1
MONITOR SJCM SET PP BREAKPOINT
LDD CM+1
NJN BKB1 IF REJECT
JMP KBR RETURN
SPACE 4,10
CMDEND
COMMAND (PP BREAKPOINT PROCESSORS.),CMR
PP7 SPACE 4,10
*** PPN.EXR.
*
* TRAP OVERLAY LOAD.
ENTRY PP7
LDC PBKE
UJN PP81 SET *EXR* TRAP ADDRESS
PP8 SPACE 4,10
*** PPN.FTN.
*
* TRAP NEXT MONITOR FUNCTION.
ENTRY PP8
LDC PBKF *FTN* TRAP ADDRESS
PP81 STD CM+4
UJN PP20 CONTINUE
PP1 SPACE 4,10
*** PPN,G.
*
* RESUME PP EXECUTION WITH NO BREAKPOINT.
ENTRY PP1
LDN PBRF
UJN PBC ENTER BREAKPOINT COMMAND
PP2 SPACE 4,10
*** PPN,G,XXXX.
*
* SET BREAKPOINT AT XXXX AND RESUME EXECUTION.
ENTRY PP2
PP20 LDN PBGF
UJN PBC ENTER BREAKPOINT COMMAND
PP3 SPACE 4,10
*** PPN,C,XXXX.
*
* DISPLAY PP MEMORY AT XXXX.
ENTRY PP3
LDN PBCF
UJN PBC ENTER BREAKPOINT COMMAND
PP4 SPACE 4,10
*** PPN,C,XXXX,YYYY.
*
* ENTRY DATA WORD YYYY IN PP AT ADDRESS XXXX.
ENTRY PP4
LDN PBSF
UJN PBC ENTER BREAKPOINT COMMAND
PP5 SPACE 4,10
*** PPN,A,XXXXXX.
*
* SET PP *A* REGISTER TO XXXXXX.
ENTRY PP5
LDN PBAF
UJN PBC ENTER BREAKPOINT COMMAND
PP6 SPACE 4,10
*** PPN,P,XXXX.
*
* RESET PP *P* REGISTER TO XXXX.
ENTRY PP6
LDN PBPF
UJN PBC ENTER BREAKPOINT COMMAND
VPP SPACE 4,10
*** V,N.
*
* SET *V* DISPLAY TO PP NN.
ENTRY VPP
LDN PBFM
UJN PBC ENTER BREAKPOINT COMMAND
PBC SPACE 4,10
** PBC - PROCESS PP BREAKPOINT COMMANDS.
*
* ENTRY (A) = COMMAND ORDINAL.
*
* EXIT COMMAND WRITTEN TO PP MB+5.
PBCX JMP KIE INCORRECT ENTRY
PBC BSS 0 ENTRY
STD CM+3
LDC KBUF+2 START OF PP NUMBER
STD CA
RJM ASD DECODE PP NUMBER
LDN PPCP
CRD T1 READ PP COMMUNICATIONS ADDRESS
SBN PPCP-PPUL
CRD T0 FETCH CONCURRENT PP STATUS
LDD AB+4
SBN 12
MJN PBC2 IF NPP 0 - 11
SBN 20-12
MJN PBCX IF INVALID PP NUMBER
SBN 32-20
MJN PBC1 IF NPP 20 - 31
SBN 40-32
MJN PBCX IF INVALID PP NUMBER
LDD T0+3
LPN 77
ZJN PBCX IF NO CONCURRENT PP-S
ADN 40-1
SBD AB+4
MJN PBCX IF INVALID CPP NUMBER
LDD AB+4
SBN 40 SET CPP CALCULATION
PBC1 ADN 12
PBC2 ADN 12 CALCULATE SEQUENTIAL PP NUMBER
SHN 3
ADD T1+4 CALCULATE ADDRESS OF PP MB+5
ADN 7
STD T7 SAVE PP MB+5 ADDRESS
STM TDSV+1
LDD AB+4 SAVE PP NUMBER OF DISPLAY
ADD HN FORCE DISPLAY UPDATE
STM TDSV
LDD CM+3 CHECK FOR SCREEN CHANGE
LMN PBFM
NJN PBC3 IF NOT *V,NN.*
LDN 1RV
LJM SLS LOAD *V* DISPLAY
PBC3 LDD CA SAVE POINTER TO END OF COMMAND
ADC 1-KBUF
STM /KEYBOARD/KBCA RESET KEYBOARD POINTER
LDM 1,CA
STD T4 SAVE COMMAND CHARACTER
LDM 2,CA
LMN 1R,
NJN PBC6 IF END OF COMMAND
LDN 3
RAD CA
RJM ASD ASSEMBLE FIRST PARAMETER
LDD AB+4
STD CM+4 STORE IN COMMAND
LDD AB+3
STD CM+2 (18 BITS IF *A* REGISTER RESET)
LDI CA
LMN 1R.
ZJN PBC6 IF END OF COMMAND
LMN 1R,&1R.
ZJN PBC5 IF ANOTHER PARAMETER
PBC4 JMP KIE INCORRECT ENTRY
PBC5 AOD CA ASSEMBLE DATA WORD
RJM ASD
LDD AB+4 SAVE DATA WORD FOR PP
STD CM+2
PBC6 LDD T7 CHECK PP ACTIVITY
CRD AB
LDD AB
ADD AB+1 TEST FOR 7777 7777 STATUS FROM *7BK*
LMC 2*7777
NJN PBC9 IF NOT READY FOR COMMAND
PBC7 LDD T7
CWD CM
LDD CM+3 CHECK FOR *C*
SBN PBCF
NJN PBC8 IF NOT *C*
LDD CM+4 SET NEW C ADDRESS
STM TDSV+2-1RC,T4
PBC8 JMP KBR RETURN
PBC9 LDN 0 CLEAR KEYBOARD READY
STM /KEYBOARD/KBRA
LDC PBCA * NOT AT BREAK*
LJM /KEYBOARD/KMS RETURN
PBCA DATA C* NOT AT BREAK*
VHP SPACE 4,10
*** V,HNG.
*
* SET *V* DISPLAY TO HUNG PP.
ENTRY VHP
RJM SCA SET PP COMMUNICATION AREA ADDRESSES
STD T6
LDM TDSV+1
ZJN VHP2 IF NO PP ON *V* DISPLAY
STD T5
VHP1 LDN 10 ADVANCE COMMUNICATION AREA ADDRESS
RAD T5
SBN 7 CONVERT TO INPUT REGISTER ADDRESS
LMD T6
NJN VHP3 IF NOT END OF COMMUNICATION AREA
VHP2 LDD AB+4
ADN 7 SET FIRST PP (MTR) ADDRESS
STD T5
VHP3 SOD T7
ZJN VHP7 IF ALL PP-S CHECKED
LDD T5
CRD CM READ LAST WORD OF PP MESSAGE BUFFER
LDD CM
LMC 2RHN
NJN VHP1 IF PP NOT HUNG
LDD CM+1
LMC 2RG/
NJN VHP1 IF PP NOT HUNG
LDD T5
VHP4 STM TDSV+1 SAVE PP MESSAGE BUFFER ADDRESS
SBD AB+4
SHN -3 CALCULATE PP NUMBER
SBN 12
MJN VHP6 IF PP IN LOWER BANK
SBN 24-12
MJN VHP5 IF NOT CONCURRENT PP
ADN 40-32
VHP5 ADN 20-12+12 PP IN UPPER BANK
VHP6 ADN 12
STM TDSV SAVE PP NUMBER
VHP7 LDN 1RV
LJM SLS LOAD *V* DISPLAY
VPS SPACE 4,10
*** V,PS.
*
* SET *V* DISPLAY TO PSEUDO PP.
ENTRY VPS
RJM SCA SET PP COMMUNICATION AREA ADDRESSES
SBN 1
JMP VHP4 SAVE PSEUDO PP MESSAGE BUFFER ADDRESS
SCA SPACE 4,10
** SCA - SET PP COMMUNICATION AREA ADDRESSES.
*
* EXIT (A) = LWA+1 OF PP COMMUNICATION AREA.
* (T7) = PP COUNT (INCLUDING PSEUDO AND CPP-S).
* (AB - AB+4) = *PPCP* POINTER WORD.
*
* USES T5, CM - CM+1.
SCA SUBR ENTRY/EXIT
LDN PPUL
CRD T5 FETCH PP COUNTS
LDN PPCP
CRD AB GET PP COMMUNICATIONS AREA ADDRESS
AOD CM
LPN 77 PSEUDO PP + CPP COUNT
RAD T7
SHN 3 CALCULATE LWA+1 OF COMMUNICATION AREA
ADD AB+4
UJN SCAX RETURN
SPACE 4,10
CMDEND
COMMAND (PP BREAKPOINT PROCESSORS - STEP.),CMR
PBJ SPACE 4,10
*** PPN.SX.
*
* STEP, BUT DONT FOLLOW RJM-S.
ENTRY PBJ
LDC PBS9 SET TRANSFER
STM PBSA
UJN PBS1 CONTINUE
PBS SPACE 4,20
*** PPN.S.
*
* PROCESS PP STEP COMMAND.
PBSX JMP KIE INCORRECT ENTRY
ENTRY PBS
PBS1 LDC KBUF+2 START OF PP NUMBER
STD CA
RJM ASD DECODE PP NUMBER
LDN PPCP
CRD T1 READ PP COMMUNICATIONS ADDRESS
SBN PPCP-PPUL
CRD T0 FETCH CONCURRENT PP STATUS
LDD AB+4
SBN 12
MJN PBS3 IF NPP 0 - 11
SBN 20-12
MJN PBSX IF INVALID PP NUMBER
SBN 32-20
MJN PBS2 IF NPP 20 - 31
SBN 40-32
MJN PBSX IF INVALID PP NUMBER
LDD T0+3
LPN 77
ZJN PBSX IF NO CONCURRENT PP-S
ADN 40-2
SBD AB+4
PJN PBSX IF INVALID CPP NUMBER
LDD AB+4
SBN 40 SET CPP CALCULATION
PBS2 ADN 12
PBS3 ADN 12 CALCULATE SEQUENTIAL PP NUMBER
SHN 3
ADD T1+4 CALCULATE ADDRESS OF PP MB+5
ADN 7
STD T7 SAVE PP MB+5 ADDRESS
STM TDSV+1
LDD AB+4 SAVE PP NUMBER OF DISPLAY
ADD HN FORCE DISPLAY UPDATE
STM TDSV
LDD CA SAVE POINTER TO END OF COMMAND
ADC 1-KBUF
STM /KEYBOARD/KBCA RESET KEYBOARD POINTER
* ENSURE PP AT BREAKPOINT.
RJM CKB CHECK PP ACTIVITY
* READ CURRENT INSTRUCTION.
LDN PBCF READ PP MEMORY
STD T5
LDD T7 STORE PP REQUEST
CWD T2
RJM CKB READ 5 BYTES BEGINNING AT (P)
LDD T6
STD CM+4 SET VALUE OF P REGISTER
LDD AB
SHN -6
STD T1 SAVE INSTRUCTION FOR JUMP TEST
SHN -3
NJN PBS7 IF NOT JUMP INSTRUCTION
LDD T1
RAD T1
LDD T4 USE PP-S (A) FOR JUMP TESTS
SHN 14
LMD T5
LJM PBS4,T1 EXECUTE JUMP TEST
PBS4 LJM PBS10 PSN
LJM PBS19 LJM
LJM PBS18 RJM
* LJM PBS9 (NOT FOLLOWING RJM-S)
PBSA EQU *-1
PBS5 LJM PBS12 UJN
ZJN PBS12 ZJN
UJN PBS10
NJN PBS12 NJN
UJN PBS10
PJN PBS12 PJN
UJN PBS10
MJN PBS12 MJN
UJN PBS10
* NON JUMP INSTRUCTIONS.
PBS7 LMN 5
ZJN PBS9 IF 5XXX INSTRUCTION
LDD T1
SCN 3 TEST FOR 64XX - 67XX INSTRUCTION
LMN 64
ZJN PBS13 IF CHANNEL INSTRUCTION
* SEARCH TABLE OF TWO BYTE INSTRUCTIONS.
PBS8 AOD T3 ADVANCE INDEX
LDM PBSC,T3
ZJN PBS10 IF INSTRUCTION NOT IN TABLE
LMD AB
SCN 77
NJN PBS8 IF NOT TWO BYTE INSTRUCTION
PBS9 AOD CM+4
PBS10 AOD CM+4
PBS11 LDN PBGF G,XXXX FUNCTION
STD CM+3
STD CM INSURE NO 7777
LDD T7
CWD CM
JMP KBR RETURN
* PROCESS SHORT JUMPS.
PBS12 LDD AB EXTRACT VARIABLE FILED
LPN 77
STD T1 CHECK JUMP DIRECTION
LPN 40
ZJN PBS15 IF POSITIVE JUMP
LDD T1
LMN 76
NJN PBS14 IF NOT JUMP TO *-1
PBS13 LDC PBSB
LJM CKB2 SET ERROR MESSAGE
PBS14 LCN 77 CONVERT NEGATIVE ADVANCE
PBS15 LMD T1
PBS16 RAD CM+4
PBS17 UJN PBS11 ISSUE REQUEST TO PP
* RETURN JUMP.
PBS18 AOD AB+1 FIRST INSTRUCTION PAST ENTRY
* LONG JUMP.
PBS19 LDD AB+1 SET JUMP ADDRESS
STD CM+4
LDD AB CHECK FOR INDEXED JUMP
LPN 77
ZJN PBS17 IF NOT INDEXED
STD T6
LDN PBCF SET READ PP MEMORY FUNCTION
STD T5
LDD T7 STORE PP REQUEST
CWD T2
RJM CKB READ 5 BYTES BEGINNING AT INDEX VALUE
LDD AB
UJN PBS16 ADVANCE BREAKPOINT ADDRESS
PBSB DATA C*CAN-T STEP.*
* TABLE OF SELECTED TWO BYTE INSTRUCTIONS.
PBSC CON LDCI,ADCI,LPCI,LMCI,CRMI,CWMI,IAMI,OAMI,FNCI
CON 0
CKB SPACE 4,15
** CKB - CHECK PP AT BREAKPOINT.
*
* ENTRY (T7) = ADDRESS OF PP-S MB+5.
*
* EXIT (A) = (T2) = 0.
* (AB - AB+4) = PP MB+4.
* (T3 - T3+3) = BYTES 1 THRU 4 OF PP MB+5.
*
* ERROR TO *KMS* IF PP NOT RESPONDING.
*
* USES KM, T1.
CKB3 LDD T7 CHECK PP ACTIVITY
CRD T2
SBN 1 GET PARAMETER WORD
CRD AB
LDD T2
ADD T3 TEST FOR 7777 7777 STATUS FROM *7BK*
LMC 2*7777
NJN CKB1 IF PP NOT AT BREAKPOINT
STD T2
CKB SUBR ENTRY/EXIT
LDD HN
STD T1 SET RETRY LIMIT
CKB1 SOD T1
PJN CKB3 IF NOT TIMEOUT
LDC CKBA
CKB2 STD KM SET ERROR MESSAGE
LDN 0
STM /KEYBOARD/KBRA CLEAR REPEAT ENTRY
LDD KM
LJM /KEYBOARD/KMS EXIT
CKBA DATA C*NOT AT BREAK.*
SPACE 4,10
CMDEND
COMMAND (ENTER DATE.)
DTE SPACE 4,10
** DIRECT CELLS.
PD EQU SR PACKED DATE AND TIME
DTE SPACE 4,10
** OVERFLOW CHECK.
*
* THE ENTER DATE OVERLAY IS NOT CHECKED FOR OVERFLOW
* DIRECTLY. RATHER, IT IS COMPARED TO THE LARGEST
* COMMAND OVERLAY FOUND. IF THE ENTER DATE OVERLAY
* IS LARGER, AN ERROR WILL BE FLAGGED. BECAUSE OF
* THIS, THE ENTER DATE OVERLAY MUST REMAIN THE
* LAST OF THE COMMAND OVERLAYS TO ALLOW NEW OVERLAYS
* TO REACH THE LARGEST POSSIBLE SIZE.
DTE SPACE 4,10
*** DATE. YY/MM/DD.
*
* ENTER SYSTEM DATE.
ENTRY DTE
LDN TIML READ DATE AND TIME WORDS
CRM DTEB,ON
RJM ADD ASSEMBLE YEAR
STD T7
LPN 3
NJN DTE1 IF NOT LEAP YEAR
AOM DTEA+2 ADVANCE FEBUARY
DTE1 AOD CA ASSEMBLE MONTH
RJM ADD
STD T6
ZJN DTE2 IF MONTH = 0
SBN 13D
PJN DTE2 IF INCORRECT MONTH
AOD CA ASSEMBLE DAY
RJM ADD
SHN 6
STD T5
ZJN DTE2 IF DAY = 0
SHN -6 CHECK DAY COUNT FOR MONTH
SBN 1
SBM DTEA,T6
MJN DTE3 IF LEGAL DAY COUNT
DTE2 JMP KIE *INCORRECT ENTRY*
DTE3 LDN 4 SET ACCOUNT LOGGING BIT
RAM /KEYBOARD/LKBA
LDN 0
RJM C1D CHECK FOR COMMAND LOGGING
LDN PDTL READ PACKED DATE AND TIME
CRD PD
LCN 8D RESET KEYBOARD INDEX
RAD CA
RJM ADD REASSEMBLE YEAR
STD T7
AOD CA
RJM ADD REASSEMBLE MONTH
STD T6
AOD CA
RJM ADD REASSEMBLE DAY
SHN 6
STD T5
LDD T7 ENTER PACKED DATE
ADC -70D
PJN DTE4 IF 70 .LE. YEAR .LE. 99
ADC 100D
DTE4 SHN 6
LMD T6
STD PD+2
LDD PD+3
LPN 77
LMD T5
STD PD+3
LDM DTEA,T6 SET DAY LIMIT
ADN 1
STD AB
LDN DT ASSEMBLE DATE
STD T1 SET ASSEMBLY
LDC KBUF+5 SET CHARACTER ADDRESS
STD T2
DTE5 LDI T2 ASSEMBLE BYTE
SHN 6
LMM 1,T2
STI T1
AOD T1
LDN 2
RAD T2
LMC KBUF+5+2*5
NJN DTE5 IF MORE CHARACTERS
LDD DT SET JULIAN YEAR
LPN 77
STM JDAT+2
LDD DT+1
SCN 77
ADN 1R0
STM JDAT+3
LDC 2R00
STM JDAT+4
LDD PD+3 SET CURRENT DAY
SHN -6
STD T2
LDD PD+2 CALCULATE JULIAN DAY
LPN 77
STD T1
UJN DTE7 COUNT DAYS
DTE6 LDM DTEA,T1 ACCUMULATE DAYS
RAD T2
DTE7 SOD T1
NJN DTE6 IF MORE MONTHS TO PROCESS
DTE8 LDC -100D COUNT 100-S OF DAYS
RAD T2
MJN DTE9 IF .LT. 100 LEFT IN SUM
AOM JDAT+3
UJN DTE8 CHECK FOR ANOTHER 100
DTE9 ADC 100D
STD T2
DTE10 LCN 10D COUNT 10-S OF DAYS
RAD T2
MJN DTE11 IF .LT. 10 LEFT IN SUM
LDD HN
RAM JDAT+4
UJN DTE10 CHECK FOR ANOTHER 10
DTE11 ADN 10D
RAM JDAT+4
LDN ZERL
CRD CM
LDD MA
ADN 1
STD CM+2
CWM JDAT,ON WRITE DATE AND TIME WORDS TO BUFFER
CWD PD
ADN 1
CWM DTEB,ON
CWD DT
ADN 1
CWD AB
LDN EDTS SET SUBFUNCTION
STD CM+1
MONITOR DSRM ENTER DATE AND TIME
JMP KBR RETURN
ADD SPACE 4,10
** ADD - ASSEMBLE DECIMAL DIGITS.
*
* EXIT (A) = ASSEMBLY.
*
* USES CA, T1.
ADD SUBR ENTRY/EXIT
AOD CA
LDI CA
SBN 1R0
STD T1
SHN 2
ADD T1
SHN 1
STD T1
AOD CA
LDI CA
SBN 1R0
ADD T1
UJN ADDX RETURN
DTEA SPACE 4,10
** DTEA - DAY LIMITS FOR MONTH.
DTEA EQU *-1
BASE D
LOC 1
CON 31
CON 28
CON 31
CON 30
CON 31
CON 30
CON 31
CON 31
CON 30
CON 31
CON 30
CON 31
BASE *
LOC *O
DTEB BSS 5 BUFFER FOR TIME
TTL DSD - DYNAMIC SYSTEM DISPLAY.
TITLE TERMINATE OVERLAYS.
** TERMINATE OVERLAYS.
CMDEND LAST
.LCOM EQU L.C LENGTH OF LONGEST COMMAND OVERLAY
.LDIS EQU L.D LENGTH OF LONGEST DISPLAY OVERLAY
.FLFT EQU .FCOM+.LCOM+1 LEFT DISPLAY OVERLAY ORIGIN
.FRHT EQU .FLFT+.LDIS+1 RIGHT DISPLAY OVERLAY ORIGIN
.LAST EQU .FRHT+.LDIS+1 LAST LOCATION USED
ERRNG 7776-.LAST OVERLAY OVERFLOW WITH ACTUAL LENGTHS
.LCMX EQU 353 MAXIMUM LENGTH FOR COMMAND OVERLAY
.LDMX EQU 656 MAXIMUM LENGTH FOR DISPLAY OVERLAY
.LAMX EQU .FCOM+.LCMX+.LDMX+.LDMX+3 LAST WITH MAXIMUM LENGTHS
ERRNG 7776-.LAMX OVERLAY OVERFLOW WITH MAXIMUM LENGTHS
INSP$ IF DEF,INSP$
.INSP EQU 10 SPACE RESERVED FOR INSTALLATION USE
INSP$ ELSE
.INSP EQU 0 SPACE RESERVED FOR INSTALLATION USE
INSP$ ENDIF
ERRNG .LDMX-.LDIS-.INSP LARGEST DISPLAY OVERLAY OVERFLOWS
ERRNG .LCMX-.LCOM-.INSP LARGEST COMMAND OVERLAY OVERFLOWS
END