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