cdc:nos2.source:opl871:ddf
Table of Contents
DDF
Table Of Contents
- [00005] DDF - DISPLAY DISK FILE.
- [00009] DISPLAY DISK FILE.
- [00261] ACRDEF - AUX COMMAND ROUTINE DEFINITION.
- [00282] ACROVL - DEFINE AUX COMMAND ROUTINE OVERLAY.
- [00330] COMMAND - ENTER COMMAND PROCESSOR.
- [00362] ENTER - ENTER SPECIAL SYNTAX.
- [00393] INDEX - GENERATE INDEXED TABLE.
- [00449] OVERLAY - DEFINE NEW OVERLAY.
- [00472] RSDEF - RIGHT SCREEN PROCESSOR DEFINITION.
- [00499] RSOVL - DEFINE RIGHT SCREEN DISPLAY PROCESSOR OVERLAY.
- [00565] MAIN PROGRAM.
- [00567] MAIN PROGRAM.
- [00591] DPP - DROP PP.
- [00616] LEFT SCREEN DISPLAY.
- [00642] DLS - DISPLAY LEFT SCREEN.
- [00949] RIGHT SCREEN DISPLAY.
- [00961] DRS - DISPLAY RIGHT SCREEN.
- [01007] CENTRAL MEMORY RESIDENT TABLES.
- [01013] TCEF - TABLE OF COMMAND ENTRY FORMATS.
- [01095] TCRO - TABLE OF CENTRAL RESIDENT OVERLAYS.
- [01131] LOAD COMMAND PROCESSORS.
- [01133] LCP - LOAD COMMAND PROCESSORS.
- [01202] PSS - PAUSE FOR SYSTEM.
- [01217] OVL - COMMAND PROCESSOR OVERLAY LOAD ADDRESS.
- [01221] PRESET PROGRAM.
- [01223] PRS - PRESET PROGRAM.
- [01412] RIGHT SCREEN DISPLAY PROCESSOR CM RESIDENT OVERLAYS.
- [01423] DFB - DISPLAY FIVE BYTES/LINE.
- [01493] DTB - DISPLAY TEN BYTES/LINE
- [01603] DTX - DISPLAY TEXT.
- [01673] DLC - DISPLAY LEGAL COMMANDS.
- [01760] DFD - DISPLAY FORMATTED DATA.
- [01826] DCE - DISPLAY PF CATALOG ENTRY.
- [01914] DPT - DISPLAY PACKED DATE AND TIME.
- [02022] DSS - DISPLAY SYSTEM SECTOR.
- [02081] DPE - DISPLAY PFC ENTRY.
- [02131] DEI - DISPLAY EOI SECTOR.
- [02209] KEYBOARD INPUT PROCESSING.
- [02257] DKB - DISPLAY KEYBOARD BUFFER.
- [02333] PKI - PROCESS KEYBOARD INPUT.
- [02442] IKE - INTERPRET KEYBOARD ENTRY.
- [02561] ERR - SET ERROR MESSAGE.
- [02581] IMS - INITIALIZE MASS STORAGE DRIVERS AND RANDOM ACCESS.
- [02587] RET - NORMAL RETURN.
- [02606] SBN - SET BYTE NUMBER MESSAGE.
- [02655] SCP - START UP CPU PROGRAM.
- [02668] SKM - SET KEYBOARD MESSAGE.
- [02677] AOS - ADVANCE ONE SECTOR.
- [02689] AOT - ADVANCE ONE TRACK.
- [02699] APE - ADVANCE PAST EOI.
- [02717] ATZ - ADVANCE ONE TRACK AND ZERO SECTOR.
- [02732] BOS - BACKUP ONE SECTOR.
- [02740] BSP - BACKSPACE KEYBOARD BUFFER.
- [02752] CMB - CLEAR MESSAGE AND BUFFER.
- [02766] DDC - DROP DISPLAY CHANNEL.
- [02773] DTN - DECREMENT TRACK NUMBER.
- [02781] IRD - INCREMENT RIGHT DISPLAY.
- [02789] ITN - INCREMENT TRACK NUMBER.
- [02795] PEC - PROCESS ENTERED COMMAND.
- [02802] RCS - READ CURRENT SECTOR.
- [02808] RRD - ROTATE RIGHT DISPLAY.
- [02817] SRE - SET REPEAT ENTRY.
- [02826] MEMORY CHANGES.
- [02837] EMC - ENTER MEMORY CHANGE.
- [02931] SUBROUTINES.
- [02933] ASD - ASSEMBLE DIGITS.
- [02949] ASN - ASSEMBLE NAME.
- [02990] CDR - CONVERT DIGITS RIGHT ADJUSTED.
- [03030] CEQ - CHECK EQUIPMENT.
- [03054] CLB - CHECK LOCK BIT.
- [03072] CSA - COMPUTE SCRATCH AREA ADDRESS.
- [03100] CSB - CLEAR SCREEN BUFFER.
- [03132] CTR - CHECK TRACK RESERVATION BIT.
- [03148] CTS - CHECK TRACK AND SECTOR AND ZERO IF TOO LARGE.
- [03197] DMW - DISPLAY MEMORY WORDS.
- [03277] D2D - DISPLAY 2 DIGITS.
- [03292] D4D - DISPLAY 4 DIGITS.
- [03309] END - END CPU PROGRAM.
- [03327] LDO - LOAD OVERLAY.
- [03387] ODC - OUTPUT DISPLAY CODE.
- [03412] RCP - RECALL COMMAND PROCESSOR IF NECESSARY.
- [03434] RSB - READ SECTOR TO BUFFER.
- [03454] SNS - SET NEXT SECTOR.
- [03481] SPP - SET PAGE PARAMETERS.
- [03505] WCC - WAIT FOR CPU TO COMPLETE.
- [03543] BUFFERS.
- [03545] SRA - SCRATCH REGISTER AREA.
- [03576] PRESET PROGRAM.
- [03578] PRR - PRESET RESIDENT ROUTINES.
- [03668] OVL - INITIALIZE OVERLAY.
- [05070] TAR - TABLE ACCESS ROUTINES.
- [05087] CFA - CALCULATE FNT ADDRESS.
- [05122] CTO - CHECK TABLE ORDINAL.
- [05146] RFE - READ FST ENTRY.
- [05596] MST - SET MST RECOVERY TABLE.
- [05799] BTS - BUILD TRT SECTOR.
- [05861] CLE - CHECK FOR LINKAGE ERRORS.
- [06185] LRR - LABEL/TRT RECONSTRUCTION SUBROUTINES.
- [06193] CEI - CHECK EOI SECTOR.
- [06240] CSS - CHECK SYSTEM SECTOR.
- [06331] RDM - RESUME DISPLAY.
- [06349] RRP - RESTORE RECOVERY POINTERS.
- [06369] SRP - SAVE RECOVERY POINTERS.
- [06390] STA - SET TABLE ADDRESS.
- [06403] WSM - WRITE STATUS MESSAGE.
Source Code
- DDF.txt
- IDENT DDF,DDF
- PERIPH
- BASE M
- SST BFMS,FNSS,EQSS,FTSS,NSSS,GQSS,FASS,DTSS
- TITLE DDF - DISPLAY DISK FILE.
- *COMMENT DDF - DISPLAY DISK FILE.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- DDF SPACE 4,10
- *** DDF - DISPLAY DISK FILE.
- *
- * J. J. EIKUM. 73/03/13.
- * J. J. EIKUM. 78/11/24.
- * P. C. HIGGINS. 81/06/08.
- * P. C. HIGGINS. 84/05/01.
- * L. K. JACOBS. 84/10/01.
- DDF SPACE 4,50
- *** DDF PROVIDES THE CAPABILITY TO READ AND DISPLAY THE
- * CONTENTS OF PHYSICAL DISK SECTORS. THE CONTENTS OF THE
- * SECTOR CAN BE CHANGED AND THE SECTOR REWRITTEN.
- *
- * SEVERAL METHODS ARE PROVIDED TO SPECIFY THE DISK
- * ADDRESS TO READ. THE ADDRESS CAN BE SPECIFIED EXPLICITLY
- * BY ENTERING THE EST ORDINAL, TRACK, AND SECTOR, OR AN FNT,
- * EJT, OR QFT ORDINAL CAN BE SPECIFIED AND THE BEGINNING OR
- * CURRENT POSITION WILL BE DISPLAYED. SEVERAL SCRATCH AREAS
- * ARE AVAILABLE TO STORE EST ORDINAL, TRACK, AND SECTOR
- * WHILE READING OTHER LOCATIONS ON MASS STORAGE. RANDOM
- * ADRESSING AND PERMANENT FILE REFERENCING COMMANDS ARE ALSO
- * PROVIDED. DDF PROVIDES THE CAPABILITY OF PRINTING THE
- * INFORMATION DISPLAYED.
- *
- * WARNING. SINCE THE MASS STORAGE I/O IS DONE BY DDF
- * ITSELF, THE DISPLAY MAY BLINK DURING THE ACTUAL TRANSFER,
- * ESPECIALLY IN A BUSY SYSTEM. IF THE DISK CHANNEL HANGS FOR
- * ANY REASON, THE CONSOLE WILL BLANK AND THE KEYBOARD WILL BE
- * INOPERABLE.
- *
- * WARNING. SOME OF THE DDF COMMANDS, THE ONES THAT
- * REQUIRE THE KEYBOARD TO BE UNLOCKED, CAN MAKE CHANGES THAT
- * MAY CAUSE THE SYSTEM TO HANG OR PERMANENT FILES TO BE LOST.
- * THESE BAD EFFECTS MAY NOT OCCUR UNTIL SOME TIME AFTER THE
- * CHANGES HAVE BEEN MADE AND AT THAT TIME IT MAY BE IMPOSSIBLE
- * TO UNDERSTAND WHAT HAPPENED. ALSO, IT IS REMOTELY POSSIBLE
- * TO BLANK THE CONSOLE WHILE USING THESE COMMANDS. IT IS
- * IMPORTANT THAT THE DDF USER UNDERSTAND WHAT IS BEING DONE
- * BEFORE USING THESE COMMANDS.
- DDF SPACE 4,10
- *** DAYFILE MESSAGES.
- *
- *
- * * INCORRECT USER ACCESS.* = *SECURITY-UNLOCK* WAS NOT SET
- * ON A SECURED SYSTEM.
- DDF SPACE 4,10
- *** OPERATOR MESSAGES.
- *
- *
- * THE FOLLOWING MESSAGES MAY APPEAR AT THE CONTROL POINT.
- *
- * * WAITING FOR MEMORY.* = DDF IS WAITING FOR CM TO STORE
- * THE DISPLAY AND COMMAND PROCESSORS.
- * *READING EQXXX TP=XXXX CT=XXXX* = SHOWS STATUS OF CHECKOUT
- * DURING A PACK RECOVERY.
- *
- *
- * ABOVE THE COMMAND LINE, THE FOLLOWING MESSAGES MAY APPEAR.
- *
- * *FORMAT ERROR.* = A FORMAT ERROR WAS DETECTED DURING
- * TRANSLATION OF THE ENTRY.
- * *INCORRECT ENTRY.* = THE COMMAND WAS NOT LEGAL.
- * *INCORRECT EQUIPMENT.* = THE EST ORDINAL SPECIFIED EITHER WAS
- * NOT MASS STORAGE OR WAS A NULL EQUIPMENT.
- * *INCORRECT PARAMETER.* = THE PARAMETER IN THE ENTRY WAS
- * INCORRECT OR TOO LARGE.
- * *REPEAT ENTRY.* = THE ENTRY WILL NOT BE CLEARED AFTER
- * EXECUTION.
- * *SYSTEM BUSY.* = DDF IS WAITING FOR THE SYSTEM TO PROCESS
- * A REQUEST.
- * * BYTE NNNN.* = THE DATA SPECIFIED IS IN BYTE NNNN.
- * * LENGTH = NNNNNNNNB.* = THE *SKIPEI* COMMAND HAS SKIPPED
- * NNNNNNNN (OCTAL) SECTORS.
- *
- * THE FOLLOWING MESSAGES TELL WHY THE *SCAN* COMMAND STOPPED.
- * *LINKAGE BYTE BAD.*
- * *SYSTEM SECTOR LINKAGE BYTE BAD.*
- * *TRACK LINK IN WRONG SECTOR.*
- * *WORD COUNT TOO BIG.*
- * *TRACK NOT RESERVED.*
- *
- * THE FOLLOWING MESSAGES MAY APPEAR DURING A PACK RECOVERY.
- * *ERROR IN TRACK STATUS.*
- * *END OF EQUIPMENT.*
- * *SYSTEM SECTOR IN TRACK.*
- * *NEXT TRACK IN USE.*
- *
- * SOME COMMANDS READ SEVERAL SECTORS. IF A DISK ERROR IS
- * ENCOUNTERED WHILE PROCESSING THE COMMAND, PROCESSING STOPS
- * AND THE ERROR CODE IS DISPLAYED ON THE LEFT SCREEN.
- DDF SPACE 4,10
- * COMMON DECKS.
- *CALL COMDMAC
- *CALL COMPMAC
- *CALL COMSCPS
- *CALL COMSEJT
- *CALL COMSLFD
- *CALL COMSPIM
- *CALL COMSMSP
- *CALL COMSMST
- *CALL COMSPRD
- *CALL COMSSSD
- *CALL COMSZOL
- DDF SPACE 4,10
- ** PROGRAMS CALLED.
- *
- * DDFILE - DDF UTILITY FUNCTION PROCESSOR.
- * NOTE - (RA+2) = POINTER TO OUTPUT FILE.
- * (RA+3) = POINTER TO *DBUF*.
- * (RA+4) = LWA+1 OF *DDFILE*.
- * (RA+5) = CPU STATUS WORD - USED TO RECEIVE FUNCTION
- * CODE FROM *DDF*.
- * THE ASSEMBLY CONSTANT *D* (=5) IS USED TO REFERENCE
- * THESE LOCATIONS.
- DDF SPACE 4,50
- ** DDF LOADING SEQUENCE.
- *
- * THE FOLLOWING SEQUENCE IS USED TO INITIALIZE *DDF*.
- *
- * A) UPON ENTRY *DDF* BRANCHES TO *PRS*.
- * - CHECK FOR LEGAL USER.
- * - LOAD *DDFILE*.
- * - REQUEST FL FOR CM RESIDENT TABLES AND PROCESSOR
- * OVERLAYS.
- * - LOAD RIGHT SCREEN PROCESSOR OVERLAYS TO CM.
- * B) *PRS* BRANCHES TO *LCP*.
- * - LOAD AND PRESET EACH COMMAND PROCESSOR OVERLAY, AND
- * LOAD COMMAND PROCESSORS TO CM.
- * - WRITE TABLES TO CM.
- * C) LOAD RESIDENT OVERLAY.
- * - PRESET DIRECT CELLS AND CONSTANTS.
- * - SET CHANNELS AND REQUEST DISPLAY.
- * - SET EQUIPMENT PARAMETERS FOR DEFAULT FAMILY-S
- * LABEL TRACK.
- * - CLEAR END OF SECTOR BUFFER FOR NEATER DISPLAY.
- * D) ENTER MAIN LOOP VIA THE READ SECTOR COMMAND PROCESSOR.
- *
- * DDF LOADING SEQUENCE DIAGRAM -
- *
- * ORIGINAL PROGRAM
- *
- * LOC PPFW(1100)----------------------------------------------
- * DDF(MAIN LOOP)
- * DLS(LEFT SCREEN DRIVER)
- * DRS(RIGHT SCREEN DRIVER)
- * LOC RSPLA---------------------------------------------------
- * TABLES(TCEF,TCRO)
- * LCP(LOAD COMMAND PROCESSORS)>>>>>>>>>V>>>>>V>>>>>V>>>>>V
- * LOC OVL----------------------------------V-----V-----V V
- * PRS 8XB 8XC 8XD V
- * RIGHT SCREEN PROCESSORS . . . V
- * LOC RESLA(AFTER LONGEST-----------------.-----.-----.-----V
- * SINGLE RIGHT SCREEN . . . 8XA
- * PROCESSOR) . . . .
- * . . . .
- * . . . .
- * LOC CPLA---------------------------------.-----.-----.-----.
- * . . . PRR
- * . . . .
- * . . . .
- *
- *
- * PP STRUCTURE AFTER LOAD COMPLETE, DURING EXECUTION -
- *
- * LOC PPFW(1100)--------------------
- * DDF(MAIN LOOP)
- * DLS(LEFT SCREEN DRIVER)
- * DRS(RIGHT SCREEN DRIVER)
- * LOC RSPLA-------------------------
- * / CURRENT /
- * / RIGHT /
- * / SCREEN /
- * / PROCESSOR /
- * LOC RESLA-------------------------
- * 8XA -
- * RESIDENT
- * ROUTINES
- * PKI, ETC.
- * LOC BFMS--------------------------
- * SECTOR BUFFER
- * LOC CPLA--------------------------
- * / CURRENT /
- * / COMMAND /
- * / PROCESSOR /
- *
- *
- * CM STRUCTURE AFTER LOAD COMPLETE, DURING EXECUTION -
- *
- * ORG-------------------------------------------------
- * DDFILE(CP PROGRAM)
- * DDFILE FL-------------------------------------------
- * TCEF(TABLE OF COMMAND FORMATS)
- * TCRO(TABLE OF RIGHT SCREEN PROCESSOR OVERLAYS)
- * DDFILE FL + CMTL------------------------------------
- * RIGHT SCREEN PROCESSORS
- * COMMAND PROCESSORS(LOADED FROM OVERLAYS)
- DDF SPACE 4,10
- **** DIRECT LOCATION ASSIGNMENTS.
- MC EQU T4 MASS STORAGE CHANNEL (NOT A SCRATCH CELL)
- EQ EQU T5 EST ORDINAL (NOT A SCRATCH CELL)
- TK EQU T6 TRACK (NOT A SCRATCH CELL)
- SC EQU T7 SECTOR (NOT A SCRATCH CELL)
- DK EQU 15 DISPLAY KEYBOARD CONTROL
- * 16 SPARE
- * 17 SPARE
- AB EQU 20 - 24 ASSEMBLY BUFFER
- UI EQU AB+3 USER INDEX
- RI EQU AB+3 RANDOM INDEX
- BA EQU 25 - 26 BUFFER ADDRESS
- RC EQU 27 REPEAT COUNT
- SB EQU 30 SYSTEM BUSY FLAG
- CR EQU 31 CHANNEL RESERVED FLAG
- RS EQU 32 RIGHT SCREEN DISPLAY
- TA EQU 33 CM SYNTAX TABLE ADDRESS/100B
- EF EQU 34 EXECUTE FLAG
- LT EQU 35 LAST TRACK NUMBER ON EQUIPMENT
- LS EQU 36 LAST SECTOR NUMBER ON TRACK
- RT EQU 37 CM TRT RECOVERY TABLE ADDRESS/100B
- KE EQU 40 KEYBOARD ENTRY
- KI EQU 41 KEYBOARD BUFFER INDEX
- KM EQU 42 KEYBOARD MESSAGE POINTER
- CA EQU 43 CHARACTER ADDRESS
- FN EQU 44 - 50 FILE NAME
- * EQU 51 - 57 SPARES
- PF EQU 60 - 64 PF CONTROL WORD
- * 65 SPARE
- XC EQU 66 X-COORDINATE (6000B, CH01 ASSUMED)
- YC EQU 67 Y-COORDINATE
- ****
- DDF SPACE 4,20
- ** DIRECT CELL USAGE.
- *
- * THE FOLLOWING DIRECT CELLS CAN BE USED AS SCRATCH LOCATIONS
- * BY THE DISPLAY ROUTINES AND COMMAND PROCESSORS.
- *
- * T0 - T3.
- * CM - CM+4.
- * AB - AB+4.
- * RC.
- * YC.
- *
- * THE FOLLOWING DIRECT CELLS CAN BE USED AS SCRATCH LOCATIONS
- * BY THE COMMAND PROCESSORS ONLY.
- *
- * FN - FN+4.
- DDF TITLE MACRO DEFINITIONS.
- * MACRO DEFINITIONS.
- ACRDEF SPACE 4,10
- ** ACRDEF - AUX COMMAND ROUTINE DEFINITION.
- *
- *NAME ACRDEF
- *
- * ENTRY *NAME* = OVERLAY NAME (CM FL RESIDENT).
- *
- * DEFINES TAG *NAME_M* AS INDEX OF OVERLAY CONTROL WORD IN
- * TABLE *TCRO*.
- PURGMAC ACRDEF
- MACRO ACRDEF,NAM
- CON /NAM/NAM,NAM_L,0,NAM,0
- .1 SET *O-TCRO-5
- QUAL
- NAM_N EQU /PRESET/.1/5
- QUAL *
- LOC .1/5+1
- ENDM ACRDEF
- ACROVL SPACE 4,10
- ** ACROVL - DEFINE AUX COMMAND ROUTINE OVERLAY.
- *
- *NAME ACROVL LA
- *
- * ENTRY *NAME* = NAME OF OVERLAY. (CM FL RESIDENT)
- * *LA* = LOAD ADDRESS.
- *
- * NOTE IF THE OVERLAY IS TO USE THE RIGHT SCREEN DISPLAY
- * OVERLAY AREA, SEE COMMENTS ON USE OF THIS AREA
- * WITH DEFINITION OF SYMBOL *ACRLA*.
- * NOTE TO BEGIN A SEQUENCE OF OVERLAYS, THE SYMBOL *ACRA*
- * MUST BE UNDEFINED OR EQUAL TO ZERO.
- PURGMAC ACROVL
- MACRO ACROVL,NAM,LA
- LOC *O
- BSS 0
- .A IF DEF,//ACRA
- .B IFNE //ACRA,0
- QUAL *
- QUAL PRESET
- .1 SET *-ACRA+4
- "ACRA"L EQU .1/5
- .CMTL SET .CMTL+"ACRA"L
- QUAL *
- .A ENDIF
- .B ENDIF
- USE NAM
- .C IFC NE,$NAM$$
- QUAL PRESET
- NAM EQU *
- ACRA MICRO 1,, NAM
- QUAL *
- QUAL
- ACRA SET *
- QUAL *
- QUAL NAM
- LOC LA
- NAM EQU *
- .C ELSE
- QUAL
- ACRA SET 0
- QUAL *
- .C ENDIF
- ENDM ACROVL
- COMMAND SPACE 4,10
- ** COMMAND - ENTER COMMAND PROCESSOR.
- *
- *CMD COMMAND
- *
- * ENTRY *CMD* = NAME OF COMMAND PROCESSOR.
- *
- * NOTE - COMMAND PROCESSORS CANNOT USE LITERALS.
- PURGMAC COMMAND
- MACRO COMMAND,CMD
- LOC *O
- BSS 0
- .A IF DEF,CMDA
- QUAL PRESET
- .1 SET *-/DDF".N"/CMDA+4
- "CMDA"L EQU .1/5
- .MCMDL MAX .MCMDL,"CMDA"L
- .CMTL SET .CMTL+"CMDA"L
- QUAL *
- .A ENDIF
- .B IFC NE,$CMD$$
- QUAL PRESET
- CMD EQU .N*10000+*
- CMDA MICRO 1,, CMD
- QUAL *
- CMDA SET *
- LOC CPLA
- .B ENDIF
- ENDM COMMAND
- ENTER SPACE 4,10
- ** ENTER - ENTER SPECIAL SYNTAX.
- *
- *CMD ENTER (SYNTAX),D
- *
- * ENTRY *CMD* = NAME OF COMMAND PROCESSOR.
- * *SYNTAX* = SYNTAX OF COMMAND.
- * IF *D* IS PRESENT, A DUMMY ENTRY IS DEFINED.
- PURGMAC ENTER
- MACRO ENTER,CMD,SYNTAX,D
- .A IFC EQ,$D$$
- CON CMD_L*100+CMD/10000,CMD-CMD/10000*10000
- .A ELSE
- CMD EQU *O
- CON 0,0
- .A ENDIF
- ORG *O-2
- .1 SET *
- DATA Z$SYNTAX$
- BSSZ 10-*O+.1 FILL REMAINDER OF SYNTAX AREA (15D CHAR MAX)
- .B IFC EQ,$D$$
- CON CMD_L*100+CMD/10000,CMD-CMD/10000*10000
- .B ELSE
- CON 0,0
- .B ENDIF
- .1 SET *O-TCEF
- LOC .1/5
- ENDM ENTER
- INDEX SPACE 4,40
- ** INDEX - GENERATE INDEXED TABLE.
- * (MODIFIED VERSION OF MACRO FROM *COMPMAC*.)
- *
- *
- *NAME INDEX TYPE,ADDRESS
- *
- * ENTRY *NAME* = TABLE NAME.
- * *TYPE* = OFFSET INTO TABLE FOR THIS ENTRY.
- * *ADDRESS* = CONTENTS OF THIS ENTRY.
- *
- * THIS MACRO IS INTENDED TO GENERATE TABLES WHICH ARE INDEXED
- * BY SYMBOLIC CONSTANTS SUCH AS FILE AND JOB ORIGIN CODES.
- * IT HAS 3 CALLING SEQUENCES.
- *
- * IF *NAME* IS PRESENT, THE FWA OF THE TABLE IS SET TO *NAME*.
- *
- * IF *ADDRESS* IS MISSING, THE TABLE IS TERMINATED WITH AN
- * *ORG* TO THE END OF THE TABLE. THIS RESULTS IN ZERO ENTRIES
- * FOR UNDEFINED ENTRIES IN THE TABLE.
- *
- * OTHERWISE, A TABLE ENTRY IS MADE AT *INDEX* + *TYPE* OF
- * *ADDRESS*.
- *
- * EXAMPLE - TO GENERATE A TABLE FOR PROCESSING FILE TYPES.
- *
- *TFTP INDEX BEGIN TABLE
- *
- * INDEX PRFT,PRP PROCESS PRINT FILE AT *PRP*
- * INDEX LOFT,LOP PROCESS LOCAL FILE AT *LOP*
- *
- * INDEX MXFT TERMINATE TABLE AT *TFTP*+*MXFT*
- *
- * THE CODE PROCESSING THIS TABLE NOTES THAT -
- * A FILE OF TYPE *MXFT* CANNOT BE PROCESSED,
- * A TABLE ENTRY = 0, CANNOT BE PROCESSED.
- *
- * USES SYMBOL NAME *INDEX*.
- PURGMAC INDEX
- MACRO INDEX,A,B,C
- .A IFC NE,$A$$
- A BSS 0
- .1 SET A
- .2 SET *O
- .A ELSE
- ORG .2+B
- IFC NE,$C$$,2
- LOC B
- CON C
- LOC .1+B
- BSS 0
- .A ENDIF
- ENDM INDEX
- OVERLAY SPACE 4,10
- ** OVERLAY - DEFINE NEW OVERLAY.
- *
- * OVERLAY ORG,(TITLE)
- *
- * ENTRY *ORG* = ORIGIN ADDRESS OF OVERLAY.
- * *TITLE* = TITLE FOR OVERLAY.
- PURGMAC OVERLAY
- OVERLAY MACRO O,TEXT
- .N SET .N+1
- ERRNG 1R4-.N TOO MANY OVERLAYS
- .N MICRO .N,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ01234
- TTL DDF/8"OVLN"".N" - TEXT
- TITLE
- QUAL DDF".N"
- IDENT 8"OVLN"".N",O TEXT
- *COMMENT DDF - TEXT
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- ORG O
- ENDM OVERLAY
- RSDEF SPACE 4,10
- ** RSDEF - RIGHT SCREEN PROCESSOR DEFINITION.
- *
- *NAME RSDEF R
- *
- * ENTRY *NAME* = PROCESSOR OVERLAY NAME.
- * *R* = FLAG TO INDICATE PROCESSOR IS RESIDENT, NOT
- * AN OVERLAY.
- *
- * DEFINES TAG *NAME_N* AS INDEX OF OVERLAY CONTROL WORD IN
- * TABLE *TDPO*.
- PURGMAC RSDEF
- MACRO RSDEF,NAM,R
- .A IFC EQ,$R$$
- CON /NAM/NAM,NAM_L,0,NAM,0
- .A ELSE
- CON NAM,0,0,0,0
- .A ENDIF
- .1 SET *O-TCRO-5
- QUAL
- NAM_N EQU /PRESET/.1/5
- QUAL *
- LOC .1/5+1
- ENDM RSDEF
- RSOVL SPACE 4,10
- ** RSOVL - DEFINE RIGHT SCREEN DISPLAY PROCESSOR OVERLAY.
- *
- *NAME RSOVL LA
- *
- * ENTRY *NAME* = NAME OF PROCESSOR.
- * *LA* = LOAD ADDRESS.
- *
- * NOTE - THE DISPLAY PROCESSORS CANNOT USE LITERALS.
- * - THE ENTRY TO THE ROUTINE IS AT *LA*+1.
- PURGMAC RSOVL
- MACRO RSOVL,NAM,LA
- LOC *O
- BSS 0
- .A IF DEF,//RSPA
- QUAL *
- QUAL PRESET
- .1 SET *-RSPA+4
- "RSPA"L EQU .1/5
- .MRSPL MAX .MRSPL,"RSPA"L
- .CMTL SET .CMTL+"RSPA"L
- QUAL *
- .A ENDIF
- USE NAM
- .B IFC NE,$NAM$$
- QUAL PRESET
- NAM EQU *
- RSPA MICRO 1,, NAM
- QUAL *
- QUAL
- RSPA SET *
- QUAL *
- QUAL NAM
- LOC LA
- NAM EQU *
- .B ENDIF
- ENDM RSOVL
- DDF SPACE 4,20
- **** ASSEMBLY CONSTANTS.
- CH EQU CHDS DISPLAY CHANNEL
- D EQU 5 CPU STATUS WORD
- KBUFL EQU 32D+2 KEYBOARD BUFFER LENGTH
- NSRA EQU 6 NUMBER OF SCRATCH REGISTER AREAS
- RCPC EQU 12D RIGHT SCREEN - COMMANDS PER COLUMN
- MLPS EQU 40 MAIN LOOPS PER SECOND ON CC545
- NAME MICRO 1,, DDF
- OVLN MICRO 1,, X
- PNFL EQU 0 TABLE INDEX FOR LOCAL FNT ACCESS
- .N SET 0 OVERLAY NUMBER
- QUAL PRESET
- .1 SET 0
- .2 SET 0
- NOREF .1,.2
- .MRSPL SET 0 MAXIMUM RIGHT SCREEN PROCESSOR LENGTH
- NOREF .MRSPL
- .MCMDL SET 0 MAXIMUM COMMAND PROCESSOR LENGTH
- NOREF .MCMDL
- QUAL *
- ****
- TITLE MAIN PROGRAM.
- DDF SPACE 4,10
- ** DDF - MAIN PROGRAM.
- ORG PPFW
- DDF BSS 0 ENTRY
- LJM /PRESET/PRS PRESET PROGRAM
- * CON 0,** (IF *DDFILE* NOT LOADED BY PRESET)
- * MAIN LOOP.
- DDF1 RJM DLS DISPLAY LEFT SCREEN
- DFIM (CON RJMI) PROCESS KEYBOARD FOR 721
- UJN *+2
- CON PKI
- RJM SYS DISPLAY SYSTEM HEADERS
- RJM DRS DISPLAY RIGHT SCREEN
- RJM PSS PAUSE FOR SYSTEM
- CFNC THCF TRANSFER HIDDEN TO VISIBLE, CLEAR HIDDEN
- DCN CH+40
- RJM PKI PROCESS KEYBOARD INPUT
- RJM RCP RECALL COMMAND PROCESSOR IF NECESSARY
- UJN DDF1 LOOP
- DPP SPACE 4,10
- ** DPP - DROP PP.
- DPP BSS 0 ENTRY
- LDN 10 CLEAR *DIS* FLAG
- STD CM+4
- LDN CCTS
- STD CM+1
- MONITOR SJCM
- MONITOR DPPM DROP PP
- LJM PPR EXIT TO PP RESIDENT
- GLOBAL SPACE 4,10
- * GLOBAL DATA.
- DFIM (CON C721)
- DCTY CON C545 DISPLAY CONSOLE TYPE
- DFIM (CON T721)
- CTOS CON T545 TOP OF SCREEN
- DFIM (CON Y721-YINC)
- CBOS CON Y545-YINC BOTTOM OF SCREEN
- DFIM (CON -YINC) SINGLE SPACE FOR 721
- DBLS CON -YINC*2 DOUBLE SPACE Y-COORDINATE INCREMENT
- DFIM (CON LN08)
- CPFC CON LN13 LINE ABOVE FIRST LINE OF PFC
- TITLE LEFT SCREEN DISPLAY.
- *** LEFT SCREEN.
- *
- * THE LEFT SCREEN DISPLAYS INFORMATION ABOUT THE DISK
- * AND THE CONTROL POINT. THE LOGICAL ADDRESS ON THE DISK
- * APPEARS FIRST. THE LINK BYTE FROM THE TRT FOR
- * THE CURRENT TRACK IS DISPLAYED AND IS INTENSIFIED IF IT IS
- * NOT THE SAME AS THE CONTENTS OF THE LINKAGE BYTES. THE CEN-
- * TRAL MEMORY ADDRESS, BYTE NUMBER OF THE TRT ENTRY AND
- * RESERVATION, INTERLOCK, AND PRESERVED FILE STATUSES ARE ALSO
- * DISPLAYED.
- *
- * THE FAMILY AND PACK NAMES, AND THE CONTROL POINT
- * NUMBER AND JSN OF THE ASSOCIATED JOB ARE DISPLAYED.
- * THE DISK-S PERMITS AND INDIRECT TRACK NUMBERS ARE SHOWN.
- * IF PRESENT, BOTH CONTROL POINT MESSAGES ARE DISPLAYED.
- * IF A DISK ERROR OCCURS, THE ERROR CODE RETURNED IN LOCATION
- * *RDCT* BY THE DRIVER IS DISPLAYED.
- *
- * THE CONTENTS OF THE SCRATCH REGISTERS, THE PHYSICAL
- * LOCATION, AND THE HARDWARE STATUS CODE (THE MEANING WILL VARY
- * DEPENDING ON THE TYPE OF MASS STORAGE) ARE ALSO DISPLAYED.
- *
- * IF A PACK RECOVERY IS IN PROGRESS, THE TRACK POINTER AND
- * TRACK RECOVERY WORD ARE DISPLAYED.
- DLS SPACE 4,15
- ** DLS - DISPLAY LEFT SCREEN.
- *
- * ENTRY (RT) = CM RECOVERY DATA TABLE ADDRESS.
- * (ZERO IF RECOVERY ROUTINES NOT USED.)
- *
- * USES T1, T2, T3, AB - AB+4, CM - CM+4, RC, YC.
- *
- * CALLS CTR, DOL, D2S, D4D, D6S, SNT.
- *
- * MACROS CFNC, DFIM, DISPLA, DISPHD, SFA.
- DLS SUBR ENTRY/EXIT
- CFNC SLSF SELECT LEFT SCREEN, SMALL CHARACTERS
- DISPHD (DDF. DISPLAY DISK FILE.)
- DFIM (CON LN06),*+1
- LDC LN08 OUTPUT COORDINATES
- STD YC
- OAN CH+40
- LDD XC
- OAN CH+40
- * DISPLAY DISK ADDRESS DATA.
- DISPLA CH01,,( EST =)
- LDD EQ DISPLAY TOP DIGIT
- SHN -6
- ZJN DLS1 IF NO UPPER DIGIT
- ADN 1R0
- DLS1 OAN CH+40
- LDD EQ
- RJM D2S DISPLAY LAST TWO DIGITS
- DISPLA CH15,,( TK = )
- LDD TK
- RJM D4D DISPLAY TRACK NUMBER
- DISPLA CH30,,(ADDRESS OF TRT =)
- LDD TK
- SHN -2
- DLSA ADC TRTS
- RJM D6S DISPLAY TRT ADDRESS
- DISPLA ,,(BYTE)
- LDD TK
- LPN 3
- ADN 1R0
- OAN CH+40
- LCN YINC MOVE TO NEXT LINE
- RAD YC
- OAN CH+40
- DISPLA CH01,,( TYPE = )
- SFA EST,EQ DISPLAY EQUIPMENT TYPE
- ADK EQDE
- CRD AB
- LDD AB+3
- OAN CH+40
- DISPLA CH15,,( SC = )
- LDD SC
- RJM D4D DISPLAY SECTOR NUMBER
- DISPLA CH30,,(CONTENTS OF TRT = )
- LDN 0
- STD RC
- RJM SNT GET NEXT TRACK LINK
- STD T2
- LDM BFMS
- NJN DLS2 IF NOT EOF/EOI
- LDM BFMS+1
- DLS2 SHN 6
- PJN DLS3 IF NOT A CHAIN BYTE
- SHN -6
- LMD T2
- ZJN DLS3 IF TRT AND CHAIN BYTE MATCH
- DFIM (CFNC BIVF)
- PSN
- PSN
- LDN 3
- STD RC
- DLS3 LDC CH48 OUTPUT X-COORDINATE
- OAN CH+40
- LDD T2
- RJM D4D OUTPUT VALUE
- DFIM (CFNC EIVF)
- SOD RC
- PJN DLS3 IF REPEAT COUNT NOT COMPLETE
- PSN
- PSN
- * DISPLAY TRACK STATUS.
- RJM CTR CHECK TRACK RESERVATION BIT
- STD T2
- MJN DLS4 IF TRACK RESERVED
- DISPLA CH53,,(NOT),H
- DLS4 DISPLA CH57,,(RESERVED)
- LCN YINC
- RAD YC
- OAN CH+40
- DISPLA CH01,,( STATE = )
- LDD AB
- LPN 3
- SHN 1
- STD T1
- LDM DLSE,T1
- OAN CH+40
- LDM DLSE+1,T1
- OAN CH+40
- LDD T2
- SHN 21-7
- PJN DLS6 IF NOT FIRST TRACK PRESERVED FILE
- DISPLA CH56,,(PRESERVED)
- DLS6 LDD T2
- SHN 21-3
- PJN DLS7 IF NOT INTERLOCKED
- LCN YINC
- RAD YC
- OAN CH+40
- DISPLA CH54,,(INTERLOCKED)
- DFIM (CON LN11),*+1
- DLS7 LDC LN15
- OAN CH+40
- SBN YINC
- STD YC
- * DISPLAY FAMILY AND PACK NAMES.
- DISPLA CH01,,(FAMILY = )
- SFA EST,PF+4 DISPLAY FAMILY NAME
- ADK EQDE
- CRD CM
- LDD CM+4
- SHN 3
- ADK PFGL
- CRD CM
- LDN 3
- OAM CM,CH
- LDD CM+3
- SCN 77
- OAN CH+40
- DISPLA CH22,,( PACK = )
- LDN 3 DISPLAY PACK NAME
- OAM PF,CH
- LDD PF+3
- SCN 77
- OAN CH+40
- * DISPLAY CONTROL POINT INFORMATION.
- DISPLA CH42,,( CP = )
- LDD CP DISPLAY CONTROL POINT NUMBER
- SHN -7
- RJM D2S DISPLAY TWO DIGITS
- DISPLA CH55,,(JSN = )
- LDC 0
- DLSB EQU *-1 (ADDRESS OF EJT ENTRY, SET BY *PRS*)
- CRD CM
- LDN 2 DISPLAY JOB SEQUENCE NAME
- OAM CM,CH
- * DISPLAY FIRST PERMIT AND DATA TRACK NUMBERS.
- LDD YC
- OAN CH+40
- DISPLA CH01,,(PERMITS TRACK = )
- LDD AB+4
- SHN 3
- ADN ALGL
- CRD CM
- LDD CM+2
- RJM D4D DISPLAY TRACK NUMBER
- DISPLA CH26,,( FIRST TRACK INDIRECT CHAIN = )
- LDD CM
- RJM D4D DISPLAY TRACK NUMBER
- * DISPLAY CONTROL POINT MESSAGES.
- LCN YINC*2 OUTPUT COORDINATES
- RAD YC
- OAN CH+40
- LDD XC
- OAN CH+40
- LDD CP DISPLAY FIRST MESSAGE LINE
- ADN MS1W
- RJM DOL DISPLAY ONE LINE
- LCN YINC
- RAD YC
- LDN 2 OUTPUT COORDINATES
- OAM XC,CH
- LDD CP
- ADN MS2W OUTPUT SECOND MESSAGE LINE
- RJM DOL DISPLAY ONE LINE
- * DISPLAY SCRATCH AREAS.
- LCN YINC*2 OUTPUT COORDINATES
- RAD YC
- OAN CH+40
- DISPLA CH01,,(------------SCRATCH AREAS-------------)
- LDM RDCT
- LPN 77
- ZJN DLS8.1 IF NO ERROR
- STD T3
- DFIM (CFNC BIVF)
- PSN
- PSN
- LDN 3
- STD RC
- DLS8 DISPLA CH44,,(ERROR = )
- LDM DLSD,T3
- OAN CH+40
- DFIM (CFNC EIVF)
- SOD RC
- NJN DLS8 IF REPEAT COUNT NOT COMPLETE
- PSN
- PSN
- DFIM (LCN YINC)
- DLS8.1 LCN YINC*2
- RAD YC
- OAN CH+40
- DISPLA CH06,,(EST TK SC COMMENT)
- LDC SRA
- STD T2
- LDN 0
- STD T3
- DLS9 LCN YINC
- RAD YC
- OAN CH+40
- LDD XC
- OAN CH+40
- AOD T3
- SHN 6
- OAN CH+40 DISPLAY SCRATCH AREA LETTER
- LDI T2 DISPLAY EST ORDINAL
- RJM D6S
- AOD T2
- LDI T2 DISPLAY TRACK
- RJM D6S
- AOD T2
- LDI T2 DISPLAY SECTOR
- RJM D6S
- LDN 0
- OAN CH+40
- LDN 2 DISPLAY COMMENT
- RAD T2
- LDN 4
- STD CM
- DLS10 LDI T2
- OAN CH+40
- AOD T2
- SOD CM
- PJN DLS10 IF MORE COMMENT
- LDD T3
- LMN NSRA
- ZJN DLS11 IF END OF SCRATCH AREAS
- LJM DLS9 LOOP FOR REST OF SCRATCH REGISTERS
- * DISPLAY RECOVERY DATA.
- DLS11 LDD RT
- NJN DLS12 IF RECOVERY TABLE PRESENT
- LJM DLS14 RETURN
- DLS12 LCN YINC*2 OUTPUT COORDINATES
- RAD YC
- OAN CH+40
- DISPLA CH01,,(TRACK POINTER = )
- LDD RA
- ADD RT
- SHN 6
- DLSC ADN RCPW READ POINTER WORD
- * ADN ICPW IF BUILDING INDIRECT CHAIN
- * ADN BSPW IF IN *BLDSTRT.*
- CRD CM
- LDD CM
- RJM D4D DISPLAY TRACK POINTER
- LCN YINC OUTPUT COORDINATES
- RAD YC
- OAN CH+40
- DISPLA CH01,,(TRACK RECOVERY WORD = )
- LDD RA
- ADD RT
- SHN 6
- ADD TK
- ADC TRCT-4000
- CRD CM
- LDN CM
- STD T3
- DLS13 LDN 0
- OAN CH+40
- LDI T3
- RJM D4D DISPLAY FOUR DIGITS
- AOD T3
- SBN CM+5
- MJN DLS13 IF MORE OF WORD TO DISPLAY
- DLS14 FJM *,CH IF CHANNEL FULL, WAIT
- DCN CH+40
- LJM DLSX RETURN
- LIST G
- DLSD EQU *-1
- ECHO 1,ERRCODE=("DREC")
- CON EMN._ERRCODE "TXT._ERRCODE" ERROR
- LIST *
- DLSE BSS 0
- DATA 4HON
- DATA 4HIDLE
- DATA 4HOFF
- DATA 4HDOWN
- TITLE RIGHT SCREEN DISPLAY.
- *** RIGHT SCREEN.
- * THE RIGHT SCREEN DISPLAYS THE CONTENTS OF THE DISK
- * SECTOR. THE BYTE NUMBERS ARE THE ACTUAL BYTE NUMBERS FOR
- * THE PHYSICAL DISK SECTOR (I.E. BYTES 0 AND 1 ARE THE CONTROL
- * BYTES). THESE BYTE NUMBERS ARE USED IN THE MEMORY CHANGING
- * COMMANDS.
- *
- * THE RIGHT SCREEN IS CHANGED WITH THE RIGHT BLANK OR
- * TAB KEY. FOR SOME DISPLAYS THE */* INCREMENTS THE ADDRESSES
- * DISPLAYED.
- DRS SPACE 4,15
- ** DRS - DISPLAY RIGHT SCREEN.
- *
- * ENTRY (RS) = INDEX INTO TABLE OF RIGHT SCREEN DISPLAYS.
- * RIGHT SCREEN SELECTED - SMALL CHARACTERS.
- * CHANNEL ACTIVE.
- *
- * EXIT TO DISPLAY ROUTINE.
- * (T3) = BFMS, BUFFER ADDRESS.
- *
- * USES T3.
- *
- * CALLS LDO, RIGHT SCREEN PROCESSORS.
- DRS2 FJM *,CH IF CHANNEL FULL, WAIT UNTIL EMPTY
- DCN CH+40
- DRS SUBR ENTRY/EXIT
- LDM DRSB CHECK FOR OVERLAY LOADED
- LMD RS
- ZJN DRS1 IF DISPLAY UNCHANGED
- LDD RS
- RJM LDO LOAD DISPLAY OVERLAY
- DRS1 LDC BFMS SET BUFFER ADDRESS
- STD T3
- LJM ** JUMP TO DISPLAY PROCESSOR
- * LJM RSPLA (NOT FORMATTED DISPLAY)
- * LJM DFD (IF FORMATTED DISPLAY)
- DRSA EQU *-1 OVERLAY CONTROL WORD FROM CM TABLE
- * CONTROL WORD FROM CM TABLE = (DRSA).
- *DRSA DATA 0 ADDRESS OF LOADED DISPLAY PROCESSOR
- DATA 0 PROCESSOR LENGTH
- CON 0,0
- DATA 0 DISPLAY INDEX
- ERRNZ *-DRSA-5 CONTROL WORD MUST BE FIVE BYTES
- DRSB CON MXDI CURRENTLY LOADED RIGHT SCREEN DISPLAY ID
- * (PRESET TO ILLEGAL ID FOR INITIALIZATION)
- DIS HERE DISPLAY DATA
- RSPLA BSS 0 RIGHT SCREEN PROCESSOR LOAD ADDRESS
- TITLE CENTRAL MEMORY RESIDENT TABLES.
- USE PRESET
- QUAL PRESET
- ** CM TABLES.
- *
- TCEF SPACE 4,15
- ** TCEF - TABLE OF COMMAND ENTRY FORMATS.
- *
- * VFD 96/Z*SYNTAX*
- * VFD 6/L,1/0,5/OVL,12/PP ADDR
- *
- * AFTER LOAD TO CM
- * VFD 96/Z*SYNTAX*
- * VFD 6/L,1/1,17/CM ADDR
- *
- * L = COMMAND PROCESSOR LENGTH (CM WORDS).
- * OVL = LAST CHARACTER OF OVERLAY NAME.
- * PP/CM ADDR = ADDRESS OF PROCESSOR.
- TCEF BSS 0
- LOC 0
- ARD ENTER (AUTOREAD.)
- BTR ENTER (BEGINR.)
- BEI ENTER (BLDEOI.)
- BLS ENTER (BLDSL.)
- BRS ENTER (BLDSTRT.)
- BOT ENTER (BOT.)
- CTB ENTER (CTB.)
- DEP ENTER (DEP.)
- DIS ENTER (DIS.)
- DRP ENTER (DROP.)
- DTK ENTER (DTK.)
- EEP ENTER (EEP.)
- EET ENTER (EJT.)
- EST ENTER (EST.)
- EFO ENTER (FAMILY.)
- FPE ENTER (FIND.)
- FIS ENTER (FINDISS.)
- FOV ENTER (FINDO.)
- FST ENTER (FINDS.)
- FSS ENTER (FINDSS.)
- EFB ENTER (FNT.)
- EFL ENTER (FNTL.)
- EFC ENTER (FNTLC.)
- GTT ENTER (GETTRT.)
- HOL ENTER (HOLD.)
- LSA ENTER (LOAD.)
- NAT ENTER (NEXTAT.)
- NSS ENTER (NEXTSS.)
- EPN ENTER (PACKNAM.)
- PRD ENTER (PREAD.)
- PTK ENTER (PTK.)
- PWT ENTER (PWRITE.)
- EIT ENTER (QFT.)
- ERA ENTER (RANDOM.)
- REC ENTER (RECOVER.)
- SCN ENTER (SCAN.)
- ELS ENTER (SC.*.)
- ESC ENTER (SC.)
- SRW ENTER (SETRW.)
- STP ENTER (SETTP.)
- SPF ENTER (SHOWPF.)
- SKE ENTER (SKIPEI.)
- SKF ENTER (SKIPF.)
- SKR ENTER (SKIPR.)
- STB ENTER (STB.)
- SSA ENTER (STORE.)
- ETK ENTER (TK.)
- SCT ENTER (UI.)
- WRT ENTER (WRITE.)
- TCEFA ENTER ( ),DUMMY LISTING FILE COMMANDS
- CLF ENTER (LISTING.)
- OUT ENTER (OUT.)
- PRT ENTER (PRINT.)
- RET ENTER (RETURN.)
- REW ENTER (REWIND.)
- SID ENTER (SETID.)
- SKL ENTER (SKIPL.)
- .END ENTER ,DUMMY END OF TABLE
- QUAL
- LOC *O
- .1 SET *-/PRESET/TCEF
- TCEFL EQU .1/5 LENGTH OF TABLE
- QUAL *
- TDPO SPACE 4,10
- ** TCRO - TABLE OF CENTRAL RESIDENT OVERLAYS.
- *
- * VFD 12/ENTRY,12/L,24/ADDR,12/DI
- *
- * ENTRY = PROCESSOR ENTRY ADDRESS.
- * L = PROCESSOR LENGTH IN CM WORDS.
- * (L=0 IF NOT AN OVERLAY)
- * ADDR = PP ADDRESS OF CODE BEFORE LOADED TO CM.
- * = CM ADDRESS AFTER PRESET.
- * DI = OPTION (USUALLY A BUFFER INDEX).
- TCRO BSS 0
- LOC 0
- DFB RSDEF DISPLAY SECTOR - FIVE BYTES/LINE
- DTB RSDEF DISPLAY SECTOR - TEN BYTES/LINE
- DTX RSDEF DISPLAY SECTOR - TEXT
- DLC RSDEF DISPLAY LEGAL COMMANDS
- DFD RSDEF DISPLAY SECTOR - FORMATTED
- DSS RSDEF DISPLAY SYSTEM SECTOR FOR *DFD*
- DPE RSDEF DISPLAY PFC SECTOR FOR *DFD*
- DEI RSDEF DISPLAY EOI SECTOR FOR *DFD*
- MXDO EQU * MAXIMUM DISPLAY OVERLAY INDEX+1
- TAR ACRDEF TABLE ACCESS ROUTINES (EJT, FNT, QFT)
- LRR ACRDEF LABEL/TRT RECONSTRUCTION SUBROUTINES
- QUAL
- LOC *O
- TCRO EQU 0+TCEFL CM ADDRESS OF TABLE
- MXDI EQU DFDN+1 MAXIMUM DISPLAY INDEX FOR DISPLAY TOGGLE
- .1 SET *-/PRESET/TCRO
- TCROL EQU .1/5 TABLE LENGTH IN CM WORDS
- SPACE 4,10
- .1 SET *-/PRESET/TCEF
- CMTL EQU .1/5 CM TABLE AREA LENGTH
- QUAL *
- .CMTL SET CMTL ACCUMULATE TOTAL CM REQUIRED
- TITLE LOAD COMMAND PROCESSORS.
- LCP SPACE 4,15
- ** LCP - LOAD COMMAND PROCESSORS.
- *
- * ENTRY FROM PRS.
- * (AB+3 - AB+4) = CM LOAD ADDRESS COMMAND PROCESSORS.
- * (RC) = 1.
- * (TA) = CM FWA FOR TABLES.
- *
- * EXIT TO RESIDENT OVERLAY PRESET.
- *
- * USES AB, AB+3, AB+4, RC, T1.
- *
- * CALLS EXR, PSS.
- LCP3 LDC CMTL WRITE TABLES TO CM
- STD T1
- LDD RA
- ADD TA
- SHN 6
- CWM TCEF,T1
- LDC 3R8"OVLN"A LOAD RESIDENT ROUTINES OVERLAY
- RJM EXR EXECUTE OVERLAY
- LCP BSS 0
- LCP1 RJM PSS PAUSE FOR SYSTEM
- AOD RC ADVANCE OVERLAY NAME
- SBN .L+1
- PJN LCP3 IF ALL COMMAND OVERLAYS LOADED
- LDD RC LOAD NEXT OVERLAY
- ADC 2L8"OVLN"
- RJM EXR EXECUTE OVERLAY
- LDC TCEF-2 SET COMMAND TABLE ADDRESS
- STD AB
- LCP2 LDN 2 CHECK NEXT COMMAND
- RAD AB
- LDI AB
- ZJN LCP1 IF END OF COMMAND TABLE
- LDN 10 ADVANCE TO OVERLAY ID
- RAD AB
- LDI AB
- SHN 21-5
- MJN LCP2 IF PROCESSOR ALREADY LOADED
- STD T1
- SHN 5-21
- LPN 37
- LMD RC
- NJN LCP2 IF COMMAND PROCESSOR NOT IN THIS OVERLAY
- LDM 1,AB SET PP MEMORY ADDRESS
- STM LCPA
- LDI AB SET CM ADDRESS INTO TABLE
- SCN 77
- LMD AB+3
- LMN 40
- STI AB
- LDD AB+4
- STM 1,AB
- LDD AB+3 WRITE PROCESSOR TO CM
- SHN 6
- ADD RA
- SHN 6
- ADD AB+4
- CWM **,T1
- LCPA EQU *-1 (PP ADDRESS OF PROCESSOR)
- LDD T1 UPDATE CM ADDRESS
- RAD AB+4
- SHN -14
- RAD AB+3
- LJM LCP2 LOOP
- PSS SPACE 4,10
- ** PSS - PAUSE FOR SYSTEM.
- *
- * EXIT TO *PPR*, IF ERROR FLAG SET.
- * (CM+1) = 0 IF ERROR FLAG NOT SET.
- *
- * MACROS MONITOR, PAUSE.
- PSS SUBR ENTRY/EXIT
- PAUSE
- LDD CM+1
- ZJN PSSX IF ERROR FLAG NOT SET
- MONITOR DPPM DROP PP
- LJM PPR EXIT
- OVL SPACE 4,10
- ** OVL - COMMAND PROCESSOR OVERLAY LOAD ADDRESS.
- OVL EQU *+5
- TITLE PRESET PROGRAM.
- PRS SPACE 4,10
- ** PRS - PRESET PROGRAM.
- *
- * EXIT TO PPR IF ANY ERRORS.
- * TO LCP TO CONTINUE PRESET.
- * (AB+3 - AB+4) = CM LOAD ADDRESS COMMAND PROCESSORS.
- * (RC) = 1.
- * (TA) = CM FWA FOR TABLES.
- * (DDF) = 0, IF *DDFILE* NOT LOADED.
- *
- * USES CM - CM+4.
- *
- * CALLS DFM, CUA, PSS.
- *
- * MACROS EXECUTE, MONITOR, PAUSE.
- PRS BSS 0
- RJM CUA CHECK USER ACCESS
- NJN PRS0 IF JOB HAS NO SYSTEM ORIGIN PRIVILEGES
- LDK SSML
- CRD CM
- LDD CM
- LPN 7
- ZJN PRS1 IF UNSECURED SYSTEM
- LDK SSTL
- CRD CM
- LDD CM
- SHN 21-11
- MJN PRS1 IF *SECURITY-UNLOCK* SET
- PRS0 LDC PRSE * INCORRECT USER ACCESS.*
- RJM DFM SEND DAYFILE MESSAGE
- MONITOR ABTM
- LJM PPR EXIT
- PRS1 LDN 1 PRESET OVERLAY COUNTER
- STD RC
- LDN 10
- STD CM+4
- LDN SCTS SET *DIS* FLAG
- STD CM+1
- MONITOR SJCM
- PRS2 RJM PSS PAUSE FOR SYSTEM
- LDD FL
- NJN PRS3 IF NONZERO FIELD LENGTH
- LDN ZERL
- CRD CM
- AOD CM+1 REQUEST MEMORY
- MONITOR RSTM
- UJN PRS2 LOOP
- PRS3 RJM PSS PAUSE FOR SYSTEM
- LDN ZERL CLEAR CPU READY FLAG
- CRD CM
- LDD RA
- SHN 6
- ADN D
- CWD CM
- LDD CP WRITE CONTROL CARD TO MESSAGE AREA
- ADN MS1W
- CWM PRSB,ON
- CWD CM
- ADN TFSW-MS1W-1 FETCH EJT ORDINAL
- CRD CM
- SFA EJT,CM
- STD CM+4 SET ADDRESS OF EJT ENTRY
- STM DLSB
- SHN -14
- STD CM+3
- RAM DLSB-1
- LDN 0
- STD CM+2
- LDN 1S5+1 SET JOB ADVANCE
- STD CM+1
- LDD MA
- CWM PRSF,ON
- MONITOR UTEM
- LDD CM+1 CHECK *UTEM* RESPONSE
- NJP PRS3 IF REJECT
- RJM PSS PAUSE
- LDN ZERL
- CRD CM
- LDD MA CALL *1AJ* WITH CONTROL CARD IN MS1W
- CWM PRSC,ON
- CWD CM
- EXECUTE 1AJ,=
- MONITOR RPPM
- LDD CM+1
- ZJN PRS5 IF PP NOT ASSIGNED
- PRS4 PAUSE WAIT UNTIL CPU READY
- LDD CM+1
- ZJN PRS6 IF ERROR FLAG NOT SET
- PRS5 LDN 0 DISABLE LISTING FILE COMMANDS
- STM TCEFA
- STM DDF INDICATE *DDFILE* NOT LOADED
- STD CM+1 CLEAR ERROR FLAG
- MONITOR CEFM
- LDN ZERL
- UJN PRS7 REQUEST STORAGE FOR COMMAND PROCESSORS
- PRS6 LDD RA READ CPU READY FLAG
- SHN 6
- ADN D
- CRD CM
- LDD CM
- ZJN PRS4 IF NOT READY
- * REQUEST FL FOR COMMAND PROCESORS.
- LDD RA GET LWA+1 OF DDFILE
- SHN 6
- ADN D-1
- PRS7 CRD AB
- LDD AB+3
- SHN 14
- ADD AB+4
- ADN 77
- SHN -6
- STD TA SET CM TABLE ADDRESS
- SHN 6
- ADC TCMTL+77 CM FL INCREASE REQUIRED
- SHN -6
- STD AB (AB) = REQUIRED FL
- LDD CP
- ADN MS1W
- CWM PRSD,TR * WAITING FOR MEMORY.*
- PRS8 LDN ZERL
- CRD CM
- LDD AB REQUEST STORAGE
- STD CM+1
- MONITOR RSTM
- RJM PSS PAUSE
- LDD AB
- LMD FL
- NJN PRS8 IF MEMORY NOT OBTAINED
- * LOAD DISPLAY PROCESSOR OVERLAYS TO CM.
- LDD TA INITIALIZE OVERLAY ADDRESS POINTER
- SHN 6
- ADC CMTL
- STD AB+4
- SHN -14
- STD AB+3
- LDN 0
- STD AB
- PRS9 LDM TCRO+1,AB SET WORD COUNT
- ZJN PRS10 IF NOT AN OVERLAY
- STD T1
- LDM TCRO+3,AB SET PP MEMORY ADDRESS
- STM PRSA
- LDD AB+3 SET CM ADDRESS INTO TABLE
- STM TCRO+2,AB
- LDD AB+4
- STM TCRO+3,AB
- LDD AB+3 WRITE PROCESSOR TO CM
- SHN 6
- ADD RA
- SHN 6
- ADD AB+4
- CWM **,T1
- PRSA EQU *-1 (PP ADDRESS OF PROCESSOR)
- LDD T1 UPDATE CM ADDRESS
- RAD AB+4
- SHN -14
- RAD AB+3
- PRS10 LDN 5 ADVANCE INDEX
- RAD AB
- SBN MXDO*5
- PJN PRS11 IF END OF TABLE
- LJM PRS9 LOOP
- PRS11 LJM LCP LOAD COMMAND PROCESSORS FROM OVERLAYS
- PRSB VFD 48/8L$DDFILE.,12/0
- PRSC VFD 18/3R1AJ,6/0,12/2,12/0,12/4
- PRSD DATA C* WAITING FOR MEMORY.*
- PRSE DATA C* INCORRECT USER ACCESS.*
- PRSF VFD 12/1,6/6,42/1 SET JOB ADVANCE
- SPACE 4,10
- ** PRESET COMMON DECKS.
- QUAL$ EQU 0 DONT REQUALIFY COMMON DECKS
- *CALL COMPCUA
- EJT$ EQU 0 DEFINE *COMPGFP* ACCESS TO EJT
- *CALL COMPGFP
- QUAL * RESUME UNQUALIFIED DEFINITIONS
- TITLE RIGHT SCREEN DISPLAY PROCESSOR CM RESIDENT OVERLAYS.
- DFB SPACE 4,10
- *** FIVE BYTES PER LINE.
- * THE CONTENTS OF THE SECTOR ARE DISPLAYED BY CENTRAL
- * MEMORY WORD. THE BYTE NUMBERS ARE DISPLAYED IN
- * PARENTHESIS AFTER THE CENTRAL MEMORY WORD NUMBER.
- * THE */* IS USED TO TOGGLE BETWEEN THE FIRST AND
- * SECOND HALF OF THE SECTOR. THE NUMBER OF WORDS
- * DISPLAYED IS DETERMINED BY THE WORD COUNT IN THE
- * CONTROL BYTES.
- DFB SPACE 4,15
- ** DFB - DISPLAY FIVE BYTES/LINE.
- *
- * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN.
- * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD.
- * (T3) = BUFFER ADDRESS.
- *
- * EXIT TO DRS2.
- *
- * USES T3, YC, AB - AB+4.
- *
- * CALLS DMW, D4D, SPP.
- *
- * MACROS DISPLA.
- DFB RSOVL RSPLA
- DISPHD (DDF. 5 BYTES/LINE.)
- LDM CTOS SET TOP OF SCREEN
- OAN CH+40
- SBN YINC
- STD YC
- DISPLA CH01,,(LINKAGE BYTES = )
- LDI T3 DISPLAY CONTROL BYTES
- RJM D4D DISPLAY FOUR DIGITS
- LDN 0
- OAN CH+40
- LDM BFMS+1
- RJM D4D DISPLAY FOUR DIGITS
- RJM SPP SET PAGE PARAMETERS
- ZJN DFB1 IF NO WORDS TO DISPLAY
- STD AB+4
- LDM BFMS+1 NUMBER OF WORDS IN SECTOR
- SBD AB - FIRST WORD NUMBER
- MJN DFB4 IF NO DATA TO BE DISPLAYED
- SBD AB+4 - PAGE SIZE
- PJN DFB2 IF FULL PAGE TO BE DISPLAYED
- RAD AB+4 ADJUST WORD COUNT TO DISPLAY
- DFB1 ZJN DFB4 IF NO DATA TO DISPLAY
- DFB2 LCN YINC ADVANCE Y-COORDINATE
- RAD YC
- LDD AB SET LAST WORD NUMBER + 1
- ADN 10
- STD AB+1
- LCN 10 DECREMENT WORDS TO DISPLAY
- RAD AB+4
- PJN DFB3 IF FULL GROUP TO BE DISPLAYED
- RAD AB+1 ADJUST LAST WORD NUMBER
- LDN 0
- STD AB+4
- DFB3 LDD AB SET FIRST BYTE NUMBER
- SHN 2 FIRST WORD NUMBER * 5
- STD AB+2
- LDD AB
- ADN 2 + 2
- RAD AB+2 = FIRST BYTE NUMBER
- LDN 0 SET DISPLAY MODE
- STD AB+3
- RJM DMW DISPLAY MEMORY WORDS
- LDD AB+4
- NJN DFB2 IF MORE WORDS TO DISPLAY
- DFB4 LJM DRS2 EXIT
- DIS HERE
- DTB SPACE 4,10
- *** TEN BYTES PER LINE.
- * THE CONTENTS OF THE SECTOR ARE DISPLAYED 10B BYTES PER
- * LINE. THE ENTIRE SECTOR IS DISPLAYED ON THE SCREEN
- * WITH BYTE NUMBERS.
- DTB SPACE 4,15
- ** DTB - DISPLAY TEN BYTES/LINE
- *
- * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN.
- * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD.
- * (T3) = BUFFER ADDRESS.
- *
- * EXIT TO DRS2.
- *
- * USES T2, T3, XC, YC.
- *
- * CALLS D4D, ODC.
- DTB RSOVL RSPLA
- DISPHD (DDF. 10B BYTES/LINE.)
- LDC LN05
- STD YC
- LDM DCTY SET FIRST BYTE NUMBER
- SBK C545
- ZJN DTB1 IF CC545 CONSOLE
- LDN 0 CLEAR BOTTOM OF SCREEN ADJUSTMENT
- STM DTBA
- LDM DRSA+4 CHECK PAGE NUMBER FOR 721
- LPN 1
- ZJN DTB1 IF FIRST PAGE
- LDC 250 SET FIRST BYTE SECOND PAGE
- DTB1 STD T2
- * OUTPUT ONE LINE.
- DTB2 LDN 2 OUTPUT COORDINATES
- OAM XC,CH
- LDD T2
- RJM D4D DISPLAY BYTE NUMBER
- LDN 7*XINC
- DTB3 RAD XC OUTPUT X-COORDINATE
- OAN CH+40
- LDM BFMS,T2
- RJM D4D DISPLAY CONTENTS OF BYTE
- AOD T2
- LPN 7
- ZJN DTB4 IF END OF LINE
- LDN 5*XINC
- UJN DTB3 LOOP TO DISPLAY REST OF LINE
- * OUTPUT DISPLAY CODE FOR LINE.
- DTB4 OAN CH+40
- LDC CH01 RESET X-COORDINATE
- STD XC
- LDC BFMS-10 SET ADDRESS OF FIRST BYTE
- ADD T2
- STD T3
- LDN 10 BYTES TO DISPLAY
- RJM ODC OUTPUT DISPLAY CODE
- LDD T2
- LPN 77
- NJN DTB5 IF NOT NEW BLOCK
- * ADVANCE Y-COORDINATE.
- LCN YINC
- RAD YC
- DTB5 LCN YINC
- RAD YC
- SBM CBOS
- DTBA ADN YINC*4
- MJN DTB8 IF AT BOTTOM OF SCREEN
- LDC 500-1 CHECK FOR END OF DISPLAY
- SBD T2
- MJN DTB6 IF AT BOTTOM OF SCREEN
- LJM DTB2 LOOP
- * DISPLAY LAST TWO BYTES.
- DTB6 LDN 2 OUTPUT COORDINATES
- OAM XC,CH
- LDD T2 DISPLAY BYTE NUMBER
- RJM D4D
- LDN 7*XINC
- DTB7 RAD XC OUTPUT X-COORDINATE
- OAN CH+40
- LDM BFMS,T2 DISPLAY CONTENTS OF BYTE
- RJM D4D
- AOD T2
- LPN 1
- ZJN DTB9 IF BOTH BYTES DISPLAYED
- LDN 5*XINC
- UJN DTB7 LOOP TO DISPLAY REST OF LINE
- DTB8 UJN DTB10 RETURN
- DTB9 LDC CH49 OUTPUT DISPLAY CODE FOR LAST 2 BYTES
- OAN CH+40
- LDC BFMS+500
- STD T3
- LDN 2
- RJM ODC
- LDC CH01 RESET X-COORDINATE
- STD XC
- DTB10 LJM DRS2 RETURN
- DIS HERE
- DTX SPACE 4,10
- *** TEXT.
- * DISPLAYS THE CONTENTS OF THE SECTOR IN TEXT MODE.
- * THE AMOUNT OF TEXT TO DISPLAY IS DETERMINED BY THE
- * WORD COUNT IN THE CONTROL BYTES.
- DTX SPACE 4,15
- ** DTX - DISPLAY TEXT.
- *
- * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN.
- * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD.
- * (T3) = BUFFER ADDRESS.
- *
- * EXIT TO DRS2.
- *
- * USES T1, T2, T3, AB, YC.
- *
- * CALLS ODC.
- DTX RSOVL RSPLA
- DISPHD (DDF. TEXT MODE DISPLAY.)
- LDM CTOS
- ADN YINC
- STD YC
- LDM BFMS SET WORD COUNT
- NJN DTX2 IF DATA TO DISPLAY
- DTX1 LJM DTX7 RETURN
- DTX2 LDM BFMS+1
- STD AB
- LDM DCTY SET FIRST BYTE NUMBER
- SBK C545
- ZJN DTX3 IF CC545 CONSOLE
- LDM DRSA+4 CHECK PAGE NUMBER FOR 721
- LPN 1
- ZJN DTX3 IF FIRST PAGE
- LDC -40 DECREMENT NUMBER OF WORDS TO DISPLAY
- RAD AB
- MJN DTX1 IF NO WORDS TO DISPLAY
- LDC 240 SET FIRST BYTE SECOND PAGE
- DTX3 ADN 2
- RAD T3 FIRST BYTE TO DISPLAY
- LDN 0
- STD T1
- DTX4 LDD XC
- DTX5 OAN CH+40
- LCN YINC
- RAD YC
- SBM CBOS
- MJN DTX7 IF BOTTOM OF SCREEN REACHED
- LDD YC
- OAN CH+40
- LDN 0 INITIALIZE LINE WORD COUNT
- STD T2
- DTX6 LDD T1
- SBD AB
- ZJN DTX7 IF ALL WORDS DISPLAYED
- LDN 5
- RJM ODC OUTPUT DISPLAY CODE WORD
- AOD T1
- LDM -1,T3
- ZJN DTX4 IF END OF TEXT LINE
- AOD T2
- SBN 5
- NJN DTX6 IF NOT END OF SCREEN LINE
- LDC CH05 CONTINUE ON NEXT LINE OF SCREEN
- UJN DTX5 LOOP FOR REST OF LINE
- DTX7 LJM DRS2 RETURN
- DIS HERE
- DLC SPACE 4,10
- *** LEGAL COMMANDS.
- * DISPLAYS A LIST OF THE DDF COMMANDS.
- DLC SPACE 4,15
- ** DLC - DISPLAY LEGAL COMMANDS.
- *
- * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN.
- * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD.
- * (TA) = ADDRESS OF COMMAND TABLE IN CM.
- *
- * EXIT TO DRS2.
- *
- * USES T2, DK, RC, XC, YC, AB - AB+4.
- *
- * CALLS DOL.
- DLC RSOVL RSPLA
- DISPHD (DDF. LEGAL COMMANDS.)
- LDN 0 INITIALIZE COMMAND INDEX
- STD DK
- DLC1 LDM CTOS
- STD YC
- LDN RCPC COMMANDS PER COLUMN
- STD RC
- DLC2 LDN 2 OUTPUT COORDINATES
- OAM XC,CH
- LDD RA GET ADDRESS OF COMMAND
- ADD TA
- SHN 6
- ADD DK
- ADN 2 CHECK NEXT COMMAND
- CRD AB
- SBN 2
- RJM DOL DISPLAY COMMAND
- LDD AB CHECK NEXT COMMAND
- ZJN DLC3 IF END OF COMMANDS
- LCN YINC ADVANCE Y-COORDINATE
- RAD YC
- LDN 2 ADVANCE COMMAND INDEX
- RAD DK
- SOD RC
- NJN DLC2 IF NOT END OF COLUMN
- LDC 13D*XINC ADVANCE X-COORDINATE
- RAD XC
- UJN DLC1 START NEXT COLUMN
- DLC3 LDM DCTY RESET COORDINATES
- SBK C545
- ZJN DLC4 IF CC545 CONSOLE
- LDN 3*YINC
- DLC4 SBK 3*YINC+RCPC*YINC
- ADM CTOS
- STD YC
- LDC CH01
- STD XC
- * OUTPUT SPECIAL CHARACTER COMMANDS.
- LDC DLCA-1
- STD T2
- DLC5 LCN YINC
- RAD YC
- LDN 2
- OAM XC,CH
- DLC6 AOD T2 DISPLAY LINE
- LDI T2
- OAN CH+40
- LPN 77
- NJN DLC6 IF NOT END OF LINE
- LDM 1,T2
- NJN DLC5 IF MORE LINES TO DISPLAY
- LJM DRS2 RETURN
- DLCA BSS 0
- DATA Z*+ INCREMENT SECTOR.*
- DATA Z*- DECREMENT SECTOR.*
- DATA Z*. ADVANCE PAST END OF TRACK, ZERO SECTOR.*
- DATA Z*, ADVANCE TO NEXT TRACK IN CHAIN.*
- DATA Z*= ADVANCE PAST EOI.*
- DATA Z*8 INCREMENT TRACK.*
- DATA Z*9 DECREMENT TRACK.*
- DATA Z*/ ADVANCE RIGHT SCREEN.*
- DATA Z*SPACE - READ CURRENT SECTOR.*
- DATA Z*RIGHT BLANK OR TAB - CHANGE RIGHT DISPLAY.*
- CON 0
- DIS HERE
- DFD SPACE 4,20
- ** DFD - DISPLAY FORMATTED DATA.
- *
- * DETERMINES SECTOR TYPE AND CALLS APPROPRIATE FORMATTING
- * DISPLAY PROCESSOR.
- *
- * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN.
- * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD.
- * (T3) = BUFFER ADDRESS.
- *
- * EXIT TO DRS2.
- *
- * USES AB.
- *
- * CALLS DEI, DPE, DSS, D4D, LDO.
- *
- * MACROS DISPLA.
- DFD RSOVL RSPLA
- DISPHD (DDF. FORMATTED DISPLAY.)
- LDM CTOS
- OAN CH+40
- ADM DBLS DOUBLE SPACE
- ADN YINC BACK UP ONE
- STD YC
- DISPLA CH01,,(LINKAGE BYTES = )
- LDI T3
- RJM D4D DISPLAY FIRST BYTE
- LDN 0
- OAN CH+40
- STD AB
- LDM BFMS+1
- RJM D4D DISPLAY SECOND BYTE
- LDI T3
- ZJN DFD2 IF EOF/EOI SECTOR
- LDM BFMS+1
- ZJN DFD5 IF EMPTY SECTOR
- LDI T3
- SHN 6
- ADM BFMS+1
- LMC 377777
- NJN DFD1 IF NOT SYSTEM SECTOR
- LDN DSSN SELECT SYSTEM SECTOR DISPLAY
- UJN DFD3 LOAD PROCESSOR
- DFD1 LDN DPEN SELECT PFC DISPLAY
- UJN DFD3 LOAD PROCESSOR
- DFD2 LDM BFMS+1
- NJN DFD5 IF NOT EOI SECTOR
- LDN DEIN SELECT EOI SECTOR DISPLAY
- DFD3 LMM DFDB
- ZJN DFD4 IF PROCESSOR LOADED
- LMM DFDB
- STM DFDB
- RJM LDO LOAD DISPLAY OVERLAY
- LDD CM SET PROCESSOR ADDRESS
- STM DFDA
- DFD4 LJM ** JUMP TO DISPLAY PROCESSOR
- DFDA EQU *-1
- DFD5 LJM DRS2 RETURN
- DFDB DATA 0 CURRENT PROCESSOR ID
- DCE SPACE 4,15
- ** DCE - DISPLAY PF CATALOG ENTRY.
- *
- * ENTRY (AB+2) = SET FOR CALL TO DMW.
- * (T3) = BUFFER ADDRESS.
- *
- * EXIT DATA DISPLAYED.
- *
- * USES T1, AB, AB+1, CM, YC.
- *
- * CALLS DPT, DMW.
- *
- * MACROS DISPLA.
- DCE SUBR ENTRY/EXIT
- LDM CPFC SET *DMW* PARAMETERS
- STD YC
- LDN 0
- STD AB
- LDN NWCE
- STD AB+1
- LDC TPFC
- STD AB+3
- RJM DMW DISPLAY MEMORY WORDS
- * DISPLAY DATES AND MODES.
- LDM DBLS
- RAD YC
- LPC 7777
- OAN CH+40
- LDC -NWCE*5
- ADD T3
- STD CM
- DISPLA CH01,,(CREATED )
- LDD CM DISPLAY CREATION DATE
- ADN FCCD
- RJM DPT DISPLAY PACKED DATE AND TIME
- DISPLA CH34,,( CT = )
- LDM FCCT,CM DISPLAY FILE CATAGORY
- SHN -6
- STD T1
- LDM DCEA,T1
- OAN CH+40
- DISPLA ,,( M = )
- LDM FCAM,CM DISPLAY ACCESS MODE
- LPN 77
- STD T1
- LDM DCEB,T1
- OAN CH+40
- LCN YINC
- RAD YC
- OAN CH+40
- DISPLA CH01,,(MODIFIED )
- LDD CM DISPLAY MODIFICATION DATE
- ADN FCMD
- RJM DPT
- DISPLA CH35,,(CONTROL )
- LDD CM DISPLAY CONTROL CHANGE DATE
- ADN FCKD
- RJM DPT
- LCN YINC
- RAD YC
- OAN CH+40
- DISPLA CH01,,(ACCESSED )
- LDD CM DISPLAY LAST ACCESS DATE
- ADN FCAD
- RJM DPT
- DISPLA CH35,,(UTILITY )
- LDD CM DISPLAY UTILITY ACCESS DATE
- ADN FCUD
- RJM DPT
- LJM DCEX RETURN
- DCEA DATA 2HPR FILE CATAGORIES
- DATA 2HSP
- DATA 2HPU
- DCEB DATA 2HWR ACCESS MODES
- DATA 2HRD
- DATA 2HAP
- DATA 2HEX
- DATA 2H
- DATA 2HMD
- DATA 2HRM
- DATA 2HRA
- DPT SPACE 4,10
- ** DPT - DISPLAY PACKED DATE AND TIME.
- *
- * ENTRY (A) = ADDRESS OF PACKED DATE AND TIME.
- *
- * USES T1, AB - AB+4.
- *
- * CALLS CDD.
- DPT SUBR ENTRY/EXIT
- STD T1
- LDI T1 CONVERT YEAR
- SHN -6
- SBN 30D
- PJN DPT1 IF YEAR GREATER THAN 1999
- ADC 100D
- DPT1 RJM CDD
- SHN 6
- LMN 1R/
- STD AB+1
- SHN -14
- LMC 2L
- STD AB
- LDI T1 CONVERT MONTH
- LPN 77
- RJM CDD
- STD AB+2
- AOD T1
- LDI T1 CONVERT DAY
- SHN -6
- RJM CDD
- SHN 6
- LMN 1R.
- STD AB+4
- SHN -14
- LMC 2L /
- STD AB+3
- LDN 5 DISPLAY * YY/MM/DD.*
- OAM AB,CH
- LDI T1 CONVERT HOUR
- LPN 77
- RJM CDD
- SHN 6
- LMN 1R.
- STD AB+1
- SHN -14
- LMC 2L
- STD AB
- AOD T1
- LDI T1 CONVERT MINUTE
- SHN -6
- RJM CDD
- STD AB+2
- LDI T1 CONVERT SECOND
- LPN 77
- RJM CDD
- SHN 6
- LMN 1R.
- STD AB+4
- SHN -14
- LMC 2L .
- STD AB+3
- LDN 5 DISPLAY * HH/MM/SS.*
- OAM AB,CH
- LJM DPTX RETURN
- SPACE 4,10
- ** *DFD* COMMON DECKS.
- *CALL COMPCDD
- SPACE 4,10
- * PFC TAGS FOR DISPLAYS.
- TPFC DATA 10H FCFN/FCUI
- DATA 10H FCLF/FCBT
- DATA 10H FCRI/FCCD
- DATA 10H FCAC/FCMD
- DATA 10H FCCT/FCAD
- DATA 10H FCKD
- DATA 10H FCRS/FCUD
- DATA 10H FCPW/FCXD
- DATA 10H FCAF/FCAA
- DATA 10H FCAL/FCFC
- DATA 10H FCCN
- DATA 10H FCP1
- DATA 10H FCP2
- DATA 10H FCTF/FCTV
- DATA 10H FCCW
- DATA 10H FCIW
- SPACE 4,10
- * FNT DISPLAY TAGS.
- TFNT DATA 10H FNT
- DATA 10H FST
- DIS HERE
- SPACE 4,10
- QUAL
- .1 SET *-RSPLA+4
- FDPLA EQU RSPLA+.1/5*5 FORMATTED DISPLAY PROCESSOR LOAD ADDRESS
- QUAL *
- DSS SPACE 4,10
- *** SYSTEM SECTOR DISPLAY.
- * IF THE SECTOR CURRENTLY IN THE BUFFER IS A SYSTEM
- * SECTOR, THE VARIOUS FIELDS THEREIN ARE DISPLAYED.
- DSS SPACE 4,15
- ** DSS - DISPLAY SYSTEM SECTOR.
- *
- * ENTRY FROM DFD.
- * CONSOLE FUNCTIONED FOR RIGHT SCREEN.
- * (T3) = BUFFER ADDRESS.
- * (YC) = Y-COORDINATE.
- *
- * EXIT TO DRS2.
- *
- * USES AB - AB+3, YC.
- *
- * CALLS DCE, DMW, DPT.
- *
- * MACROS DISPLA.
- DSS RSOVL FDPLA
- LDN 0 DISPLAY FNT/FST
- STD AB
- LDN 2
- STD AB+1
- LDN FNSS-BFMS
- STD AB+2
- LDC /DFD/TFNT
- STD AB+3
- RJM DMW DISPLAY MEMORY WORDS
- LDM DBLS
- RAD YC
- LPC 7777
- OAN CH+40
- DISPLA CH01,,(SYSTEM SECTOR. UPDATED)
- LDC DTSS+2 DISPLAY DATE AND TIME
- RJM /DFD/DPT
- * DISPLAY PFC ENTRY FOR DIRECT ACCESS OR FAST ATTACH FILES.
- LDM FNSS+4 CHECK FILE TYPE
- SHN -6
- LMN PMFT
- ZJN DSS1 IF DIRECT ACCESS PERMANENT FILE
- LMN FAFT&PMFT
- NJN DSS2 IF NOT FAST ATTACH FILE
- DSS1 LDN CTSS-BFMS
- STD AB+2
- RJM /DFD/DCE DISPLAY CATALOG ENTRY
- DSS2 LJM DRS2 RETURN
- DIS HERE
- DPE SPACE 4,10
- *** PFC ENTRY.
- * THE CONTENTS OF ONE PERMANENT FILE CATALOG ENTRY ARE
- * DISPLAYED. THE CENTRAL MEMORY WORD NUMBER DISPLAYED
- * IS RELATIVE TO THE BEGINNING OF THE PFC ENTRY. THE
- * BYTE NUMBER RELATIVE TO THE BEGINNING OF THE SECTOR
- * IS DISPLAYED IN PARENTHESIS AFTER THE CM WORD NUMBER.
- * THE */* IS USED TO ADVANCE TO THE NEXT PFC ENTRY IN
- * THE SECTOR.
- DPE SPACE 4,15
- ** DPE - DISPLAY PFC ENTRY.
- *
- * ENTRY FROM DFD.
- * CONSOLE FUNCTIONED FOR RIGHT SCREEN.
- * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD.
- * (T3) = BUFFER ADDRESS.
- * (YC) = Y-COORDINATE.
- *
- * EXIT TO DRS2.
- *
- * USES T2, AB+2, DRSA+4.
- *
- * CALLS DCE, D2S.
- *
- * MACROS DISPLA.
- DPE RSOVL FDPLA
- LDM DRSA+4 CHECK INDEX
- SHN NWCES
- SBM BFMS+1
- PJN DPE1 IF NOT IN SECTOR
- ADN NWCE-1
- MJN DPE2 IF END OF PFC NOT IN SECTOR
- DPE1 LDN 0
- STM DRSA+4
- DPE2 LCN YINC*2
- RAD YC
- OAN CH+40
- DISPLA CH01,,(PFC ORDINAL = )
- LDM DRSA+4
- ADN 1R0
- OAN CH+40
- LDM DRSA+4
- SHN NWCES
- STD T2
- SHN 2
- ADD T2
- ADN 2
- STD AB+2
- RJM /DFD/DCE DISPLAY CATALOG ENTRY
- LJM DRS2 RETURN
- DIS HERE
- DEI SPACE 4,10
- *** EOI SECTOR DISPLAY.
- * IF THE SECTOR CURRENTLY IN THE BUFFER IS AN EOI
- * SECTOR, THE VARIOUS FIELDS THEREIN ARE DISPLAYED.
- DEI SPACE 4,15
- ** DEI - DISPLAY EOI SECTOR.
- *
- * ENTRY FROM DFD.
- * CONSOLE FUNCTIONED FOR RIGHT SCREEN.
- * (T3) = BUFFER ADDRESS.
- *
- * EXIT TO DRS2.
- *
- * USES AB - AB+3, YC.
- *
- * CALLS DMW, DPT.
- *
- * MACROS DISPLA.
- DEI RSOVL FDPLA
- LDN 0 DISPLAY FNT/FST
- STD AB
- LDN 2
- STD AB+1
- LDN FNEI
- STD AB+2
- LDC /DFD/TFNT
- STD AB+3
- RJM DMW DISPLAY MEMORY WORDS
- LDM DBLS
- RAD YC
- LPC 7777
- OAN CH+40
- DISPLA CH01,,(EOI SECTOR. UPDATED)
- LDC BFMS+DTEI+2 DISPLAY DATE AND TIME
- RJM /DFD/DPT
- LJM DRS2 RETURN
- DIS HERE
- SPACE 4,10
- RSOVL END OF RIGHT SCREEN PROCESSORS
- QUAL PRESET
- .1 MAX DSSL,DPEL,DEIL
- .2 SET FDPLA-RSPLA
- .MRSPL MAX .MRSPL,.2/5+.1 MAXIMUM TOTAL OVERLAY AREA
- QUAL *
- MRSPL EQU /PRESET/.MRSPL MAX RIGHT SCREEN PROCESSOR LENGTH
- SPACE 4,15
- ** AUXILIARY COMMAND ROUTINES ORIGIN DEFINITION.
- *
- * THIS AREA AT THE END OF THE RIGHT SCREEN PROCESSOR OVERLAY
- * AREA MAY BE USED BY COMMAND PROCESSORS FOR EXTRA SUBROUTINES.
- * BEFORE LOADING THE SUBROUTINES, THE COMMAND PROCESSOR MUST
- * FIRST SET THE DISPLAY INDEX (RS) TO *DFBN* TO SELECT THE
- * SHORTEST DISPLAY OVERLAY (*DFB*). NOTE THAT THIS MUST BE
- * DONE BEFORE EACH CALL TO REFRESH THE DISPLAY TO OVERRIDE ANY
- * KEYBOARD REQUESTS THAT CHANGE THE RIGHT SCREEN DISPLAY.
- *
- * ** THE *DFB* DISPLAY MUST NOT USE ANY SECONDARY OVERLAYS. **
- ACRLA EQU RSPLA+/PRESET/DFBL*5
- MACRL EQU MRSPL-/PRESET/DFBL MAXIMUM LENGTH OF OVERLAY
- SPACE 4,10
- ** RESIDENT OVERLAY ORIGIN DEFINITION.
- *
- * THIS OVERLAY IS LOADED ONCE AND REMAINS IN THE PP.
- RESLA EQU RSPLA+MRSPL*5-4 RESIDENT LOAD ADDRESS
- SPACE 4,10
- OVERFLOW PPFW
- OVERLAY RESLA,(RESIDENT ROUTINES.)
- QUAL *
- BSS 2
- LJM PRR PRESET RESIDENT ROUTINES
- * ABOVE CODE MAY BE OVERLAYED BY RIGHT SCREEN PROCESSORS.
- TITLE KEYBOARD INPUT PROCESSING.
- *** KEYBOARD INPUT.
- * IF THE CHARACTERS ARE THE FIRST ENTRY, THE FOLLOWING
- * APPLIES -
- * *+* READS THE NEXT SECTOR. IF AT EOI OR END OF THE TRACK THE
- * CURRENT SECTOR IS REREAD.
- * *-* READS THE PREVIOUS SECTOR. IF AT THE BEGINNING OF TRACK
- * THE CURRENT SECTOR IS REREAD.
- * *.* ADVANCES TO TRACK IN THE CONTROL BYTES AND SETS THE
- * SECTOR TO 0. IF THE CONTROL BYTES DO NOT CONTAIN A
- * TRACK LINK, THE CURRENT SECTOR IS REREAD.
- * *,* ADVANCES TO THE NEXT TRACK IN THE TRT CHAIN. THE SECTOR
- * NUMBER IS NOT CHANGED. IF CURRENTLY IN THE LAST
- * TRACK IN THE CHAIN, THE CURRENT SECTOR IS REREAD.
- * *=* READS THE NEXT SECTOR AFTER EOI. IF THE EOI IS AT THE
- * END OF AN EOI TRACK, THE CURRENT SECTOR IS REREAD.
- * *CR* SETS *REPEAT ENTRY.*
- * * * READS THE CURRENT SECTOR INTO THE BUFFER.
- * (*) HOLDS DISPLAY.
- * *8* INCREMENTS THE TRACK NUMBER BY ONE AND READS THE SECTOR.
- * *9* DECREMENTS THE TRACK NUMBER BY ONE AND READS THE SECTOR.
- * RIGHT BLANK OR TAB CHANGES THE RIGHT SCREEN DISPLAY.
- * */* ADVANCES THE ADDRESS DISPLAYED ON THE RIGHT SCREEN.
- *
- * ALL COMMANDS ARE DISPLAYED ON THE BOTTOM OF THE LEFT SCREEN
- * AS THEY ARE ENTERED.
- *
- * *CR* MUST FOLLOW ALL COMMANDS BEFORE ACTION IS TAKEN.
- * *BKSP* DELETES THE PREVIOUS CHARACTER TYPED.
- * LEFT BLANK OR BACKTAB DELETES THE CURRENT LINE BEING ENTERED.
- *
- * COMMANDS ARE PROCESSED INTERPRETIVELY. AFTER THE PERIOD (.)
- * ANY ALPHA-NUMERIC CHARACTERS CAN BE ENTERED, HOWEVER, THE
- * MESSAGE *FORMAT ERROR.* OR *INCORRECT PARAMETER.* WILL APPEAR
- * AFTER THE *CR* IS ENTERED IF AN ERROR IS MADE.
- *
- * NOTE THAT MOST COMMANDS DO NOT CAUSE A SECTOR TO ACTUALLY
- * BE READ AND DISPLAYED. AFTER ENTERING COMMANDS THAT CHANGE
- * THE EQUIPMENT, TRACK, OR SECTOR A SPACE MUST BE ENTERED TO
- * READ THE SECTOR. THIS ALLOWS DATA FROM ONE SECTOR TO BE
- * READ AND WRITTEN TO ANOTHER SECTOR.
- *
- * AFTER A COMMAND THAT CHANGES THE EQUIPMENT OR TRACK, THE
- * TRACK AND SECTOR NUMBERS ARE CHECKED. IF EITHER THE TRACK
- * OR SECTOR IS ILLEGAL ON THE EQUIPMENT/TRACK, IT WILL BE SET
- * TO ZERO.
- *
- DKB SPACE 4,10
- ** DKB - DISPLAY KEYBOARD BUFFER.
- *
- * ENTRY (KM) = ADDRESS OF KEYBOARD MESSAGE.
- * (DK) = DISPLAY KEYBOARD CONTROL(721 ONLY).
- *
- * EXIT (A) = (DK), ZERO FOR CC545.
- *
- * USES DK, T1, YC.
- *
- * MACROS CFNC, DFIM.
- DKB SUBR ENTRY/EXIT
- CFNC SLPF SELECT LEFT PRIORITY OUTPUT
- DFIM (CON LN51),*+1
- LDC LN49-YINC/2 SET Y-COORDINATE
- STD YC
- DFIM (UJN DKB1)
- * DISPLAY KEYBOARD BUFFER IN MEDIUM CHARACTERS ON CC545.
- DCN CH+40
- CFNC SLMF SELECT LEFT SCREEN, MEDIUM CHARACTERS
- LDN 4 SET INTENSIFICATION COUNT
- STD 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(S) IF SET.
- LDN 2 OUTPUT ERROR MESSAGE LINE COORDINATE
- OAM DKBA,CH
- LDD KM
- ZJN DKB5 IF ERROR MESSAGE NOT SET
- STD T1 SET MESSAGE ADDRESS
- DKB4 LDI T1 DISPLAY MESSAGE
- OAN CH+40
- LPN 77
- ZJN DKB5 IF END OF MESSAGE
- AOD T1
- UJN DKB4 DISPLAY NEXT BYTE
- DKB5 LDD SB
- NJN DKB6 IF SYSTEM BUSY FLAG CLEAR
- DISPLA ,,(SYSTEM BUSY.)
- * LOOP FOR PROPER INTENSIFICATION.
- DFIM (CFNC EELF)
- DKB6 SOD DK
- ZJN DKB7 IF INTENSIFICATION COMPLETE
- LJM DKB1 LOOP
- DKB7 FJM *,CH IF CHANNEL FULL, WAIT UNTIL EMPTY
- DCN CH+40
- LDD DK
- LJM DKBX RETURN
- * COORDINATES FOR ERROR MESSAGE LINE.
- DKBA CON CH01
- DFIM (CON LN50)
- CON LN48+YINC/2
- PKI SPACE 4,10
- ** PKI - PROCESS KEYBOARD INPUT.
- *
- * EXIT TO SPECIAL CHARACTER PROCESSOR.
- * TO FIRST CHARACTER PROCESSOR.
- * TO *BSP* IF KEYBOARD BUFFER FULL.
- * TO *IKE* IF NOT A SPECIAL CHARACTER.
- *
- * USES DK, EF, KE, KI, T1.
- *
- * CALLS BSP, DKB, IKE, SPECIAL CHARACTER PROCESSORS.
- PKI8 STM PKIA STORE CHARACTER
- PKI9 LDN 0
- STD DK
- PKIX RJM DKB DISPLAY KEYBOARD LINE
- NJN PKI1 IF INPUT NOT COMPLETE
- LJM * ENTRY/EXIT
- PKI EQU *-1
- *PKI SUBR ENTRY/EXIT
- LDN 0
- STD DK
- PKI1 CFNC SKIF SELECT KEYBOARD INPUT
- IAN CH+40
- DCN CH+40
- STD KE
- ZJN PKI8 IF NO INPUT
- DFIM (UJN PKI3)
- LDC 60B PRESET TO *CR*
- PKIA EQU *-1
- ZJN PKI2 IF NO PREVIOUS CHARACTER
- SOM PKIB DECREMENT COUNTER
- NJN PKI9 IF DELAY NOT ELAPSED
- LDN 20 SET REPEAT DELAY
- PKI2 LMN 24 SET INITIAL DELAY
- STM PKIB
- PKI3 LDD KE
- STM PKIA
- SBN 63
- PJN PKI9 IF ILLEGAL CHARACTER
- ADN 63-1R8
- MJN PKI7 IF NOT SPECIAL FIRST CHARACTER
- LDD KI
- NJN PKI4 IF NOT FIRST CHARACTER
- LDM PKIC-1R8,KE GET ADDRESS OF PROCESSOR
- STD T1
- UJN PKI5 PROCESS COMMAND
- PKI4 LDD KE
- SBN 53
- MJN PKI7 IF NOT SPECIAL CHARACTER
- LDM PKID-53,KE GET ADDRESS OF PROCESSOR
- STD T1
- PKI5 LJM 0,T1 PROCESS COMMAND
- PKI6 LDN 1R REPLACE CODE FOR SPACE
- STD KE
- PKI7 LDN 0 CLEAR EXECUTE FLAG
- STD EF
- LDD KE
- STM KBUF,KI
- AOD DK
- AOD KI
- LMK KBUFL-1
- NJN IKE IF BUFFER NOT FULL
- LJM BSP DELETE LAST CHARACTER ENTERED
- PKIB CON 1 DELAY COUNT
- PKIC SPACE 4,10
- * TABLE OF SPECIAL FIRST CHARACTERS.
- PKIC BSS 0
- LOC 1R8
- CON ITN 8 - INCREMENT TRACK NUMBER
- CON DTN 9 - DECREMET TRACK NUMBER
- CON AOS + - ADVANCE ONE SECTOR
- CON BOS - - BACKUP ONE SECTOR
- CON DDC * - DROP DISPLAY CHANNEL
- CON IRD / - INCREMENT RIGHT DISPLAY
- CON PKIX (
- CON PKIX )
- CON CMB LEFT BLANK - CLEAR MESSAGE AND KEYBOARD
- CON APE = - ADVANCE PAST EOI
- CON RRD RIGHT BLANK - ROTATE RIGHT DISPLAY
- CON AOT , - ADVANCE ONE TRACK
- CON ATZ . - ADVANCE ONE TRACK AND ZERO SECTOR NO.
- CON SRE CR - SET REPEAT ENTRY
- CON PKIX BKSP
- CON RCS SPACE - READ CURRENT SECTOR
- LOC *O
- PKID SPACE 4,10
- * TABLE OF SPECIAL CHARACTERS.
- PKID BSS 0
- LOC 53
- CON CMB LEFT BLANK - CLEAR MESSAGE AND KEYBOARD
- CON PKI7 =
- CON RRD RIGHT BLANK - ROTATE RIGHT DISPLAY
- CON PKI7 ,
- CON PKI7 .
- CON PEC CR - PROCESS ENTERED COMMAND
- CON BSP BKSP - DELETE LAST CHARACTER
- CON PKI6 SPACE
- LOC *O
- IKE SPACE 4,15
- ** IKE - INTERPRET KEYBOARD ENTRY.
- *
- * ENTRY (EF) = 0 IF INTERPRET ONLY.
- * (EF) " 0 IF EXECUTE REQUESTED.
- * (KI) = END OF BUFFER POINTER.
- * (TA) = CM FWA OF COMMAND TABLE.
- *
- * EXIT TO PKIX IF EXECUTE NOT REQUESTED.
- * TO EMC IF FIRST CHARACTER 0 - 7.
- * TO COMMAND PROCESSOR IF EXECUTE AND COMMAND COMPLETE.
- * (CA) = ADDRESS OF NEXT CHARACTER IN BUFFER.
- *
- * USES T1 - T3, CA, CM, KM.
- *
- * CALLS EMC, COMMAND PROCESSORS.
- IKE LDN 0
- STD T1 SET TRIAL CHARACTER
- STD CM SET SYNTAX TABLE INDEX
- LDM KBUF CHECK FIRST CHARACTER
- SBN 1R0
- MJN IKE1 IF ALPHABETIC
- SBN 8D
- PJN IKE1 IF ABOVE 7
- LJM EMC PROCESS MEMORY CHANGE COMMAND
- IKE1 LDN 2 SET SYNTAX ENTRY LENGTH
- STD T2
- LDD RA READ ENTRY
- ADD TA
- SHN 6
- ADD CM
- CRM IKEA,T2
- LDN 2 ADVANCE INDEX FOR NEXT PASS
- RAD CM
- LDC IKEA SET ENTRY POINTER
- STD T2
- LDI T2
- NJN IKE2 IF NOT END OF TABLE
- LJM IKE9 PROCESS END OF SCAN
- IKE2 LDC KBUF SET CHARACTER ADDRESS
- STD CA
- IKE3 LDI T2 COMPARE UPPER
- SHN -6
- ZJN IKE7 IF COMPARE COMPLETE
- STD T3
- LMI CA
- NJN IKE4 IF NO MATCH
- AOD CA
- LDI T2 COMPARE LOWER
- LPN 77
- ZJN IKE7 IF COMPARE COMPLETE
- STD T3
- LMI CA
- NJN IKE4 IF NO MATCH
- AOD T2
- AOD CA
- UJN IKE3 LOOP
- * PROCESS NO MATCH FOUND.
- IKE4 LDI CA
- NJN IKE5 IF DIFFERENT CHARACTER
- LDD T1
- NJN IKE6 IF NOT UNIQUE ENTRY
- LDD T3 SET NEXT CHARACTER
- STD T1
- IKE5 LJM IKE1 LOOP
- IKE6 LMD T3
- ZJN IKE5 IF SAME CHARACTER
- UJN IKE10 CHECK EXECUTE FLAG
- * PROCESS UNIQUE CHARACTER.
- IKE7 LDD EF
- NJN IKE8 IF EXECUTE FLAG SET
- LJM PKIX RETURN IF INTERPRET ONLY
- * PROCESS COMMAND.
- IKE8 LDM IKEA+10 SET WORD COUNT
- SHN -6
- STD T1
- LDM IKEA+10 GET CM ADDRESS
- LPN 37
- SHN 6
- ADD RA
- SHN 6
- ADM IKEA+11
- CRM CPLA,T1 READ COMMAND PROCESSOR
- LJM CPLA EXECUTE COMMAND
- * PROCESS END OF FORMAT SCAN.
- IKE9 LDD T1
- NJN IKE12 IF UNIQUE CHARACTER
- STM KBUF-1,KI BACKSPACE POINTER
- SOD KI
- IKE10 LDD EF
- ZJN IKE11 IF EXECUTE FLAG NOT SET
- LDC SREA *REPEAT ENTRY.*
- STD KM
- IKE11 LJM PKIX RETURN
- IKE12 SBN 1R=
- PJN IKE10 IF SPECIAL CHARACTER
- LDD T1 FILL NEXT CHARACTER
- STM KBUF,KI
- AOD KI
- LJM IKE LOOP
- IKEA BSS 12 COMMAND SYNTAX BUFFER
- SPACE 4,10
- ** EXIT ROUTINES FOR COMMAND PROCESSORS.
- ERR SPACE 4,10
- ** ERR - SET ERROR MESSAGE.
- ERR1 LDC =C*FORMAT ERROR.*
- UJN ERR SET MESSAGE
- ERR2 LDC =Z*INCORRECT PARAMETER.*
- UJN ERR SET MESSAGE
- ERR3 LDC =Z*NOT FOUND.*
- UJN ERR SET MESSAGE
- ERR4 LDC =Z*INCORRECT ENTRY.*
- UJN ERR SET MESSAGE
- ERR5 LDC =Z*INCORRECT EQUIPMENT.*
- ERR STD KM
- UJN RET RETURN
- IMS SPACE 4,10
- ** IMS - INITIALIZE MASS STORAGE DRIVERS AND RANDOM ACCESS.
- IMS RJM CTS CHECK TRACK AND SECTOR NUMBERS
- * UJN RET RETURN
- RET SPACE 4,10
- ** RET - NORMAL RETURN.
- RET LDN 0 CLEAR INDEX
- RET1 STD T1 SET CLEARING INDEX
- LDD KM
- NJN RET3 IF MESSAGE SET
- LDD T1 SET KEYBOARD INDEX
- STD KI
- RET2 LDN 0 CLEAR BUFFER
- STM KBUF,T1
- AOD T1
- LMC KBUFL
- NJN RET2 IF NOT END OF BUFFER
- RET3 LDC RCPX RESTORE LOOP
- STM RCPA
- STD SB CLEAR *SYSTEM BUSY* INDICATION
- LJM PKIX RETURN
- SBN SPACE 4,10
- ** SBN - SET BYTE NUMBER MESSAGE.
- *
- * (FN) = BYTE NUMBER.
- SBN LDD FN CONVERT NUMBER
- SHN -6
- RJM C2D CONVERT TOP TWO DIGITS
- STM SBNB
- LDD FN
- RJM C2D CONVERT TWO DIGITS
- STM SBNB+1
- * CHECK RIGHT SCREEN PAGE.
- LDD RS
- SBK DFBN
- DFIM (ZJN SBN1)
- ZJN SBN3 IF FIVE BYTE DISPLAY
- SBN DLCN-DFBN
- DFIM (MJN SBN3)
- MJN SBN4 IF TEN BYTE OR TEXT DISPLAY
- ZJN SBN4 IF COMMAND DISPLAY
- * SET PAGE NUMBER FOR FOUR PAGE DISPLAY.
- SBN1 LDN 0
- STM DRSA+4
- LDC -2-500/4
- SBN2 RAD FN
- MJN SBN4 IF ON CURRENT PAGE
- AOM DRSA+4
- LDC -500/4
- UJN SBN2 LOOP TO CHECK NEXT PAGE
- * SET PAGE NUMBER FOR TWO PAGE DISPLAY.
- SBN3 LDD FN
- ADC -242
- SHN 0-21
- LMN 1
- STM DRSA+4
- SBN4 LDC SBNA
- LJM SKM DISPLAY MESSAGE
- SBNA DATA H* BYTE *
- SBNB DATA Z*NNNN.*
- SCP SPACE 4,10
- ** SCP - START UP CPU PROGRAM.
- *
- * ENTRY (A) = FUNCTION NUMBER * 2 + 1.
- * (CM - CM+4) = CONTENTS OF CPU STATUS WORD.
- SCP STD CM+4
- LDD RA
- SHN 6
- ADN D
- CWD CM
- LJM RET RETURN
- SKM SPACE 4,10
- ** SKM - SET KEYBOARD MESSAGE.
- *
- * ENTRY (A) = ADDRESS OF MESSAGE.
- SKM EQU ERR
- SPACE 4,10
- ** SPECIAL CHARACTER PROCESSORS.
- AOS SPACE 4,10
- ** AOS - ADVANCE ONE SECTOR.
- AOS LDD SC CHECK SECTOR COUNT
- SBD LS
- ZJN AOS1 IF END OF TRACK
- LDM BFMS
- ADM BFMS+1
- ZJN AOS1 IF END OF INFORMATION
- AOD SC
- AOS1 LJM RCS READ SECTOR
- AOT SPACE 4,10
- ** AOT - ADVANCE ONE TRACK.
- AOT RJM SNT GET NEXT TRACK
- SHN 6
- PJN AOT1 IF END OF CHAIN
- SHN -6
- STD TK
- AOT1 UJN ATZ2 CHECK TRACK NUMBER
- APE SPACE 4,10
- ** APE - ADVANCE PAST EOI.
- APE LDD SC
- SBD LS
- ZJN APE1 IF END OF TRACK
- AOD SC ADVANCE TO NEXT SECTOR
- UJN APE2 READ SECTOR
- APE1 RJM SNT GET NEXT TRACK
- SHN 6
- PJN APE2 IF EOI TRACK
- SHN -6
- STD TK
- LDN 0
- STD SC
- APE2 LJM RCS READ SECTOR
- ATZ SPACE 4,10
- ** ATZ - ADVANCE ONE TRACK AND ZERO SECTOR.
- ATZ LDM BFMS
- NJN ATZ1 IF NOT EOF
- LDM BFMS+1
- ATZ1 SHN 6
- PJN ATZ2 IF NOT CHAIN BYTE
- SHN -6
- STD TK SET NEXT TRACK
- LDN 0
- STD SC
- ATZ2 RJM CTS CHECK SECTOR LIMIT
- LJM RCS READ SECTOR
- BOS SPACE 4,10
- ** BOS - BACKUP ONE SECTOR.
- BOS LDD SC
- ZJN BOS1 IF BEGINNING OF TRACK
- SOD SC
- BOS1 LJM RCS READ SECTOR
- BSP SPACE 4,10
- ** BSP - BACKSPACE KEYBOARD BUFFER.
- BSP SOD KI DECREMENT POINTER
- LDD KM
- LMC SREA
- ZJN BSP1 IF *REPEAT ENTRY.*
- LDN 0
- STD KM CLEAR MESSAGE
- BSP1 STM KBUF,KI CLEAR LAST CHARACTER
- LJM RET3 RESTORE LOOP
- CMB SPACE 4,10
- ** CMB - CLEAR MESSAGE AND BUFFER.
- CMB LDN 0 CLEAR KEYBOARD MESSAGE
- STD KM
- STM RDCT CLEAR DRIVER ERROR CODE
- STD CM CLEAR CONTROL POINT MESSAGES
- LDD CP
- ADN MS1W
- CWD CM
- ADN MS2W-MS1W
- CWD CM
- LJM RET CLEAR KEYBOARD BUFFER
- DDC SPACE 4,10
- ** DDC - DROP DISPLAY CHANNEL.
- DDC RJM HDC HOLD DISPLAY CHANNEL
- RJM CSB CLEAR SCREEN BUFFER
- UJN IRD1 RETURN TO *PKIX*
- DTN SPACE 4,10
- ** DTN - DECREMENT TRACK NUMBER.
- DTN SOD TK
- DTN1 LPC 3777
- ADC 4000
- STD TK
- LJM ATZ2 CHECK TRACK NUMBER
- IRD SPACE 4,10
- ** IRD - INCREMENT RIGHT DISPLAY.
- IRD AOM DRSA+4 INCREMENT DISPLAY INDEX
- LPC 777
- STM DRSA+4
- IRD1 LJM PKIX RETURN
- ITN SPACE 4,10
- ** ITN - INCREMENT TRACK NUMBER.
- ITN AOD TK
- UJN DTN1 CHECK TRACK NUMBER
- PEC SPACE 4,10
- ** PEC - PROCESS ENTERED COMMAND.
- PEC LDN 1 SET EXECUTE FLAG
- STD EF
- LJM IKE CHECK COMMAND
- RCS SPACE 4,10
- ** RCS - READ CURRENT SECTOR.
- RCS RJM RSB READ SECTOR
- LJM RET3 RESTORE MAIN LOOP
- RRD SPACE 4,10
- ** RRD - ROTATE RIGHT DISPLAY.
- RRD AOD RS INCREMENT RIGHT DISPLAY POINTER
- SBN MXDI
- NJN RRD1 IF LEGAL DISPLAY
- STD RS
- RRD1 UJN IRD1 RETURN TO *PKIX*
- SRE SPACE 4,10
- ** SRE - SET REPEAT ENTRY.
- SRE LDC SREA
- STD KM
- UJN RRD1 RETURN TO *PKIX*
- SREA DATA Z*REPEAT ENTRY.*
- TITLE MEMORY CHANGES.
- EMC SPACE 4,10
- *** MEMORY CHANGES.
- * XXX,YYYY. ENTER YYYY INTO BYTE XXX.
- * XXX,DCC ENTER CHARACTERS CC IN BYTE XXX.
- *
- * IF THE COMMA *,* IS REPLACED BY A PLUS *+*, THE BYTE NUMBER
- * WILL BE INCREMENTED AFTER THE ENTRY IS PROCESSED. THE ACTUAL
- * DATA ON THE DISK IS NOT CHANGED UNTIL THE WRITE COMMAND IS
- * ENTERED.
- EMC SPACE 4,10
- ** EMC - ENTER MEMORY CHANGE.
- *
- * ENTRY (EF) = 0 IF INTERPRET ONLY.
- * (EF) " 0 IF EXECUTE REQUESTED.
- *
- * USES T1, AB+4, CM, CA, KM, RC.
- *
- * CALLS BSP, CDR, RET.
- EMC LDC KBUF
- STD CA
- RJM CDR CONVERT BYTE NUMBER
- ZJN EMC2 IF NO MORE CHARACTERS
- LMN 1R+
- ZJN EMC1 IF *+*
- LMN 1R,&1R+
- NJN EMC3 IF ILLEGAL CHARACTER
- EMC1 LDD AB+4
- STD RC
- ADC -502
- PJN EMC3 IF BYTE NUMBER TOO LARGE
- LDD CA
- STD CM
- AOD CA
- LDI CA
- LMN 1RD
- ZJN EMC6 IF CHARACTER ENTRY
- * ENTER OCTAL VALUE.
- RJM CDR CONVERT VALUE
- EMC2 ZJN EMC4 IF NO MORE CHARACTERS
- LMN 1R.
- ZJN EMC7 IF *.*
- EMC3 LJM BSP DELETE ILLEGAL CHARACTER
- * INCOMPLETE ENTRY.
- EMC4 LDD EF
- ZJN EMC5 IF EXECUTE NOT REQUESTED
- LDC SREA SET *REPEAT ENTRY.*
- STD KM
- EMC5 LJM PKIX RETURN
- * ENTER DISPLAY CODE.
- EMC6 LDM 3,CA
- NJN EMC3 IF TOO MANY CHARACTERS
- LDM 1,CA
- SHN 6
- ADM 2,CA
- STD AB+4 VALUE
- * ENTRY COMPLETE.
- EMC7 LDD EF
- ZJN EMC5 IF EXECUTE NOT REQUESTED
- LDD AB+4
- STM BFMS,RC STORE VALUE
- LDI CM
- LMN 1R+
- ZJN EMC8 IF *+* TYPE ENTRY
- LJM RET RETURN
- * *+* ENTRY, ADVANCE ADDRESS.
- EMC8 LDD CM
- SBN 1
- STD T1
- EMC9 AOI T1 ADVANCE ADDRESS
- SBN 1R8
- MJN EMC11 IF NO OVERFLOW
- LDN 1R0 RESET DIGIT
- STI T1
- SOD T1
- ADC -KBUF
- PJN EMC9 IF MORE DIGITS
- LDN KBUFL-1
- STD T1
- EMC10 LDM KBUF,T1 SHIFT BUFFER ONE CHARACTER RIGHT
- STM KBUF+1,T1
- SOD T1
- PJN EMC10 IF MORE CHARACTERS
- LDN 1R1
- STM KBUF ADD LEADING 1
- AOD CM INCREMENT CHARACTER COUNT
- EMC11 LDM 1,CM
- LMN 1RD
- NJN EMC12 IF NOT CHARACTER ENTRY
- AOD CM
- EMC12 LDD CM
- ADC -KBUF+1
- LJM RET1 CLEAR LAST PART OF ENTRY
- TITLE SUBROUTINES.
- ASD SPACE 4,10
- ** ASD - ASSEMBLE DIGITS.
- *
- * ENTRY (CA) = ADDRESS OF CHARACTER STRING.
- *
- * EXIT (AB - AB+4) = ASSEMBLY.
- * TO ERR IF NOT TERMINATED BY A *.*.
- *
- * CALLS CDR, ERR1.
- ASD SUBR ENTRY/EXIT
- RJM CDR CONVERT DIGITS
- LMN 1R.
- ZJN ASDX IF PERIOD
- LJM ERR1 *FORMAT ERROR.*
- ASN SPACE 4,10
- ** ASN - ASSEMBLE NAME.
- *
- * ENTRY (CA) = ADDRESS OF CHARACTER STRING.
- *
- * EXIT (FN - FN+4) = NAME (LEFT JUSTIFIED).
- * TO ERR IF ILLEGAL CHARACTER OR MORE THAN 7 CHARACTERS.
- *
- * USES T1, T2.
- *
- * CALLS ERR2.
- ASN3 LDD T2 ADD CHARACTER TO NAME
- STM FN,T1
- ASN SUBR ENTRY/EXIT
- LDN ZERL
- CRD FN
- LDN 0
- STD T1
- ASN1 LDI CA ASSEMBLE CHARACTERS
- ZJN ASN2 IF END OF CHARACTER STRING
- SBN 1R.
- ZJN ASNX IF TERMINATOR
- LDI CA SAVE CHARACTER
- SHN 6
- STD T2
- AOD CA
- LDI CA
- ZJN ASN2 IF END OF CHARACTER STRING
- SBN 1R.
- ZJN ASN3 IF TERMINATOR
- LDI CA ADD CHARACTERS TO NAME
- LMD T2
- STM FN,T1
- AOD CA
- AOD T1
- SBN 4
- MJN ASN1 IF LESS THAN 7 CHARACTERS
- ASN2 LJM ERR2 *INCORRECT PARAMETER.*
- CDR SPACE 4,10
- ** CDR - CONVERT DIGITS RIGHT ADJUSTED.
- *
- * ENTRY (CA) = ADDRESS OF CHARACTER STRING.
- *
- * EXIT (A) = SEPARATOR CHARACTER.
- * (AB - AB+4) = ASSEMBLY.
- * (CA) = ADDRESS OF SEPAROTOR CHARACTER.
- *
- * USES T2, T3, CA.
- CDR SUBR ENTRY/EXIT
- LDN ZERL CLEAR ASSEMBLY AREA
- CRD AB
- CDR1 LDI CA LOAD CHARACTER
- SBN 1R0
- MJN CDR2 IF ALPHA
- SBN 1R8-1R0
- MJN CDR3 IF OCTAL DIGIT
- SBN 1R -1R8
- ZJN CDR5 IF SPACE
- CDR2 LDI CA LOAD CHARACTER
- UJN CDRX RETURN
- CDR3 ADN 1R8-1R0 STORE DIGIT
- STD T3
- LDN AB+4 SET BYTE ADDRESS
- STD T2
- CDR4 LDI T2 LOAD BYTE
- SHN 3
- ADD T3 ADD NEW DIGIT
- STI T2 STORE
- SHN -14 SAVE OVERFLOW
- STD T3
- SOD T2 ADVANCE BYTE ADDRESS
- LMN AB-1
- NJN CDR4 IF NOT END OF ASSEMBLY AREA
- CDR5 AOD CA ADVANCE ADDRESS
- UJN CDR1 LOOP
- CEQ SPACE 4,10
- ** CEQ - CHECK EQUIPMENT.
- *
- * ENTRY (EQ) = EQUIPMENT.
- *
- * EXIT TO *ERR5* IF INCORRECT EQUIPMENT.
- *
- * USES CM - CM+4.
- *
- * MACROS SFA.
- CEQ SUBR ENTRY/EXIT
- SFA EST,EQ READ EST ENTRY
- ADK EQDE
- CRD CM
- LDD CM+4 MST ADDRESS/10
- SHN 3
- ADN DDLL
- CRD CM
- LDD CM
- SHN 21-12
- PJN CEQX IF NOT NULL EQUIPMENT
- LJM ERR5 *INCORRECT EQUIPMENT.*
- CLB SPACE 4,10
- ** CLB - CHECK LOCK BIT.
- *
- * EXIT TO ERR IF KEYBOARD LOCKED.
- * (CM - CM+4) = *SSTL* WORD READ FROM CMR.
- *
- * USES CM - CM+4.
- *
- * CALLS ERR.
- CLB SUBR ENTRY/EXIT
- LDK SSTL CHECK *SECURITY-UNLOCK* BIT
- CRD CM
- LDD CM
- SHN 21-11
- MJN CLBX IF UNLOCKED
- LJM ERR4 *INCORRECT ENTRY.*
- CSA SPACE 4,10
- ** CSA - COMPUTE SCRATCH AREA ADDRESS.
- *
- * ENTRY (CA) = POINTER TO NEXT CHARACTER.
- *
- * EXIT (CA) UPDATED.
- * (T2) = ADDRESS OF SCRATCH AREA.
- *
- * CALLS ERR1, ERR2.
- CSA SUBR ENTRY/EXIT
- LDI CA
- SBN NSRA+1
- PJN CSA1 IF ILLEGAL CHARACTER
- LDI CA CALCULATE ADDRESS
- SBN 1
- SHN 3
- ADI CA
- ADC SRA-1
- STD T2
- AOD CA CHECK NEXT CHARACTER
- LDI CA
- LMN 1R.
- ZJN CSAX IF LEGAL SEPARATOR
- LJM ERR1 *FORMAT ERROR.*
- CSA1 LJM ERR2 *INCORRECT PARAMETER.*
- CSB SPACE 4,10
- ** CSB - CLEAR SCREEN BUFFER.
- *
- * CLEAR SCREEN BUFFER, RESET TOP OF PAGE, AND SET *PKI*-S
- * RETURN ADDRESS TO *DDF1* WHEN THE CONSOLE TYPE IS A *CDC721*.
- *
- * USES T1.
- *
- * MACROS CFNC, DFIM.
- CSB1 LDN CSBAL-1
- STD T1
- CSB2 LDM CSBA,T1 ISSUE FUNCTION
- CFNC
- SOD T1
- PJN CSB2 IF MORE FUNCTIONS
- LDC DDF1 SET *PKI* EXIT
- STM PKI
- CSB SUBR ENTRY/EXIT
- DFIM (UJN CSB1)
- UJN CSBX RETURN
- CSBA BSS 0 TABLE OF FUNCTION CODES IN REVERSE ORDER
- CON CHSF CLEAR HIDDEN SCREEN
- CON RTPF RESET TOP OF PAGE
- CON SRSF SELECT RIGHT SCREEN, SMALL CHARACTERS
- CON RTPF RESET TOP OF PAGE
- CON SLSF SELECT LEFT SCREEN, SMALL CHARACTERS
- CSBAL EQU *-CSBA
- CTR SPACE 4,10
- ** CTR - CHECK TRACK RESERVATION BIT.
- *
- * EXIT (A) .LT. 0 IF RESERVATION BIT SET.
- *
- * CALLS SNT.
- CTR SUBR ENTRY/EXIT
- RJM SNT SET NEXT TRACK
- LDD T1
- ADC SHNI+22-4
- STM CTRA
- LDD CM+4
- CTRA SHN **
- UJN CTRX RETURN
- CTS SPACE 4,10
- ** CTS - CHECK TRACK AND SECTOR AND ZERO IF TOO LARGE.
- *
- * ENTRY (EQ) = EST ORDINAL.
- *
- * EXIT (A) .NE. 0, IF DEVICE IS INACCESSIBLE. (OFF OR DOWN)
- * (LS) = LAST SECTOR FOR CURRENT TRACK AND EQUIPMENT.
- * (LT) = MAXIMUM TRACK NUMBER FOR DEVICE.
- * (SC) = 0 IF IT WAS LARGER THAN THE SECTOR LIMIT.
- * (TK) = 4000 IF IT WAS LARGER THAN (LT).
- *
- * USES AB - AB+4, CM - CM+4.
- CTS SUBR ENTRY/EXIT
- CTSA SETMS IO,(AR,NS,AD,RW,DF)
- * SETMS IO,(RR,NR,NS,AD,RW,DF) (ERROR PROCESSING ENABLED)
- LDD CM+4 SET FIRST WORD OF TRT
- SHN 3
- ADK TDGL
- CRD CM
- ADK TRLL-TDGL
- CRD AB
- LDD AB+3
- LPN 77
- SHN 14
- LMD AB+4
- SBD TH =4000/4
- STM DLSA+1
- STM SNTA+1
- SHN -14
- LMC ADCI
- STM DLSA
- STM SNTA
- LDD CM GET MAXIMUM TRACK
- ADC 4000-1
- STD LT
- SBD TK
- PJN CTS1 IF LEGAL TRACK
- LDC 4000
- STD TK
- CTS1 LDM SLM CHECK SECTOR
- SBN 1
- STD LS
- SBD SC
- PJN CTS2 IF LEGAL SECTOR
- LDN 0
- STD SC
- CTS2 UJP CTSX RETURN
- DMW SPACE 4,20
- ** DMW - DISPLAY MEMORY WORDS.
- *
- * ENTRY (AB) = WORD NUMBER OF FIRST LINE TO DISPLAY.
- * (AB+1) = WORD NUMBER+1 OF LAST LINE.
- * (AB+2) = INDEX FOR FIRST BYTE TO DISPLAY.
- * (AB+3) = N TO DISPLAY KEYWORD TABLE.
- * (N = FWA OF TABLE, 10 CHARACTERS PER ENTRY.)
- * = 0 TO SUPPRESS KEYWORD DISPLAY.
- * (YC) = Y-COORDINATE ABOVE FIRST LINE TO BE DISPLAYED.
- *
- * EXIT (AB) = (AB+1).
- * (T3) = ADDRESS OF LAST BYTE DISPLAYED + 1.
- * (YC) = Y-COORDINATE OF LAST LINE DISPLAYED.
- *
- * USES T3, AB, AB+2, YC, RC.
- *
- * CALLS D2D, D4D, ODC.
- DMW SUBR ENTRY/EXIT
- LDD AB
- SBD AB+1
- PJN DMWX IF NOTHING TO DISPLAY
- LDD AB+3 SET TABLE ADDRESS
- STM DMWA
- LDD AB+2 SET BYTE ADDRESS
- ADC BFMS
- STD T3
- * DISPLAY LABEL FOR WORD.
- DMW1 LCN YINC
- RAD YC
- OAN CH+40 OUTPUT COORDINATES
- LDD XC
- OAN CH+40
- LDD AB DISPLAY CM WORD NUMBER
- RJM D2D
- LDC 2R (
- OAN CH+40
- LDD AB+2 DISPLAY BYTE NUMBER
- RJM D4D
- LDC 2R)
- OAN CH+40
- LDD AB+3
- ZJN DMW2 IF NOT TABLE DISPLAY
- LDN 5 DISPLAY TABLE DATA
- OAM **,CH
- DMWA EQU *-1
- LDN 5 ADVANCE TABLE POINTER
- RAM DMWA
- * DISPLAY CONTENTS OF WORD.
- DMW2 LDN 0 DISPLAY 5 BYTES
- STD RC
- OAN CH+40
- DMW3 LDN 0
- OAN CH+40
- LDI T3 DISPLAY CONTENTS OF BYTE
- RJM D4D
- AOD T3
- AOD RC
- LMN 5
- NJN DMW3 IF MORE BYTES
- * LDN 0 DISPLAY 5 BYTES IN DISPLAY CODE
- OAN CH+40
- LCN 5
- RAD T3
- LDN 5
- RJM ODC OUTPUT DISPLAY CODE
- DMW4 LDN 5 INCREMENT BYTE ADDRESS
- RAD AB+2
- AOD AB INCREMENT CM WORD NUMBER
- LMD AB+1
- ZJN DMW5 IF END OF DISPLAY
- LJM DMW1 LOOP
- DMW5 LJM DMWX RETURN
- D2D SPACE 4,10
- ** D2D - DISPLAY 2 DIGITS.
- *
- * ENTRY (A) = DIGITS RIGHT ADJUSTED.
- D2D SUBR ENTRY/EXIT
- LPN 77 UNPACK DIGITS
- STD T0
- SHN 3
- LMD T0
- SCN 70
- ADC 2R00 CONVERT TO DISPLAY CODE
- OAN CH+40
- UJN D2DX RETURN
- D4D SPACE 4,10
- ** D4D - DISPLAY 4 DIGITS.
- *
- * ENTRY (A) = DIGITS RIGHT ADJUSTED.
- *
- * USES T1.
- *
- * CALLS D2D.
- D4D SUBR ENTRY/EXIT
- STD T1
- SHN -6 DISPLAY FIRST 2 DIGITS
- RJM D2D
- LDD T1 DISPLAY SECOND 2 DIGITS
- RJM D2D
- UJN D4DX RETURN
- END SPACE 4,10
- ** END - END CPU PROGRAM.
- *
- * USES CM - CM+4.
- *
- * CALLS WCC.
- END SUBR ENTRY/EXIT
- ENDA RJM WCC WAIT FOR CPU TO COMPLETE
- * UJN ENDX (*DDFILE* NOT LOADED)
- LDN 0*2+1
- STD CM+4
- LDD RA
- SHN 6
- ADN D
- CWD CM
- UJN ENDX RETURN
- LDO SPACE 4,20
- ** LDO - LOAD OVERLAY.
- *
- * ENTRY (A) = OVERLAY CONTROL WORD INDEX.
- * (RELATIVE TO *TCRO*)
- * (DRSB) = PREVIOUS (RS).
- * (DRSA - DRSA+4) = CURRENT OVERLAY CONTROL WORD.
- *
- * EXIT (DRSA - DRSA+4) UPDATED AS REQUIRED.
- * (DRSB) UPDATED IF DISPLAY IS BEING CHANGED.
- * (CM) = LOAD ADDRESS.
- * OVERLAY LOADED AND PRESET.
- * OLD OVERLAY CONTROL WORD WRITTEN TO CM, IF VALID,
- * TO PRESERVE DISPLAY INDEX.
- *
- * USES AB, CM - CM+4.
- *
- * CALLS MCI.
- LDO SUBR ENTRY/EXIT
- STD AB SAVE INDEX
- LDD RA LOAD CONTROL WORD FOR DESIRED OVERLAY
- ADD TA
- SHN 6
- ADC TCRO
- ADD AB
- CRD CM
- LDD CM+1 CHECK WORD COUNT
- ZJN LDO1 IF NO LOAD REQUIRED
- LDD CM SET LOAD ADDRESS
- STM LDOA
- LDD CM+2 LOAD PROCESSOR OVERLAY
- SHN 6
- ADD RA
- SHN 6
- ADD CM+3
- CRM **,CM+1
- LDOA EQU *-1 LOAD ADDRESS
- LDO1 LDD AB
- LMD RS
- NJP LDOX IF NOT A MAIN DISPLAY OVERLAY
- LDM DRSB
- SBN MXDI
- PJN LDO2 IF OLD CONTROL WORD INVALID
- LDD RA STORE OLD CONTROL WORD
- ADD TA
- SHN 6
- ADC TCRO
- ADM DRSB
- CWM DRSA,ON
- LDO2 LDD RA READ NEW PROCESSOR CONTROL WORD
- ADD TA
- SHN 6
- ADC TCRO
- ADD RS
- CRM DRSA,ON (SETS PROCESSOR ENTRY ADDRESS FOR *LJM*)
- LDD RS UPDATE OLD ID
- STM DRSB
- LJM LDOX RETURN
- ODC SPACE 4,10
- ** ODC - OUTPUT DISPLAY CODE.
- *
- * ENTRY (A) = NUMBER OF BYTES TO DISPLAY.
- * (T3) = ADDRESS OF FIRST BYTE.
- * (XC) = 6000.
- *
- * EXIT (T3) = ADDRESS OF NEXT BYTE.
- *
- * USES T0, T3.
- ODC2 LDI T3 DISPLAY BOTH CHARACTERS
- ODC3 OAN CH+40
- AOD T3
- SOD T0
- NJN ODC1 IF MORE BYTES TO DISPLAY
- ODC SUBR ENTRY/EXIT
- STD T0
- ODC1 LDI T3
- SBD XC
- MJN ODC2 IF UPPER CHARACTER LEGAL
- LPN 77
- UJN ODC3 DISPLAY LOWER CHARACTER ONLY
- RCP SPACE 4,10
- ** RCP - RECALL COMMAND PROCESSOR IF NECESSARY.
- *
- * ENTRY (RCPA) = ADDRESS IN COMMAND PROCESSOR IF RECALLING.
- * = RCPX IF NO RECALL NEEDED.
- *
- * EXIT (RCPA) UPDATED.
- RCP SUBR ENTRY/EXIT
- RCP1 LJM RCPX RETURN IF NO RECALL
- * LJM COMMAND (RECALL COMMAND PROCESSOR)
- RCPA EQU *-1
- SOM RCPB
- PJN RCP1 IF RECALL COUNT NOT EXAUSTED
- DFIM (LDN MLPS-1)
- LDN 0 RESET RECALL COUNT
- STM RCPB
- UJN RCPX RETURN TO MAIN LOOP
- RCPB CON 0 RECALL COUNT
- RSB SPACE 4,10
- ** RSB - READ SECTOR TO BUFFER.
- *
- * EXIT (A) .LT. 0 IF ERROR ON READ.
- * (A) = 0 IF NO ERROR.
- *
- * CALLS CEQ, RDS.
- *
- * MACROS ENDMS.
- RSB SUBR ENTRY/EXIT
- RJM CEQ CHECK EQUIPMENT
- LDC BFMS
- RJM RDS READ SECTOR
- MJN RSBX IF ERROR
- ENDMS
- * LDN 0
- STM RDCT
- UJN RSBX RETURN
- SNS SPACE 4,10
- ** SNS - SET NEXT SECTOR.
- *
- * EXIT (A) = 0 IF CURRENTLY AT EOI.
- SNS1 LDM BFMS
- NJN SNS2 IF NOT EOF
- LDM BFMS+1
- SNS2 STD TK
- SNS SUBR ENTRY/EXIT
- LDM BFMS
- ADM BFMS+1
- ZJN SNSX IF EOI
- AOD SC
- SBD LS
- SBN 1
- NJN SNSX IF NOT END OF TRACK
- STD SC SET SECTOR TO ZERO
- LDM BFMS
- SHN 6
- ADM BFMS+1
- LMC 377777
- NJN SNS1 IF NOT SYSTEM SECTOR
- LDM NSSS
- UJN SNS2 ENTER TRACK FROM SYSTEM SECTOR
- SPP SPACE 4,10
- ** SPP - SET PAGE PARAMETERS.
- *
- * ENTRY (DRSA+4) = PAGE INDEX.
- * (T3) = BFMS.
- *
- * EXIT (A) = NUMBER OF WORDS TO DISPLAY (PAGE SIZE).
- * (AB) = FIRST CM WORD NUMBER (PAGE INDEX * PAGE SIZE).
- *
- * USES AB.
- SPP SUBR ENTRY/EXIT
- LDM DRSA+4
- DFIM (LPN 3)
- LPN 1 PAGE INDEX
- DFIM (SHN 4) * 20B, 721 PAGE SIZE
- SHN 5 * 40B, 545 PAGE SIZE
- STD AB = FIRST CM WORD NUMBER
- LDI T3 SET UP NUMBER OF WORDS TO DISPLAY
- ZJN SPPX IF EOI SECTOR
- DFIM (LDN 20) 721 PAGE SIZE IN CM WORDS
- LDN 40 545 PAGE SIZE IN CM WORDS
- UJN SPPX RETURN
- WCC SPACE 4,10
- ** WCC - WAIT FOR CPU TO COMPLETE.
- *
- * EXIT (CM - CM+4) = CONTENTS OF CPU STATUS WORD.
- *
- * CALLS RCPA.
- WCC SUBR ENTRY/EXIT
- WCC1 RJM RCPA RETURN TO MAIN LOOP
- LDD RA READ STATUS WORD
- SHN 6
- ADN D
- CRD CM
- LDD CM+4
- ZJN WCCX IF COMPLETE
- UJN WCC1 LOOP
- SPACE 4,10
- * COMMON DECKS.
- QUAL COMDDSP AVOID *RDS* DEFINITION CONFLICT
- *CALL COMDDSP
- QUAL *
- RDC EQU /COMDDSP/RDS REQUEST DISPLAY CHANNEL
- DDS EQU /COMDDSP/DDS
- HDC EQU /COMDDSP/HDC
- PSS EQU /COMDDSP/PSS
- *CALL COMDSYS
- *CALL COMPC2D
- QUAL COMPSNT
- IRA$ EQU *
- QUAL *
- *CALL COMPSNT
- TITLE BUFFERS.
- SRA SPACE 4,10
- ** SRA - SCRATCH REGISTER AREA.
- *
- * 9 BYTES PER ENTRY.
- * 0 = EST ORDINAL.
- * 1 = TRACK.
- * 2 = SECTOR.
- * 3 = 3/DISPLAY NUMBER,9/DISPLAY INDEX
- * 4 - 8 = 10 CHARACTER COMMENT
- SRA BSSZ 9D*NSRA
- KBUF SPACE 4,10
- KBUF BSSZ KBUFL KEYBOARD BUFFER
- SPACE 4,10
- DIS HERE
- SPACE 4,10
- USE PRESET
- BFMS BSSN 502 SECTOR BUFFER
- CPLA BSSN 0 COMMAND PROCESSOR LOAD ADDRESS
- END BSSN
- SPACE 4,10
- * COMMON DECKS THAT DEFINE TAGS BASED ON *BFMS*.
- QUAL LSD
- *CALL COMSLSD
- QUAL *
- *CALL COMSPFM
- *CALL COMSSSE
- *CALL COMSWEI
- TITLE PRESET PROGRAM.
- PRR SPACE 4,10
- ** PRR - PRESET RESIDENT ROUTINES.
- PRR3 LDN 10 CLEAR LAST PART OF BUFFER
- STD T1
- PRR4 LDN 0
- STM BFMS+500,T1
- SOD T1
- PJN PRR4 IF MORE TO CLEAR
- LJM RCS READ SECTOR
- ERRNG BFMS+500-* CLEARING CODE OVERFLOWS END OF BUFFER
- PRR BSS 0 ENTRY
- LDN 0 PRESET DIRECT CELLS
- STD CR
- STD KI
- STD KM
- STD DK
- STM RSPLA
- STD RT
- LDK DFBN PRESET FIVE BYTE RIGHT SCREEN DISPLAY
- STD RS
- LDD CP
- ADK PFCW
- CRD CM
- ADK PKNW-PFCW
- CRD PF
- LDD CM+3
- STD PF+4
- LDC CH01 PRESET X-COORDINATE
- STD XC
- STD SB CLEAR SYSTEM BUSY FLAG
- LDK DSEQ CHECK DISPLAY CONSOLE TYPE
- SFA EST
- ADK EQAE
- CRD CM
- LDD CM+2
- ZJN PRR1 IF CC545 CONSOLE
- MDIN MODIFY DISPLAY GENERATOR
- PRR1 LDN 0 CLEAR *.* IN COMMON DECKS
- STM D6SA
- STM D2SB CLEAR *OAN* INSTRUCTION
- LDD RA PRESET CPU PROGRAM ADDRESS CONSTANTS
- SHN 6
- ADN D-2
- CRD CM
- LDD CM+3
- STD BA
- LDD CM+4
- STD BA+1
- LDM DDF
- NJN PRR2 IF *DDFILE* LOADED
- ISTORE ENDA,(UJN ENDX)
- PRR2 RJM RDC REQUEST DISPLAY
- RJM CSB CLEAR SCREEN BUFFER
- LDN ZERL CLEAR CONTROL POINT MESSAGES
- CRD CM
- LDD CP
- ADN MS1W
- CWD CM
- ADK MS2W-MS1W
- CWD CM
- LDN 0 INITIALIZE DISK ADDRESS DATA
- STD SC
- LDC PFNL GET DEFAULT FAMILY ORDINAL
- CRD CM
- LDD CM+3
- STD EQ
- SFA EST GET LABEL TRACK NUMBER
- ADK EQDE
- CRD CM
- LDD CM+4
- SHN 3
- ADN ALGL
- CRD CM
- LDD CM+1
- STD TK
- RJM CTS CHECK TRACK VALUE
- LDC DDF1 PRESET *PKI* EXIT
- STM PKI
- LJM PRR3 CLEAR BUFFER AND ENTER MAIN LOOP
- SPACE 4,10
- ** DUMP INSTRUCTION MODIFICATION BLOCK.
- DIMB
- SPACE 4,10
- OVERFLOW RESLA
- OVERLAY /PRESET/OVL,(COMMAND PROCESSORS.)
- OVL SPACE 4,10
- ** OVL - INITIALIZE OVERLAY.
- *
- * LOAD NON-COMMAND OVERLAYS TO CM.
- OVL SUBR ENTRY/EXIT
- * INITIALIZE *COMPGFP* IN OVERLAY BEFORE SAVING IN CM.
- RJM IFP INITIALIZE FNT PROCESSORS
- * SAVE *TAR* OVERLAY IN CM.
- LDN /PRESET/TARL SET OVERLAY LENGTH
- STD T1
- LDD AB+3 SAVE CM ADDRESS
- STM /PRESET/TCRO+TARN*5+2
- LDD AB+4
- STM /PRESET/TCRO+TARN*5+3
- LDD AB+3 WRITE OVERLAY TO CM
- SHN 6
- ADD RA
- SHN 6
- ADD AB+4
- CWM /PRESET/TAR,T1
- LDD T1 UPDATE CM ADDRESS
- RAD AB+4
- SHN -14
- RAD AB+3
- UJN OVLX RETURN
- SPACE 4,10
- *** THE FOLLOWING COMMANDS ARE AVAILABLE -
- ARD SPACE 4,10
- *** AUTOREAD.NNNN.
- * REREAD THE SECTOR EVERY NNNN SECONDS. IF NNNN IS NOT
- * ENTERED, ONE IS USED. AUTOREAD IS TERMINATED BY CLEARING
- * THE COMMAND WITH THE LEFT BLANK OR BACKTAB KEY.
- ARD COMMAND
- LDN MLPS SET DEFAULT COUNT
- STD FN+1
- LDI CA
- ZJN ARD1 IF NO SECOND COUNT ENTERED
- RJM ASD ASSEMBLE COUNT
- LDD AB+4
- SHN 5 * 40
- ERRNZ MLPS-40 CODE ASSUMES EQUALITY SHIFT 5 = * 40
- STD FN+1
- ARD1 LDD FN+1 SET COUNT
- STD FN
- ARD2 RJM RCPA RETURN TO MAIN LOOP
- SOD FN
- PJN ARD2 IF MORE DELAY
- RJM RSB READ SECTOR
- UJN ARD1 RESET COUNT
- BEI SPACE 4,10
- *** BLDEOI.
- * CREATES A EOI SECTOR IN BUFFER.
- BEI COMMAND
- LDC BFMS
- STD T3
- BEI1 LDN 0
- STI T3
- AOD T3
- ADC -BFMS-2-100*5
- MJN BEI1 IF NOT END OF BUFFER
- LDC 2RDD
- STM FNSS
- LDN 1RF
- SHN 6
- STM FNSS+1
- LDN PDTL SET DATE AND TIME
- CRM DTSS,ON
- LJM RET RETURN
- BOT SPACE 4,15
- *** BOT.NNNN.
- * BACK UP ONE TRACK. SEARCH THE TRT STARTING AT TRACK NNNN FOR
- * A TRACK THAT POINTS TO THE CURRENT TRACK. IF ONE IS FOUND,
- * THE CURRENT TRACK IS SET TO THAT VALUE. IF NO TRACK IS FOUND
- * THAT POINTS TO THE CURRENT TRACK, *INCORRECT PARAMETER.* IS
- * DISPLAYED. IF NNNN IS NOT ENTERED, THE SEARCH STARTS AT
- * TRACK 0.
- *
- * NOTE THAT THE SEQUENCE OF COMMANDS *TK.NNNN.*, *BOT.*,
- * *TK.NNNN.*, *BOT.AAAA.* (WHERE AAAA IS THE TRACK RETURNED BY
- * THE FIRST *BOT.* COMMAND + 1) CAN BE USED TO DETERMINE IF
- * TWO DIFFERENT TRACKS ARE BOTH LINKED TO TRACK NNNN.
- BOT COMMAND
- LDD TK
- STD RC
- LDI CA
- ZJN BOT1 IF NO TRACK ENTERED (START AT TRACK 0)
- RJM ASD ASSEMBLE TRACK NUMBER
- LDD AB+4
- BOT1 LPC 3777
- ADC 4000
- STD TK SET STARTING TRACK
- BOT2 RJM SNT GET LINK
- LMD RC
- ZJN BOT3 IF LINKED TO CURRENT TRACK
- AOD TK
- LMD LT
- NJN BOT2 IF MORE TRACKS TO CHECK
- LDD RC RESTORE CURRENT TRACK
- STD TK
- LJM ERR2 *INCORRECT PARAMETER.*
- BOT3 LJM RET RETURN
- CTB SPACE 4,10
- *** CTB.
- * CLEAR THE TRACK INTERLOCK BIT FOR CURRENT TRACK AND
- * EQUIPMENT. THE KEYBOARD MUST BE UNLOCKED TO USE THIS
- * COMMAND.
- CTB COMMAND
- RJM CLB CHECK LOCK BIT
- RJM SNT CHECK TRACK INTERLOCK BIT
- LDD T1
- ADC SHNI+22-4-4
- STM CTBA
- LDD CM+4
- CTBA SHN **
- MJN CTB1 IF TRACK INTERLOCK IS SET
- LJM ERR4 *INCORRECT ENTRY.*
- CTB1 LDD EQ
- STD CM+1
- LDD TK
- STD CM+2
- LDN CTIS
- STD CM+3
- MONITOR STBM
- LJM RET RETURN
- DEP SPACE 4,10
- *** DEP.
- * DISABLE ERROR PROCESSING FOR CALLS TO THE MASS STORAGE
- * DRIVER TO READ A SECTOR.
- * (BY DEFAULT, ERROR PROCESSING IS DISABLED.)
- DEP COMMAND
- LDN DEPL-1
- STD T1
- DEP1 LDM DEPA,T1 MOVE SETMS CODE
- STM CTSA,T1
- SOD T1
- PJN DEP1 IF MOVE NOT COMPLETE
- LJM RET RETURN
- DEPA SETMS IO,(AR,NS,AD,RW,DF) SELECT RETURN ON ALL ERRORS
- DEPL EQU *-DEPA LENGTH
- DIS SPACE 4,10
- *** DIS.
- * DROP DISPLAY AND CALL *DIS* TO CONTROL POINT.
- DIS COMMAND
- RJM END END CPU PROGRAM
- RJM DDS DROP DISPLAY
- LDD CP SET CONTROL POINT NUMBER
- SHN -7
- RAM DISA+1
- LDD IA WRITE INPUT REGISTER
- CWM DISA,ON
- LJM PPR EXIT TO PP RESIDENT
- DISA VFD 60/0LDIS
- DRP SPACE 4,10
- *** DROP.
- * DROP DISPLAY AND PP.
- DRP COMMAND
- RJM END END CPU PROGRAM
- RJM DDS DROP DISPLAY
- LJM DPP DROP PP
- DTK SPACE 4,10
- *** DTK.SSSS.
- * DROP TRACKS STARTING WITH THE CURRENT TRACK AND SET THE EOI
- * SECTOR IN THE TRT TO SSSS.
- *
- * DTK.
- * DROP TRACKS TO END OF CHAIN STARTING WITH THE CURRENT TRACK.
- *
- * THE KEYBOARD MUST BE UNLOCKED TO USE THIS COMMAND.
- DTK COMMAND
- RJM CLB CHECK LOCK BIT
- RJM CTR CHECK TRACK RESERVATION
- PJN DTK2 IF TRACK RESERVATION BIT NOT SET
- LDD EQ SET EST ORDINAL
- ADC 4000 SET CHECKPOINT
- STD CM+1
- LDD TK
- STD CM+2
- LDI CA
- ZJN DTK1 IF NO SECTOR SPECIFIED
- RJM ASD ASSEMBLE SECTOR NUMBER
- LDD AB+4
- STD CM+3
- SBD LS
- SBN 1
- PJN DTK2 IF ILLEGAL SECTOR
- LDD CM+2 CLEAR SECTOR PARAMETER BIT
- LPC 3777
- STD CM+2
- DTK1 MONITOR DTKM
- LJM RET RETURN
- DTK2 LJM ERR2 *INCORRECT PARAMETER.*
- EEP SPACE 4,10
- *** EEP.
- * ENABLE ERROR PROCESSING FOR CALLS TO THE MASS STORAGE
- * DRIVER TO READ A SECTOR.
- * (BY DEFAULT, ERROR PROCESSING IS DISABLED.)
- EEP COMMAND
- LDN EEPL-1
- STD T1
- EEP1 LDM EEPA,T1 MOVE SETMS CODE
- STM CTSA,T1
- SOD T1
- PJN EEP1 IF MOVE NOT COMPLETE
- LJM RET RETURN
- EEPA SETMS IO,(RR,NR,NS,AD,RW,DF) RETURN ON NOT READY/RESERVED
- EEPL EQU *-EEPA LENGTH
- ERRNZ DEPL-EEPL SETMS MACRO LENGTH CHANGE
- EET SPACE 4,10
- *** EJT.NNNN.
- * ENTER DISK ADDRESS FROM EJT ORDINAL NNNN.
- * (0 .LE. NNNN .LE. LARGEST EJT ORDINAL.) THE EQUIPMENT,
- * TRACK, AND SECTOR ARE SET TO THE BEGINNING OF THE FILE.
- * *INCORRECT PARAMETER.* IS DISPLAYED IF THE EJT ENTRY IS NOT
- * USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED.
- EET COMMAND
- LDN TARN
- RJM LDO LOAD OVERLAY
- LDN PEJT
- RJM /TAR/RFE READ FST ENTRY
- LDD FN+1
- ZJP ERR2 IF TRACK NOT ASSIGNED
- STD TK
- LDN 0 CLEAR SECTOR
- STD SC
- LJM IMS INITIALIZE MASS STORAGE
- EST SPACE 4,10
- *** EST.NN.
- * ENTER EST ORDINAL. THE EQUIPMENT MUST BE A MASS STORAGE
- * DEVICE.
- EST COMMAND
- RJM ASD ASSEMBLE NUMBER
- LDD AB+4
- LPC 777
- STD AB
- SFA EST READ EST ENTRY
- ADK EQDE
- CRD CM
- LDD CM
- SHN 6
- PJN EST1 IF NOT MASS STORAGE
- LDD CM+4 MST ADDRESS/10
- SHN 3
- ADN DDLL
- CRD CM
- LDD CM
- SHN 21-12
- MJN EST1 IF NULL EQUIPMENT
- LDD AB
- STD EQ
- LJM IMS INITIALIZE MASS STORAGE
- EST1 LJM ERR5 *INCORRECT EQUIPMENT.*
- EFO SPACE 4,10
- *** FAMILY.CCCCCCC.
- * USE PERMANENT FILE FAMILY *CCCCCCC*. (THE FAMILY IS SET
- * INTERNALLY IN DDF. *PFCW* IN THE CONTROL POINT AREA IS NOT
- * CHANGED.) THE FAMILY IS INITIALLY SET TO THE FAMILY
- * SPECIFIED IN *PFCW*.
- EFO COMMAND
- RJM ASN ASSEMBLE NAME
- RJM SFE SET FAMILY EQUIPMENT
- NJN EFO1 IF FAMILY NOT FOUND
- LDD T2 SET FAMILY EST ORDINAL
- STD PF+4
- LJM RET RETURN
- EFO1 LJM ERR2 *INCORRECT PARAMETER.*
- *CALL COMPSFE
- FPE SPACE 4,25
- *** FIND.
- * THE FIND COMMAND SCANS THE CATALOG TRACK STARTING AT THE
- * CURRENT POSITION SEARCHING FOR THE SPECIFIED CATALOG ENTRY.
- * THE CATALOG TRACK MUST BE READ VIA APPROPRIATE COMMANDS
- * (FAMILY, PACKNAM, UI, ETC.) BEFORE THE FIND COMMAND IS USED.
- * THE FOLLOWING OPTIONS ARE AVAILABLE.
- *
- * FIND.CCCCCCC.NNNNNN.
- * SEARCH FOR PERMANENT FILE CCCCCCC WITH USER INDEX NNNNNN.
- *
- * FIND.CCCCCCC..
- * SEARCH FOR PERMANENT FILE CCCCCCC WITH A ZERO USER INDEX
- * (I.E. A HOLE).
- *
- * FIND.CCCCCCC.
- * SEARCH FOR PERMANENT FILE CCCCCCC. THE USER INDEX IS
- * IGNORED.
- *
- * FIND..NNNNNN.
- * SEARCH FOR A PERMANENT FILE WITH USER INDEX NNNNNN. THE FILE
- * NAME IS IGNORED.
- *
- * FIND...
- * SEARCH FOR A PERMANENT FILE WITH A ZERO USER INDEX. THE FILE
- * NAME IS IGNORED. (I.E. SEARCH FOR ANY HOLE.)
- FPE COMMAND
- RJM ASN GET FILE NAME
- AOD CA
- LDI CA
- ZJN FPE1 IF UI NOT ENTERED
- RJM ASD ASSEMBLE USER INDEX
- LDD AB+3
- LPN 37
- RAD FN+3
- LDD AB+4
- STD FN+4
- FPE1 LDD RS
- LMN DFDN
- SHN 12
- ADM /DFD/DFDB
- LMN DPEN
- NJN FPE2 IF PFC DISPLAY NOT UP
- LDM DRSA+4
- UJN FPE3 STORE PFC ORDINAL
- FPE2 LDN 0
- FPE3 STD T3
- SHN NWCES
- STD T1
- SHN 2
- RAD T1
- LDM BFMS
- ADM BFMS+1
- NJN FPE4 IF EOI NOT ENCOUNTERED
- LJM ERR3 *NOT FOUND.*
- * COMPARE PARAMETERS WITH THE CATALOG ENTRY.
- FPE4 LDD FN
- ZJN FPE6 IF FILE NAME NOT SPECIFIED
- LDN 0
- STD T2
- FPE5 LDM FN,T2 COMPARE NAME
- LMM BFMS+2,T1
- NJN FPE7 IF NOT A MATCH
- AOD T1
- AOD T2
- SBN 3
- MJN FPE5 IF MORE CHARACTERS
- LDD FN+3 COMPARE SEVENTH CHARACTER
- LMM BFMS+2,T1
- SCN 77
- NJN FPE9 IF NOT A MATCH
- FPE6 LDD T3
- SHN NWCES
- STD T1
- SHN 2
- RAD T1
- LDI CA
- NJN FPE8 IF UI SPECIFIED
- LDM BFMS+2+FCUI,T1
- LPN 37
- ADM BFMS+2+FCUI+1,T1
- NJN FPE11 IF NON-ZERO, ASSUME MATCH
- FPE7 UJN FPE9 CONTINUE SEARCH
- FPE8 LDM BFMS+2+FCUI,T1
- LMD FN+3
- LPN 37
- NJN FPE9 IF UI DOES NOT MATCH
- LDM BFMS+2+FCUI+1,T1
- LMD FN+4
- ZJN FPE11 IF UI MATCHES
- * ADVANCE TO NEXT CATALOG ENTRY.
- FPE9 AOD T3 ADVANCE BUFFER INDEX
- SHN NWCES
- STD T1
- SBM BFMS+1
- PJN FPE10 IF END OF SECTOR
- LDD T1
- SHN 2
- RAD T1
- LJM FPE4 LOOP
- FPE10 RJM SNS SET NEXT SECTOR
- RJM RSB READ SECTOR
- MJN FPE12 IF ERROR
- RJM RCPA RETURN TO MAIN LOOP
- LJM FPE2 LOOP
- * DISPLAY PFC ENTRY.
- FPE11 LDN DFDN SET DISPLAY
- STD RS
- RJM LDO LOAD OVERLAY
- LDD T3
- STM DRSA+4
- FPE12 LJM RET RETURN
- FIS SPACE 4,10
- *** FINDISS.NNNNNN.
- * STARTING AT THE CURRENT POSITION, SEARCH FOR THE NEXT SYSTEM
- * SECTOR WITH USER INDEX NNNNNN ON THE CHAIN. IF NNNNNN IS
- * NOT SPECIFIED THE USER INDEX IS NOT CHECKED AND THE NEXT
- * SYSTEM SECTOR IS DISPLAYED. THIS COMMAND IS INTENDED TO BE
- * USED ON THE INDIRECT ACCESS PERMANENT FILE CHAIN.
- FIS COMMAND
- LDI CA
- ZJN FIS1 IF NO USER INDEX SPECIFIED
- RJM ASD ASSEMBLE USER INDEX
- LDD AB+3
- STD FN+3
- LDD AB+4
- STD FN+4
- FIS1 RJM SNS ADVANCE TO NEXT SECTOR
- NJN FIS3 IF NOT EOI
- RJM SNT GET NEXT TRACK
- STD T1
- SHN 6
- MJN FIS2 IF NOT EOI TRACK
- SHN -6
- LMD SC
- NJN FIS2 IF NOT AT EOI INDICATED IN TRT
- LJM ERR3 *NOT FOUND.*
- FIS2 AOD SC
- SBD LS
- SBN 1
- NJN FIS3 IF NOT END OF TRACK
- STD SC
- LDD T1
- STD TK
- FIS3 RJM RSB READ SECTOR
- MJN FIS5 IF ERROR
- LDM BFMS
- SHN 6
- ADM BFMS+1
- LMC 377777
- NJN FIS4 IF NOT SYSTEM SECTOR
- LDI CA
- ZJN FIS5 IF NO UI SPECIFIED
- LDM CTSS+3
- LMD FN+3
- LPN 37
- NJN FIS4 IF UI DOES NOT MATCH
- LDM CTSS+4
- LMD FN+4
- ZJN FIS5 IF UI MATCHES
- FIS4 RJM RCPA RETURN TO MAIN LOOP
- LJM FIS1 LOOP
- FIS5 LJM RET RETURN
- FOV SPACE 4,10
- *** FINDO.NNNN NNNN NNNN NNNN NNNN.
- * SEARCH FROM THE CURRENT POSITION FOR THE OCTAL NUMBER
- * SPECIFIED. THE NUMBER CAN BE 1 TO 20 DIGITS AND IS RIGHT
- * JUSTIFIED IN AS MANY BYTES AS ARE NECESSARY TO HOLD THE
- * NUMBER. THE SEARCH STARTS ON A BYTE BOUNDARY AND THE BYTE
- * NUMBER IS DISPLAYED IF THE SEARCH IS SUCCESSFUL. IF THE
- * FIRST PART OF THE NUMBER IS FOUND AT THE END OF THE BUFFER,
- * THE SEARCH IS TERMINATED EVEN THOUGH THE ENTIRE NUMBER
- * WAS NOT FOUND. IF THE CARRIAGE RETURN IS ENTERED AGAIN,
- * THE SEARCH CONTINUES AT THE CURRENT MATCH.
- FOV COMMAND
- LDD CA SAVE CHARACTER ADDRESS
- STD FN+4
- LDN 0
- STD T1
- FOV1 AOD CA FIND SIZE OF NUMBER
- LDI CA
- ZJN FOV2 IF END OF STRING
- LMN 1R
- NJN FOV1 IF NOT BLANK CHARACTER
- AOD T1 COUNT BLANKS
- UJN FOV1 CHECK NEXT CHARACTER
- FOV2 SOD CA SET BYTE COUNT
- SBD FN+4
- SBD T1
- ADN 3
- SHN -2
- STD FN+3
- FOV3 LDD FN+4 CONVERT NUMBER
- STD CA
- RJM ASD ASSEMBLE DIGITS
- LDD KM CHECK KEYBOARD MESSAGE
- LMC SBNA
- NJN FOV4 IF NOT MESSAGE FROM FINDO
- STD KM
- LJM FOV9 CONTINUE SEARCH
- FOV4 LDM BFMS
- ZJN FOV5 IF EOF
- LDM BFMS+1
- FOV5 ZJN FOV10 IF ZERO LENGTH SECTOR
- SHN 2 SET BYTE COUNT
- ADM BFMS+1
- ADN 2
- STD FN+2
- LDN 2 SET STARTING POSITION
- STD FN
- STD FN+1
- FOV6 LDN 5 SET BEGINNING OF SEARCH
- SBD FN+3
- STD T3
- FOV7 LDM BFMS,FN+1 COMPARE BYTES
- LMM AB,T3
- NJN FOV9 IF NOT A MATCH
- AOD T3
- LMN 5
- ZJN FOV8 IF SEARCH COMPLETE
- AOD FN+1
- LMD FN+2
- NJN FOV7 IF NOT END OF SECTOR
- FOV8 LJM SBN DISPLAY BYTE NUMBER
- FOV9 AOD FN
- STD FN+1
- LMD FN+2
- NJN FOV6 IF NOT END OF SECTOR
- FOV10 RJM RCPA RETURN TO MAIN LOOP
- RJM SNS READ NEXT SECTOR
- ZJN FOV11 IF EOI
- RJM RSB READ SECTOR
- MJN FOV12 IF ERROR
- LJM FOV3 LOOP
- FOV11 LJM ERR3 *NOT FOUND.*
- FOV12 LJM RET RETURN
- FST SPACE 4,10
- *** FINDS.CCCCCCC
- * SEARCH FROM THE CURRENT POSITION FOR THE STRING OF CHARACTERS
- * CCCCCCC. IF THE FIRST PART OF THE STRING MATCHES THE
- * END OF THE BUFFER, THE SEARCH IS TERMINATED EVEN THOUGH THE
- * ENTIRE STRING WAS NOT FOUND. THE BYTE NUMBER OF THE BEGIN-
- * ING OF THE STRING IS DISPLAYED. IF THE CARRIAGE RETURN IS
- * ENTERED, THE SEARCH IS BEGUN AGAIN AT THAT POINT.
- FST COMMAND
- LDI CA
- NJN FST1 IF CHARACTER STRING ENTERED
- LJM ERR2 *INCORRECT PARAMETER.*
- FST1 LDD KM CHECK KEYBOARD MESSAGE
- LMC SBNA
- NJN FST2 IF NOT MESSAGE FROM FINDS
- STD KM
- LDN 1
- STD T2
- LJM FST9 CONTINUE SEARCH AT NEXT BYTE
- FST2 LDM BFMS
- ZJN FST3 IF EOF
- LDM BFMS+1
- NJN FST4 IF NOT ZERO LENGTH SECTOR
- FST3 LJM FST10 ADVANCE TO NEXT SECTOR
- FST4 SHN 2 SET BYTE COUNT
- ADM BFMS+1
- ADN 2
- STD FN+2
- LDN 2 SET STARTING BYTE NUMBER
- STD FN
- STD FN+1
- LDD CA SET BEGINNING OF STRING
- STD T3
- FST5 LDN 2 SET FIRST/SECOND HALF OF BYTE FLAG
- STD T2
- FST6 LDM BFMS,FN+1 CHECK FIRST CHARACTER OF BYTE
- SHN -6
- LMI T3
- NJN FST9 IF CHARACTERS DONT MATCH
- AOD T3
- FST7 LDI T3 CHECK SECOND CHARACTER OF BYTE
- ZJN FST8 IF SEARCH COMPLETE
- LMM BFMS,FN+1
- LPN 77
- NJN FST9 IF CHARACTERS DONT MATCH
- AOD T3
- LDI T3
- ZJN FST8 IF SEARCH COMPLETE
- AOD FN+1 ADVANCE TO NEXT 2 CHARACTERS
- LMD FN+2
- NJN FST6 IF NOT END OF SECTOR
- FST8 LJM SBN DISPLAY BYTE NUMBER
- FST9 LDD CA RESET POINTERS
- STD T3
- LDD FN
- STD FN+1
- SOD T2
- NJN FST7 IF STARTED WITH FIRST CHARACTER OF BYTE
- AOD FN ADVANCE SEARCH TO START WITH NEXT BYTE
- STD FN+1
- LMD FN+2
- NJN FST5 IF NOT END OF SECTOR
- FST10 RJM RCPA RETURN TO MAIN LOOP
- RJM SNS SET NEXT SECTOR
- ZJN FST11 IF EOI
- RJM RSB READ SECTOR
- MJN FST12 IF ERROR
- LJM FST2 SEARCH NEW SECTOR
- FST11 LJM ERR3 *NOT FOUND.*
- FST12 LJM RET RETURN
- FSS SPACE 4,10
- *** FINDSS.NNNNNN.
- * STARTING FROM THE CURRENT TRACK AND SEARCHING TO THE END
- * OF THE TRT, FIND AND DISPLAY THE NEXT SYSTEM SECTOR WITH
- * USER INDEX NNNNNN. IF NNNNNN IS NOT SPECIFIED, THE USER
- * INDEX IS NOT CHECKED.
- FSS COMMAND
- LDN 0
- STD SC
- LDI CA
- ZJN FSS1 IF UI NOT ENTERED
- RJM ASD ASSEMBLE USER INDEX
- LDD AB+3
- STD FN+3
- LDD AB+4
- STD FN+4
- FSS1 AOD TK ADVANCE TO NEXT TRACK
- LMD LT
- NJN FSS2 IF NOT END OF TRT
- SOD TK
- LJM ERR3 *NOT FOUND.*
- FSS2 RJM SNT CHECK FOR FLAWED TRACK
- LMC 3777
- ZJN FSS1 IF FLAWED TRACK
- RJM RSB READ SECTOR
- MJN FSS4 IF ERROR
- LDM BFMS
- SHN 6
- ADM BFMS+1
- LMC 377777
- NJN FSS3 IF NOT SYSTEM SECTOR
- LDI CA
- ZJN FSS4 IF NO UI SPECIFIED
- LDM FNSS+4 CHECK FILE TYPE
- SHN -6
- LMN PMFT
- NJN FSS3 IF NOT PERMANENT FILE SYSTEM SECTOR
- LDM CTSS+3
- LMD FN+3
- LPN 37
- NJN FSS3 IF UI DOES NOT MATCH
- LDM CTSS+4
- LMD FN+4
- ZJN FSS4 IF UI MATCHES
- FSS3 RJM RCPA RETURN TO MAIN LOOP
- LJM FSS1 LOOP
- FSS4 LJM RET RETURN
- EFB SPACE 4,10
- *** FNT.NNNN.
- * ENTER DISK ADDRESS FROM GLOBAL FNT ORDINAL NNNN.
- * (0 .LE. NNNN .LE. LARGEST FNT ORDINAL.) THE EQUIPMENT,
- * TRACK, AND SECTOR ARE SET TO THE BEGINNING OF THE FILE.
- * *INCORRECT PARAMETER.* IS DISPLAYED IF THE FNT ENTRY IS NOT
- * USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED.
- EFB COMMAND
- LDN TARN
- RJM LDO LOAD OVERLAY
- LDN PFNT
- RJM /TAR/RFE READ FST ENTRY
- LDD FN+1
- ZJP ERR2 IF TRACK NOT ASSIGNED
- STD TK TRACK
- LDN 0
- STD SC SECTOR
- LJM IMS INITIALIZE MASS STORAGE
- EFL SPACE 4,10
- *** FNTL.NNNN.
- * ENTER DISK ADDRESS FROM LOCAL FNT ORDINAL NNNN.
- * (0 .LE. NNNN .LE. LARGEST FNT ORDINAL.) THE EQUIPMENT,
- * TRACK, AND SECTOR ARE SET TO THE BEGINNING OF THE FILE.
- * *INCORRECT PARAMETER.* IS DISPLAYED IF THE FNT ENTRY IS NOT
- * USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED.
- EFL COMMAND
- LDN TARN
- RJM LDO LOAD OVERLAY
- LDN PNFL
- RJM /TAR/RFE READ FST ENTRY
- LDD FN+1
- ZJP ERR2 IF TRACK NOT ASSIGNED
- STD TK
- LDN 0 CLEAR SECTOR
- STD SC
- LJM IMS INITIALIZE MASS STORAGE
- EFC SPACE 4,10
- *** FNTLC.NNNN.
- * ENTER DISK ADDRESS FROM LOCAL FNT ORDINAL NNNN.
- * (0 .LE. NNNN .LE. LARGEST FNT ORDINAL.) THE EQUIPMENT,
- * TRACK, AND SECTOR ARE SET TO THE CURRENT POSITION OF THE
- * FILE. *INCORRECT PARAMETER.* IS DISPLAYED IF THE FNT ENTRY
- * IS NOT USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED.
- EFC COMMAND
- LDN TARN
- RJM LDO LOAD OVERLAY
- LDN PNFL
- RJM /TAR/RFE READ FST ENTRY
- LDD T3 CHECK FILE TYPE
- CRD CM
- LDD FN+2 SET TRACK
- ZJN EFC2 IF NO CURRENT TRACK
- STD TK
- LDD FN+3 SET SECTOR
- STD SC
- UJN EFC3 INITIALIZE MASS STORAGE
- EFC2 STD SC SET SECTOR
- LDD FN+1 SET TRACK
- STD TK
- EFC3 LJM IMS INITIALIZE MASS STORAGE
- GTT SPACE 4,10
- *** GETTRT.NNNN.
- * THIS COMMAND IS INTENDED TO BE USED ON THE LABEL TRACK. THE
- * EQUIPMENT AND TRACK MUST BE SET FOR THE LABEL TRACK BEFORE
- * THE COMMAND IS USED. GETTRT READS THE SECTOR THAT CONTAINS
- * THE CHECKPOINTED TRT INFORMATION FOR TRACK NNNN AND DISPLAYS
- * THE BYTE NUMBER WITHIN THE SECTOR FOR THAT TRACK.
- GTT COMMAND
- RJM ASD GET TRACK NUMBER
- LDD AB+4 GET BYTE NUMBER WITHIN CM WORD
- LPC 3777
- STD AB+4
- LPN 3
- STD AB+3
- LDD AB+4 GET CM WORD NUMBER
- SHN -2
- STD AB+2
- SHN -6 SET SECTOR NUMBER
- STD SC
- SHN 6
- STD AB+1
- AOD SC
- LDD AB+2 GET CM WORD NUMBER WITH SECTOR
- SBD AB+1
- STD AB
- SHN 2 CALCULATE BYTE NUMBER
- ADD AB
- ADD AB+3
- ADN 2
- STD FN
- RJM RSB READ SECTOR
- LJM SBN DISPLAY BYTE NUMBER
- HOL SPACE 4,10
- *** HOLD.
- * DROP DISPLAY AND WAIT FOR OPERATOR ASSIGNMENT. RESERVED
- * CHANNEL IS NOT DROPPED.
- HOL COMMAND
- RJM DDS DROP DISPLAY
- LDD MA SAVE DISK DATA
- CWD T3
- RJM RDC REQUEST DISPLAY
- RJM CSB CLEAR SCREEN BUFFER
- LDD MA RESTORE DISK DATA
- CRD T3
- LJM IMS INITIALIZE MASS STORAGE
- EIT SPACE 4,10
- *** QFT.NNNN.
- * ENTER DISK ADDRESS FROM QFT ORDINAL NNNN.
- * (0 .LE. NNNN .LE. LARGEST QFT ORDINAL.) THE EQUIPMENT,
- * TRACK, AND SECTOR ARE SET TO THE BEGINNING OF THE FILE.
- * *INCORRECT PARAMETER.* IS DISPLAYED IF THE QFT ENTRY IS NOT
- * USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED.
- EIT COMMAND
- LDN TARN
- RJM LDO LOAD OVERLAY
- LDN PQFT
- RJM /TAR/RFE READ FST ENTRY
- LDD FN+1
- ZJP ERR2 IF TRACK NOT ASSIGNED
- STD TK
- LDN 0 CLEAR SECTOR
- STD SC
- LJM IMS INITIALIZE MASS STORAGE
- LSA SPACE 4,10
- *** LOAD.C.
- * RELOAD THE EQUIPMENT, TRACK, AND SECTOR FROM SCRATCH AREA
- * C. C IS A SINGLE ALPHABETIC CHARACTER (LEGAL CHARACTERS ARE
- * DISPLAYED ON THE LEFT SCREEN). (REFER TO THE STORE COMMAND.)
- LSA COMMAND
- RJM CSA GET ADDRESS OF SCRATCH AREA
- LDI T2
- ZJN LSA1 IF STORE NOT DONE
- STD EQ
- LDM 1,T2
- STD TK
- LDM 2,T2
- STD SC
- LDM 3,T2 SET DISPLAY
- SHN -11
- STD RS
- RJM LDO LOAD OVERLAY
- LDM 3,T2
- LPC 777
- STM DRSA+4
- LJM IMS INITIALIZE MASS STORAGE
- LSA1 LJM ERR2 *INCORRECT PARAMETER.*
- EPN SPACE 4,10
- *** PACKNAM.CCCCCCC.
- * USE PERMANENT FILE PACK CCCCCCC. (THE PACK NAME IS SET
- * INTERNALLY IN DDF. *PKNW* IN THE CONTROL POINT AREA IS NOT
- * CHANGED.) THE PACK NAME IS INITIALLY SET TO THE NAME IN
- * *PKNW*.
- EPN COMMAND
- RJM ASN GET NAME
- LDD FN SAVE NAME
- STD PF
- LDD FN+1
- STD PF+1
- LDD FN+2
- STD PF+2
- LDD PF+3
- LPN 77
- LMD FN+3
- STD PF+3
- LJM RET RETURN
- PRD SPACE 4,10
- *** PREAD.
- * READ THE CURRENT SECTOR USING THE *READ PROTECTED SECTOR*
- * FUNCTION. THIS COMMAND REPLACES THE SPACE KEY WHEN READING
- * PROTECTED SECTORS. SPECIAL KEYS LIKE *+* AND *-* CANNOT
- * BE USED TO READ PROTECTED SECTORS. THE KEYBOARD MUST BE
- * UNLOCKED TO USE THIS COMMAND.
- PRD COMMAND
- RJM CLB CHECK LOCK BIT
- RJM CEQ CHECK EQUIPMENT
- LDD TK SAVE TRACK AND SECTOR
- STD FN
- LDD SC
- STD FN+1
- LDD EQ SET EQUIPMENT
- ADC 1000
- STM PRDB
- EXECUTE 0PI,PRDB+1 SET UP DRIVER FOR PROTECTED SECTORS
- LDD FN RESET TRACK AND SECTOR
- STD TK
- LDD FN+1
- STD SC
- LDM KBUF+1
- LMN 1RW
- NJN PRD1 IF NOT *PWRITE* COMMAND
- LDC WDS
- STM PRDA
- PRD1 LDC BFMS READ/WRITE SECTOR
- RJM RDS
- PRDA EQU *-1
- * RJM WDS (*PWRITE* COMMAND)
- MJN PRD2 IF ERROR
- ENDMS
- * LDN 0
- STM RDCT
- PRD2 LDM RDCT RELOAD DRIVER
- STD FN
- LDD T6
- STD FN+1
- RJM CTS
- LDD FN
- STM RDCT
- LDD FN+1
- STD T6
- LJM RET RETURN
- PRDB BSS 0 *0PI* LOAD ADDRESS
- ERRNG 7777-PRDB-1-ZPXL *0PI* OVERFLOWS PP MEMORY
- PTK SPACE 4,10
- *** PTK.NNNN.
- * ENTER PROTECTED TRACK. THIS COMMAND WORKS THE SAME AS THE
- * TK. COMMAND EXCEPT THE NUMBER ENTERED IS NOT CHECKED AND THE
- * KEYBOARD MUST BE UNLOCKED.
- PTK COMMAND
- RJM CLB CHECK LOCK BIT
- RJM ASD ASSEMBLE TRACK NUMBER
- LDD AB+4
- LPC 3777
- LMC 4000
- STD TK
- LJM RET RETURN
- PWT SPACE 4,10
- *** PWRITE.
- * WRITE THE CURRENT SECTOR USING THE *WRITE PROTECTED SECTOR*
- * FUNCTION. THIS COMMAND SHOULD BE USED INSTEAD OF THE *WRITE*
- * COMMAND WHEN WRITING PROTECTED SECTORS.
- QUAL PRESET
- PWT EQU PRD
- PWTL EQU PRDL
- QUAL *
- ERA SPACE 4,20
- *** RANDOM.NNNN.RRRR.
- * SET TRACK AND SECTOR FOR RANDOM ADDRESS RRRR WITH FIRST TRACK
- * NNNN. *INCORRECT PARAMETER.* IS DISPLAYED IF THE RANDOM
- * ADDRESS IS NOT ON THE TRACK.
- *
- *
- * RANDOM..RRRR.
- * SET TRACK AND SECTOR FOR RANDOM ADDRESS RRRR USING THE
- * CURRENT TRACK AS THE FIRST TRACK. *INCORRECT PARAMETER.* IS
- * DISPLAYED IF THE RANDOM ADDRESS IS NOT ON THE CHAIN.
- *
- *
- * RANDOM.C.RRRR.
- * SET TRACK AND SECTOR FOR RANDOM ADDRESS RRRR USING THE TRACK
- * SPECIFIED BY SCRATCH REGISTER C AS THE FIRST TRACK.
- * *INCORRECT PARAMETER.* IS DISPLAYED IF THE RANDOM ADDRESS IS
- * NOT ON THE CHAIN.
- ERA COMMAND
- LDD TK SAVE CURRENT TRACK
- STD RC
- LDI CA
- LMN 1R.
- ZJN ERA3 IF TRACK NUMBER NOT ENTERED
- LDI CA
- SBN NSRA+1
- PJN ERA1 IF NOT A SCRATCH AREA
- RJM CSA COMPUTE SCRATCH AREA ADDRESS
- LDM 1,T2 SET TRACK FROM SCRATCH AREA
- UJN ERA2 STORE TRACK
- ERA1 RJM ASD GET FIRST TRACK
- LDD AB+4
- ERA2 STD TK
- ERA3 AOD CA
- RJM CDR GET RANDOM ADDRESS
- LMN 1R.
- NJN ERA4 IF FORMAT ERROR
- RJM CRA CHECK RANDOM ADDRESS
- MJN ERA5 IF NOT ON CHAIN
- LJM RET RETURN
- ERA4 LDD RC RESET TRACK
- STD TK
- LJM ERR1 *FORMAT ERROR.*
- ERA5 LDD RC RESET TRACK
- STD TK
- LJM ERR2 *INCORRECT PARAMETER.*
- *CALL COMPCRA
- ESC SPACE 4,10
- *** SC.NNNN.
- * ENTER SECTOR NUMBER. *INCORRECT PARAMETER.* IS DISPLAYED IF
- * THE SECTOR NUMBER IS TOO LARGE.
- ESC COMMAND
- RJM ASD ASSEMBLE NUMBER
- LDD LS
- SBD AB+4
- MJN ESC1 IF ILLEGAL SECTOR
- LDD AB+4
- STD SC
- LJM RET RETURN
- ESC1 LJM ERR2 *INCORRECT PARAMETER.*
- ELS SPACE 4,10
- *** SC.*.
- * ENTER THE NUMBER OF THE LAST SECTOR ON THE TRACK INTO THE
- * SECTOR NUMBER.
- ELS COMMAND
- LDD LS SET LAST SECTOR
- STD SC
- LJM RET RETURN
- SCN SPACE 4,15
- *** SCAN.
- * SCAN FROM THE CURRENT POSITION UNTIL THE END OF INFORMATION
- * CONTROL BYTES ARE ENCOUNTERED. THE SCAN STOPS IF, AT SOME
- * POINT, THE CONTROL BYTES ARE INCORRECT OR THE TRACK IS NOT
- * RESERVED.
- *
- *
- * SCAN.*.
- * SCAN FROM THE CURRENT POSITION UNTIL THE END OF INFORMATION
- * INDICATED IN THE TRT IS REACHED. THIS IS INTENDED TO BE USED
- * FOR THE INDIRECT ACCESS PERMANENT FILE CHAIN. NOTE - WHEN
- * *PFM* DELINKS A TRACK IN THE MIDDLE OF THE CHAIN, IT DOES NOT
- * UPDATE THE TRACK POINTER IN THE PRECEEDING TRACK. THIS WILL
- * CAUSE SCAN TO STOP AT THIS POINT AND DISPLAY AN ERROR.
- SCN COMMAND
- SCN1 RJM RCPA RETURN TO MAIN LOOP
- RJM SNT CHECK TRT
- LDN 0 SET ERROR MESSAGE NUMBER
- STD T3
- LDM BFMS
- SHN 6
- ADM BFMS+1
- LMC 377777
- NJN SCN2 IF NOT SYSTEM SECTOR
- AOD T3
- LDM NSSS
- UJN SCN3 CHECK SYSTEM SECTOR POINTER
- SCN2 LDM BFMS
- NJN SCN3 IF NOT EOF
- LDM BFMS+1
- NJN SCN3 IF NOT EOI
- LJM SCN9 CHECK EOI PROCESSING
- SCN3 SHN 6
- PJN SCN4 IF NOT A TRACK LINK BYTE
- SHN -6
- LMM CM,T1
- NJN SCN8 IF LINKAGE BYTES DONT MATCH TRT
- LDN 2 SET ERROR MESSAGE NUMBER
- STD T3
- LDD SC
- LMD LS
- NJN SCN8 IF TRACK LINK NOT IN LAST SECTOR
- UJN SCN5 CHECK WORD COUNT
- SCN4 SHN -6
- SBN 1
- LMD SC
- NJN SCN8 IF NEXT SECTOR .NE. CURRENT SECTOR+1
- SCN5 LDN 3 SET MESSAGE NUMBER
- STD T3
- LDM BFMS CHECK WORD COUNT
- ZJN SCN6 IF EOF
- LDD HN
- SBM BFMS+1
- MJN SCN8 IF BAD WORD COUNT
- SCN6 AOD T3
- RJM CTR CHECK TRACK RESERVATION
- PJN SCN8 IF TRACK NOT RESERVED
- RJM SNS ADVANCE TO NEXT SECTOR
- SCN7 RJM RSB READ SECTOR
- MJN SCN11 IF ERROR
- LJM SCN1 LOOP
- SCN8 LDM SCNA,T3 GET MESSAGE
- LJM SKM SET KEYBOARD MESSAGE
- SCN9 LDI CA
- ZJN SCN11 IF NOT SCAN TO TRT EOI
- RJM SNT SET NEXT TRACK
- STD T1
- SHN 6
- MJN SCN10 IF NOT EOI TRACK
- SHN -6
- LMD SC
- ZJN SCN11 IF AT EOI INDICATED IN TRT
- SCN10 AOD SC ADVANCE TO NEXT SECTOR
- SBD LS
- SBN 1
- NJN SCN7 IF NOT END OF TRACK
- STD SC
- LDD T1
- STD TK
- UJN SCN7 READ NEXT SECTOR
- SCN11 LJM RET RETURN
- SCNA CON SCNB,SCNC,SCND,SCNE,SCNF
- SCNB DATA Z*LINKAGE BYTE BAD.*
- SCNC DATA Z*SYSTEM SECTOR LINKAGE BYTE BAD.*
- SCND DATA Z*TRACK LINK IN WRONG SECTOR.*
- SCNE DATA Z*WORD COUNT TOO BIG.*
- SCNF DATA Z*TRACK NOT RESERVED.*
- SPF SPACE 4,10
- *** SHOWPF.
- * DISPLAY THE PERMANENT FILE WHOSE CATALOG ENTRY IS CURRENTLY
- * DISPLAYED. THE *PFC* DISPLAY MUST BE ON THE RIGHT SCREEN TO
- * USE THIS COMMAND. THE DEVICE, TRACK, AND SECTOR FROM THE
- * PFC CURRENTLY DISPLAYED ARE USED TO DISPLAY THE FILE. IF THE
- * DEVICE IS NOT PRESENT, *INCORRECT PARAMETER* IS DISPLAYED.
- SPF COMMAND
- LDD RS CHECK CURRENT DISPLAY
- LMN DFDN
- SHN 12
- ADM /DFD/DFDB
- LMN DPEN
- NJP ERR4 IF PFC DISPLAY NOT UP
- LDM DRSA+4 COMPUTE PFC ADDRESS
- SHN NWCES
- STD FN
- SHN 2
- RAD FN
- LDM BFMS+2+FCDN,FN DETERMINE EQUIPMENT FILE IS ON
- LPN 77
- ZJN SPF2 IF FILE IS ON MASTER DEVICE
- STD CM
- LDD MA SAVE CURRENT DIRECT CELLS
- ADN 4
- CWD T3 - T7
- ADN 1
- CWD CM+3 - CM+7
- LDD T5 SEARCH FOR DEVICE
- RJM SDN
- PJN SPF1 IF DEVICE FOUND
- ADN 1
- ZJN SPF4 IF DEVICE NOT FOUND
- SPF1 LDD MA RESTORE DIRECT CELLS USED BY *COMPSDN*
- ADN 4+1
- CRD CM+3
- SPF2 LDM BFMS+2+FCBT,FN SET TRACK
- STD T6
- LDM BFMS+2+FCBS,FN SET SECTOR
- STD T7
- SHN 21-13
- PJN SPF3 IF INDIRECT ACCESS FILE
- LDN 0
- STD T7
- SPF3 LJM IMS INITIALIZE MASS STORAGE
- SPF4 LDD MA RESTORE PREVIOUS VALUES TO DIRECT CELLS
- ADN 4
- CRD T3
- ADN 1
- CRD CM+3
- LJM ERR2 *INCORRECT PARAMETER*
- *CALL COMPSDN
- SKE SPACE 4,10
- *** SKIPEI.
- * SET TRACK AND SECTOR TO EOI BASED ON CURRENT POSITION AND
- * INFORMATION IN THE TRT. THE NUMBER OF SECTORS SKIPPED IS
- * DISPLAYED ON THE LEFT SCREEN.
- SKE COMMAND
- RJM SEI SEARCH FOR EOI
- LDD T2 SET UP MESSAGE
- SHN -6
- RJM C2D CONVERT TWO DIGITS
- STM SKEB
- LDD T2
- RJM C2D CONVERT TWO DIGITS
- STM SKEB+1
- LDD T3
- SHN -6
- RJM C2D CONVERT TWO DIGITS
- STM SKEB+2
- LDD T3
- RJM C2D CONVERT TWO DIGITS
- STM SKEB+3
- LDC SKEA
- LJM SKM SET KEYBOARD MESSAGE
- SKEA DATA H* LENGTH = *
- SKEB DATA Z*NNNNNNNNB.*
- *CALL COMPSEI
- SKF SPACE 4,10
- *** SKIPF.
- * READ THE FILE STARTING AT THE CURRENT POSITION UNTIL AN EOF
- * IS ENCOUNTERED.
- SKF COMMAND
- SKF1 RJM SNS ADVANCE TO THE NEXT SECTOR
- RJM RSB READ SECTOR
- MJN SKF2 IF ERROR
- RJM RCPA RETURN TO MAIN LOOP
- LDM BFMS
- ADM BFMS+1
- ZJN SKF3 IF EOI
- LDM BFMS
- NJN SKF1 IF NOT EOF
- SKF2 LJM RET RETURN
- SKF3 LJM ERR3 *NOT FOUND.*
- SKR SPACE 4,10
- *** SKIPR.
- * READ THE FILE STARTING AT THE CURRENT POSITION UNTIL AN EOR
- * OR EOF IS ENCOUNTERED.
- SKR COMMAND
- SKR1 RJM SNS ADVANCE TO THE NEXT SECTOR
- RJM RSB READ SECTOR
- MJN SKR2 IF ERROR
- RJM RCPA RETURN TO MAIN LOOP
- LDM BFMS
- ADM BFMS+1
- ZJN SKR3 IF EOI
- LDM BFMS
- ZJN SKR2 IF EOF
- LDM BFMS+1
- SHN -6
- NJN SKR1 IF NOT SHORT PRU
- SKR2 LJM RET RETURN
- SKR3 LJM ERR3 *NOT FOUND.*
- STB SPACE 4,10
- *** STB.
- * SET THE TRACK INTERLOCK BIT FOR THE CURRENT TRACK. THE
- * KEYBOARD MUST BE UNLOCKED TO USE THIS COMMAND.
- STB COMMAND
- RJM CLB CHECK LOCK BIT
- STB1 RJM CTR CHECK TRACK RESERVATION
- MJN STB2 IF TRACK IS RESERVED
- LJM ERR4 *INCORRECT ENTRY.*
- STB2 LDD EQ
- STD CM+1
- LDD TK
- STD CM+2
- LDN STIS
- STD CM+3
- MONITOR STBM
- LDD CM+1
- ZJN STB3 IF REQUEST HONORED
- LDN 0
- STD SB
- RJM RCPA RETURN TO MAIN LOOP
- UJN STB1 LOOP
- STB3 LJM RET RETURN
- SSA SPACE 4,10
- *** STORE.C.COMMENT
- * STORE THE CURRENT EQUIPMENT, TRACK, AND SECTOR INTO SCRATCH
- * AREA C. C IS A SINGLE ALPHABETIC CHARACTER (LEGAL CHARACTERS
- * ARE DISPLAYED ON THE LEFT SCREEN). THE COMMENT IS COPIED TO
- * THE SCRATCH AREA AND DISPLAYED ON THE LEFT SCREEN. THE
- * COMMENT IS FOR CONVENIENCE ONLY AND IS TRUNCATED TO 10
- * CHARACTERS. THE EQUIPMENT, TRACK, AND SECTOR CAN BE RELOADED
- * FROM THE SCRATCH AREA WITH THE *LOAD* COMMAND.
- SSA COMMAND
- RJM CSA GET ADDRESS OF SCRATCH AREA
- LDD EQ SAVE EQUIPMENT
- STI T2
- AOD T2
- LDD TK SAVE TRACK
- STI T2
- AOD T2
- LDD SC SAVE SECTOR
- STI T2
- AOD T2
- LDD RS SAVE DISPLAY INFORMATION
- SHN 11
- ADM DRSA+4
- STI T2
- AOD T2
- LDN 4 COPY COMMENT
- STD T1
- AOD CA
- SSA1 LDI CA
- SHN 6
- ADM 1,CA
- STI T2
- LDN 2
- RAD CA
- AOD T2
- SOD T1
- PJN SSA1 IF MORE BYTES
- LJM RET RETURN
- ETK SPACE 4,10
- *** TK.NNNN.
- * ENTER TRACK NUMBER. *INCORRECT PARAMETER.* IS DISPLAYED IF
- * THE NUMBER IS TOO LARGE.
- ETK COMMAND
- RJM ASD ASSEMBLE NUMBER
- LDD AB+4
- LPC 3777
- ADC 4000
- STD T2
- SBD LT
- SBN 1
- PJN ETK1 IF ILLEGAL TRACK
- LDD T2
- STD TK
- LJM RET RETURN
- ETK1 LJM ERR2 *INCORRECT PARAMETER.*
- SCT SPACE 4,10
- *** UI.NNNNNN.
- * SET EQUIPMENT AND TRACK FOR THE CATALOG ENTRIES FOR USER
- * INDEX NNNNNN (NNNNNN .LE. 377777). *INCORRECT PARAMETER.* IS
- * DISPLAYED IF THE CATALOG IS NOT FOUND (THIS MAY BE THE RESULT
- * OF ENTERING THE WRONG FAMILY OR PACK NAME.) IF THE FAMILY
- * OR PACK NAME ARE CHANGED (AFTER ENTERING THE *UI* COMMAND),
- * THE *UI* COMMAND MUST BE REENTERED.
- SCT COMMAND
- RJM ASD GET USER INDEX
- LDD MA SAVE CURRENT ENTRIES
- ADN 5
- CWD T3
- LDN PF
- RJM SCA SET CATALOG ADDRESS
- PJN SCT1 IF DEVICE FOUND AND ACCESSIBLE
- ADN 1
- NJN SCT2 IF NOT FOUND
- SCT1 LDN DFDN
- STD RS
- RJM LDO LOAD OVERLAY
- LDN 0 SET SECTOR
- STD SC
- STM DRSA+4 SET DISPLAY INDEX
- LJM IMS INITIALIZE MASS STORAGE
- SCT2 LDD MA RESTORE PREVIOUS ENTRIES
- ADN 5
- CRD T3
- LJM ERR2 *INCORRECT PARAMETER.*
- *CALL COMPSCA
- WRT SPACE 4,10
- *** WRITE.
- * WRITE THE CONTENTS OF THE BUFFER TO THE SECTOR CURRENTLY
- * INDICATED. IF THE KEYBOARD IS NOT UNLOCKED, *INCORRECT
- * ENTRY.* IS DISPLAYED.
- WRT COMMAND
- RJM CLB CHECK FOR LOCKED KEYBOARD
- RJM CEQ CHECK EQUIPMENT
- LDC BFMS+WLSF
- RJM WDS WRITE DATA
- ENDMS
- LJM RET RETURN
- SPACE 4,10
- COMMAND
- TAR SPACE 4,10
- ** TAR - TABLE ACCESS ROUTINES.
- *
- * THIS CM RESIDENT OVERLAY CONTAINS THE SUBROUTINES REQUIRED
- * FOR COMMANDS *EJT.*, *FNT.*, *FNTL.*, *FNTLC.*, AND *QFT.*
- * TO ACCESS THE CMR/NFL TABLES INVOLVED TO READ A FST ENTRY.
- *
- * THEY ARE LOADED AT THE END OF THE COMMAND OVERLAY.
- QUAL PRESET
- .1 MAX EETL,EFBL,EFLL,EFCL,EITL
- QUAL *
- QUAL
- TARLA EQU CPLA+/PRESET/.1*5 TAR OVERLAY LOAD ADDRESS
- QUAL *
- TAR ACROVL TARLA
- CFA SPACE 4,10
- ** CFA - CALCULATE FNT ADDRESS.
- *
- * ENTRY (CA) = ADDRESS OF CHARACTER STRING.
- *
- * EXIT (T3) = LOCAL FNT POINTER.
- *
- * USES CM - CM+4.
- *
- * CALL ASD.
- CFA SUBR ENTRY/EXIT
- RJM ASD GET FNT ORDINAL
- LDN LENF COMPUTE FNT NFL ADDRESS (FNTN+NNNN*LENF)
- STD T0
- LDC FNTN
- STD T3
- CFA1 LDD AB+4
- RAD T3
- SHN -14
- NJN CFA2 IF OVERFLOW
- SOD T0
- NJN CFA1 IF MULTIPLY BY LENF INCOMPLETE
- LDD CP
- ADN FLSW GET NFL/100B
- CRD CM
- LDD CM FORM LWA+1 OF LOCAL FNT AREA
- SHN 6
- ADN 1
- STD CM+1
- LDD T3
- SBD CM+1
- MJN CFAX IF LEGAL ORDINAL
- CFA2 LJM ERR2 *INCORRECT PARAMETER.*
- CTO SPACE 4,15
- ** CTO - CHECK TABLE ORDINAL.
- *
- * ENTRY (A) = MANAGED TABLE IDENTIFICATION CODE.
- * (CA) = ADDRESS OF CHARACTER STRING.
- *
- * EXIT (T3) = TABLE ORDINAL.
- * (T1) = MANAGED TABLE IDENTIFICATION CODE.
- *
- * USES CM - CM+4.
- *
- * CALLS ASD.
- CTO SUBR ENTRY/EXIT
- STD T1
- RJM ASD ASSEMBLE TABLE ORDINAL
- LDM TMTP,T1 READ POINTER WORD
- CRD CM
- LDD AB+4 CHECK VALID ORDINAL
- STD T3
- SBD CM+2
- MJN CTOX IF LEGAL ORDINAL
- LJM ERR2 *INCORRECT PARAMETER.*
- RFE SPACE 4,15
- ** RFE - READ FST ENTRY.
- *
- * ENTRY (A) = MANAGED TABLE IDENTIFICATION CODE.
- * (CA) = ADDRESS OF CHARACTER STRING.
- *
- * EXIT (FN - FN+4) = FST ENTRY.
- * (T3) = FNT ADDRESS.
- * (EQ) = EST ORDINAL.
- *
- * USES CM - CM+4.
- *
- * CALLS CFA, CTO, .EJT, .FNT, .QFT.
- *
- * MACROS NFA, SFA.
- RFE4 LDD FN SET EST ORDINAL
- STD EQ
- RFE SUBR ENTRY/EXIT
- LMK PNFL
- NJN RFE1 IF NOT LOCAL FNT
- STD T1
- RJM CFA CALCULATE FNT ADDRESS
- NFA T3,R
- UJN RFE2 READ TABLE ENTRY
- RFE1 LMK PNFL
- RJM CTO CHECK TABLE ORDINAL
- LDM TMTA,T1
- STD CM
- LDD T3 GET ADDRESS OF SPECIFIED ENTRY
- RJM 0,CM
- RFE2 ADM TFSI,T1
- CRD FN READ FST ENTRY
- LDD FN+1
- ZJN RFE3 IF EMPTY FILE
- SFA EST,FN
- ADK EQDE
- CRD CM READ EST ENTRY
- LDD CM
- SHN 21-13
- MJN RFE4 IF MASS STORAGE
- RFE3 LJM ERR2 *INCORRECT PARAMETER.*
- TFSI INDEX LIST OF INDICES TO FST ENTRY
- INDEX PNFL,FSTL
- INDEX PFNT,FSTG
- INDEX PQFT,ENTQ
- INDEX PEJT,SCHE
- INDEX PEJT+1
- TMTA INDEX LIST OF MANAGED TABLE ACCESS ROUTINES
- INDEX PFNT,.FNT
- INDEX PQFT,.QFT
- INDEX PEJT,.EJT
- INDEX PEJT+1
- TMTP INDEX LIST OF MANAGED TABLE POINTER ADDRESSES
- INDEX PFNT,FNTP
- INDEX PQFT,QFTP
- INDEX PEJT,EJTP
- INDEX PEJT+1
- QUAL$ EQU 0 SELECT UNQUALIFIED ASSEMBLY OF COMPGFP
- EJT$ EQU 0 DEFINE *COMPGFP* ACCESS TO EJT
- FNT$ EQU 0 DEFINE *COMPGFP* ACCESS TO FNT
- QFT$ EQU 0 DEFINE *COMPGFP* ACCESS TO QFT
- IFP$ EQU 0 GENERATE *IFP* REMOTE CODE
- .OFFS SET *O-*L
- *CALL COMPGFP
- SPACE 4,10
- ACROVL
- ERRNG EPFW-TARLA-/PRESET/TARL*5 *TAR* OVERFLOWS ERROR PROC.
- * SINCE THE IFP CODE FOR COMPGFP IS EXECUTED DURING PRESET,
- * THE LOCATIONS TO BE PRESET MUST BE REFERENCE VIA THE ORIGIN
- * COUNTER, RATHER THAN THE LOCATION COUNTER (WHICH WAS USED TO
- * DEFINE THE SYMBOLS *EJTB*, *FNTB*, AND *QFT*).
- * TO ACCOMPLISH THIS, THE PRESET CODE IS ASSEMBLED USEING A
- * DIFFERENT QUALIFIER. THIS NECESSITATES REDEFINING THE
- * ASSEMBLY OPTION TAGS AS WELL.
- USE PRESET
- QUAL$ EQU 0 SELECT UNQUALIFIED ASSEMBLY OF COMPGFP
- EJT$ EQU 0 DEFINE *COMPGFP* ACCESS TO EJT
- EJTB EQU /TAR/EJTB+/TAR/.OFFS
- FNT$ EQU 0 DEFINE *COMPGFP* ACCESS TO FNT
- FNTB EQU /TAR/FNTB+/TAR/.OFFS
- QFT$ EQU 0 DEFINE *COMPGFP* ACCESS TO QFT
- QFTB EQU /TAR/QFTB+/TAR/.OFFS
- IFP$ EQU 0 GENERATE *IFP* REMOTE CODE
- IFP HERE ASSEMBLE *IFP* REMOTE CODE HERE
- USE *
- SPACE 4,10
- OVERFLOW /PRESET/OVL
- QUAL * RESUME UNQUALIFIED DEFINITIONS
- OVERLAY /PRESET/OVL,(LISTING FILE COMMAND PROCESSORS.)
- OVL SUBR ENTRY/EXIT
- UJN OVLX RETURN
- SPACE 4,10
- *** THE FOLLOWING COMMANDS ARE USED TO PRINT THE CONTENTS OF THE
- * DISK SECTOR AND MANIPULATE THE LISTING FILE.
- CLF SPACE 4,10
- *** LISTING.CCCCCCC.
- * SET THE LISTING FILE NAME TO CCCCCCC. THE LISTING FILE IS
- * ORIGINALLY *OUTPUT*.
- CLF COMMAND
- RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
- RJM ASN GET NAME
- LDD BA
- SHN 6
- ADD RA
- SHN 6
- ADD BA+1
- CWD FN WRITE NAME TO BUFFER
- LDN 2*2+1
- LJM SCP START CPU
- OUT SPACE 4,10
- *** OUT.
- * RELEASE THE LISTING FILE TO THE OUTPUT QUEUE.
- OUT COMMAND
- RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
- LDN 3*2+1
- LJM SCP START CPU
- PRT SPACE 4,10
- *** PRINT.
- * PRINT THE CURRENT EQUIPMENT, TRACK, SECTOR, TRT INFORMATION,
- * AND THE CONTENTS OF THE SECTOR.
- *
- *
- * PRINT.NNNN.
- * PRINT THE NEXT NNNN (MUST BE AN OCTAL NUMBER) SECTORS START-
- * ING WITH THE CURRENT SECTOR. PRINTING WILL STOP AT EOI IF
- * ENCOUNTERED BEFORE NNNN SECTORS HAVE BEEN PRINTED. ONE PAGE
- * OF OUTPUT IS PRODUCED FOR EACH SECTOR PRINTED.
- PRT COMMAND
- LDI CA
- ZJN PRT1 IF NUMBER NOT ENTERED
- RJM ASD CONVERT NUMBER
- LDD AB+4
- SBN 1
- PRT1 STD FN SAVE COUNT
- PRT2 RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
- RJM SNT GET CONTENTS OF TRT
- STD AB
- LDD CM+4
- STD AB+1
- LDM DLSA
- STD AB+3
- LDM DLSA+1
- STD AB+4
- LDD TK
- SHN -2
- RAD AB+4
- SHN -14
- RAD AB+3
- LDM BFMS
- STD T5+3 (=CM)
- LDM BFMS+1
- STD T5+4 (=CM+1)
- LDD BA
- SHN 6
- ADD RA
- SHN 6
- ADD BA+1
- CWD T5 WRITE OUT EQUIPMENT AND CONTROL BYTES
- ADN 1
- CWD AB
- ADN 1
- CWM BFMS+2,HN WRITE OUT CONTENTS OF BUFFER
- RJM WCC RESET (CM - CM+4)
- SOD FN DECREMENT COUNT
- MJN PRT3 IF DONE
- RJM SNS SET NEXT SECTOR
- ZJN PRT3 IF AT EOI
- LDN 1*2+1 SET FUNCTION CODE
- STD CM+4
- LDD RA
- SHN 6
- ADN D
- CWD CM
- RJM RSB READ NEXT SECTOR
- MJN PRT4 IF ERROR
- LJM PRT2 LOOP
- PRT3 LDN 1*2+1
- LJM SCP START CPU
- PRT4 LJM RET RETURN
- RET SPACE 4,10
- *** RETURN.
- * RETURN THE LISTING FILE.
- RET COMMAND
- RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
- LDN 6*2+1
- LJM SCP START CPU
- REW SPACE 4,10
- *** REWIND.
- * REWIND THE LISTING FILE.
- REW COMMAND
- RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
- LDN 4*2+1
- LJM SCP START CPU
- SID SPACE 4,10
- *** SETID.NN.
- * SET THE ID FOR THE OUTPUT FILE TO NN.
- SID COMMAND
- RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
- RJM ASD CONVERT ID
- LDD BA
- SHN 6
- ADD RA
- SHN 6
- ADD BA+1
- CWD AB
- LDN 7*2+1
- LJM SCP START CPU
- SKL SPACE 4,10
- *** SKIPL.
- * POSITION TO THE END OF THE LISTING FILE.
- SKL COMMAND
- RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
- LDN 5*2+1
- LJM SCP START CPU
- SPACE 4,10
- COMMAND
- SPACE 4,10
- OVERFLOW /PRESET/OVL
- QUAL *
- OVERLAY /PRESET/OVL,(LABEL/TRT RECONSTRUCTION PROCESSORS.)
- OVL SPACE 4,10
- ** PRESET THE OVERLAY BY LOADING THE AUXILIARY COMMAND
- * PROCESSOR SUBROUTINES TO CM.
- OVL SUBR ENTRY/EXIT
- LDN /PRESET/LRRL SET OVERLAY LENGTH
- STD T1
- LDD AB+3 SAVE CM ADDRESS
- STM /PRESET/TCRO+LRRN*5+2
- LDD AB+4
- STM /PRESET/TCRO+LRRN*5+3
- LDD AB+3 WRITE OVERLAY TO CM
- SHN 6
- ADD RA
- SHN 6
- ADD AB+4
- CWM /PRESET/LRR,T1
- LDD T1 UPDATE CM ADDRESS
- RAD AB+4
- SHN -14
- RAD AB+3
- UJN OVLX EXIT
- SPACE 4,10
- *** THE FOLLOWING COMMANDS CAN BE USED TO RECONSTRUCT THE LABEL
- * AND TRT OF A DEVICE THAT HAS LOST THEM. THE COMMANDS WILL
- * NOT NECESSARILY RECOVER THE DEVICE CORRECTLY. THE COMMANDS
- * (IN APPROXIMATE ORDER OF USE) ARE -
- *
- * BEGINR - BEGIN RECOVERY BY INITIALIZING TABLES;
- * RECOVER - SCAN DEVICE TO FIND FILES;
- * BLDTRT - CHECK FOR LINKAGE ERRORS AND BUILD A SECTOR OF
- * THE TRT FOR THE LABEL TRACK.
- * NEXTAT - FIND AND READ NEXT AVAILABLE TRACK.
- * (A TRACK WITH NO LINKAGE IN THE RECOVERY TABLES.)
- * NEXTSS - FIND AND READ NEXT TRACK IN THE RECOVERY TABLE
- * THAT BEGINS WITH A SYSTEM SECTOR.
- * SETTRT - MODIFY POINTERS FOR RECOVER COMMAND.
- * SETRW - MODIFY RECOVERY DATA FOR A TRACK.
- * BLDSL - CREATE LABEL SECTOR FOR DEVICE.
- *
- * THESE COMMANDS USE A RECOVERY TABLE IN CM TO KEEP TRACK OF
- * LINKAGES. THE TABLE IS INITIALIZED BY THE *BEGINR.* COMMAND.
- * THE OTHER COMMANDS USE OR MODIFY THE DATA IN THE TABLE TO
- * EFFECT DEVICE RECOVERY. THE TABLE IS FORMATTED AS FOLLOWS.
- *
- *
- *T,MST IMAGE OF MST FOR DEVICE. (MSTL WORDS LONG)
- *
- *
- *T,SSDW *FNSS* WORD FROM SYSTEM SECTOR OF CURRENT CHAIN.
- * *FTSS* WORD.
- * *DTSS* WORD. (THREE WORDS FOR FNSS....DTSS)
- *
- *
- *T,RCPW 12/FT, 12/PT, 12/SC, 24/UNUSED (RECOVER POINTERS)
- *
- * FT - FIRST TRACK OF CURRENT CHAIN.
- * PT - PREVIOUS TRACK IN CHAIN.
- * SC - CURRENT SECTOR FOR EOI SEARCH AFTER ERROR.
- *
- *
- *T,ICPW 12/FT, 12/PT, 36/UNUSED (INDIRECT CHAIN POINTERS)
- *
- * FT - FIRST TRACK OF INDIRECT CHAIN IN *BLDIC* COMMAND.
- * PT - PREVIOUS TRACK OF INDIRECT CHAIN.
- *
- *
- *T,BSPW 12/TT, 12/SC, 12/FT, 12/NF, 12/TL (BUILD POINTERS)
- *
- * TT - DESTINATION TRACK FOR WRITING TRT.
- * SC - SECTOR FOR CURRENT PIECE OF TRT.
- * FT - FIRST TRACK FOR CURRENT PIECE OF TRT.
- * NF - DAF FILE COUNT.
- * TL - TRT LENGTH FROM MST.
- *
- *
- * TWO RESERVED WORDS FOLLOW.
- *
- *
- *T,TRCT BEGINNING OF TRACK RECOVERY TABLE.
- * (MSTL+10 WORD FROM BEGINNING OF MST AREA.)
- * (ONE WORD PER TRACK AS FOLLOWS)
- *
- *T 6/TY, 1/RE, 1/SS, 1/FL, 1/, 2/EI, 12/FT, 12/PT, 12/NT, 12/LC
- *
- * TY - FILE TYPE FROM SYSTEM SECTOR.
- * RE - READ ERROR DETECTED IN TRACK.
- * SS - SYSTEM SECTOR IN TRACK AT OTHER THAN SECTOR ZERO.
- * FL - FLAWED TRACK INDICATOR.
- * EI - EOI STATUS FOR TRACK.
- * =0 - NO EOI.
- * =1 - NORMAL EOI IN TRACK.
- * =2 - EOI, WRITTEN BY IMS.
- * FT - FIRST TRACK OF CHAIN LINKED TO THIS TRACK.
- * PT - FIRST TRACK ENCOUNTERED LINKED TO THIS ONE.
- * ((PT) = CURRENT TRACK IF START OF FILE)
- * NT - NEXT TRACK OR EOI SECTOR NUMBER.
- * LC - LINKAGE COUNT. (NUMBER OF TRACKS LINKED
- * TO THIS TRACK.)
- SPACE 4,10
- ** LINKAGE RECOVERY DEFINITIONS.
- *
- * THE FOLLOWING SYMBOLS ARE USED TO REFERENCE THE
- * CM RECOVERY TABLES.
- QUAL
- SSDW EQU MSTL+0 SYSTEM SECTOR DATA WORDS
- RCPW EQU MSTL+3 RECOVERY POINTER WORD
- ICPW EQU MSTL+4 INDIRECT CHAIN RECOVERY POINTER WORD
- BSPW EQU MSTL+5 BUILD SECTOR POINTER WORD
- * MSTL+6 SPARE
- * MSTL+7 SPARE
- TRCT EQU MSTL+10 TRACK RECOVERY TABLE
- CRAL EQU TRCT+4077 CM RECOVERY AREA LENGTH
- QUAL *
- SPACE 4,10
- ** DIRECT CELL USAGE CONVENTIONS.
- *
- * (FN - FN+4) = RECOVERY POINTERS.
- * = (RCPW) FOR BEGINR, NEXXTAT, NEXTSS, RECOVER.
- * = (ICPW) FOR BLDIC. (NOT YET IMPLEMENTED)
- * = (BSPW) FOR BLDSL, BLDTRT.
- * (AB - AB+4) = RECOVERY WORD FOR CURRENT TRACK.
- BTR SPACE 4,10
- *** BEGINR.
- * BEGIN TRACK RECOVERY FOR THE CURRENT SELECTED EQUIPMENT BY
- * RESERVING AND CLEARING THE CM RECOVERY TABLES.
- * THE EQUIPMENT TO BE RECOVERED MUST BE REMOVABLE AND UNLOADED.
- * THE MST IN CMR FOR THE SELECTED EQUIPMENT IS USED TO
- * INITIALIZE THE MST FOR THE LABEL TRACK BUILT BY THE RECOVERY
- * COMMANDS. BE SURE THE EQUIPMENT MNEMONIC IN THE *E,M*
- * DISPLAY MATCHES THE PACK TO BE RECOVERED. IF THIS COMMAND IS
- * USED AGAIN, RECOVERY IS RESTARTED FOR THE CURRENT EQUIPMENT.
- BTR COMMAND
- LDD RT
- NJN BTR2 IF NOT FIRST USE OF *BEGINR.*
- LDD FL REQUEST STORAGE FOR TABLE
- STD RT SAVE TABLE ADDRESS
- ADN CRAL/100B
- STD AB
- LDD CP
- ADN MS1W
- CWM BTRA,TR * WAITING FOR MEMORY.*
- BTR1 LDN ZERL REQUEST STORAGE FOR RECOVERY TABLE
- CRD CM
- LDD AB
- STD CM+1
- MONITOR RSTM
- RJM PSS PAUSE
- LDD AB
- LMD FL
- NJN BTR1 IF MEMORY NOT OBTAINED
- BTR2 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES
- STD RS
- LDN LRRN OVERLAY CONTROL WORD INDEX
- RJM LDO LOAD OVERLAY
- SFA EST,EQ READ EST ENTRY
- ADK EQDE
- CRD CM
- LDN MSTL SET UP MST SKELTON FOR RECOVERY
- STD T1
- LDD CM+4 GET MST ADDRESS
- SHN 3
- CRM EPFW,T1
- RJM MST SET MST AREA
- LDD RA WRITE MST TO RECOVERY TABLE
- ADD RT
- SHN 6
- CWM EPFW,T1
- LDN ZERL
- CRD AB CLEAR RECOVERY WORDS
- CRD FN
- LDD CP CLEAR MESSAGE
- ADN MS1W
- CWD FN
- BTR3 LDD RA CLEAR RECOVERY TABLE
- ADD RT
- SHN 6
- ADD T1
- CWD FN
- AOD T1
- ADC -CRAL
- MJN BTR3 IF MORE TO CLEAR
- LDC 4000-1 SET INITIAL TRACK
- STD FN
- RJM /LRR/SRP SAVE RECOVERY POINTERS
- AOD FN READ FIRST SECTOR
- STD TK
- LDN 0
- STD SC
- RJM RSB READ SECTOR TO BUFFER
- LJM RET RETURN
- BTRA DATA C* WAITING FOR MEMORY.*
- MST SPACE 4,10
- ** MST - SET MST RECOVERY TABLE.
- *
- * ENTRY (EPFW - EPFW+MSTL) = MST IMAGE.
- *
- * EXIT MST SET FOR RECOVERY OPERATIONS.
- *
- * USES T3.
- MST SUBR ENTRY/EXIT
- LDC EPFW+ALGL*5
- STD T3
- LDC /LSD/FLTK
- STM 1,T3
- LDN 0
- STI T3 CLEAR INDIRECT POINTER
- STM 2,T3 CLEAR PERMITS POINTER
- STM 3,T3 CLEAR CATALOG TRACK COUNT
- STM 4,T3 CLEAR *DAT* POINTER
- .1 SET STLL-ALGL
- LDN .1*5
- RAD T3
- LDN 2
- STI T3 CLEAR INITIALIZE REQUESTS
- LDN 0
- STM 1,T3 CLEAR ERROR STATUS
- STM 3,T3 CLEAR DAF USER COUNT
- LJM MSTX RETURN
- BLS SPACE 4,20
- *** BLDSL.
- * BUILDS A LABEL SECTOR IMAGE IN THE DATA BUFFER FROM DATA
- * IN THE CM RECOVERY TABLE. ONCE THE OTHER RECOVERY COMMANDS
- * HAVE COMPLETED, THE MEMORY CHANGE COMMANDS CAN FILL IN ANY
- * MISSING DATA. THE BUFFER CAN THEN BE WRITTEN TO DISK WITH
- * THE WRITE COMMAND.
- *
- * NOTE - IF THIS COMMAND IS USED AFTER THE *RECOVER* COMMAND
- * COMPLETES, THE MST IN THE DATA BUFFER WILL SHOW THE
- * POINTERS TO THE FIRST TRACK OF THE PERMIT DATA AND INDIRECT
- * PF CHAIN. SINCE THE *RECOVER* COMMAND IS UNABLE TO FIND THE
- * CATALOG TRACK CHAIN, THESE POINTERS ARE HELPFUL IN LOCATING
- * THE CATALOG TRACK CHAIN, WHICH IS ALLOCATED BY *IMS*
- * IMMEDIATELY PRECEEDING THESE TWO TRACKS. THIS ONLY APPLIES
- * TO THE INITIAL CATALOG TRACKS. OVERFLOW TRACKS ARE LINKED
- * THRU THE LAST SECTOR OF ONE OF THE INITIAL TRACKS.
- BLS COMMAND
- LDD RT
- NJN BLS1 IF RECOVERY TABLES NOT PRESENT
- LJM ERR4 *INCORRECT COMMAND.*
- BLS1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES
- STD RS
- LDN LRRN OVERLAY CONTROL WORD INDEX
- RJM LDO LOAD OVERLAY
- LDC 3777 SET LINKAGE FOR SYSTEM SECTOR
- STM BFMS
- LDN 77
- STM BFMS+1
- BLS2 LDN ZERL CLEAR SECTOR BUFFER
- CRM FNSS,ON
- BLSA EQU *-1
- LDN 5 ADVANCE BUFFER ADDRESS
- RAM BLSA
- LMC BFMS+2+100*5
- NJN BLS2 IF CLEAR INCOMPLETE
- LDN 2
- STD T1
- BLS3 LDM BLSB,T1 SET FILE NAME = *LABEL*
- STM FNSS,T1
- SOD T1
- PJN BLS3 IF COPY INCOMPLETE
- LDC SYFT*1S6 SET FILE TYPE
- STM FNSS+4
- LDD EQ SET EQUIPMENT ORDINAL
- STM FTSS-1
- LDN PDTL SET DATE AND TIME
- CRM DTSS,ON
- LDN 1
- STM NSSS SET NEXT SECTOR
- STM DTSS SET FLAG
- STM /LSD/LLSS SET LABEL LEVEL
- SFA EST,EQ READ EST ENTRY
- ADK EQDE
- CRD CM
- LDD CM+3 SET EQUIPMENT MNEMONIC
- STM /LSD/E4SS
- LDN MSTL READ MST FROM RECOVERY AREA
- STD T1
- LDD RA
- ADD RT
- SHN 6
- CRM /LSD/N4SS,T1
- LDM /LSD/N4SS+ALGL*5+1 SET LABEL TRACK AND SECTOR
- STD TK
- STM FTSS
- LDN 0
- STD SC
- LJM RET RETURN
- BLSB DATA Z*LABEL*
- BRS SPACE 4,10
- *** BLDSTRT.
- * BUILD NEXT SECTOR OF TRT DATA FOR LABEL TRACK. AFTER LAST
- * SECTOR IS BUILT, THE POINTERS ARE RESET FOR THE FIRST SECTOR
- * AGAIN. TRACK AND SECTOR ARE SET FOR *WRITE* COMMAND.
- *
- * BLDSTRT.N.
- * BUILD SECTOR *N* OF TRT DATA FOR LABEL TRACK. (N .GE. 1)
- *
- * NOTE IT WILL BE NECESSARY TO MANUALLY GENERATE THE EOI
- * SECTOR FOR THE LABEL TRACK.
- BRS COMMAND
- LDD RT
- NJN BRS1 IF TABLES NOT ALLOCATED
- LJM ERR4 *INCORRECT ENTRY.*
- BRS1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES
- STD RS
- LDN LRRN OVERLAY CONTROL WORD INDEX
- RJM LDO LOAD OVERLAY
- LDN BSPW-RCPW SET POINTER INDEX
- RAM /LRR/RRPA
- STM /LRR/SRPA
- RJM /LRR/RRP RESTORE RECOVERY POINTERS
- LDD FN
- NJN BRS2 IF NOT INITIAL ENTRY
- STD FN+1
- LDD RA GET LABEL TRACK FROM MST
- ADD RT
- SHN 6
- ADN ALGL
- CRD CM
- LDD CM+1
- STD FN
- BRS2 LDI CA CHECK PARAMETER
- ZJN BRS3 IF NO SECTOR SPECIFIED
- SBN 1R1
- MJN BRS4 IF ILLEGAL SECTOR NUMBER
- STD FN+1
- BRS3 AOD FN+1 ADVANCE SECTOR
- SBN 1
- SHN 10 (400B TK/PRU)
- ADC 4000
- STD FN+2 SET STARTING TRACK
- SBD LT
- MJN BRS5 IF LEGAL SECTOR
- BRS4 LJM ERR2 *INCORRECT PARAMETER*
- * CHECK ALL TRACKS FOR ERRORS.
- BRS5 RJM CLE CHECK FOR LINKAGE ERRORS
- RJM BTS BUILD TRT SECTOR
- LDM BFMS+1
- LMC 100
- ZJN BRS8 IF SECTOR FULL, NOT END OF TRT
- * COMPLETE LAST SECTOR OF TRT.
- LDD TK
- LPN 3
- ZJN BRS7 IF LAST WORD FULL
- BRS6 LDC 3777 SET UNUSABLE TRACKS AS FLAWED
- STI T3
- AOD T3
- LDD RC
- SHN 1
- LMN 1
- STD RC
- AOD TK
- LPN 3
- NJN BRS6 IF NOT END OF WORD
- LDD RC SAVE TRACK STATUS BYTE
- STI T3
- AOD T3
- AOM BFMS+1 INCREMENT SECTOR WORD COUNT
- BRS7 LDN 0 CLEAR REMAINDER OF LAST SECTOR
- STI T3
- AOD T3
- ADC -BFMS-2-100*5
- MJN BRS7 IF NOT END OF SECTOR
- LDN 0 RESET POINTER TO START OVER
- STD FN
- * SET POINTERS AND RETURN.
- BRS8 LDD TK SAVE NEXT TRACK
- STD FN+2
- LDD FN SET DESTINATION ADDRESS
- STD TK
- LDD FN+1 SET SECTOR
- STD SC
- LDD RA SAVE POINTERS
- ADD RT
- SHN 6
- ADN BSPW
- CWD FN
- LJM RET RETURN
- BTS SPACE 4,10
- ** BTS - BUILD TRT SECTOR.
- *
- * BUILD A SECTOR OF TRT FROM RECOVERY TABLE.
- BTS SUBR ENTRY/EXIT
- LDD FN+1 SET LINK
- ADN 1
- STM BFMS
- LDN 0
- STD RC
- STM BFMS+1
- LDC BFMS+2
- STD T3
- LDD FN+2
- STD TK
- * BUILD TRT FROM RECOVERY TABLE.
- BTS1 RJM /LRR/STA SET TABLE ADDRESS
- CRD AB READ TRACK RECOVERY WORD
- LDD AB
- LPN 10
- ZJN BTS2 IF NOT FLAWED TRACK
- LDC 3777 SET FLAWED TRACK
- STI T3
- UJN BTS4 SET STATUS
- BTS2 LDD AB+3
- STI T3
- LDD AB
- SCN 77
- ZJN BTS3 IF NOT FIRST TRACK OF FILE
- LDC 401
- UJN BTS5 SET TRACK STATUS
- BTS3 LDD AB+3
- ZJN BTS5 IF TRACK NOT LINKED
- BTS4 LDN 1 SET TRACK STATUS
- BTS5 SHN 21 MERGE STATUS
- LMD RC
- SHN 1
- STD RC
- AOD T3 ADVANCE TRACK POINTERS
- AOD TK
- LPN 3
- NJN BTS6 IF TRT WORD NOT COMPLETE
- LDD RC STORE TRACK STATUS BYTE
- STI T3
- AOD T3
- LDN 0
- STD RC
- AOM BFMS+1 INCREMENT SECTOR WORD COUNT
- LMC 100
- ZJN BTS7 IF SECTOR FULL
- BTS6 LDD TK
- LMD LT
- ZJN BTS7 IF END OF TRT
- LJM BTS1 PROCESS NEXT ENTRY
- BTS7 LJM BTSX RETURN
- CLE SPACE 4,10
- ** CLE - CHECK FOR LINKAGE ERRORS.
- *
- * VERIFY THAT ALL TRACKS RESERVED HAVE UNIQUE LINKAGE.
- CLE SUBR ENTRY/EXIT
- LDC 4000
- STD TK
- CLE1 RJM /LRR/STA SET TABLE ADDRESS
- CRD AB READ TRACK RECOVERY WORD
- LDD AB
- LPN 64
- NJN CLE2 IF ERRORS
- LDD AB+4
- SBN 2
- MJN CLE3 IF LINKAGE UNIQUE
- CLE2 LDC CLEA *ERROR IN TRACK STATUS.*
- LJM ERR OUTPUT MESSAGE
- CLE3 AOD TK
- SBD LT
- MJN CLE1 IF ALL TRACKS NOT CHECKED
- UJN CLEX RETURN - NO ERRORS
- CLEA DATA Z*ERROR IN TRACK STATUS.*
- NAT SPACE 4,10
- *** NEXTAT.
- * LOCATES THE NEXT AVAILABLE TRACK ON THE CURRENT EQUIPMENT,
- * AND READS THE FIRST SECTOR OF THE TRACK. THE SEARCH BEGINS
- * AT THE DISPLAYED TRACK POINTER+1. BY RESETTING THE TRACK
- * POINTER TO TRACK ZERO, AND USING THIS COMMAND, UNRESERVED
- * TRACKS CAN BE FOUND AND CHECKED FOR BEING PART OF THE
- * CATALOG TRACK CHAIN OR INDIRECT FILE CHAIN.
- NAT COMMAND
- LDD RT
- NJN NAT1 IF TABLES ALLOCATED
- LJM ERR4 *INCORRECT ENTRY.*
- NAT1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES
- STD RS
- LDN LRRN OVERLAY CONTROL WORD INDEX
- RJM LDO LOAD OVERLAY
- RJM /LRR/RRP RESTORE RECOVERY POINTERS
- UJN NAT3 ENTER LOOP
- NAT2 RJM /LRR/STA SET TABLE ADDRESS
- CRD AB READ TRACK RECOVERY WORD
- LDD AB+1 CHECK FOR LINK
- ZJN NAT4 IF TRACK AVAILABLE
- NAT3 AOD FN
- STD TK
- SBD LT
- MJN NAT2 IF NOT END OF DEVICE
- SOD TK
- LDC NATA *END OF EQUIPMENT.*
- LJM ERR OUTPUT MESSAGE
- NAT4 STD SC
- RJM /LRR/SRP SAVE UPDATED RECOVERY POINTERS
- RJM RSB READ SECTOR TO BUFFER
- LJM RET RETURN
- NATA DATA Z*END OF EQUIPMENT.*
- NSS SPACE 4,10
- *** NEXTSS.
- * LOCATES THE NEXT TRACK IN THE RECOVERY TABLE THAT BEGINS
- * WITH A SYSTEM SECTOR. THE SEARCH BEGINS AT THE DISPLAYED
- * TRACK POINTER+1.
- NSS COMMAND
- LDD RT
- NJN NSS1 IF TABLES ALLOCATED
- LJM ERR4 *INCORRECT ENTRY.*
- NSS1 LDN DFBN SET DEFAULT DISPLAY AND LOAD GUBROUTINES
- STD RS
- LDN LRRN OVERLAY CONTROL WORD INDEX
- RJM LDO LOAD OVERLAY
- RJM /LRR/RRP RESTORE RECOVERY POINTERS
- UJN NSS3 ENTER LOOP
- NSS2 RJM /LRR/STA SET TABLE ADDRESS
- CRD AB READ TRACK RECOVERY WORD
- LDD AB CHECK FOR SYSTEM SECTOR
- SCN 77
- NJN NSS4 IF SYSTEM SECTOR (FIRST TRACK)
- NSS3 AOD FN
- STD TK
- SBD LT
- MJN NSS2 IF NOT END OF DEVICE
- SOD TK
- LDC NSSA *END OF EQUIPMENT.*
- LJM ERR OUTPUT MESSAGE
- NSS4 LDN 0
- STD SC
- RJM /LRR/SRP SAVE UPDATED RECOVERY POINTERS
- RJM RSB READ SECTOR TO BUFFER
- LJM RET RETURN
- NSSA DATA Z*END OF EQUIPMENT.*
- REC SPACE 4,15
- *** RECOVER.
- * RECOVER TRACKS STARTING AT FIRST TRACK OF DEVICE. IF THIS
- * COMMAND IS USED MORE THAN ONCE SINCE A *BEGINR* COMMAND, IT
- * CONTINUES RECOVERY BY FINDING THE NEXT SYSTEM SECTOR TRACK.
- *
- * RECOVER.X. (X = ANY CHARACTER.)
- * CONTINUE RECOVERY BY SCANNING FROM CURRENT POSITION TO EOI.
- *
- * RECOVERY DATA IS ADDED TO THE TABLE BY SEARCHING FOR TRACKS
- * THAT BEGIN WITH A SYSTEM SECTOR, AND FOLLOWING THE LINKAGE
- * TO EOI. ERRORS AND ANOMOLYS ARE FLAGGED. THE INDIRECT CHAIN
- * IS NOT TRACED. THE DISPLAY IS DROPPED UNTIL AN ERROR
- * OCCURS, OR UNTIL THE SEARCH COMPLETES. IT IS THEN
- * REQUESTED AGAIN AS IF A *HOLD* COMMAND HAD BEEN USED.
- REC COMMAND
- LDD RT
- NJN REC1 IF TABLES ALLOCATED.
- LJM ERR4 *INCORRECT COMMAND.*
- REC1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES
- STD RS
- LDN LRRN OVERLAY CONTROL WORD INDEX
- RJM LDO LOAD OVERLAY
- RJM /LRR/RRP RESTORE RECOVERY POINTERS
- LDI CA CHECK MODE
- ZJN REC2 IF NO ENTRY SPECIFIED
- RJM DDS DROP DISPLAY
- AOD FN+2 ADVANCE TO NEXT SECTOR
- STD SC
- LJM REC5 CONTINUE FROM NEXT SECTOR.
- REC2 RJM DDS DROP DISPLAY
- * ENTER HERE TO CHECK NEXT TRACK FOR SYSTEM SECTOR.
- REC3 AOD FN SET TRACK AND SECTOR
- STD FN+1
- STD TK
- LMD LT
- NJN REC4 IF NOT END OF EQUIPMENT
- SOD TK
- SOD FN
- LDC RECB *END OF EQUIPMENT.*
- LJM REC14 REPORT ERROR
- REC4 LDN 0
- STD SC
- RJM /LRR/STA SET TABLE ADDRESS
- CRD AB READ TRACK RECOVERY WORD
- LDD AB+1
- NJN REC3 IF TRACK LINKED
- RJM RSB READ SECTOR TO BUFFER
- MJP REC13 IF ERROR
- LDM BFMS CHECK FOR SYSTEM SECTOR
- SHN 6
- ADM BFMS+1
- ZJN REC6 IF EOI AT (SC) = 0
- LMC 377777
- NJN REC3 IF NOT SYSTEM SECTOR
- RJM /LRR/CSS CHECK SYSTEM SECTOR
- ZJN REC7 IF NO CHAIN RECOVERY
- * ENTER HERE TO SCAN FROM CURRENT POSITION TO EOI.
- REC5 RJM /LRR/SRP SAVE RECOVERY POINTERS
- RJM /LRR/WSM WRITE STATUS MESSAGE
- RJM PSS PAUSE FOR SYSTEM
- RJM /LRR/RRP RESTORE RECOVERY POINTERS
- RJM SNS SET NEXT SECTOR
- NJN REC8 IF NOT EOI
- * CHECK EOI SECTOR.
- REC6 RJM /LRR/CEI CHECK EOI
- RJM /LRR/STA SET TABLE ADDRESS
- CWD AB SAVE TRACK RECOVERY WORD
- REC7 LJM REC3 LOOP TO FIND NEXT FILE
- REC8 LDD SC
- ZJN REC10 IF NEW TRACK
- RJM RSB READ SECTOR TO BUFFER
- MJP REC13 IF ERROR
- LDM BFMS CHECK FOR SYSTEM SECTOR IN TRACK
- SHN 6
- ADM BFMS+1
- LMC 377777
- NJP REC5 IF NOT SYSTEM SECTOR
- LDD AB SET SYSTEM-SECTOR-IN-TRACK STATUS
- SCN 20
- LMN 20
- STD AB
- LDC RECC *SYSTEM SECTOR IN TRACK.*
- LJM REC14 PROCESS ERROR
- * ADVANCE TO NEXT TRACK.
- REC10 LDD TK SET FORWARD LINK
- STD AB+3
- LDD FN+1 RESET TRACK
- STD TK
- RJM /LRR/STA SET TABLE ADDRESS
- CWD AB SAVE TRACK RECOVERY WORD
- LDD AB+3 SET NEW TRACK
- STD TK
- RJM /LRR/STA SET TABLE ADDRESS
- CRD AB READ TRACK RECOVERY WORD
- AOD AB+4
- LDD AB+1
- NJN REC12 IF TRACK ALREADY LINKED
- RJM RSB READ SECTOR TO BUFFER
- MJP REC13 IF ERROR
- LDM BFMS CHECK FOR BEGINNING OF ANOTHER FILE
- SHN 6
- ADM BFMS+1
- LMC 377777
- ZJN REC12 IF SYSTEM SECTOR
- LDD FN SET REVERSE LINKS
- STD AB+1
- LDD FN+1
- STD AB+2
- LDD TK
- STD FN+1
- LJM REC5 LOOP
- * TRACK TO BE LINKED IS ALREADY IN USE.
- REC12 LDC RECD *NEXT TRACK IN USE.*
- UJN REC14 PROCESS ERROR
- * PROCESS READ ERROR IN TRACK.
- REC13 LDD AB SET ERROR STATUS
- SCN 40
- LMN 40
- STD AB
- LDN 0
- * TERMINATE PROCESSING.
- REC14 STD T3 SAVE MESSAGE ADDRESS
- LDD SC SAVE CURRENT SECTOR
- STD FN+2
- RJM /LRR/SRP SAVE RECOVERY POINTERS
- RJM /LRR/RDM RESUME DISPLAY MODE
- LDD T3
- LJM ERR REPORT ERROR
- RECB DATA Z*END OF EQUIPMENT.*
- RECC DATA Z*SYSTEM SECTOR IN TRACK.*
- RECD DATA Z*NEXT TRACK IN USE.*
- SRW SPACE 4,10
- *** SETRW.B.NNNN.
- * CHANGE BYTE *B* OF CURRENT TRACK RECOVERY WORD TO *NNNN*.
- SRW COMMAND
- LDD RT
- NJN SRW1 IF TABLES ALLOCATED
- LJM ERR4 *INCORRECT ENTRY.*
- SRW1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES
- STD RS
- LDN LRRN OVERLAY CONTROL WORD INDEX
- RJM LDO LOAD OVERLAY
- RJM /LRR/STA SET TABLE ADDRESS
- CRD CM READ TRACK RECOVERY WORD
- RJM ASD GET BYTE NUMBER
- LDD AB+4
- STD RC
- SBN 5
- PJN SRW2 IF OUT OF RANGE
- AOD CA ADVANCE CHARACTER ADDRESS
- RJM ASD ASSEMBLE NEW VALUE
- LDD AB+4
- STM CM,RC
- RJM /LRR/STA SET TABLE ADDRESS
- CWD CM SAVE TRACK RECOVERY WORD
- LJM RET RETURN
- SRW2 LJM ERR2 *INCORRECT PARAMETER.*
- STP SPACE 4,10
- *** SETTP.NNNN.
- * SETS RECOVERY TRACK POINTER FOR *RECOVER.*, *NEXTAT.*,
- * *NEXTSS.*, AND *SETRW.* COMMANDS TO *NNNN*.
- STP COMMAND
- LDD RT
- NJN STP1 IF TABLES ALLOCATED
- LJM ERR4 *INCORRECT ENTRY.*
- STP1 ADD RA READ POINTER WORD
- SHN 6
- ADN RCPW
- CRD CM
- RJM ASD ASSEMBLE VALUE
- LDD AB+4
- LPC 3777
- LMC 4000
- STD CM
- STD TK
- LDD RA SAVE UPDATED POINTER WORD
- ADD RT
- SHN 6
- ADN RCPW
- CWD CM
- LDN 0
- STD SC
- RJM RSB READ SECTOR TO BUFFER
- LJM RET RETURN
- SPACE 4,10
- COMMAND TERMINATE COMMANDS
- LRR SPACE 4,10
- ** LRR - LABEL/TRT RECONSTRUCTION SUBROUTINES.
- *
- * THE FOLLOWING ROUTINES ARE SAVED IN CENTRAL TO BE LOADED
- * AT THE END OF THE RIGHT SCREEN PROCESSOR AREA AS NEEDED.
- LRR ACROVL ACRLA
- CEI SPACE 4,15
- ** CEI - CHECK EOI SECTOR.
- *
- * ENTRY (AB - AB+4) = TRACK RECOVERY WORD.
- * (FN - FN+4) = RECOVERY POINTERS.
- *
- * EXIT (A) = 0 IF INDIRECT CHAIN.
- * RECOVERY POINTERS UPDATED.
- *
- * USES T1, CM - CM+4.
- *
- * CALLS STA.
- CEI SUBR ENTRY/EXIT
- LDD SC
- STD AB+3
- AOD AB SET EOI STATUS
- LDD SC
- LMN LS
- ZJN CEIX IF AT END OF TRACK
- AOD SC
- RJM RSB READ SECTOR TO BUFFER
- ZJN CEI1 IF NO READ ERROR
- RJM SRP SAVE RECOVERY POINTERS
- RJM /LRR/RDM RESUME DISPLAY MODE
- LJM RET RETURN
- CEI1 LDN 2
- STD T1
- SOD SC
- LDM BFMS
- ADM BFMS+1
- NJN CEI3 IF NOT ANOTHER EOI SECTOR
- CEI2 LDM BFMS+FNEI,T1 CHECK FOR FILENAME *IMS*
- LMM CEIB,T1
- NJN CEI3 IF NOT CATALOG/PERMIT/DATA TRACK
- SOD T1
- PJN CEI2 IF CHECK NOT COMPLETE
- AOD AB SET IMS EOI STATUS
- CEI3 LDN 0 FORCE EOI STATUS FOR *SNS*
- STM BFMS
- STM BFMS+1
- LJM CEIX RETURN
- CEIB DATA Z*IMS*
- CSS SPACE 4,15
- ** CSS - CHECK SYSTEM SECTOR.
- *
- * ENTRY (AB - AB+4) = TRACK RECOVERY WORD.
- * (FN - FN+4) = RECOVERY POINTERS.
- *
- * EXIT (A) = 0 IF INDIRECT CHAIN.
- * RECOVERY POINTERS UPDATED.
- *
- * USES T1, CM - CM+4.
- *
- * CALLS STA, ERR.
- CSS SUBR ENTRY/EXIT
- LDD RA READ MST RECOVERY AREA
- ADD RT
- SHN 6
- ADN ALGL
- CRD CM
- ADN SSDW-ALGL SAVE FNT/FST/DATE/TIME
- CWM FNSS,TR
- LDD FN SET LINKAGE
- STD AB+1
- STD AB+2
- LDM FNSS+4 SET FILE TYPE
- SHN -6
- STD T1
- SHN 6
- RAD AB
- LDD T1
- LMN SYFT
- NJN CSSX IF NOT SPECIAL FILE
- LDN 2
- STD T1
- CSS1 LDM FNSS,T1 CHECK FOR FILENAME *LABEL*
- LMM CSSA,T1
- NJN CSS2 IF NOT LABEL SECTOR
- SOD T1
- PJN CSS1 IF CHECK NOT COMPLETE
- LDN 1 ALGL BYTE POINTER
- UJN CSS6 SAVE TRACK
- CSS2 LDN 2
- STD T1
- CSS3 LDM FNSS,T1 CHECK FOR FILENAME *DATA*
- LMM CSSB,T1
- NJN CSS4 IF NOT INDIRECT CHAIN
- SOD T1
- PJN CSS3 IF CHECK NOT COMPLETE
- LDN 0 ALGL BYTE POINTER
- UJN CSS6 SAVE TRACK
- CSS4 LDN 2
- STD T1
- LDM FNSS+3
- LMM CSSC+3
- SCN 77
- NJN CSS7 IF NOT PERMIT CHAIN
- CSS5 LDM FNSS,T1 CHECK FOR FILENAME *PERMIT*
- LMM CSSC,T1
- NJN CSS7 IF NOT PERMIT CHAIN
- SOD T1
- PJN CSS5 IF CHECK NOT COMPLETE
- LDN 2 ALGL BYTE POINTER
- * SAVE TRACK IN PROPER *ALGL* BYTE.
- CSS6 STD T1
- LDD TK SAVE TRACK POINTER
- STM CM,T1
- LDD RA
- ADD RT
- SHN 6
- ADN ALGL
- CWD CM
- RJM SRP SAVE RECOVERY POINTERS
- LDD T1
- ZJN CSS7 IF INDIRECTS
- LMN 1
- NJN CSS7 IF NOT LABEL
- RJM RDM RESUME DISPLAY MODE
- LDC CSSA *LABEL*
- LJM ERR OUTPUT MESSAGE
- CSS7 LJM CSSX EXIT
- CSSA DATA Z*LABEL*
- CSSB DATA Z*DATA*
- CSSC DATA Z*PERMIT*
- RDM SPACE 4,10
- ** RDM - RESUME DISPLAY.
- *
- * RESETS PARAMETERS AND REQUESTS DISPLAY.
- *
- * USES T3.
- *
- * CALLS CSB, RDC, MDC.
- RDM SUBR ENTRY/EXIT
- LDD MA SAVE DISK DATA
- CWD T3
- RJM RDC REQUEST DISPLAY CHANNEL
- RJM CSB CLEAR SCREEN BUFFER
- LDD MA RESTORE DISK DATA
- CRD T3
- UJN RDMX RETURN
- RRP SPACE 4,10
- ** RRP - RESTORE RECOVERY POINTERS.
- *
- * ENTRY (TK) = CURRENT TRACK.
- *
- * EXIT (AB - AB+4) = TRACK RECOVERY WORD.
- * (FN - FN+4) = RECOVERY POINTERS.
- RRP SUBR ENTRY/EXIT
- LDD RA
- ADD RT
- SHN 6
- RRPA ADN RCPW
- * ADN ICPW IF INDIRECT CHAIN RECOVERY
- * ADN BSPW IF GENERATION OF TRT (BLDSTRT.)
- CRD FN
- RJM STA SET TABLE ADDRESS
- CRD AB READ TRACK RECOVERY WORD
- UJN RRPX RETURN
- SRP SPACE 4,10
- ** SRP - SAVE RECOVERY POINTERS.
- *
- * ENTRY (TK) = CURRENT TRACK.
- * (AB - AB+4) = TRACK RECOVERY WORD.
- * (FN - FN+4) = RECOVERY POINTERS.
- *
- * EXIT WORDS STORED IN CM RECOVERY AREA.
- SRP SUBR ENTRY/EXIT
- RJM STA SET TABLE ADDRESS
- CWD AB SAVE TRACK RECOVERY WORD
- LDD RA SAVE RECOVERY PARAMETERS
- ADD RT
- SHN 6
- SRPA ADN RCPW
- * ADN ICPW IF INDIRECT CHAIN RECOVERY
- * ADN BSPW IF GENERATION OF TRT (BLDSTRT.)
- CWD FN
- UJN SRPX RETURN
- STA SPACE 4,10
- ** STA - SET TABLE ADDRESS.
- *
- * EXIT (A) = CM ADDRESS FOR CURRENT TRACK RECOVERY WORD.
- STA SUBR ENTRY/EXIT
- LDD RA
- ADD RT
- SHN 6
- ADD TK
- ADC TRCT-4000
- UJN STAX RETURN
- WSM SPACE 4,10
- ** WSM - WRITE STATUS MESSAGE.
- *
- * WRITES MESSAGE TO MS1W FOR RECOVERY STATUS.
- WSM SUBR ENTRY/EXIT
- LDD EQ SET EST IN MESSAGE
- SHN -6
- ADC 2RQ0
- STM WSMA+5
- LDD EQ
- RJM C2D CONVERT TO DISPLAY
- STM WSMA+6
- LDD FN SET TRACK POINTER IN MESSAGE
- SHN -6
- RJM C2D CONVERT TO DISPLAY
- STM WSMA+11
- LDD FN
- RJM C2D CONVERT TO DISPLAY
- STM WSMA+12
- LDD FN+1 SET CURRENT TRACK IN MESSAGE
- SHN -6
- RJM C2D CONVERT TO DISPLAY
- STM WSMA+15
- LDD FN+1
- RJM C2D CONVERT TO DISPLAY
- STM WSMA+16
- LDN ZERL
- CRD CM
- LDD CP WRITE MESSAGE TO MS1W
- ADN MS1W
- CWM WSMA,TR
- CWD CM SET EOL
- LJM WSMX RETURN
- WSMA DATA 30H READING EQXXX TP=XXXX CT=XXXX
- SPACE 4,10
- ACROVL END OF OVERLAY
- ERRNG MACRL-/PRESET/LRRL *LRR* OVERFLOWS DISPLAY OVL AREA
- SPACE 4,10
- OVERFLOW /PRESET/OVL
- QUAL *
- SPACE 4,10
- QUAL
- .L EQU .N LAST OVERLAY LETTER
- MCMDL EQU /PRESET/.MCMDL MAXIMUM COMMAND PROCESSOR LENGTH
- TCMTL EQU /PRESET/.CMTL TOTAL CM REQUIRED FOR RESIDENT OVLS
- SPACE 4,10
- ERRNG EPFW-CPLA-MCMDL*5 COMMAND(S) OVERFLOW ERROR PROCESSOR
- DDF TTL DDF - DISPLAY DISK FILE.
- END
cdc/nos2.source/opl871/ddf.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator