cdc:nos2.source:opl871:reseq
Table of Contents
RESEQ
Table Of Contents
- [00010] RESEQ - TIME SHARING RESEQUENCE ROUTINE.
- [00012] TIME SHARING RESEQUENCE ROUTINE.
- [00057] WORKING STORAGE AND ASSEMBLY CONSTANTS.
- [00096] SUBROUTINES
- [00097] RES - RESEQUENCE.
- [00263] ADL - ADD LINE NUMBER
- [00297] CVD - CONVERT DISPLAY CODE NUMBER TO OCTAL.
- [00329] ITM - ISSUE TRUNCATION MESSAGE.
- [00357] PLB - PACK LINE INTO A BUFFER.
- [00407] COMMON DECKS, LITERALS AND BUFFERS
- [00444] BASIC INTERNAL LINE NUMBER RESEQUENCE ROUTINES
- [00447] RBF - RESEQUENCE BASIC FILE.
- [00541] PRE-RESEQUENCE PROCESSOR
- [00542] PRE - PRE-RESEQUENCE PROCESSOR.
Source Code
- RESEQ.txt
- IDENT RESEQ,FWA,RESEQ
- ABS
- SST
- SYSCOM B1
- ENTRY RESEQ
- ENTRY RFL=
- SPACE 4
- *COMMENT RESEQ - TIME SHARING RESEQUENCE ROUTINE.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE RESEQ - TIME SHARING RESEQUENCE ROUTINE.
- SPACE 4
- *** RESEQ - TIME SHARING RESEQUENCE ROUTINE.
- *
- * D.A. HIVELEY 71/02/14.
- SPACE 4
- *** RESEQ IS USED TO RESEQUENCE SOURCE FILES WHICH HAVE LEADING
- * SEQUENCE NUMBERS OR TO ADD SEQUENCE NUMBERS TO AN
- * UNSEQUENCED FILE. THIS MAINLY INCLUDES FORTRAN AND BASIC
- * SOURCE CODE. THE FORMAT OF EACH INDIVIDUAL SOURCE LINE
- * MAINTAINED. FOR BASIC PROGRAMS AN INTERNAL CHANGE OF LINE
- * NUMBERS MUST BE MADE. FOR NON-BASIC PROGRAMS, ALL
- * SUBROUTINES REQUIRED BY BASIC ONLY ARE OVERLAYED WITH
- * BUFFERS. IF THE FILE TYPE IS DECLARED *T*, THEN THE FILE
- * DATA IS NOT INSPECTED AT ALL. FIVE DIGIT SEQUENCE NUMBERS
- * PLUS A BLANK ARE MERELY ADDED TO THE BEGINNING OF EACH LINE.
- * DIRECT ACCESS FILES MAY BE RESEQUENCED.
- *** THE FORMAT COMMAND.
- *
- * RESEQ(PFILE,TYPE,SLINO,INCR)
- *
- * PFILE = PRIMARY FILE NAME.
- * TYPE = B - BASIC.
- * = F - FORTRAN.
- * = T - TEXT.
- * = OTHER.
- * SLINO = STARTING LINE NUMBER.
- * INCR = INCREMENT.
- *** DAYFILE MESSAGES.
- *
- * *LINE NUMBER LIMIT EXCEEDED* - IF LINE NUMBER ENCOUNTERED
- * OR REQUIRED GREATER THAN 99999.
- * *RESEQ COMMAND ERROR.* - NO PARAMETERS WERE GIVEN OR A SPECIAL
- * CHARACTER WAS USED AS A PARAMETER ON THE COMMAND.
- * * RESEQ ERRORS.* - IF UNABLE TO FIND LINE NUMBERS,
- * ALL ERRORS WRITTEN TO FILE OUTPUT.
- * *RESEQ NUMERIC PARAM ERROR.* - ROUTINE *CVD* TRIED TO
- * CONVERT A NON-NUMERIC PARAMETER.
- * * INCORRECT WRITE ON READ ONLY FILE.* (CIO ERROR 03) = DIRECT
- * ACCESS INPUT FILE WAS NOT ATTACHED IN WRITE MODE.
- *CALL COMCMAC
- TITLE WORKING STORAGE AND ASSEMBLY CONSTANTS.
- ORG 111B
- FWA BSS 0
- SPACE 4
- **** ASSEMBLY CONSTANTS.
- FETL EQU 10 FET LENGTH
- LIMIT EQU 99999 LINE NUMBER LIMIT FOR RESEQUENCE
- MNCL EQU 160 MAXIMUM NUMBER OF CHARACTERS IN A LINE
- MWBL EQU MNCL/5 MAXIMUM NUMBER OF WORDS IN A LINE
- NUMD EQU 5 MAXIMUM NUMBER OF DIGITS IN A LINE NUMBER
- OBUFL EQU 101B OUTPUT BUFFER LENGTH
- USBA$ SET 1 ENABLES UNPACKING OF 6/12 CHARACTERS
- USBL$ SET 1 SPECIFIES STRING BUFFER IN USER PROGRAM
- SPACE 4
- ** WORKING STORAGE.
- CSET CON 0 CHARACTER SET (0 = NORMAL, 1 = 6/12 ASCII)
- DAF CON 0 FILE TYPE (0 = DIRECT ACCESS)
- FLDL CON 0 FIELD LENGTH
- INCR CON 10 DEFAULT LINE NUMBER INCREMENT
- LNTE CON 0 LWA+1 OF LINE NUMBER TABLE
- LNTS CON 0 FWA OF LINE NUMBER TABLE
- LNUM CON 100 DEFAULT INITIAL LINE NUMBER
- SYST CON 2 FILE TYPE (-1 = FORTRAN)
- ( 0 = BASIC )
- ( 1 = TEXT )
- ( 2 = OTHER )
- SPACE 4
- ** FET DEFINITIONS.
- O BSS 0
- OUTPUT FILEB OBUF,OBUFL,EPR,FET=FETL OUTPUT FET
- SCR FILEB 2,1,FET=FETL SCRATCH FILE FET
- SCR1 FILEB 2,1,FET=FETL SCRATCH FILE FET
- INP FILEB 2,1,FET=FETL INPUT FILE FET
- TITLE SUBROUTINES
- ** RES - RESEQUENCE.
- *
- * USES X - ALL.
- * A - ALL.
- * B - 2, 3, 4, 5, 6.
- *
- * CALLS ADL, CDD, CVD, PLB, PRE, RBF, STF, USB.
- *
- * MACROS ABORT, ENDRUN, MEMORY, MESSAGE, READC, READEI, READO,
- * READW, RENAME, RETURN, REWIND, WRITEC, WRITER, WRITEW.
- RESEQ BSS 0 ENTRY
- RJ PRE PRESET
- REWIND INP
- READEI X2
- RES1 SX6 B0+
- SA6 RESA CLEAR TRUNCATED LINE FLAG
- READC INP,WBUF,MWBL+1
- NZ X1,RES16 IF EOI REACHED
- BX6 X4
- MX0 -12
- RES2 BX6 -X0*X6
- ZR X6,RES3 IF EOL ENCOUNTERED
- READO X2
- EQ RES2 CHECK FOR EOL
- RES3 SB2 WBUF UNPACK LINE INTO STRING BUFFER
- SB6 MNCL+1
- SA1 CSET GET CHARACTER SET
- SB3 X1+
- RJ USB
- SA2 SYST
- SB6 SBUF
- SB5 NUMD
- SX2 X2-1
- ZR X2,RES6 IF TEXT
- SX2 B0+
- SB4 60
- RES4 SA3 B6
- GT B6,B7,RES5 IF END OF LINE
- SX4 X3-1R0
- SX5 X3-1R+
- NG X4,RES5 IF LETTER
- PL X5,RES5 IF SPECIAL CHARACTER
- SB5 B5-B1
- LX2 6
- SB4 B4-6
- IX2 X2+X3
- SB6 B6+B1
- NZ B5,RES4 IF NOT *NUMD* DIGITS
- RES5 LX6 X2,B4
- SA6 RESB OLD LINE NUMBER
- SX6 B5-NUMD
- NZ X6,RES7 IF LINE NUMBER PRESENT
- SA4 SYST
- SX4 X4+1
- ZR X4,RES7 IF FORTRAN
- RES6 SB6 B6-B1
- SX6 1R
- SA6 B6 INSERT BLANK
- RES7 SA1 LNUM
- RJ CDD CONVERT LINE NUMBER TO DISPLAY CODE
- BX2 X6
- RJ ADL GO ADD NEW LINE NUMBER TO LINE
- SB4 B7-B6
- SB4 B4+B1
- SB3 MNCL
- LE B4,B3,RES8 IF NO TRUNCATION
- SB4 B3
- SX7 B1
- SA7 RESA
- RES8 SA1 WBUF PACK LINE INTO WORKING BUFFER
- SA2 B6+
- RJ PLB
- SA2 INCR
- SX3 LIMIT
- SA1 LNUM
- IX6 X1+X2
- IX3 X3-X1
- NG X3,RES12 IF LIMIT EXCEEDED
- SA6 LNUM
- SA2 SYST
- NZ X2,RES9 IF NOT BASIC
- SA2 RESB
- RJ CVD
- NG X6,RES23 IF CONVERSION ERROR
- LX6 24-0 SET UP *LNT* ENTRY
- LX1 42-0
- BX6 X1+X6 MERGE OLD NUMBER WITH NEW NUMBER
- SA3 LNTE
- SX7 X3+B1
- SA5 FLDL
- SA6 X3+
- SA7 A3
- IX7 X5-X7
- PL X7,RES9 IF NO TABLE OVERFLOW
- SX7 X5+2000B
- SA7 A5+
- MEMORY CM,,R,X7
- RES9 WRITEC SCR1,WBUF
- SA1 RESA
- ZR X1,RES1 IF LINE WAS NOT TRUNCATED
- RJ ITM ISSUE TRUNCATION MESSAGE
- EQ RES1 PROCESS NEXT LINE
- RES12 SX2 O SET ADDRESS OF FET
- RJ STF CHECK IF OUTPUT ASSIGNED TO TERMINAL
- NZ X6,RES13 IF NOT TELEX ORIGIN
- WRITEC O,(=C*LINE NUMBER LIMIT EXCEEDED.*)
- EQ RES23 SKIP ISSUING THE DAYFILE MESSAGE
- RES13 MESSAGE (=C*LINE NUMBER LIMIT EXCEEDED.*)
- EQ RES23 COMPLETE ERROR TERMINATION
- RES16 REWIND INP,R
- SA1 SYST
- NZ X1,RES17 IF NOT BASIC
- RJ RBF RESEQUENCE BASIC FILE
- RETURN SCR1
- SA1 SCR
- EQ RES18 FINISH FILE PROCESSING
- RES17 SA1 SCR1
- RES18 SA0 A1
- SX0 77B
- BX2 X0*X1
- SX2 X2-3
- NZ X2,RES19 IF FILE USED
- SA2 ARGR
- SX3 B1
- MX0 42 MASK OFF NAME
- BX2 X0*X2
- IX6 X2+X3
- SA6 A1
- WRITER A0,R
- EQ RES22 COMPLETE NORMAL TERMINATION
- RES19 WRITER A0
- REWIND X2,R
- SA3 DAF
- ZR X3,RES20 IF DIRECT ACCESS INPUT FILE
- RENAME A0,ARGR
- EQ RES22 COMPLETE NORMAL TERMINATION
- RES20 READEI X2
- RES21 READW A0,SBUF,MNCL
- BX0 X1
- SX4 B6-SBUF
- WRITEW INP,SBUF,X4
- PL X0,RES21 IF NOT EOF, COMPLETE COPY
- WRITER X2
- REWIND X2,R
- RES22 WRITER O NORMAL TERMINATION
- ENDRUN
- RES23 REWIND INP
- RETURN SCR
- RETURN SCR1
- MESSAGE (=C* RESEQ ERRORS.*)
- WRITER O
- ABORT ERROR TERMINATION
- RESA CON 0 TRUNCATED LINE FLAG
- RESB CON 0 OLD LINE NUMBER
- ADL SPACE 4,15
- ** ADL - ADD LINE NUMBER
- *
- * ENTRY (B6) = STRING BUFFER ADDRESS+1 OF START OF STATEMENT.
- * (X2) = LINE NO. RIGHT JUSTIFIED WITH LEADING BLANKS.
- *
- * EXIT NUMBER STORED IN STRING BUFFER.
- * (B6) = STRING BUFFER ADDRESS OF LAST DIGIT STORED.
- *
- * USES X - 0, 2, 5, 6, 7.
- * A - 6, 7.
- * B - 5, 6.
- ADL SUBR ENTRY/EXIT
- SB5 NUMD
- SX7 1R0
- SX0 77B
- ADL1 BX6 X0*X2
- SX5 X6-1R
- ZR X5,ADL2 IF SPACE
- SB6 B6-B1
- SA6 B6
- SB5 B5-B1
- ZR B5,ADLX IF *NUMD* DIGITS
- AX2 6
- EQ ADL1 ADD NEXT DIGIT
- ADL2 SB6 B6-B1
- SA7 B6
- SB5 B5-B1
- NZ B5,ADL2 IF NOT *NUMD* DIGITS
- EQ ADLX RETURN
- CVD SPACE 4,15
- ** CVD - CONVERT DISPLAY CODE NUMBER TO OCTAL.
- *
- * ENTRY (X2) = LEFT JUSTIFIED NUMBER WITH TRAILING ZEROES.
- *
- * EXIT (X6) = RIGHT JUSTIFIED NUMBER (IN OCTAL).
- * (X6) = NEG., ERROR IN PARAMETER.
- *
- * USES X - 0, 2, 4, 6, 7.
- *
- * MACROS MESSAGE.
- CVD SUBR ENTRY/EXIT
- SX6 B0+
- MX0 -6
- CVD1 LX2 6
- BX4 -X0*X2
- ZR X4,CVDX IF END OF NUMBER
- SX7 X4-1R+
- SX4 X4-1R0
- NG X4,CVD2 IF ALPHA
- PL X7,CVD2 IF SPECIAL CHARACTER
- LX7 X6,B1
- LX6 3
- IX6 X6+X7
- IX6 X6+X4
- EQ CVD1 CHECK NEXT CHARACTER
- CVD2 MESSAGE (=C*RESEQ NUMERIC PARAM ERROR.*)
- SX6 -B1
- EQ CVDX RETURN
- ITM SPACE 4,15
- ** ITM - ISSUE TRUNCATION MESSAGE.
- *
- * ENTRY (WBUF) = LINE NUMBER IN PACKED FORM.
- *
- * EXIT MESSAGE WRITTEN TO *OUTPUT*.
- *
- * USES X - 1, 2.
- * A - 1.
- * B - 2, 3, 5.
- *
- * CALLS SNM.
- *
- * MACROS WRITEC.
- ITM SUBR ENTRY/EXIT
- SA1 WBUF
- MX2 6*NUMD
- BX1 X1*X2 MASK OUT LINE NUMBER
- SB2 1R0
- SB3 WBUF
- SB5 -ITMA
- RJ SNM SET NAME IN MESSAGE
- WRITEC O,WBUF
- EQ ITMX RETURN
- ITMA DATA C* LINE 00000 TRUNCATED.*
- PLB SPACE 4,15
- ** PLB - PACK LINE INTO A BUFFER.
- *
- * ENTRY (A1) = ADDRESS OF WORD TO START PACKING IN.
- * (A2) = ADDRESS OF STRING BUFFER TO PACK.
- * (B4) = LENGTH OF STRING TO PACK.
- *
- * EXIT LINE PACKED INTO BUFFER.
- *
- * USES X - 2, 4, 5, 7.
- * A - 2, 7.
- * B - 2, 4, 5, 7.
- PLB3 LX7 B2 LEFT ADJUST FINAL PACKED WORD
- SA7 A1+B7 STORE PACKED WORD
- SB5 12
- GE B2,B5,PLBX IF EOL GUARANTEED IN LAST WORD
- BX7 X7-X7
- SA7 A7+B1
- PLB SUBR ENTRY/EXIT
- MX4 54
- SB2 60
- SB7 B0
- SA2 A2-1
- SX7 B0+
- PLB1 ZR B4,PLB3 IF ALL CHARACTERS HAVE BEEN PACKED
- SA2 A2+B1 GET NEXT CHARACTER
- BX5 X4*X2
- ZR X5,PLB2 IF NOT A TWELVE BIT CHARACTER
- AX5 6
- LX7 6
- BX7 X7+X5 PACK ESCAPE PARAT OF CHARACTER
- SB2 B2-6
- BX2 -X4*X2 GET BOTTOM SIX BITS OF CHARACTER
- GT B2,PLB2 IF ROOM LEFT FOR CHARACTER
- SA7 A1+B7
- SB7 B7+B1
- SX7 B0+
- SB2 60
- PLB2 LX7 6
- BX7 X7+X2 ADD NEW CHARACTER
- SB2 B2-6
- SB4 B4-B1
- GT B2,PLB1 IF ROOM LEFT FOR MORE CHARACTERS
- SA7 A1+B7 STORE PACKED WORD
- SB7 B7+B1
- SX7 B0
- SB2 60
- EQ PLB1 PROCESS NEXT CHARACTER
- TITLE COMMON DECKS, LITERALS AND BUFFERS
- ** COMMON DECKS.
- LIST X
- *CALL COMCBLP
- LIST -X
- *CALL COMCCDD
- *CALL COMCCIO
- *CALL COMCDXB
- *CALL COMCLFM
- *CALL COMCRDC
- *CALL COMCRDO
- *CALL COMCRDW
- *CALL COMCSNM
- *CALL COMCSTF
- *CALL COMCSYS
- *CALL COMCUSB
- *CALL COMCWTC
- *CALL COMCWTW
- BUFFERS SPACE 4,10
- ** BUFFERS.
- OBUF BSS OBUFL+1
- NBUF BSS NUMD+1 LINE NUMBER BUFFER
- USBB BSS 0
- SBUF BSS MNCL+1 STRING BUFFER
- WBUF BSS MWBL+1 WORKING BUFFER
- SPACE 4
- USE LITERALS
- SPACE 4
- ** IF THE FILE TYPE IS NOT BASIC, ALL ROUTINES FROM
- * THIS POINT ON ARE OVERLAYED WITH BUFFERS.
- BUFF BSS 0
- TITLE BASIC INTERNAL LINE NUMBER RESEQUENCE ROUTINES
- RBF SPACE 4,10
- ** RBF - RESEQUENCE BASIC FILE.
- *
- * EXIT RESEQUENCED FILE RESIDING ON *SCR*.
- *
- * USES X - ALL.
- * A - 1, 2, 6, 7.
- * B - 2, 3, 4, 6, 7.
- *
- * CALLS BLP, PLB, USB.
- *
- * MACROS READC, READEI, READO, RETURN, REWIND, WRITEC, WRITER.
- RBF SUBR ENTRY/EXIT
- SA2 SCR1
- MX1 -18
- BX3 -X1*X2
- SX3 X3-3
- NZ X3,RBF1 IF FILE *SCR1* WAS USED
- SX4 1033B
- BX2 X1*X2
- IX6 X2+X4
- SA6 A2+ SET FILE NAME AND STATUS
- EQ RBF2 INITIALIZE FET FOR FILE *SCR*
- RBF1 WRITER SCR1
- REWIND X2
- READEI X2
- RBF2 RETURN SCR,R PREPARE SCRATCH FILE
- SA2 SCR CLEAR FUNCTION CODE FROM FET
- MX0 42
- BX7 X0*X2
- SX0 3
- BX7 X0+X7
- SA7 A2
- SA1 INP+1
- SA2 INP+4
- BX7 X1
- SA7 SCR+1 SET FIRST
- SX7 X7
- SA7 A7+B1 SET IN
- SX6 X2
- SA7 A7+B1 SET OUT
- SA6 A7+B1 SET LIMIT
- * READ A LINE.
- RBF3 SX6 B0+
- SA6 RBFA CLEAR TRUNCATE FLAG
- READC SCR1,WBUF,MWBL+1
- NZ X1,RBFX IF EOI REACHED, RETURN
- BX6 X4
- MX0 -12
- RBF4 BX6 -X0*X6
- ZR X6,RBF5 IF EOL ENCOUNTERED
- READO X2
- EQ RBF4 CHECK FOR EOL
- RBF5 SB2 WBUF UNPACK LINE INTO STRING BUFFER
- SB6 MNCL+1
- SA1 CSET GET CHARACTER SET
- SB3 X1+
- RJ USB
- SB2 B7-SBUF-MNCL
- NG B2,RBF6 IF LINE NOT TOO LONG
- SB7 MNCL+SBUF
- SX7 B1+
- SA7 RBFA SET TRUNCATION FLAG
- RBF6 SB2 B7+B1 BASIC RESEQUENCE THE LINE
- SB7 SBUF+NUMD
- SX5 B1 SET *LNT* SORTED
- SX6 SBUF+MNCL
- SA1 LNTS
- SA2 LNTE
- SX3 B0+
- RJ BLP
- SA2 RBFA MARK ANY TRUNCATION
- BX6 X1+X2
- SA6 A2
- SA2 SBUF PACK RESEQUENCED LINE
- SA1 WBUF
- SB4 B7-SBUF
- RJ PLB
- WRITEC SCR,WBUF WRITE OUT UPDATED LINE
- SA1 RBFA
- ZR X1,RBF3 IF LINE WAS NOT TRUNCATED
- RJ ITM ISSUE TRUNCATION MESSAGE
- EQ RBF3 PROCESS NEXT LINE
- RBFA CON 0 TRUNCATE FLAG
- SPACE 4
- IBUFF BSS 0
- SPACE 4,10
- SPACE 4
- TITLE PRE-RESEQUENCE PROCESSOR
- ** PRE - PRE-RESEQUENCE PROCESSOR.
- *
- * *PRE* SETS UP THE FET FOR THE FILES, DETERMINES THE FILE
- * TYPE, STARTING LINE NUMBER AND INCREMENT, AND STORES THESE
- * INTO THEIR CORRESPONDING CELLS. IF AN ERROR IS DETECTED IN
- * THE STARTING LINE NUMBER, A MESSAGE IS ISSUED AND THE PROGRAM
- * IS ENDED. A FET IS ALSO ESTABLISHED FOR *SCR1*.
- * *PRE* IS THEN OVERLAYED WITH BUFFERS.
- *
- * EXIT (SYST) - SYSTEM TYPE(-1=FORTRAN,0=BASIC,1=TEXT,
- * 2=OTHER).
- * (LNUM) - STARTING LINE NUMBER.
- * (INCR) - INCREMENT.
- * (LNTS) = FWA OF LINE NUMBER TABLE.
- * (LNTE) = LWA+1 OF LINE NUMBER TABLE.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 5, 6, 7.
- *
- * CALLS CVD.
- *
- * MACROS ABORT, MESSAGE, RETURN, STATUS, TSTATUS.
- PRE SUBR ENTRY/EXIT
- SB1 1
- SX6 A0-4
- SA6 FLDL SAVE FIELD LENGTH
- RETURN SCR1,R PREPARE SCRATCH FILE
- MX0 42 CLEAR FUNCTION CODE FROM FET
- SA1 SCR1
- BX6 X0*X1
- SX0 3
- BX6 X0+X6
- SA6 A1
- SX0 77B
- SA3 ACTR
- SX3 X3-1
- PL X3,PRE3 IF PARAMETER COUNT NOT ZERO
- PRE2 MESSAGE (=C*RESEQ COMMAND ERROR.*)
- ABORT
- PRE3 SA2 ARGR
- MX5 42
- SX4 3
- BX6 X5*X2
- IX6 X4+X6
- SA6 INP SET FIRST WORD OF PRIMARY FILE FET
- SX3 X3-1
- NG X3,PRE5 IF NO SYSTEM PASSED
- SA2 ARGR+1 GET FILE TYPE (B=BASIC)
- BX2 X5*X2
- LX2 6
- SX1 B1+B1
- BX6 X2-X1
- ZR X6,PRE4 IF TYPE BASIC
- SX6 B1
- SA1 =1RT
- BX7 X2-X1
- SA1 =1RF
- BX5 X2-X1
- NZ X5,PRE3.1 IF TYPE NOT FORTRAN
- SX6 -B1
- EQ PRE4 STORE FILE TYPE
- PRE3.1 NZ X7,PRE5 IF TYPE NOT TEXT
- PRE4 SA6 SYST STORE FILE TYPE
- PRE5 SA1 JOPR CHECK JOB ORIGIN TYPE
- LX1 -24
- MX0 -12
- BX1 -X0*X1
- SX1 X1-IAOT
- NZ X1,PRE5.1 IF NOT INTERACTIVE ORIGIN JOB
- TSTATUS PREA GET INTERACTIVE STATUS
- SA1 PREA+1 CHECK CHARACTER SET
- SX6 B1+
- LX1 0-2
- BX6 X6*X1
- SA6 CSET SAVE CHARACTER SET (NORMAL/ASCII)
- PRE5.1 SA5 FLDL
- SA2 SYST
- NZ X2,PRE6 IF FILE TYPE NOT BASIC
- SX7 IBUFF
- IX6 X5-X7
- AX6 2
- EQ PRE7 INITIALIZE REST OF FET
- PRE6 SX7 BUFF OVERLAY BASIC ONLY ROUTINES
- IX6 X5-X7 SUBROUTINES WITH INPUT BUFFERS
- AX6 1
- PRE7 SX6 X6-50
- SX4 FETL-5 FET LENGTH - 5
- IX6 X6+X7
- LX4 18
- IX7 X7+X4
- SA7 INP+1 SET FIRST
- SX7 X7
- SA7 A7+B1 SET IN
- SA7 A7+B1 SET OUT
- SA6 A7+B1 SET LIMIT
- SX3 X3-1
- NG X3,PRE9 IF NO STARTING LINE NUMBER PASSED
- SA2 ARGR+2 GET STARTING LINE NUMBER
- MX0 -6
- BX7 -X0*X2
- NZ X7,PRE2 IF SPECIAL CHARACTER
- ZR X2,PRE9 IF NO PARAMETER
- RJ CVD CONVERT STARTING LINE NUMBER
- NG X6,PRE8 IF CONVERSION ERROR
- SX5 X6-LIMIT
- NG X5,PRE8.1 IF LINE NUMBER LIMIT NOT EXCEEDED
- MESSAGE (=C*LINE NUMBER LIMIT EXCEEDED.*)
- PRE8 ABORT
- PRE8.1 SA6 LNUM SAVE STARTING LINE NUMBER
- PRE9 SX3 X3-1
- NG X3,PRE10 IF NO INCREMENT PASSED
- SA2 ARGR+3 GET LINE INCREMENT
- MX0 -6
- BX6 -X0*X2
- NZ X6,PRE2 IF SPECIAL CHARACTER
- ZR X2,PRE10 IF NO PARAMETER
- RJ CVD CONVERT LINE NUMBER INCREMENT
- NG X6,PRE8 IF CONVERSION ERROR
- SA6 INCR SAVE INCREMENT
- PRE10 STATUS INP,P
- SA1 INP+5
- MX3 -6
- BX7 X7-X7
- AX1 6
- BX4 -X3*X1
- SX6 X4-PMFT
- SA6 DAF STORE DIRECT ACCESS FILE FLAG
- SA3 INP+4
- SA7 A1+B1 CLEAR RANDOM INDEX
- SX7 X3+B1
- SX5 FETL-5 FET LENGTH - 5
- LX5 18
- BX6 X7+X5
- SA6 SCR1+1 SET FIRST
- SA7 A6+B1 SET IN
- SA7 A7+B1 SET OUT
- SA5 SYST
- NZ X5,PRE11 IF FILE TYPE NOT BASIC
- SA1 INP+2
- IX4 X3-X1 BUFFER LENGTH
- IX6 X7+X4
- SX6 X6+100
- SX7 X6+B1
- SA7 LNTS
- SA7 LNTE
- EQ PRE12 SET LIMIT
- PRE11 SA1 FLDL
- SX6 X1+
- PRE12 SA6 SCR1+4 SET LIMIT
- EQ PREX RETURN
- PREA BSS 2 BUFFER FOR *TSTATUS* MACRO
- SPACE 4
- RFL= EQU 6000B
- END
cdc/nos2.source/opl871/reseq.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator