cdc:nos2.source:opl871:qdsplay
Table of Contents
QDSPLAY
Table Of Contents
- [00008] QDSPLAY - QUEUED FILE DISPLAY.
- [00174] ASSEMBLY CONSTANTS.
- [00212] DATA STORAGE.
- [00248] TMLD - TABLE OF MESSAGES TO *L* DISPLAY.
- [00265] TVST - TABLE OF VALID STATUSES.
- [00359] MAIN PROGRAM.
- [00361] MAIN PROGRAM LOOP.
- [00380] FUNCTION PROCESSORS.
- [00382] ADV - ADVANCE DISPLAY FORWARD.
- [00429] BOI - BEGINNING OF FILE FUNCTION PROCESSOR.
- [00453] DAY - *DAYFILE* FUNCTION PROCESSOR.
- [00498] DRP - *DROP* FUNCTION PROCESSOR.
- [00515] END - *END* FUNCTION PROCESSOR.
- [00533] HLP - *HELP* FUNCTION PROCESSOR.
- [00644] LNE - SET *L* DISPLAY FORMAT TO LINE MODE.
- [00678] OCT - SETS THE *L* DISPLAY FORMAT TO OCTAL MODE.
- [00712] SLF - SKIP LINES FORWARD.
- [00739] SPF - SKIP PAGES FORWARD.
- [00787] SRB - SKIP RECORDS BACKWARD.
- [00832] SRF - SKIP RECORDS FORWARD.
- [00872] SSP - *SYSTEM SECTOR* FUNCTION PROCESSOR.
- [00898] TOG - TOGGLE BACK TO FILE DISPLAY.
- [00924] SUBROUTINES.
- [00926] BLD - BUILD *L* DISPLAY DATA.
- [01014] CMP - COMMAND FUNCTION PROCESSOR.
- [01144] CMPA - PAGE TABLE.
- [01154] TCOM - TABLE OF COMMANDS.
- [01183] COI - CONVERT OPERATOR INPUT.
- [01211] DCM - DETERMINE CHARACTER MODE.
- [01245] DLD - DROP *L* DISPLAY.
- [01283] EFP - EXECUTE FUNCTION PROCESSOR.
- [01299] FOD - FORMAT OCTAL DATA.
- [01390] ILD - INPUT *L* DISPLAY.
- [01421] OLD - OUTPUT *L* DISPLAY DATA.
- [01430] RNR - READ NEW RECORD.
- [01461] RQF - READ QUEUED FILE.
- [01490] RPV - REPRIEVE PROCESSOR.
- [01508] RSC - REMOVE SPECIAL CHARACTERS.
- [01596] SEM - SET ERROR MESSAGE.
- [01628] TLD - TRANSFER LINES OF DATA.
- [01753] BUFFER AREA.
- [01772] PRESET.
- [01774] PRS - PRESET ARGUMENT PROCESSING.
- [01928] ERR - ERROR PROCESSOR.
- [01949] TQTG - TABLE OF QUEUE TYPES FOR *GET* FUNCTION.
Source Code
- QDSPLAY.txt
- IDENT QDSPLAY,FWA,QDSPLAY
- ABS
- ENTRY QDSPLAY
- ENTRY RFL=
- ENTRY SSJ=
- SYSCOM B1 DEFINE (B1) = 1
- SST
- TITLE QDSPLAY - QUEUED FILE DISPLAY.
- SPACE 4,10
- *COMMENT QDSPLAY - QUEUED FILE DISPLAY.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SPACE 4,10
- ***** QDSPLAY - DISPLAY QUEUED FILE.
- *
- * C. P. GERR. 81/12/01.
- SPACE 4,10
- *** *QDSPLAY* IS AN *L* DISPLAY UTILITY INITIATED
- * BY A CONSOLE OPERATOR (VIA *DSD*) WHICH DISPLAYS
- * PORTIONS OF A QUEUED FILE.
- SPACE 4,10
- *** COMMAND FORMAT.
- *
- *
- * QDSPLAY(JSN)
- *
- * JSN = JOB SEQUENCE NUMBER OF QUEUED FILE.
- *
- * ONLY INPUT, PRINT, TERMINAL WAIT, PUNCH AND PLOT TYPE FILES
- * ARE DISPLAYED.
- SPACE 4,10
- *** DAYFILE MESSAGES.
- *
- * THESE MESSAGES ARE ISSUED TO THE JOB AND SYSTEM DAYFILES.
- *
- * * USER ACCESS NOT VALID.*
- * CALLING JOB WAS NOT SYSTEM ORIGIN.
- *
- * * INCORRECT JSN.*
- * JSN WAS GREATER THAN 4 CHARACTERS OR LESS THAN 3
- * CHARACTERS.
- *
- * * ARGUMENT ERROR.*
- * JSN WAS NOT ENTERED IN THE COMMAND CALL OR
- * MORE THAN ONE PARAMETER WAS ENTERED.
- *
- * * JSN XXXX NOT FOUND.*
- * JSN XXXX WAS NOT FOUND IN INPUT, PRINT, PLOT, TERMINAL
- * WAIT OR PUNCH QUEUE. *XXXX* IS REPLACED BY JSN.
- *
- * * CANNOT ACCESS L-DISPLAY.*
- * *DSD* DETECTED AN ERROR CONDITION WHEN INPUT WAS
- * ENTERED VIA THE *L* DISPLAY.
- *
- SPACE 4,10
- *** *L* DISPLAY ERROR MESSAGES.
- *
- * THESE MESSAGES ARE ISSUED THROUGH THE *L* DISPLAY.
- *
- * *NO DAYFILE FOUND.*
- * DAYFILE FOR JOB DOES NOT EXIST.
- *
- * *UNRECOGNIZABLE DIRECTIVE.*
- * INCORRECT COMMAND WAS ENTERED VIA *L* DISPLAY.
- *
- * *DIRECTIVE NOT ALLOWED.*
- * A SKIP COMMAND WAS ENTERED WHEN *SS* OR *HELP* DATA
- * WAS DISPLAYED OR *L* DISPLAY FORMAT WAS IN OCTAL
- * MODE.
- *
- * *INCORRECT SKIP COUNT.*
- * AN ASTERISK WAS PRESENT ON A SKIP LINE, SKIP PAGE, OR
- * SKIP RECORD BACKWARD COMMAND OR THE SKIP COUNT WAS
- * GREATER THAN 377777B OR THE SKIP COUNT WAS NOT
- * NUMERIC.
- *
- * *EXCESS PARAMETERS.*
- * A SECOND PARAMETER WAS SPECIFIED ON A COMMAND WHICH
- * WAS NOT A SKIP COMMAND.
- *
- * *SYSTEM ABORT.*
- * A SYSTEM ERROR WAS ENCOUNTERED.
- SPACE 4,10
- *** *L* DISPLAY INFORMATIVE MESSAGES.
- *
- * THESE MESSAGES ARE ISSUED THROUGH THE *L* DISPLAY.
- *
- * *DROP PROCESSED.*
- * A DROP COMMAND WAS ENTERED VIA *L* DISPLAY.
- * THE FILE HAS BEEN REMOVED FROM THE QUEUE AND THE
- * UTILITY HAS TERMINATED.
- *
- * *END PROCESSED.*
- * AN END COMMAND WAS ENTERED VIA *L* DISPLAY.
- * THE FILE HAS BEEN RETURNED TO THE QUEUE AND THE
- * UTILITY HAS TERMINATED.
- SPACE 4,10
- *** *L* DISPLAY COMMANDS.
- *
- * THE FOLLOWING ARE LEGAL COMMANDS TO BE ENTERED BY THE
- * OPERATOR THROUGH THE *L* DISPLAY.
- *
- * L.HELP. LIST *L* DISPLAY DIRECTIVES FOR *QDSPLAY*
- * UTILITY.
- *
- * L.DROP. DROP THE FILE FROM THE QUEUE AND TERMINATE
- * UTILITY.
- *
- * L.END. RETURN THE FILE TO THE QUEUE AND TERMINATE
- * UTILITY.
- *
- * L.LINE. SET FILE DISPLAY MODE TO LINE FORMAT.
- * (MODE DOES NOT APPLY TO SYSTEM SECTOR
- * DISPLAY WHICH IS ALWAYS IN OCTAL DISPLAY
- * FORMAT.)
- *
- * L.OCTAL. SET FILE DISPLAY MODE TO OCTAL FORMAT.
- *
- * L.SS. DISPLAY FROM BEGINNING OF SYSTEM SECTOR
- * IN OCTAL FORMAT.
- *
- * L.*. RETURN FROM *HELP* OR *SS* DISPLAY TO
- * DISPLAY FILE AT PREVIOUS POSITION
- * (IGNORED IF ALREADY DISPLAYING FILE).
- *
- * L.BACK. RETURN FROM *HELP* OR *SS* DISPLAY TO
- * DISPLAY FILE AT PREVIOUS POSITION
- * (IGNORED IF ALREADY DISPLAYING FILE).
- *
- * L.+. ADVANCE DISPLAY FORWARD TO NEXT SCREEN
- * OF DATA. CIRCULAR ADVANCE IS DONE FOR
- * SYSTEM SECTOR DISPLAY.
- *
- * L.-. PAGE BACKWARD TO PREVIOUS SCREEN OF DATA.
- * COMMAND IS VALID ONLY FOR HELP DISPLAY.
- *
- * L.BOI. POSITION FILE TO BEGINNING OF INFORMATION
- * AND DISPLAY DATA.
- *
- * L.DAY. POSITION FILE TO DAYFILE RECORD AND
- * DISPLAY DATA (MEANINGFUL FOR SOME PRINT
- * FILES).
- *
- * L.SL. SKIP 1 OR N LINES FORWARD IN FILE AND
- * L.SL,N. DISPLAY DATA. A LINE IS BASED ON 14D WORD
- * MAXIMUM PRINT LINE SIZE. SKIP PREMATURELY
- * STOPS ON EOR/EOF/EOI. COMMAND IS ALLOWED
- * ONLY WHEN DISPLAYING DATA IN LINE FORMAT.
- * COMMAND IS NOT ALLOWED UNDER *HELP* OR
- * *SS* DISPLAY.
- *
- * L.SP. SKIP 1 OR N PAGES FORWARD IN FILE AND
- * L.SP,N. DISPLAY DATA. A PAGE IS BASED ON
- * CARRIAGE CONTROL 1 AS FIRST CHARACTER
- * OF LINE. SKIP PREMATURELY STOPS ON
- * EOR/EOF/EOI. COMMAND IS ALLOWED ONLY
- * WHEN DISPLAYING DATA IN LINE FORMAT.
- * COMMAND IS NOT ALLOWED UNDER *HELP* OR
- * *SS* DISPLAY.
- *
- * L.SR. SKIP 1 OR N RECORDS OR TO END OF
- * L.SR,N. INFORMATION (N=* OPTION) IN FILE AND
- * L.SR,*. DISPLAY DATA. SKIP PREMATURELY STOPS AT
- * EOI. COMMAND IS NOT ALLOWED UNDER *HELP*
- * OR *SS* DISPLAY.
- *
- * L.BR. SKIP 1 OR N RECORDS BACKWARD IN FILE AND
- * L.BR,N. DISPLAY DATA. SKIP PREMATURELY STOPS
- * AT BOI. COMMAND IS NOT ALLOWED UNDER
- * *HELP* OR *SS* DISPLAY.
- *
- * SKIP LINE/PAGE/RECORD COUNTS ARE ASSUMED DECIMAL BUT
- * POST-RADIX B OR D CAN BE SPECIFIED. MAXIMUM SKIP COUNT
- * ACCEPTED IS 377777B.
- TITLE ASSEMBLY CONSTANTS.
- SPACE 4,10
- **** ASSEMBLY CONSTANTS.
- CNCI EQU 4 NO COMMAND INPUT (*DSD* RETURN STATUS)
- DLSZ EQU 6 NUMBER OF WORDS PER LINE ON *L* DISPLAY
- ERML EQU 3 ERROR MESSAGE LENGTH
- MLLD EQU 18 MAXIMUM NUMBER OF LINES ON *L* DISPLAY
- PLSZ EQU 14 PRINTER LINE SIZE
- LBHRL EQU 6 *L* DISPLAY HEADER LENGTH
- LBUFL EQU LDSY-LBHRL LENGTH OF *L* DISPLAY BUFFER
- QBUFL EQU 701B QUEUED BUFFER SIZE
- ERRNG 1000B-QBUFL PREVENT BUFFER AHEAD
- SBUFL EQU 100B LENGTH OF SYSTEM SECTOR BUFFER
- WBUFL EQU LBUFL LENGTH OF WORKING BUFFER
- XCDT EQU 1 X - COORDINATE FOR *L* DISPLAY
- YCDT EQU 2 Y - COORDINATE FOR *L* DISPLAY
- LCOMU SET LCOM/2+1 INPUT BUFFER PACKED
- LLBF EQU LBUFL/5 *L* DISPLAY BUFFER FOR OCTAL MODE
- MLLB MIN LLBF,MLLD *L* DISPLAY BUFFER FOR OCTAL MODE
- ****
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCMAC
- *CALL COMCCMD
- *CALL COMCDCM
- *CALL COMCDCP
- *CALL COMSDSP
- *CALL COMSEVT
- *CALL COMSIOQ
- *CALL COMSJIO
- *CALL COMSQAC
- *CALL COMSSSD
- *CALL COMSSSE
- IOSS. EQU IOSS-BFMS-2
- *CALL COMSSSJ
- TITLE DATA STORAGE.
- ORG 111B
- FWA BSS 0
- SPACE 4,10
- ** DATA STORAGE.
- BLNS DATA 8C BLANK LINES
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- DATA 8C
- CLDF CON HLPA CURRENT *L* DISPLAY FWA
- DFLG CON 0 RANDOM ADDRESS OF DAYFILE
- ERIB CON 0 ENTIRE RECORD IN BUFFER FLAG
- FETA CON 0 FET ADDRESS
- SCNT CON 0 SKIP COUNT
- STAT CON SHLP FILE STATUS
- PSTT CON SBOI PREVIOUS FILE STATUS
- MODE CON 0 FILE DISPLAY MODE (O=LINE, 1=OCTAL)
- SPACE 4,10
- ** TMLD - TABLE OF MESSAGES TO *L* DISPLAY.
- TMLD BSS 0
- LOC 0
- DATA C* *
- DRPM DATA C*DROP PROCESSED. *
- EABT DATA C*SYSTEM ABORT. *
- EDNA DATA C*DIRECTIVE NOT ALLOWED. *
- EEPS DATA C*EXCESS PARAMETERS. *
- EISC DATA C*INCORRECT SKIP COUNT. *
- ENDF DATA C*NO DAYFILE FOUND. *
- ENDM DATA C*END PROCESSED. *
- EUND DATA C*UNRECOGNIZABLE DIRECTIVE. *
- EVOH DATA C*VALID ONLY FOR HELP DISPLAY.*
- LOC *O
- TVST SPACE 4,10
- ** TVST - TABLE OF VALID STATUSES.
- *
- * THIS TABLE CONSISTS OF A VALUE TO BE DISPLAYED
- * IN THE HEADER FOR FILE STATUS.
- * DUE TO CODE REQUIREMENTS, THIS TABLE MUST BE MAINTAINED
- * IN THE FOLLOWING ORDER AND LOCATION POSITIONS.
- TVST BSS 0
- LOC 0
- SHLP DATA L* = .* *HELP* STATUS
- ERRNZ SHLP CODE DEPENDS UPON VALUE BEING 0
- SSYS DATA L* = SS. * SYSTEM SECTOR STATUS
- ERRNZ SSYS-1 CODE DEPENDS UPON VALUE BEING 1
- SBOI DATA L* = BOI.* BEGINNING OF INFORMATION STATUS
- SBOR DATA L* = BOR.* BEGINNING OF RECORD STATUS
- SMID DATA L* = .* MIDDLE OF RECORD STATUS
- SEOI DATA L* = EOI.* END OF INFORMATION STATUS
- SEOF DATA L* = EOF.* END OF FILE STATUS
- SEOR DATA L* = EOR.* END OF RECORD STATUS
- LOC *O
- SPACE 4,10
- ** *QAC* PARAMETER BLOCK.
- QACPB BSS 0
- QACR VFD 50/0,9/GTFC,1/0 REQUEST PREFIX PORTION
- VFD 36/0,6/GTLB-5,18/0
- VFD 60/0
- VFD 60/0
- VFD 60/0
- QACS VFD 60/0 SELECTION CRITERIA PORTION
- VFD 60/0
- VFD 36/0,12/DLSF,12/JSSF+ZPSF
- VFD 12/INQQ,48/0
- VFD 18/0,18/3H***,24/0
- VFD 60/0
- VFD 60/0
- QACF VFD 60/0 *GET* FUNCTION PORTION
- VFD 60/0
- VFD 60/0
- VFD 60/0
- SPACE 4,10
- ** *ROUTE* PARAMETER BLOCK.
- ROPB BSSZ EPBL
- .R BSS 0
- ORG ROPB+1
- VFD 42/0,18/FREB EXTENDED BLOCK PRESENT
- ORG ROPB+7
- VFD 42/0,18/EFRQ SPECIAL REQUEUE OPERATION FLAG
- ORG .R
- SPACE 4,10
- ** *ROLLOUT* PARAMETER BLOCK.
- ROLB VFD 30/0,18/LINE,12/0
- SPACE 4,10
- ** *REPRIEVE* PARAMETER BLOCK.
- RPB BSS 0
- VFD 36/0,12/RPBL,12/0
- VFD 30/0,30/RPV
- BSSZ 27B
- RPBL EQU *-RPB
- SPACE 4,10
- ** *SSJ=* PARAMETER BLOCK.
- SSJ= BSS 0
- VFD 48/0,12/IRSI
- BSSZ SSJL-1
- SPACE 4,5
- ** *L* DISPLAY BUFFER HEADER.
- LBHR DATA C* QDSPLAY. JSN = $$$$. QFT = ++++. IC = --. STATUS =
- , .*
- .LBHRL EQU *-LBHR *L* DISPLAY HEADER LENGTH
- ERRNZ .LBHRL-LBHRL *LBHRL* NEEDS TO BE REDEFINED
- SPACE 4,10
- ** FET DEFINITIONS.
- CON 0 SAVE PREVIOUS *IN* FOR QUEUED FILE
- CON 0 SAVE PREVIOUS *OUT* FOR QUEUED FILE
- Q RFILEB QBUF,QBUFL,(FET=9) QUEUED FILE FET
- CON 0 SAVE PREVIOUS *IN* FOR SYSTEM SECTOR FILE
- CON 0 SAVE PREVIOUS *OUT* FOR SYSTEM SECTOR FILE
- S FILEB SBUF,SBUFL+1,(FET=7) SYSTEM SECTOR FET
- TITLE MAIN PROGRAM.
- QDSPLAY SPACE 4,10
- ** QDSPLAY - MAIN PROGRAM LOOP.
- *
- * CALLS BLD, CMP, EFP, ILD, OLD, PRS, SEM.
- QDSPLAY BSS 0 ENTRY
- RJ PRS EXECUTE PRESET
- * EXECUTE LOOP TO PROCESS COMMAND.
- QDS1 RJ EFP EXECUTE FUNCTION PROCESSOR
- ZR X2,QDS2 IF DISPLAY NOT TO BE REBUILT
- RJ BLD BUILD *L* DISPLAY
- QDS2 RJ OLD OUTPUT *L* DISPLAY DATA.
- RJ ILD INPUT *L* DISPLAY DATA.
- RJ CMP COMMAND PROCESSOR
- ZR B2,QDS1 IF NO ERROR IN COMMAND
- RJ SEM PROCESS ERROR
- EQ QDS2 UPDATE *L* DISPLAY
- TITLE FUNCTION PROCESSORS.
- ADV SPACE 4,20
- ** ADV - ADVANCE DISPLAY FORWARD.
- *
- * *ADV* ADVANCES THE *L* DISPLAY TO DISPLAY NEXT PORTION OF
- * DATA. ADVANCE IS CIRCULAR FOR SYSTEM SECTOR.
- *
- * EXIT (X2) = FET ADDRESS OF QUEUED FILE IF FILE STATUS IS
- * NOT *SS*.
- * (X2) = FET ADDRESS OF SYSTEM SECTOR IF FILE STATUS
- * IS *SS*.
- * (B2) = 0 (NO ERROR), IF *HELP* DISPLAY STATUS.
- *
- * USES X - 2, 3, 4, 6, 7.
- * A - 2, 3, 4, 6, 7.
- * B - 2, 3, 5.
- *
- * CALLS RNR.
- ADV2 SB5 SEOI
- LT B3,B5,ADVX IF NOT EOR/EOF/EOI
- SX6 SBOR BEGINNING OF RECORD STATUS
- RJ RNR READ NEW RECORD
- ADV SUBR ENTRY/EXIT
- SA2 STAT GET FILE STATUS
- SB2 B0 NO ERROR
- SB3 X2
- SX2 S SET SYSTEM SECTOR FET
- EQ B3,B1,ADV1 IF *SS* STATUS PRESENT
- SX2 Q SET QUEUED FILE FET
- SX6 SMID SET FILE STATUS
- SA6 STAT
- ADV1 SA3 X2-2 GET PREVIOUS *IN*
- SA4 A3+B1 GET PREVIOUS *OUT*
- BX6 X3
- LX7 X4
- SA6 X2+2 RESET TO ADVANCED FET POINTERS
- IX3 X3-X4 COMPARE *IN* AND *OUT*
- SA7 A6+1
- NZ X3,ADVX IF *IN* .NE. *OUT*
- NE B3,B1,ADV2 IF NOT *SS* DISPLAY
- SX7 SBUF SET *OUT*
- SA7 A7
- SX6 SBUF+77B SET *IN*
- SA6 A6
- EQ ADVX RETURN
- BOI SPACE 4,15
- ** BOI - BEGINNING OF FILE FUNCTION PROCESSOR.
- *
- * *BOI* DISPLAYS THE BEGINNING OF THE QUEUED FILE ON THE *L*
- * DISPLAY.
- *
- * EXIT (X2) = FET ADDRESS OF QUEUED FILE.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 7.
- *
- * CALLS RNR.
- BOI SUBR ENTRY/EXIT
- SA1 STAT GET FILE STATUS
- SX2 Q
- SX6 SBOI SET BEGINNING OF INFORMATION STATUS
- SX7 B1 SET RANDOM READ IN FET TO BOI
- BX1 X1-X6
- ZR X1,BOIX IF AT BOI
- SA7 Q+6
- RJ RNR READ NEXT RECORD
- EQ BOIX RETURN
- DAY SPACE 4,15
- ** DAY - *DAYFILE* FUNCTION PROCESSOR.
- *
- * *DAY* DISPLAYS THE DAYFILE PORTION OF THE FILE IF THE
- * DAYFILE EXISTS.
- *
- * EXIT (X2) = 0, IF DAYFILE NOT FOUND AND HELP STATUS.
- * (X2) = FET ADDRESS OF QUEUED FILE OR SYSTEM SECTOR,
- * IF DAYFILE NOT FOUND AND NOT HELP STATUS.
- * (X2) = FET ADDRESS OF QUEUED FILE IF DAYFILE FOUND.
- * (B2) = ERROR MESSAGE ADDRESS, IF NO DAYFILE FOUND.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 2, 7.
- * B - 2.
- *
- * CALLS HLP, RNR.
- DAY SUBR ENTRY/EXIT
- SA2 DFLG GET DAYFILE ADDRESS
- SB2 ENDF *NO DAYFILE FOUND.*
- ZR X2,DAY1 IF NO DAYFILE FOUND
- BX7 X2 SET RANDOM ADDRESS OF DAYFILE IN FET
- SA7 Q+6
- SX6 SBOR SET BEGINNING OF RECORD STATUS
- RJ RNR READ NEW RECORD
- SB2 B0+ INDICATE NO ERROR
- EQ DAYX RETURN
- * REBUILD PROPER DISPLAY WITH ERROR MESSAGE.
- DAY1 SA1 STAT GET FILE STATUS
- SX6 SHLP CHECK IF HELP STATUS
- BX6 X1-X6
- NZ X6,DAY2 IF NOT HELP STATUS
- RJ HLP FORMAT HELP DISPLAY
- EQ DAYX RETURN
- DAY2 SX6 SSYS CHECK IF SYSTEM SECTOR STATUS
- SX2 S SET SYSTEM SECTOR FET
- BX6 X1-X6
- ZR X6,DAYX IF SYSTEM SECTOR STATUS
- SX2 Q SET QUEUED FILE STATUS
- EQ DAYX RETURN
- DRP SPACE 4,10
- ** DRP - *DROP* FUNCTION PROCESSOR.
- *
- * *DRP* DROPS THE FILE FROM THE QUEUE AND TERMINATES UTILITY.
- *
- * USES B - 2.
- *
- * CALLS DLD.
- *
- * MACROS ENDRUN, RETURN.
- DRP SUBR ENTRY/EXIT
- SB2 DRPM DISPLAY *DROP PROCESSED.* MESSAGE
- RJ DLD DROP *L* DISPLAY
- RETURN Q,R
- ENDRUN
- END SPACE 4,10
- ** END - *END* FUNCTION PROCESSOR.
- *
- * *END* RETURNS THE FILE TO THE QUEUE AND TERMINATES THE
- * UTILITY.
- *
- * USES B - 2.
- *
- * CALLS DLD.
- *
- * MACROS ENDRUN, ROUTE.
- END SUBR ENTRY/EXIT
- SB2 ENDM DISPLAY *END PROCESSED.* MESSAGE
- RJ DLD DROP *L* DISPLAY
- ROUTE ROPB,R RETURN FILE TO QUEUE
- ENDRUN
- HLP SPACE 4,15
- ** HLP - *HELP* FUNCTION PROCESSOR.
- *
- * *HLP* MOVES *HELP* DISPLAY DATA TO *L* DISPLAY.
- *
- * ENTRY (CMPB) = FWA OF PAGE TO DISPLAY.
- * (B2) = MESSAGE ORDINAL FOR TABLE OF MESSAGES.
- *
- * EXIT (B2) = 0 (NO ERR0R).
- * (X2) = 0 (*L* DISPLAY DATA NEED NOT BE REBUILT).
- *
- * USES X - 1, 2, 3, 5, 6, 7.
- * A - 1, 5, 6, 7.
- * B - 2, 3, 4, 6.
- *
- * CALLS COI, FLB.
- *
- * MACROS MOVE.
- HLP SUBR ENTRY/EXIT
- SA5 CLDF GET CURRENT SCREEN FWA
- SX2 TMLD+B2 SET MESSAGE
- MOVE ERML,X2,X5+HLMA-HLPA
- RJ COI CONVERT OPERATOR INPUT
- SX2 IBUF SET INPUT LINE
- MOVE LCOMU,X2,X5+HLIA-HLPA SET INPUT LINE
- SX1 X5 FWA DATA TO FORMAT
- SX6 X1+HLPAL-1 LWA DATA TO FORMAT
- MX2 0 INDICATE *L* DISPLAY
- SX3 B1+ INDICATE LINE MODE
- SB2 LBUF FWA *L* DISPLAY BUFFER
- SB3 XCDT X - COORDINATE OF DISPLAY
- SB4 YCDT Y - COORDINATE OF DISPLAY
- SB6 LBUF+LBUFL LWA *L* DISPLAY BUFFER
- RJ FLB FORMAT DATA FOR *L* DISPLAY
- SA1 STAT GET FILE STATUS
- SX6 SHLP SET *HELP* STATUS
- SA6 A1
- SB3 X1
- SX2 B0 PREVENT *L* DISPLAY BUILD FROM FILE
- SB2 B0 SET NO ERROR
- LE B3,B1,HLPX IF *SS* OR *HELP* STATUS
- SX7 X1+ SAVE PREVIOUS FILE STATUS
- SA7 PSTT
- EQ HLPX RETURN
- HLPA BSS 0 *L* DISPLAY HELP PAGE 1
- DATA 50HQDSPLAY COMMANDS PAGE
- DATA 10H 1 OF 2
- DATA C* *
- DATA 34C COMMAND DESCRIPTION
- DATA C* *
- DATA 50H BACK RETURN FROM HELP/SS TO PREVIOUS FILE DI
- DATA 10HSPLAY.
- DATA 49C BOI POSITION FILE TO BOI AND DISPLAY DATA.
- DATA 50H DAY POSITION PRINT FILE TO DAYFILE AND DISP
- DATA 10HLAY DATA.
- DATA 46C DROP DROP FILE FROM QUEUE AND TERMINATE.
- DATA C* *
- DATA 46C END RETURN FILE TO QUEUE AND TERMINATE.
- DATA 50H HELP LIST L DISPLAY COMMANDS FOR QDSPLAY UTI
- DATA 10HLITY.
- DATA 48C LINE SET FILE DISPLAY MODE TO LINE FORMAT.
- DATA 49C OCTAL SET FILE DISPLAY MODE TO OCTAL FORMAT.
- DATA C* *
- DATA 50H SS DISPLAY IN OCTAL FROM BEGINNING OF SYST
- DATA 10HEM SECTOR.
- DATA 50C + PAGE DISPLAY FORWARD (CIRCULAR FOR SS).
- DATA 48C - PAGE DISPLAY BACKWARD.
- DATA C* *
- HLMA DATA C* *
- HLIA DATA C* *
- CON 0 END OF HELP PAGE 1 DISPLAY
- HLPAL EQU *-HLPA LENGTH OF PAGE 1 DISPLAY
- HLPB BSS 0 *L* DISPLAY HELP PAGE 2
- DATA 50HQDSPLAY COMMANDS PAGE
- DATA 10H 2 OF 2
- DATA C* *
- DATA 34C COMMAND DESCRIPTION
- DATA C* *
- DATA 50H SL SKIP 1 LINE FORWARD IN FILE AND DISPLAY
- DATA 10H DATA.
- DATA 50H SL,N SKIP N LINES FORWARD IN FILE AND DISPLA
- DATA 10HY DATA.
- DATA 50H SP SKIP 1 PAGE FORWARD IN FILE AND DISPLAY
- DATA 10H DATA.
- DATA 50H SP,N SKIP N PAGES FORWARD IN FILE AND DISPLA
- DATA 10HY DATA.
- DATA 50H SR SKIP 1 RECORD FORWARD IN FILE AND DISPL
- DATA 10HAY DATA.
- DATA C* *
- DATA 50H SR,N SKIP N RECORDS FORWARD IN FILE AND DISP
- DATA 10HLAY DATA.
- DATA 31C SR,* SKIP TO EOI IN FILE.
- DATA 50H BR SKIP 1 RECORD BACKWARD IN FILE AND DISP
- DATA 10HLAY DATA.
- DATA 50H BR,N SKIP N RECORDS BACKWARD IN FILE AND DIS
- DATA 10HPLAY DATA.
- DATA 20C
- DATA 20C
- DATA 20C
- DATA 20C
- HLMB DATA C* *
- HLIB DATA C* *
- CON 0 END OF HELP PAGE 2 DISPLAY
- HLPBL EQU *-HLPB LENGTH OF PAGE 2 DISPLAY
- ERRNZ HLPAL-HLPBL PAGE LENGTHS MUST BE EQUAL
- ERRNZ HLMA-HLPA-HLMB+HLPB MESSAGE OFFSETS MUST BE THE SAME
- ERRNZ HLIA-HLPA-HLIB+HLPB INPUT OFFSETS MUST BE THE SAME
- LNE SPACE 4,15
- ** LNE - SET *L* DISPLAY FORMAT TO LINE MODE.
- *
- * *LNE* SETS LINE MODE FORMAT FOR THE *L* DISPLAY.
- *
- * EXIT (B2) = 0 (NO ERROR).
- * (X2) = 0, IF *HELP* STATUS.
- * (X2) = SYSTEM SECTOR FET, IF *SS* STATUS.
- * (X2) = QUEUED FET, IF NOT *HELP* OR *SS* STATUS.
- *
- * USES X - 2, 6.
- * A - 2, 6.
- * B - 2, 3.
- *
- * CALLS HLP.
- LNE SUBR ENTRY/EXIT
- SA2 STAT GET FILE STATUS
- SB2 B0 NO ERROR
- SX6 B0 SET *L* DISPLAY FORMAT TO LINE MODE
- SA6 MODE
- SB3 X2
- SX2 B0 DO NOT REBUILD *L* DISPLAY
- NE B3,B0,LNE1 IF NOT HELP STATUS
- RJ HLP REBUILD HELP DISPLAY WITH *LINE* ECHOED
- EQ LNEX RETURN
- LNE1 NE B3,B1,LNE2 IF NOT *SS* STATUS
- SX2 S SET SYSTEM SECTOR FET
- EQ LNEX RETURN
- LNE2 SX2 Q SET QUEUED FILE FET
- EQ LNEX RETURN
- OCT SPACE 4,15
- ** OCT - SETS THE *L* DISPLAY FORMAT TO OCTAL MODE.
- *
- * *OCT* SETS OCTAL MODE FORMAT FOR THE *L* DISPLAY.
- *
- * EXIT (B2) = 0 (NO ERROR).
- * (X2) = 0, IF *HELP* STATUS.
- * (X2) = SYSTEM SECTOR FET, IF *SS* STATUS.
- * (X2) = QUEUED FET, IF NOT *HELP* OR *SS* STATUS.
- *
- * USES X - 2, 6.
- * A - 2, 6.
- * B - 2, 3.
- *
- * CALLS HLP.
- OCT SUBR ENTRY/EXIT
- SX6 B1 SET *L* DISPLAY FORMAT TO OCTAL MODE
- SA6 MODE
- SB2 B0 NO ERROR
- SA2 STAT GET FILE STATUS
- SB3 X2
- SX2 B0 DO NOT REBUILD *L* DISPLAY
- NE B3,B0,OCT1 IF NOT HELP STATUS
- RJ HLP REBUILD HELP DISPLAY WITH *OCTAL* ECHOED
- EQ OCTX RETURN
- OCT1 NE B3,B1,OCT2 IF NOT *SS* STATUS
- SX2 S SET SYSTEM SECTOR FET
- EQ OCTX RETURN
- OCT2 SX2 Q SET QUEUED FILE FET
- EQ OCTX RETURN
- SLF SPACE 4,10
- ** SLF - SKIP LINES FORWARD.
- *
- * *SLF* SKIPS LINES FORWARD.
- *
- * EXIT (X2) = FET ADDRESS OF QUEUED FILE.
- * (B2) = 0 (NO ERROR).
- *
- * USES X - 1, 5, 6.
- * A - 5, 6.
- * B - 2.
- *
- * MACROS READC.
- SLF SUBR ENTRY/EXIT
- SA5 SCNT GET SKIP COUNT
- SX6 SMID SET FILE STATUS TO MIDDLE OF RECORD
- SA6 STAT
- SLF1 READC Q,WBUF,PLSZ
- SB2 B0+ INDICATE NO ERROR
- NG X1,SLFX IF EOF/EOI
- SX1 X1-WBUF
- ZR X1,SLFX IF EOR (NO DATA)
- SX5 X5-1 DECREMENT SKIP COUNT
- NZ X5,SLF1 IF MORE LINES TO SKIP
- EQ SLFX RETURN
- SPF SPACE 4,10
- ** SPF - SKIP PAGES FORWARD.
- *
- * *SPF* SKIPS PAGES FORWARD.
- *
- * EXIT (X2) = FET ADDRESS OF QUEUED FILE.
- * (B2) = 0 (NO ERROR).
- *
- * USES X - 0, 1, 3, 4, 5, 6, 7.
- * A - 1, 3, 4, 5, 6, 7.
- * B - 2.
- *
- * MACROS READC.
- SPF SUBR ENTRY/EXIT
- SA5 SCNT GET SKIP COUNT
- SX6 SMID SET MIDDLE OF RECORD FILE STATUS
- SA6 STAT
- SX0 B1+ INDICATE TOP OF FIRST PAGE
- SPF1 SA3 Q+2 GET *IN*
- BX6 X3
- SA4 A3+B1 GET *OUT*
- BX7 X4
- SA6 Q-2 SAVE PREVIOUS *IN*
- SA7 A6+B1 SAVE PREVIOUS *OUT*
- READC Q,WBUF,PLSZ
- SB2 B0+ INDICATE NO ERROR
- NG X1,SPFX IF EOF/EOI
- SX1 X1-WBUF
- ZR X1,SPFX IF EOR (WITH NO DATA)
- MX3 6 CHECK LINE FOR CARRIAGE CONTROL
- SA1 WBUF
- BX1 X3*X1
- LX1 6
- SX1 X1-1R1
- BX1 X1+X0
- SX0 B0+ INDICATE NOT TOP OF FIRST PAGE
- NZ X1,SPF1 IF TOP OF FIRST PAGE OR NOT PAGE EJECT 1
- SX5 X5-1 DECREMENT SKIP COUNT
- NZ X5,SPF1 IF MORE PAGES TO SKIP
- SA1 Q-2 GET PREVIOUS *IN*
- SA3 A1+B1 GET PREVIOUS *OUT*
- BX6 X1
- SA6 Q+2 SET *IN* AND *OUT* IN FET
- BX7 X3
- SA7 A6+B1
- EQ SPFX RETURN
- SRB SPACE 4,15
- ** SRB - SKIP RECORDS BACKWARD.
- *
- * *SRB* SKIP RECORDS BACKWARD.
- *
- * EXIT (X2) = FET ADDRESS OF QUEUED FILE, IF FILE STATUS IS
- * NOT BOI.
- * (X2) = 0, IF FILE STATUS IS BOI.
- *
- * USES X - 0, 1, 2, 3, 4, 6.
- * A - 1, 3, 6.
- * B - 2.
- *
- * CALLS RNR.
- *
- * MACROS SKIPB.
- SRB SUBR ENTRY/EXIT
- SA3 STAT GET FILE STATUS
- SB2 B0+ NO ERROR
- SX2 X3-SBOI
- ZR X2,SRBX IF FILE DISPLAY IS AT BOI
- SX6 QBUF SET *IN* = *OUT* = *FIRST* (EMPTY BUFFER)
- SA6 Q+2
- SA1 SCNT GET SKIP COUNT
- SA6 Q+3
- SX4 X3-SEOF
- SX2 X3-SBOR
- ZR X4,SRB1 IF FILE DISPLAY AT EOF
- NZ X2,SRB2 IF FILE DISPLAY NOT AT BOR
- SRB1 SX4 X1+B1
- NG X4,SRB2 IF FILE COUNT ALREADY AT MAXIMUM
- SX1 X1+B1 SKIP EXTRA RECORD
- SRB2 SKIPB Q,X1,R
- SA3 X2
- MX0 -6
- AX3 3
- BX1 -X0*X3
- SX1 X1-5
- SX6 SBOI
- ZR X1,SRB3 IF FILE IS AT BOI
- SX6 SBOR BEGINNING RECORD STATUS
- SRB3 RJ RNR READ NEW RECORD
- EQ SRBX RETURN
- SRF SPACE 4,15
- ** SRF - SKIP RECORDS FORWARD.
- *
- * *SRF* SKIPS RECORDS FORWARD.
- *
- * EXIT (X2) = 0, IF STATUS = EOI.
- * (B2) = 0, IF STATUS = EOI.
- * (X2) = FET ADDRESS OF QUEUED FILE, IF STATUS NOT EOI.
- *
- * USES X - 1, 2, 3, 4, 6.
- * A - 1, 3, 4, 6.
- * B - 2, 3.
- *
- * CALLS RNR.
- *
- * MACROS SKIPF.
- SRF SUBR ENTRY/EXIT
- SA3 STAT GET STATUS
- SX2 B0 DISPLAY WILL NOT BE REBUILT
- SB2 B0 NO ERROR
- SB3 X3-SEOI
- ZR B3,SRFX IF STATUS IS EOI
- SX6 QBUF SET *IN* = *OUT* = *FIRST* (EMPTY BUFFER)
- SA6 Q+2
- SA6 A6+B1
- SA1 SCNT GET SKIP COUNT
- BX3 X1
- LX3 59-17
- SA4 Q
- LX4 59-4
- NG X3,SRF1 IF SKIP COUNT = 777777B (* OPTION)
- PL X4,SRF1 IF NOT EOR/EOF/EOI IN FET
- SX1 X1-1 DECREMENT SKIP COUNT
- ZR X1,SRF2 IF SKIP COUNT = 0
- SRF1 SKIPF Q,X1,R SKIP RECORDS
- SRF2 SX6 SBOR BEGINNING OF RECORD STATUS
- RJ RNR READ NEW RECORD
- EQ SRFX RETURN
- SSP SPACE 4,10
- ** SSP - *SYSTEM SECTOR* FUNCTION PROCESSOR.
- *
- * *SSP* DISPLAYS THE SYSTEM SECTOR PORTION OF THE QUEUED FILE.
- *
- * EXIT (X2) = FET ADDRESS FOR SYSTEM SECTOR BUFFER.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 6, 7.
- * B - 3.
- SSP SUBR ENTRY/EXIT.
- SX6 SBUF
- SA6 S+3 SET *OUT* = *FIRST*
- SX7 SBUF+77B
- SA1 STAT GET FILE STATUS
- SA7 A6-B1 SET *IN*
- SB3 X1
- SX7 SSYS SET *SS* FILE STATUS
- BX6 X1 SET PREVIOUS FILE STATUS
- SA7 A1
- SX2 S
- LE B3,B1,SSPX IF *SS* OR *HELP* STATUS
- SA6 PSTT
- EQ SSPX RETURN
- TOG SPACE 4,15
- ** TOG - TOGGLE BACK TO FILE DISPLAY.
- *
- * *TOG* - TOGGLES THE DISPLAY TO THE PREVIOUS FILE DISPLAY
- * IF *HELP* OR *SYSTEM SECTOR* IS CURRENTLY BEING DISPLAYED.
- *
- * EXIT (B2) = 0 (NO ERROR).
- * (X2) = 0, IF FILE STATUS IS NOT *SS* OR *HELP*.
- * (X2) = FET ADDRESS OF QUEUED FILE IF FILE STATUS IS
- * *SS* OR *HELP*.
- *
- * USES X - 1, 2, 3, 6.
- * A - 1, 3, 6.
- * B - 2, 3.
- TOG SUBR ENTRY/EXIT
- SA1 STAT GET FILE STATUS
- SB3 X1
- SB2 B0 NO ERROR
- SA3 PSTT GET PREVIOUS STATUS
- SX2 B0 DISPLAY WILL NOT BE REBUILT
- BX6 X3 SET PREVIOUS FILE STATUS
- GT B3,B1,TOGX IF NOT *SS* OR *HELP* STATUS
- SX2 Q
- SA6 A1+
- EQ TOGX RETURN
- TITLE SUBROUTINES.
- BLD SPACE 4,15
- ** BLD - BUILD *L* DISPLAY DATA.
- *
- * *BLD* BUILDS THE *L* DISPLAY FOR QUEUED FILE OR
- * SYSTEM SECTOR DATA.
- *
- * ENTRY (X2) = FET ADDRESS.
- * (B2) = MESSAGE ADDRESS.
- *
- * USES X - 1, 2, 3, 4, 5, 6, 7.
- * A - 1, 2, 3, 4, 6, 7.
- * B - 2, 3, 4, 6.
- *
- * CALLS COI, FLB, FOD, RQF, TLD.
- *
- * MACROS MOVE.
- BLD1 RJ FOD FORMAT OCTAL DATA
- BLD2 BX5 X6 SAVE FILE STATUS
- SA2 BLDA GET MESSAGE ORDINAL
- SX2 TMLD+X2 SET MESSAGE ADDRESS
- MOVE ERML,X2,B6 SET MESSAGE IN MESSAGE LINE
- RJ COI CONVERT OPERATOR INPUT
- SX2 IBUF ECHO INPUT
- MOVE LCOMU,X2,B6+ERML
- SB6 B6+ERML+LCOMU RESET LWA OF WORKING BUFFER
- BX6 X5 RESTORE FILE STATUS
- SA1 STAT GET LAST FILE STATUS
- SB4 X6-SEOI
- SB3 X1+
- EQ B3,B1,BLD4 IF *SS* STATUS
- NG B4,BLD4 IF NOT EOR/EOF/EOI ENCOUNTERED
- LE B4,B1,BLD3 IF EOF/EOI ENCOUNTERED
- SB4 SBOR
- GT B3,B4,BLD3 IF NOT AT BOI/BOR
- SA1 ERIB
- NZ X1,BLD4 IF ENTIRE RECORD IN BUFFER
- BLD3 SA6 STAT SAVE FILE STATUS
- BLD4 SA1 STAT GET FILE STATUS
- SA1 TVST+X1 SET STATUS IN HEADER
- BX6 X1
- SA6 WBHR+5
- SX1 WBHR FWA OF DATA TO FORMAT
- SX6 B6-B1 LWA DATA TO FORMAT
- MX2 0 INDICATE *L* DISPLAY
- SX3 B1+ SET MODE FOR *FLB*
- SB2 LBUF FWA *L* DISPLAY BUFFER
- SB3 XCDT X - COORDINATE OF DISPLAY
- SB4 YCDT Y - COORDINATE OF DISPLAY
- SB6 LBUF+LBUFL LWA+1 *L* DISPLAY BUFFER
- RJ FLB FORMAT DATA FOR *L* DISPLAY
- SA2 FETA GET FET ADDRESS
- SA1 X2-2 GET PREVIOUS *IN*
- SA3 X2+2 GET CURRENT *IN*
- BX6 X1
- LX7 X3
- SA6 A3 SWITCH *IN* POINTERS
- SA7 A1
- SA1 A1+B1 GET PREVIOUS *OUT*
- SA3 A3+B1 GET CURRENT *OUT*
- BX6 X1
- LX7 X3
- SA6 A3 SWITCH *OUT* POINTERS
- SA7 A1
- BLD SUBR ENTRY/EXIT
- SX6 B2+ SAVE MESSAGE ORDINAL
- SA6 BLDA
- RJ RQF READ QUEUED FILE TO BUFFER AHEAD
- BX7 X2 SAVE FET ADDRESS
- SA3 X2+2 GET *IN*
- BX6 X3
- SA7 FETA
- SA4 A3+B1 GET *OUT*
- BX7 X4
- SA6 X2-2 SAVE PREVIOUS *IN*
- SA1 STAT GET FILE STATUS
- SA7 A6+B1 SAVE PREVIOUS *OUT*
- SB3 X1
- EQ B3,B1,BLD1 IF STATUS IS *SS*
- SA3 MODE
- NZ X3,BLD1 IF IN OCTAL MODE
- RJ TLD TRANSFER LINES OF DATA
- EQ BLD2 UPDATE FILE STATUS
- BLDA BSS 1 MESSAGE ORDINAL IN TABLE
- CMP SPACE 4,15
- ** CMP - COMMAND FUNCTION PROCESSOR.
- *
- * *CMP* PROCESSES EACH INPUT DIRECTIVE AND SETS SKIP COUNTS.
- *
- * EXIT (B5) = ADDRESS OF FUNCTION PROCESSOR, IF NO ERROR.
- * (B2) = 0, IF NO ERROR IN DIRECTIVE INPUT.
- * (B2) = ERROR MESSAGE ADDRESS, IF ERROR.
- *
- * USES X - 0, 1, 2, 3, 4, 5, 6.
- * A - 1, 3, 4, 6.
- * B - 2, 3, 4, 5, 6, 7.
- *
- * CALLS DXB, PGD, POP, USB.
- CMP6 SB5 B4+ SET PROCESSOR ADDRESS
- CMP SUBR ENTRY/EXIT
- SA1 STAT CHECK IF HELP STATUS
- SB2 SHLP
- SB4 X1+
- NE B2,B4,CMP1 IF NOT HELP STATUS
- * CHECK FOR PAGING COMMAND.
- SX1 CLDF POINTER TO FWA *L* DISPLAY
- SX2 CMPA PAGE TABLE
- MX0 6 MASK FOR PAGING CHARACTER
- SA3 IBUF COMMAND BUFFER
- BX3 X0*X3 GET PAGING CHARACTER
- SX4 B1+ INDICATE *L* DISPLAY
- RJ PGD PAGE *L* DISPLAY
- NZ X4,CMP1 IF ILLEGAL PAGING
- SB2 B0+ INDICATE NO ERROR
- SB5 HLP PAGE HELP DISPLAY
- EQ CMPX RETURN
- * CHECK FOR NON HELP PAGING COMMAND.
- CMP1 SB2 IBUF *L* DISPLAY INPUT DIRECTIVE
- SB3 B0+ SET DISPLAY CODE FOR *USB*
- RJ USB UNPACK STRING BUFFER
- RJ POP GET FIRST PARAMETER
- BX2 X1 SEPARATOR
- SB2 EUND *UNRECOGNIZABLE DIRECTIVE.*
- MX0 36 COMMAND MASK
- SA1 TCOM TABLE OF COMMANDS
- NZ X6,CMP2 IF PARAMETER - NOT PAGING COMMAND
- SB2 EVOH
- SX3 1R-
- IX3 X3-X2
- ZR X3,CMPX IF MINUS SIGN ENTERED
- SB2 EUND RESET ERROR MESSAGE
- SX3 1R+ CHECK FOR PAGING COMMAND
- IX3 X3-X2
- NZ X3,CMPX IF NOT *+*
- SB5 X1 SET PROCESSOR ADDRESS
- SB2 B0 INDICATE NO ERROR
- EQ CMPX RETURN
- * CHECK FOR REMAINING COMMANDS.
- CMP2 SA1 A1+B1 READ NEXT ENTRY IN COMMAND TABLE
- ZR X1,CMPX IF END OF TABLE (INCORRECT COMMAND)
- BX3 X1-X6
- BX3 X0*X3
- NZ X3,CMP2 IF MATCH NOT FOUND
- BX6 X1 SAVE TABLE ENTRY
- SA6 CMPB
- SB2 B0 NO ERROR
- SB4 X1 SAVE ADDRESS OF ROUTINE FROM TABLE
- LX1 0-18
- SX6 B1+ SAVE SKIP COUNT
- BX6 X6*X1
- SA6 SCNT
- ZR B6,CMP6 IF NO MORE PARAMETERS
- LT B5,CMP6 IF PARAMETER BUFFER NOT EXHAUSTED
- * CHECK FOR SECOND PARAMETER.
- SX5 B4+ SAVE ADDRESS OF ROUTINE FROM TABLE
- RJ POP GET SECOND PARAMETER
- SB5 X5 RESTORE ADDRESS OF ROUTINE FROM TABLE
- SA1 SCNT GET SKIP COUNT
- IX2 X6+X1
- ZR X2,CMPX IF NO SECOND PARAMETER AND NOT SKIP
- * PROCESS SECOND PARAMETER.
- SB2 EEPS *EXCESS PARAMETER ON DIRECTIVE.*
- NZ X1,CMP4 IF SKIP COMMAND
- NZ X6,CMPX IF SECOND PARAMETER AND NOT SKIP COMMAND
- CMP4 SB2 EDNA *DIRECTIVE NOT ALLOWED.*
- SA4 STAT
- SA3 MODE
- SX2 1R*
- SB4 X4
- LX2 -6
- LE B4,B1,CMPX IF *SS* OR *HELP* STATUS
- NZ X3,CMPX IF OCTAL MODE
- SB2 B0
- MX0 36 MASK FOR PARAMETER
- ZR X6,CMPX IF NO SECOND PARAMETER ON SKIP
- BX2 X6-X2
- BX2 X0*X2
- ZR X2,CMP5 IF ASTERISK IN SKIP COUNT
- SB6 B5 SAVE FUNCTION ROUTINE ADDRESS
- SB7 B1
- BX5 X6 SET WORD TO CONVERT
- RJ DXB CONVERT TO BINARY
- SB5 B6 RESTORE FUNCTION ROUTINE ADDRESS
- SB2 EISC *INCORRECT SKIP COUNT.*
- MX0 43
- NZ X4,CMPX IF ERROR
- ZR X6,CMPX IF ZERO SKIP COUNT
- BX3 X0*X6
- NZ X3,CMPX IF SKIP COUNT EXCEEDS 377777B
- SB2 B0 NO ERROR
- SA6 SCNT SAVE SKIP COUNT
- EQ CMPX EXIT
- CMP5 SA1 CMPB GET COMMAND TABLE ENTRY BACK
- LX1 59-19
- MX6 18
- LX6 18
- SA6 SCNT
- NG X1,CMPX IF SKIP DIRECTIVE ALLOWS ASTERISK
- SB2 EISC *INCORRECT SKIP COUNT.*
- EQ CMPX EXIT
- CMPA SPACE 4,5
- ** CMPA - PAGE TABLE.
- CMPA PAGT HLPA,HLMA,HLIA LEFT SCREEN PAGE 1
- PAGT HLPB,HLMB,HLIB LEFT SCREEN PAGE 2
- PAGT *
- PGD HERE REMOTE BLOCK FROM *COMCDCP*
- CMPB BSS 1 COMMAND TABLE ENTRY
- TCOM SPACE 4,10
- ** TCOM - TABLE OF COMMANDS.
- *
- *T, 36/ COMMAND,4/0,1/A,1/SK,18/ADDR
- *
- * (A) = 1, IF ASTERISK ALLOWED AS SECOND PARAMETER.
- *
- * (SK) = 1, IF SKIP COUNT ALLOWED.
- *
- * ADDR = ADDRESS OF ROUTINE FOR COMMAND.
- TCOM BSS 0
- VFD 36/1L+,6/0,18/ADV
- VFD 36/0LBACK,6/0,18/TOG
- VFD 36/0LBOI,6/0,18/BOI
- VFD 36/0LDAY,6/0,18/DAY
- VFD 36/0LDROP,6/0,18/DRP
- VFD 36/0LEND,6/0,18/END
- VFD 36/0LHELP,6/0,18/HLP
- VFD 36/0LLINE,6/0,18/LNE
- VFD 36/0LOCTAL,6/0,18/OCT
- VFD 36/0LSL,5/0,1/1,18/SLF
- VFD 36/0LSP,5/0,1/1,18/SPF
- VFD 36/0LBR,5/0,1/1,18/SRB
- VFD 36/0LSR,4/0,1/1,1/1,18/SRF
- VFD 36/0LSS,6/0,18/SSP
- VFD 36/1L*,6/0,18/TOG
- CON 0 END OF TABLE
- COI SPACE 4,20
- ** COI - CONVERT OPERATOR INPUT.
- *
- * *COI* CONVERTS THE OPERATOR *L* DISPLAY INPUT BY CHANGING
- * ALL ZERO BYTES TO BLANKS, AND INSURING THAT A ZERO BYTE
- * TERMINATOR EXISTS IN THE LAST WORD OF THE INPUT LINE.
- *
- * ENTRY IBUF = FWA INPUT BUFFER.
- *
- * EXIT (IBUF) = INPUT BUFFER, BLANK FILLED, ZERO BYTE
- * TERMINATED.
- *
- * USES X - 0, 1, 6.
- * A - 1, 6.
- * B - 2.
- *
- * CALLS ZTB.
- COI SUBR ENTRY/EXIT
- SB2 LCOMU-1 OPERATOR INPUT LINE LENGTH
- SA1 IBUF-1 FIRST WORD-1 OF OPERATOR INPUT
- COI1 SA1 A1+1 NEXT WORD TO CONVERT
- ZR B2,COIX IF ALL WORDS CONVERTED
- RJ ZTB CONVERT ALL ZERO BYTES TO BLANKS
- SA6 A1 REPLACE IN *IBUF*
- SB2 B2-B1 DECREMENT NUMBER OF WORDS TO CONVERT
- EQ COI1 CONVERT NEXT WORD
- DCM SPACE 4,10
- ** DCM - DETERMINE CHARACTER MODE.
- *
- * EXIT (B4) = 0 IF ASCII MODE.
- * (A0) = NUMBER OF WORDS TO READ PER LINE.
- *
- * USES X - 1, 3.
- * A - 0, 1, 3.
- * B - 4.
- DCM2 SB4 1 DISPLAY CODE
- SA0 DLSZ
- DCM SUBR
- SA1 STAT CHECK DISPLAY STATUS
- AX1 1
- ZR X1,DCM2 IF HELP OR SYSTEM SECTOR
- SA1 DFLG CHECK IF DISPLAYING DAYFILE
- ZR X1,DCM1 IF NO DAYFILE
- SA3 Q+6
- AX3 30
- IX1 X3-X1
- SX3 B1
- IX1 X1-X3
- PL X1,DCM2 IF DISPLAYING DAYFILE
- DCM1 SA1 SBUF+IOSS./5+SCLQ GET INTERNAL CHARACTERISTICS
- MX3 -3
- AX1 12
- BX1 -X3*X1
- SB4 X1-ASIC
- NZ B4,DCM2 IF NOT ASCII
- SA0 DLSZ*2
- EQ DCMX RETURN
- DLD SPACE 4,10
- ** DLD - DROP *L* DISPLAY.
- *
- * *DLD* DROPS THE *L* DISPLAY.
- *
- * ENTRY (B2) = *L* DISPLAY MESSAGE ORDINAL.
- *
- * USES X - 1, 2.
- * A - 1.
- *
- * CALLS BLD, HLP, OLD.
- *
- * MACROS DSDINP.
- DLD SUBR ENTRY/EXIT
- SA1 STAT CHECK FOR HELP STATUS
- SX2 SHLP
- BX2 X2-X1
- ZR X2,DLD1 IF HELP STATUS
- SX2 SSYS CHECK FOR SYSTEM SECTOR STATUS
- BX2 X2-X1
- ZR X2,DLD2 IF SYSTEM SECTOR STATUS
- SX2 Q SET FOR QUEUED FILE STATUS
- EQ DLD3 BUILD DISPLAY
- * BUILD DISPLAY FOR HELP STATUS.
- DLD1 RJ HLP BUILD HELP DISPLAY
- EQ DLD4 OUTPUT DISPLAY
- * BUILD ALL NON-HELP DISPLAYS.
- DLD2 SX2 S SET SYSTEM SECTOR FET
- DLD3 RJ BLD BUILD *L* DISPLAY
- DLD4 RJ OLD OUTPUT *L* DISPLAY
- DSDINP IPW,C
- EQ DLDX RETURN
- EFP SPACE 4,10
- ** EFP - EXECUTE FUNCTION PROCESSOR.
- *
- * ENTRY (B5) = SUBROUTINE ADDRESS.
- *
- * EXIT TO SUBROUTINE WITH RETURN ADDRESS SET.
- *
- * USES X - 2, 7.
- * A - 2, 7.
- EFP SUBR ENTRY
- SA2 EFPX SET RETURN ADDRESS
- BX7 X2
- SA7 B5
- JP B5+1 JUMP TO SUBROUTINE
- FOD SPACE 4,15
- ** FOD - FORMAT OCTAL DATA.
- *
- * *FOD* FORMATS OCTAL DATA AND STORES IT IN *WBUF*.
- *
- * EXIT (X6) = FILE STATUS.
- * (B6) = LWA+1 CONVERTED DATA.
- *
- * USES X - ALL.
- * A - 0, 1, 6, 7.
- * B - 2, 5, 6, 7.
- *
- * CALLS DCM, RSC, WOD, ZTB.
- *
- * MACROS MOVE, READW.
- FOD SUBR ENTRY/EXIT
- READW X2,OBUF,MLLB
- SX6 X1+2+SEOI
- SB5 OBUF
- NG X1,FOD1 IF EOF/EOI
- SX6 SEOR
- NZ X1,FOD1 IF EOR
- SX6 B0+
- FOD1 SA6 FODA SAVE FILE STATUS
- EQ B5,B6,FODX IF NO DATA IN WORKING BUFFER
- RJ DCM DETERMINE CHARACTER MODE
- SB2 12 SHIFT COUNT
- SA0 WBUF WORKING BUFFER
- FOD2 SA1 B5 GET NEXT WORD
- SB5 B5+B1
- RJ WOD CONVERT WORD TO OCTAL DISPLAY CODE
- MX0 24
- BX1 X0*X6 SET FIRST WORD IN BUFFER
- LX0 -24
- BX2 X0*X6
- LX0 -12
- BX3 X0*X7 SET THIRD WORD IN BUFFER
- LX2 -12
- BX1 X2+X1
- MX0 12
- BX4 X0*X7
- LX7 -36
- BX5 X0*X7
- LX0 12
- BX2 X0*X6 SET SECOND WORD IN BUFFER
- BX2 X2+X4
- LX2 36
- BX4 X0*X7
- BX2 X2+X4
- LX3 12
- BX3 X3+X5
- SX4 2R SET BLANKS IN EACH WORD
- BX7 X3+X4
- LX4 12
- BX2 X2+X4
- LX4 12
- BX6 X1+X4
- LX4 12
- SA6 A0
- SA0 A0+B1
- BX7 X7+X4
- LX4 12
- BX6 X2+X4
- SA6 A0
- SA7 A0+B1
- SA1 B5-B1
- SA0 A0+2
- RJ RSC REMOVE SPECIAL CHARACTERS
- BX1 X7 SET ENTRY TO *ZTB*
- RJ ZTB CONVERT ZERO BYTES TO BLANKS
- SA6 A0+
- SA0 A0+B1
- BX7 X7-X7 SET END OF LINE
- SA7 A0
- SA0 A0+B1
- NE B5,B6,FOD2 IF MORE WORDS TO TRANSFER
- SB7 OBUF
- SB5 MLLB MAXIMUM NUMBER OF LINES ON *L* DISPLAY
- SB7 B6-B7 NUMBER OF LINES OF DATA ON *L* DISPLAY
- SB5 B5-B7 NUMBER OF LINES TO BLANK PAD
- SB6 A0 RESET LWA+1 OF BUFFER
- MOVE B5,BLNS,B6 FILL BUFFER WITH BLANK LINES
- SB6 B6+B5 RESET LWA+1 OF *WBUF*
- SA1 FODA RESTORE FILE STATUS
- BX6 X1
- EQ FODX RETURN
- FODA BSS 1 FILE STATUS SAVE AREA
- ILD SPACE 4,15
- ** ILD - INPUT *L* DISPLAY.
- *
- * *ILD* WILL ROLLOUT UNTIL A COMMAND IS ENTERED VIA THE *L*
- * DISPLAY. IF *DSD* RETURNS AN ERROR CONDITION AFTER AN INPUT
- * COMMAND IS ISSUED, *ILD* WILL ISSUE A MESSAGE TO THE SYSTEM
- * DAYFILE AND TERMINATE.
- *
- * USES X - 0, 1, 2.
- * A - 1.
- * B - 3.
- *
- * MACROS DSDINP, ENDRUN, MESSAGE, ROLLOUT, ROUTE.
- ILD SUBR ENTRY/EXIT
- ILD1 DSDINP IPW REQUEST INPUT FROM OPERATOR
- SA1 IPW
- MX0 -12
- BX1 -X0*X1
- AX1 1 IGNORE COMPLETION BIT
- SX2 X1-CNCI
- SB3 X1
- ZR X2,ILD2 IF COMMAND NOT ENTERED
- LT B3,B1,ILDX IF NO SYSTEM ERROR
- ROUTE ROPB,R RETURN FILE TO QUEUE
- MESSAGE (=C* CANNOT ACCESS L-DISPLAY*),0,R
- ENDRUN
- ILD2 ROLLOUT ROLB WAIT FOR *L* DISPLAY INPUT
- EQ ILD1 CHECK *L* DISPLAY INPUT
- OLD SPACE 4,10
- ** OLD - OUTPUT *L* DISPLAY DATA.
- *
- * MACROS DSDOUT.
- OLD SUBR ENTRY/EXIT
- DSDOUT LFWA
- EQ OLDX RETURN
- RNR SPACE 4,15
- ** RNR - READ NEW RECORD.
- *
- * *RNR* READS A NEW RECORD INTO THE QUEUED FILE BUFFER.
- *
- * ENTRY (X6) = STATUS (*BOR* OR BOI).
- *
- * EXIT (X2) = FET ADDRESS OF QUEUED FILE.
- *
- * USES X - 1, 6.
- * A - 1, 6.
- *
- * MACROS READ.
- RNR SUBR ENTRY/EXIT
- SA6 STAT SET FILE STATUS
- SX6 QBUF RESET *IN* AND *OUT* FOR EMPTY BUFFER
- SA6 Q+2
- SA6 Q+3
- READ Q,R
- SA1 Q CHECK FOR EOR/EOF/EOI
- BX6 X6-X6 INDICATE RECORD EXCEEDS BUFFER
- LX1 59-4
- SA6 ERIB
- PL X1,RNRX IF NOT EOR/EOF/EOI
- LX1 59-3-59+4
- NG X1,RNRX IF EOF/EOI
- SX6 B1 INDICATE ENTIRE DATA RECORD WITHIN BUFFER
- SA6 A6+
- EQ RNRX RETURN
- RQF SPACE 4,10
- ** RQF - READ QUEUED FILE.
- *
- * *RQF* READS THE QUEUED FILE INTO THE CIO BUFFER.
- *
- * ENTRY (X2) = FET ADDRESS OF FILE.
- *
- * USES X - 1, 3, 4, 5.
- * A - 1, 3, 4.
- *
- * MACROS READ.
- RQF SUBR ENTRY/EXIT
- SA4 X2
- LX4 59-4
- NG X4,RQFX IF EOR/EOF/EOI
- SA1 A4+1 GET *FIRST*
- SA3 A1+1 GET *IN*
- SA4 A3+B1 GET *OUT*
- IX5 X3-X4 NUMBER OF WORDS IN BUFFER (*IN*-*OUT*)
- PL X5,RQF1 IF *IN* .GE. *OUT*
- SA3 A4+1 GET *LIMIT*
- IX3 X3-X1 *LIMIT* - *FIRST*
- IX5 X3+X5 NUMBER OF WORDS IN BUFFER
- RQF1 SX5 X5-LBUFL *L* DISPLAY BUFFER LENGTH
- PL X5,RQFX IF NUMBER OF WORDS .GE. *LBUFL*
- READ X2,R
- EQ RQFX RETURN
- RPV SPACE 4,10
- ** RPV - REPRIEVE PROCESSOR.
- *
- * *RPV* DISPLAYS *SYSTEM ABORT.* MESSAGE AND CLEARS *L*
- * DISPLAY.
- *
- * USES B - 2.
- *
- * CALLS DLD.
- *
- * MACROS REPRIEVE, ROUTE.
- RPV BSS 0 ENTRY
- SB2 EABT DISPLAY *SYSTEM ABORT.* MESSAGE
- RJ DLD DROP *L* DISPLAY
- ROUTE ROPB,R RETURN FILE TO QUEUE
- REPRIEVE RPB,RESET,0 RESET ERROR FLAG
- RSC SPACE 4,10
- ** RSC - REMOVE SPECIAL CHARACTERS.
- *
- * *RSC* REMOVES SPECIAL CHARACTERS 60B THROUGH 77B FROM
- * DISPLAY CODE.
- *
- * ENTRY (X1) = DISPLAY CODE WORD.
- * (B4) = 0 IF ASCII MODE.
- * (B2) = SHIFT COUNT FOR CONVERTED ASCII CHARACTERS.
- *
- * EXIT (X4) = LAST BYTE IF ASCII MODE.
- * (X7) = CONVERTED DISPLAY CODE WORD.
- *
- * USES X - 0, 1, 2, 3, 4, 7.
- * A - 1, 4.
- * B - 3.
- RSC1 BX7 X7-X7
- MX0 5
- MX3 -12
- RSC2 LX1 12
- BX4 -X3*X1 GET CHARACTER
- ZR X4,RSC6 IF ZERO BYTE
- SB3 X4-173B
- PL B3,RSC3 IF SPECIAL CHARACTER
- SB3 B3-140B+173B
- GT B3,RSC5 IF LOWER CASE
- SB3 B3-133B+140B
- PL B3,RSC3 IF SPECIAL CHARACTER
- SB3 B3-100B+133B
- GT B3,RSC5 IF UPPER CASE
- SX4 X4-47B
- PL X4,RSC4 IF DISPLAYABLE SPECIAL CHARACTER
- RSC3 SX4 B0+
- RSC4 MX2 -3
- BX2 -X2*X4 CHARACTER NUMBER 0..7
- AX4 3 WORD NUMBER
- LX2 1 CREATE SHIFT COUNT
- SB3 X2
- LX2 1
- SA4 X4+RSCC GET WORD
- SB3 B3+X2
- LX4 B3
- SB3 X4
- RSC5 SX4 B3
- MX2 -6
- BX4 -X2*X4 GET REPLACEMENT CHARACTER
- BX7 X7+X4 INSERT NEW CHARACTER
- RSC6 LX0 1
- LX7 B2
- MX2 -12 RESET MASK
- NG X0,RSC2 IF MORE TO PROCESS
- LX7 -B2
- RSC SUBR ENTRY/EXIT
- ZR B4,RSC1 IF ASCII MODE
- SA4 RSCA 40404040404040404040
- BX3 X4*X1
- BX7 X1 RETURN ORIGINAL DISPLAY CODE WORD
- LX1 1
- BX4 X4*X1
- BX4 X4*X3
- BX3 X4
- ZR X4,RSCX IF NO SPECIAL CHARACTERS
- * BUILD CHARACTER MASK.
- LX3 -1
- BX4 X3+X4
- LX3 -1
- BX4 X3+X4
- BX3 X4
- LX4 -3
- BX3 X4+X3 FINAL CHARACTER MASK
- SA1 RSCB
- BX1 X3*X1 SAVE BLANK IN SPECIAL CHARACTER POSITIONS
- BX4 -X3*X7 CLEAR OUT SPECIAL CHARACTERS
- BX7 X4+X1 STORE BLANKS IN DISPLAY CODE WORD
- EQ RSCX RETURN
- RSCA DATA 40404040404040404040B
- RSCB DATA 10H
- RSCC DATA 10H()*+,-.
- DATA 10H0123456 /
- DATA 10H89 = 7
- DATA 10H
- SEM SPACE 4,15
- ** SEM - SET ERROR MESSAGE.
- *
- * *SEM* FORMATS THE APPROPRIATE SCREEN WITH THE ERROR MESSAGE
- * SET INTO THE DISPLAY.
- *
- * ENTRY (B2) = ERROR MESSAGE ORDINAL.
- *
- * EXIT *LBUF* RESET WITH ERROR MESSAGE.
- *
- * USES X - 1, 2.
- * A - 1.
- *
- * CALLS BLD, HLP.
- SEM2 SX2 S SET SYSTEM SECTOR FET
- SEM3 RJ BLD BUILD *L* DISPLAY
- SEM SUBR ENTRY/EXIT
- SA1 STAT CHECK FOR HELP STATUS
- SX2 SHLP
- BX2 X2-X1
- NZ X2,SEM1 IF NOT HELP STATUS
- RJ HLP FORMAT HELP SCREEN
- EQ SEMX RETURN
- SEM1 SX2 SSYS CHECK FOR SYSTEM SECTOR STATUS
- BX1 X2-X1
- ZR X1,SEM2 IF SYSTEM SECTOR
- SX2 Q SET QUEUED FILE FET
- EQ SEM3 FORMAT SCREEN
- TLD SPACE 4,20
- ** TLD - TRANSFER LINES OF DATA.
- *
- * *TLD* TRANSFERS LINES OF DATA TO THE *L* DISPLAY WORKING
- * BUFFER.
- *
- * ENTRY (X2) = FET ADDRESS OF FILE.
- *
- * EXIT (X6) = STATUS, IF EOR/EOF/EOI ENCOUNTERED.
- * (X6) = 0, IF NOT EOR/EOF/EOI.
- * (B6) = LWA+1 OF DATA IN WBUF.
- *
- * USES X - 0, 1, 3, 4, 5, 6, 7.
- * A - 1, 3, 6, 7.
- * B - 2, 5, 6, 7.
- *
- * CALLS DCM, RSC.
- *
- * MACROS MOVE, READC.
- TLD7 SB7 B5+
- SB2 6
- TLD8 EQ B5,B6,TLD11 IF ALL WORDS CONVERTED
- SA1 B5+ CONVERT FIRST 5 CHARACTERS
- RJ RSC REMOVE SPECIAL CHARACTERS
- LX7 30
- SB5 B5+B1
- ZR X4,TLD9 IF END OF LINE
- EQ B5,B6,TLD10 IF END OF BUFFER
- BX5 X7 SAVE FIRST 5 CHARACTERS
- SA1 B5 CONVERT SECOND 5 CHARACTERS
- RJ RSC REMOVE SPECIAL CHARACTERS
- SB5 B5+1
- BX7 X7+X5
- NZ X4,TLD9 IF NOT END OF LINE
- MX5 -12
- BX5 -X5*X7
- ZR X5,TLD9 IF 12-ZERO BIT LINE TERMINATOR
- SA7 B7
- SB7 B7+B1
- SX7 2R
- LX7 59-11
- TLD9 SA7 B7
- SB7 B7+B1
- EQ TLD8 LOOP UNTIL ALL WORDS CONVERTED
- TLD10 SA7 B7+
- TLD11 SB6 B7+ LWA+1 OF DATA TO DISPLAY
- TLD SUBR ENTRY/EXIT
- SB6 WBUF
- SX0 B6 SAVE FWA OF WORKING BUFFER
- SX5 B0 INITIALIZE LINE COUNTER
- RJ DCM DETERMINE WORD COUNT PER LINE
- TLD1 READC X2,B6,A0
- SX6 X1+SEOI+2 EOF OR EOI
- NG X1,TLD4 IF EOF OR EOI
- SX6 SEOR
- BX3 X1-X0
- ZR X3,TLD4 IF EOR WITHOUT DATA
- NZ X1,TLD2 IF TRANSFER NOT COMPLETE
- BX6 X4 RESET (LWA) OF DATA
- SA6 B6-B1 RESTORE DATA BEFORE END OF LINE
- TLD2 SA3 B6-B1
- MX4 -12
- NZ X3,TLD3 IF NOT ZERO WORD
- SX6 2R SET NONZERO WORD
- LX6 -12
- SA6 A3
- TLD3 BX3 -X4*X3
- SX0 B6+ LWA+1
- SX5 X5+B1 INCREMENT LINE COUNTER
- SX6 B0+ CLEAR EOR/EOF/EOI
- SX3 X5-MLLD
- ZR X3,TLD5 IF MAXIMUM NUMBER OF LINES IN BUFFER
- SX3 X0-WBUF-WBUFL
- SX4 A0
- IX3 X3+X4
- NG X3,TLD1 IF BUFFER NOT FULL
- * BLANK FILL UNUSED LINES IN *L* DISPLAY BUFFER.
- TLD4 SX3 MLLD MAXIMUM NUMBER OF LINES ON *L* DISPLAY
- IX3 X3-X5 NUMBER OF LINES NOT FILLED WITH DATA
- ZR X3,TLD5 IF ALL LINES CONTAIN DATA
- SB7 B6 ADDRESS TO MOVE BLANK LINES
- SB6 B6+X3 RESET LWA+1 OF BUFFER
- BX5 X6 SAVE EXIT CONDITION
- MOVE X3,BLNS,B7 FILL BUFFER WITH BLANK LINES
- BX6 X5 RESTORE EXIT CONDITION
- * REMOVE ALL SPECIAL CHARACTERS FROM *L* DISPLAY BUFFER.
- TLD5 SB5 WBUF
- RJ DCM DETERMINE CHARACTER MODE
- ZR B4,TLD7 IF ASCII MODE
- TLD6 EQ B5,B6,TLDX IF ALL WORDS CONVERTED
- SA1 B5+ CONVERT NEXT WORD
- RJ RSC REMOVE SPECIAL CHARACTERS
- SA7 B5
- SB5 B5+B1
- EQ TLD6 LOOP UNTIL ALL WORDS CONVERTED
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCCIO
- *CALL COMCCOD
- *CALL COMCCPM
- *CALL COMCDXB
- *CALL COMCFLD
- *CALL COMCQFM
- *CALL COMCMVE
- *CALL COMCPOP
- *CALL COMCRDC
- *CALL COMCRDW
- *CALL COMCSFN
- *CALL COMCSNM
- *CALL COMCSYS
- *CALL COMCUSB
- *CALL COMCWTC
- *CALL COMCWTO
- *CALL COMCWTW
- *CALL COMCWOD
- *CALL COMCZTB
- TITLE BUFFER AREA.
- USE BUFFERS
- ** BUFFER DEFINITIONS.
- IPW BSS 0 INPUT BUFFER FOR *L* DISPLAY
- VFD 12/6,1/0,1/0,46/0
- IBUF BSS LCOMU INPUT BUFFER
- LFWA BSS 0 FWA OF *L* DISPLAY BUFFER
- VFD 12/LDSY,1/0,1/0,46/0
- LBUF BSS 0 FWA TO MOVE DATA
- WBHR EQU LBUF+LBUFL WORKING BUFFER HEADER AREA
- WBUF EQU WBHR+LBHRL WORKING BUFFER
- OBUF EQU WBUF+WBUFL OCTAL DISPLAY BUILD BUFFER
- QBUF EQU OBUF+MLLB QUEUED FILE BUFFER
- SBUF EQU QBUF+QBUFL SYSTEM SECTOR BUFFER
- RFL= EQU SBUF+SBUFL
- TITLE PRESET.
- PRS SPACE 4,15
- ** PRS - PRESET ARGUMENT PROCESSING.
- *
- * *PRS* ANALYZES THE COMMAND. THE SPECIFIED QUEUED FILE
- * IS ATTACHED. AN INITIAL READ ON THE QUEUED FILE IS
- * PERFORMED. THE SYSTEM SECTOR IS READ.
- *
- * EXIT (B5) = ADDRESS OF *HELP* ROUTINE.
- * (JSN) SET IN FETS AND ROUTE PARAMETER BLOCK.
- * (DFLG) = RANDOM ADDRESS OF DAYFILE.
- * = 0, IF DAYFILE DOES NOT EXIST.
- * JSN AND *QFT* ORDINAL OF FILE SET INTO *L* DISPLAY
- * HEADER.
- *
- * ERROR TO *ERR* IF A FATAL ERROR CONDITION IS DETECTED.
- PRS SUBR ENTRY/EXIT
- SA1 JOPR GET JOB ORIGIN TYPE
- SB1 1
- MX0 -6
- LX1 0-24
- SX5 ERIU * USER ACCESS NOT VALID.*
- BX1 -X0*X1
- SX1 X1-SYOT
- MX4 24
- NZ X1,ERR IF JOB NOT SYSTEM ORIGIN
- GETACT PRSB CHECK LONG-TERM ACTIVITY FLAG
- SA1 PRSB
- LX1 59-47
- PL X1,ERR IF *L* DISPLAY NOT ACTIVE ON THIS JOB
- * CHECK JSN.
- SA1 ACTR
- SA3 ARGR
- BX6 X4*X3
- SB2 X1
- SX5 ERAR * ARGUMENT ERROR.*
- NE B2,B1,ERR IF NO ARGUMENTS OR TOO MANY
- BX3 X0*X3
- BX1 -X4*X3
- SX5 ERIJ * INCORRECT JSN.*
- NZ X1,ERR IF GREATER THAN 4 CHARACTERS
- LX0 36-0 CHECK FOR 3 CHARACTER JSN
- BX2 -X0*X3
- NZ X2,PRS1 IF NOT 3 CHARACTER JSN
- SX2 1R SPACE-FILL JSN
- LX2 -24
- BX6 X2+X6
- PRS1 LX0 6
- BX2 -X0*X3
- ZR X2,ERR IF JSN .LT. 3 CHARACTERS
- SA1 QACS+2 SET JSN IN *QAC* PARAMETER BLOCK
- BX7 X1+X6
- SA7 A1
- SA6 PRSA SET JSN
- SA6 ROPB SET JSN IN *ROUTE* PARAMETER BLOCK
- * SEARCH *QFT* FOR FILE.
- SA3 TQTG-1
- PRS2 ACQUIRE QACPB,R ATTACH THE QUEUED FILE
- SA1 QACPB
- MX0 -9 SAVE FUNCTION FOR *QAC* CALL
- LX0 B1
- BX6 -X0*X1
- MX2 -8 CHECK FOR ERROR
- LX1 0-11
- BX1 -X2*X1
- ZR X1,PRS4 IF NO ERROR
- SA6 A1
- SA3 A3+B1 GET QUEUE TYPE FROM TABLE
- SB2 B1+
- ZR X3,PRS3 IF FILE NOT IN *QFT*
- SA4 QACS+3 SET QUEUE TYPE IN *QAC* PARAMETER BLOCK
- MX0 12
- BX6 -X0*X4
- BX6 X3+X6
- SA6 A4
- EQ PRS2 SEARCH *QFT* FOR FILE
- PRS3 SA1 PRSA
- SB2 1R$
- SB5 ERNJ * JSN XXXX NOT FOUND.*
- RJ SNM SET JSN IN MESSAGE
- SX5 ERNJ
- EQ ERR ISSUE ERROR MESSAGE AND ABORT
- PRS4 REPRIEVE RPB,SET,277B SET *REPRIEVE* PROCESSING
- SA1 PRSA GET JSN
- SX6 3 SET JSN AS FILE NAME IN FETS
- BX6 X1+X6
- SA6 Q SET JSN IN QUEUED FILE FET
- SA6 S SET JSN IN SYSTEM SECTOR FET
- SX7 B1+ SET RANDOM READ IN FET TO BOI
- SA7 Q+6
- SX6 SHLP
- RJ RNR READ QUEUED FILE INTO BUFFER
- SA1 QACF SAVE DAYFILE ADDRESS
- MX2 -30
- LX1 29-59
- BX6 -X2*X1
- SA6 DFLG
- QCALL QRSF,S READ SYSTEM SECTOR
- SA2 PRSA SET EOR STATUS IN SYSTEM SECTOR FET
- SX6 23B
- BX6 X2+X6
- SA6 S
- * SET UP HEADER.
- SA1 PRSA GET JSN
- SB2 1R$
- SB5 LBHR
- RJ SNM SET JSN INTO HEADER
- SA1 QACPB+4
- MX0 -12 CONVERT *QFT* ORDINAL
- LX1 0-36
- BX1 -X0*X1
- SX1 X1+10000B
- MX0 24
- RJ COD CONVERT TO OCTAL DISPLAY
- LX4 6
- BX1 X0*X4
- SB2 1R+
- SB5 LBHR
- RJ SNM SET *QFT* ORDINAL INTO HEADER
- SA1 SBUF+IOSS./5+SCLQ GET INTERNAL CHARACTERISTICS
- MX3 -3
- AX1 12
- BX1 -X3*X1
- SA1 PRSC+X1
- SB2 1R-
- SB5 LBHR
- RJ SNM SET *IC* INTO HEADER
- * SET BUFFER HEADER.
- MOVE LBHRL,LBHR,WBHR SET WORKING BUFFER
- SB5 HLP *HELP* FUNCTION PROCESSOR
- SB2 B0+ INDICATE NO ERROR
- EQ PRSX RETURN
- PRSA CON 0 JSN
- PRSB CON 0 JOB ACTIVITY
- PRSC BSS 0 INTERNAL CHARACTERISTICS
- LOC 0
- DCIC DATA 2LDC DISPLAY CODE
- ASIC DATA 2LAS ASCII
- BNIC DATA 2LBN BINARY
- A6IC DATA 2LA6 6/12 ASCII
- LOC *O
- ERR SPACE 4,10
- ** ERR - ERROR PROCESSOR.
- *
- * *ERR* ABORTS AFTER ISSUING THE SPECIFIED MESSAGE.
- *
- * ENTRY (X5) = FWA OF ERROR MESSAGE.
- *
- * MACROS ABORT, MESSAGE.
- ERR BSS 0 ENTRY
- MESSAGE X5,0,R ISSUE ERROR MESSAGE
- ABORT
- SPACE 4,10
- ** ERROR MESSAGES TO DAYFILE.
- ERAR DATA C* ARGUMENT ERROR.*
- ERIJ DATA C* INCORRECT JSN.*
- ERIU DATA C* USER ACCESS NOT VALID.*
- ERNJ DATA C* JSN $$$$ NOT FOUND.*
- SPACE 4,10
- ** TQTG - TABLE OF QUEUE TYPES FOR *GET* FUNCTION.
- *
- *T, 12/ *QUEUE TYPE*,48/ 0.
- *
- * BITS 59-48 IN WORD 8 IN THE SELECTION CRITERIA
- * PORTION OF THE *QAC* PARAMETER BLOCK WILL BE SET
- * TO QUEUE TYPE.
- TQTG BSS 0
- VFD 12/PRQQ,48/0 PRINT FILES
- VFD 12/WTQQ,48/0 WAIT FILES
- VFD 12/PHQQ,48/0 PUNCH FILES
- VFD 12/PLQQ,48/0 PLOT FILES
- CON 0 END OF TABLE
- ERRNG QBUF-* QBUF AND SBUF CANNOT OVERLAY PRESET
- END
cdc/nos2.source/opl871/qdsplay.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator