1
0
mirror of https://github.com/rcornwell/ctss.git synced 2026-01-12 00:02:48 +00:00
2017-09-10 13:45:28 -04:00

28730 lines
2.2 MiB
Executable File

$JOB CTSSSET
$UNITS
$DATE 121510
$ATTACH B5
$AS SYSPP2,B5
$SWITCH SYSPP2,SYSPP1
$BLOCK BCD,0084
$EXECUTE FORTRAN
* ID BASE
* FAP
$BLOCK BCD,1344
* FAP FOREGROUND BSS LOADER FOR NEW DISK ROUTINES, JUNE 65 LO
TITLE
*SYMBOLIC PROGRAM FOR COMMANDS L, LOAD, LOADGO, VLOAD, NCLOAD.
*
*
* MODIFIED SEPT 1965, L. ODLAND
* .. REMOVE OLD WRITEAROUNDS (.DLETE AND .DUMP)
* .. REMOVE OPTION (OLD) TO CALL OLD LOADER
*
* MODIFIED JUNE 1965, L. ODLAND LO
* .. CHANGE TO IMPROVE TIMING, NEW DISK ROUTINES. LO
* READ 864 WORDS (2 TRACKS) AT A TIME, LO
* TNEN PROGRAM UNPACKS THE BUFFER. LO
* SHORTEN THE DBUFS FOR CODING SPACE. LO
*
* MODIFIED JUNE 1965, M. WAGNER LO
* CHANGE FOR DIFFERENT RETURN FROM GETCF LO
*
* MODIFIED JUNE 65, ODLAND. FABRY CGANGES FOR MADBUG. LO
* .. (CONT) FILNAM AS FIRST TWO ARGUMENTS FOLLOWING
* LOAD, RESUMES FILNAM SAVED AFTER LOAD ERROR. LO
*
* MODIFIED OCTOBER 64 LOUIS POUZIN
* .. (SYS) SEARCHES LIBRARY IN SYSTEM FILES
* .. (CFL*) LOADS FROM COMFIL *
* .. (ORG) SETS STARTING ADDRESS TO THE ENTRY NAME
* SPECIFIED AS NEXT ARGUMENT
* .. (MORE) DOESN'T PRINT 'NEED'. EXPECTS 'USE' AND GO
* TO CHNCOM
* .. (NEED) SETS NEXT NAME INTO LIST OF MISSING S/R
* .. MOVIE TABLE COPIED ONTO TOP OF CORE WHEN 'MOVIE)' IS
* .. IN SOME TRANSFER VECTOR AND CORE TO MOVE DOWN.
* .. MOVIE TABLE DUMPED AS A T MODE FILE '(MOVIE TABLE)'
* .. DUMMY ENTRY IN MOVIE TABLE CONTAINS '1ST COMMON NOT USED'
* .. (OLD) CALLS THE OLD LOADER.
* .. LOC 27 OCT CONTAINS MOVIE KEYWORD = CAL* $MOVIE)
* .. NCLOAD FIXED FOR COMMON USED, BUT NO ERASABLE.
* .. COMMON ADDRESSES RELOCATED WITH SAME PARITY AS FAP LISTING
* .. VARIOUS MEANS OF SAVING ROOM IN ORDER NOT TO INCREASE LENGTH
* .. THE SAME FAP PROGRAM PRODUCES 2 DIFFERENT LOADERS
* .. ACCORDING TO THE 'MODLOD FAP' FILE INSERTED.
* .. A REGULAR LOADER, WHICH STARTS LOADING AT (5200)8
* .. AND AN EXTENDED LOADER, WITH LARGER TABLES,
* .. LOADING FROM (7000)8
* MODIFIED FEB 1965, L. ODLAND (FAP NOW HAS EVEN PSEUDO OP ) LO
REM
REM
REM
DETAIL
PMC OFF
PCC ON
*
LOAD MACRO
MODE SET 0 REGULAR LOADER
LOAD END
*
HLOAD MACRO
MODE SET 1 HUGE LOADER
HLOAD END
*
LOAD
* MODLOD SHOULD CONTAIN
* HLOAD FOR HUGE LOADER
* LOAD FOR REGULAR LOADER
*
OLD1 MACRO A
ORG *-1
PZE 1
NZT K
TRA A
STZ K
TRA OLDCOM
A SYN *
OLD1 END
OLD2 MACRO
OLDCOM SYN *
LAS OLD
TRA K-1
TRA *+2
TRA K-1
TSX WRFLX,4
PZE OLDM,,5
TIA *+1
BCI 1,DEAD
OLD BCI 1, (OLD)
OLDM BCI 5,ARG (OLD) NO LONGER AVAILABLE
ORG OLDCOM
OLD2 END
COUNT 800
LBL NCLOAD,PLEASE
* THEN OCTPAT 0 ... FROM 'THERE' THRU (23)8
PMC ON
PCC ON
*
TYPE MACRO N,COM,LOC
TSX WRFLX,4
LOC,,N
PMC OFF
RMT
LOC BCI N,COM
RMT
PMC ON
TYPE END
*
LOCATE MACRO A
A EQU *-HERE+THERE DEFINE LOCATION SYMBOL FOR USE AFTER MOVE
LOCATE END
*
TSS OPD 010171120000
*
NOEP EQU 3 NO. OF ENTRY POINTS FROM SUPERVISOR
NWDS EQU 432 NO. OF WORDS PER TRACK LO
WHICH SXA SVXC,4 SAVE MACHINE CONDITIONS
TSX SAVMC,4 ..
LDI =1 ALL SWITCHES RESET, BUT USELIB SET.
TSX GETCOM,4 FIND OUT WHICH COMMAND THIS IS
K PZE 0
IFF MODE,1 NEXT IF REG. LOAD
OLD1 TO GO TO MACRO 'OLD2'
AXT NUMCOM,4
LAS COMTAB+NUMCOM,4
TRA *+2
TRA COMTAB+NUMCOM+1,4
TIX *-3,4,2
TRA DEBUG ASSUME THIS IS A DEBUGGING COMMAND
*
MAC1 MACRO
BCI 1, L
TRA AM
MAC1 END
*
MAC2 MACRO
BCI 1, LOAD
TRA LOAD
BCI 1, VLOAD
TRA VLOAD
BCI 1,NCLOAD
TRA NCLOAD
BCI 1,LOADGO
TRA LOADGO
MAC2 END
*
IFF MODE,1 REGUL. LOADER
COMTAB MAC2
IFF MODE HUGE LOADER
COMTAB MAC1
BCI 1, USE
LDI TEMP RESTORE SI, SINCE REENTRY TO LOADER.
NUMCOM EQU *-COMTAB
(USE) CAL CCF RESTORE CURRENT COMMON FILE SWITCHING
TSX SWD+1,5
* TRA USE
*
HEADIN MACRO THIS CODE IS BURIED INTO DISK BUFFER
* AND IS LOST ONCE LOADING IS STARTED
* PURPOSE, ROOM SAVING.
HERE SYN *
THERE BOOL 11 MOVING ROUTINE WILL SIT IN LOC. THERE TO 23
*
* PROGRAM TO MOVE CORE IMAGE DOWN
*
LOCATE CHNCM. CHNCOM CALLED BY MOVING ROUTINE
TIA CHNCM.+1
(CHNC) BCI 1,CHNCOM
LOCATE SETMM. SETMEM CALLED BY MOVING ROUTINE
TIA SETMM.+1
(SETM) BCI 1,SETMEM
LOCATE MOVER.
LOCATE CAL.
LDQ **,3
LOCATE SLW.
STQ **,3
TIX CAL.,3,1
EMTM
TSX SETMM.,4
TSX CHNCM.,4
TXH 1 KEEP CORE IMAGE
LOCATE PROG. PROG. SHOULD BE LOCATION 24 OCTAL
MOVLEN EQU *-HERE LENGTH OF MOVING ROUTINE
NEWORG EQU THERE+MOVLEN+NOEP+1 NEW ORGIN FOR MOVED PROG
*
MAC3 MACRO
AM SYN *
TSX GETCOM,4
PZE 1
AXT AK-LTAB,4
LAS AK,4
TRA *+2
TRA AK+1,4
TIX *-3,4,2
SXA BEGIN CLEAR INITIAL VALUE FOR IX7
TRA LOAD GO TO NORMAL LOADING
LTAB MAC2 INSERT ARGUMENT TABLE
AK SYN *
MAC3 END
*
IFF MODE
MAC3
*
* NCLOAD COMMAND - DOES NOT FORCE ANY COMMON ON USER.
*
NCLOAD SIR NC SET SWITCH NO ERASABLE
*
* VLOAD COMMAND
*
VLOAD AXT MOVLEN,4 MOVE MOVING ROUTINE TO LOWER CORE
CAL HERE+MOVLEN,4
SLW THERE+MOVLEN,4
TIX *-2,4,1
SIR NCV SET SWITCH MOVE CORE DOWN
* SET NEGATIVE RELOCATABLE DECREMENT LO
AXC END+1-NEWORG,4
SXD RLOCD,4 LO
* THIS SEQUENCE IS THERE ONLY BECAUSE THE 'SET'
* PSEUDO DOESN'T WORK IN FAP.
CAL =O777776777777 DISCARD BIT 17
ANS RLOCD TO MAKE EVEN
* END OF SEQUENCE
TRA BEGIN
*
* LOADGO COMMAND
*
LOADGO SIR GO
*
* LOAD COMMAND
*
LOAD ZSD RLOCD NO RELOCATION DOWN THE CORE
BEGIN AXT MODE,7 ADDRESS MAY BE ZEROED FROM MAC3
TXI *+1,7,1
SXA *+2,7
TSX GETCOM,4
PZE **
LAS HCONT
TXI BEGIN1,7,-1
TXI *+2,7,1 LO
TXI BEGIN1,7,-1
SXA *+2,7 LO
TSX GETCOM,4 LO
PZE ** LO
SLW RSNAME LO
AXT CONSIZ,4
CAL CONEND,4
SLW CONPAT,4
TIX *-2,4,1
CAL CONTRA
SLW GODEAD
BEGIN1 TSX GETCF,4
TZE USE1
STA HCF SAVE HOME COMMON FILE NO. LO
STA CCF LO
TRA USE1
CONSEQ EQU *
CAL HCF
TSX SWD,5
CAL A+6 LO
LDQ A+7 LO
TIA A+5 LO
BCI 1,NEXCOM LO
BCI 1,RESUME LO
RSNAME BCI 1,****** LO
CONEND EQU *
CONSIZ EQU CONEND-CONSEQ
HCONT BCI 1,(CONT)
CONTRA TRA A
ORG HERE
HEADIN END
*
TTL USE ENTRY FROM FLEXO USE COMMAND
*
USE AXT 0,7
USE1 SYN *
RIR BUG+TSPASS+LIBSW
LXD TAG,4 REMOVE DUMMY ENTRIES FROM TABLE
STZ TABL-1,4
STZ TABL-2,4
STZ TABL-3,4
STZ TABL,4
TSX GETMEM,4
STA S
*
TTL REQUEST PROCESSING SECTION
*
NEXT SYN *
TSX USRFIL,4 RESET TO USER'S FILES
RIR LIBSW+ENAM
RFT TSPASS
TRA DONE
SKLB SYN *
TXI *+1,7,1
SXA LSTCNT,7
TSX GETCOM,4
LSTCNT PZE **
AXT NOSPEC,4 SEARCH FOR SPECIAL ARGUMENTS
LAS SPECTB+NOSPEC,4
TRA *+2
TRA XECSPC GO ACT ON IT
TIX *-3,4,2 ASSUME FILE NAME IF NOT FOUND
J SLW NAME1 SAVE NAME
ANA =O777777770077 ERASE COMMON FILE NO.
ERA =H(CFL0) CHECK PATTERN
TNZ Y NOT A COMMON FILE NO.
CAL NAME1
ARS 6
ANA =O77 COMMON FILE NO.
TSX SWD,5 SWITCH TO THIS COMFIL
TRA SKLB TO NEXT ARG.
Y RNT ENAM
TRA P NOT AN ENTRY NAME
CAL NAME1
TSX LJUST,4 LEFT JUSTIFY
RFT ORG
SLW ORIGIN SAVE STARTING ENTRY NAME
RIR ORG
TSX CKPLL,5 CHECK ROUTINE ALREADY LOADED
TRA *+2 YES
TSX MISNAM,4 NO. ENTER IN MISSING S/R LIST
RNT LIBSW
TRA NEXT
REM
P TSX OPEN,4 FIND THIS FILE LO
TXH =HR OPEN FOR READING LO
TXH NAME1 NAME LIST LO
TXH NAME1+1 LO
TXH =-0 LO
TXH =-0 LO
TXH OPNERR COMPLAIN AND GO TO NEXT LO
TXH OPNLOC LO
SXA RDCNT,0 INITIALIZE POSITION IN BUFFER LO
STZ RDEFT INITIALIZE EOF TEST LO
TSX RDFILE,4 READ FIRST 2 TRACKS LO
RIR LLFLG+EFLIB+LIBLD+SKIP+MULPC
TRA BSS GO READ FILE
XECSPC XEC SPECTB+NOSPEC+1,4 EXECUTE TABLE ENTRY
TRA SKLB
*
* TABLE OF SPECIAL ARGUMENT PARAMETERS
*
SPECTB OCT 777777777777 FENCE
TRA DONE
BCI 1, (SYS) USE NEXT AS A LIBRARY IN SYSTEM FILE
TRA SYSLIB
BCI 1,(LIBE) USE NEXT ARG AS LIBRARY
TRA LIBRY
BCI 1,(NLIB) KILL TSS LIBRARY SEARCH
RIR USELIB
BCI 1, (LIB) RESTOR TSS LIBRARY SEARCH
SIR USELIB
BCI 1, (ORG) SET STARTING ADDRESS
SIR ORG+ENAM
BCI 1,(MORE) GO CHNCOM
TRA MORE
BCI 1,(NEED) ENTER NEXT NAME IN MISSING S/R LIST
SIR ENAM
NOSPEC EQU *-SPECTB
*
REM
MORE CAL HCF
TSX SWD+1,5 RESTORE HOME COMMON FILE
STI TEMP SAVE LOADER'S CONDITIONS
TSX CHNCOM,4
TXH 1
TRA (USE)
REM
SYSLIB TSX TSSFIL,4 LIBRARY IN SYSTEM FILES
REM
LIBRY SYN * LIBRARY FILE
TSX TVPASS,5 WHAT IS NEEDED...
NZT FMR ARE THERE ANY MISSING ROUTINES
TXI NEXT,7,1 NO. GO TO NEXT ARGUMENT
SIR LIBSW
TRA SKLB
REM
DONE SYN *
TSX TVPASS,5 FILL UP TRANSFER VECTORS LO
CAL =HTSLIB1 GET LIBRARY FILE NAME
ZET FMR ARE THERE ANY MISSING ROUTINES
TRA NEEDLB YES. TRY LIBRARY.
*
TTL START ENTRY FROM FLEXO START COMMAND
*
START SYN *
CAL HCF
TSX SWD,5 RESTORE INITIAL SWITCHING
RFT BUG
TRA START1 DO NOT NEED MAIN PROG TO DEBUG
CAL ORIGIN CHECK STARTING ENTRY LOADED
TSX CKPLL,5
TRA AH LOADED
TZE NOPRG NO ENTRY SET AND NO (MAIN)
TSX MISNAM,4
TRA NEEDLB GO TRY TO LOAD IT
AH STA PROG SET STARTING ADDRESS
START1 SYN *
LXD TAG,6 NUMBER OF ENTRIES IN MOVIE TABLE
TXI *+1,6,4 INCREASE BY 4, FOR DUMMY ENTRIES
LDQ TABL-3
STQ SNAME IN CASE OF CORE OVERFLOW
TXH TBOVL,6,TABLNG CHECKS OVERFLOW
CAL S
RNT NCV+MOVT SKIP IF MOVIE NEED BE MOVED
TRA R
PXA ,6
TSX INCMEM,5 INCREASE M.B. FOR MOVIE
STA W NEW M.B.
R PAX ,3
TSX RLOCD,4 RELOCATE IN LOWER CORE
PXA ,3
TXI *+1,3,-1 SETS NEW ORIGIN FOR MOVIE
STA TABL+4,6
LDQ LOWCOM SETS LOWEST COMMON NOT USED
STQ TABL+2,6 INTO DUMMY ENTRY
LDQ PRMSK
STQ TABL+3,6
LDQ FENCE
STQ TABL+1,6
SXA KEYWD,6
RNT NCV
CAL U ANY WORD WITH TABL+1 IN THE ADDRESS
SUB KEYWD ELSE, LAC = M.B.
STA KEYWD
SXD KEYWD,6 FILL UP KEYWORD
LDC KEYWD,4
RNT NCV+MOVT
TRA V
SXA TABL,3
U LDQ TABL+1,6 MOVE MOVIE TABLE
W STQ **,6 ONTO THE TOP OF THE USER'S PROGRAM
TIX U,6,1
V SYN *
LXD KEYWD,6
TXI *+1,6,-4
RFT NCV
RFT MOVT
TXI *+2,6,4
STZ KEYWD MOVIE TABLE WILL BE LOST
SXD X,6
TXI *+1,4,TABL+1 ADDRESS OF END OF TABLE
SXA X,4 SET IN DISK CALL
TSX DELFIL,4 DELETE OLD MOVIE FILE LO
TXH MOVFIL LO
TXH MOVFIL+1 LO
TXH *+1 NOT FOUND OKAY LO
TSX OPEN,4 OPEN NEW MOVIE FILE LO
TXH =HW FOR WRITING LO
TXH MOVFIL LO
TXH MOVFIL+1 LO
TXH =1 TEMPORARY MODE LO
TXH =2 ON THE DISK LO
TSX WRFILE,4 DUMP MOVIE TABLE LO
TXH MOVFIL LO
TXH MOVFIL+1 LO
TXH =0 LO
X TXH **,,** LO
TXH =-0 LO
TXH =-0 LO
TSX CLOSE,4 CLOSE MOVIE FILE LO
TXH MOVFIL LO
TXH MOVFIL+1 LO
RFT BUG IS THIS A DEBUGGING COMMAND
TRA GOBUG YES
RFT NCV **SHOULD CORE BE MOVED DOWN
TRA MOVR ***YES, GO DO IT
STI TEMP SAVE LOADER'S CONDITIONS
EMTM
RNT GO *** IS THIS LOAD AND GO
AJ TSX CHNCOM,4 RETURN TO TSS
TXH 1 A ONE FOR DORMNT CALL TO CHNCOM
TYPE 2,(EXECUTION.)
PROG TSX **,4 TRANSFER TO MAIN PROGRAM OR STARTING ADDRES
TRA AJ
*
*
* REPEAT TTR TO (MAIN) FOR ALL ENTRY POINTS FROM SUPERVISOR
MOVR CAL PROG GET TTR TO MAIN
DUP DUP 1,NOEP
SLW PROG.+*-DUP
* SET UP LOWER CORE TO MOVE USER PROGRAM
LXA S,3
SXA CAL.,3
TSX RLOCD,4
SXA SLW.,3
PXA ,3
TIX *+1,3,NEWORG NO. OF WORDS TO BE MOVED
TRA MOVER. GO MOVE CORE DOWN
*
* DEBUGGING COMMANDS -
*
DEBUG SYN *
OSI TEMP RESTORE LOADER'S CONDITIONS
RNT NCV+COMSET
TRA D OK
TYPE 5,( ILLEGAL SEQUENCE OF COMMANDS.)
TRA A EXIT TO DORMNT
D SYN *
ZSD RLOCD
SIR BUG+USELIB
RIR GO+TSPASS+LIBSW+NCV+NC
AXT 0,7
LAS DBGNAM CHECK FOR PM
TRA *+2
CAL DBGNAM+1 GET 'FLEXPM' ENTRY NAME
TSX LJUST,4 LEFT JUSTIFY ANYHOW
SLW DBNAME SAVE THE NAME
TSX CKPLL,5 SEE IF IT IS LOADED YET
TRA DBOK YES, GO TO IT
STZ FMR
TSX MISNAM,4 ENTER MISSING NAME IN TABLE
LXD TAG,4 GET POINTER TO 'DUMMY' ENTRIES IN MOV
STZ TABL,4 REMOVE THEM
STZ TABL-1,4
STZ TABL-2,4
STZ TABL-3,4
TSX GETMEM,4 GET THE CURRENT MEMORY BOUND
STA S SAVE IT FOR LOADING THE NEW PROGRAM
CAL =HTSLIB2 GET DEBUG LIBRARY FILE NAME
*
TTL
*
NEEDLB SYN *
RFT USELIB CAN WE USE TSSLIB
RFT TSPASS HAVE WE TRIED TSSLIB.
TRA NEED YES, GO LIST MISSING ROUTINES.
SIR TSPASS+LIBSW NO, TRY IT
TSX TSSFIL,4 ALLOW READING OF TSS FILES
TRA J TO LIBRARY PROCESS
*
* TABLE OF DEBUG COMMANDS WHICH NEED SPECIAL PROCESSING
*
DBGNAM BCI 1, PM
BCI 1,FLEXPM
*
*
GOBUG CAL DBNAME GET THE ENTRY POINT NAME
TSX CKPLL,5 FIND ITS ORIGIN
DBOK STA DBSTRT SAVE THE ENTRY POINT
TSX RESMC,4 RESTORE THE MACHINE CONDITIONS
DBSTRT TRA NEED1 AND GO TO THE SUBPROGRAM
* ADDRESS MAY BE MODIFIED
*
DBNAME THE DESIRED ENTRY NAME
*
TTL SAVE THE MACHINE CONDITIONS FOR 'DEBUG' ENTRY
*
SAVMC SYN *
STQ BMQ SAVE THE MQ.
STI BSI THE SI.
SXA SVXA,1 SAVE THE XR'S (EXCEPT XR 4)
SXA SVXB,2
SXA X3,3
AXT 0,2
AXT -1,3
SXA 3XMOD,2 SAVE INDEX MODE
TXL H,2 SKIP IF 7IX'S MODE
LMTM
SXA X3,3
H SXA X5,5
SXA X6,6
SXA X7,7
SLW BAC SAVE THE LOGICAL AC.
ARS 2 SHIFT AND
STO BSQ SAVE THE SIGN, Q, AND P BITS
STZ OVF
TNO *+2
STL OVF SAVE OVERFLOW
TRA 1,4 AND EXIT
*
TTL RESTORE THE MACHINE CONDITIONS FOR 'DEBUG' ENTRY
*
RESMC TXI *+1,4,-1 BUMP THE RETURN POINTER
SCA RESMX,4 THEN SAVE IT
CLA *
LDQ BSQ
LLS 1 SET BIT S
ALS 36 TURNS OVERFLOW ON. SET Q
ORA BAC RESTORE AC
NZT OVF SKIP OVERFLOW ON
TOV *+1 OVERFLOW OFF
LDQ BMQ RESTORVHE MQ.
X3 AXT **,3
X5 AXT **,5
X6 AXT **,6
X7 AXT **,7
ZET 3XMOD
EMTM
SVXC AXT **,4
SVXB AXT **,2
SVXA AXT **,1
LDI BSI RESTORE THE SI.
RESMX TRA ** EXIT
*
OVF PZE 0 NON ZERO IF OVERFLOW ON
3XMOD PZE 0 77777 IF 3 X'S, 0 IF 7 X'S
BMQ MQ. STORAGE
BSI SI. STORAGE
BAC LOGICAL AC. STORAGE
BSQ SIGN, QBIT STORAGE
TTL ERROR RETURN FROM OPEN, NEW DISK ROUTINES LO
*
*ERROR RETURN FROM OLD SEEK WAS PZE NEXT, LO
*DISK ROUTINES COMPLAINED, AND PROGRAM WENT TO NEXT. LO
*WE MUST COMPLAIN FOR NEW DISK ROUTINES. LO
*
OPNERR LDQ NAME1 THE FILE NAME LO
CAL OPNLOC THE ERROR CODE LO
ERA =12 TEST NOT FOUND LO
TNZ OPNER1 NO, GO PRINT IT LO
STQ COM3+1 LO
TSX (WFLX),4 YES, PRINT NOT FOUND LO
PZE COM3,,5 LO
TRA NEXT RETURN TO NEXT LO
REM
OPNER1 STQ COM4+7 LO
LDQ OPNLOC THE ERROR CODE LO
PXD 0,0 LO
DVP =10 DIVIDE BY 10 LO
XCL LO
RQL 30 2 DIGITS LO
LGL 18 LO
ORA COM4-1 FOR DIAGNOSTIC LO
SLW COM4+2 LO
TSX (WFLX),4 PRINT DIAGNOSTIC LO
PZE COM4,,9 LO
TRA NEXT RETURN TO NEXT LO
TTL SUBROUTINE RDFILE FOR NEW DISK ROUTINES LO
*
*SUBROUTINE TO READ 864 WORDS (2 TRACKS) TO DBUF1. LO
*
RDFILE SXA RFILX,4 SAVE CALLING LIMKAGE LO
TSX RDWAIT,4 READ AND DELAY LO
TXH NAME1 LO
TXH NAME1+1 LO
TXH =0 LO
TXH DBUF1,,2*NWDS NEXT 2 TRACKS TO DBUF1 LO
TXH RDEOF LO
TXH REFCT LO
RFILX AXT **,4 RESTORE LINKAGE LO
TRA 1,4 RETURN LO
*
*END OF FILE RETURN, SET TO EXIT WHEN BUFFER EMPTY LO
*
RDEOF LAC REFCT,4 NUMBER OF WORDS READ LO
SXD RDTST,4 FOR EOF TEST LO
STL RDEFT SET EOF FLAG LO
TXL RDOUT,4,0 OUT FOR NO WORDS READ LO
TRA RFILX EXIT FROM RDFILE LO
RDEFT PZE
REFCT PZE LO
*ADD NEW SUPERVISOR ENTRIES AND CONSTANTS. LO
OPEN TIA =HOPEN LO
RDWAIT TIA =HRDWAIT LO
CLOSE TIA =HCLOSE LO
DELFIL TIA =HDELFIL LO
WRFILE TIA =HWRFILE LO
*
TTL READ SECTION.. READS ONE BINARY RECORD (SINGLE BUFFER)
*
AL CAL SNAME PICK 1ST NAME ON 1ST PROG CARD
TSX MISNAM,4 ENTER IN MISSING LIST
SIR LLFLG AND SET FLAG FOR ONE MORE PASS
SKPPR SIR SKIP
BSS SYN *
*MOVE 28 WORDS FROM INPUT BUFFER DBUF1 TO WORKING BUFFER. LO
READ SXA READX,1 SAVE XRS LO
RDCNT AXT **,1 XR1 = POSITION IN DBUF1 LO
NZT RDEFT HAS EOF BEEN REACHED LO
TRA READ1 NO, CONTINUE LO
RDTST TXH READ1,1,** YES, IS BUFFER EMPTY LO
TXL READ1,1,0 NO, CONTINUE LO
RDOUT TSX CLOSE,4 YES, CLOSE THE FILE LO
TXH NAME1 LO
TXH NAME1+1 LO
TRA EFLS AND EXIT LO
READ1 AXT 28,2 NO, MOVE 28 WORDS LO
READ2 TXH READ3,1,-2*NWDS IS BUFFER EMPTY LO
TXL READ3,1,0 LO
TSX RDFILE,4 YES, READ NEXT 2 TRACKS LO
AXT 0,1 NEW POSITION IN DBUF1 LO
READ3 CLA DBUF1,1 MOVE FROM READ BUFFER LO
STO IM+28,2 TO WORKIN G BUFFER LO
TXI *+1,1,-1 LO
TIX READ2,2,1 LO
SXA RDCNT,1 SAVE FINAL POSITION IN BUFFER LO
READX AXT **,1 RESTORE XRS LO
*
TTL CARD PROCESSING SECTION.. ENTERED AFTER READ
*
LBIN SYN *
CAL IM
ANA =O777777000000 KEEP LEFT HALF
RIL / CLEAR INDICATORS LEFT
OAI SET INDICATORS LEFT
LNT 500 IS IT BINARY
TRA ILLCD NO, ILLEGAL
RIL 500 YES, REMOVE COL BIN BITS FROM WORD COUNT
STI TEMP SET WORD COUNT IN DECREMENT
LXD TEMP,2 WORD COUNT
TXL READ,2,0 IGNORE CARD WITH ZERO WORD COUNT
TXH ILLCD,2,22 TEST FOR ILLEGAL WORD COUNT
LFT 400000
TRA TSTPC PROGRAM CARD
LNT 200000
TRA TSTSK ABSOLUTE CARD
RIR MULPC MUST BE RELOCATABLE CARD
TXI TSTSK,2,2 SO INCREASE WORD COUNT BY 2
*
TSTPC RFT MULPC
TRA TSTSK
RIR SKIP
TSTSK RFT SKIP
TRA READ YES, IGNORE CARD
SUM ZET IM+1 NO, DO CHECKSUM
LFT 100000
TRA SUMOK IGNORE CHECKSUM
CAL IM COMPUTE CHECKSUM
AXT 0,4 ..
ACL IM+2,4 ..
TXI *+1,4,-1 ..
TIX *-2,2,1 ..
ERA IM+1 ..
TNZ SUMNG CHECKSUM ERROR
SUMOK LXD TEMP,2 RESTORE WORD COUNT
AXT 0,1 RESTORE IR1
LFT 400000
TRA PRCD PROGRAM CARD, SO PROCESS IT
RNT LIBLD IF LOADING IN PROCESS
TRA SKPPR ELSE SKIP PROGRAM
LNT 200000
TRA ABSCD ABSOLUTE CARD, SO LOAD IT
*
TTL LOAD RELOCATABLE CARD
*
* IX1=0 ON BEGINNING
LXA IM,3
AXT 1,6 DIRECT RELOCATION CODE
TSX RLOC,4 MAKE ABSOLUTE LOADING ADDRESS
SXD *+1,3 SAVE IT
TXI *+1,2,**
SXA LRG,2
LXD TEMP,2 RESTORE WORD COUNT
AXT 0,1
LDQ IM+2 1ST WORD RELOC BITS
AXT 37,5
SIR DECREM SET DECREMENT FLAG
L AXT 0,6 IX6 HOLDS RELOCATION CODE
TRA B
.AA LGL 1
LBT
TRA STP IX6 = 0 FOR ABS. = 1 FOR DIR RELOC
TXI *+1,6,1
TXH STP,6,1 IX6 = 2 FOR REV RELOC
B TIX .AA,5,1 IX5 = BITS COUNT
LDQ IM+3 2ND WORD RELOC BITS
AXT 36,5
TRA .AA
STP CAL IM+4,1 WORD TO LOAD
PDX ,3
RNT DECREM
PAX ,3
TXL F,6 SKIP IF NO RELOCATION
TSX RLOC,4
TSX RLOCD,4 SUBTRACT DISTANCE CORE WILL BE MOVED DOWN
F RNT DECREM
TRA E ADDRESS FIELD
PXD ,3
STD IM+4,1
RIR DECREM
TRA L
E PXA ,3
STA IM+4,1
CAL IM+4,1 MOVE IM
LRG SLW **,2 TO ABSOLUTE LOCATION
TNX READ,2,1
TXI L-1,1,-1
*
TTL LOAD ABSOLUTE CARD
*
ABSCD LXA IM,3 RELOCATE ABS CARD TO LOWER MEMORY
TSX COMN,4
SXA *+2,3
CAL IM+2,1 MOVE IM
SLW **,1 TO ABS LOCATION
TNX READ,2,1
TXI *-3,1,-1 ..
*
TTL PROCESS PROGRAM CARD
*
PLPC LXD TAG,6
PXD 0,2 DECR. = NO. OF TABLE ENTRIES
ADM TAG
STD TAG UPDATE TAG FOR ENTRIES ON THIS CARD
RFT MULPC IS THIS A CONTINUATION CARD
TXI LPFA,1,2 YES
CLA IM+3 LOWEST COMMON LO
SSP DELETE SIGN (EVEN SIGNAL) LO
RNT COMSET HAS COMMON RELOCATION BEEN SET
TRA 1STCOM NO, SO SET IT
TZE LPCA ZERO IF NO COMMON IN A FAP PROG.
PAX ,3
RFT NC
TXH COMERR,3,-ERASLE-1 WITH NCLOAD ERASABLE NOT ALLOWED
LDQ LOWCOM
XCL
TLQ COMERR ATTEMPT TO CHANGE COMMON RELOC.
TRA LPCA
*
1STCOM TZE *+3 SET COMMON RELOCATION
LAS =O77461
RIR NC ERASABLE MUST BE USED
CAL =O77461 SET TO 77461 IF ERASABLE USED
STA LOWCOM LOWEST COMMON NOT USED
COM
ADD S + END OF LOADER+1
LBT SKIP IF ODD
TRA *+2
ADD =1 COMMON RELOCATION MADE EVEN
PAX ,3
SXD COMN,3
TIX *+1,3,END+1 COMMON LENGTH INCLUDING ERASABLE
RFT NC
TXI *+1,3,-ERASLE REMOVE ERASABLE IF NCLOAD
PXA ,3 SET MEMORY INCREMENT
TSX INCMEM,5 SET PROGRAM BREAK
SIR COMSET SET SWITCH COMMON SET
LPCA SYN *
TXI *+1,2,-2 ADJUST WORD COUNT FOR FIRST PROGRAM CARD
SXA LPG,2 ..
TXH TBOVL,6,TABLNG-2 TABLE OVERFLOW TEST
LXA S,3 LOCATION OF THIS VECTOR
****************** IBM MOD 37, CHANGE FOR EVEN PSEUDO OP ******** LO
PXA ,3 LO
LDQ IM+3 LOAD 4TH WORD OF PROGRAM CARD LO
TQP *+5 IS EVEN LOADING REQUIRED, NO LO
LBT YES, IS ADDRESS ALREADY EVEN LO
TRA *+3 YES LO
TXI *+1,3,1 NO, ADD ONE LO
SXA S,3 AND STORE NEW LOAD ADDRESS LO
****************** END OF IBM MOD 37 **************************** LO
TSX RLOCD,4
SXA LADD,3 RELOCATED DOWN THE CORE
PXA ,3
STA TABL,6 ENTER IT IN MOVIE TABLE
CLA IM+2 8L, NO. IN VECTOR
STD TABL-1,6 ENTER IT
STA T PROGRAM LENGTH
PDX 0,2 NO. IN VECTOR
TXH *+3,2,0 TEST FOR NO TV
CAL PRMSK TXL MARKER FOR NO TV
SLW TABL-1,6 ..
CAL T UPDAT M. B. LO
TSX INCMEM,5 BY PROGRAM LENGTH LO
LXA LPG,2 RESTORE WORD COUNT
LPFA CAL IM+5,1 RELOCATE ENTRY POINTS
ADD LADD ..
STA IM+5,1 ..
TXI *+1,1,-2 ..
TIX LPFA,2,2 ..
AXT 0,1
LXD TAG,4 NO. OF ENTRIES IN TABLE
TXH TBOVL,4,TABLNG ERROR, TABLE OVERFLOW
TXI *+1,4,-1
RFT MULPC
TXI *+1,1,2 ADDJUST IR1 FOR CONT. PR. CARD
LPG AXT **,2 WORD COUNT ON PROGRAM CARD
CLA IM+4,1 MOVE NAMES AND ENTRY POINTS
STO TABL,4 INTO BSS TABLE
TXI *+1,4,-1 ..
TXI *+1,1,-1 ..
TIX LPG+1,2,1 ..
AA SIR MULPC
TRA READ GET NEXT CARD
*
TTL LIBRARY SEARCH SECTION
*
PRCD SYN *
SXA LPG,2 SAVE WORD COUNT
LSPC RFT MULPC IS THIS A CONTINUATION PROGRAM CARD
TXI LSBB,1,2 YES, SET FOR 8L NAME
RFT LIBSW SKIP IF NOT LIBRARY
RNT LIBLD WERE WE LOADING A PREVIOUS ROUTINE
LSTRV TXI LSB,,** NO
*
LSA SYN * LO
LXD LSTRV,2 CHECK TRA VEC OF LAST ROUTINE LOADED
TXL LSB,2,0 SKIP IF NO VECTOR
PXA ,2 (E-O)COMPUTE LAST LOC.+1 OF T.V.
ADD LADD (E-0)LOAD ADDRESS OF LAST ROUTINE
PAC ,3
TSX RLOCD,4 RELOCATE UP THE CORE
SCA LSA1,3
LSA1 CAL **,2 NAME IN VECTOR
TSX CKPLL,5 CHECK FOR PREVIOUS LOADING
TRA LSA2 ALREADY LOADED
TSX MISNAM,4 ENTER NAME IN MISSING S/R LIST
SIR LLFLG
LSA2 TIX LSA1,2,1 GET NEXT NAME IN VECTOR
*
TTL EXAMINE PROGRAM CARD FOR NAMES OF MISSING ROUTINES
*
LSB SYN *
RFT EFLIB
TRA LSB1 END OF FILE
SIR LIBLD SET LOADING FILE
RNT LIBSW
TRA LSB2 GO LOAD FILE
RIR LIBLD LIBRARY. CONDITIONAL LOADING
NZT FMR ANY MORE MISSING ROUTINES
TRA LSF NO. CLOSE FILE
LSB2 SYN *
CAL IM+4 GET FIRST NAME
SLW SNAME FOR DIAGNOSTICS
CLA IM+2 8L
STD LSTRV NO. IN TRANSFER VECTOR
LXA LPG,2 RESTORE IR2
TXI *+1,2,-2 REDUCE WORD COUNT BY 2
LSBB LAC NMR,4
TXI *+1,4,FMR
SXA LSC,4
NMR AXC **,5 NUMBER OF MISSING ROUTINES
CLA IM+5,1 IX1 = 0 ON BEGINNING, 2 FOR MULPC ON
LSBB1 TMI LSD1 LOOK FOR PRIMARY NAMES FIRST
LSC CAL **,5 MISSING NAME
TZE LSD
ERA IM+4,1 NAME ON PROGRAM CARD
TNZ LSD
RNT LIBLD IF NOT YET LOADING
RNT MULPC IF NOT 1ST PROG. CARD
TRA *+2 ELSE, ENTRY FITS
TRA AL THEN TOO LATE. FOR NEXT PASS
SIR LIBLD FOUND
STZ* LSC REMOVE NAME FROM LIST OF MISSING ROUTINES
LSD TIX LSC,5,1
LSD1 TXI *+1,1,-2 SET FOR NEXT NAME ON PROGRAM CARD
TIX NMR,2,2
AXT 0,1 RESTORE IR1
CLS LSBB1
STO LSBB1 CHANGE TMI TO TPL OR TPL TO TMI
TMI LSE HAVE LOOKED AT SECONDARY NAMES YET
LXA LPG,2 NO
RFT MULPC IS THAT A CONTINUATION PROGRAM CARD
TXI NMR,1,2 YES, ADJUST FOR 8L NAME
TXI NMR,2,-2 NO, REDUCE WORD COUNT
LSE SYN *
RNT LIBLD IF LOADING IN PROCESS
TRA AA ELSE NO DELETIONS
LAC NMR,5 NUMBER OF MISSING ROUTINES
AXT 0,3
AD XEC LSC GET MISSING ENTRY NAMES
TZE AG
SLW FMR,3 MAKE UP FRESH LIST
TXI *+1,3,-1
AG TIX AD,5,1
SXA NMR,3 SAVE COUNT OF MISSING S/R
STZ FMR,3 FREES ONE CELL AHEAD
LXA LPG,2 RESTORE WORD COUNT
TRA PLPC GO PROCESS PROGRAM CARD AND LOAD PROGRAM
*
*
LSF TSX CLOSE,4 HERE FOR NO MORE MISSING ROUTINES LO
TXH NAME1 LO
TXH NAME1+1 LO
TRA NEXT RETURN FOR NEXT REQUEST
*
LSB1 RNT LIBSW
TRA NEXT NEXT ARGUMENT
TRA EFLS1 YES, RETURN TO REPOSITION TAPE
EFLS SIR EFLIB END OF FILE
RFT LIBLD WERE WE LOADING A PROGRAM
TRA LSA YES, GO FINISH UP
EFLS1 ZET FMR ARE THERE ANY MORE MISSING SUBROUTINES
RNT LLFLG IS LOWER LEVEL FLAG ON
TRA NEXT BACK TO REQUEST SECTION
CAL =HTSLIB1 REGULAR LIBRARY NAME
RNT BUG IS THIS A DEBUG COMMAND
TRA P MAKE ANOTHER PASS ON SAME LIBRARY
TRA J TRY REGULAR LIBRARY
*
TTL TVPASS.. REPLACE TRANSFER VECTORS W/ TTR'S
*
TVPASS SYN *
AXT 4,2 SET IR2 FOR PASS2. SKIP MOVIE.
TRA PASS2
*
VEC CAL TABL+1,2
TZE PASS2 SKIP (MAIN) ENTRY NAME
*
G3 ANA PRMSK SVN 0,,0
TNZ PASS2 BCD OR NO TRA VECTOR
CLA TABL+1,2 NUMBER
PDX 0,6 IN VECTOR TO IR4
ARS 18 PLUS
ADM TABL+2,2 LOCATION OF THIS VECTOR
PAC ,3
TSX RLOCD,4 RELOCATE UP THE CORE
SCA BA,3
NXTVC LXD TAG,1
BA CAL **,6 BCD NAME IN VECTOR
ANA PRMSK SVN 0,,0
TZE TIXVEC NOT BCD
CAL* BA
NXTNAM LAS TABL+1,1 LOOK FOR
TTR TTR G4 NAME
TRA FIX
G4 TIX NXTNAM,1,2
TSX MISNAM,4 ENTER NAME IN MISSING S/R LIST
TRA TIXVEC NEXT WORD IN T.V.
*
FIX CLA TTR FOUND, INSERT TTR
STO* BA ..
CLA TABL+2,1 PICK UP
STA* BA AND STORE STARTING ADDRESS
TXH TIXVEC,1,4 SKIP IF NOT 'MOVIE)'
SIR MOVT
TIXVEC TIX NXTVC,6,1
PASS2 TXI *+1,2,2
TAG TXL VEC,2,4 NO. OF TABLE ENTRIES IN DECR. INTIAL = 4
TRA 1,5
*
TTL ROUTINE FOR ADJUSTING REL. FIELD WHILE LOADING
*
RLOC CAL * JUST TO GET PFX=-0
STP C SET TMI
PXA ,3 ADDRESS TO RELOCATE
SSM
TXL *+2,6,1 SKIP IF DIRECT RELOCATION
STP C SET TPL
ADD T + PROGRAM LENGTH
C TMI COMN CHANGED TO TPL IF REVERSE RELOC.
SUB S - CURRENT MEM BOUND
PAX ,3
TRA 1,4 RELOCATED ADDRESS IN IX3
COMN TXI *-1,3,** ** = COMN
RLOCD TXI *-2,3,0 -END-1+NEWORG CORE RELOCATION, MADE EVEN LO
*
TTL ROUTINE TO SEE IF PROGRAM ALREADY IN CORE
REM RETURNS 1,5 IF ALREADY LOADED OR 2,5 IF NOT
*
CKPLL SYN *
LXD TAG,4
TXL CKPLR,4,0 OMIT CHECK FOR NO ENTRIES
TXI *+1,4,-1
LAS TABL,4
TRA *+2
TRA CKPL1 PROGRAM ALREADY LOADED
TIX *-3,4,2 CHECK ALTERNATE ENTRIES
CKPLR SYN * NOT IN
TRA 2,5
*
CKPL1 CAL TABL+1,4 GET ITS ENTRY POINT
TRA 1,5
*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REM
TTL MISNAM. ENTERS NAME IN MISSING ROUTINES LIST.
*
MISNAM SYN *
AXT 0,3
TRA *+2
Q TXL MMSNG,3,-NMMSP TEST TOO MANY MISSING S/R
ZET FMR,3
TRA AE
TZE AF
SLW FMR,3 ENTER NAME
STZ FMR+1,3 FREE CELL AHEAD
AE LAS FMR,3 TEST NAME ALREADY IN
TRA *+2
ZAC YES. FORGET IT
TXI Q,3,-1 KEEP COUNTING MISSING S/R
AF SXA NMR,3 SAVE COUNT OF MISSING ROUTINES
TRA 1,4
*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REM
TTL LJUST. LEFT JUSTIFIES A BLANKS LEAD BCD WORD
*
LJUST AXT 6,3
LDQ =H
Z SLW TEMP SAVE WORD
ARS 30
ERA =H00000 CHECK LEFTMOST CHARACTER
TNZ AC SKIP IF NOT BLANK
CAL TEMP
LGL 6 1 SHIFT TO THE LEFT
TIX Z,3,1
AC CAL TEMP WORD LEFT JUSTIFIED
TRA 1,4
*
TTL ROUTINE TO INCREMENT PROGRAM BREAK AND MEMORY BOUND
*
INCMEM TZE 1,5 RETURN IF NO INCREMENT
STA G
ADD S NEW M.B.
STA S
ARS 15
TNZ COROVR TEST OVERFLOW MEMORY
CAL S
TSX SETMEM,4
STA N
G AXT **,4 INCREMENT
N STZ **,4 CLEAR MEMORY AREA
TIX *-1,4,1
TRA 1,5
*
TTL LIST MISSING ROUTINES
*
REM
NEED RFT BUG IS THIS A DEBUG COMMAND
TRA START YES, BYPASS NEED MESSAGE AND START
NEED1 AXT 0,1
CAL =H NEED
LDQ =O605757575757 1 BLANK
M SLW IM
AXT 0,2
NDLST CAL FMR,1 PICK UP NAME
TZE NDOUT ZERO = END OF LIST
TXI *+1,1,-1 POINT TO NEXT WORD
SLW IM+1,2 THIS NAME INTO OUTPUT LIST
STQ IM+2,2 FOLLOWED BY BLANKS
TXI *+1,2,-2 UP OUTPUT COUNT
TXH NDLST,2,-14 LOOP UNTIL FULL
NDOUT SCD *+2,2
TSX (WFLX),4 OUTPUT LINE TO FLEXO
IM,,** ..
CAL =H
ZET FMR,1 TEST FOR END
TRA M STILL MORE TO LIST
* THIS SEQUENCE WILL BE MODIFIED IF THE (CONT) PARAMETER
* IS USED.
A SYN *
STI TEMP SAVE LOADER'S CONDITIONS
ZAC
TSX SWD+1,5 SWITCH TO USER FILES
TSX DORMNT,4
TRA (USE) REENTRY POINT
(DEAD) CAL HCF
TSX SWD,5
IFF MODE
TSX CHNCOM,4
IFF MODE
PZE DEAD
IFF MODE,1 LO
TIA *+1 LO
IFF MODE,1 LO
BCI 1,DEAD LO
CONPAT EQU *-1 LO
* END OF SEQUENCE
*
TTL ERROR DIAGNOSTIC SECTION
*
NOPRG TSX (WFLX),4 MISSING MAIN PROGRAM
COM1,,3
TRA A EXIT FROM LOADER
*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REM
TBOVL CAL SNAME BSS TABLE OVERFLOW
SLW COM2+7 ROUTINE NAME INTO COMMENT
TSX (WFLX),4
COM2,,8
GODEAD TRA (DEAD)
*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REM
ILLCD CAL NAME1 ILLEGAL CARD IN DECK
SLW COM5+4 FILE NAME
TSX OCBC,4 CONVERT LOADING ADDRESS
SLW COM5+8
STQ COM5+6 SET PROGRAM NAME
TSX (WFLX),4
PZE COM5,,9
TRA GODEAD
*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REM
OCBC CAL IM ADDRESS TO CONVERT
LGR 15 ONLY 5 DIGITS
AXT 5,1
CAL =H JUST TO GET A RIGHT JUSTIFIED BLANK
ALS 3 CONVERT OCTAL TO BCD
LGL 3
TIX *-2,1,1
LDQ SNAME PROGRAM ENTRY NAME
TRA 1,4
*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REM
SUMNG TSX OCBC,4 CHECKSUM ERROR
RIR GO
SLW COM6+6 INTO ERROR COMMENT
STQ COM6+4 PROGRAM NAME INTO ERROR COMMENT
CAL NAME1 FILE NAME
SLW COM6+8
TSX (WFLX),4
COM6,,9
TRA SUMOK IGNORE ERROR AFTER PRINTING
*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REM
COMERR CAL IM+4 COMMON ERROR
SLW COM7+1 PROG NAME INTO COMMENT
TSX (WFLX),4
COM7,,8
TRA GODEAD
*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REM
COROVR CAL S PROGRAM OVERLAPS CORE SPACE
SLW IM SET FOR OCBC
TSX OCBC,4
SLW COM8+5 NO. INTO COMMENT
STQ COM8+1 PROGRAM NAME INTO COMMENT
TSX (WFLX),4
PZE COM8,,8
TRA GODEAD
*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REM
MMSNG TSX (WFLX),4 TOO MANY MISSING ROUTINES
COM10,,9
TRA GODEAD
*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REM
SWD SLW CCF ROUTINE TO SWITCH TO COMMON FILE
TSX COMFIL,4
TXH BUSY COMFIL BUSY
TRA 1,5
BUSY SLW COM11 PROBLEM NO.
STQ COM11+1 USER NO.
CAL COM11+4
ANA =O777777777700
ORA CCF SET COMMON FILE NO. IN MESSAGE
SLW COM11+4
ZAC
TSX COMFIL,4 SWITCH TO USER FILES
BRN BUSY
TSX WRFLX,4
PZE COM11,,10
TSX DORMNT,4
CAL CCF
TRA SWD TRY AGAIN
*
TTL TEMPORARY STORAGE AND CONSTANTS
*
ORIGIN PZE BCD ENTRY FOR STARTING ADDRESS
TEMP PZE TEMPORARY FOR ANY STORAGE
S PZE END+1 CURRENT PROGRAM BREAK. INITIAL = 4632
T PZE PROGRAM LENGTH
LOWCOM PZE LAST LOCATION NOT USED
LADD PZE ABSOLUTE LOADING ADDRESS
HCF PZE HOME COMMON FILE NO.
CCF PZE CURRENT COMMON FILE NO.
ERASLE BOOL 316 LENGTH OF ERASABLE
USELIB BOOL 1 ON = TSSLIB ALLOWED
GO BOOL 2 ON = LOADGO
BUG BOOL 4 ON = DEBUG COMMAND
SKIP BOOL 10 ON = SKIP THIS ROUTINE
MULPC BOOL 20 ON = CONTINUATION PROG. CARD. UNDER WAY
LIBSW BOOL 40 ON = WHEN SEARCHING A LIBRARY
TSPASS BOOL 100 ON = WHEN TSSLIB HAS BEEN SEARCHED
LLFLG BOOL 200 ON = LIBRARY LOADING CREATES NEW S/R MISSIN
EFLIB BOOL 400 ON = END OF LIBRARY REACHED
LIBLD BOOL 1000 ON = WHILE LOADING FROM LIBRARY
MOVT BOOL 4000 ON = 'MOVIE)' IN SOME T.V.
DECREM BOOL 10000 ON = RELOCATING DECREMENT FIELD
ENAM BOOL 20000 ON = NEXT ARGUMENT IS ENTRY NAME
NCV BOOL 40000 ON = TO MOVE CORE DOWN
COMSET BOOL 100000 ON = COMMON HAS BEEN SET
NC BOOL 200000 ON = NO ERASABLE REQUIRED
ORG BOOL 400000 ON = SET STARTING ADDRESS
SNAME BCI 1,******
NAME1 BCI 2,000000 BSS
MOVFIL BCI 2,(MOVIETABLE)
COM1 BCI 3, NO MAIN PROGRAM
COM2 BCI 8, BSS TABLE OVERFLOW, LAST PROGRAM LOADED, 000000
BCI 1,E 00, LO
COM4 BCI 6, ERROR CODE 00, DISK SUBR OPEN FOR
COM3 BCI 5, FILE BSS NOT FOUND LO
COM5 BCI 9, ILLEGAL CARD.. FILE 000000 PROG 000000 ADR. 000000
COM6 BCI 9, CHECKSUM ERROR IN PROG 000000, CARD 00000 FILE 000000
COM7 BCI 8, PROG 000000 ATTEMPTS TO CHANGE COMMON RELOC.
COM8 BCI 8, PROG 000000 OVERLAPS CORE BY 000000 OCTAL LOC.
COM10 BCI 8,MORE THAN 100 MISSING ROUTINES, LOADING STOPS.
COM11 BCI , IS USING COMFIL 0. TYPE 'START' TO TRY AGAIN.
*
IFF MODE,1
FILLER BSS 2 FILLER TO CAUSE LOADING AT (5200)8 LO
IFF MODE
FILLER BSS 58 FILLER TO CAUSE LOADING AT (7000)8 LO
IFF MODE,1
TABLNG EQU 500
IFF MODE
TABLNG EQU 1200
BSS TABLNG-4 MOVIE TABLE
VFD H36/MOVIE),36/KEYWD,O3/7,33/,36/*
TABL SYN *-1
PRMSK SYN TABL-1 T.V. WORD PATTERN
*
IFF MODE,1
NMMSP EQU 100 GIVE THE USER OF FAPBUG A BREAK
IFF MODE
NMMSP EQU 250
LLIST BES NMMSP
FMR SYN LLIST-NMMSP
*
DBL EQU NWDS DISK BUFFER LENGTH = 1 TRACK LO
IFF MODE,1
OLD2 INSERT MACRO FOR OLD LOADER CALLING
DBUF1 BSS DBL
HEADIN INSERT HERE LOADER'S PREFACE
DBUF2 BSS DBL
IM BSS 28
OPNLOC SYN IM ERROR CODE, DISK CALL TO OPEN LO
FENCE SYN SPECTB
ZERO SYN K
KEYWD SYN NEWORG-1 SHOULD BE 27 OCT.
*
*
TTL SUBROUTINE TABLE
*
GETCOM TSS *+1
BCI 1,GETCOM
DORMNT TSS *+1
BCI 1,DORMNT
(WFLX) TSS *+1
WRFLX SYN (WFLX)
BCI 1,WRFLX
COMFIL TIA =HCOMFIL
TSSFIL TSS =HTSSFIL
SETMEM TIA =HSETMEM
CHNCOM TIA =HCHNCOM
GETMEM TIA =HGETMEM
USRFIL TIA =HUSRFIL
GETCF TIA =HGETCF
$BLOCK BCD,0084
END END SHOULD BE 4631 OR 6431 LO
* FAP
$BLOCK BCD,1344
*FAP - IBM 7094 MACRO ASSEMBLY PROGRAM - CTSS COMMAND VERSION. FAP00001
* FAP00002
*TO PRODUCE THE COMMAND, DO FAP00003
* FAP00004
* FAP FAP FAP00005
* NCLOAD FAP FAP00006
* SAVE FAP FAP00007
* RENAME FAP SAVED FAP TSSDC. FAP00008
* FAP00009
*'(SEQ)' OPTION ADDED FOR VARIABLE LENGTH RECORDS MARCH 1970 PBFAP00010
*REF PSEUDOOP MODIFIED, SYMREF PSEUDOOP ADDED SEPT. 69 PBFAP00011
*12BIT - FULL-MODE TEXT PSEUDO-OP, QUOTED ARGUMENT ADDED FEB. 1969 DAFAP00012
*MODIFIED TO ACCEPT BOTH NAMES OF INPUT FILE FEBRUARY 1969 DAFAP00013
*ERROR COMMENTS ONLINE IMPROVED, RECORD COUNT CORRECTED, EMTM ADDED WNFAP00014
*BCI, BCD MODIFIED TO TAKE QUOTED ARGUMENTS FEBRUARY 1969 DAFAP00015
*COMBSS,COMBES PSEUDO-OPERATIONS ADDED FEB. 1969 PBFAP00016
*SAVE, ABBREV, FLAG, MMACRO, MLEVEL, LINK, AND WNFAP00017
*SEQ PSEUDO-OPERATIONS ADDED OCTOBER, 1968 WNFAP00018
*NON-FATAL OMITTED END CARD AND ABBREVIATED ERROR COMMENTS INSTALLED WNFAP00019
*TABLES MOVED TO FOLLOW PASS2 CODE AND HEADINGS MADE 1 + 2 WNFAP00020
*'COLON' DEFINED AS A LEGAL ALPHABETIC CHARACTER, SEPTEMBER 1968 DAFAP00021
*CALLING SEQUENCE AND I/O PARAMETERS BLK,EFA,PAR,IOD,ION,IOP DEFINED DAFAP00022
*BOOLEAN SET PSEUDO-OPERATION 'SETB' ADDED, AUGUST 1968 DAFAP00023
*MODIFIED TO USE 'PROG' AS TEMPORARY FILE SECONDARY NAME, JUNE 1968 DAFAP00024
REM ALSO BETTER DISK FILE MODE CHECKING. DAFAP00025
REM PUT RELOCATION BITS INTO 'SYMTB' FILE DAFAP00026
*FAP COMMAND, MODIFIED FOR VARIABLE LENGTH RECORD INPUT, MARCH 1965 LOFAP00027
REM NEW PSEUDOOPS, NOLNK AND NOSEQ LOFAP00028
REM CHANGE FORMAT FOR ERROR LINES LOFAP00029
*TIME SHARING MACRO FAP THRU MOD 45, COMBINED PASS1, PASS2, FEB 1965 TSFAP00030
REM CORRECT OFF LINE LISTING FOR CTSS (LPO) TSFAP00031
REM PROVIDE ERROR RETURNS, DISK ROUTINES (LPO) TSFAP00032
REM DELETE UPDATE CODING, PASS 1 (LPO) TSFAP00033
REM IGNORE (LIST FLAGGED) UPDATE PSEUDO OPS (LPO) TSFAP00034
REM CORRECT INSERT PSEUDO OP (LPO) TSFAP00035
REM RELOCATABLE ASSEMBLY (LPO) TSFAP00036
REM BLOCKED I/O FOR INTERMEDIATE TAPE (LPO) TSFAP00037
PCC ON TSFAP00038
PMC ON TSFAP00039
COUNT 10000 FAP00040
REM FAP00041
REM LSMTBM IS THE VARIABLE IN CALCULATING 1$CORE WNFAP00042
REM IT SHOULD BE ADJUSTED AT ASSEMBLY TIME SO THAT 1$CORE WNFAP00043
REM EQUALS ZERO WNFAP00044
REM FAP00045
LSMTBM BOOL 37434 MAXIMUM LENGTH OF SYMBOL TABLE WNFAP00046
TITLE FAP00047
HEAD 1,2 COMMON TO PASS ONE AND TWO TSFAP00048
REM TSFAP00049
WRFLXM MACRO E,F TSFAP00050
TSX WRFLX,4 TSFAP00051
PZE E,,F TSFAP00052
WRFLXM END TSFAP00053
REM TSFAP00054
TRAPAA MACRO TRAPNM TSFAP00055
IRP TRAPNM TSFAP00056
TRAPNM TIA *+1 TSFAP00057
BCI 1,TRAPNM FAP00058
IRP TSFAP00059
TRAPAA END TSFAP00060
REM TSFAP00061
REM TSFAP00062
REM PARAMETERS VARIABLE AT ASSEMBLY TIME FAP00063
REM FAP00064
INPRCL SYN 16 LENGTH OF INTERMEDIATE RECORD FAP00065
DSKBKL SYN 432 LENGTH OF DISK BUFFER LOFAP00066
UPDRCL SYN 14 LENGTH OF UPDATE INPUT/OUTPUT RECORD FAP00067
VBLRCL SYN 12 MAX. LENGTH OF V. L. INPUT RECORD LOFAP00068
REM FAP00069
M SYN 1 TABLE FACTORS FAP00070
N SYN 1 FAP00071
LOPTBM SYN 2048 MAXIMUM LENGTH OF MACHINE OPERATION TABLE FAP00072
LMXTBL SYN 1000*M/N MACRO EXPANSION TABLE LENGTH FAP00073
LLITBL SYN 500*M/N*2 LITERAL TABLE LENGTH FAP00074
LTVTBL SYN 250*M/N TRANSFER VECTOR TABLE LENGTH FAP00075
REM TSFAP00076
REM DEFINE RELOCATABLE SYMBOLS TSFAP00077
REM TSFAP00078
REM TSFAP00079
LUDTBM SYN LSMTBM/100 MAXIMUM LENGTH OF UNDEFINED SYMBOL TABLE FAP00080
REM FAP00081
REM FAP00082
C EQU 7 MAXIMUM NUMBER OF DATA CHANNELS IN SYS. TSFAP00083
REM FAP00084
EXPRR SYN 1 SENSE LIGHT FOR ERROR ON EXPRESSION FAP00085
EXPND SYN 2 SENSE LIGHT FOR END OF EXPRESSION FAP00086
FLDND SYN 4 SENSE LIGHT FOR END OF VARIABLE FIELD FAP00087
REM FAP00088
TDMSK BOOL 000001 FLAG FOR TYPE D SENSE OPERATION FAP00089
VLMSK BOOL 000002 FLAG FOR VARIABLE LENGTH OPERATION FAP00090
TKMSK BOOL 000004 FLAG FOR TYPE K DISC COMMAND FAP00091
9OMSK BOOL 020000 FLAG FOR OPERATIONS RESTRICTED TO 709/90 FAP00092
04MSK BOOL 040000 FLAG FOR OPERATIONS RESTRICTED TO 704 FAP00093
TTL COMMON SUBROUTINES, CONSTANTS AND ERASABLE FAP00094
LBL 9F04 FAP00095
REM TSFAP00096
TRA 1$START ENTRY POINT FOR RELOCATABLE ASSEMBLY TSFAP00097
REM FAP00098
REM TRANSFER VECTOR FAP00099
REM FAP00100
CHANS PZE C NUMBER OF CHANNELS IN SYSTEM FAP00101
REM FAP00102
REM ERASABLE INFORMATION TRANSMITTED BETWEEN PASSES FAP00103
BCOREF PZE ** FLAG FOR TSS ASSEMBLY ***TSSFAP00104
MAINPF PZE ,,1 FLAG FOR MAIN PROGRAM (ZERO IF SUBPROGRAM)FAP00105
ABSFLG PZE ** FLAG FOR ABSOLUTE ASSEMBLY FAP00106
LBLFLG PZE ** FLAG FOR OFFLINE CARD LABEL AND SERIAL FAP00107
DELFLG PZE ** FLAG TO DELETE ASSEMBLY FAP00108
SEPFLG SVN -1,7,-1 FLAG FOR STANDARD ERROR PROCEEDURE WNFAP00109
REM SET TO PZE BY 9F04FLOW FAP00110
REM TO DELETE STANDARD ERROR PROCEDURE FAP00111
LITSIZ PZE 22,,** LOG LLITBL,,LITERAL TABLE COUNT FAP00112
REM (LITERAL TABLE LIMITED TO 1024 ENTRIES) FAP00113
PRGBK PZE ** CURRENT PROGRAM BREAK FAP00114
PROLG PZE ** LENGTH OF VECTOR, LINKAGE DIRECTOR FAP00115
REM FAP00116
REM ERASABLE INFORMATION RESET BETWEEN PASSES FAP00117
CHRCTR PZE NEXT CHARACTER IN VARIABLE FIELD FAP00118
RESIDU PZE REMAINDER OF NEXT WORD IN VARIABLE FIELD FAP00119
UPCTR PZE -207,,2 COMMON STORAGE COUNTER,,RELOCATION BIT FAP00120
CDCTR PZE ** ABS CARD ORIGIN COUNTER FAP00121
LOCTR PZE **,,1 PROGRAM COUNTER,,RELOCATION BIT FAP00122
ADDRS PZE **,,1 DEFINITION OF SYMBOL,,RELOCATABLE FLAG FAP00123
OPCOD PZE OP FIELD (CC 8 - 13) FAP00124
DEC ,,,,,,,,, MULTIPLE HEAD CHARACTERS (PRECEDE BHEAD) FAP00125
BHEAD PZE HEADING CHARACTER FAP00126
THEAD PZE HEADING CHARACTER PRECEDING $ FAP00127
SYMB2 PZE HIGH ORDER SIX CHARACTRS ALPHAMERIC FIELD FAP00128
SYMBL PZE LOW ORDER SIX CHARACTERS ALPHAMERIC FIELD FAP00129
VFDFL PZE LOW ORDER HALF OF VARIABLE FIELD FAP00130
PZE HIGH ORDER HALF OF VARIABLE FIELD FAP00131
BINRY PZE 36 BIT BINARY INSTRUCTION, DATA WORD FAP00132
NERAS PZE INTEGER FIELD FAP00133
XERAS PZE EXPONENT (E) FIELD FAP00134
BERAS PZE BINARY (B) FIELD FAP00135
ERASE PZE GENERAL ERASABLE FAP00136
OFLGS PZE FLAGS FOR DECODING OF MACHINE INSTRUCTION FAP00137
VRFLD PZE **,,** CHARACTER COUNT,,WORD COUNT FAP00138
INDFG PZE ** FLAG FOR INDIRECT ADDRESS OP CODE FAP00139
RBITS PZE ** RELOCATION BITS FOR FIELD FAP00140
INDIC PZE **,,** RELOCATION BITS FOR WORD FAP00141
DUPCT PZE ,,** NUMBER OF ITERATIONS IN RANGE OF DUP CARD FAP00142
PZE ** PROGRAM COUNTER AT ENTRY INTO RANGE FAP00143
PZE ** CARD COUNTER AT ENTRY INTO RANGE FAP00144
SKDUP MZE ** RANGE OF DUP TO BE BACKSPACED FAP00145
DUPSW PZE 0 SET NON-ZERO TO MOVE FROM DUP BUFFER TO ITSFAP00146
TVFLG PZE ** FLAG FOR NAME IN TRANSFER VECTOR FAP00147
OPRFG PZE ** FLAG FOR UNDEFINED OPERATION FAP00148
VFDRB PZE ** NUMBER OF BITS REMAINING IN WORD FAP00149
VFDTB PZE ** TOTAL BIT COUNT IN VAR FIELD OF VFD CARD FAP00150
VFDFB PZE ** FIELD BIT COUNT IN VAR FIELD OF VFD CARD FAP00151
ELMEQ PZE ** VALUE OF ELEMENT FAP00152
ELMUN PZE ** NUMBER OF SYMBOLS IN ELEMENT FAP00153
ELMUF PZE ** FLAG FOR SYMBOLS IN ELEMENT FAP00154
REM 0 ABSOLUTE FAP00155
REM -1 COMMON FAP00156
REM +1 RELOCATABLE FAP00157
TRMEQ PZE ** VALUE OF TERM FAP00158
TRMUN PZE ** NUMBER OF SYMBOLS IN TERM FAP00159
TRMUF PZE ** FLAG FOR SYMBOLS IN TERM FAP00160
VAREQ PZE ** VALUE OF EXPRESSION FAP00161
VARUC PZE ** NUMBER OF COMMON SYMBOLS IN EXPRESSION FAP00162
VARUR PZE ** NUMBER OF RELOCATABLE SYMBOLS IN EXPRSSN FAP00163
LINKG PZE ** LOCATION OF LINKAGE DIRECTOR FAP00164
9LPMD PZE ** FLAG FOR BINARY CONTROL CARD FORMAT FAP00165
FULMD PZE ** FLAG FOR BINARY CARD FUL FORMAT FAP00166
BOLMD PZE ** FLAG FOR BOOLEAN FIELD FAP00167
DUPMD PZE ** FLAG FOR RECORD WITHIN RANGE OF DUP FAP00168
ETCMD PZE ** FLAG FOR FOLLOWING CARD A CALL OR VFD ETC FAP00169
FCFLG PZE ** FLAG FOR FIRST CARD GROUP COMPLETED FAP00170
SCNBC PZE ** FLAG FOR BOOLEAN COM FAP00171
SCNBE PZE ** FLAG FOR BOOLEAN ERA FAP00172
SCNFC PZE ** FLAG FOR FIRST CHARACTER IN ELEMENT FAP00173
VFDPF PZE ** MEDAL FOR 36 BIT VFD FAP00174
VFDMD PZE ** FLAG FOR VFD CARD FAP00175
LITVV PZE ** FLAG FOR V TYPE LITERAL FAP00176
MNFLAG PZE ** FLAG FOR 'MACRON' OP FAP00177
LNCFG PZE -1 FLAG FOR NO LOCAL CREATED SYMBOLS FAP00178
CRSSV VFD H18/00.,18/0 SAVED COPY OF CREATED SYMBOLS PARAMS WNFAP00179
VFDHF PZE ** HOLLERITH FIELD FLAG FAP00180
VFDOF PZE ** OCTAL FIELD FLAG FAP00181
NOGOF PZE ** FLAG FOR ASSEMBLY ERROR FAP00182
TYPAF PZE ** FLAG FOR TYPE A 0 00000 0 00000 INSTRUCTN FAP00183
TYPCF PZE ** FLAG FOR TYPE C VARIABLE LENGTH INSTRUCTN FAP00184
REM OR TYPE K WITH HIGH ORDER COUNT FIELD FAP00185
TYPDF PZE ** FLAG FOR TYPE D 0 00000 000000 INSTRUCTN FAP00186
TYPKF PZE ** FLAG FOR TYPE K 00 0000 0 00000 COMMAND FAP00187
OPFLG PZE ** FLAG FOR OP DEFINITION PSEUDOOPERATION FAP00188
UNL1F PZE ** PRELIMINARY FLAG TO SUSPEND LISTING FAP00189
UNLSF PZE ** FLAG TO SUSPEND LISTING FAP00190
TITLF PZE ** FLAG TO SUSPEND LISTING OF GENERATED DATA FAP00191
LBLFG PZE ** BINARY CARD NUMBER LISTING FLAG FAP00192
PRTFG PZE ** FLAG FOR ONLINE PRINTING OF ONE LINE FAP00193
PRTF1 PZE ** PRELIMINARY FLAG FOR ONLINE PRINT FAP00194
DCNFG PZE ** FLAG FOR DECIMAL POINT IN DECCV FAP00195
DCXFG PZE ** FLAG FOR DECIMAL EXPONENT (E) IN DECCV FAP00196
DCBFG PZE ** FLAG FOR BINARY EXPONENT (B) IN DECCV FAP00197
PRTIF PZE ** FLAG FOR MACHINE INSTRUCTION IN PRINT FAP00198
704FG PZE ** FLAG FOR ASSEMBLY IN 704 MODE FAP00199
ORDRF PZE ** FLAG FOR INPUT CARD OUT OF ORDER FAP00200
TTLFG PZE -1 FLAG TO PRINT SUBHEAD (PRESET FOR PASS 1) FAP00201
P1FLG PZE ** PASS 1 FLAGS TRANSMITTED TO PASS 2 FAP00202
REM AS LOW ORDER 18 BITS OF WORD 14 *FAP00203
REM BIT 35 PHASE ERROR FAP00204
REM 34 FOLLOWING CARD IS ETC FAP00205
REM 33 FIELD ERROR FAP00206
REM 32 LITERAL ERROR FAP00207
REM 31 UNRECOGNIZED PSEUDOOP FAP00208
REM 30 MACRO GENERATED CARD FAP00209
REM 29 MISSING PSEUDOOP VARIABLE FIELD FAP00210
REM 18 - 27 MACRO LEVEL NUMBER *FAP00211
REM FAP00212
REM FLAGS FOR ERRORS ON INPUT CARDS FAP00213
DCPFG PZE ** FLAG FOR EXCESS DECIMAL POINT *FAP00214
DCEFG PZE ** FLAG FOR EXCESS EXPONENT (E) *FAP00215
DC2FG PZE ** FLAG FOR EXCESS EXPONENT (B) *FAP00216
ERFDL PZE ** IMPROPER DOLLAR SIGN *FAP00217
ERRFU PZE ** UNDEFINED SYMBOL FAP00218
ERRFM PZE ** MULTIPLY DEFINED SYMBOL FAP00219
ERRFR PZE ** RELOCATION ERROR FAP00220
ERRFP PZE ** PHASE ERROR FAP00221
ERRFL PZE ** LITERAL ERROR FAP00222
ERRFO PZE ** ILLEGAL OPERATION CODE FAP00223
ERRFE PZE ** VACUUM CLEANER FAP00224
ERRFB PZE ** BOOLEAN (OCTAL) ERROR FAP00225
REM FOLLOWING ERRORS ARE NON FATAL FAP00226
ERRFN PZE ** IMPROPER OP CODE FAP00227
ERRF7 PZE ** NON-BLANK CC7 WN FAP00228
ERR49 PZE ** MIXED MODE OPCODE FAP00229
ERRFA PZE ** MISSING ADDRESS FAP00230
ERRFT PZE ** MISSING TAG FAP00231
ERRFD PZE ** MISSING DECREMENT FAP00232
ERRFI PZE ** IMPROPER INDIRECT ADDRESS FAP00233
ERRFF PZE ** EXCESSIVE FIELD FAP00234
ERFFM PZE ** NON-FATAL MULTIPLY DEFINED SYMBOL FAP00235
EFLST PZE *-ERRFN,,*-ERFDL NONFATAL LIST,,LENGTH OF ERROR LIST *FAP00236
REM ADDITIONAL INFORMATION TRANSMITTED BETWEEN PASSES *FAP00237
REM *FAP00238
EVNFLG PZE ** FLAG FOR EVEN CONTAINED IN PROGRAM *FAP00239
REM *FAP00240
REM ERROR CHARACTERS FAP00241
BCI 1,$ *FAP00242
BCI 1,U FAP00243
BCI 1,M FAP00244
BCI 1,R FAP00245
BCI 1,P FAP00246
BCI 1,L FAP00247
BCI 1,O FAP00248
BCI 1,E FAP00249
BCI 1,B FAP00250
REM FOLLOWING ERRORS ARE NONFATAL FAP00251
BCI 1,N FAP00252
BCI 1,7 WN FAP00253
FLG49 BCI 1,4 RESET TO 9 FOR 704 MODE CHANGE FAP00254
BCI 1,A FAP00255
BCI 1,T FAP00256
BCI 1,D FAP00257
BCI 1,I FAP00258
BCI 1,F FAP00259
BCI 1,M FAP00260
EFCHR SYN * FAP00261
REM FAP00262
REM FAP00263
PGHDNG BCI 8,1 FAP ASSEMBLY LISTING ... ... ... DA FAP00264
BCI 8,FILE NAME1 NAME2 PB FAP00265
BCI 2, PAGE 1 FAP00266
REM FAP00267
BLANKS BCI 3, FAP00268
BCI 9, FAP00269
BCI 2, FAP00270
REM FAP00271
PBUFF1 MZE ,,4 PUNCH OUTPUT BUFFER FAP00272
DEC ,,,,,,,,,,,,,,,,,,,,,, FAP00273
IDBUFF DEC ,,, CARD SERIAL BUFFER + ONE WORD SKEW SPACE FAP00274
REM FAP00275
REM BCD CARD BUFFERS FAP00276
REM FAP00277
PFLAG DEC ERROR FLAGS FAP00278
REM OCTAL EXPANSION OF MACHINE INSTRUCTION(41)FAP00279
OCTAL DEC ,,, (45)FAP00280
REM (THIS BUFFER MUST PRECEDE BCDBF) FAP00281
BCDBF DEC ,,,,,,,,,,,,, SOURCE DECK WORKING BUFFER FAP00282
LITRL DEC VALUE OF LITERAL OR PSEUDOOP DEFINITION FAP00283
OPBIN DEC BINARY INSTRUCTION, PSEUDOOP TRANSFER FAP00284
REM (LITRL AND OPBIN MUST FOLLOW BCDBF) FAP00285
REM FAP00286
INSBF BCI 9, FAP00287
BCI 8, INSERTED FAP00288
REM FAP00289
ORDBF BCI 9, FAP00290
BCI 9, ORDER ERROR FAP00291
REM FAP00292
REM TIME SHARING, CORE A SUBROUTINES LOFAP00293
REM FAP00294
TRAPAA (NEXCOM,GETIME,GETCLS) WNFAP00295
TRAPAA (WRFLXA,WHOAMI,RDFLXA,SETBCD) DAFAP00296
TRAPAA (WRFLX,SETMEM,CHNCOM) TSFAP00297
TRAPAA (WRFILE,WRWAIT,RDWAIT,OPEN,CLOSE,IODIAG) FAP00298
TRAPAA (BUFFER,DELFIL,CHFILE,FSTATE) LOFAP00299
REM FAP00300
DORMNT TSX CHNCOM,4 EXIT FROM FAP, LOFAP00301
PZE 0 DEAD IF NO WAITING COMMAND WNFAP00302
REM TSFAP00303
REM TIME SHARED SYMBOLS TSFAP00304
FAPNAM BCI 1, FAP ASSUMED NAME2, IS PATCHED BY SAVE WNFAP00305
SAVFAP BCI 1, TEMP. FOR NAME2 DURING INSERT WNFAP00306
FILNAM BCI 1, INPUT FILE NAME LOFAP00307
OLDNAM BCI 1, SAVE PRIMARY NAME FOR PASS 2 FAP00308
FAPFAP BCI 1, FAP SECONDARY NAME, PATCHED BY SAVE WNFAP00309
FAPBSS BCI 1, BSS THE BSS FILE LOFAP00310
FAPSYM BCI 1, SYMTB THE SYMBOL TABLE FILE LOFAP00311
REM TSFAP00312
TEMBCD BCI 1,FAPBCD TEMPORARY BCD TSFAP00313
TEMBSS BCI 1,FAPBSS TEMPORARY BSS TSFAP00314
TEMSYM BCI 1,FAPSYM TEMPORARY SYMTB TSFAP00315
INTERM BCI 1,FAPTEM TEMPORARY FILE FOR FAP2 TSFAP00316
FAPTEM BCI 1,****** SECONDARY NAME FOR ALL TEMPS DAFAP00317
REM TSFAP00318
FAPABS BCI 1, ABS ABSOLUTE BINARY NAME TSFAP00319
DSQR BCI 1,R =HR FOR DISK CALLS LOFAP00320
DSQW BCI 1,W =HW FOR DISK CALLS LOFAP00321
ENDEND PON 1$ENDOP,,2$ENDOP TRANSFERS FOR SIMULATED END WNFAP00322
BCDBCD FAP00323
REM TSFAP00324
REM SAVE CRUCIAL INFO BEFORE STARTING INSERT FILE LOFAP00325
REM FAP00326
SAVNAM BCI 1,000000 MAIN FAP FILE NAME LOFAP00327
SAVEFT PZE EOF FLAG FAP00328
SAVCTR PZE CONTROL WORD LOFAP00329
SAVXR1 PZE POSITION IN DISK BUFFER LOFAP00330
SAVDK5 PZE BUFFER EMPTY TEST LOFAP00331
SAVSER PZE SEQUENCE NUMBER PBFAP00332
REM FAP00333
FAPLS1 PZE 0 NON-ZERO WHEN OFFLINE LIST FILE WANTED TSFAP00334
ONLNN PZE 0 NON-ZERO FOR ONLINE LISTING TSFAP00335
SHORTL PZE 0 NON-ZERO WHEN COMMENTS REMOVED TSFAP00336
ONERR PZE 0 NON-ZERO FOR CONSOLE ERROR LISTING TSFAP00337
SQFLG PZE 0 NON-ZERO FOR NO SEQUENCE CHECKING LOFAP00338
INFLG PZE 0 NON-ZERO FOR INPUT CARD LOFAP00339
RECNO PZE 0 COUNT INPUT CARDS FOR ERROR PRINTS LOFAP00340
REM TSFAP00341
REM WRITE LINE FOR OFFLINE BCD FILE. TSFAP00342
REM IF NO OFFLINE FILE REQUESTED (FAPLS1 = ZERO), TSFAP00343
REM THEN FPRINT SYN WRITT. TSFAP00344
REM CALL IS TSX FPRINT,4 TSFAP00345
REM PZE FWORD,,COUNT TSFAP00346
REM (MZE FWORD,,COUNT ON LINE) TSFAP00347
REM ( 0 BLANK LINE) TSFAP00348
REM TSFAP00349
FPRINT NZT FAPLS1 IS AN OFFLINE FILE REQUESTED TSFAP00350
TRA WRITT NO, GO TO WRITT TSFAP00351
SXA FPRNX,4 SAVE CALLING LINKAGE TSFAP00352
SXA FPRNX+1,2 SAVE WORD COUNT FAP00353
SXA FPRNX+2,1 SAVE CHARACTER COUNT FAP00354
CLA 1,4 LOAD PARAMETER FAP00355
STO FPRN2 INCLUDING PREFIX TSFAP00356
PDX ,2 LOAD WORD COUNT FAP00357
PAGCNT AXT **,1 LOAD PAGE LINE COUNT (38)FAP00358
PAGENO AXT **,4 LOAD PAGE NUMBER (38)FAP00359
TXH FPRN0,2,0 IS BLANK LINE REQUESTED *FAP00360
LDQ IOBLK YES,LOAD PARAMETER FOR BLANK LINE *FAP00361
STQ FPRN2 INITIALIZE I/O COMMAND *FAP00362
TXL FPRN0,1,0 IS BLANK LINE AT TOP OF PAGE (38)FAP00363
TXH FPRN0,1,4 IS BLANK LINE AT BOTTOM OF PAGE (38)FAP00364
ZSA PAGCNT YES, EJECT PAGE (38)FAP00365
TXH FPRNX,4,0 TRANSFER IF NOT FIRST PAGE (38)FAP00366
REM LINE IS NOT BLANK,OR NOT AT BOTTOM OF PAGE (38)FAP00367
FPRN0 TPL *+2 IS THIS LINE FORCED (38)FAP00368
STL PRTF1 YES,SET FLAG (38)FAP00369
TIX FPRN1,1,1 IS PAGE FULL (38)FAP00370
TXI *+1,4,1 YES, BUMP PAGE NUMBER (38)FAP00371
SXA PAGENO,4 (38)FAP00372
PXA ,4 LOAD NEW PAGE NUMBER FAP00373
TSX BCDCV,4 *CONVERT TO BCD FAP00374
LDQ BLANKS APPEND FOLLOWING BLANKS FAP00375
LGR 6 LEFT ADJUST FAP00376
TNZ *-1 FAP00377
STQ PGHDNG+17 INSERT IN PAGE HEADING FAP00378
TSX WRITT,4 *WRITE PAGE HEADING FAP00379
IOCD PGHDNG,,18 FAP00380
NZT TTLFG IS SUBTITLE SPECIFIED FAP00381
TRA *+3 NO FAP00382
TSX WRITT,4 *YES, WRITE IT FAP00383
IOHED IOCD BLANKS,,14 FAP00384
TSX WRITT,4 *WRITE BLANK LINE FAP00385
IOBLK IOCD BLANKS,,3 FAP00386
CLA (PGCT) RESET LINE COUNT FAP00387
PDX ,1 FAP00388
ZET TTLFG IS SUBTITLE SPECIFIED FAP00389
TXI *+1,1,-1 YES, BUMP PAGE LINE COUNT DOWN ONE FAP00390
TRA PATCH *FAP00391
FPRN1 CLA PRTF1 NO, SET ONLINE PRINT FLAG FAP00392
STO PRTFG FAP00393
STZ PRTF1 RESET INTERMEDIATE FLAG FAP00394
TSX FPRNA,4 *TEST FOR PRINT CONTROL, SET XR4 *FAP00395
FPRN2 IOCD **,,** FAP00396
SXA PAGCNT,1 SAVE PAGE LINE COUNT FAP00397
FPRNX AXT **,4 RELOAD CALLING LINKAGE FAP00398
AXT **,2 RELOAD WORD COUNT FAP00399
AXT **,1 RELOAD CHARACTER COUNT FAP00400
TRA 2,4 FAP00401
(PGCT) PZE 0,0,56 TSFAP00402
REM FAP00403
REM WRITE LINE ON AND OFF LINE. TSFAP00404
REM CALLING SEQUENCE SAME AS FOR FPRINT. TSFAP00405
REM TSFAP00406
WRITT SXA WRITX,4 SAVE XRS TSFAP00407
SXA WRITX+1,1 LOFAP00408
SXA WRITX+2,2 LOFAP00409
CLA 1,4 FWORD,,COUNT LOFAP00410
PDX 0,2 XR2 = NO. OF WORDS LOFAP00411
ZET FAPLS1 IS AN OFFLINE FILE REQUESTED LOFAP00412
TRA WRIT4 LOFAP00413
TPL WRITX NO, EXIT FOR PREFIX PZE LOFAP00414
TXL WRITX,2,0 EXIT FOR BLANK LINE LOFAP00415
REM FAP00416
REM WE MUST PRINT IT, SO MOVE LINE TO BUFFER LOFAP00417
REM FAP00418
WRIT4 TXL *+2,2,20 20 WORDS MAXIMUM LOFAP00419
AXT 20,2 LOFAP00420
TXH WRIT5,2,0 IS IT A BLANK LIME LOFAP00421
CAL WRBLA BLANKS,,3 LOFAP00422
PDX 0,2 XR2 = NO. OF WORDS LOFAP00423
WRIT5 SXA WRBUF-1,2 SET CONTROL WORD ADDRESS LOFAP00424
STA WRIT6 LOFAP00425
AXT 0,4 LOFAP00426
WRIT6 CLA **,4 MOVE THE LINE TO PRINT LOFAP00427
STO WRBUF,4 TO WRITE BUFFER LOFAP00428
TXI *+1,4,-1 LOFAP00429
TIX WRIT6,2,1 LOFAP00430
LXA WRBUF-1,2 RESTORE XR2 = NO, OF WORDS LOFAP00431
NZT FAPLS1 IS AN OFFLINE FILE REQUESTED LOFAP00432
TRA WRIT8 NO, GO PRINT ONLINE LOFAP00433
* FAP00434
*DOUBLE BUFFERED OUTPUT FOR BCD FILE, MOVE LINE TO DISK BUFFER LOFAP00435
*DISK BUFFER ADDRESSES (WBUFF3, WBUFF4) CHANGED BY WRFIL. LOFAP00436
* FAP00437
TXI *+1,2,WRBUF WRBUF + COUNT LOFAP00438
SXA WRT12,2 LOFAP00439
WRT10 AXT **,1 XR1 = POSITION IN DISK BUFFER LOFAP00440
LXA WRBUF-1,2 LOFAP00441
TXI *+1,2,1 XR2 = NO. OF WORDS TO MOVE LOFAP00442
WRT11 TXH WRT12,1,-DSKBKL LOOP, TEST BUFFER FULL LOFAP00443
TXL WRT12,1,0 NO, CONTINUE LOFAP00444
SXA WRT10,1 LOFAP00445
TSX WRFIL,4 YES, GO WRITE DISK LOFAP00446
WRT12 CAL **,2 MOVE WORD FROM WRITE BUFFER LOFAP00447
WRT13 SLW WBUFF3,1 TO DISK BUFFER LOFAP00448
TXI *+1,1,-1 LOFAP00449
TIX WRT11,2,1 LOFAP00450
SXA WRT10,1 SAVE NEW POSITION IN BUFFER LOFAP00451
TRA WRIT8 AND GO PRINT ONLINE LOFAP00452
* FAP00453
*SUBROUTINE WRFIL WRITES 432 WORDS TO BCD FILE. LOFAP00454
*CALLED BY SUBROUTINE FPRINT = WRITT ONLY. LOFAP00455
* FAP00456
*BCD FILE IS NOT OPENED UNTIL BEGINNING OF PASS 2, LOFAP00457
*HENCE MAXIMUM OF 432 WORDS IS AVAILABLE FOR 'SOURCE LOFAP00458
*ORDER ERROR' DIAGNOSTICS IN PASS 1. START OF PASS 1 SETS LOFAP00459
* WRFIL TRA WRIT8 LOFAP00460
*FOR SKIP AFTER 432 WORDS. END OF PASS 1 RESTORES INSTRUCTION. LOFAP00461
* FAP00462
WRFIL SXA WRFL1,4 SAVE XRS LOFAP00463
LAC WRT10,1 XR1 = NO. OF WORDS TO WRITE LOFAP00464
TXL WRFL1,1,0 LOFAP00465
SXD WRFL0,1 LOFAP00466
LXA WRFL0,4 EXCHANGE THE BUFFERS LOFAP00467
CLA WRT13 WBUFF3 OR WBUFF4 LOFAP00468
STA WRFL0 LOFAP00469
SXA WRT13,4 LOFAP00470
TSX WRFILE,4 WRITE BCD FILE LOFAP00471
BRN TEMBCD LOFAP00472
BRN FAPTEM LOFAP00473
BRN Q0 LOFAP00474
WRFL0 BRN WBUFF4,,** 432 WORDS EXCEPT LAST PARTIAL BLOCK LOFAP00475
BRN WRFL3 APPENDIN, NO EOF LOFAP00476
BRN P4 LOFAP00477
BRN WRFL3 LOFAP00478
AXT 0,1 NEW POSITION IN DISK BUFFER LOFAP00479
SXA WRT10,0 LOFAP00480
WRFL1 AXT **,4 RESTORE XRS LOFAP00481
TRA 1,4 RETURN LOFAP00482
* FAP00483
*ERROR RETURN, TERMINATE BCD FILE BUT CONTINUE ASSEMBLY. LOFAP00484
* FAP00485
WRFL3 TSX DSERP,4 GET ERROR CODE LOFAP00486
ORS WRFL4+2 LOFAP00487
WRFLXM WRFL4,6 PRINT MESSAGE LOFAP00488
WRFLXM WRFL4+6,9 FAP00489
TSX STASH,4 CLOSE THE FILE LOFAP00490
PZE TEMBCD,,FAPBCD LOFAP00491
STZ FAPLS1 SET FLAG FOR NO OFFLINE LOFAP00492
WRFL5 TRA WRIT8 GO PRINT ON LINE LOFAP00493
WRFL4 BCI 6,ERROR CODE 00 WRITING BCD FILE LOFAP00494
BCI 9,BCD FILE WILL BE INCOMPLETE. ASSEMBLY CONTINUING. FAP00495
REM FAP00496
REM PRINT LINE ON CONSOLE, SHORT LINE OR ERROR LINE, LOFAP00497
REM SEQUENCED OR VARIABLE LENGTH RECORD. LOFAP00498
REM LOFAP00499
WRIT8 LXA WRITX,4 RESTORE XR4 LOFAP00500
CLA 1,4 FWORD,,COUNT LOFAP00501
TPL WRITX EXIT FOR PREFIX PZE LOFAP00502
PDX 0,2 XR2 = NO. OF WORDS LOFAP00503
TXL WRITX,2,0 EXIT FOR BLANK LINE LOFAP00504
ZET SHORTL IS A SHORT LINE WANTED LOFAP00505
TRA WRTT1 YES LOFAP00506
ZET ONERR NO, IS ERROR LINE WANTED LOFAP00507
TRA WRTT3 YES LOFAP00508
REM REENTRY TO PRINT SHORT OR ERROR LINE ON CONSOLE LOFAP00509
WRIT1 SXD WRIT2,2 WORD COUNT LOFAP00510
TSX WRFLX,4 PRINT ONE LINE LOFAP00511
WRIT2 PZE WRBUF,,** LOFAP00512
TNX WRITX,2,14 EXIT FOR SHORT OR ERROR LINE LOFAP00513
SXD WRIT3,2 LONG LINE, NEW COUNT LOFAP00514
LXA WRIT2,4 LOFAP00515
TXI *+1,4,12 NEW FIRST WORD LOFAP00516
SXA WRIT3,4 LOFAP00517
TSX WRFLX,4 PRINT SECOND LINE LOFAP00518
WRIT3 PZE **,,** LOFAP00519
WRITX AXT **,4 RESTORE XRS LOFAP00520
AXT **,1 LOFAP00521
AXT **,2 LOFAP00522
TRA 2,4 EXIT LOFAP00523
REM LOFAP00524
REM SET FOR SHORT LINE, SEQUENCED OR VARIABLE LENGTH LOFAP00525
REM LOFAP00526
WRTT1 TXH *+3,2,17 IS THIS A SEQUENCED LINE LOFAP00527
TXL WRIT1,2,14 NO, 14 WORDS MAXIMUM LOFAP00528
TRA WRTT2 AND GO TO PRINT LOFAP00529
CAL WRBUF+17 LOFAP00530
SLW WRBUF+12 YES, MOVE THE SEQUENCE NUMBER LOFAP00531
CAL WRBUF+18 TO DELETE AFTER COLUMN 42 LOFAP00532
SLW WRBUF+13 LOFAP00533
WRTT2 AXT 14,2 SET FOR SINGLE LINE LOFAP00534
TRA WRIT1 AND GO TO PRINT LOFAP00535
REM LOFAP00536
REM ERROR LINE, DELETE OCTAL TRANSLATION AND INSERT ID LOFAP00537
REM LOFAP00538
WRTT3 CAL DSES1+1 PICKUP ONE BLANK AND FIVE NULLS WNFAP00539
SLW WRBUF+4 STORE WHERE SPACING IS NEEDED WNFAP00540
CAL WRBUF PICKUP FLAGS AND MOVE OVER FOR PRINT WNFAP00541
SLW WRBUF+3 .. WNFAP00542
TXI *+1,2,-5 COUNT MOVES DOWN FIVE WNFAP00543
TXL LMARK,2,12 NO SEQ NO AND NO MACRO LEVEL NO WNFAP00544
AXT 12,2 WRFLX HAS MAX OF 14 WORDS. DO CARD ALONE WNFAP00545
CAL WRBUF+18 TEST 2ND PART OF SEQNO AND MLEVEL RRFAP00546
ARS 24 .. RRFAP00547
ERA 2BLKS IF SEQNO IS BLANK RRFAP00548
TZE MLEV1 NO SEQ NO, SO USE RECNO WNFAP00549
CLA WRBUF+17 CARD IMAGE, SEQ NO PRESENT SO PRINT IT WNFAP00550
LDQ WRBUF+18 ALONG WITH MACRO LEVEL NUMBER, IF ANY WNFAP00551
DST WRBUF+1 AT THE VERY BEGINNING OF THE LINE WNFAP00552
TRA WRT33 GO SET UP WRFLX WNFAP00553
REM FAP00554
LMARK CAL 4BLKS PICKUP 4 BLANKS AND TWO NULLS FOR MLEVEL WNFAP00555
SLW WRBUF+2 PLACE JUST BEFORE FLAGS, AFTER RECNO WNFAP00556
TRA MLEV2 GO GET RECORD NUMBER FOR FIRST WORD WNFAP00557
REM FAP00558
MLEV1 CAL WRBUF+18 PICKUP MACRO LEVEL NUMBER WNFAP00559
ERA 37S =O373700000000 CONVERT 60 TO 57(NULL) WNFAP00560
SLW WRBUF+2 PLACE RIGHT AFTER RECORD NUMBER WNFAP00561
REM FAP00562
MLEV2 TSX RECBC,4 GO GET RECORD NUMBER INTO MQ WNFAP00563
XCL BRING INTO AC WNFAP00564
ERA ONE37 =O370000000000 CONVERT LEADING BLANK WNFAP00565
SLW WRBUF+1 PUT INTO FIRST WORD IN LINE WNFAP00566
REM FAP00567
WRT33 SXD WRTTS,2 PLACE WORD COUNT INTO ACORE CALL WNFAP00568
TSX WRFLXA,4 WRITE OUT FIRST FOUR WORDS WNFAP00569
FOUR WRBUF+1,,4 IN SEPARATE CALL TO WRFLXA WNFAP00570
TSX WRFLX,4 WRITE OUT CARD IMAGE WNFAP00571
WRTTS FOUR WRBUF+5,,** WNFAP00572
TRA WRITX WE ARE DONE WNFAP00573
REM LOFAP00574
WRBLA PZE BLANKS,,3 LOFAP00575
SVN 0,0,-1 RECORD MARK FOR OFFLINE PRINT LOFAP00576
DSBUF EQU * SAVE A WORD HERE AND THERE WNFAP00577
WRBUF BSS 20 OUTPUT PRINT BUFFER LOFAP00578
2BLKS BCI 1,0000 TWO BLANKS RRFAP00579
4BLKS OCT 606060605757 WNFAP00580
ONE37 OCT 370000000000 WNFAP00581
37S OCT 373700000000 WNFAP00582
REM LOFAP00583
REM SUBROUTINE TO CONVERT RECORD NUMBER TO BCD LOFAP00584
REM LOFAP00585
RECBC SXA RECBX,4 SAVE LINKAGE PBFAP00586
LDQ RECNO GET RECORD NO. PBFAP00587
TSX BTDC,4 CONVERT TO BCD PBFAP00588
ORA RECB2 LEADING BLANK PBFAP00589
XCL TO MQ PBFAP00590
RECBX AXT -,4 RESTORE LINKAGE PBFAP00591
TRA 1,4 RETURN PBFAP00592
RECB2 BCI 1, 00000 LOFAP00593
REM FAP00594
REM BTDC, CONVERT BINARY TO DECIMAL BCD PBFAP00595
REM FAP00596
BTDC ZAC ENTER WITH ARG IN AC PBFAP00597
VDP 1E5B40,,30 FORM 100000 DIGIT PBFAP00598
VDP 1E4B34,,6 FORM 10000 DIGIT PBFAP00599
VDP 1E3B28,,6 FORM 1000 DIGIT PBFAP00600
VDP 1E2B22,,6 FORM 100 DIGIT PBFAP00601
VDP 1E1B16,,6 FORM 10 DIGIT PBFAP00602
VDP 1E0B10,,6 FORM 1 DIGIT PBFAP00603
XCL RESULT TO AC PBFAP00604
TRA 1,4 RETURN PBFAP00605
REM FAP00606
1E5B40 DEC 1E5B40 .. PBFAP00607
1E4B34 DEC 1E4B34 .. PBFAP00608
1E3B28 DEC 1E3B28 .. PBFAP00609
1E2B22 DEC 1E2B22 .. PBFAP00610
1E1B16 DEC 1E1B16 .. PBFAP00611
1E0B10 DEC 1E0B10 .. PBFAP00612
REM FAP00613
* FAP00614
*SUBROUTIN READK UNPACKS INPUT BUFFER (REPLACES .READK) LOFAP00615
*CALLING SEQUENCE TSX READK,4 LOFAP00616
* PZE FWORD,,WDCNT LOFAP00617
*RETURN WITH AC NON-ZERO FOR END OF FILE REACHED LOFAP00618
* FAP00619
*BUFFER NAME (RBUFF1 OR INBUF1) IS SET WHEN FILE IS OPENED. LOFAP00620
* FAP00621
*READS INPUT FILES IN PASS 1, INTERM FILE IN PASS 2. LOFAP00622
*ASSUMES READING ONLY ONE FILE AT A TIME -- CRUCIAL INFO LOFAP00623
* IS SAVED WHEN INSERTING FILE IN PASS 1. LOFAP00624
* FAP00625
READK SXA REDKX,1 SAVE XRS LOFAP00626
SXA REDKX+1,2 LOFAP00627
SXA REDKX+2,4 LOFAP00628
CLA 1,4 GET CALLING SEQUENCE LOFAP00629
LGR 18 LOFAP00630
STA REDK1 WDCNT FOR XR2 LOFAP00631
PXD 0,0 LOFAP00632
LGL 18 LOFAP00633
ADM REDK1 FWORD + WDCNT LOFAP00634
STA REDK4 LOFAP00635
REDK0 AXT **,1 XR1 = POSITION IN BUFFER LOFAP00636
REDK1 AXT **,2 XR2 = NO. OF WORDS TO MOVE LOFAP00637
REDK2 TXH REDK3,1,-2*DSKBKL LOOP, IS BUFFER EMPTY LOFAP00638
TSX RDFIL,4 YES, READ NEXT 2 TRACKS LOFAP00639
AXT 0,1 NEW POSITION IN BUFFER LOFAP00640
REDK3 CLA **,1 MOVE FROM RBUFF1 OR INBUF1 LOFAP00641
REDK4 STO **,2 TO FWORD BLOCK LOFAP00642
TXI *+1,1,-1 LOFAP00643
TIX REDK2,2,1 LOFAP00644
SXA REDK0,1 SAVE FINAL POSITION IN BUFFER LOFAP00645
ZAC CLEAR AC LOFAP00646
NZT RDEFT HAS EOF BEEN REACHED LOFAP00647
TRA REDKX NO, EXIT LOFAP00648
REDK5 TXH REDKX,1,** YES, IS BUFFER EMPTY LOFAP00649
REDK6 CLA * YES, SET AC NOT ZERO LOFAP00650
REDKX AXT **,1 RESTORE XRS LOFAP00651
AXT **,2 LOFAP00652
AXT **,4 LOFAP00653
TRA 2,4 RETURN LOFAP00654
* FAP00655
*SUBROUTINE RDFIL READS 864 WORDS (2 TRACKS) TO DISK BUFFER. LOFAP00656
*BUFFER NAME AND FILE NAME SET WHEN FILE IS OPENED. LOFAP00657
*CALLING SEQUENCE TSX RDFIL,4 LOFAP00658
*CALLED FROM SUBROUTINE READK ONLY. LOFAP00659
* FAP00660
RDFIL SXA RDFLX,4 SAVE LINKAGE LOFAP00661
TSX RDWAIT,4 READ AND DELAY LOFAP00662
RDFL0 BRN FILNAM OR INTERM FILE FOR PASS 2 LOFAP00663
BRN FAPFAP LOFAP00664
BRN Q0 LOFAP00665
RDFL1 BRN **,,2*DSKBKL 2 TRACKS TO BUFFER LOFAP00666
BRN RDEOF LOFAP00667
BRN RDFCT LOFAP00668
BRN DSERN LOFAP00669
RDFLX AXT **,4 RESTORE LINKAGE LOFAP00670
TRA 1,4 RETURN LOFAP00671
* FAP00672
*END OF FILE RETURN, SET TO EXIT WHEN BUFFER EMPTY. LOFAP00673
* FAP00674
RDEOF LAC RDFCT,4 NUMBER OF WORDS READ LOFAP00675
SXD REDK5,4 FOR EOF TEST LOFAP00676
STL RDEFT SET EOF FLAG LOFAP00677
RDFL2 TXL REDK6,4,0 OR GO TO ENDFA, PASS 2 (NO WORDS READ) FAP00678
TRA RDFLX EXIT FROM RDFIL LOFAP00679
RDEFT PZE LOFAP00680
RDFCT PZE LOFAP00681
REM FAP00682
*SUBROUTINE DSTES TESTS FILES TO BE DELETED FOR MODE, STATUS, LINKS LOFAP00683
*CALLING SEQUENCE TSX DSTES,4 LOFAP00684
* PZE NAME1,,NAME2 LOFAP00685
*ALL FILES ARE TESTED AT BEGINNING OF PASS 1-- LOFAP00686
*ASSEMBLY IS TERMINATED IF ANY FILE CANNOT BE DELETED LOFAP00687
* FAP00688
DSTES STZ TEMFLG NOT TEMPORARY, QUIT IF PROTECTED. DAFAP00689
DSTS1 SXA DSTX4,4 ENTRY FROM DSDEL FOR TEMPORARY FILES. DAFAP00690
CAL 1,4 DAFAP00691
STA DSTN1 GET FILE NAMES DAFAP00692
STA DSTN3 DAFAP00693
ARS 18 DAFAP00694
STA DSTN2 DAFAP00695
STA DSTN4 DAFAP00696
TSX FSTATE,4 AND FILE STATUS. DAFAP00697
DSTN1 PTH ** DAFAP00698
DSTN2 PTH ** DAFAP00699
PTH DSBUF,,8 DAFAP00700
PTH DSTER DAFAP00701
PTH DSTRC DAFAP00702
CLA DSBUF+1 IF MODE IS NEGATIVE, DAFAP00703
TMI DSTLK FILE IS A LINK. DAFAP00704
PAI STASH THE MODE, DAFAP00705
CLA DSBUF+2 AND SEE DAFAP00706
SUB Q1 IF ACTIVE. DAFAP00707
TNZ DSTAC AHA... DAFAP00708
RFT 134 CHECK MODE, IF P/V/W/R DAFAP00709
ZET TEMFLG AND NOT A TEMPORARY, DAFAP00710
TRA DSTCH DAFAP00711
TRA DSTMD1 DAFAP00712
REM DAFAP00713
DSTMD NZT TEMFLG DAFAP00714
TRA DSKBD DAFAP00715
DSTMD1 LDQ DSBUF+1 CALL IT BAD MODE. DAFAP00716
RQL 27 DAFAP00717
ZAC DAFAP00718
LGL 3 DAFAP00719
ALS 3 DAFAP00720
LGL 3 DAFAP00721
ALS 3 DAFAP00722
LGL 3 DAFAP00723
STA DSTM1+2 DAFAP00724
CAL DSTM1 DAFAP00725
REM FAP00726
DSTRM SLW DST.M HERE FOR ERROR, SAVE COMMENT. DAFAP00727
CLA* DSTN1 DAFAP00728
LDQ* DSTN2 DAFAP00729
DST DSTMS PUT FILE NAME IN MESSAGE DAFAP00730
TSX WRFLXA,4 DAFAP00731
DSTMS,,2 DAFAP00732
TSX WRFLX,4 DAFAP00733
DST.M **,,** DAFAP00734
NZT TEMFLG DAFAP00735
TRA DSASK DAFAP00736
DSTBD STL DSASK ELIMINATE EXTRANEOUS QUESTIONS DAFAP00737
SXD STAR2,0 SET ERROR EXIT. DAFAP00738
DSTND CAL * FLAG TO NOT DELETE. DAFAP00739
DSTX4 AXT **,4 DAFAP00740
TRA 2,4 DAFAP00741
REM FAP00742
DSTER CLA DSTRC HERE FOR FSTATE ERROR. DAFAP00743
SUB Q3 DAFAP00744
TZE DSTND 'NO FILE', RETURN GOOD WITH NO DELETE. DAFAP00745
TMI DSERN SYSTEM/MACHINE ERROR. DAFAP00746
SUB Q3 DAFAP00747
TPL DSERN MORE ERRORS. DAFAP00748
REM DAFAP00749
DSTLK CAL DSTM2 LINKED FILE, DAFAP00750
TRA DSTRM GO COMPLAIN. DAFAP00751
REM DAFAP00752
DSTAC CAL DSTM3 FILE IS ACTIVE. DAFAP00753
TRA DSTRM DAFAP00754
REM DAFAP00755
DSASK TSX SETBCD,4 DAFAP00756
TSX WRFLXA,4 DAFAP00757
DSTM5,,5 DAFAP00758
TSX RDFLXA,4 DAFAP00759
DSBUF,,1 DAFAP00760
CAL DSBUF DAFAP00761
ERA DSYES DAFAP00762
TZE DSTCH DAFAP00763
DSKBD TSX WRFLX,4 DAFAP00764
DSTM6,,2 DAFAP00765
TRA DSTBD DAFAP00766
REM DAFAP00767
DSTCH TSX CHFILE,4 TRY TO MAKE FILE TEMPORARY MODE. DAFAP00768
DSTN3 PTH ** DAFAP00769
DSTN4 PTH ** DAFAP00770
PTH Q1 DAFAP00771
PTH P4 DAFAP00772
PTH P4 DAFAP00773
PTH DSTMD IF ERROR, ASSUME MODE PROBLEMS. DAFAP00774
PXD ,0 IT WORKED. DAFAP00775
TRA DSTX4 RETURN WITH DELETE. DAFAP00776
REM DAFAP00777
TEMFLG DAFAP00778
DSTRC DAFAP00779
DSTMS BCI 2, DAFAP00780
DSTM1 PZE *+1,,3 DAFAP00781
BCI 3, MODE IS 000. DAFAP00782
DSTM2 PZE *+1,,5 DAFAP00783
BCI 5, IS LINKED. PLEASE UNLINK IT. DAFAP00784
DSTM3 PZE *+1,,2 DAFAP00785
BCI 2, IS ACTIVE. DAFAP00786
DSTM5 BCI 5, DO YOU WISH TO DELETE IT ... DAFAP00787
DSTM6 BCI 2,NOT DELETED. DAFAP00788
DSYES OCT 702562556060 DAFAP00789
REM DAFAP00790
REM FAP00791
* FAP00792
*SUBROUTINE DSDEL DELETES OLD TEMPORARY FILES (NORMALLY NOT FOUND) FAP00793
*CALLING SEQUENCE TSX DSDEL,4 LOFAP00794
* PZE NAME1 LOFAP00795
*COMMENT PRINTED BY DSTES IDENTIFIES FILE AS FAP TEMPORARY FILE LOFAP00796
* FAP00797
DSDEL SXA DSDE3,4 LOFAP00798
CLA 1,4 PRIMARY FILE NAME LOFAP00799
STA DSDE0 LOFAP00800
STA DSDE1 LOFAP00801
STL TEMFLG DAFAP00802
TSX DSTS1,4 TEST DELETION PERMITTED LOFAP00803
DSDE0 PZE **,,FAPTEM LOFAP00804
TNZ DSDE3 NO, DONT TRY DAFAP00805
TSX DELFIL,4 YES, DELETE THE FILE LOFAP00806
DSDE1 BRN ** LOFAP00807
BRN FAPTEM LOFAP00808
BRN DSERN LOFAP00809
DSDE3 AXT **,4 RETURN LOFAP00810
TRA 2,4 LOFAP00811
* FAP00812
*SUBROUTINE STASH FILES USERS CREATED FILE LOFAP00813
* (1) FILE THE TEMPORARY LOFAP00814
* (2) DELETE OLD USER FILE LOFAP00815
* (3) RENAME AND CHANGE MODE LOFAP00816
*PROVIDE DIAGNOSTIC FOR TRACK QUOTA EXCEEDED LOFAP00817
*CALLING SEQUENCE TSX STASH,4 LOFAP00818
* PZE TEMNAM,,FAPNAM LOFAP00819
* FAP00820
STASH SXA STAS9,4 SAVE LINKAGE LOFAP00821
CLA 1,4 TEMPORARY FILE NAME LOFAP00822
STA STAS1 CLOSE LOFAP00823
STA STAS3 RENAME LOFAP00824
ARS 18 USER FILE NAME LOFAP00825
STA STAS2 DELETE LOFAP00826
STA STAS4 RENAME LOFAP00827
STA STAS8 CHMODE FAP00828
TSX CLOSE,4 CLOSE THE TEMPORARY LOFAP00829
STAS1 BRN ** LOFAP00830
BRN FAPTEM LOFAP00831
BRN DSERN LOFAP00832
TSX DELFIL,4 DELETE OLD USER FILE LOFAP00833
BRN FILNAM LOFAP00834
STAS2 BRN ** LOFAP00835
BRN *+3 LOFAP00836
BRN STASA LOFAP00837
TRA STAS3-1 LOFAP00838
CLA STASA ERROR RETURN, GET CODE LOFAP00839
SUB Q3 TEST NOT FOUND LOFAP00840
TNZ DSERN NO, MACHINE ERROR LOFAP00841
TSX CHFILE,4 RENAME AND CHANGE MODE LOFAP00842
STAS3 BRN ** LOFAP00843
BRN FAPTEM LOFAP00844
BRN Q1 TEMPORARY MODE LOFAP00845
BRN FILNAM LOFAP00846
STAS4 BRN ** LOFAP00847
BRN DSERN FAP00848
TSX CHFILE,4 CHANGE MODE FAP00849
BRN FILNAM FAP00850
STAS8 BRN ** FAP00851
BRN Q0 TO PERMANENT FAP00852
BRN P4 FAP00853
BRN P4 FAP00854
BRN STAS5 LOFAP00855
BRN STASA LOFAP00856
TRA STAS9 RENAME OKAY, EXIT LOFAP00857
STAS5 CLA STASA LOFAP00858
SUB Q9 TEST TRACK QUOTA EXCEEDED LOFAP00859
TNZ DSERN NO, MACHINE ERROR LOFAP00860
REM PRINT ERROR LINE FOR EACH ERROR ENTRY LOFAP00861
STAS7 CLA* STAS2 GET FILE NAME LOFAP00862
STO DSER3+2 WNFAP00863
CLA* STAS2-1 LOFAP00864
STO DSER3 WNFAP00865
WRFLXM DSER3,7 PRINT ERROR LINE WNFAP00866
STAS9 AXT **,4 LOFAP00867
TRA 2,4 LOFAP00868
STASA PZE TEMPORARY FOR ERROR CODE LOFAP00869
DSER3 PZE WNFAP00870
OCT 605757575757 WNFAP00871
PZE WNFAP00872
BCI 4, IS IN TEMPORARY MODE. WNFAP00873
* FAP00874
*USE NEW DISK DIAGNOSTICS, ERROR OPENING INPUT FILE LOFAP00875
* FAP00876
DSERS CLA DSES2 ERROR CODE LOFAP00877
SUB Q12 TEST CODE 12 (NOT FOUND) LOFAP00878
TNZ DSERN NO, MACHINE ERROR LOFAP00879
CLA FILNAM YES, GET FILE NAME LOFAP00880
STO DSES1 LOFAP00881
CLA FAPFAP MOVE NAME2 WNFAP00882
STO DSES1+2 WNFAP00883
WRFLXM DSES1,5 PRINT MESSAGE LOFAP00884
TRA (SECL) GO TO SOURCE ERROR LOFAP00885
DSES1 PZE ** WNFAP00886
OCT 605757575757 WNFAP00887
OCT 575757262147 'FAP' , MAY BE PATCHED BY SAVE WNFAP00888
BCI 2, NOT FOUND. WNFAP00889
DSES2 PZE ERROR CODE LOFAP00890
* FAP00891
*SUBROUTINE TO GET 2 DIGIT ERROR CODE IN BCD LOFAP00892
* FAP00893
DSERP SXA DSEM3,4 SUBROUTINE FOR ERROR CODE LOFAP00894
TSX IODIAG,4 GET DIAGNOSTICS LOFAP00895
TXH DSBUF,,7 LOFAP00896
LDQ DSBUF+2 ERROR CODE, LOFAP00897
PXD 0,0 LOFAP00898
DVP Q10 DIVIDE BY 10 LOFAP00899
XCL LOFAP00900
RQL 30 2 DIGITS LOFAP00901
LGL 6 IN ACCUMULATOR LOFAP00902
DSEM3 AXT **,4 LOFAP00903
TRA 1,4 LOFAP00904
* FAP00905
*GENERAL ERROR RETURN, NEW DISK ROUTINES. LOFAP00906
*PRINT ERROR MESSAGE AND GO TO MACHINE ERROR. LOFAP00907
* FAP00908
DSERN TSX DSERP,4 GET ERROR CODE LOFAP00909
ORS DSEM1+1 LOFAP00910
CAL DSBUF+1 NAME OF SUBROUTINE LOFAP00911
SLW DSRNM LOFAP00912
LDQ DSBUF+4 THE FILE NAME LOFAP00913
CLA DSBUF+5 LOFAP00914
DSEM2 STQ DSEM1+7 ENTRY FROM DSERN LOFAP00915
STO DSEM1+8 TSFAP00916
WRFLXM DSEM1,9 PRINT DIAGNOSTIC TSFAP00917
TRA (MECL) GO TO MACHINE ERROR TSFAP00918
DSEM1 BCI 1,ERROR TSFAP00919
BCI 3,COD 00, DISK SUBR TSFAP00920
DSRNM BCI 1, TSFAP00921
BCI 2,, FOR FILE TSFAP00922
BCI 2, TSFAP00923
REM TSFAP00924
REM FAP00925
REM ASSEMBLE UNIFORM SYMBOL FAP00926
LOCFL SXA LOCFX,4 SAVE CALLING LINKAGE FAP00927
STZ SYMBL CLEAR WORKING STORAGE FAP00928
LAS BLANKS IS SYMBOL ALL BLANKS FAP00929
TRA *+2 NO FAP00930
TRA LOCF2 YES FAP00931
XCL RECALL SYMBOL FAP00932
AXT 6,4 PREPARE TO SCAN SIX CHARACTERS FAP00933
LOCF1 PXD ,0 FAP00934
LGL 6 GET NEXT CHARACTER FAP00935
LAS BLANK IS IT BLANK FAP00936
TRA *+2 NO FAP00937
TRA *+5 YES FAP00938
LGR 6 ADD NONBLANK CHARACTER FAP00939
CAL SYMBL FAP00940
LGL 6 FAP00941
SLW SYMBL SAVE PARTIAL SYMBOL FAP00942
TIX LOCF1,4,1 IS SYMBOL ASSEMBLED FAP00943
LOCF2 CAL SYMBL YES, RELOAD UNIFORM SYMBOL FAP00944
LOCFX AXT **,4 RELOAD CALLING LINKAGE FAP00945
TRA 1,4 FAP00946
REM FAP00947
REM SET UP OPCODE, VARIABLE FIELD FAP00948
SETUP SXA STUPX,4 SAVE CALLING LINKAGE FAP00949
STZ INDFG RESET INDIRECT ADDRESS FLAG FAP00950
REM CHECK FOR COMMENTS CARD (42)FAP00951
CAL BCDBF LOAD CARD WORD 1 (42)FAP00952
LGR 30 ISOLATE COLUMN 1 (42)FAP00953
ERA ASTRK IS THIS COMMENTS CARD *FAP00954
TZE 1,4 YES *FAP00955
ERA Q7 IS IT $ COMMENTS CARD (42)FAP00956
TZE 1,4 YES (42)FAP00957
AXC 1,2 NO, INITIALIZE WORD AND (42)FAP00958
AXT 6,1 CHARACTER POSITIONS FOR OP CODE SCAN (42)FAP00959
CAL BCDBF+1 CHECK FOR ASTERISK IN COLUMN 7 (UGH) (42)FAP00960
LGR 30 POSSIBLE IF IN IBSFAP MODE (42)FAP00961
REM REENTRY TO SCAN NEXT CHARACTER IN OP FIELD (42)FAP00962
STP01 SXA STP06,2 (42)FAP00963
SXA NERAS,1 (42)FAP00964
TSX C0190+1,4 (42)FAP00965
SUB ASTRK IS THIS * FAP00966
TNZ *+3 NO *FAP00967
STL INDFG YES, SET INDIRECT FLAG *FAP00968
TRA STP02 *FAP00969
SUB Q4 IS THIS BLANK *FAP00970
TZE STP2A YES, END OF OPCODE (42)FAP00971
SUB EQUAL NO, IS THIS , *FAP00972
TZE STP03 YES, END OF OPCODE *FAP00973
SUB Q1 NO, IS THIS ( *FAP00974
TZE STP04 YES (42)FAP00975
STZ INDFG NO, RESET INDIRECT FLAG *FAP00976
STP02 TXH STP01,2,-2 ARE WE STILL IN CARD WORD 2 (42)FAP00977
TXH STP01,1,4 NO, ARE WE PAST CC 14 (42)FAP00978
LXA STUPX,4 YES, OP FIELD IS TOO LONG (42)FAP00979
TRA 2,4 TAKE ERROR RETURN (42)FAP00980
REM REENTRY FOR OP CODE TERMINATED BY BLANK (42)FAP00981
STP2A TSX C019Q,4 *OBTAIN NEXT CHARACTER (42)FAP00982
SUB BLANK IS IT BLANK (42)FAP00983
TNZ STP05 NO, VARIABLE FIELD HAS BEGUN (42)FAP00984
TXH STP2A,2,-2 YES, ARE WE PAST WORD 2 (42)FAP00985
TXH STP2A,1,4 YES, IS NEXT COLUMN 16 (42)FAP00986
REM REENTRY FOR OP CODE TERMINATED BY , (42)FAP00987
STP03 TSX C019Q,4 *INITIALIZE CHRCTR PROPERLY (42)FAP00988
REM REENTRY FOR OP CODE TERMINATED BY ( (42)FAP00989
STP04 TXL STP05,2,-2 ARE WE PAST WORD TWO (42)FAP00990
TXH STP01,1,4 NO, ( IN CC 8 IS PART OF OP CODE (42)FAP00991
REM REENTRY FOR BEGINNING OF VARIABLE FIELD SENSED (42)FAP00992
STP05 CAL CHRCTR RELOAD BEGINNING CHARACTER (42)FAP00993
LGR 6 AND POSITION FOR SCAN (42)FAP00994
STQ RESIDU STORE SCAN WORD (42)FAP00995
TXI *+1,1,1 BUMP CHARACTER POSITION BACK (42)FAP00996
SXD VRFLD,2 STORE WORD AND CHARACTER (42)FAP00997
SXA VRFLD,1 POSITIONS BEGINNING VARIABLE FIELD (42)FAP00998
LDQ NERAS LOAD CHARACTER POSITION OF OP FIELD (42)FAP00999
VLM Q6,,15 END AND MULTIPLY BY 6 TO COMPUTE (42)FAP01000
LLS 15 AMOUNT OF SHIFT (42)FAP01001
PAC ,4 (42)FAP01002
STP06 AXC **,2 RELOAD WORD ENDING OP FIELD (42)FAP01003
TXH *+2,2,1 WAS IT WORD TWO (42)FAP01004
TXI *+1,4,-36 NO, BUMP SHIFT COUNT (42)FAP01005
ZET INDFG WAS OPERATION INDIRECTLY ADDRESSED (42)FAP01006
TXI STP07,4,-6 YES, ADJUST SHIFT COUNT TO OMIT * (42)FAP01007
STP07 CAL BCDBF+1 LOAD CARD WORDS TWO (42)FAP01008
LDQ BCDBF+2 AND THREE (COLUMNS 7 THROUGH 18) (42)FAP01009
LGR -6,4 RIGHT ADJUST OPERATION CODE (42)FAP01010
LGL 0,4 THEN LEFT ADJUST IT (42)FAP01011
TNZ STP08 IF OPCODE IS NULL, (42)FAP01012
CAL BLNK3 RESET IT TO BLANKS (42)FAP01013
STP08 SLW OPCOD STORE OPERATION CODE (42)FAP01014
ERA DASTR DID IT COME OUT AS ** (42)FAP01015
TNZ STP09 NO, EXIT (42)FAP01016
STZ INDFG YES, MUST HAVE BEEN *** (42)FAP01017
TXI STP07,4,6 GO BACK TO READJUST IT (42)FAP01018
STP09 LXD VRFLD,2 RELOAD SCAN WORD POSITION (42)FAP01019
STUPX AXT **,4 RELOAD CALLING LINKAGE (42)FAP01020
TRA 3,4 (42)FAP01021
REM (42)FAP01022
REM THE FOLLOWING IS A PATCH TO SUBROUTINE SCANF (42)FAP01023
RELFG CLA VARUC ARE THERE RELOCATION ERRORS (42)FAP01024
TZE *+2 IGNORE -0 (42)FAP01025
TMI SCN12+5 COMPLEMENT OF COMMON ELEMENT (42)FAP01026
CLA VARUR (42)FAP01027
TZE *+2 IGNORE -0 (42)FAP01028
TMI SCN12+5 COMPLEMENT OF RELOCATABLE ELEMENT (42)FAP01029
TRA SCN12+1 (42)FAP01030
REM FAP01031
REM FIND BINARY MACHINE OPERATION FOR BCD OPCODE FAP01032
SOPTB SXA SOPTX,4 SAVE CALLING LINKAGE FAP01033
AXT 0,1 LOAD LOCATION OF FIRST NAME IN TABLE FAP01034
LXA OPTSIZ,2 LOAD LOGARITHM OF TABLE LENGTH FAP01035
TSX LOWER,4 *EXECUTE BINARY SEARCH FAP01036
REM FAP01037
TRA SOPTX+2 NOT FOUND FAP01038
SOPT1 TXL *+4,1,** IS SEARCH PAST UPPER END OF TABLE FAP01039
LAS OPTTBL-2,1 NO, IS IT THIS OPCODE FAP01040
TXI LOWER,2,-2 NO, LARGER - GO LOOK HIGHER FAP01041
TRA *+2 YES FAP01042
TXI RAISE,2,-2 NO, SMALLER - GO LOOK LOWER FAP01043
REM OPCODE FOUND IN TABLE FAP01044
LDI OPTTBL-1,1 LOAD OPERATION DEFINITION FAP01045
SOPTX AXT **,4 RELOAD CALLING LINKAGE FAP01046
TRA 2,4 FAP01047
REM OPCODE NOT FOUND IN TABLE FAP01048
LXA SOPTX,4 RELOAD CALLING LINKAGE FAP01049
TRA 1,4 FAP01050
REM FAP01051
TXI BSRCH,1,+16384 FAP01052
TXI BSRCH,1,-16384 FAP01053
TXI BSRCH,1,+8192 FAP01054
TXI BSRCH,1,-8192 FAP01055
TXI BSRCH,1,+4096 FAP01056
TXI BSRCH,1,-4096 FAP01057
TXI BSRCH,1,+2048 FAP01058
TXI BSRCH,1,-2048 FAP01059
TXI BSRCH,1,+1024 FAP01060
TXI BSRCH,1,-1024 FAP01061
TXI BSRCH,1,+512 FAP01062
TXI BSRCH,1,-512 FAP01063
TXI BSRCH,1,+256 FAP01064
TXI BSRCH,1,-256 FAP01065
TXI BSRCH,1,+128 FAP01066
TXI BSRCH,1,-128 FAP01067
TXI BSRCH,1,+64 FAP01068
TXI BSRCH,1,-64 FAP01069
TXI BSRCH,1,+32 FAP01070
TXI BSRCH,1,-32 FAP01071
TXI BSRCH,1,+16 FAP01072
TXI BSRCH,1,-16 FAP01073
TXI BSRCH,1,+8 FAP01074
TXI BSRCH,1,-8 FAP01075
TXI BSRCH,1,+4 FAP01076
TXI BSRCH,1,-4 FAP01077
TXI BSRCH,1,+2 FAP01078
TXI BSRCH,1,-2 FAP01079
TRA 1,4 NOT FOUND FAP01080
TRA 1,4 NOT FOUND FAP01081
RAISE TRA *,2 FAP01082
LOWER TRA *,2 FAP01083
BSRCH TRA 2,4 LOOK FURTHER FAP01084
REM FAP01085
REM EVALUATE NEXT EXPRESSION IN VARIABLE FIELD FAP01086
SCANF SXA SCANX,4 SAVE CALLING LINKAGE FAP01087
STZ TRMEQ RESET VALUE OF FIRST TERM IN EXPRESSION FAP01088
STZ TRMUN RESET UNITS OF TERM FAP01089
STZ TRMUF RESET FLAG FOR TYPE OF UNITS TO ABSOLUTE FAP01090
STZ VAREQ RESET VALUE OF EXPRESSION FAP01091
STZ VARUR RESET NUMBER OF RELOCATABLE SYMBOLS FAP01092
STZ VARUC RESET NUMBER OF COMMON SYMBOLS FAP01093
STZ RBITS RESET RELOCATION BITS FAP01094
STZ SCNBE RESET FLAG FOR BOOLEAN ERA FAP01095
CAL CHRCTR LOAD FIRST CHARACTER IN NEXT EXPRESSION FAP01096
ERA BLANK IS IT END OF VARIABLE FIELD FAP01097
TNZ *+3 NO FAP01098
STZ BOLMD YES, RESET BOOLEAN FLAG FAP01099
TRA 1,4 RETURN ON VACUUOUS FIELD FAP01100
AXC SCADD,4 NO, INITIALIZE OPERATION SWITCH FOR FAP01101
SXD OPSW1,4 FOLLOWING ELEMENT TO ADD FAP01102
TRA SCN01+5 FAP01103
REM REENTRY TO EVALUATE NEXT ELEMENT FAP01104
SCN01 NZT TVFLG IS THIS CALL SUBPROGRAM NAME FAP01105
TRA *+4 NO FAP01106
TSX SCEND,4 YES, SKIP TO END OF EXPRESSION FAP01107
STL ERRFF SET ERROR FLAG FAP01108
TRA SCN14 FAP01109
STL SCNFC SET FLAG FOR FIRST CHARACTER IN ELEMENT FAP01110
STZ SCNBC RESET FLAG FOR BOOLEAN COM FAP01111
CAL BHEAD SET HEADING CHARACTER FAP01112
ZET TVFLG IS THIS CALL SUBPROGRAM NAME FAP01113
PXD ,0 YES, DELETE HEADING CHARACTER FAP01114
TRA SCN02+1 FAP01115
REM REENTRY FOR $ REHEADING CHARACTER FAP01116
SCN02 TRA DLRUT DOLLAR SIGN TEST *FAP01117
SLW THEAD FAP01118
STZ ELMEQ RESET VALUE OF ELEMENT FAP01119
STZ ELMUN RESET UNITS OF ELEMENT FAP01120
STZ ELMUF RESET FLAG FOR TYPE OF UNITS TO ABSOLUTE FAP01121
TRA SCN03+1 FAP01122
REM REENTRY FOR BOOLEAN UNARY / FAP01123
SCN03 STL SCNBC SET FLAG TO COMPLEMENT NEXT ELEMENT FAP01124
REM REENTRY TO ASSEMBLE SYMBOL FAP01125
TSX SSCAN,4 *ASSEMBLE ELEMENT FAP01126
TRA EVALE *END OF VARIABLE FIELD FAP01127
SLT EXPND DID FIELD END WITH COMMA OR BLANK FAP01128
PAX ,4 NO, LOAD PUNCTUATION CHARACTER FAP01129
TXL SCADD,4,16 + OPERATION IS ADD FAP01130
TXL SCSUB,4,32 - OPERATION IS SUBTRACT FAP01131
TXL SCN02,4,43 $ RESET HEADING CHARACTER FAP01132
TXL SCN05,4,44 * OPERATION MAY BE MULTIPLY FAP01133
TXL SCN04,4,49 / OPERATION MAY BE DIVIDE FAP01134
TRA EVALE *PUNCTUATION WAS COMMA OR BLANK FAP01135
REM CHARACTER IS / FAP01136
SCN04 NZT SCNFC IS THIS FIRST CHARACTER IN ELEMENT FAP01137
TRA SCDIV NO, IT IS DIVIDE OR BINARY NOT OPERATION FAP01138
STZ SCNFC YES, RESET FLAG FAP01139
ZET BOLMD IS FIELD BOOLEAN FAP01140
TRA SCN03 YES, IT IS UNARY NOT OPERATION FAP01141
TRA SCDIV NO FAP01142
REM CHARACTER IS * FAP01143
SCN05 NZT SCNFC IS THIS FIRST CHARACTER IN ELEMENT FAP01144
TRA SCMPY NO, IT IS MULTIPLY OPERATION FAP01145
STZ SCNFC YES, RESET FLAG FAP01146
SLW SYMBL CHARACTER IS PROGRAM COUNTER FAP01147
TSX SSCET,4 *FIND OPERATION FAP01148
TXI EVALE,,0 NO OPERATION FOLLOWS FAP01149
TRA SCN03+3 FAP01150
REM FAP01151
REM ENTRY POINTS TO EVALUATE ELEMENT ASSEMBLED ABOVE. FAP01152
REM RETURN FROM EVALF IS TO OPERATION PRECEDING ELEMENT. FAP01153
REM RETURN TO PRESENT OPERATION IS AFTER FOLLOWING ELEMENT FAP01154
REM HAS BEEN EVALUATED. FAP01155
SCDIV TSX EVALF,4 *EVALUATE PRECEDING ELEMENT FAP01156
REM FAP01157
TRA BLDIV EXPRESSION IS BOOLEAN FAP01158
CLA TRMEQ LOAD PARTIAL TERM FAP01159
LRS 35 FAP01160
NZT ELMEQ IS ELEMENT UNDEFINED OR ZERO FAP01161
TRA *+4 YES, ASSUME ELEMENT 1 FAP01162
DVP ELMEQ NO, COMBINE WITH FOLLOWING ELEMENT FAP01163
DCT DID DIVIDE FAIL FAP01164
TSX MACERR,4 **YES FAP01165
STQ TRMEQ SAVE PARTIAL TERM FAP01166
STQ TRMUN SAVE COEFFICIENT OF SYMBOLS FAP01167
NZT TRMUF IS TERM ABSOLUTE FAP01168
ZET ELMUF YES, IS ELEMENT ABSOLUTE FAP01169
TRA SCMP1 **NO, SET ERROR FLAGS FAP01170
TRA SCN10 FAP01171
REM FAP01172
SCMPY TSX EVALF,4 *EVALUATE PRECEDING ELEMENT FAP01173
REM FAP01174
TRA BLMPY EXPRESSION IS BOOLEAN FAP01175
LDQ TRMEQ COMBINE PARTIAL TERM FAP01176
MPY ELMEQ WITH FOLLOWING ELEMENT FAP01177
STQ TRMEQ SAVE PARTIAL TERM MOD 2**35 FAP01178
LDQ TRMUN COMBINE COEFFICIENT FOR TERM FAP01179
MPY ELMUN WITH COEFFICIENT FOR FOLLOWING ELEMENT FAP01180
STQ TRMUN SAVE COEFFICIENT MOD 2**35 FAP01181
ZET TRMUF IS TERM ABSOLUTE FAP01182
NZT ELMUF NO, IS ELEMENT ABSOLUTE FAP01183
TRA *+3 YES FAP01184
REM REENTRY AFTER RELOCATION ERROR ON DIVIDE FAP01185
SCMP1 SLN EXPRR NO, SET ERROR FLAGS FAP01186
STL ERRFR FAP01187
CAL ELMUF SET COMMON OR RELOCATABLE FLAG FOR ELEMENTFAP01188
ORS TRMUF INTO FLAG FOR TERM (AT LEAST ONE IS ZERO) FAP01189
TRA SCN10 FAP01190
REM FAP01191
SCADD TSX EVALF,4 *EVALUATE PRECEDING ELEMENT FAP01192
REM FAP01193
TRA BLADD EXPRESSION IS BOOLEAN FAP01194
CLA ELMEQ LOAD VALUE OF FOLLOWING ELEMENT FAP01195
TRA SCSB1 FAP01196
REM FAP01197
SCSUB TSX EVALF,4 *EVALUATE PRECEDING ELEMENT FAP01198
REM FAP01199
TRA BLSUB EXPRESSION IS BOOLEAN FAP01200
CLS ELMUN INVERT COEFFICIENT FOR FOLLOWING ELEMENT FAP01201
STO ELMUN FAP01202
CLS ELMEQ INVERT VALUE OF FOLLOWING ELEMENT FAP01203
REM REENTRY FOR ADD FAP01204
SCSB1 XCA HOLD FOLLOWING ELEMENT FAP01205
CLA VAREQ COMBINE VALUE OF PARTIAL EXPRESSION FAP01206
ADD TRMEQ WITH PRECEDING TERM FAP01207
STO VAREQ FAP01208
STQ TRMEQ INITIALIZE FOLLOWING TERM TO VALUE OF ELEMFAP01209
CLA TRMUF LOAD FLAG FOR UNITS OF TERM FAP01210
TZE SCSB3 IS TERM ABSOLUTE FAP01211
TMI SCSB2 NO, IS TERM COMMON FAP01212
CLA VARUR NO, BUMP NUMBER OF RELOCATABLE SYMBOLS FAP01213
ADD TRMUN BY COEFFICIENT OF TERM FAP01214
STO VARUR FAP01215
TRA SCSB3 FAP01216
REM TERM IS COMMON FAP01217
SCSB2 CLA VARUC BUMP NUMBER OF COMMON SYMBOLS FAP01218
ADD TRMUN BY COEFFICIENT OF TERM FAP01219
STO VARUC FAP01220
REM REENTRY FOR ABSOLUTE OR RELOCATABLE TERM FAP01221
SCSB3 CLA ELMUN INITIALIZE COEFFICIENT OF FOLLOWING TERM FAP01222
STO TRMUN TO COEFFICIENT OF FIRST ELEMENT FAP01223
CAL ELMUF INITIALIZE FLAG FOR UNITS OF TERM FAP01224
SLW TRMUF TO FLAG FOR UNITS OF FIRST ELEMENT FAP01225
TRA SCN10 FAP01226
REM FAP01227
BLADD TSX BLERA,4 *EVALUATE POSSIBLE ERA FAP01228
TRA BLSUB+2 FAP01229
REM FAP01230
BLSUB TSX BLERA,4 *EVALUATE POSSIBLE ERA FAP01231
STL SCNBE SET FLAG TO COMPLEMENT FOLLOWING ELEMENT FAP01232
SLW VAREQ SAVE PARTIAL VALUE OF EXPRESSION FAP01233
CAL ELMEQ INITIALIZE NEXT TERM TO VALUE OF FAP01234
SLW TRMEQ FIRST ELEMENT FAP01235
TRA SCN10 FAP01236
REM FAP01237
BLMPY CAL ELMEQ MASK (AND) PARTIAL VALUE OF EXPRESSION FAP01238
ANS TRMEQ WITH VALUE OF ELEMENT FAP01239
TRA SCN10 FAP01240
REM FAP01241
BLDIV CAL ELMEQ OPERATION IS BINARY NOT FAP01242
COM COMPLEMENT ELEMENT FAP01243
ANS TRMEQ MASK PARTIAL VALUE OF EXPRESSION FAP01244
REM FAP01245
REM ELEMENT HAS BEEN EVALUATED FAP01246
SCN10 SLT EXPND WAS THIS END OF EXPRESSION FAP01247
TRA SCN01 NO FAP01248
REM END OF EXPRESSION FAP01249
NZT BOLMD IS EXPRESSION BOOLEAN FAP01250
TRA *+3 NO FAP01251
TSX BLERA,4 *YES, EVALUATE POSSIBLE ERA FAP01252
TRA SCN11 FAP01253
CLA VAREQ COMBINE PARTIAL VALUE OF EXPRESSION FAP01254
ADD TRMEQ WITH FINAL TERM FAP01255
STO VAREQ FAP01256
CAL P4 COMPLEMENT IF NEGATIVE FAP01257
ALS 1 FAP01258
ADD VAREQ FAP01259
REM REENTRY FOR BOOLEAN EXPRESSION FAP01260
SCN11 ZET VFDMD IS THIS EXPRESSION PART OF VFD FAP01261
TRA *+4 YES, KEEP ENTIRE WORD FAP01262
ANA ADTMK NO, MASK IN FINAL 18 BITS FAP01263
NZT BOLMD IS EXPRESSION BOOLEAN FAP01264
ANA ADDMK NO, MASK IN FINAL 15 BITS FAP01265
SLW VAREQ SAVE FAP01266
CLA TRMUF LOAD FLAG FOR TERM UNITS FAP01267
TZE SCN12 IS EXPRESSION ABSOLUTE FAP01268
TMI *+5 NO, IS EXPRESSION COMMON FAP01269
CLA VARUR NO, BUMP NUMBER OF RELOCATABLE SYMBOLS FAP01270
ADD TRMUN BY COEFFICIENT OF LAST TERM FAP01271
STO VARUR FAP01272
TRA SCN12 FAP01273
CLA VARUC BUMP NUMBER OF COMMON SYMBOLS FAP01274
ADD TRMUN BY COEFFICIENT OF LAST TERM FAP01275
STO VARUC FAP01276
REM REENTRY FOR ABSOLUTE OR RELOCATABLE TERM FAP01277
SCN12 TRA RELFG CHECK FOR RELOCATION ERROR *FAP01278
ADD VARUC NUMBER OF RELOCATABLE AND COMMON SYMBOLS *FAP01279
TZE SCN13 IS COEFFICIENT ZERO FAP01280
SUB Q1 NO, IS COEFFICIENT 1 FAP01281
TZE *+3 YES FAP01282
SLN EXPRR NO, SET ERROR FLAGS FAP01283
STL ERRFR FAP01284
CAL VAREQ COMPUTE RELATIVE POSITION FAP01285
ANA ADDMK OF EXPRESSION ABOVE OR BELOW FAP01286
SUB PRGBK PROGRAM BREAK FAP01287
ZET VARUC IS EXPRESSION IN COMMON FAP01288
CHS YES, INVERT RELATIVE POSITION FAP01289
AXT 2,4 SET EXPRESSION DIRECTLY RELOCATABLE FAP01290
TMI *+2 IS EXPRESSION DIRECTLY RELOCATABLE FAP01291
AXT 3,4 NO, SET EXPRESSION COMPLEMENT RELOCATABLE FAP01292
SXA RBITS,4 FAP01293
SCN13 TRA *+2 *FAP01294
REM CONSTANT FOR BCDCV CONVERSION ROUTINE 43FAP01295
TEN5TH DEC 100000 43FAP01296
CAL VAREQ YES, LOAD LOGICAL VALUE OF EXPRESSION FAP01297
STZ BOLMD RESET BOOLEAN MODE FLAG FAP01298
SLT EXPRR WAS ERROR FOUND IN THIS EXPRESSION FAP01299
TRA SCANX NO FAP01300
SCN14 SLN EXPRR YES, RESET ERROR FLAG FAP01301
STZ RBITS DELETE RELOCATION BITS FAP01302
PXD ,0 DELETE VALUE OF SYMBOL FAP01303
STZ VAREQ FAP01304
SCANX AXT **,4 RELOAD CALLING LINKAGE FAP01305
TRA 2,4 FAP01306
REM FAP01307
REM EVALUATE BOOLEAN EXPRESSION FAP01308
BLERA CAL TRMEQ LOAD FOLLOWING TERM FAP01309
NZT SCNBE IS OPERATION ERA FAP01310
ORA VAREQ NO, COMBINE WITH PARTIAL TERM FAP01311
ZET SCNBE IS OPERATION ERA FAP01312
ERA VAREQ YES, MASK PARTIAL VALUE OF EXPRESSION FAP01313
STZ SCNBE RESET FLAG FAP01314
TRA 1,4 FAP01315
REM FAP01316
REM EVALUATE SYMBOL PRECEDING OPERATION, OR END OF EXPRESSIONFAP01317
EVALE SLN EXPND SET END OF EXPRESSION FLAG FAP01318
EVALF SXD OPSW2,4 SAVE CALLING LINKAGE (OP FOLLOWING SYMBOL)FAP01319
CAL SYMBL LOAD LOW ORDER PORTION OF ELEMENT FAP01320
LAS ASTRK IS IT * FAP01321
TRA *+2 NO FAP01322
TRA EVAL1 YES, CURRENT CONTENTS OF LOCATION COUNTER FAP01323
ORA SYMB2 COMBINE LOW AND HIGH ORDER PORTIONS FAP01324
ANA BLANKS IS ELEMENT NUMERIC FAP01325
TZE EVAL3 YES FAP01326
ZET SYMB2 NO, IS SYMBOL NAME LONGER THAN 6 CHARACTERFAP01327
STL ERRFE YES FAP01328
LDQ SYMBL LOAD SYMBOL NAME FAP01329
PXD ,0 FAP01330
LGL 6 LOAD FIRST CHARACTER FAP01331
TNZ *+2 IS SYMBOL NAME SHORTER THAN 6 CHARACTERS FAP01332
CAL THEAD YES, APPEND CURRENT HEADING CHARACTER FAP01333
LGL 30 FAP01334
SLW SYMBL SAVE FAP01335
FSSYMT TSX SSYMT,4 *EVALUATE SYMBOL TSFAP01336
TRA EVAL1+3 FAP01337
REM SYMBOL IS * FAP01338
EVAL1 CLA LOCTR LOAD CURRENT PROGRAM COUNTER FAP01339
ZET BOLMD IS EXPRESSION BOOLEAN FAP01340
PXD ,0 YES, ASSUME IT IS AN OPERATOR FAP01341
REM WITH NO PRECEDENT OPERAND FAP01342
REM REENTRY FOR DEFINED SYMBOL FAP01343
STA ELMEQ DEFINE THIS ELEMENT FAP01344
ZET BOLMD IS EXPRESSION BOOLEAN FAP01345
TRA EVAL2 YES FAP01346
ARS 18 NO, SHIFT UP RELOCATION BITS FAP01347
ANA Q3 DELETE EXTRANEOUS FLAGS FAP01348
SUB Q1 IS ELEMENT ABSOLUTE FAP01349
TMI EVAL5 YES FAP01350
SSM NO, SET ELEMENT COMMON FAP01351
TNZ *+2 IS ELEMENT COMMON FAP01352
CLA Q1 NO, RESET ELEMENT RELOCATABLE FAP01353
STO ELMUF SAVE ELEMENT UNIT FLAG FAP01354
TRA EVAL5+1 FAP01355
REM SYMBOL IS BOOLEAN FAP01356
EVAL2 PAI LOAD RELOCATION BITS FAP01357
LFT 3 IS SYMBOL ABSOLUTE FAP01358
TRA EVLBR **NO FAP01359
ANA ADTMK DELETE EXTRANEOUS FLAGS FAP01360
ZET SCNBC IS ELEMENT COMPLEMENTABLE FAP01361
COM YES, FLATTER IT FAP01362
SLW ELMEQ DEFINE ELEMENT FAP01363
OPSW1 TXI EVAL5+2,,** (RETURN FOR OPERATION PRECEDING ELEMENT) FAP01364
REM ERROR ON BOOLEAN SYMBOL FAP01365
EVLBR SLN EXPRR SET ERROR FLAGS FAP01366
STL ERRFB FAP01367
TRA EVAL5+2 FAP01368
REM ELEMENT IS NUMERIC FAP01369
EVAL3 NZT BOLMD IS ELEMENT BOOLEAN FAP01370
TXL EVAL4,,0 NO, IS ELEMENT UNDER OCTAL QUALIFIER FAP01371
REM (SWITCH SET BY SAK) FAP01372
TSX OCTSV,4 *YES, CONVERT SYMBOL FROM OCTAL FAP01373
ZET SCNBC IS ELEMENT COMPLEMENTABLE FAP01374
COM YES FAP01375
SLW ELMEQ SAVE ELEMENT FAP01376
NZT BOLMD IS ELEMENT BOOLEAN FAP01377
TRA EVAL5 NO, SET RELOCATION UNITS FOR OCTAL INTEGERFAP01378
OPSW2 TXI EVAL5+2,,** (RETURN FOR OPERATION FOLLOWING ELEMENT) FAP01379
REM EVALUATE DECIMAL INTEGER FAP01380
EVAL4 TSX DECSV,4 *CONVERT SYMBOL FROM DECIMAL FAP01381
STO ELMEQ SAVE FAP01382
REM REENTRY FOR ABSOLUTE SYMBOL OR DECIMAL INTEGER FAP01383
EVAL5 CAL ELMEQ SET VALUE OF ELEMENT FAP01384
REM REENTRY FOR COMMON OR RELOCATABLE SYMBOL FAP01385
SLW ELMUN AS COEFFICIENT OF ELEMENT FAP01386
REM REENTRY FOR BOOLEAN SYMBOL OR OCTAL INTEGER FAP01387
LXD OPSW1,4 LOAD TRANSFER FOR OP PRECEDING ELEMENT FAP01388
CAL OPSW2 RESET TRANSFER TO OP PRECEDING FAP01389
STD OPSW1 FOLLOWING ELEMENT FAP01390
ZET BOLMD IS EXPRESSION BOOLEAN FAP01391
TRA 1,4 YES, TAKE BOOLEAN RETURN FAP01392
TRA 2,4 NO FAP01393
REM FAP01394
REM CONVERT UP TO 12 DIGIT SIGNED OCTAL INTEGER TO BINARY FAP01395
OCTCV SXA DECCX,4 SAVE CALLING LINKAGE FAP01396
STZ NERAS CLEAR WORKING CELL FAP01397
TSX C019A,4 *LOOK AT FIRST CHARACTER FAP01398
SUB PLUSS IS IT + FAP01399
TZE OCT01 YES, IGNORE IT FAP01400
SUB PLUSS NO, IS IT - FAP01401
TNZ OCT01+1 NO FAP01402
CAL P4 YES, SET P BIT FAP01403
SLW NERAS FAP01404
REM REENTRY TO DELETE SIGN FAP01405
OCT01 TSX C0190,4 *DELETE SIGN FAP01406
REM REENTRY FOR NO PRECEDING SIGN FAP01407
TSX SSCAN,4 *ASSEMBLE INTEGER FAP01408
TXI OCT02,,0 NULL INTEGER FAP01409
SLT EXPND DID INTEGER END WITH COMMA OR BLANK FAP01410
TRA OCTRR NO FAP01411
TSX OCTSV,4 *YES, CONVERT TO BINARY FAP01412
SLT EXPRR IS INTEGER IN ERROR FAP01413
ORA NERAS NO, APPEND SIGN FAP01414
TRA DECCX FAP01415
REM NULL INTEGER FAP01416
OCT02 SLN FLDND SET END OF VARIABLE FIELD FLAG FAP01417
ORA NERAS APPEND SIGN FAP01418
TRA DECCX FAP01419
REM ERROR ON OCTAL NUMBER FAP01420
OCTRR STL ERRFB SET ERROR FLAG FAP01421
TSX SCEND,4 *SKIP TO END OF FIELD FAP01422
PXD ,0 DELETE INTEGER IN ERROR FAP01423
TRA DECCX FAP01424
REM FAP01425
REM CONVERT FOLLOWING DECIMAL FIELD TO BINARY FAP01426
DECCV SXA DECCX,4 SAVE CALLING LINKAGE FAP01427
STZ NERAS CLEAR INTEGER FIELD FAP01428
STZ XERAS CLEAR EXPONENT (E) FIELD FAP01429
STZ BERAS CLEAR BINARY (B) FIELD FAP01430
STZ DCNFG RESET FLAG FOR DECIMAL POINT FAP01431
STZ DCXFG RESET FLAG FOR DECIMAL EXPONENT FAP01432
STZ DCBFG RESET FLAG FOR BINARY EXPONENT FAP01433
AXT 0,4 RESET DECIMAL PLACE COUNT FAP01434
CAL DECCV+1 LOAD INTEGER FIELD ADDRESS FAP01435
TRA DCV15 *FAP01436
REM REENTRY AFTER DECIMAL POINT TO BEGIN SCAN ON FRACTION FAP01437
DCV01 NZT DCXFG HAS DECIMAL EXPONENT BEGUN FAP01438
ZET DCBFG NO, HAS BINARY EXPONENT BEGUN FAP01439
TRA DCVRR YES FAP01440
STL DCNFG NO, SET FRACTION FLAG FAP01441
CAL DCV05 INITIALIZE TRANSFER ADDRESS FAP01442
STA DCV07+1 TO COUNT DECIMAL PAACES FAP01443
TRA DCV05+2 FAP01444
REM REENTRY AFTER E TO BEGIN SCAN ON DECIMAL EXPONENT FAP01445
DCV02 STL DCXFG SET DECIMAL EXPONENT FLAG FAP01446
CAL DECCV+2 LOAD DECIMAL EXPONENT FIELD ADDRESS FAP01447
TRA DCV03+2 FAP01448
REM REENTRY AFTER B TO BEGIN SCAN ON BINARY EXPONENT FAP01449
DCV03 STL DCBFG SET BINARY EXPONENT FLAG FAP01450
CAL DECCV+3 LOAD BINARY EXPONENT FIELD FLAG FAP01451
STA DCV06 INITIALIZE FIELD CONVERSION ADDRESSES FAP01452
STA DCV06+2 FAP01453
STA DCV07 FAP01454
CAL DCV05+1 INITIALIZE TRANSFER ADDRESS FAP01455
STA DCV07+1 TO OMIT COUNTING DECIMAL PLACES FAP01456
CAL DCV06+2 INITIALIZE INSTRUCTION TO ADD FAP01457
TRA DCV04+3 FAP01458
REM REENTRY AFTER MINUS FAP01459
DCV04 CLS Q0 SET FIELD TO -0 FAP01460
STO* DCV06 FAP01461
SUB * INITIALIZE INSTRUCTION TO SUBTRACT FAP01462
STD DCV06+4 FAP01463
TOV *+1 FAP01464
TRA DCV05+2 FAP01465
REM CONVERT NEXT DIGIT IN FIELD FAP01466
DCV05 TRA *+1 (TRANSFER ADDRESS TO BUMP DECIMAL COUNTER FAP01467
TXI *+1,4,-1 (TRANSFER ADDRESS TO OMIT BUMP) FAP01468
SXA *+2,4 SAVE DECIMAL PLACE COUNT FAP01469
TSX C0190,4 *GET NEXT CHARACTER FAP01470
AXT **,4 RELOAD DECIMAL PLACE COUNT FAP01471
LAS Q10 IS IT DIGIT FAP01472
TRA DCV08 NO FAP01473
TSX MACERR,4 **CHARACTER IS BCD 10 FAP01474
DCV06 CLA ** YES, MULTIPLY PARTIAL FIELD BY 10 FAP01475
ALS 2 FAP01476
ADD ** FAP01477
ALS 1 FAP01478
*** CHRCTR (INITIALIZED TO ADD OR SUBTRACT) FAP01479
TNO *+2 DID AC OVERFLOW FAP01480
TXI *+2,4,1 YES, BUMP DECIMAL COUNTER BACK FAP01481
DCV07 STO ** SAVE PARTIAL FIELD FAP01482
TRA ** TRANSFER TO OMIT/BUMP DECIMAL COUNTER FAP01483
REM DETERMINE TYPE OF FOLLOWING FIELD FAP01484
DCV08 LAS COMMA IS CHARACTER , FAP01485
TRA DCVRR NO, ILLEGAL CHARACTER FAP01486
TRA DCV09+1 YES, END OF NUMERIC FIELD FAP01487
LAS BLANK NO, IS CHARACTER BLANK FAP01488
TRA DCVRR NO, ILLEGAL CHARACTER FAP01489
TRA DCV09 YES, END OF VARIABLE FIELD FAP01490
LAS MINUS NO, IS CHARACTER - FAP01491
TRA DCVRR NO, ILLEGAL CHARACTER FAP01492
TRA DCV04 YES, RESET OPERATION CODE FAP01493
LAS POINT NO, IS CHARACTER . FAP01494
TRA DCVRR NO, ILLEGAL CHARACTER FAP01495
TRA DCV16 *FAP01496
LAS QE NO, IS CHARACTER E FAP01497
TRA DCVRR NO, ILLEGAL CHARACTER FAP01498
TRA DCV17 *FAP01499
LAS QB NO, IS CHARACTER B FAP01500
TRA DCVRR NO, ILLEGAL CHARACTER FAP01501
TRA DCV18 *FAP01502
LAS PLUSS NO, IS CHARACTER + FAP01503
TRA DCVRR NO, ILLEGAL CHARACTER FAP01504
TRA DCV05+2 YES, IGNORE IT FAP01505
TRA DCVRR NO, ILLEGAL CHARACTER FAP01506
REM TEST FOR DECIMAL EXPONENT FAP01507
DCV09 SLN FLDND SET END OF VARIABLE FIELD (BLANK) FLAG FAP01508
CLA NERAS LOAD DIGIT FAP01509
TZE DECCX IS DIGIT ZERO FAP01510
NZT DCXFG NO, DOES DECIMAL EXPONENT EXIST FAP01511
TRA DCV10 NO, TEST FOR BINARY EXPONENT FAP01512
CAL P4 YES, COMPLEMENT NEGATIVE DECIMAL EXPONENT FAP01513
ADD XERAS FAP01514
ALS 18 COMPUTE EXPLICIT+IMPLICIT EXPONENT FAP01515
STD *+2 FAP01516
CLA NERAS RELOAD DIGIT FAP01517
TXI DCV11,4,** FAP01518
REM TEST FOR BINARY EXPONENT FAP01519
DCV10 NZT DCBFG DOES BINARY EXPONENT EXIST FAP01520
ZET DCNFG NO, DOES DECIMAL EXPONENT EXIST FAP01521
TRA DCV11 YES FAP01522
TRA DECCX NO, NUMBER IS BINARY INTEGER FAP01523
REM CONVERT TO FLOATING POINT NUMBER FAP01524
DCV11 STA FPCV1 SAVE LOW ORDER 15 BITS FAP01525
ARS 15 DELETE LOW ORDER 15 BITS FAP01526
ORA FPCV2 COMBINE WITH EXPONENT 2**52(8) FAP01527
FAD FPCV2 NORMALIZE LEADING 20 BITS EXP 2**43(8) FAP01528
TPL *+3 COMBINE NORMALIZED LEADING 20 BITS FAP01529
FSB FPCV1 WITH FOLLOWING I5 BITS UNNORMALIZED FAP01530
TRA *+2 EXPONENT 2**52(8)/2**15(8) = 2**33(8) FAP01531
FAD FPCV1 INTO DOUBLE PRECISION NUMBER EXP 2**35(10)FAP01532
STQ ERASE SAVE LEAST SIGNIFICANT PART FAP01533
TXL DCV13,4,0 IS DECIMAL EXPONENT ZERO FAP01534
TXH DCV12,4,38 NO, IS DECIMAL EXPONENT NEGATIVE FAP01535
TXI *+1,4,-1 NO, COMPLEMENT IT FAP01536
SXD *+2,4 FAP01537
AXT -1,4 FAP01538
TIX *+2,4,** FAP01539
TSX MACERR,4 **INDEX FAILURE FAP01540
XCA BRING MOST SIGNIFICANT PART INTO MQ FAP01541
FMP DECTAB,4 MULTIPLY BY POWER OF TEN (FACTOR IS SUCH FAP01542
REM THAT FPCV3 AND FPCV4 WILL CORRECT EXP) FAP01543
STO NERAS SAVE MOST SIGNIFICANT PART FAP01544
STQ XERAS SAVE LEAST SIGNIFICANT PART FAP01545
LDQ ERASE LOAD OLD LEAST SIGNIFICANT PART FAP01546
FMP DECTAB,4 MULTIPLY BY POWER OF TEN FAP01547
FAD XERAS COMBINE WITH DOUBLE PRECISION RESULTS FAP01548
FAD NERAS CONVERTED FROM OLD MOST SIGNIFICANT PART FAP01549
ACL FPCV4 BUMP EXPONENT TO CORRECT FOR TABLE FACTOR FAP01550
PBT DID AC OVERFLOW FAP01551
TRA DCV13 NO, PROCESS BINARY EXPONENT FAP01552
TRA DCVRR+1 YES FAP01553
DCV12 TXL DCVRR+1,4,-49 IS EXPONENT ILLEGAL FAP01554
FDP DECTAB,4 NO, DIVIDE BY POWER OF TEN FAP01555
STQ NERAS SAVE MOST SIGNIFICANT PART FAP01556
FAD ERASE COMBINE REMAINDER WITH LEAST SIGNIF PART FAP01557
FDP DECTAB,4 DIVIDE BY POWER OF TEN FAP01558
DCT DID DIVIDE FAIL FAP01559
TSX MACERR,4 **YES FAP01560
XCA RECALL MOST SIGNIFICANT PART FAP01561
FAD NERAS COMBINE WITH PRIOR MOST SIGNIFICANT PART FAP01562
ACL FPCV3 BUMP EXPONENT TO CORRECT FOR TABLE FACTOR FAP01563
PBT DID AC OVERFLOW FAP01564
TRA DCVRR+1 NO FAP01565
DCV13 NZT DCBFG DOES BINARY EXPONENT EXIST FAP01566
TRA DECCX NO, NUMBER IS FLOATING POINT FAP01567
STO NERAS YES, SAVE FLOATING POINT NUMBER FAP01568
ALS 2 DELETE P, Q, BITS FAP01569
SSM FAP01570
ARS 29 RIGHT ADJUST EXPONENT FAP01571
ADD Q128 COMPUTE ABSOLUTE EXPONENT FAP01572
ADD BERAS COMBINE WITH BINARY EXPONENT FAP01573
TPL *+2 IS EXPONENT TOO SMALL FAP01574
TNZ DCVRR+1 YES FAP01575
STA DCV14 NO, USE EXPONENT AS SHIFT COUNT FAP01576
CLA NERAS RELOAD FLOATING POINT NUMBER FAP01577
LLS 8 DELETE AC, MQ EXPONENTS FAP01578
ALS 2 DELETE P, Q BITS FAP01579
ARS 10 REPOSITION 27 BIT FRACTION FAP01580
LLS 8 APPEND 27 LOW ORDER BITS FAP01581
DCV14 LRS ** SHIFT BINARY INTEGER TO PROPER POWER OF 2 FAP01582
TRA DECCX FAP01583
DCVRR TSX SCEND,4 *SKIP TO END OF FIELD FAP01584
PXD ,0 DELETE INTEGER IN ERROR FAP01585
STL ERRFE SET ERROR FLAG FAP01586
DECCX AXT **,4 RELOAD CALLING LINKAGE FAP01587
TRA 1,4 FAP01588
FPCV1 OCT 233000000000 CONSTANT TO NORMALIZE LOW ORDER 15 BITS FAP01589
FPCV2 OCT 252000000000 CONSTANT TO NORMALIZE HIGH ORDER 20 BITS FAP01590
FPCV3 OCT 335000000000 CONSTANT TO CORRECT EXPONENT ON DIVIDE FAP01591
FPCV4 OCT 043000000000 CONSTANT TO CORRECT EXPONENT ON MULTIPLY FAP01592
REM FAP01593
REM CONVERT ONE FIELD OF VFD TO BINARY FAP01594
VFDCV SXA VFDCX,4 SAVE CALLING LINKAGE FAP01595
STZ VFDFL RESET LOW ORDER HALF OF FIELD FAP01596
STZ VFDFL+1 RESET HIGH ORDER HALF OF FIELD FAP01597
STZ VFDHF RESET HOLLERITH FIELD FLAG FAP01598
STZ VFDOF RESET OCTAL FIELD FLAG FAP01599
STZ VFDFB RESET FIELD WIDTH FAP01600
TSX C0190,4 *GET FIRST CHARACTER OF NEXT FIELD FAP01601
LAS COMMA IS IT COMMA FAP01602
TRA VCV07 NO, ILLEGAL CHARACTER FAP01603
TRA VCV06+1 YES, END OF FIELD FAP01604
LAS BLANK IS IT BLANK FAP01605
TRA VCV07 NO, ILLEGAL CHARACTER FAP01606
TRA VCV06 YES, END OF VARIABLE FIELD FAP01607
LAS QO NO, IS IT O FAP01608
TRA VCV07 NO, ILLEGAL CHARACTER FAP01609
TRA VCV01 YES OCTAL FIELD FOLLOWS FAP01610
LAS QH NO, IS IT H FAP01611
TRA VCV07 NO, ILLEGAL CHARACTER FAP01612
TRA VCV01+2 YES HOLLERITH FIELD FOLLOWS FAP01613
TRA VCV02+1 NO, FIELD MUST BE SYMBOLIC FAP01614
REM FIELD IS OCTAL FAP01615
VCV01 STL VFDOF SET OCTAL FIELD FLAG FAP01616
TRA VCV02 FAP01617
REM FIELD IS HOLLERITH FAP01618
STL VFDHF SET HOLLERITH FIELD FLAG FAP01619
REM REENTRY TO COLLECT SECOND DIGIT OF FIELD WIDTH FAP01620
VCV02 TSX C0190,4 *GET NEXT CHARACTER FAP01621
REM REENTRY FOR SYMBOLIC FIELD FAP01622
LAS SLASH IS CHARACTER / FAP01623
TRA VCV07 NO, ILLEGAL CHARACTER FAP01624
TRA VCV03 YES, FIELD FOLLOWS FAP01625
LAS Q10 NO, IS CHARACTER NUMERIC FAP01626
TRA VCV07 NO, ILLEGAL CHARACTER FAP01627
TSX MACERR,4 **CHARACTER IS BCD 10 FAP01628
CLA VFDFB YES, MULTIPLY PARTIAL FIELD WIDTH BY 10 FAP01629
ALS 2 FAP01630
ADD VFDFB FAP01631
ALS 1 FAP01632
ADD CHRCTR ADD NEXT DIGIT FAP01633
STO VFDFB SAVE NEW PARTIAL FIELD WIDTH FAP01634
TRA VCV02 FAP01635
REM REENTRY AFTER / FIELD FOLLOWS FAP01636
VCV03 LXA VFDFB,4 LOAD FIELD WIDTH FAP01637
TXL *+4,4,63 IS FIELD TOO LONG FAP01638
STL ERRFE YES, SET ERROR FLAG FAP01639
AXT 63,4 RESET LENGTH OF FIELD FAP01640
SXA VFDFB,4 FAP01641
ZET VFDHF IS FIELD HOLLERITH FAP01642
TRA VCV05 YES FAP01643
NZT VFDOF NO, IS FIELD OCTAL FAP01644
TRA *+3 NO, FIELD IS SYMBOLIC FAP01645
TXH VCV04,4,36 YES, IS OCTAL FIELD GREATER THAN ONE WORD FAP01646
STL BOLMD NO, SET BOOLEAN SCAN FLAG FAP01647
REM FIELD IS SYMBOLIC OR BOOLEAN NOT LONGER THAN ONE WORD FAP01648
TSX SCANF,4 *EVALUATE SYMBOLIC OR BOOLEAN EXPRESSION FAP01649
TXI VCV06,,0 NULL FIELD FAP01650
SLT EXPRR WAS FIELD IN ERROR FAP01651
TRA *+2 NO FAP01652
TRA VCV07+2 YES FAP01653
SLW VFDFL SAVE LOW ORDER PORTION FAP01654
TRA VCV06+1 FAP01655
REM FIELD IS OCTAL FAP01656
VCV04 TSX C0190,4 *GET NEXT CHARACTER FAP01657
LAS COMMA IS IT COMMA FAP01658
TRA VCV07+1 NO, ILLEGAL CHARACTER FAP01659
TRA VCV06+1 YES, END OF FIELD FAP01660
LAS BLANK IS IT BLANK FAP01661
TRA VCV07+1 NO, ILLEGAL CHARACTER FAP01662
TRA VCV06 YES, END OF VARIABLE FIELD FAP01663
LAS Q8 IS IT AN OCTAL DIGIT FAP01664
NOP NO FAP01665
TRA VCV07+1 ILLEGAL CHARACTER FAP01666
CAL VFDFL+1 LOAD HIGH ORDER PORTION OF WORD FAP01667
LDQ VFDFL LOAD LOW ORDER PORTION OF WORD FAP01668
LGL 3 BUMP WORD LEFT ONE OCTAL DIGIT FAP01669
SLW VFDFL+1 SAVE HIGH ORDER PORTION OF WORD FAP01670
XCL FAP01671
ORA CHRCTR APPEND DIGIT TO LOW ORDER PORTION OF WORD FAP01672
SLW VFDFL SAVE LOW ORDER PORTION OF WORD FAP01673
TRA VCV04 FAP01674
REM FIELD IS HOLLERITH FAP01675
VCV05 CAL BLANKS BLANK OUT HIGH AND LOW ORDER PORTION FAP01676
SLW VFDFL+1 WORD FAP01677
SLW VFDFL FAP01678
TSX C0190,4 *GET NEXT CHARACTER FAP01679
LAS COMMA IS IT , FAP01680
TRA *+2 NO FAP01681
TRA VCV06+1 YES, END OF FIELD FAP01682
LAS BLANK NO, IS IT BLANK FAP01683
TRA *+2 NO FAP01684
TRA VCV06 YES, END OF VARIABLE FIELD FAP01685
LDQ VFDFL NO, LOAD LOW ORDER PORTION OF WORD FAP01686
CAL VFDFL+1 LOAD HIGH ORDER PORTION OF WORD FAP01687
LGL 6 SHIFT LEFT ONE CHARACTER FAP01688
SLW VFDFL+1 SAVE HIGH ORDER PORTION OF WORD FAP01689
XCL FAP01690
ORA CHRCTR APPEND NEXT CHARACTER FAP01691
SLW VFDFL SAVE LOW ORDER PORTION OF WORD FAP01692
TRA VCV05+3 FAP01693
REM REENTRY AFTER BLANK, END OF VARIABLE FIELD FAP01694
VCV06 SLN FLDND SET END OF VARIABLE FIELD FLAG FAP01695
REM REENTRY AFTER COMMA, END OF FIELD FAP01696
LXA VFDFB,4 LOAD WIDTH OF FIELD FAP01697
CAL VFDFL+1 LOAD HIGH ORDER PORTION OF FIELD FAP01698
LDQ VFDFL LOAD LOW ORDER PORTION OF FIELD FAP01699
LGL 72,4 LEFT ADJUST FIELD CONTENTS FAP01700
SLW VFDFL+1 SAVE HIGH ORDER PORTION OF FIELD FAP01701
STQ VFDFL SAVE LOW ORDER PORTION OF FIELD FAP01702
TRA VFDCX FAP01703
REM ERROR ON FIELD DESIGNATION - SKIP OVER FIELD FAP01704
VCV07 STZ VFDFB RESET FIELD WIDTH FAP01705
TSX SCEND,4 *SKIP TO END OF FIELD FAP01706
REM FIELD IS IN ERROR FAP01707
STL ERRFE SET ERROR FLAG FAP01708
VFDCX AXT **,4 RELOAD CLALING LINKAGE FAP01709
TRA 1,4 FAP01710
REM FAP01711
REM CONVERT 12 DIGIT OCTAL FIELD TO BINARY FAP01712
OCTSV CAL SYMBL COMBINE LOW AND HIGH ORDER PORTIONS FAP01713
ORA SYMB2 OF 12 DIGIT OCTAL FIELD FAP01714
ANA YYMSK IS ELEMENT OCTAL FAP01715
TNZ OCTSR **NO FAP01716
LDQ SYMBL LOAD LOW ORDER DIGITS FAP01717
CAQ OCTALT,,6 CONVERT FROM OCTAL FAP01718
ARS 18 REPOSITION IN LOW ORDER FAP01719
SLW ELMEQ SAVE FAP01720
NZT SYMB2 DO HIGH ORDER DIGITS EXIST FAP01721
TRA OCTSX NO FAP01722
LDQ SYMB2 LOAD HIGH ORDER DIGITS FAP01723
PXD ,0 FAP01724
CAQ OCTALT,,6 CONVERT FROM OCTAL FAP01725
ANA PRDMK DELETE LOW ORDER GARBAGE FAP01726
ORA ELMEQ COMBINE WITH LOW ORDER DIGITS FAP01727
TRA OCTSX FAP01728
OCTSR SLN EXPRR SET ERROR FLAGS FAP01729
STL ERRFB FAP01730
PXD ,0 DELETE VALUE OF OCTAL INTEGER IN ERROR FAP01731
OCTSX TRA 1,4 FAP01732
PRDMK SVN ,,-1 MASK FOR PREFIX,DECREMENT FIELD BITS 0-17 FAP01733
YYMSK BCI 1,YYYYYY MASK FOR NON-OCTAL CHARACTERS FAP01734
REM FAP01735
REM CONVERT 12 DIGIT DECIMAL FIELD TO BINARY FAP01736
DECSV LDQ SYMBL LOAD LOW ORDER DIGITS FAP01737
PXD ,0 FAP01738
CAQ INTTAB,,6 CONVERT FROM DECIMAL FAP01739
ARS 16 REPOSITION IN LOW ORDER FAP01740
STO ELMEQ SAVE FAP01741
NZT SYMB2 DO HIGH ORDER DIGITS EXIST FAP01742
TRA DECSX NO FAP01743
LDQ SYMB2 YES, LOAD LOW ORDER DIGITS FAP01744
PXD ,0 FAP01745
CAQ INTTAB,,6 CONVERT FROM DECIMAL FAP01746
ARS 16 REPOSITION IN LOW ORDER FAP01747
XCA FAP01748
VLM MILLN,,20 MULTIPLY BY 10**6 FAP01749
TOV *+1 TURN OFF TRIGGER FAP01750
LLS 8 SCALE FAP01751
ADD ELMEQ COMBINE WITH LOW ORDER DIGITS FAP01752
TNO DECSX IS NUMBER LARGER THAN 2**35 FAP01753
SLN EXPRR YES, SET ERROR FLAGS FAP01754
STL ERRFE FAP01755
PXD ,0 DELETE NUMBER FAP01756
DECSX TRA 1,4 FAP01757
MILLN DEC 004096000000 FAP01758
REM FAP01759
REM CONVERT BINARY NUMBER RIGHT ADJUSTED IN AC TO BCD FAP01760
BCDCV LDQ Q0 PREPARE TO CONVERT NUMBER TO DECIMAL FAP01761
TRA BCDV1 HUNDRED THOUSAND PATCH 43FAP01762
VDP Q10000,,4 TENS OF THOUSANDS FAP01763
RQL 6 FAP01764
LRS 4 FAP01765
VDP Q1000,,4 THOUSANDS FAP01766
RQL 6 FAP01767
LRS 4 FAP01768
VDP Q100,,4 HUNDREDS FAP01769
RQL 6 FAP01770
LRS 4 FAP01771
VDP Q10,,4 TENS FAP01772
RQL 6 FAP01773
STQ NERAS COMBINE WITH FAP01774
ORA NERAS ONES FAP01775
DCT TURN OFF TRIGGER FAP01776
NOP FAP01777
TRA 1,4 FAP01778
REM FAP01779
REM ASSEMBLE 12 CHARACTER ALPHAMERIC SYMBOL FAP01780
SSCAN STZ SYMB2 CLEAR HIGH ORDER SYMBOL FAP01781
STZ SYMBL CLEAR LOW ORDER SYMBOL FAP01782
CAL CHRCTR LOAD FIRST CHARACTER NEXT FIELD FAP01783
ERA BLANK IS IT BLANK FAP01784
TZE 1,4 YES, NULL EXPRESSION FAP01785
REM REENTRY TO CONTINUE SCAN OF FIELD FAP01786
SSCET SXA SSCNX,4 SAVE CALLING LINKAGE FAP01787
TOV *+1 TURN OFF TRIGGER FAP01788
TSX C0190,4 *GET NEXT CHARACTER FAP01789
PAX ,4 FOR TESTING FAP01790
TXL SSCN1,4,9 CHARACTER IS NUMERIC FAP01791
TXL SSCN0,4,12 CHARACTER IS = OR ' FAP01792
TXL SSCRR,4,15 CHARACTER IS ILLEGAL FAP01793
TXL SSCNX,4,16 CHARACTER IS + FAP01794
TXL SSCN1,4,25 CHARACTER IS ALPHABETIC FAP01795
TXL SSCRR,4,26 CHARACTER IS +0 FAP01796
TXL SSCN1,4,27 CHARACTER IS . FAP01797
TXL SSCN0,4,28 CHARACTER IS ) FAP01798
TXL SSCN1,4,29 CHARACTER IS 'COLON' DAFAP01799
TXL SSCRR,4,31 CHARACTER IS ILLEGAL FAP01800
TXL SSCNX,4,32 CHARACTER IS - FAP01801
TXL SSCN1,4,41 CHARACTER IS ALPHABETIC FAP01802
TXL SSCRR,4,42 CHARACTER IS -0 FAP01803
TXL SSCNX,4,44 CHARACTER IS $ OR * FAP01804
TXL SSCRR,4,47 CHARACTER IS ILLEGAL FAP01805
TXL SSCN2,4,48 CHARACTER IS BLANK FAP01806
TXL SSCNX,4,49 CHARACTER IS / FAP01807
TXL SSCN1,4,57 CHARACTER IS ALPHABETIC FAP01808
TXL SSCRR,4,58 CHARACTER IS RM FAP01809
TXL SSCN2+1,4,59 CHARACTER IS , FAP01810
TXH SSCRR,4,60 CHARACTER IS ILLEGAL FAP01811
REM CHARACTER IS ( ) ' = FAP01812
SSCN0 TXL SSCNX,4,** IS THIS SCAN DURING MACRO DEFINITION FAP01813
TXL SSCRR,4,12 NO, IS CHARACTER = OR ' NOT LEGAL IN FAP FAP01814
REM CHARACTER IS VALID FAP01815
SSCN1 STZ SCNFC RESET FLAG FOR FIRST CHARACTER IN ELEMENT FAP01816
CAL SYMB2 LOAD HIGH ORDER PORTION FAP01817
LDQ SYMBL LOAD LOW ORDER PORTION FAP01818
LGL 6 SHIFT UP NEXT CHARACTER FAP01819
TOV SSCRR IS SYMBOL (OR INTEGER) TOO LONG FAP01820
SLW SYMB2 NO, SAVE HIGH ORDER PORTION FAP01821
XCL FAP01822
ADD CHRCTR APPEND NEXT CHARACTER TO LOW ORDER PART FAP01823
SLW SYMBL SAVE LOW ORDER PORTION FAP01824
TRA SSCET+2 FAP01825
REM CHARACTER IS ILLEGAL FAP01826
SSCRR STZ SYMB2 CLEAR SYMBOL FAP01827
STZ SYMBL FAP01828
SLN EXPRR SET ERROR FLAGS FAP01829
STL ERRFE FAP01830
TSX SCEND,4 *SKIP TO END OF INTEGER FAP01831
TRA FLAGB SET BOOLEAN ERROR FLAG FAP01832
REM END OF FIELD FAP01833
SSCN2 SLN FLDND SET END OF VARIABLE FIELD (BLANK) FLAG FAP01834
SLN EXPND SET END OF EXPRESSION (, OR BLANK) FLAG FAP01835
SSCNX AXT **,4 RELOAD CALLING LINKAGE FAP01836
TRA 2,4 FAP01837
REM FAP01838
REM SKIP TO END OF EXPRESSION FAP01839
SCEND SXA SCENX,4 SAVE CALLING LINKAGE FAP01840
TSX C0190,4 *GET NEXT CHARACTER FAP01841
PAX ,4 FOR TESTING FAP01842
TXL SCEND+1,4,47 FAP01843
TXL *+4,4,48 CHARACTER IS BLANK FAP01844
TXL SCEND+1,4,58 FAP01845
TXL SCENX,4,59 CHARACTER IS COMMA FAP01846
TRA SCEND+1 FAP01847
SLN FLDND SET END OF VARIABLE FIELD (BLANK) FLAG FAP01848
SCENX AXT **,4 RELOAD CALLING LINKAGE FAP01849
TRA 1,4 FAP01850
* RIGHT ADJUST SYMBOL NAME TSFAP01851
RADJS SXA RADJ3,4 COURTESY RHO TSFAP01852
NZT SYMB2 DOES LENGTH OF SYMBOL EXCEED 6 CHARACTERSTSFAP01853
TRA RADJ1 NO TSFAP01854
SLN EXPRR YES,SET ERROR FLAGS TSFAP01855
STL ERRFE TSFAP01856
RADJ1 CAL SYMBL LOAD LOW ORDER SYMBOL TSFAP01857
TZE RADJ3 DOES SYMBOL NAME EXIST TSFAP01858
XCL TSFAP01859
ZAC TSFAP01860
AXT 36,4 TSFAP01861
LGL 6 TSFAP01862
TNZ *+2 TSFAP01863
TIX *-2,4,6 TSFAP01864
ORA ONEZR =H 0 TSFAP01865
LGR 42,4 TSFAP01866
XCL TSFAP01867
RADJ3 AXT **,4 TSFAP01868
TRA 1,4 TSFAP01869
REM LEFT ADJUST SYMBOL NAME TSFAP01870
LADJS NZT SYMB2 DOES LENGTH OF SYMBOL EXCEDE 6 CHARACTERS FAP01871
TRA *+3 NO FAP01872
SLN EXPRR YES, SET ERROR FLAGS FAP01873
STL ERRFE FAP01874
CAL SYMBL LOAD LOW ORDER SYMBOL NAME FAP01875
TZE *+5 DOES SYMBOL NAME EXIST FAP01876
LDQ BLANKS YES, LOAD FOLLOWING BLANKS FAP01877
LGR 6 SHIFT OUT NEXT CHARACTER FAP01878
TNZ *-1 IS SYMBOL LEFT ADJUSTED FAP01879
XCL YES, RECALL LEFT ADJUSTED SYMBOL NAME FAP01880
TRA 1,4 FAP01881
REM FAP01882
REM REPLACE LEADING BLANKS WITH (TRAILING) NULLS DA FAP01883
NZEL SXA NZX4,4 SAVE RETURN DAFAP01884
ERA BLANKS MAKE ZEROS FROM BLANKS DAFAP01885
AXT 6,4 INITIALIZE SHIFT COUNT DAFAP01886
LGR 6 SHIFT UNTIL DAFAP01887
TZE *+2 REMAINDER IS ALL ZERO DAFAP01888
TXI *-2,4,6 COUNT BITS SHIFTED OUT DAFAP01889
XCL RETURN GOOD PART TO AC DAFAP01890
ERA BLANKS AND RESTORE ORIGIONAL CHARACTERS DAFAP01891
ARS 36,4 REMOVE LOW ORDER GARBAGE DAFAP01892
LDQ NULLS AND REPLACE IT DAFAP01893
LGL 36,4 WITH NULLS. DAFAP01894
NZX4 AXT **,4 RESTORE DAFAP01895
TRA 1,4 AND RETURN DAFAP01896
REM FAP01897
REM GOOD OLD C0190 - GET NEXT CHARACTER FAP01898
C0190 LDQ RESIDU RELOAD REMAINDER OF SOURCE CARD WORD FAP01899
C019Q BSS 0 ENTRY FOR RESIDUE IN MQ (42)FAP01900
TIX *+3,1,1 IS CHARACTER COUNT EXHAUSTED FAP01901
TSX C0200,1 *YES, GET NEXT SOURCE CARD WORD FAP01902
AXT 6,1 RESET CHARACTER COUNT FAP01903
PXD ,0 FAP01904
LGL 6 SHIFT IN NEXT CHARACTER FAP01905
STQ RESIDU SAVE REMAINDER OF SOURCE CARD FAP01906
SLW CHRCTR SAVE IT FAP01907
TRA 1,4 FAP01908
REM FAP01909
REM LOOK AT NEXT CHARACTER FAP01910
C019A LDQ RESIDU RELOAD REMAINDER OF SOURCE CARD WORD FAP01911
TXH *+4,1,1 IS CHARACTER COUNT EXHAUSTED FAP01912
TSX C0200,1 *YES, GET NEXT SOURCE CARD WORD FAP01913
STQ RESIDU SAVE REMAINDER OF SOURCE CARD FAP01914
AXT 7,1 RESET CHARACTER COUNT FAP01915
PXD ,0 FAP01916
LGL 6 SHIFT IN NEXT CHARACTER FAP01917
TRA 1,4 FAP01918
REM FAP01919
REM GET NEXT WORD FAP01920
C0200 TXI *+1,2,-1 BUMP CARD WORD COUNT FAP01921
LDQ BCDBF,2 LOAD NEXT SOURCE CARD WORD FAP01922
TXH *+2,2,-12 IS THIS CARD IMAGE WORD 13 FAP01923
LDQ BLANKS YES, SET STOP FAP01924
TRA 1,1 FAP01925
REM FAP01926
REM BUMP STORAGE COUNTERS FAP01927
BPCTR STO BERAS SAVE LENGTH OF BUMP FAP01928
ADD CDCTR BUMP CARD STORAGE COUNTER FAP01929
STA CDCTR FAP01930
CLA BERAS RECALL LENGTH OF BUMP FAP01931
ADD LOCTR BUMP PROGRAM COUNTER FAP01932
STA LOCTR FAP01933
TRA 1,4 FAP01934
REM FAP01935
REM FAP01936
REM ROUTINE TO TEST FOR ON/OFF OPTION OF CONTROL CARD FAP01937
ONOFF SXA ONOFX,4 SAVE CALLING LINKAGE FAP01938
TSX SSCAN,4 *CHECK VARIABLE FIELD FAP01939
TXI ONOFX,,0 NULL ON/OFF OPTION FAP01940
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP01941
STL ERRFF NO FAP01942
SLT EXPRR WAS CHARACTER ILLEGAL FAP01943
SLT EXPND WAS END OF EXPRESSION REACHED FAP01944
TRA OOFLD FIELD ERROR, FLAG AND SKIP CARD FAP01945
ONOFX AXT **,4 RESET LINKAGE FAP01946
CAL SYMBL PICK UP VARIABLE FIELD SYMBOL FAP01947
TNZ *+3 NON-BLANK, MAY BE 'ON', OR 'OFF' FAP01948
CLS* 1,4 BLANK FIELD, FLIP SWITCH FAP01949
TRA 1,4 AND RETURN. FAP01950
ERA ONMSK CHECK FOR 'ON' FAP01951
TZE ONRTN IT IS 'ON' FAP01952
ERA OFFMK CHECK FOR 'OFF' FAP01953
TZE *+4 FAP01954
OOFLD STL ERRFF FAP01955
CAL Q4 FAP01956
ORS P1FLG FAP01957
CLA* 1,4 OFF, PICK UP PARAMETER FAP01958
SSM FORCE SWITCH TO NORMAL MODE FAP01959
TRA 1,4 AND RETURN. FAP01960
ONRTN CAL* 1,4 ON, PICK UP PARAMETER FAP01961
TRA 1,4 FORCE SWITCH TO 'ON' MODE, RETURN. FAP01962
ONMSK BCI 1,0000ON MASK FOR ON FAP01963
OFFMK BCI 1,000O T MASK FOR OFF FAP01964
REM ERROR ROUTINES FAP01965
SRCERR STI DIGM2 STORE TABLE NAME WNFAP01966
TSX RECBC,4 GET SOURCE RECORD NUMBER IN MQ WNFAP01967
CLA COMBK FOLLOW WITH COMMA AND BLANK WNFAP01968
XCA .. WNFAP01969
DST VRCM2+2 .. WNFAP01970
TSX WRFLXA,4 WRITE OUT ON LINE WITH WNFAP01971
PZE VRCM2,,4 .. WNFAP01972
WRFLXM DIGM1,4 OVERFLOW MESSAGE AND FOLLOW WNFAP01973
WRFLXM BCDBF,14 WITH CARD AT TIME OF CATASTROPHE WNFAP01974
REM TSFAP01975
(SECL) WRFLXM MEC1+2,4 SOURCE ERROR RETURN WNFAP01976
TSX DORMNT,4 TSFAP01977
SPACE 2 TSFAP01978
(MECL) WRFLXM MEC1,6 MACHINE ERROR RETURN WNFAP01979
TSX DORMNT,4 TSFAP01980
MEC1 BCI 1,MACHIN WNFAP01981
OCT 256046516057 'E OR ' WNFAP01982
BCI 2,SOURCE ERROR WNFAP01983
OCT 604060575757 ' - ' WNFAP01984
OCT 575757262147 'FAP' , MAY BE PATCHED BY SAVE WNFAP01985
REM TSFAP01986
* MACHINE ERROR SECTION CONTENTS OF IR4 TO PRINT TSFAP01987
MACERR PCD ,4 IX4 IS THE LOCATION COUNTER FOR ONLINE TSFAP01988
XCA *PRINTING TSFAP01989
ZAC WNFAP01990
AXT 6,4 TSFAP01991
ALS 3 CTSSFAP01992
LGL 3 TSFAP01993
TIX *-2,4,1 TSFAP01994
SLW MACE2 TSFAP01995
WRFLXM MACE1,4 TSFAP01996
TTR (MECL) TSFAP01997
MACE1 BCI 3,MACERR CALLED AT WNFAP01998
MACE2 BCI 1, CONTENTS OF IR4 FOR PRINTING TSFAP01999
REM TSFAP02000
PTCH ERA Q7 IS IT A DOLLAR SIGN *FAP02001
TZE 1,4 YES *FAP02002
AXT 24,1 PREPARE TO SCAN CC11-16 *FAP02003
TRA SETUP+8 *FAP02004
BCDV1 LRS 4 43FAP02005
VDP TEN5TH,,4 HUNDREDS OF THOUSANDS 43FAP02006
RQL 6 43FAP02007
LRS 4 43FAP02008
TRA BCDCV+2 BACK TO BCDCV ROUTINE 43FAP02009
REM FAP02010
DIGM1 EQU * WNFAP02011
DIGM2 BCI 4, TABLE OVERFLOWED. WNFAP02012
HEDNM BCI 1,HEADNG FAP02013
VECNM BCI 1,VECTOR FAP02014
LITNM BCI 1,LITRAL FAP02015
SYMNM BCI 1,SYMBOL FAP02016
OPTNM BCI 1,OPCODE WNFAP02017
REM FAP02018
REM FAP02019
REM FAP02020
REM CONSTANTS FAP02021
M10 MZE 10 FAP02022
Q63 PZE 63 FAP02023
Q62 PZE 62 FAP02024
Q0 FAP02025
Q1 PZE 1 9 BIT 0 ZONE FAP02026
Q2 PZE 2 8 BIT 11 ZONE FAP02027
Q4 PZE 4 7 BIT 12 ZONE FAP02028
ZONER SYN * FAP02029
Q8 PZE 8 6 BIT NO ZONE FAP02030
Q16 PZE 16 5 BIT FAP02031
Q32 PZE 32 4 BIT FAP02032
Q64 PZE 64 3 BIT FAP02033
Q128 PZE 128 2 BIT FAP02034
Q256 PZE 256 1 BIT FAP02035
DIGIT PZE 512 0 BIT FAP02036
Q3 PZE 3 FAP02037
DASTR BCI 1,**0000 SPECIAL OP CODE COMPARE WORD (42)FAP02038
Q5 PZE 5 LOFAP02039
Q9 PZE 9 LOFAP02040
Q12 PZE 12 LOFAP02041
Q6 PZE 6 FAP02042
Q7 PZE 7 MASK FOR OCTAL CHARACTER FAP02043
Q10 PZE 10 FAP02044
Q15 PZE 15 FAP02045
Q36 PZE 36 FAP02046
COMSK OCT 1300 FAP02047
Q45 PZE 45 FAP02048
ORBIT FAP02049
ENDCD BCI 1, END FAP02050
DATE1 OCT 40753 FAP02051
DATE2 OCT 322740 FAP02052
DATE3 OCT 4312000 FAP02053
DATE4 OCT 34100000 FAP02054
DATE5 OCT 26400000000 FAP02055
ABBFG FAP02056
LSOMK OCT 377700000000 FAP02057
LS777 OCT 077700000000 FAP02058
PT2 BCI 1,0.0000 FAP02059
LS060 OCT 006000000000 FAP02060
LS240 OCT 024000000000 FAP02061
LSTYP OCT 077400000000 FAP02062
LSEXT OCT 067000000000 FAP02063
760LS OCT 076000000000 FAP02064
Q112 PZE 112 FAP02065
LOW13 OCT 17777 FAP02066
NULLS OCT 575757575757 FAP02067
CSAVE BCI 1, SAVE FAP02068
CSCOM FAP02069
CSTRA TRA SOURC FAP02070
COMBK OCT 736057575757 FAP02071
Q100 PZE 100 FAP02072
Q127 OCT 1777 MASK FOR LOW ORDER TEN BITS *FAP02073
Q1000 PZE 1000 FAP02074
Q4095 PZE 4095 MASK FOR TWO BCD CHARACTERS FAP02075
Q7680 PZE 7680 FAP02076
Q8192 PZE 8192 FAP02077
Q10000 PZE 10000 FAP02078
Q16384 PZE 16384 FAP02079
ADDMK PZE -1 MASK FOR ADDRESS FIELD BITS 21 - 35 FAP02080
T1 PZE ,1 FAP02081
T2 PZE ,2 FAP02082
T3 PZE ,3 FAP02083
T4 PZE ,4 FAP02084
ADTMK PZE -1,-1 MASK FOR ADDRESS,TAG FIELD BITS 18 - 35 FAP02085
D1 PZE ,,1 FAP02086
D2 PZE ,,2 FLAG FOR EXPLICIT ZERO IN MACRO LOC FIELD FAP02087
REM MASK FOR FLAG REQUIRING DECREMENT FIELD FAP02088
DELTF PZE FLAG FOR SYMBOLIC REF TABLE ENTRIES *FAP02089
D4 PZE ,,4 MASK FOR FLAG REQUIRING TAG FIELD FAP02090
D5 PZE ,,5 RELOCATION BITS FOR NAME IN TRANSFER VECTRFAP02091
D8 PZE ,,8 FLAG FOR DUPLICATELY-DEFINED SYMBOLS FAP02092
REM MASK FOR FLAG REQUIRING ADDRESS FIELD FAP02093
D36 PZE ,,36 FAP02094
D48 PZE ,,48 INSTRUCTION INDIRECT ADDRESS BITS FAP02095
IMASK PZE ,4,48 MASK FOR FLAGS PERMITTING INDIRECT ADDRS FAP02096
D63 PZE ,,63 MASK FOR THIRD CHARACTER IN WORD FAP02097
D320 PZE ,,320 COULUMN BINARY BITS FAP02098
D4032 PZE ,,4032 MACRO ARGUMENT FLAG FAP02099
D32512 PZE ,,32512 MASK FOR 8-BIT COUNT FIELD FAP02100
D32767 PZE ,,-1 FAP02101
P1 PON FAP02102
P4 FOR FAP02103
BLNK3 BCI 1, 000 BLANK FOR OP CODE (42)FAP02104
P7 SVN FAP02105
ALONE SVN -1,-1,-1 FULL WORD MASK FAP02106
OPMSK OCT 777700217777 MASK FOR VALID MACHINE OPERATION BITS FAP02107
P1MSK OCT 777700000000 MASK TO DELETE CC 81 - 84 FAP02108
P2MSK BCI 1,00 MASK TO BLANK OUT CC 81 - 84 FAP02109
QE BCI 1,00000E FAP02110
POINT BCI 1,00000. FAP02111
QO BCI 1,00000O FAP02112
QV BCI 1,00000V FAP02113
SPACE BCI 1,0 PROGRAM CONTROL CHARACTER FAP02114
4FLAG BCI 1,4 MODE ERROR FLAG FAP02115
9FLAG BCI 1,9 MODE ERROR FLAG FAP02116
EFLAG BCI 1, E LISTING FLAG FOR ERROR FAP02117
MFLAG BCI 1, M FAP02118
RCOMA BCI 1,,00000 FAP02119
3BK BCI 1,000 TSFAP02120
ONEZR BCI 1, 0 ONE ZERO TSFAP02121
REM MODE SETTING CHARACTERS FOR TAPENO PSEUDOOPERATION FAP02122
TAPCH BCI 1,00000 (1) FAP02123
QL BCI 1,00000L (2) FAP02124
QH BCI 1,00000H (3) FAP02125
QD BCI 1,00000D (4) FAP02126
QB BCI 1,00000B (5) FAP02127
REM FAP02128
REM MACRO PROCESSOR PUNCTUATION TABLE FAP02129
BKTBM SYN * FAP02130
LPARN BCI 1,00000( FAP02131
COMMA BCI 1,00000, FAP02132
SLASH BCI 1,00000/ FAP02133
BLANK BCI 1,00000 FAP02134
ASTRK BCI 1,00000* FAP02135
DOLAR BCI 1,00000$ FAP02136
MINUS BCI 1,00000- FAP02137
BCI 1,00000) FAP02138
PLUSS BCI 1,00000+ FAP02139
PRIME BCI 1,00000' FAP02140
EQUAL BCI 1,00000= FAP02141
BKTBL PZE ,,BKTBL-BKTBM MACRO PUNCTUATION TABLE FAP02142
REM FAP02143
REM CONVERSION TABLES FAP02144
REM FAP02145
REM TO CONVERT DECIMAL TO BINARY INTEGER FAP02146
INTTAB PZE INTTAB+10 FAP02147
PZE INTTAB+10,,25000 FAP02148
PON INTTAB+10,,50000 FAP02149
PTW INTTAB+10,,75000 FAP02150
PTH INTTAB+10,,100000 FAP02151
PTH INTTAB+10,,125000 FAP02152
FOR INTTAB+10,,150000 FAP02153
FVE INTTAB+10,,175000 FAP02154
SIX INTTAB+10,,200000 FAP02155
SIX INTTAB+10,,225000 FAP02156
INTTAB+20 FAP02157
INTTAB+20,,2500 FAP02158
INTTAB+20,,5000 FAP02159
INTTAB+20,,7500 FAP02160
INTTAB+20,,10000 FAP02161
INTTAB+20,,12500 FAP02162
INTTAB+20,,15000 FAP02163
INTTAB+20,,17500 FAP02164
INTTAB+20,,20000 FAP02165
INTTAB+20,,22500 FAP02166
INTTAB+30 FAP02167
INTTAB+30,,250 FAP02168
INTTAB+30,,500 FAP02169
INTTAB+30,,750 FAP02170
INTTAB+30,,1000 FAP02171
INTTAB+30,,1250 FAP02172
INTTAB+30,,1500 FAP02173
INTTAB+30,,1750 FAP02174
INTTAB+30,,2000 FAP02175
INTTAB+30,,2250 FAP02176
INTTAB+40 FAP02177
INTTAB+40,,25 FAP02178
INTTAB+40,,50 FAP02179
INTTAB+40,,75 FAP02180
INTTAB+40,,100 FAP02181
INTTAB+40,,125 FAP02182
INTTAB+40,,150 FAP02183
INTTAB+40,,175 FAP02184
INTTAB+40,,200 FAP02185
INTTAB+40,,225 FAP02186
INTTAB+50 FAP02187
INTTAB+50,4,2 FAP02188
INTTAB+50,0,5 FAP02189
INTTAB+50,4,7 FAP02190
INTTAB+50,0,10 FAP02191
INTTAB+50,4,12 FAP02192
INTTAB+50,0,15 FAP02193
INTTAB+50,4,17 FAP02194
INTTAB+50,0,20 FAP02195
INTTAB+50,4,22 FAP02196
0 FAP02197
0,2 FAP02198
0,4 FAP02199
0,6 FAP02200
0,0,1 FAP02201
0,2,1 FAP02202
0,4,1 FAP02203
0,6,1 FAP02204
0,0,2 FAP02205
0,2,2 FAP02206
REM FAP02207
REM FAP02208
REM TO CONVERT OCTAL TO BINARY INTEGER FAP02209
OCTALT PZE OCTALT+8 FAP02210
PON OCTALT+8 FAP02211
PTW OCTALT+8 FAP02212
PTH OCTALT+8 FAP02213
FOR OCTALT+8 FAP02214
FVE OCTALT+8 FAP02215
SIX OCTALT+8 FAP02216
SVN OCTALT+8 FAP02217
OCTALT+16 FAP02218
OCTALT+16,,4096 FAP02219
OCTALT+16,,2*4096 FAP02220
OCTALT+16,,3*4096 FAP02221
OCTALT+16,,4*4096 FAP02222
OCTALT+16,,5*4096 FAP02223
OCTALT+16,,6*4096 FAP02224
OCTALT+16,,7*4096 FAP02225
OCTALT+24 FAP02226
OCTALT+24,,512 FAP02227
OCTALT+24,,2*512 FAP02228
OCTALT+24,,3*512 FAP02229
OCTALT+24,,4*512 FAP02230
OCTALT+24,,5*512 FAP02231
OCTALT+24,,6*512 FAP02232
OCTALT+24,,7*512 FAP02233
OCTALT+32 FAP02234
OCTALT+32,,64 FAP02235
OCTALT+32,,2*64 FAP02236
OCTALT+32,,3*64 FAP02237
OCTALT+32,,4*64 FAP02238
OCTALT+32,,5*64 FAP02239
OCTALT+32,,6*64 FAP02240
OCTALT+32,,7*64 FAP02241
OCTALT+40 FAP02242
OCTALT+40,,8 FAP02243
OCTALT+40,,16 FAP02244
OCTALT+40,,24 FAP02245
OCTALT+40,,32 FAP02246
OCTALT+40,,40 FAP02247
OCTALT+40,,48 FAP02248
OCTALT+40,,56 FAP02249
0 FAP02250
,,1 FAP02251
,,2 FAP02252
,,3 FAP02253
,,4 FAP02254
,,5 FAP02255
,,6 FAP02256
,,7 FAP02257
REM FAP02258
REM FAP02259
REM TO CONVERT DECIMAL TO FLOATING POINT BINARY FAP02260
DECTAB SYN *-1 FAP02261
OCT 141500000000,144620000000,147764000000,153470400000 FAP02262
OCT 156606500000,161750220000,165461132000,170575360400 FAP02263
OCT 173734654500,177452013710,202564416672,205721522451 FAP02264
OCT 211443023471,214553630410,217706576512,223434157116 FAP02265
OCT 226543212741,231674055532,235425434430,240532743536 FAP02266
OCT 243661534466,247417031702,252522640262,255647410336 FAP02267
OCT 261410545213,264512676456,267635456171,273402374714 FAP02268
OCT 276503074077,301623713116,304770675742,310473426555 FAP02269
OCT 313612334311,316755023373,322464114135,325601137164 FAP02270
OCT 330741367021,334454732313,337570120775,342726145174 FAP02271
OCT 346445677216,351557257061,354713132676,360436770626 FAP02272
OCT 363546566774,366700324573,372430204755,375536246150 FAP02273
REM FAP02274
REM FAP02275
DCV15 STZ DCPFG RESET EXCESS DECIMAL POINT FLAG *FAP02276
STZ DCEFG RESET EXCESS EXPONENT (E) FLAG *FAP02277
STZ DC2FG RESET EXCESS EXPONENT (B) FLAG *FAP02278
TRA DCV03+2 *FAP02279
DCV16 ZET DCPFG IS THERE AN EXCESS DECIMAL POINT *FAP02280
TRA DCVRR YES, SET ERROR FLAG *FAP02281
STO DCPFG NO *FAP02282
TRA DCV01 *FAP02283
DCV17 ZET DCEFG IS THERE AN EXCESS EXPONENT (E) *FAP02284
TRA DCVRR YES, SET ERROR FLAG *FAP02285
STO DCEFG NO *FAP02286
TRA DCV02 *FAP02287
DCV18 ZET DC2FG IS THERE AN EXCESS EXPONENT (B) *FAP02288
TRA DCVRR YES, SET ERROR FLAG *FAP02289
STO DC2FG NO *FAP02290
TRA DCV03 *FAP02291
REM CONVERT BINARY NUMBER TO DECIMAL *FAP02292
OCTDV VLM Q8,,3 *FAP02293
STO NERAS *FAP02294
VLM Q80,,3 *FAP02295
ADD NERAS *FAP02296
STO NERAS *FAP02297
VLM Q800,,3 *FAP02298
ADD NERAS *FAP02299
STO NERAS *FAP02300
VLM Q8000,,3 *FAP02301
ADD NERAS *FAP02302
STO NERAS *FAP02303
VLM Q80000,,3 *FAP02304
ADD NERAS *FAP02305
TRA 1,4 *FAP02306
Q80 PZE 80 *FAP02307
Q800 PZE 800 *FAP02308
Q8000 PZE 8000 *FAP02309
Q80000 DEC 80000 *FAP02310
SETNO BCI 1, NO FAP02311
PTCH4 BCI 1,0000.0 FAP02312
ALLALL BCI 1,ALL FAP02313
DATEFG PZE -1 FAP02314
MMCSFG FAP02315
REFSFG FAP02316
FGCSFG FAP02317
INSFG FAP02318
FPRNA CAL* FPRN2 PICK UP FIRST WORD OF LINE *FAP02319
ARS 30 ISOLATE FIRST CHARACTER *FAP02320
TNZ WRITT NOT DOUBLE-SPACE, WRITE LINE *FAP02321
TIX WRITT,1,1 YES, BUMP LINE COUNT ONE EXTRA *FAP02322
TRA PAGENO PAGE IS FULL *FAP02323
DLRUT TSX C019A,4 GET NEXT CHARACTER FOR TEST *FAP02324
PAX ,4 *FAP02325
TXL HDTST,4,9 CHARACTER IS NUMERIC *FAP02326
TXL DLERR,4,16 CHARACTER IS ILLEGAL OR PLUS *FAP02327
TXL HDTST,4,25 CHARACTER IS ALPHABETIC *FAP02328
TXL DLERR,4,26 CHARACTER IS ILLEGAL *FAP02329
TXL HDTST,4,29 CHARACTER IS . ) OR 'COLON' DAFAP02330
TXL DLERR,4,32 CHARACTER IS ILLEGAL OR MINUS *FAP02331
TXL HDTST,4,41 CHARACTER IS ALPHABETIC *FAP02332
TXL DLERR,4,49 CHARACTER IS BLANK OR EQUALS *FAP02333
TXL HDTST,4,57 CHARACTER IS ALPHABETIC *FAP02334
TXL DLERR,4,59 CHARACTER IS ILLEGAL OR COMMA *FAP02335
TXL HDTST,4,60 CHARACTER IS LEFT PARENTHESIS *FAP02336
REM REENTRY FOR IMPROPER DOLLAR SIGN *FAP02337
DLERR SLN EXPRR SET ERROR FLAGS *FAP02338
STL ERFDL *FAP02339
TRA SCN02+2 RETURN *FAP02340
REM REENTRY TO TEST FOR MORE THAN ONE CHARACTER PRECEEDING *FAP02341
HDTST CAL SYMBL GET PRECEEDING CHARACTERS *FAP02342
LGR 6 *FAP02343
TNZ DLERR MORE THAN ONE BEFORE DOLLAR SIGN *FAP02344
LGL 6 OK *FAP02345
TRA SCN02+1 RETURN *FAP02346
PATCH TXH FPRN1,2,0 IS LINE AT TOP OF PAGE BLANK *FAP02347
TXI FPRN1,1,-1 YES, BUMP PAGE LINE COUNT DOWN ONE *FAP02348
FLAGB STL ERRFB INDICATE BOOLEAN ERROR *FAP02349
TRA SSCN2+1 RETURN *FAP02350
TTL PASS ONE SUBROUTINES FAP02351
REM PASS ONE FAP02352
REM FAP02353
REM COPY INPUT TAPE TO INTERMEDIATE TAPE FAP02354
REM PREPARE TABLE OF SYMBOLS APPEARING IN SOURCE PROGRAM FAP02355
REM PARTIALLY PROCESS PSEUDOOPS AND LITERALS FAP02356
REM PREPARE TRANSFER VECTOR FAP02357
REM FAP02358
HEAD 1 PASS ONE FAP02359
REM FAP02360
REM SSYMT SUBROUTINE MUST ORIGIN AT SAME LOCATN PASS 1 AND 2 FAP02361
REM LINEAR SEARCH OF SYMBOL TABLE FAP02362
SSYMT SXA SRCHX,4 SAVE CALLING LINKAGE FAP02363
CAL SYMSIZ COMPUTE LENGTH OF SYMBOL TABLE FAP02364
COM FAP02365
ARS 18 FAP02366
ADD Q3 FAP02367
PAX ,4 FAP02368
ADM ESYM3 COMPUTE ORIGIN AT END OF SYMBOL TABLE FAP02369
STA SRCH1 FOR SYMBOL NAMES FAP02370
ADD Q1 FAP02371
STA SRCH2 FOR LOCATIONS FAP02372
CAL SYMBL LOAD SYMBOL NAME FAP02373
SRCH1 LAS **,4 IS IT IN SYMBOL TABLE FAP02374
TIX SRCH1,4,2 NOT YET FAP02375
TXH SRCH2,4,2 YES FAP02376
TIX SRCH1,4,2 NOT YET, IS SYMBOL TABLE EXHAUSTED FAP02377
SLN EXPRR YES, PHASE ERROR FAP02378
PXD ,0 FAP02379
TRA SRCHX FAP02380
SRCH2 CLA **,4 LOAD LOCATION OF SYMBOL FAP02381
PAI LOAD FLAGS FAP02382
LFT 4 IS THIS NAME IN TRANSFER VECTOR FAP02383
SLN EXPRR YES, PHASE ERROR (CANNOT DEFINE PSEUDOOP) FAP02384
ZET ABSFLG IS ASSEMBLY ABSOLUTE FAP02385
ANA ADTMK YES, DELETE EXTRANEOUS FLAGS FAP02386
SXA SET01,4 SAVE LOCATION OF SYMBOL FAP02387
SRCHX AXT **,4 RELOAD CALLING LINKAGE FAP02388
TRA 1,4 FAP02389
REM FAP02390
REM ENTER NAME IN AC, DEFINITION IN SI, IN COMBINED OP TABLE FAP02391
REM SEE REQUIRED FLAGS UNDER COMBINED OP TABLE FAP02392
EOPTB CAL BCDBF LOAD LOCATION FIELD FAP02393
EOPTT SXA EOPTX,4 SAVE CALLING LINKAGE FAP02394
STI BERAS SAVE OP DEFINITION FAP02395
TSX LOCFL,4 *ASSEMBLE OP NAME FAP02396
TZE FIELD **DOES OP NAME EXIST FAP02397
LGR 6 YES, LEFT ADJUST NAME FAP02398
TNZ *-1 FAP02399
XCL FAP02400
SLW SYMBL SAVE LEFT ADJUSTED OP NAME FAP02401
TSX SOPTB,4 *FIND LOCATION IN OP TABLE FAP02402
TRA *+4 NOT IN OP TABLE FAP02403
LDI BERAS LOAD NEW DEFINITION FAP02404
STI OPTTBL-1,1 RE-DEFINE FAP02405
TRA EOPTX EXIT FAP02406
LAS OPTTBL-2,1 PINPOINT LOCATION OF ENTRY FAP02407
TXI *+2,1,-2 FAP02408
TSX MACERR,4 **IMPOSSIBLE PATH OF FLOW FAP02409
SXD EOPT1,1 MARK LOWEST NAME TO BE MOVED UP FAP02410
LXD OPTSIZ,6 LOAD CURRENT TABLE LENGTH FAP02411
TXI *+1,4,-2 BUMP FAP02412
TXH *+3,4,-LOPTBM-2 DID OP TABLE OVERFLOW FAP02413
LDI OPTNM YES, SET OP TABLE OVERFLOW FAP02414
TRA SRCERR **TERMINATE ASSEMBLY FAP02415
SXD OPTSIZ,4 NO, SET NEW TABLE LENGTH FAP02416
TXI *+1,4,-1 FAP02417
SXD SOPT1,4 SET UPPER LIMIT FOR TABLE SEARCH FAP02418
CAL OPTTBL-2,2 MOVE TABLE UP OFF THE TOP FAP02419
LDQ OPTTBL-1,2 TO MAKE ROOM FOR NEW ENTRY FAP02420
SLW OPTTBL,2 FAP02421
STQ OPTTBL+1,2 FAP02422
TXI *+1,2,2 BUMP TO NEXT PAIR FAP02423
TXL *+2,2,0 IS ENTRY AT BOTTOM OF TABLE FAP02424
EOPT1 TXL *-6,2,** NO, IS TABLE MOVED FAP02425
CAL SYMBL YES, INSERT OP NAME FAP02426
SLW OPTTBL-2,1 INTO TABLE FAP02427
LDI BERAS INSERT OP DEFINITION FAP02428
STI OPTTBL-1,1 INTO TABLE FAP02429
EOPT2 TXH EOPTX,4,-2048-2 IS TABLE NOW LONGER THAN 1024 OPCODES FAP02430
LXD EOPT2,4 YES, LOAD CURRENT TABLE LENGTH FAP02431
TXI *+1,4,-2048 DOUBLE FAP02432
SXD EOPT2,4 RESET TEST FAP02433
TXI *+1,4,2 FAP02434
SXD *-3,4 FAP02435
CAL OPTSIZ BUMP LOGARITHM FAP02436
ADD Q2 FOR TABLE OF DOUBLE SIZE FAP02437
STA OPTSIZ FAP02438
EOPTX AXT **,4 RELOAD CALLING LINKAGE FAP02439
TRA 1,4 FAP02440
REM FAP02441
REM ASSEMBLE SUBPROGRAM NAME AND ENTER INTO TRANSFER VECTOR FAP02442
CALNM SXA CALNX,4 SAVE CALLING LINKAGE FAP02443
STZ SYMBL CLEAR SUBPROGRAM NAME FAP02444
TRA CALN1 TEST FOR ABSOLUTE ASSEMBLY *FAP02445
TSX SCANF,4 *ASSEMBLE SUBPROGRAM NAME FAP02446
TXI AFLAG,,0 NULL SUBPROGRAM NAME FAP02447
SLT EXPRR TURN OFF ERROR FLAG FAP02448
NOP PERMIT MULTIPLE DEFINITION FAP02449
ZET ABSFLG IS ASSEMBLY ABSOLUTE FAP02450
TRA CALNX YES FAP02451
TSX LADJS,4 *LEFT ADJUST SUBPROGRAM NAME FAP02452
TZE *+3 DOES SUBPROGRAM NAME EXIST FAP02453
SLT EXPRR YES, IS SUBPROGRAM NAME FLAGGED AS ERROR FAP02454
TSX TRVCR,4 *NO, ENTER NAME IN TRANSFER VECTOR TABLE FAP02455
STZ TVFLG RESET TRANSFER VECTOR NAME FLAG FAP02456
CALNX AXT **,4 RELOAD CALLING LINKAGE FAP02457
TRA 1,4 FAP02458
REM FAP02459
REM ENTER NAMES IN TRANSFER VECTOR TABLE FAP02460
TRVCR SXA TRVCX,4 SAVE CALLING LINKAGE FAP02461
AXT LTVTBL,4 LOAD TRANSFER VECTOR TABLE LENGTH FAP02462
TXL TRVC1,4,LTVTBL IS VECTOR EXHAUSTED FAP02463
LAS VECTOR+LTVTBL,4 NO, IS IT THIS WORD IN VECTOR FAP02464
TXI *-2,4,-1 NO FAP02465
TRA TRVCX YES FAP02466
TXI *-4,4,-1 NO FAP02467
TRVC1 TXH *+3,4,0 DID TRANSFER VECTOR TABLE OVERFLOW FAP02468
LDI VECNM YES, SET TRANSFER VECTOR OVERFLOW FAP02469
TRA SRCERR **TERMINATE ASSEMBLY FAP02470
SLW VECTOR+LTVTBL,4 ADD NAME TO END OF TABLE FAP02471
PAI HOLD SYMBOL NAME FAP02472
TXI *+1,4,-1 BUMP VECTOR COUNT FAP02473
SXD TRVCR+2,4 RESET END OF TRANSFER VECTOR TABLE TEST FAP02474
LDC TRVCR+2,4 COMPUTE CURRENT LENGTH OF TRANSFER VECTOR FAP02475
TXI *+1,4,LTVTBL FAP02476
SXD PBUFF1+2,4 INSERT IN PROGRAM CARD 8L DECREMENT FAP02477
SXA PBUFF1+5,4 INSERT ENTRY POINT IN PC 7R ADDRESS FAP02478
TXI *+1,4,-1 COMPUTE RELATIVE LOCATION OF VECTOR NAME FAP02479
PXA ,4 FAP02480
ORA D5 AND VECTOR RELOCATION BITS FAP02481
STO ADDRS FAP02482
PIA RECALL SYMBOL NAME FAP02483
TSX ESYMT,4 *DEFINE SYMBOL FAP02484
TRVCX AXT **,4 RELOAD CALLING LINKAGE FAP02485
TRA 1,4 FAP02486
REM FAP02487
REM ENTER NAME, DEFINITION IN ADDRS, INTO SYMBOL TABLE FAP02488
REM ENTRY WORD 1 CONTAINS SYMBOL NAME RIGHT ADJUSTED FAP02489
REM HEADING CHARACTER LEFT ADJUSTED FAP02490
REM FILLED WITH ZEROES FAP02491
REM ENTRY WORD 2 CONTAINS ASSIGNED LOCATION BITS 18-35 FAP02492
REM FLAGS BITS 3 - 17 FAP02493
REM BIT 13 SET SYMBOL FAP02494
REM 14 MULTIPLY DEFINED FAP02495
REM 15 TRANSFER VECTOR NAME FAP02496
REM 16 COMMON VARIABLE FAP02497
REM 17 RELOCATABLE SYMBOL FAP02498
ESYML CAL BCDBF ENTRY POINT TO DEFINE LOCATION FIELD FAP02499
ESYMT SXA ESYMX,4 SAVE CALLING LINKAGE FAP02500
SXA ESYMX+1,2 SAVE WORD COUNT FAP02501
TXH ESYM0,4,-1 IS SYSTEM SYMBOL TABLE PRESERVED FAP02502
SXD *-1,0 NO, RESET SWITCH FAP02503
LDC SYMSIZ,6 LOAD LENGTH OF SYMBOL TABLE FAP02504
TXI *+1,2,SYMTBL COMPUTE ORIGIN AT END OF SYMBOL TABLE FAP02505
SXA *+1,2 INITIALIZE CLEAR LOOP FAP02506
STZ **,4 CLEAR SYMBOL TABLE FAP02507
TIX *-1,4,1 FAP02508
STZ SYMSIZ RESET SYMBOL TABLE COUNT FAP02509
ESYM0 STL FCFLG SET FLAG TO PREVENT ABS OR ENTRY CARDS FAP02510
REM FROM SETTING MODE OF ASSEMBLY FAP02511
TSX LOCFL,4 *ASSEMBLE UNIFORM SYMBOL FAP02512
TZE ESYMX IS THERE A SYMBOL FAP02513
LXD SYMSIZ,4 YES, LOAD CURRENT SYMBOL TABLE SIZE FAP02514
AXT 0,2 LOAD SINGLE HEAD COUNT FAP02515
XCL FAP02516
LGL 6 SHIFT IN FIRST CHARACTER FAP02517
ZET TVFLG IS THIS NAME IN TRANSFER VECTOR FAP02518
TRA *+4 YES, FORCE UNHEADING FAP02519
TNZ *+3 NO, IS SYMBOL SHORTER THAN SIX CHARACTERS FAP02520
HEDCT AXT **,2 NO, LOAD MULTIPLE HEADING COUNT FAP02521
ESYM2 CAL BHEAD,2 APPEND HEADING CHARACTER FAP02522
LGL 30 SHIFT IN HEADED SYMBOL FAP02523
ESYM3 SLW SYMTBL,4 ADD SYMBOL TO END OF TABLE FAP02524
LGR 30 HOLD UNHEADED SYMBOL FAP02525
CLA ADDRS DEFINE SYMBOL AS CURRENT CONTENTS OF FAP02526
STO SYMTBL+1,4 PROGRAM COUNTER FAP02527
TXI *+1,4,-2 BUMP SYMBOL TABLE COUNTER FAP02528
TXH *+3,4,-LSMTBM DID SYMBOL TABLE OVERFLOW FAP02529
LDI SYMNM YES, SET SYMBOL TABLE OVERFLOW FAP02530
TRA SRCERR **TERMINATE ASSEMBLY FAP02531
TXL *+2,2,0 IS MULTIPLE HEADING LIST EXHAUSTED FAP02532
TXI ESYM2,2,-1 NO, BUMP LIST COUNT TO NEXT HEAD CHARACTERFAP02533
SXD SYMSIZ,4 SAVE SYMBOL TABLE LENGTH FAP02534
RELD01 SYN * TSFAP02535
ESYMS TXI ESYMZ,4,0 -SYMTBL TO TEST FOR OVERLAP OF MACRO TABLE TSFAP02536
SXD STPTR,4 SAVE CURRENT SYMBOL TABLE END *FAP02537
ESYMX AXT **,4 RELOAD CALLING LINKAGE FAP02538
AXT **,2 RELOAD WORD COUNT FAP02539
TRA 1,4 FAP02540
REM FAP02541
REM SCAN PSEUDOOP VARIABLE FIELD FAP02542
SCANP SXA SCNPX,4 SAVE CALLING LINKAGE FAP02543
TSX SCANF,4 *EVALUATE VARIABLE FIELD FAP02544
TXI SCNPX+2,,0 NULL VARIABLE FIELD FAP02545
SLT EXPRR WAS VARIABLE FIELD IN ERROR FAP02546
TRA *+2 NO FAP02547
TRA FIELX **YES FAP02548
LDI Q0 PRESET ABSOLUTE SYMBOL FAP02549
ZET VARUR IS VARIABLE FIELD RELOCATABLE FAP02550
SIL 1 YES, SET RELOCATION BIT FAP02551
ZET VARUC IS VARIABLE FIELD COMMON FAP02552
SIL 2 YES, SET COMMON BIT (CANNOT BE BOTH) FAP02553
SCNPX AXT **,4 RELOAD CALLING LINKAGE FAP02554
TRA 2,4 FAP02555
LXA SCNPX,4 RELOAD CALLING LINKAGE FAP02556
LDI Q0 SET NULL FIELD ABSOLUTE ZERO FAP02557
TRA 1,4 FAP02558
REM FAP02559
REM SET FLAG FOR MISSING PSEUDOOP VARIABLE FIELD FAP02560
AFLAG CAL Q64 FLAG MISSING VARIABLE FIELD FAP02561
ORS P1FLG FAP02562
SLN FLDND DELETE F FLAG FAP02563
PXD ,0 FAP02564
TRA 2,4 FAP02565
REM FAP02566
REM LOOK AHEAD FOR ETC CARD FAP02567
PEEKS SXA PEEKX,4 SAVE CALLING LINKAGE FAP02568
SXA PEEKX+1,2 SAVE WORD COUNT FAP02569
SXA PEEKX+2,1 SAVE CHARACTER COUNT FAP02570
PKMSW TXH *+3,4,** IS NEXT CARD TO BE MACRO COMPILED FAP02571
TXH PEEKX,4,** YES, WILL NEXT CARD BE AN ETC FAP02572
TRA PEEK1 YES FAP02573
LXA DUPCD,4 LOAD COUNT OF REMAINING CARDS IN DUP FAP02574
ZET DUPMD IS THIS CARD WITHIN RANGE OF DUP FAP02575
TXL PEEKX,4,0 YES, IS THIS LAST CARD IN DUP FAP02576
LXD SRCSW,4 NO, LOAD SOURCE BUFFER SWITCH FAP02577
TXL *+3,4,0 IS SOURCE BUFFER EMPTY FAP02578
SXD SRCSW,0 YES, RESET SWITCH FAP02579
TSX SRCIN,4 *READ NEXT SOURCE CARD FAP02580
CAL INSBF+2 PRELOAD SOURCE WORD 2 TSFAP02581
ANA PKMSK MASK IN CC 8 - 11 FAP02582
ERA ETCMK IS OPCODE ETC FAP02583
TZE PEEK1 YES WNFAP02584
ERA COMSK NO, IS IT ETC, WNFAP02585
TNZ PEEKX NO FAP02586
PEEK1 CAL Q2 YES, SET ETC FLAG IN CARD WORD 14 (CC 84) FAP02587
ORS P1FLG FAP02588
STL ETCMD SET ETC FLAG FAP02589
LXA PEEKX,4 RELOAD CALLING LINKAGE FAP02590
LXA PEEKX+1,2 RELOAD WORD COUNT FAP02591
LXA PEEKX+2,1 RELOAD CHARACTER COUNT FAP02592
TRA 1,4 ETC RETURN FAP02593
PEEKX AXT **,4 RELOAD CALLING LINKAGE FAP02594
AXT **,2 RELOAD WORD COUNT FAP02595
AXT **,1 RELOAD CHARACTER COUNT FAP02596
TRA 2,4 NO ETC RETURN FAP02597
PKMSK OCT 007777777700 MASK FOR OP FIELD CC 8 - 11 FAP02598
ETCMK BCI 1,0ETC 0 MASK FOR ETC PSEUDOOPERATION FAP02599
REM FAP02600
EJECT FAP02601
REM FAP02602
REM INPUT/OUTPUT SUBROUTINES FAP02603
* FAP02604
*SUBROUTINE STARTF OPENS INPUT FILE FOR READING (REPLACES .SEEK) LOFAP02605
*AND INITIALIZES READ SUBROUTINES READK AND RDFIL. LOFAP02606
*CALLING SEQUENCE TSX STARTF,4 LOFAP02607
* PZE BUFFER LOFAP02608
*CALLED FROM PASS 1 START OR FROM INSERT PSEUDO OP. LOFAP02609
* FAP02610
STARTF SXA STARX,4 SAVE LINKAGE LOFAP02611
CLA 1,4 NAME OF INPUT BUFFER LOFAP02612
STA RDFL1 SET RDFIL SUBROUTINE LOFAP02613
STA REDK3 SET READK SUBROUTINE LOFAP02614
TSX OPEN,4 OPEN FOR READING LOFAP02615
BRN DSQR LOFAP02616
BRN FILNAM USERS FAP FILE LOFAP02617
BRN FAPFAP LOFAP02618
BRN P4 LOFAP02619
BRN P4 LOFAP02620
BRN DSERS CHECK FOR FILE NOT FOUND LOFAP02621
BRN DSES2 IF ERROR FOUND LOFAP02622
STZ RDEFT INITIALIZE EOF FLAG LOFAP02623
STZ SERNO INITIALIZE SEQUENCE NO. PBFAP02624
SXA REDK0,0 SET BUFFER EMPTY IN READK LOFAP02625
TSX READK,4 READ FIRST WORD IN FILE LOFAP02626
PZE CTROL,,1 FOR CONTROL WORD LOFAP02627
STARX AXT **,4 RESTORE LINKAGE LOFAP02628
TRA 2,4 RETURN LOFAP02629
REM FAP02630
REM FAP02631
REM READ CARD FROM SOURCE/UPDATE TAPES FAP02632
INPUT SXA INPTX,4 SAVE CALLING LINKAGE FAP02633
SRCSW TXH *+2,4,-1 IS SORCE BUFFER EMPTY LOFAP02634
TSX SRCIN,4 *READ SOURCE CARD LOFAP02635
AXT -1,4 LOFAP02636
SXD SRCSW,4 SET SWITCH FOR EMPTY BUFFER LOFAP02637
AXT 14,4 MOVE SOURCE CARD LOFAP02638
CAL INSBF+15,4 FROM INPUT BUFFER LOFAP02639
SLW BCDBF+14,4 TO WORKING BUFFER LOFAP02640
TIX *-2,4,1 LOFAP02641
CAL BCDBF+13 BLANK CC 81-84 LOFAP02642
ANA P1MSK LOFAP02643
ORA P2MSK LOFAP02644
SLW BCDBF+13 LOFAP02645
ZET SQFLG ARE WE SEQUENCE CHECKING LOFAP02646
TRA INPTX NO, EXIT LOFAP02647
CAL SRCID+1 YES, LOAD ID FOR THIS CARD LOFAP02648
LDQ SRCID LOFAP02649
SLW SEQID+1 SAVE ID FOR SEQUENCE CHECKING LOFAP02650
STQ SEQID LOFAP02651
INPTX AXT **,4 RELOAD CALLING LINKAGE FAP02652
TRA 1,4 FAP02653
REM FAP02654
REM READ NEXT CARD FROM INPUT FILE, FIXED (14 WORD) LOFAP02655
REM OR VARIABLE LENGTH RECORD. LOOK AHEAD ONE WORD. LOFAP02656
REM LOFAP02657
SRCIN CAL CTROL IS FILE FINISHED LOFAP02658
ERA ALONE LOFAP02659
SRCEF TZE SREOF YES, TO END OF FILE LOFAP02660
SXA SRCNX,4 LOFAP02661
LXA RECNO,4 INCREASE RECORD COUNT LOFAP02662
TXI *+1,4,1 FOR ERROR PRINTS LOFAP02663
SXA RECNO,4 LOFAP02664
LXA SERNO,4 INCREMENT GENERATED SER. NO. FOR PBFAP02665
TXI *+1,4,1 .. VARIABLE-LENGTH RECORD PBFAP02666
SXA SERNO,4 .. PBFAP02667
STL INFLG TELL PASS 2 TO COUNT THIS CARD LOFAP02668
CAL CTROL LOFAP02669
LGR 18 LOFAP02670
ERA ADTMK IS THIS VARIABLE LENGTH RECORD LOFAP02671
TZE VRECD YES, GO READ IT LOFAP02672
CAL CTROL NO, SAVE FIRST WORD LOFAP02673
SLW INSBF+1 LOFAP02674
REM LOFAP02675
TSX READK,4 READ RESR OF RECORD LOFAP02676
PZE INSBF+2,,14 LOFAP02677
TNZ SRCN1 LOFAP02678
CAL INSBF+15 LAST WORD READ, LOFAP02679
TRA SRCN1+1 LOFAP02680
SRCN1 CAL ALONE OR END-OF-FILE FENCE LOFAP02681
SLW CTROL IS NEXT CONTROL WORD LOFAP02682
ZET SQFLG ARE WE SEQUENCE CHECKING LOFAP02683
TRA SRCNX NO, EXIT LOFAP02684
LDQ INSBF+14 LOAD WORD 14 (CC 79-84) LOFAP02685
CAL INSBF+13 LOAD WORD 13 (CC 73-78) LOFAP02686
SLW SRCID+1 SAVE LEADING CHARACTERS LOFAP02687
TSX ORDER,4 *ASSEMBLE SERIALIZATION (CC 73-80) LOFAP02688
SLW SRCID LOFAP02689
ERA BLANKS IS SERIALIZATION BLANK LOFAP02690
TNZ SRCNX NO LOFAP02691
STZ SRCID YES, SET ID TO ZERO LOFAP02692
STZ SRCID+1 LOFAP02693
REM REENTRY FROM READING VARIABLE LENGTH RECORD LOFAP02694
SRCNX AXT **,4 LOFAP02695
TRA 1,4 LOFAP02696
SRCID PZE ID (CC 75-80) FOR SOURCE CARD LOFAP02697
PZE ID (CC 73-78) FOR SOURCE CARD LOFAP02698
REM LOFAP02699
REM READ VARIABLE LENGTH RECORD FROM INPUT FILE LOFAP02700
REM LOFAP02701
VRECD SXA VRECX,1 SAVE XRS LOFAP02702
SXA VRECX+1,2 LOFAP02703
STL SQFLG NO MORE SEQUENCE CHECKING LOFAP02704
CLA BLANKS LOFAP02705
STO INSBF+13 BLANK CC 73-84 LOFAP02706
STO INSBF+14 LOFAP02707
NZT SERSW ARE WE SEQUENCING HERE PBFAP02708
TRA VREC0 .. NO PBFAP02709
CAL FILNAM .. YES, CONSTRUCT SEQUENCE FIELD PBFAP02710
LDQ BLANKS .. PBFAP02711
ERA BLANKS .. FOUR CHARS OF FILE NAME PBFAP02712
LGR 6 .. PBFAP02713
TNZ *-1 .. LEFT ADJUST IN MQ PBFAP02714
XCL .. MOVE TO AC PBFAP02715
ERA BLANKS .. PBFAP02716
ANA L4MSK .. MASK AWAY TWO CHARS PBFAP02717
SLW INSBF+13 .. SAVE PBFAP02718
LDQ SERNO PICK UP RECORD NUMBER PBFAP02719
TSX BTDC,4 .. CONVERT TO BCD PBFAP02720
LDQ BLANKS .. BLANKS RIGHT PBFAP02721
LGR 12 CONSTRUCT FIELD PBFAP02722
ORS INSBF+13 .. PUT AWAY PBFAP02723
STQ INSBF+14 .. PBFAP02724
VREC0 LXA CTROL,2 NO. OF WORDS IN RECORD LOFAP02725
TXH VREC3,2,VBLRCL TEST TOO LARGE LOFAP02726
SXA VRT01,2 NO, SAVE RECORD LENGTH LOFAP02727
SXD VRCE3,2 LOFAP02728
AXT VLRBUF,1 LOFAP02729
SXD *+1,2 LOFAP02730
TXI *+1,1,** LOCATION OF LAST WORD TO BE READ LOFAP02731
SXA VREC2,1 = CONTROL WORD FOR NEXT RECORD LOFAP02732
TXI *+1,2,1 RECORD LENGTH PLUS ONE LOFAP02733
SXD VREC1,2 = NO. OF WORDS TO READ LOFAP02734
REM LOFAP02735
TSX READK,4 READ RECORD LOFAP02736
VREC1 PZE VLRBUF,,** LOFAP02737
TNZ VREC5 TEST EOF LOFAP02738
REM LOFAP02739
VREC2 CAL ** SAVE NEXT CONTROL WORD LOFAP02740
SLW CTROL LOFAP02741
TRA VRTAB AND CONTINUE LOFAP02742
REM LOFAP02743
REM RECORD IS TOO LONG, PRINT DIAGNOSTIC, SKIP EXTRA WORDS LOFAP02744
REM LOFAP02745
VREC3 TSX READK,4 READ FIRST PART LOFAP02746
PZE VLRBUF,,VBLRCL LOFAP02747
TNZ VREC5 LOFAP02748
REM LOFAP02749
AXT VBLRCL,2 NO. OF WORDS IN RECORD LOFAP02750
SXA VRT01,2 SAVE RECORD LENGTH LOFAP02751
SXD VRCE3,2 LOFAP02752
TSX VRCEA,4 PRINT DIAGNOSTIC LOFAP02753
LXA CTROL,2 LOFAP02754
TXI *+1,2,-VBLRCL+1 LOOP TO READ ONE WORD AT A TIME LOFAP02755
VREC4 TSX READK,4 LOFAP02756
PZE CTROL,,1 LOFAP02757
TNZ VREC5 LOFAP02758
TIX VREC4,2,1 LAST WORD READ IS CONTROL WORD LOFAP02759
TRA VRTAB LOFAP02760
REM FAP02761
VREC5 CAL ALONE SET END-OF-FILE FENCE LOFAP02762
SLW CTROL FOR EXIT NEXT TIME LOFAP02763
REM LOFAP02764
REM UNPACK VARIABLE LENGTH RECORD AND PROCESS TABS LOFAP02765
REM LOFAP02766
VRTAB SXA VRT04,0 COLUMN NUMBER = ZERO LOFAP02767
AXT 72,4 LOFAP02768
CAL BLANK LOFAP02769
SLW VLRBCD,4 CLEAR CHARACTER STORAGE LOFAP02770
TIX *-1,4,1 LOFAP02771
VRT01 AXT **,4 NO. OF WORDS IN RECORD LOFAP02772
TXL VRT13,4,0 ZERO LENGTH LINE FAP02773
AXT 0,2 XR2 TO PICK UP WORD LOFAP02774
REM LOOP FOR EACH WORD LOFAP02775
VRT02 SXA VRT10,4 SAVE XR4 LOFAP02776
LDQ VLRBUF,2 ONE WORD TO MQ LOFAP02777
AXT 6,1 LOFAP02778
REM LOOP FOR EACH CHARACTER LOFAP02779
VRT03 PXD 0,0 ONE CHARACTER TO AC LOFAP02780
LGL 6 LOFAP02781
AXT BADNO,4 LOFAP02782
BADC1 LAS BADCH+BADNO,4 TEST ILLEGAL CHARACTER LOFAP02783
TRA *+2 LOFAP02784
TRA VRT09 YES, IGNORE IT LOFAP02785
TIX BADC1,4,1 LOFAP02786
VRT04 AXT **,4 RESTORE COLUMN NUMBER LOFAP02787
TXI *+1,4,1 INCREASE BY 1 LOFAP02788
TXH VRT12,4,72 TEST PAST COLUMN 72, YES LOFAP02789
LAS TABCH IS THIS TAB LOFAP02790
TRA VRT08 NO, GO STORE IT LOFAP02791
TRA *+2 LOFAP02792
TRA VRT08 LOFAP02793
CAL BLANK YES, REPLACE TAB WITH BLANK LOFAP02794
TXH VRT06,4,7 LOFAP02795
AXT 7,4 COLUMN 7 LOFAP02796
TRA VRT08 LOFAP02797
VRT06 TXH VRT07,4,15 LOFAP02798
AXT 15,4 COLUMN 15 LOFAP02799
TRA VRT08 LOFAP02800
VRT07 TXH VRT08,4,29 LOFAP02801
AXT 29,4 COLUMN 29 LOFAP02802
VRT08 SXA VRT04,4 SAVE NEW COLUMN NUMBER LOFAP02803
SLW VLRBCD,4 STORE CHARACTER LOFAP02804
VRT09 TIX VRT03,1,1 TEST WORD FINISHED LOFAP02805
VRT10 AXT **,4 YES, RESTORE XR4 LOFAP02806
TXI *+1,2,-1 XR2 FOR NEXT WORD LOFAP02807
TIX VRT02,4,1 TEST RECORD FINISHED LOFAP02808
TRA VRT13 LOFAP02809
VRT12 TSX VRCEB,4 MORE THAN 72 COLS, PRINT MESSAGE LOFAP02810
REM LOFAP02811
REM TABS PROCESSED, REPACK CHARACTERS INTO BUFFER LOFAP02812
REM LOFAP02813
VRT13 AXT 72,4 72 CHARACTERS LOFAP02814
AXT -12,2 12 WORDS LOFAP02815
VRT14 AXT 6,1 LOFAP02816
VRT15 CAL VLRBCD,4 CHARACTER TO AC LOFAP02817
LGR 6 LOFAP02818
TXI *+1,4,-1 NEXT CHARACTER LOFAP02819
TIX VRT15,1,1 TEST WORD FINISHED LOFAP02820
STQ INSBF,2 YES, STORE IT LOFAP02821
TXI *+1,2,1 LOFAP02822
TXH VRT14,2,0 TEST 12 WORDS STORED LOFAP02823
VRECX AXT **,1 YES, RESTORE XRS LOFAP02824
AXT **,2 LOFAP02825
TRA SRCNX AND RETURN TO SRCIN FOR EXIT LOFAP02826
REM LOFAP02827
TABCH OCT 72 TAB CHARACTER LOFAP02828
SERNO PZE SEQUENCE NO. FOR LINEMARKED RECORD PBFAP02829
SERSW PZE 0 NON-ZERO IF SEQUENCING THEM PBFAP02830
L4MSK OCT 777777770000 PBFAP02831
CTROL PZE LOFAP02832
BADCH OCT 12,15,16,17,32,36,37 ILLEGAL CHARACTERS DAFAP02833
OCT 52,55,56,57,75,76,77 LOFAP02834
BADNO SYN *-BADCH NO. OF ILLEGAL CHARACTERS LOFAP02835
REM LOFAP02836
REM SUBROUTINES TO PRINT INPUT RECORD ERROR MESSAGES LOFAP02837
REM LOFAP02838
VRCEA EQU * WNFAP02839
VRCEB SXA VRCEX,4 ENTRY FOR MORE THAN 72 COLUMNS LOFAP02840
VRCE1 TSX RECBC,4 LOFAP02841
XCL WNFAP02842
LAS VRCM2+2 WNFAP02843
TRA *+2 WNFAP02844
TRA VRCEX PRINT A RECORD ONLY ONCE WNFAP02845
SLW VRCM2+2 SET RECORD NUMBER WNFAP02846
WRFLXM VRCM2,5 PRINT DIAGNOSTIC LOFAP02847
TSX WRFLX,4 PRINT RECORD LOFAP02848
VRCE3 PZE VLRBUF,,** LOFAP02849
VRCEX AXT **,4 LOFAP02850
TRA 1,4 RETURN LOFAP02851
REM LOFAP02852
REM LOFAP02853
VRCM2 BCI 5,RECORD NO. 00000 TRUNCATED: LOFAP02854
REM LOFAP02855
SREOF NZT FCFLG EOF, WITHOUT END CARD, IS THIS TOO EARLY WNFAP02856
TRA END01 YES, EXIT WITH BAD SOURCE WNFAP02857
CAL BLANKS NO, PRODUCE DUMMY END CARD WNFAP02858
AXT 14,4 BLANK OUT CARD IMAGE WNFAP02859
SLW BCDBF+14,4 .. WNFAP02860
TIX *-1,4,1 .. WNFAP02861
CAL ENDCD PICKUP END OPCODE =H END WNFAP02862
SLW BCDBF+1 STORE IN OPERATION FIELD WNFAP02863
CAL ENDEND PICK UP DEFINITION FROM TABLE WNFAP02864
SLW OPBIN SET DOWN IN OUT PUT RECORD WNFAP02865
STZ P1FLG CLEAR FLAGS, THIS INST. IS A-OK WNFAP02866
STZ LITRL CLEAR OUT LEFT-OVERS WNFAP02867
CAL WRBLA+1 PICK UP MASK TO ELIMINATE OLD FLAGS WNFAP02868
ANS BCDBF+13 WIPE OUT BLANKS NOW THERE WNFAP02869
WRFLXM ENDER1,6 MAKE COMMENT ONLINE WNFAP02870
TRA ENDOP SIMULATE OCCURRENCE OF CARD IN SOURCE WNFAP02871
ENDER1 BCI 6,NO END CARD. ASSEMBLY CONTINUING. WNFAP02872
REM FAP02873
REM LIST ORDER ERROR FAP02874
ORDER SXA ORDRX,4 SAVE CALLING LINKAGE FAP02875
SLW XERAS SAVE LEADING CHARACTERS (CC 73 - 78) FAP02876
LGL 12 ASSEMBLE ID FAP02877
SLW BERAS SAVE FOLLOWING CHARACTERS (CC 75 - 80) FAP02878
ERA BLANKS IS NEW ID BLANK FAP02879
TZE ORDR3 YES, OMIT ORDER CHECK MIFAP02880
CAL XERAS NO, LOAD NEW LEADING CHARACTERS FAP02881
LAS SEQID+1 IS CARD OUT OF ORDER FAP02882
TRA ORDR3 NO MIFAP02883
TRA *+2 MAYBE FAP02884
TRA ORDR1 YES FAP02885
CAL BERAS LOAD NEW FOLLOWING CHARACTERS FAP02886
LAS SEQID IS CARD OUT OF ORDER FAP02887
TRA ORDR3 NO MIFAP02888
TRA ORDR3 NO MIFAP02889
REM CARD IS OUT OF ORDER FAP02890
ORDR1 CAL INSBF+2 LOAD SOURCE WORD 2 FAP02891
ANA PKMSK MASK IN CC 8 - 11 FAP02892
ERA ENDMK IS IT END FAP02893
AXT 14,4 NO, PREPARE TO MOVE CARD OUT OF ORDER FAP02894
CAL INSBF+15,4 FROM SOURCE INPUT BUFFER FAP02895
SLW ORDBF+15,4 TO ORDER BUFFER FAP02896
TIX *-2,4,1 TSFAP02897
CAL SRCWD LOAD SOURCE LABEL FAP02898
SLW ORDBF+15 INSERT IN MESSAGE FAP02899
TSX FPRINT,4 TSFAP02900
PZE ORDBF,,18 TSFAP02901
REM REENTRY FOR CARD NOT OUT OF ORDER FAP02902
ORDR3 CAL BERAS RELOAD FOLLOWING CHARACTERS MIFAP02903
ORDRX AXT **,4 RELOAD CALLING LINKAGE FAP02904
TRA 1,4 FAP02905
SRCWD BCI 1,SOURCE FAP02906
ENDMK BCI 1,0END 0 MASK FOR END PSEUDOOPERATION FAP02907
SEQID PZE ID (CC 75 - 80) FOR LAST CARD USED FAP02908
PZE ID (CC 79 - 80) FOR LAST CARD USED FAP02909
REM FAP02910
REM ENTRY TO WRITE INTERMEDIATE TAPE ONLY FAP02911
OTPUT SYN * TSFAP02912
OTPT0 SXA OTPTX,4 SAVE CALLING LINKAGE FAP02913
CAL P1FLG NO, INSERT PASS 1 FLAGS FAP02914
STA BCDBF+13 AS LOW ORDER 18 BITS TSFAP02915
STT BCDBF+13 OF WORD 14 TSFAP02916
NZT INFLG WAS THIS AN INPUT CARD LOFAP02917
TRA OTPT1 NO LOFAP02918
STZ INFLG YES, RESET FLAG LOFAP02919
CLA DCR77 AND SET SIGNAL LOFAP02920
ORS BCDBF+13 FOR PASS 2 RECORD COUNT LOFAP02921
* FAP02922
*NEW DISK ROUTINES, WRITE 2 TRACKS AT A TIME. LOFAP02923
* FAP02924
OTPT1 AXT **,1 XR1 = POSITION IN BUFFER LOFAP02925
AXT INPRCL,2 LOFAP02926
OTPT2 TXH OTPT3,1,-2*DSKBKL LOOP, IS BUFFER FULL LOFAP02927
TXL OTPT3,1,0 LOFAP02928
SXA OTPT1,1 YES, SAVE WORD COUNT LOFAP02929
TSX WRINT,4 AND GO WRITE DISK LOFAP02930
OTPT3 CAL BCDBF+INPRCL,2 MOVE WORD FROM WORKING BUFFER LOFAP02931
SLW WBUFF1,1 TO DISK BUFFER LOFAP02932
TXI *+1,1,-1 LOFAP02933
TIX OTPT2,2,1 LOFAP02934
SXA OTPT1,1 SAVE NEW POSITION IN BUFFER LOFAP02935
OTPTX AXT **,4 RELOAD CALLING LINKAGE FAP02936
CAL DCRBL DELETE SIGNAL IN WORD 14 LOFAP02937
ANS BCDBF+13 LOFAP02938
TRA 1,4 FAP02939
DCR77 OCT 77000000 LOFAP02940
DCRBL OCT 777760777777 LOFAP02941
REM FAP02942
REM WRITE INTERMEDIATE TAPES FAP02943
WRINT SXA WRINX,4 SAVE CALLING LINKAGE FAP02944
LAC OTPT1,1 LOAD INTERMEDIATE TAPE BLOCK WORD COUNT FAP02945
TXL WRINX,1,0 IS BLOCK EMPTY FAP02946
SXD WRIN0,1 NO, SET BLOCK LENGTH TSFAP02947
TSX WRWAIT,4 WRITE INTERM FILE AND DELAY LOFAP02948
BRN INTERM LOFAP02949
BRN FAPTEM LOFAP02950
BRN Q0 LOFAP02951
WRIN0 TXH WBUFF1,,** 864 WORDS EXCEPT LAST PARTIAL BLOCK LOFAP02952
BRN DSERN APPENDING, NO EOF LOFAP02953
BRN P4 LOFAP02954
BRN DSERN LOFAP02955
REM TSFAP02956
AXT 0,1 RESET BLOCK LENGTH FAP02957
SXA OTPT1,0 FAP02958
WRINX AXT **,4 RELOAD CALLING LINKAGE FAP02959
TRA 1,4 FAP02960
TTL PASS ONE CONTROL FAP02961
START EMTM ASSURE MULTIPLE TAGGING OF INDEX REGS WNFAP02962
TSX GETCLS,4 GET THE COMMAND LIST WNFAP02963
PZE DSBUF,,0 INTO A BUFFER OF TWENTY WORDS WNFAP02964
AXT 19,1 SETUP TO LOOK AT ALL ARGUMENTS WNFAP02965
SLOOP CAL DSBUF+20,1 PICKUP NEXT ARGUMENT WNFAP02966
LAS ALONE IS IT A FENCE WNFAP02967
AXT , IMPOSSIBLE TO GET HERE WNFAP02968
TRA SDONE YES, COMMAND PROCESSING FINISHED WNFAP02969
AXT METAS,2 NO, DO TABLE SEARCH OF META-ARGUMENTS WNFAP02970
LAS METAB,2 IS IT A META-ARG. WNFAP02971
TRA *+3 NO, IT SHOULD BE A NAME. WNFAP02972
TRA METAB+1,2 YES, DISPATCH TO HANDLE THIS META-ARG. WNFAP02973
TIX *-3,2,2 MAYBE, TRY AGAIN WNFAP02974
NAMFLG AXT 0,4 IS THIS FIRST OR SECOND NAME DAFAP02975
TXH *+4,4,0 SKIP IF NOT FIRST DA FAP02976
SLW OLDNAM SAVE NAME FOR PASS2 FAP02977
SLW FILNAM INITIALIZE READING OF FILE WNFAP02978
TXI *+5,4,1 BUMP COUNT TO NAME2 DAFAP02979
TXH FORMA,4,1 COMPLAIN IF THREE NAMES GIVEN DAFAP02980
SLW FAPNAM STORE INPUT FILE NAME2 DAFAP02981
SLW FAPFAP AND SAVED COPY DAFAP02982
TXI *+1,4,1 INCREMENT COUNT DAFAP02983
SXA NAMFLG,4 SAVE COUNT FOR NEXT TIME DAFAP02984
SSTIX TIX SLOOP,1,1 GO GET REST OF LINE WNFAP02985
SDONE LXA NAMFLG,4 LINE IS EXHAUSTED, HAVE WE GOTTEN NAME1 DAFAP02986
TXH SWHOM,4,0 YES, PROCEED WITH ASSEMBLY DAFAP02987
FORMA WRFLXM FORMT,10 PRINT FORMAT OF COMMAND LINE WNFAP02988
WRFLXM FORM1,9 FAP02989
WRFLXM FORM2,9 FAP02990
TRA DORMNT DO NOT PRINT 'SOURCE ERROR' WNFAP02991
FORMT VFD O18/575757,H18/FAP THIS LOCATION CAN BE PATCHED WNFAP02992
BCI 9, NAME1 -(LIST)- -(FLAG)- -(DATE)- -(LONG)- -(MACR)- FAP02993
FORM1 BCI 9,ANY META-ARGUMENT MAY BE FOLLOWED BY 'NO', EXCEPT FOR FAP02994
FORM2 BCI 9,(LONG) WHICH MUST BE FOLLOWED BY A DECIMAL INTEGER. FAP02995
REM FAP02996
REM FAP02997
REM DISPATCH TABLE FOR META-ARGUMENTS FAP02998
REM FAP02999
METAR BCI 1,(REFS) FAP03000
TXI SETRF,1,-1 FAP03001
BCI 1,(MACR) FAP03002
TXI SETMC,1,-1 FAP03003
BCI 1,(LONG) FAP03004
TXI SETPC,1,-1 FAP03005
BCI 1,(LIST) FAP03006
TXI STAR1,1,-1 FAP03007
BCI 1,(FLAG) FAP03008
TXI SETFG,1,-1 FAP03009
BCI 1,(DATE) FAP03010
TXI SETDT,1,-1 FAP03011
BCI 1, (SEQ) FAP03012
TRA SETSR FAP03013
FAPBCD BCI 1, BCD FAP03014
TXI STAR1,1,-1 FAP03015
METAB EQU * END OF TABLE WNFAP03016
METAS EQU METAB-METAR LENGTH OF TABLE WNFAP03017
REM FAP03018
SETSR STL SERSW INDICATE SEQUENCING VARIABLE RECORDS PBFAP03019
TRA SSTIX CONTINUE SCAN PBFAP03020
REM FAP03021
SETRF CAL* SLOOP SET SYMBOLIC REFERENCE TABLE MODE PBFAP03022
ERA SETNO IS IT 'NO' PBFAP03023
TZE *+2 .. YES, NO LISTING OF SYMB. REFS PBFAP03024
TXI *+2,1,1 .. NO, SKIP AND ADJUST INDEX PBFAP03025
SXD 2$PREF6,0 SKIP LISTING SYMBOL REFERENCES PBFAP03026
STL REFSFG SET SWITCH FOR PSEUDO-OP PBFAP03027
TRA SSTIX .. PBFAP03028
REM FAP03029
SETFG CAL* SLOOP META IS (FLAG), PICKUP NEXT ARGUMENT WNFAP03030
ERA SETNO COMPARE TO =H NO WNFAP03031
TZE SETF1 IS THIS CASE ON OR OFF WNFAP03032
TXI *+1,1,1 THIS IS ON, SO RESET POINTER TO C. LIST WNFAP03033
ZAC PREPARE TO SET FLAG WNFAP03034
SETF2 ORA 2$PRL0C BRING IN FLAG WNFAP03035
STO 2$PRL0C PUT IT BACK WITH CORRECT SIGN WNFAP03036
STL FGCSFG DONT ALLOW PSEUDO-OP TO CHANGE THIS WNFAP03037
TRA SSTIX SETTING, AND CONTINUE SCANNING C. LIST WNFAP03038
REM FAP03039
SETF1 SSM MAKE SIGN MINUS FOR TXL WNFAP03040
TRA SETF2 GO OR IN FLAG WNFAP03041
REM FAP03042
REM SET DATE FOR HEADING FAP03043
REM FAP03044
SETDT CAL* SLOOP PICKUP NEXT ARGUMENT WNFAP03045
ERA SETNO IS IT 'NO' WNFAP03046
TZE SETD1 YES, IT IS 'NO' WNFAP03047
STL DATEFG NO, SET FLAG TO PRODUCE DATE + TIME WNFAP03048
TXI SSTIX,1,1 CONTINUE SCAN WNFAP03049
SETD1 STZ DATEFG SET FLAG FOR BLANKS BEFORE 'PAGE N' WNFAP03050
TRA SSTIX CONTINUE SCAN WNFAP03051
REM FAP03052
REM SET FLAGS TO LIST MACRO LEVELS AND FLAG MULTIPLY FAP03053
REM DEFINED OPERATION CODES FAP03054
REM FAP03055
SETMC STL MMCSFG SET FLAG TO PREVENT SOURCE INTERFERENCE WNFAP03056
CAL* SLOOP PICKUP NEXT ARGUMENT WNFAP03057
ERA SETNO IS IT 'NO' WNFAP03058
TZE SETM1 YES WNFAP03059
TXI *+1,1,1 SET POINTER TO COMMAND LIST BACK ONE WNFAP03060
ZAC FAP03061
SETM2 ORA MMASW BRING IN SWITCH FOR 'M' FLAG WNFAP03062
STO MMASW APPEND CORRECT SIGN WNFAP03063
CLM PREPARE FOR LEVEL SWITCH WNFAP03064
ORA 2$LEVSW BRING IT IN WNFAP03065
STO 2$LEVSW PUT IT BACK WNFAP03066
TRA SSTIX RETURN TO SCAN C LIST WNFAP03067
REM FAP03068
SETM1 SSM MAKE ANY 'TXH'S INTO TXL'S WNFAP03069
TRA SETM2 JOIN MAINSTREAM WNFAP03070
REM FAP03071
REM SET PAGE LENGTH TO DESIRED DECIMAL CONSTANT FAP03072
REM FAP03073
SETPC CAL* SLOOP GET COMMAND ARGUMENT WNFAP03074
TSX LOCFL,4 STRIP LEADING BLANKS WNFAP03075
XCL PREPARE TO CONVERT TO BINARY VALUE WNFAP03076
ZAC .. WNFAP03077
CAQ INTTAB,,6 RESULT IS IN BIT 19 WNFAP03078
ALS 2 GET IT INTO DECREMENT WNFAP03079
STD (PGCT) AND STORE IN PAGE COUNT WNFAP03080
AXT 14,4 PREPARE TO PATCH REFERENCE TABLE TO WNFAP03081
SXA 2$PREF7,4 SYMBOLS TO CONTAIN THREE FEWER WNFAP03082
AXT BBUF22+17,4 REFERENCES PER LINE, MAKING FOR A NICE WNFAP03083
SXA 2$PREF8-1,4 SLIM PAGE FOR 8 1/2 BY 11 PAGES WNFAP03084
AXC 18,4 .. WNFAP03085
SXD 2$PREFS+4,4 .. WNFAP03086
TRA SSTIX CONTINUE SCAN WNFAP03087
REM FAP03088
REM IS AN OFFLINE LISTING DESIRED WNFAP03089
REM FAP03090
STAR1 CAL* SLOOP GET NEXT ARGUMENT WNFAP03091
ERA SETNO IS IT =H NO WNFAP03092
TNZ STAR3 NO, IT IS NOT 'NO' WNFAP03093
STZ FAPLS1 YES, WE DON'T NEED TO WRITE A BCD FILE WNFAP03094
TRA SSTIX CONTINUE SCAN WNFAP03095
STAR3 STL FAPLS1 SET FLAG TO WRITE BCD FILE WNFAP03096
TXI SSTIX,1,1 CONTINUE SCAN OF COMMAND LIST WNFAP03097
REM FAP03098
SWHOM CLA FILNAM SET UP DEFAULT PAGE HEADER PBFAP03099
LDQ FAPFAP .. PBFAP03100
DST PGHDNG+9 .. WITH FILE NAME PBFAP03101
STQ DSES1+2 ALSO SET NAME2 IN FILE NOT FOUND MESSAGE PBFAP03102
TSX WHOAMI,4 GET USER'S PROGRAMMER DAFAP03103
PTH DSBUF,,2 NUMBER FOR USE AS DAFAP03104
CAL DSBUF+1 SECONDARY NAME DAFAP03105
SLW FAPTEM OF TEMPORARY FILES. DAFAP03106
NZT FAPLS1 FAP03107
TRA SSFIL FAP03108
REM FAP03109
REM PASS 1 MAY WRITE 432 WORDS OF SOURCE ORDER ERRORS INTO FAP03110
REM THE BCD FILE'S DISK BUFFER FAP03111
REM FAP03112
ZET BCDBCD HAS THIS BEEN DONE ALREADY WNFAP03113
TRA SSBCD YES, SKIP IT WNFAP03114
STL BCDBCD SET FLAG WNFAP03115
CAL WRFL5 FAP03116
LDQ WRFIL FAP03117
SLW WRFIL FAP03118
STQ WRFL5 FAP03119
SSBCD TSX DSTES,4 FAP03120
PZE FILNAM,,FAPBCD FAP03121
TSX DSDEL,4 FAP03122
PZE TEMBCD FAP03123
SSFIL TSX DSTES,4 LOOK FOR USERS OLD FILES TSFAP03124
PZE FILNAM,,FAPBSS IN READ ONLY MODE TSFAP03125
TSX DSTES,4 TSFAP03126
PZE FILNAM,,FAPABS LOFAP03127
TSX DSTES,4 TSFAP03128
PZE FILNAM,,FAPSYM LOFAP03129
CAL ADDMK MAX MEMORY = 77777 TSFAP03130
TSX SETMEM,4 TSFAP03131
REM TSFAP03132
TSX DSDEL,4 DELETE OLD INTERMEDIATE TSFAP03133
PZE INTERM TSFAP03134
TSX DSDEL,4 DELETE OLD TEMPORARIES LOFAP03135
PZE TEMBSS LOFAP03136
TSX DSDEL,4 LOFAP03137
PZE TEMSYM LOFAP03138
STAR2 TXH (SECL),4,-1 EXIT IF FILES CANNOT BE DELETED LOFAP03139
REM FAP03140
TSX OPEN,4 OPEN THE INTERMEDIATE FILE LOFAP03141
BRN DSQW FOR WRITING LOFAP03142
BRN INTERM LOFAP03143
BRN FAPTEM LOFAP03144
BRN Q1 TEMPORARY MODE LOFAP03145
BRN Q2 ON THE DISK LOFAP03146
BRN DSERN LOFAP03147
TSX BUFFER,4 ASSIGN BUFFER TO SUPERVISOR LOFAP03148
BRN INTERM LOFAP03149
BRN FAPTEM LOFAP03150
TXH WBUFF5,,DSKBKL LOFAP03151
BRN DSERN LOFAP03152
REM TO READ SOURCE TAPE TSFAP03153
*SUBROUTINE STARTF OPENS INPUT FILE FOR READING LOFAP03154
*THEN READS FIRST WORD IN FILE (CONTROL WORD) LOFAP03155
* FAP03156
TSX STARTF,4 LOFAP03157
PZE RBUFF1 DISK BUFFER FOR MAIN FILE LOFAP03158
TNZ SREOF EOF, ERROR STOP LOFAP03159
REM TSFAP03160
REM STORE NEGATIVE RELOCATABLE LOCATIONS IN DECREMENTS TSFAP03161
CSPTC AXC SYMTBL,4 -SYMTBL TSFAP03162
SXD RELD01,4 TSFAP03163
SXD RELD15,4 WNFAP03164
SXA RELD02,4 (IN ADDRESS) TSFAP03165
TXI *+1,4,-LSMTBL -SYMTBL-LSMTBL TSFAP03166
SXD RELD13,4 TSFAP03167
AXC BCDBF,4 -BCDBF TSFAP03168
SXD RELD03,4 TSFAP03169
SXD RELD04,4 TSFAP03170
SXD RELD08,4 TSFAP03171
TXI *+1,4,-12 -BCDBF-12 TSFAP03172
SXD RELD05,4 TSFAP03173
SXD RELD07,4 TSFAP03174
SXD RELD10,4 TSFAP03175
AXC BLANKS,4 TSFAP03176
TXI *+1,4,-1 -BLANKS-1 TSFAP03177
SXD RELD06,4 TSFAP03178
AXC ETCCD,4 -ETCCD TSFAP03179
SXD RELD09,4 TSFAP03180
AXC VECTOR,4 -VECTOR TSFAP03181
SXD RELD14,4 TSFAP03182
TXI *+1,4,1 -VECTOR+1 TSFAP03183
SXD RELD11,4 TSFAP03184
AXC RELD12,4 TSFAP03185
TXI *+1,4,-1 -*-1 TSFAP03186
SXD RELD12,4 TSFAP03187
REM END OF NEGATIVE RELOCATABLE LOCATIONS IN DECREMENTS TSFAP03188
REM TSFAP03189
LXD OPTSIZ,4 INITIALIZE TEST FAP03190
TXI *+1,4,-1 FAP03191
SXD SOPT1,4 FOR END OF OPTABLE SEARCH FAP03192
LXD MOPTR,2 LOAD INITIAL BOTTOM OF MACRO TABLE FAP03193
SXD MAC07,2 SET MACRO EXPANSION TABLE OVERFLOW TEST FAP03194
SXD ESYMZ,2 AND SYMBOL TABLE OVERLAP TEST *FAP03195
AXT ,0 *FAP03196
TRA SOURC FAP03197
REM FAP03198
REM FAP03199
REM CARD IS COMMENTS CARD FAP03200
REM FAP03201
COMOK EQU * FAP03202
COMCD TXH READ1,4,-1 IS THIS FIRST COMMENTS CARD FAP03203
SXD *-1,0 YES, RESET SWITCH FAP03204
ZET FCFLG IS THIS FIRST CARD GROUP FAP03205
TRA READ1 NO FAP03206
CAL BLANK YES, DELETE ASTERISK FAP03207
LGR 6 FAP03208
AXT 12,4 FAP03209
STQ PGHDNG+13,4 INSERT CC 2 - 72 FAP03210
LDQ BCDBF+13,4 INTO WORDS 2 - 13 OF PAGE HEADING FAP03211
TIX *-2,4,1 FAP03212
TRA SOURC NO FAP03213
REM FAP03214
REM FAP03215
REM REENTRY TO WRITE CARD FAP03216
READ1 SYN * TSFAP03217
NZT DUPMD IS THIS RECORD IN RANGE OF A DUP CARD FAP03218
TRA READ2 NO FAP03219
REM FAP03220
REM CARD IS WITHIN RANGE OF DUP FAP03221
DUPCD AXT **,4 LOAD COUNT OF CARDS REMAINING IN DUP FAP03222
TXL DUPC1,4,0 IS DUP EXHAUSTED FAP03223
TXI *+1,4,-1 NO, BUMP COUNT DOWN FAP03224
SXA DUPCD,4 RESET DUP CARD COUNT FAP03225
TRA READ2 FAP03226
REM RANGE OF DUP IS EXHAUSTED FAP03227
DUPC1 CAL LOCTR COMPUTE NET LENGTH OF DUP FAP03228
SUB DUPCT+1 FAP03229
XCA FAP03230
VLM DUPCT,,18 COMPUTE GROSS LENGTH OF DUP FAP03231
STO BERAS SAVE LENGTH OF BUMP FAP03232
ADD DUPCT+1 FAP03233
STA LOCTR RESET PROGRAM COUNTER FAP03234
CLA BERAS RECALL LENGTH OF BUMP FAP03235
ADD DUPCT+2 RESET CARD STORAGE COUNTER FAP03236
STA CDCTR FAP03237
STZ DUPMD RESET FLAG FAP03238
REM CARD IS NOT WITHIN RANGE OF DUP FAP03239
REM REENTRY FOR UNSWITCHED TAPES, CARD WITHIN RANGE OF DUP FAP03240
READ2 TSX OTPUT,4 *WRITE INTERMEDIATE/UPDATE RECORD FAP03241
REM REENTRY FOR CARDS NOT WRITTEN ON INTERMEDIATE TAPES FAP03242
REM INCLUDING PAGE HEADING, UPDATE PSEUDOOPERATIONS, FAP03243
REM OR AFTER CARDS OUTPUT INDEPENDENTLY BY MACRO PROCESSOR FAP03244
SOURC TXI *+1,,** IS NEXT CARD TO BE MACRO GENERATED FAP03245
REM (POINTER TO NEXT HIGHER LEVEL SWITCH) FAP03246
TSX INPUT,4 *NO, GET NEXT SOURCE/UPDATE CARD FAP03247
REM FAP03248
REM PROCESS CARD SUCCESSFULLY READ FAP03249
STZ P1FLG NO, CLEAR PASS 1 FLAGS FAP03250
REM REENTRY FOR MACRO GENERATED CARDS FAP03251
CNTRL SLF TURN OFF FLAGS FAP03252
STZ SYMBL CLEAR SYMBOL FAP03253
STZ LITRL CLEAR VALUE OF LITERAL OR PSEUDOOPERATION FAP03254
STZ OPBIN CLEAR INSTRUCTION, PSEUDOOP TRANSFER FAP03255
CLA LOCTR UPDATE PROGRAM COUNTER FAP03256
STO ADDRS FAP03257
TSX SETUP,4 *SET UP VARIABLE FIELD FAP03258
TRA COMCD CARD IS COMMENTS CARD FAP03259
SLN EXPRR OP FIELD IS IN ERROR FAP03260
ROUTE TXI *+1,,** IS THIS CARD MACRO DEFINING FAP03261
REM (POINTER TO NEXT HIGHER LEVEL SWITCH) FAP03262
SLT EXPRR NO, IS OP FIELD IN ERROR FAP03263
TRA *+2 NO FAP03264
TRA INSTR YES FAP03265
ZET ETCMD DOES THIS CARD FOLLOW CALL OR VFD FAP03266
TRA ETCOP YES FAP03267
CAL OPCOD NO, RELOAD OPERATION CODE FAP03268
TSX SOPTB,4 *FIND OPERATION IN COMBINED OPERATION TABLEFAP03269
TRA INSTR NOT FOUND FAP03270
STI OPBIN SAVE FOR PASS TWO FAP03271
RNT 100000 IS THIS A PSEUDOOPERATION FAP03272
TRA PSOPT YES FAP03273
REM OPCODE IS MACHINE OPERATION FAP03274
REM REENTRY FOR IMPROPER USE OF PSEUDOOP, IMPROPER OP FIELD FAP03275
INSTR SYN * TSFAP03276
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP03277
CLA Q1 FAP03278
TSX BPCTR,4 *BUMP PROGRAM COUNTER FAP03279
CAL CHRCTR LOAD FIRST CHARACTER IN VARIABLE FIELD FAP03280
SUB EQUAL IS CHARACTER = FAP03281
TZE LITOP YES FAP03282
SUB MINUS IS CHARACTER $ FAP03283
NZT ABSFLG MAYBE, BUT IGNORE IT IN ABS ASSEMBLY FAP03284
TZE DOLOP YES FAP03285
TRA READ1 FAP03286
REM FAP03287
REM FAP03288
REM END OF INPUT TAPE FAP03289
REM FAP03290
ENDFA NZT DATEFG IS DATE DESIRED IN PAGE HEADING WNFAP03291
TRA ENDF2 NO SKIP WNFAP03292
TSX GETIME,4 GET TIME FROM A-CORE CLOCK WNFAP03293
STQ DSBUF+3 STORE IN RANDOM LOCATION WNFAP03294
XCL GET TIME IN $MQ WNFAP03295
ZAC PREPARE TO DIVIDE WNFAP03296
VDP DATE1,,28 WNFAP03297
VDP DATE2,,6 PRODUCE TIME BY INVOKING MAGIC WNFAP03298
VDP DATE3,,6 WNFAP03299
VDP DATE4,,6 WNFAP03300
VDP DATE5,,12 WNFAP03301
ZAC DAFAP03302
LGL 6 ISOLATE HIGH-ORDER CHARACTER DAFAP03303
TNZ *+2 IF IT'S ZERO, DAFAP03304
CAL BLANK MAKE IT BLANK DAFAP03305
LGL 30 MOVE WHOLE MESS TO AC DAFAP03306
ORA PTCH4 MAKE HHMM.M WNFAP03307
SLW PGHDNG+15 STORE IN PAGE HEADING WNFAP03308
LDQ DSBUF+3 PICKUP DATE WNFAP03309
CAL BLANKS PICKUP BLANKS WNFAP03310
LGL 12 BRING BACK THE YEAR FROM $MQ WNFAP03311
ALS 6 MAKE ROOM FOR SLASH WNFAP03312
ORA SLASH BRING UP SLASH WNFAP03313
SLW PGHDNG+13 STORE IN PAGE HEADING WNFAP03314
LGL 12 PUT MM IN AC WNFAP03315
ALS 6 MAKE ROOM FOR SLASH WNFAP03316
ORA SLASH GET IT WNFAP03317
LGL 12 BRING IN DD WNFAP03318
ALS 6 MOVE OVER WNFAP03319
ORA BLANK FOLLOW WITH BLANK WNFAP03320
SLW PGHDNG+14 PUT DOWN WNFAP03321
ENDF2 NZT SAVNAM IS INSERTED FILE ACTIVE TSFAP03322
TRA ENDF1 TSFAP03323
TSX CLOSE,4 YES, CLOSE MAIN FILE LOFAP03324
BRN SAVNAM LOFAP03325
BRN SAVFAP LOFAP03326
BRN DSERN LOFAP03327
ENDF1 TSX CLOSE,4 CLOSE CURRENT FILE LOFAP03328
BRN FILNAM LOFAP03329
BRN FAPFAP LOFAP03330
BRN DSERN LOFAP03331
REM TSFAP03332
ENDFB EQU * WNFAP03333
ENDFC LXD RMTEN+1,1 LOAD POINTER TO REMOTE SEQUENCES FAP03334
TXL ENDFD,1,0 ARE THERE ANY REMOTE SEQUENCES FAP03335
AXT 6,4 YES, MOVE COMMENT INTO CARD IMAGE FAP03336
CAL RMTCD+6,4 FAP03337
SLW BCDBF+6,4 FAP03338
TIX *-2,4,1 FAP03339
AXT 8,4 FILL CARD IMAGE WITH BLANKS FAP03340
CAL BLANKS FAP03341
SLW BCDBF+14,4 FAP03342
TIX *-1,4,1 FAP03343
SXA BCDBF+13,0 DELETE PASS 1 FLAGS FAP03344
AXT 2$REMOP,4 SET PASS TWO TRANSFER TO PRINT CARD FAP03345
SXD OPBIN,4 FAP03346
TSX OTPT0,4 *WRITE REMOTE HEADING *FAP03347
AXT ENDFD,4 PREVENT ANY FURTHER READING FAP03348
SXA SOURC,4 OF SOURCE INPUT TAPE FAP03349
TSX RMTSR,4 *EXPAND REMOTE SEQUENCES FAP03350
ENDFD TSX WRINT,4 *WRITE LAST PARTIAL INTERMEDIATE BLOCK FAP03351
REM AND FILE THE INTERMEDIATE TAPE TSFAP03352
REM TSFAP03353
TSX CLOSE,4 CLOSE THE INTERM FILE LOFAP03354
BRN INTERM LOFAP03355
BRN FAPTEM LOFAP03356
BRN DSERN LOFAP03357
REM TSFAP03358
REM PREPARE PROGRAM CARD FAP03359
ENDFF TRA ENDFP CHECK FOR EVEN OP WITH ODD PROLOGUE *FAP03360
ZET SEPFLG IS STANDARD ERROR PROCEDURE REQUESTED FAP03361
ZET MAINPF YES, IS THIS A SUBPROGRAM FAP03362
TRA *+2 NO, STORE PROLOGUE LENGTH *FAP03363
ADD Q2 YES, BUMP BY LENGTH OF LINKAGE DIRECTOR FAP03364
STA PBUFF1+5 SAVE ENTRY POINT PC 7R ADDRESS FAP03365
STA PROLG SAVE LENGTH OF RELOCATION FAP03366
CLA CDCTR COMPUTE PROGRAM BREAK FAP03367
CAS PRGBK IS THIS PORTION OF PROGRAM LONGER FAP03368
STA PRGBK YES FAP03369
NOP NO FAP03370
CLA PRGBK LOAD LENGTH OF PROGRAM FAP03371
ADD PBUFF1+5 ADD LENGTH OF TRANSFER VECTOR AND PROLOG FAP03372
STA PBUFF1+2 SAVE ACTUAL PROGRAM BREAK PC 8L ADDRESS FAP03373
LDC LSCH1,2 ADD LENGTH OF LITERAL TABLE FAP03374
TXI *+1,2,-2 FAP03375
PXA ,2 FAP03376
ADD PRGBK TO END OF PROGRAM FAP03377
STA ADDRS FAP03378
CAL ENDOP LOAD END CARD LOCATION SYMBOL FAP03379
TSX ESYMT,4 *DEFINE PROGRAM BREAK FAP03380
REM FAP03381
REM PREPARE FOR PASS TWO TABLE SEARCHES FAP03382
LDC LSCH1,2 COMPUTE LENGTH OF LITERAL TABLE FAP03383
TXI *+1,2,-1 FAP03384
SXD LITSIZ,2 FAP03385
PXA ,2 COMPUTE LOGARITHM OF TABLE LENGTH FAP03386
AXT 2,2 PREPARE FOR ONE-WORD ENTRIES FAP03387
ARS 1 DIVIDE TABLE IN HALF FAP03388
TZE *+2 HAS TABLE DISAPPPEARED FAP03389
TXI *-2,2,1 NO, BUMP LOGARATHM FAP03390
PXA ,2 FAP03391
ALS 1 FAP03392
STA LITSIZ FAP03393
LDC SYMSIZ,2 DITTO FOR SYMBOL TABLE FAP03394
SXD SYMSIZ,2 FAP03395
PXA ,2 FAP03396
AXT 1,2 BUT TABLE IS OF TWO WORD ENTRIES FAP03397
ARS 1 FAP03398
TZE *+2 FAP03399
TXI *-2,2,1 FAP03400
PXA ,2 FAP03401
ALS 1 FAP03402
STA SYMSIZ FAP03403
ZET ABSFLG IS THIS PROGRAM ABSOLUTE FAP03404
TRA REL02+1 YES FAP03405
CLA UPCTR NO, COMPUTE COMMON BREAK FAP03406
ENDCF TXL *+2,4,-1 IS THERE ANY COMMON FAP03407
STA PBUFF1+3 YES, SAVE COMMON BREAK PC 8R ADDRESS FAP03408
CLA PBUFF1+3 SET COMMON BREAK FLAG FAP03409
SLW UPCTR STORE IT WITHOUT SIGN *FAP03410
REM RELOCATE SYMBOL TABLE FAP03411
LDC SYMSIZ,4 LOAD LENGTH OF SYMBOL TABLE FAP03412
TXL SORT9,4,0 IS THERE A SYMBOL TABLE FAP03413
SXD REL02,4 YES, SET END OF SYMBOL TABLE TEST FAP03414
AXT 0,4 START WITH BOTTOM OF TABLE FAP03415
REL01 LDI SYMTBL+1,4 LOAD NEXT ADDRESS FAP03416
LFT 1 IS SYMBOL RELOCATABLE FAP03417
LFT 4 YES, IS IT ABOVE TRANSFER VECTOR FAP03418
TXI REL02,4,-2 NO, BUMP TO NEXT ENTRY FAP03419
PIA YES, RELOCATE SYMBOL UPWARD FAP03420
ADD PBUFF1+5 BY LENGTH OF TRANSFER VECTOR AND PROLOG FAP03421
STA SYMTBL+1,4 INSERT IN SYMBOL TABLE FAP03422
TXI REL02,4,-2 BUMP TO NEXT ENTRY FAP03423
REL02 TXH REL01,4,** IS TABLE FINISHED FAP03424
REM SORT SYMBOL TABLE FAP03425
REM THE ALGORITHM FOR THIS SORT HAS APPEARED IN AN ISSUE OF FAP03426
REM ACM AND WAS ADAPTED FOR 709 USE BY THE DEES CANTOR AND FAP03427
REM MOORE. IT IS A RADIX 2 SORT, AND SORTS ON BITS IN FAP03428
REM DESCENDING ORDER FROM 0 (SIGN) BIT TO BIT 35 FAP03429
REM SORTB CONTAINS (COMPLEMENT OF) LOCATION OF FIRST SYMBOL FAP03430
REM SORTA CONTAINS (COMPLEMENT OF) LOCATION OF LAST SYMBOL FAP03431
REM SORTA+N CONTAIN (COMPLEMENT OF) LOCATION OF BREAK FAP03432
REM BETWEEN 0 AND 1 BIT ON -N KEY (E.G. SORTA+35, FAP03433
REM KEY 0 (SIGN) BIT, SORTA+34 BIT 1). THIS IS TO FAP03434
REM DELIMIT SUBSORTS ON LOWER ORDER BITS. IF NO FAP03435
REM SUBSORT IS NECESSARY (LOWER ORDER BITS DO NOT FAP03436
REM EXIST, OR FALL RANDOMLY IN PROPER ORDER) EMPTY FAP03437
REM KEY CONDITION IS INDICATED BY SORTA+N = SORTA+N+1FAP03438
REM IF TWO SYMBOL NAMES FALL INTO SAME KEY GROUP DOWN TO BIT FAP03439
REM 35, THEY ARE IDENTICAL AND ENTERED INTO DUPICATELY FAP03440
REM DEFINED SYMBOL LIST WITH EVERY ADDRESS WITHIN KEY. FAP03441
REM AS SORT IS COMPLETED (EMPTY KEY GROUPS) AT THE UPPER AND FAP03442
REM LOWER EXTREMITIES OF THE SORT, SORTA AND SORTB ARE BUMPEDFAP03443
REM DOWN AND UP (COMPLEMENT) RESPECTIVELY. FAP03444
REM IF SORT FAILS, IE UNDEFINED SYMBOLS WHICH APPEAR IN FAP03445
REM LOCATION FIELDS, CHECK THE SENSE INDICATORS FOR MACHINE FAP03446
REM ERROR. THIS IS THE BEST KNOWN TEST OF SENSE INDICATORS FAP03447
LXD SYMSIZ,2 COMPUTE ACTUAL LENGTH OF SYMBOL TABLE FAP03448
TNX SORT9,2,2 HAS TABLE ONLY ONE ENTRY FAP03449
TXI *+1,2,SYMTBL NO, COMPUTE LOCATION OF LAST NAME IN TABLEFAP03450
PXA ,2 FAP03451
PAC ,2 FAP03452
SXA SORTA,2 SAVE COMPLEMENT OF LOCATION FAP03453
AXT 36,1 PREPARE TO SORT ON BIT 0 (SIGN BIT) FAP03454
REM REENTRY TO SORT ON NEXT BIT FAP03455
SORT1 LXA SORTB,4 LOAD POSITION OF CURRENT START OF SORT FAP03456
CLA SORTA+36,1 LOAD POSITION OF CURRENT END OF SORT BLOCKFAP03457
PAX ,2 FAP03458
CAL SRTBT+36,1 LOAD CURRENT SORTING BIT FAP03459
TXI SORT3,2,-2 BUMP TO ORG FOLLOWING LAST NAME IN BLOCK FAP03460
REM REENTRY FOR SYMBOL NAME EQUAL TO KEY (KEY BIT = 1) FAP03461
SORT2 TXI *+1,4,-2 BUMP CURRENT SYMBOL INDEX UP FAP03462
TXI *+1,2,2 BUMP ORIGIN DOWN ONE SYMBOL FAP03463
SXD *+1,4 INITIALIZE TEST FOR END OF MOVE LOOP FAP03464
TXH SORT5,2,** IS SYMBOL AT END OF SORT FAP03465
LDI 0,2 NO, LOAD NEXT SYMBOL FAP03466
TIF *+2 IS THIS SYMBOL LOCICALLY LOWER (KEY BIT=0)FAP03467
TXI *-3,2,2 NO, BUMP TO NEXT SYMBOL FAP03468
LDQ -2,4 YES, INTERCHANGE SYMBOL NAMES FAP03469
STI -2,4 FAP03470
STQ 0,2 FAP03471
LDI 1,2 INTERCHANGE LOCATIONS FAP03472
LDQ -1,4 FAP03473
STI -1,4 FAP03474
STQ 1,2 FAP03475
SORT3 SXD *+1,2 SET TEST FOR LOCATION OF LAST SYMBOL NAME FAP03476
TXL SORT5,4,** IS CURRENT SYMBOL AT END OF SORT FAP03477
LDI 0,4 NO, LOAD CURRENT SYMBOL NAME FAP03478
TIO SORT2 DOES CURRENT SYMBOL NAME CONTAIN KEY BIT=1FAP03479
TXI *-3,4,-2 NO, BUMP TO NEXT SYMBOL NAME FAP03480
REM KEY IS NOT EMPTY FAP03481
SORT4 CLA SORTA+36,1 LOAD END OF NEXT BLOCK FAP03482
TRA SORT5+2 FAP03483
REM SORT ON THIS BIT IN CURRENT BLOCK IS FINISHED FAP03484
SORT5 TXI *+1,2,2 BUMP ORIGIN DOWN ONE SYMBOL FAP03485
PXA ,2 FAP03486
STA SORTA+37,1 SAVE BREAK BETWEEN 0 AND 1 BITS THIS BLOCKFAP03487
CAS SORTB IS THIS BLOCK EMPTY FAP03488
TRA SORT4 NO, BUMP BREAK TO NEXT BLOCK FAP03489
TRA SORT7 YES, BUMP START OF SORT TO NEXT BLOCK FAP03490
SORT6 TIX SORT1,1,1 NO, ARE ALL KEYS EXHAUSTED FAP03491
REM SYMBOL IS MULTIPLY DEFINED FAP03492
CAL D8 LOAD DUPLICATELY-DEFINED SYMBOL FLAG FAP03493
LXA SORTA+36,2 LOAD BEGINNING OF DD SYMBOL BLOCK FAP03494
LXA SORTB,4 LOAD END OF DD SYMBOL BLOCK FAP03495
SXD *+3,4 SET TEST FOR END OF LOOP FAP03496
ORS 1,2 FLAG THIS SYMBOL FAP03497
TXI *+1,2,2 BUMP TO NEXT SYMBOL FAP03498
TXL *-2,2,** IS BLOCK COMPLETELY FLAGGED FAP03499
AXT 1,1 YES, RESET KEY INDEX TO BIT 35 FAP03500
CLA SORTA+36 DELETE BLOCK INCLUDING FAP03501
SUB Q2 DUPICATELY DEFINED SYMBOL FAP03502
STA SORTB FAP03503
CLA SORTA+35 BUMP BREAK UP TO NEXT BLOCK FAP03504
STA SORTA+36 FAP03505
CAS SORTB IS NEXT BLOCK EMPTY FAP03506
STA SORTB NO, DELETE NEXT BLOCK FAP03507
TRA SORT8 YES, GO TEST FOR END OF SORT FAP03508
TRA SORT6+1 NO, FLAG NEXT DD SYMBOL BLOCK FAP03509
REM REENTRY FOR EMPTY BLOCK FAP03510
SORT7 SUB Q2 BUMP START OF SORT UP TO NEXT BLOCK FAP03511
STA SORTB FAP03512
LDQ SORTA+36,1 BUMP BREAK UP TO NEXT BLOCK FAP03513
STQ SORTA+37,1 FAP03514
TLQ SORT6 IS THIS BLOCK EMPTY FAP03515
REM REENTRY AFTER FLAGGING MULTIPLY DEFINED SYMBOL FAP03516
SORT8 TXH SORT9,1,35 YES, IS SORT COMPLETE FAP03517
LDQ SORTA+35,1 NO, BUMP END OF SORT DOWN ONE BLOCK FAP03518
STQ SORTA+36,1 FAP03519
TLQ *+2 IS THIS BLOCK EMPTY FAP03520
TXI SORT8,1,1 YES, BUMP KEY INDEX UP TO NEXT KEY FAP03521
SUB Q2 BUMP START OF SORT UP TO NEXT SYMBOL FAP03522
STA SORTB FAP03523
TLQ SORT1 IS THIS BLOCK EMPTY FAP03524
TXI SORT8,1,1 YES, BUMP KEY INDEX TO NEXT KEY FAP03525
REM END OF SORT FAP03526
* FAP03527
SORT9 CLA WRFIL RESTORE SUBROUTINE WRFIL LOFAP03528
LDQ WRFL5 FOR BCD LISTING IN PASS 2 LOFAP03529
STO WRFL5 LOFAP03530
STQ WRFIL LOFAP03531
CLA OLDNAM RESTORE MAIN PRIMARY NAME FAP03532
STO FILNAM FAP03533
TRA 2$START GO TO PASS 2 TSFAP03534
TTL PASS ONE PSEUDOOPERATION PROCESSOR FAP03535
PSOPT ZET INDFG IS PSEUDOOPERATION INDIRECTLY ADDRESSED FAP03536
TRA OPERR **YES FAP03537
LXD VRFLD,2 NO, RELOAD WORD COUNT FAP03538
LXA VRFLD,1 RELOAD CHARACTER COUNT FAP03539
PIA RECALL TRANSFER ADDRESS FAP03540
STA *+1 INITIALIZE TRANSFER FAP03541
TRA ** FAP03542
REM FAP03543
704OP AXT 11,4 RESET NUMBER OF COLUMNS PRECEEDING FAP03544
SXA CMPVF,4 VARIABLE FIELD FOR MACRO GENERATED CARD FAP03545
TRA READ1 FAP03546
REM FAP03547
709OP AXT 15,4 RESET NUMBER OF COLUMNS PRECEEDING FAP03548
SXA CMPVF,4 VARIABLE FIELD FOR MACRO GENERATED CARD FAP03549
TRA READ1 FAP03550
REM FAP03551
REM ABBREV REMOVES EITHER CREATED SYMBOLS FROM THE SYMBOL WNFAP03552
REM TABLE OR OPCODES WHICH ARE NOT NEEDED IN BCORE FROM WNFAP03553
REM THE COMBINED OPERATIONS TABLE. WNFAP03554
REM WNFAP03555
STL ABBFG SET FLAG FOR NO A FLAG WNFAP03556
ABBOP TSX SCANF,4 GET FIRST WORD IN VARIABLE FIELD WNFAP03557
TRA ABB02 IF NO WORDS LEFT, CHECK FOR A FLAG WNFAP03558
SLT EXPRR TURN OFF U FLAG WNFAP03559
AXT , NOP WNFAP03560
CAL SYMBL FAP03561
AXT ABLEN,4 LOAD LENGTH OF DISPATCH TABLE WNFAP03562
LAS ABTAB,4 IS IT OPCODE OR SYMBOL WNFAP03563
TRA FIELD NO, FLAG IT 'F' WNFAP03564
TRA ABTAB+1,4 YES, GO TO PROPER ROUTINE WNFAP03565
TIX *-3,4,2 MAYBE, TRY AGAIN WNFAP03566
TRA FIELD NO, FLAG IT WNFAP03567
REM WNFAP03568
ABB02 NZT ABBFG HAS ANYTHING BEEN DONE WNFAP03569
TRA AFLAG NO, FLAG IT 'A' WNFAP03570
TRA READ1 YES, DEPART GRACEFULLY WNFAP03571
REM FAP03572
ABTBL BCI 1,SYMBOL WNFAP03573
TRA ABSYM WNFAP03574
BCI 1,OPCODE WNFAP03575
TRA ABOPC WNFAP03576
ABTAB EQU * WNFAP03577
ABLEN EQU ABTAB-ABTBL WNFAP03578
REM WNFAP03579
ABOPC LDC OPTSIZ,7 DROP OPCODES, LOAD IR1,2,4 WNFAP03580
TXI *+1,2,OPTTBL CALCULATE TOP OF TABLE WNFAP03581
SXA LS4CH,2 ESTABLISH ADDRESSING FOR INDEXING WNFAP03582
SXA LSKEP,2 .. WNFAP03583
TXI *+1,2,1 .. WNFAP03584
SXA LSMAC,2 .. WNFAP03585
SCD LSSUB,1 INITIALIZE CALCULATION OF NEW TABLE LEN. WNFAP03586
LSMAC LDI **,4 LOAD TEMPLATE OF INSTRUCTION WNFAP03587
RNT 100000 IS IT A MACHINE OP WNFAP03588
TRA LSPSU NO, TRY PSEUDO-OP WNFAP03589
PIA YES, USE LOGICAL-OPS IN AC WNFAP03590
ANA LSOMK GET OPCODE. =O377700000000 WNFAP03591
LAS 760LS IS IT + OR - 0760 WNFAP03592
TRA *+2 NO WNFAP03593
TRA LS760 YES, USE SPECIAL CRITERIA WNFAP03594
RFT 9OMSK NO, IS IT A 7090 INSTRUCTION WNFAP03595
RFT 017770 YES, DOES IT HAVE BCORE FLAGS WNFAP03596
TRA LSLES NO, YES IT MAY BE DROPPED WNFAP03597
LS4CH LDI **,4 NO, IT MAY BE OK. LOAD OPCODE WNFAP03598
RFT 777777 IS IT A THREE CHARACTER CODE WNFAP03599
TRA LSFOR NO, MAYBE IT CAN BE ELIMINATED WNFAP03600
ANA LSTYP YES, ONLY EXTEND INSTRUCTIONS CAN GO WNFAP03601
ERA LSEXT IS IT 0670 0671 ETC WNFAP03602
TZE LSLES YES, DROP IT WNFAP03603
LSRET CLA* LS4CH NO, SO RETAIN IT WNFAP03604
LDQ* LSMAC PICK UP CODE AND TEMPLATE WNFAP03605
LSKEP DST **,1 PLACE IN COMPRESSED TABLE WNFAP03606
TXI *+1,1,-2 MOVE POINTER DOWN TWO WNFAP03607
LSLES TIX LSMAC,4,2 TRY NEXT ENTRY IN TABLE WNFAP03608
LSSUB TXI *+1,1,** SEARCH COMPLETED. CALCULATE REMAINDER WNFAP03609
SXD OPTSIZ,1 RESET POINTER WNFAP03610
TXI *+1,1,-1 WNFAP03611
SXD SOPT1,1 RESET FLAG WNFAP03612
TXL ABBOP-1,1,-1024 IF LOG OF LENGTH DIDN'T CHANGE WNFAP03613
LXA OPTSIZ,1 GO AWAY, BUT IT DID SO LOAD LOG LENGTH WNFAP03614
TXI *+1,1,-2 AND MODIFY DOWN WNFAP03615
SXA OPTSIZ,1 PUT AWAY FOR SAFE KEEPING WNFAP03616
LXD EOPT2+2,4 LOAD PREVIOUS LENGTH WNFAP03617
PXD ,4 PUT IN AC DECREMENT WITH ZERO PREFIX WNFAP03618
ORA P1 SET UP TO FEED A NEGATIVE BIT INTO DEC. WNFAP03619
ARS 1 DIVIDE BY TWO WNFAP03620
STD EOPT2+2 REPLACE IN TEST WNFAP03621
SUB D2 SUBTRACT TWO WNFAP03622
STD EOPT2 REPLACE WNFAP03623
TRA ABBOP-1 LOOP BACK AND TRY FOR SYMBOLS TOO WNFAP03624
REM WNFAP03625
LSPSU PIA TEMPLATE IS P1TRA,,P2TRA WNFAP03626
ANA ADDMK GET ONLY PASS 1 TRANSFER WNFAP03627
AXT LSTLN,2 LOAD LENGTH OF TABLE OF UNDESIRABLES WNFAP03628
LAS LSTRA,2 COMPARE PASS1 TRANSFER WNFAP03629
TRA *+2 WNFAP03630
TRA LSLES DROP THIS ONE WNFAP03631
TIX *-3,2,1 TRY AGAIN WNFAP03632
TRA LSRET KEEP IT, IT MIGHT BE GOOD WNFAP03633
REM WNFAP03634
LS760 PIA GET IT IN AC WNFAP03635
ANA LOW13 MASK OFF ALL BUT ADDRESS FIELD WNFAP03636
LAS Q112 COMPARE TO 160K WNFAP03637
TRA LSLES .G. DROP THIS I/O INSTRUCTION WNFAP03638
AXT , .E. KEEP IT PROBABLY WNFAP03639
SUB Q7 IS IT 7 WNFAP03640
TNZ LSRET NO, KEEP IT WNFAP03641
TRA LSLES YES, DROP ETM OR LTM WNFAP03642
REM WNFAP03643
LSFOR ANA LS777 MASK OFF PREFIX WNFAP03644
TZE LSRET RETAIN FOUR, SEVEN, THREE, ETC. WNFAP03645
SUB LS240 IS IT DBL PREC INSTRUCTION WNFAP03646
TMI LSLES NO, DROP IT WNFAP03647
SUB LS060 .. WNFAP03648
TMI LSRET YES, RETAIN IT WNFAP03649
TRA LSLES NO DROP IT WNFAP03650
REM WNFAP03651
LSTBE PZE FIELD DROP UPDATE PSEUDO-OPS WNFAP03652
PZE ORDOP DROP DISK ORDERS WNFAP03653
PZE HYPOP DROP HYPERTAPE ORDERS WNFAP03654
LSTLN EQU *-LSTBE MAKE LENGTH WNFAP03655
LSTRA EQU * MAKE BOTTOM OF TABLE WNFAP03656
REM WNFAP03657
ABSYM LDC SYMSIZ,7 LOAD SIZE OF CURRENT SYMBOL TABLE WNFAP03658
TXI *+1,2,SYMTBL CALCULATE BOTTOM OF TABLE WNFAP03659
SXA CSCHK,2 STORE IN PICKUP LOCATIONS WNFAP03660
SXA CSSLW,2 .. WNFAP03661
TXI *+1,2,1 CALCULATE NEXT LOCATION WNFAP03662
SXA CSLDQ,2 STORE IN PICKUP WNFAP03663
SCD CSSUB,4 INITIALIZE CALCULATION OF THE NEW SIZE WNFAP03664
CSCHK CAL **,4 PICKUP BCD SYMBOL WNFAP03665
ANA P1MSK MASK OFF LAST FOUR CHARACTERS WNFAP03666
ERA PT2 =H0.0000 DOES IT HAVE . AS FIRST OF FIVE WNFAP03667
TZE CSLES CHARACTERS, YES, DROP IT WNFAP03668
CLA* CSCHK NO, RETAIN IT WNFAP03669
CSLDQ LDQ **,4 PICKUP DEFINITION, TOO WNFAP03670
CSSLW DST **,1 REPLACE IN COMPRESSED TABLE WNFAP03671
TXI *+1,1,-2 MOVE DOWN POINTER WNFAP03672
CSLES TIX CSCHK,4,2 TIX THROUGH ENTIRE TABLE WNFAP03673
TXL CSSUB,1, IF SYMBOLS HAVE BEEN REMOVED WNFAP03674
PXA ,1 .. WNFAP03675
PAX ,4 .. WNFAP03676
STZ* CSCHK ZERO OUT REMAINDER OF TABLE WNFAP03677
STZ* CSLDQ .. WNFAP03678
TIX *-2,4,2 .. WNFAP03679
CSSUB TXI *+1,1,** CALCULATE NEW TABLE SIZE WNFAP03680
SXD SYMSIZ,1 PUT AWAY WNFAP03681
RELD15 TXI *+1,1, -SYMTBL IS PATCHED INITIALLY WNFAP03682
SXD STPTR,1 PATCH ANOTHER POINTER WNFAP03683
TRA ABBOP-1 GO TRY AGAIN FOR OPCODES TOO WNFAP03684
ABSOP ZET ABSFLG IS ASSEMBLY ABSOLUTE FAP03685
TRA ABS01 YES FAP03686
ZET MAINPF MAYBE, WAS THERE A PRECEDING ENTRY CARD FAP03687
ZET FCFLG NO, IS THIS FIRST CARD GROUP FAP03688
TRA OPERR **NO, TOO LATE FAP03689
STL ABSFLG YES, SET ABSOLUTE ASSEMBLY FLAG FAP03690
STZ SEPFLG RESET STANDARD ERROR PROCEDURE FLAG FAP03691
STZ PBUFF1 DELETE PROGRAM CARD 9L PREFIX, WORD COUNT FAP03692
SXD LOCTR,0 DELETE RELOCATION BITS FAP03693
ABS01 TRA READ1 FAP03694
REM FAP03695
BCDOP CAL BCDBF+1 LOAD CARD WORD 2 FAP03696
ANA Q63 MASK IN CC 12 FAP03697
LAS BLANK IS IT BLANK FAP03698
TRA BCI05 NO, MUST BE QUOTED TEXT STRING DAFAP03699
TRA BCI01 YES (FULL CARD) FAP03700
TZE BCI01 NO, IS IT ZERO (FULL CARD) FAP03701
CAS Q10 NO, IS IT NUMERIC DAFAP03702
TRA BCI05 NO, QUOTED STRING DAFAP03703
TRA BCI05 NO DAFAP03704
TRA BCI03 YES, SET AS WORD COUNT DAFAP03705
REM FAP03706
BCIOP CLA CHRCTR LOAD FIRST CHARACTER IN VARIABLE FIELD FAP03707
TZE BCI03 *FAP03708
SUB COMMA NO, IS IT COMMA FAP03709
TNZ BCI02 NO FAP03710
TXH BCI05,1,2 YES, IS COMMA IN CC 12 DAFAP03711
TXL BCI05,1,1 MAYBE DAFAP03712
BCI01 CLA Q10 YES FAP03713
TRA BCI03 FAP03714
BCI02 ADD COMMA RESTORE FIRST CHARACTER FAP03715
CAS Q10 IS IT LEGAL FAP03716
TRA BCI05 NO DAFAP03717
TRA BCI05 NO DAFAP03718
TSX C0190,4 GET POSSIBLE QUOTE CHARACTER DAFAP03719
SLW ERASE DAFAP03720
TSX C019A,4 PEEK AT NEXT CHARACTER DAFAP03721
SUB COMMA IF IT'S NOT A COMMA, DAFAP03722
TNZ BCI06-1 ASSUME QUOTED TEXT STRING DAFAP03723
CAL ERASE GET WORD COUNT DAFAP03724
BCI03 ORA D36 ALL OF LAST WORD WILL BE SIGNIFICANT DAFAP03725
SLW LITRL SAVE MAGIC NUMBERS FOR PASS2 DAFAP03726
BCI04 ANA ADDMK KEEP ONLY WORD COUNT DAFAP03727
TSX BPCTR,4 *BUMP PROGRAM COUNTER DAFAP03728
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP03729
TRA READ1 FAP03730
BCI05 TSX C0190,4 SKIP PAST QUOTE CHARACTER DAFAP03731
SLW ERASE BUT REMEMBER IT DAFAP03732
AXT 0,4 INITIALIZE CHARACTER COUNT DAFAP03733
BCI06 SXA BCI07,4 SAVE NEW COUNT DAFAP03734
TSX C0190,4 GET NEXT CHARACTER DAFAP03735
TXL BCIER,2,-13 ERROR IF PAST COLUMN 72 DAFAP03736
SUB ERASE IS THIS THE ONE DAFAP03737
TZE BCI08 YES DAFAP03738
BCI07 AXT **,4 NO, INCREMENT COUNT DAFAP03739
TXI BCI06,4,1 AND KEEP LOOKING DAFAP03740
BCI08 TSX C0190,4 NEXT CHARACTER DAFAP03741
SUB BLANK MUST BE BLANK DAFAP03742
TNZ BCIER OOPS DAFAP03743
XEC BCI07 RECOVER CHARACTER COUNT DAFAP03744
AXT 0,2 DAFAP03745
TXL BCI09,4,0 SKIP IF ZERO DAFAP03746
TXI *+1,2,1 OTHERWISE, COMPUTE DAFAP03747
TIX *-1,4,6 NUMBER OF WORDS DAFAP03748
BCI09 PXA ,2 SAVE WORD COUNT DAFAP03749
CHS AND 'QUOTE-MODE' FLAG DAFAP03750
STO LITRL FOR PASS2 DAFAP03751
TXL BCI10,4,0 SKIP ON ZERO COUNT DAFAP03752
AXT 0,2 OR COMPUTE NUMBER OF DAFAP03753
TXI *+1,2,6 MEANINGFUL HIGH-ORDER DAFAP03754
TIX *-1,4,1 BITS IN LAST WORD DAFAP03755
SXD LITRL,2 SAVE FOR PASS2 DAFAP03756
BCI10 CAL LITRL GET WORD COUNT AND DAFAP03757
TRA BCI04 GO UPDATE PROGRAM COUNTER DAFAP03758
BCIER CLS ERASE RECALL FIRST CHARACTER OF VARIABLE FIELD DAFAP03759
CAS M10 WAS IT NUMERIC DAFAP03760
TRA BCI03 YES, NOT FATAL ERROR DAFAP03761
NOP DAFAP03762
CAL Q1 ILLEGAL USAGE - DAFAP03763
SLW LITRL MAKE ONE WORD, NOT 'QUOTE-MODE' DAFAP03764
TRA BCI04 DAFAP03765
REM FAP03766
12BOP TSX C0190,4 SKIP OVER QUOTE CHARACTER DAFAP03767
SUB ASTRK IS IT ASTERISK DAFAP03768
STO ERASE .. DAFAP03769
TZE 12BER YES, NOT ALLOWED DAFAP03770
AXT 0,4 INITIALIZE CHARACTER COUNT DAFAP03771
12B01 SXA 12B02,4 SAVE NEW COUNT DAFAP03772
TSX C0190,4 GET NEXT CHARACTER DAFAP03773
TXL 12BER,2,-13 ERROR IF PAST COLUMN 72 DAFAP03774
SUB ASTRK IS IT ASTERISK DAFAP03775
TZE 12B03 YES, DON'T COUNT IT DAFAP03776
SUB ERASE IS IT THE QUOTE CHARACTER DAFAP03777
TZE 12B04 YES, END OF TEXT STRING DAFAP03778
12B02 AXT **,4 NO, INCREMENT COUNT DAFAP03779
TXI 12B01,4,1 AND CONTINUE SCANNING DAFAP03780
12B03 TSX C0190,4 GOBBLE NEXT CHARACTER DAFAP03781
TRA 12B02 COUNT THIS ONE DAFAP03782
12B04 TSX C0190,4 NEXT CHARACTER DAFAP03783
SUB BLANK MUST BE BLANK DAFAP03784
TNZ 12BER OOPS... DAFAP03785
XEC 12B02 RECALL COUNT DAFAP03786
AXT 0,2 .. DAFAP03787
TXL 12B05,4,0 SKIP IF ZERO DAFAP03788
TXI *+1,2,1 OR COMPUTE DAFAP03789
TIX *-1,4,3 NUMBER OF WORDS. DAFAP03790
12B05 PXA ,2 SAVE COUNT DAFAP03791
SLW LITRL FOR PASS2 DAFAP03792
TRA BCI04 UPDATE PROGRAM COUNTER DAFAP03793
12BER CLS Q1 ERROR, FLAG IT DAFAP03794
STO LITRL .. DAFAP03795
TRA BCI04 AND CONTINUE. DAFAP03796
REM FAP03797
BESOP SXD BSS01,0 SET BES SWITCH FAP03798
TRA BSSOP+1 FAP03799
REM FAP03800
BSSOP SXD BSS01,2 SET BSS SWITCH FAP03801
TSX SCANF,4 *EVALUATE LENGTH OF BLOCK FAP03802
TXI AFLAG,,0 NULL BLOCK LENGTH FAP03803
SLT EXPRR WAS VARIABLE FIELD IN ERROR FAP03804
ZET RBITS NO, IS VARIABLE FIELD RELOCATABLE FAP03805
TRA PHASE **YES FAP03806
TSX BPCTR,4 *BUMP PROGRAM COUNTER FAP03807
LDI Q0 PRESET SYMBOL LOC TO BEGINNING OF BLOCK FAP03808
BSS01 TXL *+3,1,** IS PSEUDOOP BES FAP03809
STA ADDRS YES, DEFINE SYMBOL AT END OF BLOCK FAP03810
LDI VAREQ FAP03811
PIA RECALL SYMBOL DEFINITION FAP03812
ALS 18 CONSTRUCT LENGTH,,DEFINITION FOR PASS 2 FAP03813
ADD VAREQ FAP03814
SLW LITRL FAP03815
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP03816
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP03817
TRA FIELD **NO FAP03818
TRA READ1 YES FAP03819
REM FAP03820
BOLOP STL BOLMD SET BOOL MODE FLAG FAP03821
TSX SCANF,4 *EVALUATE BOOLEAN EXPRESSION FAP03822
TXI AFLAG,,0 NULL BOOLEAN EXPRESSION FAP03823
SLT EXPRR WAS VARIABLE FIELD IN ERROR FAP03824
ZET RBITS NO, IS VARIABLE FIELD RELOCATABLE FAP03825
TRA FIELD **YES FAP03826
SLW ADDRS SAVE DEFINITION FAP03827
SLW LITRL SAVE FOR PASS 2 FAP03828
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP03829
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP03830
TRA FIELD **NO FAP03831
TRA READ1 YES FAP03832
REM FAP03833
ETCOP STZ ETCMD RESET ETC MODE FLAG FAP03834
ZET VFDMD IS THIS VFD ETC CARD FAP03835
TRA VFETC YES FAP03836
TRA CLETC NO, THIS MUST BE CALL ETC FAP03837
REM FAP03838
CALOP TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP03839
TSX CALNM,4 *ENTER NAME IN TRANSFER VECTOR FAP03840
TRA CAL01+1 FAP03841
REM REENTRY AFTER COMMA OR ETC CARD FAP03842
CLETC TSX C019A,4 *LOOK AT NEXT CHARACTER FAP03843
ERA BLANK IS IT BLANK FOLLOWING COMMA FAP03844
TNZ CAL01 NO FAP03845
TSX PEEKS,4 *YES, DOES ETC CARD FOLLOW FAP03846
TRA CAL03 YES FAP03847
CLA Q1 NO, LOAD LENGTH OF NULL FIELD FAP03848
TSX BPCTR,4 *BUMP PROGRAM COUNTER FAP03849
TRA CAL02 FAP03850
REM REENTRY TO COUNT NEXT ARGUMENT FAP03851
CAL01 TSX SCEND,4 *SKIP TO END OF ARGUMENT FAP03852
REM REENTRY AFTER SUBPROGRAM NAME FAP03853
CLA Q1 LOAD LENGTH OF SUBROUTINE NAME OR ARGUMENTFAP03854
TSX BPCTR,4 *BUMP PROGRAM COUNTER FAP03855
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP03856
TRA CLETC NO, PUNCTUATION WAS COMMA FAP03857
REM ETC MAY NOT FOLLOW FAP03858
CAL02 CLA Q2 LOAD LENGTH OF SEP PARAMETERS FAP03859
ZET SEPFLG IS STANDARD ERROR PROCEDURE REQUESTED FAP03860
TSX BPCTR,4 *YES, BUMP PROGRAM COUNTER FAP03861
CAL03 TRA READ1 FAP03862
REM FAP03863
COMBE STZ COMFL COMBES PSEUDO-OP, NOT REGULAR COMMON PBFAP03864
STZ BSFL .. BES DEFINITION PBFAP03865
TRA COMOP+1 .. RE-USE CODE PBFAP03866
REM FAP03867
COMBS STZ COMFL COMBSS PSEUDO-OP PBFAP03868
STL BSFL .. BSS DEFINITION PBFAP03869
TRA COMOP+1 .. PBFAP03870
REM FAP03871
COMFL PZE FAP03872
BSFL PZE FAP03873
REM FAP03874
COMOP STL COMFL COMMON PSEUDO-OP PBFAP03875
ZET ABSFLG IS THIS AN ABSOLUTE ASSEMBLY FAP03876
TRA OPERR **YES, OPERATION IS UNDEFINED FAP03877
ZET DUPMD NO, IS THIS WITHIN RANGE OF DUP FAP03878
TRA PHASE **YES FAP03879
SXD ENDCF,0 NO, SET COMMON FLAG FAP03880
TSX SCANF,4 *EVALUATE LENGTH OF BLOCK FAP03881
TXI AFLAG,,0 NULL BLOCK LENGTH FAP03882
SLT EXPRR WAS VARIABLE FIELD IN ERROR FAP03883
ZET RBITS NO, IS VARIABLE FIELD RELOCATABLE FAP03884
TRA PHASE **YES FAP03885
CLA UPCTR NO, DEFINE COMMON VARIABLE AS CURRENT FAP03886
NZT COMFL REGULAR COMMON .Q. PBFAP03887
TRA COMP1 .. NO, SKIP PBFAP03888
STO ADDRS LOCATION OF UPPER STORAGE COUNTER FAP03889
STA LITRL CONSTRUCT ADDRS,,UPCTR FOR PASS 2 FAP03890
SUB VAREQ BUMP COUNTER FAP03891
STA UPCTR FAP03892
ALS 18 FAP03893
STD LITRL FAP03894
TRA COMP2 SKIP PBFAP03895
COMP1 SUB VAREQ .. PBFAP03896
STA UPCTR NEW COMMON COUNTER PBFAP03897
ADD Q1 .. PLUS ONE TO GET START OF BLOCK PBFAP03898
NZT BSFL IS THIS BSS PBFAP03899
ADD VAREQ .. NO, ADD BLOCK LENGTH PBFAP03900
STO ADDRS .. PBFAP03901
STA LITRL .. PBFAP03902
COMP2 TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP03903
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP03904
TRA FIELD **NO FAP03905
TRA READ1 YES FAP03906
REM FAP03907
REM FAP03908
DECOP TSX SCEND,4 *SKIP TO END OF INTEGER FAP03909
CLA Q1 FAP03910
TSX BPCTR,4 *BUMP PROGRAM COUNTER FAP03911
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP03912
TRA DECOP NO FAP03913
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP03914
TRA READ1 FAP03915
REM FAP03916
DOLOP LXD VRFLD,2 RELOAD WORD COUNT FAP03917
LXA VRFLD,1 RELOAD CHARACTER COUNT FAP03918
TSX C0190,4 *DELETE DOLLAR SIGN FAP03919
TSX CALNM,4 *ENTER SUBPROGRAM NAME INTO TRANSFER VECTORFAP03920
TRA READ1 FAP03921
REM FAP03922
DUPOP TSX SCANF,4 *EVALUATE RANGE OF DUP FAP03923
TXI AFLAG,,0 NULL RANGE FAP03924
SLT EXPRR WAS VARIABLE FIELD IN ERROR FAP03925
ZET RBITS NO, IS VARIABLE FIELD RELOCATABLE FAP03926
TRA PHASE **YES FAP03927
TZE DUP01 DOES DUP CONTAIN CARDS FAP03928
STA LITRL YES, CONSTRUCT RANGE,,ITERATNS FOR PASS 2 FAP03929
TSX SCANF,4 *EVALUATE ITERATIONS OF DUP FAP03930
TXI DUP01,,0 NULL ITERATIONS FAP03931
SLT EXPRR WAS VARIABLE FIELD IN ERROR FAP03932
ZET RBITS NO, IS VARIABLE FIELD RELOCATABLE FAP03933
TRA PHASE **YES FAP03934
TZE *+3 IS DUP ITERATIVE FAP03935
SUB Q1 YES, IS ITERATIONS GREATER THAN 1 FAP03936
TNZ *+3 YES FAP03937
SLF NO, SET FIELD ERROR FLAG FAP03938
TRA DUP01 FAP03939
ZET DUPMD YES, IS DUP WITHIN RANGE OF DUP FAP03940
TRA PHASE **YES FAP03941
ALS 18 NO, REPOSITION ITERATIONS FAP03942
STD LITRL SAVE FOR PASS 2 FAP03943
ADD D1 BUMP BACK TO ITERATION COUNT FAP03944
STD DUPCT INITIALIZE COUNTER FAP03945
CLA LITRL RELOAD RANGE OF DUP FAP03946
STA DUPCD SET CARD COUNTER FAP03947
CLA LOCTR SAVE PROGRAM COUNTER AT BEGINNING OF DUP FAP03948
STA DUPCT+1 FAP03949
CLA CDCTR SAVE CARD STORAGE COUNTER FAP03950
STA DUPCT+2 FAP03951
STL DUPMD SET DUP MODE FLAG FAP03952
DUP01 TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP03953
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP03954
TRA FIELD **NO FAP03955
TRA READ1 YES FAP03956
REM FAP03957
ENDOP CAL BCDBF FAP03958
SLW ENDOP TO BE DEFINED AFTER REMOTE SEQUENCES FAP03959
TSX OTPUT,4 *WRITE END CARD FAP03960
TRA ENDFA FAP03961
REM FAP03962
END01 WRFLXM END02,3 FAP03963
TRA (SECL) FAP03964
END02 BCI 3,INCOMPLETE PROGRAM FAP03965
REM FAP03966
ENTOP ZET ABSFLG IS ASSEMBLY ABSOLUTE FAP03967
TRA OPERR **YES, OPERATION IS UNDEFINED FAP03968
ZET FCFLG NO, IS THIS FIRST CARD GROUP FAP03969
TRA PHASE **NO, TOO LATE FAP03970
SXD MAINPF,0 YES, RESET MAIN PROGRAM FLAG FAP03971
TRA READ1 FAP03972
REM FAP03973
EXTOP ZET ABSFLG IS THIS ASSEMBLY ABSOLUTE FAP03974
TRA OPERR **YES, OPERATION IS UNDEFINED FAP03975
AXT 0,4 LOFAP03976
NZT FCFLG IS THIS FIRST CARD GROUP LOFAP03977
AXT -1,4 YES, SET TO RESTORE FLAG LOFAP03978
SXD EXT01,4 LOFAP03979
TSX CALNM,4 *NO, ENTER SUBPROGRAM NAME IN VECTOR FAP03980
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP03981
TRA *-2 NO, GET NEXT TRANSFER VECTOR NAME FAP03982
EXT01 TXH READ1,4,0 WAS THIS THE FIRST CARD GROUP LOFAP03983
STZ FCFLG YES, RESTORE FLAG LOFAP03984
TRA READ1 YES FAP03985
REM FAP03986
HADOP TSX SSCAN,4 *ASSEMBLE HEADING CHARACTER FAP03987
TXI HED01,,0 NULL HEADING CHARACTER FAP03988
CAL SYMBL LOAD HEADING CHARACTER FAP03989
TRA HED01 FAP03990
REM FAP03991
HEDOP PXD ,0 LOAD CARD COLUMN 1 FAP03992
LDQ BCDBF FAP03993
LGL 6 FAP03994
HED01 LAS BLANK IS HEADING CHARACTER BLANK FAP03995
TRA *+2 NO FAP03996
PXD ,0 YES, DELETE IT FAP03997
SLW BHEAD SAVE HEADING CHARACTER FAP03998
SLW LITRL SAVE FOR PASS 2 FAP03999
SXA HEDCT,0 RESET MULTIPLE HEADING COUNT FAP04000
HED02 TSX SSCAN,4 *ASSEMBLE NEXT SYMBOL FAP04001
TXI READ1,,0 END OF VARIABLE FIELD RETURN FAP04002
SLT EXPRR WAS VARIABLE FIELD IN ERROR FAP04003
SLT EXPND NO, WAS SYMBOL FOLLOWED BY AN OPERATION FAP04004
TRA FIELD **YES, OMIT HEADING CHARACTERS FAP04005
LXA HEDCT,4 NO, BUMP MULTIPLE HEADING COUNT FAP04006
TXI *+1,4,1 FAP04007
TXL *+3,4,11 DID BHEAD TABLE OVERFLOW FAP04008
LDI HEDNM YES, SET MULTIHEADING TABLE OVERFLOW FAP04009
TRA SRCERR **TERMINATE ASSEMBLY FAP04010
SXA HEDCT,4 NO, SAVE CURRENT MULTIPLE HEADING COUNT FAP04011
CAL SYMBL ADD HEADING CHARACTER FAP04012
SLW BHEAD,4 TO MULTIPLE HEADING LIST FAP04013
TRA HED02 FAP04014
REM FAP04015
IFEOP ZET ABSFLG IS THIS ASSEMBLY ABSOLUTE FAP04016
TRA OPERR **YES, OPERATION IS UNDEFINED FAP04017
TSX ESYML,4 *NO, DEFINE POSSIBLE LOCATION FIELD FAP04018
CAL L(EOF LOAD ENTRY POINT NAME FAP04019
TSX TRVCR,4 *MAKE ENTRY IN TV TABLE AND SYMBOL TABLE FAP04020
CLA Q2 LOAD LENGTH OF TWO INSTRUCTION MACRO FAP04021
TSX BPCTR,4 *BUMP PROGRAM COUNTER FAP04022
TRA READ1 FAP04023
L(EOF BCI 1,(EOF) FAP04024
REM TSFAP04025
REM PSEUDO OP INSERT FOR TS FAP TSFAP04026
REM WNFAP04027
INSOP NZT SAVNAM IS OLD INSERT ACTIVE WNFAP04028
TRA INS01 NO WNFAP04029
TSX CLOSE,4 YES, CLOSE IT WNFAP04030
BRN SAVNAM WNFAP04031
BRN FAPFAP WNFAP04032
BRN DSERN FAP04033
INS01 STZ INSFG WNFAP04034
STZ SYMBL WNFAP04035
INS04 TSX SCANF,4 SCAN VARIABLE FIELD WNFAP04036
TRA INS02 NO MORE SYMBLS IN VARIABLE FIELD WNFAP04037
SLT EXPRR TURN OFF ERROR INDICATOR WNFAP04038
AXT , NOP WNFAP04039
TSX RADJS,4 RIGHT ADJUST SYMBOL NAME WNFAP04040
ZET INSFG IS THIS NAME1 OR NAME2 WNFAP04041
TRA INS03 NAME2 WNFAP04042
STL INSFG NAME1, SET FLAG WNFAP04043
LDQ FILNAM PICKUP CURRENT NAME1 WNFAP04044
STQ SAVNAM SAVE AWAY FOR LATER USE WNFAP04045
SLW FILNAM SET NEW NAME1 WNFAP04046
TRA INS04 GET NAME2, IF ANY WNFAP04047
REM FAP04048
INS02 NZT INSFG HAVE WE GOT A NAME1 WNFAP04049
TRA AFLAG NO, FLAG IT 'A' WNFAP04050
CAL FAPNAM YES, ASSUME NAME2 IS FAP WNFAP04051
INS03 LDQ FAPFAP PICKUP CURRENT NAME2 WNFAP04052
STQ SAVFAP SAVE IT WNFAP04053
SLW FAPFAP SET NEW NAME2 WNFAP04054
CLA RDEFT SAVE EOF FLAG LOFAP04055
STO SAVEFT LOFAP04056
CLA CTROL SAVE CONTROL WORD LOFAP04057
STO SAVCTR LOFAP04058
CLA REDK0 SAVE POSITION IN RBUFF1 LOFAP04059
STO SAVXR1 LOFAP04060
CLA REDK5 SAVE BUFFER EMPTY TEST LOFAP04061
STO SAVDK5 LOFAP04062
CLA SERNO PBFAP04063
STO SAVSER PBFAP04064
TSX STARTF,4 OPEN AND READ FIRST WORD LOFAP04065
PZE INBUF1 BUFFER FOR INSERT FILE LOFAP04066
TNZ INSEF EOF, ERROR LOFAP04067
AXT INSEF,4 SET EOF TRANSFER LOFAP04068
SXA SRCEF,4 FOR INSERTED FILE LOFAP04069
REM LOFAP04070
TRA READ1 EXIT FROM INSOP LOFAP04071
REM TSFAP04072
REM END OF FILE RETURN FROM INSERTED FILE TSFAP04073
INSEF TSX CLOSE,4 CLOSE THE FILE LOFAP04074
BRN FILNAM LOFAP04075
BRN FAPFAP LOFAP04076
BRN DSERN LOFAP04077
CLA SAVNAM RESTORE MAIN FILE NAME LOFAP04078
STO FILNAM LOFAP04079
STZ SAVNAM ERASE THE SAVED NAME LOFAP04080
CAL SAVFAP RESTORE THE MAIN FILE NAME2 WNFAP04081
SLW FAPFAP WNFAP04082
CLA SAVEFT RESTORE EOF FLAG LOFAP04083
STO RDEFT LOFAP04084
CLA SAVCTR RESTORE CONTROL WORD LOFAP04085
STO CTROL LOFAP04086
CLA SAVXR1 RESTORE POSITION IN RBUFF1 LOFAP04087
STO REDK0 LOFAP04088
CLA SAVDK5 RESTORE BUFFER EMPTY TEST LOFAP04089
STO REDK5 LOFAP04090
CLA SAVSER PBFAP04091
STO SERNO PBFAP04092
AXT RBUFF1,4 RESTORE BUFFER NAME LOFAP04093
SXA RDFL1,4 LOFAP04094
SXA REDK3,4 LOFAP04095
AXT SREOF,4 RESTORE EOF TRANSFER TSFAP04096
SXA SRCEF,4 FOR MAIN FILE TSFAP04097
AXT -1,4 TSFAP04098
SXD SRCSW,4 RESET THE NON-GENERATING CARD SWITCH TSFAP04099
TRA SOURC+1 AND GO TO READ MAIN FILE TSFAP04100
REM TSFAP04101
REM EVALUATE LITERALS TSFAP04102
LITOP LXD VRFLD,2 LOAD WORD COUNT FAP04103
LXA VRFLD,1 LOAD CHARACTER COUNT FAP04104
TSX C0190,4 *DELETE = CHARACTER FAP04105
TSX C0190,4 *GET CHARACTER FOLLOWING EQUAL SIGN FAP04106
LAS QV IS CHARACTER V WNFAP04107
TXI LITDC,1,1 NO, IT IS DECIMAL WNFAP04108
TRA LITVL YES, IT IS VFD WNFAP04109
LAS QO IS CHARACTER O FAP04110
TXI LITDC,1,1 NO, IT IS DECIMAL FAP04111
TRA LITCL YES, IT IS OCTAL FAP04112
LAS QH NO, IS CHARACTER H FAP04113
TXI LITDC,1,1 NO, IT IS DECIMAL FAP04114
TRA LITHL YES, IT IS HOLLERITH FAP04115
TXI LITDC,1,1 NO, BUMP COUNTER LEFT ONE CHARACTER FAP04116
REM EVALUATE DECIMAL LITERALS FAP04117
LITDC LGR 6 RESTORE FIRST CHARACTER (SIGN OR DIGIT) FAP04118
STQ RESIDU FAP04119
STZ ERRFE RESET ERROR FLAG FAP04120
TSX DECCV,4 *CONVERT DECIMAL FIELD TO BINARY FAP04121
STO LITRL FAP04122
NZT ERRFE WAS FIELD IN ERROR FAP04123
TRA LITDF NO FAP04124
TRA LITRR **YES FAP04125
REM FAP04126
REM EVALUATE VFD LITERAL WNFAP04127
REM FAP04128
LITVL STL LITVV SET FLAG FOR LITERAL FOR VFD WNFAP04129
TRA LITV1 ENTER CODING FOR OPVFD WNFAP04130
LITV2 STZ LITVV RETURN FROM OPVFD AND RESET FLAG WNFAP04131
CLA VFDRB PICKUP QUANTITY OF BITS LEFT OVER WNFAP04132
TZE *+2 IF NONE, THAT'S OK WNFAP04133
TMI LITRR IF TOO MANY, THAT'S BAD, SO FLAG IT WNFAP04134
STA LITV3 STORE COUNT FOR SHIFT TO LEFT JUSTIFY WNFAP04135
CAL ERASE PICKUP ASEMBLED PRODUCT WNFAP04136
LITV3 ALS ** JUSTIFY LEFT WNFAP04137
SLW LITRL PUT AWAY FOR PASS 2 WNFAP04138
NZT ERRFE IS WORD IN ERROR WNFAP04139
ZET ORBIT NO, IS IT RELOCATABLE WNFAP04140
TRA LITRR YES, IT IS A LITERAL ERROR WNFAP04141
TRA LITDF NO, ALL IS FINE GO STUFF IT WNFAP04142
REM EVALUATE OCTAL LITERALS FAP04143
LITCL STZ ERRFB RESET ERROR FLAG FAP04144
TSX OCTCV,4 *CONVERT OCTAL FIELD TO BINARY FAP04145
SLW LITRL FAP04146
NZT ERRFB WAS FIELD IN ERROR FAP04147
TRA LITDF NO FAP04148
TRA LITRR **YES FAP04149
REM EVALUATE HOLLERITH LITERALS FAP04150
LITHL TSX C0190,4 *GET NEXT CHARACTER FAP04151
AXT **,4 LOAD CHARACTER COUNT FAP04152
TXI *+1,4,1 BUMP CHARACTER COUNT FAP04153
TXH LITH1,4,6 HAVE SIX CHARACTERS BEEN COLLECTED FAP04154
SXA LITHL+1,4 NO, SAVE CHARACTER COUNT FAP04155
LGR 6 APPEND NEXT CHARACTER FAP04156
CAL LITRL TO PARTIAL LITERAL FAP04157
LGL 6 FAP04158
SLW LITRL SAVE PARTIAL LITERAL FAP04159
TRA LITHL FAP04160
LITH1 SXA LITHL+1,0 RESET CHARACTER COUNT FAP04161
SUB BLANK IS IT BLANK FAP04162
TZE LITDF YES, END OF VARIABLE FIELD FAP04163
SUB EQUAL NO, IS IT COMMA FAP04164
TZE LITDF YES, END OF LITERAL FIELD FAP04165
STZ LITRL NO, ILLEGAL CHARACTER FAP04166
TRA LITRR **SET ERROR FLAGS FAP04167
REM FAP04168
REM ENTER LITERAL INTO TABLE FAP04169
LITDF CAL LITRL LOAD LITERAL FAP04170
LXA LITSIZ,2 LOAD LOGARITHM OF TABLE LENGTH FAP04171
AXT 0,1 LOAD POSITION OF FIRST LITERAL IN TABLE FAP04172
XEC LSCH2+1,2 BUMP SEARCH TO MIDDLE OF TABLE FAP04173
REM REENTRY AFTER BINARY HOP FAP04174
LSCH1 TXL *+4,1,-1 IS CURRENT POSITION ABOVE TABLE ENTRIES FAP04175
LAS LITTBL-1,1 NO, IS NEW ENTRY IN TABLE FAP04176
TXI LSCH2+1,2,-2 NO, LARGER - GO LOOK HIGHER FAP04177
TRA LSCH3 YES, IGNORE IT FAP04178
TXI LSCH2,2,-2 NO, SMALLER - GO LOOK LOWER FAP04179
REM FAP04180
TXI LSCH1,1,-512 (MAXIMUM TABLE SIZE = 1024 LITERALS) FAP04181
TXI LSCH1,1,+256 FAP04182
TXI LSCH1,1,-256 FAP04183
TXI LSCH1,1,+128 FAP04184
TXI LSCH1,1,-128 FAP04185
TXI LSCH1,1,+64 FAP04186
TXI LSCH1,1,-64 FAP04187
TXI LSCH1,1,+32 FAP04188
TXI LSCH1,1,-32 FAP04189
TXI LSCH1,1,+16 FAP04190
TXI LSCH1,1,-16 FAP04191
TXI LSCH1,1,+8 FAP04192
TXI LSCH1,1,-8 FAP04193
TXI LSCH1,1,+4 FAP04194
TXI LSCH1,1,-4 FAP04195
TXI LSCH1,1,+2 FAP04196
TXI LSCH1,1,-2 FAP04197
TXI LSCH1,1,+1 FAP04198
TXI LSCH1,1,-1 FAP04199
TXI LITNT,1,-1 FAP04200
TXI LITNT,1,-2 FAP04201
REM FAP04202
LSCH2 XEC *,2 FAP04203
XEC *,2 FAP04204
REM FAP04205
REM LITERAL IS NEW, ENTER IT INTO TABLE INCREASING UPWARD FAP04206
LITNT LXD LSCH1,6 LOAD CURRENT LENGTH OF LITERAL TABLE FAP04207
TXI *+1,2,-1 BUMP COUNT FAP04208
SXD LSCH1,2 FAP04209
TXH *+3,2,-LLITBL DID LITERAL TABLE OVERFLOW FAP04210
LDI LITNM YES, SET LITERAL TABLE OVERFLOW FAP04211
TRA SRCERR **TERMINATE ASSEMBLY FAP04212
SXD *+1,1 NO, INITIALIZE POSITION TEST FAP04213
TXH *+4,4,** IS THIS ORDERED POSITION OF NEW ENTRY FAP04214
LDQ LITTBL-2,4 NO, MOVE NEXT ENTRY UP ONE FAP04215
STQ LITTBL-1,4 TO MAKE ROOM FOR NEW ENTRY FAP04216
TXI *-3,4,1 BUMP TABLE COUNT UP ONE POSITION FAP04217
SLW LITTBL-1,4 INSERT NEW ENTRY IN PROPER ORDER FAP04218
LSCH3 TRA READ1 FAP04219
REM FAP04220
REM DELETE STANDARD ERROR PROCEDURE LOFAP04221
REM FAP04222
LNKOP ZET FCFLG HAS A SYMBOL BEEN DEFINED WNFAP04223
TRA FIELD YES, NO DICE. WNFAP04224
TSX ONOFF,4 NO, IT IS OK. SET SWITCH WNFAP04225
TPL LNKON NOVEL PROCEDURE AFTER RETURN FROM ONOFF WNFAP04226
STZ SEPFLG TURN OFF LINKAGE DIRECTOR WNFAP04227
TRA READ1 LEAVE WNFAP04228
LNKON CLA ALONE TURN ON LINKAGE DIRECTOR WNFAP04229
STO SEPFLG FAP04230
TRA READ1 LEAVE WNFAP04231
REM FAP04232
NLKOP ZET FCFLG IS THIS FIRST CARD GROUP WNFAP04233
TRA FIELD NO, TOO LATE LOFAP04234
STZ SEPFLG YES, SET FLAG LOFAP04235
TRA READ1 LOFAP04236
REM LOFAP04237
REM FAP04238
LOCOP AXT -1,4 SET LOC SWITCH FAP04239
SXD ORG02+3,4 FAP04240
CAL CHRCTR LOAD FIRST CHARACTER IN VARIABLE FIELD FAP04241
ERA BLANK IS IT BLANK FAP04242
TNZ ORG01 NO FAP04243
CAL CDCTR YES, DISCONTINUE LOC FAP04244
SLN FLDND SET END OF VARIABLE FIELD FLAG FAP04245
TRA ORG02 FAP04246
REM FAP04247
MAXOP SXD MIN03,0 SET MAX SWITCHES FAP04248
SXD MIN03+2,0 FAP04249
TRA MIN01 FAP04250
REM FAP04251
MINOP AXT -1,4 SET MIN SWITCHES FAP04252
SXD MIN03,4 FAP04253
SXD MIN03+2,4 FAP04254
REM REENTRY FOR MAX FAP04255
MIN01 TSX SCANP,4 *EVALUATE FIRST FIELD FAP04256
TXI AFLAG,,0 NULL FIELD FAP04257
STI ADDRS SAVE RELOCATION BITS FAP04258
IIL 3 INITIALIZE TEST FOR CONSISTENT BITS FAP04259
STI ERASE FAP04260
MIN02 STO LITRL SAVE CURRENT GREATEST/LEAST FIELD FAP04261
TSX SCANP,4 *EVALUATE NEXT FIELD FAP04262
TXI MIN04,,0 NULL FIELD FAP04263
OFT ERASE IS SYMBOL CONSISTENT FAP04264
TRA FIELX **NO FAP04265
LAS LITRL YES, IS THIS SYMBOL GREATER/LESSER FAP04266
MIN03 TXH MIN02,4,** SYMBOL IS GREATER - IS THIS MAX FAP04267
TRA MIN02+1 NO FAP04268
TXL MIN02,4,** SYMBOL IS LESSER - IS THIS MIN FAP04269
TRA MIN02+1 NO FAP04270
REM END OF VARIABLE FIELD FAP04271
MIN04 CAL LITRL DEFINE SYMBOL AS MAX/MIN FAP04272
ORA ADDRS COMBINE WITH RELOCATION BITS FAP04273
SLW LITRL SAVE FOR PASS 2 FAP04274
SLW ADDRS FAP04275
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP04276
SLT FLDND WAS VARIABLE FIELD NULL FAP04277
TRA FIELD **YES FAP04278
TRA READ1 NO FAP04279
REM FAP04280
MMMOP ZET MMCSFG DID COMMAND LINE SET THIS OPTION WNFAP04281
TRA READ1 YES, IGNORE WNFAP04282
TSX ONOFF,4 NO, SET FLAG PROPERLY WNFAP04283
STO MMASW .. WNFAP04284
TRA READ1 EXIT WNFAP04285
REM FAP04286
OPDOP CAL CHRCTR LOAD FIRST CHARACTER FAP04287
ERA BLANK IS VARIABLE FIELD BLANK FAP04288
TZE FIELD **YES FAP04289
STZ ERRFE NO, CLEAR HANGING FLAGS FAP04290
STZ ERRFB FAP04291
TSX OCTCV,4 *ASSEMBLE OCTAL EQUIVALENT FAP04292
NZT ERRFE IS OCTAL EQUIVALENT IN ERROR FAP04293
ZET ERRFB FAP04294
TRA FIELD **YES FAP04295
ORA T1 NO, APPEND MACHINE OPERATION FLAG FAP04296
SLW LITRL SAVE FOR PASS TWO FAP04297
PAI FAP04298
TSX EOPTB,4 *ENTER INTO OP TABLE FAP04299
TRA READ1 FAP04300
REM FAP04301
OPSOP TSX SSCAN,4 *ASSEMBLE EQUIVALENT NAME FAP04302
TXI FIELD,,0 **NULL EQUIVALENT NAME FAP04303
SLT EXPRR IS SYMBOL IN ERROR FAP04304
ZET SYMB2 NO, IS SYMBOL TOO LONG FAP04305
TRA FIELD **YES FAP04306
CAL SYMBL NO, LOAD EQUIVALENT NAME FAP04307
LDQ Q0 FAP04308
LGR 6 LEFT ADJUST FAP04309
TNZ *-1 FAP04310
XCL FAP04311
TSX SOPTB,4 *FIND CORRESPONDING OCTAL OPCODE FAP04312
TRA FIELD **NOT IN TABLE FAP04313
STI LITRL SAVE FOR PASS TWO FAP04314
TSX EOPTB,4 *ENTER INTO OP TABLE FAP04315
TRA READ1 FAP04316
REM FAP04317
OPVOP CAL CHRCTR LOAD FIRST CHARACTER FAP04318
ERA BLANK IS VARIABLE FIELD BLANK FAP04319
TZE FIELD **YES FAP04320
LITV1 STZ ERASE NO, CLEAR WORKING STORAGE FAP04321
STZ RBITS CLEAR BAD RELLOC INDICATOR WNFAP04322
STZ ERRFE RESET POSSIBLE HANGING ERROR FLAG FAP04323
STZ VFDRB CLEAR OUT OLD BIT COUNTS WNFAP04324
STZ ORBIT CLEAR OLD RELOCATION FLAGS WNFAP04325
STL VFDMD SET VFD MODE FLAG FOR SCAN FAP04326
AXT 36,4 SET UNUSED BIT COUNT TO FULL WORD FAP04327
SXA VFDRB,4 FAP04328
OPV01 TSX VFDCV,4 *ASSEMBLE NEXT FIELD FAP04329
CLS VFDFB LOAD FIELD LENGTH FAP04330
STA OPV02 INITIALIZE SHIFT FAP04331
ADD VFDRB COMPUTE COUNT OF REMAINING BITS FAP04332
STO VFDRB FAP04333
CAL ERASE LOAD PARTIAL WORD FAP04334
LDQ VFDFL+1 LOAD NEW FIELD FAP04335
OPV02 LGL ** PACK IT IN FAP04336
SLW ERASE SAVE NEW PARTIAL WORD FAP04337
CAL RBITS PICK UP THIS FIELDS RELOCATION BITS WNFAP04338
ORS ORBIT SAVE FOR TESTING LATER WNFAP04339
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP04340
TRA OPV01 NO FAP04341
STZ VFDMD YES, RESET VFD FLAG FAP04342
ZET LITVV DID THIS COME FROM LITOP WNFAP04343
TRA LITV2 YES, EXIT THIS WAY WNFAP04344
NZT ERRFE IS WORD IN ERROR FAP04345
ZET ORBIT NO, IS WORD RELOCATABLE FAP04346
TRA FIELD **YES FAP04347
ZET VFDRB NO, IS WORD EXACTLY 36 BITS FAP04348
TRA FIELD **NO FAP04349
LDI ERASE YES, LOAD OCTAL OPCODE FAP04350
SIR 100000 APPEND MACHINE OPERATION FLAG FAP04351
STI LITRL SAVE FOR PASS TWO FAP04352
TSX EOPTB,4 *ENTER INTO OP TABLE FAP04353
TRA READ1 FAP04354
REM FAP04355
ORDOP CAL OPBIN LOAD OPCODE FAP04356
SLW LITRL SAVE FOR PASS TWO FAP04357
AXT 2$ORDOP,4 SET PASS TWO TRANSFER ADDRESS FAP04358
SXD OPBIN,4 FAP04359
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP04360
CLA Q2 ORDER TAKES TWO WORDS FAP04361
TSX BPCTR,4 *BUMP LOCATION COUNTER FAP04362
TRA READ1 FAP04363
REM FAP04364
ORGOP ZSD ORG02+3 SET ORG SWITCH FAP04365
CLA CDCTR LOAD CARD STORAGE COUNTER FAP04366
CAS PRGBK IS IT GREATER THAN GREATEST TO DATE FAP04367
STO PRGBK YES, RESET PROGRAM BREAK FAP04368
NOP FAP04369
ORG01 TSX SCANF,4 *EVALUATE NEW ORIGIN FAP04370
TXI AFLAG,,0 NULL ORIGIN FAP04371
SLT EXPRR WAS VARIABLE FIELD IN ERROR FAP04372
ZET VARUC NO, IS VARIABLE FIELD IN COMMON FAP04373
TRA PHASE **YES FAP04374
NZT ABSFLG IS ASSEMBLY ABSOLUTE FAP04375
ORA D1 NO, SET RELOCATION BIT FAP04376
ORG02 ZET DUPMD IS CARD IN RANGE OF DUP FAP04377
TRA PHASE **YES FAP04378
STA LOCTR NO, UPDATE PROGRAM COUNTER FAP04379
TXL *+2,4,** IS CARD LOC FAP04380
STA CDCTR NO, UPDATE CARD ORIGIN COUNTER FAP04381
SLW ADDRS DEFINE SYMBOL FAP04382
SLW LITRL SAVE FOR PASS TWO FAP04383
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP04384
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP04385
TRA FIELD **NO FAP04386
TRA READ1 YES FAP04387
REM FAP04388
REM RESCRS PSEUDO-OP RESTORES FORMER ORIGIN OF CREATED WNFAP04389
REM SYMBOLS AT TIME OF SAVCRS PSEUDO-OP WNFAP04390
REM FAP04391
RECOP CAL CRSSV PICKUP SAVED CONDITIONS WNFAP04392
STA CRSCT RESTOR COUNT OF C S WNFAP04393
STD CRPT1 RESTORE PREFIX CHARACTER WNFAP04394
TRA READ1 RETURN WNFAP04395
REM FAP04396
REM SAVCRS PSEUDO-OP HOLDS CONDITIONS OF CREATED SYMBOLS WNFAP04397
REM FAP04398
SVCOP CAL CRSCT PICKUP PRESENT COUNT OF CREATED SYMBOLS WNFAP04399
STA CRSSV SAVE AWAY IN SAFE PLACE WNFAP04400
CAL CRPT1 PICKUP CURRENT PREFIX CHARACTER WNFAP04401
STD CRSSV SAVE IT TOO WNFAP04402
TRA READ1 LEAVE WNFAP04403
REM FAP04404
REM SAVE CAUSES ASSEMBLY TO ABORT IN PASS 1 WNFAP04405
REM SUCH THAT DEFINED SYMBOLS, MACROS AND WNFAP04406
REM REMOTE SEQUENCES ARE RETAINED BUT ALL WNFAP04407
REM CODING IS LOST. THE RESULTING CORE IMAGE WNFAP04408
REM MAY BE RESUMED WITH PRESET OPTIONS, ETC. WNFAP04409
REM FAP04410
SAVOP CAL FAPNAM FAP04411
SLW FAPFAP FAP04412
CAL ALONE FAP04413
SLW CSCOM FAP04414
CSSCN TSX SCANF,4 GET ANY SYMBOLS IN VARIABLE FIELD WNFAP04415
TRA CSNUL OK, IF NULL, BUT SKIP DISPATCH WNFAP04416
TSX RADJS,4 MAKE LINEAR WITH RIGHT EDGE WNFAP04417
SLW CSCOM SAVE FOR NEXCOM WNFAP04418
TSX SCANF,4 GET SECOND SYMBOL IF ANY WNFAP04419
TRA CSSAM NONE WNFAP04420
TSX RADJS,4 RIGHT ADJUST FOR FILE NAMES WNFAP04421
TRA *+2 SKIP DEFAULT WNFAP04422
CSSAM CAL CSCOM IF NO SECOND NAME ASSUME FIRST WNFAP04423
SLW FAPNAM MAKE ASSUMED NAME2 BE THIS NAME WNFAP04424
SLW FAPFAP INITIALIZE I/O WNFAP04425
TSX NZEL,4 NULL OUT BLANKS DAFAP04426
SLW FORMT PATCH SEVERAL MESSAGES WNFAP04427
SLW MEC1+5 .. WNFAP04428
SLW DSES1+2 .. WNFAP04429
CSNUL TSX CLOSE,4 CLOSE OUT I/O WNFAP04430
BRN ALLALL WNFAP04431
CSDEL TSX DELFIL,4 DELETE FAPTEM WNFAP04432
BRN INTERM FAP04433
BRN FAPTEM FAP04434
BRN DSERN FAP04435
STZ SAVNAM FAP04436
STZ RDEFT FAP04437
STZ CTROL FAP04438
STZ PROLG FAP04439
STZ PRGBK FAP04440
STZ CHRCTR FAP04441
STZ CDCTR THESE STZ'S AND FOLLOWING ZSA'S ETC. WNFAP04442
STZ VRFLD RE INITIALIZE FILE READING, CARD PROCES- WNFAP04443
STZ DUPSW SING, ETC. WNFAP04444
STZ TVFLG FAP04445
STZ FCFLG FAP04446
STZ RECNO FAP04447
ZSA REDK0 FAP04448
ZSA LOCTR FAP04449
ZSA ADDRS FAP04450
ZSA OTPT1 FAP04451
ZSD REDK5 FAP04452
ZSD LITSIZ FAP04453
STZ RESIDU FAP04454
AXC 1,4 FAP04455
SXD SRCSW,4 FAP04456
SXD COMOK,4 FAP04457
SXD LSCH1,4 FAP04458
AXT LTVTBL,4 FAP04459
SXD TRVCR+2,4 FAP04460
AXT RBUFF1,4 FAP04461
SXA RDFL1,4 FAP04462
SXA REDK3,4 FAP04463
AXT SREOF,4 FAP04464
SXA SRCEF,4 FAP04465
ZSA NAMFLG DAFAP04466
CAL CSTRA (TRA,SOURC) WNFAP04467
SLW CSPTC FAP04468
CSLEV CAL CSAVE PICKUP SAVE COMMAND WNFAP04469
LDQ CSCOM AND NEW NAME WNFAP04470
TSX NEXCOM,4 SAVE CORE IMAGE WNFAP04471
TRA START GO TO BEGIN ANEW WNFAP04472
REM FAP04473
SEQOP ZET FCFLG IS THIS THE BEGINNING OF PROGRAM WNFAP04474
TRA FIELD NO, IT IS TOO LATE. FLAG IT WNFAP04475
TSX ONOFF,4 YES, IS IT ON OR OFF WNFAP04476
TPL SEQON .. WNFAP04477
STL SQFLG OFF SET FLAG WNFAP04478
TRA READ1 GO AWAY WNFAP04479
SEQON STZ SQFLG ON SET FLAG WNFAP04480
TRA READ1 WNFAP04481
REM FAP04482
REM SET FOR NO SEQUENCE CHECKING OF SOURCE CARDS LOFAP04483
NSQOP ZET FCFLG IS THIS FIRST CARD GROUP LOFAP04484
TRA FIELD NO, TOO LATE LOFAP04485
STL SQFLG YES, SET FLAG LOFAP04486
TRA READ1 LOFAP04487
REM LOFAP04488
REM FAP04489
SSTOP TRA PTCH1 *FAP04490
TRA READ1 FAP04491
REM FAP04492
SYNOP TSX SCANP,4 *EVALUATE SYN DEFINITION FAP04493
TXI AFLAG,,0 NULL DEFINITION FAP04494
OAI COMBINE BITS WITH DEFINITION FAP04495
STI ADDRS DEFINE SYMBOL FAP04496
STI LITRL SAVE FOR PASS 2 FAP04497
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP04498
SLT FLDND WAS VARIABLE FIELD NULL FAP04499
TRA FIELD **YES FAP04500
TRA READ1 NO FAP04501
REM FAP04502
TAPOP CAL Q128 SET DEFINITION TO 0200 FAP04503
SLW ADDRS FAP04504
TSX C0190,4 *LOAD CHANNEL CHARACTER FAP04505
LAS BLANK IS FIELD NULL FAP04506
TRA FIELD **NO, ILLEGAL CHARACTER FAP04507
TRA TAP01 YES FAP04508
LAS QH NO, IS IT GREATER THAN H FAP04509
TRA FIELD **YES, TOO MANY CHANNELS FAP04510
NOP NO FAP04511
LAS PLUSS IS IT GREATER THAN + FAP04512
TRA *+3 YES FAP04513
TRA FIELD **NO, ILLEGAL CHARACTER FAP04514
TRA TAP01+3 NO CHANNEL DESIGNATED FAP04515
ANA Q15 MASK OUT ZONE BITS (CHANNEL NUMBER) FAP04516
ALS 9 POSITION CHANNEL NUMBER FAP04517
ORS ADDRS INSERT IN DEFINITION FAP04518
TRA TAP01+2 FAP04519
REM REENTRY FOR NULL FIELD FAP04520
TAP01 STZ CHRCTR DELETE BLANK FAP04521
TSX AFLAG,4 *FLAG OMITTED FIELD FAP04522
REM REENTRY TO EVALUATE NEXT DIGIT IN TAPE NUMBER FAP04523
TSX C0190,4 *GET NEXT DIGIT FAP04524
REM REENTRY FOR NO CHANNEL DESIGNATED FAP04525
LAS Q10 IS IT GREATER THAN 10 FAP04526
TRA TAP02 YES, THIS MAY BE MODE CHARACTER FAP04527
TSX MACERR,4 **CHARACTER IS BCD 10 FAP04528
LDQ ADDRS PICK UP CHANNEL AND PARTIAL TAPE ADDRESS FAP04529
VLM Q10,,6 MULTIPLY CURRENT DIGIT BY 10 FAP04530
VLM Q1,,8 AND CHANNEL BY 1 FAP04531
LLS 14 REPOSITION CONVERTED PARTIAL ADDRESS FAP04532
ADD CHRCTR ADD IN THIS DIGIT OF TAPE ADDRESS FAP04533
SLW ADDRS SAVE CHANNEL AND PARTIAL TAPE ADDRESS FAP04534
ANA BLANK WAS TAPE NUMBER VALID FAP04535
TZE TAP01+2 YES, GET NEXT DIGIT FAP04536
TRA FIELD **NO FAP04537
REM REENTRY FOR CHARACTER FOLLOWING TAPE ADDRESS FAP04538
TAP02 AXT 5,4 LOAD LENGTH OF TAPE CHARACTER LIST FAP04539
LAS TAPCH+5,4 IS CHARACTER THIS TAPE CHARACTER FAP04540
TRA FIELD **NO FAP04541
TRA TAP03+5,4 YES FAP04542
TIX *-3,4,1 IS LIST EXHAUSTED FAP04543
TRA FIELD **YES FAP04544
REM FAP04545
TAP03 TRA TAP04 CHARACTER IS BLANK FAP04546
TRA *+5 CHARACTER IS L *FAP04547
TRA *+2 CHARACTER IS H *FAP04548
TRA *+3 CHARACTER IS D FAP04549
CAL PLUSS CHARACTER IS B FAP04550
ORS ADDRS INSERT BINARY/HIGH DENSITY MODE BIT *FAP04551
TSX C0190,4 *GET NEXT CHARACTER FAP04552
ERA BLANK IS IT BLANK FAP04553
TNZ FIELD **NO FAP04554
TAP04 CAL ADDRS SAVE DEFINITION FOR PASS TWO FAP04555
SLW LITRL FAP04556
TSX ESYML,4 *DEFINE TAPE ADDRESS FAP04557
TRA READ1 FAP04558
REM FAP04559
TCDOP NZT ABSFLG IS ASSEMBLY ABSOLUTE FAP04560
TRA OPERR **NO, OPERATION IS UNDEFINED FAP04561
TRA READ1 FAP04562
REM FAP04563
REM FAP04564
VFDOP STL VFDMD SET VFD FLAG FAP04565
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP04566
STZ VFDTB CLEAR TOTAL BIT COUNT FAP04567
VFETC STZ VFDFB CLEAR FIELD WIDTH FAP04568
TSX C0190,4 *GET NEXT CHARACTER FAP04569
LAS COMMA IS CHARACTER COMMA FAP04570
TRA VFD04 NO FAP04571
TRA VFETC+1 YES, NULL FIELD FAP04572
LAS BLANK IS CHARACTER BLANK FAP04573
TRA VFD04 NO FAP04574
TRA VFD06 YES, END OF VARIABLE FIELD FAP04575
LAS QO IS CHARACTER O FAP04576
TRA VFD04 NO FAP04577
TRA VFD02 YES, OCTAL FIELD FAP04578
LAS QH IS CHARACTER H FAP04579
TRA VFD04 NO FAP04580
TRA VFD02 YES, HOLLERITH FIELD FAP04581
REM REENTRY TO COMPUTE PARTIAL FIELD WIDTH FAP04582
VFD01 LAS SLASH IS CHARACTER / FAP04583
TRA VFD05 NO FAP04584
TRA VFD03 YES, FIELD FOLLOWS FAP04585
LAS Q10 IS CHARACTER NUMERIC FAP04586
TRA VFD05 NO FAP04587
TSX MACERR,4 **CHARACTER IS BCD 10 FAP04588
CLA VFDFB YES, OLD PARTIAL FIELD WIDTH FAP04589
ALS 2 FAP04590
ADD VFDFB TIMES TEN FAP04591
ALS 1 FAP04592
ADD CHRCTR PLUS NEXT DIGIT FAP04593
STO VFDFB IS NEW PARTIAL FIELD WIDTH FAP04594
REM FIELD WIDTH FOLLOWS FAP04595
VFD02 TSX C0190,4 *GET NEXT CHARACTER FAP04596
TRA VFD01 FAP04597
REM FIELD FOLLOWS FAP04598
VFD03 CLA VFDFB LOAD FIELD WIDTH FAP04599
CAS Q63 IS SUBFIELD TOO LONG FAP04600
CLA Q63 YES, TRUNCATE IT FAP04601
NOP FAP04602
ADD VFDTB ADD TO TOTAL BIT COUNT FAP04603
SLW VFDTB AND SAVE FAP04604
REM LOOK FOR END OF FIELD FAP04605
VFD04 TSX C0190,4 *GET NEXT CHARACTER FAP04606
VFD05 LAS COMMA IS IT COMMA AT END OF FIELD FAP04607
TRA VFD04 NO FAP04608
TRA VFETC YES, GET NEXT FIELD FAP04609
ERA BLANK IS IT BLANK FAP04610
TNZ VFD04 NO FAP04611
TRA VFD06+2 YES, ETC MAY NOT FOLLOW FAP04612
REM END OF VARIABLE FIELD FAP04613
VFD06 TSX PEEKS,4 *IS NEXT CARD AN ETC CARD FAP04614
TRA VFD07 YES FAP04615
REM END OF VFD STATEMENT FAP04616
LDQ VFDTB LOAD TOTAL BIT COUNT FAP04617
PXD ,0 FAP04618
DVP Q36 COMPUTE NUMBER OF WORDS FAP04619
DCT DID DIVIDE FAIL FAP04620
TSX MACERR,4 **YES FAP04621
TZE *+2 IS THERE A PARTIAL WORD FAP04622
CLA Q1 YES, RESERVE SPACE FOR IT FAP04623
STQ VFDTB COMBINE FULL WORDS FAP04624
ADD VFDTB WITH PARTIAL WORD FAP04625
TNZ *+2 HAVE ANY BITS BEEN GENERATED FAP04626
CLA Q1 NO, RESERVE WORD OF ZEROES FAP04627
TSX BPCTR,4 *BUMP PROGRAM COUNTER FAP04628
STZ VFDMD RESET VFD FLAG FAP04629
VFD07 TRA READ1 FAP04630
REM FAP04631
REM ERROR IN PROCESSING PSEUDOOPERATIONS FAP04632
LITRR CAL Q8 SET ERROR FLAG FAP04633
TRA PHASE+2 FAP04634
FIELX STZ LITRL DELETE PARTIAL DEFINITION FAP04635
FIELD CAL Q4 FLAG FIELD ERROR FAP04636
TRA PHASE+2 FAP04637
PHASE STZ LITRL DELETE DEFINITION IN ERROR FAP04638
CAL Q1 FLAG PHASE ERROR FAP04639
ORS P1FLG FAP04640
TRA READ1 FAP04641
REM FAP04642
OPERR CAL Q16 SET UNDEFINED OPERATION FLAG FAP04643
ORS P1FLG FAP04644
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD FAP04645
CLA Q1 FAP04646
TSX BPCTR,4 *BUMP PROGRAM COUNTER FAP04647
TRA READ1 FAP04648
REM FAP04649
REM FAP04650
REM FAP04651
REM SORT TABLES FAP04652
SRTBT DEC -0,1B1,1B2,1B3,1B4,1B5,1B6,1B7,1B8,1B9,1B10,1B11,1B12 FAP04653
DEC 1B13,1B14,1B15,1B16,1B17,1B18,1B19,1B20,1B21,1B22,1B23 FAP04654
OCT 4000,2000,1000,400,200,100,40,20,10,4,2,1 FAP04655
REM FAP04656
RELD02 SYN * TSFAP04657
SORTB PZE ,,0 -SYMTBL LOCATION (COMPLEMENT) OF BOTTOM OF TBL TSFAP04658
SORTA PZE ** LOCATION (COMPLEMENT) OF TOP OF TABLE FAP04659
DEC ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, FAP04660
TTL PASS ONE MACRO PROCESSOR FAP04661
REM ROUTINES TO DEFINE MACROS FAP04662
REM MACRO, MOP, RMT FAP04663
REM FAP04664
MOPSW SLT EXPRR IS OPFIELD IN ERROR FAP04665
TTR ** NO FAP04666
TRA INSTR YES FAP04667
REM FAP04668
REM ENTRY FOR MACRON FAP04669
REM FAP04670
MCNOP STL MNFLAG SET FLAG TO INDICATE NO CREATED SYMBOLS WNFAP04671
REM FAP04672
MCROP CAL BCDBF LOAD LOCATION FIELD FAP04673
TSX LOCFL,4 *ASSEMBLE MACRO NAME FAP04674
TNZ MOP00+1 HAS NAME BEEN GIVEN FAP04675
CAL CHRCTR NO, IS VARIABLE FIELD BLANK FAP04676
ERA BLANK FAP04677
TNZ MOP00 NO, IMPROPER CARD FAP04678
AXT MCR01,4 SET VECTOR TO AVOID INITIALIZATION FAP04679
SXA MOPSW+1,4 FAP04680
TSX SETTP,4 *SET UP MACRO ROUTING FAP04681
PZE ROUTE,,MOPSW FAP04682
TSX MACERR,4 **ALREADY SET UP FAP04683
AXT -1,4 SET MACRO DEFINITION CARD SWITCH FAP04684
TRA READ1 GET NEXT CARD WITH MACRO NAME IN OPFIELD FAP04685
REM REENTRY FOR CARD FOLLOWING BLANK MACRO CARD FAP04686
MCR01 CAL BCDBF LOAD LOCATION FIELD FAP04687
TSX LOCFL,4 *ASSEMBLE LOCATION SYMBOL FAP04688
SLW LCARG SAVE POSSIBLE LOCATION ARGUMENT FAP04689
LDQ OPCOD LOAD OPCODE FAP04690
TRA MOP01 FAP04691
REM FAP04692
MOPOP TSX SSCAN,4 *ASSEMBLE MACRO NAME FAP04693
TXI MOP00,,0 NO MACRO NAME, IMPROPER CARD FAP04694
SLT EXPRR WAS MACRO NAME IN ERROR FAP04695
SLT EXPND NO, DID NAME END WITH OPERATOR FAP04696
STZ SYMBL YES, IMPROPER CARD FAP04697
ZET SYMB2 NO, IS MACRO NAME TOO LONG FAP04698
MOP00 STZ SYMBL YES, IMPROPER CARD FAP04699
REM REENTRY FOR MACRO FAP04700
TSX SETTP,4 *SET UP MACRO ROUTING FAP04701
PZE ROUTE,,MOPSW FAP04702
TSX MACERR,4 **ALREADY SET UP FAP04703
AXT -1,4 SET MACRO DEFINITION CARD SWITCH FAP04704
CAL SYMBL LOAD RIGHT ADJUSTED SYMBOL NAME FAP04705
LDQ Q0 (NAME WILL BE ZERO FOR IMPROPER CARD) FAP04706
LGR 6 LEFT ADJUST FAP04707
TNZ *-1 FAP04708
REM REENTRY FOR CARD FOLLOWING BLANK MACRO CARD FAP04709
MOP01 AXT MOP03,4 SET VECTOR UNTIL FIRST NON-ETC CARD FAP04710
SXA MOPSW+1,4 FAP04711
SXA MOP02,2 SAVE WORD COUNT FAP04712
SXA MOP02+1,1 SAVE CHARACTER COUNT FAP04713
CAL MOPP2 SET PASS TWO TRANSFER FAP04714
SLW OPBIN TO PRINT CARD FAP04715
XCL RECALL LEFT ADJUSTED MACRO NAME FAP04716
SLW MOPNM SAVE FOR END TEST FAP04717
TNZ *+3 IS NAME NULL FAP04718
CAL UNDFL YES, LOAD UNDEFINED MACRO FLAG FAP04719
TRA *+5 FAP04720
MMASW BRN *+2 SWITCH FOR NO MULTIPLY DEFINED MACROS WNFAP04721
TSX SOPTB,4 *IS MACRO NAME IN OPERATIONS TABLE FAP04722
TRA *+5 NO FAP04723
CAL MFLAG YES, SET MULTIPLE DEFINITION FLAG FAP04724
SLW LITRL SAVE FOR PASS TWO FAP04725
AXT 2$MCERR,4 SET PASS TWO TRANSFER FAP04726
SXD OPBIN,4 TO PRINT FLAG AND CARD IN ERROR FAP04727
CAL MOPNM RELOAD MACRO NAME FAP04728
AXT MACOP+1,4 LOAD PASS1 TRANSFER FOR MACRO WNFAP04729
ZET MNFLAG BUT IS THIS MACRON WNFAP04730
AXT MACOP-2,4 YES, LOAD ITS PASS 1 TRANSFER WNFAP04731
SXA MOPTR,4 INSERT IN BINARY WNFAP04732
STZ MNFLAG RESET FLAG WNFAP04733
LDI MOPTR LOAD POINTER TO MACRO DEFINITION TABLE FAP04734
TZE *+2 WAS NAME NULL FAP04735
TSX EOPTT,4 *NO, ENTER IN COMBINED OPERATIONS TABLE FAP04736
LXD MOPTR,1 RELOAD POINTER TO MACRO DEFINITION TABLE FAP04737
TXI *+1,1,1 BUMP POINTER BY LENGTH OF HEADING FAP04738
AXT 1,2 SET SWITCH TO STUFF BACKWARD FAP04739
CAL * LOAD CALLING LINKAGE FAP04740
TRA STUFY *INIT SUBROUTINE TO STUFF MACRO DEF TABLE FAP04741
ZSA MPCNT RESET MACRO ARGUMENT COUNT FAP04742
TSX SARGT,4 *INITIALIZE LOCATION OF ARGUMENT TABLE FAP04743
MOP02 AXT **,2 RELOAD WORD COUNT FAP04744
AXT **,1 RELOAD CHARACTER COUNT FAP04745
TRA MOP04 FAP04746
REM REENTRY FOR MACRO ETC CARD FAP04747
MOP03 NZT ETCMD IS ETC CARD EXPECTED FAP04748
TSX MACERR,4 **NO FAP04749
STZ ETCMD YES, RESET FLAG FAP04750
TSX RESTF,4 *RESTORE STUFF CONDITIONS FAP04751
CAL PSYMB LOAD PARTIAL ARGUMENT FAP04752
TZE MOP04 IS THERE A PARTIAL ARGUMENT FAP04753
SLW SYMBL YES, PRESET PARTIAL ARGUMENT FAP04754
STZ SYMB2 CLEAR HIGH ORDER PORTION FAP04755
TSX SSCET,4 *ASSEMBLE REST OF ARGUMENT FAP04756
TXI MOP06,,0 NO MORE ARGUMENT FAP04757
CAL SYMBL LOAD ARGUMENT FAP04758
LXA MPCNT,4 LOAD COUNT OF PARTIAL ARGUMENT FAP04759
TRA MOP05 FAP04760
REM REENTRY TO ASSEMBLE NEXT ARGUMENT FAP04761
MOP04 TSX SSCAN,4 *ASSEMBLE NEXT ARGUMENT FAP04762
TXI MOP06,,0 NO MORE ARGUMENT FAP04763
CAL SYMBL LOAD ARGUMENT FAP04764
TZE MOP05+1 IS ARGUMENT ZERO FAP04765
LXA MPCNT,4 NO, BUMP ARGUMENT COUNT FAP04766
TXI *+1,4,1 FAP04767
TXH MOP05+1,4,63 DID ARGUMENT TABLE OVERFLOW FAP04768
SXA MPCNT,4 NO FAP04769
REM REENTRY FOR ARGUMENT LIST ETC CARD FAP04770
MOP05 SLW DARGS,4 INSERT ARGUMENT IN TABLE FAP04771
REM REENTRY FOR TRUNCATED ARGUMENT LIST FAP04772
SLW PSYMB SAVE POSSIBLE PARTIAL ARGUMENT FAP04773
LXA CHRCTR,4 LOAD PUNCTUATION CHARACTER FAP04774
TXL MOP04,4,27 FAP04775
TXL MOP08,4,28 PUNCTUATION IS ) FAP04776
TXL MOP04,4,42 FAP04777
TXL MOP07,4,43 PUNCTUATION IS $ FAP04778
TXL MOP04,4,47 FAP04779
TXL MOP06,4,48 PUNCTUATION IS BLANK FAP04780
TXL MOP04,4,59 FAP04781
TXL *+2,4,60 PUNCTUATION IS ( FAP04782
TSX MACERR,4 **CHARACTER IS ILLEGAL FAP04783
REM PUNCTUATION IS ( FAP04784
CLA PARNC BUMP PARENTHESES COUNT FAP04785
ADD Q1 FAP04786
STO PARNC FAP04787
TRA MOP04 FAP04788
REM PUNCTUATION IS BLANK FAP04789
MOP06 ZET PARNC ARE PARENTHESES BALANCED FAP04790
TRA *+3 NO FAP04791
TXL MOP07+3,2,-12 YES, IS VARIABLE FIELD EXHAUSTED FAP04792
TRA MOP10 NO FAP04793
TSX PEEKS,4 *DOES ETC CARD FOLLOW FAP04794
TRA GSC32 YES FAP04795
TRA MOP10-1 **NO, FLAG ERROR (41)FAP04796
REM PUNCTUATION IS $ FAP04797
MOP07 TSX C019A,4 *LOOK AT NEXT CHARACTER FAP04798
ERA BLANK IS IT BLANK FAP04799
TNZ MOP04 NO, $ IS HEADING CHARACTER FAP04800
REM REENTRY FOR VARIABLE FIELD EXHAUSTED FAP04801
TSX PEEKS,4 *DOES ETC CARD FOLLOW FAP04802
TRA GSC32 YES FAP04803
TRA MOP10 NO FAP04804
REM PUNCTUATION IS ) FAP04805
MOP08 CLA PARNC BUMP PARENTHESES COUNT FAP04806
SUB Q1 FAP04807
STO PARNC FAP04808
TPL MOP04 ARE THERE TOO MANY RIGHT PARENTHESES FAP04809
TSX MCER1,4 *YES, SET ERROR FLAG (41)FAP04810
REM NO ETC CARD FOLLOWS FAP04811
MOP10 AXT MOP11,4 RESET TRANSFER UNTIL END CARD FAP04812
SXA MOPSW+1,4 FAP04813
LXD MOPTR,1 LOAD POINTER TO THIS MACRO FAP04814
LXA MPCNT,4 LOAD ARGUMENT COUNT FAP04815
PXD ,4 FAP04816
STO 0,1 INSERT ARGUMENT COUNT IN HEADING FAP04817
CAL LCARG LOAD POSSIBLE LOCATION ARGUMENT FAP04818
TZE GSC32 DOES IT EXIST FAP04819
STZ LCARG YES, RESET IT FAP04820
TXI *+1,4,1 BUMP ARGUMENT COUNT FAP04821
SXA MPCNT,4 FAP04822
SLW DARGS,4 ADD LAST ARGUMENT FAP04823
PXD ,4 FAP04824
SSM SET FLAG FOR LOCATION TYPE ARGUMENT FAP04825
STO 0,1 INSERT REVISED ARGUMENT COUNT IN HEADING FAP04826
TRA GSC32 FAP04827
REM REENTRY FOR MACRO INSTRUCTION CARDS FAP04828
MOP11 TSX RESTF,4 *RESTORE STUFF CONDITIONS FAP04829
ZET ETCMD IS AN ETC CARD EXPECTED FAP04830
TRA MSC10 YES FAP04831
CAL OPCOD NO, LOAD OPCODE FAP04832
ERA ENDMM IS OPCODE END FAP04833
TNZ MSC01 NO FAP04834
REM OPCODE IS END FAP04835
CAL BCDBF LOAD LOCATION FIELD FAP04836
TSX LOCFL,4 *ASSEMBLE LOCATION SYMBOL FAP04837
TNZ MOP12 IS THERE A SYMBOL FAP04838
LDQ RESIDU NO, SAVE BEGINNING OF VARIABLE FIELD FAP04839
STQ MOPMQ WHILE FINDING MACRO NAME FAP04840
CAL CHRCTR FAP04841
SLW MOPCH FAP04842
LXD VRFLD,2 LOAD WORD COUNT FAP04843
LXA VRFLD,1 LOAD CHARACTER COUNT FAP04844
TSX SSCAN,4 *ASSEMBLE VARIABLE FIELD SYMBOL FAP04845
TXI RMT02,,0 NO VARIABLE FIELD SYMBOL FAP04846
LDQ MOPMQ RESTORE BEGINNING OF VARIABLE FIELD FAP04847
STQ RESIDU FAP04848
CAL MOPCH FAP04849
SLW CHRCTR FAP04850
CAL SYMBL LOAD SYMBOL FAP04851
MOP12 LDQ Q0 LEFT ADJUST FAP04852
LGR 6 FAP04853
TNZ *-1 FAP04854
XCL FAP04855
ERA MOPNM IS THIS END OF MACRO FAP04856
TZE RMT02 YES FAP04857
TRA MSC01 NO FAP04858
REM FAP04859
RMTOP AXT -1,4 SET MACRO DEFINITION CARD SWITCH FAP04860
CAL CHRCTR LOAD FIRST CHARACTER FAP04861
ERA ASTRK IS IT * FAP04862
TNZ RMT00 NO FAP04863
AXT 2$BES01+4,4 YES, SET PASS TWO TRANSFER ADDRESS *FAP04864
REM TO LIST LOCATION LEFT ADJUSTED FAP04865
SXD OPBIN,4 FAP04866
TSX OTPUT,4 *WRITE RMT * CARD FAP04867
TSX RMTSR,4 *OUTPUT WAITING SEQUENCES FAP04868
TRA SOURC FAP04869
RMT00 TSX SETTP,4 *SET UP REMOTE ROUTING FAP04870
PZE ROUTE,,MOPSW FAP04871
TSX MACERR,4 **ALREADY SET UP FAP04872
AXT RMT01,4 SET TRANSFER UNTIL NEXT RMT CARD FAP04873
SXA MOPSW+1,4 FAP04874
CAL MOPTR LOAD POINTER TO MACRO DEFINITION TABLE FAP04875
LXD RMTEN,1 LOAD POINTER TO LAST REMOTE FAP04876
STD 0,1 INSERT POINTER IN HEADING DECREMENT FAP04877
STD RMTEN RESET POINTER FAP04878
PDX ,1 FAP04879
CAL BHEAD INSERT CURRENT HEADING CHARACTER FAP04880
ANA Q63 WITH EXTRANEOUS CHARACTERS DELETED FAP04881
SLW 0,1 AS HEADING ADDRESS FAP04882
TXI *+1,1,1 BUMP POINTER BY LENGTH OF HEADING FAP04883
ZSA MPCNT RESET REMOTE ARGUMENT COUNT FAP04884
AXT 1,2 SET SWITCH TO STUFF BACKWARD FAP04885
CAL * LOAD CALLING LINKAGE FAP04886
TRA STUFY *INITIALIZE SUBROUTINE TO STUFF MACRO DEF FAP04887
TSX SARGT,4 *INITIALIZE LOCATION OF ARGUMENT TABLE FAP04888
TRA GSC32 FAP04889
REM FAP04890
REM REENTRY FOR REMOTE INSTRUCTION CARD FAP04891
RMT01 TSX RESTF,4 *RESTORE STUFF CONDITIONS FAP04892
ZET ETCMD IS AN ETC CARD EXPECTED FAP04893
TRA MSC10 YES FAP04894
CAL OPCOD NO, LOAD OPCODE FAP04895
ERA RMTMM IS OPCODE RMT FAP04896
TNZ MSC01 NO FAP04897
REM OPCODE IS RMT, END OF REMOTE SEQUENCE FAP04898
REM REENTRY AFTER END OF MACRO DEFINITION FAP04899
REM CLOSE OUT MACRO DEFINITION TABLE FAP04900
RMT02 TSX SFZRO,4 *STUFF TERMINATING ZEROS FAP04901
TRA RMT03 TO CHECK FOR UNNESTED MACRO *FAP04902
SXD MOPTR,2 NO, SET POINTER TO NEXT HEADING FAP04903
SXD MAC07,2 RESET MACRO EXPANSION TABLE OVERFLOW TEST FAP04904
TSX OTPUT,4 *WRITE RMT/END CARD FAP04905
ZSD SSCN0 RESET MACRO DEFINITION SCAN SWITCH FAP04906
TSX RESTP,4 *RESET ASSEMBLER ROUTING FAP04907
PZE ROUTE,,MOPSW FAP04908
TRA SOURC FAP04909
REM FAP04910
REM ANALYSE CARD IN RANGE OF MACRO OR RMT FAP04911
REM DEFINE CARD LOCATION FIELD FAP04912
MSC01 CAL BCDBF LOAD LOCATION FIELD FAP04913
LAS BLANKS DOES LOCATION FIELD EXIST FAP04914
TRA *+2 YES FAP04915
TRA MSC02 NO FAP04916
TSX LOCFL,4 *ASSEMBLE LOCATION SYMBOL (OR EXPLICIT 0) FAP04917
TSX SMART,4 *LOOK UP LOCATION IN ARGUMENT TABLE FAP04918
TSX SFARN,4 *STUFF ARGUMENT NUMBER FAP04919
TSX SFARS,4 *STUFF LOCATION SYMBOL FAP04920
REM DEFINE CARD OPCODE FAP04921
MSC02 AXC Q1,1 PREPARE TO STUFF OP TAG FAP04922
TSX SFFLG,4 *STUFF FLAG FAP04923
LDQ RESIDU SAVE BEGINNING OF VARIABLE FIELD FAP04924
STQ MOPMQ DURING OPCODE ANALYSIS FAP04925
LDQ CHRCTR FAP04926
STQ MOPCH FAP04927
LDQ BCDBF+1 LOAD OPCODE FAP04928
LGL 6 INITIALIZE VARIABLE FIELD SCAN FAP04929
STQ RESIDU TO SCAN OPCODE FAP04930
ZAC INITIALIZE FIRST CHARACTER IN OPCODE FAP04931
LGL 6 FAP04932
SLW CHRCTR FAP04933
AXT -1,2 SET COUNT TO WORD 2 FAP04934
AXT 6,1 SET COUNT TO CHARACTER 2 FAP04935
REM REENTRY AFTER ' OR * FAP04936
MSC03 TSX SSCAN,4 *ASSEMBLE (PARTIAL) OP FIELD FAP04937
TXI MSC05,,0 NULL OP FIELD FAP04938
CAL SYMBL LOAD PARTIAL OP CODE FAP04939
TZE MSC04+2 IS THERE AN OP CODE FAP04940
SXA MSC04,2 YES, SAVE WORD COUNT FAP04941
SXA MSC04+1,1 SAVE CHARACTER COUNT FAP04942
TSX SMART,4 *LOOK UP OP CODE IN ARGUMENT TABLE FAP04943
TSX SFARN,4 *STUFF ARGUMENT NUMBER FAP04944
TSX SFARS,4 *STUFF OPCODE FAP04945
MSC04 AXT **,2 RELOAD WORD COUNT FAP04946
AXT **,1 RELOAD CHARACTER COUNT FAP04947
CAL CHRCTR RELOAD PUNCTUATION FAP04948
LAS PRIME IS PUNCTUATION ' FAP04949
TRA *+2 NO FAP04950
TRA MSC03 YES, GET NEXT SUBFIELD FAP04951
ERA ASTRK IS PUNCTUATION * FAP04952
TNZ MSC07 NO, CHECK FURTHER (42)FAP04953
MSC06 CAL CHRCTR YES, SET SUBFIELD TO PUNCTUATION (42)FAP04954
SLW SYMBL FAP04955
TSX SFARS,4 *STUFF * FAP04956
LXA MSC04,2 RELOAD XR2 WNFAP04957
LXA MSC04+1,1 RELOAD XR1 WNFAP04958
TRA MSC03 GET NEXT SUBFIELD FAP04959
REM BEGINNING OF VARIABLE FIELD SENSED FAP04960
MSC05 AXC Q62,1 PREPARE TO STUFF FIELD TAG FAP04961
TSX SFFLG,4 *STUFF FLAG FAP04962
TRA MSC09 COMPUTE VARIABLE FIELD POSITION (42)FAP04963
SXA ERASE,1 STORE IT FOR STUFF ROUTINE (42)FAP04964
AXC ERASE,1 STUFF INTO MACRO DEFINITION (42)FAP04965
TSX SFFLG,4 (42)FAP04966
REM FAP04967
REM BEGIN TESTS FOR OPCODES REQUIRING SPECIAL HANDLING FAP04968
MSC10 LXD VRFLD,2 LOAD WORD COUNT (42)FAP04969
LXA VRFLD,1 LOAD CHARACTER COUNT (42)FAP04970
AXT -1,4 PRESET FIRST FIELD SWITCH FAP04971
SXD GSCSA+1,4 FAP04972
STZ COUNT RESET FIELD COUNT FAP04973
STZ SYMBL RESET FIELD FAP04974
AXT 1,4 PRESET LENGTH OF FIELD TO BE STUFFED (42)FAP04975
SXD TOTAL,4 (42)FAP04976
CAL OPCOD LOAD OPCODE FAP04977
REM COMPARE FOR OP CODE OF BCD, BCI, TTL, OR REM (41)FAP04978
AXT 5,4 LOAD LENGTH OF TABLE DAFAP04979
LAS BCDMM+5,4 COMPARE SUCCESSIVE ENTRIES DAFAP04980
TRA *+2 AND IF MATCH IS FOUND, GO INITIALIZE (41)FAP04981
TRA MSC11 FOR FULL CARD SCAN (41)FAP04982
TIX *-3,4,1 IS LIST EXHAUSTED (41)FAP04983
TRA MSC1A YES, GO CHECK FOR LITERAL (41)FAP04984
REM PATCH TO MACRO INSTRUCTION ARGUMENT SCAN (41)FAP04985
MCERP TSX MCER1,4 SET FLAG AND PASS TWO ADDRESS (41)FAP04986
TRA SSN04+4 (41)FAP04987
REM ERROR ROUTINE FOR UNDEFINED MACRO NAME (41)FAP04988
MCER3 CAL UNDFL LOAD UNDEFINED FLAG (41)FAP04989
TSX MCERR,4 *SET FOR PASS TWO (41)FAP04990
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD (41)FAP04991
TRA READ1 (41)FAP04992
REM PATCH TO IFF PSEUDO-OPERATION PROCESSOR (41)FAP04993
IFF06 TXH IFF02,2,0 DO ARGUMENT LENGTHS DIFFER.. (41)FAP04994
LXA MARGS,4 NO, LOAD POINTER TO FIRST ARGUMENT (41)FAP04995
LXA MARGS-1,2 LOAD POINTER TO SECOND ARGUMENT (41)FAP04996
SXD IFF08,2 AND INITIALIZE TEST FOR END (41)FAP04997
IFF07 CAL 0,4 COMPARE CORRESPONDING WORDS (41)FAP04998
ERA 0,2 OF ARGUMENT STRINGS (41)FAP04999
TNZ IFF02 THROUGH IF DIFFERENT (41)FAP05000
TXI IFF08,4,-1 BUMP FIRST ARGUMENT POINTER (41)FAP05001
IFF08 TXL IFF02+1,4,** HAVE WE COMPARED ALL OF IT (41)FAP05002
TXI IFF07,2,-1 NO, KEEP CHECKING (41)FAP05003
REM TEST FOR LITERAL *FAP05004
MSC1A CAL CHRCTR *FAP05005
ERA EQUAL IF EQUAL TREAT AS *FAP05006
TNZ MSC20 HOLLERITH FIELD *FAP05007
REM REENTRY FOR TTL,REM, BCI, BCD WITH SYMBOLIC COUNT *FAP05008
MSC11 SXA GSAV1,1 SAVE VARIABLE FIELD CHARACTER COUNT *FAP05009
TXI MSC14,1,-1 *FAP05010
REM PATCH TO MACRO-INSTRUCTION PROCESSOR (41)FAP05011
MACIF TXL IFF01,4,** IS THIS IFF PSEUDO OPERATION (41)FAP05012
TRA MAC02 NO, CONTINUE TO ARGUMENT SCAN (41)FAP05013
REM PATCH TO GENERAL SCAN ROUTINE TO PREVENT LOSS OF (41)FAP05014
REM LAST PUNCTUATION CHARACTER OF ALPHANUMERIC FIELD (41)FAP05015
GSCBP AXC MSC22,4 UPDATE RETURN ADDRESS FROM GSCET (41)FAP05016
SXA SMARX,4 SUBROUTINE IN CASE NON-BLANK (41)FAP05017
TRA MSC22+2 PUNCTUATION OCCURS LATER ON CARD (41)FAP05018
REM RE-ENTRY FOR VARIABLE FIELD TO BE SCANNED IN FULL (41)FAP05019
MSC14 AXC 12,4 SET LENGTH OF CARD TO SCAN *FAP05020
SXD GSC11+1,4 SET END OF HOLLERITH FIELD SCAN TEST *FAP05021
AXT -1,4 SET HOLLERITH FIELD SWITCHES FAP05022
SXD GSC07,4 FAP05023
SXD GSC09,4 FAP05024
TRA MSC22 FAP05025
REM REENTRY FOR NONHOLLERITH OPCODES FAP05026
MSC20 SXA GSAV1,1 SAVE VARIABLE FIELD CHARACTER COUNT FAP05027
TXI *+1,1,-1 FAP05028
NZT ETCMD IS ETC CARD EXPECTED FAP05029
TRA MSC22 NO *FAP05030
STZ ETCMD YES, RESET FLAG FAP05031
LXD PCONT,4 PRESET PARTIAL FIELD COUNT FAP05032
SXD COUNT,4 FAP05033
CAL PSYMB PRESET PARTIAL SYMBOL FAP05034
SLW SYMBL FAP05035
ZSD GSC02+1 SET SWITCH TO PROCESS FIRST FIELD FAP05036
REM FAP05037
REM REENTRY FOR HOLLERITH OPCODES FAP05038
REM BEGIN VARIABLE FIELD SCAN FAP05039
MSC22 TSX GSCET,4 *ASSEMBLE NEXT FIELD FAP05040
TRA MSC23 FIELD IS AN ARGUMENT FAP05041
REM REENTRY FOR HOLLERITH FIELD NOT AN ARGUMENT FAP05042
ZSD GSCSA+1 RESET FIRST FIELD SWITCH FAP05043
CLA COUNT ADD FIELD COUNT FAP05044
ADD TOTAL INTO STUFF COUNT FAP05045
STO TOTAL FAP05046
STZ COUNT RESET FIELD COUNT FAP05047
STZ SYMBL DELETE FIELD NOT AN ARGUMENT FAP05048
LXA GSAV2,2 LOAD VARIABLE FIELD WORD COUNT FAP05049
TRA GSC01 FAP05050
REM FIELD IS AN ARGUMENT FAP05051
REM REENTRY AFTER FIRST BLANK IN HOLLERITH FIELD FAP05052
MSC23 TSX GSCSA,4 *STUFF ARGUMENT FAP05053
STZ COUNT RESET FIELD COUNT FAP05054
STZ SYMBL RESET FIELD FAP05055
AXT 2,2 SET STUFF COUNT TO INCLUDE FAP05056
SXD TOTAL,2 PRECEDING PUNCTUATION FAP05057
GSAV2 AXT **,2 LOAD VARIABLE FIELD WORD COUNT FAP05058
GSAV1 AXT **,1 LOAD VARIABLE FIELD CHARACTER COUNT FAP05059
TRA MSC22 ENSURE CORRECT RETURN ADDRESS (41)FAP05060
REM FAP05061
REM ASSEMBLE NEXT FIELD FAP05062
GSCET SXA SMARX,4 SAVE CALLING LINKAGE FAP05063
SXA GSCX1,2 SAVE STUFF WORD COUNT FAP05064
SXA GSCX2,1 SAVE STUFF CHARACTER COUNT FAP05065
GSC01 LXA GSAV1,1 LOAD VARIABLE FIELD CHARACTER COUNT FAP05066
TSX C0190,4 *GET NEXT CHARACTER FAP05067
SXA GSAV1,1 SAVE VARIABLE FIELD CHARACTER COUNT FAP05068
LXD COUNT,1 BUMP FIELD COUNT FAP05069
TXI *+1,1,1 FAP05070
SXD COUNT,1 FAP05071
LXD BKTBL,4 LOAD SPECIAL CHARACTER COUNT FAP05072
LAS BKTBL,4 IS THIS A SPECIAL CHARACTER FAP05073
TRA *+3 NO FAP05074
TRA GSC02 YES FAP05075
TIX *-3,4,1 IS SPECIAL CHARACTER COUNT EXHAUSTED FAP05076
CAL SYMBL YES, APPEND THIS CHARACTER FAP05077
ALS 6 TO PARTIAL SYMBOL FAP05078
ORA CHRCTR FAP05079
SLW SYMBL FAP05080
TRA GSC01 FAP05081
REM FAP05082
REM SYMBOL HAS BEEN ASSEMBLED, TRANSFER ON PUNCTUATION FAP05083
GSC02 SXA GSAV2,2 SAVE VARIABLE FIELD WORD COUNT FAP05084
TXH GSC16,2,-1 IS THIS FIRST FIELD ON ETC CARD FAP05085
TRA GSC04+1,4 NO, PROCESS FIELD ON PUNCTUATION FAP05086
REM FAP05087
TRA GSC15 PUNCTUATION IS ( FAP05088
TRA GSC34 PUNCTUATION IS , FAP05089
TRA GSC34 PUNCTUATION IS / FAP05090
TRA GSC09 PUNCTUATION IS BLANK FAP05091
TRA GSC34 PUNCTUATION IS * FAP05092
TRA GSC08 PUNCTUATION IS $ FAP05093
TRA GSC34 PUNCTUATION IS - FAP05094
TRA GSC07 PUNCTUATION IS ) FAP05095
TRA GSC34 PUNCTUATION IS + FAP05096
TRA GSC05 PUNCTUATION IS ' FAP05097
GSC04 TRA GSC34 PUNCTUATION IS = *FAP05098
REM FAP05099
REM PUNCTUATION IS ' FAP05100
GSC05 TSX GSC33,4 *CHECK PRECEDING FIELD FOR ARGUMENT FAP05101
TRA GSC06 FIELD IS AN ARGUMENT FAP05102
CLA COUNT ADD FIELD COUNT FAP05103
SUB D1 LESS PUNCTUATION CHARACTER FAP05104
ADD TOTAL INTO STUFF COUNT FAP05105
STO TOTAL FAP05106
TSX GSCSF,4 *STUFF FIELD PRECEDING ' FAP05107
ZSD GSCSA+1 RESET FIRST FIELD SWITCH FAP05108
TRA GSC06+1 FAP05109
REM ' FOLLOWS ARGUMENT FAP05110
GSC06 TSX GSCSA,4 *STUFF ARGUMENT PRECEDING ' FAP05111
AXC MSC22,4 SIMULATE CALL TO ASSEMBLE NEXT FIELD FAP05112
SXA SMARX,4 FAP05113
STZ COUNT RESET FIELD COUNT FAP05114
STZ SYMBL RESET FIELD FAP05115
AXT 1,2 SET STUFF COUNT TO OMIT PRECEDING ' FAP05116
SXD TOTAL,2 FAP05117
LXA GSAV2,2 LOAD VARIABLE FIELD WORD COUNT FAP05118
LXA GSAV1,1 LOAD VARIABLE FIELD CHARACTER COUNT FAP05119
TIX *+3,1,1 DELETE ' FROM STUFF COUNT FAP05120
TXI *+1,2,-1 FAP05121
AXT 6,1 FAP05122
SXA GSCX2,1 SAVE STUFF CHARACTER COUNT FAP05123
SXA GSCX1,2 SAVE STUFF WORD COUNT FAP05124
LXA GSAV2,2 RELOAD VARIABLE FIELD WORD COUNT FAP05125
TRA GSC01 FAP05126
REM FAP05127
REM PUNCTUATION IS ) FAP05128
GSC07 TXL GSC34,4,** IS ) WITHIN HOLLERITH FIELD FAP05129
CLA PARNC NO, BUMP PARENTHESES COUNT FAP05130
SUB Q1 FAP05131
STO PARNC FAP05132
TPL GSC34 ARE THERE TOO MANY RIGHT PARENTHESES FAP05133
TSX SFZRO,4 *YES, END THIS RECORD FAP05134
TRA GSCPE **SET ERROR FLAG (41)FAP05135
REM FAP05136
REM PUNCTUATION IS $ FAP05137
GSC08 LXA GSAV1,1 LOAD VARIABLE FIELD CHARACTER COUNT FAP05138
TSX C019A,4 *LOOK AT NEXT CHARACTER FAP05139
ERA BLANK IS IT BLANK FAP05140
TNZ GSC34 NO, $ IS HEADING CHARACTER FAP05141
TSX PEEKS,4 *YES, DOES ETC CARD FOLLOW FAP05142
TRA GSC20 YES FAP05143
NZT PARNC NO, ARE PARENTHESES BALANCED FAP05144
TRA GSC34 YES FAP05145
TRA GSCPE **NO, SET FLAG (41)FAP05146
REM FAP05147
REM PUNCTUATION IS BLANK FAP05148
GSC09 TXH GSC12,4,** IS BLANK WITHIN HOLLERITH FIELD FAP05149
TXH GSC10,1,1 YES,HAS A FIELD BEEN COLLECTED *FAP05150
AXT ,0 NO OPERATION *FAP05151
TXL GSC11,4,** NO, IS THIS FIRST BLANK FAP05152
AXT -1,4 YES, RESET SWITCH FAP05153
SXD GSC09+3,4 FAP05154
CLA TOTAL SAVE STUFF COUNT FAP05155
STO PCONT TO OMIT TERMINATING BLANKS FAP05156
TRA GSC11 FAP05157
REM FIELD HAS BEEN COLLECTED FAP05158
GSC10 TSX GSC33,4 *CHECK FIELD FOR ARGUMENT FAP05159
TXI G10P1,4,GSC10-1 *AXT -1,4 FIELD IS AN ARGUMENT. *FAP05160
CLA COUNT ADD FIELD COUNT FAP05161
ADD TOTAL INTO HOLLERITH FIELD COUNT FAP05162
TXI G10PA,4,GSC10-2 *AXT -2,4 STUFF UP TO BLANK. *FAP05163
GSC11 LXA GSAV2,4 LOAD VARIABLE FIELD WORD COUNT FAP05164
TXH GSCBP,4,** IS HOLLERITH FIELD COMPLETE (41)FAP05165
ZSD GSC09+3 YES, SET FIRST BLANK SWITCH FAP05166
CLA PCONT SET STUFF COUNT FAP05167
STO TOTAL TO HOLLERITH FIELD COUNT FAP05168
TSX GSCSF,4 *STUFF FIELD PRECEDING BLANK FAP05169
TRA GSC31 FAP05170
REM CARD IS STANDARD FORMAT FAP05171
GSC12 NZT PARNC ARE PARENTHESES BALANCED FAP05172
TRA *+5 YES FAP05173
TXH GSC34,2,-12 NO, IS VARIABLE FIELD EXHAUSTED FAP05174
TSX PEEKS,4 *YES, DOES AN ETC CARD FOLLOW FAP05175
TRA GSC20 YES FAP05176
GSCPE TSX MCER1,4 *NO, SET ERROR FLAG (41)FAP05177
REM END OF VARIABLE FIELD - BLANK DOES NOT FOLLOW ( OR $ FAP05178
TXH *+4,2,-12 IS VARIABLE FIELD EXHAUSTED FAP05179
TSX PEEKS,4 *YES, DOES AN ETC CARD FOLLOW FAP05180
TRA GSC20 YES FAP05181
TRA GSC13 NO FAP05182
TSX PEEKS,4 *DOES A PROGRAMMERS ETC FOLLOW FAP05183
TRA *+2 YES FAP05184
TRA GSC13 NO FAP05185
STZ ETCMD RESET ETC FLAG FAP05186
STZ ARGNO DELETE ARGUMENT NUMBER FAP05187
TSX SFARN+1,4 STUFF 7700 FLAG FOR FOLLOWING CARD ETC FAP05188
REM REENTRY FOR NO ETC CARD TO FOLLOW FAP05189
GSC13 TSX GSC33,4 *CHECK FIELD FOR ARGUMENT FAP05190
TRA GSC14 FIELD IS AN ARGUMENT FAP05191
CLA COUNT ADD FIELD COUNT FAP05192
SUB D1 LESS PUNCTUATION CHARACTER FAP05193
ADD TOTAL INTO STUFF COUNT FAP05194
STO TOTAL FAP05195
TSX GSCSF,4 *STUFF FIELD PRECEDING BLANK FAP05196
TRA GSC31 FAP05197
GSC14 TSX GSCSA,4 *STUFF ARGUMENT PRECEDING FINAL BLANK FAP05198
TRA GSC31 FAP05199
REM FAP05200
REM PUNCTUATION IS ( FAP05201
GSC15 CLA PARNC BUMP PARENTHESES COUNT FAP05202
ADD Q1 FAP05203
STO PARNC FAP05204
TRA GSC34 FAP05205
REM FAP05206
REM REENTRY FOR FIRST FIELD ON ETC CARD FAP05207
GSC16 SXA GSC19,4 SAVE PUNCTUATION CHARACTER FAP05208
CLA COUNT COMPUTE LENGTH OF ADDED SYMBOL FAP05209
SUB PCONT FAP05210
STD COUNT FAP05211
GSC17 TXL *+4,1,** IS THIS TAIL END OF A FIELD FAP05212
REM WHICH WAS TOO LONG TO BE AN ARGUMENT FAP05213
TXH *+3,1,7 NO, IS FIELD TOO LONG TO BE AN ARGUMENT FAP05214
TSX GSC33,4 *NO, CHECK FIELD FOR ARGUMENT FAP05215
TRA GSC18+2 FIELD IS AN ARGUMENT FAP05216
ZSD GSC17 RESET TAIL END SWITCH FAP05217
LXD PCONT,1 LOAD LENGTH OF PARTIAL FIELD FAP05218
TXL GSC18,1,0 IS THERE A PARTIAL FIELD FAP05219
TXI *+1,1,1 YES, COMPUTE LENGTH+1 OF PARTIAL FIELD FAP05220
SXA ERASE,1 FAP05221
AXC ERASE,1 FAP05222
TSX SFFLG,4 *STUFF COUNT+1 FAP05223
LXD PCONT,4 LOAD LENGTH OF PARTIAL FIELD FAP05224
LDC PCONT,2 COMPUTE LOCATION OF FIRST CHARACTER FAP05225
TXI *+1,2,6 FAP05226
AXC PSYMB,1 PREPARE TO STUFF PARTIAL FIELD FAP05227
CAL * LOAD CALLING LINKAGE FAP05228
TRA STUFF *STUFF PARTIAL FIELD FAP05229
TSX MACERR,4 **IMPOSSIBLE RETURN FAP05230
TRA ETCPC TRANSFER TO PATCH *FAP05231
GSC18 AXT -1,4 SET PARTIAL FIELD SWITCH FAP05232
SXD SMART+1,4 FAP05233
AXT -1,4 RESET FIRST FIELD SWITCH FAP05234
SXD GSC02+1,4 FAP05235
AXC MSC22,4 SIMULATE CALL TO ASSEMBLE NEXT FIELD FAP05236
SXA SMARX,4 FAP05237
LXD COUNT,1 LOAD LENGTH OF ADDED FIELD FAP05238
GSC19 AXT **,4 RELOAD PUNCTUATION CHARACTER FAP05239
TRA GSC02+2 FAP05240
REM FAP05241
REM ETC CARD WILL FOLLOW (BLANK, $BLANK, OR CARD COLUMN 72 FAP05242
GSC20 LXD COUNT,4 LOAD FIELD COUNT FAP05243
TXI *+1,4,-1 DELETE TERMINAL $ OR BLANK FAP05244
TXH GSC21,4,6 IS FIELD TOO LONG TO BE AN ARGUMENT FAP05245
SXD PCONT,4 NO, SAVE PARTIAL FIELD COUNT FAP05246
CAL SYMBL SAVE PARTIAL FIELD FAP05247
SLW PSYMB FAP05248
TSX GSCSF,4 *STUFF FIELD PRECEDING PARTIAL FIELD FAP05249
TRA GSC32 FAP05250
REM LAST FIELD IS NOT AN ARGUMENT FAP05251
GSC21 STZ PCONT RESET LENGTH OF PARTIAL FIELD FAP05252
STZ PSYMB DELETE PARTIAL FIELD FAP05253
PXD ,4 RECALL LENGTH OF PARTIAL FIELD FAP05254
ADD TOTAL ADD INTO STUFF COUNT FAP05255
STO TOTAL FAP05256
AXT -1,4 SET SWITCH THAT FIRST FIELD ON NEXT CARD FAP05257
SXD GSC17,4 IS TAIL END OF A FIELD NOT AN ARGUMENT FAP05258
TSX GSCSF,4 *STUFF TERMINAL FIELD FAP05259
TRA GSC32 FAP05260
REM FAP05261
REM REENTRY AFTER END OF SCAN FAP05262
GSC31 TSX SFZRO,4 *STUFF END OF RECORD MARK FAP05263
STZ PARNC RESET PAREN COUNT FAP05264
ZSD GSC07 RESET HOLLERITH FIELD SWITCHES FAP05265
ZSD GSC09 FAP05266
REM REENTRY AFTER END OF SCAN, ETC FOLLOWS FAP05267
REM REENTRY AFTER END OF MACRO DEFINING ARGUMENTS FAP05268
GSC32 LXD STUFI,4 SAVE STUFF CONDITIONS FAP05269
SXA RSTF1,4 IN CASE MAC ALTERS THEM FAP05270
LXD STUM2,4 FAP05271
SXA RSTF1+2,4 FAP05272
TRA READ1 FAP05273
REM FAP05274
REM REENTRY AFTER ' OR BLANK, OR FIRST FIELD ON ETC CARD FAP05275
GSC33 SXA SMARX,4 SAVE CALLING LINKAGE FAP05276
REM REENTRY AFTER OTHER PUNCTUATION FAP05277
GSC34 ZSD GSC09+3 SET FIRST BLANK SWITCH FAP05278
LXD COUNT,4 LOAD FIELD WIDTH FAP05279
TXH SMARX,4,7 IS FIELD TOO LONG TO BE AN ARGUMENT FAP05280
CAL SYMBL NO, LOAD FIELD FAP05281
TRA SMART+1 CHECK FOR ARGUMENT FAP05282
REM RETURN IS TO 1,4 FOR ARGUMENT FAP05283
REM 2,4 FOR OTHER FIELD FAP05284
REM FAP05285
REM STUFF ARGUMENT INTO MACRO DEFINITION FAP05286
GSCSA SXA GSCAX,4 SAVE CALLING LINKAGE FAP05287
TXL *+2,4,** IS THIS FIRST FIELD FAP05288
TSX GSCSF,4 *NO, STUFF FIELD PRECEDING ARGUMENT FAP05289
TSX SFARN+1,4 *STUFF ARGUMENT FAP05290
ZSD GSCSA+1 RESET FIRST FIELD SWITCH FAP05291
GSCAX AXT **,4 RELOAD CALLING LINKAGE FAP05292
TRA 1,4 FAP05293
REM FAP05294
REM STUFF FIELD INTO MACRO DEFINITION FAP05295
GSCSF SXA GSFP1,4 SAVE CALLING LINKAGE. *FAP05296
LXD TOTAL,1 LOAD LENGTH OF VARIABLE FIELD FAP05297
TXL GSCFX+1,1,1 DOES A VARIABLE FIELD EXIST... *FAP05298
TXL *+3,1,61 YES. IS FIELD COUNT TOO LONG... *FAP05299
TXI GSFPA,1,-14 *YES. BREAK IT UP AND STUFF TWICE. *FAP05300
SXD TOTAL,1 *TELL GSCX1+1 HOW MUCH TO STUFF *FAP05301
SXA GSCFX,4 SET RETURN TO PATCH OR CALLER. *FAP05302
GSCS1 SXA ERASE,1 SET LENGTH+1 OF FIELD FAP05303
AXC ERASE,1 FAP05304
TSX SFFLG,4 *STUFF COUNT+1 FAP05305
GSCX2 AXC **,2 LOAD COUNT OF FIRST CHAR TO BE STUFFED FAP05306
GSCX1 AXT **,1 LOAD COUNT OF FIRST WORD TO BE STUFFED FAP05307
LXD TOTAL,4 LOAD LENGTH OF FIELD TO BE STUFFED FAP05308
TXI *+1,2,6 COMPUTE LOCATION OF FIRST CHARACTER FAP05309
RELD03 SYN * TSFAP05310
TXI *+1,1,0 -BCDBF COMPUTE LOCATION OF FIRST WORD TSFAP05311
CAL * LOAD CALLING LINKAGE FAP05312
TXI STUFF,4,-1 STUFF FIELD FAP05313
TSX MACERR,4 **IMPOSSIBLE RETURN FAP05314
GSCFX AXT **,4 RELOAD CALLING LINKAGE FAP05315
TRA 1,4 FAP05316
REM FAP05317
REM FLOAT MACRO ARGUMENT TABLE ABOVE SYMBOL TABLE FAP05318
SARGT LXD STPTR,1 GET SYMBOL TABLE END *FAP05319
TRA SARGP AND CHECK FOR NESTING *FAP05320
SXD MP1,1 INITIALIZE MAC DEF OVERFLOW TEST *FAP05321
AXT -1,1 SET MACRO DEFINITION SCAN SWITCH FAP05322
SXD SSCN0,1 FAP05323
TRA 1,4 FAP05324
REM FAP05325
REM FAP05326
REM RESTORE STUFF CONDITIONS FAP05327
RESTF SXA RSTFX,4 SAVE CALLING LINKAGE FAP05328
RSTF1 AXT **,4 RESTORE STUFF FAP05329
TRA MP1 TEST FOR OVERFLOW OF MACRO DEF TABLE *FAP05330
AXT **,4 BY AN INTERVENING MAC CARD FAP05331
SXD STUM2,4 FAP05332
SXD STF01,4 FAP05333
ZSD STF03+1 DELETE OVERFLOW TEST FAP05334
ZSD STF08+2 FAP05335
AXT 1,4 FAP05336
SXD STF08+1,4 SET DIRECTION OF STUFF BACKWARD FAP05337
SXD STF10+2,4 FAP05338
AXT ,0 (41)FAP05339
CAL MOPP2 SET PASS 2 TRANSFER ADDRESS FAP05340
SLW OPBIN TO PRINT CARD FAP05341
RSTFX AXT **,4 RELOAD CALLING LINKAGE FAP05342
TRA 1,4 FAP05343
REM FAP05344
REM LOOK UP SYMBOL IN ARG TABLE FAP05345
SMARS CAL SYMBL FAP05346
SMART SXA SMARX,4 SAVE CALLING LINKAGE FAP05347
TXL SMARX,4,** IS THIS PARTIAL FIELD ON ETC CARD FAP05348
TZE SMARX NO, DOES ARGUMENT EXIST FAP05349
MPCNT AXT **,4 YES, LOAD COUNT OF ARGUMENTS IN TABLE FAP05350
TXL SMARX,4,0 DO ARGUMENTS EXIST FAP05351
LAS DARGS,4 YES, IS IT THIS ARGUMENT FAP05352
TRA *+2 NO FAP05353
TRA *+3 YES FAP05354
TIX *-3,4,1 IS ARGUMENT TABLE EXHAUSTED FAP05355
TRA SMARX YES FAP05356
REM ARGUMENT HAS BEEN LOCATED IN TABLE FAP05357
SXD ARGNO,4 SAVE ARGUMENT NUMBER FAP05358
LXA SMARX,4 RELOAD CALLING LINKAGE FAP05359
TRA 1,4 FAP05360
REM SYMBOL IS NOT AN ARGUMENT FAP05361
SMARX AXT **,4 RELOAD CALLING LINKAGE FAP05362
ZSD SMART+1 RESET PARTIAL FIELD SWITCH FAP05363
TRA 2,4 FAP05364
REM FAP05365
REM STUFF ARGUMENT NUMBER FAP05366
SFARN TXI *+1,4,-1 BUMP CALLING LINKAGE TO RETURN TO 2,4 FAP05367
SXA SFARX,4 SAVE CALLING LINKAGE FAP05368
CAL ARGNO LOAD ARGUMENT NUMBER FAP05369
ORA D4032 FORM 0077NN000000 FAP05370
SLW ERASE FAP05371
AXC ERASE,1 PREPARE TO STUFF FROM ERASE FAP05372
AXT 1,6 BEGINNING WITH SECOND CHARACTER FAP05373
TXI SFS04,4,1 USING TWO CHARACTERS FAP05374
REM STUFF ARGUMENT SYMBOL FAP05375
SFARS SXA SFARX,4 SAVE CALLING LINKAGE FAP05376
AXT 7,4 PREPARE TO COUNT CHARACTERS FAP05377
AXT 0,2 FAP05378
ZAC FAP05379
LDQ SYMBL LOAD SYMBOL FAP05380
LGL 6 NEXT CHARACTER FAP05381
TNZ *+3 IS THIS IT FAP05382
TXI *+1,2,1 NO, BUMP CHARACTER COUNT FAP05383
TIX *-3,4,1 IS SYMBOL ALL SCANNED FAP05384
SXA SFS03,4 SAVE LENGTH OF SYMBOL FAP05385
SXA SFS03+1,2 SAVE STARTING CHARACTER FAP05386
TXH SFS02,4,1 WAS FIELD BLANK OR ZERO FAP05387
AXC D2,1 YES, PREPARE TO STUFF EXPLICIT ZERO FAP05388
AXT 2,2 BEGINNING WITH THIRD CHARACTER FAP05389
TXI SFS04,4,1 USING TWO CHARACTERS FAP05390
REM ARGUMENT SYMBOL EXISTS FAP05391
SFS02 SXA ERASE,4 SET LENGTH+1 OF SYMBOL FAP05392
AXC ERASE,1 FAP05393
TSX SFFLG,4 *STUFF COUNT+1 FAP05394
SFS03 AXT **,4 RELOAD LENGTH+1 OF SYMBOL FAP05395
AXT **,2 RELOAD POSITION OF FIRST CHARACTER FAP05396
AXC SYMBL,1 PREPARE TO STUFF ARGUMENT SYMBOL FAP05397
TXI *+1,4,-1 USING LENGTH OF SYMBOL FAP05398
SFS04 CAL * LOAD CALLING LINKAGE FAP05399
TRA STUFF *STUFF SYMBOL OR COUNT AND FLAG FAP05400
TSX MACERR,4 **IMPOSSIBLE RETURN FAP05401
SFARX AXT **,4 RELOAD CALLING LINKAGE FAP05402
TRA 1,4 FAP05403
REM FAP05404
REM STUFF TERMINATING ZEROS FAP05405
SFZRO AXC Q0,1 PREPARE TO STUFF FROM ZEROS FAP05406
REM STUFF COUNT OR FLAG FAP05407
SFFLG SXA SFZRX,4 SAVE CALLING LINKAGE FAP05408
AXT 5,2 PREPARE TO STUFF FROM LAST CHARACTER FAP05409
AXT 1,4 USING ONE CHARACTER FAP05410
CAL * FAP05411
TRA STUFF FAP05412
TSX MACERR,4 **IMPOSSIBLE RETURN FAP05413
SFZRX AXT **,4 RELOAD CALLING LINKAGE FAP05414
TRA 1,4 FAP05415
EJECT FAP05416
REM ROUTINES TO EXPAND MACROS FAP05417
REM IFF, IRP, MAC, RMT * FAP05418
REM FAP05419
IFFOP TSX SCANF,4 *EVALUATE SWITCH FAP05420
TXI AFLAG+2,,0 NULL SWITCH FAP05421
SLT EXPRR IS SWITCH IN ERROR FAP05422
NZT RBITS NO, IS SWITCH ABSOLUTE FAP05423
TZE *+2 YES, IS SWITCH ZERO FAP05424
CAL Q1 NO, SET ABSOLUTE NONZERO, OR RELOCATABLE, FAP05425
REM SWITCH NOT IN ERROR TO 1 FAP05426
SLW VAREQ FAP05427
AXT -1,4 SET INTERCEPT IN MACRO PROCESSOR (41)FAP05428
SXD MACIF,4 TO RETURN AFTER SCAN INITIALIZATION (41)FAP05429
SXD SSN33,4 SET SWITCH FOR POSSIBLE ETC (41)FAP05430
SXA VRFLD,1 UPDATE CHARACTER POSITION (41)FAP05431
TRA MACOP+2 *INITIALIZE FOR ARGUMENT SCAN TSFAP05432
REM REENTRY FROM MACRO ARGUMENT SCAN INITIALIZATION (41)FAP05433
IFF01 ZSD MACIF RESET SWITCH (41)FAP05434
TSX SSINS,4 *ASSEMBLE ARGUMENTS (41)FAP05435
LXD ARGJL,4 OBTAIN NUMBER COLLECTED (41)FAP05436
ZAC (41)FAP05437
LXD MARGS,2 OBTAIN LENGTH OF FIRST ARGUMENT (41)FAP05438
TXH *+2,2,0 IS IT NULL (41)FAP05439
TXL IFF02+1,4,1 YES,TRANSFER IF NO SECOND ARGUMENT (41)FAP05440
LDC MARGS-1,4 INITIALIZE COMPUTATION OF (41)FAP05441
SXD *+1,4 DIFFERENCE IN ARGUMENT LENGTHS (41)FAP05442
TXI IFF06,2,** *COMPUTE DIFFERENCE IN LENGTH (41)FAP05443
REM REENTRY FROM COMPARISON OF ARGUMENTS (41)FAP05444
IFF02 CAL Q1 LOAD FLAG FOR UNEQUAL ARGUMENTS (41)FAP05445
ERA VAREQ COMBINE WITH SWITCH FAP05446
TNZ *+6 SHOULD FOLLOWING CARD BE OMITTED FAP05447
AXT -1,4 YES, SET FIRST CARD SWITCH FAP05448
SXD IFF04,4 FAP05449
TSX SETTP,4 *PLANT IFF INTERCEPT FAP05450
PZE ROUTE,,IFF03 FAP05451
TSX MACERR,4 **ALREADY SET UP FAP05452
TSX PMCS3,4 RESTORE MACRO STATUS (41)FAP05453
ZSD SSN33 RESET FOR NORMAL ETC PRINTING (41)FAP05454
TRA READ1 YES FAP05455
REM RETURN FROM MACRO COMPILER FOR SUBSEQUENT CARD FAP05456
IFF03 CAL BCDBF+1 LOAD OPCODE FAP05457
ANA PKMSK MASK IN CC 8 - 11 FAP05458
ERA ETCMK IS CARD ETC FAP05459
TZE IFF04+2 YES, CONTINUE DELETING GENERATED CARDS FAP05460
IFF04 TXH IFF05,4,** HAS A NON ETC CARD BEEN DELETED FAP05461
ZSD IFF04 NOT YET, RESTORE SWITCH FAP05462
AXT 2$TTL03+1,4 SET PASS TWO TRANSFER ADDRESS TO LIST *FAP05463
SXD OPBIN,4 THIS CARD UNDER CONTROL OF PCC *FAP05464
TRA READ1 FAP05465
REM DELETION IS COMPLETE FAP05466
IFF05 TSX RESTP,4 *REMOVE INTERCEPT FAP05467
PZE ROUTE,,IFF03 FAP05468
TRA ROUTE FAP05469
REM FAP05470
IRPOP LXA CLEVL,4 LOAD MACRO LEVEL FAP05471
TXL OPERR,4,0 **IS IRP WITHIN A MACRO FAP05472
AXT -1,4 YES, SET SWITCH TO INTERCEPT FAP05473
SXD CMP22,4 SUBSEQUENT IRP CARD FAP05474
TSX OTPT0,4 *LIST FIRST IRP FAP05475
TSX IRP10,4 *SUPPRESS FOLLOWING ETC FAP05476
LXA CHRCTR,1 LOAD FIRST CHARACTER IN VARIABLE FIELD FAP05477
TXI *+1,1,-48 IS IT BLANK FAP05478
TXL IRP01+1,1,0 YES FAP05479
IRP01 AXT **,1 NO, LOAD ARGUMENT NUMBER FAP05480
SXD IRPNO,1 FAP05481
TXL IRP06+1,1,0 IS IRP ON AN ARGUMENT FAP05482
CAL MDFCT YES, SAVE MACRO DEFINITION WORD,,CHAR FAP05483
SLW IRPPW COUNT OF BEGINNING OF IRP FAP05484
CLA MARGS+1,1 LOAD POINTER TO IRP ARGUMENT FAP05485
STO IRPAR SAVE IT FOR END OF IRP FAP05486
ADD Q1 FAP05487
STA IRPSD SET WORD COUNT OF BEGINNING OF ARGUMENT FAP05488
AXT 5,4 FAP05489
SXD IRPSD,4 SET CHAR COUNT OF BEGINNING OF ARGUMENT FAP05490
CAL COMMA PRESET LAST PUNCTUATION TO , FAP05491
STA IRPNO TO SCAN ARGUMENTS ON GENERATED IRP CARD FAP05492
STA LCHAR FAP05493
TXI IRP03,1,-1 FAP05494
REM REENTRY FROM COMPILER FOR NEXT CARD IN RANGE OF IRP FAP05495
IRP02 CAL BCDBF+1 LOAD OP FIELD FAP05496
ANA PKMSK MASK IN CARD COLUMNS 8 - 11 FAP05497
ERA IRPMK IS OPCODE IRP FAP05498
TZE *+4 YES FAP05499
LXD IRPNO,4 NO, LOAD IRP ARGUMENT COUNT FAP05500
TXL IRP06+1,4,0 IS IRP ON AN ARGUMENT FAP05501
TRA CMP22+1 YES FAP05502
REM SUBSEQUENT CARD IS IRP MARKING END OF RANGE FAP05503
TSX IRP10,4 *SUPPRESS FOLLOWING ETC FAP05504
LXD IRPNO,1 LOAD ARGUMENT NUMBER FAP05505
TXL IRP06,1,0 WAS IRP ON AN ARGUMENT FAP05506
CAL IRPNO YES, PRESET PUNCTUATION FAP05507
STA LCHAR AT BEGINNING OF NEXT STRING FAP05508
ANA ADDMK FAP05509
ERA BLANK IS IT BLANK FAP05510
TZE IRP05 YES, IRP ARGUMENTS ARE EXHAUSTED FAP05511
TXI *+1,1,-1 NO, BUMP ARGUMENT COUNT FAP05512
CLA MARGS,1 LOAD REFERENCE TO THIS ARGUMENT FAP05513
STA MEPTR OVERLAP ARGUMENTS FAP05514
REM REENTRY FOR FIRST IRP CARD FAP05515
IRP03 STZ MARGS,1 DELETE REFERENCE TO THIS ARGUMENT FAP05516
SXD ARGJL,1 SET ARGUMENT INDEX FAP05517
AXT -1,1 FAP05518
SXD SSN17,1 SET SWITCH TO AVOID BUMPING ARG INDEX FAP05519
CAL PRNLS SET PAREN LEVEL TO 0, ENABLE SCAN FOR , FAP05520
LXA LCHAR,4 LOAD LAST PUNCTUATION FAP05521
TXL *+3,4,59 WAS IT ( FAP05522
TXH *+2,4,60 NO FAP05523
CAL PRNLT YES, SET PAREN LEVEL TO 1, DISABLE , SCAN FAP05524
SLW PLEVL FAP05525
CAL IRPSD SET BEGINNING OF STRING FAP05526
STD SSNBC CHARACTER COUNT FAP05527
STA SSNBW WORD COUNT FAP05528
TSX SCANS,4 *INITIALIZE CHARACTER SCAN ROUTINE FAP05529
TXL SSN10,,MCTBL+4 SINGLE CHARACTER RETURN,,PUNCTUATION TABLEFAP05530
TXL SSN01,,4 PUNCTUATION RETURN,,LENGTH OF TABLE FAP05531
TXL ,1,0 NULLIFY OVERFLOW TEST FAP05532
TSX SSINS,4 *ASSEMBLE NEXT STRING FAP05533
LXD IRPNO,4 LOAD ARGUMENT COUNT FAP05534
CAL MARGS+1,4 LOAD REFERENCE TO THIS ARGUMENT FAP05535
TNZ *+5 IS THIS FINAL NULL STRING FAP05536
CAL IRPNO FAP05537
ANA ADDMK FAP05538
ERA COMMA WAS PUNCTUATION COMMA FAP05539
TNZ IRP05+1 FAP05540
LXD SSNBC,2 NO, HOLD COUNTS OF START OF FOLLOWING STRNFAP05541
LXA SSNBW,1 FAP05542
SXD IRPSD,2 FAP05543
SXA IRPSD,1 FAP05544
CAL CCHAR HOLD CURRENT PUNCTUATION CHARACTER FAP05545
STA IRPNO FOR BEGINNING OF FOLLOWING STRING FAP05546
CAL IRPPW RESTORE MACRO DEFINITION WORD,,CHAR COUNT FAP05547
SLW MDFCT FOR NEXT ITERATION OVER RANGE OF IRP FAP05548
TRA IRP06+1 FAP05549
REM ARGUMENT LIST IS EXHAUSTED FAP05550
IRP05 LXD IRPNO,4 LOAD ARGUMENT COUNT FAP05551
CAL IRPAR RESTORE REFERENCE TO THIS ARGUMENT FAP05552
SLW MARGS+1,4 FAP05553
IRP06 ZSD CMP22 RESET IRP INTERCEPT FAP05554
TRA SOURC FAP05555
REM FAP05556
REM PREPARE FOR FOLLOWING ETC FAP05557
IRP10 SXA IRP1X,4 SAVE CALLING LINKAGE FAP05558
TSX PEEKS,4 *WILL FOLLOWING CARD BE AN ETC FAP05559
TRA *+2 YES FAP05560
TRA IRP1X NO FAP05561
LXD MDFCT,1 BUMP MACRO DEFINITION CHARACTER COUNT FAP05562
TXI *+1,1,1 FAP05563
SXD MDFCT,1 FAP05564
STZ ETCMD SUPPRESS ETC CARD FAP05565
ZSD CMP01 AS SCAN WAS IN MACRO EXPANSION TABLE FAP05566
IRP1X AXT **,4 RELOAD CALLING LINKAGE FAP05567
TRA 1,4 FAP05568
REM FAP05569
REM PASS 1 ENTRY FOR MACRON DEFINED MACRO WNFAP05570
REM FAP05571
STZ LNCFG SET FLAG WNFAP05572
TRA MACOP+1 SKIP MAC ENTRY WNFAP05573
REM FAP05574
MACOP SLN 1 SET FLAG FOR MAC CALL FAP05575
REM ENTRY FOR MACRO NAME IN OPFIELD FAP05576
AXT -1,4 SET MACRO DEFINITION CARD SWITCH FAP05577
RELD04 SYN * TSFAP05578
TXI *+1,2,0 -BCDBF COMPUTE VARIABLE FIELD WORD COUNT TSFAP05579
LAC VRFLD,1 COMPUTE COUNT OF FIRST CHARACTER FAP05580
TXI *+1,1,6 IN VARIABLE FIELD FAP05581
SXA SSNBW,2 SAVE COUNTS OF BEGINNING OF STRING FAP05582
SXD SSNBC,1 FAP05583
TSX PMCS1,4 *PUSH MACRO STATUS DOWN FAP05584
CAL INDFG SET INDIRECTLY ADDRESSED MACRO FLAG FAP05585
STA MCIND FAP05586
TSX SCANS,4 *INITIALIZE CHARACTER SCAN ROUTINE FAP05587
TXL SSN10,,MCTBL+4 SINGLE CHARACTER RETURN,,PUNCTUATION TABLEFAP05588
TXL SSN01,,4 PUNCTUATION RETURN,,LENGTH OF TABLE FAP05589
RELD05 SYN * TSFAP05590
TXL SSN03,1,0 -BCDBF-12 OVERFLOW TEST TSFAP05591
CAL PRNLS ENABLE SCAN FOR , FAP05592
SLW PLEVL SET PAREN LEVEL TO 0 FAP05593
CAL COMMA PRESET LAST PUNCTUATION TO , FAP05594
STA LCHAR FAP05595
STZ MARGS RESET REFERENCE TO THIS ARGUMENT FAP05596
ZSD ARGJL RESET ARGUMENT INDEX FAP05597
SLT 1 IS THIS MAC CALL FAP05598
TRA MACIF NO, TEST FOR IFF (41)FAP05599
TSX SSING,4 *YES, LOCATE MACRO NAME IN STRING FAP05600
LXD MARGS,4 LOAD NUMBER OF CHARACTERS IN NAME FAP05601
TXL MCER3,4,0 **IS NAME NULL FAP05602
LXD MARGS,2 NO, LOAD LENGTH OF MACRO NAME FAP05603
LXA MARGS,1 LOAD POINTER TO NAME IN MACEXP FAP05604
CAL 0,1 LOAD MACRO NAME FAP05605
ANA MARMK,2 MASK OUT FOLLOWING GARBAGE FAP05606
TSX SOPTB,4 *EVALUATE MACRO NAME FAP05607
TRA MCER3 **NOT FOUND FAP05608
RNT 100000 IS THIS MACHINE OPERATION FAP05609
LNT 200000 NO, IS THIS PSEUDOOPERATION FAP05610
TRA MCER3 **YES FAP05611
STZ MARGS NO, IT IS MACRO, DELETE MACRO NAME FAP05612
ZSD ARGJL RESET ARGUMENT INDEX FAP05613
PIA RECALL SYMBOL DEFINITION FAP05614
PDX ,1 LOAD POINTER TO MACRO SKELETON FAP05615
TXI MAC02+2,1,1 BUMP PAST DEFINITION HEAD FAP05616
REM REENTRY FOR MACRO NAME IN OPFIELD FAP05617
MAC02 LXD OPBIN,1 LOAD POINTER FROM OP TABLE FAP05618
TXI *+1,1,1 BUMP PAST DEFINITION HEAD FAP05619
SXA MDFCT,1 SET FIRST WORD OF MACRO SKELETON FAP05620
ZSD MDFCT SET MACRO DEFINITION CHARACTER COUNT FAP05621
REM TO FIRST CHARACTER IN WORD FAP05622
CAL MOPP2 SET PASS TWO TRANSFER ADDRESS FAP05623
STO OPBIN IN CASE OF EMPTY MACRO *FAP05624
CAL 0,1 LOAD FIRST WORD OF MACRO DEFINITION FAP05625
TNZ *+3 IS MACRO EMPTY FAP05626
TSX PMCS3,4 *YES, PUSH MACRO STATUS UP FAP05627
TRA MAC2A *FAP05628
CLA 1,1 NO, LOAD MACRO ARGUMENT COUNT FAP05629
STD ARGIL SET ARGUMENT COUNT FAP05630
AXT 2$BES01+3,1 SET PASS TWO TRANSFER ADDRESS TO OMIT *FAP05631
TPL MAC03 IS THERE A LOCATION ARGUMENT FAP05632
AXT 2$UNLOP+1,1 YES, RESET PASS 2 TRANSFER ADDRESS TO OMITFAP05633
REM LISTING OCTAL LOCATION FAP05634
CAL BCDBF LOAD LOCATION FIELD FAP05635
TSX LOCFL,4 *ASSEMBLE LOCATION SYMBOL FAP05636
SLW ARGWD HOLD TO END OF ETC CARDS FAP05637
TRA MAC03+1 PREVENT MULTIPLY DEFINED LOCATION FIELDS FAP05638
REM ASSEMBLE ARGUMENTS FAP05639
MAC03 TSX ESYML,4 *DEFINE LOCATION FIELD FAP05640
SXD OPBIN,1 SET PASS TWO TRANSFER ADDRESS FAP05641
TSX SSINS,4 *ASSEMBLE ARGUMENT STRINGS FAP05642
MEPTR AXT **,1 LOAD POINTER TO NEXT ENTRY FAP05643
REM IN MACRO EXPANSION TABLE FAP05644
TRA MAC06 FAP05645
REM REENTRY TO CREATE NEXT SYMBOL FAP05646
MAC04 ZAC CLEAR FLAGS JUST IN CASE WNFAP05647
ZET LNCFG IS THIS MACRON DEFINED WNFAP05648
NZT CRSNO NO, IS NOCRS IN EFFECT WNFAP05649
TRA MAC05 YES, DON'T MAKE A SYMBOL WNFAP05650
CRSCT AXT **,4 YES, LOAD CREATED SYMBOL COUNT FAP05651
TXI *+1,4,1 BUMP TO NEXT SYMBOL FAP05652
SXA CRSCT,4 FAP05653
TXL *+3,4,9999 ARE THERE TOO MANY CREATED SYMBOLS FAP05654
LDI CRSNM YES, LOAD CREATED SYMBOL NAME FAP05655
TRA SRCERR **TERMINATE ASSEMBLY FAP05656
PXA ,4 NO, LOAD SYMBOL FAP05657
TSX BCDCV,4 *CONVERT TO BCD FAP05658
LAS ADTMK IS CREATED SYMBOL GREATER THAN 3 DIGITS FAP05659
TRA *+3 YES FAP05660
NOP NO FAP05661
ORA CRPT1 APPEND . AS SECOND CHARACTER FAP05662
ALS 6 LEFT ADJUST FAP05663
ORA CRPT2 APPEND . AS FIRST CHARACTER FAP05664
SLW 0,1 INSERT CREATED SYMBOL FAP05665
SXA CRSNO,1 SAVE POINTER TO THIS SYMBOL FAP05666
TXI *+1,1,-1 BUMP POINTER TO NEXT ENTRY FAP05667
REM REENTRY FOR CREATED SYMBOLS SUPPRESSED FAP05668
CAL CRSNO LOAD CREATED SYMBOL POINTER,,COUNT FAP05669
MAC05 LXD ARGJL,2 LOAD ARGUMENT TABLE INDEX FAP05670
TXI *+1,2,1 BUMP ARGUMENT TABLE INDEX FAP05671
SXD ARGJL,2 FAP05672
SLW MARGS+1,2 INSERT REFERENCE FAP05673
REM REENTRY AFTER ASSEMBLING STRING FAP05674
MAC06 LXD ARGIL,4 LOAD LENGTH OF ARGUMENT LIST FAP05675
ARGJL TXH MAC04,4,** ARE ANY TERMINAL ARGUMENTS MISSING FAP05676
REM (DECREMENT IS CURRENT ARGUMENT NUMBER) FAP05677
CAL ARGWD NO, LOAD SUBSTITUTABLE LOCATION FIELD FAP05678
TZE MAC07 IS THERE ANY FAP05679
LDQ BLANKS YES, LOAD FOLLOWING BLANKS FAP05680
AXT 1,2 PREPARE TO COUNT CHARACTERS FAP05681
LGR 6 LEFT ADJUST SYMBOL FAP05682
TZE *+2 FAP05683
TXI *-2,2,1 FAP05684
STQ 0,1 INSERT LOCATION ARGUMENT IN MACEXP TABLE FAP05685
PXA ,1 FAP05686
TXI *+1,1,-1 BUMP POINTER TO NEXT ENTRY FAP05687
SLW MARGS+1,4 OVERWRITE PREVIOUS POINTER WORD FAP05688
PXD ,2 RECALL CHARACTER COUNT FAP05689
STD MARGS+1,4 INSERT IN REFERENCE FAP05690
STZ ARGWD DELETE SUBSTITUTABLE LOCATION FIELD FAP05691
REM REENTRY FOR CREATED ARGUMENTS SUPPRESSED FAP05692
MAC07 TXL OVRLP,1,** IS MACRO EXPANSION TABLE FULL FAP05693
SXA MEPTR,1 NO, SAVE POINTER TO NEXT ENTRY FAP05694
TSX PMCL1,4 *BUMP MACRO LEVEL FAP05695
TSX OTPUT,4 *WRITE MACRO CALL CARD FAP05696
STL LNCFG RESET NO LOCAL CREATED SYMBOLS FLAG WNFAP05697
TRA SOURC FAP05698
REM FAP05699
REM OUTPUT REMOTE SEQUENCES FAP05700
RMTSR SXA RMTSX,4 SAVE CALLING LINKAGE FAP05701
TSX SETTP,4 *SET UP REMOTE ROUTING FAP05702
PZE SOURC,,RMTS1 FAP05703
TSX MACERR,4 **ALREADY SET UP FAP05704
CAL BHEAD SAVE CURRENT HEADING CHARACTER FAP05705
STA RMTS2 FAP05706
REM REENTRY AFTER OUTPUTTING REMOTE SEQUENCE FAP05707
RMTS1 LXD RMTEN+1,1 LOAD POINTER TO NEXT SEQUENCE FAP05708
TXL RMTS2,1,0 IS TABLE EXHAUSTED FAP05709
TSX PMCS1,4 *NO, PUSH MACRO STATUS DOWN FAP05710
ZSD ARGIL RESET NUMBER OF ARGUMENTS FAP05711
ZSD MDFCT SET MACRO DEFINITION CHARACTER COUNT FAP05712
REM TO FIRST CHARACTER IN WORD FAP05713
LXD RMTEN+1,1 LOAD POINTER TO NEXT SEQUENCE FAP05714
CAL 0,1 LOAD HEADING FAP05715
STA BHEAD SET REMOTE HEADING CHARACTER FAP05716
STA LITRL SAVE FOR PASS TWO FAP05717
ANA D32767 MOVE POINTER TO NEXT SEQUENCE FAP05718
STD RMTEN+1 TO CURRENT POINTER FAP05719
TNZ *+3 IS THERE ANOTHER SEQUENCE FAP05720
AXC RMTEN+1,4 NO, RESTORE POINTER FOR FIRST SEQUENCE FAP05721
SXD RMTEN,4 FAP05722
TXI *+1,1,1 BUMP COUNT PAST HEADING FAP05723
SXA MDFCT,1 FAP05724
TSX PMCL1,4 *BUMP MACRO LEVEL FAP05725
CAL RMTP2 SET PASS TWO TRANSFER ADDRESS FAP05726
SLW OPBIN FAP05727
TSX OTPT0,4 *WRITE INTERMEDIATE TAPE ONLY FAP05728
TRA SOURC FAP05729
REM REMOTE SEQUENCES EXHAUSTED FAP05730
RMTS2 AXT **,4 RESTORE CURRENT HEADING CHARACTER FAP05731
SXA BHEAD,4 FAP05732
SXA LITRL,4 SAVE FOR PASS TWO FAP05733
CAL RMTP2 SET PASS TWO TRANSFER ADDRESS FAP05734
SLW OPBIN FAP05735
TSX OTPT0,4 *WRITE INTERMEDIATE TAPE ONLY FAP05736
TSX RESTP,4 *RESTORE ASSEMBLER ROUTING FAP05737
PZE SOURC,,RMTS1 FAP05738
RMTSX AXT **,4 RELOAD CALLING LINKAGE FAP05739
TRA 1,4 FAP05740
REM FAP05741
REM ASSEMBLE MACRO NAME FAP05742
SSING AXT -1,1 SET INTERCEPT TO RETURN WITH MACRO NAME FAP05743
SXD SSN18,1 FAP05744
REM REENTRY TO ASSEMBLE STRING FAP05745
SSINS SXA SSINX,4 SAVE CALLING LINKAGE FAP05746
LXD SSNBC,2 LOAD BEGINNING OF STRING CHARACTER COUNT FAP05747
LXA SSNBW,1 LOAD BEGINNING OF STRING WORD COUNT FAP05748
TXI SCANT,2,1 FAP05749
REM FAP05750
REM CHARACTER IS PUNCTUATION FAP05751
SSN01 STA CCHAR SAVE CURRENT CHARACTER FAP05752
TRA *+5,4 FAP05753
TRA SSN08 CHARACTER IS ( FAP05754
PLEVL TXI SSN07,,** CHARACTER IS , FAP05755
REM (RESET TO SSN10 IF WITHIN PARENS) FAP05756
TRA SSN02 PUNCTUATION IS BLANK FAP05757
REM PUNCTUATION IS ) FAP05758
LXD PLEVL,4 LOAD PAREN COUNT FAP05759
TXL MCERP,4,0 **IS ) EXCESSIVE (41)FAP05760
TXI *+1,4,-1 NO, BUMP PAREN COUNT FAP05761
SXD PLEVL,4 FAP05762
TXH SSN10,4,0 IS THIS OUTERMOST ) FAP05763
AXT SSN07,4 YES, REENABLE SCAN FOR , FAP05764
SXA PLEVL,4 FAP05765
TRA SSN11 FAP05766
REM PUNCTUATION IS BLANK FAP05767
SSN02 LXD PLEVL,4 LOAD PAREN LEVEL FAP05768
TXL *+5,4,0 IS BLANK BETWEEN PARENTHESES FAP05769
LXA LCHAR,4 YES, LOAD PRECEDING CHARACTER FAP05770
TXL SSN10,4,42 IS IT $ FAP05771
TXH SSN10,4,43 NO FAP05772
TRA SSN03+3 YES FAP05773
REM BLANK IS NOT WITHIN PARENTHESES FAP05774
LXA LCHAR,4 LOAD PRECEDING CHARACTER FAP05775
TXL SSN04+4,4,42 IS CHARACTER $ FAP05776
TXH SSN04+4,4,43 NO FAP05777
TRA SSN03+3 YES FAP05778
REM REENTRY AFTER INPUT CARD COLUMN 72 FAP05779
SSN03 LXA LCHAR,4 LOAD PRECEDING CHARACTER FAP05780
TXL SSN04,4,42 IS IT $ FAP05781
TXH SSN04,4,43 NO FAP05782
REM REENTRY FOR $BLANK FAP05783
TXH *+3,2,0 DELETE $ FAP05784
TXI *+1,1,1 FAP05785
TXI *+2,2,5 FAP05786
TXI *+1,2,-1 FAP05787
REM REENTRY AFTER CARD COLUMN 72 WITH NO PRECEDING $ FAP05788
SSN04 TSX PEEKS,4 *DOES ETC CARD FOLLOW FAP05789
TRA SSN05 YES FAP05790
LXD PLEVL,4 NO, LOAD PAREN LEVEL FAP05791
TXH MCERP,4,0 **ARE PARENTHESES UNBALANCED (41)FAP05792
REM REENTRY FOR BLANK NOT WITHIN PARENTHESES FAP05793
AXT -1,4 NO FAP05794
SXD SSN18,4 SET SWITCH TO RETURN WITH STRING FAP05795
SXD SSN12,4 SET SWITCH TO SUPPRESS NULL STRING STUFF FAP05796
TRA SSN11 FAP05797
REM REENTRY FOR ETC CARD TO FOLLOW FAP05798
SSN05 PXD ,2 LOAD INPUT CARD CHAR COUNT (CLEAR AC) FAP05799
TXL SSN06,2,0 IS INPUT WORD EXHAUSTED FAP05800
LDQ 0,1 NO, LOAD INPUT WORD FAP05801
PDX ,4 LOAD CHARACTER COUNT FAP05802
TNX SSN06+2,4,1 LEFT ADJUST PRECEDING CHARACTER FAP05803
RQL 6 FAP05804
TRA *-2 FAP05805
SSN06 LDQ -1,1 LOAD NEXT INPUT WORD FAP05806
RQL 30 LEFT ADJUST PRECEDING CHARACTER FAP05807
LGL 6 LOAD PRECEDING CHARACTER FAP05808
STA CCHAR FAP05809
AXT -1,4 FAP05810
SXD SSN17,4 SET SWITCH TO AVOID BUMPING ARGUMENT COUNTFAP05811
TRA SSN11 FAP05812
REM PUNCTUATION IS , FAP05813
SSN07 LXA LCHAR,4 LOAD PRECEDING CHARACTER FAP05814
TXH SSN11,4,28 IS PRECEDING CHARACTER ) FAP05815
TXL SSN11,4,27 NO FAP05816
TRA SSN09 YES, , NOT CONSIDERED PUNCTUATION FAP05817
REM PUNCTUATION IS ( FAP05818
SSN08 LXD PLEVL,4 BUMP PAREN COUNT FAP05819
TXI *+1,4,1 FAP05820
SXD PLEVL,4 FAP05821
TXH SSN10,4,1 IS THIS FIRST ( FAP05822
AXT SSN10,4 YES, DISABLE SCAN FOR , FAP05823
SXA PLEVL,4 FAP05824
LCHAR AXT **,4 LOAD PRECEDING CHARACTER FAP05825
TXH SSN11,4,59 IS IT , FAP05826
TXH SSN09,4,58 YES FAP05827
TXH SSN11,4,28 NO, IS IT ( FAP05828
TXL SSN11,4,27 NO FAP05829
REM REENTRY FOR ), OR ,( FAP05830
SSN09 SXD SSNBC,2 RESET BEGINNING OF STRING FAP05831
SXA SSNBW,1 TO COUNT OF PUNCTUATION CHARACTER FAP05832
CAL CCHAR RELOAD CURRENT CHARACTER FAP05833
REM CHARACTER IS NOT PUNCTUATION, OR PUNCTUATION NOT BREAK FAP05834
SSN10 STA LCHAR SAVE LAST CHARACTER FAP05835
TXI SCANU+1,2,1 FAP05836
REM FAP05837
REM PUNCTUATION IS BREAK CHARACTER FAP05838
SSN11 SXA SSNEC,2 SAVE POSITION OF PUNCTUATION FAP05839
SXD SSNEW,1 AT END OF STRING FAP05840
SSNBW AXT **,1 LOAD COUNT OF WORD INCLUDING PUNCTUATION FAP05841
REM AT BEGINNING OF STRING FAP05842
SSNEW TXL *+3,1,** IS THIS WORD AT END OF STRING FAP05843
TXI *+1,2,6 NO, BUMP CHARACTER COUNT BY ONE WORD FAP05844
TXI *-2,1,-1 BUMP WORD COUNT BY ONE WORD FAP05845
SSNBC TIX *+2,2,** REDUCE STRING LENGTH BY CHARACTER COUNT FAP05846
REM OF PUNCTUATION AT BEGINNING OF STRING FAP05847
TRA *+2 IT WAS -1, OMIT NEXT STEP (42)FAP05848
TXI *+1,2,-1 DELETE PUNCTUATION CHARACTER FROM COUNT FAP05849
SXD COUNT,2 SAVE LENGTH OF STRING (41)FAP05850
SSN13 TXL SSN14,1,** IS THIS FIRST ON ETC CARD (41)FAP05851
SSN12 TXH *+2,1,** NO, IS THIS FINAL STRING (41)FAP05852
TXL SSN22,2,0 YES, IS IT NULL (41)FAP05853
LXA MEPTR,1 NO, LOAD POINTER TO MACRO EXPANSION TABLE FAP05854
AXT -1,2 SET DIRECTION OF STUFF FORWARD FAP05855
LXD MAC07,4 LOAD LOWER END OF MACRO DEFINITION TABLE FAP05856
CAL * LOAD CALLING LINKAGE FAP05857
TRA STUFY *INITIALIZE ROUTINE TO STUFF MACEXP FAP05858
SSN14 ZSD SSN13 RESET ETC SWITCH FAP05859
LXD SSNBC,2 RELOAD COUNTS OF BEGINNING OF STRING FAP05860
LXA SSNBW,1 FAP05861
TXI *+1,2,1 NUMBER OF LEADING CHARACTERS (42)FAP05862
TXL *+3,2,5 IN FIRST WORD, IS IT SIX (42)FAP05863
TXI *+1,1,-1 YES, BUMP TO NEXT WORD (42)FAP05864
TXI *+1,2,-6 AND ADJUST CHARACTER COUNT (42)FAP05865
LXD COUNT,4 LOAD LENGTH OF STRING FAP05866
CAL * LOAD CALLING LINKAGE FAP05867
TRA STUFF *ADD STRING TO EXPANSION FAP05868
TRA OVRLP **EXPANSION TABLE FULL FAP05869
ZET ETCMD WILL AN ETC CARD FOLLOW FAP05870
TRA SSN16 YES FAP05871
AXT 1,7 NO, PREPARE TO STUFF ONE CHARACTER FAP05872
CAL * LOAD CALLING LINKAGE FAP05873
RELD06 SYN * TSFAP05874
TXI STUFF,1,0 -BLANKS-1 *STUFF TERMINATING BLANK TSFAP05875
TRA OVRLP **EXPANSION TABLE FULL FAP05876
SSN16 LDQ MEPTR LOAD POINTER TO THIS ARGUMENT FAP05877
SXA MEPTR,2 SET POINTER TO NEXT ARGUMENT FAP05878
LXD ARGJL,4 LOAD ARGUMENT LIST COUNT FAP05879
CLA MARGS,4 LOAD REFERENCE TO THIS ARGUMENT FAP05880
PAX ,2 LOAD POINTER TO THIS ARGUMENT FAP05881
ADD COUNT BUMP BY LENGTH OF STRING FAP05882
STD MARGS,4 SET REFERENCE TO NEXT ARGUMENT FAP05883
TXH *+3,2,0 IS THIS REMAINDER OF ARGUMENT FAP05884
REM ON FOLLOWING ETC CARD FAP05885
XCL NO, RECALL POINTER TO THIS ARGUMENT FAP05886
STA MARGS,4 SET POINTER TO THIS ARGUMENT FAP05887
CCHAR AXT **,1 SET BREAK PUNCTUATION FAP05888
SXA LCHAR,1 AS NEW PRECEDING CHARACTER FAP05889
SSNEC AXT **,2 SET BEGINNING OF NEXT STRING FAP05890
LXD SSNEW,1 TO PUNCTUATION AT END OF LAST STRING FAP05891
SXD SSNBC,2 FAP05892
SXA SSNBW,1 FAP05893
SSN17 TXL SSN18+2,1,** IS THIS PARTIAL ARGUMENT OR IRP FAP05894
TXI *+1,4,1 NO, BUMP ARGUMENT COUNT FAP05895
TXH SSN18,4,63 DID ARGUMENT TABLE OVERFLOW FAP05896
SXD ARGJL,4 NO, SET ARGUMENT COUNT FAP05897
STZ MARGS,4 CLEAR REFERENCE FAP05898
REM REENTRY FOR TRUNCATED ARGUMENT LIST FAP05899
SSN18 TXL SSN22,1,** IS IMMEDIATE RETURN REQUESTED FAP05900
TXI SCANT,2,1 NO, ASSEMBLE NEXT STRING FAP05901
REM FAP05902
REM END OF CARD FAP05903
ZSD SSN18 RESET IMMEDIATE RETURN SWITCH FAP05904
ZSD SSN17 RESET END OF CARD SWITCH FAP05905
NZT ETCMD WILL AN ETC CARD FOLLOW FAP05906
TRA SSN22+2 NO FAP05907
LXA CLEVL,1 YES, LOAD MACRO LEVEL FAP05908
TXL SSN21,1,0 IS THIS FIRST LEVEL MACRO FAP05909
LXA MEPTR,1 NO, PREPARE TO PUSH TO MACRO EXP TABLE FAP05910
LXA MCIND,4 PUSH DOWN INDIRECT ADDRESS FLAG FAP05911
SXA SSLOC,4 FAP05912
CLA P7 PREPARE TO PUSH FAP05913
TSX PUPOP,4 *PUSH DOWN INCOMPLETE ARGUMENT INDEX FAP05914
LXD SSLOC,1 LOAD LOCATION OF PREVIOUS STATUS FAP05915
CAL P7 PREPARE TO POP FAP05916
TSX PUPOP,4 *POP UP PREVIOUS COMPILER STATUS FAP05917
REM TO GENERATE ETC CARD FAP05918
CAL SSLOC RESTORE INDIRECT ADDRESS FLAG FAP05919
STA MCIND FAP05920
SSN21 LXD STUFI,4 SAVE STUFF STATUS FAP05921
SXA SSN32,4 FAP05922
LXD STUM2,4 FAP05923
SXA SSN32+2,4 FAP05924
NOP *FAP05925
TSX SETTP,4 *SET UP MACRO ROUTING FAP05926
PZE ROUTE,,SSN30 FAP05927
TSX MACERR,4 **ALREADY SET UP FAP05928
TRA READ1 FAP05929
REM REENTRY TO RETURN WITH STRING, OR AFTER FINAL NULL STRINGFAP05930
SSN22 ZSD SSN18 RESET IMMEDIATE RETURN SWITCH FAP05931
ZSD SSN17 RESET PARTIAL ARGUMENT SWITCH FAP05932
REM REENTRY AFTER END OF CARD, NO ETC CARD TO BE GENERATED FAP05933
ZSD SSN12 RESET FINAL STRING SWITCH (41)FAP05934
SSINX AXT **,4 RELOAD CALLING LINKAGE FAP05935
TRA 1,4 FAP05936
REM FAP05937
REM REENTRY FOR ARGUMENT LIST ETC CARD FAP05938
SSN30 TSX RESTP,4 *RESET ASSEMBLER ROUTING FAP05939
PZE ROUTE,,SSN30 FAP05940
SLT EXPRR WAS OP FIELD IN ERROR FAP05941
TRA *+2 NO FAP05942
TSX MACERR,4 **YES, BUT IT MUST BE ETC FAP05943
STZ ETCMD RESET ETC FLAG FAP05944
CAL MOPP2 SET PASS TWO TRANSFER FAP05945
SSN31 TRA SSN33 *TO PRINT CARD, PROVISIONALLY (41)FAP05946
LXA CLEVL,1 LOAD MACRO LEVEL FAP05947
TXL SSN32,1,0 IS THIS FIRST LEVEL MACRO FAP05948
LXA MEPTR,1 LOAD POINTER TO MACRO EXPANSION TABLE FAP05949
CAL 2,1 GET LOCATION OF OUTER SCAN STATUS FAP05950
PDX ,2 FAP05951
CAL MDFCT INSERT MACRODEFINITION WORD,,CHAR COUNT FAP05952
SLW 0,2 SO THAT IT MAY BE POPPED BACK FAP05953
CAL P7 PREPARE TO POP FAP05954
TSX PUPOP,4 *POP UP INCOMPLETE ARGUMENT INDEX FAP05955
CAL SSLOC RESTORE INDIRECT ADDRESS FLAG FAP05956
STA MCIND FAP05957
SSN32 AXT **,4 RESTORE STUFF COUNTS FAP05958
SXD STUFI,4 FAP05959
AXT **,4 FAP05960
SXD STF01,4 FAP05961
SXD STUM2,4 FAP05962
LXD MAC07,4 RESTORE STUFF OVERFLOW TESTS FAP05963
SXD STF03+1,4 FAP05964
SXD STF08+2,4 FAP05965
AXT -1,4 RESTORE DIRECTION OF STUFF FAP05966
SXD STF08+1,4 FAP05967
SXD STF10+2,4 FAP05968
SXD SSN13,4 SET ETC SWITCH FAP05969
TSX SCANS,4 *INITIALIZE CHARACTER SCAN ROUTINE FAP05970
TXL SSN10,,MCTBL+4 SINGLE CHARACTER RETURN,,PUNCTUATION TABLEFAP05971
TXL SSN01,,4 PUNCTUATION RETURN,,LENGTH OF TABLE FAP05972
RELD07 SYN * TSFAP05973
TXL SSN03,1,0 -BCDBF-12 OVERFLOW TEST TSFAP05974
LAC VRFLD,2 COMPUTE CHARACTER COUNT FAP05975
TXI *+1,2,6 FAP05976
LXD VRFLD,1 COMPUTE WORD COUNT FAP05977
RELD08 SYN * TSFAP05978
TXI *+1,1,0 -BCDBF TSFAP05979
SXD SSNBC,2 SET COUNTS OF BEGINNING OF STRING FAP05980
SXA SSNBW,1 FAP05981
TXI SCANT,2,1 FAP05982
REM FAP05983
REM COMPILE MACRO EXPANSION FAP05984
CMPIL AXC BCDBF,5 PREPARE TO STUFF INTO CARD IMAGE BUFFER FAP05985
AXT -1,2 SET SWITCH TO STUFF FORWARD FAP05986
SXD CMP11,2 PRESET END OF MACRO EXPANSION SWITCH FAP05987
SXD PKMSW,2 SET LOOKAHEAD SWITCH FOR ETC CARD FAP05988
CAL * LOAD CALLING LINKAGE FAP05989
TXI STUFY,4,-12 *INITIALIZE STUFF ROUTINE FAP05990
CMP01 TXH CMP04,2,** IS AN ETC CARD TO BE CREATED FAP05991
ZSD CMP01 YES, RESET SWITCH FAP05992
ZSD CMP11 RESET END OF MACRO EXPANSION SWITCH FAP05993
CMPVF AXT 15,4 LOAD NUMBER OF CHARACTERS TO BE STUFFED FAP05994
REM (RESET TO 11 FOR 704 MODE) FAP05995
AXT 0,3 PREPARE TO STUFF FROM FIRST CHARACTER FAP05996
CAL * LOAD CALLING LINKAGE FAP05997
RELD09 SYN * TSFAP05998
TXI STUFF,1,0 -ETCCD *STUFF ETC OPCODE TSFAP05999
TSX MACERR,4 **IMPOSSIBLE RETURN FAP06000
CMP02 AXT **,4 RESTORE DIRECTION OF STUFF FAP06001
SXD STF06+1,4 FAP06002
AXT **,4 RELOAD NUMBER OF REMAINING CHARACTERS FAP06003
AXT **,2 RELOAD CARD IMAGE CHARACTER COUNT FAP06004
AXT **,1 RELOAD CARD IMAGE WORD COUNT FAP06005
CAL * LOAD CALLING LINKAGE FAP06006
TRA STUFF *STUFF REMAINDER OF FIELD FAP06007
TRA CMP20 CARD IMAGE FULL FAP06008
REM REENTRY IF NO ETC CARD IS TO BE CREATED FAP06009
CMP04 ZSD PKMSW+1 RESET ETC SWITCH FAP06010
AXT 1,4 PREPARE TO STUFF FROM BACKWARD DATA FAP06011
SXD STF06+1,4 FAP06012
TSX SCANS,4 *INITIALIZE CHARACTER SCAN ROUTINE FAP06013
TXL CMP05,,MDTBL+4 SINGLE CHARACTER RETURN,,PUNCTUATION TABLEFAP06014
TXL CMP10,,4 PUNCTUATION RETURN,,LENGTH OF TABLE FAP06015
TXH ,1,-1 NULLIFY OVERFLOW TEST FAP06016
ZSD CMPFC RESET FIELD LENGTH FAP06017
ZSD CMPCT RESET COUNT OF COLUMNS STUFFED FAP06018
TRA CMP16 FAP06019
REM FAP06020
REM CHARACTER IS NOT PUNCTUATION, IT IS FIELD LENGTH+1 FAP06021
CMP05 SXA MDFCT,1 SAVE MACRO DEFINITION WORD COUNT FAP06022
PAX ,4 LOAD FIELD LENGTH+1 FAP06023
TXI *+1,4,-1 BUMP TO FIELD LENGTH FAP06024
SXD CMPFC,4 SET FIELD LENGTH FAP06025
TXI *+1,2,1 BUMP CHARACTER COUNT PAST FIELD LENGTH FAP06026
PXD ,2 COMPUTE END OF FIELD IN SKELETON FAP06027
ACL CMPFC FAP06028
STD MDFCT SAVE MACRO DEFINITION CHARACTER COUNT FAP06029
PXD ,4 FAP06030
ADD CMPCT BUMP COUNT OF COLUMNS STUFFED FAP06031
STD CMPCT FAP06032
TXL *+3,2,5 IS WORD EXHAUSTED FAP06033
TXI *+1,1,1 YES, BUMP COUNT TO NEXT WORD FAP06034
TXI *-2,2,-6 RESET CHARACTER COUNT FAP06035
CAL * LOAD CALLING LINKAGE FAP06036
TRA STUFF *STUFF VARIABLE INTO CARD IMAGE FAP06037
TRA CMP20 CARD IMAGE FULL FAP06038
TRA CMP16 FAP06039
REM FAP06040
REM CHARACTER IS PUNCTUATION FAP06041
CMP10 TXI *+1,2,1 DELETE PUNCTUATION CHARACTER FAP06042
SXD MDFCT,2 SAVE MACRO DEFINITION CHARACTER COUNT FAP06043
SXA MDFCT,1 SAVE MACRO DEFINITION WORD COUNT FAP06044
TRA *+5,4 FAP06045
TRA CMP15 PUNCTUATION IS ARGUMENT MARK FAP06046
TRA CMP13 PUNCTUATION IS VARIABLE FIELD MARK FAP06047
TRA CMP12 PUNCTUATION IS OPCODE MARK FAP06048
REM END OF RECORD FAP06049
AXC BLANKS+1,1 PREPARE TO STUFF FROM BLANK WORDS FAP06050
AXT 0,6 PREPARE TO STUFF FROM FIRST CHARACTER FAP06051
CAL * LOAD CALLING LINKAGE FAP06052
TXI STUFF,4,6 *STUFF TWO WORDS OF BLANKS FAP06053
NOP FAP06054
CMP11 TXH CMP21,2,** IS THIS DOUBLE END OF RECORD MARK FAP06055
REM (END OF MACRO EXPANSION) FAP06056
TSX PMCL2,4 *YES, PUSH UP MACRO LEVEL FAP06057
TXH *+2,1,0 TSFAP06058
ZSD PKMSW YES, RESET LOOKAHEAD SWITCH FAP06059
TRA SOURC FAP06060
REM PUNCTUATION IS 01, OPCODE FOLLOWS FAP06061
CMP12 ZSD CMP11 RESET END OF MACRO EXPANSION SWITCH FAP06062
AXT 7,4 COMPUTE LENGTH OF LOCATION FIELD FAP06063
CMPFC TNX CMP16,4,** IS COLUMN 7 FULL FAP06064
TRA CMP14 NO FAP06065
REM PUNCTUATION IS 76, VARIABLE FIELD FOLLOWS FAP06066
CMP13 ZSA IRP01 RESET ARGUMENT NUMBER FAP06067
REM DETERMINE NUMBER OF BLANKS TO STUFF (42)FAP06068
TXL *+2,2,5 IS DEFINITION WORD EXHAUSTED (42)FAP06069
LDQ -1,1 YES, LOAD NEXT ONE (42)FAP06070
TXI *+1,2,1 BUMP SKELETON CHARACTER COUNT (42)FAP06071
SXD MDFCT,2 PAST COUNT OF CHARACTERS (42)FAP06072
ZAC WHICH SHOULD PRECEDE VARIABLE FIELD (42)FAP06073
LGL 6 ROLL UP SAID COUNT (42)FAP06074
PAX ,4 (42)FAP06075
AXT ,0 MARK TIME (42)FAP06076
CMPCT TIX *+2,4,** REDUCE BY COUNT OF CHARACTERS STUFFED FAP06077
AXT 1,4 PREPARE TO STUFF ONE BLANK IF TOO MANY FAP06078
REM REENTRY TO STUFF BLANKS FOLLOWING LOCATION FIELD FAP06079
CMP14 PXD ,4 SET NUMBER OF BLANKS TO STUFF FAP06080
ADD CMPCT BUMP COUNT OF COLUMNS STUFFED FAP06081
STD CMPCT FAP06082
AXC BLANKS+1,1 PREPARE TO STUFF FROM BLANKS FAP06083
AXT 0,2 STARTING WITH FIRST CHARACTER FAP06084
CAL * LOAD CALLING LINKAGE FAP06085
TRA STUFF *FILL OUT OPFIELD WITH BLANKS FAP06086
TRA CMP20 CARD IMAGE FULL FAP06087
TRA CMP16 FAP06088
REM PUNCTUATION IS 77, ARGUMENT FOLLOWS FAP06089
CMP15 TXL *+2,2,5 IS WORD EXHAUSTED FAP06090
LDQ -1,1 YES, LOAD NEXT WORD FAP06091
TXI *+1,2,1 BUMP CHARACTER COUNT PAST ARGUMENT NUMBER FAP06092
SXD MDFCT,2 SAVE MACRO DEFINITION CHARACTER COUNT FAP06093
ZAC FAP06094
LGL 6 LOAD ARGUMENT NUMBER FAP06095
TNZ *+4 IS FOLLOWING CARD PROGRAMMERS ETC FAP06096
AXT -1,4 YES, SET ETC SWITCH FAP06097
SXD PKMSW+1,4 FAP06098
TRA SCANT FAP06099
STA IRP01 INITIALIZE IRP ARGUMENT NUMBER FAP06100
PAX ,1 FAP06101
CAL MARGS+1,1 LOAD ARGUMENT REFERENCE FAP06102
PAX ,1 LOAD ARGUMENT LOCATION FAP06103
PDX ,4 LOAD ARGUMENT LENGTH FAP06104
STD CMPFC SET FIELD LENGTH FAP06105
ADD CMPCT BUMP COUNT OF COLUMNS STUFFED FAP06106
STD CMPCT FAP06107
AXT -1,2 PREPARE TO STUFF FROM FORWARD DATA FAP06108
SXD STF06+1,2 FAP06109
AXT 0,2 PREPARE TO STUFF FROM FIRST CHARACTER FAP06110
CAL * LOAD CALLING LINKAGE FAP06111
TRA STUFF *STUFF ARGUMENT INTO CARD IMAGE FAP06112
TRA CMP20 CARD IMAGE FULL FAP06113
AXT 1,2 PREPARE TO STUFF FROM BACKWARD DATA FAP06114
SXD STF06+1,2 FAP06115
REM REENTRY TO CONTINUE SCAN FAP06116
CMP16 LXD MDFCT,2 LOAD MACRO DEFINITION CHARACTER COUNT FAP06117
LXA MDFCT,1 LOAD MACRO DEFINITION WORD COUNT FAP06118
TRA SCANT FAP06119
REM GENERATED CARD IMAGE IS FULL FAP06120
CMP20 LXD STF06+1,2 SAVE DIRECTION OF STUFF FAP06121
SXA CMP02,2 FAP06122
AXT -1,2 SET SWITCH TO CREATE ETC CARD FAP06123
SXD CMP01,2 FAP06124
SXD PKMSW+1,2 FAP06125
SXA CMP02+2,4 SAVE COUNT OF REMAINING CHARACTERS FAP06126
LXA STF07,4 LOAD CHARACTER BIT COUNT FAP06127
TXI *+1,4,6 FAP06128
TXI *+1,2,1 FAP06129
TIX *-1,4,6 DIVIDE BY 6 FAP06130
SXA CMP02+3,2 SAVE CARD IMAGE CHARACTER COUNT FAP06131
SXA CMP02+4,1 SAVE CARD IMAGE WORD COUNT FAP06132
REM REENTRY TO FINISH CARD FAP06133
CMP21 AXT -1,4 PREPARE TO STUFF FROM FORWARD DATA FAP06134
SXD STF06+1,4 FAP06135
CMP22 TXL IRP02,4,** IS THIS CARD IN RANGE OF IRP FAP06136
CAL BLANKS NO, FILL OUT GENERATED CARD IMAGE FAP06137
LXD STUFI,1 FAP06138
RELD10 SYN * TSFAP06139
TXL *+3,1,0 -BCDBF-12 TSFAP06140
SLW 0,1 FAP06141
TXI *-2,1,-1 FAP06142
CAL Q32 SET MACRO GENERATED CARD FLAG FAP06143
SLW P1FLG FOR PASS 2 LISTING PURPOSES FAP06144
LXA CLEVL,4 LOAD MACRO LEVEL FAP06145
PXA ,4 FAP06146
ALS 8 SHIFT INTO BIT POSITIONS 21 THRU 27 FAP06147
ORS P1FLG HOLD FOR PASS TWO FAP06148
TRA CNTRL FAP06149
EJECT FAP06150
REM ROUTINES PECULIAR TO MACROS FAP06151
REM NOCRS, ORGCRS, PMC, SET FAP06152
REM FAP06153
CRSOP AXT 5,4 SET CREATED SYMBOL COUNT FAP06154
SXD CRSNO,4 FAP06155
TSX SSCAN,4 *ASSEMBLE PROGRAMMER'S SYMBOL FAP06156
TXI CRS01,,0 NULL SYMBOL FAP06157
SLT EXPRR IS SYMBOL IN ERROR FAP06158
ZET SYMB2 NO, IS SYMBOL TOO LONG FAP06159
TRA FIELD **YES FAP06160
SLT EXPND NO, DID SYMBOL END WITH OPERATION FAP06161
TRA FIELD **YES FAP06162
CAL SYMBL NO, LOAD SYMBOL FAP06163
ANA D63 MASK IN THIRD CHARACTER FAP06164
SLW CRPT1 PROGRAMMER MAY VARY THIRD CHARACTER FAP06165
CAL SYMBL RELOAD SYMBOL FAP06166
ANA ADTMK MASK IN THREE DIGITS FAP06167
XCL FAP06168
TSX DECSV+1,4 *CONVERT TO BINARY FAP06169
STA CRSCT RESET ORIGIN FAP06170
STA LITRL SAVE FOR PASS TWO FAP06171
SLT FLDND WAS THIS END OF VARIABLE FIELD FAP06172
TRA FIELD **NO FAP06173
CRS01 TRA READ1 YES FAP06174
REM FAP06175
NOCOP STZ CRSNO RESET CREATED SYMBOL COUNT FAP06176
TRA READ1 FAP06177
REM FAP06178
SETBP STL BOLMD EVALUATE 'SETB' DEFINITION DAFAP06179
TSX SCANF,4 EVALUATE THE VARIABLE FIELD DAFAP06180
TXI AFLAG,,0 NULL DEFINITION DAFAP06181
ZET RBITS IS EXPRESSION ABSLOUTE.Q. DAFAP06182
TRA FIELD NO, ERROR DAFAP06183
PAI PUT VALUE IN SI, DAFAP06184
TRA SETOP+3 AND JOIN CODE FOR 'SET' DAFAP06185
REM FAP06186
SETOP TSX SCANP,4 *EVALUATE SET DEFINITION FAP06187
TXI AFLAG,,0 NULL DEFINITION FAP06188
OAI COMBINE BITS WITH DEFINITION FAP06189
SIL 20 AND SET FLAG FAP06190
STI ADDRS DEFINE SYMBOL FAP06191
STI LITRL SAVE FOR PASS TWO FAP06192
CAL BCDBF LOAD LOCATION FIELD FAP06193
TSX LOCFL,4 *ASSEMBLE LOCATION SYMBOL FAP06194
TZE FIELD **IS THERE A LOCATION SYMBOL FAP06195
XCL YES, ISOLATE FIRST CHARACTER FAP06196
LGL 6 FAP06197
TNZ *+2 IS SYMBOL SHORTER THAN 6 CHARACTERS FAP06198
CAL BHEAD YES, APPEND HEADING CHARACTER FAP06199
LGR 6 FAP06200
STQ SYMBL HOLD FOR SYMBOL TABLE SEARCH FAP06201
ZSA SET01 RESET LOCATION OF SYMBOL TO BE REDEFINED FAP06202
TSX SSYMT,4 *FIND SYMBOL IN SYMBOL TABLE FAP06203
SET01 AXT **,4 LOAD LOCATION OF SYMBOL FAP06204
TXH *+3,4,0 IS SYMBOL ALREADY IN TABLE FAP06205
TSX ESYML,4 *NO, DEFINE IT FAP06206
TRA SET02 FAP06207
CAL ADDRS YES, LOAD NEW DEFINITION FAP06208
LDI* SRCH2 HOLD OLD DEFINITION FAP06209
SLW* SRCH2 REDEFINE SYMBOL FAP06210
SLT EXPRR WAS SYMBOL IN TRANSFER VECTOR FAP06211
LNT 20 NO, WAS OLD DEFINITION SET FAP06212
TRA FIELD **NO FAP06213
SET02 TRA READ1 FAP06214
EJECT FAP06215
REM MACRO PROCESSOR SUBROUTINES FAP06216
REM FAP06217
REM SUBROUTINES TO PRINT MACRO ERROR MESSAGES FAP06218
REM FAP06219
REM UNMATCHED PARENTHESES FAP06220
MCER1 ZSD SSN13 RESET SWITCH TO AVOID INITIALIZATION FAP06221
REM IN CASE THIS IS FIRST ARGUMENT ON ETC CARDFAP06222
STZ PARNC RESET PARENTHESES COUNT FAP06223
CAL PARFL LOAD UNMATCHED PAREN FLAG FAP06224
REM ENTRY FOR OTHER MACRO ERROR (41)FAP06225
MCERR SLW LITRL SAVE FLAG FOR PASS TWO (41)FAP06226
SXA MCERX,4 (41)FAP06227
AXT 2$MCERR,4 SET PASS TWO TRANSFER (41)FAP06228
SXD OPBIN,4 ADDRESS TO PRINT FLAG (41)FAP06229
MCERX AXT **,4 AND CARD IN ERROR (41)FAP06230
TRA 1,4 (41)FAP06231
PCCP2 MZE ,,2$TTL03+1 (41)FAP06232
REM FAP06233
REM MACRO DEFINITION OR COMPILE TABLE FULL FAP06234
OVRLP LDI MDFNM LOAD MACRO DEFINITION NAME FAP06235
TRA SRCERR **TERMINATE ASSEMBLY FAP06236
REM MACRO LEVEL TABLE FULL FAP06237
LKTOV LDI LVLNM LOAD LEVEL TABLE NAME FAP06238
TRA SRCERR **TERMINATE ASSEMBLY FAP06239
REM FAP06240
REM PUSH MACRO LEVEL DOWN FAP06241
PMCL1 SXA PMC1X,4 SAVE CALLING LINKAGE FAP06242
LXA CLEVL,1 LOAD MACRO LEVEL FAP06243
TSX SETTP,4 *SET UP MACRO COMPILER ROUTING FAP06244
PZE SOURC,,CMPIL FAP06245
TXI PMC11,1,1 BUMP MACRO LEVEL IF NO INTERRUPTION FAP06246
LXD PMC21,4 HOLD OLD INTERRUPT LEVEL FAP06247
SXA MACNO,4 FAP06248
SXD PMC21,1 SET NEW INTERRUPT LEVEL FAP06249
TSX PDOWN,4 *PUSH DOWN MACRO LEVEL FAP06250
PZE MACNO FAP06251
TXI *+1,1,1 BUMP MACRO LEVEL FAP06252
PMC11 SXA CLEVL,1 RESET MACRO LEVEL FAP06253
PMC1X AXT **,4 RELOAD CALLING LINKAGE FAP06254
TRA 1,4 FAP06255
REM FAP06256
REM PUSH MACRO LEVEL UP FAP06257
PMCL2 SXA PMC2X,4 SAVE CALLING LINKAGE FAP06258
CLEVL AXT **,1 LOAD MACRO LEVEL FAP06259
TXL PMC21,1,0 IS THIS FIRST LEVEL MACRO FAP06260
TXI *+1,1,-1 BUMP MACRO LEVEL FAP06261
SXA CLEVL,1 FAP06262
PMC21 TXH PMC23,1,** WAS MACRO EXPANSION INTERRUPTED FAP06263
TSX RESTP,4 *NO, RESTORE OLD SWITCH FAP06264
PZE SOURC,,CMPIL FAP06265
TSX PUPUP,4 *PUSH UP MACRO LEVEL FAP06266
PZE MACNO FAP06267
LXA MACNO,1 RESET INTERRUPTION TEST FAP06268
SXD PMC21,1 TO CURRENT MACRO LEVEL FAP06269
PMC23 ZSD CMP22 RESET IRP INTERCEPT PENDING POP OF STATUS FAP06270
TSX PMCS3,4 *BUMP MACRO STATUS UP FAP06271
AXT -1,4 RESET DIRECTION OF STUFF FAP06272
SXD STF06+1,4 FAP06273
PMC2X AXT **,4 RELOAD CALLING LINKAGE FAP06274
TRA 1,4 FAP06275
REM FAP06276
REM PUSH MACRO STATUS DOWN FAP06277
PMCS1 SXA PMCSX,4 SAVE CALLING LINKAGE FAP06278
LXA CLEVL,1 LOAD MACRO LEVEL FAP06279
TXL PMCS2,1,0 IS THIS FIRST LEVEL MACRO FAP06280
CAL MCIND NO, PUSH DOWN INDIRECT ADDRESS FLAG FAP06281
STA SSLOC FAP06282
CLA P7 PREPARE TO PUSH FAP06283
LXA MEPTR,1 TO MACRO EXPANSION TABLE FAP06284
TSX PUPOP,4 *PUSH DOWN OUTER MACRO STATUS FAP06285
ZSD CMP22 RESET IRP INTERCEPT FAP06286
LXA MEPTR,4 LOAD POINTER TO THIS PUSH FAP06287
SXD SSLOC,4 SAVE IN CASE OF ANOTHER PUSH FAP06288
TRA PMCS2+1 FAP06289
REM MACRO IS FIRST LEVEL FAP06290
PMCS2 TRA PMC2P *FAP06291
SXA MEPTR,1 SET POINTER TO NEXT ENTRY IN TABLE FAP06292
PMCSX AXT **,4 RELOAD CALLING LINKAGE FAP06293
TRA 1,4 FAP06294
REM FAP06295
REM PUSH MACRO STATUS UP FAP06296
PMCS3 SXA PMC3X,4 SAVE CALLING LINKAGE FAP06297
LXA CLEVL,1 LOAD MACRO LEVEL FAP06298
TXL PMC3P,1,0 IS THIS FIRST LEVEL MACRO *FAP06299
CAL P7 NO PREPARE TO POP FAP06300
LXD SSLOC,1 FROM MACRO EXPANSION TABLE FAP06301
SXA MEPTR,1 RESET POINTER TO OVERWRITE OLD PUSH FAP06302
TSX PUPOP,4 *PUSH UP OUTER MACRO FAP06303
CAL SSLOC RESTORE INDIRECT ADDRESS FLAG FAP06304
STA MCIND FAP06305
PMC3X AXT **,4 RELOAD CALLING LINKAGE FAP06306
TRA 1,4 FAP06307
REM FAP06308
REM SET UP ROUTING FOR MACRO PROCESSOR FAP06309
SETTP SXA SETPX,4 SAVE CALLING LINKAGE FAP06310
CAL* 1,4 LOAD OLD SWITCH FAP06311
STA ORDRF SAVE TRANSFER ADDRESS FOR COMPARE FAP06312
XCL HOLD SWITCH FAP06313
CAL 1,4 LOAD SWITCH ADDRESS,,TRANSFER ADDRESS FAP06314
ARS 18 RIGHT ADJUST TRANSFER ADDRESS FAP06315
LAS ORDRF IS SWITCH ALREADY INITIALIZED FAP06316
TRA *+2 NO FAP06317
TRA 2,4 YES FAP06318
STA* 1,4 RESET SWITCH FAP06319
CLA LKTBP LOAD POINTER TO NEXT SWITCH FAP06320
TNZ *+2 WAS TABLE ENTRY MADE FAP06321
TSX MACERR,4 **NO FAP06322
STD* 1,4 YES, SAVE POINTER TO HIGHER LEVEL SWITCH FAP06323
PDC ,4 COMPUTE LOCATION OF NEXT TABLE ENTRY FAP06324
CAL 0,4 LOAD POINTER TO NEXT LINK FAP06325
STQ 0,4 SAVE OLD SWITCH FAP06326
TZE LKTOV **IS TABLE EXHAUSTED FAP06327
STD LKTBP NO, RESET POINTER TO FOLLOWING LINK FAP06328
SETPX AXT **,4 RELOAD CALLING LINKAGE FAP06329
TRA 3,4 FAP06330
REM FAP06331
REM RESTORE LOWER LEVEL ROUTING FAP06332
RESTP SXA RESTX,4 SAVE CALLING LINKAGE FAP06333
SXA RESTX+1,1 SAVE CHARACTER COUNT FAP06334
CAL 1,4 LOAD SWITCH ADDRESS,,TRANSFER ADDRESS FAP06335
STA REST3 SAVE SWITCH ADDRESS FAP06336
ARS 18 FAP06337
STA LKTBB SAVE OLD TRANSFER ADDRESS FOR COMPARE FAP06338
CAL* 1,4 LOAD OLD SWITCH FAP06339
STD LKTBB ESTABLISH DUPLICATE DECREMENTS FAP06340
LAS LKTBB DOES SWITCH COMPARE WITH REQUEST FAP06341
TRA *+2 NO FAP06342
TRA REST2 YES FAP06343
TSX MACERR,4 WNFAP06344
REM REQUEST IS NOT CURRENT SWITCH FAP06345
REST1 PDC ,1 LOAD POINTER TO NEXT SWITCH FAP06346
TXH *+2,1,0 WAS TABLE ENTRY MADE FAP06347
TSX MACERR,4 **NO FAP06348
CAL 0,1 YES, LOAD LAST LINK FAP06349
STD LKTBB SET UP DECREMENT AGAIN FAP06350
LAS LKTBB DOES THIS LINK COMPARE WITH REQUEST FAP06351
TRA *+2 NO FAP06352
TRA REST3 YES FAP06353
SXA *+1,1 COMPLEMENT THIS POINTER FAP06354
AXC **,1 FAP06355
SXA REST3,1 SAVE POINTER FAP06356
TRA REST1 FAP06357
REM REQUEST IS CURRENT SWITCH FAP06358
REST2 PDC ,1 COMPLEMENT POINTER FAP06359
CAL 0,1 PICK UP LINK FAP06360
SLW* 1,4 RESET SWITCH FAP06361
TRA REST3+2 FAP06362
REM REQUEST WAS FOUND IN TABLE FAP06363
REST3 AXC **,4 LOAD POINTER FAP06364
STD 0,4 INSERT LOWER POINTER IN SWITCH FAP06365
CAL LKTBP LOAD POINTER TO NEXT LINK FAP06366
SLW 0,1 RESTORE TABLE FAP06367
SXA *+1,1 COMPUTE TRUE POINTER ADRESS FAP06368
AXC **,1 FAP06369
SXD LKTBP,1 RESET POINTER TO NEXT LEVEL LINK FAP06370
RESTX AXT **,4 RELOAD CALLING LINKAGE FAP06371
AXT **,1 RELOAD CHARACTER COUNT FAP06372
TRA 2,4 FAP06373
REM FAP06374
REM PUSH DOWN PARAMETER FAP06375
PDOWN SXA PDWNX,4 SAVE CALLING LINKAGE FAP06376
LDQ* 1,4 LOAD VALUE OF PARAMETER FAP06377
CAL LKTBP LOAD POINTER TO NEXT LEVEL FAP06378
TNZ *+2 WAS TABLE ENTRY MADE FAP06379
TSX MACERR,4 **NO FAP06380
STD* 1,4 YES, SAVE POINTER TO HIGHER LEVEL PARAM FAP06381
PDC ,4 COMPUTE LOCATION OF NEXT TABLE ENTRY FAP06382
CAL 0,4 LOAD POINTER TO NEXT LEVEL FAP06383
STQ 0,4 SAVE OLD PARAMETER FAP06384
TZE LKTOV **IS TABLE EXHAUSTED FAP06385
STD LKTBP NO, RESET POINTER TO FOLLOWING LINK FAP06386
PDWNX AXT **,4 RELOAD CALLING LINKAGE FAP06387
TRA 2,4 FAP06388
REM FAP06389
REM PUSH UP PARAMETER FAP06390
PUPUP SXA PUPPX,4 SAVE CALLING LINKAGE FAP06391
CAL 1,4 LOAD PARAMETER FAP06392
STA *+1 INITIALIZE PARAMETER ADDRESS FAP06393
LDC **,4 LOAD POINTER TO CURRENT LEVEL FAP06394
TXH *+2,4,0 WAS TABLE ENTRY MADE FAP06395
TSX MACERR,4 **NO FAP06396
LDQ 0,4 YES, LOAD FORMER LEVEL FAP06397
CAL LKTBP LOAD POINTER TO NEXT LEVEL FAP06398
SLW 0,4 RESTORE TABLE FAP06399
SXA *+1,4 COMPUTE TRUE POINTER ADDRESS FAP06400
AXC **,4 FAP06401
SXD LKTBP,4 RESET POINTER TO NEXT LINK FAP06402
PUPPX AXT **,4 RELOAD CALLING LINKAGE FAP06403
STQ* 1,4 RESET FORMER LEVEL FAP06404
TRA 2,4 FAP06405
REM FAP06406
REM PUSH / POP STATUS FAP06407
PUPOP SXA POPPX,4 SAVE CALLING LINKAGE FAP06408
STP PUP01+1 SET PUSH / POP SWITCH FAP06409
AXT 3,2 LOAD LENGTH OF SCAN STATUS WORDS FAP06410
TSX PUP01,4 *PUSH / POP SCAN STATUS FAP06411
PZE SSLOC+1 FAP06412
LXD ARGIL,2 LOAD LENGTH OF ARGUMENT TABLE FAP06413
TXL *+3,2,0 ARE THERE ANY ARGUMENTS FAP06414
TSX PUP01,4 *YES, PUSH / POP ARGUMENTS FAP06415
PZE MARGS+1 FAP06416
AXT 1,2 LOAD LENGTH OF IRP SWITCH FAP06417
TSX PUP01,4 *PUSH/POP IRP INTERCEPT FAP06418
PZE CMP22+1 FAP06419
PDX ,4 LOAD IRP SWITCH FAP06420
TXL POPPX,4,0 IS CARD IN RANGE OF IRP FAP06421
AXT 4,2 YES, LOAD LENGTH OF IRP STATUS WORDS FAP06422
TSX PUP01,4 *PUSH / POP IRP STATUS FAP06423
PZE IRPAR+1 FAP06424
POPPX AXT **,4 RELOAD CALLING LINKAGE FAP06425
TRA 1,4 FAP06426
REM FAP06427
PUP01 CAL 1,4 LOAD ORIGIN OF LIST TO BE PUSHED / POPPED FAP06428
*** PUP02 (TXH IF PUSH, TXL IF POP) FAP06429
STA *+1 INITIALIZE PUSH ADDRESS FAP06430
CLA **,2 PUSH FROM FAP06431
STO 0,1 TO FAP06432
TXI *+1,1,-1 BUMP TO COUNT FAP06433
TIX *-3,2,1 IS LIST EXHAUSTED FAP06434
TRA 2,4 YES FAP06435
PUP02 STA *+2 INITIALIZE POP ADDRESS FAP06436
CLA 0,1 POP FROM FAP06437
STO **,2 TO FAP06438
TXI *+1,1,-1 BUMP FROM COUNT FAP06439
TIX *-3,2,1 IS LIST EXHAUSTED FAP06440
TRA 2,4 YES FAP06441
REM FAP06442
REM STUFF MACRO DEFINITION INTO MACDEF FAP06443
REM STUFF MACRO CALL ARGUMENTS INTO MACEXP FAP06444
REM STUFF MACRO EXPANSION INTO BCDBF FAP06445
REM FAP06446
REM TO INITIALIZE CAL * FAP06447
REM TRA STUFY FAP06448
REM *** RETURN FAP06449
REM XR1 = -(FIRST LOC TO BE STUFFED INTO) FAP06450
REM XR2 = -1/+1 TO STUFF FORWARD/BACKWARD FAP06451
REM XR4 = -(FIRST FORBIDDEN LOCATION) OVERFLOWFAP06452
REM NO TEST FOR STUFFING BACKWARD FAP06453
REM FAP06454
REM TO CALL CAL * FAP06455
REM TRA STUFF FAP06456
REM *** OVERFLOW RETURN (STUFFING FORWARD) FAP06457
REM *** NORMAL RETURN FAP06458
REM XR1 = -(FIRST WORD TO BE STUFFED FROM) FAP06459
REM XR2 = NUMBER OF CHARS PRECEDING CHAR FAP06460
REM TO BE STUFFED (0 - 5) FAP06461
REM XR4 = NUMBER OF CHARACTERS TO STUFF FAP06462
REM FAP06463
REM INITIALIZE STUFF ROUTINE FAP06464
STUFY ACL Q2 COMPUTE RETURN TO CALL+1 FAP06465
STA STUFX INITIALIZE RETURN FAP06466
ZSD STUM2 RESET HANGING OUTPUT CHARACTER COUNT FAP06467
ZSD STF01 FAP06468
SXD STUFI,1 SET FIRST LOCATION TO BE STUFFED INTO FAP06469
SXD STF08+1,2 SET DIRECTION OF STUFF FAP06470
SXD STF10+2,2 FAP06471
AXT ,0 (41)FAP06472
TXH *+2,2,1 IS STUFF BACKWARD FAP06473
AXT 0,4 YES, DELETE OVERFLOW TEST FAP06474
SXD STF03+1,4 INITIALIZE OVERFLOW TESTS FAP06475
SXD STF08+2,4 FAP06476
STUFX TRA ** FAP06477
REM FAP06478
REM ENTER MACRO INFORMATION INTO MACRO TABLES FAP06479
STUFF ACL Q2 COMPUTE CALL+1 FAP06480
STA STF09 INITIALIZE OVERFLOW RETURN FAP06481
ACL Q1 COMPUTE CALL+2 FAP06482
STA STF11+1 INITIALIZE NORMAL RETURN FAP06483
TXH STF01,4,0 ANY CHARACTERS TO BE STUFFED FAP06484
STF12 LXD STF08+1,2 PREPARE TO BUMP STUFF POINTER (41)FAP06485
STUFI TXI STF11+1,2,** ,,LOCATION TO BE STUFFED INTO (41)FAP06486
STF01 TXI *+1,4,** BUMP COUNT TO INCLUDE PARTIAL STUFFED WORDFAP06487
CLA STUM2 COMPUTE PARTIAL STUFFED BIT COUNT FAP06488
ARS 1 (6* CHARACTER COUNT) FAP06489
ADD STUM2 FAP06490
ARS 16 FAP06491
STO STUM2 FAP06492
STA STF04 SET SHIFT TO RIGHT ADJUST FAP06493
REM PARTIAL STUFFED WORD FAP06494
PXD ,2 COMPUTE INPUT BIT COUNT FAP06495
ARS 16 (6*(N-1) FOR NTH CHARACTER) FAP06496
STO NERAS FAP06497
ARS 1 FAP06498
ADD NERAS FAP06499
STO NERAS FAP06500
STA STF05 SET SHIFT TO LEFT ADJUST INPUT CHARACTER FAP06501
SUB STUM2 COMPUTE LEAD OF INPUT CHARACTER FAP06502
TMI STF02 DOES INPUT CHARACTER LEAD OUTPUT CHARACTERFAP06503
STA STF07 NO, SET SHIFT TO APPEND LEADING FAP06504
REM CHARACTERS IN NEXT INPUT WORD FAP06505
SUB Q36 FAP06506
STA STF08 SET SHIFT TO RIGHT ADJUST FOLLOWING FAP06507
REM CHARACTERS IN NEXT INPUT WORD FAP06508
ADD STUM2 FAP06509
STA STF05+1 SET SHIFT TO APPEND LEADING FAP06510
REM CHARACTERS IN FIRST INPUT WORD FAP06511
CLA P7 SET SWITCH TO LOAD NEXT INPUT WORD FAP06512
STP STF06 FOR BALANCE OF FIRST STUFFED WORD FAP06513
TRA STF03 FAP06514
REM FIRST INPUT CHARACTER LEADS LAST OUTPUT CHARACTER FAP06515
STF02 STA STF08 SET SHIFT TO RIGHT ADJUST FOLLOWING FAP06516
REM CHARACTERS IN NEXT INPUT WORD FAP06517
ADD Q36 FAP06518
STA STF07 SET SHIFT TO APPEND LEADING FAP06519
REM CHARACTERS IN NEXT INPUT WORD FAP06520
SUB NERAS FAP06521
STA STF05+1 SET SHIFT TO APPEND LEADING FAP06522
REM CHARACTERS IN FIRST INPUT WORD FAP06523
CAL P7 SET SWITCH TO RETAIN FIRST INPUT WORD FAP06524
STP STF06 FOR BALANCE OF FIRST STUFFED WORD FAP06525
REM STUFF ROUTINE IS INITIALIZED. STUFF OUTPUT WORDS FAP06526
STF03 LXD STUFI,2 LOAD LOCATION OF FIRST WORD TO BE STUFFED FAP06527
TXL STF09,2,** WILL STUFFED WORD OVERFLOW FAP06528
LDQ 0,2 NO, LOAD PARTIAL STUFFED WORD FAP06529
STF04 LGL ** RIGHT ADJUST PARTIAL STUFFED WORD FAP06530
LDQ 0,1 LOAD FIRST INPUT WORD FAP06531
STF05 RQL ** LEFT ADJUST FIRST INPUT CHARACTER FAP06532
LGL ** APPEND INPUT CHARACTERS TO PARTIAL WORD FAP06533
STF06 *** STF07+1,,0 DOES INPUT CHARACTER LEAD OUTPUT CHARACTERFAP06534
TXI *+1,1,-1 NO, BUMP INPUT WORD COUNT TO NEXT WORD FAP06535
LDQ 0,1 LOAD NEXT INPUT WORD FAP06536
STF07 LGL ** APPEND LEADING CHARACTERS NEXT INPUT WORD FAP06537
SLW 0,2 ADD TO TABLE FAP06538
TNX STF10,4,6 IS ENTRY COMPLETE FAP06539
STF08 LGL ** NO, RIGHT ADJUST FOLLOWING CHARACTERS FAP06540
REM NEXT INPUT WORD FAP06541
TXI *+1,2,** BUMP STUFFED WORD COUNT FAP06542
TXH STF06+1,2,** WILL STUFFED WORD OVERFLOW FAP06543
SXD STUFI,2 YES, SAVE LAST WORD STUFFED FAP06544
STF09 TRA ** RETURN TO CALL+1 FAP06545
REM ENTRY IS COMPLETE FAP06546
STF10 TXL *+3,4,5 WAS LAST WORD COMPLETE FAP06547
AXT 0,4 YES, RESET HANGING CHARACTER COUNT FAP06548
TXI *+1,2,** BUMP STUFFED WORD COUNT FOR FINAL WORD FAP06549
SXD STUFI,2 SAVE LOCATION OF LAST (PART) WORD STUFFED FAP06550
SXD STUM2,4 SAVE PARTIAL WORD CHARACTER COUNT FAP06551
SXD STF01,4 FAP06552
STF11 TXH STF12,4,0 BUMP COUNT IF PARTIAL WORD EXISTS (41)FAP06553
TRA ** RETURN TO CALL+2 FAP06554
REM FAP06555
REM GENERALIZED SCAN ROUTINE FAP06556
REM FAP06557
REM SCANS FOR SELECTED CHARACTER IN LOW ORDER POSITION FAP06558
REM IN TABLE AT LOCATION C OF LENGTH N FAP06559
REM TABLE IN DECREASING SORT ORDER FAP06560
REM FAP06561
REM TO INITIALIZE TSX SCANS,4 FAP06562
REM TXL K,,C+N RETURN TO K AFTER EACH CH FAP06563
REM (TXH ,,C+N NO RETURN) FAP06564
REM TXL L,,N RETURN TO L AFTER SEL CH FAP06565
REM TXL M,1,-J-1 RETURN TO M AFTER J EXHST FAP06566
REM (TXH M,1,-J SCAN BACKWARD) FAP06567
REM FAP06568
REM TO CALL, REGISTERS UPDATED FAP06569
REM TRA SCANT FAP06570
REM TO CALL, REGISTERS UNDISTURBED FAP06571
REM TRA SCANU FAP06572
REM OR TXI SCANU+1,2,1 FAP06573
REM FAP06574
REM ON RETURN XR1, XR2 AT LAST CHARACTER SCANNED FAP06575
REM CURRENT CHARACTER IN AC FAP06576
REM SELECTED CHARACTER POSITION IN XR4 FAP06577
REM FAP06578
SCANS CAL 1,4 LOAD RETURN1,,ORIGIN AT END OF TABLE FAP06579
SLW SCAN6 INITIALIZE SINGLE CHARACTER RETURN FAP06580
ARS 18 FAP06581
STA SCAN4 INITIALIZE ORIGIN OF SELECTED CHAR TABLE FAP06582
CAL 2,4 LOAD RETURN2,,LENGTH OF TABLE FAP06583
SLW SCAN5 INITIALIZE SELECTED CHARACTER RETURN FAP06584
LDQ 3,4 LOAD RETURN3,,END OF SCAN TEST FAP06585
STQ SCAN2 INITIALIZE TEST FOR END OF SCAN FAP06586
CAL D1 PRELOAD BUMPER BACKWARD FAP06587
TQP *+2 IS SCAN BACKWARD FAP06588
CAL D32767 NO, LOAD BUMPER FORWARD FAP06589
STD SCAN1 SET DIRECTION OF SCAN FAP06590
TRA 4,4 FAP06591
REM FAP06592
SCANT TXL SCAN2,2,5 IS WORD EXHAUSTED FAP06593
SCAN1 TXI *+1,1,** YES, BUMP TO NEXT WORD FAP06594
TXI SCANT,2,-6 RESET CHARACTER COUNT FAP06595
SCAN2 *** **,,** IS SCAN EXHAUSTED FAP06596
LDQ 0,1 NO, LOAD CURRENT WORD FAP06597
TXL SCAN3,2,0 IS FIRST CHARACTER NEXT FAP06598
PXD ,2 NO, COMPUTE LENGTH OF SHIFT FAP06599
PDX ,4 FAP06600
RQL 6 ROLL UP NEXT CHARACTER FAP06601
TIX *-1,4,1 IS THIS IT FAP06602
SCAN3 ZAC YES, LOAD NEXT CHARACTER FAP06603
LGL 6 FAP06604
LXD SCAN5,4 LOAD LENGTH OF SPECIAL CHARACTER TABLE FAP06605
SCAN4 LAS **,4 IS IT THIS CHARACTER FAP06606
TRA SCAN6 NO, NOT IN TABLE FAP06607
SCAN5 *** **,,** YES, RETURN FAP06608
TIX SCAN4,4,1 IS TABLE EXHAUSTED FAP06609
SCAN6 *** **,,** YES, IS SINGLE CHARACTER RETURN REQUESTED FAP06610
SCANU TXI *+1,2,1 NO, BUMP TO NEXT CHARACTER FAP06611
TXL SCAN3,2,5 IS WORD EXHAUSTED FAP06612
TRA SCAN1 YES FAP06613
EJECT FAP06614
REM MACRO PROCESSOR ERASABLE STORAGE AND CONSTANTS FAP06615
REM FAP06616
ARGNO PZE ,,** MACRO ARGUMENT NUMBER FAP06617
ARGWD PZE MACRO LOCATION ARGUMENT FAP06618
COUNT PZE ,,** MACRO FIELD COUNT FAP06619
CRSNO PZE **,,5 POINTER TO LAST CREATED SYMBOL,,COUNT FAP06620
LCARG PZE MACRO LOCATION ARGUMENT FAP06621
MACNO PZE **,,** MACRO LEVEL,,POINTER TO NEXT LEVEL FAP06622
MCIND PZE ** FLAG FOR INDIRECTLY ADDRESSED MACRO FAP06623
MOPCH PZE NEXT CHARACTER IN MACRO VARIABLE FIELD FAP06624
MOPMQ PZE RESIDUE OF WORD IN MACRO VARIABLE FIELD FAP06625
MOPNM PZE NAME OF MACRO BEING DEFINED FAP06626
RELD11 SYN * TSFAP06627
MOPTR PTW MACOP+1,,0 -VECTOR+1 SECOND WORD IN COMBINED OP TBL TSFAP06628
REM DECREMENT IS POINTER TO NEXT AVAILABLE FAP06629
REM SPACE FOR HEADING IN MACRO DEF TABLE FAP06630
REM TABLE EXTENDS DOWN TOWARDS MACEXP FAP06631
REM PASS 2 TRANSFER ADDRESS WILL REPLACE THIS FAP06632
REM WHEN PASSED FORWARD ON INTERMEDIATE TAPE FAP06633
PARNC PZE ** MACRO PARENTHESES COUNT FAP06634
PCONT PZE ,,** MACRO PARTIAL FIELD OR HOLLERITH COUNT FAP06635
PSYMB PZE MACRO PARTIAL FIELD FAP06636
RELD12 SYN * TSFAP06637
RMTEN PZE ,,0 -*-1 (1) POINTER TO MOST RECENTLY DEFINED SEQ. TSFAP06638
PZE ,,** (2) POINTER TO FIRST REMOTE SEQUENCE FAP06639
STUM2 PZE **,,** PARTIAL STUFFED WORD BIT COUNT,,CHAR COUNTFAP06640
TOTAL PZE ,,** MACRO VARIABLE FIELD COUNT FAP06641
MDFCT PZE **,,** (1) MACRO DEFINITION WORD,,CHARACTER COUNTS FAP06642
ARGIL PZE ,,** (2) ,,NUMBER OF ARGUMENTS FAP06643
SSLOC PZE **,,** (3) IND ADD FLAG,,POINTER TO LAST SAVED SCAN FAP06644
REM FOLLOWING PARAMS DESCRIBE IRP CARD WITHIN MACRO DEF TABLEFAP06645
IRPNO PZE **,,** (1) PUNCTUATION CHARACTER,,ARGUMENT COUNT FAP06646
IRPPW PZE **,,** (2) MACRO SKELETON WORD,,CHARACTER COUNTS FAP06647
IRPSD PZE **,,** (3) BEGINNING OF STRING WORD,,CHARACTER COUNT FAP06648
IRPAR PZE **,,** (4) REF TO THIS ARG,,POINTER TO NEXT ARG FAP06649
DARGS BES 64 BCD MACRO DEFINITION ARGUMENTS FAP06650
BSS 63 (1) POINTERS TO ARGS IN MACRO EXPANSION TABLE FAP06651
MARGS PZE **,,** (2) -(LOC OF STRING),,(LENGTH OF STRING) FAP06652
LKTBB TXI **,,** OLD TRANSFER ADDRESS,,POINTER FAP06653
LKTBP DUP 1,112 FAP06654
PZE ,,*+1 ,,POINTER TO NEXT LINK FAP06655
PZE LINK TABLE END FAP06656
REM FAP06657
MOPP2 MZE ,,2$UNLOP+1 PASS 2 TRANSFER TO PRINT MACRO CARD FAP06658
RMTP2 PZE ,,2$RMTOP PASS TWO ADDRESS TO RESET HEADING CHAR FAP06659
PRNLT TXI SSN10,,1 TRANSFER TO DISABLE SCAN ON , FAP06660
PRNLS TXI SSN07,,0 TRANSFER TO ENABLE SCAN ON , FAP06661
REM FAP06662
MDTBL EQU * FAP06663
PZE 63 (1) ARGUMENT MARK FAP06664
PZE 62 (2) VARIABLE FIELD MARK FAP06665
PZE 01 (3) OPCODE MARK FAP06666
PZE 00 (4) END OF RECORD MARK FAP06667
REM FAP06668
MPKMK OCT 007777770000 MASK FOR CARD COLUMNS 8 - 10 FAP06669
OCT 777777777777 (1) FAP06670
OCT 777777777700 (2) FAP06671
OCT 777777770000 (3) FAP06672
OCT 777777000000 (4) FAP06673
OCT 777700000000 (5) FAP06674
OCT 770000000000 (6) FAP06675
MARMK OCT 000000000000 (7) FAP06676
REM FAP06677
IRPMK BCI 1,0IRP 0 FAP06678
BCDMM BCI 1,BCD000 FAP06679
BCIMM BCI 1,BCI000 FAP06680
TTLMM BCI 1,TTL000 THIRD OF FIVE ENTRIES IN TABLE (41)FAP06681
REMMM BCI 1,REM000 FAP06682
12BMM BCI 1,12BIT0 DAFAP06683
RMTMM BCI 1,RMT000 FAP06684
ENDMM BCI 1,END000 (41)FAP06685
CRSNM BCI 1,CRSYMB FAP06686
LVLNM BCI 1,LEVEL FAP06687
MDFNM BCI 1,MACRO FAP06688
PARFL BCI 1, () FAP06689
UNDFL BCI 1, U FAP06690
CRPT1 BCI 1,00.000 DECIMAL POINT FOR CREATED SYMBOL CHAR 3 FAP06691
CRPT2 BCI 1,.0000 DECIMAL POINT FOR CREATED SYMBOL CHAR 2 FAP06692
MCTBL BCI 1,00000( FAP06693
BCI 1,00000, FAP06694
BCI 1,00000 FAP06695
BCI 1,00000) FAP06696
REM FAP06697
REM FAP06698
ETCCD BCI 3, ETC FAP06699
RMTCD BCI 6, REM REMOTE SEQUENCES FAP06700
REM FAP06701
REM FORM OF ENTRY IN MACRO DEFINITION TABLE FAP06702
REM HEADING, MACRO DEF PZE ,,ARGUMENT COUNT FAP06703
REM (MZE IF LAST ARG IS SYMBOLIC LOC) FAP06704
REM RMT SEQ PZE HEAD CHAR,,PTR TO NEXT SEQUENCE FAP06705
REM CARD IMAGE SKELETONS FOLLOW FAP06706
REM FAP06707
REM STRUCTURE OF SKELETONIZED CARD IMAGE FAP06708
REM FIELD MARKS (OCTAL) 01 OPCODE FOLLOWS FAP06709
REM 76NN VARIABLE FIELD FOLLOWS (42)FAP06710
REM (PRECEDED BY NN CARD CHARACTERS) (42)FAP06711
REM 00 END OF RECORD FAP06712
REM (END MARK IS DOUBLE END OF RECORD) FAP06713
REM FORM OF FIELD, ARG 77NN WHERE NN IS ARGUMENT NUMBER FAP06714
REM OR 7700 FLAG FOR PROGRAMMERS ETC FAP06715
REM OR NNXX WHERE NN IS CHARACTER COUNT+1 FAP06716
REM FAP06717
REM FAP06718
ETCPC STZ SYMBL DELETE ADDED FIELD *FAP06719
LXA GSAV2,2 RESTORE X2 *FAP06720
TRA GSC18 *FAP06721
HYPOP CAL OPBIN LOAD OPCODE *FAP06722
SLW LITRL SAVE FOR PASS TWO *FAP06723
AXT 2$HYPOP,4 SET PASS TWO TRANSFER ADDRESS *FAP06724
SXD OPBIN,4 *FAP06725
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD *FAP06726
CLA Q1 ORDER TAKES ONE WORD *FAP06727
TSX BPCTR,4 *BUMP LOCATION COUNTER *FAP06728
TRA READ1 *FAP06729
REM *FAP06730
CALN1 NZT ABSFLG IS IT ABSOLUTE ASSEMBLY *FAP06731
STL TVFLG NO, SET TRANSFER VECTOR NAME FLAG *FAP06732
TRA CALNM+3 *FAP06733
MAC2A TSX ESYML,4 *DEFINE LOCATION FIELD *FAP06734
TRA MAC07+3 *FAP06735
PZE *FAP06736
MSC07 ERA BLANK IS PUNCTUATION ) (42)FAP06737
TZE MSC06 YES, STUFF AS PART OF OP CODE (42)FAP06738
ERA MINUS NO, IS PUNCTUATION ( (42)FAP06739
TXL MSC08,2,-2 (MAKE THE CHECK ONLY IF IT WAS (42)FAP06740
TXL MSC08,1,5 FOUND IN CARD COLUMN EIGHT) (42)FAP06741
TZE MSC06 YES, STUFF AS PART OF OP CODE (42)FAP06742
MSC08 ERA PRIME IS PUNCTUATION BLANK (42)FAP06743
TZE MSC05 IF YES, STUFF VARIABLE FIELD FLAG (42)FAP06744
LDQ RESIDU NO, RESET SCAN POSITION TO INCLUDE (42)FAP06745
CAL CHRCTR CURRENT PUNCTUATION CHARACTER (42)FAP06746
LGR 6 (42)FAP06747
STQ RESIDU (42)FAP06748
TXI MSC10+2,1,1 GO TO VARIABLE FIELD SCAN (42)FAP06749
MSC09 LDQ MOPMQ RESTORE BEGINNING OF VARIABLE (42)FAP06750
STQ RESIDU FIELD FOR SCAN ROUTINES (42)FAP06751
CAL MOPCH (42)FAP06752
SLW CHRCTR (42)FAP06753
LAC VRFLD,1 LOAD CHARACTER AND WORD POSITIONS (42)FAP06754
LDC VRFLD,2 OF VARIABLE FIELD SCAN (42)FAP06755
TXH *+2,2,1 COMPUTE NUMBER OF CHARACTERS (42)FAP06756
TXI MSC05+3,1,13 PRECEDING VARIABLE FIELD (42)FAP06757
TXI MSC05+3,1,19 (42)FAP06758
ESYMZ TXH ESYMS+1,4,** DID WE OVERLAP MACRO TABLE *FAP06759
TRA ESYMS-5 YES, CALL SOURCE ERROR *FAP06760
RMT03 LXA CLEVL,4 GET MACRO NESTING LEVEL *FAP06761
TXH RMT02+2,4,0 WAS THIS NESTED DEFINITION *FAP06762
SXD ESYMZ,2 NO,INITIALIZE TEST *FAP06763
TRA RMT02+2 *FAP06764
PTCH1 ZET FCFLG IS THIS FIRST CARD GROUP *FAP06765
TRA FIELD **NO *FAP06766
ZSD ESYMT+2 SET SWITCH TO SAVE SST *FAP06767
TRA READ1 *FAP06768
G10PA SUB D1 *OMIT BLANK PUNCTUATION CHARACTER *FAP06769
STO PCONT FROM STUFF COUNT. *FAP06770
REM REENTRY FOR FIELD IS AN ARGUMENT WITH BLANK PUNCTUATION.*FAP06771
G10P1 SXD GSC09+3,4 *SET FIRST BLANK SWITCH TO AVOID *FAP06772
REM UPDATING PCOUNT TO INCLUDE *FAP06773
REM BLANK PUNCTUATION ONLY. *FAP06774
TXL GSC11,4,-2 *IS FIELD AN ARGUMENT... *FAP06775
STZ PCONT YES.ZERO PARTIAL STUFF COUNT IN CASE *FAP06776
REM GSC11+3 IS REACHED BEFORE GSC10+2. *FAP06777
TRA MSC23 *ENTRY WAS FROM GSC10+1. *FAP06778
GSFPA SXD GSFP2,1 *STORE NO. +5 TO STUFF 2ND TIME. *FAP06779
AXT 19,1 STUFF 18 CHARACTERS FIRST TIME. *FAP06780
TSX GSCS1-2,4 *SET GSCFX TO RETURN TO PATCH. *FAP06781
GSFP1 AXT **,4 *SET GSCFX TO RETURN TO CALLER. *FAP06782
AXT -4,1 UPDATE GSCX1 WITH LOCATION *FAP06783
SXA GSCX1,1 TO STUFF FROM NEXT. *FAP06784
GSFP2 TXI GSCS1-2,1,** *STUFF REMAINDER OF FIELD *FAP06785
MP1 TXH OVRLP,4,** DID TABLE OVERFLOW *FAP06786
SXD STUFI,4 NO, PICK UP LAST LOCATION USED *FAP06787
TRA RESTF+3 *FAP06788
EVNOP STL EVNFLG SET FLAG FOR EVEN PROLOGUE, ETC *FAP06789
LDI LOCTR GET PROGRAM COUNTER *FAP06790
CAL Q1 *FAP06791
RFT 1 IS IT ODD.. *FAP06792
TSX BPCTR,4 *YES, BUMP IT *FAP06793
TRA READ1 *FAP06794
REM *FAP06795
REM PATCH TO ADJUST PROGRAM CARD FOR EVEN *FAP06796
ENDFP CAL PBUFF1+5 LOAD LENGTH OF PROLOGUE *FAP06797
NZT EVNFLG DID EVEN OPS OCCUR.. *FAP06798
TRA ENDFF+1 **NO, PROGRAM CARD IS O.K. *FAP06799
LDQ P4 YES, SET SIGN OF FOURTH *FAP06800
SLQ PBUFF1+3 WORD OF PROGRAM MINUS *FAP06801
LBT IS TRANSFER VECTOR EVEN.. *FAP06802
TRA ENDFF+1 **YES *FAP06803
ADD Q1 NO, ADD ONE TO PROLOGUE LENGTH *FAP06804
TRA ENDFF+1 **RETURN *FAP06805
REM *FAP06806
PMC2P CLA STPTR FLOAT MACRO EXPANSION TABLE *FAP06807
ADM MOPTR BETWEEN SYMBOL TABLE AND *FAP06808
ARS 1 MACRO DEFINITION TABLE *FAP06809
PDX ,1 *FAP06810
SXD ESYMZ,1 INITIALIZE SYMBOL TABLE OVERFLOW TEST *FAP06811
TRA PMCS2+1 *FAP06812
SARGP LXA CLEVL,2 GET CURRENT NESTING LEVEL *FAP06813
TXL SARGT+2,2,0 DOES EXPANSION TABLE EXIST *FAP06814
LXA MEPTR,1 YES, USE ITS END INSTEAD *FAP06815
TRA SARGT+2 *FAP06816
PMC3P LXD MOPTR,4 RE-INITIALIZE TEST WHEN (39)FAP06817
SXD ESYMZ,4 LEAVING MACRO NEST (39)FAP06818
TRA PMC3X *FAP06819
RELD13 SYN * ATSFAP06820
STPTR PZE ,,0 -SYMTBL-LSMTBL POINTER TO NEXT SYM TBL LOCATION BTSFAP06821
REM *FAP06822
REM PATCH TO ARGUMENT LIST ETC PROCESSING (41)FAP06823
SSN33 TXH *+2,4,** IS THIS ETC CONTINUING IFF (41)FAP06824
CAL PCCP2 YES,PUT UNDER PCC CONTROL (41)FAP06825
SLW OPBIN SAVE PASS TWO ADDRESS (41)FAP06826
TRA SSN31+1 (41)FAP06827
TTL PASS TWO SUBROUTINES FAP06828
HEAD 2 PASS TWO FAP06829
REM FAP06830
REM PROCESS AND LIST NON DATA GENERATING PSEUDOOPS FAP06831
REM PROCESS, LIST, INSERT IN BINARY CARD IMAGES FAP06832
REM MACHINE OPERATIONS AND DATA GENERATING PSEUDOOPS FAP06833
REM PRINT AND PUNCH ON AND/OR OFF LINE BCD AND BINARY OUTPUT FAP06834
REM FAP06835
LBL 9F05 FAP06836
REM FAP06837
REM SSYMT SUBROUTINE MUST ORIGIN AT SAME LOCATN PASS 1 AND 2 FAP06838
REM BINARY SEARCH OF SYMBOL TABLE FAP06839
SSYMT SXA SSYMX,4 SAVE CALLING LINKAGE FAP06840
SXA SSYMX+1,2 SAVE WORD COUNT FAP06841
SXA SSYMX+2,1 SAVE CHARACTER COUNT FAP06842
CAL SYMBL LOAD SYMBOL NAME FAP06843
AXT 0,1 LOAD LOCATION OF FIRST SYMBOL IN TABLE FAP06844
LXA SYMSIZ,2 LOAD LOGARITHM OF TABLE LENGTH FAP06845
TSX LOWER,4 *EXECUTE BINARY SEARCH FAP06846
TRA SSYM3 NOT FOUND FAP06847
SSYM1 TXL *+4,1,** IS SEARCH PAST UPPER END OF TABLE FAP06848
LAS SYMTBL-2,1 NO, IS CURRENT SYMBOL THIS NAME IN TABLE FAP06849
TXI LOWER,2,-2 NO, LARGER - GO LOOK HIGHER FAP06850
TRA SSYM4 YES FAP06851
TXI RAISE,2,-2 NO, SMALLER - GO LOOK LOWER FAP06852
REM FAP06853
REM SYMBOL IS UNDEFINED FAP06854
SSYM3 SLN EXPRR SET UNDEFINED ERROR FLAGS FAP06855
STL ERRFU FAP06856
LDC SYMSIZ,1 LOAD LENGTH OF UNDEFINED SYMBOL TABLE FAP06857
REM REENTRY TO COMPARE WITH NEXT NAME IN TABLE FAP06858
SUDS1 TXL *+5,1,** IS UNDEFINED SYMBOL TABLE EXHAUSTED FAP06859
LAS SYMTBL-2,1 NO, WAS SYMBOL PREVIOUSLY UNDEFINED FAP06860
TXI SUDS1,1,-2 NO FAP06861
TXI SSYM5,1,-2 YES FAP06862
TXI SUDS1,1,-2 NO FAP06863
REM NAME IS NEW, ADD TO UNDEFINED SYMBOL TABLE FAP06864
TXL SSYM5,1,** DID UNDEFINED SYMBOL TABLE OVERFLOW FAP06865
SLW SYMTBL-2,1 NO, ADD SYMBOL TO TABLE FAP06866
STZ SYMTBL+1,1 DELETE HANGING GARBAGE FAP06867
TXI *+1,1,-2 BUMP UNDEFINED SYMBOL TABLE COUNT FAP06868
SXD SUDS1,1 SAVE LENGTH OF UNDEFINED SYMBOL TABLE FAP06869
REM REENTRY FOR DEFINED SYMBOL FAP06870
SSYM4 LDI SYMTBL-1,1 LOAD SYMBOL DEFINITION FAP06871
LFT 10 IS SYMBOL MULTIPLY DEFINED FAP06872
STL ERRFM YES, SET FLAG FAP06873
REM REENTRY FOR UNDEFINED SYMBOL FAP06874
SSYM5 CLA SYMTBL-1,1 LOAD SYMBOL DEFINITION FAP06875
ZET ABSFLG IS ASSEMBLY ABSOLUTE FAP06876
ANA ADTMK YES, DELETE EXTRANEOUS FLAGS FAP06877
STO NERAS FAP06878
SXA SET01,1 SAVE LOCATION FOR SET ROUTINE FAP06879
ZET DELTF SHOULD SYMBOLIC REF TABLE ENTRY BE MADE FAP06880
TRA SSYMX NO FAP06881
SSYM6 TXH SSYMX,,0 SET BY 'SYMREF' PSEUDOOP PBFAP06882
REM MAKE ENTRIES INTO SYMBOLIC REFERENCE TABLE FAP06883
EREF0 TXI *+1,1,2 BUMP SYMBOL TABLE COUNT TO POINTER FAP06884
AXT **,2 COMPUTE TABLE LOCATION INTO WHICH FAP06885
EREF1 TXI *+1,2,1 CURRENT SYMBOLIC REFERENCE FAP06886
SXA BERAS,2 WILL BE STORED FAP06887
ZET **,1 HAS REFERENCE BEEN MADE TO THIS SYMBOL FAP06888
TRA EREF2 YES FAP06889
CLA BERAS NO, INSERT INTO POINTER TABLE FAP06890
STA **,1 LOCATION FIRST REFERENCE WILL BE STORED FAP06891
ALS 18 INSERT INTO POINTER TABLE FAP06892
STD **,1 LOCATION NEXT REFERENCE WILL BE STORED FAP06893
TRA EREF3 FAP06894
REM SUBSEQUENT REFERENCE TO SYMBOL FAP06895
EREF2 CLA **,1 LOAD POINTER FAP06896
ARS 18 GET LOCATION OF THIS REFERENCE FAP06897
STA *+4 INITIALIZE STORE FAP06898
CLA BERAS LOAD LOCATION OF NEXT REFERENCE FAP06899
ALS 18 FAP06900
STD **,1 INSERT IN POINTER FAP06901
STD ** INSERT IN TABLE FAP06902
REM REENTRY FOR INITIAL REFERENCE FAP06903
EREF3 AXT -1,2 LOAD NEXT AVAILABLE SPACE IN TABLE FAP06904
CLA LOCTR INSERT PROGRAM COUNTER FAP06905
STA **,2 FOR CURRENT REFERENCE INTO TABLE FAP06906
EREF4 TXH *+2,2,** IS TABLE PAST POINTER INTERLEAVING FAP06907
TXI *+2,2,-1 YES, BUMP TO NEXT LOCATION FAP06908
TXI *+1,2,-2 NO, BUMP PAST INTERLEAVED POINTER FAP06909
TXH *+4,2,** IS SYMBOLIC REFERENCE TABLE FULL FAP06910
AXT SSYMX,1 YES, BYPASS FURTHER ENTRIES FAP06911
SXA EREF0,1 FAP06912
SXD PREF9,0 SET SWITCH TO PRINT ERROR MESSAGE FAP06913
SXA EREF3,2 SAVE NEXT AVAILABLE SPACE IN TABLE FAP06914
PXD ,2 COMPLEMENT FAP06915
PDC ,2 FAP06916
SXD EREF1,2 INITIALIZE COMPUTATION FOR NEXT SPACE FAP06917
CLA NERAS RELOAD SYMBOL DEFINITION FAP06918
SSYMX AXT **,4 RELOAD CALLING LINKAGE FAP06919
AXT **,2 RELOAD WORD COUNT FAP06920
AXT **,1 RELOAD CHARACTER COUNT FAP06921
TRA 1,4 FAP06922
REM FAP06923
REM MAKE ENTRIES IN REF TABLE FOR PSEUDOOPS NOT SCANNED IN P2FAP06924
REFPP SXA REFPX,4 SAVE CALLING LINKAGE FAP06925
LXD VRFLD,2 RELOAD WORD COUNT FAP06926
LXA VRFLD,1 RELOAD CHARACTER COUNT FAP06927
TSX SCANF,4 *EVALUATE NEXT FIELD FAP06928
TXI *+2,,0 ALL DONE FAP06929
TRA *-2 CONTINUE FAP06930
AXT ERRFB-ERRFU+1,4 LOAD LENGTH OF FATAL ERROR LIST FAP06931
STZ ERRFB+1,4 DELETE ERRORS REPRESENTED BY F FLAG FAP06932
TIX *-1,4,1 FAP06933
REFPX AXT **,4 RELOAD CALLING LINKAGE FAP06934
TRA 1,4 FAP06935
REM FAP06936
REM CHECK LOCATION COUNTER FAP06937
REFLC SXA REFCX,4 SAVE CALLING LINKAGE FAP06938
ZET DUPMD IS CARD WITHIN DUP FAP06939
TRA REFCX YES, FORGET IT FAP06940
STL DELTF NO, AVOID SOURCE REFERENCE TABLE ENTRIES FAP06941
TSX REFLP,4 *FIND SYMBOL DEFINITION FAP06942
STZ DELTF RESET SYMBOLIC REF TABLE ENTRY FLAG FAP06943
ZET SYMBL IS LOCATION SYMBOL OMITTED FAP06944
LFT 20 NO, WAS DEFINITION RESET FAP06945
TRA REFCX YES, FORGET IT FAP06946
PIA RECALL SYMBOL DEFINITION FAP06947
ZET ABSFLG IS ASSEMBLY ABSOLUTE FAP06948
ANA ADTMK YES, DELETE EXTRANEOUS FLAGS FAP06949
ERA NERAS DOES THIS AGREE WITH PASS ONE DEFINITION FAP06950
TZE REFCX YES FAP06951
NZT ERFFM NO, IS SYMBOL MULTIPLY DEFINED FAP06952
TSX MACERR,4 **NO, LOCATION COUNTER IS OUT OF STEP FAP06953
REFCX AXT **,4 RELOAD CALLING LINKAGE FAP06954
TRA 1,4 FAP06955
REM ENTER POINT OF DEFINITION IN SYMBOLIC REFERENCE TABLE FAP06956
REFLP SXA REFLX,4 SAVE CALLING LINKAGE FAP06957
LDQ BCDBF+1 PICKUP SECOND WORD OF CARD IMAGE WNFAP06958
ZAC PREPARE TO COMPARE SINGLE CHARACTER WNFAP06959
LGL 6 PUT LOW ORDER IN AC WNFAP06960
ERA BLANK IS CC 7 BLANK WNFAP06961
TZE *+2 .. WNFAP06962
STL ERRF7 NO, FLAG IT 7 WNFAP06963
CAL BCDBF YES, OR NO, LOOK AT LOCATION FIELD WNFAP06964
TSX LOCFL,4 MAKE UNIFORM WNFAP06965
TZE REFLX IF NO SYMBOL, GO AWAY WNFAP06966
STI ERASE SAVE INDICATORS WNFAP06967
PAI TEST HIGH ORDER BITS OF EACH CHARACTER WNFAP06968
OFT BLANKS IF ALL ARE OFF , SYMBOL IS NUMERIC WNFAP06969
TRA *+2 AT LEAST ONE IS ON WNFAP06970
STL ERRFL ALL OFF, FLAG IT L WNFAP06971
LDI ERASE RESTORE INDICATORS WNFAP06972
LGR 30 YES, APPEND CURRENT PRIME HEADING CHAR FAP06973
TNZ *+2 FAP06974
CAL BHEAD FAP06975
LGL 30 FAP06976
SLW SYMBL FAP06977
TSX SSYMT,4 *MAKE SYMBOL TABLE SEARCH FAP06978
CAL ERRFM SET NONFATAL MULTIPLY DEFINED FLAG FAP06979
SLW ERFFM FAP06980
STZ ERRFM PREVENT ABORTION FAP06981
STZ ERRFU FAP06982
REFLX AXT **,4 RELOAD CALLING LINKAGE FAP06983
TRA 1,4 FAP06984
REM FAP06985
REM SET FLAG FOR MISSING PSEUDOOP VARIABLE FIELD FAP06986
AFLAG STL ERRFA FLAG MISSING VARIABLE FIELD FAP06987
SLN FLDND DELETE F FLAG FAP06988
TRA 2,4 FAP06989
REM FAP06990
REM SET FLAG FOR MISSING ADDRESS FIELD FAP06991
FLAGA CAL D8 LOAD A-FLAG MASK FAP06992
ANA OFLGS MASK IN OPTABLE FIELD BITS FAP06993
SLW ERRFA SET FLAG IF FIELD IS REQUIRED FAP06994
PXD ,0 FAP06995
TRA 2,4 FAP06996
REM FAP06997
REM SET FLAG FOR MISSING TAG FIELD FAP06998
FLAGT CAL D4 LOAD T-FLAG MASK FAP06999
ANA OFLGS MASK IN OPTABLE FIELD BITS FAP07000
SLW ERRFT SET FLAG IF FIELD IS REQUIRED FAP07001
PXD ,0 FAP07002
TRA 2,4 FAP07003
REM FAP07004
REM SET FLAG FOR MISSING DECREMENT FIELD FAP07005
FLAGD CAL D2 LOAD D-FLAG MASK FAP07006
ANA OFLGS MASK IN OPTABLE FIELD BIT FAP07007
SLW ERRFD SET FLAG IF FIELD IS REQUIRED FAP07008
PXD ,0 FAP07009
TRA 2,4 FAP07010
REM FAP07011
REM INTERPRET INSTRUCTION LISTING FLAGS FAP07012
REM FLAGS ARE IN INDICATORS FAP07013
IFLGS RFT 9OMSK IS THIS INSTRUCTION PERMISSIBLE ON 7090 FAP07014
REM (RESET TO 040000 FOR 704 MODE) FAP07015
TRA IFL01 YES FAP07016
RNT 04MSK NO, IS THIS INSTRUCTION PROHIBITED ON 7090FAP07017
REM (RESET TO 020000 FOR 7090 MODE) FAP07018
STL ERRFN NO, SET NON-FATAL OPCODE ERROR FLAG FAP07019
RFT 04MSK IS THIS INSTRUCTION PROHIBITED ON 7090 FAP07020
REM (RESET TO 020000 FOR 7090 MODE) FAP07021
STL ERR49 YES, SET MODE FLAG FAP07022
IFL01 STL TYPAF SET TYPE A INSTRUCTION FLAG PRESUMPTIVELY FAP07023
LFT 077760 IS THIS TYPE A 0 00000 0 00000 INSTR. FAP07024
STZ TYPAF NO, RESET TYPE FLAG FAP07025
LNT 00001 DOES ADDRESS FIELD CONTAIN FLAGS FAP07026
TRA IFL03 CHECK FOR BAD INSTRUCTIONS **TSSFAP07027
RFT TDMSK IS THIS A TYPE D 0000 00 000000 INSTR. FAP07028
STL TYPDF YES, SET FLAG FAP07029
RFT VLMSK IS THIS A TYPE B INSTR. PERMITTED DECRM. FAP07030
REM OR TYPE K WITH HIGH ORDER COUNT FIELD FAP07031
STL TYPCF YES, SET FLAG FAP07032
RNT TKMSK IS THIS A TYPE K 00 0000 0 00000 COMMAND FAP07033
TRA *+3 NO FAP07034
STL TYPKF YES, SET TYPE K FLAG FAP07035
STL TYPAF SET TYPE A FLAG ALSO FAP07036
NZT BCOREF CHECK TSS FLAG ***TSSFAP07037
TRA 1,4 NOT IN MODE ***TSSFAP07038
RNT 10 IS INSTRUCTION OKAY.. ***TSSFAP07039
TRA 1,4 YES ***TSSFAP07040
CAL T1 GET A ONE IN POS 20 ***TSSFAP07041
RFT 40 IS IT TO BE INSERTED... ***TSSFAP07042
ORS BINRY YES ***TSSFAP07043
RNT 20 SHOULD INSTRUCTION BE FLAGGED ***TSSFAP07044
TRA 1,4 NO.. RETURN ***TSSFAP07045
IFL02 STL ERRFO YES FLAG OPCODE ***TSSFAP07046
STL ERRFT AND FLAG TAG UNIQUE COMBO ***TSSFAP07047
TRA 1,4 RETURN ***TSSFAP07048
IFL03 NZT BCOREF CHECK FOR BCORE SPECIAL PSEUDO OP ***TSSFAP07049
TRA 2,4 DO NOT FLAG OF A CORE OP A***TSSFAP07050
SXA IFL04,2 SAVE IR2 B***TSSFAP07051
AXT 5,2 SPECIAL OPTABLE SIZE ***TSSFAP07052
PIA GET CODE WORD FOR INSTRUCTION ***TSSFAP07053
LAS IFL06+5,2 CHECK TABLE FOR THIS INSTRUCTION ***TSSFAP07054
TRA *+2 OKAY ***TSSFAP07055
TXI IFL05,4,-1 GOT IT, RESET RETURN ***TSSFAP07056
TIX *-3,2,1 TRY AGAIN ***TSSFAP07057
IFL04 AXT **,2 RESTORE XR2 ***TSSFAP07058
TRA 2,4 RETURN TO CALLER ***TSSFAP07059
IFL05 LXA IFL04,2 RESTORE XR2 ***TSSFAP07060
TRA IFL02 GO TO FLAG INSTRUCTION AND RETURN ***TSSFAP07061
IFL06 OCT -076000120006 ECTM TABLE OF ILLEGAL ***TSSFAP07062
OCT -076000120005 ESTM OPERATIONS ***TSSFAP07063
OCT +076000160007 ETM WITHOUT ***TSSFAP07064
OCT -076100120041 SEA ADDRESS ***TSSFAP07065
OCT -076100120042 SEB FLAGS ***TSSFAP07066
REM ***TSSFAP07067
REM ROUTINE TO CREATE OCTAL EXPANSION FAP07068
REM FAP07069
REM PRINT CONTROL CARD FAP07070
PRNCC LDI BCDBF+13 LOAD PASS 1 ERROR FLAGS FAP07071
NZT ERRFA IS MISSING VARIABLE FIELD FLAGGED FAP07072
RFT 100 NOT YET FAP07073
TRA PRNTC YES FAP07074
RNT 4 NO, IS FIELD ERROR FLAGGED FAP07075
PRNSW TXL PRNTX+3,,0 NO, SHOULD CARD BE PRINTED FAP07076
REM (SWITCH SET BY PCC) FAP07077
REM FAP07078
REM PRINT INPUT CARD FAP07079
PRNTC SXA PRNTX,4 SAVE CALLING LINKAGE FAP07080
AXT 4,4 BREPARE TO BLANK OUT OCTAL LISTING FAP07081
CAL BLANKS FAP07082
SLW OCTAL+4,4 FAP07083
TIX *-1,4,1 FAP07084
TRA PRN06 FAP07085
REM FAP07086
REM PRINT INPUT CARD, DEFINITION LEFT ADJUSTED FAP07087
PRNTL SXA PRNTX,4 SAVE CALLING LINKAGE FAP07088
CAL BLANKS BLANK OUT OCTAL FIELD FAP07089
SLW OCTAL+3 FAP07090
SLW OCTAL+2 FAP07091
SLW OCTAL+1 FAP07092
LDQ ADDRS CONVERT LOCATION TO OCTAL FAP07093
RQL 21 FAP07094
AXT 5,4 FAP07095
ALS 3 FAP07096
LGL 3 FAP07097
TIX *-2,4,1 FAP07098
ALS 6 LEFT ADJUST FAP07099
ORA BLANK FAP07100
SLW OCTAL INSERT IN FIRST WORD FAP07101
TRA PRN06 FAP07102
REM FAP07103
REM PRINT INPUT CARD, DEFINITION RIGHT ADJUSTED FAP07104
PRNTR SXA PRNTX,4 SAVE CALLING LINKAGE FAP07105
LDQ ADDRS LOAD DEFINITION OF SYMBOL FAP07106
CAL BLANKS BLANK OUT LEFT PORTION OF OCTAL EXPANSION FAP07107
SLW OCTAL FAP07108
SLW OCTAL+1 FAP07109
NZT TYPDF IS FIELD BOOLEAN (6 DIGIT) FAP07110
TRA *+5 NO FAP07111
RQL 18 YES, LEFT ADJUST 6 DIGIT FIELD FAP07112
ALS 3 CREATE FIRST DIGIT FAP07113
LGL 3 FAP07114
TRA *+2 FAP07115
RQL 21 LEFT ADJUST 5 DIGIT FIELD FAP07116
ALS 6 SHIFT BOOLEAN DIGIT OR BLANK TO CHAR 5 FAP07117
SLW OCTAL+2 OF WORD 3 FAP07118
STZ OCTAL+3 CLEAR RIGHT ADJUSTED ADDRESS FIELD FAP07119
PXD ,0 FAP07120
TRA PRN04 FAP07121
REM FAP07122
REM PRINT SIGNED 12 DIGIT INTEGER DATUM WORD FAP07123
PRNTD LDQ BINRY LOAD DATUM WORD FAP07124
CAL PLUSS LOAD LEADING + FAP07125
TQP *+3 IS INTEGER POSITIVE FAP07126
CAL MINUS NO, LOAD LEADING - FAP07127
LRS 0 DELETE SIGN FAP07128
TRA PRNTW+2 FAP07129
REM FAP07130
REM PRINT 6 CHARACTER BCD DATUM WORD FAP07131
PRNTW LDQ BINRY LOAD DATUM WORD FAP07132
CAL BLANK LOAD LEADING BLANK FAP07133
SXA PRNTX,4 SAVE CALLING LINKAGE FAP07134
AXT 30,4 PREPARE TO CREATE 5 OCTAL DIGITS FAP07135
ALS 3 CREATE ZONE FAP07136
LGL 3 SHIFT IN DIGIT FAP07137
TIX *-2,4,6 IS WORD 2 COMPLETE FAP07138
SLW OCTAL+1 YES FAP07139
ALS 3 CREATE ZONE FAP07140
LGL 3 SHIFT IN DIGIT FAP07141
TIX *-2,4,1 IS WORD 3 COMPLETE FAP07142
SLW OCTAL+2 YES FAP07143
PXD ,0 FAP07144
LGL 3 SHIFT IN LAST DIGIT FAP07145
LDQ BLANKS APPEND FOLLOWING BLANKS FAP07146
LGL 30 LEFT ADJUST LAST DIGIT FAP07147
SLW OCTAL+3 INSERT IN LAST WORD FAP07148
TRA PRN05 FAP07149
REM FAP07150
REM PRINT SIX CHARACTER DISK ORDER FAP07151
PRNTO SXA PRNTX,4 SAVE CALLING LINKAGE FAP07152
AXT 48,4 PREPARE TO GENERATER 3 TWO-DIGIT FIELDS FAP07153
LDQ BINRY LOAD DATUM WORD FAP07154
CAL BLANK LOAD LEADING BLANK FAP07155
ALS 3 CREATE OP/HEAD FIELD FAP07156
LGL 3 FAP07157
TIX *-2,4,12 FAP07158
ALS 6 FAP07159
ORA BLANK APPEND BLANK FAP07160
ORS OCTAL+1 INSERT IN LISTING WORD 2 FAP07161
ALS 3 CREATE ACCESS AND MODULE/RECORD FIELD FAP07162
LGL 3 FAP07163
TIX *-2,4,3 FAP07164
ALS 6 FAP07165
ORA BLANK APPEND BLANK FAP07166
ALS 3 START TRACK/NULL FIELD FAP07167
LGL 3 FAP07168
ORS OCTAL+2 INSERT IN LISTING WORD 3 FAP07169
ALS 3 FINISH TRACK/NULL FIELD FAP07170
LGL 3 FAP07171
TIX *-2,4,1 FAP07172
LDQ BLANKS APPEND FOLLOWING BLANKS FAP07173
LGL 18 FAP07174
ORS OCTAL+3 INSERT IN LISTING WORD 4 FAP07175
TRA PRN05 FAP07176
REM FAP07177
REM PRINT SIGNED 35 BIT MACHINE INSTRUCTION FAP07178
PRNTI SXA PRNTX,4 SAVE CALLING LINKAGE FAP07179
LDQ BINRY LOAD INSTRUCTION FAP07180
CAL BLANK LOAD LEADING BLANK FAP07181
TQP *+3 IS INSTRUCTION NEGATIVE FAP07182
CAL MINUS YES, LOAD LEADING - FAP07183
LRS 0 DELETE SIGN FAP07184
ZET TYPAF IS THIS TYPE A INSTRUCTION FAP07185
TRA PRN01 YES FAP07186
AXT 4,4 NO, PREPARE TO CREATE 4 DIGIT OP FIELD FAP07187
ALS 3 CREATE ZONE FAP07188
LGL 3 SHIFT IN DIGIT FAP07189
TIX *-2,4,1 IS OP FIELD COMPLETE FAP07190
ALS 6 YES, APPEND BLANK FAP07191
ORA BLANK FAP07192
TRA PRN02 FAP07193
REM REENTRY FOR TYPE A INSTRUCTION FAP07194
PRN01 ALS 3 CREATE 1 DIGIT OP CODE FAP07195
LGL 3 FAP07196
AXT 3,4 PREPARE TO CREATE FIRST 3 DIGITS OF DECR FAP07197
NZT TYPKF IS THIS TYPE K DISK COMMAND FAP07198
TRA *+4 NO FAP07199
ALS 3 YES, CREATE SECOND DIGIT OF OPCODE FAP07200
LGL 3 FAP07201
AXT 2,4 PREPARE TO CREATE FIRST 2 DIGITS OF DECR FAP07202
ALS 6 APPEND BLANK FAP07203
ORA BLANK FAP07204
ALS 3 CREATE ZONE FAP07205
LGL 3 SHIFT IN DIGIT FAP07206
TIX *-2,4,1 IS FIELD COMPLETE FAP07207
REM REENTRY FOR TYPES B, D INSTRUCTIONS FAP07208
PRN02 ORS OCTAL+1 SET WORD 2 FAP07209
PXD ,0 FAP07210
LGL 3 CREATE LAST 2 DIGITS OF DECR FAP07211
ALS 3 FAP07212
LGL 3 FAP07213
ALS 6 FAP07214
ORA BLANK APPEND BLANK FAP07215
NZT TYPDF IS ADDRESS BOOLEAN (SIX DIGIT) FAP07216
TRA PRN03 NO FAP07217
ALS 6 YES, APPEND SECOND BLANK FAP07218
ORA BLANK FAP07219
ALS 3 CREATE LEADING DIGIT OF ADDRESS FIELD FAP07220
LGL 3 FAP07221
TRA PRN03+4 FAP07222
PRN03 ALS 3 CREATE TAG DIGIT FAP07223
LGL 3 FAP07224
ALS 6 APPEND BLANK FAP07225
ORA BLANK FAP07226
NZT OPFLG IS THIS OP DEFINITION FAP07227
STL PRTIF NO, SET MACHINE INSTRUCTION FLAG FAP07228
REM REENTRY FOR LOCATION FIELD RIGHT ADJUSTED FAP07229
PRN04 ALS 3 CREATE FIRST DIGIT OF ADDRESS FIELD FAP07230
LGL 3 (SECOND DIGIT OF BOOLEAN FIELD) FAP07231
ORS OCTAL+2 INSERT IN WORD 3 FAP07232
AXT 4,4 PREPARE TO CREATE LAST 4 DIGITS OF FIELD FAP07233
ALS 3 CREATE ZONE FAP07234
LGL 3 SHIFT IN DIGIT FAP07235
TIX *-2,4,1 IS FIELD COMPLETE FAP07236
LDQ BLANKS YES, APPEND FOLLOWING BLANKS FAP07237
LGL 12 FAP07238
ORS OCTAL+3 INSERT IN WORD 4 FAP07239
NZT PRTIF WAS THIS A MACHINE INSTRUCTION FAP07240
TRA PRN06 NO, DO NOT PRINT LOCATION FIELD LEFT ADJ FAP07241
REM (XR2, 1 NOT SIGNIFICANT) FAP07242
REM REENTRY FOR DATUM WORD FAP07243
PRN05 CLA LOCTR UPDATE PROGRAM COUNTER FAP07244
STO ADDRS FAP07245
CLA Q1 FAP07246
TSX BPCTR,4 *BUMP PROGRAM COUNTER FAP07247
LDQ ADDRS FAP07248
LGL 21 LEFT ADJUST PROGRAM COUNTER FAP07249
AXT 5,4 PREPARE TO CREATE 5 OCTAL DIGITS FAP07250
ALS 3 CREATE ZONE FAP07251
LGL 3 SHIFT IN DIGIT FAP07252
TIX *-2,4,1 IS LOCATION FIELD COMPLETE FAP07253
ALS 6 YES, APPEND FOLLOWING BLANK FAP07254
ORA BLANK FAP07255
SLW OCTAL INSERT IN WORD 1 FAP07256
SXA PRNTX+1,2 SAVE WORD COUNT FAP07257
SXA PRNTX+2,1 SAVE CHARACTER COUNT FAP07258
TSX STORE,4 *INSERT BINARY WORD INTO CARD IMAGE FAP07259
PRN06 LDI BCDBF+13 LOAD PASS 1 ERROR FLAGS FAP07260
RFT 4 IS FIELD ERROR FLAGGED FAP07261
STL ERRFF YES, SET FLAG FAP07262
RFT 100 IS MISSING VARIABLE FIELD FLAGGED FAP07263
STL ERRFA YES, SET FLAG FAP07264
TSX PRLST,4 *LIST THIS LINE FAP07265
IOLST IOCD OCTAL,,** PARAMETER FOR LENGTH OF LISTING LINE FAP07266
AXT 5,4 RESET LENGTH OF LINE TO SHORT LINE FAP07267
SXD IOLST,4 FOR GENERTED DATA FAP07268
STZ PRTIF RESET FLAG FAP07269
STZ TYPDF RESET BOOLEAN ADDRESS FLAG FAP07270
PRNTX AXT **,4 RELOAD CALLING LINKAGE FAP07271
AXT **,2 RELOAD WORD COUNT FAP07272
AXT **,1 RELOAD TABLE COUNT FAP07273
TRA 1,4 FAP07274
REM FAP07275
REM SUBROUTINE TO PRINT LISTING LINE FAP07276
PRLST SXA PRLSX,4 SAVE CALLING LINKAGE FAP07277
CAL 1,4 LOAD PARAMETER FAP07278
PDX ,2 LOAD WORD COUNT FAP07279
SXD PRL06+1,2 SET LENGTH OF LINE FAP07280
SUB Q2 FAP07281
STA PRL05 SET LOCATION OF BUFFER TO BE MOVED FAP07282
ZET ERFFM TEST NONFATAL FLAG M TSFAP07283
STL ONERR YES, SET FOR ERROR PRINT TSFAP07284
PXD ,0 FAP07285
LXD EFLST,4 LOAD LENGTH OF ERROR FLAG LIST FAP07286
PRL0B LDQ EFCHR,4 LOAD ERROR CHARACTER TSFAP07287
ZET EFLST,4 IS THIS ERROR FLAG SET FAP07288
LGL 6 YES, SHIFT IN NEXT FLAG FAP07289
STZ EFLST,4 RESET ERROR FLAG FAP07290
TZE PRL0A WAS THIS ERROR FOUND WNFAP07291
TXL PRL0C,4,EFLST-ERRFN YES, IS IT FATAL WNFAP07292
STL NOGOF YES, SET FATAL ERROR FLAG FAP07293
TRA *+2 SKIP NON-FATAL PRINT TEST WNFAP07294
PRL0C BRN *+2 SKIP PRINT IF SWITCH IS OFF WNFAP07295
STL ONERR AND SET FOR ERROR PRINT TSFAP07296
PRL0A TIX PRL0B,4,1 HAVE ALL FLAGS BEEN TESTED TSFAP07297
LDQ BLANKS YES, LOAD FOLLOWING BLANKS FAP07298
TZE PRL01 WERE THERE ANY ERRORS FAP07299
LGR 6 YES, LEFT ADJUST ERROR CHARACTERS FAP07300
TNZ *-1 FAP07301
CAL BLANK APPEND LEADING BLANK (PROGRAM CONTROL) FAP07302
LGR 6 FAP07303
TRA PRL02 FAP07304
REM NO ERRORS ON THIS STATEMENT FAP07305
PRL01 CAL UNLSF LOAD UNLIST FLAG FAP07306
TXL *+3,2,0 IS LINE BLANK FAP07307
TXH *+2,2,5 NO, IS LINE GENERATED DATA FAP07308
ORA TITLF YES, LOAD TITLE FLAG FAP07309
PMCSW TXH *+2,4,** IS THIS MACRO GENERATED CARD FAP07310
TXL PRLSX,,0 YES, SHOULD THIS CARD BE OMITTED FAP07311
TNZ PRLSX NO, IS THIS LINE SUPPRESSED FAP07312
REM REENTRY FOR ERROR ON STATEMENT FAP07313
PRL02 STQ BBUF21+1 SET FLAGS IN WORD 1 FAP07314
TXL PRL04+3,2,0 IS LINE BLANK FAP07315
TXL PRL03,2,18 NO, IS FULL CARD REQUESTED FAP07316
TSX LEVEL,4 *YES, INSERT MACRO LEVEL IN CC 81 - 84 FAP07317
REM COMPUTE ORIGIN AT END OF NONBLANK LINE FAP07318
PRL03 LDC PRL06+1,2 LOAD LENGTH OF LINE FAP07319
CAL* PRL05 LOAD NEXT WORD FAP07320
ERA BLANKS IS WORD BLANK FAP07321
TNZ PRL04 NO FAP07322
TXI *+1,2,1 YES, BUMP COUNT BACK ONE FAP07323
TXL *-4,2,-2 IS LINE ALL BLANKS (MINIMUM LENGTH OF LINEFAP07324
REM IS 3 WORDS, OCTAL, OCTAL+1 CANNOT BE FAP07325
REM NONBLANK IF REST OF LINE IS BLANK) FAP07326
AXT 0,2 YES, SET WORD COUNT FOR BLANK LINE FAP07327
REM END OF NONBLANK LINE FOUND FAP07328
PRL04 SXA *+1,2 COMPUTE NUMBER OF NONBLANK WORDS FAP07329
AXC **,4 INITIALIZE I/O COMMAND WORD COUNT FAP07330
SXD PRL06+1,4 FAP07331
REM REENTRY TO PRINT BLANK LINE FAP07332
TXL PRL06,2,0 IS LINE BLANK FAP07333
PRL05 CAL **,2 NO, MOVE NEXT WORD FAP07334
SLW BBUF21,2 INTO OUTPUT BUFFER FAP07335
TXI *+1,2,1 BUMP TO NEXT WORD FAP07336
TXL PRL05,2,-2 IS LINE MOVED FAP07337
CAL PRL06+1 PREFIX PZE TSFAP07338
ZET ONLNN IS AN ONLINE LISTING REQUESTED TSFAP07339
SSM YES, PREFIX MZE TSFAP07340
ZET ONERR IS ERROR LISTING REQUIRED TSFAP07341
SSM YES, PREFIX MZE TSFAP07342
STO PRL06+1 STORE PREFIX TSFAP07343
ZET ONLNN IS IT ONLINE REQUEST TSFAP07344
STL SHORTL YES, SET FOR SHORT LINE TSFAP07345
REM BUFFER IS COMPLETE FAP07346
PRL06 TSX FPRINT,4 *INITIATE THIS TRANSMISSION FAP07347
PZE BBUF21+1,,** FAP07348
PRLSX AXT **,4 RELOAD CALLING LINKAGE FAP07349
CAL UNL1F SET FLAG TO DELETE NEXT LINE FAP07350
SLW UNLSF (TO PRINT UNLIST AND DELETE LIST) FAP07351
STZ OCTAL+1 CLEAR OCTAL BUFFER FAP07352
STZ OCTAL+2 FAP07353
STZ OCTAL+3 FAP07354
STZ SHORTL RESTORE SWITCHES TSFAP07355
STZ ONERR TO CONTROL PRINT TSFAP07356
TRA 2,4 FAP07357
REM FAP07358
REM INSERT MACRO LEVEL INTO CARD COLUMNS 81 THRU 84 FAP07359
LEVEL SXA LEVLX,4 SAVE CALLING LINKAGE FAP07360
LDQ P2MSK LOAD FOLLOWING BLANKS FAP07361
CAL BCDBF+13 LOAD FLAGS FAP07362
ARS 8 SHIFT UP LEVEL NUMBER FAP07363
ANA Q127 MASK IN LEVEL NUMBER FAP07364
TZE LEVL1 IS THIS A MACRO GENERATED CARD FAP07365
LEVSW BRN LEVL1 BRANCH TO SKIP LEVEL, IF DESIRED WNFAP07366
TSX BCDCV,4 *YES, CONVERT TO DECIMAL FAP07367
LDQ BLANKS LOAD FOLLOWING BLANKS FAP07368
LGR 18 SHIFT OUT DIGIT FAP07369
CAL POINT LOAD DECIMAL POINT FAP07370
LGR 18 RIGHT ADJUST FAP07371
LEVL1 STQ NERAS HOLD CARD COLUMNS 81 THRU 84 FAP07372
CAL BCDBF+13 LOAD CARD WORD 14 FAP07373
ANA P1MSK MASK IN CARD COLUMNS 79 AMD 80 FAP07374
ORA NERAS COMBINE WITH CARD COLUMNS 81 THRU 84 FAP07375
SLW BCDBF+13 INSERT IN CARD WORD 14 FAP07376
LEVLX AXT **,4 RELOAD CALLING LINKAGE FAP07377
TRA 1,4 FAP07378
REM FAP07379
REM PUNCH ABSOLUTE TRANSFER CARD FAP07380
PCHTC SXA PCHTX,4 SAVE CALLING LINKAGE FAP07381
NZT LBLFLG IS CARD LABEL REQUESTED FAP07382
TRA PCHT1 NO FAP07383
AXT 8,4 YES, SAVE OLD SERIALIZATION FAP07384
CAL BMPBF+8,4 FAP07385
SLW BMPSV+8,4 FAP07386
CAL CIDBF+8,4 FAP07387
SLW CIDSV+8,4 FAP07388
TIX *-4,4,1 FAP07389
PCHT1 TSX PUNCH,4 *PUNCH LAST PARTIAL CARD FAP07390
CAL ERASE SET TRANSFER ADDRESS FAP07391
SLW PBUFF1 IN 9L ADDRESS FAP07392
NZT LBLFLG IS CARD LABEL REQUESTED FAP07393
TRA PCHTX NO FAP07394
LDQ PBUFF1 YES, LOAD TRANSFER ADDRESS FAP07395
LGL 21 LEFT ADJUST FAP07396
PXD ,0 FAP07397
AXT 5,4 CONVERT FIVE DIGITS TO OCTAL FAP07398
SXD PRNCI,4 AVOID PRINTING CARD ORIGIN FAP07399
ALS 3 FAP07400
LGL 3 FAP07401
TIX *-2,4,1 FAP07402
LGR 12 SHOVE 2 DIGITS OUT FAP07403
ORA L(TRA APPEND 'TRA' FAP07404
TSX IDENT,4 *CREATE CARD LABEL FAP07405
ZET LBLFG IS BINARY CARD SERIAL LISTING SUPPRESSED FAP07406
TSX PRNCS,4 *NO, PRINT CARD SERIAL NUMBER FAP07407
AXT 8,4 RESTORE OLD SERIALIZATION FAP07408
CAL BMPSV+8,4 FAP07409
SLW BMPBF+8,4 FAP07410
CAL CIDSV+8,4 FAP07411
SLW CIDBF+8,4 FAP07412
TIX *-4,4,1 FAP07413
PCHTX AXT **,4 RELOAD CALLING LINKAGE FAP07414
SXA STORX,4 FAP07415
TRA STR13 FAP07416
L(TRA BCI 1,TRA000 FAP07417
REM FAP07418
REM FORCE PUNCHING OF PARTIAL CARD FAP07419
PUNCH SXA STORX,4 SAVE CALLING LINKAGE FAP07420
ZET ABSFLG IS ASSEMBLY ABSOLUTE FAP07421
TRA PNCH1+2 YES FAP07422
LXA STR03,4 NO, LOAD CARD WORD COUNT FAP07423
PNCH1 TXL STR04,4,21 IS PROGRAM CARD EMPTY FAP07424
REM (WORD COUNT RESET TO 19 FOR REL CARD) FAP07425
REM (OR 0 IF A MAIN PROGRAM HAS 0 BREAK) (42)FAP07426
TRA STR08 YES FAP07427
REM PUNCH ABSOLUTE CARD FAP07428
LXA STR10,4 LOAD CARD WORD COUNT FAP07429
NZT FULMD IS CARD FUL FAP07430
TXL STR11,4,21 NO, IS ABS CARD EMPTY FAP07431
TXI *+1,4,2 YES, CARD IS FUL OR ABS CARD IS EMPTY FAP07432
TXL STR13,4,23 IS FUL CARD EMPTY FAP07433
TRA STR14 YES FAP07434
REM FAP07435
REM ENTER BINARY INSTRUCTION INTO CARD IMAGE FAP07436
STORE SXA STORX,4 SAVE CALLING LINKAGE FAP07437
TXH *+3,4,** IS THIS FIRST INSTRUCTION THIS CARD FAP07438
SXD *-1,0 YES, RESET SWITCH FAP07439
TSX PRNCS,4 *PRINT CARD SERIAL NUMBER FAP07440
ZET ABSFLG IS ASSEMBLY ABSOLUTE FAP07441
TRA STR10 YES FAP07442
SLN 1 NO, SET ADDRESS FLAG FAP07443
LXD INDIC,2 LOAD DECREMENT RELOCATION BITS FAP07444
STR01 AXT **,1 LOAD RELOCATION BIT COUNT FAP07445
TXL STR02,2,0 IS DECREMENT FIELD RELOCATABLE FAP07446
REM REENTRY FOR ADDRESS RELOCATION BITS FAP07447
TXI *+1,1,2 BUMP RELOCATION BIT COUNT FOR 10 OR 11 FAP07448
PXA ,2 RECALL RELOCATION BITS FAP07449
XCL FAP07450
PXD ,0 FAP07451
LGL 72,1 POSITION IN 8L OR 8R FAP07452
ORS RELBT INSERT IN 8L FAP07453
XCL FAP07454
ORS RELBT+1 OR 8R FAP07455
TRA STR02+1 FAP07456
REM REENTRY FOR NONRELOCATABLE DECREMENT FAP07457
STR02 TXI *+1,1,1 BUMP RELOCATION BIT COUNT FOR 0 FAP07458
SLT 1 IS ADDRESS DONE FAP07459
TRA *+4 YES FAP07460
LXA INDIC,2 NO, LOAD ADDRESS RELOCATION BITS FAP07461
TXH STR01+2,2,0 IS ADDRESS RELOCATABLE FAP07462
TXI *+1,1,1 NO, BUMP RELOCATION BIT COUNT FOR 0 FAP07463
TXL *+2,1,68 IS 8 ROW FULL OF RELOCATION BITS FAP07464
SLN 1 YES, SET FLAG FAP07465
SXA STR01,1 SAVE RELOCATION BIT COUNT FAP07466
STR03 AXT 20,4 LOAD CARD WORD COUNT FAP07467
CAL BINRY INSERT BINARY WORD FAP07468
SLW PBUFF1+24,4 INTO CARD IMAGE FAP07469
ACL CHKSM ADD INTO CHECKSUM FAP07470
SLW CHKSM FAP07471
SLT 1 IS 8 ROW (RELOCATION BITS) FULL FAP07472
TIX STR09+1,4,1 NO, IS CARD FULL FAP07473
TXI *+1,4,-1 YES BUMP CARD WORD COUNT FOR LAST WORD FAP07474
SXA STR03,4 FAP07475
REM REENTRY TO FORCE PUNCHING FAP07476
STR04 LAC STR03,4 LOAD CARD WORD COUNT FAP07477
TXI *+1,4,22 COMPUTE LENGTH OF PROGRAM CARD FAP07478
REM (WORD COUNT RESET TO 20, TRANSFER ADDRESS FAP07479
REM TO PUNCH REL CARD BY INIT) FAP07480
REM PUNCH PROGRAM CARD FAP07481
ZET MAINPF IS THIS MAIN PROGRAM FAP07482
TXI *+1,4,2 YES, BUMP LENGTH TO INCLUDE 7 ROW FAP07483
SXD PBUFF1,4 INSERT CARD WORD COUNT IN 9L DECREMENT FAP07484
PXA ,4 COMPUTE ORIGIN AT END OF CARD IMAGE FAP07485
ADD STR06 FAP07486
STA *+2 FAP07487
CAL PBUFF1 COMPUTE CHECKSUM FAP07488
ACL **,4 FAP07489
TIX *-1,4,1 FAP07490
SLW PBUFF1+1 FAP07491
TRA STR07 FAP07492
REM REENTRY FOR RELOCATABLE CARD FAP07493
STR05 PXD ,4 SET WORD COUNT FAP07494
ORA CTLWD LOAD ADDRESS, PREFIX PUNCH FAP07495
SLW PBUFF1 INTO 9L WORD FAP07496
ACL RELBT ADD RELOCATION BITS FAP07497
ACL RELBT+1 FAP07498
ACL CHKSM INTO CHECKSUM FAP07499
SLW PBUFF1+1 FAP07500
CAL RELBT MOVE RELOCATION BITS FAP07501
STR06 SLW PBUFF1+2 INTO 8 ROW FAP07502
CAL RELBT+1 FAP07503
SLW PBUFF1+3 FAP07504
REM REENTRY FOR PROGRAM CARD FAP07505
STR07 TSX WBINT,4 *WRITE CARD FAP07506
REM REENTRY FOR EMPTY CARD FORCED FAP07507
STR08 CAL P4 SET 9L PREFIX FOR PROGRAM CARD FAP07508
SLW PBUFF1 FAP07509
CAL CDCTR SET LOAD ADDRESS FOR NEXT CARD *FAP07510
STA CTLWD FAP07511
STZ CHKSM CLEAR WORKING CELLS FAP07512
STZ RELBT FAP07513
STZ RELBT+1 FAP07514
SXA STR01,0 RESET RELOCATION BIT COUNT FAP07515
STR09 AXT 22,4 RESET PROGRAM CARD WORD COUNT FAP07516
REM (RESET TO 20 FOR REL CARD BY INIT) FAP07517
REM REENTRY FOR PARTIAL CARD FAP07518
SXA STR03,4 FAP07519
TRA STORX FAP07520
REM FAP07521
REM PUNCH ABSOLUTE CARD FAP07522
STR10 AXT 22,4 LOAD CARD WORD COUNT FAP07523
ZET FULMD IS CARD FUL FAP07524
TXI STR12,4,2 YES FAP07525
CAL BINRY NO, INSERT BINARY WORD FAP07526
SLW PBUFF1+24,4 INTO CARD IMAGE FAP07527
ACL PBUFF1+1 ADD INTO CHECKSUM FAP07528
SLW PBUFF1+1 FAP07529
TIX STR15+1,4,1 IS CARD FULL FAP07530
SXA STR10,0 YES, RESET CARD WORD COUNT FAP07531
REM REENTRY TO FORCE PUNCHING OF ABS CARD FAP07532
STR11 LAC STR10,4 LOAD CARD WORD COUNT FAP07533
TXI *+1,4,22 COMPUTE LENGTH OF CARD FAP07534
PXD ,4 INSERT CARD WORD COUNT FAP07535
ORA PBUFF1 AND LOAD ADDRESS FAP07536
SLW PBUFF1 INTO 9L FAP07537
ACL PBUFF1+1 ADD INTO CHECKSUM FAP07538
SLW PBUFF1+1 FAP07539
TRA STR13 FAP07540
REM FUL CARD FAP07541
STR12 CAL BINRY INSERT BINARY WORD FAP07542
SLW PBUFF1+24,4 INTO CARD IMAGE FAP07543
TIX STR15,4,1 IS CARD FULL FAP07544
REM REENTRY FOR TCD, FORCE PUNCHING OF FUL CARD FAP07545
STR13 TSX WBINT,4 *WRITE CARD FAP07546
REM REENTRY FOR EMPTY CARD FORCED FAP07547
STR14 CAL CDCTR GET CURRENT LOAD ADDRESS FAP07548
NZT FULMD IS CARD FORMAT FULL FAP07549
STA PBUFF1 NO, SET LOAD ADDRESS IN 9L FAP07550
TSX SHIFT,4 *CONVERT TO OCTAL FAP07551
SLW CRDID+7 INSERT IN CARD ORIGIN MESSAGE FAP07552
AXT 22,4 RESET CARD WORD COUNT FAP07553
TRA STR15+1 FAP07554
REM REENTRY FOR FUL CARD FAP07555
STR15 TXI *+1,4,-2 BUMP CARD WORD COUNT BACK FAP07556
REM REENTRY FOR ABS CARD FAP07557
SXA STR10,4 RESET CARD WORD COUNT FAP07558
STORX AXT **,4 RELOAD CALLING LINKAGE FAP07559
TRA 1,4 FAP07560
REM FAP07561
REM WRITE CARD IMAGES ON BINARY OUTPUT/INTERMEDIATE TAPE FAP07562
WBINT SXA WBINX,4 SAVE CALLING LINKAGE FAP07563
CAL PBUFF1 HOLD PREFIX PUNCH FAP07564
AXT 27,4 LOAD BUFFER LENGTH FAP07565
LDQ PBUFF1+27,4 MOVE CARD IMAGE FAP07566
STQ PBUFF2+27,4 OUTPUT BUFFER TSFAP07567
STZ PBUFF1+27,4 CLEAR CARD IMAGE BUFFER FAP07568
TIX *-3,4,1 IS CARD COMPLETE TSFAP07569
STP PBUFF1 YES, RESTORE PREFIX PUNCH FAP07570
ZET FULMD NO, IS CARD FULL FAP07571
TRA *+6 YES FAP07572
CAL D320 NO, LOAD COLUMN BINARY BITS FAP07573
ORS PBUFF2 INSERT IN 9L TSFAP07574
ACL PBUFF2+1 ADD INTO CHECKSUM TSFAP07575
ZET PBUFF2+1 IS THIS TRANSFER CARD TSFAP07576
SLW PBUFF2+1 NO, INSERT IN 9R TSFAP07577
REM TSFAP07578
WBIN2 TSX WTBUF,4 MOVE TO DISK BUFFER LOFAP07579
SXD ENDF5,0 SET SWITCH FOR FILE NOT EMPTY TSFAP07580
ZET LBLFLG IS CARD LABEL REQUESTED TSFAP07581
TSX BMPID,4 *YES, INCREMENT SERIALIZATION FAP07582
WBINX AXT **,4 RELOAD CALLING LINKAGE FAP07583
TRA 1,4 FAP07584
REM FAP07585
REM CREATE CARD LABEL FAP07586
IDENT SXA IDENX,4 SAVE CALLING LINKAGE FAP07587
STQ ERASE SAVE LOW ORDER PORTION OF LABEL FAP07588
XCL RECALL HIGH ORDER PORTION OF LABEL FAP07589
AXT 1,4 SET CHARACTER COUNT TO LEFTMOST CHARACTER FAP07590
REM REENTRY TO CREATE NEXT DIGIT FAP07591
IDEN1 PXD ,0 FAP07592
LGL 6 LOAD CHARACTER FAP07593
LAS BLANK IS IT BLANK FAP07594
TRA *+2 NO FAP07595
PXD ,0 YES, DELETE IT FAP07596
SLW CIDBF+8,4 SAVE FOR LISTING FAP07597
LGR 4 GET ZONE FAP07598
PAX ,2 INTO XR2 FAP07599
PXD ,0 FAP07600
LGL 4 GET DIGITS FAP07601
PAX ,1 INTO XR1 FAP07602
CAL ZONER,2 PICK UP ZONE BITS (12,11,0) FAP07603
ANA Q7 MASK IN NO ZONE FAP07604
ALS 9 POSITION ZONE BITS FAP07605
ORA DIGIT,1 PICK UP DIGIT BITS (0,1,2,3,4,5,6,7,8,9) FAP07606
SLW BMPBF+8,4 INSERT NEXT CHARACTER FAP07607
TXI *+1,4,1 BUMP CHARACTER COUNT RIGHT ONE CHARACTER FAP07608
TXL IDEN1,4,6 IS WORD COMPLETE FAP07609
TXH *+2,4,7 YES, IS SECOND WORD STARTED FAP07610
LDQ ERASE NO, LOAD SECOND WORD FAP07611
TXL IDEN1,4,8 HAVE 8 CHARACTERS BEEN CREATED FAP07612
TSX PAKID,4 *YES, INSERT THEM IN LABEL FAP07613
IDENX AXT **,4 RELOAD CALLING LINKAGE FAP07614
TRA 1,4 FAP07615
REM FAP07616
REM INCREMENT CARD SERIALIZATION FAP07617
BMPID SXA BMPIX,4 SAVE CALLING LINKAGE FAP07618
AXT 8,4 PREPARE TO BUMP 8 DIGITS (CC 73 - 80) FAP07619
CAL BMPBF+8,4 LOAD NEXT MORE SIGNIFICANT DIGIT FAP07620
PAI FAP07621
RFT 6000 IS IT NONNUMERIC FAP07622
TRA BMPI2 YES FAP07623
RNT 1000 MAYBE, IS THERE A ZERO PUNCH FAP07624
TRA *+3 NO FAP07625
RFT 0777 YES, IS THERE A COCOLUMNAR DIGIT PUNCH FAP07626
TRA BMPI2 YES, IT IS NONNUMERIC FAP07627
RNT 0001 NO, IS DIGIT 9 FAP07628
TRA BMPI1 NO FAP07629
CAL DIGIT YES, PICK UP ZERO FAP07630
SLW BMPBF+8,4 RESET THIS ORDER DIGIT FAP07631
STZ CIDBF+8,4 FAP07632
TIX BMPID+2,4,1 HAVE ALL DIGITS BEEN RESET FAP07633
TRA BMPI2 YES FAP07634
BMPI1 ARS 1 BUMP THIS DIGIT FAP07635
SLW BMPBF+8,4 FAP07636
CAL CIDBF+8,4 FAP07637
ADD Q1 FAP07638
SLW CIDBF+8,4 FAP07639
BMPI2 TSX PAKID,4 *INSERT DIGITS IN CARD LABEL FAP07640
BMPIX AXT **,4 RELOAD CALLING LINKAGE FAP07641
TRA 1,4 FAP07642
REM FAP07643
REM PACK LABEL INTO CARD IMAGE BUFFER FAP07644
PAKID SXA PAKIX,4 SAVE CALLING LINKAGE FAP07645
AXT 3,4 PREPARE TO GENERATE 3 ID WORDS FAP07646
AXT 0,2 PREPARE TO PACK 3 CHARACTERS IN EACH WORD FAP07647
CAL BMPBF+7,2 PACK LEFTMOST CHARACTER FAP07648
ALS 12 FAP07649
ORA BMPBF+6,2 CENTERMOST CHARACTER FAP07650
ALS 12 FAP07651
ORA BMPBF+5,2 RIGHTMOST CHARACTER FAP07652
SLW IDBUFF+3,4 IN NEXT WORD FAP07653
TXI *+1,2,3 BUMP CHARACTER COUNT TO NEXT WORD FAP07654
TIX PAKID+3,4,1 HAVE ALL THREE WORDS BEEN PACKED FAP07655
NZT UNLSF YES, IS UNLIST FLAG ON FAP07656
NZT LBLFG NO, IS LABEL DELETED FAP07657
TRA PAKIX YES FAP07658
AXT 0,4 NO, PREPARE TO PACK SIX CHARACTERS FAP07659
CAL CIDBF+7 LOAD FIRST CHARACTER FAP07660
ALS 6 FAP07661
ORA CIDBF+6,4 APPEND NEXT FIVE CHARACTERS FAP07662
TXI *+1,4,1 FAP07663
TXL *-3,4,4 FAP07664
SLW CRDID+3 INSERT IN WORD FOUR FAP07665
CAL CIDBF+1 LOAD CHARACTER SEVEN FAP07666
ALS 6 FAP07667
ORA CIDBF APPEND CHARACTER EIGHT FAP07668
LDQ BLANKS APPEND FOLLOWING BLANKS FAP07669
LGL 24 LEFT ADJUST FAP07670
SLW CRDID+4 INSERT IN WORD FIVE FAP07671
AXT -1,4 SET NEW CARD SERIAL NUMBER SWITCH FAP07672
SXD STORE+1,4 FAP07673
CAL LBLDF DELETE FIRST CARD FLAG FAP07674
ANS LBLFG FAP07675
TRA *+2 FAP07676
PAK01 SXA PAKIX,4 ENTRY FOR BES, BSS WITH EMPTY FIELD FAP07677
TRA *+5 PREPARE TO PRINT CARD LABEL *FAP07678
CAL LOCTR LOAD PROGRAM COUNTER FAP07679
ANA ADDMK DELETE RELOCATION BIT FAP07680
ERA CDCTR IS CARD UNDER CONTROL OF LOC FAP07681
TRA PAKPC NO *FAP07682
CAL CDCTR YES, LOAD ORIGIN OF NEXT CARD FAP07683
TSX SHIFT,4 *CONVERT TO OCTAL FAP07684
SLW CRDID+7 INSERT IN WORD 6 FAP07685
AXT 8,4 PREPARE TO APPEND CARD ORIGIN TO LABEL FAP07686
SXD PRNCI,4 INITIALIZE PARAMETER WORD COUNT FAP07687
PAKIX AXT **,4 RELOAD CALLING LINKAGE FAP07688
TRA 1,4 FAP07689
LBLDF OCT 777777777776 FAP07690
REM FAP07691
REM PRINT CARD SERIAL NUMBER FAP07692
PRNCS ZET UNLSF IS UNLIST FLAG SET FAP07693
TRA PRNCX+1 YES FAP07694
TRA PAK01+2 NO *FAP07695
TSX FPRINT,4 *PRINT BLANK LINE FAP07696
PZE FAP07697
TSX FPRINT,4 *PRINT CARD SERIAL NUMBER FAP07698
PRNCI PZE CRDID,,** FAP07699
PRNCX AXT **,4 RELOAD CALLING LINKAGE FAP07700
TRA 1,4 FAP07701
REM FAP07702
REM SUBROUTINE TO ASSEMBLE OCTAL DEFINITIONS FAP07703
SHIFT SXA SHIFX,4 SAVE CALLING LINKAGE FAP07704
LGR 18 LEFT ADJUST LOCATION *FAP07705
STA DCBFG INITIALIZE LOC. OF NEXT REFERENCE *FAP07706
AXT ,0 *FAP07707
AXT 6,4 SCAN SIX OCTAL DIGITS *FAP07708
ZAC *FAP07709
LGL 3 LOAD NEXT DIGIT FAP07710
TNZ *+2 DOES IT EXIST FAP07711
TIX *-2,4,1 NO, TRY AGAIN FAP07712
LGR 3 SAVE NONZERO DIGIT FAP07713
CAL BLANKS APPEND LEADING BLANKS FAP07714
ALS 3 CREATE ZONE FAP07715
LGL 3 SHIFT IN DIGIT FAP07716
TIX *-2,4,1 IS OCTAL DEFINITION COMPLETE FAP07717
SHIFX AXT **,4 YES, RELOAD CALLING LINKAGE FAP07718
TRA 1,4 FAP07719
REM FAP07720
REM FAP07721
REM FAP07722
REM INPUT/OUTPUT SUBROUTINES FAP07723
REM FAP07724
REM READ CARD FROM INTERMEDIATE OR DUP BUFFER TSFAP07725
INPUT SXA INPTX,4 SAVE CALLING LINKAGE TSFAP07726
ZET DUPSW TEST SWITCH TSFAP07727
TRA INPU8 CARD FROM DUP BUFFER TSFAP07728
TSX INPFL,4 CARD FROM INTERM FILE TSFAP07729
ZET DUPMD IS THIS WITHIN RANGE OF A DUP TSFAP07730
TRA INPU1 YES, SAVE IN DUP BUFFER TSFAP07731
INPTY CAL BCDBF+13 SAVE PASS 1 FLAGS TSFAP07732
SLW DELFLG TSFAP07733
INPTX AXT **,4 RESTORE CALLING LINKAGE TSFAP07734
TRA 1,4 RETURN TSFAP07735
REM FIRST DUP ITERATION, MOVE CARD TO DUP BUFFER TSFAP07736
INPU1 AXT **,4 POSITION IN DUP BUFFER TSFAP07737
TXI *+1,4,INPRCL INCREASE POSITION TSFAP07738
TXH INPU4,4,DUPEND+1 TEST BUFFER OVERFLOW TSFAP07739
SXA INPU1,4 SAVE NEW POSITION TSFAP07740
SXA INPU2,4 TSFAP07741
AXT INPRCL,4 MOVE ONE CARD TSFAP07742
CLA BCDBF+INPRCL,4 FROM INPUT BUFFER TSFAP07743
INPU2 STO **,4 TO DUP BUFFER TSFAP07744
TIX *-2,4,1 TSFAP07745
TRA INPTY AND RETURN TSFAP07746
REM LATER ITERATIONS, MOVE CARD FROM DUP BUFFER TSFAP07747
INPU8 AXT **,4 POSITION IN DUP BUFFER TSFAP07748
TXI *+1,4,INPRCL INCREASE POSITION TSFAP07749
SXA INPU8,4 SAVE NEW POSITION TSFAP07750
SXA INPU9,4 TSFAP07751
AXT INPRCL,4 MOVE ONE CARD TSFAP07752
INPU9 CLA **,4 FROM DUP BUFFER TSFAP07753
STO BCDBF+INPRCL,4 TO INPUT BUFFER TSFAP07754
TIX *-2,4,1 TSFAP07755
TRA INPTY AND RETURN TSFAP07756
INPU4 WRFLXM INPU5,6 BUFFER OVERFLOW, TSFAP07757
TRA (SECL) GO TO SOURCE ERROR TSFAP07758
INPU5 BCI 6,RANGE OF DUP TOO LARGE FOR BUFFER TSFAP07759
REM TSFAP07760
REM UNPACK INTERMEDIATE FILE BUFFER TSFAP07761
INPFL TRA *+1 OR GO TO ENDFA WHEN FINISHED LOFAP07762
SXA INPFX,4 LOFAP07763
TSX READK,4 READ ONE CARD LOFAP07764
PZE BCDBF,,INPRCL INTO WORKING BUFFER LOFAP07765
TZE *+3 TEST END OF FILE, NO LOFAP07766
AXT ENDFA,4 YES, SET FOR EXIT NEXT TIME LOFAP07767
SXA INPFL,4 LOFAP07768
LDI BCDBF+13 LOFAP07769
LNT 77 WAS THIS AN INPUT CARD LOFAP07770
TRA INPFY NO LOFAP07771
RIL 17 YES, RESTORE BCD BLANK LOFAP07772
STI BCDBF+13 LOFAP07773
INPFZ LXA RECNO,4 AND INCREASE RECORD COUNT LOFAP07774
TXI *+1,4,1 FOR ERROR PRINT LOFAP07775
SXA RECNO,4 LOFAP07776
INPFX AXT **,4 TSFAP07777
TRA 1,4 TSFAP07778
REM FAP07779
INPFY CAL BCDBF+1 PICKUP OPCODE (BEWARE OF UGLINESS) WNFAP07780
ERA ENDCD IS IT 'END' (Q.) WNFAP07781
ANA 1$PKMSK .. WNFAP07782
TZE INPFZ YES, COUNT AS INPUT (SOURCE) CARD WNFAP07783
TRA INPFX NO, FORGET IT, JUST AN ORDINARY MACRO CD WNFAP07784
REM FAP07785
REM TSFAP07786
EJECT LOFAP07787
REM SUBROUTINES FOR PASS 2 DOUBLE BUFFERED DISK WRITE LOFAP07788
* FAP07789
*SUBROUTINE STFIL OPENS FILE FOR WRITING (REPLACES .ASIGN) LOFAP07790
*AND INITIALIZES WRITE SUBROUTINES WTBUF AND WTDSK. LOFAP07791
*CALLING SEQUENCE TSX STFIL,4 LOFAP07792
* PZE TEMBSS,,28 FOR BSS FILE LOFAP07793
* (PZE TEMSYM,,14 FOR SYMTB FILE) LOFAP07794
*BSS FILE IS CLOSED BEFORE SYMTB FILE IS OPENED, HENCE BOTH USE LOFAP07795
*SAME BUFFERS, INCLUDING PBUFF2 CONTAINING WORDS TO WRITE. LOFAP07796
* FAP07797
STFIL SXA STFLX,4 LOFAP07798
SXA WTBF0,0 INITIALIZE POSITION IN DISK BUFFER LOFAP07799
CLA 1,4 GET CALLING SEQUENCE LOFAP07800
PDX ,4 LOFAP07801
SXA WTBF0+1,4 NO. OF WORDS TO WRITE LOFAP07802
TXI *+1,4,PBUFF2 LOFAP07803
SXA WTBF2,4 LOFAP07804
PAX ,4 THE FILE NAME LOFAP07805
SXA STFL1,4 OPEN LOFAP07806
SXA STFL2,4 BUFFER LOFAP07807
SXA WTDS2,4 WRFILE LOFAP07808
TSX OPEN,4 OPEN THE FILE LOFAP07809
BRN DSQW FOR WRITING LOFAP07810
STFL1 BRN ** LOFAP07811
BRN FAPTEM NAME FAPTEM FOR BOTH LOFAP07812
BRN Q1 IN TEMPORARY MODE LOFAP07813
BRN Q2 ON THE DISK LOFAP07814
BRN DSERN LOFAP07815
TSX BUFFER,4 ASSIGN BUFFER TO SUPERVISOR LOFAP07816
STFL2 BRN ** LOFAP07817
BRN FAPTEM LOFAP07818
BRN INBUF2,,DSKBKL LOFAP07819
BRN DSERN LOFAP07820
STFLX AXT **,4 LOFAP07821
TRA 2,4 RETURN LOFAP07822
* FAP07823
*SUBROUTINE WTBUF MOVES WORDS TO DISK BUFFER (REPLACES .WRITE) LOFAP07824
*DOUBLE BUFFERED WRITE, DISK BUFFER ADDRESSES CHANGED BY WTDSK. LOFAP07825
* FAP07826
WTBUF SXA WTBFX,1 SAVE XRS LOFAP07827
SXA WTBFX+1,2 LOFAP07828
SXA WTBFX+2,4 LOFAP07829
WTBF0 AXT **,1 XR1 = POSITION IN DISK BUFFER LOFAP07830
AXT **,2 XR2 = 28 OR 14 LOFAP07831
WTBF1 TXH WTBF2,1,-DSKBKL LOOP, TEST BUFFER FULL LOFAP07832
TXL WTBF2,1,0 NO, CONTINUE LOFAP07833
SXA WTBF0,1 LOFAP07834
TSX WTDSK,4 YES, GO WRITE DISK LOFAP07835
WTBF2 CAL **,2 MOVE WORD FROM PBUFF2 LOFAP07836
WTBF3 SLW WBUFF1,1 TO DISK BUFFER LOFAP07837
TXI *+1,1,-1 LOFAP07838
TIX WTBF1,2,1 LOFAP07839
SXA WTBF0,1 SAVE NEW POSITION IN DISK BUFFER LOFAP07840
WTBFX AXT **,1 LOFAP07841
AXT **,2 LOFAP07842
AXT **,4 LOFAP07843
TRA 1,4 RETURN LOFAP07844
* FAP07845
*SUBROUTINE WTDSK WRITES 432 WORDS TO DISK. LOFAP07846
* FAP07847
WTDSK SXA WTDSX,4 LOFAP07848
LAC WTBF0,1 XR1 = NO. OF WORDS TO WRITE LOFAP07849
TXL WTDSX,1,0 LOFAP07850
SXD WTDS0,1 LOFAP07851
LXA WTDS0,4 EXCHANGE THE BUFFERS LOFAP07852
CLA WTBF3 WBUFF1 OR WBUFF2 LOFAP07853
STA WTDS0 LOFAP07854
SXA WTBF3,4 LOFAP07855
TSX WRFILE,4 WRITE THE DISK LOFAP07856
WTDS2 BRN ** LOFAP07857
BRN FAPTEM LOFAP07858
BRN Q0 LOFAP07859
WTDS0 BRN WBUFF2,,** 432 WORDS EXCEPT LAST PARTIAL BLOCK LOFAP07860
BRN DSERN APPENDING, NO EOF LOFAP07861
BRN P4 LOFAP07862
BRN DSERN LOFAP07863
AXT 0,1 NEW POSITION IN DISK BUFFER LOFAP07864
SXA WTBF0,1 LOFAP07865
WTDSX AXT **,4 LOFAP07866
TRA 1,4 RETURN LOFAP07867
REM FAP07868
TTL PASS TWO CONTROL FAP07869
START TSX OPEN,4 OPEN THE INTERM FILE LOFAP07870
BRN DSQR FOR READING LOFAP07871
BRN INTERM LOFAP07872
BRN FAPTEM LOFAP07873
BRN P4 LOFAP07874
BRN P4 LOFAP07875
BRN DSERN LOFAP07876
*INITIALIZE READ SUBROUTINES READK AND RDFIL. LOFAP07877
AXT INTERM,4 THE FILE NAME LOFAP07878
SXA RDFL0,4 SET RDFIL SUBROUTINE LOFAP07879
AXT FAPTEM,4 LOFAP07880
SXA RDFL0+1,4 LOFAP07881
AXT RBUFF1,4 NAME OF DISK BUFFER LOFAP07882
SXA RDFL1,4 SET RDFIL SUBROUTINE LOFAP07883
SXA REDK3,4 SET READK SUBROUTINE LOFAP07884
STZ RDEFT INITIALIZE EOF FLAG LOFAP07885
SXA REDK0,0 SET BUFFER EMPTY IN READK LOFAP07886
AXT ENDFA,4 SET EOF EXIT FROM RDFIL FAP07887
SXA RDFL2,4 WHEN ZERO WORDS READ FAP07888
REM TSFAP07889
REM START THE BINARY OUTPUT TAPE AS TEMPORARY FILE TSFAP07890
REM TSFAP07891
TSX STFIL,4 OPEN THE BSS FILE LOFAP07892
PZE TEMBSS,,28 LOFAP07893
TSX OPEN,4 OPEN THE BCD FILE LOFAP07894
BRN DSQW FOR WRITING LOFAP07895
BRN TEMBCD LOFAP07896
BRN FAPTEM LOFAP07897
BRN Q1 IN TEMPORARY MODE LOFAP07898
BRN Q2 ON THE DISK LOFAP07899
BRN DSERN LOFAP07900
TSX BUFFER,4 ASSIGN BUFFER TO SUPARVISOR LOFAP07901
BRN TEMBCD LOFAP07902
BRN FAPTEM LOFAP07903
BRN WBUFF5,,DSKBKL LOFAP07904
BRN DSERN LOFAP07905
REM TSFAP07906
AXT SSYMT,4 CALL PASS 2 SUBROUTINE SSYMT TSFAP07907
SXA FSSYMT,4 IN COMMON ROUTINES TSFAP07908
STZ RECNO RECORD COUNT = ZERO LOFAP07909
LXD EFLST,4 RESET STRAY ERROR FLAGS LEFT ON IN PASS 1 FAP07910
STZ EFLST,4 FAP07911
TIX *-1,4,1 FAP07912
STZ BHEAD RESET HANGING HEADING CHARACTER FAP07913
LXD SYMSIZ,4 BUMP COUNT PAST 0 FAP07914
TXI *+1,4,2 IN CASE OF UNDEFINED SYMBOLS FAP07915
SXD SYMSIZ,4 FAP07916
TXI *+1,4,-LSMTBM+LUDTBM+1 COMPUTE LENGTH OF REF TABLE FAP07917
SXD EREF4+3,4 SET TEST FOR REFERENCE TABLE OVERFLOW FAP07918
LDC SYMSIZ,4 INITIALIZE TEST FAP07919
SXD SUDS1,4 FOR END OF SEARCH OF UNDEF SYMBOL TABLE FAP07920
TXI *+1,4,1 FAP07921
SXD SSYM1,4 FOR END OF SEARCH OF SYMBOL TABLE FAP07922
TXI *+1,4,-LUDTBM COMPUTE END OF UNDEFINED SYMBOL TABLE FAP07923
TXH *+5,4,-LSMTBM IS THIS LONGER THAN SPACE AVAILABLE FAP07924
AXT SSYMX,4 YES, DELETE SYMBOLIC REFERENCE TABLE FAP07925
SXA EREF0,4 FAP07926
SXD PREF9,0 SET SWITCH TO PRINT TABLE DELETED FAP07927
AXT -LSMTBM,4 RESET END OF UNDEFINED SYMBOL TABLE FAP07928
SXD SUDS1+5,4 FOR TEST FOR UNDEF SYMBOL TABLE OVERFLOW FAP07929
SXD EREF4,4 FOR TEST FOR END OF UNDEF REFERENCE TABLE FAP07930
PXA ,4 FAP07931
PAC ,4 FAP07932
TXI *+1,4,SYMTBL+1 COMPUTE ORIGIN OF SYMBOLIC REF TABLE FAP07933
SXA EREF0+1,4 FAP07934
SXA EREF1+2,4 FAP07935
SXA EREF1+5,4 FAP07936
SXA EREF1+7,4 FAP07937
SXA EREF2,4 FAP07938
SXA EREF2+5,4 FAP07939
SXA EREF3+2,4 FAP07940
TXL *+4,4,SYMTBL+LSMTBM/2 TEST POINTER TABLE OVERFLOW *FAP07941
AXT SSYMX,4 YES, DELETE SYMBOLIC REFERENCE TABLE FAP07942
SXA EREF0,4 FAP07943
SXD PREF9,0 SET SWITCH TO PRINT TABLE DELETED FAP07944
LAC EREF0+1,4 LOAD ORIGIN OF POINTER TABLE FAP07945
RELD14 SYN * TSFAP07946
TNX *+3,4,0 -VECTOR COMPUTE SPACE AVAILABLE TO REF TBL TSFAP07947
STZ VECTOR,4 CLEAR SPACE FOR REFERENCE TABLE FAP07948
TIX *-1,4,1 FAP07949
LDC LITSIZ,4 INITIALIZE TEST FAP07950
TXI *+1,4,-1 FAP07951
SXD SLIT1,4 FOR END OF SEARCH OF LITERAL TABLE FAP07952
LXD LITSIZ,4 LOAD COUNT OF LITERAL TABLE FAP07953
SXD *+3,4 INITIALIZE PROGRAM BREAK COMPUTATION FAP07954
LXA PBUFF1+2,4 LOAD TOP OF VECTOR, PROLOG AND CODING FAP07955
SXD SLIT3,4 INITIALIZE COMPUTATION FOR LOC OF LITERAL FAP07956
TXI *+1,4,** BUMP BY LENGTH OF LITERAL TABLE FAP07957
SXA PBUFF1+2,4 RESET PROGRAM BREAK FAP07958
SXA PRGBK,4 FAP07959
SXA LOCTR,0 RESET PROGRAM COUNTER FAP07960
SXA CDCTR,0 RESET CARD ORIGIN COUNTER FAP07961
ZET ABSFLG IS ASSEMBLY ABSOLUTE FAP07962
TRA PTCHY YES, GO TO PATCH (41)FAP07963
STRTY LXD PBUFF1+2,4 LOAD TRANSFER VECTOR LENGTH TSFAP07964
SXA INIT1,4 INITIALIZE TEST FOR TRANSFER VECTOR FAP07965
NZT LBLFLG IS CARD LABEL REQUESTED FAP07966
TRA STRT1 FAP07967
CAL PGHDNG+1 LOAD LABEL, 5 CHARACTERS FROM WORD 1 FAP07968
LDQ PGHDNG+2 1 CHARACTER FROM WORD 2 FAP07969
LGL 6 LEFT ADJUST FAP07970
LDQ Q0 DELETE CC 8 - 9 FAP07971
TSX IDENT,4 *INSERT IN CARD LABEL FAP07972
STRT1 SYN * TSFAP07973
STZ TTLFG RESET PASS 1 SUBHEADING FAP07974
SXA PAGENO,0 RESET PAGE NUMBER FAP07975
SXA PAGCNT,0 EJECT PAGE FAP07976
TRA READ0 FAP07977
REM FAP07978
REM CARD IS WITHIN RANGE OF DUP FAP07979
DUPCD AXT **,1 LOAD REMAINING RANGE OF DUP+1 FAP07980
TXI *+1,1,-1 BUMP RANGE OF DUP FAP07981
SXA DUPCD,1 RESET REMAINDER OF DUP FAP07982
DUPC0 AXT **,4 SET LENGTH OF LISTING LINE TO LONG FOR FAP07983
SXD IOLST,4 FIRST ITERATION, SHORT FOR SUBSEQUENT FAP07984
TXH READ2,1,1 IS REMAINDER OF DUP LONGER THAN ONE CARD FAP07985
DUPC4 TXH DUPC1,4,** NO, IS THIS ITERATION OF ONE CARD DUP TSFAP07986
TXL DUPC7,1,0 NO, IS THIS LAST CARD IN DUP TSFAP07987
TRA READ2 YES, BYPASS LOOK AHEAD BUFFERING TSFAP07988
REM RANGE OF DUP IS EXHAUSTED FAP07989
DUPC7 AXT 5,4 RESET LENGTH OF LISTING LINE TO SHORT TSFAP07990
SXA DUPC0,4 FOR SUCCESSIVE ITERATIONS OF DUP FAP07991
SXD IOLST,4 FAP07992
DUPC1 AXT **,1 LOAD RANGE OF DUP FAP07993
TXL DUPC3+1,1,0 IS DUP EXHAUSTED FAP07994
TXL DUPC5,1,1 IS DUP LONGER THAN ONE CARD TSFAP07995
STL DUPSW YES, SETS SWITCH IN INTERMEDIATE TAPE SBRTSFAP07996
AXT DUPBUF,4 TSFAP07997
SXA INPU8,4 TSFAP07998
SXA INPU1,4 TSFAP07999
TRA DUPC6 TSFAP08000
REM ONE CARD DUP FAP08001
DUPC5 SXD DUPC4,0 SET ONE CARD DUP ITERATION SWITCH TSFAP08002
CAL DELFLG MOVE PASS ONE FLAGS FAP08003
SLW BCDBF+13 TO WORKING BUFFER FAP08004
REM REENTRY FOR MULTICARD DUP FAP08005
DUPC6 TXI *+1,1,1 BUMP TO RANGE+1 TSFAP08006
SXA DUPCD,1 RESET REMAINING RANGE OF DUP+1 FAP08007
DUPC2 AXT **,1 LOAD ITERATIONS OF DUP FAP08008
TXI *+1,1,-1 BUMP DOWN FAP08009
SXA DUPC2,1 RESET ITERATIONS OF DUP FAP08010
TXH DUPC3,1,0 IS DUP EXHAUSTED TSFAP08011
SXA DUPC1,0 YES, SET SWITCH FAP08012
DUPC3 TRA ** TO READ0 MULTICARD, CNTRL ONE CARD DUP FAP08013
REM DUP IS COMPLETE FAP08014
STZ DUPMD RESET FLAG FAP08015
STZ DUPSW RESET FLAG TSFAP08016
REM FAP08017
REM INITIALIZE LOOKAHEAD BUFFERING FAP08018
READ0 SYN * TSFAP08019
READ1 SYN * TSFAP08020
ZET DUPMD IS NEXT CARD WITHIN RANGE OF DUP FAP08021
TRA DUPCD YES FAP08022
AXT 19,4 NO, SET LENGTH OF LISTING LINE FAP08023
SXD IOLST,4 TO LONG LINE FAP08024
REM REENTRY FOR CARD WITHIN RANGE OF DUP FAP08025
READ2 TSX INPUT,4 *LOAD NEXT BUFFER FAP08026
REM REENTRY FOR LAST CARD IN RANGE OF DUP FAP08027
CNTRL SLF RESET FLAGS FAP08028
STZ INDIC RESET RELOCATABLE FIELD INDICATOR FAP08029
STZ SYMB2 RESET HIGH ORDER HALF OF ELEMENT FAP08030
CLA LOCTR UPDATE PROGRAM COUNTER FAP08031
STO ADDRS FAP08032
LDI BCDBF+13 LOAD FLAGS *FAP08033
ZSD PMCSW RESET MACRO GENERATED CARD SWITCH *FAP08034
AXT -1,4 *FAP08035
RFT 40 IS THIS MACRO GENERATED *FAP08036
SXD PMCSW,4 YES SET MACRO GENERATED SWITCH *FAP08037
TSX SETUP,4 *SET UP VARIABLE FIELD *FAP08038
TRA PHASE+4 CARD IS COMMENTS CARD *FAP08039
TRA OPERR **OP FIELD IS IN ERROR *FAP08040
RFT 1 IS PHASE ERROR FLAGGED *FAP08041
TRA PHASE **YES, OMIT PROCESSING OF CARD *FAP08042
RFT 20 NO, IS THIS UNDEFINED PSEUDOPERATION *FAP08043
OPERR STL OPRFG YES, SET FLAG *FAP08044
REM PUNCH PROGRAM CARD, PUBLISH TRANSFER VECTOR FAP08045
INIT0 TXH INIT5+2,4,-1 IS INITIALIZATION COMPLETE FAP08046
ZET ABSFLG NO, IS ASSEMBLY RELOCATABLE FAP08047
TRA INIT5 NO FAP08048
LDI OPBIN YES, LOAD OPCODE OR PSEUDOOP TRANSFER FAP08049
NZT OPRFG IS THIS UNDEFINED PSEUDOOPERATION FAP08050
RFT 100000 NO, IS THIS DEFINED MACHINE INSTRUCTION FAP08051
TRA *+3 YES, PUNCH OUT PROGRAM CARD FAP08052
LFT 400000 NO, MAY THIS PSEUDOOP PRECEDE ENTRY CARD FAP08053
TRA PSOPT YES, HOLD UP ON PROGRAM CARD FAP08054
REM AFTER ALL ENTRY CARDS INITIALIZATION MAY PROCEDE FAP08055
ZET MAINPF IS THIS A MAIN PROGRAM FAP08056
NZT LBLFG YES, IS CARD LABEL LISTING REQUESTED FAP08057
TRA *+5 NO FAP08058
TSX PRNCS,4 *YES, PRINT CARD LABEL FAP08059
TSX PRLST,4 *PRINT 'PROGRAM CARD' FAP08060
IOCD PCTIT,,4 FAP08061
SXD INIT4,0 FORCE BLANK LINE FAP08062
AXT 20,4 FAP08063
TRA INITR *FAP08064
INITS ZSA ADDRS (42)FAP08065
TSX PUNCH,4 *PUNCH PROGRAM CARD FAP08066
AXT 19,4 FAP08067
SXD PNCH1,4 RESET FULL CARD TEST FOR RELOCATABLE FAP08068
AXT 20,4 FAP08069
SXD STR04+1,4 RESET COMPUTATION FOR LENGTH OF REL CARD FAP08070
AXT STR05,4 RESET TRANSFER ADDRESS FOR REL CARD FAP08071
SXA STR04+1,4 BYPASSING PROGRAM CARD ROUTINE FAP08072
CAL BCDBF SAVE LOCATION FIELD FAP08073
TRA INITA *FAP08074
INIT1 AXC **,1 LOAD LENGTH OF TRANSFER VECTOR FAP08075
TXL INIT3+1,1,0 IS TRANSFER VECTOR EMPTY FAP08076
SXD INIT3,1 SET END OF PUBLISH LOOP FAP08077
TSX PRLST,4 *PRINT BLANK LINE FAP08078
PZE FAP08079
TSX PRLST,4 *PRINT TRANSFER VECTOR TITLE FAP08080
IOCD TVTIT,,5 FAP08081
SXD INIT4,0 FORCE BLANK LINE FAP08082
AXT 0,1 START AT BOTTOM OF LIST FAP08083
INIT2 CAL VECTOR,1 LOAD NEXT NAME IN TRANSFER VECTOR FAP08084
SLW BCDBF INSERT IN LISTING FAP08085
SLW BINRY INSERT IN BINARY WORD FAP08086
AXT 6,4 SET LENGTH OF LINE FAP08087
SXD IOLST,4 TO PRINT OCTAL EXPANSION AND VECTOR NAME FAP08088
TSX PRNTW,4 *LIST AND PUNCH THIS DATUM WORD FAP08089
TXI *+1,1,-1 BUMP TO NEXT NAME FAP08090
INIT3 TXH INIT2,1,** IS TRANSFER VECTOR EXHAUSTED FAP08091
TRA INITE YES, GO TEST FOR EVEN *FAP08092
SLW BCDBF FAP08093
NZT MAINPF IS THIS MAIN PROGRAM FAP08094
NZT SEPFLG YES, IS STANDARD ERROR PROCEDURE REQUESTD FAP08095
TRA INITC NO *FAP08096
CAL LOCTR YES, COMPUTE LINKAGE DIRECTOR FAP08097
ANA ADDMK FAP08098
SSM APPEND RELOCATION BIT FAP08099
STO LINKG FAP08100
TSX PRLST,4 *PRINT BLANK LINE FAP08101
PZE FAP08102
TSX PRLST,4 *PRINT LINKAGE TITLE FAP08103
IOCD LDTIT,,5 FAP08104
SXD INIT4,0 FORCE BLANK LINE FAP08105
AXT 5,4 SET LENGTH OF LINE FAP08106
SXD IOLST,4 TO PRINT OCTAL EXPANSION FAP08107
STZ BINRY PREPARE PZE FAP08108
TSX PRNTW,4 *LIST AND PUNCH THIS DATUM WORD FAP08109
CAL ENTNM INSERT MAIN ENTRY POINT NAME *FAP08110
SLW BINRY FAP08111
TRA INITB *FAP08112
INIT4 TXL *+3,4,-1 SHOULD A BLANK LINE BE PRINTED FAP08113
TSX PRLST,4 *YES, PRINT BLANK LINE FAP08114
PZE FAP08115
AXT 19,4 RESET LENGTH OF LISTING LINE FAP08116
SXD IOLST,4 TO LONG LINE FAP08117
CLA LOCTR UPDATE PROGRAM COUNTER FAP08118
STO ADDRS FAP08119
CAL OPCOD RELOAD OP CODE FAP08120
LXD VRFLD,2 RELOAD WORD COUNT FAP08121
LXA VRFLD,1 RELOAD CHARACTER COUNT FAP08122
INIT5 SXD INIT0,0 RESET SWITCH FAP08123
SXD LBL02,0 PERMIT LBL TO PUNCH PARTIAL CARD FAP08124
REM END OF INITIALIZATION FAP08125
STZ TYPKF RESET DISK COMMAND FLAG FAP08126
STZ TYPDF RESET TYPE D SENSE OPERATION FLAG FAP08127
STZ TYPCF RESET COUNT FIELD INSTRUCTION FLAG FAP08128
ZET OPRFG IS THIS UNDEFINED OPERATION FAP08129
TRA INST2 YES FAP08130
ZET ETCMD NO, DOES THIS CARD FOLLOW CALL OR VFD FAP08131
TRA ETCOP YES FAP08132
STZ BINRY NO, CLEAR BINARY MACHINE OPERATION FAP08133
NZT OPBIN IS OPCODE DEFINED FAP08134
TRA *+5 NO FAP08135
LDI OPBIN YES, LOAD OPCODE FAP08136
RFT 100000 IS THIS PSEUDOOPERATION FAP08137
TRA INT00 NO FAP08138
TRA PSOPT YES FAP08139
REM OPERATION IS UNDEFINED FAP08140
REM CHECK FOR OPERATION DEFINED BY TAPENO CHARACTER FAP08141
ANA ADTMK MASK IN CC 11 - 13 FAP08142
LAS T3 IS IT GREATER THAN H FAP08143
ANA Q4095 YES, MASK IN CC 12 - 13 FAP08144
TZE *+2 IS THIS VALID TAPNO CHARACTER FAP08145
TRA INST1 NO FAP08146
CAL OPCOD YES, RECALL OPCODE FAP08147
LGR 18 HOLD TAPENO CHARACTER FAP08148
ALS 18 LEFT ADJUST THREE LETTER OPCODE FAP08149
SLW ERASE FAP08150
CAL BHEAD LOAD HEADING CHARACTER FAP08151
ALS 24 LEFT ADJUST FAP08152
LGL 6 APPEND TAPENO CHARACTER FAP08153
SLW SYMBL FAP08154
TSX SSYMT,4 *EVALUATE CHARACTER FAP08155
SLT EXPRR IS CHARACTER UNDEFINED FAP08156
TRA *+3 NO FAP08157
STZ ERRFU YES, RESET ERROR FLAG FAP08158
TRA INST1 FAP08159
ANA ADDMK DELETE EXTRANEOUS FLAGS FAP08160
SLW BERAS SAVE UNIT ADDRESS FAP08161
ANA Q7680 MASK IN CHANNEL NUMBER FAP08162
TZE *+3 DOES IT EXIST FAP08163
ALS 3 YES, POSITION IT AS FOURTH CHARACTER FAP08164
ORA T2 APPEND ZONE BITS FAP08165
ORA ERASE APPEND THREE CHARACTER OPCODE FAP08166
SLW OPCOD SAVE FAP08167
CAL ERASE LOAD THREE CHARACTER OPCODE FAP08168
TSX SOPTB,4 *FIND CORRESPONDING OPCODE FAP08169
TRA INST0 NOT FOUND, MAY BE CHANNEL OPERATION FAP08170
RFT 100000 IS THIS MACHINE OPERATION FAP08171
LFT 000001 YES, IS THIS TYPE B I/O, TYPE E PSE, MSE FAP08172
TRA INST0 NO, CHANNEL OPERATION MAY BE UNRELATED *FAP08173
LFT 001700 YES, IS THIS TYPE E (BTT, ETT, RDC) FAP08174
STI OPBIN NO, SET TYPE B SWITCH FAP08175
INST0 CAL OPCOD LOAD FOUR CHARACTER OPCODE FAP08176
TSX SOPTB,4 *FIND CORRESPONDING OPCODE FAP08177
TRA INST1 NOT FOUND FAP08178
NZT OPBIN IS THIS TYPE B I/O INSTRUCTION FAP08179
TRA INT00 NO FAP08180
RIL 000010 YES, RESET ADDRESS REQUIRED FLAG FAP08181
IIL 077600 READY FOR TEST FAP08182
LFT 777700 IS THIS SET DENSITY INSTRUCTION FAP08183
TRA *+6 NO FAP08184
RFT 20 YES, IS THIS SET DENSITY LOW INSTRUCTION FAP08185
TRA *+4 NO FAP08186
OSI BERAS YES, APPEND UNIT ADDRESS FAP08187
RIR 20 SET THE DENSITY LOW FAP08188
TRA *+2 FAP08189
OSI BERAS APPEND UNIT ADDRESS FAP08190
IIL 077600 RESTORE INDICATORS AS BEFORE FAP08191
TRA INT00 FAP08192
REM OPERATION IS UNDEFINED FAP08193
INST1 STZ OFLGS ERASE HANGING FLAGS FAP08194
SLN EXPRR SET UNDEFINED MACHINE OP FLAG FAP08195
REM PSEUDOOPERATION IS UNDEFINED FAP08196
INST2 TSX REFLC,4 *CHECK LOCATION COUNTER FAP08197
CAL BLANKS BLANK OUT SIGN AND PREFIX FAP08198
ALS 24 FAP08199
SLW OCTAL+1 FAP08200
STZ OCTAL+2 FAP08201
STZ OCTAL+3 FAP08202
STZ BINRY DELETE POSSIBLE TAPE ADDRESS FAP08203
STZ OPRFG RESET FLAG FOR UNDEFINED OPERATION FAP08204
STL ERRFO SET OPERATION ERROR FLAG FAP08205
STL TYPAF TREAT UNDEFINED OP AS TYPE A INSTRUCTION FAP08206
SLT EXPRR IS UNDEFINED OP MACHINE OP FAP08207
TRA INT17+3 NO, IT IS UNDEFINED PSEUDOOPERATION FAP08208
TRA INT03 YES, SCAN VARIABLE FIELD FAP08209
REM OPERATION CODE FOUND FAP08210
INT00 STI OFLGS SAVE FLAGS FAP08211
TSX IFLGS,4 *SET INSTRUCTION LISTING FLAGS FAP08212
RIR 017777 DELETE FLAGS FROM ADDRESS FIELD FAP08213
PIA FAP08214
ANA OPMSK DELETE FLAGS FROM TAG, DECREMENT FIELDS FAP08215
ORS BINRY SAVE OPCODE FAP08216
TSX REFLC,4 *CHECK LOCATION COUNTER FAP08217
REM REENTRY FOR UNDEFINED MACHINE OP FAP08218
INT03 LXD VRFLD,2 RELOAD VARIABLE FIELD WORD COUNT FAP08219
LXA VRFLD,1 RELOAD VARIABLE FIELD CHARACTER COUNT FAP08220
CAL CHRCTR LOAD FIRST CHARACTER IN VARIABLE FIELD FAP08221
ERA EQUAL TEST FOR LITERAL FAP08222
NZT TYPDF IS THIS TYPE D INSTRUCTION FAP08223
TRA INT04 NO FAP08224
TZE INT05 YES, IS ADDRESS FIELD A LITERAL FAP08225
STL BOLMD NO, SET FLAG FOR OCTAL SCAN FAP08226
TSX SCANF,4 *EVALUATE ADDRESS FAP08227
TXL FLAGA,,0 NULL ADDRESS FAP08228
SLT EXPRR IS ADDRESS FIELD IN ERROR FAP08229
TRA INT12 NO FAP08230
TRA INT05 YES FAP08231
REM REENTRY FOR NON BOOLEAN MACHINE OPERATIONS FAP08232
INT04 TZE LITOP IS ADDRESS FIELD A LITERAL FAP08233
TSX SCANF,4 *NO, EVALUATE ADDRESS FAP08234
TXL FLAGA,,0 NULL ADDRESS FIELD FAP08235
SLT EXPRR IS ADDRESS FIELD IN ERROR FAP08236
TRA INT06 NO FAP08237
REM REENTRY FOR BOOLEAN ADDRESS, LITERAL IN ERROR FAP08238
INT05 CAL BLANK BLANK OUT ADDRESS FIELD FAP08239
ORS OCTAL+2 FAP08240
CAL BLANKS FAP08241
ORS OCTAL+3 FAP08242
SXA BINRY,0 DELETE ADDRESS BITS FAP08243
NZT TYPDF IS THIS BOOLEAN MACHINE OPERATION FAP08244
TRA INT07 NO FAP08245
STL ERRFB YES, SET ERROR FLAG FAP08246
TRA INT08 FAP08247
REM REENTRY FOR ADDRESS FIELD, LITERAL SUCCESSFULY EVALUATED FAP08248
INT06 ORS BINRY INSERT ADDRESS FIELD BITS FAP08249
CAL RBITS INSERT ADDRESS FIELD RELOCATION BITS FAP08250
SLW INDIC FAP08251
ZET 704FG IS ASSEMBLY IN 704 MODE FAP08252
TRA INT07 YES FAP08253
CLA BINRY NO, LOAD OPERATION CODE FAP08254
ARS 6 RIGHT ADJUST, LESS SIGN (38)FAP08255
PDX ,4 FAP08256
TXL INT07,4,495 IS THIS I/O INSTRUCTION FAP08257
TXH INT07,4,506 NO FAP08258
PXA ,4 MAYBE, IT IS BETWEEN 0760 AND 0772 FAP08259
LBT IS IT 0761,0763,0765,0767,0771 FAP08260
TRA *+2 NO, IT IS 0760,0762,0764,0766,0770,0772 FAP08261
TRA INT07 YES, NOT AN I/O INSTRUCTION FAP08262
CAL BINRY LOAD OPERATION CODE FAP08263
ARS 9 ISOLATE CHANNEL DESIGNATION FAP08264
ANA Q15 FAP08265
LAS CHANS IS CHANNEL DESIGNATION PROPER FAP08266
STL ERRFN NO, SET ERROR FLAG FAP08267
NOP FAP08268
REM REENTRY FOR NON BOOLEAN ADDRESS FIELD IN ERROR FAP08269
INT07 TSX SCANF,4 *EVALUATE TAG FIELD FAP08270
TXL FLAGT,,0 NULL TAG FIELD FAP08271
NZT RBITS IS TAG FIELD RELOCATABLE FAP08272
TRA *+3 NO FAP08273
STL ERRFR YES, SET ERROR FLAG FAP08274
TRA INT08 FAP08275
SLT EXPRR IS TAG FIELD IN ERROR FAP08276
TRA INT09 NO FAP08277
REM REENTRY FOR BOOLEAN ADDRESS FIELD IN ERROR FAP08278
INT08 CAL BLANK PREPARE TO BLANK OUT OFFENDING FIELD FAP08279
ALS 6 POSITION IN HIGH ORDER BOOLEAN ADDRESS FAP08280
NZT TYPDF IS THIS BOOLEAN FIELD FAP08281
ALS 6 NO, POSITION IN TAG FIELD FAP08282
ORS OCTAL+2 FAP08283
NZT TYPDF IS THIS BOOLEAN FIELD FAP08284
TRA INT10 NO FAP08285
TRA INT12+1 YES FAP08286
REM REENTRY FOR TAG FIELD NOT IN ERROR FAP08287
INT09 ANA Q7 REDUCE TAG MODULO 8 FAP08288
ALS 15 POSITION IN TAG FIELD FAP08289
ORS BINRY INSERT IN WORD FAP08290
REM REENTRY FOR TAG FIELD IN ERROR FAP08291
INT10 TSX SCANF,4 *EVALUATE DECREMENT FIELD FAP08292
TXL FLAGD,,0 NULL DECREMENT FIELD FAP08293
SLT EXPRR IS DECREMENT FIELD IN ERROR FAP08294
TRA INT11 NO FAP08295
NZT TYPAF YES, IS THIS TYPE A 0 00000 0 00000 INSTR FAP08296
TRA *+4 NO, IT IS TYPE B 0000 00 0 00000 FAP08297
CAL BLANKS YES DELETE OCTAL CHARACTERS 2, 3, 4 FAP08298
ARS 18 (BITS 3 - 11) FAP08299
ORS OCTAL+1 FAP08300
CAL BLANKS AS WELL AS OCTAL CHARACTERS 5, 6 FAP08301
ALS 24 (BITS 12 - 17) FAP08302
ORS OCTAL+2 FAP08303
PXD ,0 DELETE DECREMENT FIELD FAP08304
REM REENTRY FOR DECREMENT FIELD NOT IN ERROR FAP08305
INT11 LXA RBITS,4 LOAD DECREMENT RELOCATION BITS FAP08306
SXD INDIC,4 SET DECREMENT RELOCATION BITS FAP08307
ALS 18 REPOSITION DECREMENT FAP08308
ORS BINRY INSERT IN WORD FAP08309
ZET TYPAF IS THIS TYPE A INSTRUCTION FAP08310
TRA INT12+1 YES FAP08311
TZE INT12+1 NO, HAS TYPE B, C, E INSTR DECREMENT FAP08312
SXD ERRFR,4 YES, SET ERROR FLAG IF RELOCATABLE FAP08313
ZET TYPCF IS THIS A TYPE C INSTRUCTION FAP08314
ANA D32512 YES, MASK OUT 8-BIT COUNT FIELD FAP08315
STO ERRFD SET FLAG IF TOO LONG FAP08316
REM REENTRY FOR BOOLEAN ADDRESS NOT IN ERROR, DIRECT ADDRESS FAP08317
INT12 ORS BINRY FAP08318
ZET INDFG IS INDIRECT ADDRESS REQUIRED FAP08319
TRA INT14 YES FAP08320
LDI BINRY NO, DID INDIRECT ADDRESS BITS FAP08321
CAL D48 SNEAK INTO DECREMENT FAP08322
NZT TYPAF MAYBE, IS THIS TYPE B, C, D, E INSTRUCTIONFAP08323
TIO *+2 YES FAP08324
TRA INT15 NO FAP08325
NZT ERRFO IS OPERATION UNDEFINED FAP08326
STL ERRFI NO, SET ERROR FLAG FAP08327
TRA INT17 FAP08328
INT14 CAL OFLGS LOAD FIELD FLAGS FAP08329
ANA IMASK IS THIS OPCODE PERMITTED INDIRECT ADDRESS FAP08330
NZT 704FG MAYBE, IS ASSEMBLY IN 7090 MODE FAP08331
TNZ *+3 YES FAP08332
NZT ERRFO NO, IS OPERATION UNDEFINED FAP08333
STL ERRFI NO, SET ERROR FLAG FAP08334
NZT TYPAF IS OPERATION TYPE A FAP08335
CAL D48 NO, LOAD DECREMENT INDIRECT ADDRESS BITS FAP08336
ZET TYPAF IS OPERATION TYPE A FAP08337
CAL T4 YES, LOAD TAG INDIRECT ADDRESS BIT FAP08338
ORS BINRY INSERT IN WORD FAP08339
REM REENTRY FOR TYPE A INSTRUCTION NOT INDIRECTLY ADDRESSED FAP08340
INT15 ZET TYPKF IS THIS A TYPE K 00 0000 0 00000 COMMAND FAP08341
NZT TYPCF YES, DOES IT HAVE HIGH ORDER COUNT FIELD FAP08342
TRA INT17 NO FAP08343
TSX SCANF,4 *YES, EVALUATE ADDITIONAL OP/COUNT FIELD FAP08344
TXL INT17,,0 NULL ADDITIONAL FIELD FAP08345
NZT RBITS IS ADDITIONAL FIELD RELOCATABLE FAP08346
TRA *+3 NO FAP08347
STL ERRFR YES, SET ERROR FLAG FAP08348
TRA *+3 FAP08349
SLT EXPRR IS ADDITIONAL FIELD IN ERROR FAP08350
TRA INT16 NO FAP08351
CAL BLANK YES, BLANK OUT ADDITIONAL FIELD FAP08352
ALS 18 FAP08353
ORS OCTAL+1 FAP08354
TRA INT17 FAP08355
REM ADDITIONAL OP/COUNT FIELD NOT IN ERROR FAP08356
INT16 ANA Q7 MASK IN ONE CHARACTER FAP08357
ALS 30 POSITION IN OP/COUNT FIELD FAP08358
ORS BINRY INSERT IN WORD FAP08359
REM REENTRY FOR NO ADDITIONAL FIELD, OR FIELD IN ERROR FAP08360
INT17 CAL CHRCTR LOAD FOLLOWING CHARACTER FAP08361
ERA BLANK IS IT BLANK FAP08362
SLW ERRFF SET ERROR FLAG IF NOT FAP08363
REM REENTRY FOR IMPROPER OPCODE OR PSEUDOOPERATION FAP08364
TSX PRNTI,4 *LIST AND PUNCH THIS INSTRUCTION FAP08365
TRA READ1 FAP08366
REM FAP08367
REM FAP08368
REM END OF SECOND INTERMEDIATE TAPE FAP08369
ENDFA LXD SLIT3,4 LOAD BASE ADDRESS FOR LITERALS FAP08370
PXA ,4 FAP08371
ERA CDCTR COMPARE WITH CURRENT LOAD ADDRESS FAP08372
SXA CDCTR,4 RESET CARD ORIGIN COUNTER TO BASE ADDRESS FAP08373
SXA LOCTR,4 RESET PROGRAM COUNTER TO BASE ADDRESS FAP08374
SXA ADDRS,4 FAP08375
PAX ,4 LOAD LENGTH OF EFFECT BSS FOLLOW LAST CARDFAP08376
TXL *+2,4,0 IS EFFECTIVE BSS 0 FAP08377
TSX PUNCH,4 *NO, PUNCH LAST PARTIAL CARD FAP08378
LDC LITSIZ,1 LOAD LENGTH OF LITERAL TABLE FAP08379
TXL ENDF1+1,1,0 IS LITERAL TABLE EMPTY FAP08380
SXD ENDF1,1 NO, SET END OF LITERAL TABLE LOOP FAP08381
TSX PRLST,4 *PRINT BLANK LINE FAP08382
PZE FAP08383
TSX PRLST,4 *PRINT LITERAL TABLE TITLE FAP08384
IOCD LITIT,,5 FAP08385
AXT 5,4 RESET LENGTH OF LISTING LINE TO SHORT FAP08386
SXD IOLST,4 TO PRINT ONLY OCTAL EXPANSION FAP08387
AXT 0,1 START AT BOTTOM OF TABLE FAP08388
STZ INDIC FAP08389
CAL LITTBL,1 LOAD NEXT LITERAL FAP08390
SLW BINRY FAP08391
TSX PRNTW,4 *LIST AND PUNCH DATA WORD FAP08392
TXI *+1,1,-1 BUMP COUNT OT NEXT LITERAL FAP08393
ENDF1 TXH *-4,1,** IS LITERAL TABLE EXHAUSTED FAP08394
REM REENTRY FOR NO LITERAL TABLE FAP08395
TSX PUNCH,4 *PUNCH LAST PARTIAL CARD FAP08396
ENDFB TXH *+2,4,-1 IS TRANSFER ADDRESS VALID FAP08397
TSX PCHTC,4 *YES, PUNCH TRANSFER CARD FAP08398
STL TTLFG SET SUBTITLE FLAG FAP08399
LDI REFHD RESET SUBTITLE PARAMETER FAP08400
STI IOHED TO PRINT 'POST PROCESSOR ASSEMBLY DATA' FAP08401
SXA PAGENO,0 RESET PAGE NUMBER FAP08402
SXA PAGCNT,0 EJECT PAGE FAP08403
STZ UNLSF RESET HANGING UNLIST FLAGS FAP08404
STZ UNL1F FAP08405
STZ TITLF FAP08406
CAL LOCTR LOAD LAST ADDRESS+1 FAP08407
TSX SHIFT,4 *CONVERT TO OCTAL FAP08408
ALS 6 APPEND FOLLOWING BLANK FAP08409
ORA BLANK FAP08410
SLW PGTIT+1 FAP08411
SLW TSPRP+2 TSFAP08412
ZET ABSFLG IS ASSEMBLY ABSOLUTE FAP08413
TRA ENDFC YES FAP08414
SXD LOCTR,0 NO, DELETE RELOCATION BIT FAP08415
CAL UPCTR LOAD LAST COMMON ASSIGNMENT FAP08416
TZE ENDFC DOES COMMON EXIST FAP08417
TSX SHIFT,4 *YES, CONVERT TO OCTAL FAP08418
SLW CBTIT+1 FAP08419
SLW TSPRC+3 TSFAP08420
TSX FPRINT,4 *PRINT COMMON BREAK FAP08421
PZE CBTIT,,10 FAP08422
WRFLXM TSPRC,4 CONDENSED COMMENT FOR CONSOLE TSFAP08423
CLA LOCTR LOAD PROGRAM COUNTER FAP08424
SUB UPCTR DID PROGRAM OVERLAP COMMON FAP08425
TMI ENDFC NO FAP08426
LDQ EFLAG YES, SET ERROR FLAG FAP08427
STQ PGTIT FAP08428
STL NOGOF DELETE EXECUTION FAP08429
ENDFC TSX FPRINT,4 *PRINT PROGRAM BREAK FAP08430
PZE PGTIT,,10 FAP08431
TSX FPRINT,4 *PRINT BLANK LINE FAP08432
PZE FAP08433
WRFLXM TSPRP,3 CONDENSED COMMENT FOR CONSOLE TSFAP08434
REM LIST SYMBOLIC REFERENCE TABLE ENTRIES FAP08435
PREF0 TXH PREF9,4,-1 IS UNDEFINED SYMBOL TABLE COMPLETE FAP08436
LXD SYMSIZ,1 NO, LOAD LENGTH OF SYMBOL TABLE FAP08437
TXH PRUDS,4,-1 HAVE DEFINED SYMBOLS BEEN LISTED FAP08438
SXD *-1,0 NO, RESET SWITCH FAP08439
TXL PRUDS,1,2 IS DEFINED SYMBOL TABLE EMPTY FAP08440
TXI PREF1,1,2 NO FAP08441
REM DEFINED SYMBOLS HAVE BEEN LISTED FAP08442
PRUDS AXT -1,4 RESET SWITCH FAP08443
SXD PREF6,4 TO FORCE PRINTING FAP08444
SXD PREF0,0 RESET UNDEFINED SYMBOL SWITCH FAP08445
SXD PREFS,0 DELETE REF TABLE HEADING FAP08446
SXD *+2,1 SET BOTTOM OF UNDEFINED SYMBOL TABLE FAP08447
LDC SUDS1,4 LOAD TOP OF UNDEFINED SYMBOL TABLE FAP08448
TXL PREF9,4,** IS UNDEFINED SYMBOL TABLE EMPTY FAP08449
TSX FPRINT,4 *NO, PRINT UNDEFINED REFERENCE HEADING FAP08450
PZE USTIT,,6 FAP08451
TXI *+1,1,LUDTBM BUMP COUNT TO TOP OF UDS TABLE FAP08452
SXD SYMSIZ,1 FAP08453
AXT LUDTBM+4,1 LOAD COUNT OF FIRST UNDEFINED SYMBOL FAP08454
CAL EREF2 UDS TABLE IS OFFSET BY 2 TO LIST THEM FAP08455
ADD Q2 EVEN IF NO DEFINED SYMBOL APPEAR FAP08456
STA EREF2 NOW IT MUST BE CORRECTED FAP08457
REM REENTRY FOR DEFINED SYMBOLS FAP08458
PREF1 CLA SYMSIZ COMPUTE ORIGIN AT END OF SYMBOL TABLE FAP08459
ARS 18 FAP08460
ADD SSYM5 FAP08461
ADD Q1 FAP08462
STA PREF3 INITIALIZE TEST FOR END OF REF TABLE FAP08463
STA PREF4 INITIALIZE LOAD FOR SYMBOL NAME FAP08464
ADD Q1 FAP08465
STA PREF5 INITIALIZE LOAD FOR SYMBOL DEFINITION FAP08466
CLA SYMSIZ COMPUTE ORIGIN AT END OF POINTER TABLE FAP08467
ARS 18 FAP08468
ADD EREF2 FAP08469
STA PREF6+1 INITIALIZE LOAD FOR POINTER FAP08470
REM REENTRY TO START NEXT LINE FAP08471
PREF2 ZET PRTIF IS THIS A CONTINUATION LINE FAP08472
TRA *+3 YES FAP08473
REM REENTRY TO LIST NEXT SYMBOL FAP08474
TXI *+1,1,-2 BUMP COUNT TO NEXT SYMBOL FAP08475
TXL PREF0,1,2 IS TABLE EXHAUSTED FAP08476
AXT 20,2 NO, LOAD LENGTH OF LISTING LINE FAP08477
CAL BLANKS BLANK OUT LINE FAP08478
SLW BBUF22+20,2 FAP08479
TIX *-1,2,1 FAP08480
ZET PRTIF IS THIS A CONTINUATION LINE FAP08481
TRA PREF7 YES FAP08482
PREF3 CAL **,1 LOAD NEXT NAME IN SYMBOL TABLE FAP08483
TZE PREF9 IS TABLE EXHAUSTED FAP08484
STZ BERAS NO, RESET REDUNDANCY TEST FAP08485
PREF4 LDQ **,1 LOAD SYMBOL NAME FAP08486
LGL 6 SHIFT IN FIRST (HEADING) CHARACTER FAP08487
ANA Q63 MASK IN CHARACTER FAP08488
TNZ *+2 DOES IT EXIST FAP08489
CAL BLANK NO, APPEND LEADING BLANK FAP08490
SLW ERASE FAP08491
AXT 30,4 PREPARE TO SCAN FOLLOWING FIVE CHARACTERS FAP08492
PXD ,0 FAP08493
LGL 6 LOAD NEXT CHARACTER FAP08494
TNZ *+2 DOES IT EXIST FAP08495
TIX *-2,4,6 NO, TRY AGAIN FAP08496
LGR 6 SAVE NONBLANK CHARACTER FAP08497
CAL BLANKS APPEND LEADING BLANKS FAP08498
LGR 30,4 LEFT ADJUST FIVE CHARACTERS FAP08499
CAL ERASE APPEND FIRST (HEADING) CHARACTER FAP08500
LGR 6 FAP08501
STQ BBUF22+2 INSERT IN WORD 2 FAP08502
PREF5 CAL **,1 LOAD SYMBOL DEFINITION FAP08503
PAI HOLD POSSIBLY DOUBLY DEFINED FLAG FAP08504
TSX SHIFT,4 *ASSEMBLE OCTAL LOCATION FAP08505
SLW ERASE SAVE BCD DEFINITION *FAP08506
ALS 6 APPEND BLANK TO LOW ORDER *FAP08507
ORA BLANK FIVE CHARACTERS *FAP08508
SLW BBUF22+1 INSERT IN WORD 1 *FAP08509
LDQ ERASE RECALL SIXTH CHARACTER *FAP08510
CAL MFLAG PREPARE M FLAG *FAP08511
ARS 6 SHIFTED OVER *FAP08512
TRA PREFP TO PATCH *FAP08513
PREF6 TXH PREF2,2,-1 IS SYMBOL TABLE SUPPRESSED FAP08514
CLA **,1 NO, LOAD POINTER FAP08515
STA DCBFG YES, SAVE LOCATION OF FIRST REFERENCE FAP08516
STL PRTIF SET FLAG TO OMIT COMMA FAP08517
PREF7 AXT 17,2 LOAD LENGTH OF REST OF LINE FAP08518
TZE PREF8 HAS SYMBOL BEEN USED FAP08519
CLA* DCBFG YES, LOAD NEXT REFERENCE FAP08520
TSX SHIFT,4 *ASSEMBLE OCTAL LOCATION FAP08521
LAS BERAS IS THIS REDUNDANT FAP08522
TRA *+2 NO FAP08523
TXI PREF8+1,2,1 YES, IGNORE IT FAP08524
SLW BERAS SAVE FOR NEXT TEST FAP08525
NZT PRTIF IS THIS FIRST LOCATION ON LINE FAP08526
ORA RCOMA NO, APPEND LEADING COMMA FAP08527
SLW BBUF22+20,2 INSERT IN NEXT WORD FAP08528
PREF8 STZ PRTIF RESET FIRST LOCATION FLAG FAP08529
NZT DCBFG IS THERE ANOTHER REFERENCE FAP08530
TRA *+4 NO FAP08531
TIX PREF7+2,2,1 YES, IS LINE FULL FAP08532
STL PRTIF YES, SET CONTINUATION LINE FLAG FAP08533
TRA PREFS FAP08534
REM REFERENCES TO THIS SYMBOL EXHAUSTED FAP08535
NZT PRTIF IS THIS FIRST REFERENCE ON THIS LINE FAP08536
TRA PREFS NO FAP08537
STZ PRTIF YES, RESET CONTINUATION LINE FLAG FAP08538
TRA PREF2 FAP08539
REM PRINT LINE IN SYMBOLIC REFERENCE TABLE FAP08540
PREFS TXH *+4,4,-1 HAS REF TABLE HEADING BEEN PRINTED FAP08541
SXD *-1,0 NO, RESET SWITCH FAP08542
TSX FPRINT,4 *PRINT REFERENCE TABLE HEADING FAP08543
PZE RFTIT,,6 FAP08544
TXI *+1,2,-21 COMPUTE LENGTH OF LINE FAP08545
PXA ,2 FAP08546
PAC ,2 FAP08547
SXA *+4,1 SAVE TABLE COUNT FAP08548
SXD *+2,2 INITIALIZE PARAMETER FAP08549
TSX FPRINT,4 *PRINT LINE FAP08550
PZE BBUF22,,** FAP08551
AXT **,1 RELOAD TABLE COUNT FAP08552
TRA PREF2 FAP08553
REM END OF REFERENCE TABLE FAP08554
PREF9 TXL *+3,4,-1 DID REFERENCE TABLE OVERFLOW FAP08555
TSX FPRINT,4 *YES, PRINT MESSAGE FAP08556
MZE REFOV,,11 TSSFAP08557
TSX FPRINT,4 *PRINT BLANK LINE FAP08558
PZE FAP08559
AXT 8,4 PREPARE TO PRINT 'EXECUTION DELETED' FAP08560
NZT NOGOF WAS THERE AN ASSEMBLY ERROR FAP08561
TXI ENDF4,4,-3 NO, DELETE 'EXECUTION DELETED' FAP08562
LDQ ERTIT YES, DELETE 'NO' FAP08563
STQ ERTIT+1 FAP08564
SXA ENDF3,4 FORCE PRINTING TSFAP08565
WRFLXM TSPRE,3 CONDENSED COMMENT FOR CONSOLE TSFAP08566
ENDF3 AXT **,4 TSFAP08567
TXI ENDF4,4,-3 DELETE 'EXECUTION DELETED' TSFAP08568
ENDF4 SXD *+2,4 INITIALIZE I/O COMMAND WORD COUNT FAP08569
TSX FPRINT,4 *PRINT FINAL MESSAGE FAP08570
PZE ERTIT+1,,** FAP08571
ERRRS NZT NOGOF NO, IS RELOCATABLE ASSEMBLY ERROR FREE FAP08572
TRA ENDF5 YES FAP08573
TRA THEND NO TSFAP08574
ENDF5 TXL ENDF6,4,-1 TEST BINARY FILE EMPTY TSFAP08575
NZT ABSFLG NO, IS ASSEMBLY ABSOLUTE TSFAP08576
TRA *+3 TSFAP08577
CLA FAPABS YES, CHANGE FILE NAME TSFAP08578
STO FAPBSS TO ALPHA ABS TSFAP08579
TSX WTDSK,4 WRITE LAST PARTIAL BLOCK LOFAP08580
TSX STASH,4 FILE THE BINARY OUTPUT TSFAP08581
PZE TEMBSS,,FAPBSS FAP08582
ENDF6 TSX PSYMTB,4 SYMBOL TABLE SORT FOR FAP BUG TSFAP08583
THEND NZT FAPLS1 TSSFAP08584
TRA REND TSSFAP08585
TSX WRFIL,4 WRITE PARTIAL DISK BUFFER LOFAP08586
TSX STASH,4 FILE THE BCD LISTING TSFAP08587
PZE TEMBCD,,FAPBCD FAP08588
REND TSX DORMNT,4 TSFAP08589
TTL PASS TWO PSEUDOOPERATION PROCESSOR FAP08590
PSOPT PIA RECALL TRANSFER ADDRESS FAP08591
ARS 18 ISOLATE PASS TWO TRANSFER FAP08592
STA *+1 INITIALIZE TRANSFER FAP08593
TRA ** FAP08594
REM FAP08595
704OP STL 704FG SET 704 MODE FAP08596
CAL Q16384 LOAD TEST FOR 704 INSTRUCTION FAP08597
STA IFLGS RESET TEST FOR PERMISSIBLE OPERATION FAP08598
CAL Q8192 LOAD TEST FOR 7090 INSTRUCTION FAP08599
LDQ 9FLAG LOAD ERROR FLAG FOR 7090 INSTRUCTION FAP08600
TRA 709OP+5 FAP08601
REM FAP08602
709OP STZ 704FG RESET 704 MODE FAP08603
CAL Q8192 LOAD TEST FOR 7090 INSTRUCTION FAP08604
STA IFLGS RESET TEST FOR PERMISSIBLE OPERATION FAP08605
CAL Q16384 LOAD TEST FOR 704 INSTRUCTION FAP08606
LDQ 4FLAG LOAD ERROR FLAG FOR 704 INSTRUCTION FAP08607
STA IFLGS+2 RESET TEST FOR PROHIBITED INSTRUCTION FAP08608
STA IFLGS+4 FAP08609
STQ FLG49 RESET ERROR FLAG FOR PROHIBTD INSTRUCTION FAP08610
CAL CHRCTR LOAD FIRST CHARACTER IN VARIABLE FIELD FAP08611
ERA BLANK IS IT BLANK FAP08612
SLW ERRFF SET ERROR FLAG IF NOT FAP08613
TSX PRNTC,4 *PRINT INPUT CARD FAP08614
TRA READ1 FAP08615
REM FAP08616
9LPOP TSX PUNCH,4 *PUNCH PARTIAL FUL, ABS, OR 9LP CARD FAP08617
LXD VRFLD,2 RELOAD WORD COUNT FAP08618
LXA VRFLD,1 RELOAD CHARACTER COUNT FAP08619
TSX SCANF,4 *EVALUATE PREFIX FAP08620
TXI AFLAG,,0 NULL PREFIX PUNCH FAP08621
SLT EXPRR WAS PREFIX IN ERROR FAP08622
TRA *+2 NO FAP08623
STL ERRFF YES, SET FLAG FAP08624
ALS 33 SHIFT PUNCH INTO PREFIX FAP08625
STP PBUFF1 INSERT IN 9L FAP08626
STZ FULMD RESET FULL FLAG FAP08627
STL 9LPMD SET 9L FLAG FAP08628
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP08629
STL ERRFF NO, SET FLAG FAP08630
TSX PRNTC,4 *PRINT INPUT CARD FAP08631
TRA READ1 FAP08632
REM FAP08633
ABSOP NZT FULMD IS CARD FORMAT FULL FAP08634
ZET 9LPMD NO, IS IT A CONTROL CARD FAP08635
TRA *+2 YES FAP08636
TRA ABS01 NO, IGNORE THIS CARD FAP08637
TSX PUNCH,4 *PUNCH PARTIAL FUL CARD FAP08638
CLA CDCTR INSERT CARD ORIGIN COUNTER FAP08639
STO PBUFF1 IN LOAD ADDRESS FAP08640
STZ FULMD RESET FUL FLAG FAP08641
STZ 9LPMD RESET CONTROL CARD FLAG FAP08642
ABS01 CAL CHRCTR LOAD FIRST CHARACTER IN VARIABLE FIELD FAP08643
ERA BLANK IS IT BLANK FAP08644
SLW ERRFF SET ERROR FLAG IF NOT FAP08645
TSX PRNTC,4 *PRINT INPUT CARD FAP08646
TRA READ1 FAP08647
ACORE STZ BCOREF SET FLAG FOR NO ACTION ***TSSFAP08648
TRA *+2 SKIP ***TSSFAP08649
BCORE STL BCOREF SET FLAG FOR ACTION ***TSSFAP08650
TSX PRNTC,4 PRINT CARD ***TSSFAP08651
TRA READ1 BACK FOR NEXT CARD ***TSSFAP08652
REM ***TSSFAP08653
BCDOP TSX REFLC,4 *CHECK LOCATION COUNTER FAP08654
CLA LITRL IS THIS ONE 'QUOTE-MODE' DAFAP08655
TMI BCDFC YES, NO CHECKING DAFAP08656
CAL BCDBF+1 LOAD CARD WORD 2 FAP08657
ANA Q63 MASK IN COLUMN 12 FAP08658
LAS BLANK IS IT BLANK FAP08659
TRA BCERR NO FAP08660
PXD ,0 YES (FULL CARD) FAP08661
TZE BCDFC NO, IS IT ZERO (FULL CARD) DAFAP08662
LAS Q10 NO, IS IT DIGIT FAP08663
TRA BCERR **NO FAP08664
TSX MACERR,4 **CHARACTER IS BCD 10 FAP08665
TRA BCDFC+1 YES DAFAP08666
REM FAP08667
BCIOP TSX REFLC,4 *CHECK LOCATION COUNTER FAP08668
CLA LITRL IS THIS ONE 'QUOTE-MODE' DAFAP08669
TMI BCIQU YES, CHECKING ALREADY DONE DAFAP08670
CAL CHRCTR LOAD FIRST CHARACTER FAP08671
TZE BCI00 IS IT ZERO *FAP08672
LAS COMMA NO, IS IT COMMA (FULL CARD) FAP08673
TRA BCERR **NO FAP08674
TRA BCIFC YES DAFAP08675
LAS Q10 NO, IS IT DIGIT FAP08676
TRA BCERR **NO FAP08677
TSX MACERR,4 **CHARACTER IS BCD 10 FAP08678
LDQ RESIDU CHECK FOR COMMA AFTER COUNT DAFAP08679
TXL *+3,2,-2 DAFAP08680
LDQ BCDBF+1,2 DAFAP08681
LGR 6 DAFAP08682
LGL 12 DAFAP08683
ANA Q63 DAFAP08684
SUB COMMA IF NOT, DAFAP08685
SLW ERRFF GIVE F FLAG DAFAP08686
BCIQU CAL LITRL PICK UP WORD COUNT DAFAP08687
ADM BCIWD YES, COMPUTE ADDRESSES (42)FAP08688
STA BCI01 ENDING ALPHANUMERIC FIELD (42)FAP08689
ADM Q1 AND INITIALIZE STORING LOOP (42)FAP08690
STA BCI01+1 (42)FAP08691
LDQ VRFLD LOAD VARIABLE FIELD CHARACTER (42)FAP08692
VLM Q6,,15 POSITION AND CONVERT TO BITS (42)FAP08693
LLS 15 FOR AMOUNT OF SHIFT NECESSARY (42)FAP08694
BCIWD PAX BCDBF+2,1 (THIS ADDRESS USED AS A CONSTANT) (42)FAP08695
TXL *+2,2,-2 DID VARIABLE FIELD BEGIN BY CC 12 (42)FAP08696
TXI *+1,1,36 YES, ADJUST SHIFT (42)FAP08697
CLA LITRL IF IN QUOTE-MODE, DAFAP08698
TPL *+2 MOVE BACK ONE CHARACTER DAFAP08699
TXI BCI01-2,1,6 DAFAP08700
LXA LITRL,2 LOAD WORD COUNT DAFAP08701
TXL BCI00,2,0 SPECIAL HANDLING IF NOTHING THERE DAFAP08702
BCI01 CAL **,2 LOAD FIRST PART OF WORD (42)FAP08703
LDQ **,2 LOAD REMAINDER, IF ANY (42)FAP08704
LGL 54,1 POSITION IN AC (42)FAP08705
TXH BCI02,2,1 IS THIS THE LAST WORD DAFAP08706
LXD LITRL,1 YES DAFAP08707
LDQ NULLS NULL OUT EXTRA CHARACTER POSITIONS DAFAP08708
ARS 36,1 DAFAP08709
LGL 36,1 DAFAP08710
BCI02 SLW BINRY SET BINARY WORD (42)FAP08711
TSX PRNTW,4 *LIST AND PUNCH THIS DATUM WORD (42)FAP08712
TIX BCI01,2,1 IS CARD EXHAUSTED FAP08713
TRA READ1 YES FAP08714
BCIFC TXH BCERR,1,2 **IS COMMA IN CC 12 DAFAP08715
TXL BCERR,1,1 **NO FAP08716
BCDFC CLA LITRL GET WORD COUNT DAFAP08717
PAX ,3 LOAD CARD WORD COUNT FAP08718
TXL BCI00,1,0 DAFAP08719
TXI *+1,1,BCDBF+2 COMPUTE ORIGIN AT END OF HOLLERITH FIELD FAP08720
SXA BCI03,1 FAP08721
BCI03 CAL **,2 LOAD NEXT WORD DAFAP08722
TXH BCI04,2,1 IS THIS THE LAST WORD DAFAP08723
LXD LITRL,1 YES DAFAP08724
LDQ NULLS NULL OUT EXTRA CHARACTERS DAFAP08725
ARS 36,1 DAFAP08726
LGL 36,1 DAFAP08727
BCI04 SLW BINRY SET BINARY WORD DAFAP08728
TSX PRNTW,4 *LIST AND PUNCH THIS DATUM WORD FAP08729
TIX BCI03,2,1 IS CARD EXHAUSTED DAFAP08730
TRA READ1 YES FAP08731
REM COUNT IS IN ERROR FAP08732
BCERR STL ERRFE SET ERROR FLAG FAP08733
CAL BLANKS DELETE ERROR WORD FAP08734
SLW BINRY FAP08735
TSX PRNTW,4 *LIST AND PUNCH THIS ERROR WORD FAP08736
TRA READ1 FAP08737
REM FAP08738
12BOP TSX REFLC,4 CHECK LOCATION COUNTER DAFAP08739
CLA LITRL IS THIS IN ERROR DAFAP08740
TMI 12BER YES, FLAG IT DAFAP08741
TZE BCI00 SPECIAL ACTION IF NO GENERATED DATA DAFAP08742
TSX 12BCH,4 SKIP QUOTE CHARACTER DAFAP08743
SLW ERASE BUT DON'T FORGET IT. DAFAP08744
12B01 LDI Q0 INITIALIZE FOR DAFAP08745
AXC 24,4 FIRST WORD DAFAP08746
12B02 SXA 12B03,4 SAVE CURRENT SHIFT DAFAP08747
TSX 12BCH,4 GET NEXT CHARACTER DAFAP08748
LAS ASTRK IS IT ASTERISK DAFAP08749
TRA *+2 .. DAFAP08750
TRA 12B04 YES, MODIFY NEXT CHARACTER DAFAP08751
LAS ERASE IS IT FINAL QUOTE CHARACTER DAFAP08752
TRA *+2 .. DAFAP08753
TRA 12B05 YES, EXIT DAFAP08754
12B03 AXT **,4 RESTORE SHIFT DAFAP08755
ALS ,4 POSITION CHARACTER DAFAP08756
OAI AND INSERT IT DAFAP08757
TXL *+2,4,0 IS THIS WORD FULL DAFAP08758
TXI 12B02,4,12 NO, BUMP SHIFT DAFAP08759
STI BINRY YES, DAFAP08760
TSX PRNTW,4 OUTPUT IT DAFAP08761
CLA LITRL KEEP TRACK OF DAFAP08762
SUB Q1 NUMBER OF WORDS OUTPUTTED DAFAP08763
STO LITRL .. DAFAP08764
TRA 12B01 START A NEW WORD DAFAP08765
12B04 TSX 12BCH,4 GET NEXT CHARACTER DAFAP08766
ERA Q64 WITH 100-BIT COMPLEMENTED DAFAP08767
TRA 12B03 RE-JOIN DAFAP08768
12B05 XEC 12B03 RESTORE SHIFT DAFAP08769
TXL *+2,4,0 IS THIS WORD EMPTY DAFAP08770
TXL 12B06,4,-24 YES, GO CHECK COUNT DAFAP08771
LDQ NULLS NO, DAFAP08772
PXD ,0 PAD WITH 12-BIT NULLS DAFAP08773
LGL 6 .. DAFAP08774
RQL 30 .. DAFAP08775
LGL ,4 .. DAFAP08776
OAI .. DAFAP08777
STI BINRY OUTPUT FINAL WORD DAFAP08778
TSX PRNTW,4 .. DAFAP08779
CLA LITRL SUBTRACT LAST WORD DAFAP08780
SUB Q1 FROM COUNT DAFAP08781
STO LITRL .. DAFAP08782
12B06 ZET LITRL IF COUNT IS DIFFERENT IN PASS1 AND PASS2,DAFAP08783
TSX MACERR,4 SOMETHING IS VERY WRONG DAFAP08784
TRA READ1 .. DAFAP08785
12BCH SXA 12BCX,4 SAVE RETURN DAFAP08786
TSX C0190,4 GET NEXT CHARACTER DAFAP08787
TXL 12BER,2,-13 ERROR IF PAST COLUMN 72 DAFAP08788
PAX ,4 .. DAFAP08789
TXL 12BCX,4,16 NUMBERS = ' + DAFAP08790
TXL 12BCM,4,25 A THRU I DAFAP08791
TXL 12BCX,4,32 . ) COLON - DAFAP08792
TXL 12BCM,4,41 J THRU R DAFAP08793
TXL 12BCX,4,49 $ * SPACE / DAFAP08794
TXL 12BCM,4,57 S THRU Z DAFAP08795
12BCX AXT **,4 RESTORE DAFAP08796
TRA 1,4 AND RETURN DAFAP08797
12BCM ERA Q64 MAKE LETTERS LOWER CASE DAFAP08798
TRA 12BCX .. DAFAP08799
12BER STL ERRFE FLAG ERROR DAFAP08800
CAL 12BLS SET WORD DAFAP08801
SLW BINRY TO BLANKS DAFAP08802
TSX PRNTW,4 AND OUTPUT IT DAFAP08803
TRA READ1 .. DAFAP08804
REM FAP08805
12BLS BCI 1,0 0 0 TWELVE-BIT BLANKS DAFAP08806
REM FAP08807
BESOP CAL LITRL LOAD LENGTH,,DEFINITION FAP08808
TZE BES01 IS THIS BSS/BES 0 FAP08809
ARS 18 NO, RECALL LOCATION OF SYMBOL FAP08810
ADD LOCTR COMPUTE LOCATION FAP08811
STA ADDRS FAP08812
BES01 TSX REFPP,4 *ENTER SYMBOL IN REF TABLE *FAP08813
CAL LITRL RECALL LENGTH OF BLOCK *FAP08814
TSX BPCTR,4 *BUMP PROGRAM COUNTER *FAP08815
TSX REFLC,4 *CHECK LOCATION COUNTER FAP08816
TSX PRNTL,4 *PRINT LOCATION LEFT ADJUSTED FAP08817
CAL LITRL RELOAD LENGTH,,DEFINITION FAP08818
TZE *+2 IS THIS BSS/BES 0 FAP08819
TSX PUNCH,4 *NO, PUNCH PARTIAL CARD FAP08820
TSX PAK01,4 UPDATE CARD ORIGIN IN CASE CARD WAS EMPTY FAP08821
TRA READ1 FAP08822
REM FAP08823
BOLOP STL TYPDF SET BOOLEAN FLAG FOR PRINT ROUTINE FAP08824
TSX REFPP,4 *SCAN VARIABLE FIELD FAP08825
REM REENTRY FOR TAPENO FAP08826
TSX REFLP,4 *ENTER POINT OF DEFINITION IN SYM REF TABLEFAP08827
CAL LITRL SET SYMBOL DEFINITION FAP08828
SLW ADDRS FAP08829
TSX PRNTR,4 *PRINT INPUT CARD, DEFINITION RIGHT ADJUST FAP08830
TRA READ1 FAP08831
REM FAP08832
ETCOP CAL BCDBF LOAD LOCATION FIELD FAP08833
ERA BLANKS IS IT BLANK FAP08834
SLW ERRFF SET ERROR FLAG IF NOT FAP08835
CAL BCDBF+13 LOAD FLAGS FAP08836
ANA Q2 MASK IN ETC FLAG FAP08837
SLW ETCMD SET FLAG FOR NEXT CARD FAP08838
ZET VFDMD IS ETC FOR VFD FAP08839
TRA VFETC YES FAP08840
TRA CLETC NO, IT IS FOR CALL FAP08841
REM FAP08842
CALOP TSX REFLC,4 *CHECK LOCATION COUNTER FAP08843
CAL BCDBF+13 LOAD FLAGS FAP08844
ANA Q2 MASK IN ETC FLAG FAP08845
SLW ETCMD SET FLAG FOR NEXT CARD FAP08846
CAL T4 SET CALLING LINKAGE ON XR4 FAP08847
SLW BINRY FOR FIRST FIELD (SUBPROGRAM NAME) FAP08848
CLA LOCTR SAVE CALLING LOCATION FAP08849
ANA ADDMK MASK OUT RELOCATION BITS FAP08850
STO ERASE FOR STANDARD ERROR PROCEDURE FAP08851
TRA CALP1 TEST FOR ABSOLUTE ASSEMBLY *FAP08852
TRA CAL01 FAP08853
REM REENTRY AFTER COMMA OR ETC CARD FAP08854
CLETC TSX C019A,4 *LOOK AT NEXT CHARACTER FAP08855
ERA BLANK IS IT BLANK FOLLOWING COMMA FAP08856
TNZ CAL01 NO FAP08857
ZET ETCMD YES, DOES ETC CARD FOLLOW FAP08858
TRA VFD04+2 YES FAP08859
CAL TSXOC NO, CREATE NULL ARGUMENT FAP08860
SLW BINRY FAP08861
STZ INDIC FAP08862
TSX PRNTI,4 *LIST AND PUNCH THIS INSTRUCTION FAP08863
TRA CAL02 FAP08864
REM REENTRY TO ASSEMBLE SUBPROGRAM NAME, NEXT ARGUMENT FAP08865
CAL01 TSX SCANF,4 *EVALUATE NEXT FIELD FAP08866
TXI AFLAG,,0 NULL SUBPROGRAM NAME FAP08867
ORA TSXOC APPEND TSX FAP08868
ORS BINRY FAP08869
SLT EXPRR WAS ADDRESS IN ERROR FAP08870
TRA *+5 NO FAP08871
CAL BLANK YES, BLANK OUT ADDRESS FIELD FAP08872
SLW OCTAL+2 FAP08873
CAL BLANKS FAP08874
SLW OCTAL+3 FAP08875
CAL RBITS INSERT RELOCATION BITS FAP08876
SLW INDIC FAP08877
TSX PRNTI,4 *LIST AND PUNCH THIS INSTRUCTION FAP08878
STZ TVFLG RESET FLAG FOR TRANSFER VECTOR NAME FAP08879
STZ BINRY DELETE TAG FOR FOLLOWING FIELDS (ARGS) FAP08880
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP08881
TRA CLETC NO FAP08882
REM ETC MAY NOT FOLLOW FAP08883
CAL02 NZT SEPFLG IS STANDARD ERROR PROCEDURE REQUESTED FAP08884
TRA CAL03 NO FAP08885
CLA ERASE YES, LOAD LOCATION OF CALL FAP08886
LGR 12 ISOLATE FIRST DIGIT FAP08887
ALS 18 FAP08888
STD BINRY IN FIRST WORD DECREMENT FIELD FAP08889
PXD ,0 DELETE FIRST DIGIT FAP08890
LGL 12 RECALL LOW ORDER FOUR DIGITS FAP08891
STO SYMBL SAVE FOR SECOND WORD DECREMENT FAP08892
CLA LOCTR LOAD * FAP08893
ADD Q2 COMPUTE *+2 FAP08894
STA BINRY INSERT IN FIRST WORD ADDRESS FAP08895
CAL P1 LOAD TXI OPERATION FAP08896
STP BINRY INSERT IN FIRST WORD PREFIX FAP08897
STL TYPAF SET TYPE A INSTRUCTION FLAG FAP08898
CAL Q2 SET INSTRUCTION ADDRESS RELOCATABLE FAP08899
SLW INDIC FAP08900
TSX PRNTI,4 *LIST AND PUNCH INSTRUCTION FAP08901
LDQ SYMBL RELOAD LOW ORDER FOUR DIGITS OF CALL LOC *FAP08902
TSX OCTDV,4 *CONVERT TO DECIMAL *FAP08903
ALS 18 SHIFT INTO DECREMENT FAP08904
ORA LINKG APPEND LINKAGE DIRECTOR IN ADDRESS FAP08905
STO BINRY DELETE RELOCATION BIT 0 FAP08906
ARS 34 REPOSITION RELOCATION BIT FAP08907
STO INDIC FAP08908
TSX PRNTI,4 *LIST AND PUNCH INSTRUCTION FAP08909
STZ TYPAF RESET TYPE A INSTRUCTION FLAG FAP08910
CAL03 TRA READ1 FAP08911
TSXOC TSX ,0 FAP08912
COMBE SYN * COMBES PBFAP08913
COMBS SYN * COMBSS PBFAP08914
CAL LITRL SYMBOL DEFINITION PBFAP08915
STA ADDRS .. PBFAP08916
TRA COMP1 .. JOIN COMMON CODE PBFAP08917
REM FAP08918
COMOP CAL LITRL LOAD ADDRS,,UPCTR FAP08919
STA ADDRS DEFINE SYMBOL LOCATION AT TOP OF BLOCK FAP08920
ARS 18 FAP08921
LDI BCDBF LOAD LOCATION FIELD FAP08922
IIS BLANKS FAP08923
OFT ALONE IS IT BLANK (COMMON DEFINITION) FAP08924
CLA ADDRS NO, DEFINE SYMBOL LOCATION AT TOP OF BLOCKFAP08925
STA ADDRS FAP08926
COMP1 TSX REFPP,4 *ENTER SYMBOL IN REF TABLE FAP08927
TSX REFLP,4 *ENTER POINT OF DEFINITION IN SYM REF TABLEFAP08928
TSX PRNTR,4 *PRINT INPUT CARD, LOCATION RIGHT ADJ FAP08929
TRA READ1 FAP08930
REM FAP08931
DECOP TSX REFLC,4 *CHECK LOCATION COUNTER FAP08932
TSX DECCV,4 *CONVERT INTEGER TO DECIMAL FAP08933
STO BINRY FAP08934
TSX PRNTD,4 *LIST AND PUNCH INTEGER FAP08935
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP08936
TRA DECOP+1 NO FAP08937
TRA READ1 YES FAP08938
REM FAP08939
DETOP NZT UNLSF IS LISTING SUPPRESSED FAP08940
STZ TITLF NO, RESET TITLE FLAG FAP08941
TSX PRNCC,4 *PRINT CONTROL CARD FAP08942
TRA READ1 FAP08943
REM FAP08944
DUPOP TSX REFLC,4 *CHECK LOCATION COUNTER FAP08945
CAL LITRL LOAD DUP RANGE,,ITERATIONS-1 FAP08946
TZE DUP01 IS RANGE ZERO FAP08947
STA DUPC1 NO, INITIALIZE RANGE FAP08948
STA SKDUP SET LENGTH OF BACKSPACE FAP08949
ANA ADDMK DELETE ITERATIONS FAP08950
SUB Q1 FAP08951
AXT CNTRL,1 SET ONE CARD DUP TA TO AVOID BUFFERING FAP08952
TZE *+2 IS DUP LONGER THAN ONE CARD FAP08953
AXT READ0,1 YES, RESET TA TO INITIATE LOOKAHEAD BUFF FAP08954
SXA DUPC3,1 FAP08955
ADD Q2 FAP08956
STA DUPCD INITIALIZE RANGE+1 FAP08957
CAL LITRL LOAD DUP RANGE,,ITERATIONS-1 FAP08958
ARS 18 ISOLATE RANGE FAP08959
TZE DUP01 IS ITERATION 0 OR 1 FAP08960
STA DUPC2 NO, INITIALIZE ITERATIONS-1 FAP08961
AXT 19,4 SET LENGTH OF LISTING LINE FOR FAP08962
SXA DUPC0,4 FIRST ITERATION FAP08963
AXT -1,4 RESET ONE CARD DUP ITERATION SWITCH FAP08964
SXD DUPC4,4 TSFAP08965
STL DUPMD SET DUP MODE FLAG FAP08966
AXT DUPBUF,4 INITIALIZE FOR DUP TSFAP08967
SXA INPU8,4 TSFAP08968
SXA INPU1,4 TSFAP08969
DUP01 TSX REFPP,4 *ENTER SYMBOL IN REF TABLE FAP08970
TSX PRNTR,4 *PRINT INPUT CARD, LOCATION RIGHT ADJUST FAP08971
TRA READ1 FAP08972
REM FAP08973
EJCOP NZT UNLSF IS LISTING SUPPRESSED FAP08974
SXA PAGCNT,0 NO, RESET COUNT OF LINES REMAINING ON PAGEFAP08975
TSX PRNCC,4 *PRINT CONTROL CARD FAP08976
TRA READ1 FAP08977
REM FAP08978
ENDOP ZET DUPMD IS THIS CARD WITHIN RANGE OF DUP FAP08979
TRA PHASE **YES FAP08980
NZT ABSFLG NO, IS ASSEMBLY ABSOLUTE FAP08981
TRA END01 NO FAP08982
TSX SCANF,4 *YES, EVALUATE ADDRESS FAP08983
TXI END02,,0 NULL TRANSFER ADDRESS FAP08984
SLT EXPRR WAS ADDRESS IN ERROR FAP08985
TRA *+2 NO FAP08986
TRA END02 YES FAP08987
STO ADDRS FAP08988
STO ERASE SAVE FOR TRANSFER CARD FAP08989
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP08990
STL ERRFF NO, SET FLAG FAP08991
TSX PRNTR,4 *PRINT CARD, TRANSFER ADDRESS RIGHT ADJ FAP08992
TRA READ1 FAP08993
END01 CAL CHRCTR LOAD FIRST CHARACTER IN VARIABLE FIELD FAP08994
ERA BLANK IS IT BLANK FAP08995
TZE END02 YES FAP08996
STL ERRFF NO, SET ERROR FLAG FAP08997
END02 SXD ENDFB,0 SET SWITCH TO OMIT TRANSFER CARD FAP08998
TSX PRNTC,4 *PRINT INPUT CARD FAP08999
TRA READ1 FAP09000
REM FAP09001
ENTOP CLA RESIDU LOAD ENTRY POINT NAME FAP09002
STZ ERASE CLEAR WORKING STORAGE FAP09003
LRS 30 LOAD FIRST CHARACTER FAP09004
TNZ ENT01 IS IT - (SECONDARY ENTRY POINT) FAP09005
STO ERASE YES, SAVE IT FAP09006
LRS 4 CHANGE TO + FOR SCAN FAP09007
LGR 1 FAP09008
STQ RESIDU FAP09009
REM REENTRY FOR PRIMARY ENTRY POINT NAMES FAP09010
ENT01 STZ SYMBL RESET NAME FOR BLANK VARIABLE FIELD FAP09011
TSX SCANF,4 *EVALUATE ENTRY POINT NAME FAP09012
TXI AFLAG,,0 NULL ENTRY POINT NAME FAP09013
TSX LADJS,4 *LEFT ADJUST ENTRY POINT NAME FAP09014
XCL FAP09015
CAL SEPFLG LOAD STANDARD ERROR PROCEDURE FLAG FAP09016
ERA ALONE IS IT OFF, OR HAS IT BEEN INITIALIZED FAP09017
TNZ *+2 YES FAP09018
TRA ENTPC NO *FAP09019
STQ BINRY FAP09020
PXD ,0 FAP09021
LGL 3 LOAD ZONE BITS OF FIRST CHARACTER FAP09022
SLT EXPRR IS SYMBOL IN ERROR FAP09023
TRA *+2 NO FAP09024
TRA ENT02 YES FAP09025
NZT BINRY IS ENTRY EXPLICIT ZERO (MAIN PROGRAM) FAP09026
TRA *+3 YES FAP09027
NZT VARUR NO, IS NAME RELOCATABLE FAP09028
STL ERRFR NO, SET ERROR FLAG FAP09029
TSX STORE,4 *INSERT NAME ON PROGRAM CARD FAP09030
CAL VAREQ COMBINE LOCATION OF ENTRY POINT FAP09031
ORA ERASE WITH SECONDARY FLAG FAP09032
NZT BINRY IS NAME EXPLICIT ZERO FAP09033
CAL PROLG YES, SET MAIN ENTRY POINT TO FIRST INSTR FAP09034
SLW BINRY FAP09035
STA ADDRS FAP09036
TSX STORE,4 *INSERT LOCATION ON PROGRAM CARD FAP09037
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP09038
STL ERRFF NO, SET ERROR FLAG FAP09039
TRA ENT02+2 FAP09040
ENT02 NZT ERRFU IS SYMBOL UNDEFINED FAP09041
STL ERRFP NO, SET PHASE ERROR FLAG FAP09042
TSX PRNTR,4 *PRINT INPUT CARD, ENTRY POINT RIGHT ADJ FAP09043
TRA READ1 FAP09044
REM FAP09045
REM PRINT OR NOT PRINT ONLINE NON-FATAL FLAGS WNFAP09046
REM FAP09047
FLGOP ZET FGCSFG DO NOT RESET FLAG IF SET IN COMMAND WNFAP09048
TRA READ1 WNFAP09049
TSX ONOFF,4 IS VARIABLE FIELD, ON OFF BLANK WNFAP09050
STO PRL0C SET/RESET FLAG WNFAP09051
CLM PREPARE TO SET/RESET M FLAG ON OPCODE WNFAP09052
ORA MCER2 BRING IN SWITCH WNFAP09053
STO MCER2 SET IT CORRECTLY WNFAP09054
TSX PRNCC,4 LIST IF DESIRED WNFAP09055
TRA READ1 WNFAP09056
REM FAP09057
FULOP TSX PUNCH,4 *PUNCH PARTIAL ABS, FUL OR 9LP CARD FAP09058
STZ 9LPMD RESET 9LP FLAG FAP09059
STL FULMD SET FLAG FOR CARDS FUL FORMAT FAP09060
CAL CHRCTR LOAD FIRST CHARACTER IN VARIABLE FIELD FAP09061
ERA BLANK IS IT BLANK FAP09062
SLW ERRFF SET ERROR FLAG IF NOT FAP09063
TSX PRNTC,4 *PRINT INPUT CARD FAP09064
TRA READ1 FAP09065
REM FAP09066
HEDOP CAL LITRL LOAD HEADING CHARACTER FAP09067
SLW BHEAD RESET HEADING CHARACTER FAP09068
TSX PRNTC,4 *PRINT INPUT CARD FAP09069
TRA READ1 FAP09070
REM FAP09071
REM PREPARE FIRST WORD STL* (EOF) FAP09072
IFEOP TSX REFLC,4 *CHECK LOCATION COUNTER FAP09073
CAL STLIC SET BINARY WORD TO STL* FAP09074
SLW BINRY FAP09075
CAL Q2 SET ADDRESS DIRECTLY RELOCATABLE FAP09076
SLW INDIC FAP09077
CAL R(EOF SET NAME OF SUBROUTINE FAP09078
SLW SYMBL FAP09079
TSX SSYMT,4 *EVALUATE LOCATION IN TRANSFER VECTOR FAP09080
SLT EXPRR IS SYMBOL UNDEFINED FAP09081
TRA *+2 NO FAP09082
TSX MACERR,4 **YES FAP09083
STA BINRY FAP09084
TSX PRNTI,4 *LIST AND PUNCH THIS INSTRUCTION FAP09085
REM PREPARE SECOND WORD NOP ADDR FAP09086
CAL NOPOC SET BINARY OPCODE TO NOP FAP09087
SLW BINRY FAP09088
TSX SCANF,4 *EVALUATE TRANSFER ADDRESS FAP09089
TXI AFLAG,,0 NULL TRANSFER ADDRESS FAP09090
STA BINRY FAP09091
LDQ RBITS SET ADDRESS RELOCATION BITS FAP09092
STQ INDIC FAP09093
TZE *+3 IS TRANSFER ADDRESS 0 (TO BE INITIALIZED) FAP09094
NZT VARUR NO, IS TRANSFER ADDRESS RELOCATABLE FAP09095
STL ERRFR NO, SET ERROR FLAG FAP09096
SLT EXPRR WAS ADDRESS IN ERROR FAP09097
TRA IFE01 NO FAP09098
CAL BLANK BLANK OUT OCTAL LISTING FAP09099
SLW OCTAL+2 FAP09100
CAL BLANKS FAP09101
SLW OCTAL+3 FAP09102
IFE01 SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP09103
STL ERRFF NO, SET FLAG FAP09104
TSX PRNTI,4 *LIST AND PRINT THIS INSTRUCTION FAP09105
TRA READ1 FAP09106
R(EOF BCI 1,0(EOF) FAP09107
STLIC STL* 0 FAP09108
NOPOC NOP FAP09109
REM FAP09110
INXOP TXH INX01,4,-1 HAS TITLE BEEN WRITTEN FAP09111
SXD INXOP,0 NO, RESET SWITCH FAP09112
TSX PRLST,4 *PRINT BLANK LINE FAP09113
PZE FAP09114
TSX PRLST,4 *PRINT INDEX TITLE FAP09115
PZE INTIT,,6 (44)FAP09116
INX01 TSX PRNCC,4 *PRINT CONTROL CARD FAP09117
LXD VRFLD,2 RELOAD WORD COUNT FAP09118
LXA VRFLD,1 RELOAD CHARACTER COUNT FAP09119
TSX SCANF,4 *EVALUATE NEXT EXPRESSION (44)FAP09120
TXI READ1,,0 ALL DONE FAP09121
TSX LADJS,4 LEFT ADJUST SYMBOL (44)FAP09122
SLW INX02+1 (44)FAP09123
CAL BLANKS FAP09124
SLW INX02+2 (44)FAP09125
CAL VAREQ LOAD SYMBOL DEFINITION (44)FAP09126
TSX SHIFT,4 *CONVERT TO OCTAL FAP09127
SLT EXPRR WAS DEFINITION IN ERROR FAP09128
SLW INX02+2 NO, SET SYMBOL DEFINITION (44)FAP09129
AXT ERRFB-ERRFU+1,4 LOAD LENGTH OF FATAL ERROR LIST FAP09130
ZET ERRFB+1,4 IS A FATAL ERROR FLAGGED FAP09131
STL ERRFF YES, RAP KNUCKLES FAP09132
STZ ERRFB+1,4 THROW OUT THE LIFE LINE FAP09133
TIX *-3,4,1 IS FATAL ERROR LIST EXHAUSTED FAP09134
SXA *+3,2 YES, SAVE WORD COUNT FAP09135
TSX PRLST,4 *LIST SYMBOL AND DEFINITION FAP09136
PZE INX02,,6 (44)FAP09137
AXT **,2 RELOAD WORD COUNT FAP09138
TRA INX01+3 FAP09139
REM FAP09140
LBLOP AXT 3,4 RESTORE LABEL TO I/O PARAMETER FAP09141
STL LBLFLG SET BINARY CARD LABEL FLAG FAP09142
TSX SSCAN,4 *ASSEMBLE NEW SERIALIZATION FAP09143
TXI LBL03,,0 NULL SERIALIZATION FAP09144
SLT EXPRR WAS SERIALIZATION IN ERROR FAP09145
SLT EXPND NO, DID SERIALIZATION END WITH OPERATION FAP09146
TRA LBL01 YES, DELETE LABEL FAP09147
CAL SYMB2 NO, RELOAD SERIALIZATION FAP09148
LDQ SYMBL FAP09149
NZT SYMBL IS LOW ORDER PORTION ZERO FAP09150
TZE LBL01+2 YES, IS HIGH ORDER PORTION ZERO FAP09151
LAS FCMSK NO, IS SYMBOL LEFT ADJUSTED FAP09152
TRA LBL01+2 YES FAP09153
NOP NO (MACHINE ERROR) FAP09154
LGL 6 LEFT ADJUST SERIALIZATION ONE CHARACTER FAP09155
TRA *-4 FAP09156
REM SERIALIZATION IN ERROR FAP09157
LBL01 SLN EXPRR SET ERROR FLAG FAP09158
LGL 74 DELETE LABEL FAP09159
REM SERIALIZATION CORRECT FAP09160
SLW NERAS SAVE HIGH ORDER PORTION OF LABEL FAP09161
STQ BERAS SAVE LOW ORDER PORTION OF LABEL FAP09162
TSX SSCAN,4 *ASSEMBLE CONTROL CHARACTER FAP09163
TXI *+1,,0 NULL CONTROL CHARACTER FAP09164
CAL SYMBL LOAD CONTROL CHARACTER FAP09165
SLT EXPRR WAS CHARACTER (OR SERIALIZATION) IN ERROR FAP09166
SLT EXPND NO, DID CHARACTER END WITH OPERATION FAP09167
PXD ,0 YES, DELETE LISTING FAP09168
SLW XERAS FAP09169
LBL02 TXL *+2,4,-1 HAS PROGRAM CARD BEEN PUNCHED FAP09170
TSX PUNCH,4 *YES, PUNCH LAST PARTIAL CARD FAP09171
CAL XERAS SET LISTING LABEL FLAG FAP09172
SLW LBLFG FAP09173
TNZ *+2 IS SERIALIZATION LISTING FLAG ON FAP09174
SXD STORE+1,0 NO, RESET CARD SERIAL NO LISTING SWITCH FAP09175
CAL NERAS RELOAD LABEL FAP09176
LDQ BERAS FAP09177
TSX IDENT,4 *CREATE CARD LABEL FAP09178
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP09179
TRA *+3 NO FAP09180
TSX PRNCC,4 *PRINT CONTROL CARD FAP09181
TRA READ1 FAP09182
STL ERRFF YES, SET ERROR FLAG FAP09183
TSX PRNTC,4 *PRINT INPUT CARD AND ERROR FLAG FAP09184
TRA READ1 FAP09185
REM TURN OFF BINARY CARD LABELLING FAP09186
LBL03 TSX PUNCH,4 *FORCE PUNCHING OF LAST LABELED CARD FAP09187
STZ LBLFLG RESET LABEL FLAG FAP09188
STZ LBLFG RESET LABEL LISTING FLAG FAP09189
SXD STORE+1,0 RESET LABEL LISTING SWITCH FAP09190
TSX PRNCC,4 *PRINT CONTROL CARD FAP09191
TRA READ1 FAP09192
FCMSK OCT 007777777777 FAP09193
REM FAP09194
SPACE 2 TSFAP09195
LSTNG ZET ONLNN THE LSTNG PSEUDO OP SWITCHES TSFAP09196
TRA *+3 THE LISTING FROM OFF TO ON LINE TSFAP09197
STL ONLNN AND REVERSE TSFAP09198
TRA *+2 TSFAP09199
STZ ONLNN NO ONLINE LISTING WHEN =0. TSFAP09200
TSX PRNCC,4 TSFAP09201
TRA READ1 TSFAP09202
SPACE 2 TSFAP09203
LSTOP STZ UNLSF RESET UNLIST FLAGS FAP09204
STZ UNL1F FAP09205
TSX PRLST,4 *PRINT BLANK LINE FAP09206
PZE FAP09207
TSX PRNCC,4 *PRINT CONTROL CARD FAP09208
TRA READ1 FAP09209
REM FAP09210
REM FAP09211
REM EVALUATE LITERAL FAP09212
LITOP LDI BCDBF+13 LOAD FLAGS FAP09213
RNT 10 WAS LITERAL IN ERROR FAP09214
TRA *+4 NO FAP09215
STL ERRFL YES, SET LITERAL ERROR FLAG FAP09216
TSX SCEND,4 *SCAN PAST LITERAL IN ERROR FAP09217
TRA INT05 FAP09218
REM LITERAL IS NOT IN ERROR FAP09219
TSX C0190,4 *DELETE EQUAL SIGN FAP09220
TSX C019A,4 *LOOK AT NEXT CHARACTER FAP09221
ERA QH IS LITERAL HOLLERITH FAP09222
TZE LIT01 YES, SO GO TO APPROPRIATE SECTION WNFAP09223
ERA Q45 IS IT A VFD TYPE LITERAL WNFAP09224
TNZ LIT02 NO FAP09225
REM LITERAL IS VFD, DELETE REMAINDER OF CARD WNFAP09226
TSX C0190,4 GET NEXT CHARACTER WNFAP09227
ERA BLANK IS IT BLANK WNFAP09228
TNZ *-2 IF NOT, KEEP SCANNING TO FIND END OF V.F.WNFAP09229
LIT0Z SLN FLDND DECLARE FIELD IS DONE WNFAP09230
TRA LIT02+1 WNFAP09231
REM LITERAL IS HOLLERITH, DELETE FIRST 8 CHARACTERS FAP09232
LIT01 AXT **,4 LOAD CHARACTER COUNT (INITIALLY 0) FAP09233
TXI *+1,4,1 BUMP FAP09234
SXA LIT01,4 FAP09235
TXH *+3,4,8 HAVE 8 CHARACTERS BEEN DELETED FAP09236
TSX C0190,4 *NO, DELETE ONE MORE FAP09237
TRA LIT01 FAP09238
REM END OF HOLLERITH LITERAL FAP09239
SXA LIT01,0 RESET CHARACTER COUNT FAP09240
ERA BLANK IS THIS END OF VARIABLE FIELD FAP09241
TNZ *+2 NO FAP09242
SLN FLDND YES, SET FLAG FAP09243
TRA LIT02+1 FAP09244
REM REENTRY FOR NUMERIC LITERAL FAP09245
LIT02 TSX SCEND,4 *SCAN PAST LITERAL FAP09246
REM SEARCH LITERAL TABLE FAP09247
CAL LITRL LOAD LITERAL FAP09248
SXA SLIT3+3,1 SAVE CHARACTER COUNT FAP09249
SXA SLIT3+2,2 SAVE WORD COUNT FAP09250
LXA LITSIZ,2 LOAD LOGARITHM OF TABLE LENGTH FAP09251
AXT 0,1 LOAD LOCATION OF FIRST WORD IN TABLE FAP09252
XEC SLIT2+1,2 BUMP TO MIDDLE OF TABLE FAP09253
REM REENTRY AFTER BINARY HOP FAP09254
SLIT1 TXL *+4,1,** IS SEARCH PAST UPPER END OF LITERAL TABLE FAP09255
LAS LITTBL-1,1 NO, IS IT THIS LITERAL FAP09256
TXI SLIT2+1,2,-2 NO, LARGER - GO LOOK HIGHER FAP09257
TXI SLIT2+2,1,1 YES FAP09258
TXI SLIT2,2,-2 NO, SMALLER - GO LOOK LOWER FAP09259
REM FAP09260
TXI SLIT1,1,-512 (MAXIMUM TABLE SIZE = 1024 LITERALS) FAP09261
TXI SLIT1,1,+256 FAP09262
TXI SLIT1,1,-256 FAP09263
TXI SLIT1,1,+128 FAP09264
TXI SLIT1,1,-128 FAP09265
TXI SLIT1,1,+64 FAP09266
TXI SLIT1,1,-64 FAP09267
TXI SLIT1,1,+32 FAP09268
TXI SLIT1,1,-32 FAP09269
TXI SLIT1,1,+16 FAP09270
TXI SLIT1,1,-16 FAP09271
TXI SLIT1,1,+8 FAP09272
TXI SLIT1,1,-8 FAP09273
TXI SLIT1,1,+4 FAP09274
TXI SLIT1,1,-4 FAP09275
TXI SLIT1,1,+2 FAP09276
TXI SLIT1,1,-2 FAP09277
TXI SLIT1,1,+1 FAP09278
TXI SLIT1,1,-1 FAP09279
NOP NOT FOUND FAP09280
TSX MACERR,4 **NOT FOUND FAP09281
SLIT2 XEC *,2 BUMP LOCATION OF LITERAL LOWER BY HALF FAP09282
XEC *,2 BUMP LOCATION OF LITERAL HIGHER BY HALF FAP09283
REM LITERAL IS FOUND FAP09284
CAL Q2 SET ADDRESS RELOCATABLE FAP09285
SLW RBITS FAP09286
SXA *+1,1 COMPUTE POSITION IN LITERAL TABLE FAP09287
AXC **,1 FAP09288
SLIT3 TXI *+1,1,** BUMP BY ORIGIN OF LITERAL TABLE FAP09289
PXA ,1 FAP09290
AXT **,2 RELOAD CARD WORD COUNT FAP09291
AXT **,1 RELOAD CARD CHARACTER COUNT FAP09292
TRA INT06 FAP09293
REM FAP09294
LOCOP CAL LITRL LOAD NEW ORIGIN FAP09295
ADD PROLG RELOCATE UPWARDS BY LENGTH OF FAP09296
SLW ADDRS VECTOR AND LINKAGE DIRECTOR, IF ANY FAP09297
STA LOCTR REDEFINE PROGRAM COUNTER FAP09298
TSX REFPP,4 *ENTER SYMBOL IN REF TABLE FAP09299
TSX REFLC,4 *CHECK LOCATION COUNTER FAP09300
TSX PRNTR,4 *PRINT INPUT CARD, DEFINITION RIGHT ADJUST FAP09301
TRA READ1 FAP09302
REM FAP09303
REM PRINT OR NOT PRINT MACRO LEVEL ON LISTING WNFAP09304
REM FAP09305
MMLOP ZET MMCSFG DID COMMAND LINE SET THIS OPTION WNFAP09306
TRA *+3 YES, IGNORE PSEUDO-OP WNFAP09307
TSX ONOFF,4 WHAT IS IN VARIABLE FIELD WNFAP09308
STO LEVSW SET FLAG APPROPRIATELY WNFAP09309
TSX PRNCC,4 PRINT CONTROL CARD WNFAP09310
TRA READ1 WNFAP09311
REM FAP09312
MAXOP CAL LITRL LOAD SYMBOL DEFINITION FAP09313
PAI FAP09314
LFT 1 IS SYMBOL RELOCATABLE FAP09315
LFT 4 YES, IS IT ABOVE THE TRANSFER VECTOR FAP09316
TRA *+2 NO FAP09317
ADD PROLG YES, RELOCATE DEFINITION UPWARD FAP09318
SLW ADDRS BY LENGTH OF VECTOR AND LINKAGE DIRECTOR FAP09319
TSX REFPP,4 *ENTER SYMBOL IN REF TABLE FAP09320
TSX REFLP,4 *ENTER POINT OF DEFINITION IN SYM REF TABLEFAP09321
TSX PRNTR,4 *PRINT INPUT CARD, DEFINITION RIGHT ADJUST FAP09322
TRA READ1 FAP09323
REM FAP09324
MCERR CAL LITRL INSERT PASS ONE ERROR FLAG FAP09325
SLW PFLAG INTO LEFT HAND MARGIN OF LISTING FAP09326
ERA MFLAG IS THIS MULTIPLY DEFINED MACRO FAP09327
TZE *+3 YES TSFAP09328
STL NOGOF NO, SET FATAL ERROR FLAG FAP09329
TRA *+2 BE SURE TO SET FOR ERROR PRINT WNFAP09330
MCER2 BRN *+2 SWITCH TO PRINT NON-FATAL ERRORS WNFAP09331
STL ONERR AND SET FOR ERROR PRINT TSFAP09332
CAL BLANKS BLANK OUT OCTAL LISTING FAP09333
SLW OCTAL FAP09334
SLW OCTAL+1 FAP09335
SLW OCTAL+2 FAP09336
SLW OCTAL+3 FAP09337
TSX LEVEL,4 *INSERT MACRO LEVEL IN CC 81 - 84 FAP09338
CAL MCER1 PREFIX PZE TSFAP09339
ZET ONLNN IS AN ONLINE LISTING REQUESTED TSFAP09340
SSM YES, PREFIX MZE TSFAP09341
ZET ONERR IS ERROR LISTING REQUIRED TSFAP09342
SSM YES, PREFIX MZE TSFAP09343
STO MCER1 STORE PREFIX TSFAP09344
ZET ONLNN IS IT ONLINE REQUEST TSFAP09345
STL SHORTL YES, SET FOR SHORT LINE TSFAP09346
TSX FPRINT,4 *PRINT CARD IN ERROR TSFAP09347
MCER1 PZE PFLAG,,19 TSFAP09348
STZ OCTAL CLEAR OCTAL EXPANSION FAP09349
STZ OCTAL+1 FAP09350
STZ OCTAL+2 FAP09351
STZ OCTAL+3 FAP09352
STZ ONERR RESTORE SWITCHES TSFAP09353
STZ SHORTL TO CONTROL PRINT TSFAP09354
TRA READ1 FAP09355
REM FAP09356
OCTOP TSX REFLC,4 *CHECK LOCATION COUNTER FAP09357
TSX OCTCV,4 *CONVERT INTEGER TO OCTAL FAP09358
SLW BINRY FAP09359
TSX PRNTD,4 *LIST AND PUNCH INTEGER FAP09360
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP09361
TRA OCTOP+1 NO FAP09362
TRA READ1 YES FAP09363
REM FAP09364
OPDOP CAL BLANKS SET LOCATION FIELD BLANK FAP09365
SLW OCTAL FAP09366
LDI LITRL LOAD OCTAL DEFINITION FAP09367
STL TYPAF SET TYPE A FLAG FOR PSEUDOOPERATION FAP09368
RFT 100000 IS THIS A MACHINE OPERATION FAP09369
TSX IFLGS,4 *YES, SET INSTRUCTION LISTING FLAGS FAP09370
NOP INSTRUCTION HAS FLAGS IN ADDRESS FAP09371
STI BINRY FAP09372
STL OPFLG SET OP DEFINITION FLAG FAP09373
TSX PRNTI,4 *LIST INSTRUCTION FAP09374
STZ OPFLG RESET OP DEFINITION FLAG FAP09375
TRA READ1 FAP09376
REM FAP09377
ORDOP TSX REFLC,4 *CHECK LOCATION COUNTER FAP09378
LXD LITRL,4 LOAD OPCODE FAP09379
PXA ,4 FAP09380
TSX BCDCV,4 *CONVERT TO DECIMAL FAP09381
ALS 24 POSITION IN DIGITS 1, 2 FAP09382
SLW BINRY INSERT IN WORD *FAP09383
LDI LITRL LOAD VARIABLE FIELD FLAGS *FAP09384
RNT 600000 IS ACCESS MODULE REQUIRED *FAP09385
TRA ORDAM YES, ASSEMBLE *FAP09386
TSX ORDLP,4 *NO, CHECK NEXT CHARACTER *FAP09387
TZE ORDW1 IF BLANK, FINISHED *FAP09388
ORDAM TSX ORDSC,4 *ASSEMBLE ACCESS MODULE (2 DIGITS) *FAP09389
ANA Q4095 MASK IN TWO DIGITS *FAP09390
ALS 12 POSITION IN DIGITS 3, 4 *FAP09391
ORS BINRY INSERT IN WORD *FAP09392
LDI LITRL LOAD VARIABLE FIELD FLAGS *FAP09393
RNT 400000 IS TRACK REQUIRED *FAP09394
TRA ORDTK YES, ASSEMBLE *FAP09395
TSX ORDLP,4 *NO, CHECK NEXT CHARACTER *FAP09396
TZE ORDW1 IF BLANK, FINISHED *FAP09397
ORDTK TSX ORDSC,4 *ASSEMBLE TRACK (4 DIGITS) *FAP09398
ANA Q4BCD MASK IN FOUR DIGITS *FAP09399
LDQ Q0 ZERO MQ *FAP09400
LGR 12 *FAP09401
STQ ERASE SAVE RIGHT HALF OF TRACK *FAP09402
ORS BINRY INSERT LEFT HALF OF TRACK IN WORD *FAP09403
TSX ORDZR,4 *CONVERT TO TAPE BCD ZERO *FAP09404
TSX PRNTO,4 *LIST AND PUNCH FIRST WORD *FAP09405
CAL ERASE INSERT RIGHT HALF *FAP09406
SLW BINRY OF TRACK IN WORD *FAP09407
LDI LITRL LOAD VARIABLE FIELD FLAGS *FAP09408
RNT 200000 IS RECORD REQUIRED *FAP09409
TRA ORDRC YES, ASSEMBLE *FAP09410
TSX ORDLP,4 *NO, CHECK NEXT CHARACTER *FAP09411
TZE ORDW2 IF BLANK, FINISHED *FAP09412
ORDRC TSX SSCAN,4 *ASSEMBLE RECORD (2 DIGITS) *FAP09413
TXI ORDFA,,0 NULL FIELD *FAP09414
SLT EXPND WAS END OF EXPRESSION REACHED *FAP09415
TXI ORDFF,,0 NO, ILLEGAL OPERATOR PRESENT *FAP09416
CAL SYMBL *FAP09417
ALS 12 POSITION IN DIGITS 3,4 *FAP09418
PAI *FAP09419
LFT 777700 IS SYMBOL TOO LONG *FAP09420
TXI ORDFF,,0 YES *FAP09421
ORS BINRY INSERT IN NEXT WORD *FAP09422
TSX ORDLP,4 *CHECK NEXT CHARACTER *FAP09423
TRA ORDW2 FINISHED *FAP09424
ORDFF STL ERRFF SET F FLAG *FAP09425
TRA ORDW2 *FAP09426
ORDFA STL ERRFA SET MISSING FIELD FLAG *FAP09427
TRA ORDW2 *FAP09428
REM *FAP09429
REM CHECK NEXT CHARACTER *FAP09430
ORDLP CAL CHRCTR LOAD NEXT CHARACTER *FAP09431
ERA BLANK IS IT BLANK *FAP09432
ORS ERRFF SET FLAG IF NOT *FAP09433
TRA 1,4 *FAP09434
REM *FAP09435
HYPOP TSX REFLC,4 *CHECK LOCATION COUNTER *FAP09436
LXD LITRL,4 LOAD OPCODE *FAP09437
PXA ,4 *FAP09438
TSX BCDCV,4 *CONVERT TO DECIMAL *FAP09439
ALS 24 POSITION IN DIGITS 1, 2 *FAP09440
SLW BINRY INSERT IN WORD *FAP09441
LDI LITRL LOAD VARIABLE FIELD FLAG *FAP09442
RFT 200000 IS ADDRESS REQUIRED *FAP09443
TRA HYPAD YES *FAP09444
TSX ORDLP,4 *NO, CHECK NEXT CHARACTER *FAP09445
TRA ORDW2 FINISHED *FAP09446
HYPAD TSX ORDSC,4 *ASSEMBLE ADDRESS *FAP09447
ANA Q63 ZERO ALL BUT ONE DIGIT *FAP09448
ORS BINRY SET SECOND ADDRESS *FAP09449
LDQ BINRY OBTAIN OPCODE *FAP09450
LGL 18 POSITION AND STORE FIRST *FAP09451
ORS BINRY ADDRESS AND SECOND OPCODE *FAP09452
TRA HYPAD-2 GO CHECK NEXT CHARACTER *FAP09453
REM FAP09454
ORGOP CAL LITRL LOAD NEW ORIGIN FAP09455
ADD PROLG RELOCATE UPWARDS BY LENGTH OF FAP09456
SLW ADDRS VECTOR AND LINKAGE DIRECTOR, IF ANY FAP09457
STA LOCTR REDEFINE PROGRAM COUNTER FAP09458
STA CDCTR RESET CARD ORIGIN COUNTER FAP09459
TSX PUNCH,4 *PUNCH REMAINDER OF LAST CARD FAP09460
TSX REFPP,4 *ENTER SYMBOL IN REF TABLE FAP09461
TSX REFLC,4 *CHECK LOCATION COUNTER FAP09462
TSX PRNTR,4 *PRINT INPUT CARD, DEFINITION RIGHT ADJUST FAP09463
TRA READ1 FAP09464
REM FAP09465
PCCOP TSX ONOFF,4 *CHECK FOR ON, OFF, BLANK VARIABLE FIELD FAP09466
STO PRNSW RESET SWITCH AS PER VARIABLE FIELD FAP09467
TSX PRNTC,4 *PRINT INPUT CARD FAP09468
TRA READ1 FAP09469
REM FAP09470
PMCOP TSX ONOFF,4 *CHECK FOR ON, OFF, BLANK VARIABLE FIELD FAP09471
STO PMCSW+1 RESET SWITCH AS PER VARIABLE FIELD FAP09472
TSX PRNCC,4 *PRINT CONTROL CARD FAP09473
TRA READ1 FAP09474
REM FAP09475
REFOP TSX SCANF,4 'REF' PSEUDOOP, SCAN VARIABLE FIELD PBFAP09476
TXI AFLAG+1,,0 .. NULL VARIABLE FIELD PBFAP09477
SLT EXPRR IS VARIABLE FIELD IN ERROR PBFAP09478
ZET RBITS .. OR RELOCATABLE PBFAP09479
TRA SPC02 .. YES, F FLAG FOR CARD PBFAP09480
ALS 18 VARIABLE FIELD VALID, SET SWITCH PBFAP09481
NZT REFSFG .. UNLESS INHIBITED BY COMMAND LINE PBFAP09482
STD PREF6 .. PBFAP09483
TRA SPC01-2 JOIN COMMON CODE IN 'SPACE' PBFAP09484
REM FAP09485
REMOP LXD VRFLD,4 WORD COUNT OF BEGINNING OF VARIABLE FIELD*FAP09486
CAL BLANKS TO BLANK OUT OPCODE *FAP09487
TXH *+2,4,-2 WHICH WORD NEEDS TO BE BLANKED *FAP09488
SLW BCDBF+1 ALL OF THE FIRST WORD *FAP09489
LDQ RESIDU HOW MUCH OF THIS WORD NEEDS TO BE BLANKED*FAP09490
TRA PTCHX TO OFF-LINE PATCH *FAP09491
REM FAP09492
RMTOP CAL LITRL RESET HEADING CHARACTER FAP09493
STA BHEAD FAP09494
TRA READ1 FAP09495
REM FAP09496
SETBP STL TYPDF SET FLAG TO PRINT SIX DIGITS DAFAP09497
LXD IOLST,4 GET LENGTH OF LISTING LINE DAFAP09498
TXL SETB2,4,5 IS THIS RE-ITERATION OF 'DUP' DAFAP09499
TSX REFPP,4 NO, MAKE REFERENCE TABLE ENTRIES DAFAP09500
CAL LITRL LOAD PASS1 DEFINITION DAFAP09501
TRA SET03 AND JOIN CODE FOR 'SET' DAFAP09502
SETB2 STL BOLMD SET BOOLEAN MODE DAFAP09503
TSX SCANF,4 AND EVALUATE VARIABLE FIELD DAFAP09504
TXI AFLAG,,0 NULL DEFINITION DAFAP09505
CAL VAREQ LOAD VALUE, DAFAP09506
TRA SET03 AND JOIN 'SET' CODE DAFAP09507
REM FAP09508
SETOP LXD IOLST,4 GET LENGTH OF LISTING LINE (39)FAP09509
TXL SET02,4,5 IS THIS REITERATION OF DUP.. (39)FAP09510
TSX REFPP,4 *NO, MAKE REFERENCE TABLE ENTRIES (39)FAP09511
CAL LITRL LOAD PASS ONE DEFINITION (39)FAP09512
PAI (39)FAP09513
LFT 1 IS SYMBOL RELOCATABLE (39)FAP09514
LFT 4 YES, BUT IS IT IN TRANSFER VECTOR (39)FAP09515
TRA *+2 IS IN VECTOR OR NOT RELOCATABLE (39)FAP09516
ADD PROLG RELOCATE ABOVE PROLOGUE (39)FAP09517
SET03 SLW ADDRS SAVE FOR LISTING (39)FAP09518
TSX REFLP,4 *ENTER POINT OF DEFINITION AS REFERENCE(39)FAP09519
REM ADDRESS INITIALIZED BY SSYMT (CALLED BY REFLP). (39)FAP09520
SET01 AXT **,1 OBTAIN POSITION IN SYMBOL TABLE (39)FAP09521
CAL ADDRS RELOAD DEFINITION (39)FAP09522
SLW* SSYM5 AND ENTER IT IN TABLE (39)FAP09523
TSX PRNTR,4 *LIST INPUT CARD LOCATION RIGHT ADJUSTED FAP09524
TRA READ1 FAP09525
REM FAP09526
SPCOP TRA PTCHZ (45)FAP09527
TMI SPC03 PMC OFF- DO NOT SPACE LISTING (45)FAP09528
TSX SCANF,4 *NO, EVALUATE LENGTH OF SKIP FAP09529
TXI AFLAG+1,,0 NULL SKIP LENGTH FAP09530
SLT EXPRR IS LENGTH OF SKIP IN ERROR FAP09531
ZET RBITS NO, IS IT RELOCATABLE FAP09532
TRA SPC02 YES FAP09533
TRA PATCH1 *FAP09534
TNX *+4,1,5 IS THIS BOTTOM OF PAGE FAP09535
SXD *+2,1 NO, SET TEST FOR BOTTOM OF PAGE FAP09536
PAX ,1 RECALL NUMBER OF LINES TO SPACE FAP09537
TXL *+3,1,** IS SPACE PAST BOTTOM OF PAGE FAP09538
SXA PAGCNT,0 YES, EJECT PAGE FAP09539
TRA SPC01 FAP09540
TSX FPRINT,4 *SPACE NEXT LINE FAP09541
PZE FAP09542
TIX *-2,1,1 IS SPACING COMPLETE FAP09543
SLT FLDND YES, WAS END OF VARIABLE FIELD SENSED FAP09544
TRA SPC02 NO FAP09545
SPC01 TSX PRNCC,4 *YES, PRINT CONTROL CARD FAP09546
TRA SPC03 FAP09547
SPC02 STL ERRFF SET ERROR FLAG FAP09548
STZ ERRFU PREVENT ABORTION FAP09549
STZ ERRFR FAP09550
STZ ERRFE FAP09551
TSX PRNTC,4 *PRINT INPUT CARD FAP09552
SPC03 TRA READ1 FAP09553
REM FAP09554
SRFOP TSX ONOFF,4 'SYMREF' CARD, CHECK ON, OFF, NULL PBFAP09555
STO SSYM6 .. SET SWITCH ACCORDING TO CARD PBFAP09556
TSX PRNCC,4 PRINT CONTROL CARD PBFAP09557
TRA READ1 .. PBFAP09558
REM FAP09559
TCDOP TSX SCANF,4 *EVALUATE TRANSFER ADDRESS FAP09560
TXI AFLAG,,0 NULL TRANSFER ADDRESS FAP09561
STO ADDRS SET TRANSFER ADDRESS FAP09562
STO ERASE SAVE FOR TRANSFER CARD FAP09563
SLT EXPRR WAS TRANSFER ADDRESS IN ERROR FAP09564
TSX PCHTC,4 *NO, PUNCH TRANSFER CARD FAP09565
SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP09566
STL ERRFF NO, SET FLAG FAP09567
TSX PRNTR,4 *PRINT CARD, TRANSFER ADDRESS RIGHT ADJ FAP09568
TRA READ1 FAP09569
REM FAP09570
TITOP NZT UNLSF IS LISTING SUSPENDED FAP09571
STL TITLF NO, SET TITLE FLAG FAP09572
TSX PRNCC,4 *PRINT CONTROL CARD FAP09573
TRA READ1 FAP09574
REM FAP09575
TTLOP CAL CHRCTR SET SUBHEAD FLAG FAP09576
SLW TTLFG RESET IF FIRST CHARACTER IS ZERO FAP09577
CAL BLANKS LOAD LEADING BLANKS FAP09578
LDQ BCDBF+1 LOAD CC 7 - 12 FAP09579
RQL 30 DELETE CC 7 - 11 WNFAP09580
LGL 6 INSERT CC - 12 WNFAP09581
SLW BLANKS+3 INTO WORD 4 OF SUBHEADING FAP09582
AXT 10,4 FAP09583
LDQ BCDBF+12,4 INSERT CC 13 - 72 FAP09584
STQ BLANKS+14,4 INTO WORDS 5 - 14 OF SUBHEADING FAP09585
TIX *-2,4,1 FAP09586
CAL BCDBF LOAD LOCATION FIELD FAP09587
ERA BLANKS DOES A RENUMBER EXIST FAP09588
TZE TTL03 NO FAP09589
LDQ BCDBF YES, RELOAD PAGE NUMBER FAP09590
STZ SYMBL CLEAR WORKING STORAGE FAP09591
AXT 6,4 PREPARE TO ASSEMBLE 6 CHARACTERS FAP09592
TTL01 PXD ,0 FAP09593
LGL 6 LOAD NEXT CHARACTER FAP09594
SLW CHRCTR FAP09595
TZE *+3 IS CHARACTER 0 FAP09596
ERA BLANK NO, IS IT BLANK FAP09597
TZE TTL02 YES FAP09598
CAL SYMBL APPEND THIS CHARACTER TO PARTIAL NUMBER FAP09599
ALS 6 FAP09600
ADD CHRCTR FAP09601
SLW SYMBL SAVE PARTIAL NUMBER FAP09602
TTL02 TIX TTL01,4,1 IS NUMBER COMPLETE FAP09603
TSX DECSV,4 *YES, CONVERT TO BINARY INTEGER FAP09604
SUB Q1 FAP09605
SLT EXPRR IS INTEGER TOO LARGE FAP09606
STA PAGENO NO, RESET PAGE NUMBER FAP09607
TTL03 SXA PAGCNT,0 EJECT PAGE FAP09608
TSX PRNCC,4 *PRINT CONTROL CARD FAP09609
TRA READ1 FAP09610
REM FAP09611
UNLOP STL UNL1F SET UNLIST FLAG FAP09612
TSX PRNTC,4 *PRINT INPUT CARD FAP09613
TRA READ1 FAP09614
REM FAP09615
VFDOP TSX REFLC,4 *CHECK LOCATION COUNTER FAP09616
TRA VFDCR RESET RELOCATION BITS AND SET FLAG *FAP09617
CAL BCDBF+13 SET ETC CARD FLAG FAP09618
ANA Q2 FAP09619
SLW ETCMD FAP09620
AXT 36,4 SET UNUSED BIT COUNT TO FULL WORD FAP09621
STZ VFDRB RESET SIGN OF UNUSED COUNT WNFAP09622
SXA VFDRB,4 FAP09623
STZ VFDPF RESET FLAG FOR FIELD ENDING IN BIT 35 FAP09624
REM REENTRY AFTER , TO START NEXT FIELD FAP09625
VFETC TSX VFDCV,4 *ASSEMBLE NEXT FIELD FAP09626
REM REENTRY TO PACK SECOND WORD OF A LONG FIELD FAP09627
VFD01 CLA VFDFB DOES IT RATTLE FAP09628
SUB VFDRB FAP09629
TMI VFD02 YES FAP09630
STO VFDFB IT RATTLES NOT FAP09631
TNZ *+5 DOES IT FIT PERFECT FAP09632
STL VFDPF PERFECT FIT, AWARD YOURSELF ONE MEDAL FAP09633
CAL RBITS SET RELOCATION INDICATOR FAP09634
STA INDIC FAP09635
STZ RBITS RESET RELOCATION BITS FAP09636
CLA VFDRB LOAD NUMBER OF BITS LEFT IN WORD FAP09637
STA *+3 SET SHIFT FAP09638
CAL BINRY LOAD DATUM WORD FAP09639
LDQ VFDFL+1 LOAD HIGH ORDER PORTION OF FIELD FAP09640
LGL ** APPEND AS FAR AS IT GOES FAP09641
SLW BINRY SAVE WORD FAP09642
CAL VFDFL+1 RELOAD HIGH ORDER PORTION OF WORD FAP09643
LDQ VFDFL RELOAD LOW ORDER PORTION OF WORD FAP09644
XEC *-4 LEFT ADJUST REMAINDER FAP09645
SLW VFDFL+1 SAVE NEW HIGH ORDER PORTION OF WORD FAP09646
STQ VFDFL SAVE NEW LOW ORDER PORTION OF WORD FAP09647
TSX PRNTW,4 *LIST AND PUNCH THIS DATUM WORD FAP09648
STZ INDIC RESET RELOCATION INDICATOR FAP09649
AXT 36,4 RESET NUMBER OF BITS AVAILABLE IN FAP09650
SXA VFDRB,4 NEXT WORD FAP09651
TRA VFD01 FAP09652
REM REENTRY FOR REMAINDER OF FIELD 36 BITS OR FEWER FAP09653
VFD02 NZT VFDFB ANY BITS LEFT FAP09654
TRA VFD03 NO FAP09655
STZ VFDPF IT RATTLES, YOU LOSE YOUR MEDAL FAP09656
STA VFDRB SAVE COUNT OF REMAINING FIELD FAP09657
ERA QB WILL FIELD FIT TIGHT IN DECREMENT FAP09658
TNZ *+4 NO FAP09659
LXA RBITS,4 YES, SET DECREMENT RELOCATION BITS FAP09660
SXD INDIC,4 FAP09661
STZ RBITS RESET RELOCATION BITS FAP09662
CLA RBITS LOAD RELOCATION BITS FAP09663
TZE *+3 WAS FIELD RELOCATABLE FAP09664
STL ERRFR YES, TSK, TSK, TSK, IT DIDNT FIT FAP09665
STZ RBITS FAP09666
CLA VFDFB LOAD LENGTH OF THIS FIELD FAP09667
STA *+3 SET SHIFT FAP09668
CAL BINRY LOAD PARTIAL DATUM WORD FAP09669
LDQ VFDFL+1 LOAD HIGH ORDER PORTION OF WORD FAP09670
LGL ** PACK IT IN FAP09671
SLW BINRY SAVE PARTIAL DATUM WORD FAP09672
REM END OF FIELD FAP09673
VFD03 SLT FLDND WAS END OF VARIABLE FIELD SENSED FAP09674
TRA VFETC NO FAP09675
REM END OF VARIABLE FIELD FAP09676
ZET ETCMD YES, DOES ETC CARD FOLLOW FAP09677
TRA VFD04+2 YES FAP09678
REM END OF VFD STATEMENT FAP09679
ZET VFDPF NO, DO YOU STILL HAVE YOUR MEDAL FAP09680
TRA VFD04 YES FAP09681
LDQ BINRY NO, LOAD PARTIAL DATUM WORD FAP09682
CLA VFDRB LOAD COUNT OF REMAINING BITS FAP09683
STA *+1 INITIALIZE SHIFT FAP09684
LGL ** TO LEFT ADJUST PARTIAL DATUM WORD FAP09685
STQ BINRY FAP09686
TSX PRNTW,4 *LIST AND PUNCH FINAL PARTIAL DATUM WORD FAP09687
REM REENTRY FOR BESPANGLED FIELD FAP09688
VFD04 STZ VFDPF RESET MEDAL FAP09689
STZ VFDMD RESET VFD MODE FLAG FAP09690
REM REENTRY AFTER CALL STATEMENT TO PRINT ERROR FLAG FAP09691
LXD IOLST,4 LOAD PRINT COMMAND WORD COUNT FAP09692
TXL *+2,4,5 WAS CARD PRINTED FAP09693
TSX PRNTC,4 *NO, PRINT INPUT CARD FAP09694
TRA READ1 FAP09695
REM FAP09696
REM FAP09697
PHASE TSX SCANF,4 *EVALUATE VARIABLE FIELD FAP09698
TXI *+5,,0 NULL VARIABLE FIELD FAP09699
NZT ERRFB IS ERROR BOOLEAN FAP09700
ZET ERRFR NO, IS ERROR RELOCATION ERROR FAP09701
TRA *+3 YES FAP09702
NZT ERRFU NO, IS SYMBOL UNDEFINED FAP09703
STL ERRFP NO, SET PHASE ERROR FLAG FAP09704
REM REENTRY FOR COMMENTS CARD FAP09705
TSX PRNTC,4 *PRINT INPUT CARD FAP09706
TRA READ1 FAP09707
REM FAP09708
TSPRP BCI 3, LENGTH TSFAP09709
TSPRC BCI 4, COMMON BREAK TSFAP09710
TSPRE BCI 3, ASSEMBLY FAILED TSFAP09711
CRDID BCI 8, BINARY CARD NO. CARD ORIGIN FAP09712
INTIT BCI 4, TABLE OF CONTENTS FAP09713
LDTIT BCI 4, LINKAGE DIRECTOR (44)FAP09714
PCTIT BCI 3, PROGRAM CARD FAP09715
TVTIT BCI 4, TRANSFER VECTOR FAP09716
LITIT BCI 4, LITERALS FAP09717
CBTIT BCI 9, IS THE LAST LOCATION NOT USED BY THIS PRO FAP09718
BCI 1,GRAM FAP09719
PGTIT BCI 9, IS THE FIRST LOCATION NOT USED BY THIS PRO FAP09720
BCI 1,GRAM FAP09721
REFHD IOCD *+1,,9 TSFAP09722
BCI 4, FAP09723
BCI 5,POST PROCESSOR ASSEMBLY DATA FAP09724
RFTIT BCI 6,0REFERENCES TO DEFINED SYMBOLS FAP09725
USTIT BCI 6,0REFERENCES TO UNDEFINED SYMBOLS FAP09726
REFOV BCI 9,0 SYMBOLIC REFERENCE TABLE OVERFLOWED. LISTING INC FAP09727
BCI 2,OMPLETE. FAP09728
ERTIT BCI 9,0 E0 NO ERROR IN ABOVE ASSEMBLY. EXECUTION DELETED. FAP09729
REM FAP09730
CTLWD PTW ** RELOCATABLE CARD 9L LOAD ADDRESS FAP09731
CHKSM DEC RELOCATABLE CARD 9R CHECKSUM FAP09732
RELBT DEC , RELOCATABLE CARD 8L,8R, RELOCATION BITS FAP09733
REM FAP09734
DEC MUST PRECEDE BMPBF TO KEEP CC81 CLEAN FAP09735
BMPBF DEC ,,,,,,, BUFFER FOR CHARACTERS IN CARD LABEL FAP09736
BMPSV DEC ,,,,,,, BUFFER TO SAVE CARD LABEL FAP09737
CIDBF DEC ,,,,,,, LISTING BUFFER FOR CARD ID NUMBER FAP09738
CIDSV DEC ,,,,,,, BUFFER TO SAVE LISTING CHARACTERS FAP09739
REM FAP09740
PAKPC SXA PRNCX,4 *FAP09741
AXT 5,4 *FAP09742
TNZ PRNCS+3 *FAP09743
SXD PRNCI,4 *FAP09744
TRA PRNCS+3 *FAP09745
REM *FAP09746
REM NEXT FIELD TO BE ASSEMBLED *FAP09747
REM *FAP09748
ORDSC SXA ORDSX,4 SAVE CALLING LINKAGE *FAP09749
TSX SCANF,4 *ASSEMBLE NEXT FIELD *FAP09750
TXL ORDSN,,0 NULL FIELD *FAP09751
TSX BCDCV,4 *CONVERT TO DECIMAL *FAP09752
NZT RBITS IS FIELD RELOCATABLE *FAP09753
TRA ORDSX NO *FAP09754
STL ERRFR YES, SET ERROR FLAGS *FAP09755
SLN EXPRR *FAP09756
ZAC DELETE FIELD IN ERROR *FAP09757
TRA ORDSX *FAP09758
ORDSN STL ERRFA SET MISSING FIELD FLAG *FAP09759
ORDSX AXT **,4 RELOAD CALLING LINKAGE *FAP09760
TRA 1,4 *FAP09761
REM *FAP09762
REM *FAP09763
Q4BCD OCT 77777777 *FAP09764
REM *FAP09765
ORDZR LDI BINRY LOAD WORD *FAP09766
LFT 770000 IS DIGIT 1 ZERO *FAP09767
TRA *+2 NO *FAP09768
SIL 120000 YES, CONVERT TO TAPE BCD ZERO *FAP09769
LFT 007700 IS DIGIT 2 ZERO *FAP09770
TRA *+2 NO *FAP09771
SIL 001200 YES, CONVERT TO TAPE BCD ZERO *FAP09772
LFT 000077 IS DIGIT 3 ZERO *FAP09773
TRA *+2 NO *FAP09774
SIL 000012 YES, CONVERT TO TAPE BCD ZERO *FAP09775
RFT 770000 IS DIGIT 4 ZERO *FAP09776
TRA *+2 NO *FAP09777
SIR 120000 YES, CONVERT TO TAPE BCD ZERO *FAP09778
RFT 007700 IS DIGIT 5 ZERO *FAP09779
TRA *+2 NO *FAP09780
SIR 001200 YES, CONVERT TO TAPE BCD ZERO *FAP09781
RFT 000077 IS DIGIT 6 ZERO *FAP09782
TRA *+2 NO *FAP09783
SIR 000012 YES, CONVERT TO TAPE BCD ZERO *FAP09784
STI BINRY *FAP09785
TRA 1,4 *FAP09786
REM *FAP09787
REM *FAP09788
ORDW1 TSX ORDZR,4 *CONVERT BCD ZEROS *FAP09789
TSX PRNTO,4 *LIST AND PUNCH FIRST WORD *FAP09790
STZ BINRY CLEAR NEXT WORD *FAP09791
ORDW2 TSX ORDZR,4 *CONVERT BCD ZEROS *FAP09792
TSX PRNTO,4 *LIST AND PUNCH THIS WORD *FAP09793
TRA READ1 *FAP09794
REM *FAP09795
REM CALL CORRECTION *FAP09796
CALP1 NZT ABSFLG IS IT ABSOLUTE ASSEMBLY *FAP09797
STL TVFLG NO, SET TRANSFER VECTOR NAME FLAG *FAP09798
TRA CLETC-1 *FAP09799
REM *FAP09800
REM SET CORRECTION *FAP09801
SET02 TSX SCANF,4 *EVALUATE VARIABLE FIELD (39)FAP09802
TXI AFLAG,,0 NULL DEFINITION (39)FAP09803
CAL VAREQ LOAD DEFINITION (39)FAP09804
TRA SET03 AND RETURN TO PROCESS IT (39)FAP09805
REM *FAP09806
REM ENTRY CORRECTION *FAP09807
ENTPC STQ ENTNM SAVE FIRST ENTRY POINT NAME *FAP09808
SXD SEPFLG,4 INITIALIZE STANDARD ERROR FLAG *FAP09809
TRA ENT01+9 *FAP09810
ENTNM PZE ** ENTRY POINT NAME *FAP09811
REM *FAP09812
REM BCI CORRECTION *FAP09813
BCI00 TSX PRNTL,4 *PRINT LOCATION LEFT ADJUSTED *FAP09814
TRA READ1 *FAP09815
REM *FAP09816
INITA SLW START SAVE LOCATION FIELD *FAP09817
CAL BCDBF+13 SAVE ERROR FLAGS *FAP09818
SLW INITP *FAP09819
STZ BCDBF+13 *FAP09820
TRA INIT1 *FAP09821
INITB TSX PRNTW,4 *LIST AND PUNCH THIS DATUM WORD *FAP09822
INITC CAL INITP RESTORE ERROR FLAGS *FAP09823
SLW BCDBF+13 *FAP09824
TRA INIT4 *FAP09825
INITP PZE *FAP09826
REM PROGRAM CARD CORRECTION *FAP09827
INITR SXA STR09,4 RESET CARD WORD COUNT FOR RELOCATABLE *FAP09828
ZET MAINPF IS THIS A MAIN PROGRAM (42)FAP09829
ZET PRGBK YES, IS PROGRAM BREAK 0 (42)FAP09830
TRA INITS (42)FAP09831
ZSD PNCH1 MAIN PROGRAM WITH PROGRAM BREAK 0 (42)FAP09832
TRA INITS (42)FAP09833
REM VFD CORRECTION *FAP09834
VFDCR STZ RBITS RESET RELOCATION BITS *FAP09835
STL VFDMD SET VFD CARD FLAG *FAP09836
TRA VFDOP+2 *FAP09837
PATCH1 LXA PAGCNT,1 LOAD NUMBER OF LINES LEFT ON PAGE *FAP09838
TXH SPCOP+8,1,0 IS THIS TOP OF PAGE *FAP09839
PAX ,1 YES, RECALL NUMBER OF LINES TO SPACE *FAP09840
TRA SPCOP+14 *FAP09841
PREFP LNT 10 DUPLICATE DEFINITION *FAP09842
CAL BLANKS NO, CLEAR FLAG *FAP09843
LGL 6 BRING IN CHARACTER *FAP09844
SLW BBUF22 SET WORD ZERO *FAP09845
LFT 10 TEST AGAIN PBFAP09846
TRA PREF6+1 ALWAYS PRINT DUPLICATE PBFAP09847
CLA* PREF6+1 LOAD REFERENCE POINTER PBFAP09848
AXT 1,2 SET FOR NORMAL SYMBOL PBFAP09849
TNZ PREF6 WAS SYMBOL REFERENCED PBFAP09850
LNT 1 NO, IS SYMBOL RELOCATABLE PBFAP09851
TXI *+1,2,1 .. NO, ADD 1 FOR UNRELOCATABLE SYMBOL PBFAP09852
TXI PREF6,2,1 .. AND 1 FOR UNREFERENCEDNESS PBFAP09853
REM PROLOGUE CORRECTION FOR EVEN *FAP09854
INITE CAL INIT1 TRANSFER VECTOR LENGTH IN ADDRESS *FAP09855
ZET EVNFLG DO EVEN PSEUDO-OPS EXIST *FAP09856
LBT YES, IS EXTRA WORD NEEDED.. *FAP09857
TRA INITF **NO *FAP09858
AXT 6,4 YES, SET LENGTH OF LISTING NAME *FAP09859
SXD IOLST,4 TO INCLUDE LOCATION FIELD *FAP09860
TSX PRLST,4 PRINT BLANK LINE *FAP09861
IOCD ,,0 *FAP09862
CAL AXTOC GENERATE HARMLESS INSTRUCTION *FAP09863
SLW BINRY *FAP09864
CAL EVENM -*EVEN*- TO LOCATION FIELD *FAP09865
SLW BCDBF *FAP09866
TSX PRNTI,4 PRINT AXT INSTRUCTION *FAP09867
INITF CAL START RESTORE CARD LOCATION FIELD *FAP09868
TRA INIT3+2 *FAP09869
REM *FAP09870
EVNOP CAL LOCTR GET PROGRAM COUNTER *FAP09871
LBT IS IT ODD.. *FAP09872
TRA UNLOP+1 NO, OPERATION IS NULL *FAP09873
CAL AXTOC YES, INSERT AXT OP CODE *FAP09874
SLW BINRY *FAP09875
TSX PRNTI,4 AND PRINT LINE *FAP09876
TRA READ1 *FAP09877
AXTOC AXT ,0 *FAP09878
EVENM BCI 1,*EVEN* *FAP09879
PTCHX LXA VRFLD,1 WORD COUNT + 1 OF CHARACTERS IN WORD *FAP09880
TNX *+3,1,1 TRANSFER IF THE WHOLE WORD CAN BE BLANKED*FAP09881
LGL 6 OTHERWISE WE BLANK OUT *FAP09882
TIX *-1,1,1 THE REQUIRED NUMBER OF CHARACTERS *FAP09883
SLW BCDBF,4 STORE WORD FOR PRINTING *FAP09884
TSX PRNTC,4 TO PRINT ROUTINE *FAP09885
TRA READ1 BACK TO MAIN CODING *FAP09886
PTCHY AXT 27,4 (41)FAP09887
STZ PBUFF1+27,4 DELETE PROGRAM BREAK (41)FAP09888
TIX *-1,4,1 AND TRANSFER VECTOR (41)FAP09889
TRA STRTY RETURN TSFAP09890
INX02 BCI 5, (44)FAP09891
PTCHZ ZET UNLSF IS LISTING SUSPENDED (45)FAP09892
TRA SPC03 YES, DO NOT SPACE LISTING (45)FAP09893
LXD PMCSW,4 (45)FAP09894
TXL SPCOP+2,4,0 IS IT MACRO GENERATED (45)FAP09895
CLA PMCSW+1 YES, TEST PMC SWITCH (45)FAP09896
TRA SPCOP+1 (45)FAP09897
REM *************************PATCH SPACE****************** *FAP09898
PSYMTB SXA PSYM7,1 CREATE FILE OF SYMBOL TABLE FOR FAPDBG TSFAP09899
SXA PSYM8,2 TSFAP09900
SXA PSYM9,4 TSFAP09901
LDC SYMSIZ,1 NUMBER OF SYMBOLS TSFAP09902
TXL PSYM7,1,0 IF NONE, SKIP OUT. TSFAP09903
TXI *+1,1,2 REDUCE BY TWO TSFAP09904
TXL PSYM7,1,0 01TSFAP09905
SXD PSYM5,1 TSFAP09906
SXD PSYM6,1 TSFAP09907
REM START THE SYMBOL TABLE AS TEMPORARY FILE TSFAP09908
TSX STFIL,4 OPEN THE SYMTB FILE LOFAP09909
PZE TEMSYM,,14 LOFAP09910
AXT 0,1 TSFAP09911
PSYM1 AXT 14,4 TSFAP09912
CAL BLANKS TSFAP09913
SLW PBUFF2+14,4 TSFAP09914
TIX *-1,4,1 TSFAP09915
AXT 12,2 TSFAP09916
PSYM2 LDQ SYMTBL+1,1 ILC LOCATI6N TSFAP09917
LGL 15 DAFAP09918
ZAC DAFAP09919
LGL 3 GET RELOCATION BITS DAFAP09920
ALS 24 DAFAP09921
SLW PBUFF2+13,2 DAFAP09922
ZAC WNFAP09923
LGL 3 TSFAP09924
TNZ *+2 TSFAP09925
CAL BLANK BCI 1,00000 TSFAP09926
AXT 5,4 TSFAP09927
ALS 3 TSFAP09928
LGL 3 TSFAP09929
TIX *-2,4,1 TSFAP09930
SLW PBUFF2+12,2 TSFAP09931
AXT 6,4 TSFAP09932
LDQ BLANKS TSFAP09933
CAL SYMTBL,1 BCDNAME IN SYMBOL TABLE TSFAP09934
TZE PSYM0 TEST TABLE EXHAUSTED TSFAP09935
PSYM3 TNZ PSYM4 TSFAP09936
TRA *+3 TSFAP09937
PSYM4 LGR 6 TSFAP09938
TIX PSYM3,4,1 TSFAP09939
CAL BL0BL DAFAP09940
LGL 18 TSFAP09941
ORS PBUFF2+13,2 DAFAP09942
XCL TSFAP09943
ORA 3BK BCI 1,000 TSFAP09944
SLW PBUFF2+14,2 TSFAP09945
TXI *+1,1,-2 TSFAP09946
PSYM5 TXL *+2,1,** TSFAP09947
TIX PSYM2,2,3 TSFAP09948
TSX WTBUF,4 MOVE TO DISK BUFFER LOFAP09949
PSYM6 TXH PSYM1,1,** TSFAP09950
TSX WTDSK,4 WRITE LAST PARTIAL BLOCK LOFAP09951
TSX STASH,4 FILE THE SYMBOL TABLE TSFAP09952
PZE TEMSYM,,FAPSYM FAP09953
PSYM7 AXT **,1 TSFAP09954
PSYM8 AXT **,2 TSFAP09955
PSYM9 AXT **,4 TSFAP09956
TRA 1,4 RETURN TSFAP09957
PSYM0 CAL *+3 TABLE EXHAUSTED, TSFAP09958
SLW PSYM6 SET TO EXIT TSFAP09959
TRA PSYM5+2 WRITE LAST LINE TSFAP09960
NOP TSFAP09961
BL0BL BCI 1,000 0 DA FAP09962
TTL COMBINED OPERATION TABLE FAP09963
LBL 9F04OP FAP09964
REM FORM OF TRANSFER WORD FOR PSEUDOOPERATION FAP09965
REM PFX P1TFR,,P2TFR FAP09966
REM PASS 1 FAP09967
REM PTW NAME OF MACRO DEFINITION FAP09968
REM PON UPDATE PSEUDOOPERATION FAP09969
REM PZE IGNORED DURING DELETED ASSEMBLY FAP09970
REM PASS 2 FAP09971
REM MZE MAY PRECEDE ENTRY CARD FAP09972
REM PZE MAY NOT PRECEDE ENTRY CARD FAP09973
REM (DATA GENERATING, PROGRAM LINKING, FAP09974
REM STORAGE ASSIGNING, SYMBOL DEFINING) FAP09975
REM FAP09976
REM FORM OF TRANSFER WORD FOR DISK ORDER *FAP09977
REM PZE 1$ORDOP,T,OP FAP09978
REM T IS 6 FOR NO ACCESS MODULE, TRACK, RECORD REQUIRED *FAP09979
REM T IS 4 FOR NO TRACK, RECORD REQUIRED *FAP09980
REM T IS 2 FOR NO RECORD REQUIRED *FAP09981
REM T IS 0 FOR ALL ABOVE REQUIRED *FAP09982
REM OP IS TWO-DIGIT OPCODE FAP09983
REM FAP09984
REM FORM OF TRANSFER WORD FOR HYPERTAPE ORDER *FAP09985
REM PZE 1$HYPOP,T,OP *FAP09986
REM T IS 2 IF ADDRESS IS REQUIRED *FAP09987
REM OP IS TWO-DIGIT OPCODE *FAP09988
REM *FAP09989
REM FORM OF INSTRUCTION WORD FOR MACHINE OPERATION FAP09990
REM 400000 000000 SIGN FOR TYPE A, B, C, D, E, INSTRUCTION FAP09991
REM 300000 000000 TYPE A FAP09992
REM 077700 000000 TYPE B, C, D, E FAP09993
REM 000060 000000 IA OK FOR TYPE B FAP09994
REM 000010 000000 A REQ FAP09995
REM 000004 000000 T REQ FAP09996
REM 000002 000000 D REQ FAP09997
REM 000001 000000 ADDRESS CONTAINS FLAGS FAP09998
REM NOT TYPE B I/O ADDRESS, TYPE E PSE OR MSE FAP09999
REM 000000 400000 IA OK FOR TYPE A FAP10000
REM 000000 200000 NONXMIT FOR TYPE A (IOXY) COMMANDS FAP10001
REM 000000 100000 MACHINE OP FAP10002
REM 000000 040000 OK FOR 704 FAP10003
REM 000000 020000 OK FOR 7090 FAP10004
REM 000000 000040 IF BCORE, OR IN =1B20 FAP10005
REM 000000 000020 IF BCORE, FLAG WITH 'O' FAP10006
REM 000000 000010 IF BCORE, LOOK AT ABOVE TWO BITS FAP10007
REM 000000 000004 TYPE K DISK COMMAND FAP10008
REM 000000 000002 TYPE C VARIABLE LENGTH (DECREMENT) FAP10009
REM OR TYPE K WITH HIGH ORDER COUNT FIELD FAP10010
REM 000000 000001 TYPE D SENSE INSTRUCTION FAP10011
REM FAP10012
OPTSIZ PZE 22,,-LOPTBL LOG LOPTBL,,OPERATION TABLE LENGTH FAP10013
OPTTBL SYN * FAP10014
BCI 1,12BIT0 DATA-GENERATING PSEUDOOPERATION DAFAP10015
PZE 1$12BOP,,2$12BOP DAFAP10016
BCD 1704000 MACHINE MODE PSEUDOOPERATION FAP10017
MZE 1$704OP,,2$704OP 704 FAP10018
BCD 1709000 MACHINE MODE PSEUDOOPERATION FAP10019
MZE 1$709OP,,2$709OP 709/7090 FAP10020
BCD 19LP000 CARD FORMAT PSEUDOOPERATION FAP10021
MZE 1$ABSOP,,2$9LPOP 9LP FAP10022
BCI 1,ABBREV ASSEMBLY CONTROL PSEUDO-OPERATION WNFAP10023
MZE 1$ABBOP,,2$TTL03+1 ABBREV WNFAP10024
BCD 1ABS000 CARD FORMAT PSEUDOOPERATION FAP10025
MZE 1$ABSOP,,2$ABSOP ABS FAP10026
BCD 1ACL000 ADD AND CARRY LOGICAL WORD FAP10027
OCT +036171160000 ACL FAP10028
BCI 1,ACORE0 TSS PSEUDO OP ***TSSFAP10029
MZE 1$READ1,,2$ACORE ***TSSFAP10030
BCD 1ADD000 ADD FAP10031
OCT +040071160000 ADD FAP10032
BCD 1ADM000 ADD MAGNITUDE FAP10033
OCT +040171160000 ADM FAP10034
BCD 1ALS000 ACCUMULATOR LEFT SHIFT FAP10035
OCT +076711160000 ALS FAP10036
BCD 1ANA000 AND TO ACCUMULATOR FAP10037
OCT -032071160000 ANA FAP10038
BCD 1ANS000 AND TO STORAGE FAP10039
OCT +032071160000 ANS FAP10040
BCD 1ARS000 ACCUMULATOR RIGHT SHIFT FAP10041
OCT +077111160000 ARS FAP10042
BCD 1AXC000 ADDRESS TO INDEX, COMPLEMENTED FAP10043
OCT -077415120000 AXC FAP10044
BCD 1AXT000 ADDRESS TO INDEX, TRUE FAP10045
OCT +077415120000 AXT FAP10046
BCD 1BCD000 DATA GENERATING PSEUDOOPERATION FAP10047
PZE 1$BCDOP,,2$BCDOP BCD FAP10048
BCD 1BCI000 DATA GENERATING PSEUDOOPERATION FAP10049
PZE 1$BCIOP,,2$BCIOP BCI FAP10050
BCI 1,BCORE0 TSS PSEUDO OP ***TSSFAP10051
MZE 1$READ1,,2$BCORE ***TSSFAP10052
BCD 1BES000 STORAGE ALLOCATING PSEUDOOPERATION FAP10053
PZE 1$BESOP,,2$BESOP BES FAP10054
BCI 1,BLK000 CALLING SEQ. ARRAY (A,D REQUIRED) DAFAP10055
OCT +200013120000 BLK DAFAP10056
BCD 1BOOL00 SYMBOL DEFINING PSEUDOOPERATION FAP10057
PZE 1$BOLOP,,2$BOLOP BOOL FAP10058
BCD 1BRA000 BRANCH (TXL WITHOUT TAG) FAP10059
OCT -300011160000 BRA FAP10060
BCD 1BRN000 BRANCH NOP (TXH WITHOUT TAG) FAP10061
OCT +300011160000 BRN FAP10062
BCD 1BSF000 BACKSPACE FILE FAP10063
OCT -076410120200 BSF FAP10064
BCD 1BSFA00 BACKSPACE FILE, CHANNEL A FAP10065
OCT -076410121200 BSFA FAP10066
BCD 1BSFB00 BACKSPACE FILE, CHANNEL B FAP10067
OCT -076410122200 BSFB FAP10068
BCD 1BSFC00 BACKSPACE FILE, CHANNEL C FAP10069
OCT -076410123200 BSFC FAP10070
BCD 1BSFD00 BACKSPACE FILE, CHANNEL D FAP10071
OCT -076410124200 BSFD FAP10072
BCD 1BSFE00 BACKSPACE FILE, CHANNEL E FAP10073
OCT -076410125200 BSFE FAP10074
BCD 1BSFF00 BACKSPACE FILE, CHANNEL F FAP10075
OCT -076410126200 BSFF FAP10076
BCD 1BSFG00 BACKSPACE FILE, CHANNEL G FAP10077
OCT -076410127200 BSFG FAP10078
BCD 1BSFH00 BACKSPACE FILE, CHANNEL H FAP10079
OCT -076410130200 BSFH FAP10080
BCD 1BSR000 BACKSPACE RECORD FAP10081
OCT +076410120200 BSR FAP10082
BCD 1BSRA00 BACKSPACE RECORD, CHANNEL A FAP10083
OCT +076410121200 BSRA FAP10084
BCD 1BSRB00 BACKSPACE RECORD, CHANNEL B FAP10085
OCT +076410122200 BSRB FAP10086
BCD 1BSRC00 BACKSPACE RECORD, CHANNEL C FAP10087
OCT +076410123200 BSRC FAP10088
BCD 1BSRD00 BACKSPACE RECORD, CHANNEL D FAP10089
OCT +076410124200 BSRD FAP10090
BCD 1BSRE00 BACKSPACE RECORD, CHANNEL E FAP10091
OCT +076410125200 BSRE FAP10092
BCD 1BSRF00 BACKSPACE RECORD, CHANNEL F FAP10093
OCT +076410126200 BSRF FAP10094
BCD 1BSRG00 BACKSPACE RECORD, CHANNEL G FAP10095
OCT +076410127200 BSRG FAP10096
BCD 1BSRH00 BACKSPACE RECORD, CHANNEL H FAP10097
OCT +076410130200 BSRH FAP10098
BCD 1BSS000 STORAGE ALLOCATING PSEUDOOPERATION FAP10099
PZE 1$BSSOP,,2$BESOP BSS FAP10100
BCD 1BST000 BACKSPACE TAPE FAP10101
OCT +076410140200 BST FAP10102
BCD 1BTT000 BEGINNING OF TAPE TEST FAP10103
OCT +076010120000 BTT FAP10104
BCD 1BTTA00 BEGINNING OF TAPE TEST, CHANNEL A FAP10105
OCT +076000121000 BTTA FAP10106
BCD 1BTTB00 BEGINNING OF TAPE TEST, CHANNEL B FAP10107
OCT +076000122000 BTTB FAP10108
BCD 1BTTC00 BEGINNING OF TAPE TEST, CHANNEL C FAP10109
OCT +076000123000 BTTC FAP10110
BCD 1BTTD00 BEGINNING OF TAPE TEST, CHANNEL D FAP10111
OCT +076000124000 BTTD FAP10112
BCD 1BTTE00 BEGINNING OF TAPE TEST, CHANNEL E FAP10113
OCT +076000125000 BTTE FAP10114
BCD 1BTTF00 BEGINNING OF TAPE TEST, CHANNEL F FAP10115
OCT +076000126000 BTTF FAP10116
BCD 1BTTG00 BEGINNING OF TAPE TEST, CHANNEL G FAP10117
OCT +076000127000 BTTG FAP10118
BCD 1BTTH00 BEGINNING OF TAPE TEST, CHANNEL H FAP10119
OCT +076000130000 BTTH FAP10120
BCD 1CAD000 COPY, ADD AND CARRY FAP10121
OCT -070011140000 CAD FAP10122
BCD 1CAL000 CLEAR AND ADD LOGICAL FAP10123
OCT -050071160000 CAL FAP10124
BCD 1CALL00 PROGRAM LINKING PSEUDOOPERATION FAP10125
PZE 1$CALOP,,2$CALOP CALL FAP10126
BCD 1CAQ000 CONVERT BY ADDITION FROM MQ FAP10127
OCT -011413120002 CAQ FAP10128
BCD 1CAS000 COMPARE ACCUMULATOR WITH STORAGE FAP10129
OCT +034071160000 CAS FAP10130
BCD 1CFF000 CHANGE FILM FRAME FAP10131
OCT +076000160030 CFF FAP10132
BCD 1CFFA00 CHANGE FILM FRAME CHANNEL A MIFAP10133
OCT +076000161030 CFFA MIFAP10134
BCD 1CHS000 CHANGE SIGN FAP10135
OCT +076000160002 CHS FAP10136
BCD 1CLA000 CLEAR AND ADD FAP10137
OCT +050071160000 CLA FAP10138
BCD 1CLM000 CLEAR MAGNITUDE FAP10139
OCT +076000160000 CLM FAP10140
BCD 1CLS000 CLEAR AND SUBTRACT FAP10141
OCT +050271160000 CLS FAP10142
BCD 1COM000 COMPLEMENT MAGNITUDE FAP10143
OCT +076000160006 COM FAP10144
BCI 1,COMBES STORAGE ALLOCATION PSEUDO-OP PBFAP10145
PZE 1$COMBE,,2$COMBE FAP10146
BCI 1,COMBSS .. PBFAP10147
PZE 1$COMBS,,2$COMBS FAP10148
BCD 1COMMON STORAGE ALLOCATING PSEUDOOPERATION FAP10149
PZE 1$COMOP,,2$COMOP COMMON FAP10150
BCD 1COUNT0 ASSEMBLER INFORMATION PSEUDOOPERATION FAP10151
MZE 1$READ1,,2$TTL03+1 COUNT TSSFAP10152
BCD 1CPY000 COPY OR SKIP FAP10153
OCT +070011140000 CPY FAP10154
BCD 1CPYD00 COPY AND DISCONNECT DISK FAP10155
OCT 500013520050 CPYD DISKMIFAP10156
BCD 1CPYP00 COPY AND PROCEED DISK FAP10157
OCT 400013520050 CPYP DISKMIFAP10158
BCD 1CRQ000 CONVERT BY REPLACEMENT FROM MQ FAP10159
OCT -015413120002 CRQ FAP10160
BCD 1CTL000 CONTROL DISK FAP10161
OCT 200011520054 CTL DISKMIFAP10162
BCI 1,CTLN00 CONTROL NONTRANSMIT DISK*FAP10163
OCT 220011520054 CTLN DISKMIFAP10164
BCD 1CTLR00 CONTROL AND READ DISK FAP10165
OCT 200011720054 CTLR DISKMIFAP10166
BCI 1,CTLRN0 CONTROL AND READ NONTRANSMIT DISK*FAP10167
OCT 220011720054 CTLRN DISKMIFAP10168
BCD 1CTLW00 CONTROL AND WRITE DISK FAP10169
OCT 240011520054 CTLW DISKMIFAP10170
BCI 1,CTLWN0 CONTROL AND WRITE NONTRANSMIT DISK*FAP10171
OCT 260011520054 CTLWN DISKMIFAP10172
BCD 1CVR000 CONVERT BY REPLACEMENT FROM AC FAP10173
OCT +011413120002 CVR FAP10174
BCD 1DCT000 DIVIDE CHECK TEST FAP10175
OCT +076000160012 DCT FAP10176
BCD 1DEBM00 EIGHT BIT MODE DISK*FAP10177
PZE 1$ORDOP,6,08 DEBM DISK*FAP10178
BCD 1DEC000 DATA GENERATING PSEUDOOPERATION FAP10179
PZE 1$DECOP,,2$DECOP DEC FAP10180
BCD 1DETAIL LIST CONTROL PSEUDOOPERATION FAP10181
MZE 1$READ1,,2$DETOP DETAIL FAP10182
BCD 1DFAD00 DBL-PREC FLOAT ADD *FAP10183
OCT +030171120000 DFAD *FAP10184
BCD 1DFAM00 DBL-PREC FLOAT ADD MAGNITUDE *FAP10185
OCT +030571120000 DFAM *FAP10186
BCD 1DFDH00 DBL-PREC FLOAT DIVIDE AND HALT *FAP10187
OCT -024071120000 DFDH *FAP10188
BCD 1DFDP00 DBL-PREC FLOAT DIVIDE AND PROCEED *FAP10189
OCT -024171120000 DFDP *FAP10190
BCD 1DFMP00 DBL-PREC FLOAT MULTIPLY *FAP10191
OCT +026171120000 DFMP *FAP10192
BCD 1DFSB00 DBL-PREC FLOAT SUBTRACT *FAP10193
OCT +030371120000 DFSB *FAP10194
BCD 1DFSM00 DBL-PREC FLOAT SUBTRACT MAGNITUDE *FAP10195
OCT +030771120000 DFSM *FAP10196
BCD 1DLD000 DBL-PREC LOAD *FAP10197
OCT +044371120000 DLD *FAP10198
BCD 1DNOP00 NO OPERATION DISK*FAP10199
PZE 1$ORDOP,6,00 DNOP DISK*FAP10200
BCD 1DREL00 RELEASE DISK*FAP10201
PZE 1$ORDOP,6,04 DREL DISK*FAP10202
BCD 1DRS000 DROP READY STATUS *FAP10203
OCT +077510120000 DRS *FAP10204
BCD 1DSAI00 SET ACESS INOPERATIVE DISK*FAP10205
PZE 1$ORDOP,4,87 DSAI DISK*FAP10206
BCD 1DSBM00 SIX BIT MODE DISK*FAP10207
PZE 1$ORDOP,6,09 DSBM DISK*FAP10208
BCD 1DSEK00 SEEK DISK*FAP10209
PZE 1$ORDOP,2,80 DSEK DISK*FAP10210
BCD 1DST000 DBL-PREC STORE *FAP10211
OCT -060371120000 DST *FAP10212
BCD 1DUAM00 DBL-PREC UNNORM FLOAT ADD MAGNITUDE *FAP10213
OCT -030571120000 DUAM *FAP10214
BCD 1DUFA00 DBL-PREC UNNORM FLOAT ADD *FAP10215
OCT -030171120000 DUFA *FAP10216
BCD 1DUFM00 DBL-PREC UNNORM FLOAT MULTIPLY *FAP10217
OCT -026171120000 DUFM *FAP10218
BCD 1DUFS00 DBL-PREC UNNORM FLOAT SUBTRACT *FAP10219
OCT -030371120000 DUFS *FAP10220
BCD 1DUP000 DATA GENERATING PSEUDOOPERATION *FAP10221
PZE 1$DUPOP,,2$DUPOP DUP *FAP10222
BCD 1DUSM00 DBL-PREC UNNORM FLOAT SUBTRACT MAGNITUDE *FAP10223
OCT -030771120000 DUSM *FAP10224
BCD 1DVCY00 PREPARE TO VERIFY CYLINDER OPERATION DISK FAP10225
PZE 1$ORDOP,0,85 DVCY DISK FAP10226
BCD 1DVH000 DIVIDE OR HALT FAP10227
OCT +022071160000 DVH FAP10228
BCD 1DVHA00 PREPARE TO VERIFY HOME ADDRESS DISK FAP10229
PZE 1$ORDOP,2,89 DVHA DISK*FAP10230
BCD 1DVP000 DIVIDE OR PROCEED FAP10231
OCT +022171160000 DVP FAP10232
BCD 1DVSR00 PREPARE TO VERIFY SINGLE RECORD DISK FAP10233
PZE 1$ORDOP,0,82 DVSR DISK*FAP10234
BCD 1DVTA00 PREPARE TO VERIFY TRACK WITH ADDRESS DISK FAP10235
PZE 1$ORDOP,0,88 DVTA DISK*FAP10236
BCD 1DVTN00 PREPARE TO VERIFY TRACK WITHOUT ADDRESS DISK FAP10237
PZE 1$ORDOP,0,84 DVTN DISK*FAP10238
BCD 1DWRC00 PREPARE TO WRITE CHECK DISK FAP10239
PZE 1$ORDOP,0,86 DWRC DISK*FAP10240
BCD 1DWRF00 PREPARE TO WRITE FORMAT TRACK DISK FAP10241
PZE 1$ORDOP,2,83 DWRF DISK*FAP10242
BCD 1EAD000 EXTENDED ADD FAP10243
OCT +067171160000 EAD FAP10244
BCD 1EAXM00 ENTER ADDITIONAL INDEX MODE FAP10245
OCT +076000120016 EAXM FAP10246
BCD 1ECA000 EXCHANGE LOGICAL ACCUMULATOR WITH STORAGE FAP10247
OCT +056171160000 ECA FAP10248
BCD 1ECQ000 EXCHANGE MQ WITH STORAGE FAP10249
OCT -056171160000 ECQ FAP10250
BCD 1ECTM00 ENTER COPY TRAP MODE FAP10251
OCT -076000120006 ECTM FAP10252
BCD 1EDP000 EXTENDED DIVIDE OR PROCEED FAP10253
OCT +067271160000 EDP FAP10254
BCI 1,EFA000 CALLING SEQ. PARAMETER (T REQUIRED) DAFAP10255
OCT +076105120000 EFA DAFAP10256
BCI 1,EFT000 ECC OFF TEST ***TSSFAP10257
OCT -076100120044 EFT ***TSSFAP10258
BCD 1EFTM00 ENTER FLOATING TRAP MODE FAP10259
OCT -076000120002 EFTM FAP10260
BCD 1EJECT0 LIST CONTROL PSEUDOOPERATION FAP10261
MZE 1$READ1,,2$EJCOP EJECT FAP10262
BCD 1ELD000 EXTENDED LOAD FAP10263
OCT +067071160000 ELD FAP10264
BCD 1EMP000 EXTENDED MULTIPLY FAP10265
OCT +067371160000 EMP FAP10266
BCD 1EMTM00 ENTER MULTIPLE TAG MODE *FAP10267
OCT -076000120016 EMTM *FAP10268
BCD 1ENB000 ENABLE FROM STORAGE FAP10269
OCT +056471120000 ENB FAP10270
BCD 1END000 ASSEMBLER INFORMATION PSEUDOOPERATION FAP10271
PON 1$ENDOP,,2$ENDOP END FAP10272
BCD 1ENDFIL UPDATE INFORMATION PSEUDOOPERATION FAP10273
MON 1$FIELD,,2$TTL03+1 ENDFIL TSFAP10274
BCD 1ENDUP0 UPDATE INFORMATION PSEUDOOPERATION FAP10275
MON 1$FIELD,,2$TTL03+1 ENDUP TSFAP10276
BCD 1ENK000 ENTER KEYS FAP10277
OCT +076000120004 ENK FAP10278
BCD 1ENTRY0 PROGRAM LINKING PSEUDOOPERATION FAP10279
MZE 1$ENTOP,,2$ENTOP ENTRY FAP10280
BCD 1EQU000 SYMBOL DEFINING PSEUDOOPERATION FAP10281
PZE 1$SYNOP,,2$MAXOP EQU FAP10282
BCD 1ERA000 EXCLUSIVE OR TO ACCUMULATOR FAP10283
OCT +032271120000 ERA FAP10284
BCD 1ESB000 EXTENDED SUBTRACT FAP10285
OCT -067171160000 ESB FAP10286
BCD 1ESM000 ENTER SIGNIFICANCE MODE FAP10287
OCT -076100120140 ESM FAP10288
BCD 1ESNT00 ENTER STORAGE NULLIFICATION MODE AND TRANSFER FAP10289
OCT -002171120000 ESNT FAP10290
BCD 1EST000 EXTENDED STORE FAP10291
OCT -067371160000 EST FAP10292
BCD 1ESTM00 ENTER SELECT TRAP MODE FAP10293
OCT -076000120005 ESTM FAP10294
BCD 1ETM000 ENTER TRAPPING MODE FAP10295
OCT +076000160007 ETM FAP10296
BCD 1ETT000 END OF TAPE TEST FAP10297
OCT -076000140011 ETT FAP10298
BCD 1ETTA00 END OF TAPE TEST, CHANNEL A FAP10299
OCT -076000121000 ETTA FAP10300
BCD 1ETTB00 END OF TAPE TEST, CHANNEL B FAP10301
OCT -076000122000 ETTB FAP10302
BCD 1ETTC00 END OF TAPE TEST, CHANNEL C FAP10303
OCT -076000123000 ETTC FAP10304
BCD 1ETTD00 END OF TAPE TEST, CHANNEL D FAP10305
OCT -076000124000 ETTD FAP10306
BCD 1ETTE00 END OF TAPE TEST, CHANNEL E FAP10307
OCT -076000125000 ETTE FAP10308
BCD 1ETTF00 END OF TAPE TEST, CHANNEL F FAP10309
OCT -076000126000 ETTF FAP10310
BCD 1ETTG00 END OF TAPE TEST, CHANNEL G FAP10311
OCT -076000127000 ETTG FAP10312
BCD 1ETTH00 END OF TAPE TEST, CHANNEL H FAP10313
OCT -076000130000 ETTH FAP10314
BCD 1EUA000 EXTENDED UNNORMALIZED ADD FAP10315
OCT -067271160000 EUA FAP10316
BCI 1,EVEN00 STORAGE ALLOCATING PSEUDOOPERATION *FAP10317
PZE 1$EVNOP,,2$EVNOP EVEN *FAP10318
BCD 1EXTERN PROGRAM LINKING PSEUDOOPERATION FAP10319
MZE 1$EXTOP,,2$UNLOP+1 EXTERN FAP10320
BCD 1FAD000 FLOATING ADD FAP10321
OCT +030071160000 FAD FAP10322
BCD 1FAM000 FLOATING ADD MAGNITUDE FAP10323
OCT +030471120000 FAM FAP10324
BCD 1FDH000 FLOATING DIVIDE OR HALT FAP10325
OCT +024071160000 FDH FAP10326
BCD 1FDP000 FLOATING DIVIDE OR PROCEED FAP10327
OCT +024171160000 FDP FAP10328
BCD 1FIVE00 FIVE (PREFIX) FAP10329
OCT +500001120000 FIVE FAP10330
BCI 1,FLAG00 LIST (ONLINE) CONTROL PSEUDO-OP WNFAP10331
MZE 1$READ1,,2$FLGOP FLAG WNFAP10332
BCD 1FMP000 FLOATING MULTIPLY FAP10333
OCT +026071160000 FMP FAP10334
BCD 1FOR000 FOUR (PREFIX) FAP10335
OCT +400001160000 FOR FAP10336
BCD 1FOUR00 FOUR (PREFIX) FAP10337
OCT +400001120000 FOUR FAP10338
BCD 1FRN000 FLOATING ROUND FAP10339
OCT +076000120011 FRN FAP10340
BCD 1FSB000 FLOATING SUBTRACT FAP10341
OCT +030271160000 FSB FAP10342
BCD 1FSM000 FLOATING SUBTRACT MAGNITUDE FAP10343
OCT +030671120000 FSM FAP10344
BCD 1FUL000 CARD FORMAT PSEUDOOPERATION FAP10345
MZE 1$ABSOP,,2$FULOP FUL FAP10346
BCD 1FVE000 FIVE (PREFIX) FAP10347
OCT +500001160000 FVE FAP10348
BCD 1HBSF00 HYPERTAPE BACKSPACE FILE *FAP10349
PZE 1$HYPOP,0,35 HBSF *FAP10350
BCD 1HBSR00 HYPERTAPE BACKSPACE RECORD *FAP10351
PZE 1$HYPOP,0,34 HBSR *FAP10352
BCD 1HCCR00 HYPERTAPE CHANGE CARTRIDGE AND REWIND *FAP10353
PZE 1$HYPOP,0,28 HCCR *FAP10354
BCD 1HCHC00 HYPERTAPE CHANGE CARTRIDGE *FAP10355
PZE 1$HYPOP,0,38 HCHC *FAP10356
BCD 1HEAD00 SYMBOL DEFINING PSEUDOOPERATION *FAP10357
MZE 1$HADOP,,2$HEDOP HEAD FAP10358
BCD 1HED000 SYMBOL DEFINING PSEUDOOPERATION FAP10359
MZE 1$HEDOP,,2$HEDOP HED FAP10360
BCD 1HEOS00 HYPERTAPE END OF SEQUENCE *FAP10361
PZE 1$HYPOP,0,01 HEOS *FAP10362
BCD 1HERG00 HYPERTAPE ERASE LONG GAP *FAP10363
PZE 1$HYPOP,0,32 HERG *FAP10364
BCD 1HFPN00 HYPERTAPE FILE PROTECT ON *FAP10365
PZE 1$HYPOP,0,42 HFPN *FAP10366
BCD 1HNOP00 HYPERTAPE NO OPERATION *FAP10367
PZE 1$HYPOP,0,00 HNOP *FAP10368
BCD 1HPR000 HALT AND PROCEED FAP10369
OCT 042001160030 HPR ***TSSFAP10370
BCD 1HRUN00 HYPERTAPE REWIND AND UNLOAD CARTRIDGE *FAP10371
PZE 1$HYPOP,0,31 HRUN *FAP10372
BCD 1HRWD00 HYPERTAPE REWIND *FAP10373
PZE 1$HYPOP,0,30 HRWD *FAP10374
BCD 1HSBR00 HYPERTAPE SELECT FOR BACKWARD READING *FAP10375
PZE 1$HYPOP,2,07 PSBR *FAP10376
BCD 1HSEL00 HYPERTAPE SELECT *FAP10377
PZE 1$HYPOP,2,06 HSEL *FAP10378
BCD 1HSKF00 HYPERTAPE SKIP FILE *FAP10379
PZE 1$HYPOP,0,37 HSKF *FAP10380
BCD 1HSKR00 HYPERTAPE SKIP RECORD *FAP10381
PZE 1$HYPOP,0,36 HSKR *FAP10382
BCD 1HTR000 HALT AND TRANSFER *FAP10383
OCT +000071160000 HTR FAP10384
BCD 1HUNL00 HYPERTAPE UNLOAD CARTRIDGE *FAP10385
PZE 1$HYPOP,0,39 HUNL *FAP10386
BCD 1HWTM00 HYPERTAPE WRITE TAPE MARK *FAP10387
PZE 1$HYPOP,0,33 HWTM *FAP10388
BCD 1ICC000 INCREMENT CONTROL COUNTER DISK FAP10389
OCT 700001320056 ICC DISKMIFAP10390
BCD 1IFEOF0 PROGRAM LINKING PSEUDOOPERATION FAP10391
PZE 1$IFEOP,,2$IFEOP IFEOF FAP10392
BCD 1IFF000 MACRO EXPANSION PSEUDOOPERATION FAP10393
MZE 1$IFFOP,,2$TTL03+1 IFF FAP10394
BCI 1,IFT000 ICC OFF TEST ***TSSFAP10395
OCT -076100120043 IFT ***TSSFAP10396
BCD 1IIA000 INVERT INDICATORS FROM ACCUMULATOR FAP10397
OCT +004101120000 IIA FAP10398
BCD 1IIL000 INVERT INDICATORS OF LEFT HALF FAP10399
OCT -005111120001 IIL FAP10400
BCD 1IIR000 INVERT INDICATORS OF RIGHT HALF FAP10401
OCT +005111120001 IIR FAP10402
BCD 1IIS000 INVERT INDICATORS FROM STORAGE FAP10403
OCT +044071120000 IIS FAP10404
BCD 1INDEX0 LIST CONTROL PSEUDOOPERATION FAP10405
MZE 1$READ1,,2$INXOP INDEX FAP10406
BCI 1,INSERT INSERT CARDS FOR FILE TSFAP10407
MZE 1$INSOP,,2$BCORE+1 INSERT TSFAP10408
BCD 1IOCD00 I/O UNDER COUNT CONTROL AND DISCONNECT FAP10409
OCT 000013520050 IOCD ***TSSFAP10410
BCD 1IOCDN0 I/O UNDER COUNT CONTROL DISCONNECT NONTRANSMITFAP10411
OCT 000013720050 IOCDN ***TSSFAP10412
BCD 1IOCP00 I/O UNDER COUNT CONTROL AND PROCEED FAP10413
OCT 400013520050 IOCP ***TSSFAP10414
BCD 1IOCPN0 I/O UNDER COUNT CONTROL PROCEED NONTRANSMIT FAP10415
OCT 400013720050 IOCPN ***TSSFAP10416
BCD 1IOCT00 I/O UNDER COUNT CONTROL AND TRANSFER FAP10417
OCT 500013520050 IOCT ***TSSFAP10418
BCD 1IOCTN0 I/O UNDER COUNT CONTROL TRANSFER NONTRANSMIT FAP10419
OCT 500013720050 IOCTN ***TSSFAP10420
BCI 1,IOD000 I/O DISCONNECT DAFAP10421
OCT +000001120000 IOD DAFAP10422
BCI 1,ION000 I/O NON-TRANSMIT (D REQUIRED) DAFAP10423
OCT +100003120000 ION DAFAP10424
BCI 1,IOP000 I/O PARAMETER (A,D REQUIRED) DAFAP10425
OCT +200013120050 IOP DAFAP10426
BCD 1IORP00 I/O UNDER RECORD CONTROL AND PROCEED FAP10427
OCT 200013520050 IORP ***TSSFAP10428
BCD 1IORPN0 I/O UNDER RECORD CONTROL PROCEED NONTRANSMIT FAP10429
OCT 200013720050 IORPN ***TSSFAP10430
BCD 1IORT00 I/O UNDER RECORD CONTROL AND TRANSFER FAP10431
OCT 300013520050 IORT ***TSSFAP10432
BCD 1IORTN0 I/O UNDER RECORD CONTROL TRANSFER NONTRANSMIT FAP10433
OCT 300013720050 IORTN ***TSSFAP10434
BCD 1IOSP00 I/O UNTIL SIGNAL AND PROCEED FAP10435
OCT 600013520050 IOSP ***TSSFAP10436
BCD 1IOSPN0 I/O UNTIL SIGNAL AND PROCEED NONTRANSMIT FAP10437
OCT 600013720050 IOSPN ***TSSFAP10438
BCD 1IOST00 I/O UNTIL SIGNAL AND TRANSFER FAP10439
OCT 700013520050 IOST ***TSSFAP10440
BCD 1IOSTN0 I/O UNTIL SIGNAL AND TRANSFER NONTRANSMIT FAP10441
OCT 700013720050 IOSTN ***TSSFAP10442
BCD 1IOT000 INPUT OUTPUT CHECK TEST FAP10443
OCT +076000120005 IOT FAP10444
BCD 1IRP000 MACRO EXPANSION PSEUDOOPERATION FAP10445
MZE 1$IRPOP,,2$TTL03+1 IRP FAP10446
BCD 1...000 CONVENTION FOR OPCODE TO BE INITIALIZED FAP10447
OCT +000001160000 ... FAP10448
BCD 1LAC000 LOAD INDEX FROM ADDRESS, COMPLEMENTED FAP10449
OCT +053515120000 LAC FAP10450
BCD 1LAR000 LOAD ASSEMBLY REGISTER DISK FAP10451
OCT 300011520054 LAR DISKMIFAP10452
BCD 1LAS000 LOGICAL COMPARE ACCUMULATOR WITH STORAGE FAP10453
OCT -034071120000 LAS FAP10454
BCD 1LAXM00 LEAVE ADDITIONAL INDEX MODE FAP10455
OCT -076000120016 LAXM FAP10456
BCD 1LBL000 LIST CONTROL PSEUDOOPERATION FAP10457
MZE 1$READ1,,2$LBLOP LBL FAP10458
BCD 1LBT000 LOW ORDER BIT TEST FAP10459
OCT +076000160001 LBT FAP10460
BCD 1LCC000 LOAD CONTROL COUNTER DISK FAP10461
OCT 640011720054 LCC DISKMIFAP10462
BCD 1LCHA00 LOAD CHANNEL A FAP10463
OCT +054471120030 LCHA ***TSSFAP10464
BCD 1LCHB00 LOAD CHANNEL B FAP10465
OCT -054471120030 LCHB ***TSSFAP10466
BCD 1LCHC00 LOAD CHANNEL C FAP10467
OCT +054571120030 LCHC ***TSSFAP10468
BCD 1LCHD00 LOAD CHANNEL D FAP10469
OCT -054571120030 LCHD ***TSSFAP10470
BCD 1LCHE00 LOAD CHANNEL E FAP10471
OCT +054671120030 LCHE ***TSSFAP10472
BCD 1LCHF00 LOAD CHANNEL F FAP10473
OCT -054671120030 LCHF ***TSSFAP10474
BCD 1LCHG00 LOAD CHANNEL G FAP10475
OCT +054771120030 LCHG ***TSSFAP10476
BCD 1LCHH00 LOAD CHANNEL H FAP10477
OCT -054771120030 LCHH ***TSSFAP10478
BCD 1LDA000 LOCATE DRUM ADDRESS FAP10479
OCT +046071140000 LDA FAP10480
BCD 1LDC000 LOAD INDEX FROM DECREMENT, COMPLEMENTED FAP10481
OCT -053515120000 LDC FAP10482
BCD 1LDI000 LOAD INDICATORS FAP10483
OCT +044171120000 LDI FAP10484
BCD 1LDQ000 LOAD MQ FAP10485
OCT +056071160000 LDQ FAP10486
BCD 1LFT000 LEFT HALF INDICATORS OFF TEST FAP10487
OCT -005411120001 LFT FAP10488
BCD 1LFTM00 LEAVE FLOATING POINT TRAP MODE FAP10489
OCT -076000120004 LFTM FAP10490
BCD 1LGL000 LOGICAL LEFT SHIFT FAP10491
OCT -076311160000 LGL FAP10492
BCD 1LGR000 LOGICAL RIGHT SHIFT FAP10493
OCT -076511120000 LGR FAP10494
BCI 1,LINK00 DELETE STANDARD ERROR PROCEDURE WNFAP10495
MZE 1$LNKOP,,2$TTL03+1 LINK WNFAP10496
BCD 1LIP000 LEAVE INTERRUPT PROGRAM DISK FAP10497
OCT 600001320054 LIP DISKMIFAP10498
BCD 1LIPT00 LEAVE INTERRUPT PROGRAM AND TRANSFER DISK FAP10499
OCT 100011720050 LIPT DISKMIFAP10500
BCD 1LIST00 LIST CONTROL PSEUDOOPERATION FAP10501
MZE 1$READ1,,2$LSTOP LIST FAP10502
BCD 1LLS000 LONG LEFT SHIFT FAP10503
OCT +076311160000 LLS FAP10504
BCD 1LMTM00 LEAVE MULTIPLE TAG MODE *FAP10505
OCT +076000120016 LMTM *FAP10506
BCD 1LNT000 LEFT HALF INDICATORS ON TEST FAP10507
OCT -005611120001 LNT FAP10508
BCD 1LOC000 STORAGE ALLOCATING PSEUDOOPERATION FAP10509
PZE 1$LOCOP,,2$LOCOP LOC FAP10510
BCD 1LPI000 LOAD PROTECT INDICATORS MIFAP10511
OCT -056471120030 LPI ***TSSFAP10512
BCD 1LRI000 LOAD RELOCATION INDICATORS MIFAP10513
OCT +056271120030 LRI ***TSSFAP10514
BCD 1LRS000 LONG RIGHT SHIFT FAP10515
OCT +076511160000 LRS FAP10516
BCD 1LSNM00 LEAVE STORAGE NULLIFICATION MODE FAP10517
OCT -076000120010 LSNM FAP10518
BCI 1,LSTNG0 LISTNG TSFAP10519
MZE 1$READ1,,2$LSTNG LIST ONLINE TSFAP10520
BCD 1LTM000 LEAVE TRAPPING MODE FAP10521
OCT -076000160007 LTM FAP10522
BCD 1LXA000 LOAD INDEX FROM ADDRESS FAP10523
OCT +053415160000 LXA FAP10524
BCD 1LXD000 LOAD INDEX FROM DECREMENT FAP10525
OCT -053415160000 LXD FAP10526
BCD 1MAC000 MACRO EXPANSION PSEUDOOPERATION FAP10527
PZE 1$MACOP,,2$BES01+3 MAC *FAP10528
BCD 1MACRO0 MACRO DEFINITION PSEUDOOPERATION FAP10529
MZE 1$MCROP,,2$UNLOP+1 MACRO FAP10530
BCI 1,MACRON MACRO DEFINITION PSEUDO-OPERATION WNFAP10531
MZE 1$MCNOP,,2$UNLOP+1 MACRON WNFAP10532
BCD 1MAX000 SYMBOL DEFINING PSEUDOOPERATION FAP10533
PZE 1$MAXOP,,2$MAXOP MAX FAP10534
BCD 1MIN000 SYMBOL DEFINING PSEUDOOPERATION FAP10535
PZE 1$MINOP,,2$MAXOP MIN FAP10536
BCI 1,MLEVEL LIST CONTROL PSEUDO-OPERATION WNFAP10537
MZE 1$READ1,,2$MMLOP MLEVEL WNFAP10538
BCI 1,MMACRO LIST CONTROL PSEUDO-OPERATION WNFAP10539
MZE 1$MMMOP,,2$TTL03+1 MMACRO WNFAP10540
BCD 1MON000 MINUS ONE (PREFIX) FAP10541
OCT -100001160000 MON FAP10542
BCD 1MOP000 MACRO DEFINITION PSEUDOOPERATION FAP10543
MZE 1$MOPOP,,2$UNLOP+1 MOP FAP10544
BCD 1MPR000 MULTIPLY AND ROUND FAP10545
OCT -020071160000 MPR FAP10546
BCD 1MPY000 MULTIPLY FAP10547
OCT +020071160000 MPY FAP10548
BCD 1MSE000 MINUS SENSE FAP10549
OCT -076011160000 MSE FAP10550
BCD 1MTH000 MINUS THREE (PREFIX) FAP10551
OCT -300001160000 MTH FAP10552
BCD 1MTW000 MINUS TWO (PREFIX) FAP10553
OCT -200001160000 MTW FAP10554
BCD 1MZE000 MINUS ZERO (PREFIX) FAP10555
OCT -000001160000 MZE FAP10556
BCD 1NOCRS0 MACRO COMPILER INFORMATION PSEUDOOPERATIONFAP10557
MZE 1$NOCOP,,2$TTL03+1 NOCRS FAP10558
BCI 1,NOLNK0 NO LINKAGE DIRECTOR LOFAP10559
MZE 1$NLKOP,,2$TTL03+1 NOLNK LOFAP10560
BCD 1NOP000 NO OPERATION FAP10561
OCT +076101160000 NOP FAP10562
BCI 1,NOSEQ0 NO SEQUENCE CHECKING LOFAP10563
MZE 1$NSQOP,,2$TTL03+1 NOSEQ LOFAP10564
BCD 1NTR000 FORTRAN CODE FOR TXI FAP10565
OCT +100011160000 NTR FAP10566
BCD 1NULL00 LIST CONTROL PSEUDOOPERATION FAP10567
MZE 1$READ1,,2$UNLOP+1 NULL FAP10568
BCD 1NUMBER UPDATE INFORMATION PSEUDOOPERATION FAP10569
MON 1$FIELD,,2$TTL03+1 NUMBER TSFAP10570
BCD 1NZT000 STORAGE NON-ZERO TEST FAP10571
OCT -052071120000 NZT FAP10572
BCD 1OAI000 OR ACCUMULATOR TO INDICATORS FAP10573
OCT +004301120000 OAI FAP10574
BCD 1OCT000 DATA GENERATING PSEUDOOPERATION FAP10575
PZE 1$DECOP,,2$OCTOP OCT FAP10576
BCD 1OFT000 OFF TEST FOR INDICATORS FAP10577
OCT +044471120000 OFT FAP10578
BCD 1ONE000 ONE (PREFIX) FAP10579
OCT +100001160000 ONE FAP10580
BCD 1ONT000 ON TEST FOR INDICATORS FAP10581
OCT +044671120000 ONT FAP10582
BCD 1OPD000 OPCODE DEFINING PSEUDOOPERATION FAP10583
MZE 1$OPDOP,,2$OPDOP OPD FAP10584
BCD 1OPSYN0 OPCODE DEFINING PSEUDOOPERATION FAP10585
MZE 1$OPSOP,,2$OPDOP OPSYN FAP10586
BCD 1OPVFD0 OPCODE DEFINING PSEUDOOPERATION FAP10587
MZE 1$OPVOP,,2$OPDOP OPVFD FAP10588
BCD 1ORA000 OR TO ACCUMULATOR FAP10589
OCT -050171160000 ORA FAP10590
BCD 1ORG000 STORAGE ALLOCATING PSEUDOOPERATION FAP10591
PZE 1$ORGOP,,2$ORGOP ORG FAP10592
BCD 1ORGCRS MACRO COMPILER INFORMATION PSEUDOOPERATIONFAP10593
MZE 1$CRSOP,,2$TTL03+1 ORGCRS FAP10594
BCD 1ORS000 OR TO STORAGE FAP10595
OCT -060271160000 ORS FAP10596
BCD 1OSI000 OR STORAGE TO INDICATORS FAP10597
OCT +044271120000 OSI FAP10598
BCD 1PAC000 PLACE ADDRESS IN INDEX, COMPLEMENTED FAP10599
OCT +073705120000 PAC FAP10600
BCD 1PAI000 PLACE ADDRESS IN INDICATORS FAP10601
OCT +004401120000 PAI FAP10602
BCI 1,PAR000 CALLING SEQUENCE PARAMETER (A REQUIRED) DAFAP10603
OCT +300011120000 PAR DAFAP10604
BCD 1PAX000 PLACE ADDRESS IN INDEX FAP10605
OCT +073405160000 PAX FAP10606
BCD 1PBT000 P BIT TEST FAP10607
OCT -076000160001 PBT FAP10608
BCD 1PCA000 PLACE COMPLIMENT OF INDEX IN ADDRESS *FAP10609
OCT +075605120000 PCA *FAP10610
BCD 1PCC000 LIST CONTROL PSEUDOOPERATION FAP10611
MZE 1$READ1,,2$PCCOP PCC FAP10612
BCD 1PCD000 PLACE COMPLEMENT OF INDEX IN DECREMENT *FAP10613
OCT -075605120000 PCD *FAP10614
BCD 1PDC000 PLACE DECREMENT IN INDEX, COMPLEMENTED FAP10615
OCT -073705120000 PDC FAP10616
BCD 1PDX000 PLACE DECREMENT IN INDEX FAP10617
OCT -073405160000 PDX FAP10618
BCD 1PIA000 PLACE INDICATORS IN ACCUMULATOR FAP10619
OCT -004601120000 PIA FAP10620
BCD 1PMC000 LIST CONTROL PSEUDOOPERATION FAP10621
MZE 1$READ1,,2$PMCOP PMC FAP10622
BCD 1PON000 PLUS ONE (PREFIX) FAP10623
OCT +100001160000 PON FAP10624
BCD 1PRINT0 LIST CONTROL PSEUDOOPERATION FAP10625
MON 1$FIELD,,2$TTL03+1 PRINT TSFAP10626
BCD 1PSE000 PLUS SENSE FAP10627
OCT +076011160000 PSE FAP10628
BCD 1PSLA00 PRESENT SENSE LINES, CHANNEL A FAP10629
OCT +066471120000 PSLA FAP10630
BCD 1PSLB00 PRESENT SENSE LINES, CHANNEL B FAP10631
OCT -066471120000 PSLB FAP10632
BCD 1PSLC00 PRESENT SENSE LINES, CHANNEL C FAP10633
OCT +066571120000 PSLC FAP10634
BCD 1PSLD00 PRESENT SENSE LINES, CHANNEL D FAP10635
OCT -066571120000 PSLD FAP10636
BCD 1PSLE00 PRESENT SENSE LINES, CHANNEL E FAP10637
OCT +066671120000 PSLE FAP10638
BCD 1PSLF00 PRESENT SENSE LINES, CHANNEL F FAP10639
OCT -066671120000 PSLF FAP10640
BCD 1PSLG00 PRESENT SENSE LINES, CHANNEL G FAP10641
OCT +066771120000 PSLG FAP10642
BCD 1PSLH00 PRESENT SENSE LINES, CHANNEL H FAP10643
OCT -066771120000 PSLH FAP10644
BCD 1PTH000 PLUS THREE (PREFIX) FAP10645
OCT +300001160000 PTH FAP10646
BCD 1PTW000 PLUS TWO (PREFIX) FAP10647
OCT +200001160000 PTW FAP10648
BCD 1PXA000 PLACE INDEX IN ADDRESS FAP10649
OCT +075405120000 PXA FAP10650
BCD 1PXD000 PLACE INDEX IN DECREMENT FAP10651
OCT -075405160000 PXD FAP10652
BCD 1PZE000 PLUS ZERO (PREFIX) FAP10653
OCT +000001160000 PZE FAP10654
BCD 1RCD000 READ CARDS FAP10655
OCT +076200160321 RCD FAP10656
BCD 1RCDA00 READ CARDS, CHANNEL A FAP10657
OCT +076200121321 RCDA FAP10658
BCD 1RCDB00 READ CARDS, CHANNEL B FAP10659
OCT +076200122321 RCDB FAP10660
BCD 1RCDC00 READ CARDS, CHANNEL C FAP10661
OCT +076200123321 RCDC FAP10662
BCD 1RCDD00 READ CARDS, CHANNEL D FAP10663
OCT +076200124321 RCDD FAP10664
BCD 1RCDE00 READ CARDS, CHANNEL E FAP10665
OCT +076200125321 RCDE FAP10666
BCD 1RCDF00 READ CARDS, CHANNEL F FAP10667
OCT +076200126321 RCDF FAP10668
BCD 1RCDG00 READ CARDS, CHANNEL G FAP10669
OCT +076200127321 RCDG FAP10670
BCD 1RCDH00 READ CARDS, CHANNEL H FAP10671
OCT +076200130321 RCDH FAP10672
BCD 1RCHA00 RESET AND LOAD CHANNEL A FAP10673
OCT +054071120000 RCHA FAP10674
BCD 1RCHB00 RESET AND LOAD CHANNEL B FAP10675
OCT -054071120000 RCHB FAP10676
BCD 1RCHC00 RESET AND LOAD CHANNEL C FAP10677
OCT +054171120000 RCHC FAP10678
BCD 1RCHD00 RESET AND LOAD CHANNEL D FAP10679
OCT -054171120000 RCHD FAP10680
BCD 1RCHE00 RESET AND LOAD CHANNEL E FAP10681
OCT +054271120000 RCHE FAP10682
BCD 1RCHF00 RESET AND LOAD CHANNEL F FAP10683
OCT -054271120000 RCHF FAP10684
BCD 1RCHG00 RESET AND LOAD CHANNEL G FAP10685
OCT +054371120000 RCHG FAP10686
BCD 1RCHH00 RESET AND LOAD CHANNEL H FAP10687
OCT -054371120000 RCHH FAP10688
BCD 1RCT000 RESET CHANNEL TRAPS FAP10689
OCT +076000120014 RCT FAP10690
BCD 1RDC000 RESET DATA CHANNEL FAP10691
OCT +076010120352 RDC FAP10692
BCD 1RDCA00 RESET DATA CHANNEL A FAP10693
OCT +076000121352 RDCA FAP10694
BCD 1RDCB00 RESET DATA CHANNEL B FAP10695
OCT +076000122352 RDCB FAP10696
BCD 1RDCC00 RESET DATA CHANNEL C FAP10697
OCT +076000123352 RDCC FAP10698
BCD 1RDCD00 RESET DATA CHANNEL D FAP10699
OCT +076000124352 RDCD FAP10700
BCD 1RDCE00 RESET DATA CHANNEL E FAP10701
OCT +076000125352 RDCE FAP10702
BCD 1RDCF00 RESET DATA CHANNEL F FAP10703
OCT +076000126352 RDCF FAP10704
BCD 1RDCG00 RESET DATA CHANNEL G FAP10705
OCT +076000127352 RDCG FAP10706
BCD 1RDCH00 RESET DATA CHANNEL H FAP10707
OCT +076000130352 RDCH FAP10708
BCD 1RDDD00 MIFAP10709
OCT +076200124240 MIFAP10710
BCD 1RDR000 READ DRUM FAP10711
OCT +076210140300 RDR FAP10712
BCD 1RDS000 READ SELECT FAP10713
OCT +076211160000 RDS FAP10714
BCD 1REF000 LIST CONTROL PSEUDOOPERATION FAP10715
MZE 1$READ1,,2$REFOP REF FAP10716
BCD 1REM000 LIST CONTROL PSEUDOOPERATION FAP10717
MZE 1$READ1,,2$REMOP REM FAP10718
BCI 1,RESCRS MACRO COMPILER INFORMATION PSEUDO-OPERATIONFAP10719
MZE 1$RECOP,,2$TTL03+1 RESCRS WNFAP10720
BCD 1REW000 REWIND TAPE FAP10721
OCT +077210160200 REW FAP10722
BCD 1REWA00 REWIND TAPE CHANNEL A FAP10723
OCT +077210121200 REWA FAP10724
BCD 1REWB00 REWIND TAPE CHANNEL B FAP10725
OCT +077210122200 REWB FAP10726
BCD 1REWC00 REWIND TAPE CHANNEL C FAP10727
OCT +077210123200 REWC FAP10728
BCD 1REWD00 REWIND TAPE CHANNEL D FAP10729
OCT +077210124200 REWD FAP10730
BCD 1REWE00 REWIND TAPE CHANNEL E FAP10731
OCT +077210125200 REWE FAP10732
BCD 1REWF00 REWIND TAPE CHANNEL F FAP10733
OCT +077210126200 REWF FAP10734
BCD 1REWG00 REWIND TAPE CHANNEL G FAP10735
OCT +077210127200 REWG FAP10736
BCD 1REWH00 REWIND TAPE CHANNEL H FAP10737
OCT +077210130200 REWH FAP10738
BCD 1REWIND UPDATE INFORMATION PSEUDOOPERATION FAP10739
MON 1$FIELD,,2$TTL03+1 REWIND TSFAP10740
BCD 1RFT000 RIGHT HALF INDICATORS OFF TEST FAP10741
OCT +005411120001 RFT FAP10742
BCD 1RIA000 RESET INDICATORS FROM ACCUMULATOR FAP10743
OCT -004201120000 RIA FAP10744
BCD 1RICA00 RESET CHANNEL A DISK FAP10745
OCT +076000121350 RICA DISK FAP10746
BCD 1RICB00 RESET CHANNEL B DISK FAP10747
OCT +076000122350 RICB DISK FAP10748
BCD 1RICC00 RESET CHANNEL C DISK FAP10749
OCT +076000123350 RICC DISK FAP10750
BCD 1RICD00 RESET CHANNEL D DISK FAP10751
OCT +076000124350 RICD DISK FAP10752
BCD 1RICE00 RESET CHANNEL E DISK FAP10753
OCT +076000125350 RICE DISK FAP10754
BCD 1RICF00 RESET CHANNEL F DISK FAP10755
OCT +076000126350 RICF DISK FAP10756
BCD 1RICG00 RESET CHANNEL G DISK FAP10757
OCT +076000127350 RICG DISK FAP10758
BCD 1RICH00 RESET CHANNEL H DISK FAP10759
OCT +076000130350 RICH DISK FAP10760
BCD 1RIL000 RESET INDICATORS OF LEFT HALF FAP10761
OCT -005711120001 RIL FAP10762
BCD 1RIR000 RESET INDICATORS OF RIGHT HALF FAP10763
OCT +005711120001 RIR FAP10764
BCD 1RIS000 RESET INDICATORS FROM STORAGE FAP10765
OCT +044571120000 RIS FAP10766
BCD 1RMT000 MACRO DEFINITION PSEUDOOPERATION FAP10767
MZE 1$RMTOP,,2$UNLOP+1 RMT FAP10768
BCD 1RND000 ROUND FAP10769
OCT +076000160010 RND FAP10770
BCD 1RNT000 RIGHT HALF INDICATORS ON TEST FAP10771
OCT +005611120001 RNT FAP10772
BCD 1RPR000 READ PRINTER FAP10773
OCT +076200160361 RPR FAP10774
BCD 1RPRA00 READ PRINTER, CHANNEL A FAP10775
OCT +076200121361 RPRA FAP10776
BCD 1RPRB00 READ PRINTER, CHANNEL B FAP10777
OCT +076200122361 RPRB FAP10778
BCD 1RPRC00 READ PRINTER, CHANNEL C FAP10779
OCT +076200123361 RPRC FAP10780
BCD 1RPRD00 READ PRINTER, CHANNEL D FAP10781
OCT +076200124361 RPRD FAP10782
BCD 1RPRE00 READ PRINTER, CHANNEL E FAP10783
OCT +076200125361 RPRE FAP10784
BCD 1RPRF00 READ PRINTER, CHANNEL F FAP10785
OCT +076200126361 RPRF FAP10786
BCD 1RPRG00 READ PRINTER, CHANNEL G FAP10787
OCT +076200127361 RPRG FAP10788
BCD 1RPRH00 READ PRINTER, CHANNEL H FAP10789
OCT +076200130361 RPRH FAP10790
BCD 1RQL000 ROTATE MQ LEFT FAP10791
OCT -077311160000 RQL FAP10792
BCD 1RSCA00 RESET AND START CHANNEL A DISK FAP10793
OCT +054071120000 RSCA DISK FAP10794
BCD 1RSCB00 RESET AND START CHANNEL B DISK FAP10795
OCT -054071120000 RSCB DISK FAP10796
BCD 1RSCC00 RESET AND START CHANNEL C DISK FAP10797
OCT +054171120000 RSCC DISK FAP10798
BCD 1RSCD00 RESET AND START CHANNEL D DISK FAP10799
OCT -054171120000 RSCD DISK FAP10800
BCD 1RSCE00 RESET AND START CHANNEL E DISK FAP10801
OCT +054271120000 RSCE DISK FAP10802
BCD 1RSCF00 RESET AND START CHANNEL F DISK FAP10803
OCT -054271120000 RSCF DISK FAP10804
BCD 1RSCG00 RESET AND START CHANNEL G DISK FAP10805
OCT +054371120000 RSCG DISK FAP10806
BCD 1RSCH00 RESET AND START CHANNEL H DISK FAP10807
OCT -054371120000 RSCH DISK FAP10808
BCD 1RTB000 READ TAPE BINARY FAP10809
OCT +076210160220 RTB FAP10810
BCD 1RTBA00 READ TAPE BINARY, CHANNEL A FAP10811
OCT +076210121220 RTBA FAP10812
BCD 1RTBB00 READ TAPE BINARY, CHANNEL B FAP10813
OCT +076210122220 RTBB FAP10814
BCD 1RTBC00 READ TAPE BINARY, CHANNEL C FAP10815
OCT +076210123220 RTBC FAP10816
BCD 1RTBD00 READ TAPE BINARY, CHANNEL D FAP10817
OCT +076210124220 RTBD FAP10818
BCD 1RTBE00 READ TAPE BINARY, CHANNEL E FAP10819
OCT +076210125220 RTBE FAP10820
BCD 1RTBF00 READ TAPE BINARY, CHANNEL F FAP10821
OCT +076210126220 RTBF FAP10822
BCD 1RTBG00 READ TAPE BINARY, CHANNEL G FAP10823
OCT +076210127220 RTBG FAP10824
BCD 1RTBH00 READ TAPE BINARY, CHANNEL H FAP10825
OCT +076210130220 RTBH FAP10826
BCD 1RTD000 READ TAPE DECIMAL FAP10827
OCT +076210160200 RTD FAP10828
BCD 1RTDA00 READ TAPE DECIMAL, CHANNEL A FAP10829
OCT +076210121200 RTDA FAP10830
BCD 1RTDB00 READ TAPE DECIMAL, CHANNEL B FAP10831
OCT +076210122200 RTDB FAP10832
BCD 1RTDC00 READ TAPE DECIMAL, CHANNEL C FAP10833
OCT +076210123200 RTDC FAP10834
BCD 1RTDD00 READ TAPE DECIMAL, CHANNEL D FAP10835
OCT +076210124200 RTDD FAP10836
BCD 1RTDE00 READ TAPE DECIMAL, CHANNEL E FAP10837
OCT +076210125200 RTDE FAP10838
BCD 1RTDF00 READ TAPE DECIMAL, CHANNEL F FAP10839
OCT +076210126200 RTDF FAP10840
BCD 1RTDG00 READ TAPE DECIMAL, CHANNEL G FAP10841
OCT +076210127200 RTDG FAP10842
BCD 1RTDH00 READ TAPE DECIMAL, CHANNEL H FAP10843
OCT +076210130200 RTDH FAP10844
BCD 1RTT000 REDUNDANCY TAPE TEST FAP10845
OCT -076000140012 RTT FAP10846
BCD 1RUN000 REWIND AND UNLOAD FAP10847
OCT -077210120200 RUN FAP10848
BCD 1RUNA00 REWIND AND UNLOAD, CHANNEL A FAP10849
OCT -077210121200 RUNA FAP10850
BCD 1RUNB00 REWIND AND UNLOAD, CHANNEL B FAP10851
OCT -077210122200 RUNB FAP10852
BCD 1RUNC00 REWIND AND UNLOAD, CHANNEL C FAP10853
OCT -077210123200 RUNC FAP10854
BCD 1RUND00 REWIND AND UNLOAD, CHANNEL D FAP10855
OCT -077210124200 RUND FAP10856
BCD 1RUNE00 REWIND AND UNLOAD, CHANNEL E FAP10857
OCT -077210125200 RUNE FAP10858
BCD 1RUNF00 REWIND AND UNLOAD, CHANNEL F FAP10859
OCT -077210126200 RUNF FAP10860
BCD 1RUNG00 REWIND AND UNLOAD, CHANNEL G FAP10861
OCT -077210127200 RUNG FAP10862
BCD 1RUNH00 REWIND AND UNLOAD, CHANNEL H FAP10863
OCT -077210130200 RUNH FAP10864
BCD 1***000 CONVENTION FOR OPCODE TO BE INITIALIZED FAP10865
OCT +000001160000 *** FAP10866
BCD 1 000 BLANKS FAP10867
OCT +000001160000 BLANKS FAP10868
BCD 1SAR000 STORE ASSEMBLY REGISTER DISK FAP10869
OCT 300011720054 SAR DISKMIFAP10870
BCI 1,SAVCRS MACRO COMPILER INFORMATION PSEUDO-OPERATIONFAP10871
MZE 1$SVCOP,,2$TTL03+1 SAVCRS WNFAP10872
BCI 1,SAVE00 ASSEMBLY ABORTION PSEUDO-OPERATION WNFAP10873
MZE 1$SAVOP,,2$TTL03+1 SAVE WN FAP10874
BCD 1SBM000 SUBTRACT MAGNITUDE FAP10875
OCT -040071160000 SBM FAP10876
BCD 1SCA000 STORE COMPLEMENT OF INDEX IN ADDRESS *FAP10877
OCT +063615120000 SCA *FAP10878
BCD 1SCD000 STORE COMPLEMENT OF INDEX IN DECREMENT *FAP10879
OCT -063615120000 SCD *FAP10880
BCI 1,SCDA00 STORE CHANNEL DIAGNOSTIC, CHANNEL A *FAP10881
OCT +064471120000 SCDA *FAP10882
BCI 1,SCDB00 STORE CHANNEL DIAGNOSTIC, CHANNEL B *FAP10883
OCT -064471120000 SCDB *FAP10884
BCI 1,SCDC00 STORE CHANNEL DIAGNOSTIC, CHANNEL C *FAP10885
OCT +064571120000 SCDC *FAP10886
BCI 1,SCDD00 STORE CHANNEL DIAGNOSTIC, CHANNEL D *FAP10887
OCT -064571120000 SCDD *FAP10888
BCI 1,SCDE00 STORE CHANNEL DIAGNOSTIC, CHANNEL E *FAP10889
OCT +064671120000 SCDE *FAP10890
BCI 1,SCDF00 STORE CHANNEL DIAGNOSTIC, CHANNEL F *FAP10891
OCT -064671120000 SCDF *FAP10892
BCI 1,SCDG00 STORE CHANNEL DIAGNOSTIC, CHANNEL G *FAP10893
OCT +064771120000 SCDG *FAP10894
BCI 1,SCDH00 STORE CHANNEL DIAGNOSTIC, CHANNEL H *FAP10895
OCT -064771120000 SCDH *FAP10896
BCD 1SCHA00 STORE CHANNEL A FAP10897
OCT +064071120000 SCHA FAP10898
BCD 1SCHB00 STORE CHANNEL B FAP10899
OCT -064071120000 SCHB FAP10900
BCD 1SCHC00 STORE CHANNEL C FAP10901
OCT +064171120000 SCHC FAP10902
BCD 1SCHD00 STORE CHANNEL D FAP10903
OCT -064171120000 SCHD FAP10904
BCD 1SCHE00 STORE CHANNEL E FAP10905
OCT +064271120000 SCHE FAP10906
BCD 1SCHF00 STORE CHANNEL F FAP10907
OCT -064271120000 SCHF FAP10908
BCD 1SCHG00 STORE CHANNEL G FAP10909
OCT +064371120000 SCHG FAP10910
BCD 1SCHH00 STORE CHANNEL H FAP10911
OCT -064371120000 SCHH FAP10912
BCD 1SDH000 SET DENSITY HIGH FAP10913
OCT +077610120220 SDH FAP10914
BCD 1SDHA00 SET DENSITY HIGH, CHANNEL A FAP10915
OCT +077610121220 SDHA FAP10916
BCD 1SDHB00 SET DENSITY HIGH, CHANNEL B FAP10917
OCT +077610122220 SDHB FAP10918
BCD 1SDHC00 SET DENSITY HIGH, CHANNEL C FAP10919
OCT +077610123220 SDHC FAP10920
BCD 1SDHD00 SET DENSITY HIGH, CHANNEL D FAP10921
OCT +077610124220 SDHD FAP10922
BCD 1SDHE00 SET DENSITY HIGH, CHANNEL E FAP10923
OCT +077610125220 SDHE FAP10924
BCD 1SDHF00 SET DENSITY HIGH, CHANNEL F FAP10925
OCT +077610126220 SDHF FAP10926
BCD 1SDHG00 SET DENSITY HIGH, CHANNEL G FAP10927
OCT +077610127220 SDHG FAP10928
BCD 1SDHH00 SET DENSITY HIGH, CHANNEL H FAP10929
OCT +077610130220 SDHH FAP10930
BCD 1SDL000 SET DENSITY LOW FAP10931
OCT +077610120200 SDL FAP10932
BCD 1SDLA00 SET DENSITY LOW, CHANNEL A FAP10933
OCT +077610121200 SDLA FAP10934
BCD 1SDLB00 SET DENSITY LOW, CHANNEL B FAP10935
OCT +077610122200 SDLB FAP10936
BCD 1SDLC00 SET DENSITY LOW, CHANNEL C FAP10937
OCT +077610123200 SDLC FAP10938
BCD 1SDLD00 SET DENSITY LOW, CHANNEL D FAP10939
OCT +077610124200 SDLD FAP10940
BCD 1SDLE00 SET DENSITY LOW, CHANNEL E FAP10941
OCT +077610125200 SDLE FAP10942
BCD 1SDLF00 SET DENSITY LOW, CHANNEL F FAP10943
OCT +077610126200 SDLF FAP10944
BCD 1SDLG00 SET DENSITY LOW, CHANNEL G FAP10945
OCT +077610127200 SDLG FAP10946
BCD 1SDLH00 SET DENSITY LOW, CHANNEL H FAP10947
OCT +077610130200 SDLH FAP10948
BCD 1SDN000 SET DENSITY FAP10949
OCT +077610120200 SDN FAP10950
BCI 1,SEA000 SET ECC TO CORE A ***TSSFAP10951
OCT -076100120041 SEA ***TSSFAP10952
BCI 1,SEB000 SET ECC TO CORE B ***TSSFAP10953
OCT -076100120042 SEB ***TSSFAP10954
BCI 1,SEQ000 SEQUENCE CONTROL PSEUDO-OPERATION WNFAP10955
MZE 1$SEQOP,,2$TTL03+1 SEQ WNFAP10956
BCD 1SET000 SYMBOL DEFINING PSEUDOOPERATION FAP10957
PZE 1$SETOP,,2$SETOP SET FAP10958
BCI 1,SETB00 BOOLEAN SET PSEUDO-OPERATION DA FAP10959
PZE 1$SETBP,,2$SETBP SETB DAFAP10960
BCD 1SEVEN0 SEVEN (PREFIX) FAP10961
OCT +700001120000 SEVEN FAP10962
BCD 1SIL000 SET INDICATORS OF LEFT HALF FAP10963
OCT -005511120001 SIL FAP10964
BCD 1SIR000 SET INDICATORS OF RIGHT HALF FAP10965
OCT +005511120001 SIR FAP10966
BCD 1SIX000 SIX (PREFIX) FAP10967
OCT +600001160000 SIX FAP10968
BCD 1SKP000 LIST CONTROL PSEUDOOPERATION FAP10969
MZE 1$READ1,,2$EJCOP SKP FAP10970
BCD 1SKPFIL UPDATE INFORMATION PSEUDOOPERATION FAP10971
MON 1$FIELD,,2$TTL03+1 SKPFIL TSFAP10972
BCD 1SLF000 SENSE LIGHTS OFF FAP10973
OCT +076000160140 SLF FAP10974
BCD 1SLN000 SENSE LIGHTS ON FAP10975
OCT +076010160140 SLN FAP10976
BCD 1SLQ000 STORE LEFT HALF MQ FAP10977
OCT -062071160000 SLQ FAP10978
BCD 1SLT000 SENSE LIGHT TEST FAP10979
OCT -076010160140 SLT FAP10980
BCD 1SLW000 STORE LOGICAL WORD FAP10981
OCT +060271160000 SLW FAP10982
BCD 1SMS000 SET MODE AND SELECT DISK FAP10983
OCT 700011520054 SMS DISKMIFAP10984
BCD 1SNS000 SENSE DISK FAP10985
OCT 240001320004 SNS DISK*FAP10986
BCD 1SPACE0 LIST CONTROL PSEUDOOPERATION FAP10987
MZE 1$READ1,,2$SPCOP SPACE FAP10988
BCD 1SPC000 LIST CONTROL PSEUDOOPERATION FAP10989
MZE 1$READ1,,2$SPCOP SPC FAP10990
BCD 1SPI000 STORE PROTECT INDICATORS MIFAP10991
OCT -060471120000 SPI MIFAP10992
BCD 1SPR000 SENSE PRINTER FAP10993
OCT +076010160360 SPR FAP10994
BCD 1SPRA00 SENSE PRINTER, CHANNEL A FAP10995
OCT +076010121360 SPRA FAP10996
BCD 1SPRB00 SENSE PRINTER, CHANNEL B FAP10997
OCT +076010122360 SPRB FAP10998
BCD 1SPRC00 SENSE PRINTER, CHANNEL C FAP10999
OCT +076010123360 SPRC FAP11000
BCD 1SPRD00 SENSE PRINTER, CHANNEL D FAP11001
OCT +076010124360 SPRD FAP11002
BCD 1SPRE00 SENSE PRINTER, CHANNEL E FAP11003
OCT +076010125360 SPRE FAP11004
BCD 1SPRF00 SENSE PRINTER, CHANNEL F FAP11005
OCT +076010126360 SPRF FAP11006
BCD 1SPRG00 SENSE PRINTER, CHANNEL G FAP11007
OCT +076010127360 SPRG FAP11008
BCD 1SPRH00 SENSE PRINTER, CHANNEL H FAP11009
OCT +076010130360 SPRH FAP11010
BCD 1SPT000 SENSE PRINTER TEST *FAP11011
OCT +076000160360 SPT *FAP11012
BCD 1SPTA00 SENSE PRINTER TEST, CHANNEL A *FAP11013
OCT +076000121360 SPTA *FAP11014
BCD 1SPTB00 SENSE PRINTER TEST, CHANNEL B *FAP11015
OCT +076000122360 SPTB *FAP11016
BCD 1SPTC00 SENSE PRINTER TEST, CHANNEL C *FAP11017
OCT +076000123360 SPTC *FAP11018
BCD 1SPTD00 SENSE PRINTER TEST, CHANNEL D *FAP11019
OCT +076000124360 SPTD *FAP11020
BCD 1SPTE00 SENSE PRINTER TEST, CHANNEL E *FAP11021
OCT +076000125360 SPTE *FAP11022
BCD 1SPTF00 SENSE PRINTER TEST, CHANNEL F *FAP11023
OCT +076000126360 SPTF *FAP11024
BCD 1SPTG00 SENSE PRINTER TEST, CHANNEL G *FAP11025
OCT +076000127360 SPTG *FAP11026
BCD 1SPTH00 SENSE PRINTER TEST, CHANNEL H *FAP11027
OCT +076000130360 SPTH *FAP11028
BCD 1SPU000 SENSE PUNCH FAP11029
OCT +076010160340 SPU FAP11030
BCD 1SPUA00 SENSE PUNCH, CHANNEL A FAP11031
OCT +076010121340 SPUA FAP11032
BCD 1SPUB00 SENSE PUNCH, CHANNEL B FAP11033
OCT +076010122340 SPUB FAP11034
BCD 1SPUC00 SENSE PUNCH, CHANNEL C FAP11035
OCT +076010123340 SPUC FAP11036
BCD 1SPUD00 SENSE PUNCH, CHANNEL D FAP11037
OCT +076010124340 SPUD FAP11038
BCD 1SPUE00 SENSE PUNCH, CHANNEL E FAP11039
OCT +076010125340 SPUE FAP11040
BCD 1SPUF00 SENSE PUNCH, CHANNEL F FAP11041
OCT +076010126340 SPUF FAP11042
BCD 1SPUG00 SENSE PUNCH, CHANNEL G FAP11043
OCT +076010127340 SPUG FAP11044
BCD 1SPUH00 SENSE PUNCH, CHANNEL H FAP11045
OCT +076010130340 SPUH FAP11046
BCD 1SRI000 STORE RELOCATION INDICATORS MIFAP11047
OCT -060171120000 SRI MIFAP11048
BCD 1SSLA00 STORE SENSE LINES, CHANNEL A FAP11049
OCT +066071120000 SSLA FAP11050
BCD 1SSLB00 STORE SENSE LINES, CHANNEL B FAP11051
OCT -066071120000 SSLB FAP11052
BCD 1SSLC00 STORE SENSE LINES, CHANNEL C FAP11053
OCT +066171120000 SSLC FAP11054
BCD 1SSLD00 STORE SENSE LINES, CHANNEL D FAP11055
OCT -066171120000 SSLD FAP11056
BCD 1SSLE00 STORE SENSE LINES, CHANNEL E FAP11057
OCT +066271120000 SSLE FAP11058
BCD 1SSLF00 STORE SENSE LINES, CHANNEL F FAP11059
OCT -066271120000 SSLF FAP11060
BCD 1SSLG00 STORE SENSE LINES, CHANNEL G FAP11061
OCT +066371120000 SSLG FAP11062
BCD 1SSLH00 STORE SENSE LINES, CHANNEL H FAP11063
OCT -066371120000 SSLH FAP11064
BCD 1SSM000 SET SIGN MINUS FAP11065
OCT -076000160003 SSM FAP11066
BCD 1SSP000 SET SIGN PLUS FAP11067
OCT +076000160003 SSP FAP11068
BCD 1SST000 ASSEMBLER INFORMATION PSEUDOOPERATION FAP11069
MZE 1$SSTOP,,2$UNLOP+1 SST FAP11070
BCD 1STA000 STORE ADDRESS FAP11071
OCT +062171160000 STA FAP11072
BCD 1STCA00 START CHANNEL A DISK FAP11073
OCT +054401120000 STCA DISK FAP11074
BCD 1STCB00 START CHANNEL B DISK FAP11075
OCT -054401120000 STCB DISK FAP11076
BCD 1STCC00 START CHANNEL C DISK FAP11077
OCT +054501120000 STCC DISK FAP11078
BCD 1STCD00 START CHANNEL D DISK FAP11079
OCT -054501120000 STCD DISK FAP11080
BCD 1STCE00 START CHANNEL E DISK FAP11081
OCT +054601120000 STCE DISK FAP11082
BCD 1STCF00 START CHANNEL F DISK FAP11083
OCT -054601120000 STCF DISK FAP11084
BCD 1STCG00 START CHANNEL G DISK FAP11085
OCT +054701120000 STCG DISK FAP11086
BCD 1STCH00 START CHANNEL H DISK FAP11087
OCT -054701120000 STCH DISK FAP11088
BCD 1STD000 STORE DECREMENT FAP11089
OCT +062271160000 STD FAP11090
BCD 1STI000 STORE INDICATORS FAP11091
OCT +060471120000 STI FAP11092
BCD 1STL000 STORE INSTRUCTION LOCATION COUNTER FAP11093
OCT -062571120000 STL FAP11094
BCD 1STO000 STORE FAP11095
OCT +060171160000 STO FAP11096
BCD 1STP000 STORE PREFIX FAP11097
OCT +063071160000 STP FAP11098
BCD 1STQ000 STORE MQ FAP11099
OCT -060071160000 STQ FAP11100
BCD 1STR000 STORE LOCATION AND TRAP FAP11101
OCT -100001120000 STR FAP11102
BCD 1STT000 STORE TAG FAP11103
OCT +062571120000 STT FAP11104
BCD 1STZ000 STORE ZERO FAP11105
OCT +060071160000 STZ FAP11106
BCD 1SUB000 SUBTRACT FAP11107
OCT +040271160000 SUB FAP11108
BCD 1SVN000 SEVEN (PREFIX) FAP11109
OCT +700001160000 SVN FAP11110
BCD 1SWT000 SENSE SWITCH TEST FAP11111
OCT +076010160160 SWT FAP11112
BCD 1SXA000 STORE INDEX IN ADDRESS FAP11113
OCT +063415120000 SXA FAP11114
BCD 1SXD000 STORE INDEX IN DECREMENT FAP11115
OCT -063415160000 SXD FAP11116
BCD 1SYMREF SYMBOLIC REFERENCE TABLE CONTROL PB FAP11117
PZE 1$READ1,,2$SRFOP SYMREF PB FAP11118
BCD 1SYN000 SYMBOL DEFINING PSEUDOOPERATION FAP11119
PZE 1$SYNOP,,2$MAXOP SYN FAP11120
BCD 1TAPENO SYMBOL DEFINING PSEUDOOPERATION FAP11121
PZE 1$TAPOP,,2$BOLOP+2 TAPENO FAP11122
BCD 1TCD000 CARD FORMAT PSEUDOOPERATION FAP11123
MZE 1$TCDOP,,2$TCDOP TCD FAP11124
BCD 1TCH000 I/O TRANSFER IN CHANNEL FAP11125
OCT 100011520050 TCH ***TSSFAP11126
BCD 1TCM000 TRANSFER ON CONDITION MET DISK FAP11127
OCT 500013720056 TCM DISKMIFAP11128
BCD 1TCNA00 TRANSFER ON CHANNEL A NOT IN OPERATION FAP11129
OCT -006071120000 TCNA FAP11130
BCD 1TCNB00 TRANSFER ON CHANNEL B NOT IN OPERATION FAP11131
OCT -006171120000 TCNB FAP11132
BCD 1TCNC00 TRANSFER ON CHANNEL C NOT IN OPERATION FAP11133
OCT -006271120000 TCNC FAP11134
BCD 1TCND00 TRANSFER ON CHANNEL D NOT IN OPERATION FAP11135
OCT -006371120000 TCND FAP11136
BCD 1TCNE00 TRANSFER ON CHANNEL E NOT IN OPERATION FAP11137
OCT -006471120000 TCNE FAP11138
BCD 1TCNF00 TRANSFER ON CHANNEL F NOT IN OPERATION FAP11139
OCT -006571120000 TCNF FAP11140
BCD 1TCNG00 TRANSFER ON CHANNEL G NOT IN OPERATION FAP11141
OCT -006671120000 TCNG FAP11142
BCD 1TCNH00 TRANSFER ON CHANNEL H NOT IN OPERATION FAP11143
OCT -006771120000 TCNH FAP11144
BCD 1TCOA00 TRANSFER ON CHANNEL A IN OPERATION FAP11145
OCT +006071120000 TCOA FAP11146
BCD 1TCOB00 TRANSFER ON CHANNEL B IN OPERATION FAP11147
OCT +006171120000 TCOB FAP11148
BCD 1TCOC00 TRANSFER ON CHANNEL C IN OPERATION FAP11149
OCT +006271120000 TCOC FAP11150
BCD 1TCOD00 TRANSFER ON CHANNEL D IN OPERATION FAP11151
OCT +006371120000 TCOD FAP11152
BCD 1TCOE00 TRANSFER ON CHANNEL E IN OPERATION FAP11153
OCT +006471120000 TCOE FAP11154
BCD 1TCOF00 TRANSFER ON CHANNEL F IN OPERATION FAP11155
OCT +006571120000 TCOF FAP11156
BCD 1TCOG00 TRANSFER ON CHANNEL G IN OPERATION FAP11157
OCT +006671120000 TCOG FAP11158
BCD 1TCOH00 TRANSFER ON CHANNEL H IN OPERATION FAP11159
OCT +006771120000 TCOH FAP11160
BCD 1TDC000 TRANSFER AND DECREMENT COUNTER DISK FAP11161
OCT 640011520054 TDC DISKMIFAP11162
BCD 1TEFA00 TRANSFER ON END OF FILE, CHANNEL A FAP11163
OCT +003071120000 TEFA FAP11164
BCD 1TEFB00 TRANSFER ON END OF FILE, CHANNEL B FAP11165
OCT -003071120000 TEFB FAP11166
BCD 1TEFC00 TRANSFER ON END OF FILE, CHANNEL C FAP11167
OCT +003171120000 TEFC FAP11168
BCD 1TEFD00 TRANSFER ON END OF FILE, CHANNEL D FAP11169
OCT -003171120000 TEFD FAP11170
BCD 1TEFE00 TRANSFER ON END OF FILE, CHANNEL E FAP11171
OCT +003271120000 TEFE FAP11172
BCD 1TEFF00 TRANSFER ON END OF FILE, CHANNEL F FAP11173
OCT -003271120000 TEFF FAP11174
BCD 1TEFG00 TRANSFER ON END OF FILE, CHANNEL G FAP11175
OCT +003371120000 TEFG FAP11176
BCD 1TEFH00 TRANSFER ON END OF FILE, CHANNEL H FAP11177
OCT -003371120000 TEFH FAP11178
BCD 1THREE0 THREE (PREFIX) FAP11179
OCT +300001120000 THREE FAP11180
BCI 1,TIA000 TRANSFER AND SET ICC TO CORE A ***TSSFAP11181
OCT +010101120000 TIA ***TSSFAP11182
BCI 1,TIB000 TRANSFER AND SET ICC TO B ***TSSFAP11183
OCT -010101120030 TIB ***TSSFAP11184
BCD 1TIF000 TRANSFER IF INDICATORS OFF FAP11185
OCT +004671120000 TIF FAP11186
BCD 1TIO000 TRANSFER IF INDICATORS ON FAP11187
OCT +004271120000 TIO FAP11188
BCD 1TITLE0 LIST CONTROL PSEUDOOPERATION FAP11189
MZE 1$READ1,,2$TITOP TITLE FAP11190
BCD 1TIX000 TRANSFER ON INDEX FAP11191
OCT +200017160000 TIX FAP11192
BCD 1TLQ000 TRANSFER ON LOW MQ FAP11193
OCT +004071160000 TLQ FAP11194
BCD 1TMI000 TRANSFER ON MINUS FAP11195
OCT -012071160000 TMI FAP11196
BCD 1TNO000 TRANSFER ON NO OVERFLOW FAP11197
OCT -014071160000 TNO FAP11198
BCD 1TNX000 TRANSFER ON NO INDEX FAP11199
OCT -200017160000 TNX FAP11200
BCD 1TNZ000 TRANSFER ON NO ZERO FAP11201
OCT -010071160000 TNZ FAP11202
BCD 1TOV000 TRANSFER ON OVERFLOW FAP11203
OCT +014071160000 TOV FAP11204
BCD 1TPL000 TRANSFER ON PLUS FAP11205
OCT +012071160000 TPL FAP11206
BCD 1TQO000 TRANSFER ON MQ OVERFLOW FAP11207
OCT +016171160000 TQO FAP11208
BCD 1TQP000 TRANSFER ON MQ PLUS FAP11209
OCT +016271160000 TQP FAP11210
BCD 1TRA000 TRANSFER FAP11211
OCT +002071160000 TRA FAP11212
BCD 1TRCA00 TRANSFER ON REDUNDANCY CHECK, CHANNEL A FAP11213
OCT +002271120000 TRCA FAP11214
BCD 1TRCB00 TRANSFER ON REDUNDANCY CHECK, CHANNEL B FAP11215
OCT -002271120000 TRCB FAP11216
BCD 1TRCC00 TRANSFER ON REDUNDANCY CHECK, CHANNEL C FAP11217
OCT +002471120000 TRCC FAP11218
BCD 1TRCD00 TRANSFER ON REDUNDANCY CHECK, CHANNEL D FAP11219
OCT -002471120000 TRCD FAP11220
BCD 1TRCE00 TRANSFER ON REDUNDANCY CHECK, CHANNEL E FAP11221
OCT +002671120000 TRCE FAP11222
BCD 1TRCF00 TRANSFER ON REDUNDANCY CHECK, CHANNEL F FAP11223
OCT -002671120000 TRCF FAP11224
BCD 1TRCG00 TRANSFER ON REDUNDANCY CHECK, CHANNEL G FAP11225
OCT +002771120000 TRCG FAP11226
BCD 1TRCH00 TRANSFER ON REDUNDANCY CHECK, CHANNEL H FAP11227
OCT -002771120000 TRCH FAP11228
BCD 1TRS000 TEST READY STATUS FAP11229
OCT -077510120000 TRS FAP11230
BCD 1TSM000 TEST SIGNIFICANCE MODE FAP11231
OCT -076100120141 TSM FAP11232
BCD 1TSX000 TRANSFER AND SET INDEX FAP11233
OCT +007415160000 TSX FAP11234
BCD 1TTL000 LIST CONTROL PSEUDOOPERATION FAP11235
MZE 1$READ1,,2$TTLOP TTL FAP11236
BCD 1TTR000 TRAP TRANSFER FAP11237
OCT +002171160000 TTR FAP11238
BCD 1TWO000 TWO (PREFIX) FAP11239
OCT +200001160000 TWO FAP11240
BCD 1TWT000 TRAP AND WAIT DISK FAP11241
OCT 340011520054 TWT DISKMIFAP11242
BCD 1TXH000 TRANSFER ON INDEX HIGH FAP11243
OCT +300017160000 TXH FAP11244
BCD 1TXI000 TRANSFER WITH INDEX INCREMENTED FAP11245
OCT +100017160000 TXI FAP11246
BCD 1TXL000 TRANSFER ON INDEX LOW FAP11247
OCT -300017160000 TXL FAP11248
BCD 1TZE000 TRANSFER ON ZERO FAP11249
OCT +010071160000 TZE FAP11250
BCD 1UAM000 UNNORMALIZED ADD MAGNITUDE FAP11251
OCT -030471120000 UAM FAP11252
BCD 1UFA000 UNNORMALIZED FLOATING ADD FAP11253
OCT -030071160000 UFA FAP11254
BCD 1UFM000 UNNORMALIZED FLOATING MULTIPLY FAP11255
OCT -026071160000 UFM FAP11256
BCD 1UFS000 UNNORMALIZED FLOATING SUBTRACT FAP11257
OCT -030271160000 UFS FAP11258
BCD 1UMC000 UPDATE INFORMATION PSEUDOOPERATION FAP11259
MON 1$FIELD,,2$TTL03+1 UMC TSFAP11260
BCD 1UNLIST LIST CONTROL PSEUDOOPERATION FAP11261
MZE 1$READ1,,2$UNLOP UNLIST FAP11262
BCD 1UNLOAD UPDATE INFORMATION PSEUDOOPERATION FAP11263
MON 1$FIELD,,2$TTL03+1 UNLOAD TSFAP11264
BCD 1UPDATE UPDATE INFORMATION PSEUDOOPERATION FAP11265
MON 1$FIELD,,2$TTL03+1 UPDATE TSFAP11266
BCD 1USM000 UNNORMALIZED FLOATING SUBTRACT MAGNITUDE FAP11267
OCT -030671120000 USM FAP11268
BCD 1VDH000 VARIABLE LENGTH DIVIDE OR HALT FAP11269
OCT +022413120002 VDH FAP11270
BCD 1VDP000 VARIABLE LENGTH DIVIDE OR PROCEED FAP11271
OCT +022513120002 VDP FAP11272
BCD 1VFD000 DATA GENERATING PSEUDOOPERATION FAP11273
PZE 1$VFDOP,,2$VFDOP VFD FAP11274
BCD 1VLM000 VARIABLE LENGTH MULTIPLY FAP11275
OCT +020413120002 VLM FAP11276
BCD 1WDDD00 MIFAP11277
OCT +076600124240 MIFAP11278
BCD 1WDR000 WRITE DRUM FAP11279
OCT +076610140300 WDR FAP11280
BCD 1WEF000 WRITE END OF FILE FAP11281
OCT +077010160200 WEF FAP11282
BCD 1WEFA00 WRITE END OF FILE, CHANNEL A FAP11283
OCT +077010121200 WEFA FAP11284
BCD 1WEFB00 WRITE END OF FILE, CHANNEL B FAP11285
OCT +077010122200 WEFB FAP11286
BCD 1WEFC00 WRITE END OF FILE, CHANNEL C FAP11287
OCT +077010123200 WEFC FAP11288
BCD 1WEFD00 WRITE END OF FILE, CHANNEL D FAP11289
OCT +077010124200 WEFD FAP11290
BCD 1WEFE00 WRITE END OF FILE, CHANNEL E FAP11291
OCT +077010125200 WEFE FAP11292
BCD 1WEFF00 WRITE END OF FILE, CHANNEL F FAP11293
OCT +077010126200 WEFF FAP11294
BCD 1WEFG00 WRITE END OF FILE, CHANNEL G FAP11295
OCT +077010127200 WEFG FAP11296
BCD 1WEFH00 WRITE END OF FILE, CHANNEL H FAP11297
OCT +077010130200 WEFH FAP11298
BCD 1WPB000 WRITE PRINTER BINARY FAP11299
OCT +076600160362 WPB FAP11300
BCD 1WPBA00 WRITE PRINTER BINARY, CHANNEL A FAP11301
OCT +076600121362 WPBA FAP11302
BCD 1WPBB00 WRITE PRINTER BINARY, CHANNEL B FAP11303
OCT +076600122362 WPBB FAP11304
BCD 1WPBC00 WRITE PRINTER BINARY, CHANNEL C FAP11305
OCT +076600123362 WPBC FAP11306
BCD 1WPBD00 WRITE PRINTER BINARY, CHANNEL D FAP11307
OCT +076600124362 WPBD FAP11308
BCD 1WPBE00 WRITE PRINTER BINARY, CHANNEL E FAP11309
OCT +076600125362 WPBE FAP11310
BCD 1WPBF00 WRITE PRINTER BINARY, CHANNEL F FAP11311
OCT +076600126362 WPBF FAP11312
BCD 1WPBG00 WRITE PRINTER BINARY, CHANNEL G FAP11313
OCT +076600127362 WPBG FAP11314
BCD 1WPBH00 WRITE PRINTER BINARY, CHANNEL H FAP11315
OCT +076600130362 WPBH FAP11316
BCD 1WPD000 WRITE PRINTER DECIMAL FAP11317
OCT +076600160361 WPD FAP11318
BCD 1WPDA00 WRITE PRINTER DECIMAL, CHANNEL A FAP11319
OCT +076600121361 WPDA FAP11320
BCD 1WPDB00 WRITE PRINTER DECIMAL, CHANNEL B FAP11321
OCT +076600122361 WPDB FAP11322
BCD 1WPDC00 WRITE PRINTER DECIMAL, CHANNEL C FAP11323
OCT +076600123361 WPDC FAP11324
BCD 1WPDD00 WRITE PRINTER DECIMAL, CHANNEL D FAP11325
OCT +076600124361 WPDD FAP11326
BCD 1WPDE00 WRITE PRINTER DECIMAL, CHANNEL E FAP11327
OCT +076600125361 WPDE FAP11328
BCD 1WPDF00 WRITE PRINTER DECIMAL, CHANNEL F FAP11329
OCT +076600126361 WPDF FAP11330
BCD 1WPDG00 WRITE PRINTER DECIMAL, CHANNEL G FAP11331
OCT +076600127361 WPDG FAP11332
BCD 1WPDH00 WRITE PRINTER DECIMAL, CHANNEL H FAP11333
OCT +076600130361 WPDH FAP11334
BCD 1WPR000 WRITE PRINTER FAP11335
OCT +076600160361 WPR FAP11336
BCD 1WPRA00 WRITE PRINTER, CHANNEL A FAP11337
OCT +076600121361 WPRA FAP11338
BCD 1WPRB00 WRITE PRINTER, CHANNEL B FAP11339
OCT +076600122361 WPRB FAP11340
BCD 1WPRC00 WRITE PRINTER, CHANNEL C FAP11341
OCT +076600123361 WPRC FAP11342
BCD 1WPRD00 WRITE PRINTER, CHANNEL D FAP11343
OCT +076600124361 WPRD FAP11344
BCD 1WPRE00 WRITE PRINTER, CHANNEL E FAP11345
OCT +076600125361 WPRE FAP11346
BCD 1WPRF00 WRITE PRINTER, CHANNEL F FAP11347
OCT +076600126361 WPRF FAP11348
BCD 1WPRG00 WRITE PRINTER, CHANNEL G FAP11349
OCT +076600127361 WPRG FAP11350
BCD 1WPRH00 WRITE PRINTER, CHANNEL H FAP11351
OCT +076600130361 WPRH FAP11352
BCD 1WPU000 WRITE PUNCH FAP11353
OCT +076600160341 WPU FAP11354
BCD 1WPUA00 WRITE PUNCH, CHANNEL A FAP11355
OCT +076600121341 WPUA FAP11356
BCD 1WPUB00 WRITE PUNCH, CHANNEL B FAP11357
OCT +076600122341 WPUB FAP11358
BCD 1WPUC00 WRITE PUNCH, CHANNEL C FAP11359
OCT +076600123341 WPUC FAP11360
BCD 1WPUD00 WRITE PUNCH, CHANNEL D FAP11361
OCT +076600124341 WPUD FAP11362
BCD 1WPUE00 WRITE PUNCH, CHANNEL E FAP11363
OCT +076600125341 WPUE FAP11364
BCD 1WPUF00 WRITE PUNCH, CHANNEL F FAP11365
OCT +076600126341 WPUF FAP11366
BCD 1WPUG00 WRITE PUNCH, CHANNEL G FAP11367
OCT +076600127341 WPUG FAP11368
BCD 1WPUH00 WRITE PUNCH, CHANNEL H FAP11369
OCT +076600130341 WPUH FAP11370
BCD 1WRS000 WRITE SELECT FAP11371
OCT +076611160000 WRS FAP11372
BCD 1WTB000 WRITE TAPE BINARY FAP11373
OCT +076610160220 WTB FAP11374
BCD 1WTBA00 WRITE TAPE BINARY, CHANNEL A FAP11375
OCT +076610121220 WTBA FAP11376
BCD 1WTBB00 WRITE TAPE BINARY, CHANNEL B FAP11377
OCT +076610122220 WTBB FAP11378
BCD 1WTBC00 WRITE TAPE BINARY, CHANNEL C FAP11379
OCT +076610123220 WTBC FAP11380
BCD 1WTBD00 WRITE TAPE BINARY, CHANNEL D FAP11381
OCT +076610124220 WTBD FAP11382
BCD 1WTBE00 WRITE TAPE BINARY, CHANNEL E FAP11383
OCT +076610125220 WTBE FAP11384
BCD 1WTBF00 WRITE TAPE BINARY, CHANNEL F FAP11385
OCT +076610126220 WTBF FAP11386
BCD 1WTBG00 WRITE TAPE BINARY, CHANNEL G FAP11387
OCT +076610127220 WTBG FAP11388
BCD 1WTBH00 WRITE TAPE BINARY, CHANNEL H FAP11389
OCT +076610130220 WTBH FAP11390
BCD 1WTD000 WRITE TAPE DECIMAL FAP11391
OCT +076610160200 WTD FAP11392
BCD 1WTDA00 WRITE TAPE DECIMAL, CHANNEL A FAP11393
OCT +076610121200 WTDA FAP11394
BCD 1WTDB00 WRITE TAPE DECIMAL, CHANNEL B FAP11395
OCT +076610122200 WTDB FAP11396
BCD 1WTDC00 WRITE TAPE DECIMAL, CHANNEL C FAP11397
OCT +076610123200 WTDC FAP11398
BCD 1WTDD00 WRITE TAPE DECIMAL, CHANNEL D FAP11399
OCT +076610124200 WTDD FAP11400
BCD 1WTDE00 WRITE TAPE DECIMAL, CHANNEL E FAP11401
OCT +076610125200 WTDE FAP11402
BCD 1WTDF00 WRITE TAPE DECIMAL, CHANNEL F FAP11403
OCT +076610126200 WTDF FAP11404
BCD 1WTDG00 WRITE TAPE DECIMAL, CHANNEL G FAP11405
OCT +076610127200 WTDG FAP11406
BCD 1WTDH00 WRITE TAPE DECIMAL, CHANNEL H FAP11407
OCT +076610130200 WTDH FAP11408
BCD 1WTR000 WAIT AND TRANSFER DISK FAP11409
OCT 000011520050 WTR DISKMIFAP11410
BCD 1WTS000 WRITE TAPE SIMULTANEOUSLY (704) FAP11411
OCT +076610140320 WTS FAP11412
BCD 1WTV000 WRITE CATHODE RAY TUBE FAP11413
OCT +076600160030 WTV FAP11414
BCD 1WTVA00 WRITE CATHODE RAY TUBE CH A MIFAP11415
OCT +076600161030 WTVA MIFAP11416
BCD 1XCA000 EXCHANGE ACCUMULATOR AND MQ FAP11417
OCT +013101120000 XCA FAP11418
BCD 1XCL000 EXCHANGE LOGICAL ACCUMULATOR AND MQ FAP11419
OCT -013001120000 XCL FAP11420
BCD 1XEC000 EXECUTE FAP11421
OCT +052271120000 XEC FAP11422
BCD 1XIT000 FORTRAN CODE FOR TTR FAP11423
OCT +002171160000 XIT FAP11424
BCD 1XMT000 TRANSMIT DISK FAP11425
OCT 000013720050 XMT DISKMIFAP11426
BCD 1ZAC000 ZERO ACCUMULATOR (PXD WITHOUT TAG) FAP11427
OCT -075401160000 ZAC FAP11428
BCD 1ZET000 STORAGE ZERO TEST FAP11429
OCT +052071120000 ZET FAP11430
BCD 1ZSA000 ZERO STORAGE ADDRESS (SXA WITHOUT TAG) FAP11431
OCT +063411120000 ZSA FAP11432
BCD 1ZSD000 ZERO STORAGE DECREMENT (SXD WITHOUT TAG) FAP11433
OCT -063411160000 ZSD FAP11434
OCT +777777777777 ILLEGIBLE NAME TO FLAG MACRO ERRORS FAP11435
PZE FAP11436
REM FAP11437
LOPTBL SYN *-OPTTBL FAP11438
TTL SYSTEM SYMBOL TABLE FAP11439
LBL 9F04SS FAP11440
HEAD S SYSTEM SYMBOL TABLE FAP11441
ORG OPTTBL+LOPTBM FAP11442
TOPMM SYN -1 TOP OF AVAILABLE MEMORY FAP11443
BOTIP SYN TOPMM-2303 BOTTOM OF I/O PACKAGE FAP11444
BOTMM SYN 100 LOAD POINT FOR FORTRAN RECORDS FAP11445
K EQU 512 OPERATION MNEMONICS PARAMETER FAP11446
REM FAP11447
SYMSIZ PZE **,,-LSMTBL LOG LSMTBL,,LENGTH OF SYMBOL TABLE FAP11448
SYMTBL SYN * FAP11449
REM FAP11450
REM FAP11451
REM SYSTEM TAPE ASSIGNMENTS FAP11452
REM FAP11453
BCD 1SYSTAP SYSTEM TAPE FAP11454
PZE 1 SYSTAP FAP11455
BCD 1FINTAP FIRST INTERMEDIATE TAPE FAP11456
PZE 2 FINTAP FAP11457
BCD 1SINTAP SECOND INTERMEDIATE TAPE FAP11458
PZE 3 SINTAP FAP11459
BCD 1TINTAP THIRD INTERMEDIATE TAPE FAP11460
PZE 4 TINTAP FAP11461
BCD 1MINTAP MONITOR BCD INPUT TAPE FAP11462
PZE 5 MINTAP FAP11463
BCD 1MLSTAP MONITOR BCD OUTPUT (LISTING) TAPE FAP11464
PZE 6 MLSTAP FAP11465
BCD 1MBNTAP MONITOR BINARY OUTPUT TAPE FAP11466
PZE 7 MBNTAP FAP11467
BCD 1MCHTAP MONITOR CHAIN INTERMEDIATE TAPE FAP11468
PZE 8 MCHTAP FAP11469
BCD 1SNPTAP SNAPSHOT INTERMEDIATE TAPE FAP11470
PZE 9 SNPTAP FAP11471
BCD 1LIBTAP LIBRARY TAPE FAP11472
PZE 1 LIBTAP FAP11473
REM FAP11474
REM CORE MEMORY ALLOCATION FAP11475
REM FAP11476
BCI 1,(CKRD) CLOCK LOCATION MIFAP11477
PZE 5 MIFAP11478
BCI 1,(CLOC) MIFAP11479
PZE 6 CLOCK ILC LOCATION MIFAP11480
BCI 1,(CTRP) MIFAP11481
PZE 7 CLOCK TRAP LOCATION MIFAP11482
BCI 1,(SKEL) ROUTINE TO ENTER STAT. MIFAP11483
PZE 40 INFORMATION MIFAP11484
BCI 1,(CLKL) MONITOR CLOCK TRAP HERE MIFAP11485
PZE 60 MIFAP11486
BCI 1,(PMAD) F2PM REGISTER MIFAP11487
PZE 62 MIFAP11488
BCI 1,(TRPM) F2PM TTR REGISTER MIFAP11489
PZE 63 MIFAP11490
BCI 1,(SBUF) STATISTICS CARD BUFFER MIFAP11491
PZE 64 MIFAP11492
BCI 1,(PROB) PROBLEM NO. MIFAP11493
PZE 66 MIFAP11494
BCI 1,(TIMI) INITIAL TIME MIFAP11495
PZE 67 MIFAP11496
BCI 1,(PROG) PROGRAMMER NO. MIFAP11497
PZE 68 MIFAP11498
BCI 1,(DATI) INITIAL DATE MIFAP11499
PZE 69 MIFAP11500
BCI 1,(PRCT) PRINT COUNT MIFAP11501
PZE 88 MIFAP11502
BCI 1,(PUCT) PUNCH COUNT MIFAP11503
PZE 89 MIFAP11504
BCI 1,(ELCT) EST. LINE COUNT MIFAP11505
PZE 90 MIFAP11506
BCI 1,(JBTM) JOB TIME MIFAP11507
PZE 91 MIFAP11508
BCI 1,(FCNT) FORTRAN INPUT COUNT MIFAP11509
PZE 93 MIFAP11510
BCI 1,(CKIN) MIFAP11511
PZE 92 1MIFAP11512
BCI 1,(TYRN) 2MIFAP11513
PZE 94 3MIFAP11514
BCI 1,(HILO) HIGHEST LOWCORE-LOWEST COMMON 4MIFAP11515
PZE 99 MIFAP11516
BCD 1FLAGBX FAP11517
OCT 140 FLAG BOX MIFAP11518
BCD 1LINECT BCD LISTING TAPE TOTAL,,PAGE LINE COUNT FAP11519
PZE BOTMM-03 LINECT FAP11520
BCD 1DATEBX PRIMARY MONITOR JOB DATE (FROM START CARD) FAP11521
PZE BOTMM-02 DATEBX FAP11522
BCD 1(PCBK) OBJECT PROGRAM COMMON BREAK,,PROGRAM BREAK FAP11523
PZE BOTMM-01 (PCBK) FAP11524
BCD 1BOTTOM LOAD POINT FOR FORTRAN RECORD FAP11525
PZE BOTMM-00 BOTTOM FAP11526
BCD 1BOTIOP LOAD POINT FOR COMMON I/O PACKAGE FAP11527
PZE BOTIP+00 BOTIOP FAP11528
BCD 1TOPMEM TOP OF AVAILABLE MEMORY FAP11529
PZE TOPMM+00 TOPMEM FAP11530
REM FAP11531
REM ENTRY POINTS TO FAP11532
REM THE 709/7090 FORTRAN COMMON INPUT/OUTPUT, CONTROL PACKAGEFAP11533
REM FAP11534
BCD 1(LOAD) CALL NEXT FORTRAN RECORD FAP11535
PZE BOTIP+00 (LOAD) FAP11536
BCD 1(DIAG) CALL DIAGNOSTIC RECORD FAP11537
PZE BOTIP+03 (DIAG) FAP11538
BCD 1(TAPE) TAPE REPOSITION OR DATA TRANSMIT FAP11539
PZE BOTIP+06 (TAPE) FAP11540
BCD 1(PRNT) PRINT LINE ONLINE FAP11541
PZE BOTIP+09 (PRNT) FAP11542
BCD 1(PNCH) PUNCH CARD ONLINE FAP11543
PZE BOTIP+12 (PNCH) FAP11544
BCD 1(READ) READ CARD ONLINE FAP11545
PZE BOTIP+15 (READ) FAP11546
BCD 1(STAT) LOCATE TAPE STATISTIC TABLES FAP11547
PZE BOTIP+18 (STAT) FAP11548
BCD 1(REST) RESTORE MEMORY AND CONTINUE FAP11549
PZE BOTIP+21 (REST) FAP11550
BCD 1(STDN) SET TAPE DENSITY FAP11551
PZE BOTIP+25 (STDN) FAP11552
BCD 1(SECL) CALL SOURCE PROGRAM ERROR RECORD FAP11553
PZE BOTIP+39 (SECL) FAP11554
BCD 1(MECL) CALL MACHINE ERROR RECORD FAP11555
PZE BOTIP+40 (MECL) FAP11556
BCD 1(DGLD) RESTORE MEMORY AND HALT FAP11557
PZE BOTIP+41 (DGLD) FAP11558
REM FAP11559
REM PARAMETERS VARIABLE AT EDIT TIME FAP11560
REM FAP11561
BCD 1(ES1S) PHYSICAL SENSE SWITCH CORR TO END CARD SET 1 FAP11562
PZE BOTIP+42 (ES1S) FAP11563
BCD 1(ES2S) PHYSICAL SENSE SWITCH CORR TO END CARD SET 2 FAP11564
PZE BOTIP+43 (ES2S) FAP11565
BCD 1(ES3S) PHYSICAL SENSE SWITCH CORR TO END CARD SET 3 FAP11566
PZE BOTIP+44 (ES3S) FAP11567
BCD 1(ES4S) PHYSICAL SENSE SWITCH CORR TO END CARD SET 4 FAP11568
PZE BOTIP+45 (ES4S) FAP11569
BCD 1(ES5S) PHYSICAL SENSE SWITCH CORR TO END CARD SET 5 FAP11570
PZE BOTIP+46 (ES5S) FAP11571
BCD 1(ES6S) PHYSICAL SENSE SWITCH UNASSIGNED FAP11572
PZE BOTIP+47 (ES6S) FAP11573
BCD 1(PGCT) PARAMETER FOR BCD LISTING TAPE PAGE DIMENSIONSFAP11574
PZE BOTIP+48 (PGCT) FAP11575
BCD 1(LIBT) LOGICAL TAPE NUMBER FOR LIBRARY TAPE ASSIGNED FAP11576
PZE BOTIP+49 (LIBT) FAP11577
REM FAP11578
REM COMMON COMMUNICATIONS REGION FAP11579
REM FAP11580
BCD 1(FGBX) LOCATION OF MONITOR FLAGS FAP11581
PZE BOTIP+55 (FGBX) FAP11582
BCD 1(LNCT) LOCATION OF BCD OUTPUT TOTAL,,PAGE LINE COUNT FAP11583
PZE BOTIP+56 (LNCT) FAP11584
BCD 1(DATE) SECONDARY MONITOR JOB DATE FAP11585
PZE BOTIP+57 (DATE) FAP11586
BCD 1(SNCT) COUNT OF SNAPSHOTS ON INTERMEDIATE SNAP TAPE FAP11587
PZE BOTIP+58 (SNCT) FAP11588
BCD 1(MSLN) FLAG FOR ENTRY INTO ERROR RECORDS FAP11589
PZE BOTIP+59 (MSLN) FAP11590
BCD 1(ENDS) MONITOR END CARD SETTINGS FAP11591
PZE BOTIP+60 (ENDS) FAP11592
BCI 1,0CTIME MIFAP11593
OCT 77740 MIFAP11594
BCI 1,JOBTME MIFAP11595
OCT 77727 MIFAP11596
1 REM * CARDS ROW ROW BINARY CARDS ONLINE FAP11597
2 REM * LIST ADD OBJECT PROGRAM TO LISTING (FORTRAN) FAP11598
3 REM * PRINT LIST ONLINE FAP11599
4 REM * CARDS COLUMN COLUMN BINARY CARDS ONLINE FAP11600
5 REM * LIBE ADD LIBRARY SUBROUTINES TO BINARY OUTPUT FAP11601
6 REM * SYMBOL TABLE ADD SYMBOL TABLE TO BINARY OUTPUT FAP11602
7 REM * LABEL SERIALIZE BINARY OUTPUT FAP11603
8 REM * LIST8 EXTENDED OBJECT PROGRAM LISTING (FORTRAN) FAP11604
9 REM * ROW ROW BINARY CARDS OFFLINE FAP11605
10 REM * PACK BLOCK LISTING TAPE FAP11606
BCD 1(SCHU) DATA PERTAINING TO LAST INFORMATION XMITTED FAP11607
PZE BOTIP+65 (SCHU) FAP11608
REM FAP11609
REM DEFINITIONS OF OPERATION MNEMONICS FOR FAP11610
REM THE 709/7090 FORTRAN COMMON INPUT/OUTPUT, CONTROL PACKAGEFAP11611
REM FAP11612
REM OPERATION RECORD ENDFILE CHECK FAP11613
BCD 1(WROW) WRITE ROW BIN IMMEDIATE FAP11614
PZE 32*K+16+8+1 (WROW) FAP11615
BCD 1(RDEC) READ DECIMAL PERMITTED IMMEDIATE FAP11616
PZE 32*K+8+4+2 (RDEC) FAP11617
BCD 1(WEFC) WRITE ENDFILE IMMEDIATE FAP11618
PZE 32*K+8+4+1 (WEFC) FAP11619
BCD 1(RBEC) READ BINARY PERMITTED IMMEDIATE FAP11620
PZE 32*K+8+4 (RBEC) FAP11621
BCD 1(WDNC) WRITE DECIMAL IMMEDIATE FAP11622
PZE 32*K+8+2+1 (WDNC) FAP11623
BCD 1(RDNC) READ DECIMAL PROHIBITED IMMEDIATE FAP11624
PZE 32*K+8+2 (RDNC) FAP11625
BCD 1(WBNC) WRITE BINARY IMMEDIATE FAP11626
PZE 32*K+8+1 (WBNC) FAP11627
BCD 1(RBNC) READ BINARY PROHIBITED IMMEDIATE FAP11628
PZE 32*K+8 (RBNC) FAP11629
BCD 1(RDEP) READ DECIMAL PERMITTED LATER FAP11630
PZE 32*K+4+2 (RDEP) FAP11631
BCD 1(WEFP) WRITE ENDFILE LATER FAP11632
PZE 32*K+4+1 (WEFP) FAP11633
BCD 1(RBEP) READ BINARY PERMITTED LATER FAP11634
PZE 32*K+4 (RBEP) FAP11635
BCD 1(WDNP) WRITE DECIMAL LATER FAP11636
PZE 32*K+2+1 (WDNP) FAP11637
BCD 1(RDNP) READ DECIMAL PROHIBITED LATER FAP11638
PZE 32*K+2 (RDNP) FAP11639
BCD 1(WBNP) WRITE BINARY LATER FAP11640
PZE 32*K+1 (WBNP) FAP11641
BCD 1(RBNP) READ BINARY PROHIBITTED LATER FAP11642
PZE 32*K (RBNP) FAP11643
BCD 1(SKDC) SKIP DECIMAL IMMEDIATE FAP11644
PZE 16*K+8+2 (SKDC) FAP11645
BCD 1(SKBC) SKIP BINARY IMMEDIATE FAP11646
PZE 16*K+8 (SKBC) FAP11647
REM BACKSPACE FOR BTT FAP11648
BCD 1(SKDP) SKIP DECIMAL LATER FAP11649
PZE 16*K+2 (SKDP) FAP11650
BCD 1(SKBP) SKIP BINARY LATER FAP11651
PZE 16*K (SKBP) FAP11652
REM BACKSPACE NONE FAP11653
BCD 1(CHKU) DELAY AND CHECK LAST ACTIVITY ON LOG TAPE FAP11654
PZE 8*K (CHKU) FAP11655
BCD 1(TPER) ERROR ON TAPE RECORD FOUND BY COMPILER FAP11656
PZE 4*K (TPER) FAP11657
BCD 1(SNAP) DUMP MEMORY AND PANEL ON SNAP TAPE FAP11658
PZE 1*K (SNAP) FAP11659
LSMTBL SYN *-SYMTBL FAP11660
HEAD 1,2 COMMON TO PASS ONE AND TWO FAP11661
RELLOC BOOL 30 RELLOCATION CONSTANT FOR NCLOAD WNFAP11662
VLRBCD EQU -RELLOC BES STORAGE FOR 72 CHARACTERS WNFAP11663
VLRBOT EQU VLRBCD-72-1 BSS '' '' '' '' WNFAP11664
WBUFF5 EQU VLRBOT-DSKBKL FAP11665
WBUFF4 EQU WBUFF5-DSKBKL FAP11666
WBUFF3 EQU WBUFF4-DSKBKL FAP11667
WBUFF2 EQU WBUFF3-DSKBKL FAP11668
WBUFF1 EQU WBUFF2-DSKBKL FAP11669
RBUFF2 EQU WBUFF1-DSKBKL FAP11670
RBUFF1 EQU RBUFF2-DSKBKL FAP11671
INBUF2 EQU RBUFF1-DSKBKL FAP11672
INBUF1 EQU INBUF2-DSKBKL FAP11673
PBUFF2 EQU INBUF1-27 FAP11674
BBUF22 EQU PBUFF2-22 FAP11675
BBUF21 EQU BBUF22-22 FAP11676
LITTBL EQU BBUF21-LLITBL FAP11677
VECTOR EQU LITTBL-LTVTBL FAP11678
VLRBUF EQU BBUF21 FAP11679
DUPBUF EQU INBUF1 FAP11680
DUPEND EQU DUPBUF+DSKBKL/UPDRCL*UPDRCL FAP11681
* LSTNG FAP11682
CORE EQU RELLOC+SYMSIZ+LSMTBM-VECTOR =0 FAP11683
$BLOCK BCD,0084
END FAP11684
$SWITCH SYSPP1,SYSPP2
$EXECUTE FORTRAN
* ID START
* XEQ
CALL START
END
* FAP
$BLOCK BCD,1344
* SETFIL - SETUP CTSS FILES.
*
* SETFIL - This module sets up the CTSS UFDs and copies the initial
* files from TAPE B2 to the CTSS disk.
*
LBL SETFIL
NOLNK
PMC ON
REM
ENTRY START
EXTERN UPDMFD,ALLOT,EPRINT,SETUSR,BTDC,IODIAG,DTBC
EXTERN BTOC,BUFFER,CHNGUS,CLOSE
EXTERN FERRTN,GETUSR,NBL,OPEN,ATTNAM
EXTERN RDWAIT,PRINT,ATTACH,CHFILE,DELFIL
EXTERN SETAB,TRFILE,USAVE,WRWAIT,LINK,SETIO,WRTOPR
REM
REM MACR0001
REM .... CTSS MACRO INSERT .... MACR0002
REM MACR0003
MMACRO OFF MACR0004
REM MACR0005
REM SUBROUTINE CALL MACRO .... MACR0006
REM MACR0007
CALL MACRON NAME,LIST SUBROUTINE CALL MACRO MACR0008
PMC OFF MACR0009
MTSX NAME,, MAY BE (SUBR,TAG) MACR0010
IRP LIST .. MACR0011
CALL1 LIST,,, ARGUMENT MAY BE (A,T,D) MACR0012
IRP .. MACR0013
CALL END .. MACR0014
REM MACR0015
CALL1 MACRO A,T,D FIRST LEVEL ARGUMENT DECODER MACR0016
IFF 0,...,T TAG OF '...' IS FOR BLK MACR0017
CALL2 A,T,D, NO '...', GO TO NEXT LEVEL MACR0018
IFF 1,...,T '...' SPECIFIED MACR0019
BLK A,,D .. USE MAD BLOCK NOTATION MACR0020
CALL1 END .. MACR0021
REM MACR0022
CALL2 MACRO A,T,D HERE IF NOT BLK ARGUMENT MACR0023
IFF 0,,T IF TAG SPECIFIED, GO ON MACR0024
CALL3 A,T,D, .. MACR0025
IFF 1,,T ELSE, USE 'PAR' (PTH) MACR0026
CALL4 A,D, GO SEE ABOUT DECREMENT FIELD MACR0027
CALL2 END .. MACR0028
REM MACR0029
CALL3 MACRO A,T,D NOT PAR, DECODE FOR EFA, STR MACR0030
IFF 0,,D IF ADDRESS, TAG, DECREMENT ALL GIVEN, MACR0031
STR A,T,D USE STR PREFIX MACR0032
IFF 1,,D NO DECREMENT GIVEN, USE EFA MACR0033
EFA A,T .. MACR0034
CALL3 END .. MACR0035
REM MACR0036
CALL4 MACRO A,D DECODE ARGUMENTS FOR 'PAR' MACR0037
IFF 0,,D IF DECREMENT SPECIFIED, MACR0038
PAR A,,D ASSEMBLE IT MACR0039
IFF 1,,D IF NO DECREMENT, MACR0040
PAR A ASSEMBLE ADDRESS ONLY MACR0041
CALL4 END .. MACR0042
REM MACR0043
MTSX MACRO NAME,TAG GENERATE TSX WITH DEFAULT TAG OF 4 MACR0044
IFF 0,,TAG IF TAG SPECIFIED, MACR0045
TSX NAME,TAG ASSEMBLE WITH TAG GIVEN MACR0046
IFF 1,,TAG .. NO TAG SPECIFIED, USE TAG OF 4 MACR0047
TSX NAME,4 FOR STANDARD SUBROUTINE CALL MACR0048
MTSX END .. MACR0049
REM MACR0050
REM MACR0051
REM SAVE, RESTORE MACROS .... MACR0052
REM MACR0053
SAVE MACRO ID,LIST SAVE BASIC MACHINE CONDITIONS MACR0054
PMC OFF .. NO PRINTING MACR0055
IRP LIST .. E.G. 'AC', 'X1' MACR0056
SAV1 (ID),LIST,, CONTEXT FREE MACROS MACR0057
IRP .. MACR0058
SAVE END .. MACR0059
REM MACR0060
RESTOR MACRON ID,LIST,FLG RESTORE MACRO FOR BASIC MACH. COND. MACR0061
PMC OFF .. MACR0062
IRP LIST USED IN SAME MANNER AS SAVE MACR0063
IFF 1,*,FLG IF '*' SPECIFIED, MACR0064
RST1 (ID),0,LIST,, ASSEMBLES 'AXT' FOR 'X1' ... 'X7' MACR0065
IFF 0,*,FLG IF NO '*' SPECIFIED, MACR0066
RST1 (ID),,LIST,, ASSEMBLES 'LXA' FOR 'X1'...'X7' MACR0067
IRP .. MACR0068
RESTOR END .. MACR0069
REM MACR0070
RETURN MACRO LOC,ID,LIST RESTORE WITH OPTIONAL RETURN MACR0071
PMC OFF .. DON'T PRINT EXPANSION MACR0072
IRP LIST .. ASSEMBLES 'AXT' FOR X1 ... X7, MACR0073
RST1 (ID),0,LIST,, .. DEFINING DESIRED SYMBOL MACR0074
IRP .. MACR0075
IFF 0,,LOC IF RETURN LOCATION GIVEN, MACR0076
TRA LOC USE AS TRANSFER ADDRESS (E.G. (1,4) ) MACR0077
RETURN END .. MACR0078
REM MACR0079
SAV1 MACRO ID,REG,LOC MACRO TO PRODUCE CODE TO SAVE ITEM MACR0080
IFF 1,,LOC IF LOCATION NOT SPECIFIED, MACR0081
SV'REG ID'REG USE NAME OF ITEM WITH PREFIX MACR0082
IFF 0,,LOC IF LOCATION SPECIFIED, MACR0083
SV'REG LOC USE SPECIFIED LOCATION MACR0084
SAV1 END .. MACR0085
REM MACR0086
RST1 MACRO ID,FLAG,REG,LOC MACRO TO RESTORE ITEM MACR0087
IFF 1,,LOC IF LOCATION NOT SPECIFIED MACR0088
LD'REG ID'REG,FLAG, USE REGISTER NAME AND PREFIX MACR0089
IFF 0,,LOC IF SPECIFIED, MACR0090
LD'REG LOC,FLAG, USE IT MACR0091
RST1 END .. MACR0092
REM MACR0093
DFNX MACRO N MACRO TO DEFINE SVX1 ... SVX7 MACR0094
IRP N AS MANY AS DESIRED.. MACR0095
SVXN SVX'N,N THIS BECAUSE OF FAP MACRO COMPILER.. MACR0096
LDXN LDX'N,N .. WHICH WON'T CONCATENATE LOCATION FIELD MACR0097
IRP .. MACR0098
DFNX END .. MACR0099
REM MACR0100
SVXN MACRO NAME,N MACRO TO DEFINE SINGLE SVX(N) OPERATION MACR0101
NAME MACRO LOC DEFINE MACRO MACR0102
SXA LOC,N .. AS SXA LOC,TAG MACR0103
NAME END .. MACR0104
SVXN END .. MACR0105
REM MACR0106
LDXN MACRO NAME,N DEFINE LOAD INDEX MACROS MACR0107
NAME MACRO LOC,FLG .. MACR0108
IFF 1,,FLG IF SECOND SUBFIELD OMITTED, MACR0109
LXA LOC,N ASSEMBLE LXA LOC,TAG MACR0110
IFF 0,,FLG IF NOT OMITTED, (USED BY RETURN) MACR0111
LOC AXT -,N ASSEMBLE AXT **,TAG MACR0112
NAME END .. MACR0113
LDXN END .. MACR0114
REM MACR0115
SVAC OPSYN SLW OPERATIONS FOR SAVE/RESTOR .. AC MACR0116
LDAC OPSYN CAL .. MACR0117
SVMQ OPSYN STQ .. MQ MACR0118
LDMQ OPSYN LDQ .. MACR0119
SVSI OPSYN STI .. SI MACR0120
LDSI OPSYN LDI .. MACR0121
DFNX (1,2,3,4,5,6,7) .. X1 TO X7 MACR0122
REM MACR0123
REM MACR0124
TYPE MACRO MESG,LOC,N TYPE COMMENT TO USER MACR0125
TSX WRFLX,4 .. MACR0126
MZE LOC,,N .. IN SIX-BIT MODE MACR0127
RMT MACR0128
PMC ON MACR0129
LOC BCI MESG MACR0130
PMC OFF MACR0131
N EQU *-LOC MACR0132
RMT MACR0133
TYPE END MACR0134
REM MACR0135
TYPEA MACRO MESG,LOC,N TYPE COMMENT WITHOUT CR MACR0136
TSX WRFLXA,4 .. MACR0137
MZE LOC,,N .. FORCE SIX-BIT MODE MACR0138
RMT MACR0139
PMC ON MACR0140
LOC BCI MESG MACR0141
PMC OFF MACR0142
N EQU *-LOC MACR0143
RMT MACR0144
TYPEA END MACR0145
REM MACR0146
TYPEF MACRO MESG,LOC,N TYPE COMMENT IN FULL MODE MACR0147
TSX WRFLX,4 .. MACR0148
MON LOC,,N .. FORCE 12-BIT MODE MACR0149
RMT MACR0150
PMC ON MACR0151
LOC 12BIT MESG MACR0152
PMC OFF MACR0153
N EQU *-LOC MACR0154
RMT MACR0155
TYPEF END MACR0156
REM MACR0157
REM MACR0158
REM WHENEVER MACRO .... MACR0159
REM MACR0160
WHEN MACRO A,TF,LOC,OP,VAR .. 'A' IS EXPR., 'TF' IS T OR F MACR0161
PMC OFF .. NO NEED TO PRINT JUNK MACR0162
IFF 1,T,TF SEE IF CONDITION 'TRUE' MACR0163
GENIF (A),0,0,(LOC),(OP),(VAR) .. MACR0164
IFF 1,F,TF SEE IF CONDITION 'FALSE' MACR0165
GENIF (A),0,1,(LOC),(OP),(VAR) .. MACR0166
WHEN END .. MACR0167
REM MACR0168
GENIF MACRO IF1,IF2,IF3,LOC,OP,VAR MACR0169
IFF IF1,IF2,IF3 SEE IF CONDITION MET MACR0170
LOC OP VAR YES, ASSEMBLE OPERATION MACR0171
GENIF END .. MACR0172
REM MACR0173
REM MACR0174
REM OVERLAY MACRO .... MACR0175
REM MACR0176
OVLBGN MACRO TO OVERLAY UNNECESSARY CODE MACR0177
PMC OFF .. MACR0178
UNLIST .. MACR0179
OVLORG SET * SET ORIGIN FOR OVLEND MACR0180
OVLBGN END .. MACR0181
REM MACR0182
OVLEND MACRO USED AT END OF SECTION TO BE OVERLAID MACR0183
ORG OVLORG RE-ORIGIN TO PREVIOUS OVLBGN MACR0184
LIST .. AND LIST ASSEMBLY MACR0185
OVLEND END .. MACR0186
REM MACR0187
REM MACR0188
REM BIT MANIPULATION MACROS .... MACR0189
REM MACR0190
DEFINE MACRO OPN DEFINE ALL COMBINATIONS OF MACROS MACR0191
IRP OPN (STL, STZ, NZT, ZET) MACR0192
DFIN1 OPN,OPN'BIT,OPN'BT,OPN'BT1,OPN'BT2 MACR0193
IRP .. MACR0194
DEFINE END .. MACR0195
REM MACR0196
DFIN1 MACRO XXX,XXXBIT,XXXBT,XXXBT1,XXXBT2 MACR0197
XXXBIT MACRON LOC,T,B1,B2 LOADS SENSE INDICATORS FROM 'LOC,T' MACR0198
LDISW LOC,T, .. GET WORD INTO SI MACR0199
XXX'BT B1,B2, OPERATE ON BITS MACR0200
IFF 1,STL,XXX IN CASE OF STLBIT, STZBIT MACR0201
STISW LOC,T, STORE NEW VALUE MACR0202
IFF 1,STZ,XXX .. MACR0203
STISW LOC,T, .. MACR0204
XXXBIT END .. MACR0205
XXXBT MACRON B1,B2 EXAMINE OR MODIFY BINARY SWITCHES IN SI MACR0206
IFF 0,,B1 SEE IF ANY LEFT HALF BITS INVOLVED MACR0207
XXX'BT1 B1,B2, .. IF SO, GO CHECK FOR RIGHT HALF MACR0208
IFF 1,,B1 NO LEFT HALF BITS USED, MACR0209
XXX'R B2 .. TEST OR MODIFY RIGHT HALF BITS MACR0210
XXXBT END .. MACR0211
XXXBT1 MACRO B1,B2 TEST WHETHER FULL WORD OR LEFT HALF MACR0212
IFF 0,,B2 SEE IF ANY RIGHT HALF BITS USED MACR0213
XXX'F =VO18/B1,O18/B2 MACR0214
IFF 1,,B2 IF NO RIGHT HALF BITS INVOLVED, MACR0215
XXX'L B1 .. SET UP LEFT HALF OPERATION MACR0216
XXXBT1 END .. MACR0217
DFIN1 END .. MACR0218
REM MACR0219
DEFINE (STL,STZ,NZT,ZET) DEFINE ALL MACROS MACR0220
REM MACR0221
STLR OPSYN SIR OPERATION CODES FOR BIT MACROS MACR0222
STLL OPSYN SIL .. MACR0223
STLF OPSYN OSI .. MACR0224
STZR OPSYN RIR .. MACR0225
STZL OPSYN RIL .. MACR0226
STZF OPSYN RIS .. MACR0227
NZTR OPSYN RNT .. MACR0228
NZTL OPSYN LNT .. MACR0229
NZTF OPSYN ONT .. MACR0230
ZETR OPSYN RFT .. MACR0231
ZETL OPSYN LFT .. MACR0232
ZETF OPSYN OFT .. MACR0233
MMACRO ON MACR0234
REM MACR0235
SYMREF OFF EQU00001
REM EQU00002
REM ... CTSS EQUIVALENCE PACKAGE ... EQU00003
REM EQU00004
N EQU 40 NO. OF CONSOLES THAT MAY BE CONNECTED EQU00005
A EQU 1 FLAG FOR MEMORY UNIT A EQU00006
B EQU 2 FLAG FOR MEMORY UNIT B EQU00007
P EQU 4 FLAG FOR PROTECTED TRANSMISSION EQU00008
QUITL EQU 3 MAX. USER BREAK LEVEL EQU00009
LCBUF EQU 20 LENGTH OF USER COMMAND BUFFER EQU00010
MAXLV EQU 10 MAX. NO. OF LEVELS IN SCHEDULING QUEUES EQU00011
CDEPTH EQU 5 MAX. NO. OF SUB-COMMANDS EQU00012
CLNGTH EQU LCBUF MAX. LENGTH OF SINGLE SUB-COMMAND EQU00013
NWDSPT EQU 432 NO. OF WORDS PER DISK RECORD EQU00014
BASE EQU 0 STARTING LOCATION FOR ALL CTSS USERS EQU00015
WDSLIN EQU 14 NO. OF WORDS PER FULL TYPED LINE EQU00016
GROUPS EQU 35 MAX. NO. OF PARTY GROUPS EQU00017
TSSMAX EQU 20 2*NUMBER OF SLOTS FOR TSSFIL'S EQU00018
ACTFIL EQU 10 MAX. NO. OF ACTIVE FILES FOR USER EQU00019
AFSCON EQU 26 ACTIVE FILE STATUS TABLE LENGTH CONSTANT EQU00020
AFSENL EQU 22 ACTIVE FILE STATUS TABLE LENGTH PER FILE EQU00021
AFS1LN EQU AFSCON+1*AFSENL FILE STATUS TABLE FOR CTSS EQU00022
AFS2LN EQU AFSCON+ACTFIL*AFSENL FILE STATUS TABLE FOR USER EQU00023
Q1U1LN EQU 1+9*4 LENGTH OF QUEUE FOR DISK/DRUM FOR CTSS EQU00024
Q1U2LN EQU 1+9*7 LENGTH OF QUEUE FOR DISK/DRUM FOR USER EQU00025
Q3U1LN EQU 0 LENGTH OF QUEUE FOR TAPE FOR CTSS EQU00026
Q3U2LN EQU 1+8*5 LENGTH OF QUEUE FOR TAPE FOR USER EQU00027
FSBENL EQU 8 FILE SAVE BLOCK ENTRY LENGTH PER FILE EQU00028
FSBLKL EQU FSBENL*ACTFIL FILE STATUS BLOCK LENGTH FOR USAVE EQU00029
OLDTOP BOOL 77461 NORMAL END OF COMMON PACKAGE EQU00030
NEWTOP BOOL 77777 DESIRED END OF COMMON PACKAGE EQU00031
COMRLC EQU OLDTOP-NEWTOP COMMON RELOCATION EQU00032
REM EQU00033
REM BLOCK EQUIVALENCES FOR QLOAD VARIABLES EQU00034
REM EQU00035
Q.CUR EQU 0 CURRENT VALUE OF PARAMETER EQU00036
Q.MAX EQU 1 MAXIMUM VALUE EQU00037
Q.MIN EQU 2 MINIMUM VALUE (PLATEAU FOR MXUSRS) EQU00038
Q.UPDT EQU 3 TIME INCREMENT BEFORE INCREASING EQU00039
Q.DNDT EQU 4 TIME INCREMENT BEFORE DECREASING EQU00040
Q.UPTM EQU 5 TOTTIM TO INCREASE PARAMETER EQU00041
Q.DNTM EQU 6 TOTTIM TO DECREASE IT EQU00042
Q.UPVR EQU 7 AMOUNT TO INCREMENT PARAMETER EQU00043
Q.DNVR EQU 8 AMOUNT TO DECREMENT PARAMETER EQU00044
Q.TBL EQU 9 SIZE OF STANDARD PARAMATER BLOCK EQU00045
REM EQU00046
REM BIT EQUIVALENCES FOR USER STATUS SWITCHES IN THE EQU00047
REM ARRAY 'USWICH'. THESE ARE ALTERABLE AT TRAP TIME. EQU00048
REM EQU00049
REM .. RIGHT HALF EQUIVALENCES EQU00050
REM EQU00051
NOTIME BOOL 1 1 IF USER OUT OF TIME EQU00052
HUNGBT BOOL 2 1 IF USER DATA PHONE HUNG UP EQU00053
MESGBT BOOL 4 1 IF OPERATOR MESSAGE TO BE SENT EQU00054
USRBIT BOOL 10 1 IF USER HAS BEEN INITIALIZED AT DIALUP EQU00055
INPBIT BOOL 20 1 IF USER INPUT BUFFERS FULL EQU00056
REM EQU00057
NTIMCD BOOL 700000 THREE BIT NOTIME CODE (0-7) EQU00058
REM .. 0 = UNSPECIFIED EQU00059
REM .. 1 = SYSTEM COMEDOWN EQU00060
REM .. 2 = ALLOTTED TIME EXCEEDED EQU00061
REM .. 3 = INACTIVE TIME EXCEEDED EQU00062
REM .. 4 = FIB ESTTIM EXCEEDED EQU00063
REM .. 5 = USER HUNG UP PHONE EQU00064
REM .. 6 = QLOAD KILL EQU00065
REM .. 7 = OTHER (LOGIN, ETC.) EQU00066
REM EQU00067
REM .. LEFT HALF EQUIVALENCES EQU00068
REM EQU00069
UCOMBT BOOL 100 1 IF CURRENT COMMAND INITIATED BY USER EQU00070
UCHNBT BOOL 200 1 IF USER COMMAND SET VIA CHNCOM EQU00071
UCMLBT BOOL 400 1 IF USER TYPED COMMAND LINE EQU00072
UCBFBT BOOL 1000 1 IF COMMAND BUFFER SET UP EQU00073
INTBIT BOOL 2000 1 IF USER HIT INTERRUPT EQU00074
LOGTBT BOOL 10000 1 IF USER WAITING FOR LOGOUT EQU00075
REM EQU00076
REM BIT EQUIVALENCES FOR USER OPTION BITS FOUND IN EQU00077
REM 'USROPT'. THESE MUST NEVER BE SET AT TRAP TIME EQU00078
REM EQU00079
REM .. RIGHT HALF EQUIVALENCES EQU00080
REM EQU00081
UFLBIT BOOL 1 1 IF TO LOAD COMMAND FROM USER UFD FIRST EQU00082
UFLBT BOOL 2 1 IF TO LOAD FROM OTHER UFD IF NOT FOUND EQU00083
RSTFBT BOOL 4 1 IF FILES TO BE RESET ON DISK COMMAND EQU00084
ENBBIT BOOL 10 1 IF USER SUBSYSTEM ENABLED EQU00085
INHBIT BOOL 20 1 IF SUBSYSTEM INHIBITED FOR END OF COMMANDEQU00086
SYSBIT BOOL 40 1 IF CURRENT USER PROGRAM IS SUBSYSTEM EQU00087
SAVEBT BOOL 100 1 IF SUBSYSTEM SAVE ENABLED EQU00088
DIALBT BOOL 200 1 IF USER 'DIALABLE' EQU00089
REM EQU00090
REM .. LEFT HALF EQUIVALENCES EQU00091
REM EQU00092
CLKBIT BOOL 100 1 IF USER SIMULATED INTERVAL TIMER ON EQU00093
NQTBIT BOOL 200 1 IF USER MAY NOT 'QUIT' CURRENT COMMAND EQU00094
NINTBT BOOL 400 1 IF USER NOT TO BE INTERRUPTED EQU00095
NKILBT BOOL 1000 1 IF USER IMMUNE TO AUTO-LOGOUT EQU00096
XEQBIT BOOL 2000 1 IF CURRENT USER PROGRAM EXECUTE-ONLY EQU00097
REM EQU00098
REM BIT DEFINITIONS FOR TYPEWRITER MODE SWITCHES. EQU00099
REM THESE ARE COMMON TO BOTH USWICH AND USROPT EQU00100
REM EQU00101
FULBIT BOOL 1 1 IF USER IN 12-BIT MODE EQU00102
NCVBIT BOOL 2 1 IF USER IN NO-CONVERT MODE EQU00103
NBKBIT BOOL 4 1 IF USER IN NO-BREAK MODE EQU00104
GPHBIT BOOL 10 1 IF USER IN GRAPHIC INPUT MODE EQU00105
REM EQU00106
TPWRSW BOOL 77 MASK FOR TYPEWRITER SWITCHES EQU00107
REM EQU00108
REM BIT EQUIVALENCES FOR SUBSYSTEM STATUS SWITCHES EQU00109
REM EQU00110
SB.CMD BOOL 1 1 IF SUBSYSTEM ENABLED FOR NEW COMMAND EQU00111
SB.TSX BOOL 2 1 IF SUBSYSTEM ENABLED FOR DEAD/DORMNT CALLEQU00112
SB.CHN BOOL 4 1 IF SUBSYSTEM ENABLED FOR END OF CHAIN EQU00113
SB.ERR BOOL 10 1 IF SUBSYSTEM ENABLED FOR ERROR EQU00114
REM EQU00115
REM BIT EQUIVALENCES FOR COMMAND TYPE SPECIFICATION EQU00116
REM WITHIN THE COMMAND PROCESSOR EQU00117
REM EQU00118
.ATR BOOL 1 1 IF COMMAND IS A-CORE TRANSFER EQU00119
.DSK BOOL 2 1 IF CORE IMAGE TO BE LOADED FROM DISK EQU00120
.SYS BOOL 4 1 IF COMMAND MAY BE LOADED FROM SYSTEM ONLYEQU00121
.CPY BOOL 10 1 IF COMMAND BUFFER TO BE COPIED EQU00122
.MEM BOOL 20 1 IF USER CORE IMAGE REQUIRED EQU00123
.USR BOOL 40 1 IF COMMAND MAY BE ISSUED BY USER EQU00124
.LGN BOOL 100 1 IF COMMAND USABLE WHEN LOGGED IN EQU00125
.LGT BOOL 200 1 IF COMMAND USABLE WHEN LOGGED OUT EQU00126
.LOG BOOL 400 1 IF COMMAND IS LOGOUT, OTOLOG, ETC. EQU00127
.UFL BOOL 1000 1 IF COMMAND TO BE LOADED FROM USER UFD EQU00128
.SAV BOOL 2000 1 IF USER CORE IMAGE TO BE PRESERVED EQU00129
.CLC BOOL 4000 1 IF USER COMMAND COUNTER PRESERVED EQU00130
.SUB BOOL 10000 1 IF COMMAND IMMUNE TO SUBSYS TRAP EQU00131
REM EQU00132
REM BIT EQUIVALENCES FOR USER DUMP AND RESTORE OPTIONS EQU00133
REM EQU00134
D.DSK BOOL 1 ACTIVE FILE STATUS EQU00135
D.OPT BOOL 2 USER OPTIONS EQU00136
D.DIR BOOL 4 DIRECTORY SWITCHING EQU00137
D.TSF BOOL 10 TSSFIL SWITCHING EQU00138
D.COM BOOL 20 COMMAND BUFFERS EQU00139
D.SAV BOOL 40 MACH. COND., CORE IMAGE EQU00140
REM EQU00141
L.DSK BOOL 1 ACTIVE FILE STATUS EQU00142
L.OPT BOOL 2 USER OPTIONS EQU00143
L.DIR BOOL 4 DIRECTORY SWITCHING EQU00144
L.TSF BOOL 10 TSSFIL SWITCHING EQU00145
L.COM BOOL 20 COMMAND BUFFERS EQU00146
L.CPU BOOL 40 MACHINE CONDITIONS EQU00147
L.MEM BOOL 100 CORE IMAGE EQU00148
REM EQU00149
REM BIT EQUIVALENCES FOR USER RESTRICTION CODE IN EQU00150
REM 'RCODE' ARRAY AND 'URCODE' EQU00151
REM EQU00152
REM .. RIGHT HALF EQUIVALENCES EQU00153
REM EQU00154
RCOMBT BOOL 1 1 IF USER MAY USE COMMON FILES EQU00155
RCALBT BOOL 2 1 IF USER MAY MAKE PRIVILEGED FILE CALLS EQU00156
RPROBT BOOL 4 1 IF USER MAY MODIFY 'P' FILE OF OTHER USEREQU00157
RPRVBT BOOL 10 1 IF USER MAY READ 'V' FILE OF OTHER USER EQU00158
RPATBT BOOL 20 1 IF USER MAY PATCH THE SUPERVISOR EQU00159
RKLDBT BOOL 40 1 IF USER MAY USE THE ESL DISPLAY (KLUDGE) EQU00160
R636BT BOOL 100 1 IF USER MAY USE THE 636 TAPE CALLS EQU00161
RDSKBT BOOL 200 1 IF USER MAY NOT USE DISK LOADED COMMANDS EQU00162
RTSSBT BOOL 400 1 IF USER MAY NOT ALTER FILE DIRECTORY EQU00163
RSYSBT BOOL 1000 1 IF USER MAY ALTER SUBSYSTEM STATUS EQU00164
ROPRBT BOOL 2000 1 IF USER MAY USE OPERATOR FUNCTIONS EQU00165
REM EQU00166
REM .. LEFT HALF EQUIVALENCES EQU00167
REM EQU00168
UBACBT BOOL 1 USER IS BACKGROUND SYSTEM EQU00169
UFORBT BOOL 2 USER IS FOREGROUND EQU00170
UFIBBT BOOL 4 USER IS FIB EQU00171
UDEMBT BOOL 10 USER IS INCREMENTAL DUMPER (DAEMON) EQU00172
UPRCBT BOOL 20 USER IS PRIVILEGED COMMAND EQU00173
REM EQU00174
NBACBT BOOL 1000 USER IS NOT BACKGROUND SYSTEM EQU00175
NFORBT BOOL 2000 USER IS NOT FOREGROUND EQU00176
NFIBBT BOOL 4000 USER IS NOT FIB EQU00177
NDEMBT BOOL 10000 USER IS NOT INCREMENTAL DUMPER EQU00178
NPRCBT BOOL 20000 USER IS NOT PRIVILEGED COMMAND EQU00179
REM EQU00180
REM EQU00181
REM EQU00182
MMACRO OFF EQU00183
REM EQU00184
COMNAM MACRO NAME TO GENERATE CTSS MODULE NAMES EQU00185
BCI 1,NAME'8A .. MACRO MUST BE CORRECTED EVERY TIME EQU00186
COMNAM END .. CTSS IS REASSEMBLED... EQU00187
REM EQU00188
CTSSID MACRO CTSS FILE DIRECTORY NAME EQU00189
BCI 2, M1416CMFL02 EQU00190
CTSSID END EQU00191
REM EQU00192
TSSFID MACRO SYSTEM TSSFIL NAME EQU00193
BCI 2, M1416CMFL04 EQU00194
TSSFID END EQU00195
REM EQU00196
SCHEDL MACRO EVENT,USER,ARG CALL SCHEDULING ALGORITHM EQU00197
TSX SCHEDL,4 .. EQU00198
PAR EVENT .. EQU00199
PAR USER .. EQU00200
PAR ARG .. EQU00201
SCHEDL END EQU00202
REM EQU00203
SETAB MACRO A,B,C SET CORE SWITCHES IN FILE SYSTEM EQU00204
TSX SETAB,4 .. EQU00205
IFF 1,*,A .. EQU00206
PAR M0 .. EQU00207
IFF 0,*,A .. EQU00208
PAR A .. EQU00209
IFF 1,*,B .. EQU00210
PAR M0 .. EQU00211
IFF 0,*,B .. EQU00212
PAR B .. EQU00213
IFF 1,*,C .. EQU00214
PAR M0 .. EQU00215
IFF 0,*,C .. EQU00216
PAR C .. EQU00217
SETAB END EQU00218
REM EQU00219
TYPEX MACRO NAME,LOC,N,USERNO,OPTION,MODE EQU00220
TSX NAME,4 .. EQU00221
IFF MODE,,, .. EQU00222
MZE LOC,,N .. EQU00223
IFF MODE,0,, .. EQU00224
PZE LOC,,N .. EQU00225
PZE USERNO,,OPTION EQU00226
TYPEX END EQU00227
REM EQU00228
TYPE MACRO MESG,LOC,N TYPE COMMENT TO CURRENT USER EQU00229
TYPEX WRFLX,LOC,N,USER,.F.,0 EQU00230
RMT EQU00231
PMC ON EQU00232
LOC BCI MESG EQU00233
PMC OFF EQU00234
N EQU *-LOC EQU00235
RMT EQU00236
TYPE END EQU00237
REM EQU00238
TYPEA MACRO MESG,LOC,N TYPE COMMENT TO USER W/O C.R. EQU00239
TYPEX WRFLXA,LOC,N,USER,.F.,0 EQU00240
RMT EQU00241
PMC ON EQU00242
LOC BCI MESG EQU00243
PMC OFF EQU00244
N EQU *-LOC EQU00245
RMT EQU00246
TYPEA END EQU00247
REM EQU00248
TYPEF MACRO MESG,LOC,N TYPE COMMENT IN FULL MODE EQU00249
TYPEX WRFLX,LOC,N,USER,.F.,1 EQU00250
RMT EQU00251
PMC ON EQU00252
LOC 12BIT MESG EQU00253
PMC OFF EQU00254
N EQU *-LOC EQU00255
RMT EQU00256
TYPEF END EQU00257
REM EQU00258
WRTYPE MACRO L,LOC,N,USERNO,MODE TYPE LINE ON USER CONSOLE EQU00259
TSX $.WRFX'L,4 .. EQU00260
IFF MODE,,, .. EQU00261
MZE LOC,,N .. EQU00262
IFF MODE,0,, .. EQU00263
PZE LOC,,N .. EQU00264
PZE USERNO .. EQU00265
TRA *+1 .. NULL FULL RETURN EQU00266
WRTYPE END EQU00267
REM EQU00268
WTYPE MACRO USERNO,MESG,LOC,N TYPE COMMENT TO FOREGROUND USER EQU00269
WRTYPE ,LOC,N,USERNO,0 EQU00270
RMT EQU00271
PMC ON EQU00272
LOC BCI MESG EQU00273
PMC OFF EQU00274
N EQU *-LOC EQU00275
RMT EQU00276
WTYPE END EQU00277
REM EQU00278
WTYPEA MACRO USERNO,MESG,LOC,N TYPE COMMENT W/O C.R. EQU00279
WRTYPE A,LOC,N,USERNO,0 EQU00280
RMT EQU00281
PMC ON EQU00282
LOC BCI MESG EQU00283
PMC OFF EQU00284
N EQU *-LOC EQU00285
RMT EQU00286
WTYPEA END EQU00287
REM EQU00288
WTYPEF MACRO USERNO,MESG,LOC,N TYPE COMMENT IN FULL MODE EQU00289
WRTYPE ,LOC,N,USERNO,1 EQU00290
RMT EQU00291
PMC ON EQU00292
LOC 12BIT MESG EQU00293
PMC OFF EQU00294
N EQU *-LOC EQU00295
RMT EQU00296
WTYPEF END EQU00297
REM EQU00298
.I. EQU 0 CODE FOR IGNORE OPTION IN TYPEX EQU00299
.F. EQU 1 CODE FOR FORCE OPTION IN TYPEX EQU00300
REM EQU00301
TEMPS MACRO SYMBOL GENERATE TEPORARY STORAGE EQU00302
IRP SYMBOL .. EQU00303
SYMBOL PZE 0 .. EQU00304
IRP .. EQU00305
TEMPS END EQU00306
REM EQU00307
LDISW MACRO LOC,T LOAD USER SWITCHES EQU00308
IFF 1,,LOC .. EQU00309
LDI USWICH,T .. EQU00310
IFF 0,,LOC .. EQU00311
LDI LOC,T .. EQU00312
LDISW END EQU00313
REM EQU00314
STISW MACRO LOC,T STORE USER SWITCHES EQU00315
IFF 1,,LOC .. EQU00316
STI USWICH,T .. EQU00317
IFF 0,,LOC .. EQU00318
STI LOC,T .. EQU00319
STISW END EQU00320
REM EQU00321
MMACRO ON EQU00322
REM EQU00323
SYMREF OFF EQU00324
SYMREF OFF COMM0001
REM .... CTSS COMMON STORAGE .... COMM0003
REM COMM0004
COMMON COMRLC RELOCATE COMMON TO TOP OF CORE COMM0005
REM COMM0006
ENBWD COMMON 1 COMMON TRAP ENABLE WORD COMM0007
REM COMM0008
REM TABLES SET BY SCHEDL. COMM0009
REM COMM0010
STATUS COMBSS N+1 CURRENT USER STATUS (0-6) COMM0011
LENGTH COMBSS N+1 LENGTH OF USER PROGRAM COMM0012
LEVEL COMBSS N+1 USER PRIORITY LEVEL (0...MAXLVL) COMM0013
TIMLEV COMBSS N+1 ELAPSED TIME RUN AT CURRENT LEVEL COMM0014
WATTIM COMBSS N+1 TIME USER BEGAN WAITING, -1= NOT WAITING COMM0015
STRTIM COMBSS N+1 TIME USER ENTERED WORKING STATUS COMM0016
WRKTIM COMBSS N+1 TIME USER HAS RUN SINCE STRTIM COMM0017
QLIST COMBSS N+1+MAXLV+1 QUEUE POSITION LIST OF WORKING USERS COMM0018
REM COMM0019
REM TABLES SET BY INITILIZATION PROGRAM COMM0020
REM COMM0021
GRPTBL COMBSS GROUPS+1 PARTY GROUP TABLE COMM0022
REM COMM0023
REM TABLES SET BY LOGIN, UPDATED BY TIME ACC. COMM0024
REM COMM0025
TAU1 COMBSS N+1 USER TIME ALLOTTED BY SHIFT COMM0026
TAU2 COMBSS N+1 .. COMM0027
TAU3 COMBSS N+1 .. COMM0028
TAU4 COMBSS N+1 .. WEEKEND COMM0029
TAU5 COMBSS N+1 FIB TIME COMM0030
UTIME COMBSS N+1 TIME USER HAS USED SINCE LOGIN COMM0031
REM COMM0032
REM TABLES SET BY LOGIN COMM0033
REM COMM0034
ITIME COMBSS N+1 TIME USER LOGGED IN COMM0035
PROBN COMBSS N+1 USER PROBLEM NO. COMM0036
PROGN COMBSS N+1 USER PROGRAMMER NO. COMM0037
UNAME COMBSS N+1 USER NAME COMM0038
UFDNM COMBSS N+1 USER HOME FILE DIRECTORY COMM0039
SUBNAM COMBSS N+1 USER SUBSYSTEM NAME COMM0040
SUBSWS COMBSS N+1 USER SUBSYSTEM STATUS BITS COMM0041
GRPNO. COMBSS N+1 USER GROUP NUMBER COMM0042
RCODE COMBSS N+1 USER RESTRICTION CODE COMM0043
USROPT COMBSS N+1 USER OPTIONS COMM0044
REM COMM0045
REM OTHER USER TABLES COMM0046
REM COMM0047
COMBSS N+1 SPARE USER ARRAY..... COMM0048
UNITID COMBSS N+1 USER CONSOLE IDENT. CODE COMM0049
COMMND COMBSS N+1 NAME OF USER COMMAND COMM0050
USWICH COMBSS N+1 USER BINARY SWITCHES COMM0051
UARRAY COMBSS N+1 USER-SETTABLE ARRAY COMM0052
IOD COMBSS N+1 TOTAL WORD COUNT OF USER DUMP COMM0053
UCLOCK COMBSS N+1 TIME CURRENT USER COMMAND HAS RUN COMM0054
UCHARG COMBSS N+1 .. SAME AS UCLOCK BUT INCLUDES SWAP TIME COMM0055
AWAKE COMBSS N+1 TIME TO RESTART USER (ALARM CLOCK) COMM0056
TIMINC COMBSS N+1 USER INTERVAL TIMER INCREMENT COMM0057
ADOPT COMBSS N+1 ADOPT ARRAY EXPLAINED IN PMTA MODULE COMM0058
OKPROB COMBSS N+1 .. COMM0059
OKPROG COMBSS N+1 .. COMM0060
PB COMBSS N+1 PB(0)=PERCENT OF TOTTIM TO RUN BACKGROUND COMM0061
REM PB(1)-PB(N)=PERCENTAGE TO MEET WHEN USER IN WORKING STAT COMM0062
REM COMM0063
REM MISCELLANEOUS CONSTANTS COMM0064
REM COMM0065
Q0 COMMON 1 LITERAL 0 COMM0066
Q1 COMMON 1 LITERAL 1 COMM0067
Q2 COMMON 1 LITERAL 2 COMM0068
Q3 COMMON 1 LITERAL 3 COMM0069
Q4 COMMON 1 LITERAL 4 COMM0070
Q5 COMMON 1 LITERAL 5 COMM0071
Q6 COMMON 1 LITERAL 6 COMM0072
Q7 COMMON 1 LITERAL 7 COMM0073
Q8 COMMON 1 LITERAL 8 COMM0074
Q9 COMMON 1 LITERAL 9 COMM0075
Q10 COMMON 1 LITERAL 10 COMM0076
Q11 COMMON 1 LITERAL 11 COMM0077
Q12 COMMON 1 LITERAL 12 COMM0078
M0 COMMON 1 LITERAL -0 COMM0079
LA COMMON 1 FLAG FOR TRANSMISSION IN A-CORE COMM0080
LB COMMON 1 FLAG FOR TRANSMISSION IN B-CORE COMM0081
AMASK COMMON 1 OCT 000000077777 COMM0082
TMASK COMMON 1 OCT 000000700000 COMM0083
DMASK COMMON 1 OCT 077777000000 COMM0084
PMASK COMMON 1 OCT 700000000000 COMM0085
RMASK COMMON 1 OCT 000000777777 COMM0086
LMASK COMMON 1 OCT 777777000000 COMM0087
NULLS COMMON 1 OCT 575757575757 COMM0088
BLANKS COMMON 1 OCT 606060606060 COMM0089
FENCE COMMON 1 OCT 777777777777 COMM0090
CMFL00 COMMON 1 BCI 1,CMFL00 COMM0091
TSSDC. COMMON 1 BCI 1,TSSDC. COMM0092
SAVED COMMON 1 BCI 1, SAVED COMM0093
FORCOD COMMON 1 BASIC RESTRICTION CODE FOR FOREGROUND COMM0094
BKRPRV COMMON 1 PRIVILEGED RESTRICTION CODE FOR BACKGROUND COMM0095
TSRCOD COMMON 1 SUPERVISOR RESTRICTION CODE COMM0096
CTSSID COMBSS 2 SYSTEM FILE DIRECTORY NAME COMM0097
REM COMM0098
REM VARIABLES SET AND CHANGED BY SCHEDL. COMM0099
REM COMM0100
CURUSR COMMON 1 CURRENT USER NO. (RUNNING OR SWAPPING) COMM0101
OLDUSR COMMON 1 OLD USER WHEN SWAP NON-ZERO COMM0102
NEWUSR COMMON 1 NEW USER WHEN SWAP NON-ZERO COMM0103
PAYUSR COMMON 1 USER BEING CHARGED FOR TIME COMM0104
SYSTIM COMMON 1 TIME SYSTEM WAS INITIALIZED COMM0105
SYSDAT COMMON 1 DATE SYSTEM WAS INITIALIZED COMM0106
BEGTIM COMMON 1 TIME CURUSR BEGAN RUNNING COMM0107
MAXTIM COMMON 1 CURUSR RUNS AT SAME LEVEL UNTIL MAXTIM COMM0108
PAYTIM COMMON 1 LAST TIME A USER WAS CHARGED FOR TIME COMM0109
LEVTIM COMMON 1 LAST TIME CURUSR RAN AT HIS CUR. LEVEL COMM0110
SWAP COMMON 1 NON-ZERO MEANS RUN NEWUSR ASAP COMM0111
MAXLVL COMMON 1 MAX. PRIORITY LEVEL (0...MAXLVL) COMM0112
MINLVL COMMON 1 THE MINIMUM LEVEL ALLOWED COMM0113
FULLVL COMMON 1 INITIAL LEVEL FOR HALF TO FULL CORE USER COMM0114
EMPLVL COMMON 1 INITIAL LEVEL EMPTY CORE USER COMM0115
FULLEN COMMON 1 LENGTH FOR ENTRY AT LEVEL 'FULLVL' COMM0116
QNTWAT COMMON 1 QUANTUM WAITING TIME BEFORE LEVEL CHANGE COMM0117
LEVINC COMMON 1 INCREASE IN PRIORITY ON EACH INTERACTION COMM0118
INACTV COMMON 1 MAX. TIME(60THS) INACTIVE BEFORE LOGOUT COMM0119
HANGUP COMMON 1 MAX TIME(60THS) BEFORE INACTIVE LINE HUNGUPCOMM0120
SHIFT COMMON 1 CURRENT SHIFT NUMBER COMM0121
REM COMM0122
REM VARIABLES SET AND CHANGED BY QLOAD COMM0123
REM COMM0124
AVQLEN COMMON 1 AVERAGE QUEUE LENGTH (FLOATING PT.) COMM0125
QLEN COMMON 1 NUMBER OF USERS IN QUEUES COMM0126
MXUSRS COMBSS Q.TBL MAXIMUM NUMBER OF USERS ALLOWED ON COMM0127
QUANTM COMBSS Q.TBL MAX. RUNNING TIME AT LEVEL 0 COMM0128
QMAX COMMON 1 QUEUE THRESHOLD TO CUT MXUSRS COMM0129
QMIN COMMON 1 QUEUE THRESHOLD TO RAISE MXUSRS COMM0130
QKILL COMMON 1 QUEUE THRESHOLD TO KILL STANDBY USER COMM0131
KILLDT COMMON 1 TIME INTERVAL BEFORE KILL COMM0132
KILLTM COMMON 1 TOTTIM TO KILL LOSER COMM0133
KILLSW COMBSS 2 NON-ZERO IF KILLING ALLOWED COMM0134
QLOSER COMMON 1 LAST USER KILLED,,NO. KILLS COMM0135
SWPMAX COMMON 1 SWAP TIME THRESHOLD TO RAISE QUANTM COMM0136
SWPMIN COMMON 1 SWAP TIME THRESHOLD TO CUT QUANTM COMM0137
REM COMM0138
REM RESERVED VARIABLES FOR DEBUGGING, ETC. COMM0139
REM COMM0140
DUMMY0 COMMON 1 .. COMM0141
DUMMY1 COMMON 1 .. COMM0142
DUMMY2 COMMON 1 .. COMM0143
DUMMY3 COMMON 1 .. COMM0144
DUMMY4 COMMON 1 .. COMM0145
REM COMM0146
TRPTIM COMMON 1 TOTAL TIME SPENT PROCESSING TRAPS COMM0147
TRPPCT COMMON 1 INTEGRATED AVERAGE OF SAME COMM0148
REM COMM0149
REM OPERATOR MESSAGE AND ONLINE PRINTER STATUS COMM0150
REM COMM0151
RCLKSW COMMON 1 NON-ZERO IF CHRONOLOG CLOCK NOT FUNCTIONINGCOMM0152
PRDOWN COMMON 1 NON-ZERO IF PRINTER NOT FUNCTIONING COMM0153
SYSMSG COMMON 1 LINE NUMBER OF SYSTEM OUTPUT CONSOLE COMM0154
REM COMM0155
REM VARIABLES SET BY LOGIN COMM0156
REM COMM0157
STNBY COMMON 1 NO. STANDBY USER IN SYSTEM COMM0158
NUSERS COMMON 1 NO. OF FOREGROUND USERS LOGGED IN COMM0159
FIBRUN COMMON 1 SET BY LOGOUT..INDIC. TO RUN FIB COMM0160
FIBPTR COMMON 1 POINTS TO CURRENT FIB USER IN FILE COMM0161
ESTTIM COMMON 1 TIME LIMIT FOR CURRENT FIB JOB COMM0162
REM COMM0163
REM TRAP TIME SAVE AREA COMM0164
REM COMM0165
ENBSW COMMON 1 ZERO IF MACHINE STATUS SAVED AT TRAP COMM0166
(SLTS) COMMON 1 .. SENSE LIGHTS, MQ OVERFLOW COMM0167
(DVCK) COMMON 1 .. DIVIDE CHECK STATUS COMM0168
(IOCK) COMMON 1 .. I/O CHECK STATUS (NOT USED) COMM0169
(FLMD) COMMON 1 .. FLOATING TRAP MODE COMM0170
(MTMD) COMMON 1 .. MULTIPLE TAG MODE COMM0171
(OV) COMMON 1 .. AC OVERFLOW COMM0172
(SI) COMMON 1 .. SENSE INDICATORS COMM0173
(MQ) COMMON 1 .. MQ REGISTER COMM0174
(SQ) COMMON 1 .. SIGN AND Q BITS COMM0175
(LAC) COMMON 1 .. ACCUMULATOR P, 1-35 COMM0176
(IR0) COMMON 1 .. INDEX REGISTERS COMM0177
(IR1) COMMON 1 .. COMM0178
(IR2) COMMON 1 .. COMM0179
(IR3) COMMON 1 .. COMM0180
(IR4) COMMON 1 .. COMM0181
(IR5) COMMON 1 .. COMM0182
(IR6) COMMON 1 .. COMM0183
(IR7) COMMON 1 .. COMM0184
(ILC) COMMON 1 .. LOCATION COUNTER, MEMORY FLAGS COMM0185
REM COMM0186
REM OTHER VARIABLES COMM0187
REM COMM0188
USER COMMON 1 CURRENT USER NO. COMM0189
DATE COMMON 1 TODAYS DATE BCI 1,MM/DD COMM0190
DATEYR COMMON 1 TODAYS DATE BCI 1,MMDDYY COMM0191
SYSNAM COMMON 1 SYSTEM NAME COMM0192
TIMNOW COMMON 1 TIME OF DAY IN BINARY COMM0193
SWPSW COMMON 1 NON-ZERO WHEN SWAPPING USERS COMM0194
COMSW COMMON 1 NON-ZERO WHEN LOADING COMMAND COMM0195
DSKSW COMMON 1 NON-ZERO WHEN SWAPPING FROM DISK COMM0196
TOTTIM COMMON 1 TOTAL TIME SYSTEM HAS RUN COMM0197
BKGTIM COMMON 1 TOTAL TIME BACKGROUND HAS RUN COMM0198
BKGPCT COMMON 1 PERCENTAGE BACKGROUND HAS RUN COMM0199
SWPTIM COMMON 1 TOTAL TIME SPENT SWAPPING COMM0200
SWPPCT COMMON 1 PERCENTAGE SWAP TIME COMM0201
DSKTIM COMMON 1 TOTAL TIME SWAPPING FROM DISK COMM0202
DSKPCT COMMON 1 PERCENTAGE DISK SWAP TIME COMM0203
PRMTIM COMMON 1 TOTAL TIME SWAPPING WHEN OLDUSR PREEMPTED COMM0204
PRMPCT COMMON 1 PERCENTAGE SWAP TIME PREEMPTING COMM0205
COMTIM COMMON 1 TOTAL TIME SPENT LOADING COMMANDS COMM0206
COMPCT COMMON 1 PERCENTAGE COMMAND LOAD TIME COMM0207
DISKSW COMMON 1 NON-ZERO IF DISK SWAP FORCED COMM0208
USRWAT COMMON 1 USER DISK WAIT TIME IN CYCLES COMM0209
SWPWAT COMMON 1 SWAP DISK/DRUM WAIT TIME IN CYCLES COMM0210
AUTOND COMMON 1 NON-ZERO TO LOGOUT ALL FOREGROUND USERS COMM0211
CLKTIM COMMON 1 NO. OF CLOCK INCREMENTS BEFORE CLOCK TRAP COMM0212
RCLKDT COMMON 1 TIME INTERVAL TO READ THE CHRONOLOG CLOCK COMM0213
NWORDS COMMON 1 NO. OF WORDS CURRENT OR INCOMING USER NEEDSCOMM0214
STOPSW COMMON 1 NON-ZERO IF BACKGROUND STOPPED COMM0215
BASEAD COMMON 1 PZE BASE COMM0216
DEMKEY COMMON 1 CONSOLE ENTRY KEYS, REFERENCED BY DAEMON COMM0217
BKGATT COMMON 1 IF NON-ZERO, BACKGROUND NEEDS ATTENTION COMM0218
BKGKEY COMMON 1 BACKGROUND KEY CODE ISSUED BY OPERATOR COMM0219
DUSER COMMON 1 DUMMY USER TO RUN WHEN IDLE COMM0220
ATLOST COMMON 1 NON-ZERO IF TRAP LOST ON CHANNEL A COMM0221
COMPTR COMMON 1 .. POINTER TO CURRENT USER COMMAND COMM0222
COMBUF COMBSS LCBUF .. CURRENT USER COMMAND IF TYPED AT CONSOLECOMM0223
UCOMND COMMON 1 CURRENT USER COMMAND BEING PROCESSED COMM0224
UCOMSW COMMON 1 COMMAND FLAGS FOR CURRENT COMMAND COMM0225
COMBSS 2*WDSLIN .. SPARE BUFFER COMM0226
PBUFF COMBSS 2*WDSLIN+1 COMMON PRINT/PUNCH UTILITY BUFFER COMM0227
DBUF1 COMBSS NWDSPT COMMON DISK BUFFER(S) COMM0228
AFSTU1 COMBSS AFS1LN ACTIVE FILE STATUS TABLE FOR CTSS COMM0229
Q1U1 COMBSS Q1U1LN QUEUE FOR DISK/DRUM FOR CTSS COMM0230
Q3U1 COMBSS Q3U1LN QUEUE FOR TAPE FOR CTSS COMM0231
AFSTU2 COMBSS AFS2LN ACTIVE FILE STATUS TABLE FOR CURRENT USER COMM0232
Q1U2 COMBSS Q1U2LN QUEUE FOR DISK/DRUM FOR CURRENT USER COMM0233
Q3U2 COMBSS Q3U2LN QUEUE FOR TAPE FOR CURRENT USER COMM0234
REM COMM0235
EMCOND COMMON 1 USER MACHINE CONDITION STATUS TABLE COMM0236
FSBLK COMBSS FSBLKL .. FILE STATUS AREA FOR USAVE COMM0237
FSBCT COMMON 1 .. WORD COUNT FOR FILE STATUS BLOCK COMM0238
WATCOM COMMON 1 .. INDICATES WAITING COMMAND IN CHAIN COMM0239
CHNPTR COMMON 1 .. POINTER TO COMMAND BUFFER IN CHAIN COMM0240
SUBCOM COMBSS CLNGTH*CDEPTH .. USER SUB-COMMAND TABLES COMM0241
UCOMBF COMBSS LCBUF .. CURRENT COMMAND BUFFER FOR USER COMM0242
COMCTR COMMON 1 .. CURRENT COMMAND LOCATION COUNTER COMM0243
COMFSW COMMON 1 .. FROM LAST USER CALL TO 'COMFIL' COMM0244
USRFIL COMBSS 2 .. LAST DIRECTORY ATTACHMENT IF IN TSSFIL COMM0245
TSSFIL COMBSS 2 .. ATTACHMENT IF TSSFSW NON-ZERO COMM0246
TSSFSW COMMON 1 .. NON-ZERO IF USER READING TSS FILES COMM0247
URCODE COMMON 1 .. RESTRICTION CODE OF CURRENT USER COMM0248
AUTHOR COMMON 1 .. USER'S AUTHOR NUMBER COMM0249
BLIPCH COMMON 1 .. BLIP OPTION CHARACTER SEQUENCE COMM0250
BLIPDT COMMON 1 .. TIME INTERVAL COMM0251
BLIPTM COMMON 1 .. TIME SINCE LAST 'BLIP' COMM0252
SAVEM1 COMMON 1 .. C(77777) COMM0253
UILOCK COMMON 1 .. CORE B RETURN IN CASE OF FILE LOCKED COMM0254
UFERTN COMMON 1 .. USER STANDARD DISK ERROR RETURN COMM0255
BRKILC COMMON 1 .. USER ILC WHEN HE HIT INTERRUPT SEQ. COMM0256
BREAKL COMMON 1 .. USER BREAK LEVEL COUNT COMM0257
COMBSS QUITL .. USER BREAK LEVELS COMM0258
COMMON 1 .. SPARE MACHINE CONDITION REGISTER COMM0259
OLDILC COMMON 1 .. USER ILC SAVED COMM0260
BTRILC COMMON 1 .. CHANNEL B TRAP CONDITIONS SAVED COMM0261
ATRILC COMMON 1 .. CHANNEL A TRAP CONDITIONS SAVED COMM0262
UENBWD COMMON 1 .. USER ENABLE WORD COMM0263
TINHIB COMMON 1 .. NON-ZERO IF USER INHIBITED FROM TRAPS COMM0264
COMMON 1 .. SPARE REGISTER COMM0265
BSTAT COMMON 1 .. CHANNEL B SAVED COMM0266
ASTAT COMMON 1 .. CHANNEL A SAVED COMM0267
SLTS COMMON 1 .. SENSE LIGHTS COMM0268
DVCK COMMON 1 .. NON-ZERO IF DIVIDE CHECK ON COMM0269
IOCK COMMON 1 .. NON-ZERO IF I/O CHECK ON COMM0270
FLMD COMMON 1 .. NON-ZERO IF USER IN FLOATING TRAP MODE COMM0271
MTMD COMMON 1 .. NON-ZERO IF USER IN MULTIPLE TAG MODE COMM0272
OV COMMON 1 .. NON-ZERO IF AC OVERFLOW ON COMM0273
SI COMMON 1 .. USER SENSE INDICATORS COMM0274
MQ COMMON 1 .. MQ COMM0275
SQ COMMON 1 .. SIGN AND Q BITS COMM0276
LAC COMMON 1 .. LOGICAL AC COMM0277
PTIRS COMMON 1 .. USER INDEX TABLE (IR0= 0) COMM0278
IR1 COMMON 1 .. COMM0279
IR2 COMMON 1 .. COMM0280
IR3 COMMON 1 .. COMM0281
IR4 COMMON 1 .. COMM0282
IR5 COMMON 1 .. COMM0283
IR6 COMMON 1 .. COMM0284
IR7 COMMON 1 .. COMM0285
ILC COMMON 1 .. CURRENT USER INSTRUCTION COUNTER COMM0286
MEMBND COMMON 1 .. NO. OF WORDS OF MEMORY ASSIGNED TO USER COMM0287
RLIND COMMON 1 .. USER RELOCATION SETTING COMM0288
PRIND COMMON 1 .. USER PROTECTION SETTING COMM0289
MACOND COMMON 1 .. NON-ZERO IF MACHINE CONDITIONS SAVED COMM0290
REM COMM0291
TSSTBL COMBSS TSSMAX TSSFIL TABLE SET BY LOGIN COMM0292
TSSFID COMBSS 2 .. SYSTEM TSSFIL NAME COMM0293
REM COMM0294
LOWCOM COMMON 0 COMMON BREAK COMM0295
REM COMM0296
SYMREF ON COMM0297
LIST
*
BLKSIZ EQU 432
IMGORG EQU 20
*
START EQU *
LMTM
TSX SETIO,4 INITIALIZE FILE SYSTEM
MZE =0
CLA PANIC
STO 0
STO 28
TSX SETUFL,4
PANIC TSX $IOFINI,4
PAR *+1
TSX PRINT,4
PON ALLDON,,3
ENB =0
HTR *
REM
REM
SETUFL EQU *
SXA RETXR4,4 Save our return
SXA RETXR2,2
*
* Add in new SYSTEM UFDs
*
AXT NUMUFD,2
ADDUFD EQU *
CAL UFDLST+NUMUFD,2
SLW MFDP1
SLW UFDP1
CAL UFDLST+NUMUFD+1,2
SLW MFDP2
SLW UFDP2
TSX UPDMFD,4 Add it
PAR MFDP1
PAR MFDP2
PAR NXTUFD
PAR ERCODE
TSX ATTACH,4
PAR MFDP1
PAR MFDP2
PAR UPDMFD
TSX ALLOT,4
PAR =2 DISK
PAR =4000
PAR =-0
ADDIT TSX EPRINT,4 Adding new UFD
PON UFDADD,,5
NXTUFD TIX ADDUFD,2,2
*
* Create a file or UFD, Read info from tape
*
NXTFIL EQU *
STZ BINFLG Set BINFLG for TEXT.
STZ TXTFLG Set TXTFLG for Line Marked input.
STZ NMBUFF
STZ NMBUFF+1
ENB =0
TCOB *
RTDB 2 Read Name info from B2
RCHB NMTAPE
TCOB *
TEFB EOFNAM
ENB ENBWD
CAL NMBUFF Set name into buffers
TZE NXTFIL Ignore empty records.
SLW SAVF1
SLW CPYF1
CAL NMBUFF+1
SLW SAVF2
SLW CPYF2
CAL NMBUFF+2 Get mode
LAS =H U If UFD mode
TRA *+2
TRA USRUFD Go process UFDs
LAS =H Q If Quota mode
TRA *+2
TRA USRQUO Go process Quotas
CAL NMBUFF+4 Check if new UFD for files
LAS ATTU1
TRA NEWUFD
TRA *+2
TRA NEWUFD
CAL NMBUFF+5
LAS ATTU2
TRA *+2
TRA OLDUFD
* ATTACH to new UFD defined in header
NEWUFD TSX SETID,4
PAR NMBUFF+4 Get UFD info
PAR NMBUFF+5
*
OLDUFD EQU *
* DELETE old file first.
CALL CHFILE(SAVF1,SAVF2,=0,=-0,=-0,NODEL) CHANGE TO TEMPORARY FILE
CALL DELFIL(SAVF1,SAVF2,NODEL) DELETE PREVIOUS FILE
NODEL CAL NMBUFF+2 Get mode
LAS =H L If LINK mode
TRA *+2
TRA PROLNK
AXT 4,2
LAS =H I If Image mode
TRA *+2
AXT 0,2
LAS =H T If Text mode
TRA *+2
AXT 1,2
LAS =H C Line mark mode.
TRA *+2
AXT 2,2
LAS =H B BSS mode
TRA *+2
AXT 3,2
CAL IMAGE,2 Set mode into message
* Read from tape and write to disk
PRTCPY SLW CPYMOD
TSX EPRINT,4 COPY Message
PZE CPYMSG,,7 ..
TRA BINARY,2
TRA NXTFIL ERROR IGNORE
STL BINFLG BSS MODE
STL TXTFLG LINE MARKED
TRA RDTEXT TEXT
BINARY CLA ORIGIN image mode
STA IOTAPE
* Read image into BCORE
RDLOOP EQU *
TCOB *
RTBB 2 Read image from B2
RCHB IOTAPE into BCORE
TCOB *
TEFB EOFTAP
ENB ENBWD
SCHB ERCODE Get record length
CLA IOTAPE
ANA =O77777
ADD SIZBLK
STA IOTAPE
TRA RDLOOP
EOFTAP EQU *
CLA ERCODE Get final location
ANA =O77777
STA MEMBND Set memory bounds
STZ RLIND And relocation
ALS 18
SLW PRIND
ENB ENBWD
TSX SETUSR,4 SET UP OPTIONS
PAR USERID .. USERID
PAR RCODE .. RESTRICTION CODE
PAR M0 .. AUTHOR
PAR PRIND .. PROTECTION LIMITS
PAR RLIND .. RELOCATION
PAR M0 .. SECOND HIGHEST PRIORITY
TSX UDUMP,4 Dump image to DISK
PAR SAVOPT,,0
PAR SAVF1
PAR SAVF2
PAR *+1,,ERRSAV
TRA NXTFIL
* Done with TAPE
EOFNAM EQU *
*
* Exit
*
DIE EQU *
RETXR2 AXT **,2
RETXR4 AXT **,4
TRA 1,4
REM
*
* Process text/BSS data.
*
RDTEXT EQU *
CAL RDCMD
ZET BINFLG
ORA =O20
SLW RDOPR
ZET BINFLG
STZ TXTFLG Clear text flag if binary.
CAL NMBUFF+3 Get the record length
ALS 18
STD RECLEN
STD TXTTAP
LXA TXTTAP,4 Fix Start of reading.
ZET TXTFLG
TXI *+1,4,-1 Back up one for Line Marked
SXA RECLEN,4
CALL OPEN(=HW,SAVF1,SAVF2,=0) OPEN FILE
CALL BUFFER(SAVF1,SAVF2,(BUF1,,BLKSIZ))
* Loop reading text data.
TXTLP EQU *
ENB =0
TCOB *
RDOPR PZE
RCHB TXTTAP
TCOB *
TEFB EOFTXT
ENB ENBWD
ZET BINFLG
TRA NOTPCK
NZT TXTFLG
TRA NOTPCK
SCHB TEMP Get Last address transfered.
CAL TEMP
SUB TXTTAP Subtract base.
STA CNTBLK Set record length
ADD =1 Bump by one and put in Write call.
ALS 18
STD RECLEN
NOTPCK EQU *
TSX WRWAIT,4
PAR SAVF1
PAR SAVF2
PAR =0
RECLEN PAR TXTDAT,,14
PAR ERRSAV
PAR ERCODE
TRA TXTLP
RDCMD RTDB 2
*
EOFTXT EQU *
ENB ENBWD
CALL CLOSE(SAVF1,SAVF2) Close file
TRA NXTFIL
EJECT
*
* Process user UFDs
*
USRUFD EQU *
ENB =0
TCOB *
RTDB 2 Read UFD info from B2
RCHB NMTAPE
TCOB *
TEFB EOFUFD
ENB ENBWD
CAL NMBUFF Pick up UFD name
SLW MFDP1
SLW UFDP1
CAL NMBUFF+1
SLW MFDP2
SLW UFDP2
TSX ATTACH,4 Try ATTACH to UFD
PAR MFDP1
PAR MFDP2
PAR ADDUSR Go add it if not defined
TRA USRUFD It's defined, Check next.
ADDUSR TSX UPDMFD,4 Add it
PAR MFDP1
PAR MFDP2
PAR ERRMFD
PAR ERCODE
TSX EPRINT,4 Adding new UFD
PZE UFDADD,,5
TRA USRUFD
EOFUFD TRA NXTFIL
*
* Process LINKS
*
PROLNK EQU *
ENB =0
TCOB *
RTDB 2 Read LINK info from B2
RCHB NMTAPE
TCOB *
TEFB EOFLNK
ENB ENBWD
CAL NMBUFF Pick up LINK name
SLW LNKP0
CAL NMBUFF+1
SLW LNKP1
CAL NMBUFF+2 Pick up PROG/PROB
SLW LNKP2
CAL NMBUFF+3
SLW LNKP3
CAL NMBUFF+4 Pick up Target name
SLW LNKP4
CAL NMBUFF+5
SLW LNKP5
TSX EPRINT,4 Adding new LINK
PAR LNKADD,,14
TSX LINK,4 Add it
PAR LNKP0
PAR LNKP1
PAR LNKP2
PAR LNKP3
PAR LNKP4
PAR LNKP5
PAR =O104
PAR ERRLNK
TRA PROLNK
EOFLNK TRA NXTFIL
*
* Process User Quotas
*
USRQUO EQU *
ENB =0
TCOB *
RTDB 2 Read Quota info from B2
RCHB NMTAPE
TCOB *
TEFB EOFQUO
ENB ENBWD
CAL NMBUFF
SLW QUOP1
CAL NMBUFF+1
SLW QUOP2
TSX SETID,4
PAR NMBUFF Pick up account name
PAR NMBUFF+1
ADDQUO CAL NMBUFF+2
SLW QUOP3
CAL NMBUFF+3
SLW QUOP4
CAL NMBUFF+4
SLW QUOP5
LDQ NMBUFF+2 Get DRUM Quota
TSX DTBC,4
TZE DSKQUO
STO TEMP
TSX ALLOT,4
PAR =1 DRUM
PAR TEMP
PAR =-0
DSKQUO LDQ NMBUFF+3 Get DISK Quota
TSX DTBC,4
TZE TAPQUO
STO TEMP
TSX ALLOT,4
PAR =2 DISK
PAR TEMP
PAR =-0
TAPQUO LDQ NMBUFF+4 Get TAPE Quota
TSX DTBC,4
TZE PRTQUO
STO TEMP
TSX ALLOT,4
PAR =3 TAPE
PAR TEMP
PAR =-0
PRTQUO TSX EPRINT,4 Adding Quota message
PZE QUOADD,,12
TRA USRQUO
EOFQUO TRA NXTFIL
EJECT
*
* ERROR processors
*
ERRSAV CAL ERCODE
TSX BTDC,4
STO SAVCOD
TSX EPRINT,4 HERE ON ERROR SAVING FILE
PZE SAVERR,,8 .. PRINT ERROR MESSAGE
TRA DIE
ERRQUO EQU *
ERRMFD TSX EPRINT,4 HERE ON ERROR INITIALIZING MFD
PZE MFDERR,,5 .. PRINT ERROR MESSAGE
TRA DIE
ERRLNK TSX IODIAG,4 Get the error diagnostic info
PAR ERRBLK,,6
LDQ ERRBLK+2 Get the error code.
TSX BTDC,4
STO LNKCOD
CAL ERRBLK+4
SLW LNKE1
CAL ERRBLK+5
SLW LNKE2
TSX EPRINT,4 HERE ON ERROR LINK CREATION
PON LNKERR,,9 .. PRINT ERROR MESSAGE
TRA DIE
*
* ATTACH TO UFD
*
SETID SXA SETID4,4
CAL* 1,4 Get UFD info
SLW ATTU1
CAL* 2,4
SLW ATTU2
TSX EPRINT,4 ATTACH message
PZE ATTMSG,,6 ..
TSX ATTACH,4
PAR ATTU1
PAR ATTU2
PAR ERRMFD
TSX GETUSR,4 GET User ID
PAR USERID,,2
SETID4 AXT *,4
TRA 3,4
EJECT
IFF XBUILD,1,1 DGPHACK
PZE DGPHACK
IFF XBUILD,1,1 DGPHACK
VDWAIT TRA RDWAIT DGPHACK
IFF XBUILD,1,1 DGPHACK
VRWAIT TRA WRWAIT DGPHACK
LIST ULOD0024
REM ULOD0026
REM ULOD0027
UDUMP STZ LOADSW ENTRY TO DUMP USER ON DISK, FLAG DUMP ULOD0028
IFF XBUILD,0,1 DGPHACK
CAL WRWAIT I/O ROUTINE TO DO WRITING ULOD0029
IFF XBUILD,1,1 DGPHACK
CAL VRWAIT I/O ROUTINE TO DO WRITING DGPHACK
TSX SETUP,7 INITIALIZE AND BEGIN ULOD0030
CALL CHNGUS(Q2) SET USER TO BE DISK USER ULOD0031
STZ FSBCT RESET USAVE BLOCK COUNT ULOD0032
CALL USAVE(FSBCT,(FSBLK,,FSBLKL),USAVER) .. ULOD0033
SETAB LA,LB,LB SET CORE SWITCHES FOR USER PROG. ULOD0034
* TSX RESET,4 AND CLOSE ALL ACTIVE FILES FOR USER ULOD0035
NZT FLAGS IS THERE ANY WORK TO DO ULOD0036
TRA RETURN NO, EXIT ULOD0037
LAC USER,1 PICK UP USER NO. ULOD0038
UDUMP0 CALL CHNGUS(FSUSR) SET DISK USER NO. ULOD0050
SETAB LA,LA,LA .. AND CORE SWITCHES ULOD0051
CAL =HW OPEN SAVED FILE IN WRITE STATUS ULOD0052
TSX FILOPN,4 .. ULOD0053
CALL TRFILE(N1,N2,Q0) ERASE PREVIOUS CONTENTS ULOD0054
LDI FLAGS PICK UP CALLER SAVE FLAGS ULOD0055
RNT D.SAV .. ARE WE TO SAVE PROGRAM ULOD0056
TRA UDUMP1 .. NO, SKIP ULOD0057
REM ULOD0058
CAL AMASK INSURE MEMBND HAS CORRECT FORMAT ULOD0060
ANS MEMBND .. ULOD0061
CLA PMASK SET PREFIX PTH FOR OLD FORMAT ULOD0062
STP MEMBND .. ULOD0063
LDI SLTS INVERT SENSE LIGHTS ULOD0064
IIR 17 .. ULOD0065
STI SLTS .. ULOD0066
AXT UILOCK-MEMBND,4 WORD COUNT FOR MACHINE CONDITIONS ULOD0067
SXD MEMBND,4 .. IN DECREMENT OF CONTROL WORD ULOD0068
TSX RW,4 WRITE OUT CONTROL WORD ULOD0069
PAR MEMBND,,UILOCK-MEMBND+1 .. FOR MACH. AND CORE ULOD0070
CAL AMASK .. RESTORE MEMBND TO PROPER FORMAT ULOD0071
ANS MEMBND .. ULOD0072
SETAB LA,LA,LBN SET CORE SWITCHES FOR BCORE TRANSMISSION ULOD0073
TSX RW,4 WRITE OUT USER CORE IMAGE ULOD0074
BLK 0,,MEMBND .. ONTO DISK ULOD0075
TSX RW,4 .. WRITE OUT LAST WORD OF USER PROG ULOD0076
PAR -1,,1 .. ULOD0077
SETAB LA,LA,LA .. CORE SWITCHES FOR ACORE ULOD0078
LDI SLTS RESTORE SENSE LIGHT STATUS ULOD0079
IIR 17 .. ULOD0080
STI SLTS .. ULOD0081
REM ULOD0082
UDUMP1 LAC USER,1 HERE FOR DUMPING CONTROL BLOCKS ULOD0083
AXT NOPT,4 SET UP TABLE OF USER OPTION WORDS ULOD0084
CAL* OPT+NOPT,4 .. USROPT, ETC. ULOD0085
SLW UOPSAV+NOPT,4 .. ULOD0086
TIX *-2,4,1 .. FOR DISK ROUTINE TO ACCESS ULOD0087
AXT NDW,1 DUMP CONTROL FUNCTION TABLE SIZE ULOD0088
UDUMP2 TXL DMPEND,1,0 .. SKIP IF DONE ULOD0089
LDI FLAGS LOAD CALLER JOB FLAGS ULOD0090
SIL / .. MAKE ONT WORK ULOD0091
ONT DTYPES,1 .. DO WE NEED THIS BLOCK ULOD0092
TIX *-1,1,2 .. NO, TRY NEXT ULOD0093
XEC DTYPES+1,1 THIS MAY BE TRANSFER FOR SPECIAL BLOCK ULOD0094
CAL DTYPES+1,1 PAR LOC,,N FOR RW ROUTINE ULOD0095
SLW WBLK .. INSERT IN CALL ULOD0096
PDC ,4 GET WORD COUNT ULOD0097
PAI CHECK FOR 'BLK' ULOD0098
IIL 500000 .. ULOD0099
CAL 0,4 INDIRECT WORD IF 'BLK' ULOD0100
LNT 700000 .. ULOD0101
PCA ,4 ELSE, RESTORE CORRECT COUNT ULOD0102
SLW CTL BUILD CONTROL WORD ULOD0103
LDQ DTYPES,1 .. THREE CHARACTER NAME ULOD0104
SLQ CTL .. INSERT ULOD0105
TSX RW,4 WRITE OUT CONTROL WORD ULOD0106
PAR CTL,,1 .. ULOD0107
TSX RW,4 WRITE OUT ASSOCIATED BLOCK ULOD0108
WBLK *** -,,- .. ULOD0109
TXI UDUMP2,1,-2 GO LOOK FOR MORE WORK ULOD0110
REM ULOD0111
DMPEND CALL CLOSE(N1,N2) HERE WHEN DONE WRITING FILE ULOD0112
TRA RETURN .. AND RETURN TO CALLING PROG. ULOD0113
REM ULOD0114
REM ULOD0115
DPOPT CAL TSSFSW OLD FORMAT SAVED FILE DUMP, PICK UP TSSFSW ULOD0116
SLW TEMP PUT AWAY ULOD0117
LDI UOPSAV PICK UP USER OPTIONS WORD ULOD0118
RIR / RESET ALL RIGHT HALF BITS ULOD0119
LFT CLKBIT SET BITS TO OLD FORMAT USWICH CONFIGURATIONULOD0120
SIR OLDCLK .. ULOD0121
LFT FULBIT .. ULOD0122
SIR OLDFUL .. ULOD0123
LFT NCVBIT .. ULOD0124
SIR OLDNCV .. ULOD0125
LFT NBKBIT .. ULOD0126
SIR OLDNBK .. ULOD0127
LFT GPHBIT .. ULOD0128
SIR OLDGPH .. ULOD0129
RIL / RESET LEFT HALF ULOD0130
STI TEMP+1 PUT AWAY ULOD0131
CAL OPTWD PICK UP POINTER TO BUFFER ULOD0132
TRA 2,7 REJOIN LOOP ULOD0133
REM ULOD0134
DPCOM TSX RW,4 OLD FORMAT SAVED FILE COMMAND BLOCK ULOD0135
PAR COMCTL,,1 WRITE OUT CONTROL WORD ULOD0136
TSX RW,4 WRITE OUT SUBCOMMAND BUFFERS, WATCOM ULOD0137
PAR SUBCOM,,CLNGTH*CDEPTH+2 .. ULOD0138
TSX RW,4 WRITE OUT COMCTR AND UCOMBF ULOD0139
PAR COMCTR,,LCBUF+1 .. ULOD0140
TSX RW,4 WRITE OUT COMFSW ULOD0141
PAR COMFSW,,1 .. ULOD0142
TXI UDUMP2,1,-2 RETURN FOR NEXT BLOCK IF ANY ULOD0143
REM ULOD0144
DPDSK NZT FSBCT OLD FORMAT, DO NOT DUMP IF ZERO ULOD0145
TRA -1,7 .. ULOD0146
CAL DSKWD PICK UP CONTROL WORD ULOD0147
TRA 2,7 REJOIN LOOP ULOD0148
REM ULOD0149
OPTWD PAR TEMP,,2 .. ULOD0150
COMCTL VFD H18/COM,18/CLNGTH*CDEPTH+LCBUF+4 ULOD0151
DSKWD BLK FSBLK,,FSBCT .. ULOD0152
REM ULOD0153
REM ULOD0154
DTOP SYN * TABLE OF CONTROL HEADERS FOR UDUMP ULOD0155
REM ULOD0156
VFD H18/DSK,O18/D.DSK ULOD0157
TSX DPDSK,7 ULOD0158
REM ULOD0159
VFD H18/OPT,O18/0 ULOD0160
TSX DPOPT,7 ULOD0161
REM ULOD0162
VFD H18/COM,O18/0 ULOD0163
TRA DPCOM ULOD0164
REM ULOD0165
VFD H18/URK,O18/0 ULOD0166
TRA DMPEND .. DONE, EXIT ULOD0167
REM ULOD0168
DTYPES SYN * ULOD0169
NDW EQU *-DTOP TABLE SIZE ULOD0170
EJECT ULOD0171
REM ULOD0172
OLDCLK BOOL 200040 USWICH BIT EQUIVALENCES (OLD FORMAT) ULOD0406
OLDFUL BOOL 1004 .. FULBIT+FULBT ULOD0407
OLDNCV BOOL 6000 .. NCVBIT+NCVBT ULOD0408
OLDNBK BOOL 30000 .. NBKBIT+NBKBT ULOD0409
OLDGPH BOOL 140000 .. GPHBIT+GPHBT ULOD0410
REM ULOD0411
REM ULOD0466
REM ULOD0622
REM INITIALIZATION AND COMMON ROUTINES ULOD0623
REM ULOD0624
SETUP SAVE UL(X1,X4) SAVE XRS ULOD0625
SXA SX7,7 SAVE LINKAGE ULOD0626
STA RWC RDWAIT OR WRWAIT FOR RW ULOD0627
CAL* 1,4 JOB FLAGS ULOD0628
SLW FLAGS .. SAVE ULOD0629
CAL 1,4 GET FILE MODE FOR UDUMP ULOD0630
ARS 18 .. ULOD0631
STA MODE .. ULOD0632
CLA* 2,4 PICK UP FILE NAME TO RESTORE ULOD0633
LDQ* 3,4 .. ULOD0634
DST N1 .. ULOD0635
CALL GETUSR((FSUSR,,1)) ASK FILE COORDINATOR ULOD0636
TSX FERRTN,4 SET FILE ERROR RETURN ULOD0639
PZE IOERR .. ULOD0640
AXT NZERO,4 RESET VARIABLE STORAGE ULOD0641
STZ ZERO+NZERO,4 .. ULOD0642
TIX *-1,4,1 .. ULOD0643
SX7 AXT -,7 RESTORE LINKAGE ULOD0644
TRA 1,7 RETURN ULOD0645
REM ULOD0646
RETURN TSX RSTUFD,4 COMMON EXIT, RESTORE USER TO PROPER UFD ULOD0647
STL ERRSW .. POSSIBLE ERROR, SET FLAG ULOD0648
TSX FERRTN,4 RESET ERROR RETURN ULOD0649
PZE 0 .. ULOD0650
CALL CHNGUS(Q1) SET TSS AS DISK USER ULOD0651
SETAB LA,LA,LA RESET A/B SWITCHES ULOD0652
* CALL RESETF(*+1) RESET ANY ACTIVE FILE FOR TSS ULOD0653
RESTOR UL(X1,X4),* RESTORE XRS ULOD0654
CAL 4,4 GET CALLER ERROR RETURN WORD ULOD0655
ZET FATERR WAS THERE A FATAL ERROR ULOD0656
ARS 18 .. YES, GET FATAL RETURN ULOD0657
STA ERRTN .. ULOD0658
NZT FATERR CHECK FOR ANY ERROR ULOD0659
ZET ERRSW .. ULOD0660
ERRTN TRA - .. YES, GIVE ERROR RETURN ULOD0661
TRA 5,4 .. NO ERROR, RETURN NORMALLY ULOD0662
REM ULOD0663
FILOPN SLW TEMP SAVE A FEW WORDS HERE AND THERE ULOD0664
SXA OPNX4,4 .. ULOD0665
CALL OPEN(TEMP,N1,N2,MODE) ULOD0666
CALL BUFFER(N1,N2,(DBUF1,,NWDSPT)) ULOD0667
OPNX4 AXT -,4 RESTORE X4 ULOD0668
TRA 1,4 RETURN ULOD0669
REM ULOD0670
RW SXA RWX4,4 ROUTINE TO READ OR WRITE SAVED FILE ULOD0671
CAL 1,4 GET CONTROL WORD ULOD0672
SLW RWC+4 .. ULOD0673
PDC ,4 GET WORD COUNT ULOD0674
PAI AND WORD TO SI TO CHECK PREFIX ULOD0675
PCA ,4 .. ULOD0676
LNT 100000 CHECK FOR 'BLK' ULOD0677
CAL 0,4 .. YES, GET INDIRECT WORD COUNT ULOD0678
TZE RWX4 EXIT FOR ZERO WORD COUNT ULOD0679
SLW RTMP .. SAVE ULOD0680
RWC CALL **(N1,N2,RELLOC,(-,,-),RWEOF) ULOD0681
CAL RELLOC UPDATE RELLOC ULOD0682
ADD RTMP .. ULOD0683
ZET RELLOC .. UNLESS APPENDING ULOD0684
SLW RELLOC .. ULOD0685
RWX4 AXT -,4 RESTORE X4 ULOD0686
TRA 2,4 RETURN ULOD0687
REM ULOD0688
RWEOF NZT LOADSW HERE FOR EOF RETURN FROM RW ULOD0689
HTR * SHOULD NOT GET EOF APPENDING ULOD0690
ZET EOFSW EOF RETURN FROM RDWAIT ULOD0691
TRA BAD ILLEGAL FORMAT IF WITHIN BLOCK ULOD0692
TRA DMPEND ELSE, SKIP TO END ULOD0693
REM ULOD0694
IOERR TSX PRDIAG,4 DISK ERROR READING OR WRITING SAVED FILE ULOD0702
SETAB LA,LA,LA RESET CORE SWITCHES ULOD0703
REM ULOD0704
ERRXIT STL FATERR HERE FOR FATAL ERROR, SET FLAG ULOD0711
TRA RETURN .. ULOD0712
REM ULOD0713
BAD TSX FN,4 HERE FOR BAD FORMAT IN FILE ULOD0714
PAR N1 .. ULOD0715
PAR N2 .. ULOD0716
PAR LBAD+1 .. ULOD0717
TSX PRINT
PAR LBAD,7
TRA ERRXIT .. TELL USER NO RESTORE ULOD0719
REM ULOD0720
USAVER HTR * UNLIKELY ERROR RETURN FROM USAVE ULOD0721
REM ULOD0722
FN SXA FNX4,4 ROUTINE TO PRODUCE NEAT FILE NAME ULOD0723
CAL* 1,4 .. PICK UP FILE NAME1 ULOD0724
TSX NBL,4 .. STRIP BLANKS ULOD0725
LXA FNX4,4 .. RESTORE X4 ULOD0726
SLW* 3,4 .. FIRST WORD ULOD0727
CAL* 2,4 .. PICK UP NAME2 ULOD0728
TSX NBL,4 .. STRIP BLANKS ULOD0729
FNX4 AXT -,4 .. RESTORE X4 ULOD0730
XCL .. SAVE NAME2 ULOD0731
CAL 3,4 .. GET ADDRESS FOR 2ND, 3RD WORD ULOD0732
PAC ,7 .. ULOD0733
CLA =O605757575757 .. GET SINGLE BLANK ULOD0734
DST 1,7 .. STORE. ULOD0735
TRA 4,4 RETURN ULOD0736
EJECT ULOD0737
REM ULOD0738
REM STORAGE AND CONSTANTS ULOD0739
REM ULOD0740
OPT SYN * TABLE OF OPTION WORDS ULOD0741
PZE USROPT,1 .. ULOD0742
NOPT EQU *-OPT .. TABLE SIZE ULOD0743
NTEMP EQU 2 SIZE OF TEMPORARY BLOCK ULOD0744
REM ULOD0745
ZERO SYN * STORAGE TO BE CLEARED BY SETUP ULOD0746
CTL PZE .. CONTROL WORD ULOD0747
EOFSW PZE .. NON-ZERO IF EOF IS ERROR ULOD0748
RELLOC PZE .. RELLOC FOR 'RW' ULOD0749
USRTMP BSS 2 .. TEMP. STORAGE FOR 'USRFIL' ULOD0750
UOPSAV BSS NOPT .. USER OPTIONS SAVED OR RESTORED ULOD0751
FATERR PZE .. NON-ZERO IF FATAL ERROR ULOD0753
OLDSW PZE .. NON-ZERO IF COMPATIBILITY COUNTED ULOD0754
IIRSW PZE .. NON-ZERO IF SENSE LIGHTS TO BE INVERTED ULOD0755
UOPCT PZE .. NO. WORDS RETURNED FROM UOP BLOCK ULOD0756
CTLCT PZE .. NO. WORDS RETURNED FOR NORMAL BLOCK ULOD0757
TEMP BSS NTEMP .. TEMPORARY STORAGE ULOD0758
NZERO EQU *-ZERO .. ULOD0759
REM ULOD0760
FLERSW PZE ERROR FLAG FOR FILRST ULOD0761
FIRST PZE NON-ZERO FOR FIRST ULOAD BLOCK ULOD0762
FLAGS PZE CALLER OPTION FLAGS ULOD0763
FSUSR PZE FILE SYSTEM USER ON ENTRY ULOD0764
N1 PZE SAVED FILE NAME1 ULOD0765
N2 PZE SAVED FILE NAME2 ULOD0766
MODE PZE SAVED FILE MODE (UDUMP) ULOD0767
OLDCT PZE COMPATIBILITY CODE USAGE ULOD0768
LOADSW PZE LOAD/DUMP SWITCH ULOD0769
URSAVE PZE SAVED COPY OF URCODE ULOD0770
TMP PZE SUPER-TEMPORARY ULOD0771
RTMP PZE TEMP FOR 'RW' ULOD0772
REM ULOD0773
UOPMSK VFD O18/FULBIT+NCVBIT+NBKBIT+GPHBIT+CLKBIT ULOD0774
REM ULOD0775
LBN PZE B MEMORY FLAG FOR UNPROT. B-CORE TRANSMISSIONULOD0776
REM ULOD0777
REM UTIL0342
REM UTIL0343
REM ..... PRINT BASIC DISK DIAGNOSTIC ..... UTIL0344
REM UTIL0345
PRDIAG SXA PRDX4,4 SAVE XR4 UTIL0346
TSX IODIAG,4 GET DISK DIAGNOSTIC UTIL0347
PAR BLOCK,,6 .. UTIL0348
CLA BLOCK+4 PRIMARY NAME OF FILE UTIL0349
LDQ BLOCK+5 SECONDARY UTIL0350
DST DIAG+10 PLACE IN ERROR MESSAGE UTIL0351
CAL BLOCK+1 DISK ROUTINE CALLED UTIL0352
SLW DIAG+8 .. UTIL0353
CAL BLOCK LOC'N OF ERROR UTIL0354
LGR 18 .. UTIL0355
TSX BTOC,4 CONVERT TO BCD UTIL0356
ORA =O570000000000 .. UTIL0357
SLW DIAG+5 .. UTIL0358
LDQ I.O CHECK FOR I/O ERROR UTIL0359
CAL BLOCK+3 .. UTIL0360
TNZ *+3 IF NON ZERO, I/O ERROR UTIL0361
LDQ NULLS OTHERWISE, REGULAR ERROR UTIL0362
CAL BLOCK+2 .. UTIL0363
STQ DIAG .. UTIL0364
XCL .. UTIL0365
TSX BTDC,4 CONVERT UTIL0366
ORA =O575760000000 .. UTIL0367
SLW DIAG+2 .. UTIL0368
TSX PRINT,4
PAR DIAG,,12
TSX GETUSR,4 FIND OUT CURRENT FILE SYSTEM USER UTIL0370
PAR TEMP,,2 .. UTIL0371
CAL TEMP CHECK FOR CTSS AS DISK USER UTIL0372
SUB Q1 .. UTIL0373
TZE PRNTON PRINT DIAGNOSTIC ONLINE FOR TSS UTIL0374
LDI TEMP+1 GET CALL MEMORY SWITCH UTIL0375
RNT 1 WAS THIS CALL FROM MEM. A UTIL0376
TRA PRDX4 .. NO, EXIT UTIL0377
CAL BLOCK+2 PICK UP ERROR CODE UTIL0378
SUB Q1 WAS THIS ILLEGAL CALLING SEQUENCE UTIL0379
TNZ PRDX4 .. NO, EXIT UTIL0380
PRNTON TSX WRTOPR,4 HERE IF TSS IS DISK USER, PRINT ONLINE UTIL0381
PZE DIAG,,12 .. UTIL0382
PRDX4 AXT **,4 RETURN TO CALLER UTIL0383
TRA 1,4 UTIL0384
REM UTIL0385
DIAG PZE UTIL0387
BCI * ERROR* UTIL0388
PZE UTIL0389
BCI * FOUND AT * UTIL0390
PZE UTIL0391
BCI * IN CALL TO * UTIL0392
PZE UTIL0393
BCI * FOR * UTIL0394
PZE UTIL0395
PZE UTIL0396
REM UTIL0397
I.O BCI * I/O* UTIL0398
REM
*
* Messages
*
ALLDON BCI / LOADING DONE /
UFDADD BCI / ADDING UFD /
UFDP1 PZE 0
BCI / /
UFDP2 PZE 0
*
MFDERR BCI / MFD INITIALIZATION ERROR /
MFDP1 PZE 0
BCI / /
MFDP2 PZE 0
*
SAVERR BCI / FILE SAVE ERROR /
SAVCOD PZE 0
BCI / ON /
SAVF1 PZE 0
BCI / /
SAVF2 PZE 0
*
CPYMSG BCI / COPY TO /
CPYMOD PZE 0
BCI / FILE /
CPYF1 PZE 0
BCI / /
CPYF2 PZE 0
*
ATTMSG BCI / ATTACHING TO /
ATTU1 PZE 0
BCI / /
ATTU2 PZE 0
*
BSSMOD BCI /BSS/
BCI /LINE/
TEXT BCI /TEXT/
IMAGE BCI /IMAGE/
*
LNKADD BCI / ADDING LINK /
LNKP0 PZE 0
BCI / /
LNKP1 PZE 0
BCI / TO /
LNKP2 PZE 0
BCI / /
LNKP3 PZE 0
BCI / /
LNKP4 PZE 0
BCI / /
LNKP5 PZE 0
*
LNKERR BCI / LINK CREATE ERROR /
LNKCOD PZE 0
BCI / ON /
LNKE1 PZE 0
BCI / /
LNKE2 PZE 0
*
QUOADD BCI / ADDING QUOTA TO /
QUOP1 PZE 0
BCI / /
QUOP2 PZE 0
BCI / DRUM /
QUOP3 PZE 0
BCI / DISK /
QUOP4 PZE 0
BCI / TAPE /
QUOP5 PZE 0
LBAD BCI / FILE NAME1 ***** NAME2 HAS ILLEGAL FORMAT./
*
* STORAGE AREAS
*
* UFDs to be ADDED, M1416 CMFL02 must be first
*
UFDLST BCI 2, M1416CMFL01
BCI 2, M1416CMFL02
BCI 2, M1416CMFL03
BCI 2, M1416CMFL04
BCI 2, M1416CMFL05
NUMUFD EQU *-UFDLST
*
TXTFLG BSS 1
BINFLG BSS 1
USERID BSS 2
ERCODE OCT 0
ORIGIN PZE IMGORG
SIZBLK PZE BLKSIZ
SAVOPT VFD O18/0,O18/D.DSK+D.OPT+D.DIR+D.TSF+D.COM+D.SAV
*
TXTTAP IORT TXTDAT,,22
IOCD 0,,0
NMTAPE IORT NMBUFF,,14
IOCD 0,,0
IOTAPE IORT IMGORG,1,BLKSIZ Read into BCORE starting at IMGORG
IOCD 0,,0
EJECT
*
ERRBLK BSS 6 IODIAG error block
NMBUFF BSS 14 Name processing buffer.
CNTBLK OCT 777777000000
TXTDAT BSS 30 Text mode buffer.
*
BUF1 BSS BLKSIZ Buffered I/O buffers.
BUF2 BSS BLKSIZ
BUF3 BSS BLKSIZ
*
* DUMMY ROUTINES AS WE DONT NEED THEM FOR SETUP.
*
CHANLI EQU *
STOPE EQU *
STARTE EQU *
SETPRM EQU *
TRA 1,4
WRTELY EQU *
WRHI EQU *
TRA 2,4
GETPRM EQU *
TRA 3,4
REM ULOD0014
PMC ON ULOD0779
RMT * ULOD0780
PMC OFF ULOD0781
REM ULOD0782
REM UTIL0114
REM ..... ATTACH TSS TO SYSTEM OR USER FILES ..... UTIL0115
REM UTIL0116
ATTSYS SAVE AT(X1,X4) ATTACH TSS TO SYSTEM FILES UTIL0117
CALL SETUSR(Q1,TSRCOD,Q0,DMASK,Q0,M0) UTIL0118
SETAB LA,*,* SET MEMORY SWITCHES FOR CALLS FROM 'A' UTIL0119
CALL ATTNAM((TEMP,,2)) .. UTIL0120
CAL TEMP DO WE NEED TO PERFORM ATTACH UTIL0121
ERA CTSSID .. UTIL0122
TNZ ATSYS1 .. YES UTIL0123
CAL TEMP+1 .. UTIL0124
ERA CTSSID+1 .. UTIL0125
TZE ATTRTN .. NO UTIL0126
ATSYS1 CALL ATTACH(CTSSID,CTSSID+1,ATERTN) UTIL0127
TRA ATTRTN .. RETURN UTIL0128
REM UTIL0129
ATTUSR SAVE AT(X1,X4) ATTACH TSS TO USER FILES UTIL0130
LAC USER,1 GET USER NO. OF CURRENT USER UTIL0131
CLA PROBN,1 PICK UP USER UFD NAME UTIL0132
TZE ATERTN .. ERROR IF NOT LOGGED IN UTIL0133
LDQ UFDNM,1 .. UTIL0134
DST TEMP .. UTIL0135
TSX CHNGUS,4 SET TSS TO BE DISK USER UTIL0136
PAR Q1 .. UTIL0137
SETAB LA,*,* CALLS FROM MEMORY 'A' UTIL0138
CALL ATTACH(TEMP,TEMP+1,ATERTN) UTIL0139
CALL SETUSR(Q1,(RCODE,1),AUTHOR,PRIND,RLIND,M0) UTIL0140
ATTRTN RETURN (2,4),AT(X1,X4) .. RETURN UTIL0141
REM UTIL0142
ATERTN RESTOR AT(X1,X4) HERE FOR ERROR DURING ATTACH UTIL0143
TRA* 1,4 TAKE ERROR RETURN UTIL0144
EJECT UTIL0145
REM UTIL0146
REM ..... GETUFD, SETUFD, RSTUFD, TSSFL., SETSS ..... UTIL0147
REM ......... SET USER DIRECTORY ATTACHMENT ......... UTIL0148
REM UTIL0149
GETUFD ZET TSSFSW ROUTINE TO PICK UP CURRENT USRFIL UTIL0150
TRA GETUF1 .. ALREADY SET UP, SKIP UTIL0151
SXA GTX4,4 SAVE X4 UTIL0152
TSX CHNGUS,4 SET USER TO BE DISK USER UTIL0153
PAR Q2 .. UTIL0154
SETAB LA,*,* CALLS FROM MEM. 'A' UTIL0155
TSX ATTNAM,4 FIND OUT USER CURRENT UFD UTIL0156
PAR USRFIL,,2 .. PUT AWAY HERE UTIL0157
GTX4 AXT -,4 RESTORE X4 UTIL0158
GETUF1 CAL USRFIL PICK UP FILE DIRECTORY NAME UTIL0159
LDQ USRFIL+1 .. UTIL0160
TRA 1,4 RETURN UTIL0161
REM UTIL0162
REM UTIL0163
TSSFL. SLW TSSFIL ROUTINE TO SET USER IN TSS FILES UTIL0164
STQ TSSFIL+1 .. SPECIFIED IN AC-MQ UTIL0165
REM UTIL0166
SETSS TSX SVX,7 ENTRY IF TSSFIL ALREADY SET UP UTIL0167
TSX GETUFD,4 PICK UP USRFIL IF NOT DONE ALREADY UTIL0168
AXT .TSS.,2 POINT AT TSSFIL PORTION OF TABLE UTIL0169
TRA *+3 SKIP UTIL0170
REM UTIL0171
SETUFD TSX SVX,7 ROUTINE TO RESET USER FROM TSS FILES UTIL0172
AXT .USR.,2 POINT AT TOP OF USER PORTION OF TABLE UTIL0173
SET1 NZT* UFDTBL,2 IF THIS ENTRY LOOKS FISHY, UTIL0174
AXT .DET.,2 DETACH USER INSTEAD UTIL0175
CAL* UFDTBL,2 PICK UP FILE DIRECTORY NAME1 UTIL0176
LDQ* UFDTBL+1,2 .. AND NAME2 UTIL0177
TXL *+3,2,.USR. SKIP CHKTSS IF NOT TSSFIL AREA UTIL0178
* TSX CHKTSS,4 USER WANTS TSSFIL, CHECK TABLE UTIL0179
* PAR *+2 POSSIBLE ERROR, RESET TO OWN FILES UTIL0180
TSX ATTFIL,4 LEGAL FILE DIRECTORY, ATTACH HIM UTIL0181
TIX SET1,2,2 ERROR RETURN, TRY NEXT LEVEL UTIL0182
LDI URCODE PICK UP USER RESTRICTION CODE UTIL0183
SIR RTSSBT SET TSSFIL RESTRICTION BIT UTIL0184
STL TSSFSW AND TSSFIL SWITCH UTIL0185
TXH *+3,2,.USR. IF USER ENDS UP IN TSS FILES, SKIP UTIL0186
RIR RTSSBT ELSE RESET BIT UTIL0187
STZ TSSFSW AND SWITCH UTIL0188
OSI RCODE,1 AND RESTORE POSSIBLE RESTRICTION BIT UTIL0189
STI URCODE SAVE AS NEW USER RESTRICTION CODE UTIL0190
REM UTIL0191
X1 AXT -,1 RESTORE XRS UTIL0192
X2 AXT -,2 .. UTIL0193
X4 AXT -,4 .. UTIL0194
ZET ERRSW WAS AN ERROR ENCOUNTERED UTIL0195
TRA 1,4 YES, ERROR RETURN UTIL0196
TRA 2,4 NO, NORMAL RETURN UTIL0197
REM UTIL0198
SVX SXA X1,1 SETUP ROUTINE FOR SETSS/SETUFD UTIL0199
SXA X2,2 .. UTIL0200
SXA X4,4 .. UTIL0201
LAC USER,1 PICK UP USER NO. UTIL0202
STZ ERRSW RESET ERROR SWITCH UTIL0203
TRA 1,7 RETURN UTIL0204
REM UTIL0205
RSTUFD NZT TSSFSW ROUTINE TO RESTORE USER ATTACHMENT UTIL0206
TRA SETUFD USER FILES UTIL0207
TRA SETSS OR TSS FILES UTIL0208
REM UTIL0209
REM UTIL0210
TSSTOP PZE TSSFIL POINTERS TO DIRECTORY NAMES UTIL0211
PZE TSSFIL+1 .. UTIL0212
USRTOP PZE USRFIL .. UTIL0213
PZE USRFIL+1 .. UTIL0214
PZE PROBN,1 .. UTIL0215
PZE UFDNM,1 .. UTIL0216
DETACH PZE Q0 .. DESPERATION MEASURE, DETACH UTIL0217
PZE Q1 .. UTIL0218
UFDTBL SYN * UTIL0219
REM UTIL0220
.TSS. EQU UFDTBL-TSSTOP UTIL0221
.USR. EQU UFDTBL-USRTOP UTIL0222
.DET. EQU UFDTBL-DETACH UTIL0223
EJECT UTIL0224
REM UTIL0268
REM ..... ATTACH USER TO UFD IN AC-MQ ..... UTIL0269
REM UTIL0270
ATTFIL SXA ATFX4,4 ROUTINE TO ATTACH USER TO UFD UTIL0271
SLW ATFN1 .. UTIL0272
STQ ATFN2 .. UTIL0273
STZ ATTER RESET ERROR SWITCH UTIL0274
CALL SETUSR(Q2,TRCODE,M0,M0,M0,M0) UTIL0275
SETAB LA,*,* MEMORY SWITCHES FOR CALLS FROM MEM. A UTIL0276
TSX ATTNAM,4 SEE IF ATTACH CALL NEEDED UTIL0277
PAR TEMP,,2 .. UTIL0278
CAL TEMP .. UTIL0279
ERA ATFN1 .. UTIL0280
TNZ ATTFL. .. YES UTIL0281
CAL TEMP+1 .. UTIL0282
ERA ATFN2 .. UTIL0283
TZE RSUSR .. NO UTIL0284
ATTFL. CALL ATTACH(ATFN1,ATFN2,PRDIAG,ATTER) UTIL0285
RSUSR CALL SETUSR(Q2,URCODE,M0,M0,M0,M0) UTIL0286
ATFX4 AXT **,4 .. UTIL0287
NZT ATTER CHECK FOR ERROR UTIL0288
TRA 2,4 NO, NORMAL RETURN UTIL0289
STL ERRSW SET ERROR SWITCH FOR SETUFD UTIL0290
TRA 1,4 ERROR RETURN UTIL0291
REM UTIL0292
REM UTIL0293
CHKDIR LAC USER,7 MAY USER ACCESS FILE DIRECTORY UTIL0294
LDI URCODE .. GET RESTRICTION CODE UTIL0295
RFT RCALBT .. SEE IF PRIVILEGED UTIL0296
TRA 4,4 .. YES, ANY UFD IS OK UTIL0297
CAL* 1,4 CHECK PROBN UTIL0298
ERA PROBN,7 .. UTIL0299
TNZ CHKCUR .. SKIP IF NO MATCH UTIL0300
CAL* 2,4 .. CHECK PROGN UTIL0301
ERA UFDNM,7 .. UTIL0302
TZE 4,4 .. OWN UFD IS OK UTIL0303
RNT RCOMBT MAY USER USE COMMON FILES UTIL0304
TRA CHKCUR .. NO UTIL0305
CAL* 2,4 .. SEE IF COMMON FILE UTIL0306
ERA CMFL00 .. UTIL0307
ANA =O777777770000 .. UTIL0308
TZE 4,4 .. COMMON FILE IS OK. UTIL0309
CHKCUR CAL* 1,4 IS THIS USER'S CURRENT UFD UTIL0310
ERA USRFIL .. UTIL0311
TNZ* 3,4 NO, CAN'T GET THERE FROM HERE UTIL0312
CAL* 2,4 .. UTIL0313
ERA USRFIL+1 .. UTIL0314
TZE 4,4 .. CURRENT ATTACHED UFD IS OK UTIL0315
TNZ* 3,4 .. ANYTHING ELSE NOT ALLOWED UTIL0316
EJECT UTIL0317
REM UTIL0400
REM ..... STORAGE AND CONSTANTS ..... UTIL0401
REM UTIL0402
SBIND PZE INDICATOR FOR STANDBY USER SEARCH UTIL0403
UTM PZE TIME USED BY USER UTIL0404
LOSER PZE USER NUMBER OF LOSER UTIL0405
TGRP PZE USER GROUP NUMBER FOR FINDSB UTIL0406
TRCODE VFD O18/0,O18/RCALBT UTIL0407
ERRSW PZE ERROR FLAG FOR SETUFD UTIL0409
ATTER PZE ERROR FLAG FOR ATTFIL UTIL0410
ATFN1 PZE FILE DIRECTORY NAME FOR ATTFIL UTIL0411
ATFN2 PZE .. UTIL0412
BLOCK BSS 6 DIAGNOSTIC STORAGE FOR IODIAG UTIL0413
REM UTIL0414
PZE
RMT * UTIL0416
END UTIL0418
$BLOCK BCD,0084
END UTIL0418
* FAP
$BLOCK BCD,1344
* R. DALEY ..... PACKAGE TO ALLOW RUNNING OF FILE SYSTEM OUTSIDE OF CTSSIOPE0001
LINK ON IOPE0002
REM IOPE0003
ENTRY SETIO TO INITIALIZE IOPAC AND FILE SYSTEM IOPE0004
ENTRY GETIME TO GET DATE AND TIME OF DAY IOPE0005
ENTRY GETELT TO GET ELAPSE TIME SINCE LAST CALL IOPE0006
ENTRY TPWAIT TO WAIT AND CHECK CHANNEL FLAGS IOPE0007
ENTRY FERRTN TO SET RETURN FOR UNDEFINED ERRORS IOPE0008
ENTRY TILOCK TO SET RETURN ON INTERLOCKED FILES IOPE0009
ENTRY EXIT TO UPDATE FILE SYSTEM AND TERMINATE IOPE0010
ENTRY PRINT TO PRINT ON ON-LINE PRINTER IOPE0011
ENTRY PUNCH TO PUNCH A CARD ON LINE IOPE0012
ENTRY EPRINT TO PRINT A LINE DURING A TRAP IOPE0013
ENTRY WRFLX SYNONOMOUS WITH 'PRINT' IOPE0014
ENTRY WRTOPR SYNONYMOUS WITH 'EPRINT' IOPE0015
ENTRY CMEXIT TO RETURN TO INTERRUPTED PROGRAM IOPE0016
ENTRY STZ.A) SPECIAL REFERENCE FROM TAPE ADAPTER IOPE0017
ENTRY FILXIT TO RETURN TO CALLER OF FILE SYSTEM IOPE0018
ENTRY ALLSAV TO SAVE MACHINE CONDITIONS ON TRAP IOPE0019
ENTRY ALLRST TO RESTORE MACHINE CONDITIONS IOPE0020
ENTRY ENABLE POINTER ENTRY TO COMMON ENABLE WORD IOPE0021
REM IOPE0022
EXTERN BTOC,CTIME,PRNTER IOPE0023
REM IOPE0024
HITRAP BOOL 61 HIGHEST CHANNEL INTERRUPT LOCATION IOPE0025
Z TAPENO A7 CHRONOLOG CLOCK SET AS TAPE A7 IOPE0026
DELAY EQU 4500 9 MILLESECOND DELAY AFTER READING CHRONOLOGIOPE0027
CLOCK EQU 5 INTERVAL TIMER AND INTERRUPT CLOCK IOPE0028
CLKLOC EQU 6 ILC SVAED HERE ON CLOCK TRAP IOPE0029
CLKTRP EQU 7 TRANSFER FROM HERE ON CLOCK TRAP IOPE0030
ATRLOC EQU 10 ILC SAVED HERE ON CHANNEL 'A' TRAP IOPE0031
ADCTRP EQU 11 TRANSFER FROM HERE ON CHANNEL 'A' TRAP IOPE0032
BTRLOC EQU 12 ILC SAVED HERE ON CHANNEL 'B' TRAP IOPE0033
BDCTRP EQU 13 TRANSFER FROM HERE ON CHANNEL 'B' TRAP IOPE0034
B EQU 0 MEMORY B SWITCH, ('0' FOR A, '1' FOR B) IOPE0035
STBL EQU 21+10*22 A.F.S.T. LENGTH, SPACE FOR 10 FILES IOPE0036
1QL EQU 1+9*10 DISK/DRUM QUEUE LENGTH IOPE0037
2QL EQU 0 NULL QUEUE (DISK USES DRUM QUEUE) IOPE0038
3QL EQU 25 TAPE QUEUE LENGTH IOPE0039
REM IOPE0040
OVLBGN MACRO MACRO USED AT BEGINNING OF SECTION IOPE0041
UNLIST .. TO BE OVER WRITTEN IOPE0042
OVLORG SET * SAVE CURRENT LOCATION COUNTER IOPE0043
OVLBGN END IOPE0044
REM IOPE0045
OVLEND MACRO MACRO USED AT END OF SECTION IOPE0046
ORG OVLORG .. TO BE OVER WRITTEN IOPE0047
LIST .. IOPE0048
OVLEND END IOPE0049
REM IOPE0050
WHEN MACRO A,TFIND,LOC,OP,ADDR,TAG,DECR WHENEVER MACRO IOPE0051
IFF 1,TFIND,T IOPE0052
GENIF A,0,0,LOC,OP,ADDR,TAG,DECR, IOPE0053
IFF 1,TFIND,F IOPE0054
GENIF A,0,1,LOC,OP,ADDR,TAG,DECR, IOPE0055
WHEN END IOPE0056
REM IOPE0057
GENIF MACRO IF1,IF2,IF3,LOC,OP,ADDR,TAG,DECR IOPE0058
IFF IF1,IF2,IF3 IOPE0059
GENOP LOC,OP,ADDR,TAG,DECR, IOPE0060
GENIF END IOPE0061
REM IOPE0062
GENOP MACRO LOC,OP,ADDR,TAG,DECR GENERATE OPERATION IOPE0063
PMC ON IOPE0064
LOC OP ADDR,TAG,DECR IOPE0065
PMC OFF IOPE0066
GENOP END IOPE0067
REM IOPE0068
EJECT IOPE0069
REM IOPE0070
REM SETIO ..... INITIALIZE FILE SYSTEM AND I/O PACKAGE IOPE0071
REM IOPE0072
SETIO ENB =0 ENTRY TO INITIALIZE IOPAC AND FILE SYSTEM IOPE0073
STL ENBSW INDICATE TO ALLSAV THAT TRAPS ARE LEGAL IOPE0074
LMTM INSURE 7-TAG (7094) MODE IOPE0075
SXA SETX1,1 IOPE0076
SXA SETX2,2 IOPE0077
SXA SETX4,4 IOPE0078
CAL* 1,4 PICK UP AUTHOR FROM CALLER IOPE0079
SLW AUTHOR .. IOPE0080
CLA 1,4 CHECK IF TAPE STRATEGY NEEDED IOPE0081
TMI FIRST SKIP IF TAPE STRATEGY NOT NEEDED IOPE0082
CAL =O3000003 OTHERWISE SET UP TRAPS FOR TAPE STRATEGY IOPE0083
ORS ENABLE .. IOPE0084
CAL ENABLE SET UP ENABLE FOR CHANNEL 'A' ONLY IOPE0085
ANA =O1000001 .. IOPE0086
SLW ENBIFA .. ONLY IF CHANNEL 'A' ENABLED ALREADY IOPE0087
REM IOPE0088
FIRST TRA *+1 FIRST PASS SWITCH IOPE0089
TSX RDCLOC,4 READ CHRONOLOG CLOCK FIRST TIME ONLY IOPE0090
STL FIRST AND CLOSE THIS PATH IOPE0091
RDCA RESET DATA CHANNEL 'A' IOPE0092
RDCB RESET DATA CHANNEL 'B' IOPE0093
REM IOPE0094
WHEN B,T,,OVLBGN,,,,, IOPE0095
REM IOPE0096
AXT HITRAP+1,4 SAVE FMS CONTROL LOCATIONS AND FMS CLOCK IOPE0097
CAL HITRAP+1,4 .. IOPE0098
SLW SAVFMS,4 .. IOPE0099
TIX *-2,4,1 .. IOPE0100
REM IOPE0101
WHEN B,T,,OVLEND,,,,, IOPE0102
REM IOPE0103
AXT HITRAP+1,4 CLEAR OUT TRAP AND INTERRUPT LOCATIONS IOPE0104
WHEN B,T,,SEA,,,,, IOPE0105
STZ HITRAP+1,4 .. IOPE0106
TIX *-1,4,1 .. IOPE0107
WHEN B,T,,SEB,,,,, IOPE0108
CAL CLKINT SET FOR FOR INTERVAL TIMER CLOCK TRAP IOPE0109
LDQ ATRAP .. CHANNEL 'A' TRAP IOPE0110
LDI BTRAP .. AND CHANNEL 'B' TRAP IOPE0111
WHEN B,T,,SEA,,,,, IOPE0112
SLW CLKTRP .. CLOCK TRAP IOPE0113
STQ ADCTRP .. CHANNEL 'A' TRAP IOPE0114
STI BDCTRP .. CHANNEL 'B' TRAP IOPE0115
WHEN B,T,,SEB,,,,, IOPE0116
REM IOPE0117
REM ..... INITIALIZE FILE I/O SYSTEM ........................IOPE0118
REM IOPE0119
TSX $IOINIT,4 FILE SYSTEM INITIALIZATION ENTRY IOPE0120
PTH IOERTN .. ERROR RETURN IOPE0121
PTH DATEYR .. TODAY'S DATE IN BCD IOPE0122
PTH TIMNOW .. TIME OF DAY IN 60THS OF A SECOND IOPE0123
PTH ENABLE .. COMMON ENABLE WORD IOPE0124
TSX $CHNGUS,4 SET USER NO. 1 AS USER OF FILE SYSTEM IOPE0125
PTH =1 .. IOPE0126
TSX $USTAT,4 SET UP STORAGE FOR FILE SYSTEM IOPE0127
PTH STATBL,,STBL .. IOPE0128
PTH QUEUE1,,1QL .. IOPE0129
PTH QUEUE2,,2QL .. IOPE0130
PTH QUEUE3,,3QL .. IOPE0131
TSX $SETRAP,4 SET UP SUPERVISOR INTERRUPT LOCATION IOPE0132
PTH SSTRAP .. IOPE0133
TSX $SETUSR,4 SET UP USER OPTIONS IOPE0134
PTH =1 .. FOR USER NO. 1 IOPE0135
PTH =O016021777777 .. PRIVILEGED COMMND (BACKGR) IOPE0136
PTH AUTHOR .. AUTHOR FROM CALL TO SETIO IOPE0137
PTH =O77777000000 .. PROTECTION LIMITS IF NEEDED IOPE0138
PTH =0 .. ZERO RELOCATION IOPE0139
PTH =1 .. GIVE USER HIGHEST PRIORITY IOPE0140
TSX $SETAB,4 SET ALL ENTRIES TO COME FROM 'HOME' MEMORY IOPE0141
PTH HOME .. IOPE0142
PTH HOME .. IOPE0143
PTH HOME .. IOPE0144
REM IOPE0145
CAL TIMNOW COMPUTE ANY TIME WASTED IN INITIALIZATION IOPE0146
WHEN B,T,,SEA,,,,, IOPE0147
ADM CLOCK .. IOPE0148
WHEN B,T,,SEB,,,,, IOPE0149
SLW TIMNOW .. IOPE0150
REM IOPE0151
TSX STCLOC,4 START UP INTERVAL TIMER CLOCK NOW IOPE0152
SETX1 AXT **,1 IOPE0153
SETX2 AXT **,2 IOPE0154
SETX4 AXT **,4 IOPE0155
ENB ENABLE INSURE ALL TRAPS ENABLED IOPE0156
TRA 2,4 AND RETURN IOPE0157
REM IOPE0158
EJECT IOPE0159
REM IOPE0160
REM STCLOC/CLKINT ....... BASIC CLOCK SECTION ...............IOPE0161
REM IOPE0162
STCLOC CAL CLKTIM RESTART CLOCK TO RUN FOR CLKTIM IOPE0163
COM .. IOPE0164
ADD =1 .. IOPE0165
WHEN B,T,,SEA,,,,, IOPE0166
STO CLOCK .. NOTE 'P' BIT NOT STORED IOPE0167
WHEN B,T,,SEB,,,,, IOPE0168
TRA 1,4 .. IOPE0169
REM IOPE0170
WHEN B,F,CLKINT,TTR,*+1,,,, IOPE0171
WHEN B,T,CLKINT,TIB,*+1,,,, IOPE0172
REM IOPE0173
WHEN B,T,,SEB,,,,, IOPE0174
REM IOPE0175
ENB =0 HERE ON ALL INTERVAL TIMER 'CLOCK' TRAPS IOPE0176
SXA TRPIR4,4 SAVE IR4 IOPE0177
TSX ALLSAV,4 AND REST OF MACHINE CONDITIONS IOPE0178
WHEN B,T,,SEA,,,,, PICK UP TRAP FLAGS IOPE0179
CAL CLKLOC .. IOPE0180
WHEN B,T,,SEB,,,,, .. IOPE0181
SLW RTNLOC .. IOPE0182
ENK PICK UP CONSOLE KEYS IOPE0183
STQ CLKEYS SAVE KEYS IOPE0184
LDI CLKEYS KEYS TO SI IOPE0185
RNT 40000 IS KEY '21' DOWN IOPE0186
TRA KEYSUP NO, SKIP IOPE0187
ZET KEYSW YES, IS THIS A PREVIOUS REQUEST IOPE0188
TRA SKPKEY YES, IGNORE REDUNDANT REQUEST IOPE0189
STL KEYSW NO, SERVICE NEW KEY REQUEST IOPE0190
TSX BTOC,4 CONVERT LEFT-HALF MQ TO BCD IOPE0191
SLW KREAD+2 .. IOPE0192
TSX BTOC,4 RIGHT-HALF IOPE0193
SLW KREAD+3 .. IOPE0194
TSX EPRINT,4 PRINT MESSAGE IOPE0195
PON KREAD,,4 (DOUBLE SPACE) IOPE0196
CAL CLKEYS KEYS TO AC IOPE0197
ANA =O7777 IGNORE ALL BUT KEYS 24-35 IOPE0198
PAX 0,4 23-35 TO IR4 IOPE0199
TNX BADKEY,4,6 IGNORE FMS KEY SETTINGS (0-6) IOPE0200
TNX KEYSOK,4,4 SKIP IF KEYS SET FOR TAPE STRATEGY MODULE IOPE0201
BADKEY TSX EPRINT,4 PRINT 'ILLEGAL KEY SETTING, TRY AGAIN.' IOPE0202
KEYSNG,,8 .. IOPE0203
TRA SKPKEY IOPE0204
REM IOPE0205
KEYSOK SXA CLKEYS,4 SAVE KEY SETTING FOR TAPE STRATEGY MODULE IOPE0206
TSX EPRINT,4 PRINT '****** PLEASE PUT KEY 21 UP ******' IOPE0207
PP21UP,,6 .. IOPE0208
TSX $TAPKEY,4 CALL TAPE STRATEGY MODULE IOPE0209
PTH CLKEYS .. WITH KEY SETTING IOPE0210
TRA SKPKEY IOPE0211
REM IOPE0212
KEYSUP STZ KEYSW HERE IF KEY 21 UP, RESET SWITCH IOPE0213
REM IOPE0214
SKPKEY TSX ADDTIM,4 UPDATE TIME COUNTERS IOPE0215
CAL TOTTIM UPDATE TOTAL TIME SYSTEM HAS RUN IOPE0216
ADD CLKTIM .. IOPE0217
WHEN B,T,,SEA,,,,, IOPE0218
ADM CLOCK .. IOPE0219
WHEN B,T,,SEB,,,,, IOPE0220
SLW TOTTIM .. IOPE0221
TSX STCLOC,4 RESTART INTERVAL TIMER FOR 'CLKTIM' IOPE0222
TSX ALLRST,4 RESTORE USER'S MACHINE CONDITIONS IOPE0223
TSX CMEXIT,4 AND RETURN TO INTERRUPTED PROGRAM IOPE0224
LXA TRPIR4,4 .. IOPE0225
RTNLOC .. IOPE0226
REM IOPE0227
* * * * * * * * * * * * * * * * * * * * * * * * IOPE0228
REM IOPE0229
REM ... ATRAP/BTRAP ... RECORD TRAPS FROM CHANNELS A AND B ..IOPE0230
REM IOPE0231
WHEN B,F,ATRAP,TTR,*+1,,,, IOPE0232
WHEN B,T,ATRAP,TIB,*+1,,,, IOPE0233
REM IOPE0234
WHEN B,T,,SEB,,,,, IOPE0235
REM IOPE0236
ENB =0 HERE FOR TRAP FROM CHANNEL 'A' IOPE0237
SXA TRPIR4,4 SAVE IR4 IOPE0238
TSX ALLSAV,4 AND REST OF MACHINE CONDITIONS IOPE0239
WHEN B,T,,SEA,,,,, PICK UP TRAP FLAGS IOPE0240
CAL ATRLOC .. IOPE0241
WHEN B,T,,SEB,,,,, .. IOPE0242
SLW RTNLOC .. IOPE0243
ATRAP1 TSX $TRAPA,4 GIVE TRAP TO TAPE I/O ADAPTER IOPE0244
PTH RTNLOC .. IOPE0245
TRA IGNTRP SKIP IF TRAP TAKEN BY ADAPTER IOPE0246
AXC 1,1 POINTER TO TRAP FLAGS FOR CHANNEL A IOPE0247
TRA RECTRP AND RECORD THIS TRAP IOPE0248
REM IOPE0249
WHEN B,F,BTRAP,TTR,*+1,,,, IOPE0250
WHEN B,T,BTRAP,TIB,*+1,,,, IOPE0251
REM IOPE0252
WHEN B,T,,SEB,,,,, IOPE0253
REM IOPE0254
ENB =0 HERE FOR TRAP FROM CHANNEL 'B' IOPE0255
SXA TRPIR4,4 SAVE IR4 IOPE0256
TSX ALLSAV,4 AND REST OF MACHINE CONDITIONS IOPE0257
WHEN B,T,,SEA,,,,, PICK UP TRAP FLAGS IOPE0258
CAL BTRLOC .. IOPE0259
WHEN B,T,,SEB,,,,, .. IOPE0260
SLW RTNLOC .. IOPE0261
TSX $TRAPB,4 GIVE TRAP TO TAPE I/O ADAPTER IOPE0262
PTH RTNLOC .. IOPE0263
TRA IGNTRP SKIP IF TRAP TAKEN BY ADAPTER IOPE0264
AXC 2,1 POINTER TO TRAP FLAGS FOR CHANNEL B IOPE0265
REM IOPE0266
RECTRP CAL RTNLOC RECORD TRAP FLAGS FOR 'TPWAIT' IOPE0267
ORS TPFLAG,1 .. IOPE0268
IGNTRP TSX ALLRST,4 RESTORE USER'S MACHINE CONDITIONS IOPE0269
TSX CMEXIT,4 RETURN TO INTERRUPTED PROGRAM IOPE0270
LXA TRPIR4,4 .. IOPE0271
RTNLOC .. IOPE0272
REM IOPE0273
EJECT IOPE0274
REM IOPE0275
REM ... GETIME ... RETURN TIME OF DAY IN LAC AND DATE IN MQ .IOPE0276
REM IOPE0277
GETIME SXA *+2,4 IOPE0278
TSX ADDTIM,4 COMPUTE TIME TO NEAREST 60TH OF A SECOND IOPE0279
AXT **,4 IOPE0280
CAL TIMNOW RETURN TIME OF DAY IN LOGICAL AC IOPE0281
LDQ DATEYR AND DATE IN MQ IOPE0282
ENB ENABLE REENABLE IOPE0283
TRA 1,4 AND RETURN IOPE0284
REM IOPE0285
* * * * * * * * * * * * * * * * * * * * * * * * IOPE0286
REM IOPE0287
REM ... GETELT ... RETURN ELAPSE TIME IN LOGICAL AC ........ IOPE0288
REM IOPE0289
GETELT SXA *+2,4 IOPE0290
TSX ADDTIM,4 COMPUTE TIME TO NEAREST 60TH OF A SECOND IOPE0291
AXT **,4 IOPE0292
CAL ELAPSE RETURN ELAPSE TIME IN LOGICAL AC IOPE0293
STZ ELAPSE AND RESET ELAPSE TIME IOPE0294
ENB ENABLE REENABLE IOPE0295
TRA 1,4 AND RETURN IOPE0296
REM IOPE0297
* * * * * * * * * * * * * * * * * * * * * * * * IOPE0298
REM IOPE0299
REM ... TPWAIT ... WAIT ON CHANNEL AND CHECK FLAGS ..........IOPE0300
REM IOPE0301
TPWAIT SXA TWATX4,4 IOPE0302
CAL 1,4 PZE CHANNO IOPE0303
PAC 0,4 -CHANNEL NO. TO IR4 IOPE0304
ENB ENABLE INSURE ALL CHANNELS ENABLED IOPE0305
STL TCOAB,4 WAIT ON CHANNEL IOPE0306
XEC TCOAB,4 .. IOPE0307
NOP INSURE ALL TRAPS TAKEN IOPE0308
LDI TPFLAG,4 PICK UP CHANNEL STATUS FLAGS IOPE0309
STZ TPFLAG,4 .. AND RESET THEM IOPE0310
TWATX4 AXT **,4 RESTORE CALLER'S IR4 IOPE0311
LFT 2 WAS REDUNDANCY CHECK FLAG ON IOPE0312
TRA 2,4 YES, TAKE TAPE CHECK EXIT (2,4) IOPE0313
LFT 4 NO, WAS EOF FLAG ON IOPE0314
TRA 3,4 YES, TAKE EOF EXIT (3,4) IOPE0315
TRA 4,4 NO, TAKE NORMAL EXIT (4,4) IOPE0316
REM IOPE0317
EJECT IOPE0318
REM IOPE0319
REM ... FERRTN ... SET RETURN FOR UNDEFINED ERRORS IOPE0320
REM IOPE0321
FERRTN CAL 1,4 ERROR RETURN LOCATION (PZE RTNLOC) IOPE0322
STA FERTN SAVE IT IOPE0323
TRA 2,4 AND RETURN IOPE0324
REM IOPE0325
IOERTN ZET FERTN HERE FOR ERROR RETURN FROM FILE SYSTEM IOPE0326
TRA* FERTN TAKE USER EXIT IF SPECIFIED IOPE0327
TSX PRNTER,4 OTHERWISE, PRINT FILE SYSTEM ERROR MESSAGE IOPE0328
TSX PRINT,4 PRINT 'NO ERROR RETURN SPECIFIED' IOPE0329
NOERTN,,5 .. IOPE0330
TRA EXIT AND EXIT IOPE0331
REM IOPE0332
* * * * * * * * * * * * * * * * * * * * * * * * IOPE0333
REM IOPE0334
REM ... TILOCK ... SET RETURN ON INTERLOCKED FILES IOPE0335
REM IOPE0336
TILOCK CAL 1,4 INTERLOCK RETURN LOCATION (PZE RTNLOC) IOPE0337
STA UILOCK SAVE IT IOPE0338
TRA 2,4 AND RETURN IOPE0339
REM IOPE0340
SSTRAP ENB =0 HERE ON INTERRUPT FROM FILE SYSTEM IOPE0341
CAL* 3,4 PICK UP USER'S IR4 FROM CALL IOPE0342
STA SSTIR4 SAVE USER'S IR4 IOPE0343
CAL* 2,4 PICK UP INTERRUPT CODE (1-6) IOPE0344
PAX 0,5 INTO IR5 IOPE0345
TXL IGNINT,5,3 IGNORE CODES 1-3 IOPE0346
TXL FILOCK,5,4 SKIP ON FILE INTERLOCKED (CODE 4) IOPE0347
TRA IGNINT IGNORE ALL OTHER INTERRUPT CODES IOPE0348
REM IOPE0349
FILOCK NZT UILOCK HAS USER SPECIFIED INTERLOCKED RETURN IOPE0350
TRA IGNINT NO, IGNORE INTERRUPT IOPE0351
SSTIR4 AXT **,4 YES, RESTORE USER'S IR4 IOPE0352
ENB ENABLE RE-ENABLE ALL TRAPS IOPE0353
TRA* UILOCK AND TAKE USER INTERLOCKED RETURN IOPE0354
REM IOPE0355
IGNINT TRA 6,4 HERE TO IGNORE INTERRUPT FROM FILE SYS. IOPE0356
REM IOPE0357
EJECT IOPE0358
REM IOPE0359
REM ... EXIT ... TERMINATION ROUTINE, EXIT TO FMS OR STOP ...IOPE0360
REM IOPE0361
EXIT TSX $IOFINI,4 INSURE FILE SYSTEM UPDATED IOPE0362
PTH *+1 .. IGNORE ERROR RETURN IOPE0363
TSX PRINT,4 PRINT MESSAGE IOPE0364
PON EXITMS,,2 .. IOPE0365
ENB =0 DISABLE ALL TRAPS IOPE0366
TCOA * WAIT UNTIL ALL CHANNEL ACTIVITY CEASES IOPE0367
TCOB * .. IOPE0368
RDCA AND RESET CHANNELS A, IOPE0369
RDCB .. AND B IOPE0370
REM IOPE0371
WHEN B,T,,OVLBGN,,,,, IOPE0372
REM IOPE0373
AXT HITRAP+1,4 RESTORE FMS LOWER CORE IOPE0374
CAL SAVFMS,4 .. IOPE0375
SLW HITRAP+1,4 .. IOPE0376
TIX *-2,4,1 .. IOPE0377
REM IOPE0378
AXT 10,4 RELOAD FMS FROM A1 IOPE0379
EXIT1 REWA 1 .. IOPE0380
RTBA 1 .. IOPE0381
RCHA LDFIOP .. IOPE0382
TCOA * .. IOPE0383
TRCA A1BAD .. IOPE0384
TEFA A1BAD .. IOPE0385
RTBA 1 .. SKIP CARD TO TAPE RECORD IOPE0386
RTBA 1 .. SKIP DUMP RECORD IOPE0387
TRA 1 EXIT TO FIOP TO LOAD SIGN-ON RECORD IOPE0388
REM IOPE0389
A1BAD TIX EXIT1,4,1 COUNT ERRORS IOPE0390
HTR EXIT1 STOP ON TOO MANY ERRORS IOPE0391
REM IOPE0392
WHEN B,T,,OVLEND,,,,, IOPE0393
REM IOPE0394
WHEN B,T,,HTR,*,,,, IOPE0395
REM IOPE0396
EJECT IOPE0397
REM IOPE0398
REM .. PRINT/PUNCH/EPRINT .. ON LINE PRINT AND PUNCH ROUTINESIOPE0399
REM IOPE0400
WRFLX SYN * SIMULATED TYPEWRITER IOPE0401
PRINT ENB =0 DISABLE ALL TRAPS IOPE0402
STL PRSW ROUTINE TO PRINT ON LINE IOPE0403
TRA PUNCH+2 .. IOPE0404
REM IOPE0405
PUNCH ENB =0 DISABLE ALL TRAPS IOPE0406
STZ PRSW ROUTINE TO PUNCH CARD ON LINE IOPE0407
SXA PRPUX4,4 SAVE IR4 FROM CALL TO 'PRINT' OR 'PUNCH' IOPE0408
LDQ 1,4 PICK UP USER CALLING SEQUENCE IOPE0409
STQ *+2 SET IN CALL IOPE0410
TSX WPRPU,4 CALL PRINT/PUNCH ROUTINE IOPE0411
**,,** .. IOPE0412
TSX CHKCHA,4 CHECK FOR LOST TRAP ON CHANNEL 'A' IOPE0413
ENB ENABLE RE-ENABLE IOPE0414
PRPUX4 AXT **,4 RESTORE USER'S IR4 IOPE0415
TRA 2,4 AND RETURN IOPE0416
REM IOPE0417
WRTOPR SYN * USED BY DDIOA IN LIEU OF EPRINT IOPE0418
EPRINT ENB =0 DISABLE ALL TRAPS IOPE0419
STL PRSW ROUTINE TO PRINT DURING ANY TRAP IOPE0420
REM IOPE0421
WPRPU SXA PRX1,1 SAVE XRS. IOPE0422
SXA PRX2,2 .. IOPE0423
SXA PRX4,4 .. IOPE0424
TSX SAVCHA,4 DISABLE AND SAVE CHANNEL 'A' IOPE0425
LXA PRX4,4 RELOAD CALLER'S XR4. IOPE0426
CAL 1,4 PZE FIRST,,N IOPE0427
PDX ,2 GET WORD COUNT IOPE0428
PXA ,2 .. IOPE0429
ACL 1,4 BES LOCATION OF USER DATA IOPE0430
STA PRPU.2 FOR WORD PICKUP. IOPE0431
NZT PRSW IF CALL IS FOR PUNCH, IOPE0432
TRA PRPU.1 SKIP SENSE INSTRUCTION SETUP IOPE0433
ARS 15 ELSE, PREFIX TO X7 IOPE0434
PDC ,7 .. IOPE0435
CAL SPRTBL,7 PICK UP USER REQUESTED SPRA IOPE0436
SLW SPRA SAVE IOPE0437
SLW SPRX THERE ALSO IN CASE BLANK LINE IOPE0438
REM IOPE0439
PRPU.1 AXT 48,7 CLEAR CARD IMAGE BUFFER IOPE0440
STZ CBUF2+48,7 .. IOPE0441
TIX *-1,7,1 .. IOPE0442
CAL =-0 INITIALIZE COLUMN MARKER TO FIRST COLUMN IOPE0443
SLW PRCOL .. IOPE0444
AXT 1,4 INITIALIZE CHARACTER COUNT IOPE0445
AXT 1,5 START ON RIGHT HALF IOPE0446
AXT 1,6 OF FIRST BUFFER IOPE0447
TXL DONE,2,0 SKIP FOR ZERO WORD COUNT. IOPE0448
STZ DONESW INDICATE THERE IS MORE PRINTING TO DO IOPE0449
REM IOPE0450
PRPU.2 LDQ -,2 LOAD FIRST OR NEXT USER DATA WORD IOPE0451
AXT 6,1 SIX CHARACTERS PER WORD IOPE0452
PRPU.3 ZAC IOPE0453
LGL 6 CHARACTER TO AC IOPE0454
STQ MQ.T SAVE PARTIAL MQ CONTENTS IOPE0455
LGR 1 DIVIDE BY 2, SAVE REMAINDER IOPE0456
PAC ,7 TABLE POSITION FOR CHARACTER IOPE0457
CAL CHRTB,7 GET PUNCH CONFIGURATION FOR THIS IOPE0458
TQP *+2 CHARACTER IOPE0459
ARS 18 TO ADDRESS IOPE0460
PAI .. IOPE0461
PAC ,7 TRANSFER ADDRESS IF CONTROL CHAR. IOPE0462
RFT 100000 TEST FOR SPECIAL CHARACTER IOPE0463
TRA 0,7 YES, GO PROCESS SPECIAL CHARACTER IOPE0464
LGR 12 ORDINARY CHARACTER, PUNCHES TO MQ IOPE0465
CAL PRCOL PICKUP COLUMN MARKER IOPE0466
AXT 24,7 24 WORD CARD IMAGE BUFFER, EVERY IOPE0467
TQP *+2 IF BIT IS OFF, IGNORE. IOPE0468
XEC ORINBT,5 ELSE, ADD PUNCH TO PROPER BUFFER. IOPE0469
RQL 1 ONWARD TO NEXT ROW OF CARD THIS COLUMN IOPE0470
TIX *-3,7,2 .. IOPE0471
ARS 1 MOVE COLUMN MARKER TO NEXT COLUMN IOPE0472
TXI *+1,4,1 INCREMENT WORD COUNT IOPE0473
TXH DONE,4,120 SEE IF OUT OF BOUNDS IOPE0474
TNZ PRPU.4 IF DONE WITH HALF OF CARD, IOPE0475
CAL =-0 REINITIALIZE COLUMN MARKER IOPE0476
TXI *+1,5,1 INDICATE ON NEXT HALF OF CARD IOPE0477
TIX PRPU.5,5,2 IF TWO HALVES DONE, GO PRINT BUFFER OUT IOPE0478
PRPU.4 SLW PRCOL SAVE COLUMN MARKER FOR NEXT CHARACTER IOPE0479
SKP LDQ MQ.T RESTORE PARTIAL MQ. ENTER HERE TO IGNORE IOPE0480
TIX PRPU.3,1,1 GO GET NEXT CHARACTER IOPE0481
TIX PRPU.2,2,1 WORD EXHAUSTED, GO GET NEXT WORD IOPE0482
DONE STL DONESW FINISHED, INDICATE LAST BUFFER TO PRINT. IOPE0483
PRPU.5 ZET PRSW ARE WE PRINTING OR PUNCHING. Q IOPE0484
TRA PRNT.1 WE ARE PRINTING, GO TO PRINT ROUTINE IOPE0485
WPUA HERE TO PUNCH CARD. IOPE0486
RCHA PUCOM START CHANNEL IOPE0487
TRA PEND AND SKIP TO EXIT AFTER ONE CARD. IOPE0488
PRNT.1 AXT 24,7 HERE TO PRINT PARTIAL LINE. IOPE0489
ZET* CARD,6 SEE IF BUFFER ALL BLANK IOPE0490
TRA PNOW NON-ZERO WORD FOUND, GO PRINT. IOPE0491
TIX *-2,7,1 .. IOPE0492
TXH PEND,6,1 HAVE WE PRINTED ANYTHING ON THIS LINE IOPE0493
WPRA NO, SELECT PRINTER IOPE0494
SPRX SPRA ** USER REQUESTED SPRA IOPE0495
RCHA IOCD AND DISCONNECT CHANNEL IOPE0496
TRA PRT2.2 SKIP IOPE0497
PNOW WPRA SELECT PRINTER ON CHANNEL 'A' IOPE0498
SPRA SPRA ** USER REQUESTED SPRA OR SPRA 9. IOPE0499
RCHA* PRCOM,6 START UP CHANNEL ON RIGHT BUFFER IOPE0500
PRT2.2 ZET DONESW IS THERE MORE TO DO. Q IOPE0501
TRA PEND NO, SKIP TO END IOPE0502
CAL SPRA9 YES, SET UP TO PRINT RIGHT HALF LINE IOPE0503
SLW SPRA .. IOPE0504
CAL =-0 RESET COLUMN MARKER IOPE0505
TXI PRPU.4,6,1 AND RE-ENTER ROUTINE IOPE0506
REM IOPE0507
PEND TSX RSTCHA,4 HERE WHEN DONE, RESTORE CHANNEL 'A' IOPE0508
PRX1 AXT -,1 RESTORE XRS IOPE0509
PRX2 AXT -,2 .. IOPE0510
PRX4 AXT -,4 .. IOPE0511
TRA 2,4 RETURN TO CALLER. IOPE0512
REM IOPE0513
REM IOPE0514
PZE PRCM2 CHANNEL COMMANDS FOR SECOND BUFFER IOPE0515
PZE PRCM1 .. FOR FIRST BUFFER IOPE0516
PRCOM SYN * .. IOPE0517
REM IOPE0518
PRCM1 IOSP CBUF1,B,24 WHEN PRINTING, THIS SEQUENCE DISCONNECTS IOPE0519
IOCD IOCD 0,,0 13 MS. FASTER THAN IOCD IOPE0520
PRCM2 IOSP CBUF2,B,24 .. IOPE0521
IOCD 0,,0 .. IOPE0522
REM IOPE0523
PUCOM SYN PRCM1 DISCONNECTS 25 MS FASTER THAN IOCD IOPE0524
REM IOPE0525
ORS* CARD+2,6 TO ADD PUNCH INTO RIGHT HALF CARD IOPE0526
ORS* CARD,6 .. LEFT HALF CARD IOPE0527
ORINBT SYN * ' XEC ORINBT,5 ' IOPE0528
REM IOPE0529
PZE CBUF2+24,7 RIGHT HALF LINE IOPE0530
PZE CBUF1+24,7 LEFT HALF LINE IOPE0531
CARD SYN * .. 'ORS* CARD,6' IOPE0532
PZE CBUF2+25,7 FOR RIGHT HALF CARD COL 37-72 IOPE0533
PZE CBUF1+25,7 .. IOPE0534
REM IOPE0535
CBUF2 BSS 24 PRINT BUFFER 2 IOPE0536
CBUF1 BSS 24 PRINT BUFFER 1, PUNCH BUFFER IOPE0537
REM IOPE0538
PRSW PZE -1 PRINT/PUNCH SWITCH IOPE0539
DONESW PZE NON-ZERO IF CONTENTS OF BUFFER IS LAST IOPE0540
MQ.T PZE STORAGE FOR PARTIAL MQ DURING CONVERSION IOPE0541
REM IOPE0542
SPRTBL SYN * TABLE OF VALID SPR'S IOPE0543
NOP NOP (PZE) SINGLE SPACE IOPE0544
SPRA 1 (PON) NEW PAGE IOPE0545
SPRA 2 (PTW) HALF-PAGE SKIP IOPE0546
SPRA9 SPRA 9 (PTH) PRINT RIGHT-HALF LINE IOPE0547
NOP (MZE) SINGLE SPACE IOPE0548
NOP (MON) SINGLE SPACE IOPE0549
SPRA 4 (MTW) DOUBLE SPACE IOPE0550
NOP (MTH) SINGLE SPACE IOPE0551
REM IOPE0552
P12 BOOL 1 BIT FOR 12-PUNCH IOPE0553
P11 BOOL 2 11-PUNCH IOPE0554
P0 BOOL 4 0-PUNCH IOPE0555
P1 BOOL 10 1-PUNCH IOPE0556
P2 BOOL 20 2-PUNCH IOPE0557
P3 BOOL 40 3-PUNCH IOPE0558
P4 BOOL 100 4-PUNCH IOPE0559
P5 BOOL 200 5-PUNCH IOPE0560
P6 BOOL 400 6-PUNCH IOPE0561
P7 BOOL 1000 7-PUNCH IOPE0562
P8 BOOL 2000 8-PUNCH IOPE0563
P9 BOOL 4000 9-PUNCH IOPE0564
REM IOPE0565
CHRTB SYN * CONVERSION TABLE FOR CHARACTERS IOPE0566
PZE P0,,P1 DIGITS 0, 1 IOPE0567
PZE P2,,P3 2, 3 IOPE0568
PZE P4,,P5 4, 5 IOPE0569
PZE P6,,P7 6, 7 IOPE0570
PZE P8,,P9 8, 9 IOPE0571
PZE SKP,1,P8+P3 ILL., = IOPE0572
PON P8+P4,,SKP ', ILL. IOPE0573
PON SKP,1,SKP ILL, ILL. IOPE0574
PZE P12,,P12+P1 +, A IOPE0575
PZE P12+P2,,P12+P3 B, C IOPE0576
PZE P12+P4,,P12+P5 D, E IOPE0577
PZE P12+P6,,P12+P7 F, G IOPE0578
PZE P12+P8,,P12+P9 H, I IOPE0579
PZE SKP,1,P12+P8+P3 ILL., '.' IOPE0580
PZE P12+P8+P4,,P12+P8+P3 ), COLON (USE .) IOPE0581
PON SKP,1,SKP ILL., ILL. IOPE0582
PZE P11,,P11+P1 -, J IOPE0583
PZE P11+P2,,P11+P3 K, L IOPE0584
PZE P11+P4,,P11+P5 M, N IOPE0585
PZE P11+P6,,P11+P7 O, P IOPE0586
PZE P11+P8,,P11+P9 Q, R IOPE0587
PZE SKP,1,P11+P8+P3 ILL., $ IOPE0588
PON P11+P8+P4,,SKP *, ILL. IOPE0589
PON SKP,1,SKP ILL., NULL IOPE0590
PZE 0,,P0+P1 BLANK, / IOPE0591
PZE P0+P2,,P0+P3 S, T IOPE0592
PZE P0+P4,,P0+P5 U, V IOPE0593
PZE P0+P6,,P0+P7 W, X IOPE0594
PZE P0+P8,,P0+P9 Y, Z IOPE0595
PZE SKP,1,P0+P8+P3 TAB, ',' IOPE0596
PON P0+P8+P4,,SKP (, ILL. IOPE0597
PON SKP,1,SKP ILL., ILL. IOPE0598
REM IOPE0599
EJECT IOPE0600
REM IOPE0601
REM ... CMEXIT ... COMMON EXIT ROUTINE FROM ALL TRAPS .......IOPE0602
REM IOPE0603
CMEXIT ENB =0 INSURE ALL TRAPS DISABLED IOPE0604
STI CMXSI SAVE INDICATORS IOPE0605
LDI* 2,4 PICK UP RETURN FLAGS IOPE0606
RIR 700000 INSURE TAG ZERO IOPE0607
STI CMXRTN SAVE RETURN LOCATION IOPE0608
XEC 1,4 RESTORE USER'S IR4 FROM 1,4 IOPE0609
ZET ATLOST WAS A TRAP ON CHANNEL 'A' LOST IOPE0610
TRA SIMTRP YES, GO TO SIMULATE LOST TRAP IOPE0611
LFT 20000 NO, WAS ECC SET FOR MEMORY 'A' IOPE0612
TRA CMRTNB NO, SET ECC TO MEMORY 'B' IOPE0613
LDI CMXSI YES, RELOAD INDICATORS IOPE0614
ENB ENABLE AND RETURN TO INTERRUPTED PROGRAM IOPE0615
WHEN B,T,,LRI,=0,,,, .. IOPE0616
WHEN B,T,,SEA,,,,, .. IOPE0617
TRA* CMXRTN .. IOPE0618
REM IOPE0619
CMRTNB LDI CMXSI HERE TO RETURN WITH ECC SET FOR MEMORY 'B' IOPE0620
ENB ENABLE RETURN TO INTERRUPTED PROGRAM IOPE0621
WHEN B,F,,LRI,=0,,,, .. IOPE0622
WHEN B,F,,SEB,,,,, .. IOPE0623
TRA* CMXRTN .. IOPE0624
REM IOPE0625
SIMTRP RIL 717777 HERE TO SIMULATE LOST TRAP ON CHANNEL 'A' IOPE0626
STI RTNLOC SET UP RETURN LOC. WITH ECC AND ICC FLAGS IOPE0627
LDI CMXSI RELOAD USER'S SENSE INDICATORS IOPE0628
SXA TRPIR4,4 AND INSURE USER'S MACHINE CONDITIONS SAVED IOPE0629
TSX ALLSAV,4 .. IOPE0630
CAL ATLOST PICK UP FLAGS FROM LOST TRAP IOPE0631
ANA =O7000000 SAVE BITS 15-17 IOPE0632
ORS RTNLOC COMPLETE TRAP FLAGS IN 'RTNLOC' IOPE0633
STZ.A) STZ ATLOST RESET LOST TRAP CONDITION IOPE0634
TRA ATRAP1 AND SIMULATE TRAP ON CHANNEL 'A' IOPE0635
REM IOPE0636
* * * * * * * * * * * * * * * * * * * * * * * * IOPE0637
REM IOPE0638
REM ... FILXIT ... EXIT TO USER FROM FILE SYSTEM ..... IOPE0639
REM IOPE0640
FILXIT CAL* 2,4 PICK UP RETURN ADDRESS IOPE0641
PAC 0,5 .. -RETURN ADDRESS TO IR5 IOPE0642
XEC 1,4 RELOAD USER'S IR4 IOPE0643
ENB ENABLE RE-ENABLE ALL TRAPS IOPE0644
TRA 0,5 AND RETURN TO USER IOPE0645
REM IOPE0646
EJECT IOPE0647
REM IOPE0648
REM ... ALLSAV ... SAVE BASIC MACHINE CONDITIONS ............IOPE0649
REM IOPE0650
ALLSAV ENB =0 INSURE NO TRAPS COME NOW. IOPE0651
NZT ENBSW HAVE WE TAKEN A PREVIOUS TRAP. IOPE0652
HTR * YES, STOP AND TAKE A DUMP. IOPE0653
STZ ENBSW NO, INDICATE WE ARE IN TRAP TIME. IOPE0654
SXA ALLXR4,4 SAVE NAME OF THIS CALLER IOPE0655
SXA TRPIR1,1 SAVE BASIC MACHINE CONDITIONS. IOPE0656
SXA TRPIR2,2 .. IOPE0657
SXA TRPIR3,3 .. IOPE0658
AXT 0,3 .. SAVE TAG MODE IOPE0659
AXT 1,1 .. IOPE0660
STZ TRPMTM .. IOPE0661
TXL 7TAG,3,0 .. SKIP IF IN 7-TAG (7094) MODE IOPE0662
STL TRPMTM .. OTHERWISE SET 3-TAG (7090) MODE IOPE0663
LMTM .. IOPE0664
SXA TRPIR3,3 .. RESAVE IR3 IOPE0665
7TAG SXA TRPIR5,5 .. IOPE0666
SXA TRPIR6,6 .. IOPE0667
SXA TRPIR7,7 .. IOPE0668
STI TRPSI .. SAVE SENSE INDICATORS IOPE0669
STQ TRPMQ .. MQ IOPE0670
SLW TRPLAC .. LOGICAL AC IOPE0671
ARS 2 .. IOPE0672
STO TRPSQ .. S AND Q BITS IOPE0673
STZ TRPOV .. AC OVERFLOW CONDITION IOPE0674
TNO *+2 .. IOPE0675
STL TRPOV .. IOPE0676
TRA 1,4 AND RETURN IOPE0677
REM IOPE0678
* * * * * * * * * * * * * * * * * * * * * * * * IOPE0679
REM IOPE0680
ALLXR4 PZE **,,** X4(ALLSAV,,ALLRST) IOPE0681
REM IOPE0682
* * * * * * * * * * * * * * * * * * * * * * * * IOPE0683
REM IOPE0684
REM ... ALLRST ... RESTORE BASIC MACHINE CONDITIONS .........IOPE0685
REM IOPE0686
ALLRST ENB =0 INSURE NO TRAPS ON TOP OF STOP. IOPE0687
ZET ENBSW ARE WE CALLED AT TRAP TIME. IOPE0688
HTR * NO, STOP AND TAKE DUMP. IOPE0689
STL ENBSW YES, INDICATE WE ARE LEAVING TRAP TIME. IOPE0690
LMTM INSURE 7-TAG (7094) MODE IOPE0691
SXD ALLXR4,4 SAVE X4 OF CALLER FOR DEBUGGING IOPE0692
TRPIR1 AXT **,1 .. IOPE0693
TRPIR2 AXT **,2 .. IOPE0694
TRPIR3 AXT **,3 .. IOPE0695
TRPIR5 AXT **,5 .. IOPE0696
TRPIR6 AXT **,6 .. IOPE0697
TRPIR7 AXT **,7 .. IOPE0698
ZET TRPMTM .. RESTORE TAG MODE IOPE0699
EMTM .. IOPE0700
LDQ TRPSQ .. RESTORE S AND Q BITS IOPE0701
CLA * .. AND INSURE OVERFLOW LIGHT IS ON IOPE0702
LLS 1 .. IOPE0703
ALS 36 .. IOPE0704
ORA TRPLAC .. RESTORE LOGICAL AC IOPE0705
LDQ TRPMQ .. RESTORE MQ IOPE0706
LDI TRPSI .. RESTORE SI IOPE0707
NZT TRPOV .. RESTORE CORRECT OVERFLOW STATUS IOPE0708
TOV *+1 .. IOPE0709
TRA 1,4 AND RETURN IOPE0710
REM IOPE0711
ENBSW PZE ** SWITCH ON DURING ENABLE TIME. IOPE0712
EJECT IOPE0713
REM ... SAVCHA/RSTCHA/CHKCHA ... SAVE RESTORE AND CHECK 'A' IOPE0714
REM IOPE0715
SAVCHA ENB =0 SAVE STATUS OF CHANNEL 'A' IOPE0716
ZET ATLOST HAVE WE LOST A TRAP ALREADY IOPE0717
TRA SVCHA2 YES, SKIP IOPE0718
CAL TSTRAP NO, SET UP TO CHECK FOR TRAP ON CHANNEL 'A'IOPE0719
WHEN B,T,,SEA,,,,, SAVE CHANNEL 'A' TRAP INSTRUCTION IOPE0720
LDI ADCTRP .. IOPE0721
SLW ADCTRP .. AND SUBSTITUTE NEW TRAP INSTRUCTION IOPE0722
WHEN B,T,,SEB,,,,, .. IOPE0723
ENB ENBIFA ENABLE IF ENABLE CONTAINS CHANNEL 'A' BITS IOPE0724
TCOA * AND WAIT IOPE0725
TRA SVCHA1 GO RESTORE TRAP INSTRUCTION IF NO TRAP IOPE0726
REM IOPE0727
WHEN B,F,TSTRAP,TTR,*+1,,,, IOPE0728
WHEN B,T,TSTRAP,TIB,*+1,,,, IOPE0729
REM IOPE0730
CAL ATRLOC PICK UP FLAGS FROM TRAP ON CHANNEL 'A' IOPE0731
WHEN B,T,,SEB,,,,, .. IOPE0732
SLW ATLOST SET FLAGS FOR LOST TRAP IOPE0733
SVCHA1 ENB =0 DISABLE ALL TRAPS IOPE0734
WHEN B,T,,SEA,,,,, RESTORE PREVIOUS TRAP INSTRUCTION IOPE0735
STI ADCTRP .. IOPE0736
WHEN B,T,,SEB,,,,, .. IOPE0737
REM IOPE0738
SVCHA2 SCHA SVCHAN SAVE CHANNEL 'A' REGISTERS IOPE0739
STZ SVIOCK AND I/O CHECK CONDITION IOPE0740
IOT .. IOPE0741
STL SVIOCK .. IOPE0742
TRA 1,4 AND RETURN IOPE0743
REM IOPE0744
RSTCHA SXA RSTCX4,4 RESTORE CHANNEL STATUS IOPE0745
TCOA * WAIT UNTIL CHANNEL IS FREE IOPE0746
CAL SVCHAN PICK UP PREVIOUS CHANNEL STATUS IOPE0747
PDC 0,4 -LOCATION COUNTER TO IR4 IOPE0748
ANA =O700000377777 RESTORE CHANNEL 'A' REGISTERS IOPE0749
LDQ -1,4 .. IOPE0750
SLW -1,4 .. IOPE0751
RCHA -1,4 .. IOPE0752
STQ -1,4 .. IOPE0753
NZT SVIOCK RESTORE PREVIOUS CONDITIONS OF I/O CHECK IOPE0754
IOT .. IOPE0755
NOP .. FOR SAFETY ONLY (IOT SHOULD BE ON) IOPE0756
CAL FORGET SET UP TO LOOSE ANY TRAP ON CHANNEL 'A' IOPE0757
WHEN B,T,,SEA,,,,, SAVE CHANNEL 'A' TRAP INSTRUCTION IOPE0758
LDI ADCTRP .. IOPE0759
SLW ADCTRP .. SUBSTITUTE NEW TRAP INSTRUCTION IOPE0760
WHEN B,T,,SEB,,,,, .. IOPE0761
ENB ENBIFA ENABLE IF ENABLE CONTAINS CHAN. 'A' BITS IOPE0762
TCOA * AND WAIT IOPE0763
TRA RSCHA1 GO RESTORE TRAP INSTRUCTION IF NO TRAP IOPE0764
REM IOPE0765
WHEN B,F,FORGET,TTR,*+1,,,, IOPE0766
WHEN B,T,FORGET,TIB,*+1,,,, IOPE0767
REM IOPE0768
WHEN B,T,,SEB,,,,, IOPE0769
REM IOPE0770
RSCHA1 ENB =0 DISABLE ALL TRAPS IOPE0771
WHEN B,T,,SEA,,,,, RESTORE PREVIOUS TRAP INSTRUCTION IOPE0772
STI ADCTRP .. IOPE0773
WHEN B,T,,SEB,,,,, .. IOPE0774
RSTCX4 AXT **,4 RESTORE IR4 IOPE0775
TRA 1,4 AND RETURN IOPE0776
REM IOPE0777
CHKCHA ENB =0 SIMULATE LOST TRAP ON CHANNEL 'A' IOPE0778
NZT ATLOST DID WE LOOSE A TRAP ON CHANNEL 'A' IOPE0779
TRA 1,4 NO, RETURN IOPE0780
SXA CKXIR4,4 YES, SIMULATE TRAP SEQUENCE IOPE0781
TSX ALLSAV,4 SAVE REGISTERS, SET 7-TAG MODE IOPE0782
TSX $TRAPA,4 GIVE TRAP TO TAPE STRATEGY MODULE IOPE0783
PTH ATLOST .. IOPE0784
TRA *+3 TRAP ACCEPTED, DON'T SAVE FLAGS IOPE0785
CAL ATLOST RECORD THIS TRAP FOR FUTURE REFERENCE IOPE0786
ORS TPFLAG+1 .. IOPE0787
STZ ATLOST RESET LOST TRAP CONDITION IOPE0788
TSX ALLRST,4 RESTORE REGISTERS, TAG MODE IOPE0789
CKXIR4 AXT **,4 AND RETURN IOPE0790
TRA 1,4 .. IOPE0791
REM IOPE0792
* * * * * * * * * * * * * * * * * * * * * * * * IOPE0793
REM IOPE0794
ENABLE OCT 400000 COMMON ENABLE WORD IOPE0795
REM IOPE0796
* * * * * * * * * * * * * * * * * * * * * * * * IOPE0797
REM IOPE0798
REM ... ADDTIM ... COMPUTE TIME TO NEAREST 60TH OF A SECOND IOPE0799
REM IOPE0800
ADDTIM ENB =0 INSURE ALL TRAPS DISABLED (USED BY CLKINT) IOPE0801
WHEN B,T,,SEA,,,,, IOPE0802
CAL CLOCK COMPUTE TOTAL TIME SYSTEM HAS RUN IOPE0803
WHEN B,T,,SEB,,,,, .. IOPE0804
ACL CLKTIM .. CLOCK TRAP INTERVAL IOPE0805
ANA =O777777 .. IOPE0806
ACL TOTTIM .. IOPE0807
SUB SAVTOT SUBTRACT TIME OF LAST CALL TO 'ADDTIM' IOPE0808
TZE 1,4 IGNORE IF NO TIME HAS ELAPSED SINCE IOPE0809
SLW DELTA OTHERWISE, SAVE TIME INCREMENT IOPE0810
ADD SAVTOT SAVE CURRENT TIME IOPE0811
SLW SAVTOT .. FOR NEXT CALL TO 'ADDTIM' IOPE0812
CAL TIMNOW UPDATE TIME OF DAY IOPE0813
ADD DELTA .. IOPE0814
SLW TIMNOW .. IOPE0815
CAL ELAPSE UPDATE ELAPSE TIME SINCE LAST CALL IOPE0816
ADD DELTA .. TO 'GETELT' IOPE0817
SLW ELAPSE .. IOPE0818
TRA 1,4 AND RETURN IOPE0819
REM IOPE0820
EJECT IOPE0821
REM IOPE0822
REM ..... CONSTANT AND VARIABLE STORAGE FOR 'IOPAC' ........ IOPE0823
REM IOPE0824
TITLE IOPE0825
REM IOPE0826
DATEYR PZE 0 TODAY'S DATE BCI 1,MMDDYY IOPE0827
TIMNOW PZE 0 TIME OF DAY IN 60THS OF A SECOND IOPE0828
ELAPSE PZE 0 TIME SINCE LAST CALL TO 'GETELT' IOPE0829
TOTTIM PZE 0 TOTAL TIME SYSTEM HAS RUN IOPE0830
SAVTOT PZE 0 TOTTIM AT TIME OF LAST CALL TO 'ADDTIM' IOPE0831
DELTA PZE 0 TEMP FOR 'ADDTIM' IOPE0832
ATLOST PZE 0 LOST TRAP ON CHANNEL 'A' SAVED HERE IOPE0833
CMXRTN PZE 0 TEMP FOR RETURN FROM 'CMEXIT' IOPE0834
CMXSI PZE 0 SENSE INDICATORS SAVED BY 'CMEXIT' IOPE0835
REM IOPE0836
TRPIR4 PZE 0 MACHINE CONDITIONS SAVED ON TRAP IOPE0837
TRPMTM PZE ** .. IOPE0838
TRPSI PZE 0 .. IOPE0839
TRPMQ PZE 0 .. IOPE0840
TRPLAC PZE 0 .. IOPE0841
TRPSQ PZE 0 .. IOPE0842
TRPOV PZE 0 .. IOPE0843
REM IOPE0844
PRCOL PZE 0 TEMPS FOR WPRPU IOPE0845
AUTHOR PZE 0 TEMP FOR 'SETIO' IOPE0846
RTNLOC PZE 0 TRAP FLAGS SAVED HERE ON ALL TRAPS IOPE0847
CLKEYS PZE 0 CONSOLE KEYS, SAVED BY 'CLKINT' IOPE0848
KEYSW PZE 0 SWITCH USED BY 'CLKINT' IOPE0849
FERTN PZE ** RETURN LOCATION SET BY 'FERRTN' IOPE0850
UILOCK PZE ** RETURN LOCATION SET BY 'TILOCK' IOPE0851
SVCHAN PZE 0 TEMP USED BY SAVCHA/RSTCHA IOPE0852
SVIOCK PZE 0 TEMP USED BY SAVCHA/RSTCHA IOPE0853
ENBIFA PZE - ENABLE BITS IF CHANNEL A ENABLED IOPE0854
REM IOPE0855
TPFLAG SYN *-1 CHANNEL FLAGS SAVED HERE IOPE0856
PZE 0 .. FOR CHANNEL 'A' IOPE0857
PZE 0 .. AND CHANNEL 'B' IOPE0858
REM IOPE0859
CLKTIM DEC 60 CLOCK TRAP INTERVAL IOPE0860
REM IOPE0861
HOME PZE B+1 FLAG FOR 'HOME' MEMORY IOPE0862
REM IOPE0863
NOERTN BCI 5, NO ERROR RETURN SPECIFIED. IOPE0864
PP21UP BCI 6,****** PLEASE PUT KEY 21 UP. ****** IOPE0865
KEYSNG BCI 8,****** ILLEGAL KEY SETTING, TRY AGAIN. ****** IOPE0866
KREAD BCI 4, KEYS READ. ************ IOPE0867
EXITMS BCI 2, EXIT CALLED IOPE0868
REM IOPE0869
SAVFMS BES HITRAP+1 FMS LOWER CORE SAVED HERE IOPE0870
REM IOPE0871
LDFIOP IOCP 0,,3 LOAD FIOP INTO MEMORY 'A' IOPE0872
TCH 0 .. IOPE0873
REM IOPE0874
TCOAB SYN *-1 CHANNEL WAIT INSTRUCTIONS IOPE0875
TCOA ** .. FOR CHANNEL 'A' IOPE0876
TCOB ** .. AND CHANNEL 'B' IOPE0877
EJECT IOPE0878
REM IOPE0879
REM ... RCLOCK ... READ CHRONOLOG, SET TIMNOW AND DATEYR ... IOPE0880
REM IOPE0881
RDCLOC SXA RCLKX4,4 SAVE XRS IOPE0882
SXA RCLKX2,2 .. IOPE0883
SXA RCLKX1,1 .. IOPE0884
REM IOPE0885
AXT 2,1 TRY TWICE IN CASE OF BAD DATE IOPE0886
RCLOC1 STZ MMDDHH RESET IOPE0887
STZ MMSS66 .. IOPE0888
RTDZ SELECT CHRONOLOG AS TAPE 'A7' IOPE0889
RCHZ RCLOCK START UP CHANNEL TO READ CLOCK IOPE0890
AXT 2,2 COUNT TRIES IOPE0891
RCLOC2 AXT DELAY,4 9 MS DELAY WITH TIX * IOPE0892
TIX *,4,1 .. IOPE0893
ZET MMDDHH HAS FIRST WORD BEEN READ IOPE0894
TRA RCLOC3 YES, SKIP TO WAIT ON CHANNEL IOPE0895
TIX RCLOC2,2,1 NO, COUNT TRIES IOPE0896
RDCZ AFTER 18 MS GIVE UP, RESET CHANNEL IOPE0897
TRA BADCLK SKIP TO INFORM OPERATOR IOPE0898
RCLOC3 TCOZ * WAIT UNTIL BOTH WORDS ARE READ IOPE0899
TRCZ *+1 INSURE RTT TRIGGER RESET IOPE0900
REM IOPE0901
RCLOC4 AXT 2,2 INSURE ALL CHARACTERS READ ARE LEGAL IOPE0902
RCLK4A LDQ MMDDHH+2,2 PICK UP WORD READ IOPE0903
AXT 6,4 6 DIGITS PER WORD IOPE0904
RCLOC5 ZAC .. IOPE0905
LGL 6 SHIFT CHAR IOPE0906
PAX ,7 TO X7 IOPE0907
TXH RCLOC8,7,9 ERROR IF .G. 9 IOPE0908
TIX RCLOC5,4,1 DO FOR ALL CHARS IOPE0909
TIX RCLK4A,2,1 .. OF EACH WORD IOPE0910
REM IOPE0911
LDQ MMDDHH PICK UP HOUR IOPE0912
RQL 24 .. IOPE0913
TSX DTB,7 CONVERT TO BINARY IOPE0914
PAX ,7 .. IOPE0915
TXH RCLOC8,7,23 INSURE LEGAL VALUE IOPE0916
LDQ MMSS66 NOW GET REST OF TIME IOPE0917
AXT 3,4 MINUTES, SECONDS, 60THS IOPE0918
RCLOC6 ALS 2 MULTIPLY PREVIOUS VALUE BY 60 IOPE0919
SLW TMP .. N * 4 IOPE0920
AXT 3,7 .. IOPE0921
ALS 1 .. 8, 16, 32 IOPE0922
ADD TMP .. IOPE0923
TIX *-2,7,1 .. IOPE0924
SLW 60THS .. = 60 IOPE0925
TSX DTB,7 NOW CONVERT NEXT FIELD FROM MQ IOPE0926
PAX ,7 .. IOPE0927
TXH RCLOC8,7,59 MUST BE LESS THAN 60 IOPE0928
ADD 60THS ADD PREVIOUS RESULT IOPE0929
TIX RCLOC6,4,1 GO BACK TO MULTIPLY AGAIN IOPE0930
SLW TIMNOW .. IOPE0931
CAL MMDDHH .. IOPE0932
ANA =O777777770000 MASK OUT HOUR IOPE0933
ORA YEAR ADD IN YEAR TO FORM IOPE0934
SLW DATEYR .. MMDDYY IOPE0935
RCLKX1 AXT -,1 RESTORE XRS IOPE0936
RCLKX2 AXT -,2 .. IOPE0937
RCLKX4 AXT -,4 .. IOPE0938
TRA 1,4 RETURN IOPE0939
REM IOPE0940
RCLOC8 TIX RCLOC1,1,1 HERE FOR BAD DATE FROM CHRONOLOG, RETRY IOPE0941
REM IOPE0942
BADCLK LDQ TIMNOW HERE IF CHRONOLOG WILL NOT READ PROPERLY IOPE0943
TSX CTIME,4 CONVERT TIME FOR PRINTING IOPE0944
SLW MMSS66+2 .. IOPE0945
TSX EPRINT,4 TELL OPERATOR ABOUT IT IOPE0946
PZE CLKBAD,,12 .. THOUGH IT PROBABLY IS A WASTED EFFORT IOPE0947
TSX EPRINT,4 YES, MUST HAVE A DATE AND TIME IOPE0948
PZE SETMDH,,12 PRETEND OPERATOR IS CHRONOLOG IOPE0949
HTR *+1 WAIT FOR OPERATOR IOPE0950
ENK GET KEYS (MMDDHH) IOPE0951
STQ MMDDHH PRETEND THE CHRONOLOG DID IT IOPE0952
TSX EPRINT,4 NOW ASK FOR THE REST OF IT IOPE0953
PZE SETMS6,,11 .. IOPE0954
HTR *+1 .. WAIT AGAIN IOPE0955
ENK MMSS66 IOPE0956
STQ MMSS66 .. IOPE0957
TRA RCLOC4 PROCESS NORMALLY IOPE0958
REM IOPE0959
DTB ZAC ROUTINE TO CONVERT TWO BCD DIGITS TO BINARYIOPE0960
LGL 6 .. IOPE0961
STO TMP .. IOPE0962
ZAC .. IOPE0963
LGL 3 .. IOPE0964
ADD TMP .. IOPE0965
LGL 2 .. IOPE0966
ADD TMP .. IOPE0967
LGL 1 .. IOPE0968
TRA 1,7 .. IOPE0969
REM IOPE0970
REM IOPE0971
RCLOCK IORT MMDDHH,B,2 CHANNEL COMMAND TO READ CHRONOLOG CLOCK IOPE0972
YEAR BCI 1,000071 MUST BE CHANGED EVERY YEAR ************** IOPE0973
60THS PZE IOPE0974
TMP PZE IOPE0975
REM IOPE0976
SETMDH BCI 9,OPERATOR ENTER BCD MONTH, DAY, HOUR IN KEYS, FORMAT MM IOPE0977
BCI 3,DDHH. PRESS START. IOPE0978
SETMS6 BCI 9,ENTER BCD MINUTE, SECOND, 60TH IN KEYS, FORMAT MMSS66. IOPE0979
BCI 2, PRESS START. IOPE0980
CLKBAD BCI /CHRONOLOG CLOCK MALFUNCTIONING. CLOCK READ '/ IOPE0981
MMDDHH BCI 1,MMDDHH IOPE0982
MMSS66 BCI 1,MMSS66 IOPE0983
BCI /' AT / IOPE0984
BCI 1,HHMM.M IOPE0985
REM IOPE0986
ORG RDCLOC CLOCK READ ROUTINE IS OVERLAPPED IOPE0987
REM IOPE0988
STATBL BSS STBL STORAGE FOR ACTIVE FILE STATUS TABLE IOPE0989
QUEUE1 BSS 1QL STORAGE FOR DRUM STRATEGY MODULE IOPE0990
QUEUE2 BSS 2QL STORAGE FOR DISK STRATEGY MODULE IOPE0991
QUEUE3 BSS 3QL STORAGE FOR TAPE STRATEGY MODULE IOPE0992
REM IOPE0993
DETAIL IOPE0994
$BLOCK BCD,0084
END IOPE0995
* FAP
$BLOCK BCD,1344
* J. W. PODUSKA ... CONV - UTILITY CONVERSION ROUTINES.
LINK OFF
ENTRY CTIME CONVERT 60TH'S TO 'HHMM.M'.
ENTRY TCTIME CONVERT 60TH'S TO ' HH.HH'.
REM
ENTRY DTBC DECIMAL-TO-BINARY CONVERSION.
ENTRY BTDC BINARY-TO-DECIMAL CONVERSION.
ENTRY OTBC OCTAL-TO-BINARY CONVERSION.
ENTRY BTOC BINARY-TO-OCTAL CONVERSION.
REM
ENTRY RPL REPLACE LEADING A'S BY B'S
ENTRY BZL .. ZEROS BY BLANKS
ENTRY NZL .. ZEROS BY NULLS
ENTRY NBL .. BLANKS BY NULLS
ENTRY ZBL .. BLANKS BY ZEROS
REM
REM
REM CTIME - CONVERT 60TH'S TO HOURS, MINUTES, AND TENTHS.
REM
CTIME ZAC CLEAR AC, ARG IN MQ, B35.
VDP =216E4B42,,28 =10*60*60*60, GET TENS OF HOURS.
VDP =216E3B36,,6 =60*60*60, GET UNITS OF HOURS.
VDP =36E3B30,,6 =10*60*60, GET TENS OF MINUTES.
VDP =36E2B24,,6 =60*60, GET UNITS OF MINUTES.
VDP =36E1B12,,12 =6*60, INSERT TENTHS.
ZAC CLEAR OUT REMAINING GARBAGE.
LGL 6 GET TENS OF HOURS,
TNZ *+2 IF ZERO,
CAL =H00000 REPLACE BY BLANK.
LGR 6 RESTORE TIME,
XCL MOVE TO LAC,
ORA =H0000.0 INSERT DECIMAL POINT,
TRA 1,4 AND RETURN WITH 'HHMM.M'.
REM
REM
REM TCTIME - CONVERT 60TH'S TO HOURS AND HUNDRETHS.
REM
TCTIME ZAC CLEAR AC, ARG IN MQ.
VDP =216E4B42,,28 =10*60*60*60, GET TENS OF HOURS.
VDP =216E3B36,,6 =60*60*60, GET UNITS OF HOURS.
VDP =216E2B24,,12 =6*60*60, GET TENTHS AND ROOM FOR POINT.
VDP =216E1B18,,6 =6*6*60, GET HUNDRETHS OF HOURS.
XCL MOVE TO LAC,
ORA =H 00.00 INSERT BLANK AND PERIOD,
TRA 1,4 AND RETURN WITH ' HH.HH'.
EJECT
REM
REM DTBC - CONVERT 6 BCD DIGITS TO BINARY INTEGER.
REM
DTBC ZAC CLEAR AC (ARG IN MQ),
AXT 6,7 AND SET FOR 6 ITERATIONS.
DTBCLP STO TNUM SAVE PARTIAL CONVERSION.
RQL 2 N+D/16.
LGL 1 2*N+D/8.
SUB TNUM N+D/8.
LGL 2 4*N+D/2.
ADD TNUM 5*N+D.
LGL 1 10*N+D.
TIX DTBCLP,7,1 LOOP 6 TIMES.
TRA 1,4 AND RETURN WITH RESULT IN AC.
REM
TNUM PZE TEMP USED BY DTBC.
REM
REM
REM BTDC - CONVERT BINARY INTEGER TO 6 BCD DIGITS.
REM
BTDC ZAC CLEAR AC, ARG IN MQ.
VDP =1E5B40,,30 FORM HUNDRED THOUSANDS DIGIT.
VDP =1E4B34,,6 FORM TEN THOUSANDS DIGIT.
VDP =1E3B28,,6 FORM THOUSANDS DIGIT.
VDP =1E2B22,,6 FORM HUNDREDS DIGIT.
VDP =1E1B16,,6 FORM TENS DIGIT.
VDP =1E0B10,,6 FORM UNITS DIGIT.
XCL MOVE RESULT TO AC,
TRA 1,4 AND RETURN TO CALLER.
REM
REM
REM OTBC - CONVERT 6 OCTAL BCD DIGITS TO BINARY.
REM
OTBC CAL =1B16 GET BIT FOR SETTING OVERFLOW
TOV *+1 TURN OFF OVERFLOW
RQL 3 SKIP THREE BITS AND
LGL 3 SHIFT IN THREE BITS.
TNO *-2 CONTINUE UNTIL OVERFLOW SET.
TRA 1,4 RETURN WITH ANSWER IN LAC.
REM
REM
REM BTOC - CONVERT BINARY TO OCTAL BCD.
REM
BTOC CAL =1B34 GET BIT FOR SETTING OVERFLOW.
TOV *+1 TURN OFF OVERFLOW
ALS 3 PULL IN THREE ZERO BITS.
LGL 3 SHIFT IN THE DIGIT.
TNO *-2 CONTINUE UNTIL OVERFLOW SET.
TRA 1,4 RETURN WITH ANSWER IN LAC.
EJECT
REM
REM RPL, ETC. - REPLACE LEADING A'S BY B'S
REM
RPL ERA* 1,7 MAKE ALL A'S 0
AXT 36,6 6 CHARS
LGR 6 ..
TZE *+2 ARE WE THERE YET
TIX *-2,6,6 NO, KEEP SHIFTING
CAL* 2,7 YES, GET B'S
ERA* 1,7 SET UP FOR FINAL 'ERA'
LGL 42,6 BACK TO AC
ERA* 1,7 CONVERT CHARS BACK
TRA 3,7 RETURN
REM
REM
BZL TSX RPL,7 CALL CONVERTER
PAR =0 .. TO MAKE 0'S
PAR BLANKS .. BLANKS
TRA 1,4 RETURN
REM
REM
NZL TSX RPL,7 CALL CONVERTER
PAR =0 .. TO MAKE 0'S
PAR NULLS .. NULLS
TRA 1,4 RETURN
REM
REM
NBL TSX RPL,7 CALL CONVERTER
PAR BLANKS TO MAKE LEADING BLANKS
PAR NULLS .. NULLS
TRA 1,4 RETURN
REM
REM
ZBL TSX RPL,7 CALL CONVERTER
PAR BLANKS TO MAKE LEADING BLANKS
PAR =0 .. ZEROS
TRA 1,4 RETURN
REM
TTL STORAGE AND CONSTANTS.
REM
BLANKS OCT 606060606060
NULLS OCT 575757575757
REM
$BLOCK BCD,0084
END
* FAP
$BLOCK BCD,1344
*
LINK ON
ENTRY PRNTER
EXTERN IODIAG,WRFLX
REM
REM THIS ROUTINE IS USED BY ALL NON-FOREGROUND
REM PROGRAMS USING FILE SYSTEM ENTRIES. IT IS
REM COMPLETE AND CHECKED UP TO VERSION 'FCOR2M'
REM OF THE FILE CO-ORDINATOR.
REM
REM D.R. WIDRIG DEC. 1965
REM REVISED OCT. 1966 D.R. WIDRIG
REM
*
PRNTER SXA PERX1,1
SXA PERX2,2
SXA PERX4,4
TSX IODIAG,4 GET USER IO DIAGNOSTIC
PTH BUFF,,7 ..
REM
CAL BUFF+1 GET NAME OF ROUTINE
SLW LINE1+3
CAL BUFF
TSX CLOC,4 CONVERT LOCATION FOR PRINTING
SLW LINE1+6
CAL BUFF+4 GET NAME OF FILE
SLW LINE1+9
CAL BUFF+5
SLW LINE1+11
CAL BUFF+6 LOCATION IN FILE SYSTEM
TSX CLOC,4 CONVERT FOR PRINTING
SLW LINE3+3
REM
AXT 11,4 INITIALIZE TO PRINT 11 WORDS FIRST LINE
LAC BUFF+2,2 GET ERROR CODE
TXH STAND,2,-3 1 AND 2 ARE THE SAME FOR ALL ROUTINES
TXL STAND1,2,-100 100 AND UP ARE STANDARD ALSO
CAL BUFF+1 ALL OTHER CODES DEPEND ON IO ROUTINE
AXT NOCALL,1
LAS CALLS,1 SEARCH FOR IO ROUTINE
TRA *+2
TRA PERA1 FOUND ROUTINE
TIX *-3,1,2 ..
REM
NFOUND SXD PRINT1,4 INITIALIZE COUNT FOR FIRST LINE
LDQ =H 00000 ZERO ERROR CODE
TXL *+3,2,0 TEST IF CODE IS 0
PCA 0,2 IF NON-ZERO, CONVERT FOR PRINTING
TSX CDEC,4 .. JUST PRINT OUT NUMBER
REM
STQ DIAG0+3
CLA DNF GET POINTER TO COMMENT
TRA PRINT+1 .. AND GO TO PRINT
REM
PERA1 CLA CALLS+1,1 HAVE FOUND IO CALL
TPL *+2 MINUS MEANS DON'T PRINT FILE NAMES
AXT 6,4 OTHERWISE, PRINT WHOLE LINE
COM PICK UP CONTROL WORDS
STD *+1 DECREMENT IS MAXIMUM NUMBER OF DEFINED CODE
TXL NFOUND,2,** IF CODE TOO LARGE, GO TO NFOUND
CLA* CALLS+1,1 HERE IF CODE IS IN BOUNDS
TMI IOERR MINUS MEANS IO ERROR
PRINT SXD PRINT1,4 STORE AWAY LINE COUNT
STO PRINT2+1 STORE AWAY POINTER TO COMMENT
TSX WRFLX,4 PRINT OUT FIRST LINE OF COMMENT
PRINT1 LINE1+1,,** ..
PRINT2 TSX WRFLX,4 SECOND LINE
PZE **,,** ..
PRINT3 TSX WRFLX,4 THIRD LINE
PZE LINE3,,7 ..
PERX1 AXT **,1
PERX2 AXT **,2
PERX4 AXT **,4
TRA 1,4 AND RETURN TO CALLER
REM
IOERR LAC BUFF+3,2 HERE FOR IO ERROR...GET IO ERROR CODE
TXI *+1,4,1 SET UP WORD COUNT FOR FIRST PRINT LINE
SXD IOER1+2,4 ..
TXL IOER2,2,-NOIOER TEST IF CODE TOO LARGE
CLA IOERT,2 PICK UP POINTER TO COMMENT
IOER1 STO PRINT2+1
TSX WRFLX,4 PRINT OUT DIFFERENT FIRST LINE
LINE1,,** ..
TRA PRINT2 SECOND AND THIRD LINES THE SAME
IOER2 LDQ =H 00000 PRINT OUT UNKNOWN ERROR CODE
TXL *+3,2,0 SKIP CONVERSION IF 0 CODE
PCA 0,2 OTHERWISE, CONVERT FOR PRINTING
TSX CDEC,4 CONVERT
STQ DIAG0+3
CLA DNF POINTER TO COMMENT
TRA IOER1
REM
STAND CLA PZE1-1,2 ERROR CODES 1 AND 2 ARE STANDARD
TRA PRINT .. FOR ALL IO CALLS
STAND1 TXL NFOUND,2,PZE100-PZE999-100 UNKNOWN IF CODE TOO LARGE
CLA PZE100-100,2 PICK UP STANDARD CODE
TRA PRINT
REM
CLOC SXA CLOC4,4
LGR 15 SHIFT LOCATION INTO MQ
CAL =H00000 BLANK IN AC
AXT 5,4
CLOC1 ALS 3
LGL 3
TIX CLOC1,4,1
CLOC4 AXT **,4
TRA 1,4
*
CDEC LDQ =H00000
SSM TO PRESERVE BLANK
VDP =1E4B29,,6
VDP =1E3B23,,6
VDP =100B17,,6
VDP =10B11,,6
VDP =1B5,,6
TRA 1,4
EJECT
TITLE
*
REM
REM
CALLB BCI 1,UPDMFD TABLE OF POSSIBLE IO CALLS
UPDMF,2,5
BCI 1,DELMFD
DELMF,2,4
BCI 1,ATTACH
ATTAC,2,4
BCI 1,UPDATE
MZE UPDAT,2,3
BCI 1,OPEN
OPEN,2,20
BCI 1,BUFFER
BUFFE,2,6
BCI 1,RDFILE
RDFIL,2,8
BCI 1,RDWAIT
RDFIL,2,8
BCI 1,WRFILE
WRFIL,2,10
BCI 1,WRWAIT
WRFIL,2,10
BCI 1,TRFILE
TRFIL,2,9
BCI 1,FCHECK
CLOSE,2,5
BCI 1,FWAIT
CLOSE,2,5
BCI 1,CLOSE
CLOSE,2,6
BCI 1,RESETF
UPDAT,2,3
BCI 1,CHFILE
CHFIL,2,12
BCI 1,DELFIL
DELFL,2,8
BCI 1,FSTATE
DELFL,2,5
BCI 1,MOVFIL
MOVFL,2,10
BCI 1,SETFIL
SETFL,2,5
BCI 1,LINK
LINK,2,6
BCI 1,UNLINK
UNLIN,2,5
BCI 1,ALLOT
MZE ALLOT,2,3
BCI 1,STORGE
MZE ALLOT,2,4
BCI 1,MOUNT
MZE MOUNT,2,4
BCI 1,UMOUNT
MZE UMOUN,2,3
BCI 1,VERIFY
MZE VERIF,2,7
BCI 1,LABEL
MZE VERIF,2,6
BCI 1,TAPFIL
TAPFL,2,6
CALLS BSS 0
NOCALL EQU CALLS-CALLB
EJECT
*
* POINTER TO DIAGNOSTIC COMMENTS
*
DNF PZE DIAG0,,4
PZE1 PZE DIAG1,,8
PZE2 DIAG2,,6
PZE100 DIAG00,,4
DIAG01,,4
PZE999 BSS 0 END OF STANDARD CODES
*
UPDMF EQU *-3
DIAGA1,,4
DIAGA2,,4
DIAGA5,,4
UPDAT EQU *-3
DIAGA2,,4
DELMF EQU *-3
DIAGA3,,3
DIAGA4,,4
ATTAC EQU *-3
DIAGA3,,3
DIAGA2,,4
*
OPEN EQU *-3
DIAGB1,,4
DIAGB2,,4
DIAGB3,,3
DIAG0,,4
DIAGB5,,4
DIAGB6,,4
DIAGB7,,6
DIAGB8,,6
DIAGA2,,4
DIAGB9,,3
DIAGC1,,3
DIAGC2,,5
DIAGC3,,4
DIAGC4,,5
MZE
DIAGC5,,4
DIAG01,,4
DIAGC9,,7
*
BUFFE EQU *-3
DIAGD1,,3
DIAGD2,,5
DIAGD3,,3
MZE
RDFIL EQU *-3
DIAGD1,,3
DIAGD4,,4
DIAGD6,,5
DIAGD2,,5
MZE
DIAGC6,,4
WRFIL EQU *-3
DIAGD1,,3
DIAGD5,,4
DIAGD6,,5
DIAGC3,,4
DIAGD2,,5
MZE
DIAGC7,,5
DIAGC8,,5
*
TRFIL EQU *-3
DIAGD1,,3
DIAGD5,,4
DIAGD6,,5
DIAGD2,,5
DIAGD7,,3
MZE
DIAGC7,,5
CLOSE EQU *-3
DIAGD1,,3
DIAGD2,,5
MZE
DIAGA2,,4
*
CHFIL EQU *-3
DIAGD8,,6
DIAGB9,,3
DIAGB4,,4
DIAGB5,,5
DIAGB6,,4
DIAGD9,,8
DIAGC3,,4
DIAGE2,,6
DIAGA2,,4
DIAGB1,,4
*
DELFL EQU *-3
DIAGB9,,3
DIAGB4,,4
DIAGB5,,5
DIAGE3,,4
DIAGA2,,4
DIAGB1,,4
*
MOVFL EQU *-3
DIAGB9,,3
DIAGE4,,4
DIAGE3,,4
DIAGE5,,8
DIAGA2,,4
DIAGB1,,4
DIAG01,,4
DIAGC5,,4
SETFL EQU *-3
DIAGC1,,3
DIAGA2,,4
DIAGE4,,4
LINK EQU *-3
DIAGE2,,6
DIAGA2,,4
DIAGE6,,6
DIAGC5,,4
UNLIN EQU *-3
DIAGB9,,3
DIAGE7,,3
DIAGA2,,4
ALLOT EQU *-3
DIAGC1,,3
DIAGA2,,4
*
MOUNT EQU *-3
DIAGF1,,7
DIAGF8,,7
UMOUN EQU *-3
DIAGF2,,5
VERIF EQU *-3
DIAGF5,,4
DIAGF7,,5
DIAGF4,,6
DIAGF6,,6
DIAGF3,,3
TAPFL EQU *-3
DIAGE2,,6
DIAGA2,,4
DIAGC2,,5
DIAGC5,,4
*
IOERT EQU *-1
DIAGI1,,6
DIAGI2,,6
DIAGI3,,6
DIAGI4,,7
DIAGI5,,6
DIAGI6,,6
NOIOER EQU *-IOERT
*
EJECT
REM
REM DIAGNOSTIC COMMENTS
REM
DIAG0 BCI 4,UNKNOWN ERROR CODE
DIAG1 BCI 8,ILLEGAL CALLING SEQUENCE OR PROTECTION VIOLATION
DIAG2 BCI 6,UNAUTHORIZED USE OF PRIVILEGED CALL
DIAG00 BCI 4,ERROR IN U.F.D./M.F.D.
DIAG01 BCI 4,U.F.D./M.F.D. NOT FOUND
*
DIAGA1 BCI 4,USER ALREADY IN M.F.D.
DIAGA2 BCI 4,MACHINE OR SYSTEM ERROR
DIAGA3 BCI 3,USER NOT IN M.F.D.
DIAGA4 BCI 4,U.F.D. STILL IN USE
DIAGA5 BCI 4,ZERO PROBLEM NUMBER
*
DIAGB1 BCI 4,FILE ALREADY ACTIVE
DIAGB2 BCI 4,TOO MANY ACTIVE FILES
DIAGB3 BCI 3,ILLEGAL STATUS
DIAGB4 BCI 4,LINKED FILE NOT FOUND
DIAGB5 BCI 4,LINK DEPTH EXCEEDED
DIAGB6 BCI 4,FILE IN 'PRIVATE' MODE
DIAGB7 BCI 6,ATTEMPT TO WRITE A 'READ-ONLY' FILE
DIAGB8 BCI 6,ATTEMPT TO READ A 'WRITE-ONLY' FILE
DIAGB9 BCI 3,FILE NOT FOUND
*
DIAGC1 BCI 3,ILLEGAL DEVICE
DIAGC2 BCI 5,NO SPACE ALLOTTED FOR DEVICE
DIAGC3 BCI 4,RECORD QUOTA OVERFLOW
DIAGC4 BCI 5,FILE BEING RESTORED FROM TAPE
DIAGC5 BCI 4,ILLEGAL USE OF M.F.D.
DIAGC6 BCI 4,U.F.D. HAS BEEN DELETED
DIAGC7 BCI 5,ILLEGAL USE OF WRITE-ONLY FILE
DIAGC8 BCI 5,MAXIMUM FILE LENGTH EXCEEDED
DIAGC9 BCI 7,FILE WAS REMOVED AND MUST BE RETRIEVED
*
DIAGD1 BCI 3,FILE NOT ACTIVE
DIAGD2 BCI 5,PREVIOUS I/O OUT OF BOUNDS
DIAGD3 BCI 3,BUFFER TOO SMALL
DIAGD4 BCI 4,FILE NOT IN READ STATUS
DIAGD5 BCI 4,FILE NOT IN WRITE STATUS
DIAGD6 BCI 5,NO BUFFER ASSIGNED TO FILE
DIAGD7 BCI 3,'RELLOC' TOO LARGE
DIAGD8 BCI 6,ATTEMPT TO CHANGE M.F.D. OR U.F.D.
DIAGD9 BCI 8,ATTEMPT TO CHANGE PROTECTED FILE OF ANOTHER USER
*
DIAGE2 BCI 6,FILE ALREADY EXISTS OR NAME CONFLICT
DIAGE3 BCI 4,FILE IS 'PROTECTED'
DIAGE4 BCI 4,FILE IS A 'LINKED' FILE
DIAGE5 BCI 8,FILE ALREADY EXISTS IN OTHER FILE DIRECTORY
DIAGE6 BCI 6,OTHER FILE DIRECTORY NOT IN M.F.D.
DIAGE7 BCI 3,FILE IS NOT LINKED
*
DIAGF1 BCI 7,NO TAPE AVAILABLE ON SPECIFIED CHANNEL
DIAGF2 BCI 5,TAPE FILE CURRENTLY IN USE
DIAGF3 BCI 3,LABEL IS INCORRECT
DIAGF4 BCI 6,MOUNT FAILED, ILLEGAL OPERATION
DIAGF5 BCI 4,TAPE FILE DOES NOT EXIST
DIAGF6 BCI 6,MOUNT FAILED, OPNS. DIFFICULTIES
DIAGF7 BCI 5,MACHINE ERROR OR BAD STATUS
DIAGF8 BCI 7,'UNITNO' - 'AUTHNO' CONFLICT FOR TAPE FILE
*
DIAGI1 BCI 6,PARITY ERROR READING OR WRITING FILE
DIAGI2 BCI 6,FATAL ERROR READING OR WRITING FILE
DIAGI3 BCI 6,AVAILABLE SPACE ON DEVICE EXHAUSTED
DIAGI4 BCI 7,TAPE FILE NOT MOUNTED OR NOT AVAILABLE
DIAGI5 BCI 6,ILLEGAL OPERATION ON THIS DEVICE
DIAGI6 BCI 6,END OF TAPE SENSED WHILE WRITING
*
*
*
*
LINE1 BCI 1, IO
BCI 1, ERROR
OCT 603145605757
BSS 1
BCI 3, AT LOCATION
BCI 3, INVOLVING
OCT 605757575757
BSS 1
LINE3 BCI 4, FOUND AT LOCATION
BCI 3, IN FILE SYSTEM.
*
BUFF BSS 7
$BLOCK BCD,0084
END
* FAP
$BLOCK BCD,1344
* M1416-786 ... R. DALEY ... FILE COORDINATOR FOR FILE I/O SYSTEM ......FCOR0001
TITLE FCOR0002
LINK OFF FCOR0003
ENTRY UPDMFD TO ADD ENTRY TO MASTER FILE DIRECTORY FCOR0004
ENTRY DELMFD TO DELETE ENTRY FROM MASTER FILE DIRECTORY FCOR0005
ENTRY ATTACH TO ATTACH TO A USER FILE DIRECTORY FCOR0006
ENTRY ATTNAM FIND NAME OF DIRECTORY ATTACHED TO FCOR0007
ENTRY UPDATE TO UPDATE USER FILE DIRECTORY FCOR0008
ENTRY SETPRI TO SET FILE PRIORITY WITHIN A USER FCOR0009
ENTRY OPEN TO PLACE A FILE IN ACTIVE STATUS FCOR0010
ENTRY BUFFER TO ASSIGN A BUFFER TO AN ACTIVE FILE FCOR0011
ENTRY RDFILE TO READ FROM AN ACTIVE FILE FCOR0012
ENTRY RDWAIT TO READ AND WAIT UNTIL I/O COMPLETED FCOR0013
ENTRY WRFILE TO WRITE INTO AN ACTIVE FILE FCOR0014
ENTRY WRWAIT TO WRITE AND WAIT UNTIL I/O COMPLETED FCOR0015
ENTRY TRFILE TO TRUNCATE AN ACTIVE FILE FCOR0016
ENTRY FCHECK TO CHECK I/O STATUS OF AN ACTIVE FILE FCOR0017
ENTRY FWAIT TO WAIT UNTIL I/O DONE ON ACTIVE FILE FCOR0018
ENTRY CLOSE TO REMOVE A FILE FROM ACTIVE STATUS FCOR0019
ENTRY RESETF TO RESET ALL ACTIVE FILES FCOR0020
ENTRY CHFILE TO CHANGE THE NAME AND/OR MODE OF A FILE FCOR0021
ENTRY RSFILE TO UNLOCK INTERLOCKED FILE FCOR0022
ENTRY DELFIL TO DELETE A FILE FCOR0023
ENTRY FSTATE TO RETURN FILE STATUS INFORMATION FCOR0024
ENTRY MOVFIL TO MOVE A FILE FROM UFD TO UFD FCOR0025
ENTRY SETFIL TO CREATE A FILE ENTRY FOR LOAD ROUTINE FCOR0026
ENTRY LINK TO CREATE A LINK TO A FILE FCOR0027
ENTRY UNLINK TO DELETE A LINK TO A FILE FCOR0028
ENTRY ALLOT TO ALLOT SECONDARY STORAGE QUOTAS FCOR0029
ENTRY STORGE TO RETURN SECONDARY STORAGE INFO. TO USER FCOR0030
ENTRY MOUNT TO MOUNT A TAPE FCOR0031
ENTRY UMOUNT TO UNMOUNT A TAPE FCOR0032
ENTRY VERIFY TO VERIFY A TAPE LABEL (FOLLOWS MOUNT) FCOR0033
ENTRY LABEL TO WRITE A TAPE LABEL (FOLLOWS MOUNT) FCOR0034
ENTRY TAPFIL TO DECLARE A FILE TO EXIST ON A TAPE FCOR0035
ENTRY IODIAG TO RETURN ERROR DIAGNOSTIC INFORMATION FCOR0036
REM FCOR0037
REM ..... THE FOLLOWING ENTRIES ARE AVAILABLE TO CTSS ONLY FCOR0038
REM FCOR0039
ENTRY SETUSR TO SET UP I/O USER STATUS TABLE FCOR0040
ENTRY CHNGUS TO CHANGE TO NEW USER OF FILE SYSTEM FCOR0041
ENTRY SETRAP TO SET SUPERVISORY INTERRUPT PROCEDURE FCOR0042
ENTRY USTAT TO SET A.F.S.T. AND QUEUE STORAGE FCOR0043
ENTRY USAVE TO SAVE STATUS OF ALL ACTIVE FILES FCOR0044
ENTRY SETAB TO SET MEMORY SWITCHES FCOR0045
ENTRY GETUSR TO GET SLOTNO AND MEMORY SWITCHES FCOR0046
ENTRY IOSTOP TO HALT INPUT/OUTPUT FCOR0047
ENTRY IOSTRT TO RESTART INPUT/OUTPUT FCOR0048
ENTRY IORSET TO INFORM FILE SYSTEM OF MACHINE RESET FCOR0049
ENTRY IOFINI TO FINISH ALL QUEUED I/O REQUESTS FCOR0050
ENTRY IOINIT TO INITIALIZE I/O SYSTEM FCOR0051
REM FCOR0052
REM ..... ENTRIES TO FILE COORDINATOR UTILITY ROUTINES ......FCOR0053
REM FCOR0054
ENTRY GTDYTM TO PICK UP CURRENT DATE/TIME, RETURN IN AC FCOR0055
ENTRY GETDAY TO PICK UP DATE ONLY IN AC (IN BCD) FCOR0056
ENTRY STAFIL TO ENTER ACTIVE FILE FOR SLOT '0' FCOR0057
ENTRY GTAFIL TO FIND ACTIVE FILE FOR SLOT '0' FCOR0058
ENTRY RELEAS TO RELEASE FILE FROM ACTIVE STATUS FCOR0059
ENTRY MOVE TO MOVE WORDS BETWEEN MEMORIES A AND B FCOR0060
ENTRY RCHECK TO RELOCATE AND CHECK ADDRESSES FCOR0061
ENTRY RECADR TO COMPUTE LINEAR ADDRESS FROM RECORD COUNTFCOR0062
ENTRY GETEFA TO COMPUTE EFFECTIVE ADDRESS OF WORD IN AC FCOR0063
ENTRY SSTRAP TO INTERRUPT SUPERVISORY SYSTEM FCOR0064
REM FCOR0065
REM ..... ENTRIES TO FILE COORDINATOR STATUS INFORMATION ....FCOR0066
REM FCOR0067
ENTRY UTABLE POINTER TO CURRENT USER STATUS TABLE FCOR0068
ENTRY USRTBL TABLE OF POINTERS TO USER A.F.S.T. TABLES FCOR0069
ENTRY PRIORT SORTED USER PRIORITY TABLE FCOR0070
ENTRY SLOTNO CURRENT I/O SLOT NO. OF CURRENT USER FCOR0071
REM FCOR0072
ENTRY FS.TST SPECIAL PRIVILEGES SWITCH (DAEMON) FCOR0073
REM FCOR0074
REM ..... ENTRIES TO BUFFER CONTROL MODULE ..................FCOR0075
REM FCOR0076
EXTERN BOPEN,BASIGN,BREAD,BWRITE,BTRUNC,BCHECK,BSAVE,BCLOSE FCOR0077
REM FCOR0078
REM ..... ENTRIES TO I/O CONTROL MODULE .................. FCOR0079
REM FCOR0080
EXTERN IOHALT,IOBEGN,IORST,DRAIN FCOR0081
REM FCOR0082
REM ..... ENTRIES TO UFD AND MFD SEARCH MODULE ..............FCOR0083
REM FCOR0084
EXTERN SEARCH,UPDFIL,ADDFIL,REMOVE,REWRIT,GETQU,SETQU,IFILES FCOR0085
REM FCOR0086
REM ..... ENTRIES TO TAPE MOUNT AND UNMOUNT MODULE ..........FCOR0087
REM FCOR0088
EXTERN MNTTAP,UMTTAP,UMTALL,VERTAP,LBLTAP FCOR0089
REM FCOR0090
REM ..... ENTRIES TO EXTERNAL UTILITY ROUTINES ........... FCOR0091
REM FCOR0092
EXTERN FILXIT,IDRUMS,IDISKS,UPDRUM,UPDISK FCOR0093
REM FCOR0094
REM FCOR0095
REM FCOR0097
EJECT FCOR0098
REM IOEQ0001
REM ..... FILE INPUT/OUTPUT SYSTEM EQUIVALENCE PACKAGE ..... IOEQ0002
REM IOEQ0003
DUSERS EQU 2 MAX. NO. OF USERS OF I/O SYSTEM IOEQ0004
FMAX EQU 3 MAX. NO. OF DEVICES AVAILABLE IN I/O SYSTEMIOEQ0005
IOSMEM EQU 1 MEMORY WHERE I/O SYSTEM RESIDES (1=A, 2=B) IOEQ0006
EJECT IOEQ0007
.REL. SET 0 INITIALIZE RELATIVE A.F.S.T. ADDRESS IOEQ0008
REM IOEQ0009
SETWRD MACRO SYMBOL TO SET UP ACTIVE FILE ENTRIES IOEQ0010
IRP SYMBOL .. IOEQ0011
PMC ON .. IOEQ0012
SYMBOL SYN .REL. .. IOEQ0013
PMC OFF .. IOEQ0014
IRP .. IOEQ0015
.REL. SET .REL.+1 .. BUMP RELATIVE ADDRESS IOEQ0016
SETWRD END .. IOEQ0017
REM IOEQ0018
SETWRD (RPROBN) IOEQ0019
SETWRD (RPROGN) IOEQ0020
SETWRD (RNAME1) IOEQ0021
SETWRD (RNAME2) IOEQ0022
SETWRD (RMODE) IOEQ0023
SETWRD (FPROBN) IOEQ0024
SETWRD (FPROGN) IOEQ0025
SETWRD (FNAME1) IOEQ0026
SETWRD (FNAME2) IOEQ0027
SETWRD (DAYTIM,LPROBN) IOEQ0028
SETWRD (DATELU,AUTHOR,LPROGN) IOEQ0029
SETWRD (MODE,ILOCK,F,RCOUNT) IOEQ0030
SETWRD (RWSTAT,S,W,R,NORECS,P,LCOUNT,LNAME1) IOEQ0031
SETWRD (POINTR,LNAME2) IOEQ0032
SETWRD (ASGNSW,REDREC,REDWRD) IOEQ0033
SETWRD (WRTREC,WRTWRD) IOEQ0034
SETWRD (CHNG,PRIME,BUFREC,BUFADR) IOEQ0035
SETWRD (WINDEX,DINDEX) IOEQ0036
SETWRD (DR,DW,DCOUNT,DADDRS) IOEQ0037
SETWRD (PRIOR,IOTASK,EFLAG,CURREC) IOEQ0038
SETWRD (SMTMP1) IOEQ0039
SETWRD (SMTMP2) IOEQ0040
REM IOEQ0041
SETWRD (ACTLNG) LENGTH OF SINGLE ACTIVE FILE ENTRY IOEQ0042
EJECT IOEQ0043
MACRO TO ASSIGN CONSECUTIVE STORAGE LOCATIONS IOEQ0044
SYMBOL ASTORE BLOCK,NWORDS .. WITHIN A BLOCK IOEQ0045
PMC ON .. IOEQ0046
SYMBOL SYN BLOCK .. IOEQ0047
PMC OFF .. IOEQ0048
TMP SET NWORDS .. IOEQ0049
BLOCK SET BLOCK+TMP .. IOEQ0050
ASTORE END .. IOEQ0051
REM IOEQ0052
AFST SET 0 DEFINE ENTRIES IN ACTIVE FILE STATUS TABLE IOEQ0053
REM IOEQ0054
PROBNO ASTORE AFST,1 USER'S PROBLEM NUMBER IN BCD IOEQ0055
PROGNO ASTORE AFST,1 USER'S PROGRAMMER NUMBER IN BCD IOEQ0056
AUTHNO ASTORE AFST,1 USER'S 'AUTHOR' NUMBER IN BINARY IOEQ0057
URCODE ASTORE AFST,1 USER'S RESTRICTION CODE IOEQ0058
LIMITS ASTORE AFST,1 USER'S CORE LIMITS PZE LOWADR,,HIADR IOEQ0059
RELOC ASTORE AFST,1 USER'S RELOCATION IOEQ0060
FPRIOR ASTORE AFST,1 USER'S FILE PRIORITY SETTING IOEQ0061
ERRILC ASTORE AFST,1 LOCATION OF CALL RESULTING IN LAST ERROR IOEQ0062
ERNAME ASTORE AFST,1 NAME OF ENTRY IN WHICH ERROR WAS DISCOVEREDIOEQ0063
ERCODE ASTORE AFST,1 ERROR CODE OF LAST ERROR IOEQ0064
IOCODE ASTORE AFST,1 I/O ERROR CODE IF ANY OF LAST ERROR IOEQ0065
ENAME1 ASTORE AFST,1 FILE NAME(1) OF FILE INVOLVED IN LAST ERRORIOEQ0066
ENAME2 ASTORE AFST,1 FILE NAME(2) OF FILE INVOLVED IN LAST ERRORIOEQ0067
ERCALL ASTORE AFST,1 LOCATION OF LAST CALL TO ERROR OR IOERR IOEQ0068
QUEUE1 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(1) IOEQ0069
QUEUE2 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(2) IOEQ0070
QUEUE3 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(3) IOEQ0071
QUEUE4 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(4) IOEQ0072
QUEUE5 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(5) IOEQ0073
QUEUE6 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(6) IOEQ0074
QUEUE7 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(7) IOEQ0075
REM IOEQ0076
AFENTY ASTORE AFST,ACTLNG STORAGE FOR A SINGLE ACTIVE FILE ENTRY IOEQ0077
REM IOEQ0078
TBLMIN ASTORE AFST,0 MINIMUM LENGTH FOR USER I/O STATUS TABLE IOEQ0079
EJECT IOEQ0080
EFA OPSYN NOP EFFECTIVE ADDRESS PARAMETER FLAG IOEQ0081
PAR OPSYN PTH NORMAL PARAMETER FLAG IOEQ0082
REM IOEQ0083
ION OPSYN PON I/O NON-TRANSMIT AND PROCEED IOEQ0084
IOP OPSYN PTW I/O TRANSMIT AND PROCEED IOEQ0085
IOD OPSYN PZE I/O DISCONNECT IOEQ0086
REM IOEQ0087
HOMOP MACRO GENERATE INSTRUCTION TO RESET ECC TO 'HOME'IOEQ0088
IFF IOSMEM-1,0,1 IOEQ0089
SEA HOME INSTRUCTION FOR MEMORY A IOEQ0090
IFF IOSMEM-2,0,1 IOEQ0091
SEB HOME INSTRUCTION FOR MEMORY B IOEQ0092
IFF IOSMEM-3,0,1 IOEQ0093
SEC HOME INSTRUCTION FOR MEMORY C IOEQ0094
HOMOP END IOEQ0095
EJECT FCOR0100
REM ............ PARAMETER DEFINITIONS .............. FCOR0101
REM FCOR0102
PMAX EQU 1 MAX. NUMBER OF FILE POINTER WORDS FCOR0103
SFILES EQU 5 NUMBER OF ACTIVE FILES FOR FILE SYSTEM FCOR0104
LDEPTH EQU 2 MAX. LEVEL OF FILE LINKING ALLOWED FCOR0105
SVWRDS EQU 8 NO. OF WORDS/ACTIVE FILE ON 'SAVE' COMMANDSFCOR0106
RGRACE EQU 80 NO. OF RECORDS USER MAY EXCEED QUOTA FCOR0107
REM FCOR0108
1QL EQU 1+7*4 QUEUE STORAGE FOR DEVICE 1 FCOR0109
2QL EQU 0 .. 2 FCOR0110
REM FCOR0111
REM MODE AND STATUS BIT DEFINITIONS FCOR0112
REM FCOR0113
* * * * * * * * * * * * * * * * * * * * * * * * FCOR0114
REM FCOR0115
REM FILE- AND REFERENCE-MODES FCOR0116
REM FCOR0117
* * * * * * * * * * * * * * * * * * * * * * * * FCOR0118
REM FCOR0119
M.M BOOL 400000 DAEMON RE-LOAD (MICK'S MODE) FCOR0120
P.M BOOL 200000 PROTECTED FCOR0121
L.M BOOL 100000 SYSTEM-TRAP (LINKABLE) FCOR0122
V.M BOOL 040000 PRIVATE FCOR0123
W.M BOOL 020000 WRITE-ONLY FCOR0124
R.M BOOL 010000 READ-ONLY FCOR0125
S.M BOOL 004000 DATE-REMOVE (SECONDARY) FCOR0126
T.M BOOL 002000 TEMPORARY FCOR0127
REM FCOR0128
* * * * * * * * * * * * * * * * * * * * * * * * FCOR0129
REM FCOR0130
REM FILE REFERENCE STATUS FCOR0131
REM FCOR0132
* * * * * * * * * * * * * * * * * * * * * * * * FCOR0133
REM FCOR0134
S.S BOOL 400000 'SAVED' (USAVE) FCOR0135
W.S BOOL 200000 OPEN/WRITING FCOR0136
R.S BOOL 100000 OPEN/READING FCOR0137
EJECT FCOR0138
REM ................ MACRO DEFINTIONS .......................FCOR0139
REM FCOR0140
SEARCH MACRO DIR,FILNAM,NOFILE SEARCH USER OR MASTER FILE DIRECTORY FCOR0141
TSX SEARCH,4 CALL SEARCH MODULE FCOR0142
IFF 1,DIR,UFD IS DIR .E. 'UFD' FCOR0143
EFA PROBNO,1 IF SO SET TO SEARCH CURRENT UFD FCOR0144
IFF 0,DIR,UFD OTHERWISE FCOR0145
EFA DIR SET TO SEARCH SPECIFIED DIRECTORY FCOR0146
EFA FILNAM POINTER TO FILE NAME FCOR0147
EFA FPROBN,2 POINTER TO SLOT IN A.F.S.T. FCOR0148
PAR NOFILE,,UFDERR ERROR RETURNS FCOR0149
SEARCH END FCOR0150
REM FCOR0151
UPDFIL MACRO DIR,FILNAM,NOFILE UPDATE USER OR MASTER FILE DIRECTORY FCOR0152
TSX UPDFIL,4 CALL SEARCH MODULE FCOR0153
IFF 1,DIR,UFD IS DIR .E. 'UFD' FCOR0154
EFA FPROBN,2 IF SO UPDATE UFD OF THIS FILE FCOR0155
IFF 0,DIR,UFD OTHERWISE FCOR0156
EFA DIR UPDATE SPECIFIED DIRECTORY FCOR0157
EFA FILNAM POINTER TO FILE NAME FCOR0158
EFA FPROBN,2 POINTER TO FILE ENTRY IN A.F.S.T. FCOR0159
PAR NOFILE,,UFDERR ERROR RETURNS FCOR0160
UPDFIL END FCOR0161
REM FCOR0162
ADDFIL MACRO DIR,NOROOM ADD FILE TO USER OR MASTER FILE DIRECTORY FCOR0163
TSX ADDFIL,4 CALL SEARCH MODULE FCOR0164
IFF 1,DIR,UFD IS DIR .E. 'UFD' FCOR0165
EFA FPROBN,2 IF SO ADD FILE TO CURRENT USER'S UFD FCOR0166
IFF 0,DIR,UFD OTHERWISE FCOR0167
EFA DIR ADD FILE TO SPECIFIED DIRECTORY FCOR0168
EFA FPROBN,2 POINTER TO FILE ENTRY FCOR0169
PAR NOROOM,,UFDERR ERROR RETURNS FCOR0170
ADDFIL END FCOR0171
REM FCOR0172
REMOVE MACRO DIR,FILNAM,NOFILE DELETE FILE FROM UFD OR MFD FCOR0173
TSX REMOVE,4 CALL SEARCH MODULE FCOR0174
IFF 1,DIR,UFD IS DIR .E. 'UFD' FCOR0175
EFA FPROBN,2 IF SO DELETE FROM CURRENT USER'S UFD FCOR0176
IFF 0,DIR,UFD OTHERWISE FCOR0177
EFA DIR DELETE FROM SPECIFIED DIRECTORY FCOR0178
EFA FILNAM POINTER TO FILE NAME FCOR0179
PAR NOFILE,,UFDERR ERROR RETURNS FCOR0180
REMOVE END FCOR0181
REM FCOR0182
REWRIT MACRO DIR,NOFILE UPDATE UFD OR MFD STATUS FCOR0183
TSX REWRIT,4 CALL SEARCH MODULE FCOR0184
IFF 1,DIR,UFD IS DIR .E. 'UFD' FCOR0185
EFA PROBNO,1 IF SO UPDATE CURRENT USER FILE DIRECTORY FCOR0186
IFF 0,DIR,UFD OTHERWISE FCOR0187
EFA DIR UPDATE SPECIFIED DIRECTORY FCOR0188
PAR NOFILE,,UFDERR ERROR RETURNS FCOR0189
REWRIT END FCOR0190
REM FCOR0191
GETQU MACRO DIR GET RECORD QUOTA,,USED FROM UFD FCOR0192
TSX GETQU,4 CALL SEARCH MODULE FCOR0193
EFA DIR POINTER TO USER MFD ENTRY FCOR0194
EFA 0,3 DEVICE NUMBER FCOR0195
PAR QUMERR,,UFDERR ERROR RETURNS FCOR0196
GETQU END FCOR0197
REM FCOR0198
SETQU MACRO DIR SET RECORD QUOTA,,USED IN UFD FCOR0199
TSX SETQU,4 CALL SEARCH MODULE FCOR0200
EFA DIR POINTER TO USER MFD ENTRY FCOR0201
EFA 0,3 DEVICE NUMBER FCOR0202
PAR QUMERR,,UFDERR ERROR RETURNS FCOR0203
SETQU END FCOR0204
REM FCOR0205
CHKUFD MACRO DIR,NODIR CHECK FOR SPECIFIED FILE DIRECTORY FCOR0206
TSX SEARCH,4 SEARCH M.F.D. (FILE) FOR UFD FCOR0207
EFA MFD .. FCOR0208
EFA DIR POINTER TO UFD FCOR0209
EFA CHKTMP SCRAP RETURN INFO FCOR0210
PAR NODIR,,UFDERR ERROR RETURNS FCOR0211
CHKUFD END FCOR0212
REM FCOR0213
* * * * * * * * * * * * * * * * * * * * * * * * FCOR0214
REM FCOR0215
MOVE1 MACRO FMEM,FROM,TMEM,TO,ERRTN MOVE WORD BETWEEN HOME AND USER FCOR0216
TSX MOVE,4 CALL MOVE ROUTINE FCOR0217
PAR FMEM,,TMEM .. FCOR0218
EFA FROM .. FCOR0219
EFA TO .. FCOR0220
EFA 1 .. MOVE ONE WORD FCOR0221
PAR ERRTN .. FCOR0222
MOVE1 END FCOR0223
REM FCOR0224
GETPAR MACRO EFA PICK UP PARAMETER FROM USER CALL FCOR0225
XEC PARMEM SET ECC FOR USER'S MEMORY FCOR0226
CAL EFA PICK UP PARAMETER FCOR0227
HOMOP RESET ECC TO 'HOME' FCOR0228
GETPAR END FCOR0229
REM FCOR0230
MACRO USER SAVE MACRO FCOR0231
NAME SAVE UCODE,SFLAG,PLIST .. FCOR0232
NAME SXA IR4,4 SAVE IR4 FIRST FCOR0233
TSX SAVE,4 CALL USER SAVE ROUTINE FCOR0234
PAR =H'NAME ENTRY NAME FCOR0235
PAR =O'UCODE' RESTRICTION CODE FCOR0236
IFF 1,SFLAG,S IS SFLAG .E. S FCOR0237
PAR =O77777 IF SO SET FLAG TO INSURE USER SIGNED ON FCOR0238
IFF 0,SFLAG,S OTHERWISE FCOR0239
PAR =0 SET TO SKIP SIGNED-ON TEST FCOR0240
IRP PLIST FCOR0241
PAR PLIST PARAMETER LIST PROTOTYPE FCOR0242
IRP FCOR0243
SAVE END FCOR0244
REM FCOR0245
MACRO SUPERVISOR SAVE MACRO FCOR0246
NAME SSAVE PLIST .. FCOR0247
NAME SXA IR4,4 SAVE IR4 FIRST FCOR0248
TSX SSAVE,4 CALL SUPERVISOR SAVE ROUTINE FCOR0249
PAR =H'NAME ENTRY NAME FCOR0250
PAR =0 NULL RESTRICTION CODE FCOR0251
PAR =0 SKIP SIGNED-ON TEST FCOR0252
IRP PLIST FCOR0253
PAR PLIST PARAMETER LIST PROTOTYPE FCOR0254
IRP FCOR0255
SSAVE END FCOR0256
REM FCOR0257
ERROR MACRO N STANDARD ERROR PROCEDURE FCOR0258
XEC ERR'N EXECUTE ERROR PROCEDURE FCOR0259
RMT DEFINE (ERR'N) IF NECESSARY FCOR0260
IFF ERR'N,0,1 .. FCOR0261
DFINE ERR'N,ERROR,N .. FCOR0262
RMT .. FCOR0263
ERROR END FCOR0264
REM FCOR0265
IOERR MACRO N STANDARD I/O ERROR PROCEDURE FCOR0266
XEC IOE'N EXECUTE I/O ERROR PROCEDURE FCOR0267
RMT DEFINE (IOE'N) IF NECESSARY FCOR0268
IFF IOE'N,0,1 .. FCOR0269
DFINE IOE'N,IOERR,N .. FCOR0270
RMT .. FCOR0271
IOERR END FCOR0272
REM FCOR0273
DFINE MACRO LOC,NAME,N DEFINE ERROR PROCEDURE FCOR0274
LOC TSX NAME,4 GO TO ERROR ROUTINE FCOR0275
PAR N .. ERROR CODE FCOR0276
DFINE END FCOR0277
REM FCOR0278
GTSTAT MACRO NAME,ERRTN GET ACTIVE FILE STATUS FROM A.F.S.T. FCOR0279
TSX GTSTAT,4 PICK UP ACTIVE FILE STATUS FCOR0280
PAR NAME,,ERRTN .. FCOR0281
GTSTAT END FCOR0282
REM FCOR0283
RELEAS MACRO RPROB RELEASE FILE FROM ACTIVE STATUS FCOR0284
STZ RPROB .. FCOR0285
RELEAS END FCOR0286
REM FCOR0287
RTNFIL MACRO ERRTN NORMAL CLOSE OUT OF ACTIVE FILE FCOR0288
TSX RTNFIL,4 .. CALLS RELEAS FCOR0289
PAR ERRTN .. POSSIBLE ERROR RETURN FCOR0290
RTNFIL END FCOR0291
REM FCOR0292
USTORE MACRO PARAM,ENDRTN MOVE WORD TO USER ARRAY AND BUMP ADDRESS FCOR0293
TSX USTORE,4 .. FCOR0294
PAR PARAM,,ENDRTN .. RETURN TO ENDRTN AT END OF ARRAY FCOR0295
USTORE END FCOR0296
REM FCOR0297
SSTRAP MACRO ICODE,IR4,ILC,INFO,COUNT INTERRUPT SUPERVISOR FCOR0298
TSX SSTRAP,4 CALL SUPERVISOR INTERRUPT PROCEDURE FCOR0299
PAR SLOTNO .. FCOR0300
PAR =ICODE .. FCOR0301
PAR IR4 .. FCOR0302
PAR ILC .. FCOR0303
PAR INFO,,COUNT .. FCOR0304
SSTRAP END FCOR0305
REM FCOR0306
LXTC MACRO WORD,TAG LOAD INDEX FROM TAG COMPLEMENTED FCOR0307
CAL WORD GET WORD FCOR0308
ARS 15 TAG TO ADDRESS FCOR0309
ANA =O7 MODULO 2.P.3 FCOR0310
PAC 0,TAG -TAG TO INDEX REGISTER FCOR0311
LXTC END FCOR0312
REM FCOR0313
EXIT MACRO IR4SAV,RTNLOC COMMON EXIT FROM I/O SYSTEM FCOR0314
TSX FILXIT,4 EXIT THROUGH SUPERVISOR EXIT ROUTINE FCOR0315
LXA IR4SAV,4 .. FCOR0316
RTNLOC .. FCOR0317
EXIT END FCOR0318
REM FCOR0319
* * * * * * * * * * * * * * * * * * * * * * * * FCOR0320
REM FCOR0321
REM ...... ERROR RETURNS FROM SEARCH MODULE ............. FCOR0322
REM FCOR0323
UFDERR ERROR 100 ERROR(100), I/O ERROR UFD OR MFD FCOR0324
REM FCOR0325
QUMERR ERROR 101 ERROR(101), UFD UNKNOWN MACHINE ERROR FCOR0326
EJECT FCOR0327
REM FCOR0328
MACRO MACRO TO GENERATE CALLS TO STRATEGY MODULESFCOR0329
SYMBOL GNCALL NAME .. FCOR0330
PMC ON .. FCOR0331
SYMBOL SYN *-1 .. DEFINE SYMBOL FOR TABLE REFERENCE FCOR0332
PMC OFF .. FCOR0333
SERNAM NAME,FMAX,(1,2,3,4,5,6,7) .. GENERATE CALLS FCOR0334
GNCALL END FCOR0335
REM FCOR0336
SERNAM MACRO NAME,MAX,LIST,SYM GENERATE STRATEGY MODULE CALLS FCOR0337
IRP LIST .. FCOR0338
SYM SET LIST-1 .. FCOR0339
IFF SYM/MAX,1,0 .. FCOR0340
CONC NAME,LIST .. FCOR0341
IRP .. FCOR0342
SERNAM END FCOR0343
REM FCOR0344
CONC MACRO NAME,NO GENERATE A SINGLE CALL FCOR0345
EXTERN NAME'NO' .. FCOR0346
PMC ON .. FCOR0347
TSX NAME'NO,4 .. CALL TO STRATEGY MODULE FCOR0348
PMC OFF .. FCOR0349
CONC END FCOR0350
REM FCOR0351
REM ..... CONSTRUCT STRATEGY MODULE CALLING VECTORS .........FCOR0352
REM FCOR0353
DFILEF GNCALL DFILE CALL TO DELETE A FILE FCOR0354
REM FCOR0355
SCRAPF GNCALL SCRAP CALL TO SCRAP PREVIOUSLY REQUESTED I/O FCOR0356
REM FCOR0357
SINITF GNCALL SINIT CALL TO INITIALIZE STRATEGY MODULE FCOR0358
REM FCOR0359
* * * * * * * * * * * * * * * * * * * * * * * * FCOR0360
REM FCOR0361
REM ..... INITIALIZE OTHER MODULES IN THIS ORDER ............FCOR0362
REM FCOR0363
SETMOD SYN *-1 OTHER MODULES THAT MUST BE INITIALIZED FCOR0364
TSX IFILES,4 .. INITIALIZE SEARCH MODULE FCOR0365
TSX IDRUMS,4 .. INITIALIZE DRUM TRACK MODULE FCOR0366
TSX IDISKS,4 .. INITIALIZE DISK TRACK MODULES FCOR0367
NINIT SYN *-SETMOD-1 .. COUNT OF ENTRIES TO BE INITIALIZED FCOR0368
REM FCOR0369
REM ..... MODULES TO BE CALLED BY UPDATE ....................FCOR0370
REM FCOR0371
UPDMOD SYN *-1 MODULES THAT SHOULD BE UPDATED FCOR0372
TSX UPDRUM,4 .. UPDATE DRUM TRACK USAGE MODULE FCOR0373
TSX UPDISK,4 .. UPDATE DISK TRACK USAGE MODULE FCOR0374
NUPDAT SYN *-UPDMOD-1 COUNT OF ENTRIES TO BE UPDATED FCOR0375
REM FCOR0376
REM FCOR0378
EJECT FCOR0379
REM FCOR0380
REM UPDMFD.($PROBNO$,$PROGNO$) FCOR0381
REM FCOR0382
UPDMFD SAVE 002,N,(FN) FCOR0383
REM FCOR0384
AXC FILTMP,2 FCOR0385
SEARCH MFD,FILNAM,UPDM1 CHECK IF USER ALREADY IN MFD FCOR0386
ERROR 3 UPDMFD ERROR(3), USER ALREADY IN MFD FCOR0387
REM FCOR0388
UPDM1 CLA FILNAM USER NOT IN MFD, CONSTRUCT NEW MFD ENTRY FCOR0389
TZE UMFDE5 ZERO PROBN IS USED FOR OTHER TESTS FCOR0390
LDQ FILNAM+1 NAME 2 OF ATTACHED DIRECTORY FCOR0391
DST FNAME1,2 PUT IN NEW ENTRY FCOR0392
TSX GTDYTM,4 .. FCOR0393
SLW DAYTIM,2 .. DATE + TIME CREATED FCOR0394
ANA =O777777000000 .. FCOR0395
ORA AUTHNO,1 ADD AUTHOR NUMBER FROM USER'S AFST FCOR0396
SLW DATELU,2 .. DATE LAST USED FCOR0397
CLA =O210000100000 .. READ-ONLY, PROTECTED MODE FCOR0398
LDQ TGPMAX .. PMAX IN TAG FCOR0399
DST MODE,2 PUT IN MODE, DEVICE, PMAX, ETC FCOR0400
ADDFIL MFD,UMFDME ADD THIS ENTRY TO THE MFD FCOR0401
AXC 1,3 FCOR0402
UPDM2 ZAC SET RECORD QUOTAS TO ZERO FCOR0403
SETQU (FNAME1,2) .. FCOR0404
TXL *+2,3,-FMAX .. FCOR0405
TXI UPDM2,3,-1 .. FCOR0406
REWRIT FILNAM,UMFDME UPDATE USER FILE DIRECTORY FCOR0407
REWRIT MFD,UMFDME UPDATE MASTER FILE DIRECTORY FCOR0408
TRA RETURN RETURN TO CALLER FCOR0409
REM FCOR0410
UMFDME ERROR 4 UPDMFD ERROR(4), MACHINE OR SYSTEM ERROR FCOR0411
REM FCOR0412
UMFDE5 ERROR 5 UPDMFD ERROR(5), ZERO PROBLEM NUMBER FCOR0413
REM FCOR0414
EJECT FCOR0415
REM FCOR0416
REM DELMFD.($PROBNO$,$PROGNO$) FCOR0417
REM FCOR0418
DELMFD SAVE 002,N,(FN) FCOR0419
REM FCOR0420
AXC FILTMP,2 FCOR0421
SEARCH MFD,FILNAM,DMFDME FIND THIS MFD ENTRY FCOR0422
AXC 1,3 FCOR0423
DMFD1 GETQU FILNAM INSURE NO RECORDS USED FCOR0424
PDX 0,4 .. FCOR0425
TXH DMFDE4,4,0 .. ERROR IF ALL FILES NOT DELETED FCOR0426
TXL *+2,3,-FMAX .. FCOR0427
TXI DMFD1,3,-1 .. FCOR0428
REWRIT FILNAM,DMFDME INSURE THIS DIRECTORY IS CLOSED FCOR0429
TSX DFILE,4 TRY TO DELETE THIS FILE FCOR0430
REMOVE MFD,FILNAM,DMFDME REMOVE USER FROM MFD FCOR0431
REWRIT MFD,DMFDME UPDATE MASTER FILE DIRECTORY FCOR0432
TRA RETURN RETURN TO CALLER FCOR0433
REM FCOR0434
DMFDME ERROR 3 DELMFD ERROR(3), USER NOT FOUND IN MFD FCOR0435
REM FCOR0436
DMFDE4 ERROR 4 DELMFD ERROR(4), UFD STILL IN USE FCOR0437
REM FCOR0438
EJECT FCOR0439
REM FCOR0440
REM ATTACH.($PROBNO$,$PROGNO$) FCOR0441
REM FCOR0442
ATTACH SAVE 002,N,(FN) FCOR0443
REM FCOR0444
NZT PROBNO,1 IS ANYONE CURRENTLY IN THIS SLOT FCOR0445
TRA ATTCH1 NO, SKIP FCOR0446
REWRIT UFD,ATTMER YES, UPDATE HIS FILE DIRECTORY FCOR0447
ATTCH1 NZT FILNAM FCOR0448
TRA ATTCH2 ATTACH.(0,X), AFST DE-ACTIVATED FCOR0449
CAL FILNAM+1 CHECK FOR USAGE TABLE ENTRIES FCOR0450
ERA UTFNAM GENERIC SECOND NAME FCOR0451
TNZ ATTCH3 NOT RESTRICTED NAME FCOR0452
CAL FILNAM CHECK FIRST NAME FCOR0453
ERA DRMNAM IS IT DRUM USAGE FCOR0454
TZE ATTERR YES, CANNOT BE 'EXECUTED' FCOR0455
CAL FILNAM .. FCOR0456
ERA DSKNAM OR DISK USAGE FCOR0457
TZE ATTERR .. FCOR0458
ATTCH3 AXC FILTMP,2 TEMPORARY SLOT FOR MFD SEARCH FCOR0459
SEARCH MFD,FILNAM,ATTERR FIND USER IN MFD FCOR0460
LDI F,2 MAKE SURE THERE'S NOT A LINK THERE SOMEHOW FCOR0461
RFT 700000 TEST DEVICE FIELD FCOR0462
TRA *+2 OK FCOR0463
TRA ATTMER RE-USE ERROR CODE FCOR0464
ATTCH2 CLA FILNAM GET USER PROBLEM NO. FCOR0465
LDQ FILNAM+1 AND PROGRAMMER NO. FCOR0466
DST PROBNO,1 SAVE IN AFST FCOR0467
TRA RETURN RETURN TO CALLER FCOR0468
REM FCOR0469
ATTERR ERROR 3 ATTACH ERROR(3), USER NOT IN MFD FCOR0470
REM FCOR0471
ATTMER ERROR 4 ATTACH ERROR(4), MACHINE OR SYSTEM ERROR FCOR0472
REM FCOR0473
REM ATTNAM.(A(N)...N) FCOR0474
REM FCOR0475
ATTNAM SAVE 0,N,(ARY) FCOR0476
REM FCOR0477
CAL PROBNO,1 RETURN NAME OF DIRECTORY TO WHICH FCOR0478
USTORE P1,RETURN USER IS ATTACHED FCOR0479
CAL PROGNO,1 PROBN, PROGN FCOR0480
USTORE P1,RETURN .. FCOR0481
CAL AUTHNO,1 BINARY VALUE OF AUTHOR NUMBER FCOR0482
USTORE P1,RETURN .. FCOR0483
CAL FPRIOR,1 USER FILE-PRIORITY SETTING FCOR0484
USTORE P1,RETURN .. FCOR0485
TRA RETURN FCOR0486
REM FCOR0487
* * * * * * * * * * * * * * * * * * * * * * * * FCOR0488
REM FCOR0489
REM UPDATE. FCOR0490
REM FCOR0491
UPDATE SAVE 0,N,() FCOR0492
REM FCOR0493
TSX UPDSYS,4 UPDATE ALL NECESSARY INFORMATION FCOR0494
PAR UPDMER .. POSSIBLE ERROR RETURN FCOR0495
TRA RETURN RETURN TO CALLER FCOR0496
REM FCOR0497
UPDMER ERROR 3 UPDATE ERROR(3), MACHINE OR SYSTEM ERROR FCOR0498
REM FCOR0499
* * * * * * * * * * * * * * * * * * * * * * * * FCOR0500
REM FCOR0501
REM SETPRI.(PRIOR) FCOR0502
REM FCOR0503
SETPRI SAVE 0,S,(SPM) FCOR0504
REM FCOR0505
CAL P1 PICK UP USER FILE PRIORITY FCOR0506
ANA =O7 INSURE 3-BIT PRIORITY FCOR0507
SLW FPRIOR,1 .. SAVE FILE PRIORITY FCOR0508
TRA RETURN AND RETURN FCOR0509
REM FCOR0510
EJECT FCOR0511
REM FCOR0512
REM OPEN.($STATUS$,$NAME1$,$NAME2$,MODE,DEVICE) FCOR0513
REM FCOR0514
OPEN SAVE 0,S,(SPM,FN,SP,SP) FCOR0515
REM FCOR0516
GTSTAT FILNAM,OPN CHECK IF THIS FILE IS ALREADY ACTIVE FCOR0517
ERROR 3 OPEN ERROR (3), FILE ALREADY ACTIVE FCOR0518
REM FCOR0519
OPN TSX CKSTAT,4 FIND ROOM IN ACTIVE FILE STATUS TABLE FCOR0520
PAR OPNER4 .. POSSIBLE ERROR RETURN (NO ROOM) FCOR0521
PAC 0,2 -BASE OF ENTRY IN A.F.S.T. TO IR2 FCOR0522
CLA FILNAM SET UP FILE NAME IN A.F.S.T. FCOR0523
LDQ FILNAM+1 .. FCOR0524
DST RNAME1,2 .. FCOR0525
CLA PROBNO,1 SET UP PROBNO-PROGNO AS RPROBN-RPROGN FCOR0526
LDQ PROGNO,1 .. FCOR0527
DST RPROBN,2 .. FCOR0528
REM FCOR0529
LDQ P1 $STATUS$ TO MQ FCOR0530
LDI =0 SET UP FILE STATUS FCOR0531
AXT 6,4 .. (READ, WRITE OR READ/WRITE) FCOR0532
OPN1 ZAC .. FCOR0533
LGL 6 .. FCOR0534
LAS =H00000R .. FCOR0535
TRA *+2 .. FCOR0536
SIL 100000 .. SET READ STATUS FOR 'R' FCOR0537
SUB =H00000W .. FCOR0538
TNZ *+3 .. FCOR0539
SIL 200000 .. HERE FOR 'W' SET WRITE STATUS FCOR0540
TRA OPN2 .. AND SKIP OUT FCOR0541
TIX OPN1,4,1 .. FCOR0542
REM FCOR0543
OPN2 LFT 300000 DID USER SPECIFY EITHER READ OR WRITE FCOR0544
TRA OPN3 YES, SKIP TO SAVE FILE STATUS (R, W OR RW) FCOR0545
RELEAS (RPROBN,2) NO, REMOVE FILE FROM A.F.S.T. FCOR0546
ERROR 5 OPEN ERROR(5), ILLEGAL STATUS FCOR0547
REM FCOR0548
OPN3 STI STATUS SAVE FILE STATUS FCOR0549
SEARCH UFD,FILNAM,OPN4 TRY TO FIND FILE IN UFD FILE FCOR0550
TSX CKLINK,4 CHECK FOR 'LINKED' FILE FCOR0551
PAR OPN4.1,,OPNER7 .. LINK NOT FOUND RETURN FCOR0552
TSX CHKACT,4 CHECK IF THIS FILE ALREADY ACTIVE FCOR0553
PAR OPNER3 .. ERROR IF THIS FILE ALREADY ACTIVE FCOR0554
REM FCOR0555
LDI URCODE,1 FILE FOUND, GET USER RESTRICTION CODE FCOR0556
LFT 000030 IS USER PRIVELEGED COMMAND OR DAEMON FCOR0557
TRA OPN3.3 YES, IGNORE ALL MODE CHECKS FCOR0558
LDI MODE,2 NO, PICK UP FILE MODE FCOR0559
LNT 400000 IS THIS FILE CURRENTLY BEING LOADED FCOR0560
TRA OPN3A NO, SKIP FCOR0561
RELEAS (RPROBN,2) YES, REMOVE FILE FROM ACTIVE STATUS FCOR0562
ERROR 16 OPEN ERROR(16), FILE BEING LOADED FCOR0563
REM FCOR0564
OPN3A LNT 004000 HAS FILE BEEN 'REMOVED' FCOR0565
TRA OPN3B NO, SKIP THIS SECTION FCOR0566
RELEAS (RPROBN,2) REMOVE FROM ACTIVE STATUS FCOR0567
ERROR 20 OPEN ERROR(20), FILE HAS BEEN 'REMOVED' FCOR0568
REM FCOR0569
OPN3B SYN * .. FCOR0570
REM FCOR0571
* LNT 100000 TEST IF FILE IS TO BE 'TRAPPED' FCOR0572
* TRA OPN3C NO, CONTINUE FCOR0573
* HTR * ADD NECESSARY CODE HERE FCOR0574
REM FCOR0575
*OPN3C SYN * .. FCOR0576
REM FCOR0577
LDI RMODE,2 RELOAD FILE MODE FCOR0578
LNT 040000 IS FILE IN PRIVATE MODE FCOR0579
TRA OPN3.1 NO, SKIP FCOR0580
LDI URCODE,1 YES, GET USER RESTRICTION CODE FCOR0581
RFT 10 IS USER ALLOWED TO READ PRIVATE FILES FCOR0582
TRA OPN3.1 YES, SKIP FCOR0583
CAL AUTHOR,2 NO, GET AUTHOR FCOR0584
ANA =O777777 .. FCOR0585
SUB AUTHNO,1 IS THIS USER THE 'AUTHOR' OF THIS FILE FCOR0586
TZE OPN3.1 YES, SKIP TO OPEN THIS FILE FCOR0587
RELEAS (RPROBN,2) NO, REMOVE FILE FROM ACTIVE FILE TABLE FCOR0588
ERROR 8 USER MAY NOT READ FILE ERROR(8) FCOR0589
REM FCOR0590
OPN3.1 LDI RMODE,2 IS FILE IN READ-ONLY MODE FCOR0591
LNT 010000 .. FCOR0592
TRA OPN3.2 NO, SKIP FCOR0593
LDI STATUS YES, IS USER TRYING TO WRITE THIS FILE FCOR0594
LNT 200000 .. FCOR0595
TRA OPN3.2 NO, SKIP FCOR0596
RELEAS (RPROBN,2) YES, REMOVE FILE FROM ACTIVE FILE TABLE FCOR0597
ERROR 9 OPEN ERROR(9), CANNOT WRITE READ-ONLY FILE FCOR0598
REM FCOR0599
OPN3.2 LDI RMODE,2 IS FILE IN WRITE-ONLY MODE FCOR0600
LNT 020000 .. FCOR0601
TRA OPN3.3 NO, SKIP FCOR0602
LDI STATUS YES, IS USER TRYING TO READ THIS FILE FCOR0603
LNT 100000 .. FCOR0604
TRA OPN3.3 NO, SKIP FCOR0605
RELEAS (RPROBN,2) YES, REMOVE FILE FROM ACTIVE FILE TABLE FCOR0606
ERROR 10 OPEN ERROR(10), CANNOT READ WRITE-ONLY FILEFCOR0607
REM FCOR0608
OPN3.3 LDI ILOCK,2 IS THIS FILE CURRENTLY INTERLOCKED FCOR0609
LNT 001000 .. FCOR0610
TRA OPN3.4 NO, SKIP FCOR0611
OPNBSY RELEAS (RPROBN,2) YES, REMOVE FILE FROM A.F.S.T. FCOR0612
TSX LOCK,4 TELL SUPERVISOR OF INTERLOCKED FILE FCOR0613
EXIT IR4,ILC AND RETURN TO USER AT 0,4 FCOR0614
REM FCOR0615
OPN3.4 LDI STATUS SET FILE STATUS IN ACTIVE TABLE FCOR0616
CAL RWSTAT,2 .. FCOR0617
OAI .. FCOR0618
STI RWSTAT,2 .. FCOR0619
LNT 200000 DOES THIS USER INTEND TO MODIFY THIS FILE FCOR0620
TRA OPN3.5 NO, SKIP FCOR0621
LDI ILOCK,2 YES, IS ANYONE CURRENTLY READING THIS FILE FCOR0622
LFT 000777 .. FCOR0623
TRA OPNBSY YES, THIS USER WILL HAVE TO WAIT FCOR0624
SIL 001000 NO, INTERLOCK THIS FILE FCOR0625
STI ILOCK,2 .. AND LET THIS USER MODIFY IT FCOR0626
TSX REFMFD,4 BUT LETS FIRST MAKE SURE FCOR0627
EFA FPROBN,2 THAT IT ISN'T IN M.F.D. FCOR0628
ZET FS.TST SEE IF HE IS ALLOWED FCOR0629
TRA OPN3.6 OK, IF YOU SAY SO FCOR0630
TRA OPNR18 NASTY, NASTY FCOR0631
REM FCOR0632
OPN3.5 LDI MODE,2 HERE IF USER ONLY INTENDS TO READ FILE FCOR0633
LNT 002000 IS FILE IN TEMPORARY MODE FCOR0634
TRA OPN35A NO, SKIP FCOR0635
LDI ILOCK,2 YES, PICK UP INTERLOCK FLAGS FCOR0636
LFT 000777 IS ANYONE ELSE USING THIS FILE FCOR0637
TRA OPNBSY ONLY ONE USER AT A TIME ON TEMP. FILE FCOR0638
REM FCOR0639
OPN35A CAL ILOCK,2 INCREASE NO. OF USERS READING THIS FILE FCOR0640
ACL =1B17 .. FCOR0641
SLW ILOCK,2 .. FCOR0642
TSX REFMFD,4 NEW RULES, IF FS.TST IS SET FCOR0643
EFA FPROBN,2 AND READ IS FROM MFD FCOR0644
ZET FS.TST LET UPDFIL GO THROUGH FCOR0645
OPN3.6 UPDFIL UFD,(FNAME1,2),OPNMER UPDATE FILE ENTRY IN UFD FCOR0646
TRA OPN5 SKIP TO CALL STRATEGY MODULE FCOR0647
REM FCOR0648
OPNMER RELEAS (RPROBN,2) HERE IF FILE NOT FOUND ON UPDFIL FCOR0649
ERROR 11 OPEN ERROR(11), MACHINE ERROR FCOR0650
REM FCOR0651
OPN4 CLA RPROBN,2 HERE IF FILE DOES NOT YET EXIST FCOR0652
LDQ RPROGN,2 .. FCOR0653
DST FPROBN,2 .. TRY TO CREATE NEW FILE ENTRY FCOR0654
CLA RNAME1,2 .. FILE NAME(1) FCOR0655
LDQ RNAME2,2 .. FCOR0656
DST FNAME1,2 .. FCOR0657
STZ RMODE,2 SET MODE TO 0 FCOR0658
CHKUFD (FPROBN,2),OPER19 CHECK FOR AVAILABLE U.F.D. FCOR0659
TRA OPN4.A FCOR0660
REM FCOR0661
OPN4.1 CLA LPROBN,2 HERE IF 'LINKED' FILE DOES NOT EXIST FCOR0662
LDQ LPROGN,2 .. FCOR0663
DST FPROBN,2 .. TRY TO CREATE NEW FILE ENTRY FCOR0664
CLA LNAME1,2 .. FILE NAME(1) FCOR0665
LDQ LNAME2,2 .. (2) FCOR0666
DST FNAME1,2 .. FCOR0667
REM FCOR0668
LDI URCODE,1 GET USER RESTRICTION CODE FCOR0669
LFT 30 IGNORE MODE CHECKS FOR DAEMON FCOR0670
TRA OPN4.A .. OR PRIVILEGED COMMAND FCOR0671
LDI RMODE,2 PICK UP MODE OF LINK FCOR0672
LNT 010000 IS FILE READ-ONLY TO THIS USER FCOR0673
TRA OPN41A .. NO, SKIP FCOR0674
LDI STATUS .. YES, IS USER TRYING TO WRITE THIS FILE FCOR0675
LNT 200000 .. FCOR0676
TRA OPN41A .. NO, SKIP FCOR0677
RELEAS (RPROBN,2) .. YES, REMOVE FILE FROM A.F.S.T. FCOR0678
ERROR 9 .. OPEN ERROR(9), ATTEMPT TO WRITE R/O FILEFCOR0679
REM FCOR0680
OPN41A LDI RMODE,2 RELOAD EFFECTIVE FILE MODE FCOR0681
LNT 020000 IS FILE WRITE-ONLY TO THIS USER FCOR0682
TRA OPN4.A .. NO, SKIP FCOR0683
LDI STATUS .. YES, IS USER TRYING TO READ FILE FCOR0684
LNT 100000 .. FCOR0685
TRA OPN4.A .. NO, SKIP FCOR0686
RELEAS (RPROBN,2) .. YES, REMOVE FILE FROM A.F.S.T. FCOR0687
ERROR 10 .. OPEN ERROR(10), CANNOT READ WRITE-ONLY FFCOR0688
REM FCOR0689
OPN4.A LDI STATUS PICK UP FILE ACTIVE STATUS (RW BITS) FCOR0690
LFT 200000 IS THIS FILE TO BE WRITTEN FCOR0691
TRA OPN4.B YES, SKIP TO SET UP NEW FILE FCOR0692
RELEAS (RPROBN,2) NO, REMOVE ENTRY FROM A.F.S.T. FCOR0693
ERROR 12 OPEN ERROR(12), FILE NOT FOUND FCOR0694
REM FCOR0695
OPN4.B TSX REFMFD,4 SEE IF USER ATTACHED TO 'M.F.D. (FILE)' FCOR0696
EFA FPROBN,2 .. FCOR0697
ZET FS.TST CHECK SWITCH FCOR0698
TRA OPN4.C IT'S ALRIGHT ANYWAY FCOR0699
OPNR18 RELEAS (RPROBN,2) USER TRIED TO WRITE FILE IN MFD FCOR0700
ERROR 18 OPEN ERROR(18), ILLEGAL USE OF MFD FCOR0701
REM FCOR0702
OPN4.C TSX GTDYTM,4 .. SET UP DATE AND TIME FILE CREATED FCOR0703
SLW DAYTIM,2 .. FCOR0704
ANA =O777777000000 .. GET DATE ALONE FCOR0705
ORA AUTHNO,1 .. + AUTHOR OF FILE FCOR0706
SLW DATELU,2 .. FCOR0707
LDI M.IL.F .. SET UP MODE,ILOCK,F,RCOUNT FCOR0708
SIL 001000 .. INTERLOCK THIS FILE WHILE WRITING FCOR0709
STI MODE,2 .. FCOR0710
CAL STATUS .. SET UP RWSTAT,NORECS,P,LCOUNT FCOR0711
ORA TGPMAX .. PMAX IN TAG FCOR0712
SLW RWSTAT,2 .. FCOR0713
REM FCOR0714
CLA P4 MODE OF FILE IF SPECIFIED FCOR0715
TMI OPN4.2 SKIP IF NOT SPECIFIED FCOR0716
ALS 28 SAVE AS HIGH ORDER 8 BITS FCOR0717
ORS MODE,2 .. FCOR0718
REM FCOR0719
OPN4.2 CAL MODE,2 SET UP RMODE TO BE THE SAME AS MODE FCOR0720
ANA =O776000000000 MASK ALL BUT MODE BITS FCOR0721
ORS RMODE,2 .. FCOR0722
CLA P5 DID USER SPECIFY A DEVICE FCOR0723
TMI OPN4.3 NO, SKIP FCOR0724
PAX 0,5 YES, DEVICE TO IR5 FCOR0725
ALS 15 DEVICE NUMBER TO AC TAG FCOR0726
STT F,2 SAVE IT IN ACTIVE FILE STATUS TABLE FCOR0727
TXL *+2,5,0 ERROR IF DEVICE .E. 0 FCOR0728
TXL OPN4.3,5,FMAX OK IF DEVICE .E. 1-FMAX FCOR0729
RELEAS (RPROBN,2) HERE FOR ILLEGAL DEVICE SPECIFICATION FCOR0730
ERROR 13 OPEN ERROR(13), ILLEGAL DEVICE FCOR0731
REM FCOR0732
OPN4.3 LXTC (F,2),3 -DEVICE TO IR3 FCOR0733
GETQU (FPROBN,2) GET QUOTA FOR THIS DEVICE FCOR0734
PAX 0,4 .. INTO IR4 FCOR0735
TXH OPN4.4,4,0 SKIP IF USER ALLOTTED SPACE ON THIS DEVICE FCOR0736
RELEAS (RPROBN,2) HERE IF NO SPACE, CLEAR THIS ENTRY FCOR0737
ERROR 14 OPEN ERROR(14), NO SPACE ALLOTTED FCOR0738
REM FCOR0739
OPN4.4 ADDFIL UFD,OPNMER ADD NEW FILE TO USER FILE DIRECTORY FCOR0740
REM FCOR0741
OPN5 LDI MODE,2 RELOAD FILE MODE FCOR0742
LFT 002000 IS FILE IN TEMPORARY MODE FCOR0743
TRA OPN5.1 YES, SKIP TO OPEN FILE FCOR0744
LDI RWSTAT,2 NO, CHECK FILE ACTIVE STATUS FCOR0745
LNT 200000 IS FILE OPEN FOR WRITING FCOR0746
TRA OPN5.1 NO, SKIP FCOR0747
CAL NORECS,2 WAS ENTRY CREATED BY 'TAPFIL' FCOR0748
PDX ,5 TEST RECORD LENGTH FCOR0749
TXL *+3,5,-2 IF = 32767, CAME FROM 'TAPFIL' FCOR0750
PXD ,0 CLEAR AC FCOR0751
STD NORECS,2 MUST HAVE NORECS 0 SO 'BUCM' WON'T SCREAM FCOR0752
LDI URCODE,1 PICK UP USER RESTRICTION CODE FCOR0753
LFT 30 IGNORE RECORD QUOTA FOR DAEMON/PRIV. COMD. FCOR0754
TRA OPN5.1 .. FCOR0755
LXTC (F,2),3 GET RECORD QUOTA,,USED FOR THIS DEVICE FCOR0756
GETQU (FPROBN,2) .. FCOR0757
TSX ADDREC,4 CHECK FOR RECORD QUOTA OVERFLOW FCOR0758
PAR =0 .. FCOR0759
PAR OPER15 .. FCOR0760
OPN5.1 CAL FPRIOR,1 SET UP USER FILE PRIORITY FCOR0761
TNZ *+2 .. SKIP IF USER HAS SET A FILE PRIORITY FCOR0762
CAL =1 .. OTHERWISE FORCE FILE PRIORITY OF '1' FCOR0763
SLW TEMP SAVE PRIORITY ASSIGNED TO THIS FILE FCOR0764
TSX BOPEN,4 TELL BUFFER CONTROL MODULE OF OPEN FILE FCOR0765
EFA 0,2 .. FCOR0766
PAR TEMP,,OPNERR .. FCOR0767
TRA RETURN AND RETURN TO USER FCOR0768
REM FCOR0769
OPNER3 RELEAS (RPROBN,2) OPEN ERROR(3), FILE ALREADY ACTIVE FCOR0770
ERROR 3 .. FCOR0771
REM FCOR0772
OPNER4 ERROR 4 OPEN ERROR(4), NO ROOM IN A.F.S.T. FCOR0773
REM FCOR0774
OPER15 RTNFIL OPNMER RECORD QUOTA OVERFLOW, REMOVE ACTIVE FILE FCOR0775
ERROR 15 OPEN ERROR(15), RECORD QUOTA OVERFLOW FCOR0776
REM FCOR0777
OPNERR RTNFIL OPNMER HERE FOR INPUT OR OUTPUT ERROR FCOR0778
IOERR 17 OPEN ERROR(17), I/O ERROR FCOR0779
REM FCOR0780
OPNER7 RELEAS (RPROBN,2) LINKAGE DEPTH EXCEEDED FCOR0781
ERROR 7 OPEN ERROR(7), TOO MANY LINKS FCOR0782
REM FCOR0783
OPER19 RELEAS (RPROBN,2) REMOVE ACTIVE FILE FCOR0784
ERROR 19 OPEN ERROR(19), U.F.D. NOT FOUND FCOR0785
EJECT FCOR0786
REM FCOR0787
REM BUFFER.($NAME1$,$NAME2$,BUFFER(RCOUNT)...RCOUNT) FCOR0788
REM FCOR0789
BUFFER SAVE 0,N,(FN,BARY) FCOR0790
REM FCOR0791
GTSTAT FILNAM,ASNER3 FIND ACTIVE FILE STATUS FCOR0792
PAC 0,2 -BASE OF THIS ENTRY TO IR2 FCOR0793
REM FCOR0794
ASN1 CAL BUFADR,2 PICK UP OLD BUFFER ADDRESS IF ANY FCOR0795
ANA =O77777 .. FCOR0796
TZE ASN2 SKIP IF NO PREVIOUSLY ASSIGNED BUFFER FCOR0797
TSX BSAVE,4 OTHERWISE, NORMALIZE ACTIVE FILE STATUS FCOR0798
EFA 0,2 .. FCOR0799
PAR MEM,,BUF .. FCOR0800
PAR ASIOER,,QWAIT .. FCOR0801
PAR ASNER4 .. FCOR0802
ASN2 TSX BASIGN,4 TELL B.C.M. OF NEW BUFFER FCOR0803
EFA 0,2 .. FCOR0804
PAR P3,,ASNER5 .. FCOR0805
TRA RETURN RETURN TO USER FCOR0806
REM FCOR0807
ASIOER IOERR 6 BUFFER ERROR(6), INPUT/OUTPUT ERROR FCOR0808
REM FCOR0809
ASNER3 ERROR 3 BUFFER ERROR(3), NOT AN ACTIVE FILE FCOR0810
REM FCOR0811
ASNER4 ERROR 4 BUFFER ERROR(4), PREVIOUS I/O OUT OF BOUNDSFCOR0812
REM FCOR0813
ASNER5 ERROR 5 BUFFER ERROR(5), NEW BUFFER TOO SMALL FCOR0814
REM FCOR0815
EJECT FCOR0816
REM FCOR0817
REM RDFILE.($NAME1$,$NAME2$,RELLOC,A(N)...N,EOF,EOFCT) FCOR0818
REM FCOR0819
RDFILE SAVE 0,N,(FN,SPM,MARY,ADR,ADR) FCOR0820
REM FCOR0821
STZ WAITSW SET SWITCH FOR NO WAITING FCOR0822
TRA READ1 AND GO TO COMMON READ SECTION FCOR0823
REM FCOR0824
* * * * * * * * * * * * * * * * * * * * * * * * FCOR0825
REM FCOR0826
REM RDWAIT.($NAME1$,$NAME2$,RELLOC,A(N)...N,EOF,EOFCT) FCOR0827
REM FCOR0828
RDWAIT SAVE 0,N,(FN,SPM,MARY,ADR,ADR) FCOR0829
REM FCOR0830
STL WAITSW SET SWITCH TO WAIT UNTIL I/O DONE FCOR0831
REM FCOR0832
READ1 GTSTAT FILNAM,RDFER3 PICK UP ACTIVE FILE STATUS FCOR0833
PAC 0,2 -BASE OF THIS ENTRY TO IR2 FCOR0834
LDI RWSTAT,2 GET READ-WRITE STATUS OF FILE FCOR0835
LNT 100000 IS FILE IN READ STATUS FCOR0836
TRA RDFER4 NO, ERROR FCOR0837
TSX REFMFD,4 SEE IF EFFECTIVE DIRECTORY IS MFD FCOR0838
EFA FPROBN,2 .. FCOR0839
ZET FS.TST IF SUPER-PRIVILEGED USER ON MFD, FCOR0840
TRA *+2 OR ORDINARY USER ON ORD. FILE FCOR0841
TRA RDFMFD .. SKIP FOR READ OUT OF MFD FCOR0842
TSX BREAD,4 CALL BCM TO EXECUTE FILE READ REQUEST FCOR0843
EFA 0,2 .. FCOR0844
PAR MEM,,BUF .. FCOR0845
PAR P3,,RDEOF1 .. FCOR0846
PAR P4,,QWAIT .. FCOR0847
PAR RDIOER,,RDFER6 .. FCOR0848
PAR RDFER5 .. FCOR0849
TRA RDF2 SKIP TO RETURN SECTION FCOR0850
REM FCOR0851
RDEOF1 TSX SETEOF,4 SET UP EOF RETURN ON EOF FCOR0852
RDF2 NZT WAITSW WAS THIS CALL TO 'RDWAIT' FCOR0853
TRA RETURN NO, RETURN TO USER FCOR0854
RDF3 TSX BCHECK,4 YES, WAIT UNTIL I/O COMPLETE FCOR0855
EFA 0,2 .. FCOR0856
PAR MEM,,BUF .. FCOR0857
PAR RDIOER,,RETURN .. FCOR0858
PAR RDFER6 .. FCOR0859
TRA RDF3 LOOP UNTIL I/O IS COMPLETED FCOR0860
REM FCOR0861
EJECT FCOR0862
REM FCOR0863
REM RDFMFD ..... SPECIAL READ SECTION FOR FILE FROM MFD FCOR0864
REM FCOR0865
RDFMFD REWRIT (FNAME1,2),RDFER8 REWRITE THIS FILE DIRECTORY FCOR0866
SEARCH MFD,(FNAME1,2),RDFER8 GET FRESH COPY OF UFD FCOR0867
LDI RWSTAT,2 SET NEW COPY OF FILE IN READ STATUS FCOR0868
SIL 100000 .. FCOR0869
STI RWSTAT,2 .. FCOR0870
TSX BREAD,4 CALL BCM TO EXECUTE FILE READ REQUEST FCOR0871
EFA 0,2 .. FCOR0872
PAR MEM,,BUF .. FCOR0873
PAR P3,,RDEOF2 .. FCOR0874
PAR P4,,*-4 .. FCOR0875
PAR RDIOER,,RDFER6 .. FCOR0876
PAR RDFER5 .. FCOR0877
AXC RETURN,3 SET FOR NORMAL RETURN FCOR0878
TRA RDFM1 SKIP ON NORMAL RETURN, (NO EOF) FCOR0879
REM FCOR0880
RDEOF2 TSX SETEOF,4 SET UP EOF RETURN ON EOF FCOR0881
RDFM1 CAL IOTASK,2 WAIT UNTIL ALL I/O IS COMPLETED FCOR0882
PDX 0,5 .. FCOR0883
TXH RDFM1,5,0 .. LOOP UNTIL I/O FINISHED FCOR0884
TRA RDF2 GO TO MAIN READ SECTION FOR RETURN FCOR0885
REM FCOR0886
RDFER3 ERROR 3 RDFILE ERROR(3), NOT AN ACTIVE FILE FCOR0887
REM FCOR0888
RDFER4 ERROR 4 RDFILE ERROR(4), FILE NOT IN READ STATUS FCOR0889
REM FCOR0890
RDFER5 ERROR 5 RDFILE ERROR(5), NO BUFFER ASSIGNED FCOR0891
REM FCOR0892
RDFER6 ERROR 6 RDFILE ERROR(6), I/O REQUEST OUT OF BOUNDS FCOR0893
REM FCOR0894
RDIOER IOERR 7 RDFILE ERROR(7), INPUT/OUTPUT ERROR FCOR0895
REM FCOR0896
RDFER8 ERROR 8 RDFILE ERROR(8), UFD HAS BEEN DELETED FCOR0897
REM FCOR0898
EJECT FCOR0899
REM FCOR0900
REM WRFILE.($NAME1$,$NAME2$,RELLOC,A(N)...N,EOF,EOFCT) FCOR0901
REM FCOR0902
WRFILE SAVE 0,N,(FN,SPM,MARY,ADR,ADR) FCOR0903
REM FCOR0904
STZ WAITSW SET SWITCH FOR NO WAITING FCOR0905
TRA WRITE1 AND GO TO COMMON WRITE SECTION FCOR0906
REM FCOR0907
* * * * * * * * * * * * * * * * * * * * * * * * FCOR0908
REM FCOR0909
REM WRWAIT.($NAME1$,$NAME2$,RELLOC,A(N)...N,EOF,EOFCT) FCOR0910
REM FCOR0911
WRWAIT SAVE 0,N,(FN,SPM,MARY,ADR,ADR) FCOR0912
REM FCOR0913
STL WAITSW SET SWITCH TO WAIT UNTIL I/O DONE FCOR0914
REM FCOR0915
WRITE1 GTSTAT FILNAM,WRFER3 PICK UP ACTIVE FILE STATUS FCOR0916
PAC 0,2 -BASE OF THIS ENTRY TO IR2 FCOR0917
LDI RWSTAT,2 GET READ-WRITE STATUS OF FILE FCOR0918
LNT 200000 IS FILE IN WRITE STATUS FCOR0919
TRA WRFER4 NO, ERROR FCOR0920
LDI URCODE,1 YES, PICK UP USER RESTRICTION CODE FCOR0921
LFT 000030 IS USER PRIVELEGED COMMAND OR DAEMON FCOR0922
TRA WRFA YES, IGNORE QUOTA, CHECK ON WRITE-ONLY FCOR0923
NZT P3 NO, DID USER SPECIFY A RELATIVE ADDRESS FCOR0924
TRA WRFA NO, SKIP FCOR0925
LDI RMODE,2 YES, PICK UP RMODE FCOR0926
LFT 020000 IS FILE IN WRITE ONLY MODE TO THIS USER FCOR0927
TRA WRFER9 IF SO, ERROR FCOR0928
WRFA CAL NORECS,2 PICK UP NO. OF RECORDS TO THIS FILE FCOR0929
PDX 0,5 .. INTO IR5 FCOR0930
TXH WFER10,5,-RGRACE ERROR IF NORECS.G.32767-RGRACE FCOR0931
LXTC (F,2),3 -F TO IR3 FCOR0932
GETQU (FPROBN,2) GET RECORD QUOTA FOR THIS DEVICE FCOR0933
SLW SAVEQU .. SAVE IT FCOR0934
LDI URCODE,1 RELOAD USER RESTRICTION CODE FCOR0935
LFT 30 IS USER DAEMON OR PRIV. COMMAND FCOR0936
TRA WRF1 YES, IGNORE RECORD QUOTA FCOR0937
LDI MODE,2 CHECK MODE OF FILE FCOR0938
LFT 002000 CHECK FOR 'T' MODE FCOR0939
TRA WRF6 IF 'T', NOT LONGER THAN QUOTA FCOR0940
TSX SUBREC,4 CHECK FOR USED.G.ALLOT+EXTEND FCOR0941
PAR EXTEND .. FCOR0942
PAR WRFER6 .. ERROR RETURN, EXTENSION EXHAUSTED FCOR0943
TRA WRF1 FCOR0944
REM FCOR0945
WRF6 CAL NORECS,2 'T', GET NO. OF RECORDS IN THIS FILE FCOR0946
ANA =O77777000000 .. FCOR0947
ARS 2 DIVIDE BY 4 FCOR0948
PDX ,7 AND PLACE IN XR7 FCOR0949
TIX *+2,7,RGRACE/4 IF .G. RGRACE/4, THEN DECREASE FCOR0950
AXT 0,7 OTHERWISE, MAKE IT ZERO FCOR0951
SXD SAVEQU,7 PLACE IN DECREMENT WITH RECORD QUOTA FCOR0952
CAL SAVEQU RESTORE USER RECORD QUOTA FCOR0953
TSX ADDREC,4 INSURE TEMP FILE LENGTH .L. 4*QUOTA+RGRACE FCOR0954
PAR =0 .. FCOR0955
PAR WRFER6 .. IF SO, ERROR FCOR0956
WRF1 CAL NORECS,2 SAVE NO. OF RECORDS USED FOR THIS FILE FCOR0957
PDX 0,5 .. NORECS TO ADDRESS OF AC FCOR0958
PXA 0,5 .. FCOR0959
SLW TEMP SAVE RECORDS USED FOR THIS FILE FCOR0960
TSX BWRITE,4 CALL B.C.M. TO EXECUTE WRITE REQUEST FCOR0961
EFA 0,2 .. FCOR0962
PAR MEM,,BUF .. FCOR0963
PAR P3,,WREOF .. FCOR0964
PAR P4,,QWAIT .. FCOR0965
PAR WRIOER,,WRFER7 .. FCOR0966
PAR WRFER5 .. FCOR0967
LDI MODE,2 RELOAD FILE MODE FCOR0968
LFT 002000 IS IT TEMPORARY FCOR0969
TRA WRF2 YES, SKIP FCOR0970
CAL NORECS,2 NO, PICK UP NO. OF RECORDS IN THIS FILE FCOR0971
PDX 0,5 .. NORECS TO ADDRESS OF AC FCOR0972
PXA 0,5 .. FCOR0973
SUB TEMP CHECK IF FILE INCREASED IN LENGTH FCOR0974
TZE WRF2 SKIP IF NO CHANGE IN FILE LENGTH FCOR0975
STO TEMP OTHERWISE SAVE DIFFERENCE FCOR0976
CAL SAVEQU NO, RESTORE USER QUOTA,,USED FCOR0977
TSX ADDREC,4 AND UPDATE USER RECORD COUNT FCOR0978
PAR TEMP .. WITH NO. OF RECORDS ADDED TO FILE FCOR0979
PAR *+1 .. IGNORE ERROR RETURN FCOR0980
SETQU (FPROBN,2) REPLACE RECORD QUOTA,,USED IN UFD FCOR0981
TRA WRF2 SKIP TO CHECK WAITSW FCOR0982
REM FCOR0983
WREOF TSX SETEOF,4 SET UP EOF RETURN ON EOF FCOR0984
WRF2 NZT WAITSW WAS THIS CALL TO 'WRWAIT' FCOR0985
TRA WRF4 NO, SKIP FCOR0986
WRF3 TSX BCHECK,4 YES, WAIT UNTIL I/O COMPLETED FCOR0987
EFA 0,2 .. FCOR0988
PAR MEM,,BUF .. FCOR0989
PAR WRIOER,,WRF4 .. FCOR0990
PAR WRFER7 .. FCOR0991
TRA WRF3 LOOP UNTIL I/O IS COMPLETED FCOR0992
REM FCOR0993
WRF4 LDI RMODE,2 RELOAD FILE MODE FCOR0994
LNT 020000 IS FILE 'APPEND-ONLY' FCOR0995
TRA RETURN NO, RETURN FCOR0996
WRF5 TSX BSAVE,4 YES, INSURE ALL I/O IS COMPLETED FCOR0997
EFA 0,2 .. FCOR0998
PAR MEM,,BUF .. FCOR0999
PAR WRIOER,,WRF5 .. FCOR1000
PAR WRFER7 .. FCOR1001
TRA RETURN RETURN TO USER FCOR1002
REM FCOR1003
WRIOER IOERR 8 WRFILE ERROR(8), INPUT/OUTPUT ERROR FCOR1004
REM FCOR1005
WRFER3 ERROR 3 WRFILE ERROR(3), NOT AN ACTIVE FILE FCOR1006
REM FCOR1007
WRFER4 ERROR 4 WRFILE ERROR(4), FILE NOT IN WRITE STATUS FCOR1008
REM FCOR1009
WRFER5 ERROR 5 WRFILE ERROR(5), NO BUFFER ASSIGNED FCOR1010
REM FCOR1011
WRFER6 ERROR 6 WRFILE ERROR(6), RECORD QUOTA EXHAUSTED FCOR1012
REM FCOR1013
WRFER7 ERROR 7 WRFILE ERROR(7), I/O REQUEST OUT OF BOUNDS FCOR1014
REM FCOR1015
WRFER9 ERROR 9 WRFILE ERROR(9), ILLEGAL USE OF W-O FILE FCOR1016
REM FCOR1017
WFER10 ERROR 10 WRFILE ERROR(10), MAX. FILE LENGTH EXCEEDEDFCOR1018
REM FCOR1019
EJECT FCOR1020
REM FCOR1021
REM TRFILE.($NAME1$,$NAME2$,RELLOC) FCOR1022
REM FCOR1023
TRFILE SAVE 0,N,(FN,SPM) FCOR1024
REM FCOR1025
GTSTAT FILNAM,TRFER3 PICK UP ACTIVE FILE STATUS FCOR1026
PAC 0,2 -BASE OF THIS ENTRY TO IR2 FCOR1027
LDI RWSTAT,2 GET READ-WRITE STATUS OF FILE FCOR1028
LNT 200000 IS FILE IN WRITE STATUS FCOR1029
TRA TRFER4 NO, ERROR FCOR1030
LDI URCODE,1 PICK UP USER RESTRICTION CODE FCOR1031
LFT 30 IS THIS NORMAL USER FCOR1032
TRA TRF0 IGNORE CHECK ON WRITE-ONLY FOR DAEMON FCOR1033
LDI RMODE,2 YES, PICK MODE FOR THIS USER FCOR1034
LFT 020000 IS FILE WRITE-ONLY TO THIS USER FCOR1035
TRA TRFER9 IF SO, ERROR FCOR1036
TRF0 CAL NORECS,2 PICK UP NO. OF RECORDS IN THIS FILE FCOR1037
PDX 0,5 .. NORECS TO ADDRESS FCOR1038
PXA 0,5 .. FCOR1039
SLW TEMP .. FCOR1040
TSX BTRUNC,4 CALL B.C.M. TO TRUNCATE FILE FCOR1041
EFA 0,2 .. FCOR1042
PAR MEM,,BUF .. FCOR1043
PAR P3,,TREOF .. FCOR1044
PAR TRIOER,,QWAIT .. FCOR1045
PAR TRFER6,,TRFER5 .. FCOR1046
LDI MODE,2 GET FILE MODE FCOR1047
LFT 002000 IS FILE IN TEMPORARY MODE FCOR1048
TRA TRF1 YES, SKIP FCOR1049
CAL NORECS,2 NO, PICK UP NEW NO. OF RECORDS IN FILE FCOR1050
PDX 0,5 .. NORECS TO ADDRESS FCOR1051
PXA 0,5 .. FCOR1052
SUB TEMP CHECK IF FILE LENGTH CHANGED FCOR1053
TZE TRF1 SKIP IF NORECS IS STILL THE SAME FCOR1054
STO TEMP OTHERWISE SAVE THE DIFFERENCE FCOR1055
LXTC (F,2),3 -F TO IR3 FCOR1056
GETQU (FPROBN,2) GET RECORDS ALLOTTED,,USED FCOR1057
TSX ADDREC,4 AND REDUCE USER RECORDS USED FCOR1058
PAR TEMP .. BY NO. OF RECORDS DELETED FCOR1059
PAR *+1 .. IGNORE ERROR RETURN FCOR1060
SETQU (FPROBN,2) REPLACE QUOTA,,USED IN UFD FCOR1061
TRF1 TRA RETURN RETURN TO USER FCOR1062
REM FCOR1063
TREOF ERROR 7 TRFILE ERROR(7), RELLOC TOO LARGE FOR FILE FCOR1064
REM FCOR1065
TRIOER IOERR 8 TRFILE ERROR(8), INPUT/OUTPUT ERROR FCOR1066
REM FCOR1067
TRFER3 ERROR 3 TRFILE ERROR(3), NOT AN ACTIVE FILE FCOR1068
REM FCOR1069
TRFER4 ERROR 4 TRFILE ERROR(4), FILE NOT IN WRITE STATUS FCOR1070
REM FCOR1071
TRFER5 ERROR 5 TRFILE ERROR(5), NO BUFFER ASSIGNED FCOR1072
REM FCOR1073
TRFER6 ERROR 6 TRFILE ERROR(6), I/O REQUEST OUT OF BOUNDS FCOR1074
REM FCOR1075
TRFER9 ERROR 9 TRFILE ERROR(9), ILLEGAL USE OF W-O FILE FCOR1076
REM FCOR1077
EJECT FCOR1078
REM FCOR1079
REM FCHECK.($NAME1$,$NAME2$,FINISH) FCOR1080
REM FCOR1081
FCHECK SAVE 0,N,(FN,ADR) FCOR1082
REM FCOR1083
GTSTAT FILNAM,CHKER3 PICK UP ACTIVE FILE STATUS FCOR1084
PAC 0,2 -BASE OF ENTRY TO IR2 FCOR1085
TSX BCHECK,4 CALL B.C.M. TO CHECK IF FILE BUSY FCOR1086
EFA 0,2 .. FCOR1087
PAR MEM,,BUF .. FCOR1088
PAR CKIOER,,CKFIN .. FCOR1089
PAR CHKER4 .. FCOR1090
TRA RETURN RETURN TO USER FCOR1091
REM FCOR1092
CKFIN CLA P3 HERE WHEN I/O FINISHED, GET USER RETURN FCOR1093
TMI RETURN EXIT IF NO RETURN SPECIFIED FCOR1094
STA RTNILC OTHERWISE SET UP 'FINISH' RETURN TO USER FCOR1095
TRA RETURN AND RETURN FCOR1096
REM FCOR1097
* * * * * * * * * * * * * * * * * * * * * * * * FCOR1098
REM FCOR1099
REM FWAIT.($NAME1$,$NAME2$) FCOR1100
REM FCOR1101
FWAIT SAVE 0,N,(FN) FCOR1102
REM FCOR1103
GTSTAT FILNAM,CHKER3 PICK UP ACTIVE FILE STATUS FCOR1104
PAC 0,2 -BASE OF ENTRY TO IR2 FCOR1105
FWAT1 TSX BCHECK,4 CALL B.C.M. TO WAIT UNTIL I/O FINISHED FCOR1106
EFA 0,2 .. FCOR1107
PAR MEM,,BUF .. FCOR1108
PAR CKIOER,,FWAT2 .. FCOR1109
PAR CHKER4 .. FCOR1110
TRA QWAIT LET USER LOOP ON HIS OWN TIME FCOR1111
REM FCOR1112
FWAT2 TRA RETURN RETURN WHEN I/O DONE FOR THIS FILE FCOR1113
REM FCOR1114
CKIOER IOERR 5 FCHECK ERROR(5), INPUT/OUTPUT ERROR FCOR1115
REM FCOR1116
CHKER3 ERROR 3 FCHECK ERROR(3), NOT AN ACTIVE FILE FCOR1117
REM FCOR1118
CHKER4 ERROR 4 FCHECK ERROR(4), I/O REQUEST OUT OF BOUNDS FCOR1119
REM FCOR1120
EJECT FCOR1121
REM FCOR1122
REM CLOSE.($NAME1$,$NAME2$) FCOR1123
REM FCOR1124
CLOSE SAVE 0,N,(SPM,SP) FCOR1125
REM FCOR1126
CAL P1 GET FIRST FILE NAME FCOR1127
SLW FILNAM .. FCOR1128
CAL P2 GET SECOND FILE NAME IF SPECIFIED FCOR1129
SLW FILNAM+1 .. FCOR1130
ERA NULPAR WAS A SECOND FILE NAME SPECIFIED FCOR1131
TZE CLSALL NO, CHECK FOR CLOSE.($ALL$) FCOR1132
GTSTAT FILNAM,CLSER3 YES, PICK UP ACTIVE FILE STATUS FCOR1133
PAC ,2 PUT INTO INDEX FCOR1134
TSX FCLOSE,4 CLOSE OUT THIS FILE FCOR1135
TRA RETURN AND RETURN FCOR1136
REM FCOR1137
CLSER3 ERROR 3 CLOSE ERROR(3), NOT AN ACTIVE FILE FCOR1138
REM FCOR1139
CLSALL CLA FILNAM HERE IF NO SECOND FILE NAME GIVEN FCOR1140
SUB =HALL CHECK FOR CLOSE.($ALL$) FCOR1141
TZE CLSAL1 .. FOUND, CLOSE OUT ALL FILES FCOR1142
CLA FILNAM .. LOOK FOR RIGHT ADJUSTED VERSION FCOR1143
SUB =H ALL .. FCOR1144
TNZ SEQERR .. SEQUENCE ERROR IF NOT 'ALL' FCOR1145
CLSAL1 STZ ANYFIL+1 INITIALIZE SEARCH THRU A.F.S.T. FCOR1146
CLSGET GTSTAT ANYFIL,RETURN GET ANY ACTIVE FILE ENTRY FCOR1147
PAC ,2 BASE TO X7 FCOR1148
CLA RNAME1,2 GET NAME1 FCOR1149
LDQ RNAME2,2 NAME2 OF FILE REFERENCE FCOR1150
DST FILNAM SAVE FOR DIAGNOSTICS FCOR1151
TSX FCLOSE,4 AND CLOSE OUT THE FILE FCOR1152
TRA CLSGET GET NEXT ACTIVE FILE ENTRY OR RETURN FCOR1153
REM FCOR1154
FCLOSE SXA FCLIR4,4 HERE TO CLOSE OUT FILE FCOR1155
LXTC (F,2),3 -F TO IR3 FCOR1156
TSX BCLOSE,4 CALL B.C.M. TO CLOSE OUT THIS FILE FCOR1157
EFA 0,2 .. FCOR1158
PAR MEM,,BUF .. FCOR1159
PAR CLIOER,,QWAIT .. FCOR1160
PAR CLSER4 .. FCOR1161
RTNFIL CLSMER RETURN FILE TO INACTIVE STATUS FCOR1162
LXA FCLIR4,4 AND RETURN FCOR1163
TRA 1,4 .. FCOR1164
REM FCOR1165
SEQERR ERROR 1 ERROR(1), ILLEGAL CALLING SEQUENCE FCOR1166
REM FCOR1167
CLSER4 XEC SCRAPF,3 HERE FOR BUFFER OUT OF BOUNDS, SCRAP FILE FCOR1168
EFA 0,2 .. DIRECTLY THROUGH STRATEGY MODULE FCOR1169
PAR QWAIT .. FCOR1170
RTNFIL CLSMER RETURN FILE TO INACTIVE STATUS FCOR1171
ERROR 4 CLOSE ERROR(4), I/O REQUEST OUT OF BOUNDS FCOR1172
REM FCOR1173
CLIOER IOERR 5 CLOSE ERROR(5), INPUT/OUTPUT ERROR FCOR1174
REM FCOR1175
CLSMER ERROR 6 CLOSE ERROR(6), MACHINE OR SYSTEM ERROR FCOR1176
REM FCOR1177
EJECT FCOR1178
REM FCOR1179
REM RESETF. FCOR1180
REM FCOR1181
RESETF SAVE 0,N,() FCOR1182
REM FCOR1183
STZ ANYFIL+1 INITIALIZE SEARCH THRU A.F.S.T. FCOR1184
RSTF1 GTSTAT ANYFIL,RETURN GET ANY ACTIVE FILE ENTRY FCOR1185
PAC 0,2 -BASE OF ENTRY TO IR2 FCOR1186
CLA RNAME1,2 .. (AS AT CLOSE) FCOR1187
LDQ RNAME2,2 .. FCOR1188
DST FILNAM .. FCOR1189
LXTC (F,2),3 -F TO IR3 FCOR1190
TSX IOHALT,4 STOP I/O FCOR1191
PAR =0 STOP ALL I/O FCOR1192
XEC SCRAPF,3 SCRAP ALL PENDING I/O FOR THIS FILE FCOR1193
EFA 0,2 .. THROUGH STRATEGY MODULE FCOR1194
PAR RSTBSY .. FCOR1195
TSX IOBEGN,4 RESTART I/O NOW FCOR1196
PAR =0 RATHER THAN WORRY ABOUT ERROR LATER FCOR1197
RTNFIL RSTER3 RETURN FILE TO INACTIVE STATUS FCOR1198
TRA RSTF1 GET NEXT ACTIVE FILE OR RETURN FCOR1199
REM FCOR1200
RSTBSY TSX IOBEGN,4 RESTART BLOCKED I/O FCOR1201
PAR =0 FOR ALL (NON-BLOCKED) USERS FCOR1202
TRA QWAIT RETURN TO USER AT (0,4) FCOR1203
REM FCOR1204
RSTER3 ERROR 3 RESETF ERROR(3), MACHINE OR SYSTEM ERROR FCOR1205
REM FCOR1206
EJECT FCOR1207
REM FCOR1208
REM CHFILE.($OLDNM1$,$OLDNM2$,NEWMOD,$NEWNM1$,$NEWNM2$) FCOR1209
REM FCOR1210
CHFILE SAVE 0,S,(FN,SP,SP,SP) FCOR1211
REM FCOR1212
AXC FILTMP,2 TRY TO FIND FILE IN U.F.D.(FILE) FCOR1213
SEARCH UFD,FILNAM,CHFER4 .. FCOR1214
TSX CKLINK,4 CHECK FOR 'LINKED' FILE FCOR1215
PAR CHFER5,,CHFER6 .. ERROR IF 'LINKED' FILE NOT FOUND FCOR1216
TSX REFMFD,4 BUT HE CAN'T CHANGE ANYTHING IN M.F.D FCOR1217
EFA FPROBN,2 .. FCOR1218
ZET FS.TST ERROR RETURN FROM 'REFMFD', FCOR1219
TRA *+2 CHECK FOR SPECIAL 'MICK'EY MOUSE FCOR1220
TRA CHFER3 HOO-HAH FCOR1221
CLA FNAME1,2 GET NAME1 FCOR1222
LDQ FNAME2,2 .. FCOR1223
DST RNAME1,2 PUT BOTH IN AFENTRY FCOR1224
TSX CHKACT,4 CHECK IF THIS FILE IS ALREADY ACTIVE FCOR1225
PAR CHER12 .. ERROR IF THIS FILE IS ACTIVE FCOR1226
REM FCOR1227
CAL AUTHOR,2 IS THIS USER THE AUTHOR OF THIS FILE FCOR1228
ANA =O777777 .. FCOR1229
SUB AUTHNO,1 .. FCOR1230
TZE CHF3 .. YES, HE MAY CHANGE OWN FILES FCOR1231
REM FCOR1232
LDI RMODE,2 FILE FOUND, GET FILE MODE FCOR1233
LNT 040000 IS FILE IN PRIVATE MODE FCOR1234
TRA CHF2 NO, SKIP FCOR1235
LDI URCODE,1 YES, GET USER RESTRICTION CODE FCOR1236
RFT 10 IS USER ALLOWED TO REFERENCE PRIVATE FILES FCOR1237
TRA CHF2 YES, SKIP FCOR1238
ERROR 7 NO, CHFILE ERROR(7), PRIVATE FILE FCOR1239
REM FCOR1240
CHF2 LDI RMODE,2 RELOAD FILE MODE FCOR1241
LNT 200000 IS FILE IN PROTECTED MODE FCOR1242
TRA CHF3 NO, SKIP FCOR1243
LDI URCODE,1 YES, GET USER RESTRICTION CODE FCOR1244
RFT 04 MAY USER MODIFY PROTECTED FILES FCOR1245
TRA CHF3 YES, SKIP FCOR1246
ERROR 8 CHFILE ERROR(8), PROTECTED FILE FCOR1247
REM FCOR1248
CHF3 LDI ILOCK,2 GET FILE INTERLOCK SWITCH FCOR1249
LFT 001777 IS FILE CURRENTLY IN USE FCOR1250
TRA CHFBSY YES, SKIP TO INTERRUPT SUPERVISOR FCOR1251
STZ TEMP NO, CLEAR TEMP (RECORDS TO CHARGE) FCOR1252
CLA P3 GET NEW MODE IF SPECIFIED FCOR1253
TMI CHF4 SKIP IF MODE UNCHANGED FCOR1254
ALS 28 TO HIGH ORDER 8 BITS OF AC FCOR1255
SLW NEWMOD SAVE NEW FILE MODE FCOR1256
LDI MODE,2 PICK UP OLD FILE MODE FCOR1257
CAL NORECS,2 COMPUTE NO. RECORDS CHARGED TO FILE FCOR1258
PDX ,5 .. FCOR1259
PXA ,5 .. FCOR1260
SSM .. SET TO REDUCE NO. OF RECORDS FCOR1261
LNT 002000 IS FILE IN TEMPORARY MODE FCOR1262
STO TEMP .. NO, SAVE NO. RECORDS CHARGED TO FILE FCOR1263
RIL 776000 RESET OLD FILE MODE FCOR1264
OSI NEWMOD ADD NEW FILE MODE FROM CALL FCOR1265
STI MODE,2 SAVE AS NEW FILE MODE FCOR1266
PXA ,5 RELOAD NO. RECORDS IN FILE FCOR1267
ADD TEMP COMPUTE DIFFERENCE FCOR1268
LNT 002000 IS FILE NOW IN TEMPORARY MODE FCOR1269
STO TEMP .. NO, SAVE DIFFERENCE FCOR1270
REM FCOR1271
CHF4 CAL P4 NEW FILE NAME 1 IF SPECIFIED FCOR1272
STZ NAMESW RESET FILE NAME CHANGED SWITCH FCOR1273
LAS NULPAR IS NEW NAME1 SPECIFIED FCOR1274
TRA *+2 YES FCOR1275
TRA CHF5 NO, SKIP FCOR1276
SLW FNAME1,2 YES, STORE NEW FNAME1 FCOR1277
STL NAMESW AND INDICATE THAT FILE NAME HAS CHANGED FCOR1278
REM FCOR1279
CHF5 CAL P5 NEW FILE NAME 2 IF SPECIFIED FCOR1280
LAS NULPAR IS NEW NAME2 SPECIFIED FCOR1281
TRA *+2 YES FCOR1282
TRA CHF6 NO, SKIP FCOR1283
SLW FNAME2,2 YES, STORE NEW FNAME2 FCOR1284
STL NAMESW AND INDICATE THAT FILE NAME HAS CHANGED FCOR1285
REM FCOR1286
CHF6 NZT NAMESW HAS FILE NAME CHANGED FCOR1287
TRA CHF7 NO, SKIP TO ENTER CHANGES FCOR1288
ZET FNAME1,2 CHECK THAT BOTH NEW FCOR1289
TRA *+3 FILE NAMES FCOR1290
NZT FNAME2,2 ARE NOT FCOR1291
TRA SEQERR COMPLETELY ZERO FCOR1292
TSX GTDYTM,4 YES, PICK UP DATE AND TIME OF DAY FCOR1293
SLW DAYTIM,2 AND UPDATE DATE/TIME LAST MODIFIED FCOR1294
SEARCH (FPROBN,2),(FNAME1,2),CHF7 SEE IF FILE ALREADY EXISTS FCOR1295
ERROR 10 CHFILE ERROR(10), FILE NAME CONFLICT FCOR1296
REM FCOR1297
CHF7 NZT TEMP SHOULD USER RECORDS USED BE UPDATED FCOR1298
TRA CHF9 NO, SKIP FCOR1299
LXTC (F,2),3 YES, -F TO IR3 FCOR1300
GETQU (FPROBN,2) PICK UP RECORD QUOTA,,USED FCOR1301
TSX ADDREC,4 UPDATE USER NO. OF RECORDS USED FCOR1302
PAR TEMP .. BY + OR - C(TEMP) FCOR1303
PAR *+2 .. SKIP ON RECORD QUOTA OVERFLOW FCOR1304
TRA CHF8 .. OTHERWISE GO UPDATE UFD FCOR1305
LDI URCODE,1 PICK UP USER RESTRICTION CODE FCOR1306
LFT 30 IGNORE RECORD QUOTA OVERFLOW FCOR1307
TRA CHF8 .. FOR DAEMON OR PRIVILEGED COMMAND FCOR1308
LDQ TEMP PICK UP AMOUNT OF CHANGE FCOR1309
TQP CHFER9 .. ERROR IF RECORD USAGE INCREASE FCOR1310
CHF8 SETQU (FPROBN,2) UPDATE RECORD QUOTA,,USED IN UFD FCOR1311
REM FCOR1312
CHF9 CAL AUTHNO,1 CHANGE FILE 'AUTHOR' NUMBER FCOR1313
TZE *+3 .. SKIP IF NO 'AUTHOR' SPECIFIED FCOR1314
STT AUTHOR,2 .. FCOR1315
STA AUTHOR,2 .. FCOR1316
UPDFIL UFD,(RNAME1,2),CHFMER UPDATE CHANGED FILE ENTRY IN UFD FCOR1317
TRA RETURN AND RETURN FCOR1318
REM FCOR1319
CHFBSY TSX LOCK,4 TELL SUPERVISOR OF INTERLOCKED FILE FCOR1320
EXIT IR4,ILC AND RETURN TO USER AT 0,4 FCOR1321
REM FCOR1322
CHFMER ERROR 11 CHFILE ERROR(11), MACHINE ERROR FCOR1323
REM FCOR1324
CHFER3 ERROR 3 CHFILE ERROR(3), RESTRICTED FILE NAME FCOR1325
REM FCOR1326
CHFER4 ERROR 4 CHFILE ERROR(4), FILE NOT FOUND FCOR1327
REM FCOR1328
CHFER5 ERROR 5 CHFILE ERROR(5), LINK NOT FOUND FCOR1329
REM FCOR1330
CHFER9 ERROR 9 CHFILE ERROR(9), RECORD QUOTA OVERFLOW FCOR1331
REM FCOR1332
CHER12 ERROR 12 CHFILE ERROR(12), FILE ALREADY ACTIVE FCOR1333
REM FCOR1334
CHFER6 ERROR 6 CHFILE ERROR(6), LINKAGE DEPTH EXCEEDED FCOR1335
REM FCOR1336
EJECT FCOR1337
REM FCOR1338
REM RSFILE.($NAME1$,$NAME2$) FCOR1339
REM FCOR1340
RSFILE SAVE 22,S,(FN) FCOR1341
REM FCOR1342
ENK GET CONSOLE ENTRY KEYS FCOR1343
RQL 22 ALLOW CALL ONLY IF FCOR1344
TQP RSFER2 .. KEY 22 DOWN FCOR1345
REM FCOR1346
AXC FILTMP,2 TRY TO FIND FILE IN U.F.D. FCOR1347
SEARCH UFD,FILNAM,RSFER3 .. FCOR1348
TSX CKLINK,4 SEE IF 'LINKED' FILE FCOR1349
PAR RSFER4,,RSFER5 .. ERROR, LINKED FILE NOT FOUND FCOR1350
TSX CHKACT,4 SEE IF THIS FILE IS ACTIVE FCOR1351
PAR RSFER6 .. ERROR IF ACTIVE FILE FCOR1352
REM FCOR1353
LDI RWSTAT,2 RESET READ/WRITE STATUS FLAGS FCOR1354
RIL 700000 .. OF THIS FILE FCOR1355
STI RWSTAT,2 .. FCOR1356
TSX UNLOCK,4 RESET INTERLOCK, TELL SUPERVISOR FCOR1357
UPDFIL UFD,(FNAME1,2),RSFMER AND UPDATE FILE ENTRY FCOR1358
TRA RETURN EXIT FCOR1359
REM FCOR1360
RSFER2 ERROR 2 RSFILE ERROR(2), UNAUTHORIZED USE OF CALL FCOR1361
REM FCOR1362
RSFER3 ERROR 3 RSFILE ERROR(3), FILE NOT FOUND FCOR1363
REM FCOR1364
RSFER4 ERROR 4 RSFILE ERROR(4), LINK NOT FOUND FCOR1365
REM FCOR1366
RSFER5 ERROR 5 RSFILE ERROR(5), LINK DEPTH EXCEEDED FCOR1367
REM FCOR1368
RSFER6 ERROR 6 RSFILE ERROR(6), ATTEMPT TO RESET ACTIVE FIFCOR1369
REM FCOR1370
RSFMER ERROR 7 RSFILE ERROR(7), SYSTEM OR MACHINE ERROR FCOR1371
REM FCOR1372
EJECT FCOR1373
REM FCOR1374
REM DELFIL.($NAME1$,$NAME2$) FCOR1375
REM FCOR1376
DELFIL SAVE 0,S,(FN) FCOR1377
REM FCOR1378
AXC FILTMP,2 TRY TO FIND THIS FILE IN UFD FCOR1379
SEARCH UFD,FILNAM,DELER3 .. FCOR1380
TSX CKLINK,4 CHECK FOR 'LINKED' FILE FCOR1381
PAR DELER4,,DELER5 .. ERROR, LINK NOT FOUND FCOR1382
TSX REFMFD,4 HE DOESN'T EVEN GET TO TRY FCOR1383
EFA FPROBN,2 TO REMOVE AN ENTRY FROM M.F.D. FCOR1384
ZET FS.TST BUT SINCE 'DELMFD' CROAKS, FCOR1385
TRA *+2 GOTTA LET HIM REMOVE AN UN-LOADED ENTRY FCOR1386
TRA DELER6 SAY THAT IT IS PROTECTED FCOR1387
TSX CHKACT,4 CHECK IF THIS FILE IS ALREADY ACTIVE FCOR1388
PAR DELER8 .. ERROR IF THIS FILE IS ACTIVE FCOR1389
REM FCOR1390
LDI RMODE,2 FILE FOUND, GET FILE MODE FCOR1391
LFT 270000 IS FILE P,V,R OR W FCOR1392
TRA DELER6 MODE MUST BE CHANGED FCOR1393
LDI ILOCK,2 GET FILE INTERLOCK SWITCH FCOR1394
LFT 001777 IS FILE CURRENTLY IN USE FCOR1395
TRA DELBSY YES, SKIP TO INTERRUPT SUPERVISOR FCOR1396
TSX DFILE,4 NO, TRY TO DELETE THIS FILE FCOR1397
LDI MODE,2 RELOAD FILE MODE FCOR1398
LFT 002000 WAS FILE IN TEMPORARY MODE FCOR1399
TRA DEL2 YES, SKIP IGNORING RECORD QUOTA FCOR1400
CAL NORECS,2 NO, GET NO. OF RECORDS IN THIS FILE FCOR1401
ARS 18 .. FCOR1402
ANA =O77777 .. FCOR1403
SLW TEMP SAVE NO. OF RECORDS IN THIS FILE FCOR1404
LXTC (F,2),3 PICK UP -DEVICE(F) IN IR3 FCOR1405
GETQU (FPROBN,2) PICK UP RECORD QUOTA,,USED FCOR1406
TSX SUBREC,4 REDUCE USED BY NO, OF RECORDS IN THIS FILE FCOR1407
PAR TEMP .. FCOR1408
PAR *+1 .. IGNORE ERROR RETURN FCOR1409
SETQU (FPROBN,2) UPDATE QUOTA,,USED FCOR1410
REM FCOR1411
DEL2 REMOVE UFD,(FNAME1,2),DELMER REMOVE THIS FILE FROM UFD FCOR1412
TRA RETURN AND RETURN FCOR1413
REM FCOR1414
DELBSY TSX LOCK,4 TELL SUPERVISOR OF INTERLOCKED FILE FCOR1415
EXIT IR4,ILC AND RETURN TO USER AT 0,4 FCOR1416
REM FCOR1417
DELMER ERROR 7 DELFIL ERROR(7), MACHINE ERROR FCOR1418
REM FCOR1419
DELER3 ERROR 3 DELFIL ERROR(3), FILE NOT FOUND FCOR1420
REM FCOR1421
DELER4 ERROR 4 DELFIL ERROR(4), LINK NOT FOUND FCOR1422
REM FCOR1423
DELER6 ERROR 6 DELFIL ERROR(6), FILE IS PROTECTED FCOR1424
REM FCOR1425
DELER8 ERROR 8 DELFIL ERROR(8), FILE ALREADY ACTIVE FCOR1426
REM FCOR1427
DELER5 ERROR 5 DELFIL ERROR(5), LINK DEPTH EXCEEDED FCOR1428
REM FCOR1429
EJECT FCOR1430
REM FCOR1431
REM FSTATE.($NAME1$,$NAME2$,A(N)...N) FCOR1432
REM FCOR1433
FSTATE SAVE 0,N,(FN,ARY) FCOR1434
REM FCOR1435
GTSTAT FILNAM,FSTAT1 CHECK IF THIS FILE IS ACTIVE FCOR1436
PAC 0,2 HERE IF FILE IS ACTIVE, GET BASE OF ENTRY FCOR1437
TRA FSTAT2 AND RETURN STATUS OF ACTIVE FILE FCOR1438
REM FCOR1439
FSTAT1 NZT PROBNO,1 IS USER ATTACHED FCOR1440
TRA FSTER2 NO, ERROR FCOR1441
AXC FILTMP,2 HERE IF FILE NOT ACTIVE, LOOK IN UFD FCOR1442
SEARCH UFD,FILNAM,FSTER3 .. FCOR1443
TSX CKLINK,4 CHECK FOR 'LINKED' FILE FCOR1444
PAR FSTER4,,FSTER5 .. ERROR, LINK NOT FOUND FCOR1445
CAL =O1000001 FUDGE UP DUMMY READ/WRITE POINTERS FCOR1446
SLW REDWRD,2 .. READ POINTER AT WORD 1 FCOR1447
CAL LCOUNT,2 .. FCOR1448
PDX ,7 CHECK NORECS OF THIS FILE FCOR1449
TXH *+2,7,0 SKIP IF NON-ZERO LENGTH FCOR1450
CLA =1B17 ELSE, FUDGE UP A FILE SIZE FCOR1451
ADD =1 PUT WRITE POINTER AFTER END OF FILE FCOR1452
SLW WRTWRD,2 .. WRITE POINTER AFTER END OF FILE FCOR1453
REM FCOR1454
FSTAT2 CAL LCOUNT,2 PZE LCOUNT,,NORECS FCOR1455
TSX RECADR,4 COMPUTE RECORD ADDRESS FROM LCOUNT,,NORECS FCOR1456
USTORE P3,RETURN SAVE LENGTH OF FILE IN USER'S MEMORY FCOR1457
LDQ RMODE,2 GET FILE MODE FCOR1458
RQL 8 MOVE LINK BIT TO SIGN FCOR1459
XCL .. FCOR1460
ANA =O-377 REMOVE EXCESS BITS FCOR1461
USTORE P3,RETURN SAVE MODE IN USER'S MEMORY FCOR1462
CAL RWSTAT,2 GET FILE STATUS (0-3) FCOR1463
ARS 33 .. RIGHT ADJUST IN AC FCOR1464
ANA =3 .. 2-BIT STATUS FCOR1465
ADD =1 CHANGE STATUS (0-3) TO (1-4) FCOR1466
USTORE P3,RETURN SAVE STATUS IN USER'S MEMORY FCOR1467
CAL F,2 GET DEVICE ON WHICH FILE RESIDES FCOR1468
ARS 15 .. RIGHT ADJUST IN AC FCOR1469
ANA =7 .. 3-BIT DEVICE FCOR1470
USTORE P3,RETURN SAVE DEVICE IN USER'S MEMORY FCOR1471
CAL REDWRD,2 GET READ POINTER PZE REDWRD,,REDREC FCOR1472
TSX RECADR,4 COMPUTE ADDRESS OF NEXT RECORD TO BE READ FCOR1473
USTORE P3,RETURN SAVE NEXT READ ADDRESS IN USER'S MEMORY FCOR1474
CAL WRTWRD,2 PZE WRTWRD,,WRTREC FCOR1475
TSX RECADR,4 COMPUTE ADDRESS OF NEXT WORD TO BE WRITTEN FCOR1476
USTORE P3,RETURN SAVE NEXT WRITE ADDRESS IN USER'S MEMORY FCOR1477
CAL DAYTIM,2 DATE AND TIME FILE WAS CREATED OR FCOR1478
USTORE P3,RETURN .. LAST MODIFIED TO USER FCOR1479
CAL DATELU,2 DATE FILE WAS LAST USED AND FCOR1480
USTORE P3,RETURN .. AUTHOR OF FILE TO USER FCOR1481
TRA RETURN RETURN TO USER FCOR1482
REM FCOR1483
FSTER2 ERROR 2 FSTATE ERROR(2), ILLEGAL USE OF CALL FCOR1484
REM FCOR1485
FSTER3 ERROR 3 FSTATE ERROR(3), FILE NOT FOUND FCOR1486
REM FCOR1487
FSTER4 ERROR 4 FSTATE ERROR(4), LINK NOT FOUND FCOR1488
REM FCOR1489
FSTER5 ERROR 5 FSTATE ERROR (5), LINK DEPTH EXCEEDED FCOR1490
REM FCOR1491
EJECT FCOR1492
REM FCOR1493
REM MOVFIL.($NAME1$,$NAME2$,$PROBNO$,$PROGNO$) FCOR1494
REM FCOR1495
MOVFIL SAVE 002,S,(FN,SPM,SPM) FCOR1496
REM FCOR1497
AXC FILTMP,2 TRY TO FIND THIS FILE IN UFD FCOR1498
SEARCH UFD,FILNAM,MOVER3 .. FCOR1499
CAL F,2 PICK UP DEVICE NO. FCOR1500
ANA =O700000 .. FROM TAG FCOR1501
SLW TEMP SAVE FOR LATER CHECKING FCOR1502
TZE MOV0 SEE IF THIS IS A 'LINKED' FILE FCOR1503
TSX CHKACT,4 CHECK IF THIS IS IN ACTIVE STATUS FCOR1504
PAR MOVER8 .. ERROR IF FILE IS ACTIVE FCOR1505
REM FCOR1506
LDI MODE,2 PICK UP FILE MODE FCOR1507
LFT 200000 IS FILE PROTECTED FCOR1508
TRA MOVER5 YES, ERROR FCOR1509
LDI ILOCK,2 NO, PICK UP FILE INTERLOCK SWITCH FCOR1510
LFT 001777 IS FILE CURRENTLY IN USE FCOR1511
TRA MOVBSY YES, SKIP TO INTERRUPT SUPERVISOR FCOR1512
MOV0 CLA P3 NO, SET UP NEW PROBLEM FCOR1513
LDQ P4 AND PROGRAMMER FCOR1514
DST FPROBN,2 SAVE A CYCLE HERE AND THERE FCOR1515
TSX REFMFD,4 BUT NO MOVING TO M.F.D. FCOR1516
EFA FPROBN,2 .. FCOR1517
TRA MOVR10 .. FCOR1518
CHKUFD (FPROBN,2),MOVER9 SEE IF TARGET DIRECTORY IS IN M.F.D. FCOR1519
SEARCH (FPROBN,2),FILNAM,MOV1 CHECK IF FILE ALREADY EXISTS FCOR1520
ERROR 6 MOVFIL ERROR(6), FILE ALREADY EXISTS FCOR1521
REM FCOR1522
MOV1 NZT TEMP CHECK FOR LINKED FILE FCOR1523
TRA MOV3 FILE IS A LINK, SKIP DATE UPDATE FCOR1524
TSX GTDYTM,4 UPDATE CREATION TIME FOR FILE FCOR1525
SLW DAYTIM,2 .. FCOR1526
MOV3 ADDFIL (FPROBN,2),MOVMER ADD FILE TO UFD OF FPROBN-FPROGN FCOR1527
REMOVE (PROBNO,1),(FNAME1,2),MOVMER REMOVE FROM CURRENT UFD FCOR1528
NZT TEMP CHECK FOR LINKED FILE FCOR1529
TRA MOV2 NO RECORD USAGE TO BE UPDATED IF A LINK FCOR1530
LDI MODE,2 PICK UP FILE MODE FCOR1531
LFT 002000 IS FILE IN TEMPORARY MODE FCOR1532
TRA MOV2 YES, SKIP FCOR1533
CAL NORECS,2 NO, PICK UP NO. OF RECORDS USED BY FILE FCOR1534
ARS 18 .. INTO ADDRESS FCOR1535
ANA =O77777 .. FCOR1536
SLW TEMP .. SAVE NO. OF RECORDS IN THIS FILE FCOR1537
LXTC (F,2),3 -DEVICE TO IR3 FCOR1538
GETQU (PROBNO,1) REDUCE RECORDS USED FOR CURRENT USER FCOR1539
TSX SUBREC,4 .. FCOR1540
PAR TEMP .. FCOR1541
PAR *+1 .. IGNORE ERROR RETURN FCOR1542
SETQU (PROBNO,1) .. FCOR1543
GETQU (FPROBN,2) UPDATE RECORDS USED FOR U.F.D. FCOR1544
TSX ADDREC,4 .. TO WHICH FILE WAS MOVED FCOR1545
PAR TEMP .. FCOR1546
PAR *+1 .. IGNORE ERROR RETURN FCOR1547
SETQU (FPROBN,2) .. FCOR1548
MOV2 TRA RETURN RETURN TO USER FCOR1549
REM FCOR1550
MOVBSY TSX LOCK,4 TELL SUPERVISOR OF INTERLOCKED FILE FCOR1551
EXIT IR4,ILC AND RETURN TO USER AT 0,4 FCOR1552
REM FCOR1553
MOVER3 ERROR 3 MOVFIL ERROR(3), FILE NOT FOUND FCOR1554
REM FCOR1555
MOVER5 ERROR 5 MOVFIL ERROR(5), FILE PROTECTED FCOR1556
REM FCOR1557
MOVMER ERROR 7 MOVFIL ERROR(7), MACHINE OR SYSTEM ERROR FCOR1558
REM FCOR1559
MOVER8 ERROR 8 MOVFIL ERROR(8), FILE IN ACTIVE STATUS FCOR1560
REM FCOR1561
MOVER9 ERROR 9 MOVFIL ERROR(9), U.F.D. NOT FOUND FCOR1562
REM FCOR1563
MOVR10 ERROR 10 MOVFIL ERROR(10), MOVING TO M.F.D. (FILE) FCOR1564
EJECT FCOR1565
REM FCOR1566
REM SETFIL.($NAME1$,$NAME2$,DAYTIM,DATELU,MODE,DEVICE) FCOR1567
REM FCOR1568
SETFIL SAVE 016,S,(FN,SPM,SPM,SP,SP) FCOR1569
REM FCOR1570
AXC FILTMP,2 SEE IF FILE ALREADY EXISTS FCOR1571
SEARCH UFD,FILNAM,SETFL1 .. FCOR1572
CAL F,2 FIND DEVICE NO. FCOR1573
ANA =O700000 CHECK FOR 'LINK' FCOR1574
TZE STFER5 ERROR, FILE IS LINK FCOR1575
CLA P3 HERE IF FILE ALREADY EXISTS, FCOR1576
LDQ P4 SET DAYTIM, DLU, AUTH DIRECTLY FCOR1577
DST DAYTIM,2 .. SET NEW DATE AND TIME CREATED FCOR1578
TSX REFMFD,4 .. FCOR1579
EFA FPROBN,2 .. FCOR1580
ZET FS.TST NOTE FALLING INTO MACRO CODE... FCOR1581
UPDFIL UFD,FILNAM,SETFME REPLACE OLD ENTRY IN UFD FCOR1582
TRA RETURN AND RETURN FCOR1583
REM FCOR1584
SETFL1 CLA PROBNO,1 HERE TO CREATE NEW FILE ENTRY FCOR1585
LDQ PROGNO,1 .. FCOR1586
DST FPROBN,2 .. FCOR1587
CLA FILNAM .. FILE NAME(1) FCOR1588
LDQ FILNAM+1 .. (2) FCOR1589
DST FNAME1,2 .. FCOR1590
CLA P3 .. DATE AND TIME CREATED FROM CALLER FCOR1591
LDQ P4 .. DATE LAST USED, AUTHOR FCOR1592
DST DAYTIM,2 .. FCOR1593
CLA M.IL.F .. NORMAL MODE AND DEVICE FCOR1594
LDQ TGPMAX .. PMAX IN TAG FCOR1595
DST MODE,2 .. FCOR1596
STZ POINTR,2 .. RESET POINTR FCOR1597
CLA P5 PICK UP MODE IF SPECIFIED FCOR1598
TMI SETFL2 SKIP IF MODE NOT PROVIDED FCOR1599
ALS 28 SAVE AS HIGH ORDER 8 BITS FCOR1600
ORS MODE,2 SET NEW FILE MODE FCOR1601
SETFL2 CLA P6 PICK UP DEVICE IF SPECIFIED FCOR1602
TMI SETFL3 SKIP IF NOT PROVIDED FCOR1603
PAX 0,4 NEW DEVICE TO IR4 FCOR1604
TXL STFER3,4,0 ERROR IF DEVICE .E. 0 FCOR1605
TXH STFER3,4,FMAX ERROR IF DIVICE .G. FMAX FCOR1606
ALS 15 DEVICE TO TAG FCOR1607
STT F,2 SET NEW FILE DEVICE FCOR1608
SETFL3 ADDFIL UFD,SETFME ADD NEW FILE ENTRY TO UFD FCOR1609
TRA RETURN AND RETURN FCOR1610
REM FCOR1611
STFER3 ERROR 3 SETFIL ERROR(3), ILLEGAL DEVICE NUMBER FCOR1612
REM FCOR1613
SETFME ERROR 4 SETFIL ERROR(4), MACHINE OR SYSTEM ERROR FCOR1614
REM FCOR1615
STFER5 ERROR 5 SETFIL ERROR(5), FILE IS A 'LINK' FCOR1616
EJECT FCOR1617
REM FCOR1618
REM LINK.(RNAME1,RNAME2,LPROBN,LPROGN,LNAME1,LNAME2,MODE) FCOR1619
REM FCOR1620
LINK SAVE 002,S,(FN,SPM,SPM,SP,SP,SP) FCOR1621
REM FCOR1622
TSX REFMFD,4 NO LINKS IN MFD, PLEASE FCOR1623
EFA PROBNO,1 ATTACHED DIRECTORY FCOR1624
TRA LNKER6 .. ERROR FCOR1625
AXC FILTMP,2 FCOR1626
SEARCH UFD,FILNAM,LNK1 CHECK IF FILE ALREADY IN UFD FCOR1627
ERROR 3 LINK ERROR(3), FILE ALREADY IN UFD FCOR1628
REM FCOR1629
LNK1 CLA PROBNO,1 CONSTRUCT 'LINKED' FILE ENTRY FCOR1630
LDQ PROGNO,1 .. FCOR1631
DST FPROBN,2 .. FCOR1632
CLA FILNAM NAME1 FCOR1633
LDQ FILNAM+1 NAME2 OF LINK FCOR1634
DST FNAME1,2 .. FCOR1635
DST LNAME1,2 AND NAME OF LINKEE FCOR1636
CLA P3 PROBN, FCOR1637
LDQ P4 PROGN OF LINKEE FCOR1638
DST LPROBN,2 .. FCOR1639
STZ F,2 .. DEVICE .E. 0 INDICATES 'LINKED' FILE FCOR1640
CAL P5 CHECK IF LNAME1 PROVIDED FCOR1641
ERA NULPAR .. FCOR1642
TZE LNK2 .. SKIP IF LNAME1 NOT GIVEN FCOR1643
CAL P5 OTHERWISE USE THIS AS LNAME1 FCOR1644
SLW LNAME1,2 .. FCOR1645
LNK2 CAL P6 CHECK IF LNAME2 IS PROVIDED FCOR1646
ERA NULPAR .. FCOR1647
TZE LNK3 .. SKIP IF LNAME2 NOT GIVEN FCOR1648
CAL P6 OTHERWISE USE THIS AS LNAME2 FCOR1649
SLW LNAME2,2 .. FCOR1650
LNK3 CLA P7 PICK UP MODE IF PROVIDED FCOR1651
TMI LNK4 .. SKIP IF MODE NOT GIVEN FCOR1652
ALS 28 .. MODE TO HIGH ORDER 8 BITS FCOR1653
ORS MODE,2 .. SAVE 'LINKED' FILE MODE FCOR1654
LNK4 ZET LNAME1,2 AS AT 'CHFILE' FCOR1655
TRA *+3 CHECK THAT FCOR1656
NZT LNAME2,2 BOTH FILE NAMES FOR LINK FCOR1657
TRA SEQERR ARE NOT ZERO FCOR1658
ADDFIL UFD,LNKMER ADD NEW 'LINKED' FILE TO UFD FCOR1659
CHKUFD (LPROBN,2),LNKER5 CHECK IF $PROBNO$,$PROGNO$ IN MFD FCOR1660
TRA RETURN AND RETURN FCOR1661
REM FCOR1662
LNKMER ERROR 4 LINK ERROR(4), MACHINE ERROR FCOR1663
REM FCOR1664
LNKER5 ERROR 5 LINK ERROR(5), PROBNO-PROGNO NOT IN MFD FCOR1665
REM FCOR1666
LNKER6 ERROR 6 LINK ERROR(6), USER ATTACHED TO MFD FCOR1667
EJECT FCOR1668
REM FCOR1669
REM UNLINK.($LNAME1$,$LNAME2$) FCOR1670
REM FCOR1671
UNLINK SAVE 002,S,(FN) FCOR1672
REM FCOR1673
AXC FILTMP,2 FCOR1674
SEARCH UFD,FILNAM,ULKER3 FIND FILE IN UFD FCOR1675
CAL F,2 PICK UP DEVICE NO. FCOR1676
ANA =O700000 .. FROM TAG FCOR1677
TNZ ULKER4 .. 'LINKED' FILE MUST HAVE F=0 FCOR1678
REMOVE UFD,(FNAME1,2),ULKMER REMOVE LINKED FILE FROM UFD FCOR1679
TRA RETURN AND RETURN FCOR1680
REM FCOR1681
ULKER3 ERROR 3 UNLINK ERROR(3), FILE NOT FOUND FCOR1682
REM FCOR1683
ULKER4 ERROR 4 UNLINK ERROR(4), NOT A 'LINKED' FILE FCOR1684
REM FCOR1685
ULKMER ERROR 5 UNLINK ERROR(5), MACHINE ERROR FCOR1686
REM FCOR1687
EJECT FCOR1688
REM FCOR1689
REM ALLOT.(DEVICE,ALLOT,USED) FCOR1690
REM FCOR1691
ALLOT SAVE 002,S,(SPM,SPM,SP) FCOR1692
REM FCOR1693
LAC P1,3 -DEVICE NUMBER TO IR3 FCOR1694
TXL ALTER3,3,0 ERROR IF DEVICE=0 FCOR1695
TXL ALTER3,3,-FMAX-1 OR DEVICE .G. FMAX FCOR1696
GETQU (PROBNO,1) GET QUOTA,,USED FROM UFD FCOR1697
SLW SAVEQU .. SAVE IT FCOR1698
CAL P2 SET UP NEW RECORD QUOTA FCOR1699
STA SAVEQU .. FCOR1700
CLA P3 GET NEW RECORDS USED FCOR1701
TMI ALT1 SKIP IF NOT SPECIFIED FCOR1702
ALS 18 SET NEW RECORDS USED FCOR1703
STD SAVEQU .. FOR THIS DEVICE FCOR1704
ALT1 CAL SAVEQU SAVE NEW QUOTA,,USED IN UFD FCOR1705
SETQU (PROBNO,1) .. FCOR1706
TRA RETURN AND RETURN FCOR1707
REM FCOR1708
ALTER3 ERROR 3 ALLOT ERROR(3), ILLEGAL DEVICE NO. FCOR1709
REM FCOR1710
EJECT FCOR1711
REM FCOR1712
REM STORGE.(DEVICE,ALLOT,USED) FCOR1713
REM FCOR1714
STORGE SAVE 0,S,(SPM,ADR,ADR) FCOR1715
REM FCOR1716
LAC P1,3 -DEVICE NUMBER TO IR3 FCOR1717
TXL STRER3,3,0 ERROR IF DEVICE ZERO FCOR1718
TXL STRER3,3,-FMAX-1 OR DEVICE .G. FMAX FCOR1719
GETQU (PROBNO,1) GET QUOTA,,USED FROM UFD FCOR1720
SLW SAVEQU .. SAVE IT FCOR1721
CLA P2 ADDRESS USED TO STORE NO. OF WORDS ALLOTED FCOR1722
TMI STR1 SKIP IF NOT SPECIFIED FCOR1723
PAC 0,2 -ADDRESS TO IR2 FCOR1724
CAL SAVEQU PICK UP NO. OF WORDS ALLOTTED FCOR1725
ANA =O77777 .. FCOR1726
SLW TEMP .. SAVE IT FCOR1727
MOVE1 HOME,TEMP,CALL,(0,2),STRER4 MOVE TO USER'S MEMORY FCOR1728
STR1 CLA P3 ADDRESS USED TO STORE NO. OF WORDS USED FCOR1729
TMI STR2 SKIP IF NOT SPECIFIED FCOR1730
PAC 0,2 -ADDRESS TO IR2 FCOR1731
CAL SAVEQU PICK UP ALLOT,,USED FCOR1732
ARS 18 .. GET NO. OF WORDS USED FCOR1733
ANA =O77777 .. FCOR1734
SLW TEMP .. SAVE IT FCOR1735
MOVE1 HOME,TEMP,CALL,(0,2),STRER4 MOVE TO USER'S MEMORY FCOR1736
STR2 TRA RETURN AND RETURN TO USER FCOR1737
REM FCOR1738
STRER3 ERROR 3 STORGE ERROR(3), ILLEGAL DEVICE NO. FCOR1739
REM FCOR1740
STRER4 ERROR 4 STORGE ERROR(4), MACHINE OR SYSTEM ERROR FCOR1741
REM FCOR1742
EJECT FCOR1743
REM FCOR1744
REM THE FOLLOWING CALLS REFER TO TAPE FILES ONLY .......... FCOR1745
REM FCOR1746
REM MOUNT.(CHANNO,UNITNO,MESSAG(N)...N) FCOR1747
REM FCOR1748
MOUNT SAVE 0,N,(SP,SPM,ARY) FCOR1749
REM FCOR1750
TSX MVHOME,4 MOVE MESSAGE TO HOME MEMORY FCOR1751
PAR P3 .. FCOR1752
TSX MNTTAP,4 CALL TAPE STRATEGY MODULE TO MOUNT TAPE FCOR1753
EFA 0,1 .. FCOR1754
PAR P2,,P1 .. (PUT UNITNO FIRST IN CALL, FOR SYMMETRY)FCOR1755
PAR P3,,QWAIT .. FCOR1756
PAR MNTER3,,MNTER4 .. FCOR1757
TRA RETURN AND RETURN FCOR1758
REM FCOR1759
MNTER3 ERROR 3 MOUNT ERROR(3), NO TAPE AVAILABLE FCOR1760
REM FCOR1761
MNTER4 ERROR 4 MOUNT ERROR(4), AUTHOR-UNIT CONFLICT FCOR1762
REM FCOR1763
* * * * * * * * * * * * * * * * * * * * * * * * FCOR1764
REM FCOR1765
REM UMOUNT.(UNITNO,MESSAG(N)...N) FCOR1766
REM FCOR1767
UMOUNT SAVE 0,N,(SPM,ARY) FCOR1768
REM FCOR1769
TSX MVHOME,4 MOVE MESSAGE TO HOME MEMORY FCOR1770
PAR P2 .. FCOR1771
REM FCOR1772
CAL P1 CHECK 'UNITNO' FCOR1773
ERA =HALL IS IT 'ALL' (LJ) FCOR1774
TZE UMT1 YES FCOR1775
CAL P1 .. FCOR1776
ERA =H ALL OR (RJ) FCOR1777
TZE UMT1 .. FCOR1778
REM FCOR1779
TSX UMTTAP,4 CALL TAPE STRATEGY TO UNMOUNT TAPE FCOR1780
EFA 0,1 .. FCOR1781
PAR P1,,QWAIT .. FCOR1782
PAR P2,,UMTER3 .. FCOR1783
TRA RETURN AND RETURN FCOR1784
REM FCOR1785
UMT1 TSX UMTALL,4 UNMOUNT ALL TAPES FOR THIS LOSER FCOR1786
EFA 0,1 BASE OF AFST,FOR 'AUTHOR' FCOR1787
PAR P2,,UMTER3 P2 = MESSAG,,N FCOR1788
TRA RETURN FCOR1789
REM FCOR1790
UMTER3 ERROR 3 UMOUNT ERROR(3), TAPE CURRENTLY IN USE FCOR1791
REM FCOR1792
EJECT FCOR1793
REM FCOR1794
REM VERIFY.(UNITNO,LABEL(N)...N) FCOR1795
REM FCOR1796
VERIFY SAVE 0,N,(SPM,ARY) FCOR1797
REM FCOR1798
TSX VERTAP,4 CALL TAPE STRATEGY TO VERIFY LABEL FCOR1799
EFA 0,1 .. FCOR1800
PAR P1,,QWAIT .. FCOR1801
PAR P2,,MEM .. FCOR1802
PAR VERR3,,VERR4 .. FCOR1803
PAR VERR5,,VERR6 .. FCOR1804
PAR VERR7 .. FCOR1805
TRA RETURN AND RETURN FCOR1806
REM FCOR1807
VERR3 ERROR 3 ERROR(3), TAPE FILE DOES NOT EXIST FCOR1808
REM FCOR1809
VERR4 ERROR 4 ERROR(4), MACHINE ERROR OR BAD STATUS FCOR1810
REM FCOR1811
VERR5 ERROR 5 ERROR(5), MOUNT FAILED, ILLEGAL OPERATION FCOR1812
REM FCOR1813
VERR6 ERROR 6 ERROR(6), MOUNT FAILED, OPNS. DIFFICULTIES FCOR1814
REM FCOR1815
VERR7 ERROR 7 ERROR(7), LABEL DOES NOT MATCH FCOR1816
REM FCOR1817
* * * * * * * * * * * * * * * * * * * * * * * * FCOR1818
REM FCOR1819
REM LABEL.(UNITNO,LABEL(N)...N) FCOR1820
REM FCOR1821
LABEL SAVE 0,N,(SPM,ARY) FCOR1822
REM FCOR1823
TSX LBLTAP,4 CALL TAPE STRATEGY TO WRITE LABEL FCOR1824
EFA 0,1 .. FCOR1825
PAR P1,,QWAIT .. FCOR1826
PAR P2,,MEM .. FCOR1827
PAR LBER3,,LBER4 .. FCOR1828
PAR LBER5,,LBER6 .. FCOR1829
TRA RETURN AND RETURN FCOR1830
REM FCOR1831
LBER3 ERROR 3 ERROR(3), TAPE FILE DOES NOT EXIST FCOR1832
REM FCOR1833
LBER4 ERROR 4 ERROR(4), MACHINE ERROR OR BAD STATUS FCOR1834
REM FCOR1835
LBER5 ERROR 5 ERROR(5), MOUNT FAILED, ILLEGAL OPERATION FCOR1836
REM FCOR1837
LBER6 ERROR 6 ERROR(6), MOUNT FAILED, OPNS. DIFFICULTIES FCOR1838
EJECT FCOR1839
REM FCOR1840
REM TAPFIL.($NAME1$,$NAME2$,UNITNO,FILENO) FCOR1841
REM FCOR1842
TAPFIL SAVE 0,S,(FN,SPM,SP) FCOR1843
REM FCOR1844
TSX REFMFD,4 RATHER STICKY WICKET IF FCOR1845
EFA PROBNO,1 U.F.D. IS ON A TAPE FCOR1846
TRA TAPER6 I SAY THERE FCOR1847
REM FCOR1848
AXC FILTMP,2 CHECK IF FILE ALREADY EXISTS FCOR1849
SEARCH UFD,FILNAM,TAP1 .. FCOR1850
ERROR 3 TAPFIL ERROR(3), FILE ALREADY EXISTS FCOR1851
REM FCOR1852
TAP1 AXC 3,3 GET QUOTA FOR DEVICE 3 (TAPE) FCOR1853
GETQU (PROBNO,1) .. FCOR1854
ANA =O77777 MASK OFF THE QUOTA FCOR1855
TZE TAPER5 ERROR IF NO TAPE QUOTA FCOR1856
REM FCOR1857
CLA PROBNO,1 CONSTRUCT FILE ENTRY FCOR1858
LDQ PROGNO,1 .. FCOR1859
DST FPROBN,2 .. FCOR1860
CLA FILNAM .. FILE NAME(1) FCOR1861
LDQ FILNAM+1 .. (2) FCOR1862
DST FNAME1,2 .. FCOR1863
TSX GTDYTM,4 .. SET UP DATE AND TIME FILE CREATED FCOR1864
SLW DAYTIM,2 .. FCOR1865
ANA =O777777000000 .. GET DATE ALONE FCOR1866
ORA AUTHNO,1 .. + AUTHOR OF FILE FCOR1867
SLW DATELU,2 .. FCOR1868
CAL TPUNIT .. MODE AND DEVICE FOR TAPE FILE FCOR1869
SLW F,2 .. FCOR1870
CAL TGPMAX .. PMAX IN TAG FCOR1871
ORA =O77777000000 .. SET NORECS TO -1 FCOR1872
SLW NORECS,2 .. FCOR1873
CAL P3 .. PICK UP LOGICAL UNIT NO. FCOR1874
ANA =O77777 .. MODULO 2.P.15 FCOR1875
SLW POINTR,2 .. SET UP FILE POINTER FCOR1876
CLA P4 .. PICK UP FILE NO. IF SPECIFIED FCOR1877
TMI *+3 .. SKIP IF NOT SPECIFIED FCOR1878
ALS 18 .. FILE NO. TO DECREMENT FCOR1879
STD POINTR,2 .. SET FILE NO. IN FILE ENTRY FCOR1880
ADDFIL UFD,TAPMER ENTER NEW FILE IN UFD FCOR1881
TRA RETURN AND RETURN FCOR1882
REM FCOR1883
TAPMER ERROR 4 TAPFIL ERROR(4), MACHINE OR SYSTEM ERROR FCOR1884
REM FCOR1885
TAPER5 ERROR 5 TAPFIL ERROR(5), NO TAPE QUOTA ALLOTTED FCOR1886
REM FCOR1887
TAPER6 ERROR 6 TAPFIL ERROR(6), USER ATTACHED TO M.F.D. FCOR1888
EJECT FCOR1889
REM FCOR1890
REM ............... ERROR DIAGNOSTIC ROUTINE 'IODIAG' .......FCOR1891
REM FCOR1892
REM IODIAG.(A(N)...N) FCOR1893
REM FCOR1894
IODIAG SAVE 0,N,(ARY) FCOR1895
REM FCOR1896
CAL ERRILC,1 LOCATION OF CALL CAUSING ERROR FCOR1897
USTORE P1,RETURN .. STORE IN USER'S MEMORY FCOR1898
CAL ERNAME,1 NAME OF ENTRY IN WHICH ERROR OCCURRED FCOR1899
USTORE P1,RETURN .. STORE IN USER'S MEMORY FCOR1900
CAL ERCODE,1 ERROR CODE FCOR1901
USTORE P1,RETURN .. TO USER FCOR1902
CAL IOCODE,1 INPUT/OUTPUT ERROR CODE IF ANY FCOR1903
USTORE P1,RETURN .. FCOR1904
CAL ENAME1,1 NAME(1) OF FILE INVOLVED IN ERROR FCOR1905
USTORE P1,RETURN .. FCOR1906
CAL ENAME2,1 NAME(2) OF FILE INVOLVED IN ERROR FCOR1907
USTORE P1,RETURN .. FCOR1908
CAL ERCALL,1 LOCATION OF CALL TO ERROR OR IOERR FCOR1909
USTORE P1,RETURN .. FCOR1910
TRA RETURN RETURN TO USER FCOR1911
REM FCOR1912
EJECT FCOR1913
REM FCOR1914
REM CALLS AVAILABLE TO THE SUPERVISORY SYSTEM ONLY FCOR1915
REM FCOR1916
REM FCOR1917
REM SETUSR.(USERNO,URCODE,AUTHNO,LIMITS,RELOC,PRIOR) FCOR1918
REM FCOR1919
SETUSR CLA* 1,4 GET SLOT NUMBER IF SPECIFIED FCOR1920
TMI SETU1 SKIP IF NOT SPECIFIED FCOR1921
STO SLOTNO OTHERWISE SET NEW USER SLOT NO. FCOR1922
LAC SLOTNO,7 -SLOT NUMBER TO IR7 FCOR1923
CAL USRTBL,7 PICK UP ADDRESS OF USER STATUS TABLE FCOR1924
SLW UTABLE .. FOR THIS USER SLOT FCOR1925
SETU1 LAC UTABLE,7 FCOR1926
CLA* 2,4 USER RESTRICTION CODE IF SPECIFIED FCOR1927
TMI SETU2 SKIP IF NOT SPECIFIED FCOR1928
STO URCODE,7 OTHERWISE SET USER RESTRICTION CODE FCOR1929
SETU2 CLA* 3,4 GET AUTHOR NUMBER IF SPECIFIED FCOR1930
TMI SETU3 SKIP IF NOT SPECIFIED FCOR1931
STO AUTHNO,7 OTHERWISE SET UP USER AUTHOR NO. FCOR1932
SETU3 CLA* 4,4 PROTECTION LIMITS IF SPECIFIED FCOR1933
TMI SETU4 SKIP IF NOT SPECIFIED FCOR1934
STO LIMITS,7 OTHERWISE SET USER PROTECTION LIMITS FCOR1935
SETU4 CLA* 5,4 USER RELOCATION IF SPECIFIED FCOR1936
TMI SETU5 SKIP IF NOT SPECIFIED FCOR1937
STO RELOC,7 OTHERWISE SET USER RELOCATION FCOR1938
SETU5 CLA* 6,4 PICK UP USER PRIORITY IF SPECIFIED FCOR1939
TMI SETU6 SKIP IF NOT SPECIFIED FCOR1940
ALS 18 PRIORITY TO DECREMENT FCOR1941
ORA SLOTNO USER SLOT NUMBER TO ADDRESS FCOR1942
SLW TEMP SAVE SLOT,,PRIOR FCOR1943
AXT DUSERS,6 FCOR1944
STU5.1 CAL PRIORT+DUSERS,6 SEARCH PRIORITY TABLE FCOR1945
ANA =O77777 .. FOR THIS USER NUMBER FCOR1946
SUB SLOTNO .. FCOR1947
TNZ *+2 .. FCOR1948
STZ* STU5.1 .. RESET THIS SLOT WHEN FOUND FCOR1949
TIX STU5.1,6,1 .. FCOR1950
AXT DUSERS,6 FCOR1951
CAL TEMP PZE SLOT,,PRIOR FCOR1952
STU5.2 ZET PRIORT+DUSERS,6 REPLACE USER IN PRIORITY TABLE FCOR1953
TRA STU5.3 .. FCOR1954
SLW* STU5.2 .. EMPTY SLOT FOUND SET THIS USER FCOR1955
TRA STU5.4 .. AND GO SORT PRIORITY TABLE FCOR1956
STU5.3 TIX STU5.2,6,1 .. FCOR1957
HTR * MACHINE ERROR, SHOULD NEVER GET HERE FCOR1958
REM FCOR1959
STU5.4 TSX SORT,7 SORT PRIORITY TABLE FCOR1960
PAR PRIORT,,DUSERS .. FCOR1961
SETU6 TRA 7,4 AND RETURN FCOR1962
REM FCOR1963
* * * * * * * * * * * * * * * * * * * * * * * * FCOR1964
REM FCOR1965
REM CHNGUS.(USERNO) FCOR1966
REM FCOR1967
CHNGUS CAL* 1,4 SET NEW USER OF FILE SYSTEM FCOR1968
SLW SLOTNO .. FCOR1969
LAC SLOTNO,7 -NEW SLOT NUMBER TO IR7 FCOR1970
CAL USRTBL,7 SET ADDRESS OF NEW USER'S STATUS TABLE FCOR1971
SLW UTABLE .. FCOR1972
TRA 2,4 AND RETURN FCOR1973
REM FCOR1974
* * * * * * * * * * * * * * * * * * * * * * * * FCOR1975
REM FCOR1976
REM SETRAP.(IFUNCT) FCOR1977
REM FCOR1978
SETRAP CAL 1,4 GET ADDRESS OF SUPERVISORY TRAP LOCATION FCOR1979
STA SSCALL .. SET UP INTERRUPT TO SUPERVISOR FCOR1980
TRA 2,4 AND RETURN FCOR1981
REM FCOR1982
* * * * * * * * * * * * * * * * * * * * * * * * FCOR1983
REM FCOR1984
REM USTAT.(ARRAY(N)...N, Q1(N)...N, ... , QFMAX(N)...N) FCOR1985
REM FCOR1986
USTAT SSAVE (ARY) FCOR1987
DUP 1,FMAX EXTEND PROTOTYPE BY FMAX FCOR1988
PAR ARY .. FCOR1989
REM FCOR1990
LAC SLOTNO,1 -USER SLOT NUMBER TO IR1 FCOR1991
LXD P1,3 ACTIVE STATUS TABLE WORD COUNT FCOR1992
TXH USTAT2,3,TBLMIN-1 SKIP IF TABLE SIZE OK FCOR1993
ERROR 3 USTAT ERROR(3), TABLE TOO SMALL FCOR1994
REM FCOR1995
USTAT2 CAL P1 SET UP ACTIVE FILE STATUS TABLE ADDRESS FCOR1996
SLW USRTBL,1 .. FCOR1997
PAC 0,2 CLEAR ACTIVE FILE STATUS TABLE FCOR1998
STZ 0,2 .. FCOR1999
TNX *+2,3,1 .. FCOR2000
TXI *-2,2,-1 .. FCOR2001
LAC P1,1 -BASE OF A.F.S.T. TO IR1 FCOR2002
AXC 1,2 FCOR2003
USTAT3 CAL P1,2 SET I/O QUEUE ADDRESSES FCOR2004
SLW QUEUE1,1 .. FCOR2005
PAC 0,3 .. -BASE OF QUEUE STORAGE TO IR4 FCOR2006
TXL *+2,3,0 .. SKIP IF ZERO FCOR2007
STZ 0,3 .. OTHERWISE, RESET FIRST LOCATION IN QUEUEFCOR2008
TXL USTAT4,2,-FMAX .. FCOR2009
TXI *+1,1,-1 .. FCOR2010
TXI USTAT3,2,-1 .. FCOR2011
USTAT4 TRA RETURN AND RETURN FCOR2012
REM FCOR2013
EJECT FCOR2014
REM FCOR2015
REM USAVE.(COUNT,ARRAY(N)...N) FCOR2016
REM FCOR2017
USAVE SSAVE (ADR,ARY) FCOR2018
REM FCOR2019
LAC P2,3 -BASE OF SUPERVISOR BUFFER TO IR3 FCOR2020
STZ COUNT RESET COUNT FOR NO. OF ACTIVE FILES FCOR2021
STZ ANYFIL+1 INITIALIZE SEARCH THROUGH A.F.S.T. FCOR2022
USAVE1 GTSTAT ANYFIL,USAVE4 GET ANY ACTIVE FILE ENTRY FCOR2023
PAC 0,2 -BASE OF ENTRY TO IR2 FCOR2024
LXD P2,4 ARRAY COUNT FCOR2025
TXL USVER3,4,SVWRDS-1 ERROR IF COUNT TOO SMALL FCOR2026
TXI *+1,4,-SVWRDS REDUCE COUNT BY SVWRDS FCOR2027
SXD P2,4 .. FCOR2028
CAL RPROBN,2 MOVE PROBLEM NUMBER FCOR2029
SLW 0,3 .. FCOR2030
CAL RPROGN,2 MOVE PROGRAMMER NUMBER FCOR2031
SLW 1,3 .. FCOR2032
CAL RNAME1,2 MOVE FILE NAME(1) FCOR2033
SLW 2,3 .. FCOR2034
CAL RNAME2,2 MOVE FILE NAME(2) FCOR2035
SLW 3,3 .. FCOR2036
LDI RWSTAT,2 GET FILE STATUS (R, W, RW) FCOR2037
ZAC FCOR2038
LFT 100000 CHECK FOR READ STATUS FCOR2039
ORA =HR00000 SET 'R' FOR READ STATUS FCOR2040
LFT 200000 CHECK FOR WRITE STATUS FCOR2041
ORA =H0W0000 SET 'W' FOR WRITE STATUS FCOR2042
SLW 4,3 MOVE R, W, OR RW TO BUFFER FCOR2043
CAL RCOUNT,2 PICK UP RECORD WORD COUNT FCOR2044
ANA =O77777 .. FCOR2045
ALS 18 .. INTO DECREMENT FCOR2046
SLW TEMP SAVE IT FCOR2047
CAL BUFADR,2 PICK UP BUFFER ADDRESS IF ANY FCOR2048
ANA =O77777 .. FCOR2049
TZE *+2 SKIP IF NO BUFFER ADDRESS PROVIDED FCOR2050
ORA TEMP BRING BACK RECORD COUNT TO DECR. FCOR2051
SLW 5,3 MOVE BUFFER ADDRESS TO BUFFER FCOR2052
STZ 6,3 CLEAR OUT SLOTS FOR READ FCOR2053
STZ 7,3 .. AND WRITE ADDRESSES FCOR2054
LDI R,2 PICK UP READ STATUS IF SPECIFIED FCOR2055
LNT 100000 IS READ STATUS ON FCOR2056
TRA USAVE2 NO, SKIP FCOR2057
CAL REDWRD,2 PZE REDWDR,,REDREC FCOR2058
TSX RECADR,4 COMPUTE LINEAR READ ADDRESS FCOR2059
SLW 6,3 MOVE TO BUFFER FCOR2060
USAVE2 LDI W,2 PICK UP WRITE STATUS IF SPECIFIED FCOR2061
LNT 200000 IS WRITE STATUS ON FCOR2062
TRA USAVE3 NO, SKIP FCOR2063
CAL WRTWRD,2 PZE WRTWRD,,WRTREC FCOR2064
TSX RECADR,4 COMPUTE LINNEAR WRITE ADDRESS FCOR2065
SLW 7,3 MOVE TO BUFFER FCOR2066
USAVE3 LDI S,2 SET SAVED BIT IN A.F.S.T ENTRY FCOR2067
SIL 400000 .. FCOR2068
STI S,2 .. FCOR2069
LXA COUNT,5 UPDATE COUNT OF NO. OF WORDS SAVED FCOR2070
TXI *+1,5,SVWRDS .. IN USER ARRAY FCOR2071
SXA COUNT,5 .. FCOR2072
TXI USAVE1,3,-SVWRDS BACK FOR NEXT ENTRY FCOR2073
REM FCOR2074
USAVE4 LAC P1,4 HERE FOR END OF A.F.S.T. FCOR2075
CAL COUNT MOVE COUNT OF NO. OF ACTIVE FILES FCOR2076
SLW 0,4 .. TO SUPERVISOR BUFFER FCOR2077
TRA RETURN AND RETURN FCOR2078
REM FCOR2079
USVER3 ERROR 3 USAVE ERROR(3), BUFFER TOO SMALL FCOR2080
REM FCOR2081
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2082
REM FCOR2083
REM SETAB.(CALLER,BUFFER,MEMORY) FCOR2084
REM FCOR2085
SETAB CLA* 1,4 CALLER IF SPECIFIED FCOR2086
TMI *+2 SKIP IF NOT SPECIFIED FCOR2087
STO CALL OTHERWISE SET MEMORY OF CALLER FCOR2088
CLA* 2,4 BUFFER IF SPECIFIED FCOR2089
TMI *+2 SKIP IF NOT SPECIFIED FCOR2090
STO BUF OTHERWISE SET USER BUFFER FCOR2091
CLA* 3,4 MEMORY IF SPECIFIED FCOR2092
TMI *+2 SKIP IF NOT SPECIFIED FCOR2093
STO MEM OTHERWISE SET USER MEMORY FCOR2094
TRA 4,4 AND RETURN FCOR2095
REM FCOR2096
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2097
REM FCOR2098
REM GETUSR.(ARY(4)...4) FCOR2099
REM FCOR2100
GETUSR CAL 1,4 MUST BE 'TXH ARY,,N' FCOR2101
PAC 0,5 -BASE ADDRESS TO IR5 FCOR2102
PDX 0,6 COUNT TO IR6 FCOR2103
CAL SLOTNO RETURN DISK USER NO. FCOR2104
SLW 0,5 .. FCOR2105
TNX GETUS1,6,1 REDUCE COUNT FCOR2106
CAL CALL MEMORY FLAG FOR 'CALLER' FCOR2107
SLW 1,5 .. FCOR2108
TNX GETUS1,6,1 .. FCOR2109
CAL BUF MEMORY FLAG FOR 'BUFFER' FCOR2110
SLW 2,5 .. FCOR2111
TNX GETUS1,6,1 .. FCOR2112
CAL MEM MEMORY FLAG FOR 'MEMORY' FCOR2113
SLW 3,5 .. FCOR2114
GETUS1 TRA 2,4 RETURN FCOR2115
REM FCOR2116
EJECT FCOR2117
REM FCOR2118
REM IOSTOP.(SLOTNO) FCOR2119
REM FCOR2120
IOSTOP SSAVE (SPM) FCOR2121
REM FCOR2122
LXA P1,4 SLOT NUMBER OF USER TO BE STOPPED FCOR2123
TXL STOP1,4,DUSERS SKIP IF SLOT NUMBER IS LEGAL FCOR2124
ERROR 3 IOSTOP ERROR(3), ILLEGAL USER SLOT NO. FCOR2125
REM FCOR2126
STOP1 TSX IOHALT,4 STOP ALL I/O FOR THIS USER FCOR2127
PAR P1 .. ON ALL DEVICES FCOR2128
TRA RETURN AND RETURN FCOR2129
REM FCOR2130
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2131
REM FCOR2132
REM IOSTRT.(SLOTNO) FCOR2133
REM FCOR2134
IOSTRT SSAVE (SPM) FCOR2135
REM FCOR2136
LXA P1,4 SLOT NUMBER OF USER TO BE STARTED FCOR2137
TXL START1,4,DUSERS SKIP IF SLOT NUMBER IS LEGAL FCOR2138
ERROR 3 IOSTRT ERROR(3), ILLEGAL USER SLOT NO. FCOR2139
REM FCOR2140
START1 TSX IOBEGN,4 RESTART ANY WAITING I/O FOR THIS USER FCOR2141
PAR P1 .. ON ALL DEVICES FCOR2142
TRA RETURN AND RETURN FCOR2143
REM FCOR2144
* * * * * * * * * * * * * * * * * * * * * * * FCOR2145
REM FCOR2146
REM IORSET. FCOR2147
REM FCOR2148
IORSET SSAVE () FCOR2149
REM FCOR2150
TSX IORST,4 INFORM I/O CONTROL OF MACHINE RESET FCOR2151
TRA RETURN FCOR2152
REM FCOR2153
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2154
REM FCOR2155
REM IOFINI. FCOR2156
REM FCOR2157
IOFINI SSAVE () FCOR2158
REM FCOR2159
LAC UTABLE,1 FCOR2160
TSX IOBEGN,4 INSURE I/O IS NOT BLOCKED FCOR2161
PAR =0 .. FCOR2162
TSX DRAIN,4 WAIT UNTIL ALL PENDING I/O IS PROCESSED FCOR2163
TSX UPDSYS,4 UPDATE ALL SYSTEM INFORMATION FCOR2164
PAR FINMER .. POSSIBLE ERROR RETURN FCOR2165
TSX DRAIN,4 AND WAIT ON I/O AGAIN FCOR2166
TRA RETURN AND RETURN FCOR2167
REM FCOR2168
FINMER ERROR 3 IOFINI ERROR(3), MACHINE OR SYSTEM ERROR FCOR2169
REM FCOR2170
EJECT FCOR2171
REM FCOR2172
REM .......... INTIALIZATION ENTRY FOR FILE SYSTEM ......... FCOR2173
REM FCOR2174
REM IOINIT.(ERRLOC,DATLOC,TIMLOC,ENABLE) FCOR2175
REM FCOR2176
IOINIT SSAVE (ADR,ADR,ADR,ADR) FCOR2177
REM FCOR2178
CAL P1 SET UP LOCATION OF SUPERVISOR ERROR RETURN FCOR2179
STA ERRLOC .. FCOR2180
CAL P2 SET UP LOCATION OF DATE FCOR2181
STA DATLOC .. FCOR2182
CAL P3 SET UP LOCATION OF TIME IN 60THS FCOR2183
STA TIMLOC .. FCOR2184
CAL P4 SET UP LOCATION OF COMMON ENABLE WORD FCOR2185
STA ENABLE .. FCOR2186
AXC 1,3 FCOR2187
INIT1 XEC SINITF,3 INITIALIZE ALL STRATEGY MODULES FCOR2188
PAR ENABLE .. FCOR2189
TXL *+2,3,-FMAX .. FCOR2190
TXI INIT1,3,-1 .. FCOR2191
AXC 1,3 INITIALIZE ALL OTHER MODULES FCOR2192
INIT2 XEC SETMOD,3 .. FCOR2193
PAR FRSTER,,FRSTER ERR. RTN. FOR 'IFILES' FCOR2194
TXL *+2,3,-NINIT .. FCOR2195
TXI INIT2,3,-1 .. FCOR2196
TRA RETURN AND RETURN FCOR2197
REM FCOR2198
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2199
REM FCOR2200
REM ....... END OF MAIN SECTION OF FILE COORDINATOR .........FCOR2201
REM ....... UTILITY ROUTINES FOLLOW FCOR2202
REM FCOR2203
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2204
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2205
EJECT FCOR2206
REM FCOR2207
REM SSAVE AND SAVE ..... SAVE AND PICK UP PARAMETERS FCOR2208
REM FCOR2209
SSAVE STI SVSI HERE FROM ENTRY FROM SUPERVISOR FCOR2210
LDI HOME PICK UP 'HOME' POINTER FCOR2211
STI GTCALL SET UP TO GET ALL PARAMETERS FCOR2212
STI GTMEM .. FROM 'HOME' MEMORY FCOR2213
STI GTBUF .. FCOR2214
TRA SAVE1 FCOR2215
REM FCOR2216
SAVE STI SVSI HERE FROM NORMAL ENTRY TO FILE SYSTEM FCOR2217
LDI CALL POINTER TO CALLING MEMORY FCOR2218
STI GTCALL SET TO GET CALLING SEQUENCE FCOR2219
LDI MEM SET TO GET DATA AND CHECK LIMITS FCOR2220
STI GTMEM .. FCOR2221
LDI BUF SET TO CHECK BUFFER ADDRESSES FCOR2222
STI GTBUF .. FCOR2223
REM FCOR2224
SAVE1 ENB* ENABLE INSURE ALL TRAPS ENABLED FCOR2225
SXA TMPIR4,4 FCOR2226
REM FCOR2227
SXA SVIR12,1 SAVE BASIC MACHINE CONDITIONS FCOR2228
SXD SVIR12,2 FCOR2229
SXA SVIR35,3 FCOR2230
SXD SVIR35,5 FCOR2231
SXA SVIR67,6 FCOR2232
SXD SVIR67,7 FCOR2233
CAL* 1,4 PICK UP NAME OF ENTRY CALLED FCOR2234
SLW IOCALL .. SAVE IT FCOR2235
STZ FILNAM RESET PREVIOUS FILE NAME FCOR2236
STZ FILNAM+1 .. FCOR2237
CAL GTCALL MEMORY CONTAINING CALLING SEQUENCE FCOR2238
ANA =O3 .. (1-3) FCOR2239
PAC 0,1 FCOR2240
CAL ICFLAG,1 PICK UP MEMORY FLAGS FOR ILC FCOR2241
SLW ILC .. FCOR2242
CAL SETMEM,1 PICK UP ECC CONTROL INSTRUCTION FOR FCOR2243
SLW PARMEM .. USER'S MEMORY FCOR2244
LAC IR4,4 GET LOCATION OF CALLING SEQUENCE FCOR2245
SXA ILC,4 .. SAVE AS USER ILC FCOR2246
CAL ILC INITIALIZE RETURN ILC FCOR2247
SLW RTNILC .. FCOR2248
CAL ERRLOC SET UP FOR ERROR IN CASE NO ERROR RETURN FCOR2249
ORA ICFLAG+IOSMEM .. PROVIDED FCOR2250
SLW ERRTRN .. FCOR2251
REM FCOR2252
LXA TMPIR4,1 -LOC. OF CALL TO SAVE TO IR1 FCOR2253
LXA IR4,2 -LOC. OF CALL TO FILE COORDINATOR TO IR2 FCOR2254
AXC 1,3 INITIALIZE POINTER TO PARAMETER TABLE FCOR2255
STZ NOPAR FCOR2256
SAVE3 ZET NOPAR IS PARAMETER LIST EXHAUSTED FCOR2257
TRA SAVE4 YES, SKIP FCOR2258
CAL RTNILC NO, INCREASE RETURN ADDRESS FCOR2259
ADD =1 .. FCOR2260
STA RTNILC .. FCOR2261
GETPAR (1,2) PICK UP NEXT WORD FROM CALL FCOR2262
SLW P0 .. FCOR2263
TSX CHKPAR,4 CHECK FOR VALID PARAMETER FCOR2264
STL NOPAR .. SET SWITCH IF END OF PARAMETER LIST FCOR2265
SAVE4 CAL 4,1 PICK UP TYPE OF ARGUMENT FROM PROTOTYPE FCOR2266
TSX CHKPAR,4 CHECK FOR END OF PROTOTYPE FCOR2267
TRA SVERTN .. SKIP TO GET ERROR RETURN AT END FCOR2268
SXA TMPIR1,1 SAVE IR1 FCOR2269
PAC 0,4 ADDRESS OF SECTION NEEDED TO GET PARAMETER FCOR2270
TRA 0,4 DISPATCH ON EXPECTED PARAMETER TYPE FCOR2271
REM FCOR2272
FN ZET NOPAR HERE TO PICK FILE NAME FCOR2273
TRA SAVER1 ERROR IF FILE NAME MISSING FCOR2274
LAC P0,1 GET FILE NAME(1) FROM USER'S MEMORY FCOR2275
GETPAR (0,1) .. FCOR2276
SLW P0,3 .. FCOR2277
SLW FILNAM .. FCOR2278
ERA NULPAR INSURE FILE NAME NOT NULL FCOR2279
TZE SAVER1 .. ERROR IF NULL FILE NAME(1) FCOR2280
TXI *+1,2,-1 BUMP POINTER TO USER'S CALLING SEQUENCE FCOR2281
TXI *+1,3,-1 BUMP POINTER TO PARAMETER LIST FCOR2282
GETPAR (1,2) PICK UP NEXT PARAMETER FROM CALL FCOR2283
SLW P0 .. FCOR2284
TSX CHKPAR,4 CHECK FOR VALID PARAMETER FCOR2285
TRA SAVER1 .. ERROR IF NO SECOND FILE NAME GIVEN FCOR2286
LAC P0,1 GET FILE NAME(2) FROM USER'S MEMORY FCOR2287
GETPAR (0,1) .. FCOR2288
SLW P0,3 .. FCOR2289
SLW FILNAM+1 .. FCOR2290
ERA NULPAR INSURE FILE NAME(2) NOT NULL FCOR2291
TZE SAVER1 .. ERROR IF NULL FILE NAME(2) FCOR2292
NZT FILNAM ALSO ERROR (FOR SEARCH MODULE) FCOR2293
ZET FILNAM+1 IF BOTH FILE NAMES ARE ZERO FCOR2294
TXI SAVE5,3,-1 BUMP PARAMETER LIST COUNT FCOR2295
TRA SAVER1 SEQUENCE ERROR, BOTH FILE NAMES ZERO FCOR2296
REM FCOR2297
SP CAL NULPAR HERE TO PICK UP OPTIONAL PARAMETER FCOR2298
SLW P0,3 NULL PARAMETER IN CASE PARAMETER MISSING FCOR2299
ZET NOPAR HAS A PARAMETER BEEN SPECIFIED FCOR2300
TXI SAVE5,3,-1 NO, SKIP FCOR2301
LAC P0,1 PICK UP PARAMETER FROM USER'S MEMORY FCOR2302
GETPAR (0,1) .. FCOR2303
SLW P0,3 .. FCOR2304
TXI SAVE5,3,-1 BUMP PARAMETER LIST COUNT FCOR2305
REM FCOR2306
SPM ZET NOPAR HERE TO PICK UP MANDITORY PARAMETER FCOR2307
TRA SAVER1 ERROR IF PARAMETER NOT SPECIFIED FCOR2308
LAC P0,1 PICK UP PARAMETER FROM USER'S MEMORY FCOR2309
GETPAR (0,1) .. FCOR2310
SLW P0,3 .. FCOR2311
ERA NULPAR CHECK FOR NULL PARAMETER FCOR2312
TZE SAVER1 ERROR IF NULL FCOR2313
TXI SAVE5,3,-1 BUMP PARAMETER LIST COUNT FCOR2314
REM FCOR2315
ARY CAL GTCALL HERE TO PICK UP ARRAY FROM 'CALL' FCOR2316
TRA GETARY .. FCOR2317
REM FCOR2318
MARY CAL GTMEM HERE TO PICK UP ARRAY FROM 'MEM' FCOR2319
TRA GETARY .. FCOR2320
REM FCOR2321
BARY CAL GTBUF HERE TO PICK UP ARRAY FROM 'BUF' FCOR2322
REM FCOR2323
GETARY SLW TMEM SAVE MEMORY POINTER FCOR2324
ZET NOPAR CHECK IF ARRAY SPECIFIED IN CALL FCOR2325
TRA SAVER1 ERROR IF ARRAY NOT SPECIFIED FCOR2326
CAL P0 GET PARAMETER FCOR2327
PAI INTO INDICATORS ALSO FCOR2328
LFT 100000 IS PARAMETER SPECIFIED BY 'TIX' FCOR2329
TRA GTARY1 NO, ASSUME TXH A,,N NOTATION FCOR2330
ANA =O77777 YES, SET BASE ADDRESS OF ARRAY FCOR2331
SLW P0,3 .. MODULO 2.P.15 FCOR2332
LDC P0,1 GET -ADDRESS OF WORD COUNT FCOR2333
GETPAR (0,1) PICK UP ARRAY WORD COUNT FCOR2334
ANA =O77777 .. MODULO 2.P.15 FCOR2335
ALS 18 .. COUNT TO DECREMENT FCOR2336
STD P0,3 SET ARRAY WORD COUNT FCOR2337
TRA GTARY2 SKIP TO CHECK ARRAY LIMITS FCOR2338
REM FCOR2339
GTARY1 ANA =O77777077777 HERE FOR TXH A,,N NOTATION, RESET PREFIX FCOR2340
SLW P0,3 .. AND TAG, AND SET IN PARAMETER LIST FCOR2341
GTARY2 CAL P0,3 RELOAD ARRAY SPECIFICATION FCOR2342
TSX RCHECK,4 RELOCATE AND CHECK LIMITS FCOR2343
PAR SAVER1,,TMEM .. FCOR2344
TXI SAVE5,3,-1 BUMP PARAMETER LIST COUNT FCOR2345
REM FCOR2346
ADR CAL NULPAR HERE TO SET OPTIONAL ADDRESS PARAMETER FCOR2347
SLW P0,3 NULL ADDRESS IN CASE ADDRESS MISSING FCOR2348
ZET NOPAR HAS THE ADDRESS PARAMETER BEEN SPECIFIED FCOR2349
TXI SAVE5,3,-1 NO, SKIP FCOR2350
LAC P0,1 -ADDRESS TO IR1 FCOR2351
GETPAR (0,1) PICK UP WORD AT THIS ADDRESS FCOR2352
ERA NULPAR CHECK FOR NULL PARAMETER FCOR2353
TNZ *+2 SKIP IF NOT A NULL PARAMETER FCOR2354
TXI SAVE5,3,-1 OTHERWISE BUMP PARAMETER LIST COUNT FCOR2355
CAL P0 HERE TO SET UP ADDRESS PARAMETER FCOR2356
ANA =O77777 .. MODULE 2.P.15 FCOR2357
SLW P0,3 .. IN PARAMETER LIST TABLE FCOR2358
TXI SAVE5,3,-1 BUMP PARAMETER LIST COUNT FCOR2359
REM FCOR2360
SAVE5 LXA TMPIR1,1 RELOAD IR1 TO POINT TO SAVE CALL FCOR2361
TXI *+1,2,-1 BUMP POINTER TO USER'S CALLING SEQ. FCOR2362
TXI SAVE3,1,-1 GET PARAMETER FROM SAVE CALL FCOR2363
REM FCOR2364
SVERTN CAL NULPAR HERE FOR END OF PROTOTYPE CALL TO SAVE FCOR2365
SLW ERWORD NULL ERROR WORD IN CASE NONE SPECIFIED FCOR2366
SXD TMPIR4,1 SAVE POINTER TO END OF CALL TO SAVE FCOR2367
ZET NOPAR DID USER SPECIFY AN ERROR RETURN FCOR2368
TRA SAVE6 NO, SKIP FCOR2369
CAL P0 YES, SET UP USER ERROR RETURN FCOR2370
ANA =O77777 .. MODULO 2.P.15 FCOR2371
SLW ERRTRN .. FCOR2372
LDQ RTNILC SET UP MEMORY FLAGS IN CASE OF ERROR FCOR2373
SLQ ERRTRN .. FCOR2374
CAL RTNILC BUMP RETURN LOCATION FCOR2375
ADD =1 .. FCOR2376
STA RTNILC .. FCOR2377
GETPAR (2,2) PICK UP ERROR CODE RETURN WORD IF ANY FCOR2378
SLW P0 .. FCOR2379
TSX CHKPAR,4 CHECK FOR ERROR CODE WORD PARAMETER FCOR2380
TRA SAVE6 .. SKIP IF ERROR CODE WORD NOT PROVIDED FCOR2381
CAL P0 SET UP ADDRESS TO RETURN ERROR CODE FCOR2382
ANA =O77777 .. IN CASE OF ERROR RETURN FCOR2383
SLW ERWORD .. FCOR2384
CAL RTNILC BUMP RETURN LOCATION FCOR2385
ADD =1 .. FCOR2386
STA RTNILC .. FCOR2387
REM FCOR2388
SAVE6 LXA TMPIR4,4 RELOAD IR4 FROM CALL TO SAVE OR SSAVE FCOR2389
LAC UTABLE,1 -BASE OF USER A.F.S.T. TO IR1 FCOR2390
LDI URCODE,1 PICK UP USER RESTRICTION CODE FCOR2391
ONT* 2,4 IS USER PRIVELEGED TO USE THIS ENTRY FCOR2392
TRA SAVER2 NO, ERROR FCOR2393
NZT* 3,4 YES, DOES USER NEED TO BE SIGNED ON FCOR2394
TRA SAVE7 NO, SKIP FCOR2395
NZT PROBNO,1 YES, INSURE USER IS SIGNED ON FCOR2396
TRA SAVER2 ERROR IF USER NOT SIGNED ON FCOR2397
SAVE7 LXD TMPIR4,4 RELOAD IR4 SAVED AT END OF SAVE CALL FCOR2398
TRA 4,4 AND RETURN FCOR2399
REM FCOR2400
SAVER1 ERROR 1 SAVE ERROR(1), BAD CALLING SEQUENCE FCOR2401
REM FCOR2402
SAVER2 ERROR 2 SAVE ERROR(2), ILLEGAL USE OF CALL FCOR2403
REM FCOR2404
REM CHKPAR ...... DETERMINE IF WORD IN AC IS A PARAMETER FCOR2405
REM ............. USED BY SAVE AND SSAVE ONLY .......... FCOR2406
REM FCOR2407
CHKPAR PAI SAVE WORD IN SI FCOR2408
ANA =O600000700000 REMOVE ALL BUT PREFIX AND TAG FCOR2409
ERA =O200000000000 CHECK FOR TIX OR TXH WITH NO TAG FCOR2410
TNZ 1,4 RETURN 1,4 IF WORD NOT A PARAMETER FCOR2411
PIA OTHERWISE RESTORE PARAMETER TO AC FCOR2412
TRA 2,4 AND RETURN 2,4 FCOR2413
REM FCOR2414
EJECT FCOR2415
REM FCOR2416
REM RETURN .......... NORMAL RETURN TO USER AT RTNILC FCOR2417
REM FCOR2418
RETURN TSX RESTOR,4 HERE FOR NORMAL RETURN TO USER FCOR2419
EXIT IR4,RTNILC RETURN THROUGH COMMON EXIT ROUTINE FCOR2420
REM FCOR2421
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2422
REM FCOR2423
REM QWAIT ......... HERE IF USER INPUT/OUTPUT ROADBLOCKED FCOR2424
REM FCOR2425
QWAIT TSX RESTOR,4 RESTORE USER'S MACHINE STATUS FCOR2426
SSTRAP 6,IR4,ILC,0,0 INTERRUPT SUPERVISORY SYSTEM FCOR2427
ENB* ENABLE REENABLE AFTER SIMULATED TRAP FCOR2428
EXIT IR4,ILC EXIT TO USER AT 0,4 FCOR2429
REM FCOR2430
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2431
REM FCOR2432
REM RESTOR ..... RESTORE USER MACHINE CONDITIONS FCOR2433
REM FCOR2434
RESTOR LXA SVIR12,1 RELOAD USER'S IRS 1-3 FCOR2435
LXD SVIR12,2 .. FCOR2436
LXA SVIR35,3 .. FCOR2437
LXD SVIR35,5 .. FCOR2438
LXA SVIR67,6 .. FCOR2439
LXD SVIR67,7 .. FCOR2440
LDI SVSI AND SI FCOR2441
TRA 1,4 FCOR2442
REM FCOR2443
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2444
REM FCOR2445
REM SETEOF ...... SET RETURN ON EOF FROM READ OR WRITE FCOR2446
REM FCOR2447
SETEOF SLW TEMP SAVE EOF COUNT FCOR2448
CLA P5 EOF RETURN IF SPECIFIED FCOR2449
TMI *+2 SKIP IF NOT SPECIFIED FCOR2450
STA RTNILC OTHERWISE SET UP EOF RETURN FCOR2451
CLA P6 'EOFCT' IF SPECIFIED FCOR2452
TMI 1,4 RETURN IF EOFCT NOT SPECIFIED FCOR2453
SXA SEOF34,3 FCOR2454
SXD SEOF34,4 FCOR2455
LAC P6,3 RETURN EOF COUNT TO USER FCOR2456
MOVE1 HOME,TEMP,CALL,(0,3),STEOF1 .. FCOR2457
STEOF1 LXA SEOF34,3 AND RETURN FCOR2458
LXD SEOF34,4 .. FCOR2459
TRA 1,4 .. FCOR2460
REM FCOR2461
EJECT FCOR2462
REM FCOR2463
REM SSTRAP ....... ROUTINE TO INTERRUPT SUPERVISORY SYSTEM ..FCOR2464
REM FCOR2465
SSTRAP ENB =0 INSURE ALL TRAPS DISABLED FCOR2466
TTR* SSCALL AND CALL SUPERVISOR INTERRUPT PROCEDURE FCOR2467
REM FCOR2468
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2469
REM FCOR2470
REM ERROR/IOERR ....... STANDARD ERROR ROUTINES ....... FCOR2471
REM FCOR2472
ERROR CAL =0 HERE FOR NORMAL ERROR RESET I/O CODE FCOR2473
TRA ERROR1 .. FCOR2474
REM FCOR2475
IOERR CAL EFLAG,2 HERE FOR I/O ERROR SET I/O ERROR CODE FCOR2476
ARS 15 .. FROM TAG OF EFLAG,2 FCOR2477
ANA =O7 .. MODULO 2.P.3 FCOR2478
STT EFLAG,2 .. RESET ERROR CONDITION FCOR2479
REM FCOR2480
ERROR1 LAC UTABLE,1 INSURE -BASE OF USER TABLE IN IR1 FCOR2481
SLW IOCODE,1 SAVE INPUT/OUTPUT ERROR CODE IF ANY FCOR2482
CAL ILC SAVE USER ILC AT TIME OF CALL FCOR2483
SLW ERRILC,1 .. FCOR2484
CAL IOCALL SAVE NAME OF ENTRY CALLED FCOR2485
SLW ERNAME,1 .. FCOR2486
PCA 0,4 SAVE LOCATION OF CALL TO ERROR (XEC ERR'N')FCOR2487
SLW ERCALL,1 .. FCOR2488
CAL 0,4 PICK UP 'XEC' INSTRUCTION FCOR2489
PAC 0,4 -ADDRESS OF TSX TO IR4 FCOR2490
CAL 1,4 PICK UP ERROR CODE FCOR2491
ANA =O77777 .. MODULO 2.P.15 FCOR2492
SLW ERCODE,1 .. SAVE IT FCOR2493
CAL FILNAM SAVE FILE NAME IF ANY FCOR2494
SLW ENAME1,1 .. FCOR2495
CAL FILNAM+1 .. FCOR2496
SLW ENAME2,1 .. FCOR2497
CLA ERWORD GET LOCATION OF ERROR WORD IF PROVIDED FCOR2498
TMI ERROR2 SKIP IF NOT SPECIFIED FCOR2499
PAC 0,2 -ADDRESS TO IR2 FCOR2500
MOVE1 HOME,(ERCODE,1),GTCALL,(0,2),*+1 MOVE ERROR CODE TO USERFCOR2501
ERROR2 TSX RESTOR,4 RESTORE USER'S MACHINE STATUS FCOR2502
EXIT IR4,ERRTRN AND TAKE ERROR EXIT FCOR2503
REM FCOR2504
EJECT FCOR2505
REM FCOR2506
REM GTDYTM ..... CONVERT DATE AND TIME TO I/O SYSTEM FORMAT FCOR2507
REM FCOR2508
GTDYTM SXA GETMX4,4 FCOR2509
CAL* DATLOC GET CURRENT 'MMDDYY' FCOR2510
ANA =O171717171717 MASK TO INSURE DIGITS ONLY FCOR2511
XCL REMOVE FROM MQ 2 CHARS. EACH TIME FCOR2512
TSX BCBN2,4 CONVERT FIRST TWO CHARS FCOR2513
ANA =O17 MONTH IN BINARY (4 BITS) FCOR2514
ALS 18+5 SHIFT MONTH TO DECR., SAVE ROOM FOR DAY FCOR2515
SLW DATE .. FCOR2516
TSX BCBN2,4 NOW CONVERT DD FCOR2517
ANA =O37 DAY IN BINARY (5 BITS) FCOR2518
ALS 18 DAY TO DECREMENT FCOR2519
ORS DATE ADD DAY TO MONTH FCOR2520
TSX BCBN2,4 FINALLY, YY FCOR2521
ANA =O777 YEAR IN BINARY (9 BITS) FCOR2522
ALS 18+9 SHIFT TO POSITION FCOR2523
ORS DATE DATE= YEAR(9BITS), MONTH(4BITS), DAY(5BITS)FCOR2524
LDQ* TIMLOC PICK UP TIME OF DAY IN 60THS OF A SECOND FCOR2525
ZAC INSURE AC ZERO FCOR2526
DVP =60 GET TIME IN SECONDS FCOR2527
XCL .. TIME TO AC FCOR2528
ORA DATE YEAR, MONTH, DAY, TIME IN LOGICAL AC FCOR2529
LXA GETMX4,4 RETURN TO CALLER FCOR2530
TRA 1,4 .. FCOR2531
REM FCOR2532
BCBN2 ZAC CONVERT TWO BCD CHARS FROM MQ FCOR2533
LGL 6 GUARANTEED NO ZONE BITS FCOR2534
SLW TNUM CALLED ONLY FROM 'GTDYTM' FCOR2535
ZAC CLEAR AC FOR 2ND CHAR. FCOR2536
LGL 3 .. FCOR2537
ADM TNUM .. FCOR2538
LGL 3 .. FCOR2539
ADM TNUM .. FCOR2540
ACL TNUM .. FCOR2541
TRA 1,4 FINIS FCOR2542
REM FCOR2543
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2544
REM FCOR2545
REM GETDAY ..... PICK UP DATE IN BCD, RETURN IN AC ...... FCOR2546
REM FCOR2547
GETDAY CAL* DATLOC DATE TO LOGICAL AC FCOR2548
LDQ* TIMLOC TIME IN 60THS TO MQ FCOR2549
TRA 1,4 RETURN FCOR2550
REM FCOR2551
EJECT FCOR2552
REM FCOR2553
REM CKLINK ....... ROUTINE TO CHECK AND FIND LINKED FILE FCOR2554
REM FCOR2555
CKLINK LDI MODE,2 SET MODE AS RMODE FCOR2556
RIS =O1777777777 .. RESETING ALL BUT MODE BITS FCOR2557
STI RMODE,2 .. FCOR2558
CAL F,2 CHECK FOR 'LINKED' FILE FCOR2559
ANA =O700000 .. FCOR2560
TNZ 2,4 IGNORE IF NORMAL FILE FCOR2561
SIL 001000 SET LINK BIT IN RMODE FCOR2562
STI RMODE,2 .. FCOR2563
SXA CKLX34,3 HERE IF FILE IS A 'LINKED' FILE FCOR2564
SXD CKLX34,4 FCOR2565
AXT LDEPTH,3 MAXIMUM DEPTH FOR 'LINKED' FILES FCOR2566
CKLNK1 CHKUFD (LPROBN,2),CKLNK3 SEE IF UFD EXISTS FCOR2567
SEARCH (LPROBN,2),(LNAME1,2),CKLERR UFD EXISTS, DOES FILE EXIST FCOR2568
CAL MODE,2 PICK UP MODE OF THIS FILE FCOR2569
ANA =O776000000000 MASK AWAY ALL BUT MODE BITS FCOR2570
ORS RMODE,2 AND ADD TO EFFECTIVE FILE MODE FCOR2571
CAL F,2 CHECK FOR FURTHER LINKING FCOR2572
ANA =O700000 .. FCOR2573
TNZ CKLNK2 SKIP WHEN NORMAL FILE FOUND FCOR2574
TIX CKLNK1,3,1 OTHERWISE TRY TO LINK AGAIN FCOR2575
CKLNK3 LXD CKLX34,4 HERE FOR TARGET U.F.D. NOT FOUND FCOR2576
LXA CKLX34,3 OR LINK DEPTH EXCEEDED FCOR2577
CAL 1,4 PICK UP PARAMETERS FCOR2578
PDC ,7 ERROR RETURN FCOR2579
TRA 0,7 LINKAGE DEPTH EXCEEDED FCOR2580
REM FCOR2581
CKLERR LXD CKLX34,4 HERE IF 'LINKED' FILE NOT FOUND FCOR2582
LXA CKLX34,3 .. TAKE ERROR RETURN FCOR2583
TRA* 1,4 .. FCOR2584
REM FCOR2585
CKLNK2 LXD CKLX34,4 HERE ON COMPLETED LINK FCOR2586
LXA CKLX34,3 .. RETURN FCOR2587
TRA 2,4 .. FCOR2588
REM FCOR2589
EJECT FCOR2590
REM FCOR2591
REM STAFIL ...... ENTER ACTIVE FILE FOR SLOT '0' FCOR2592
REM FCOR2593
STAFIL SXA STAFLX,4 FCOR2594
TSX CSTAT0,4 FIND ROOM FOR ENTRY FCOR2595
PAR STAERR .. ERROR, NO ROOM IN A.F.S.T. FCOR2596
SLW STATMP SAVE BASE ADDRESS OF SLOT IN A.F.S.T. FCOR2597
PAC 0,7 -BASE OF ENTRY TO IR7 FCOR2598
LXA STAFLX,4 RELOAD CALLER'S IR4 FCOR2599
CAL 1,4 GET POINTER TO FILE ENTRY FCOR2600
TSX GETEFA,4 COMPUTE EFFECTIVE ADDRESS FCOR2601
PAC 0,6 -BASE OF FILE ENTRY TO IR6 FCOR2602
AXT 9,5 FCOR2603
STAFL1 CAL 0,6 MOVE FILE ENTRY TO A.F.S.T. FCOR2604
SLW FPROBN,7 .. FCOR2605
TNX STAFL2,5,1 .. FCOR2606
TXI *+1,6,-1 .. FCOR2607
TXI STAFL1,7,-1 .. FCOR2608
STAFL2 LAC STATMP,5 FILL IN RPROBN-RPROGN AND RNAME1-RNAME2 FCOR2609
CLA FPROBN,5 .. FCOR2610
LDQ FPROGN,5 .. FCOR2611
DST RPROBN,5 .. FCOR2612
CLA FNAME1,5 .. FCOR2613
LDQ FNAME2,5 .. FCOR2614
DST RNAME1,5 .. FCOR2615
CAL MODE,5 SET UP RMODE TO BE SAME AS MODE FCOR2616
SLW RMODE,5 .. FCOR2617
LXA STAFLX,4 AND RETURN TO CALLER FCOR2618
CAL STATMP .. WITH BASE OF ENTRY IN A.F.S.T. IN AC FCOR2619
TRA 3,4 .. FCOR2620
REM FCOR2621
STAERR LXA STAFLX,4 HERE IF NO ROOM IN A.F.S.T. FCOR2622
TRA* 2,4 TAKE ERROR RETURN FCOR2623
REM FCOR2624
EJECT FCOR2625
REM FCOR2626
REM CKSTAT/CSTAT0 ...... FIND ROOM FOR NEW ENTRY IN A.F.S.T. FCOR2627
REM FCOR2628
CSTAT0 LAC USRTBL,5 -POINTER TO A.F.S.T. FOR SLOT '0' FCOR2629
LXD USRTBL,6 NO. OF WORDS IN A.F.S.T. FCOR2630
TXI CSTAT1,5,-AFENTY POINT TO FIRST ACTIVE FILE ENTRY FCOR2631
REM FCOR2632
CKSTAT LAC UTABLE,5 -POINTER TO A.F.S.T. FOR CURRENT USER FCOR2633
LXD UTABLE,6 NO. OF WORDS IN A.F.S.T. FCOR2634
TXI CSTAT1,5,-AFENTY POINT TO FIRST ACTIVE FILE ENTRY FCOR2635
REM FCOR2636
CSTAT1 TNX CKSERR,6,AFENTY-1 GET LENGTH DEVOTED TO ACTIVE FILES FCOR2637
CKST1 TNX CKSERR,6,ACTLNG INSURE ENOUGH ROOM FCOR2638
NZT RPROBN,5 FIND EMPTY SLOT IF ANY FCOR2639
TRA CKST2 .. SKIP WHEN FOUND FCOR2640
TXI CKST1,5,-ACTLNG KEEP LOOKING FCOR2641
REM FCOR2642
CKST2 PCA 0,5 RETURN POINTER TO EMPTY SLOT IN AC FCOR2643
TRA 2,4 AND EXIT FCOR2644
REM FCOR2645
CKSERR TRA* 1,4 ERROR RETURN IF NO ROOM IN A.F.S.T. FCOR2646
REM FCOR2647
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2648
REM FCOR2649
REM GTSTAT/GTAFIL ..... FIND ACTIVE FILE IN A.F.S.T. FCOR2650
REM FCOR2651
GTAFIL LAC USRTBL,6 -POINTER TO A.F.S.T. FOR SLOT '0' FCOR2652
LXD USRTBL,7 NO. OF WORDS IN A.F.S.T. FCOR2653
TXI GSTAT1,6,-AFENTY POINT TO FIRST ACTIVE FILE ENTRY FCOR2654
REM FCOR2655
GTSTAT LAC UTABLE,6 -POINTER TO A.F.S.T. FOR CURRENT USER FCOR2656
LXD UTABLE,7 NO. OF WORDS IN A.F.S.T. FCOR2657
TXI GSTAT1,6,-AFENTY POINT TO FIRST ACTIVE FILE ENTRY FCOR2658
REM FCOR2659
GSTAT1 SXA GTSIR4,4 FCOR2660
CAL 1,4 POINTER TO FILE NAME FCOR2661
TSX GETEFA,4 GET EFFECTIVE ADDRESS FCOR2662
PAC 0,5 -LOCATION OF FILE NAME TO IR5 FCOR2663
LXA GTSIR4,4 RELOAD IR4 FCOR2664
TNX GTSERR,7,AFENTY GET LENGTH DEVOTED TO ACTIVE FILES FCOR2665
CAL 0,5 FILE NAME(1) TO AC FCOR2666
LDQ 1,5 FILE NAME(2) TO MQ FCOR2667
LAS NULPAR IS FILE NAME(1) NULL FCOR2668
TRA *+2 NO, SKIP FCOR2669
TRA GTANY YES, GO TO FIND ANY ACTIVE FILE ENTRY FCOR2670
GTST1 NZT RPROBN,6 NO, TRY TO FIND SPECIFIED FILE IN A.F.S.T. FCOR2671
TRA GTST3 .. SKIP NULL ENTRY (FPROBN .E. 0) FCOR2672
LAS RNAME1,6 .. LOOK FOR FILE NAME(1) FCOR2673
TRA GTST3 .. FCOR2674
TRA *+2 .. FILE NAME(1) FOUND FCOR2675
TRA GTST3 .. FCOR2676
XCL .. HERE IF FILE NAME(1) FOUND FCOR2677
LAS RNAME2,6 .. LOOK FOR FILE NAME(2) FCOR2678
TRA GTST2 .. FCOR2679
TRA GTFND .. FILE FOUND, GO PICK UP INDEX IN A.F.S.T.FCOR2680
GTST2 XCL .. RETURN FILE NAME(1) TO AC FCOR2681
GTST3 TNX GTSERR,7,ACTLNG CHECK FOR END OF TABLE FCOR2682
TXI GTST1,6,-ACTLNG KEEP LOOKING FCOR2683
REM FCOR2684
GTANY XCL HERE TO PICK UP ANY ACTIVE FILE ENTRY FCOR2685
GTSTA1 TZE GTSTA2 FIND POINTER OF LAST ENTRY RETURNED (+1) FCOR2686
TNX GTSERR,7,ACTLNG .. CHECK TO END OF TABLE FCOR2687
SUB =1 .. FCOR2688
TXI GTSTA1,6,-ACTLNG .. FCOR2689
REM FCOR2690
GTSTA2 CAL 1,5 FIND ANY ACTIVE FILE ENTRY FCOR2691
ADD =1 .. FCOR2692
SLW 1,5 .. FCOR2693
ZET RPROBN,6 .. FCOR2694
TRA GTFND .. FILE FOUND, GO PICK UP INDEX IN A.F.S.T.FCOR2695
TNX GTSERR,7,ACTLNG .. CHECK FOR END OF TABLE FCOR2696
TXI GTSTA2,6,-ACTLNG .. KEEP LOOKING FCOR2697
REM FCOR2698
GTFND PCA 0,6 SET UP POINTER TO ENTRY IN AC FCOR2699
TRA 2,4 .. AND RETURN FCOR2700
REM FCOR2701
GTSERR CAL 1,4 HERE IF NO ENTRY FOUND FCOR2702
PDC 0,5 TAKE ERROR RETURN FCOR2703
TRA 0,5 .. FCOR2704
REM FCOR2705
EJECT FCOR2706
REM FCOR2707
REM CHKACT ..... CHECK IF FILE IS ALREADY ACTIVE ......... FCOR2708
REM FCOR2709
CHKACT LAC UTABLE,6 -POINTER TO ACTIVE FILE STATUS TABLE FCOR2710
LXD UTABLE,7 LENGTH OF A.F.S.T. FCOR2711
TXI *+1,6,-AFENTY POINT TO FIRST ACTIVE FILE ENTRY FCOR2712
TNX CKACTX,7,AFENTY GET LENGTH DEVOTED TO ACTIVE FILES FCOR2713
SCA CKACTP,2 SAVE BASE OF TEST ENTRY FCOR2714
CKACT1 NZT RPROBN,6 IS THIS ENTRY OCCUPIED FCOR2715
TRA CKACT2 NO, SKIP FCOR2716
PCA 0,6 IS THIS ENTRY THE SAME AS THE TEST ENTRY FCOR2717
SUB CKACTP .. FCOR2718
TZE CKACT2 AVOID CHECKING ENTRY AGAINST ITSELF FCOR2719
CAL FPROBN,6 CHECK FOR DUPLICATED FILE ENTRY FCOR2720
ERA FPROBN,2 .. FCOR2721
TNZ CKACT2 .. FCOR2722
CAL FPROGN,6 .. FCOR2723
ERA FPROGN,2 .. FCOR2724
TNZ CKACT2 .. FCOR2725
CAL FNAME1,6 .. FCOR2726
ERA FNAME1,2 .. FCOR2727
TNZ CKACT2 .. FCOR2728
CAL FNAME2,6 .. FCOR2729
ERA FNAME2,2 .. FCOR2730
TZE* 1,4 .. ERROR RETURN IF DUPLICATE ENTRY FOUND FCOR2731
CKACT2 TNX CKACTX,7,ACTLNG .. FCOR2732
TXI CKACT1,6,-ACTLNG .. FCOR2733
REM FCOR2734
CKACTX TRA 2,4 HERE FOR NORMAL RETURN FROM CHKACT FCOR2735
REM FCOR2736
EJECT FCOR2737
REM FCOR2738
REM RELEAS ...... REMOVE FILE FROM A.F.S.T. .................FCOR2739
REM FCOR2740
RELEAS SXA RELIR4,4 FCOR2741
CAL 1,4 POINTER TO ACTIVE FILE ENTRY FCOR2742
TSX GETEFA,4 COMPUTE EFFECTIVE ADDRESS FCOR2743
PAC 0,4 -LOCATION OF ENTRY TO IR4 FCOR2744
STZ RPROBN,4 CLEAR ENTRY BY LEAVING RPROBN ZERO FCOR2745
LXA RELIR4,4 AND RETURN FCOR2746
TRA 2,4 .. FCOR2747
REM FCOR2748
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2749
REM FCOR2750
REM RTNFIL ...... REMOVE FILE FROM ACTIVE STATUS .......... FCOR2751
REM FCOR2752
RTNFIL SXA RTNFX4,4 FCOR2753
CAL RCOUNT,2 PICK UP PHYSICAL RECORD SIZE FCOR2754
PAX 0,4 .. INTO IR4 FCOR2755
TXH RTNFA,4,0 SKIP IF FILE HAS NOT BEEN 'SCRAPPED' FCOR2756
LDI MODE,2 HERE FOR SCRAPPED FILE (RCOUNT.E.0) FCOR2757
LFT 002000 WAS IT A TEMPORARY FILE FCOR2758
TRA RTNDEL YES, IGNORE FILE LENGTH FCOR2759
CAL NORECS,2 NO, PICK UP NO. OF RECORDS IN THIS FILE FCOR2760
PDX 0,5 .. INTO ADDRESS FCOR2761
PXA 0,5 .. FCOR2762
SLW TEMP SAVE NO. OF RECORDS IN THIS FILE FCOR2763
LXTC (F,2),3 -F TO IR3 FCOR2764
GETQU (FPROBN,2) PICK UP RECORD QUOTA,,USED FROM UFD FCOR2765
TSX SUBREC,4 REDUCE USER RECORDS USED FCOR2766
PAR TEMP .. BY C(TEMP) FCOR2767
PAR *+1 .. IGNORE ERROR RETURN FCOR2768
SETQU (FPROBN,2) UPDATE RECORD QUOTA,,USED IN UFD FCOR2769
TRA RTNDEL AND REMOVE FILE FROM UFD FCOR2770
REM FCOR2771
RTNFA LDI RWSTAT,2 PICK UP READ AND/OR WRITE STATUS OF FILE FCOR2772
LNT 200000 WAS FILE IN WRITE STATUS FCOR2773
TRA RTNRED NO, CLOSE OUT READ FILE FCOR2774
RIL 700000 YES, RESET READ/WRITE FLAGS FCOR2775
STI RWSTAT,2 .. FCOR2776
TSX GTDYTM,4 PICK UP CURRENT DATE AND TIME FCOR2777
STP DATELU,2 SET DATE FILE LAST USED FCOR2778
STD DATELU,2 .. FCOR2779
SLW DAYTIM,2 SET NEW DATE/TIME FILE WAS LAST MODIFIED FCOR2780
LDI RMODE,2 PICK UP EFFECTIVE FILE MODE FCOR2781
LFT 200000 IS FILE IN PROTECTED MODE FCOR2782
TRA RTNFB YES, SKIP, DO NOT CHANGE 'AUTHOR' FCOR2783
CAL AUTHNO,1 NO, GET AUTHOR MODIFYING THIS FILE FCOR2784
TZE RTNFB SKIP IF NO AUTHOR SPECIFIED FCOR2785
STA AUTHOR,2 OTHERWISE SET NEW 'AUTHOR' OF FILE FCOR2786
STT AUTHOR,2 .. FCOR2787
RTNFB TSX UNLOCK,4 TELL SUPERVISOR FILE NOW AVAILABLE FCOR2788
TRA UPDUFD SKIP TO UPDATE USER'S FILE DIRECTORY FCOR2789
REM FCOR2790
RTNRED LFT 400000 HERE FOR READ FILE, HAS FILE BEEN SAVED FCOR2791
TRA RTNF1 YES, IGNORE TEMPORARY MODE FCOR2792
LDI MODE,2 NO, PICK UP FILE MODE FCOR2793
LNT 002000 IS FILE IN TEMPORARY MODE FCOR2794
TRA RTNF1 NO, SKIP FCOR2795
TSX DFILE,4 YES, TRY TO DELETE THIS FILE FCOR2796
RTNDEL REMOVE UFD,(FNAME1,2),RTNMER REMOVE THIS FILE FROM UFD FCOR2797
TSX UNLOCK,4 FREE UP THIS FILE NAME FCOR2798
TRA UPDDIR SKIP TO UPDATE DIRECTORIES FCOR2799
REM FCOR2800
RTNF1 TSX SEARCH,4 FIND FILE ENTRY (NON-STANDARD USAGE) FCOR2801
EFA FPROBN,2 .. DIRECTORY FCOR2802
EFA FNAME1,2 .. FILE NAME FCOR2803
EFA FILTMP+FPROBN .. READ LOCATION FCOR2804
PAR RTNMER,,UFDERR .. ERROR RETURNS FCOR2805
AXC FILTMP,7 FOR FUTURE REFERENCE FCOR2806
LDI RWSTAT,7 PICK UP FILE STATUS FCOR2807
LNT 077777 TEST FOR NORECS = -1 FCOR2808
TRA RTNF2 NO, ASSUME INFO. CORRECT FCOR2809
CAL =O77777077777 PREPARE TO RESET INDICATORS FCOR2810
RIA CLEAR NORECS, LCOUNT FCOR2811
ANA NORECS,2 USE NORECS, LCOUNT FROM AFENTY FCOR2812
OAI AND REPLACE IN PROPER BITS FCOR2813
RTNF2 RIL 600000 RESET ALL BUT READ STATUS FCOR2814
CAL ILOCK,2 GET ILOCK BEING RETURNED FCOR2815
ANA =O776000777777 LEAVE MODE, F, RCOUNT FCOR2816
SLW ILOCK,2 RESTORE FCOR2817
CAL ILOCK,7 REDUCE NO. OF USERS READING THIS FILE FCOR2818
ANA =O777000000 ISOLATE ILOCK FIELD FCOR2819
TZE RTNF3 IT'S ALREADY ZERO, MAYBE (ULP) FCOR2820
SUB =1B17 .. FCOR2821
ORS ILOCK,2 .. FCOR2822
TNZ *+2 SKIP IF USERS STILL READING THIS FILE FCOR2823
RTNF3 RIL 100000 OTHERWISE RESET FILE READ STATUS FCOR2824
STI RWSTAT,2 RESET READ/WRITE STATUS FCOR2825
LNT 100000 IS FILE NOW AVAILABLE FCOR2826
TSX UNLOCK,4 IF SO TELL SUPERVISOR ABOUT IT FCOR2827
TSX GTDYTM,4 PICK UP DATE/TIME FCOR2828
XCL .. SET NEW DATE LAST USED FCOR2829
SLQ DATELU,2 .. FOR THIS FILE FCOR2830
REM FCOR2831
UPDUFD TSX REFMFD,4 CHECK TO SEE WHETHER CLOSING READER'S UFD FCOR2832
EFA FPROBN,2 .. FCOR2833
ZET FS.TST WATCH OUT FOR MACRO BELOW FCOR2834
UPDFIL UFD,(FNAME1,2),RTNMER UPDATE THIS USER FILE ENTRY FCOR2835
REM FCOR2836
UPDDIR CAL FPROBN,2 IS THIS FILE FROM CURRENT USER'S UFD FCOR2837
ERA PROBNO,1 .. FCOR2838
TNZ RWTUFD NO, GO REWRITE THIS FILE DIRECTORY FCOR2839
CAL FPROGN,2 .. FCOR2840
ERA PROGNO,1 .. FCOR2841
TZE RTNFND YES, SKIP FCOR2842
RWTUFD REWRIT (FPROBN,2),RTNMER NO, REWRITE THIS UFD FCOR2843
REM FCOR2844
RTNFND RELEAS (RPROBN,2) RELEASE THIS FILE FROM ACTIVE STATUS FCOR2845
LXA RTNFX4,4 AND RETURN FCOR2846
TRA 1,4 .. FCOR2847
REM FCOR2848
RTNMER RELEAS (RPROBN,2) HERE FOR ERROR IN UPDFIL, REMOVE OR REWRIT FCOR2849
LXA RTNFX4,4 TAKE ERROR RETURN FCOR2850
TRA* 1,4 .. FCOR2851
REM FCOR2852
EJECT FCOR2853
REM FCOR2854
REM LOCK ..... INTERRUPT SUPERVISOR ON FILE INTERLOCK FCOR2855
REM FCOR2856
LOCK TSX IRSAV,7 SAVE IRS 1-4 FCOR2857
CAL FPROBN,2 COMPUTE CHECKSUM OF FILE NAMES FCOR2858
ACL FPROGN,2 .. FCOR2859
ACL FNAME1,2 .. FCOR2860
ACL FNAME2,2 .. FCOR2861
SLW NAMSUM .. FCOR2862
TSX RESTOR,4 RESTORE USER'S MACHINE CONDITIONS FCOR2863
SSTRAP 4,IR4,ILC,NAMSUM,1 INTERRUPT SUPERVISOR (CODE 4) FCOR2864
ENB* ENABLE REENABLE AFTER SIMULATED TRAP FCOR2865
TSX IRRST,7 RESTORE IRS 1-4 FCOR2866
TRA 1,4 AND RETURN FCOR2867
REM FCOR2868
REM UNLOCK ..... INTERRUPT SUPERVISOR WHEN FILE AVAILABLE FCOR2869
REM FCOR2870
UNLOCK TSX IRSAV,7 SAVE IRS 1-4 FCOR2871
LDI ILOCK,2 RESET INTERLOCK FLAGS FCOR2872
RIL 001777 .. FCOR2873
STI ILOCK,2 .. FCOR2874
CAL FPROBN,2 COMPUTE CHECKSUM OF FILE NAMES FCOR2875
ACL FPROGN,2 .. FCOR2876
ACL FNAME1,2 .. FCOR2877
ACL FNAME2,2 .. FCOR2878
SLW NAMSUM .. FCOR2879
TSX RESTOR,4 RESTORE USER'S MACHINE CONDITIONS FCOR2880
SSTRAP 5,IR4,ILC,NAMSUM,1 INTERRUPT SUPERVISOR (CODE 5) FCOR2881
ENB* ENABLE REENABLE AFTER SIMULATED TRAP FCOR2882
TSX IRRST,7 RESTORE IRS 1-4 FCOR2883
TRA 1,4 AND RETURN FCOR2884
REM FCOR2885
EJECT FCOR2886
REM FCOR2887
REM UPDSYS ..... UPDATE ALL SYSTEM INFORMATION TO PERMANENT FCOR2888
REM ..... SECONDARY STORAGE. FCOR2889
REM FCOR2890
UPDSYS SXA UPDX34,3 FCOR2891
SXD UPDX34,4 FCOR2892
AXC 1,3 FCOR2893
UPDS1 XEC UPDMOD,3 UPDATE ALL NECESSARY MODULES FCOR2894
TXL *+2,3,-NUPDAT .. FCOR2895
TXI UPDS1,3,-1 .. FCOR2896
LXA UPDX34,3 RELOAD IR3 NOW FCOR2897
NZT PROBNO,1 IS USER ATTACH TO A U.F.D. FCOR2898
TRA UPDS2 NO, SKIP FCOR2899
REWRIT UFD,UPDSER YES, UPDATE USER FILE DIRECTORY FCOR2900
UPDS2 REWRIT MFD,UPDSER ALWAYS UPDATE MASTER FILE DIRECTORY FCOR2901
LXD UPDX34,4 RETURN TO CALLER FCOR2902
TRA 2,4 .. FCOR2903
REM FCOR2904
UPDSER LXD UPDX34,4 HERE IF ERROR REWRITING UFD OR MFD FCOR2905
TRA* 1,4 .. TAKE ERROR RETURN FCOR2906
REM FCOR2907
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2908
REM FCOR2909
REM DFILE ...... TRY TO DELETE FILE THROUGH STRATEGY MODULE FCOR2910
REM FCOR2911
DFILE SXA DFILX4,4 FCOR2912
CAL NORECS,2 PICK UP NO. OF RECORDS IN FILE FCOR2913
STD DELREC .. SET TO DELETE RECORDS 1-NORECS FCOR2914
LXTC (F,2),5 -DEVICE NO. TO IR5 FCOR2915
XEC DFILEF,5 TRY TO DELETE THIS FILE FCOR2916
EFA 0,2 .. FCOR2917
PAR DELREC,,QWAIT .. FCOR2918
LXA DFILX4,4 RETURN ON SUCESSFUL DELETE FCOR2919
TRA 1,4 .. FCOR2920
EJECT FCOR2921
REM REFMFD ..... CHECK AGAINST ATTEMPTS TO MODIFY M.F.D. FCOR2922
REM FCOR2923
REFMFD SXA REFTMP,4 SAVE X4 FCOR2924
CAL 1,4 GET POINTER FCOR2925
TSX GETEFA,4 .. FCOR2926
LXA REFTMP,4 RELOAD FCOR2927
PAC ,7 TO TEMPORARY INDEX REGISTER FCOR2928
CAL 0,7 NAME1 FCOR2929
ERA MFD VS. 'M.F.D.' FCOR2930
TNZ 3,4 TKO FCOR2931
CAL 1,7 ROUND 2 FCOR2932
ERA MFD+1 VS. '(FILE)' FCOR2933
TNZ 3,4 DECISION FCOR2934
TRA 2,4 RETURN MATCH FCOR2935
EJECT FCOR2936
REM FCOR2937
REM ADDREC/SUBREC ...... COMPUTE AND CHECK RECORD QUOTAS FCOR2938
REM FCOR2939
ADDREC AXC ADDOP,5 ADD TO RECORDS USED, CHECK QUOTA FCOR2940
TRA UPDRC1 .. FCOR2941
REM FCOR2942
SUBREC AXC SUBOP,5 SUBTRACT FROM RECORDS USED, CHECK QUOTA FCOR2943
REM FCOR2944
UPDRC1 ANA =O77777077777 INSURE PREFIX AND TAG ARE RESET FCOR2945
PAI QUOTA,,USED TO SI FCOR2946
RNT 77777 IS USER ALLOTTED 32767 ON THIS DEVICE FCOR2947
TRA UPDRC2 NO, SKIP FCOR2948
RIL 77777 YES, INSURE 'USED' IS ZERO FCOR2949
TRA RECQOK AND GIVE NORMAL RETURN FCOR2950
REM FCOR2951
UPDRC2 LGR 18 SAVE QUOTA IN MQ FCOR2952
XEC 0,5 ADD TO OR SUBTRACT FROM 'USED' FCOR2953
TPL *+2 SKIP IF POSITIVE FCOR2954
ZAC OTHERWISE REPLACE NEGATIVE NO. WITH ZERO FCOR2955
ANA =O77777 TAKE RECORDS USED MODULO 2.P.15 FCOR2956
SLW RECTMP SAVE NEW NO. OF RECORDS USED FCOR2957
LGL 18 RESTORE QUOTA,,USED TO AC FCOR2958
PAI SAVE IN SI FCOR2959
ANA =O77777 GET QUOTA ALONE FCOR2960
SUB RECTMP CHECK USED AGAINST QUOTA FCOR2961
TMI RECQNG SKIP IF USED .G. QUOTA FCOR2962
RECQOK PIA RESTORE QUOTA,,USED FROM SI FCOR2963
TRA 3,4 AND TAKE NORMAL RETURN FCOR2964
REM FCOR2965
RECQNG PIA RESTORE QUOTA,,USED FROM SI FCOR2966
TRA* 2,4 AND TAKE ERROR EXIT FCOR2967
REM FCOR2968
ADDOP ADD* 1,4 ADD TO RECORDS USED (ADDREC) FCOR2969
SUBOP SUB* 1,4 SUBTRACT FROM RECORDS USED (SUBREC) FCOR2970
REM FCOR2971
EJECT FCOR2972
REM FCOR2973
REM USTORE ... STORE A WORD IN USER ARRAY, REDUCE ARRAY COUNTFCOR2974
REM FCOR2975
USTORE SLW USTEMP SAVE WORD TO BE MOVED FCOR2976
CAL* 1,4 PICK UP USER ARRAY LENGTH FCOR2977
PDX 0,5 .. TO IR5 FCOR2978
TXH USTO1,5,0 SKIP IF ONE OR MORE WORDS LEFT FCOR2979
CAL 1,4 OTHERWISE TAKE EMPTY EXIT FCOR2980
PDC 0,5 .. FCOR2981
TRA 0,5 .. FCOR2982
REM FCOR2983
USTO1 TXI *+1,5,-1 REDUCE ARRAY COUNT BY ONE FCOR2984
PXD 0,5 .. FCOR2985
STD* 1,4 .. FCOR2986
SXA USTX34,3 FCOR2987
SXD USTX34,4 FCOR2988
CAL* 1,4 GET CURRENT BASE OF USER ARRAY FCOR2989
PAC 0,3 -ADDRESS TO IR3 FCOR2990
ADD =1 BUMP ARRAY BASE ADDRESS FCOR2991
STA* 1,4 .. FCOR2992
MOVE1 HOME,USTEMP,CALL,(0,3),*+1 MOVE WORD TO USER MEMORY FCOR2993
LXD USTX34,4 AND RETURN FCOR2994
LXA USTX34,3 .. FCOR2995
TRA 2,4 .. FCOR2996
REM FCOR2997
* * * * * * * * * * * * * * * * * * * * * * * * FCOR2998
REM FCOR2999
REM MVHOME ..... MOVE USER ARRAY TO HBUF IN HOME MEMORY .....FCOR3000
REM FCOR3001
MVHOME SXA MVHX12,1 FCOR3002
SXD MVHX12,2 FCOR3003
SXA MVHIR4,4 FCOR3004
CAL* 1,4 GET ARRAY POINTER BASE,,COUNT FCOR3005
PAC 0,1 -BASE ADDRESS OF ARRAY TO IR1 FCOR3006
PDC 0,2 -COUNT TO IR2 FCOR3007
TXH MVHOM1,2,-HBUFL-1 SKIP IF ARRAY WILL FIT IN BUFFER FCOR3008
AXC HBUFL,2 OTHERWISE SET ARRAY SIZE TO HBUFL FCOR3009
PCD 0,2 RESET POINTER WORD FCOR3010
STD* 1,4 .. FCOR3011
MVHOM1 CAL MVHADR SET NEW BASE OF ARRAY TO 'HBUF' FCOR3012
STA* 1,4 .. FCOR3013
TSX MOVE,4 MOVE ARRAY TO HBUF IN HOME MEMORY FCOR3014
PAR CALL,,HOME .. FCOR3015
EFA 0,1 .. FCOR3016
MVHADR EFA HBUF .. FCOR3017
EFA 0,2 .. ARRAY LENGTH FCOR3018
PAR *+1 .. IGNORE ERROR RETURN FCOR3019
LXA MVHX12,1 RETURN TO CALLER FCOR3020
LXD MVHX12,2 .. FCOR3021
LXA MVHIR4,4 .. FCOR3022
TRA 2,4 .. FCOR3023
REM FCOR3024
EJECT FCOR3025
REM FCOR3026
REM MOVE ..... MOVE ARRAY OR WORD BETWEEN MEMORIES ..........FCOR3027
REM FCOR3028
MOVE SXA MOVX34,3 FCOR3029
SXD MOVX34,4 FCOR3030
CAL* 1,4 GET POINTER TO 'FROM' MEMORY FCOR3031
SLW FRMEM .. FCOR3032
CAL 1,4 GET POINTER TO 'TO' MEMORY FCOR3033
PDC 0,5 .. FCOR3034
CAL 0,5 .. FCOR3035
SLW TOMEM .. FCOR3036
CAL 2,4 GET 'FROM' ADDRESS FCOR3037
TSX GETEFA,4 GET EFFECTIVE ADDRESS FCOR3038
SLW FRWORD .. FCOR3039
LXD MOVX34,4 FCOR3040
CAL 3,4 GET 'TO' ADDRESS FCOR3041
TSX GETEFA,4 GET AFFECTIVE ADDRESS FCOR3042
SLW TOWORD .. FCOR3043
LXD MOVX34,4 FCOR3044
CAL 4,4 GET WORD COUNT FCOR3045
TSX GETEFA,4 COMPUTE EFFECTIVE WORD COUNT FCOR3046
ALS 18 .. INTO DECREMENT FCOR3047
STD FRWORD SET UP ARRAY LIMITS FCOR3048
STD TOWORD .. FCOR3049
CAL FRWORD FCOR3050
TSX RCHECK,4 RELOCATE AND CHECK 'FROM' ARRAY FCOR3051
PAR MVERTN,,FRMEM .. FCOR3052
SLW FRWORD .. FCOR3053
CAL TOWORD FCOR3054
TSX RCHECK,4 RELOCATE AND CHECK 'TO' ARRAY FCOR3055
PAR MVERTN,,TOMEM .. FCOR3056
SLW TOWORD .. FCOR3057
CAL =O3 MASK OUT PROTECT BIT FCOR3058
ANS FRMEM .. FCOR3059
ANS TOMEM .. FCOR3060
LAC FRWORD,5 -BASE OF 'FROM' ARRAY FCOR3061
LAC TOWORD,6 -BASE OF 'TO' ARRAY FCOR3062
LXD FRWORD,7 ARRAY COUNT FCOR3063
TXI *+1,7,1 BUMP ARRAY LENGTH BY ONE FCOR3064
LAC FRMEM,3 FLAG FOR 'FROM' MEMORY FCOR3065
LAC TOMEM,4 FLAG FOR 'TO' MEMORY FCOR3066
CAL FRMEM CHECK IF 'FROM' AND 'TO' FCOR3067
ERA TOMEM .. ARE THE SAME MEMORY UNIT FCOR3068
TNZ MOVE2 .. SKIP IF DIFFERENT MEMORIES FCOR3069
REM FCOR3070
XEC SETMEM,3 HERE IF BOTH MEMORIES THE SAME FCOR3071
MOVE1 TNX MOVE3,7,3 MOVE WORDS (THREE AT A TIME) FCOR3072
CAL 0,5 .. FCOR3073
LDQ 1,5 .. FCOR3074
LDI 2,5 .. FCOR3075
SLW 0,6 .. FCOR3076
STQ 1,6 .. FCOR3077
STI 2,6 .. FCOR3078
TXI *+1,5,-3 .. FCOR3079
TXI MOVE1,6,-3 .. FCOR3080
REM FCOR3081
MOVE2 TNX MOVE3,7,3 HERE IN MEMORIES DIFFERENT, FCOR3082
XEC SETMEM,3 .. MOVE WORDS (THREE AT A TIME) FCOR3083
CAL 0,5 .. FCOR3084
LDQ 1,5 .. FCOR3085
LDI 2,5 .. FCOR3086
XEC SETMEM,4 .. SELECT 'TO' MEMORY FCOR3087
SLW 0,6 .. FCOR3088
STQ 1,6 .. FCOR3089
STI 2,6 .. FCOR3090
TXI *+1,5,-3 .. FCOR3091
TXI MOVE2,6,-3 .. FCOR3092
REM FCOR3093
MOVE3 TNX MOVE4,7,1 HERE TO MOVE LAST WORDS (ONE AT A TIME) FCOR3094
XEC SETMEM,3 .. FCOR3095
CAL 0,5 .. FCOR3096
XEC SETMEM,4 .. FCOR3097
SLW 0,6 .. FCOR3098
TXI *+1,5,-1 .. FCOR3099
TXI MOVE3,6,-1 .. FCOR3100
REM FCOR3101
MOVE4 HOMOP HERE AT END, INSURE ECC RESET TO 'HOME' FCOR3102
LXA MOVX34,3 AND RETURN FCOR3103
LXD MOVX34,4 .. FCOR3104
TRA 6,4 .. FCOR3105
REM FCOR3106
MVERTN HOMOP HERE FOR ERROR, INSURE ECC RESET TO 'HOME' FCOR3107
LXA MOVX34,3 .. TAKE ERROR RETURN FCOR3108
LXD MOVX34,4 .. FCOR3109
TRA* 5,4 .. FCOR3110
REM FCOR3111
SETMEM TRA MVERTN MEMORY SELECT TABLE FOR MOVE ROUTINE FCOR3112
SEA .. FCOR3113
SEB .. FCOR3114
TRA MVERTN .. ERROR IF MEMORY .E. 0 OR 3 FCOR3115
REM FCOR3116
EJECT FCOR3117
REM FCOR3118
REM RCHECK ..... RELOCATE AND CHECK ADDRESS/ES ............ FCOR3119
REM FCOR3120
RCHECK ANA =O77777077777 INSURE PREFIX AND TAG ZERO FCOR3121
SLW RCKTMP SAVE ADDRESS WORD FCOR3122
CAL 1,4 PAR ERRTN,,MEMFLG FCOR3123
PDC 0,5 -LOCATION OF MEMORY FLAG FCOR3124
LDI 0,5 PICK UP MEMORY FLAG FCOR3125
RNT 4 IS THIS MEMORY PROTECTED FCOR3126
TRA RCHK2 NO, SKIP FCOR3127
LAC UTABLE,5 YES, GET -BASE OF USER A.F.S.T. FCOR3128
CAL RCKTMP RELOCATE USER ADDRESS FCOR3129
ACL RELOC,5 .. FCOR3130
STA RCKTMP .. FCOR3131
ARS 18 GET ARRAY COUNT IF ANY FCOR3132
TZE RCHK1 SKIP IF COUNT ZERO FCOR3133
ACL RCKTMP OTHERWIZE COMPUTE HIGH ADDRESS FCOR3134
SUB =1 .. OF USER ARRAY FCOR3135
PAI HIGH ADDRESS TO SI FCOR3136
RFT 700000 DID ADDRESS EXCEED ADDRESSABLE MEMORY FCOR3137
TRA RCHKER YES, ERROR FCOR3138
TSX CHKADR,6 NO, CHECK HIGH ADDRESS FCOR3139
RCHK1 CAL RCKTMP PICK UP LOW ADDRESS FCOR3140
TSX CHKADR,6 CHECK IT FCOR3141
RCHK2 CAL RCKTMP RETURN RELOCATED ADDRESS IN AC FCOR3142
TRA 2,4 .. FCOR3143
REM FCOR3144
CHKADR ANA =O77777 ROUTINE TO CHECK USER ADDRESS FCOR3145
XCL ADDRESS TO MQ FCOR3146
CAL LIMITS,5 USER MEMORY LIMITS LOW,,HIGH FCOR3147
ANA =O77777 GET LOWER BOUND FCOR3148
TLQ RCHKER ERROR IF ADDRESS .L. LOWER BOUND FCOR3149
CAL LIMITS,5 LOW,,HIGH FCOR3150
ARS 18 GET UPPER BOUND FCOR3151
ANA =O77777 .. FCOR3152
XCL UPPER BOUND TO MQ, ADDRESS TO AC FCOR3153
TLQ RCHKER ERROR IF UPPER BOUND .L. ADDRESS FCOR3154
TRA 1,6 RETURN TO RCHECK FCOR3155
REM FCOR3156
RCHKER CAL RCKTMP HERE FOR ERROR, RETURN ARRAY ADDRESS IN AC FCOR3157
TRA* 1,4 RETURN FCOR3158
REM FCOR3159
* * * * * * * * * * * * * * * * * * * * * * * * FCOR3160
REM FCOR3161
REM GETEFA ..... COMPUTE EFFECTIVE ADDRESS OF WORD IN AC ....FCOR3162
REM FCOR3163
GETEFA STT SCATMP PLACE TAG IN SCA GTATMP,** FCOR3164
XEC SCATMP SCA GTATMP,TAG FCOR3165
ACL GTATMP ADD COMPLEMENT OF IR TO ADDRESS FCOR3166
ANA =O77777 EFFECTIVE ADDRESS MODULO 2.P.15 FCOR3167
TRA 1,4 RETURN EFFECTIVE ADDRESS IN AC FCOR3168
REM FCOR3169
EJECT FCOR3170
REM FCOR3171
REM RECADR ..... COMPUTE LINEAR FILE ADDRESS ................FCOR3172
REM FCOR3173
RECADR STA TLCNT SAVE WORD COUNT OF LAST RECORD FCOR3174
ARS 18 NO. OF RECORDS TO ADDRESS FCOR3175
ANA =O77777 .. MODULO 2.P.15 FCOR3176
TZE 1,4 LENGTH IS ZERO IF RECORD COUNT ZERO FCOR3177
SUB =1 REDUCE RECORD COUNT BY ONE FCOR3178
SLW TNREC .. AND SAVE IT FCOR3179
CAL RCOUNT,2 PICK UP NUMBER OF WORDS PER RECORD FCOR3180
ANA =O77777 .. FROM A.F.S.T. MODULO 2.P.15 FCOR3181
XCL RECORD LENGTH TO MQ FCOR3182
MPY TNREC RCOUNT*(NORECS-1) FCOR3183
XCL RESULT TO AC FCOR3184
ADD TLCNT RCOUNT*(NORECS-1)+LCOUNT FCOR3185
TRA 1,4 RETURN LINEAR ADDRESS IN AC FCOR3186
REM FCOR3187
* * * * * * * * * * * * * * * * * * * * * * * * FCOR3188
REM FCOR3189
REM SORT ..... SORT ARRAY IN ASCENDING ORDER ........ FCOR3190
REM FCOR3191
SORT CAL 1,7 ARRAY POINTER, PAR ARRAY,,COUNT FCOR3192
PAC 0,5 -BASE OF ARRAY TO IR5 FCOR3193
PDX 0,6 COUNT TO IR6 FCOR3194
STZ SORTSW RESET SORT SWITCH FCOR3195
SORT1 TNX SORT4,6,1 SORT ARRAY, TREAT ZEROS AS LARGEST NUMBER FCOR3196
CAL 1,5 .. FCOR3197
TZE SORT3 .. FCOR3198
NZT 0,5 .. FCOR3199
TRA SORT2 .. TREAT ZERO AS LARGEST POSSIBLE NUMBER FCOR3200
LAS 0,5 .. FCOR3201
TRA SORT3 .. SKIP IF IN ASCENDING ORDER ALREADY FCOR3202
TRA SORT3 .. OR EQUAL FCOR3203
SORT2 LDQ 0,5 .. HERE IF NOT IN ASCENDING ORDER FCOR3204
SLW 0,5 .. SWITCH WORDS FCOR3205
STQ 1,5 .. FCOR3206
STL SORTSW .. INDICATE CHANGE ON THIS PASS FCOR3207
SORT3 TXI SORT1,5,-1 .. FCOR3208
REM FCOR3209
SORT4 ZET SORTSW HERE AT END OF PASS, WAS ANYTHING MOVED FCOR3210
TRA SORT YES, SORT AGAIN FCOR3211
TRA 2,7 NO, RETURN FCOR3212
REM FCOR3213
EJECT FCOR3214
REM FCOR3215
REM IRSAV/IRRST ..... SAVE AND RESTORE IRS 1-3 FOR FILE SYS. FCOR3216
REM FCOR3217
IRSAV SXA IRSX12,1 SAVE IRS 1-4 FCOR3218
SXD IRSX12,2 .. FCOR3219
SXA IRSX34,3 .. FCOR3220
SXD IRSX34,4 .. FCOR3221
TRA 1,7 RETURN FCOR3222
REM FCOR3223
IRRST LXA IRSX12,1 RESTORE IRS 1-4 FCOR3224
LXD IRSX12,2 .. FCOR3225
LXA IRSX34,3 .. FCOR3226
LXD IRSX34,4 .. FCOR3227
TRA 1,7 RETURN FCOR3228
EJECT FCOR3229
REM FCOR3230
REM ..... FILE COORDINATOR VARIABLE STORAGE .................FCOR3231
REM FCOR3232
VARSTO SYN * BEGINNING OF VARIABLE STORAGE FCOR3233
REM FCOR3234
FS.TST PZE ** ENTRY SWITCH FOR DAEMON SNEAK-AROUND FCOR3235
REM FCOR3236
REM ..... TABLES AND STORAGE COMMON TO ALL I/O SYSTEM MODULESFCOR3237
REM FCOR3238
UTABLE PZE **,,** POINTERS TO CURRENT USER STATUS TABLE FCOR3239
REM FCOR3240
USRTBL PZE ZEROQ,,ZEROQL POINTERS TO USER STATUS TABLES FCOR3241
DUP 1,DUSERS .. FCOR3242
PZE **,,** .. FCOR3243
REM FCOR3244
PRIORT DUP 1,DUSERS SORTED USER PRIORITY TABLE FCOR3245
PZE **,,** .. FCOR3246
REM FCOR3247
PZE 0 ZERO FOR END OF USER PRIORITY TABLE FCOR3248
REM FCOR3249
SLOTNO PZE 1 SLOT CURRENTLY BEING SERVICED BY I/O SYSTEMFCOR3250
REM FCOR3251
REM ..... INTERNAL VARIABLE STORAGE .........................FCOR3252
REM FCOR3253
SSCALL PZE ** ADDRESS OF SUPERVISOR INTERRUPT PROCEDURE FCOR3254
REM FCOR3255
ERRLOC PZE FRSTER ADDRESS OF SUPERVISOR ERROR PROCEDURE FCOR3256
DATLOC PZE ** LOCATION OF TODAY'S DATE IN SUPERVISOR FCOR3257
TIMLOC PZE ** LOCATION OF TIME IN SUPERVISOR FCOR3258
ENABLE PZE =0 LOCATION OF ENABLE WORD IN SUPERVISOR FCOR3259
REM FCOR3260
IOCALL PZE 0 CURRENT I/O ENTRY IN USE FCOR3261
REM FCOR3262
FILNAM OCT 0,0 CURRENT FILE NAME SAVED HERE FCOR3263
ANYFIL OCT -0,0 CODE TO RETURN ANY ACTIVE FILE STATUS FCOR3264
REM FCOR3265
P0 PZE 0 PARAMETER LIST TABLE FCOR3266
P1 PZE 0 .. FCOR3267
P2 PZE 0 .. FCOR3268
P3 PZE 0 .. FCOR3269
P4 PZE 0 .. FCOR3270
P5 PZE 0 .. FCOR3271
P6 PZE 0 .. FCOR3272
P7 PZE 0 .. FCOR3273
P8 PZE 0 .. FCOR3274
P9 PZE 0 .. FCOR3275
P10 PZE 0 .. FCOR3276
REM FCOR3277
ERWORD PZE 0 ADDRESS TO RETURN ERROR CODE IF ANY FCOR3278
REM FCOR3279
STATUS PZE 0 TEMP FOR OPEN FCOR3280
TEMP PZE 0 GENERAL TEMP FOR FILE COORDINATOR ENTRIES FCOR3281
SAVEQU PZE 0 TEMP FOR WRFILE, TRFILE FCOR3282
WAITSW PZE 0 SWITCH FOR RDFILE,WRFILE,RDWAIT,WRWAIT FCOR3283
FCLIR4 PZE 0 TEMP FOR CLOSE FCOR3284
NEWMOD PZE 0 TEMP FOR CHFILE FCOR3285
NAMESW PZE 0 TEMP FOR CHFILE FCOR3286
COUNT PZE 0 TEMP FOR USAVE FCOR3287
REM FCOR3288
CALL PZE ** MEMORY FLAG FOR USER PROGRAM FCOR3289
MEM PZE ** MEMORY FLAG FOR USER I/O MEMORY FCOR3290
BUF PZE ** MEMORY FLAG FOR USER I/O BUFFERS FCOR3291
REM FCOR3292
GTCALL PZE ** MEMORY FLAG TO PICK UP CALLING SEQUENCE FCOR3293
GTMEM PZE ** MEMORY FLAG FOR CHECKING MEMORY ADDRESSES FCOR3294
GTBUF PZE ** MEMORY FLAG FOR CHECKING BUFFER ADDRESSES FCOR3295
REM FCOR3296
ILC PZE 0 ILC OF USER CALL TO I/O SYSTEM FCOR3297
RTNILC PZE 0 USER RETURN ILC FCOR3298
ERRTRN PZE 0 ERROR RETURN ILC FCOR3299
IR4 PZE ** USER'S IR4 SAVED HERE FCOR3300
REM FCOR3301
SVIR12 PZE **,,** USER MACHINE CONDITIONS FCOR3302
SVIR35 PZE **,,** .. FCOR3303
SVIR67 PZE **,,** .. FCOR3304
SVSI BSS 1 .. FCOR3305
REM FCOR3306
TMPIR1 PZE ** TEMPS FOR SAVE/SSAVE FCOR3307
TMPIR4 PZE **,,** .. FCOR3308
NOPAR PZE ** .. FCOR3309
PARMEM PZE 0 .. FCOR3310
TMEM PZE 0 .. FCOR3311
REM FCOR3312
SEOF34 PZE **,,** TEMP FOR SETEOF FCOR3313
REM FCOR3314
GETMX4 PZE ** TEMPS FOR GTDYTM FCOR3315
DATTMP PZE 0 .. FCOR3316
DATE PZE 0 .. FCOR3317
REM FCOR3318
CKLX34 PZE **,,** TEMPS FOR CKLINK FCOR3319
REM FCOR3320
CHKTMP BSS LNAME2-FPROBN+1 TEMP FOR CHKUFD FCOR3321
REM FCOR3322
STAFLX PZE 0 TEMPS FOR STAFIL FCOR3323
STATMP PZE 0 .. FCOR3324
REM FCOR3325
GTSIR4 PZE ** TEMP FOR GTSTAT FCOR3326
REM FCOR3327
CKACTP PZE ** TEMP FOR CHKACT FCOR3328
REM FCOR3329
RELIR4 PZE ** TEMP FOR RELEAS FCOR3330
REM FCOR3331
RTNFX4 PZE ** TEMP FOR RTNFIL FCOR3332
REM FCOR3333
NAMSUM PZE 0 TEMP FOR LOCK/UNLOCK FCOR3334
REM FCOR3335
UPDX34 PZE **,,** TEMP FOR UPDSYS FCOR3336
REM FCOR3337
DFILX4 PZE ** TEMPS FOR DFILE FCOR3338
DELREC PZE 1,,** .. FCOR3339
REM FCOR3340
RECTMP PZE 0 TEMP FOR ADDREC/SUBREC FCOR3341
REM FCOR3342
USTEMP PZE 0 TEMPS FOR USTORE FCOR3343
USTX34 PZE **,,** .. FCOR3344
REM FCOR3345
REFTMP PZE ** X4 FOR REFMFD FCOR3346
REM FCOR3347
MVHX12 PZE **,,** TEMPS FOR MVHOME FCOR3348
MVHIR4 PZE ** .. FCOR3349
REM FCOR3350
MOVX34 PZE **,,** TEMPS FOR MOVE FCOR3351
FRMEM PZE 0 .. FCOR3352
TOMEM PZE 0 .. FCOR3353
FRWORD PZE 0 .. FCOR3354
TOWORD PZE 0 .. FCOR3355
REM FCOR3356
RCKTMP PZE 0 TEMP FOR RCHECK FCOR3357
REM FCOR3358
SCATMP SCA GTATMP,** VARIABLE INTSTUCTION AND TEMP FOR GETEFA FCOR3359
GTATMP PZE ** .. FCOR3360
REM FCOR3361
TLCNT PZE 0 TEMPS FOR ADDREC FCOR3362
TNREC PZE 0 .. FCOR3363
REM FCOR3364
SORTSW PZE 0 TEMP FOR SORT FCOR3365
REM FCOR3366
IRSX12 PZE **,,** TEMPS FOR IRSAV/IRRST FCOR3367
IRSX34 PZE **,,** .. FCOR3368
REM FCOR3369
TNUM PZE 0 TEMP FOR 'BCBN2' FCOR3370
REM FCOR3371
FILTMP BSS ACTLNG TEMPORARY BUFFER FOR ACTIVE FILE ENTRY FCOR3372
REM FCOR3373
ZEROQ BSS QUEUE1-PROBNO QUEUE FOR SLOT NUMBER ZERO FCOR3374
PZE ZEROQ1,,1QL .. FCOR3375
PZE ZEROQ2,,2QL .. FCOR3376
BSS AFENTY-QUEUE3 .. FCOR3377
DUP 1,SFILES .. NO. OF ACTIVE FILES NEEDED BY SEARCH FCOR3378
BSS ACTLNG .. FCOR3379
ZEROQL SYN *-ZEROQ .. FCOR3380
REM FCOR3381
ZEROQ1 BSS 1QL STORAGE FOR QUEUE1 SLOT NO. 0 FCOR3382
ZEROQ2 BSS 2QL STORAGE FOR QUEUE2 SLOT NO. 0 FCOR3383
REM FCOR3384
HBUFL EQU 20 UTILITY BUFFER FOR I/O SYSTEM FCOR3385
HBUF BSS HBUFL .. FCOR3386
REM FCOR3387
* * * * * * * * * * * * * * * * * * * * * * * * FCOR3388
REM FCOR3389
REM ..... CONSTANTS FOR FILE COORDINATOR ....................FCOR3390
REM FCOR3391
MFD BCI 2,M.F.D.(FILE) NAME OF MASTER FILE DIRECTORY FCOR3392
UTFNAM BCI 1,(FILE) SECOND NAME OF USAGE TABLES FCOR3393
DRMNAM BCI 1,DRUMUT DRUM USAGE TABLE, FIRST NAME FCOR3394
DSKNAM BCI 1,DISKUT DISK USAGE TABLE, .. FCOR3395
REM FCOR3396
EXTEND PZE RGRACE NO. OF RECORDS USER MAY EXCEED HIS QUOTA FCOR3397
REM FCOR3398
HOME PZE IOSMEM FLAG FOR MEMORY IN WHICH I/O SYSTEM RESIDESFCOR3399
REM FCOR3400
NULPAR OCT -0 FLAG FOR MISSING PARAMETER FCOR3401
REM FCOR3402
TGPMAX PZE 0,PMAX PMAX IN TAG FCOR3403
M.IL.F PZE 0,2,0 STANDARD MODE AND DEVICE FOR NEW FILE FCOR3404
TPUNIT PZE 0,3,0 MODE AND DEVICE FOR TAPE FILE FCOR3405
REM FCOR3406
ICFLAG SYN *-1 RETURN FLAGS FOR FILE EXIT ROUTINE FCOR3407
PZE 0,,1 .. FLAG FOR MEMORY 'A' FCOR3408
PZE 0,,2 .. FLAG FOR MEMORY 'B' FCOR3409
REM FCOR3410
FRSTER HTR * HERE ON ERROR IN FIRST CALL TO IOS FCOR3411
TTL REMOTE SEQUENCES --- ERROR CALLS AND DEFINITIONS FCOR3412
TITLE FCOR3412
PMC ON FCOR3413
RMT * FORCE REMOTE SEQUENCES FCOR3414
TTL FILE CO-ORDINATOR LITERALS/CROSS-REFERENCE LISTING FCOR3415
DETAIL FCOR3416
$BLOCK BCD,0084
END FCOR3417
* FAP
$BLOCK BCD,1344
LINK OFF SEAR0001
ENTRY SEARCH TO FIND A FILE SEAR0002
ENTRY REMOVE TO DELETE A FILE SEAR0003
ENTRY ADDFIL TO CREATE A NEW FILE SEAR0004
ENTRY UPDFIL TO CHANGE A FILE SEAR0005
ENTRY REWRIT TO UPDATE USER TO DISK SEAR0006
ENTRY IFILES TO INITIALIZE SEARCH SEAR0007
ENTRY SETQU TO SET QUOTA SEAR0008
ENTRY GETQU TO GET QUOTA SEAR0009
ENTRY LATER SEAR0010
EXTERN SRCH,GETEFA,PRESET SEAR0011
REM SEAR0012
LATERS EQU 10 ROOM FOR 5 OLD ERRORS SEAR0013
ENTLEN EQU 7 SEAR0014
XAB BOOL 1 SEAR0015
XREL BOOL 2 SEAR0016
RY BOOL 4 SEAR0017
Y3 BOOL 10 SEAR0018
ACY BOOL 20 SEAR0019
UPDSW BOOL 40 SEAR0020
WY BOOL 100 SEAR0021
ZEY BOOL 200 SEAR0022
REM SEAR0023
SETUP MACRO MODE,RET,ERRET,XYCODE SEAR0024
STI IND SAVE IND'S SEAR0025
LDI *+2 GET ENTRY TYPE CODE SEAR0026
TRA DOIT AND DO IT SEAR0027
VFD 3/MODE,3/RET,3/ERRET,9/XYCODE SEAR0028
SETUP END SEAR0029
REM SEAR0030
SEARCH SETUP 1,5,4,XAB+WY+Y3 SEAR0031
REM SEAR0032
REMOVE SETUP 2,4,3,XAB+RY+ZEY SEAR0033
REM SEAR0034
ADDFIL SETUP 2,4,3,RY SEAR0035
REM SEAR0036
UPDFIL SETUP 2,5,4,XAB+RY+Y3+UPDSW SEAR0037
REM SEAR0038
REWRIT SETUP 3,3,2,0 SEAR0039
REM SEAR0040
IFILES SETUP 0,2,1,0 SEAR0041
REM SEAR0042
SETQU SETUP 2,4,3,XREL+ACY+RY SEAR0043
REM SEAR0044
GETQU SETUP 1,4,3,XREL+ACY SEAR0045
REM SEAR0046
DOIT SLW AC SAVE AC FOR QUOTA CALLS SEAR0047
SCA XRS,4 SEAR0048
SXA XRS+1,1 SEAR0049
STI TYPE SAVE TYPE CODE SEAR0050
LDQ TYPE GET MODE AND RETURNS SEAR0051
ZAC SEAR0052
LGL 3 SEAR0053
SLW MODE SEAR0054
ZAC SEAR0055
LGL 3 SEAR0056
STA RETRA SEAR0057
ZAC SEAR0058
LGL 3 SEAR0059
STA ERETRA SEAR0060
CAL 1,4 GET X (PROBN,PROGN,ITH QUOTA WORD SEAR0061
TSX GETEFA,4 ALPHA,BETA) SEAR0062
PAC ,4 SEAR0063
CAL 0,4 PROBN SEAR0064
LDQ 1,4 PROGN SEAR0065
SLW X SEAR0066
STQ X+1 SEAR0067
TSX ERCK,4 CHECK FOR ERRORS SINCE LAST CALL SEAR0068
TRA LATERR FOUND ONE SEAR0069
LNT XAB DOES THIS X FORM HAVE AN ALPHA BETA SEAR0070
TRA ZEROAB NO SEAR0071
LAC XRS,4 RESTOR IR4 SEAR0072
CAL 2,4 GET MATCH WORDS SEAR0073
TSX GETEFA,4 SEAR0074
PAC ,4 SEAR0075
CAL 0,4 ALPHA SEAR0076
LDQ 1,4 BETA SEAR0077
SLW X+3 SEAR0078
STQ X+4 SEAR0079
ERA UFD IF UFD FILE SEAR0080
TNZ DONEAB SEAR0081
XCL SEAR0082
ERA UFD+1 SEAR0083
TNZ DONEAB SEAR0084
CAL X SEAR0085
LDQ X+1 PROBN-PROGN SEAR0086
SLW X+3 SEAR0087
STQ X+4 SEAR0088
CAL MFD SEAR0089
LDQ MFD+1 SEAR0090
SLW X SEAR0091
STQ X+1 SEAR0092
TRA DONEAB SEAR0093
ZEROAB STZ X+3 HERE IF ZERO ALPHA BETA SEAR0094
STZ X+4 SEAR0095
DONEAB STZ X+2 SEAR0096
LNT XREL IF CONCERNED WITH QUOTA WORDS SEAR0097
TRA NOREL NO, SEAR0098
LAC XRS,4 GET EFF ADR OF 2,4 SEAR0099
CAL 2,4 SEAR0100
TSX GETEFA,4 SEAR0101
STA X+2 AND USE AS QUOTA NUMBER SEAR0102
NOREL LNT RY WILL SRCH READ A Y SEAR0103
TRA DONEY NO SEAR0104
LNT ZEY SHOULD Y BE ZERO SEAR0105
TRA YAC NO SEAR0106
AXT ENTLEN,4 YES, ZERO Y SEAR0107
STZ Y+1+ENTLEN,4 SEAR0108
TIX *-1,4,1 SEAR0109
TRA DONEY SEAR0110
YAC LFT ACY IS Y THE AC SEAR0111
TRA DONEY YES SEAR0112
LAC XRS,4 SEAR0113
CAL 3,4 GET Y (ENTRY) ADDRESS SEAR0114
LNT Y3 IF AT 3,4 SEAR0115
CAL 2,4 DON'T GET IT FROM 2,4 SEAR0116
TSX GETEFA,4 SEAR0117
PAC ,1 SEAR0118
AXT ENTLEN,4 COPY FROM CALLERS CORE SEAR0119
CAL 2,1 SEAR0120
SLW Y+1+ENTLEN,4 SEAR0121
TXI *+1,1,-1 SEAR0122
TIX *-3,4,1 SEAR0123
DONEY TSX PRESET,4 SEAR0124
TSX SRCH,4 SINGLE CALL TO REST OF SEARCH SEAR0125
MODE SEAR0126
X SEAR0127
Y SEAR0128
PAC ,7 RETURN CODE SEAR0129
TRA* *+1,7 SEAR0130
OK FOUND OK SEAR0131
ERROR NOT FOUND/NO ROOM SEAR0132
ERROR DISK ERROR SEAR0133
OK LDI TYPE RESTOR IND SEAR0134
LNT WY WAS Y WRITTEN SEAR0135
TRA RAC NO SEAR0136
LAC XRS,4 YES, COPY TO CALLER SEAR0137
CAL 3,4 GET ADR OF Y SEAR0138
LNT Y3 SEAR0139
CAL 2,4 SEAR0140
TSX GETEFA,4 SEAR0141
PAC ,1 SEAR0142
CAL X FILL IN PROBN-PROGN SEAR0143
LDQ X+1 SEAR0144
SLW 0,1 SEAR0145
STQ 1,1 SEAR0146
AXT ENTLEN,4 SEAR0147
CAL Y+1+ENTLEN,4 SEAR0148
SLW 2,1 SEAR0149
TXI *+1,1,-1 SEAR0150
TIX *-3,4,1 SEAR0151
RAC CAL AC RETURN AC (IN CASE OF GETQU) SEAR0152
XRS AXC ,4 RESTOR AND RETURN SEAR0153
AXT ,1 SEAR0154
LDI IND SEAR0155
RETRA TRA *,4 SEAR0156
REM SEAR0157
LATERR AXT -2,7 HERE ON OLD ERROR SEAR0158
ERROR LAC XRS,4 HERE ON NEW ERROR SEAR0159
LXA XRS+1,1 RESTOR IR'S AND IND SEAR0160
LDI IND SEAR0161
ERETRA CAL **,4 GET ERROR RETURN WORD SEAR0162
PAC ,5 IN CASE OF NOT FOUND SEAR0163
TXH *+2,7,-2 TEST FOR NOT FOUND SEAR0164
PDC ,5 NO, RETURN THROUGH DEC. SEAR0165
TRA 0,5 SEAR0166
REM SEAR0167
LATER SCA XRL,4 HERE TO REMEMBER ERROR TIL NEXT CALL SEAR0168
CAL 1,4 SEAR0169
TSX GETEFA,4 GET ADR OF PROBN,PROGN SEAR0170
PAC ,4 SEAR0171
CAL 0,4 SEAR0172
LDQ 1,4 SEAR0173
TSX ERCK,4 ERASE ANY OLDER ERRORS SEAR0174
TRA *+1 SEAR0175
AXT LATERS,4 LOOK FOR SPACE SEAR0176
ZET LATERB+LATERS,4 SEAR0177
TIX *-1,4,2 SEAR0178
SLW LATERB+LATERS,4 OVER WRITE ONE IF NESS SEAR0179
STQ LATERB+LATERS+1,4 SEAR0180
XRL AXC ,4 SEAR0181
TRA 2,4 SEAR0182
REM SEAR0183
ERCK SCA XRE,4 HERE TO CHECK FOR OLD ERROR SEAR0184
XCL LOOK AT PROGN FIRST SEAR0185
AXT LATERS,4 SEAR0186
LAS LATERB+LATERS+1,4 SEAR0187
TRA *+2 SEAR0188
TRA FNDG FOUND PROGN SEAR0189
MORE TIX *-3,4,2 SEAR0190
XCL SEAR0191
XRE AXC ,4 NOT FOUND (NO ERROR) SEAR0192
TRA 2,4 SEAR0193
FNDG XCL CHECK PROBN SEAR0194
LAS LATERB+LATERS,4 SEAR0195
TRA DOMORE SEAR0196
TRA *+2 SEAR0197
TRA DOMORE SEAR0198
STZ LATERB+LATERS,4 FOUND, ZERO AND RETURN 1,4 SEAR0199
STZ LATERB+LATERS+1,4 SEAR0200
LAC XRE,4 SEAR0201
TRA 1,4 SEAR0202
DOMORE XCL GET PROGN BACK IN AC SEAR0203
TRA MORE AND LOOK MORE SEAR0204
IND INDICATORS SAVED HERE SEAR0205
TYPE TYPE CODE SEAR0206
MODE MODE OF CALL SEAR0207
MFD BCI 2,M.F.D.(FILE) SEAR0208
UFD BCI 2,U.F.D.(FILE) SEAR0209
X BSS 5 WHAT WE ARE LOOKING FOR SEAR0210
Y BSS ENTLEN+1 WHERE WE FOUND IT AND WHAT IT WAS SEAR0211
AC SYN Y+1 SEAR0212
LATERB BSS LATERS SEAR0213
$BLOCK BCD,0084
END SEAR0214
* FAP
$BLOCK BCD,1344
* TSX SRCH,4 STICKY/DISK DISPATCHER SRCH0001
LINK OFF SRCH0002
* MODE 0 INIT,1 READ,2 WRITE,3 UPDATE SRCH0003
* X LOOK FOR X SRCH0004
* Y AND READ/WRITE Y SRCH0005
* SLW RET 0 OK, 1 NOTFOUND/NOROOM,2 DISKERROR SRCH0006
* SRCH0007
ENTRY SRCH SRCH0008
EXTERN PUSH,GETEFA,STICKY,SCNDIR,STICKY,POP SRCH0009
SRCH SCA XRSH,4 SAVE IRS AND TEMPS SRCH0010
SXD XRSH,1 SRCH0011
SXA XRSH+1,2 SRCH0012
SXD XRSH+1,3 SRCH0013
TSX PUSH,4 SRCH0014
XRSH-1,,NSAV SRCH0015
* SRCH0016
LAC XRSH,4 SRCH0017
CAL* 1,4 GET MODE SRCH0018
SLW MODE SRCH0019
CAL 2,4 GET X SRCH0020
TSX GETEFA,4 SRCH0021
PAC ,7 SAVE IN IR7 SRCH0022
AXT 5,4 COPY X TO SAVE IT SRCH0023
CAL 0,7 SRCH0024
SLW X+5,4 SRCH0025
TXI *+1,7,-1 SRCH0026
TIX *-3,4,1 SRCH0027
LAC XRSH,4 SRCH0028
CAL 3,4 GET Y SRCH0029
TSX GETEFA,4 SRCH0030
PAC ,2 SRCH0031
TSX STICKY,4 SEE IF IN STICKY REGS SRCH0032
MODE SRCH0033
X SRCH0034
0,2 SRCH0035
PAC ,4 SRCH0036
PAX ,3 SAVE RETURN SRCH0037
TRA* *+1,4 DISPATCH ON RETURN SRCH0038
RET OK IT IS DONE SRCH0039
RET DOESN'T EXIST SRCH0040
GOTODC DOESN'T KNOW, LOOK AT DISK SRCH0041
* SRCH0042
GOTODC TSX SCNDIR,4 GO TO THE DISK TO FIND IT SRCH0043
MODE SRCH0044
X SRCH0045
0,2 SRCH0046
PAX ,3 SAVE RET SRCH0047
TXH RET,3,1 IF BAD RETURN BAD SRCH0048
TXL *+2,3,0 IF FOUND USE Y SRCH0049
AXC ZERO,2 OTHERWISE USE ZERO Y SRCH0050
LAC MODE,4 IF MODE=READ OR WRITE SRCH0051
TRA* *+1,4 SRCH0052
RET SRCH0053
PUT SRCH0054
PUT SRCH0055
RET SRCH0056
PUT TSX STICKY,4 PUT ENTRY IN STICKY REGS SRCH0057
PUTMOD SRCH0058
X SRCH0059
0,2 SRCH0060
RET TSX POP,4 UNSAVE SRCH0061
* SRCH0062
PXA ,3 SRCH0063
LAC XRSH,4 SRCH0064
LXD XRSH,1 SRCH0065
LXA XRSH+1,2 SRCH0066
LXD XRSH+1,3 SRCH0067
TRA 4,4 SRCH0068
* SRCH0069
BCI 1,SRCH SRCH0070
XRSH -XR4,,XR1 SRCH0071
XR2,,XR3 SRCH0072
MODE SRCH0073
X BSS 5 SRCH0074
NSAV SYN *-XRSH+1 SRCH0075
PUTMOD 4 SRCH0076
DUP 1,3 RELADR,ALPHA,BETA SRCH0077
ZERO PZE 0 SRCH0078
$BLOCK BCD,0084
END SRCH0079
* FAP
$BLOCK BCD,1344
LINK OFF SCND0001
ENTRY SCNDIR SCND0002
UNLIST SCND0003
REM IOEQ0001
REM ..... FILE INPUT/OUTPUT SYSTEM EQUIVALENCE PACKAGE ..... IOEQ0002
REM IOEQ0003
DUSERS EQU 2 MAX. NO. OF USERS OF I/O SYSTEM IOEQ0004
FMAX EQU 3 MAX. NO. OF DEVICES AVAILABLE IN I/O SYSTEMIOEQ0005
IOSMEM EQU 1 MEMORY WHERE I/O SYSTEM RESIDES (1=A, 2=B) IOEQ0006
EJECT IOEQ0007
.REL. SET 0 INITIALIZE RELATIVE A.F.S.T. ADDRESS IOEQ0008
REM IOEQ0009
SETWRD MACRO SYMBOL TO SET UP ACTIVE FILE ENTRIES IOEQ0010
IRP SYMBOL .. IOEQ0011
PMC ON .. IOEQ0012
SYMBOL SYN .REL. .. IOEQ0013
PMC OFF .. IOEQ0014
IRP .. IOEQ0015
.REL. SET .REL.+1 .. BUMP RELATIVE ADDRESS IOEQ0016
SETWRD END .. IOEQ0017
REM IOEQ0018
SETWRD (RPROBN) IOEQ0019
SETWRD (RPROGN) IOEQ0020
SETWRD (RNAME1) IOEQ0021
SETWRD (RNAME2) IOEQ0022
SETWRD (RMODE) IOEQ0023
SETWRD (FPROBN) IOEQ0024
SETWRD (FPROGN) IOEQ0025
SETWRD (FNAME1) IOEQ0026
SETWRD (FNAME2) IOEQ0027
SETWRD (DAYTIM,LPROBN) IOEQ0028
SETWRD (DATELU,AUTHOR,LPROGN) IOEQ0029
SETWRD (MODE,ILOCK,F,RCOUNT) IOEQ0030
SETWRD (RWSTAT,S,W,R,NORECS,P,LCOUNT,LNAME1) IOEQ0031
SETWRD (POINTR,LNAME2) IOEQ0032
SETWRD (ASGNSW,REDREC,REDWRD) IOEQ0033
SETWRD (WRTREC,WRTWRD) IOEQ0034
SETWRD (CHNG,PRIME,BUFREC,BUFADR) IOEQ0035
SETWRD (WINDEX,DINDEX) IOEQ0036
SETWRD (DR,DW,DCOUNT,DADDRS) IOEQ0037
SETWRD (PRIOR,IOTASK,EFLAG,CURREC) IOEQ0038
SETWRD (SMTMP1) IOEQ0039
SETWRD (SMTMP2) IOEQ0040
REM IOEQ0041
SETWRD (ACTLNG) LENGTH OF SINGLE ACTIVE FILE ENTRY IOEQ0042
EJECT IOEQ0043
MACRO TO ASSIGN CONSECUTIVE STORAGE LOCATIONS IOEQ0044
SYMBOL ASTORE BLOCK,NWORDS .. WITHIN A BLOCK IOEQ0045
PMC ON .. IOEQ0046
SYMBOL SYN BLOCK .. IOEQ0047
PMC OFF .. IOEQ0048
TMP SET NWORDS .. IOEQ0049
BLOCK SET BLOCK+TMP .. IOEQ0050
ASTORE END .. IOEQ0051
REM IOEQ0052
AFST SET 0 DEFINE ENTRIES IN ACTIVE FILE STATUS TABLE IOEQ0053
REM IOEQ0054
PROBNO ASTORE AFST,1 USER'S PROBLEM NUMBER IN BCD IOEQ0055
PROGNO ASTORE AFST,1 USER'S PROGRAMMER NUMBER IN BCD IOEQ0056
AUTHNO ASTORE AFST,1 USER'S 'AUTHOR' NUMBER IN BINARY IOEQ0057
URCODE ASTORE AFST,1 USER'S RESTRICTION CODE IOEQ0058
LIMITS ASTORE AFST,1 USER'S CORE LIMITS PZE LOWADR,,HIADR IOEQ0059
RELOC ASTORE AFST,1 USER'S RELOCATION IOEQ0060
FPRIOR ASTORE AFST,1 USER'S FILE PRIORITY SETTING IOEQ0061
ERRILC ASTORE AFST,1 LOCATION OF CALL RESULTING IN LAST ERROR IOEQ0062
ERNAME ASTORE AFST,1 NAME OF ENTRY IN WHICH ERROR WAS DISCOVEREDIOEQ0063
ERCODE ASTORE AFST,1 ERROR CODE OF LAST ERROR IOEQ0064
IOCODE ASTORE AFST,1 I/O ERROR CODE IF ANY OF LAST ERROR IOEQ0065
ENAME1 ASTORE AFST,1 FILE NAME(1) OF FILE INVOLVED IN LAST ERRORIOEQ0066
ENAME2 ASTORE AFST,1 FILE NAME(2) OF FILE INVOLVED IN LAST ERRORIOEQ0067
ERCALL ASTORE AFST,1 LOCATION OF LAST CALL TO ERROR OR IOERR IOEQ0068
QUEUE1 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(1) IOEQ0069
QUEUE2 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(2) IOEQ0070
QUEUE3 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(3) IOEQ0071
QUEUE4 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(4) IOEQ0072
QUEUE5 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(5) IOEQ0073
QUEUE6 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(6) IOEQ0074
QUEUE7 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(7) IOEQ0075
REM IOEQ0076
AFENTY ASTORE AFST,ACTLNG STORAGE FOR A SINGLE ACTIVE FILE ENTRY IOEQ0077
REM IOEQ0078
TBLMIN ASTORE AFST,0 MINIMUM LENGTH FOR USER I/O STATUS TABLE IOEQ0079
EJECT IOEQ0080
EFA OPSYN NOP EFFECTIVE ADDRESS PARAMETER FLAG IOEQ0081
PAR OPSYN PTH NORMAL PARAMETER FLAG IOEQ0082
REM IOEQ0083
ION OPSYN PON I/O NON-TRANSMIT AND PROCEED IOEQ0084
IOP OPSYN PTW I/O TRANSMIT AND PROCEED IOEQ0085
IOD OPSYN PZE I/O DISCONNECT IOEQ0086
REM IOEQ0087
HOMOP MACRO GENERATE INSTRUCTION TO RESET ECC TO 'HOME'IOEQ0088
IFF IOSMEM-1,0,1 IOEQ0089
SEA HOME INSTRUCTION FOR MEMORY A IOEQ0090
IFF IOSMEM-2,0,1 IOEQ0091
SEB HOME INSTRUCTION FOR MEMORY B IOEQ0092
IFF IOSMEM-3,0,1 IOEQ0093
SEC HOME INSTRUCTION FOR MEMORY C IOEQ0094
HOMOP END IOEQ0095
LIST SCND0005
NDIR EQU 1 NUMBER OF DIRECTORIES THAT MAY BE OPEN SCND0006
DIRSIZ EQU 17 LENGTH OF STATUS TABLE SCND0007
BUFSIZ EQU 432 SIZE OF TRACK BUFFER SCND0008
M EQU 8 MODULE WHERE MFD RESIDES SCND0009
ENTLEN EQU 7 LENGTH OF MFD/UFD ENTRY SCND0010
NREAD EQU 10*ENTLEN SCND0011
QTALEN EQU 3 NUMBER OF QUOTA WORDS SCND0012
EXTERN BOPEN,BCLOSE,BASIGN,BREAD,BWRITE,BTRUNC,BCHECK,BSAVE SCND0013
EXTERN PUSH,POP,SRCH,GETEFA,GTDYTM,GETDAY,LATER,STAFIL SCND0014
* TSX SCNDIR,4 SCND0015
* PZE =SMODE 0=INIT, 1=REF, 2=PUT, 3=UPDATE SCND0016
* PZE X SCND0017
* PZE Y SCND0018
* SLW RET CODE 0=OK, 1=NOT FOUND/NO ROOM, 2=DISK ERROR SCND0019
* SCND0020
NSCAN COUNTER FOR SCANS SCND0021
NSWAP COUNTER FOR SWAPS SCND0022
SCNDIR SCA XRN,4 SCND0023
SXD XRN,1 SCND0024
SXA XRN+1,2 SCND0025
SXD XRN+1,3 SCND0026
TSX $TRAC,7 SCND0027
BCI 1,0E SCD SCND0028
CAL* 1,4 SCND0029
STA SMODE SAVE MODE SCND0030
CAL 2,4 SCND0031
TSX GETEFA,4 SCND0032
PAC ,4 COPY X INTO SCN'S STO SCND0033
AXT 5,1 SCND0034
CAL 0,4 SCND0035
SLW X+5,1 SCND0036
TXI *+1,4,-1 SCND0037
TIX *-3,1,1 SCND0038
LAC SMODE,1 DISPATCH ON MODE SCND0039
TRA* *+1,1 SCND0040
INIT INITALIZE SCND0041
RRD READ SCND0042
WWT WRITE SCND0043
UPDATE REWRITE SCND0044
RSPNT RESET RELADR TO 0 SCND0045
RRD TSX CKFMFD,4 IF MFD SCND0046
TRA WWT SCND0047
CAL MFDREL SCND0048
TRA NOSRCH DON'T OPEN SCND0049
WWT CAL NSCAN COUNT SCANS SCND0050
ADD =1 .. SCND0051
SLW NSCAN .. SCND0052
TSX FIND,4 LOOK FOR DIRECTORY OPEN SCND0053
TRA WW01 SCND0054
CAL FREQ+NDIR,1 UPDATE USAGE SCND0055
ADM SAVING .. SCND0056
SLW FREQ+NDIR,1 .. SCND0057
TRA FNDOPN SCND0058
WW01 AXT NDIR,1 LOOK FOR FREE BUFFER SCND0059
NZT USED+NDIR,1 SCND0060
TRA FNDSPC FOUND SPACE SCND0061
TIX *-2,1,1 SCND0062
CAL NSWAP COUNT SWAPS SCND0063
ADD =1 SCND0064
SLW NSWAP .. SCND0065
AXT NDIR,1 MUST MAKE ROOM SCND0066
CAL ONES CLOSE THE DIR WHICH IS LEAST USEFUL SCND0067
PL LAS FREQ+NDIR,1 SCND0068
TRA *+4 IF USELESS SCND0069
TRA *+1 SCND0070
PTIX TIX PL,1,1 SCND0071
TRA P1 FOUND IT SCND0072
CAL FREQ+NDIR,1 SCND0073
SXA P1,1 SCND0074
TZE P1 TOTALLY USELESS SCND0075
TIX PL,1,1 SCND0076
P1 AXT --,1 SCND0077
FNDSPC CAL DIRPNT+NDIR,1 SET IR3 SCND0078
PAC ,3 SCND0079
TSX SWITCH,4 CLOSE AND OPEN NEW SCND0080
FNDOPN CAL XRELAD WAS RELATIVE ADR GIVEN SCND0081
TNZ NOSRCH YES, USE IT SCND0082
TSX CKFMFD,4 CHECK FOR MFD SCND0083
TRA *+3 SCND0084
CAL MFDREL IF IT IS MFD SCND0085
TRA NOSRCH DON'T SEARCH SCND0086
CAL RELADR+NDIR,1 CHECK FOR RELADR IN QUOTA QORDS SCND0087
LAS RLADRS SCND0088
TRA *+3 SCND0089
TRA *+2 SCND0090
CAL RLADRS IF IN GET OUT SCND0091
SLW RELADR+NDIR,1 SCND0092
SLW DONADR SAVE AS DONE ADR SCND0093
SLW WRADR SAVE AS WORKING ADR SCND0094
SLW LSTENT SET LAST NON ZERO ENTRY SCND0095
LOOP STL ERLOC READ ENTRY SCND0096
TSX BREAD,4 SCND0097
EFA 0,3 SCND0098
PAR AC,,AC SCND0099
PAR WRADR,,EOFB SCND0100
PAR AE,,*-4 SCND0101
PAR ISCNER,,ERB SCND0102
PAR ERB SCND0103
STZ EOFCT SCND0104
L1 STL ERLOC SCND0105
TSX BCHECK,4 SCND0106
EFA 0,3 SCND0107
PAR AC,,AC SCND0108
PAR ISCNER,,*+3 SCND0109
PAR ERB SCND0110
TRA *-5 SCND0111
LXA EOFCT,4 SCND0112
TXH *+2,4,0 SCND0113
AXT NREAD,4 INDEX THROUGH ENTRYS READ SCND0114
AXC 0,5 SCND0115
L CAL A,5 COMPARE ENTRY WITH WHAT WE WANT SCND0116
ERA ALPHA SCND0117
TNZ ENDL SCND0118
CAL A+1,5 SCND0119
ERA BETA SCND0120
TZE FOUND SCND0121
ENDL CAL WRADR BUMP ADR SCND0122
ACL XENTLN BY LENGTH OF ENTRY SCND0123
SLW WRADR SCND0124
NZT A,5 IF ENTRY .NE.0, MOVE ENTRY UP SCND0125
ZET A+1,5 SCND0126
SLW LSTENT SCND0127
ERA DONADR TEST FOR COMPLETE LOOP SCND0128
TZE NOTFND YES SCND0129
TXI *+1,5,-ENTLEN SCND0130
TIX L,4,ENTLEN SCND0131
ZET EOFCT SCND0132
TRA EOF SCND0133
TRA LOOP SCND0134
EOFB STA EOFCT GET WORD COUNT READ BEFORE EOF SCND0135
TZE EOF SCND0136
TRA L1 SCND0137
NOTFND CAL =1 GIVE NOT FOUND RETURN SCND0138
SLW RETV SCND0139
TRA *+2 SCND0140
RETZ STZ RETV SCND0141
CAL WRADR SCND0142
SLW RELADR+NDIR,1 SCND0143
RET LAC XRN,4 RELOAD XRS SCND0144
LXD XRN,1 SCND0145
LXA XRN+1,2 SCND0146
LXD XRN+1,3 SCND0147
CAL RETV SCND0148
TSX $TRAC,7 SCND0149
BCI 1,0R SCD SCND0150
TRA 4,4 SCND0151
* SCND0152
EOF CAL LSTENT CHECK IF DIRECTORY SHOULD BE SHORTENED SCND0153
LAS WRADR SCND0154
TRA NOTRN SCND0155
TRA NOTRN SCND0156
SLW WRADR YES, TRUNCATE SCND0157
LAS DONADR IS NEW LENGTH SHORTER THAN 'DONADR' SCND0158
NOP .. NO SCND0159
TRA *+2 .. NO, SKIP SCND0160
SLW DONADR .. YES, REPLACE DONADR WITH NEW LENGTH SCND0161
STL ERLOC SCND0162
TSX BTRUNC,4 SCND0163
EFA 0,3 SCND0164
PAR AC,,AC SCND0165
PAR WRADR,,*+3 SCND0166
PAR ISCNER,,*-4 SCND0167
PAR ERB,,ERB SCND0168
NOTRN ZET ALPHA SCND0169
TRA *+3 IF LOOKING FOR ZEROS SCND0170
NZT BETA SCND0171
TRA MAKHOL ADD TO END OF FILE SCND0172
CAL RLADRS OTHERWISE GO TO FRONT SCND0173
SLW WRADR AND SCND0174
ERA DONADR TEST FOR COMPLETE LOOP SCND0175
TZE NOTFND SCND0176
TRA LOOP SCND0177
MAKHOL AXT ENTLEN,4 IF OFF END RETURN ZEROS SCND0178
STZ A+ENTLEN,4 SCND0179
TIX *-1,4,1 SCND0180
TRA FOUND SCND0181
* SCND0182
NOSRCH SLW WRADR HERE IF RELATIVE ADR GIVEN SCND0183
STZ READED ENTRY HAS NOT BEEN READ SCND0184
AXT ENTLEN,4 SCND0185
CAL WRADR TEST FOR RELATIVE ADR IN QUOTA WORDS SCND0186
LAS RLADRS SCND0187
TRA SN1 SCND0188
TRA SN1 SCND0189
AXT 1,4 AND READ/WRITE ONE WORD SCND0190
TRA SN1 SCND0191
FOUND STL READED ENTRY IS ALREADY IN A SCND0192
SCA BUFINX,5 SET ADDR OF WHERE FOUND SCND0193
AXT ENTLEN,4 SCND0194
SN1 SXD APNT,4 SET LENGTH SCND0195
SXA XX1,1 SCND0196
LAC XRN,4 RESTOR IR'S FOR GETEFA SCND0197
LXD XRN,1 SCND0198
LXA XRN+1,2 SCND0199
LXD XRN+1,3 SCND0200
CAL 3,4 SCND0201
TSX GETEFA,4 SCND0202
PAC ,2 SAVE Y ADR SCND0203
ACL =1 SKIP PAST RELADR PART SCND0204
STA APNT SCND0205
XX1 AXT --,1 RESTOR IR1 SCND0206
CAL DIRPNT+NDIR,1 RESTOR IR3 SCND0207
PAC ,3 SCND0208
LAC SMODE,4 READ/WRITE SCND0209
TRA* *,4 SCND0210
READ SCND0211
WRITE SCND0212
* SCND0213
* SCND0214
READ ZET READED HAS ENTRY BEEN READ SCND0215
TRA CPYTOU IF SO DONT READ AGAIN SCND0216
TSX CKFMFD,4 IF MFD SCND0217
TRA NRMFD SCND0218
AXT ENTLEN+1,4 RETURN CANNED SCND0219
CAL MFDREL SCND0220
TRA *+2 SCND0221
CAL MFD+2+ENTLEN,4 SCND0222
SLW 0,2 SCND0223
TXI *+1,2,-1 SCND0224
TIX *-3,4,1 SCND0225
STZ RETV SCND0226
TRA RET SCND0227
NRMFD STL ERLOC SCND0228
TSX BREAD,4 SCND0229
EFA 0,3 SCND0230
PAR AC,,AC SCND0231
PAR WRADR,,EOFR SCND0232
PAR APNT,,*-4 SCND0233
PAR ISCNER,,*-5 SCND0234
PAR ERB SCND0235
STL ERLOC SCND0236
TSX BCHECK,4 WAIT ON READ SCND0237
EFA 0,3 SCND0238
PAR AC,,AC SCND0239
PAR ISCNER,,*+3 SCND0240
PAR ERB SCND0241
TRA *-5 SCND0242
CAL WRADR SCND0243
SLW 0,2 FILL IN RELADR SCND0244
TRA RETZ SCND0245
CPYTOU AXT ENTLEN,4 COPY RELITIVE ADR AND ENTRY INTO CALLER SCND0246
LAC BUFINX,5 RESTOR ADDR IN A SCND0247
CAL WRADR MOVE RELADR SCND0248
SLW 0,2 SCND0249
CAL A,5 SCND0250
SLW 1,2 SCND0251
TXI *+1,2,-1 SCND0252
TXI *+1,5,-1 SCND0253
TIX *-4,4,1 SCND0254
TRA RETZ SCND0255
* SCND0256
WRITE CAL WRADR RETURN RELADR SCND0257
SLW 0,2 AND SCND0258
LXD APNT,4 IF WRITING AN ENTRY SCND0259
TXL UPT,4,1 UPDATE TIME IF QUOTA WORD SCND0260
NZT FNAME1-FNAME1+1,2 IF ALPHA=BETA=0 SCND0261
ZET FNAME2-FNAME1+1,2 SCND0262
TRA *+2 SCND0263
TRA UPT UPDATE TIME (DELETES OR UNLINKS) SCND0264
CAL F-FNAME1+1,2 IF LINK SCND0265
ANA =O700000 SCND0266
TZE UPT UPDATE TIME SCND0267
CAL DAYTIM,3 IF MFD TIME LAST MODIFIED SCND0268
LAS DAYTIM-FNAME1+1,2 IS LESS THAN FILE TIME SCND0269
TRA NOTIM SCND0270
TRA NOTIM SCND0271
UPT TSX GTDYTM,4 UPDATE TIME SCND0272
SLW DAYTIM,3 IN MFD SCND0273
NOTIM TSX CKFMFD,4 IF MFD SCND0274
TRA REWRIT SCND0275
AXT ENTLEN,4 WRITE CANNED TOO SCND0276
CAL 1,2 SCND0277
SLW MFD+2+ENTLEN,4 SCND0278
TXI *+1,2,-1 SCND0279
TIX *-3,4,1 SCND0280
TXI *+1,2,ENTLEN SCND0281
REWRIT STL ERLOC SCND0282
TSX BWRITE,4 AND WRITE OUT SCND0283
EFA 0,3 SCND0284
PAR AC,,AC SCND0285
PAR WRADR,,EOFW SCND0286
PAR APNT,,*-4 SCND0287
PAR ISCNER,,ERB SCND0288
PAR ERB SCND0289
STL ERLOC SCND0290
TSX BCHECK,4 WAIT ON WRITE SCND0291
EFA 0,3 SCND0292
PAR AC,,AC SCND0293
PAR ISCNER,,*+3 SCND0294
PAR ERB SCND0295
TRA *-5 SCND0296
TRA RETZ SCND0297
* SCND0298
EOFW STL ERLOC SCND0299
TSX BWRITE,4 IF END OF FILE WRITING SCND0300
EFA 0,3 SCND0301
PAR AC,,AC NO EOF (SHOULDN'T HAPPEN ANYWAY) SCND0302
PAR =0 SCND0303
PAR ZERO,,*-4 SCND0304
PAR ISCNER,,ERB SCND0305
PAR ERB SCND0306
TRA REWRIT SCND0307
* SCND0308
CKFMFD CAL X CHECK FOR MFD-MFD SCND0309
ERA MFD SCND0310
TNZ 1,4 SCND0311
CAL X+1 SCND0312
ERA MFD+1 SCND0313
TNZ 1,4 SCND0314
CAL X+3 SCND0315
ERA MFD SCND0316
TNZ 1,4 SCND0317
CAL X+4 SCND0318
ERA MFD+1 SCND0319
TNZ 1,4 SCND0320
TRA 2,4 SCND0321
* SCND0322
INIT AXT NDIR,1 RESET ALL DIRECTORIES SCND0323
SXA MYNAME+3,1 SET NUMBER SCND0324
IL STZ USED+NDIR,1 SCND0325
TSX STAFIL,4 GET TABLE LOCATION SCND0326
EFA MYNAME SCND0327
PAR *-2 SCND0328
STA DIRPNT+NDIR,1 SCND0329
TIX IL,1,1 SCND0330
CAL RLADRS READ MFD MFD IN FIRST SLOT SCND0331
SLW XMFD+2 SCND0332
TSX PUSH,4 SAVE TEMPS SCND0333
XRN-1,,NSAVE SCND0334
* SCND0335
TSX SCNDIR,4 SCND0336
READM SCND0337
XMFD WHERE AND WHAT SCND0338
MFD+1 AND PUT HERE SCND0339
SLW RETV SCND0340
TSX POP,4 SCND0341
* SCND0342
STZ XMFD+2 SCND0343
ZET RETV IF BAD RETURN SCND0344
TRA RET RETURN BAD SCND0345
CAL MFD+1 SAVE RELADR OF MFD SCND0346
SLW MFDREL SCND0347
CAL XMFD+1 OVERWRITE RELADR WITH =H FILE SCND0348
SLW MFD+1 SCND0349
AXT NDIR,1 CLOSE MFD WITH OUT SCND0350
STZ USED+NDIR,1 SCND0351
CAL DIRPNT+NDIR,1 SCND0352
PAC ,3 SCND0353
STL ERLOC SCND0354
TSX BCLOSE,4 REWRITING MFD FILE SCND0355
EFA 0,3 SCND0356
PAR AC,,AC SCND0357
PAR ISCNER,,*-3 SCND0358
PAR ERB SCND0359
TRA RETZ AND RETURN GOOD SCND0360
* SCND0361
UPDATE STZ RETV SCND0362
TSX FIND,4 FIND USER SCND0363
TRA RET NOT FOUND SCND0364
STZ PROBN SWITCH TO ZERO USER SCND0365
STZ PROGN SCND0366
TSX SWITCH,4 SCND0367
TRA RETZ SCND0368
* SCND0369
RSPNT STZ RETV RESETS RELADR TO 0 SCND0370
TSX FIND,4 SCND0371
TRA RET NOTFOUND SCND0372
STZ RELADR+NDIR,1 SCND0373
TRA RET SCND0374
* SCND0375
FIND AXT NDIR,1 SUBR TO FIND USERS OPEN UFD SCND0376
NZT USED+NDIR,1 IF OPEN SCND0377
TRA NEXTF SCND0378
FL CAL DIRPNT+NDIR,1 SCND0379
PAC ,3 SCND0380
CAL PROBN AND PROBN .E.PROBN SCND0381
ERA FPROBN,3 SCND0382
TNZ NEXTF SCND0383
CAL PROGN SCND0384
ERA FPROGN,3 SCND0385
TZE 2,4 FOUND SCND0386
NEXTF TIX FL,1,1 SCND0387
TRA 1,4 SCND0388
* SCND0389
SWITCH SCA XRSW,4 SCND0390
NZT USED+NDIR,1 IS OLD DIR OPEN SCND0391
TRA RDNEW NO SCND0392
WTOLD TSX PUSH,4 SAVE FOR SRCH SCND0393
XRN-1,,NSAVE SCND0394
* SCND0395
STZ RETV SCND0396
TSX CKCAND,4 SCND0397
TRA CL SCND0398
TRA WT SCND0399
TRA NWT SCND0400
CL STL ERLOC CLOSE FILE SCND0401
TSX BCLOSE,4 CLOSE USER BUFF SCND0402
EFA 0,3 SCND0403
PAR AC,,AC SCND0404
PAR LSCNER,,*-3 SCND0405
PAR ERB SCND0406
STZ USED+NDIR,1 SCND0407
WT AXC FPROBN+2,4 COPY DIR INFO FROM STAT TAB SCND0408
CAL* DIRPNT+NDIR,1 SCND0409
SLW DIRSAV-1-FPROBN,4 SCND0410
TXI *+1,4,-1 SCND0411
TXH *-3,4,-2-ENTLEN-FPROBN SCND0412
CAL FPROBN,3 AND SET PROBN-PROGN SCND0413
SLW XMFD+3 SCND0414
LDQ FPROBN+1,3 SCND0415
STQ XMFD+4 SCND0416
ERA MFD IF MFD SCND0417
TNZ CSH SCND0418
XCL SCND0419
ERA MFD+1 SCND0420
TNZ CSH SCND0421
TSX SCNDIR,4 DON'T BOTHER STICKY SCND0422
WRITEM SCND0423
XMFD SCND0424
DIRSAV SCND0425
TRA CSHR SCND0426
CSH TSX SRCH,4 AND REWRITE ENTRY IN MFD SCND0427
WRITEM SCND0428
XMFD SCND0429
DIRSAV SCND0430
CSHR SLW RETV SAVE ANY ERROR RET SCND0431
NWT TSX POP,4 UNSAVE SCND0432
* SCND0433
NZT RETV IF ERROR SAVE IT SCND0434
TRA *+3 SCND0435
STL ERLOC SCND0436
TRA GIVLAT GIVE LATENT ERROR SCND0437
RDNEW NZT USED+NDIR,1 SCND0438
TRA NNEW SCND0439
CAL FPROBN,3 IS DIR=NEW (COULD BE IF MFD) SCND0440
ERA PROBN SCND0441
TNZ CKM SCND0442
CAL FPROGN,3 SCND0443
ERA PROGN SCND0444
TNZ CKM SCND0445
TRA SWDONE SCND0446
CKM TSX CKCAND,4 SCND0447
TRA WTOLD SCND0448
TRA *+1 SCND0449
NNEW TSX PUSH,4 SAVE FOR READ SCND0450
XRN-1,,NSAVE SCND0451
* SCND0452
STZ RETV SCND0453
NZT PROBN IS NEW =ZERO SCND0454
ZET PROGN SCND0455
TRA *+2 SCND0456
TRA NOREAD SCND0457
CAL PROBN PUT PROBN-PROGN IN XMFD SCND0458
LDQ PROGN SCND0459
SLW XMFD+3 SCND0460
STQ XMFD+4 SCND0461
ERA MFD SCND0462
TNZ CSH1 SCND0463
XCL SCND0464
ERA MFD+1 SCND0465
TNZ CSH1 SCND0466
TSX SCNDIR,4 IF MFD DON'T BOTHER STICKY SCND0467
READM SCND0468
XMFD SCND0469
DIRSAV SCND0470
TRA CSHR1 SCND0471
CSH1 TSX SRCH,4 READ IT SCND0472
READM SCND0473
XMFD SCND0474
DIRSAV SCND0475
CSHR1 SLW RETV SAVE ERROR RET SCND0476
TNZ NOMOVE SKIP MOVE IF FILE NOT FOUND SCND0477
NOREAD NZT USED+NDIR,1 IF DIR OPEN (FROM LOWER LEVELS) SCND0478
TRA NOP SCND0479
CAL FPROBN,3 IF MFD SCND0480
ERA MFD SCND0481
TNZ CL SCND0482
CAL FPROBN+1,3 SCND0483
ERA MFD+1 SCND0484
TNZ CL SCND0485
STL ERLOC FORCE IO SCND0486
TSX BSAVE,4 SCND0487
EFA 0,3 SCND0488
PAR AC,,AC SCND0489
PAR LSCNER,,*-3 SCND0490
PAR ERB SCND0491
CAL NORECS,3 CHECK IF LENGTH HAS CHANGED SCND0492
ERA MFD+NORECS-FPROBN SCND0493
TNZ WT SCND0494
STL ERLOC SCND0495
TSX BCLOSE,4 CLOSE IT SCND0496
EFA 0,3 SCND0497
PAR AC,,AC SCND0498
PAR LSCNER,,*-3 SCND0499
PAR ERB SCND0500
STZ USED+NDIR,1 SCND0501
NOP AXC FPROBN+2,4 SCND0502
CAL DIRSAV-1-FPROBN,4 COPY REST TO DIR SCND0503
SLW* DIRPNT+NDIR,1 SCND0504
TXI *+1,4,-1 SCND0505
TXH *-3,4,-ENTLEN-2-FPROBN SCND0506
NOMOVE TSX POP,4 UNSAVE SCND0507
* SCND0508
ZET RETV SCND0509
TRA RET IF BAD RETURN SCND0510
CAL PROBN COPY PROBN-PROGN INTO DIR SCND0511
SLW FPROBN,3 SCND0512
CAL PROGN SCND0513
SLW FPROGN,3 SCND0514
NZT PROBN IF NEW=ZERO SCND0515
ZET PROGN SCND0516
TRA *+2 SCND0517
TRA SWDONE DON'T OPEN SCND0518
STL ERLOC SCND0519
TSX BOPEN,4 OPEN NEW SCND0520
EFA 0,3 SCND0521
PAR SPRIOR,,ERB SCND0522
CAL BUFPNT+NDIR,1 SCND0523
SLW A SCND0524
TSX BASIGN,4 ASIGN BUFFER SCND0525
EFA 0,3 SCND0526
PAR A,,ERB SCND0527
STL USED+NDIR,1 SCND0528
STZ RELADR+NDIR,1 RESET RELADR SCND0529
TSX GTDYTM,4 UPDATE LAST USED SCND0530
XCL .. SCND0531
SLQ DATELU,3 .. SCND0532
TLOOP TSX GETDAY,4 SET FREQ OF THIS DIR SCND0533
XCL SCND0534
ADD DAYS SCND0535
LAS FREQL SCND0536
TRA TOK SCND0537
TRA TOK SCND0538
CAL DAYS PASSED MIDNIGHT SCND0539
ADM TDAY SCND0540
SLW DAYS SCND0541
TRA TLOOP SCND0542
TOK SLW FREQ+NDIR,1 SCND0543
SLW FREQL SCND0544
SWDONE LAC XRSW,4 SCND0545
TRA 1,4 SCND0546
REM SCND0547
* TSX CKCAND,4 SCND0548
* TRA AFST .NE. MFD SCND0549
* TRA AFST .NE. CANNED SCND0550
* TRA AFST .E. CANNED SCND0551
* SCND0552
CKCAND SCA XRC,4 SCND0553
CAL FPROBN,3 IS OLD DIR MFD SCND0554
ERA MFD SCND0555
TNZ 1C4 SCND0556
CAL FPROBN+1,3 SCND0557
ERA MFD+1 SCND0558
TNZ 1C4 SCND0559
STL ERLOC SCND0560
TSX BSAVE,4 FORCE IO SCND0561
EFA 0,3 SCND0562
PAR AC,,AC SCND0563
PAR LSCNER,,*-3 SCND0564
PAR ERB SCND0565
AXC FPROBN,4 SCND0566
CAL* DIRPNT+NDIR,1 SCND0567
LAS MFD-FPROBN,4 SCND0568
TRA 2C4 SCND0569
TXI *+2,4,-1 SCND0570
TRA 2C4 SCND0571
TXH *-5,4,-2-ENTLEN-FPROBN SCND0572
XRC AXC ,4 SCND0573
TRA 3,4 SCND0574
1C4 LAC XRC,4 SCND0575
TRA 1,4 SCND0576
2C4 LAC XRC,4 SCND0577
TRA 2,4 SCND0578
REM SCND0579
ISCNER STZ LAT HERE ON ERRORS INVOLVING CURRENT USER SCND0580
TRA *+2 SCND0581
LSCNER STL LAT HERE ON EVERYBODY ELSE SCND0582
AXC EFLAG,4 SCND0583
CAL* DIRPNT+NDIR,1 GET ERROR FLAG SCND0584
LDQ* DIRPNT+NDIR,1 AND RESET THEM SCND0585
ANA =O777777077777 SCND0586
SLW* DIRPNT+NDIR,1 SCND0587
XCL SCND0588
ARS 15 SCND0589
ANA =7 SCND0590
PAC ,4 SCND0591
TRA* *+1,4 SCND0592
IGNORE 0 SCND0593
IGNORE 1 SCND0594
FATAL 2 SCND0595
NOROOM 3 SCND0596
* 4 SCND0597
* 5 SCND0598
* 6 SCND0599
* 7 SCND0600
IGNORE LAC ERLOC,4 RETURN TO CALL (TSX+1) SCND0601
TRA 1,4 SCND0602
FATAL TSX BCLOSE,4 FATAL ERROR, TRY TO CLOSE FILE SCND0603
EFA 0,3 SCND0604
PAR AC,,AC SCND0605
PAR FC,,*-3 SCND0606
PAR ERB SCND0607
FC SYN * SCND0608
STZ USED+NDIR,1 MARK AS CLOSED SCND0609
ZET LAT IS THIS A LATENT ERROR SCND0610
TRA GIVLAT YES SCND0611
CAL =2 NO, GIVE ERQOR RETURN SCND0612
SLW RETV SCND0613
TRA RET SCND0614
GIVLAT STL LAT SCND0615
CAL DIRPNT+NDIR,1 GET LOC. OF PROBN-PROGN SCND0616
STA *+2 SCND0617
TSX LATER,4 SCND0618
** SCND0619
TRA IGNORE SCND0620
NOROOM ZET LAT IF LATENT MOROOM SCND0621
TRA GIVLAT SET LATENT ERROR SCND0622
TRA NOTFND OTHERWISE RETURN 1 SCND0623
ERLOC LOCATION OF LAST TSX TO BC SCND0624
LAT SCND0625
EOFR TRA NOTFND SCND0626
ERB HTR * UNEXPECTED ERROR FROM LOC ERLOC SCND0627
*DATA SCND0628
DONADR RELADR AT START OF LOOP SCND0629
LSTENT BEGINNING OF LAST ENTRY SCND0630
READED SCND0631
RLADRS PZE QTALEN+1 SCND0632
XENTLN PZE ENTLEN SCND0633
READM PZE 1 SMODE OF REFERENCE SCND0634
WRITEM PZE 2 WRITE SMODE SCND0635
RETV VAL TO BE RETURN SCND0636
BUFINX INDEX IN READ BUFFER SCND0637
EOFCT END OF FILE WORD COUNT SCND0638
MYNAME BCI 4,SCNDIR FILE ENTRY NO. SCND0639
BCI 1,SCNDIR ITEMS TO BE SAVED AND UNSAVED SCND0640
XRN -XR4,,XR1 SCND0641
*** XR2,,XR3 SCND0642
XRSW -XR4,,XR2 OF SWITCH SCND0643
SMODE MODE OF SCAN SCND0644
X BSS 5 WHERE AND WHAT OF SCAN SCND0645
PROBN SYN X SCND0646
PROGN SYN X+1 SCND0647
XRELAD SYN X+2 SCND0648
ALPHA SYN X+3 SCND0649
BETA SYN X+4 SCND0650
DIRSAV BSS ENTLEN+1 TEMP FOR A STATUS ENTRY SCND0651
NSAVE SYN *-XRN+1 SCND0652
* DATA FOR FREQUENCY BOOKKEEPING SCND0653
ONES OCT 777777777777 SCND0654
FREQL LAST INITIAL FREQUENCY SCND0655
SAVING 200*4 MAGIC PARAMETER (INCREMENT FOR EACH USE) SCND0656
DAYS PERSONAL COUNT OF TIME SINCE CTSS CAME UP. SCND0657
TDAY DEC 5244000 =60*60*60*24 SCND0658
* SCND0659
XMFD BCI 2,M.F.D.(FILE) X FOR LOOKING UP UFD SCND0660
PZE 0 SCND0661
BSS 2 SCND0662
* SCND0663
MFDREL RELADR OF MFD IN MFD SCND0664
DUP 1,2 STATUS TABLE FOR MFD SCND0665
MFD BCI 2,M.F.D.(FILE) SCND0666
VFD 9/65,4/2,5/3,18/0 DUMMY DATE-TIME SCND0667
VFD 9/65,4/2,5/3,18/0 DUMMY DATE-AUTHOR SCND0668
VFD 18/0,3/1,15/BUFSIZ SCND0669
VFD 3/0,15/-1,3/1,15/BUFSIZ-1 SCND0670
VFD 18/M*10000,18/M*10000 FIRST-LAST SCND0671
AC PZE IOSMEM CORE SWITCH SCND0672
AE PZE A,,NREAD SCND0673
APNT PZE A,,** SCND0674
MPNT MFD+2,,ENTLEN POINTER TO CANNED MFD SCND0675
ZERO PZE =0,,1 SCND0676
SPRIOR DEC 0 TOP PRIOR SCND0677
WRADR WORKING RELATIVE ADR (MUST PRECEED A) SCND0678
A BSS NREAD SCND0679
REM SCND0680
DUP 1,NDIR 1 FREQUENCY VECTOR SCND0681
FREQ PZE 2 =TIME OPENED+INCRMENT FOR EACH USE. SCND0682
DUP 1,NDIR SCND0683
USED SCND0684
DUP 1,NDIR SCND0685
RELADR PZE 0 SCND0686
DUP 1,NDIR SCND0687
DIRPNT PZE **,4 POINTERS TO DIRECTORIES SCND0688
DUP 1,NDIR SCND0689
BUFPNT PZE **BUFSIZ-BUFPNT*BUFSIZ+BUFBUF,,BUFSIZ POINTERS TO BUFFERSSCND0690
BUFBUF BSS BUFSIZ*NDIR SCND0691
$BLOCK BCD,0084
END SCND0692
* FAP
$BLOCK BCD,1344
ENTRY TRAC TRAC0001
LINK OFF TRAC0002
UNLIST TRAC0003
REM TRAC0004
REM IOEQ0001
REM ..... FILE INPUT/OUTPUT SYSTEM EQUIVALENCE PACKAGE ..... IOEQ0002
REM IOEQ0003
DUSERS EQU 2 MAX. NO. OF USERS OF I/O SYSTEM IOEQ0004
FMAX EQU 3 MAX. NO. OF DEVICES AVAILABLE IN I/O SYSTEMIOEQ0005
IOSMEM EQU 1 MEMORY WHERE I/O SYSTEM RESIDES (1=A, 2=B) IOEQ0006
EJECT IOEQ0007
.REL. SET 0 INITIALIZE RELATIVE A.F.S.T. ADDRESS IOEQ0008
REM IOEQ0009
SETWRD MACRO SYMBOL TO SET UP ACTIVE FILE ENTRIES IOEQ0010
IRP SYMBOL .. IOEQ0011
PMC ON .. IOEQ0012
SYMBOL SYN .REL. .. IOEQ0013
PMC OFF .. IOEQ0014
IRP .. IOEQ0015
.REL. SET .REL.+1 .. BUMP RELATIVE ADDRESS IOEQ0016
SETWRD END .. IOEQ0017
REM IOEQ0018
SETWRD (RPROBN) IOEQ0019
SETWRD (RPROGN) IOEQ0020
SETWRD (RNAME1) IOEQ0021
SETWRD (RNAME2) IOEQ0022
SETWRD (RMODE) IOEQ0023
SETWRD (FPROBN) IOEQ0024
SETWRD (FPROGN) IOEQ0025
SETWRD (FNAME1) IOEQ0026
SETWRD (FNAME2) IOEQ0027
SETWRD (DAYTIM,LPROBN) IOEQ0028
SETWRD (DATELU,AUTHOR,LPROGN) IOEQ0029
SETWRD (MODE,ILOCK,F,RCOUNT) IOEQ0030
SETWRD (RWSTAT,S,W,R,NORECS,P,LCOUNT,LNAME1) IOEQ0031
SETWRD (POINTR,LNAME2) IOEQ0032
SETWRD (ASGNSW,REDREC,REDWRD) IOEQ0033
SETWRD (WRTREC,WRTWRD) IOEQ0034
SETWRD (CHNG,PRIME,BUFREC,BUFADR) IOEQ0035
SETWRD (WINDEX,DINDEX) IOEQ0036
SETWRD (DR,DW,DCOUNT,DADDRS) IOEQ0037
SETWRD (PRIOR,IOTASK,EFLAG,CURREC) IOEQ0038
SETWRD (SMTMP1) IOEQ0039
SETWRD (SMTMP2) IOEQ0040
REM IOEQ0041
SETWRD (ACTLNG) LENGTH OF SINGLE ACTIVE FILE ENTRY IOEQ0042
EJECT IOEQ0043
MACRO TO ASSIGN CONSECUTIVE STORAGE LOCATIONS IOEQ0044
SYMBOL ASTORE BLOCK,NWORDS .. WITHIN A BLOCK IOEQ0045
PMC ON .. IOEQ0046
SYMBOL SYN BLOCK .. IOEQ0047
PMC OFF .. IOEQ0048
TMP SET NWORDS .. IOEQ0049
BLOCK SET BLOCK+TMP .. IOEQ0050
ASTORE END .. IOEQ0051
REM IOEQ0052
AFST SET 0 DEFINE ENTRIES IN ACTIVE FILE STATUS TABLE IOEQ0053
REM IOEQ0054
PROBNO ASTORE AFST,1 USER'S PROBLEM NUMBER IN BCD IOEQ0055
PROGNO ASTORE AFST,1 USER'S PROGRAMMER NUMBER IN BCD IOEQ0056
AUTHNO ASTORE AFST,1 USER'S 'AUTHOR' NUMBER IN BINARY IOEQ0057
URCODE ASTORE AFST,1 USER'S RESTRICTION CODE IOEQ0058
LIMITS ASTORE AFST,1 USER'S CORE LIMITS PZE LOWADR,,HIADR IOEQ0059
RELOC ASTORE AFST,1 USER'S RELOCATION IOEQ0060
FPRIOR ASTORE AFST,1 USER'S FILE PRIORITY SETTING IOEQ0061
ERRILC ASTORE AFST,1 LOCATION OF CALL RESULTING IN LAST ERROR IOEQ0062
ERNAME ASTORE AFST,1 NAME OF ENTRY IN WHICH ERROR WAS DISCOVEREDIOEQ0063
ERCODE ASTORE AFST,1 ERROR CODE OF LAST ERROR IOEQ0064
IOCODE ASTORE AFST,1 I/O ERROR CODE IF ANY OF LAST ERROR IOEQ0065
ENAME1 ASTORE AFST,1 FILE NAME(1) OF FILE INVOLVED IN LAST ERRORIOEQ0066
ENAME2 ASTORE AFST,1 FILE NAME(2) OF FILE INVOLVED IN LAST ERRORIOEQ0067
ERCALL ASTORE AFST,1 LOCATION OF LAST CALL TO ERROR OR IOERR IOEQ0068
QUEUE1 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(1) IOEQ0069
QUEUE2 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(2) IOEQ0070
QUEUE3 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(3) IOEQ0071
QUEUE4 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(4) IOEQ0072
QUEUE5 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(5) IOEQ0073
QUEUE6 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(6) IOEQ0074
QUEUE7 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(7) IOEQ0075
REM IOEQ0076
AFENTY ASTORE AFST,ACTLNG STORAGE FOR A SINGLE ACTIVE FILE ENTRY IOEQ0077
REM IOEQ0078
TBLMIN ASTORE AFST,0 MINIMUM LENGTH FOR USER I/O STATUS TABLE IOEQ0079
EJECT IOEQ0080
EFA OPSYN NOP EFFECTIVE ADDRESS PARAMETER FLAG IOEQ0081
PAR OPSYN PTH NORMAL PARAMETER FLAG IOEQ0082
REM IOEQ0083
ION OPSYN PON I/O NON-TRANSMIT AND PROCEED IOEQ0084
IOP OPSYN PTW I/O TRANSMIT AND PROCEED IOEQ0085
IOD OPSYN PZE I/O DISCONNECT IOEQ0086
REM IOEQ0087
HOMOP MACRO GENERATE INSTRUCTION TO RESET ECC TO 'HOME'IOEQ0088
IFF IOSMEM-1,0,1 IOEQ0089
SEA HOME INSTRUCTION FOR MEMORY A IOEQ0090
IFF IOSMEM-2,0,1 IOEQ0091
SEB HOME INSTRUCTION FOR MEMORY B IOEQ0092
IFF IOSMEM-3,0,1 IOEQ0093
SEC HOME INSTRUCTION FOR MEMORY C IOEQ0094
HOMOP END IOEQ0095
REM TRAC0006
LIST TRAC0007
TRAC ENK TRAC0008
XCL TRAC0009
ERA =O525252000000 TRAC0010
XCL TRAC0011
STZ NAME TRAC0012
SLQ NAME TRAC0013
ZET NAME TRAC0014
TRA 2,7 TRAC0015
STA RETV TRAC0016
XCL TRAC0017
CAL 1,7 TRAC0018
SLW NAME TRAC0019
CAL* 1,4 TRAC0020
STA SMODE TRAC0021
CAL 2,4 TRAC0022
STA IO2 TRAC0023
TCOA * TRAC0024
WTDA 9 TRAC0025
RCHA IO TRAC0026
TCOA * TRAC0027
TRCA * TRAC0028
XCL TRAC0029
TRA 2,7 TRAC0030
IO IOCP NAME,,3 TRAC0031
IO2 IOCD **,,5 TRAC0032
NAME TRAC0033
RETV BCI 1, , TRAC0034
SMODE BCI 1, , TRAC0035
$BLOCK BCD,0084
END TRAC0036
* FAP
$BLOCK BCD,1344
* STICKY MODULE (STIK**) STIK0001
REM STIK0002
* TSX STICKY,4 STIK0003
* MODE STIK0004
* X STIK0005
* Y STIK0006
* RET IN AC 0=OK, 1=DOESN'T EXIST, 2=DON'T KNOW, 3=DISK ERROR STIK0007
* STIK0008
ENTRY STICKY STIK0009
ENTRY SAVING STIK0010
EXTERN SCNDIR,PUSH,POP,GETDAY,GETEFA,LATER STIK0011
ENTLEN EQU 7 LENGTH OF MFD/UFD ENTRY STIK0012
QTALEN EQU 3 NUMBER OF QUOTA WORDS STIK0013
NSTICK EQU 50 NUMBER OF STICKY ENTRYS STIK0014
LREG EQU ENTLEN+6 LENGTH OF STICKY ENTRY STIK0015
NREG EQU LREG*NSTICK LENGTH OF STICKY TABLE STIK0016
STICKY SCA XRS,4 SAVE XR'S STIK0017
SXD XRS,1 STIK0018
SXA XRS+1,2 STIK0019
TSX $TRAC,7 STIK0020
BCI 1,0E STK STIK0021
CAL* 1,4 STIK0022
SLW MODE SAVE MODE STIK0023
CAL 2,4 COPY X INTO STICKY'S CORE STIK0024
TSX GETEFA,4 STIK0025
ACL =5 STIK0026
STA XA STIK0027
LAC XRS,4 STIK0028
CAL 3,4 GET Y ADR STIK0029
TSX GETEFA,4 STIK0030
PAC ,2 INTO -IR2 STIK0031
AXT 5,1 STIK0032
XA CAL **,1 STIK0033
SLW X+5,1 STIK0034
TIX *-2,1,1 STIK0035
CAL PROBN SETUP FOR POSSIBLE CALL TO PUT OR UPDATE STIK0036
LDQ PROGN STIK0037
LAC MODE,1 STIK0038
AXC RET2-1,4 RETURN TO RETO STIK0039
TRA* *+1,1 STIK0040
INIT ZERO BUFFER STIK0041
RW READ STIK0042
RW WRITE STIK0043
UPDATE UPDATE USER STIK0044
PUTY SAVE NEW ENTRY STIK0045
* STIK0046
INIT AXT NREG,4 ZERO BUFFER STIK0047
STZ PB,4 STIK0048
TIX *-1,4,1 STIK0049
TRA RET2 MAKE SRCH INIT SCNDIR STIK0050
* STIK0051
RW CAL TOTAL BUMP TOTAL NUMBER OF RW CALLS STIK0052
ACL =1 STIK0053
SLW TOTAL STIK0054
CAL XRELAD HERE ON READ/WRITE STIK0055
TZE LOOKAB CHECK FOR QUOTA WORD STIK0056
LAS XQTALN IF NOT ZERO BUT LESS THAN QTALEN STIK0057
TRA LOOKAB STIK0058
TRA *+1 IT IS QUOTA WORD STIK0059
CAL PROBN SCAN FOR RELADR STIK0060
LDQ PROGN STIK0061
TSX SCN,4 STIK0062
TRA RET2 NOT FOUND STIK0063
CAL RELADR,1 STIK0064
ERA XRELAD STIK0065
TNZ MORE STIK0066
CAL MODE FOUND, READ/WRITE QUOTA WORD STIK0067
ERA =1 STIK0068
TZE RQ READ STIK0069
CAL 1,2 WRITE STIK0070
SLW NA,1 STIK0071
TRA WE STIK0072
RQ CAL NA,1 STIK0073
SLW 1,2 STIK0074
LDQ =0 RETURN 0 (OK) STIK0075
TRA UPDTIM STIK0076
* STIK0077
LOOKAB CAL PROBN DO NOT ACCEPT MFD FILE MFD FILE STIK0078
ERA MFD BECAUSE IT WILL NOT UPDATE CORRECTLY STIK0079
TNZ LKAB STIK0080
CAL PROGN STIK0081
ERA MFD+1 STIK0082
TNZ LKAB STIK0083
CAL ALPHA STIK0084
ERA MFD STIK0085
TNZ LKAB STIK0086
CAL BETA STIK0087
ERA MFD+1 STIK0088
TZE RET2 STIK0089
LKAB CAL PROBN HERE TO LOOK FOR ALPHA BETA STIK0090
LDQ PROGN STIK0091
TSX SCN,4 STIK0092
TRA NONEW SETUP TO SCAN FOR PROBN,PROGN,ALPHA,BETA STIK0093
CAL NA,1 CHECK NEW ALPHA AND BETA STIK0094
ERA ALPHA STIK0095
TNZ MORE LOOK SOME MORE STIK0096
CAL NB,1 STIK0097
ERA BETA STIK0098
TNZ MORE STIK0099
CAL RELADR,1 DON'T ACCEPT IF QUOTA WORD STIK0100
TZE *+5 STIK0101
LAS XQTALN STIK0102
TRA *+3 STIK0103
TRA MORE STIK0104
TRA MORE STIK0105
CAL MODE FOUND, READ OR WRITE IT STIK0106
ERA =1 TEST FOR READ STIK0107
TZE R YES, GO TO READ STIK0108
AXT ENTLEN,4 WRITE CALL COPY ENTRY STIK0109
CAL 1,2 SKIP RELADR STIK0110
SLW NA,1 STIK0111
TXI *+1,1,-1 STIK0112
TXI *+1,2,-1 STIK0113
TIX *-4,4,1 STIK0114
TXI *+1,1,ENTLEN MOVE XR1 BACK TO TOP OF ENTRY STIK0115
TXI *+1,2,ENTLEN AND IR2 STIK0116
WE CAL =1 SET CHANGED SWITCH STIK0117
ORS FREQ,1 STIK0118
LDQ =0 RETURN 0 (OK) STIK0119
TRA UPDTIM AND INCREASE USEAGE STIK0120
R AXT ENTLEN+1,4 MOVE RELADR AND MOVE ENTRY STIK0121
CAL RELADR,1 STIK0122
SLW 0,2 STIK0123
TXI *+1,1,-1 STIK0124
TXI *+1,2,-1 STIK0125
TIX *-4,4,1 STIK0126
TXI *+1,1,ENTLEN+1 STIK0127
TXI *+1,2,ENTLEN+1 STIK0128
LDQ =0 RETURN 0 (OK) STIK0129
TRA UPDTIM AND UPDATE USED STIK0130
* STIK0131
NONEW NZT ALPHA HERE IF NOT A NEW ALPHA BETA STIK0132
ZET BETA IF NOT ZERO STIK0133
TRA LKOLD LOOK THROUGH OLD ENTRYS STIK0134
CAL MODE IF WRITING STIK0135
ERA =2 STIK0136
TNZ RET2 STIK0137
TSX PUTY,4 KEEP IT STIK0138
CAL ONES SET REL UNKOWN STIK0139
SLW RELADR,1 STIK0140
TRA WE STIK0141
LKOLD CAL PROBN HERE TO STIK0142
LDQ PROGN SCAN TO SEE IF IT IS AN OLD ENTRY STIK0143
TSX SCN,4 STIK0144
TRA RET2 NOT FOUND ANYWHERE STIK0145
CAL OA,1 CHECK ALPHA BETA STIK0146
ERA ALPHA STIK0147
TNZ MORE STIK0148
CAL OB,1 STIK0149
ERA BETA STIK0150
TNZ MORE STIK0151
CAL RELADR,1 DON'T ACCEPT IF QUOTA WORD STIK0152
TZE *+5 STIK0153
LAS XQTALN STIK0154
TRA *+3 STIK0155
TRA MORE STIK0156
TRA MORE STIK0157
LDQ =1 RETURN 1 (DOESN'T EXIST) STIK0158
* STIK0159
UPDTIM CAL GOOD UPDATE GOOD COUNT STIK0160
ACL =1 STIK0161
SLW GOOD STIK0162
CAL FREQL COMPUTE TOP STIK0163
ALS 1 STIK0164
SBM FREQD STIK0165
SLW TOP TOP=FREQL+(FREQL-FREQD) STIK0166
CAL FREQ,1 UPDATE TIME STIK0167
ADM SAVING STIK0168
TZE RET DON'T LET IT ROLL OVER STIK0169
LAS TOP IF .G.TOP STIK0170
TRA RET DON'T STO STIK0171
TRA *+1 STIK0172
SLW FREQ,1 STIK0173
TRA RET MQ HAS BEEN UNTOUCHED SINCE UPDTIM STIK0174
* STIK0175
RET2 LDQ =2 RET 2 (DON'T KNOW) STIK0176
RET LAC XRS,4 STIK0177
LXD XRS,1 STIK0178
LXA XRS+1,2 STIK0179
XCL GET RETURN IN AC STIK0180
TSX $TRAC,7 STIK0181
BCI 1,0R STK STIK0182
TRA 4,4 STIK0183
* STIK0184
PUTY ZET UPDING IF PUT WHILE UPDATING STIK0185
TRA 1,4 IGNORE IT STIK0186
CAL PROBN DO NOT KEEP MFD FILE MFD FILE STIK0187
ERA MFD STIK0188
TNZ PUTT STIK0189
CAL PROGN STIK0190
ERA MFD+1 STIK0191
TNZ PUTT STIK0192
CAL ALPHA STIK0193
ERA MFD STIK0194
TNZ PUTT STIK0195
CAL BETA STIK0196
ERA MFD+1 STIK0197
TZE 1,4 STIK0198
PUTT SCA XRP,4 HERE TO MAKE ROOM FOR Y STIK0199
AXT NREG,1 LOOK FOR MOST USELESS ENTRY STIK0200
SXA TEMP,1 STIK0201
CAL ONES GIVE EVERYBODY A CHANCE STIK0202
PL LAS FREQ,1 STIK0203
TRA *+4 IF USELESS STIK0204
TRA *+1 STIK0205
TIX PL,1,LREG STIK0206
TRA P1 FOUND HIM STIK0207
CAL FREQ,1 STIK0208
SXA TEMP,1 STIK0209
TZE P1 IF ZERO FREQ, USE IT STIK0210
TIX PL,1,LREG STIK0211
P1 LXA TEMP,1 STIK0212
P2 CAL FREQ,1 STIK0213
SLW FREQD SET LAST DELETED FREQ STIK0214
LBT CHECK CHANGED SWITCH STIK0215
TRA PNOUPD OFF STIK0216
CAL PB,1 ON, UPDATE USER TO DISK STIK0217
LDQ PG,1 STIK0218
TSX UPDATE,4 STIK0219
TRA P2 STIK0220
PNOUPD SXA XRP2,2 CHECK IF NEW IS PROTECTING OLD STIK0221
PXA ,1 STIK0222
PAX ,2 SAVE THIS ENTRY INDEX STIK0223
CAL PB,1 AND SCAN PB-PG STIK0224
LDQ PG,1 STIK0225
TSX SCN,4 STIK0226
TRA CPX STIK0227
CAL NA,2 STIK0228
ERA OA,1 STIK0229
TNZ MORE STIK0230
CAL NB,2 STIK0231
ERA OB,1 STIK0232
TNZ MORE STIK0233
STZ OA,1 STIK0234
STZ OB,1 STIK0235
TRA MORE STIK0236
CPX PXA ,2 STIK0237
PAX ,1 STIK0238
XRP2 AXT ,2 STIK0239
AXT 5,4 COPY X INTO DIRECTORY STIK0240
CAL X+5,4 STIK0241
SLW PB,1 STIK0242
TXI *+1,1,-1 STIK0243
TIX *-3,4,1 STIK0244
AXT ENTLEN+1,4 AND COPY Y STIK0245
CAL 0,2 STIK0246
SLW PB,1 STIK0247
TXI *+1,1,-1 STIK0248
TXI *+1,2,-1 STIK0249
TIX *-4,4,1 STIK0250
TXI *+1,1,LREG STIK0251
TXI *+1,2,ENTLEN+1 STIK0252
TLOOP TSX GETDAY,4 STIK0253
XCL STIK0254
ADD DAYS ADD MULTIP OF 24 HRS STIK0255
ALS 2 STIK0256
TNZ *+2 STIK0257
CAL =4 MAKE SURE IT IS NONZERO STIK0258
LAS FREQL STIK0259
TRA TOK STIK0260
TRA TOK STIK0261
CAL DAYS WE PASSED MIDNIGHT STIK0262
ADM TDAY STIK0263
SLW DAYS STIK0264
TRA TLOOP STIK0265
TOK SLW FREQ,1 STIK0266
SLW FREQL STIK0267
NZT NA,1 IF NEW IS ZERO STIK0268
ZET NB,1 STIK0269
TRA *+3 STIK0270
CAL ONES STIK0271
SLW RELADR,1 STIK0272
LAC XRP,4 RESTOR AND RETURN STIK0273
TRA 1,4 STIK0274
* STIK0275
UPDATE SCA XRU,4 SAVE XR'S STIK0276
SXD XRU,1 STIK0277
SLW UPB SAVE PROBN STIK0278
STQ UPG AND PROGN STIK0279
TSX PUSH,4 SAVE IR'S STIK0280
XRS-1,,NSAV STIK0281
* STIK0282
STL UPDING SAY WE ARE UPDATING STIK0283
STL RSPNT FIRST REL UNKOWN RESET SCNDIRS POINTER STIK0284
UPLOP CAL ONES TO RAISE UPDREL TO TOP STIK0285
SLW UPDREL STIK0286
STZ LOWX1 RESET FOUND ONE INDEX STIK0287
CAL UPB STIK0288
LDQ UPG STIK0289
TSX SCN,4 SCAN PROBN-PROGN STIK0290
TRA UPBOT STIK0291
CAL FREQ,1 IF IT HAS NOT CHANGED STIK0292
LBT STIK0293
TRA MORE IGNORE IT STIK0294
CAL RELADR,1 CHECK FOR LOWER STIK0295
LAS UPDREL STIK0296
TRA MORE STIK0297
NZT LOWX1 STIK0298
SXA LOWX1,1 IT IS LOWER SAVE INDEX STIK0299
SLW UPDREL AND RELADR STIK0300
TRA MORE STIK0301
UPBOT NZT LOWX1 DID WE FIND ONE STIK0302
TRA UPRET NO, RETURN STIK0303
LXA LOWX1,1 YES, UPDATE IT STIK0304
CAL PB,1 SETUP WRITE X STIK0305
LDQ PG,1 STIK0306
SLW WX STIK0307
STQ WX+1 STIK0308
CAL RELADR,1 IF RELADR GIVEN, USE IT STIK0309
LAS ONES STIK0310
HTR * GREATER THAN ALL ONES STIK0311
ZAC STIK0312
SLW WX+2 STIK0313
STZ WX+3 ZERO ALPHA BETA STIK0314
STZ WX+4 STIK0315
ZET WX+2 IF RELADR AL AND BTA=0 STIK0316
TRA UPWT STIK0317
NZT RSPNT HAVE WE RESET POINTER STIK0318
TRA *+6 STIK0319
STZ RSPNT STIK0320
TSX SCNDIR,4 STIK0321
RSMODE STIK0322
WX STIK0323
* STIK0324
ZET NA,1 STIK0325
TRA UPWT STIK0326
NZT NB,1 STIK0327
TRA UPNOER DON'T WRITE STIK0328
UPWT TSX SCNDIR,4 STIK0329
WRITEM WRITE MODE STIK0330
WX STIK0331
RELADR,1 STIK0332
SLW TEMP STIK0333
TZE UPNOER STIK0334
TSX LATER,4 STIK0335
PB,1 SET LATENT ERROR STIK0336
UPNOER CAL =O777777777776 RESET CHANGED SWITCH STIK0337
ANS FREQ,1 STIK0338
NZT NA,1 IF Y IS ZERO STIK0339
ZET NB,1 STIK0340
TRA YNZ STIK0341
CAL ONES SET UNKOWN RELADR STIK0342
SLW RELADR,1 STIK0343
NZT OA,1 IF ENTRY IS EMPTY STIK0344
ZET OB,1 STIK0345
TRA UPLOP STIK0346
STZ PB,1 GIVE IT BACK STIK0347
STZ PG,1 STIK0348
STZ FREQ,1 STIK0349
TRA UPLOP AND DON'T UPDATE OLD A B STIK0350
YNZ CAL NA,1 SET OLD AB TO NEW AB STIK0351
LDQ NB,1 STIK0352
SLW OA,1 STIK0353
STQ OB,1 STIK0354
TRA UPLOP STIK0355
UPRET TSX POP,4 UNSAVE STIK0356
* STIK0357
STZ UPDING STIK0358
LAC XRU,4 STIK0359
LXD XRU,1 STIK0360
TRA 1,4 STIK0361
XRU -XR4,,XR1 STIK0362
UPDREL STIK0363
LOWX1 STIK0364
UPB STIK0365
UPG STIK0366
RSMODE PZE 4 STIK0367
RSPNT STIK0368
* STIK0369
SCN SLW SPB SAVE PROBN-PROGN IN SAVED STOR STIK0370
STQ SPG STIK0371
AXT NREG,1 LOOK FOR PROGN-PROBN STIK0372
XCL STIK0373
SCNL LAS PG,1 CHECK PROGN STIK0374
TRA *+2 STIK0375
TRA *+3 STIK0376
TIX SCNL,1,LREG STIK0377
TRA 1,4 GIVE END OF LIST RETURN STIK0378
XCL STIK0379
LAS PB,1 CHECK PROBN STIK0380
TRA *+2 STIK0381
TRA 2,4 FOUND ONE STIK0382
XCL STIK0383
TIX SCNL,1,LREG STIK0384
TRA 1,4 STIK0385
MORE LDQ SPB STIK0386
CAL SPG STIK0387
TIX SCNL,1,LREG STIK0388
TRA 1,4 STIK0389
SPB PROBN OF SEARCH STIK0390
SPG STIK0391
* STIK0392
BCI 1,STICKY STIK0393
XRS -XR4,,XR1 STIK0394
XR2 STIK0395
XRP -XR4 STIK0396
X BSS 5 WHAT WE ARE LOOKING FOR STIK0397
PROBN SYN X STIK0398
PROGN SYN PROBN+1 STIK0399
XRELAD SYN PROGN+1 STIK0400
ALPHA SYN XRELAD+1 STIK0401
BETA SYN ALPHA+1 STIK0402
NSAV SYN *-XRS+1 STIK0403
MODE MODE OF CALL STIK0404
TEMP STIK0405
WX BSS 5 STIK0406
MFD BCI 2,M.F.D.(FILE) STIK0407
UPDING ON IF UPDATING STIK0408
XQTALN QTALEN STIK0409
DAYS STIK0410
TDAY DEC 5144000 STIK0411
WRITEM PZE 2 MODE OF WRITE CALL STIK0412
ONES OCT 777777777777 STIK0413
SAVING 200*4 STIK0414
PZE NSTICK FOR MONITORING PROGS STIK0415
TOP HIGHEST FREQ ALLOWED STIK0416
FREQL LAST INITAL FREQ STIK0417
FREQD LAST DELETED FREQ STIK0418
GOOD TOTAL ENTRYS FOUND IN TABLE STIK0419
TOTAL TOTAL TIMES ASKED STIK0420
REG BSS NREG STIK0421
PB SYN REG+NREG STIK0422
PG SYN PB+1 PROGN STIK0423
FREQ SYN PG+1 USE FREQUENCY NUMBER STIK0424
OA SYN FREQ+1 OLD ALPHA STIK0425
OB SYN OA+1 OLD BETA STIK0426
RELADR SYN OB+1 RELITAVE ADDRESS STIK0427
NA SYN RELADR+1 STIK0428
NB SYN NA+1 NEW BETA STIK0429
$BLOCK BCD,0084
END STIK0430
* FAP
$BLOCK BCD,1344
ENTRY PUSH PUSH0001
ENTRY POP PUSH0002
ENTRY PRESET PUSH0003
LINK ON PUSH0004
NPDL SYN 80 PUSH0005
* TSX $PUSH,4 PUSH0006
* PZE A,,N BLOCK TO BE SAVED PUSH0007
* FULL FULL RETURN* PUSH0008
* PUSH0009
* TSX $POP,4 PUTS BACK WHERE IT CAME FROM PUSH0010
* EMPTY NO MORE LEFT RETURN* PUSH0011
* PUSH0012
* TSX $PRESET,4 RESETS PUSH DOWN STACK PUSH0013
* PUSH0014
PUSH SCA XRS,4 SAVE RETURN PUSH0015
CAL 1,4 GET A,,N PUSH0016
ARS 18 PUSH0017
ACL 1,4 GET BES,,N PUSH0018
SLW TEMP SAVE IT PUSH0019
ACL =O1000001 ADD ONE SPACE PUSH0020
PDX ,4 PUSH0021
STA CAL1 PUSH0022
ACL PDPNT CHECK FOR ROOM PUSH0023
STD PDPNT UP TOTAL COUNT PUSH0024
LAS PDLEN PUSH0025
TRA FULL NO ROOM PUSH0026
TRA *+1 PUSH0027
PXA ,4 GET NEW BES OF PDL PUSH0028
ACL PDPNT PUSH0029
STA SLW1 PUSH0030
STA PDPNT PUSH0031
CAL1 CAL **,4 PUSH0032
SLW1 SLW **,4 PUSH0033
TIX *-2,4,1 INDEX FOR MOVING WORDS PUSH0034
CAL TEMP SAVE BES,,N OF USER'S STORE PUSH0035
SLW* SLW1 PUSH0036
XRS AXC ,4 PUSH0037
TRA 3,4 PUSH0038
FULL LAC XRS,4 FULL RETURN PUSH0039
TRA* 2,4 PUSH0040
* PUSH0041
POP SCA XRP,4 SAVE RETURN PUSH0042
LAC PDPNT,4 GET BES,,N OF USERS STORE PUSH0043
CAL -1,4 PUSH0044
TZE EMPTY OFF THE TOP PUSH0045
STA SLW2 PUSH0046
PDX ,4 GET COUNT PUSH0047
PXA ,4 PUSH0048
SLW TEMP SET TEMP TO N,,N PUSH0049
SXD TEMP,4 PUSH0050
CAL PDPNT STEP PAST POINTER WORD IN STACK PUSH0051
SUB =1 PUSH0052
STA CAL2 PUSH0053
CAL2 CAL **,4 PUSH0054
SLW2 SLW **,4 PUSH0055
TIX *-2,4,1 INDEX FOR RESTOR PUSH0056
CLA PDPNT SUB N,,N FROM PD POINTER PUSH0057
SUB TEMP PUSH0058
SUB =O1000001 PUSH0059
SLW PDPNT PUSH0060
XRP AXC ,4 PUSH0061
TRA 2,4 PUSH0062
EMPTY LAC XRP,4 PUSH0063
TRA* 1,4 PUSH0064
* PUSH0065
PRESET CAL PDRES RESET POINTER PUSH0066
SLW PDPNT PUSH0067
TRA 1,4 PUSH0068
TEMP PUSH0069
PDRES PDL,,0 PUSH0070
PDPNT PDL,,0 PUSH0071
PDLEN 0,,NPDL PUSH0072
PZE EMPTY FLAG PUSH0073
PDL BSS NPDL PUSH0074
$BLOCK BCD,0084
END PUSH0075
* FAP
$BLOCK BCD,1344
* BUFFER CONTROL MODULE - JANUARY 65 - LOUIS POUZIN BUCM0001
TTL PREFACE - ENTRIES - CONSTANTS - STORAGE AREAS BUCM0002
LINK OFF BUCM0003
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0004
* BUCM0005
* BUFFER CONTROL MODULE - LOUIS POUZIN BUCM0006
* PROGRAMMING STAFF NOTE 42 BUCM0007
* MEMO CC-241 BUCM0008
* FILE BUCM2A BUCM0009
* PROJECT MAC - M.I.T. JANUARY 65 BUCM0010
* BUCM0011
* THE BUFFER CONTROL MODULE PROCESSES CALLS FROM THE FILE BUCM0012
* COORDINATOR. CALLS ARE ALREADY CHECKED FOR VALIDITY. BUCM0013
* THE B.C.M. CONVERTS OPERATIONS INVOLVING A (PART OF A) FILE INTO BUCM0014
* AN APPROPRIATE SEQUENCE OF SUB-TASKS. BUCM0015
* EACH SUB-TASK IS EITHER A TRANSFER OF DATA BETWEEN BUFFER AND USER'S BUCM0016
* AREA, OR A CALL TO THE STRATEGY MODULE FOR PROCESSING INVOLVING AN BUCM0017
* INTEGRAL NUMBER OF SEQUENTIAL AND COMPLETE RECORDS. BUCM0018
* BUFFER, RATHER THAN USER'S AREA, IS ASSIGNED TO THE SWAPPING, WHENEVERBUCM0019
* IT IS NOT POSSIBLE, OR EFFICIENT, TO TRANSFER DIRECTLY WITH THE USER'SBUCM0020
* AREA. BUCM0021
* BUCM0022
* THE B.C.M. INITIALIZES OR UPDATES THE FOLLOWING PARAMETERS IN THE BUCM0023
* ACTIVE FILE STATUS TABLE. BUCM0024
* NORECS NUMBER OF RECORDS USED BY THE FILE BUCM0025
* LCOUNT NUMBER OF WORDS IN THE LAST RECORD BUCM0026
* REDREC RECORD NUMBER CONTAINING THE NEXT WORD TO BE READ BUCM0027
* REDWRD ADDRESS OF WORD WITHIN REDREC TO BE READ NEXT BUCM0028
* WRTREC RECORD NUMBER CONTAINING THE NEXT ADDRESS TO BE WRITTEN BUCM0029
* WRTWRD ADDRESS WITHIN WRTREC TO BE WRITTEN NEXT BUCM0030
* CHNG BIT NON ZERO IF CONTENTS OF BUFFER DIFFERS FROM FILE BUCM0031
* PRIME BIT NON ZERO IF CONTENTS OF BUFFER IS A COMPLETE RECORD, BUCM0032
* IN THE CASE OF THE LAST RECORD, PRIME IS NON ZERO IF BUCM0033
* THE BUFFER CONTAINS THE WHOLE (NOT FULL) RECORD, .AND. BUCM0034
* IF THIS RECORD (CHNG OR NOT) IS ALREADY WRITTEN IN THE BUCM0035
* FILE. BUCM0036
* BUFREC NUMBER OF THE RECORD CONTAINED IN THE BUFFER. ZERO = NONEBUCM0037
* BUFADR ADDRESS OF BEGINNING OF BUFFER. ZERO = NO BUFFER BUCM0038
* WINDEX NUMBER OF WORDS WRITTEN INTO THE BUFFER BUCM0039
* DINDEX INDEX OF WORD WITHIN BUFFER TO BE EXCHANGED WITH USER'S BUCM0040
* AREA, BEFORE INITIATING A NEW IO. (FROM 0 TO RCOUNT-1) BUCM0041
* DR BIT NON ZERO IF DELAYED READING FROM BUFFER BUCM0042
* DW BIT NON ZERO IF DELAYED WRITING INTO BUFFER BUCM0043
* DCOUNT NUMBER OF WORDS TO BE MOVED ON A DELAYED TRANSFER BUCM0044
* DADDRS STARTING ADDRESS IN USER'S AREA FOR DELAYED TRANSFER BUCM0045
* PRIOR FILE I/O PRIORITY BUCM0046
* BUCM0047
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0048
* BUCM0049
ENTRY BASIGN BUCM0050
ENTRY BCHECK BUCM0051
ENTRY BCLOSE BUCM0052
ENTRY BOPEN BUCM0053
ENTRY BREAD BUCM0054
ENTRY BSAVE BUCM0055
ENTRY BTRUNC BUCM0056
ENTRY BWRITE BUCM0057
REM BUCM0058
EXTERN MOVE,GETEFA BUCM0059
REM BUCM0060
UNLIST BUCM0061
REM IOEQ0001
REM ..... FILE INPUT/OUTPUT SYSTEM EQUIVALENCE PACKAGE ..... IOEQ0002
REM IOEQ0003
DUSERS EQU 2 MAX. NO. OF USERS OF I/O SYSTEM IOEQ0004
FMAX EQU 3 MAX. NO. OF DEVICES AVAILABLE IN I/O SYSTEMIOEQ0005
IOSMEM EQU 1 MEMORY WHERE I/O SYSTEM RESIDES (1=A, 2=B) IOEQ0006
EJECT IOEQ0007
.REL. SET 0 INITIALIZE RELATIVE A.F.S.T. ADDRESS IOEQ0008
REM IOEQ0009
SETWRD MACRO SYMBOL TO SET UP ACTIVE FILE ENTRIES IOEQ0010
IRP SYMBOL .. IOEQ0011
PMC ON .. IOEQ0012
SYMBOL SYN .REL. .. IOEQ0013
PMC OFF .. IOEQ0014
IRP .. IOEQ0015
.REL. SET .REL.+1 .. BUMP RELATIVE ADDRESS IOEQ0016
SETWRD END .. IOEQ0017
REM IOEQ0018
SETWRD (RPROBN) IOEQ0019
SETWRD (RPROGN) IOEQ0020
SETWRD (RNAME1) IOEQ0021
SETWRD (RNAME2) IOEQ0022
SETWRD (RMODE) IOEQ0023
SETWRD (FPROBN) IOEQ0024
SETWRD (FPROGN) IOEQ0025
SETWRD (FNAME1) IOEQ0026
SETWRD (FNAME2) IOEQ0027
SETWRD (DAYTIM,LPROBN) IOEQ0028
SETWRD (DATELU,AUTHOR,LPROGN) IOEQ0029
SETWRD (MODE,ILOCK,F,RCOUNT) IOEQ0030
SETWRD (RWSTAT,S,W,R,NORECS,P,LCOUNT,LNAME1) IOEQ0031
SETWRD (POINTR,LNAME2) IOEQ0032
SETWRD (ASGNSW,REDREC,REDWRD) IOEQ0033
SETWRD (WRTREC,WRTWRD) IOEQ0034
SETWRD (CHNG,PRIME,BUFREC,BUFADR) IOEQ0035
SETWRD (WINDEX,DINDEX) IOEQ0036
SETWRD (DR,DW,DCOUNT,DADDRS) IOEQ0037
SETWRD (PRIOR,IOTASK,EFLAG,CURREC) IOEQ0038
SETWRD (SMTMP1) IOEQ0039
SETWRD (SMTMP2) IOEQ0040
REM IOEQ0041
SETWRD (ACTLNG) LENGTH OF SINGLE ACTIVE FILE ENTRY IOEQ0042
EJECT IOEQ0043
MACRO TO ASSIGN CONSECUTIVE STORAGE LOCATIONS IOEQ0044
SYMBOL ASTORE BLOCK,NWORDS .. WITHIN A BLOCK IOEQ0045
PMC ON .. IOEQ0046
SYMBOL SYN BLOCK .. IOEQ0047
PMC OFF .. IOEQ0048
TMP SET NWORDS .. IOEQ0049
BLOCK SET BLOCK+TMP .. IOEQ0050
ASTORE END .. IOEQ0051
REM IOEQ0052
AFST SET 0 DEFINE ENTRIES IN ACTIVE FILE STATUS TABLE IOEQ0053
REM IOEQ0054
PROBNO ASTORE AFST,1 USER'S PROBLEM NUMBER IN BCD IOEQ0055
PROGNO ASTORE AFST,1 USER'S PROGRAMMER NUMBER IN BCD IOEQ0056
AUTHNO ASTORE AFST,1 USER'S 'AUTHOR' NUMBER IN BINARY IOEQ0057
URCODE ASTORE AFST,1 USER'S RESTRICTION CODE IOEQ0058
LIMITS ASTORE AFST,1 USER'S CORE LIMITS PZE LOWADR,,HIADR IOEQ0059
RELOC ASTORE AFST,1 USER'S RELOCATION IOEQ0060
FPRIOR ASTORE AFST,1 USER'S FILE PRIORITY SETTING IOEQ0061
ERRILC ASTORE AFST,1 LOCATION OF CALL RESULTING IN LAST ERROR IOEQ0062
ERNAME ASTORE AFST,1 NAME OF ENTRY IN WHICH ERROR WAS DISCOVEREDIOEQ0063
ERCODE ASTORE AFST,1 ERROR CODE OF LAST ERROR IOEQ0064
IOCODE ASTORE AFST,1 I/O ERROR CODE IF ANY OF LAST ERROR IOEQ0065
ENAME1 ASTORE AFST,1 FILE NAME(1) OF FILE INVOLVED IN LAST ERRORIOEQ0066
ENAME2 ASTORE AFST,1 FILE NAME(2) OF FILE INVOLVED IN LAST ERRORIOEQ0067
ERCALL ASTORE AFST,1 LOCATION OF LAST CALL TO ERROR OR IOERR IOEQ0068
QUEUE1 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(1) IOEQ0069
QUEUE2 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(2) IOEQ0070
QUEUE3 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(3) IOEQ0071
QUEUE4 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(4) IOEQ0072
QUEUE5 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(5) IOEQ0073
QUEUE6 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(6) IOEQ0074
QUEUE7 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(7) IOEQ0075
REM IOEQ0076
AFENTY ASTORE AFST,ACTLNG STORAGE FOR A SINGLE ACTIVE FILE ENTRY IOEQ0077
REM IOEQ0078
TBLMIN ASTORE AFST,0 MINIMUM LENGTH FOR USER I/O STATUS TABLE IOEQ0079
EJECT IOEQ0080
EFA OPSYN NOP EFFECTIVE ADDRESS PARAMETER FLAG IOEQ0081
PAR OPSYN PTH NORMAL PARAMETER FLAG IOEQ0082
REM IOEQ0083
ION OPSYN PON I/O NON-TRANSMIT AND PROCEED IOEQ0084
IOP OPSYN PTW I/O TRANSMIT AND PROCEED IOEQ0085
IOD OPSYN PZE I/O DISCONNECT IOEQ0086
REM IOEQ0087
HOMOP MACRO GENERATE INSTRUCTION TO RESET ECC TO 'HOME'IOEQ0088
IFF IOSMEM-1,0,1 IOEQ0089
SEA HOME INSTRUCTION FOR MEMORY A IOEQ0090
IFF IOSMEM-2,0,1 IOEQ0091
SEB HOME INSTRUCTION FOR MEMORY B IOEQ0092
IFF IOSMEM-3,0,1 IOEQ0093
SEC HOME INSTRUCTION FOR MEMORY C IOEQ0094
HOMOP END IOEQ0095
LIST BUCM0063
REM BUCM0064
* BUCM0065
BRICS EQU 6 LENGTH OF BREAD CALLING SEQUENCE BUCM0066
ASCS EQU 2 LENGTH OF BASIGN CALLING SEQUENCE BUCM0067
CHKCS EQU 4 BCHECK CALL. SEQ. LENGTH BUCM0068
CLOCS EQU 4 BCLOSE LENGTH OF CALL. SEQ. BUCM0069
IOLEN EQU 5 MAXIMUM LENGTH OF LIST REQUESTS BUCM0070
OPCS EQU 2 BOPEN CALLING SEQUENCE LENGTH BUCM0071
SACS EQU 4 BSAVE CALLING SEQUENCE LENGTH BUCM0072
TRCS EQU 5 BTRUNC CALLING SEQUENCE LENGTH BUCM0073
* BUCM0074
APND BOOL 1 ON = CALL FOR APPENDING TO THE FILE BUCM0075
BAIL BOOL 2 ON = LAST RECORD NOT WRITTEN INTO FILE BUCM0076
BBUF BOOL 4 ON = CALL BEGINS IN THE BUFFER BUCM0077
BLAST BOOL 10 ON = BUFFER CONTAINS LAST RECORD OF FILE BUCM0078
BREC BOOL 20 ON = CALL BEGINS A RECORD BUCM0079
BUFIN BOOL 40 ON = CALL INVOLVES RECORD IN BUFFER BUCM0080
CHG BOOL 100 ON = CONTENTS OF BUFFER HAS CHANGED BUCM0081
CLOS BOOL 200 ON = BCLOSE CALLED BUCM0082
EBUF BOOL 400 ON = CALL ENDS IN THE BUFFER BUCM0083
EOF BOOL 1000 ON = CALL HITS END OF FILE BUCM0084
EREC BOOL 2000 ON = CALL ENDS UP A RECORD BUCM0085
IOF BOOL 4000 ON = NO I/O, ONLY LIST SETTING BUCM0086
LAST BOOL 10000 ON = LAST RECORD OF FILE INVOLVED IN CALL BUCM0087
MREC BOOL 20000 ON = CALL INVOLVES SEVERAL RECORDS BUCM0088
NDFIL BOOL 40000 ON = CALL INCLUDING LAST WORD OF FILE BUCM0089
PRIM BOOL 100000 ON = BUFFER CONTAINS A COMPLETE RECORD BUCM0090
WFB BOOL 200000 ON = I/O STARTED WITH BUFFER BUCM0091
WRIT BOOL 400000 ON = WRITING OR REWRITING BUCM0092
* BUCM0093
ADMSK OCT 77777 BUCM0094
BUFR PTW BUFFER MEMORY FLAG (TAG) BUCM0095
FRMLOC PZE SOURCE LOCATION FOR MOVE ROUTINE BUCM0096
MEMRY PTW USER MEMORY FLAG (TAG) BUCM0097
PON PON PREFIX 1 BUCM0098
PTH PTH PREFIX 3 BUCM0099
PTW PTW PREFIX 2 BUCM0100
TOLOC PZE TARGET LOCATION FOR MOVE ROUTINE BUCM0101
Z PZE ZERO STORAGE BUCM0102
* BUCM0103
DATA SYN * BUCM0104
ARG BSS BRICS CALLING SEQUENCE STORAGE BUCM0105
BLOC BSS 1 PZE LOC,,NWORDS BUCM0106
BUFFER BSS 1 BUFFER MEMORY FLAG (INTEGER) BUCM0107
CHK1 BSS 1 ADDRESS OF BEGINNING OF BLOC BUCM0108
CHKL1 BSS 1 LENGTH OF BLOC UP TO NEXT RECORD BUCM0109
CHK2 BSS 1 ADDRESS IN BLOC OF 1ST WORD OF NEXT RECORD BUCM0110
CHKL2 BSS 1 LENGTH OF THE INTEGRAL GROUP OF RECORD BUCM0111
CHK3 BSS 1 ADDRESS IN BLOC OF LAST UNCOMPLETE RECORD BUCM0112
CHKL3 BSS 1 LENGTH OF LAST UNCOMPLETE RECORD BUCM0113
DEV BSS 1 POSITIVE DIFF. NORECS(NEW) - NORECS(OLD) BUCM0114
FILENG BSS 1 WORD COUNT FOR THE FILE BUCM0115
IORD BSS IOLEN LIST OF READ REQUESTS BUCM0116
IORW BSS IOLEN LIST OF REWRIT REQUESTS BUCM0117
IOWR BSS IOLEN LIST OF WRITE REQUESTS BUCM0118
LABEL BSS 1 HEADER FOR READ/WRITE RECORDS BUCM0119
MEMORY BSS 1 USER MEMORY FLAG (INTEGER) BUCM0120
NDBLOC BSS 2 LINEAR ADDRESS OF LAST WORD OF THE CALL BUCM0121
NEXCUR BSS 2 LINEAR ADDRESS OF POINTER AFTER THE CALL BUCM0122
RELADR BSS 2 LINEAR ADDRESS OF BEGINNING OF CALL BUCM0123
REQ BSS 1 STORAGE FOR CURRENT IO REQUEST BUCM0124
REQCT BSS 1 REQUEST COUNT FOR STRATEGY CALLS BUCM0125
SW BSS 1 SAVING FOR INDICATORS BUCM0126
T BSS 1 TEMPORARY FOR ANY USE BUCM0127
NDATA SYN * BUCM0128
* BUCM0129
COUNT SYN REQCT WORD COUNT FOR MOVE S/R BUCM0130
ION SYN PON PFX = 1 IO NON TRANSMIT BUCM0131
IOP SYN PTW PFX = 2 IO PROCEED BUCM0132
TTL MACROS PROTOTYPES BUCM0133
* BUCM0134
* MACROS FOR INDEXING LOADING AND UNLOADING INDEX REGISTERS BUCM0135
* BUCM0136
.PMC OPSYN PMC BUCM0137
* BUCM0138
.PCC OPSYN PCC BUCM0139
* BUCM0140
PCC OPSYN REM BUCM0141
.PCC OFF BUCM0142
* BUCM0143
MAC1 MACRO OPCODE,VAR1,VAR2 BUCM0144
VAR1 OPCODE VAR2 BUCM0145
MAC1 END BUCM0146
* BUCM0147
MAC2 MACRO OP BUCM0148
PMC OFF BUCM0149
IRP OP BUCM0150
MAC3 OP BUCM0151
IRP BUCM0152
MAC2 END BUCM0153
* BUCM0154
MAC3 MACRO TO,FL BUCM0155
TO MACRO AD,T,T1 BUCM0156
PMC OFF BUCM0157
IFF T1,1 BUCM0158
.'TO AD,T BUCM0159
IFF T1 BUCM0160
MAC4 FL,AD,T,T1 BUCM0161
TO END BUCM0162
MAC3 END BUCM0163
* BUCM0164
MAC4 MACRO LS,AD,XC,A,T,T1 BUCM0165
IFF 1,LS,L BUCM0166
CAL A,T BUCM0167
MAC5 LS,AD,XC,A,T,T1 BUCM0168
MAC4 END BUCM0169
* BUCM0170
MAC5 MACRO LS,AD,XC,A,T,T1 BUCM0171
IFF 1,LS,L BUCM0172
P'AD'XC ,T1 BUCM0173
IFF 1,LS,S BUCM0174
P'XC'AD ,T1 BUCM0175
IFF 1,LS,S BUCM0176
ST'AD A,T BUCM0177
MAC5 END BUCM0178
* BUCM0179
* MACRO TO REPEAT AN OPERATION CODE WITH VARIOUS FIELDS BUCM0180
DITO MACRO OPCODE,VAR BUCM0181
PMC OFF BUCM0182
IRP VAR BUCM0183
MAC1 OPCODE,VAR BUCM0184
IRP BUCM0185
DITO END BUCM0186
* BUCM0187
REM BUCM0188
* BUCM0189
* MACROS FOR GENERATING CALLS TO THE STRATEGY MODULE BUCM0190
* BUCM0191
MAKNAM MACRO NAM BUCM0192
MAC6 NAM,FMAX,(1,2,3,4,5,6,7,8) BUCM0193
MAKNAM END BUCM0194
* BUCM0195
MAC6 MACRO NAM,FMAX,S,A BUCM0196
IRP S BUCM0197
A SET S-1 BUCM0198
IFF A/FMAX,1 BUCM0199
MAC7 NAM,S BUCM0200
IRP BUCM0201
MAC6 END BUCM0202
* BUCM0203
MAC7 MACRO NAM,S BUCM0204
TSX NAM'S,4 BUCM0205
RMT BUCM0206
EXTERN NAM'S BUCM0207
RMT BUCM0208
MAC7 END BUCM0209
* BUCM0210
MAC8 MACRO NAM BUCM0211
PMC OFF BUCM0212
IRP NAM BUCM0213
MAC1 SYN,NAM'F,*-1 BUCM0214
MAKNAM NAM BUCM0215
IRP BUCM0216
MAC8 END BUCM0217
* BUCM0218
* MACROS FOR GENERATING CALLS TO MOVE S/R BUCM0219
* BUCM0220
MAC9 MACRO CS,S,AD,T BUCM0221
PMC ON BUCM0222
IFF 0,AD BUCM0223
LXA AD,7 BUCM0224
PMC ON BUCM0225
IFF 0,AD BUCM0226
SXA CS,7 BUCM0227
PMC ON BUCM0228
IFF 1,AD BUCM0229
SXA CS,4 BUCM0230
PMC OFF BUCM0231
S SET T BUCM0232
MAC9 END BUCM0233
* BUCM0234
MOVE MACRO DR,FR,TO,CNT,A,B,C,D BUCM0235
PMC OFF BUCM0236
B SET 0 BUCM0237
C SET 0 BUCM0238
D SET 0 BUCM0239
PMC ON BUCM0240
IFF 1,FR BUCM0241
SXA A,4 BUCM0242
PMC OFF BUCM0243
IFF 0,FR BUCM0244
MAC9 A,B,FR BUCM0245
PMC ON BUCM0246
IFF 1,TO BUCM0247
SXA A+1,4 BUCM0248
PMC OFF BUCM0249
IFF 0,TO BUCM0250
MAC9 A+1,C,TO BUCM0251
PMC ON BUCM0252
IFF 1,CNT BUCM0253
SXA A+2,4 BUCM0254
PMC OFF BUCM0255
IFF 0,CNT BUCM0256
MAC9 A+2,D,CNT BUCM0257
PMC ON BUCM0258
STI SW BUCM0259
TSX MOVE,4 BUCM0260
IFF 1,DR,TB BUCM0261
PAR MEMORY,,BUFFER BUCM0262
IFF 1,DR,TU BUCM0263
PAR BUFFER,,MEMORY BUCM0264
A EFA **,B BUCM0265
EFA **,C BUCM0266
EFA **,D BUCM0267
PAR PVIOL BUCM0268
LDI SW BUCM0269
MOVE END BUCM0270
* BUCM0271
* MACRO TO GENERATE CALLS TO SAVBUF S/R BUCM0272
* BUCM0273
SAVB MACRO BUCM0274
PMC ON BUCM0275
TSX SAVBUF,4 BUCM0276
SAVB END BUCM0277
* BUCM0278
* MACRO TO GENERATE CALLS TO TBUF S/R BUCM0279
* BUCM0280
TBUF MACRO BUCM0281
PMC ON BUCM0282
TSX TBUF,4 BUCM0283
TBUF END BUCM0284
* BUCM0285
* BUCM0286
DITO OPSYN,((.LXA,LXA),(.LXD,LXD),(.LAC,LAC),(.LDC,LDC)) BUCM0287
DITO OPSYN,((.SXA,SXA),(.SXD,SXD),(.SCA,SCA),(.SCD,SCD)) BUCM0288
DITO OPSYN,((ZSA,.SXA),(ZSD,.SXD),(SZA,.SXA),(SZD,.SXD)) BUCM0289
SPACE 2 BUCM0290
MAC2 ((LXA,(L,A,X)),(LXD,(L,D,X)),(LAC,(L,A,C)),(LDC,(L,D,C)),BUCM0291
ETC (SXA,(S,A,X)),(SXD,(S,D,X)),(SCA,(S,A,C)),(SCD,(S,D,C))) BUCM0292
MAC8 (OPEN,QTEST,READ,REWRT,WRITE,DFILE,CLOSE) BUCM0293
TTL BASIGN - SETS BUFFER ADDRESS IN FILE TABLE BUCM0294
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0295
* BUCM0296
* TSX BASIGN,4 ASSIGNS A BUFFER TO BE USED FOR BUCM0297
* EFA PTR,T A FILE BUCM0298
* PAR Y,,PVIOL RETURN ADDRESS IF BUFFER VIOLATES BUCM0299
* Y = BUFFER,,SIZE BUCM0300
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0301
SPACE 2 BUCM0302
* BUCM0303
BASIGN SYN * BUCM0304
TSX SAV,5 BUCM0305
AXT ASCS,5 BUCM0306
TSX PICK,4 GET ARGUMENTS BUCM0307
LXD ARG+1,5 BUCM0308
SXA PVIOL,5 SET VIOLATION RETURN BUCM0309
CAL* ARG+1 BUFFER LOCATION AND SIZE BUCM0310
STD AN LENGTH OF BUFFER BUCM0311
PDX ,5 COUNT TO INDEX 5 BUCM0312
PXD ,0 BUCM0313
TXL AO,5,0 IF ZERO, SAME AS ADDRESS 0 BUCM0314
LXA RCOUNT,1,5 RECORD LENGTH BUCM0315
AN TXH PVIOL,5,** IF GREATER THAN ASSIGNED BUFFER, PVIOL BUCM0316
CAL* ARG+1 BUCM0317
ANA ADMSK KEEP ADDRESS BUCM0318
AO SLW BUFADR,1 SET BUFFER ADDRESS, CLEARS BUFFER STATUS BUCM0319
STD WINDEX,1 BUCM0320
TRA RETURN BUCM0321
TTL BCHECK - CHECKS PREVIOUS I/O BUCM0322
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0323
* BUCM0324
* BCHECK FOR PREVIOUS IO FINISHED, OR ERRONEOUS BUCM0325
* BUCM0326
* TSX BCHECK,4 BUCM0327
* EFA PTR,T BUCM0328
* PAR MEMORY,,BUFFER BUCM0329
* PAR ERROR,,FINISH BUCM0330
* PAR PVIOL BUCM0331
* BUCM0332
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0333
* BUCM0334
BCHECK SYN * BUCM0335
TSX SAV,5 SAVE REGISTERS BUCM0336
AXT CHKCS,5 BUCM0337
TSX PICK,4 GET ARGUMENTS BUCM0338
CAL ARG+3 BUCM0339
STA PVIOL SET VIOLATION RETURN BUCM0340
CAL ARG+2 BUCM0341
STA ERROR SET I/O ERROR RETURN BUCM0342
LXA RETURN,4 NORMAL RETURN IS FINISH BUCM0343
CAL QWAIT BUCM0344
STA RETURN WAIT RETURN IS 5,4 BUCM0345
SXA QWAIT,4 BUCM0346
TSX CHKERR,4 RETURNS TO ERROR OR PVIOL IF EVER BUCM0347
TRA RETURN ELSE NORMAL RETURN BUCM0348
TTL BCLOSE - TERMINATES I/O FOR A FILE BUCM0349
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0350
* BUCM0351
* BCLOSE TERMINATES IO OPERATION ON A FILE BUCM0352
* BUCM0353
* TSX BCLOSE,4 BUCM0354
* EFA PTR,T BUCM0355
* PAR MEMORY,,BUFFER BUCM0356
* PAR ERROR,,QWAIT BUCM0357
* PAR PVIOL BUCM0358
* BUCM0359
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0360
* BUCM0361
BCLOSE SYN * BUCM0362
TSX SAV,5 SAVE REGISTERS BUCM0363
SIR CLOS SETS SWITCH BUCM0364
BF AXT CLOCS,5 BUCM0365
TSX PICK,4 PICK UP ARGUMENTS BUCM0366
LXA ARG+2,4 BUCM0367
SXA ERROR,4 SET ERROR RETURN BUCM0368
LXA ARG+3,4 BUCM0369
SXA PVIOL,4 SET VIOLATION RETURN BUCM0370
TSX CHKERR,4 CHECK ERROR OCCURRED BUCM0371
TSX LOCAL,4 SETS SWITCHES BUCM0372
SAVB WRITE BUFFER IF NEEDED BUCM0373
TSX CHKERR,4 MAKE SURE ALL I/O THROUGH BUCM0374
RNT CLOS WAS 'BCLOSE' CALLED BUCM0375
TRA RETURN .. IF NOT, RETURN BUCM0376
* BUCM0377
* CLOSE STRATEGY MODULE BUCM0378
TSX CLOSE,4 BUCM0379
TRA RETURN BUCM0380
TTL BOPEN - INITIALIZES ACTIVE FILE STATUS TABLE BUCM0381
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0382
* BUCM0383
* BUFFER CONTROL MODULE BUCM0384
* NOVEMBER 64 LOUIS POUZIN BUCM0385
* BUCM0386
* TSX BOPEN,4 OPENS A FILE BUCM0387
* EFA PTR,T INITIALIZES FILE STATUS TABLE BUCM0388
* PAR PRIOR,,ERROR READING FROM BEGINNING BUCM0389
* WRITING AFTER THE END BUCM0390
* CLEARS BUFFER ASSIGNMENT BUCM0391
* AND CALLS STRATEGY MODULE BUCM0392
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0393
SPACE 2 BUCM0394
BOPEN SYN * BUCM0395
TSX SAV,5 BUCM0396
AXT OPCS,5 BUCM0397
TSX PICK,4 GET ARGUMENTS BUCM0398
LXD ARG+1,5 BUCM0399
SXA ERROR,5 SET ERROR RETURN BUCM0400
* INITIALIZES ACTIVE FILES STATUS TABLE BUCM0401
CAL =O1000001 BUCM0402
STA REDREC,1 READ POINTERS BUCM0403
STD REDWRD,1 .. BUCM0404
STZ CHNG,1 CLEAR BUFFER STATUS SWITCH BUCM0405
STZ WINDEX,1 POINTERS BUCM0406
STZ DR,1 BUCM0407
CAL* ARG+1 GET PRIORITY CODE BUCM0408
ALS 33 SET IN PFX BUCM0409
STP PRIOR,1 SET PRIORITY BUCM0410
TSX OPEN,4 BUCM0411
CAL PTH VERY LARGE VALUE BUCM0412
SLW RELADR FOR RELATIVE ADDRESS BUCM0413
SIR WRIT WRITING SWITCH BUCM0414
TRA BU GO SET WRITING POINTERS AND RETURN BUCM0415
TTL BSAVE - REWRITES BUFFER INTO FILE BUCM0416
REM BUCM0417
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0418
* BUCM0419
* BSAVE REWRITES PENDING BUFFER ONTO FILE BUCM0420
* BUCM0421
* TSX BSAVE,4 BUCM0422
* EFA PTR,T BUCM0423
* PAR MEMORY,,BUFFER BUCM0424
* PAR ERROR,,QWAIT BUCM0425
* PAR PVIOL BUCM0426
* BUCM0427
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0428
* BUCM0429
BSAVE SYN * BUCM0430
TSX SAV,5 SAVE REGISTERS BUCM0431
TRA BF SAME AS BCLOSE BUCM0432
TTL BTRUNC - TRUNCATING FILE BEFORE SPECIFIED ADDRESS BUCM0433
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0434
* BTRUNC TO TRUNCATE A FILE BEFORE A SPECIFIED ADDRESS BUCM0435
* BUCM0436
* TSX BTRUNC,4 BUCM0437
* EFA PTR,T BUCM0438
* PAR MEMORY,,BUFFER BUCM0439
* PAR RELADR,,EOFRTN RELADR = 0 (OR 1) EMPTIES THE FILE BUCM0440
* PAR ERROR,,QWAIT BUCM0441
* PAR PVIOL,,NIDBUF BUCM0442
* BUCM0443
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0444
* BUCM0445
BTRUNC SYN * BUCM0446
TSX SAV,5 SAVE REGISTERS BUCM0447
AXT TRCS,5 BUCM0448
TSX PICK,4 PICKUP ARGUMENTS BUCM0449
CAL ARG+4 BUCM0450
STA PVIOL SET VIOLATION RETURN BUCM0451
CAL ARG+3 BUCM0452
STA ERROR SET ERROR RETURN BUCM0453
TSX CHKERR,4 CHECKING OF PREVIOUS OPERATION BUCM0454
TSX CHKOFF,4 IS ADDRESS GIVEN IN FILE BUCM0455
PAR EOFRTN NO TRUNCATION BUCM0456
CAL RELADR BUCM0457
TZE CQ SKIP IF ZERO IS SPECIFIED BUCM0458
SBM =1 LAST WORD IN TRUNCATED FILE BUCM0459
SLW RELADR BUCM0460
SLW NDBLOC SET FOR LOCAL S/R BUCM0461
TRA CR BUCM0462
CQ AXT 1,4 BUCM0463
SXA NEXCUR,4 SET TO 1 (WAS 0) BUCM0464
CR SYN * BUCM0465
TSX LOCAL,4 CHECKS FOR LOCATION SURROUNDINGS BUCM0466
LXD RELADR+1,3 RECORD NUMBER WHERE TRUNCATION OCCURS BUCM0467
RNT BBUF IF TRUNCATION OCCURS IN THE BUFFER BUCM0468
TRA BS ELSE REFILL BUFFER BUCM0469
RFT PRIM+BAIL AND BUFFER PRIMED OR LAST BUCM0470
REM PENDING RECORD IN BUFFER BUCM0471
TRA BL GO TRUNCATE BUCM0472
TRA BT ELSE GO PRIME BUCM0473
* BUCM0474
* READS TRUNCATED RECORD IN BUFFER BUCM0475
BS SYN * BUCM0476
CAL BUFREC,1 BUCM0477
STD *+2 BUCM0478
RNT BAIL FORCES WRITING OF LAST RECORD BUCM0479
TXL *+2,3,** SKIP IF TRUNCATION BEFORE RECORD IN BUFFER BUCM0480
SAVB SAVE BUFFER IF BEFORE TRUNCATION BUCM0481
SXD WINDEX,1,8 CLEARS BUFFER BUCM0482
BT SYN * BUCM0483
TXL BL,3,0 SKIP IF DELETES THE WHOLE FILE BUCM0484
SXA LABEL,3 SETS RECORD NUMBER BUCM0485
TSX PRBUF,4 PRIMES BUFFER BUCM0486
SIR WFB SET I/O FLAG BUCM0487
* BUCM0488
* TRUNCATES THE PRESENT BUFFER BUCM0489
BL SYN * BUCM0490
LXD NORECS,1,6 BUCM0491
SXD LABEL,6 SET OLD NORECS BUCM0492
SXD *+1,3 SAVE FOR MATCHING WITH PRESENT LAST RECORD BUCM0493
TXL CP,6,** SKIP IF NORECS DOESN'T CHANGE BUCM0494
RFT WFB IF I/O STARTED AT ALL BUCM0495
TRA QWAIT WAIT BECAUSE DLETE CAN'T STAND IT BUCM0496
CLS =1 -1 FOR DELETE QUEUE BUCM0497
TSX QUEUE,4 CHECK FOR ROOM IN DELETE QUEUE BUCM0498
CP SYN * BUCM0499
TXH CH,3,0 GO AHEAD FOR WHOLE FILE DELETED BUCM0500
ZAC DISCARD BUFFER CONTENTS BUCM0501
STD BUFREC,1 BUCM0502
STP PRIME,1 BUCM0503
STD WINDEX,1 BUCM0504
TRA BC BUCM0505
CH LXA RELADR+1,2 LAST WORD INDEX AFTER TRUNCATION BUCM0506
SXD WINDEX,1,2 SET WINDEX TO NEW LAST COUNT BUCM0507
CAL PTW CHNG FLAG BUCM0508
RNT BAIL BUCM0509
ORA PON PRIME FLAG EXCEPT IF RECORD NOT WRITTEN BUCM0510
ORS PRIME,1 SET IN TABLE BUCM0511
BC SYN * BUCM0512
CAL REDREC,1 READING POINTERS BUCM0513
TSX TOFF,5 CHECK THEY KEEP INTO THE FILE BUCM0514
TSX KUR,4 NO. SET BACK BUCM0515
SIR WRIT NOW SEE WRITING POINTERS BUCM0516
CAL WRTREC,1 BUCM0517
TSX TOFF,5 BUCM0518
TSX KUR,4 BUCM0519
TSX LEN,4 UPDATES FILE LENGTH BUCM0520
LDQ REQCT REQUEST COUNT FOR QTEST BUCM0521
TQP RETURN SKIP IF NO DELETE REQUEST BUCM0522
TXI *+1,3,1 1ST RECORD NO. TO DELETE BUCM0523
SXA LABEL,3 BUCM0524
TSX DFILE,4 BUCM0525
TRA RETURN BUCM0526
TTL BREAD - BWRITE - CHECKING OF CALLING CONDITIONS BUCM0527
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0528
* NOVEMBER 64 LOUIS POUZIN BUCM0529
* BREAD/BWRITE - BUFFER CONTROL MODULE BUCM0530
* CALLING SEQUENCE BUCM0531
* TSX BREAD,4 OR BWRITE BUCM0532
* EFA PTR,T POINTER TO FILE INVOLVED BUCM0533
* PAR MEMORY,,BUFFER FLAGS AS TO WHICH BANK IS CONCERNED BUCM0534
* PAR RELADR,,EOFRTN BUCM0535
* C(RELADR)IS THE WORD RELATIVE ADDRESS IN THE FILE BUCM0536
* EOFRTN IS ADDRESS WHERE TO GO ON END OF FILE OCCURENCE BUCM0537
* PAR Y,,QWAIT C(Y) IS, PZE LOC,,NWORDS BUCM0538
* LOC IS THE ADDRESS WHERE READ/WRITE STARTS BUCM0539
* NWORDS IS THE WORD COUNT FOR THAT REQUEST BUCM0540
* PAR ERROR,,PVIOL BUCM0541
* ERROR IS ADDRESS WHERE TO GO ON I/O ERROR BUCM0542
* PVIOL IS WHERE TO GO ON PROTECTION VIOLATION BUCM0543
* PAR NIDBUF RETURN IF BUFFER NEEDED AND NONE ASSIGNED BUCM0544
* BUCM0545
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM0546
* BUCM0547
REM BUCM0548
REM BUCM0549
BWRITE SYN * BUCM0550
TSX SAV,5 BUCM0551
SIR WRIT SETS SWITCH BUCM0552
TRA A BUCM0553
BREAD SYN * BUCM0554
TSX SAV,5 BUCM0555
A SYN * BUCM0556
REM BUCM0557
* GETS ARGUMENTS FROM CALLING PROGRAM BUCM0558
REM BUCM0559
AXT BRICS,5 BUCM0560
TSX PICK,4 BUCM0561
CAL ARG+4 BUCM0562
STA ERROR SET ERROR RETURN BUCM0563
PDX ,5 BUCM0564
SXA PVIOL,5 SET VIOLATION RETURN BUCM0565
REM BUCM0566
* CHECKS THE HAPPENINGS OF THE PREVIOUS IO REQUESTS BUCM0567
TSX CHKERR,4 CHECK PREVIOUS OPERATION BUCM0568
CAL RELADR BUCM0569
TNZ FF IF RELAT ADDRESS IS ZERO BUCM0570
CAL WRTREC,1 USE CURRENT POINTERS BUCM0571
RNT WRIT ACCORDING TO TYPE OF CALL BUCM0572
CAL REDREC,1 BUCM0573
PAX ,6 WORD POINTER BUCM0574
PDX ,7 RECORD POINTER BUCM0575
TSX LINCOR,4 BUCM0576
SVN Z,6,Z RELATIVE ADDRESS FOR THE CALL BUCM0577
SLW RELADR SAVE RELATIVE ADDRESS BUCM0578
FF SYN * BUCM0579
LAC ARG+3,7 BUCM0580
CAL ,7 PZE LOC,,NWORDS BUCM0581
SLW BLOC BUCM0582
BU TSX CHKOFF,4 CHECK IF BLOC IS IN FILE BUCM0583
PAR OFF BUCM0584
TSX LOCAL,4 CHECK FOR LOCAL CONDITIONS BUCM0585
NZT BLOC TEST IF ZERO WORD COUNT BUCM0586
TRA NULL BUCM0587
TSX SPLIT,4 CONVERTS CALL INTO PIECES BUCM0588
REM BUCM0589
TTL BREAD - BWRITE - CHECKS WHETHER BUFFER IS TO BE USED BUCM0590
* CALL HAS BEEN ACCEPTED AND POSSIBLY ADJUSTED BUCM0591
* BUFFER ASSIGNMENT PROCESS MAY BEGIN BUCM0592
* PROCESS CALL AND CONVERTS INTO STRATEGY CALLS BUCM0593
* BUCM0594
* CHECKS IF BUFFER HAS TO BE USED BUCM0595
* BUCM0596
TBUF CHECKS FOR BUFFER ASSIGNED BUCM0597
TRA *+2 NO. SEE WHAT WE CAN DO BUCM0598
TRA BH YES, USE IT BUCM0599
RNT WRIT IF WRITING BUCM0600
TRA CA BUCM0601
RNT BREC FROM THE BEGINNING OF A RECORD BUCM0602
TRA NIDBUF ELSE ERROR BUCM0603
CAL RELADR BUCM0604
SUB =1 BUCM0605
RFT APND AND NO APPENDING BUCM0606
TRA AB BUCM0607
RFT EREC+NDFIL THRU END RECORD OR END FILE EITHER BUCM0608
TRA CA THEN NO BUFFER REQUIRED BUCM0609
TRA NIDBUF ELSE ERROR BUCM0610
AB TNZ NIDBUF BUCM0611
TTL BREAD - BWRITE - NO BUFFER USED BUCM0612
CA SYN * NO BUFFER REQUIRED NOR ASSIGNED BUCM0613
CAL =1 BUCM0614
TSX QUEUE,4 BUCM0615
* BUCM0616
* READS DIRECTLY INTO USER'S AREA. NO BUFFER USED BUCM0617
* BUCM0618
CAL RELADR+1 RELATIVE ADDRESS IN FILE BUCM0619
SBM =1 WORD COUNT TO SKIP BUCM0620
XCL BUCM0621
LGL 18 BUCM0622
STQ REQ SKIP COUNT IN DECREM. BUCM0623
STA LABEL RECORD NR. IN ADDRESS BUCM0624
TSX SLAST,4 SETS LCOUNT IF NEEDED BUCM0625
CAL REQ SKIP REQUEST BUCM0626
TZE C SKIP IF NO READ AND SKIP BUCM0627
ORA PON NON TRANSMIT PREFIX BUCM0628
TSX READL,4 BUCM0629
C SYN * BUCM0630
CAL BLOC LOC,,COUNT BUCM0631
ORA MEMRY SET MEMORY FLAG BUCM0632
RFT WRIT BUCM0633
TRA BJ GO WRITE BUCM0634
TSX READL,4 BUCM0635
TSX READ,4 BUCM0636
TRA NULL GO UPDATE POINTERS BUCM0637
* BUCM0638
* REWRITES DIRECTLY FROM USER'S AREA BUCM0639
* BUCM0640
BJ SYN * BUCM0641
RFT APND IF NO APPENDING BUCM0642
TRA X ELSE GO AND WRITE BUCM0643
TSX REWRTL,4 BUCM0644
TSX REWRT,4 REWRITE INTEGRAL NUMBER OF RECORDS BUCM0645
RNT BUFIN IF RECORD IN BUFFER WAS INVOLVED BUCM0646
TRA NULL ELSE GO UPDATE POINTERS BUCM0647
ZAC THEN DISCARD BUFFER CONTENTS BUCM0648
STP PRIME,1 BUCM0649
STD BUFREC,1 BUCM0650
STD WINDEX,1 BUCM0651
TRA NULL GO UPDATE POINTERS BUCM0652
* BUCM0653
* WRITES NEW RECORD(S) DIRECTLY FROM USER'S AREA BUCM0654
* BUCM0655
X SYN * BUCM0656
LXA NDBLOC+1,4 NEW LCOUNT BUCM0657
SXD LABEL,4 SET IN LABEL BUCM0658
TSX WRITL,4 WRITE FOR APPENDING BUCM0659
TSX WRITE,4 BUCM0660
TRA UPFIL GO UPDATE POINTERS BUCM0661
TTL BREAD - BWRITE - REWRITING MULTIPLE RECORDS BUCM0662
* BUCM0663
BH SYN * BUCM0664
RNT MREC IF SEVERAL RECORDS BUCM0665
TRA L ELSE GO PROCESS SINGLE RECORD BUCM0666
* PROCESS CALL INVOLVING SEVERAL RECORDS BUCM0667
RNT WRIT IF WRITING BUCM0668
TRA M ELSE GO TO READ SEVERAL RECORDS BUCM0669
* HERE PROCESS WRITING OF SEVERAL RECORDS BUCM0670
RFT APND IF APPENDING BUCM0671
TRA AS GO APPEND BUCM0672
RNT LAST IF NOT LAST RECORD BUCM0673
RNT BREC+EREC AND INTEGRAL RECORDS BUCM0674
TRA *+2 BUCM0675
TRA CA NO BUFFER USED BUCM0676
RNT BUFIN IF BUFFER NOT INVOLVED BUCM0677
TRA Y GO SAVE IT BUCM0678
RNT BBUF BUCM0679
RNT EBUF BUCM0680
TRA CJ BUCM0681
RNT BREC BUCM0682
Y SAVB SAVE BUFFER CONTENTS BUCM0683
CJ SYN * BUCM0684
RFT WFB IF I/O STARTED BUCM0685
RFT BREC AND IF DOESN'T BEGIN A RECORD BUCM0686
TRA *+2 BUCM0687
TRA QWAIT THEN BETTER WAIT FOR BUFFER FREE BUCM0688
* BUCM0689
* WRITES SEVERAL RECORDS INTO FILE BUCM0690
LXD RELADR+1,4 REC. NO. OF BEGINNING BUCM0691
SXA LABEL,4 SET INTO LABEL BUCM0692
ZSD LABEL CLEAR ANY LCOUNT BUCM0693
RNT BREC IF BEGINS A RECORD BUCM0694
RNT BBUF OR IF DOESN'T BEGIN IN THE BUFFER BUCM0695
TRA BX GO READ THE APPROPRIATE RECORD BUCM0696
RFT PRIM ELSE, IF BUFFER PRIMED BUCM0697
TRA BY THEN USE IT BUCM0698
TSX PRBUF,4 ELSE PRIME IT BUCM0699
TRA QWAIT RETURN TO QWAIT BUCM0700
* BUCM0701
BX SYN * BUCM0702
CAL =1 1 REQUEST IF STARTS RECORD BUCM0703
RNT BREC BUCM0704
CAL =2 ELSE 2 REQUESTS FOR PREVIOUS READING BUCM0705
TSX QUEUE,4 BUCM0706
RFT BREC BUCM0707
TRA AF STARTS A RECORD. NO READING NECESSARY BUCM0708
* BUCM0709
BY SYN * BUCM0710
LXA BUFADR,1,4 BUCM0711
SXA REQ,4 READS INTO BUFFER BUCM0712
LAC RELADR+1,2 WORD INDEX OF BEGINNING BUCM0713
TXI *+1,2,1 INDEX FOR RELADR-1 BUCM0714
SCD REQ,2 FOR SKIP REQUEST BUCM0715
MOVE TB,CHK1,(REQ,2),CHKL1 MOVE 1ST CHUNK INTO BUFFER BUCM0716
RFT BBUF IF BEGINS IN THE BUFFER BUCM0717
TRA BZ SKIP READING BUCM0718
CAL REQ BUCM0719
ORA BUFR BUCM0720
TSX READL,4 BUCM0721
TSX READ,4 BUCM0722
* BUCM0723
* SET FILE TABLE BUCM0724
BZ SYN * BUCM0725
CAL RCOUNT,1 BUCM0726
ALS 18 BUCM0727
STD WINDEX,1 BUFFER CONTAINS A WHOLE RECORD BUCM0728
CAL PTH BUCM0729
ORS PRIME,1 PRIME + CHNG FLAG BUCM0730
LXA LABEL,4 BUCM0731
SXD BUFREC,1,4 RECNO. IN BUFFER BUCM0732
* BUCM0733
* REWRITE FILE FROM BUFFER AND USER'S AREA BUCM0734
* BUCM0735
* REWRITE BUFFER REQUEST BUCM0736
SIR IOF NO ACTION WANTED, ONLY REQUEST IN LIST. BUCM0737
RIR BLAST INSURE CURRENT RECORD WRITING BUCM0738
TSX RWBUF,4 REWRITE BUFFER REQUEST BUCM0739
* BUCM0740
* REWRITE FROM USER'S AREA BUCM0741
AF SYN * BUCM0742
RNT EREC+LAST IF ENDS UP THE LAST RECORD BUCM0743
TRA CV BUCM0744
CAL RCOUNT,1 BUCM0745
STA CHKL3 LAST RECORD FILLS UP BUFFER BUCM0746
TSX SPLIT,4 ADJUST SPLITTING BUCM0747
CV SYN * BUCM0748
LXA CHKL2,2 LENGTH FOR 2ND CHUNK BUCM0749
TXL AG,2,0 SKIP IF NULL BUCM0750
SXD REQ,2 BUCM0751
LXA CHK2,5 ADDRESS FOR DIRECT WRITING BUCM0752
SXA REQ,5 SET IN REQUEST BUCM0753
CAL REQ BUCM0754
ORA MEMRY BUCM0755
TSX REWRTL,4 BUCM0756
AG TSX REWRT,4 BUCM0757
* BUCM0758
* SET DELAYED MOVING BUCM0759
SIR BREC JUST TO MAKE DMOVE GO TO UPBUF BUCM0760
AH LXA CHKL3,3 LENGTH FOR LEFTOVER BUCM0761
PXD ,3 SET IN AC BUCM0762
TXL UPFIL,3,0 IF NO LEFTOVER, GO MOVE POINTERS BUCM0763
RFT WRIT IF WRITING BUCM0764
STP PRIME,1 CLEARS PRIME FLAG BUCM0765
ORA CHK3 ADDRESS IN USER MEMORY BUCM0766
AXC =1,2 FOR BEGINNING OF BUFFER BUCM0767
TRA DMOVE GO SET FILE TABLE BUCM0768
TTL BREAD - BWRITE - APPENDING NEW RECORD(S) BUCM0769
* BUCM0770
* APPENDS NEW RECORD(S) TO AN EXISTING FILE. BUCM0771
* BUCM0772
AS SYN * BUCM0773
RNT MREC+EREC IF APPENDING THRU AN END OF RECORD BUCM0774
TRA CW BUCM0775
CAL RCOUNT,1 BUCM0776
STA CHKL3 LAST RECORD GOES INTO BUFFER BUCM0777
TSX SPLIT,4 ADJUST SPLITTING BUCM0778
CW SYN * BUCM0779
RNT BLAST IF BUFFER DOESN'T CONTAIN LAST RECORD BUCM0780
SAVB THEN SAVE BUFFER BUCM0781
LXD RELADR+1,5 RECORD NR. BUCM0782
SXA LABEL,5 SET IN LABEL FOR READING BUCM0783
ZAC BUCM0784
RFT BREC IF DOESN'T BEGIN A RECORD BUCM0785
TRA AT ELSE WRITES INTO FILE BUCM0786
RNT MREC IF SINGLE RECORD BUCM0787
TRA E GO APPEND INTO BUFFER BUCM0788
RFT BAIL IF RECORD NOT YET IN FILE BUCM0789
TRA AU THEN NO PRIMING BUCM0790
RNT BBUF IF DOESN'T BEGIN IN THE BUFFER BUCM0791
STD WINDEX,1 CLEARS BUFFER CONTENTS BUCM0792
TSX PRBUF,4 PRIMES BUFFER BUCM0793
RFT WFB IF BUFFER INVOLVED IN PRESENT I/O BUCM0794
TRA QWAIT THEN WAIT FOR BUFFER FREE BUCM0795
SIR PRIM BUCM0796
CAL =2 BUCM0797
NZT CHKL2 SKIP IF AT LEAST ONE FULL RECORD BUCM0798
AU CAL =1 ELSE NO WRITING BUCM0799
TSX QUEUE,4 BUCM0800
* BUCM0801
* MOVES FROM USER'S AREA TO BUFFER BUCM0802
LAC LCOUNT,1,2 WORDS TO SKIP BUCM0803
LXA BUFADR,1,4 BUFFER ADDRESS BUCM0804
MOVE TB,CHK1,(,2),CHKL1 MOVE BEGINNING OF BLOC BUCM0805
CAL RCOUNT,1 WORD COUNT FOR A RECORD BUCM0806
ALS 18 BUCM0807
STD WINDEX,1 UPDATES TABLE BUCM0808
SIR CHG FLAG BUFFER CHANGED BUCM0809
* BUCM0810
* REQUEST FOR REWRITING BUFFER BUCM0811
BP SYN * BUCM0812
RNT MREC+BAIL IF SEVERAL RECS. AND LAST NOT WRITTEN BUCM0813
TRA *+2 BUCM0814
SIR IOF THEN INHIBIT I/O ACTION NOW BUCM0815
RIR BLAST NOT THE LAST RECORD BUCM0816
SAVB REWRITES BUFFER IF NEEDED BUCM0817
RNT MREC IF SINGLE RECORD BUCM0818
TRA U GO APPEND IN BUFFER BUCM0819
* BUCM0820
* REQUEST FOR WRITING FROM USER'S BUCM0821
CAL LABEL BUCM0822
ADM =1 NEXT RECORD NR. BUCM0823
RNT BAIL SKIP IF LAST RECORD NOT YET WRITTEN BUCM0824
STA LABEL BUCM0825
TRA AV BUCM0826
* BUCM0827
AT SYN * BUCM0828
RFT BAIL IF PREVIOUS RECORD NOT YET IN FILE BUCM0829
TRA BP GO WRITE IT BUCM0830
LXA LABEL,3 RECORD NO. BUCM0831
TNX AW,3,1 SKIP IF 1ST RECORD BUCM0832
SXA LABEL,3 BUCM0833
RNT BLAST IF BUFFER DOESN'T CONTAIN THE LAST RECORD BUCM0834
STD WINDEX,1 CLEARS BUFFER CONTENTS BUCM0835
TSX PRBUF,4 READ PREVIOUS RECORD BUCM0836
RIR BLAST AND REWRITE AS CURRENT RECORD BUCM0837
CAL =2 BUCM0838
RFT MREC BUCM0839
TSX QUEUE,4 BUCM0840
TSX RWBUF,4 BUCM0841
TXI *+1,3,1 RESTORES RECORD NR. BUCM0842
SXA LABEL,3 BUCM0843
AW SYN * BUCM0844
CAL =1 BUCM0845
RNT MREC IF SINGLE RECORD BUCM0846
TRA U GO APPEND INTO BUFFER BUCM0847
TSX QUEUE,4 BUCM0848
AV SYN * BUCM0849
CAL CHKL2 LENGTH OF INTEGRAL NUMBER OF RECORDS BUCM0850
TZE BG SKIP IF NOTHING TO WRITE BUCM0851
ALS 18 BUCM0852
ORA CHK2 ADDRESS IN USER'S MEMORY BUCM0853
ORA MEMRY BUCM0854
TSX WRITL,4 SET IO LIST BUCM0855
ZSD LABEL ERASE, NOT LAST RECORD BUCM0856
BG SYN * BUCM0857
ZET IOWR IF ANY WRITING REQUEST BUCM0858
TSX WRITE,4 STARTS WRITING BUCM0859
TRA AH GO UPDATE FILE TABLE BUCM0860
TTL BREAD - BWRITE - READING MULTIPLE RECORDS BUCM0861
* BUCM0862
* READS SEVERAL RECORDS FROM FILE BUCM0863
M SYN * BUCM0864
RFT BBUF IF CURRENT BUFFER NOT TO BE USED BUCM0865
TRA CX BUCM0866
RNT EREC IF ENDS UP A RECORD BUCM0867
TRA CT BUCM0868
RFT BUFIN IF BUFFER INVOLVED BUCM0869
SAVB SAVE IT BUCM0870
TRA CA THEN USE NO BUFFER BUCM0871
CT SAVB THEN SAVE BUFFER BUCM0872
CX SYN * BUCM0873
CAL =1 BUCM0874
TSX QUEUE,4 BUCM0875
LXD RELADR+1,3 BUCM0876
SXA LABEL,3 SET RECORD NUMBER ON BEGINNING BUCM0877
TSX SLAST,4 SET LCOUNT IN LABEL BUCM0878
RFT BBUF IF CALL STARTS IN THE BUFFER BUCM0879
TRA CK GO AND USE THE CURRENT BUFFER BUCM0880
* BUCM0881
* READS SEVERAL RECORDS. LAST ONE READ IN BUFFER. DELAYED MOVING TO USERBUCM0882
* BUCM0883
RFT BREC IF DOES NOT BEGIN A RECORD BUCM0884
TRA AK STARTS READING BUCM0885
LXA RELADR+1,4 WORD INDEX OF BEGINNING BUCM0886
TXI *+1,4,-1 SKIP WORD COUNT BUCM0887
PXD ,4 BUCM0888
ORA PON BUCM0889
TSX READL,4 SET IN IO LIST BUCM0890
AK SYN * BUCM0891
CAL CHKL1 BUCM0892
ADM CHKL2 PARTIAL LENGTH INCLUDING LAST COMPLETE REC.BUCM0893
ALS 18 BUCM0894
ORA CHK1 ADDRESS IN USER'S MEMORY BUCM0895
CL ORA MEMRY MEMORY FLAG BUCM0896
TSX READL,4 SET REQUEST IN IO LIST BUCM0897
* BUCM0898
CN CAL BUFADR,1 BUCM0899
STA REQ BUFFER ADDRESS BUCM0900
CAL RCOUNT,1 BUCM0901
RFT LAST BUCM0902
CAL LCOUNT,1 BUCM0903
PAX ,4 BUCM0904
SXD REQ,4 SET WORD COUNT TO READ BUCM0905
CAL REQ BUCM0906
ORA BUFR BUFFER FLAG BUCM0907
TSX READL,4 SET READING BUFFER REQUEST BUCM0908
* BUCM0909
TSX READ,4 BUCM0910
* BUCM0911
* UPDATES FILE TABLE BUCM0912
CAL NDBLOC+1 BUCM0913
STD BUFREC,1 SETS NEW RECORD NR. IN BUFFER BUCM0914
CAL PON BUCM0915
STP PRIME,1 PRIME FLAG. ERASE CHNG BUCM0916
CAL REQ BUCM0917
STD WINDEX,1 WORD COUNT IN BUFFER BUCM0918
TRA AH GO SET DELAYED MOVING BUCM0919
* BUCM0920
* READS SEVERAL RECORDS. BUFFER CONTAINS FIRST RECORD. BUCM0921
* BUCM0922
CK SYN * BUCM0923
RNT BREC IF BEGINS THE RECORD BUCM0924
TRA CU BUCM0925
CAL RCOUNT,1 BUCM0926
STA CHKL1 FIRST RECORD TAKEN FROM BUFFER BUCM0927
TSX SPLIT,4 ADJUST SPLITTING BUCM0928
CU SYN * BUCM0929
RFT PRIM IF BUFFER PRIMED BUCM0930
TXI BB,3,1 GO MOVE AND READ NEXT RECORD BUCM0931
SIR IOF NO I/O WANTED ON PRIMING BUCM0932
TSX PRBUF,4 PRIME BUFFER BUCM0933
TSX SLAST,4 IF LAST SET IT AGAIN BUCM0934
CAL CHKL2 2ND CHUNK BUCM0935
ADM CHKL3 + 3RD CHUNK BUCM0936
ALS 18 = TOTAL WORD COUNT TO READ BUCM0937
ORA CHK2 ADDRESS IN USER MEMORY BUCM0938
ORA MEMRY MEMORY FLAG BUCM0939
TSX READL,4 SET REQUEST BUCM0940
TSX READ,4 STARTS I/O BUCM0941
* BUCM0942
* SETS DELAYED MOVING BUCM0943
AXC RELADR+1,2 POINTER TO DINDEX BUCM0944
LXA CHKL1,4 DCOUNT BUCM0945
PXD ,4 BUCM0946
ORA CHK1 DADDRS BUCM0947
TRA DMOVE GO SET FILE TABLE BUCM0948
* BUCM0949
* MOVE FROM BUFFER, THEN READ FROM FILE TO USER MEMORY. BUCM0950
BB SYN * BUCM0951
RFT CHG IF BUFFER CHANGED BUCM0952
RFT EREC+WFB AND NOT YET IN SAVING PROCESS BUCM0953
TRA *+2 WHILE BUFFER IS TO BE REUSED BUCM0954
TRA CT THEN GO SAVE IT BUCM0955
SXA LABEL,3 SET RECORD NR. TO READ NEXT BUCM0956
LXA BUFADR,1,4 BUFFER ADDRESS BUCM0957
LAC RELADR+1,2 INDEX IN BUFFER BUCM0958
TXI *+1,2,1 BUCM0959
MOVE TU,(,2),CHK1,CHKL1 BUCM0960
LXA CHKL2,4 BUCM0961
TXL CN,4,0 GO READ LEFTOVER INTO BUFFER BUCM0962
PXD ,4 BUCM0963
ORA CHK2 BUCM0964
RNT EREC IF DOESN'T END WITH A RECORD BUCM0965
TRA CL GO READ FROM FILE TO USER, THEN TO BUFFER BUCM0966
ORA MEMRY USER MEMORY FLAG BUCM0967
TSX READL,4 SETS REQUEST BUCM0968
TSX READ,4 STARTS I/O BUCM0969
TRA NULL GO UPDATE POINTERS BUCM0970
TTL BREAD - BWRITE - READING OR WRITING WITHIN A SINGLE RECORDBUCM0971
* BUCM0972
* READS OR WRITES WITHIN A SINGLE RECORD BUCM0973
L SYN * BUCM0974
RFT BUFIN IF RECORD IN BUFFER IS INVOLVED BUCM0975
TRA TT THEN USE IT BUCM0976
RFT APND AND IF NO APPENDING BUCM0977
TRA AS ELSE GO APPEND BUCM0978
RNT BREC+EREC IF ENTIRE RECORD BUCM0979
TRA AE BUCM0980
RFT WRIT AND NOT WRITING THE LAST ONE BUCM0981
RNT LAST BUCM0982
TRA CA NO BUFFER USED BUCM0983
AE SYN * BUCM0984
SAVB THEN SAVE BUFFER BUCM0985
* BUCM0986
E SYN * BUCM0987
RNT WFB IF BUFFER NOT FREE BUCM0988
RNT WRIT+BREC OR IF NOT WRITING FROM BEGINNING OF A RECORBUCM0989
TRA U THEN GO PRIME BUFFER BUCM0990
* BUCM0991
* WRITES FROM THE BEGINNING OF A RECORD BUCM0992
LXA BUFADR,1,4 BUCM0993
LDC BLOC,3 BUCM0994
MOVE TB,BLOC,,(Z,3) BUCM0995
CAL PTW CLEAR PRIM, SETS CHNG FLAG BUCM0996
STP CHNG,1 BUCM0997
TRA UPBUF SETS CURRENT POINTERS AND RETURN BUCM0998
* BUCM0999
* READS AND WRITES IN THE MIDST OF A RECORD BUCM1000
* OR FROM THE BEGINNING OF A RECORD WHEN BUFFER TIED UP BUCM1001
U SYN * BUCM1002
LXD RELADR+1,3 BUCM1003
SXA LABEL,3 RECORD NUMBER BUCM1004
SXD WINDEX,1,8 CLEARS WORD COUNT IN BUFFER BUCM1005
STP PRIME,1 CLEARS PRIME FLAG BUCM1006
RNT BREC+WRIT SKIP PRIMING IF NOT NECESSARY BUCM1007
TSX PRBUF,4 READS RECORD IN BUFFER BUCM1008
* BUCM1009
* SETS DELAYED MOVING BUCM1010
H SYN * BUCM1011
CAL BLOC BUCM1012
AXC RELADR+1,2 POINTER TO DINDEX BUCM1013
* BUCM1014
* SETS DELAYED MOVING POINTERS IN FILE TABLE BUCM1015
* BUCM1016
DMOVE SYN * BUCM1017
STA DADDRS,1 BUCM1018
STD DCOUNT,1 BUCM1019
CAL ,2 DINDEX BUCM1020
SBM =1 BUCM1021
STA DINDEX,1 BUCM1022
CAL PTW DELAYED READING PREFIX BUCM1023
RFT WRIT BUCM1024
CAL PON DELAYED WRITING PREFIX BUCM1025
STP DW,1 BUCM1026
RNT WRIT+BREC BUCM1027
RFT APND BUCM1028
TRA UPBUF BUCM1029
TRA NULL BUCM1030
TTL BREAD - BWRITE - READING OR WRITING IN THE CURRENT BUFFERBUCM1031
* BUCM1032
* READS OR WRITES IN THE CURRENT BUFFER BUCM1033
* BUCM1034
TT SYN * BUCM1035
RNT LAST IF NOT LAST RECORD BUCM1036
RNT WRIT+BREC+EREC AND WRITING ENTIRE RECORD BUCM1037
TRA *+2 BUCM1038
TRA CA NO BUFFER USED BUCM1039
LDC BLOC,2 WORD COUNT TO MOVE BUCM1040
LXD WINDEX,1,3 WORD COUNT IN BUFFER BUCM1041
SXD J,3 SAVE FOR LATER COMPARISON BUCM1042
RNT WRIT+BREC IF NOT WRITING THE BEGINNING OF A RECORD BUCM1043
TXL CD,3,0 THEN GO PRIME BUFFER IF EMPTY BUCM1044
TXI *+1,3,1 BUCM1045
SCD CB,3 BUCM1046
LXA BUFADR,1,4 BUFFER ADDRESS BUCM1047
RNT WRIT BUCM1048
TRA CC GO READ BUCM1049
LAC RELADR+1,3 WORD INDEX FOR BEGINNING OF WRITING BUCM1050
TXI *+1,3,1 BUCM1051
RNT BREC BECAUSE TXL FAILS FOR THIS CASE BUCM1052
CB TXL CD,3,** SKIP IF WRITING LEAVES A GAP IN BUFFER BUCM1053
MOVE TB,BLOC,(,3),(Z,2) BUCM1054
CAL PTW CHNG FLAG BUCM1055
ORS CHNG,1 SETS IN FILE TABLE BUCM1056
LXA NDBLOC+1,4 INDEX OF LAST WORD IN BUFFER BUCM1057
J TXL UPFIL,4,** SKIP IF WORD COUNT NOT CHANGED BUCM1058
TRA UPBUF GO UPDATE POINTERS BUCM1059
* BUCM1060
CC SYN * READS FROM CURRENT BUFFER BUCM1061
LAC NDBLOC+1,3 INDEX OF LAST WORD TO READ BUCM1062
XEC CB SKIP IF .G. CONTENTS OF BUFFER BUCM1063
LAC RELADR+1,3 WORD INDEX FOR BEGINNING OF READING BUCM1064
TXI *+1,3,1 BUCM1065
MOVE TU,(,3),BLOC,(Z,2) BUCM1066
TRA UPFIL GO UPDATE POINTERS BUCM1067
* BUCM1068
CD SYN * PRIMING BUFFER REQUIRED BUCM1069
LXD RELADR+1,4 BUCM1070
SXA LABEL,4 SETS BUFFER RECORD NR. BUCM1071
TSX PRBUF,4 BUCM1072
TRA H GO SET DELAYED MOVING BUCM1073
TTL CHKERR - ERROR RETURN FOR FAILURE IN PREVIOUS I/O BUCM1074
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1075
* BUCM1076
* CHKERR. TEST OF PREVIOUS IO OPERATION BUCM1077
* BUCM1078
* TSX CHKERR,4 BUCM1079
* NORMAL RETURN, OR QWAIT, OR PVIOL, OR ERROR BUCM1080
* BUCM1081
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1082
REM BUCM1083
CHKERR SXA CHKERX,4 BUCM1084
LXD IOTASK,1,5 COUNT OF I/O REQUESTS YET TO BE DONE BUCM1085
TXH QWAIT,5,0 SKIP IF I/O STILL IN PROGRESS BUCM1086
CAL EFLAG,1 PICK UP ERROR FLAGS IF ANY BUCM1087
ANA =O700000 .. FROM TAG BUCM1088
TZE OK SKIP IF NO ERRORS BUCM1089
SUB =1B20 WAS ERROR A PARITY ERROR BUCM1090
TNZ FATAL NO, SKIP ON FATAL ERROR BUCM1091
TSX FINISH,4 YES, FINISH ANY DELAYED I/O BUCM1092
TRA ERROR AND GIVE I/O ERROR RETURN BUCM1093
REM BUCM1094
FATAL SUB =6B20 FATAL ERROR, CHECK FOR PROTECTION ERROR BUCM1095
TNZ ERROR SKIP IF NOT PROTECTION (2-6, NOT 7) BUCM1096
STT EFLAG,1 RESET EFLAG ON PROTECTION VIOLATION BUCM1097
TRA PVIOL AND GIVE PROTECTION ERROR RETURN BUCM1098
REM BUCM1099
OK TSX FINISH,4 NO ERRORS, FINISH ANY DELAYED I/O BUCM1100
CHKERX AXT **,4 AND RETURN BUCM1101
TRA 1,4 .. BUCM1102
TTL CHKOFF - MATCHING GIVEN ADDRESS AGAINST FILE AREA BUCM1103
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1104
* BUCM1105
* CHKOFF TESTS WHETHER A RANGE OF ADDRESSES IS IN THE FILE BUCM1106
* BUCM1107
* TSX CHKOFF,4 BUCM1108
* PAR OFF ADDRESS OUT OF FILE. EOF SET ON BUCM1109
* NORMAL RETURN, ADDRESS IN FILE BUCM1110
* OR APPENDING IF WRIT ON, THEN APND SET ON BUCM1111
* FOLLOWING LOCATIONS SHOULD BE SET BUCM1112
* BLOC BUCM1113
* RELADR BUCM1114
* EXPECTS WRIT SET BY BWRITE BUCM1115
* SETS CORRECT VALUES FOR BUCM1116
* BLOC BUCM1117
* FILENG (BEFORE APPENDING) BUCM1118
* NDBLOC BUCM1119
* NEXCUR BUCM1120
* MAY SET FOLLOWING SWITCHES BUCM1121
* EOF, APND BUCM1122
* BUCM1123
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1124
* BUCM1125
* CHECKS IF BEGINNING OF THE CALL IS IN THE FILE BUCM1126
CHKOFF SYN * BUCM1127
SXA .19,4 BUCM1128
CAL BLOC BUCM1129
ARS 18 WORD COUNT BUCM1130
TNZ *+2 IF WORD COUNT ZERO BUCM1131
STZ BLOC THEN CLEAR BLOC BUCM1132
ADM RELADR RELATIVE ADDRESS FOLLOWING BLOCK REQUESTED BUCM1133
SLW NEXCUR SAVE NEXT LINEAR ADDRESS BUCM1134
ZET BLOC IF WORD COUNT NON ZERO BUCM1135
SBM =1 BUCM1136
SLW NDBLOC SET BLOC LAST ADDRESS BUCM1137
LXD NORECS,1,5 FILE RECORDS COUNT INTO IX5 BUCM1138
LXA LCOUNT,1,6 LAST RECORD COUNT INTO IX6 BUCM1139
TSX LINCOR,4 BUCM1140
FIVE Z,6,Z BUCM1141
.19 AXT **,4 BUCM1142
SLW FILENG SAVE FILE LENGTH BUCM1143
XCL BUCM1144
CAL RELADR BUCM1145
TLQ K SKIP IF OUT OF FILE BUCM1146
* CHECKS IF END OF THE CALL IS IN THE FILE BUCM1147
SIR NDFIL BUCM1148
XCL FILE LENGTH INTO AC BUCM1149
LAS NDBLOC BUCM1150
RIR NDFIL LAST WORD NOT IN RANGE OF CALL BUCM1151
TRA 2,4 ADDRESS IN FILE BUCM1152
SLW NDBLOC ACCEPTED END OF CALL BUCM1153
ADM =1 BUCM1154
SLW NEXCUR ACCEPTED NEXT POINTER BUCM1155
SBM RELADR SUITABLE WORD COUNT BUCM1156
ALS 18 BUCM1157
STD BLOC NO. OF WORDS ACCEPTED BUCM1158
SIR EOF+NDFIL SWITCH END OF FILE BUCM1159
TRA 2,4 ADDRESS IN FILE BUCM1160
* CHECKS IF IT MAY BE APPENDING BUCM1161
K RNT WRIT BUCM1162
TRA* 1,4 ADDRESS IS OUT BUCM1163
SBM =1 CHECK IF WRITING STARTS APPENDING BUCM1164
TLQ* 1,4 ADDRESS IS OUT BUCM1165
SIR APND SWITCH APPEND BUCM1166
TRA 2,4 BUCM1167
TTL UPDATING FILE TABLE - TESTS LCOUNT, BUFFER BUCM1168
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1169
* BUCM1170
* TSLT TESTS TO SEE IF THE RECORD INVOLVED IS THE LAST IN FILE BUCM1171
* SETS DECREMENT OF LABEL IF LAST RECORD, OR ELSE CLEARS IT. BUCM1172
* SLAST SETS LCOUNT IN DECREMENT OF LABEL, IF LAST RECORD INVOLVED BUCM1173
* BUCM1174
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1175
* BUCM1176
SLAST ZSD LABEL CLEARS LCOUNT BUCM1177
RNT LAST BUCM1178
TRA 1,4 BUCM1179
TRA AJ BUCM1180
TSLT CAL NORECS,1 BUCM1181
ARS 18 BUCM1182
SBM LABEL COMPARE WITH REC NO. TO READ BUCM1183
ANA ADMSK KEEP ADDRESS BUCM1184
STD LABEL CLEAR LCOUNT IN LABEL BUCM1185
TNZ 2,4 RETURN. NOT LAST BUCM1186
AJ LXA LCOUNT,1,7 BUCM1187
SXD LABEL,7 SET LCOUNT IN LABEL BUCM1188
TRA 1,4 RETURN LAST INDEED BUCM1189
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1190
* BUCM1191
* LEN UPDATES FILE LENGTH BUCM1192
* LOCATION NDBLOC+1 SHOULD BE SET BUCM1193
* SETS NORECS, LCOUNT, AND DEV BUCM1194
* BUCM1195
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1196
* BUCM1197
LEN SYN * BUCM1198
LXD NORECS,1,7 OLD NORECS BUCM1199
SXA DEV,7 SAVE BUCM1200
CAL NDBLOC+1 BUCM1201
STA LCOUNT,1 BUCM1202
STD NORECS,1 BUCM1203
PDX ,7 NEW NORECS BUCM1204
PXA ,7 BUCM1205
SBM DEV BUCM1206
STA DEV SAVE NORECS DEVIATION BUCM1207
TRA 1,4 BUCM1208
* BUCM1209
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1210
* BUCM1211
* TBUF CHECKS WHETHER SOME BUFFER HAS BEEN ASSIGNED BUCM1212
* TRANSFERS TO 1,4 IF NONE ASSIGNED. ELSE 2,4 BUCM1213
* BUCM1214
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1215
* BUCM1216
TBUF SYN * BUCM1217
CAL BUFADR,1 BUFFER ADDRESS BUCM1218
ANA ADMSK KEEP ADDRESS BUCM1219
TZE 1,4 BUCM1220
TRA 2,4 BUCM1221
TTL BREAD - BWRITE - ADDRESS OUT OF FILE - NULL CALL BUCM1222
* BUCM1223
* CALL IS OUT OF FILE. ONLY POINTERS ARE MOVED TO THE END OF FILE. BUCM1224
* BUCM1225
OFF SYN * BUCM1226
CAL FILENG POINTERS IN LAST RECORD BUCM1227
ADM =1 BUCM1228
TSX RECOR,4 GET POINTERS BUCM1229
SIX NEXCUR+1,0,Z WORD IX IN NEXCUR+1, RECORD NR. IN IX6 BUCM1230
SXD NEXCUR+1,6 BUCM1231
TSX KUR,4 UPDATES POINTERS BUCM1232
STZ BLOC ZERO WORD ACCEPTED BUCM1233
TRA EOFRTN BUCM1234
* BUCM1235
* TOFF MATCHES CURRENT POINTERS AGAINST THE NEW END OF FILE AFTER TRUNCABUCM1236
* BUCM1237
TOFF PAX ,6 WORD POINTER BUCM1238
PDX ,7 RECORD POINTER BUCM1239
TSX LINCOR,4 CONVERTS TO LINEAR BUCM1240
SVN Z,6,Z BUCM1241
LAS NEXCUR BUCM1242
TRA 1,5 OFF FILE BUCM1243
TRA 2,5 RIGHT AFTER THE END BUCM1244
TRA 2,5 INSIDE BUCM1245
* BUCM1246
* UPDATES POINTERS BUCM1247
UPBUF SYN * BUCM1248
RFT BAIL IF LAST TRACK ALREADY WRITTEN BUCM1249
TRA CS BUCM1250
CAL PON BUCM1251
RFT NDFIL AND IF WRITING THRU THE END OF FILE BUCM1252
ORS PRIME,1 SETS PRIME FLAG (WINDEX REACHED LCOUNT) BUCM1253
CS SYN * BUCM1254
CAL NDBLOC+1 BUCM1255
STD BUFREC,1 BUCM1256
ALS 18 BUCM1257
STD WINDEX,1 NR. OF WORDS WRITTEN IN BUFFER BUCM1258
* BUCM1259
UPFIL SYN * BUCM1260
RFT APND BUCM1261
TSX LEN,4 UPDATES FILE LENGTH BUCM1262
* BUCM1263
* NULL WORD COUNT. ONLY POINTERS ARE MOVED TO SPECIFIED ADDRESS BUCM1264
NULL SYN * BUCM1265
TSX KUR,4 UPDATES POINTERS BUCM1266
TRA RETURN BUCM1267
* BUCM1268
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1269
* BUCM1270
* KUR UPDATES THE CURRENT POINTERS IN THE FILE TABLE BUCM1271
* BUCM1272
* TSX KUR,4 BUCM1273
* NEXCUR+1 AND WRIT SHOULD BE SET BUCM1274
* BUCM1275
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1276
* BUCM1277
KUR SYN * BUCM1278
CAL NEXCUR+1 BUCM1279
RFT WRIT BUCM1280
TRA BR THEN WRITING BUCM1281
STA REDWRD,1 BUCM1282
STD REDREC,1 BUCM1283
TRA 1,4 BUCM1284
BR SYN * BUCM1285
STA WRTWRD,1 BUCM1286
STD WRTREC,1 BUCM1287
TRA 1,4 BUCM1288
TTL SAVBUF - SAVING CURRENT BUFFER INTO FILE BUCM1289
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1290
* BUCM1291
* REWRITES BUFFER INTO FILE IF NECESSARY BUCM1292
* TSX SAVBUF,4 BUCM1293
* NORMAL RETURN BUCM1294
* SETS WFB IF I/O HAS BEEN STARTED BUCM1295
* BUCM1296
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1297
* BUCM1298
* CHECKS IF NEED REWRITE THE BUFFER INTO THE FILE BUCM1299
SAVBUF SYN * BUCM1300
RNT CHG IF BUFFER HAS NOT CHANGED BUCM1301
TRA 1,4 NORMAL RETURN BUCM1302
SXA .15,4 BUCM1303
CAL BUFREC,1 BUFFER RECORD NO. BUCM1304
ARS 18 BUCM1305
STA LABEL BUCM1306
RFT PRIM IF BUFFER IS ALREADY PRIMED BUCM1307
TRA N THEN REWRITE IT BUCM1308
RNT BAIL IF RECORD ALREADY IN FILE BUCM1309
TRA PP THEN GO AND PRIME IT BUCM1310
* ELSE WRITE IT AS A NEW RECORD BUCM1311
* CHECKS IF PREVIOUS RECORD NEED ALSO BE REWRITTEN BUCM1312
TSX WRBUF,4 BUCM1313
TSX Q,4 GO UPDATE POINTERS BUCM1314
TRA .15 BUCM1315
* BUCM1316
* PRIMES AND REWRITES THE BUFFER INTO A PREVIOUS FILE RECORD BUCM1317
PP SYN * BUCM1318
TSX PRBUF,4 PRIMES BUFFER BUCM1319
* BUCM1320
* REWRITES BUFFER INTO FILE BUCM1321
N SYN * BUCM1322
TSX RWBUF,4 BUCM1323
.15 AXT **,4 BUCM1324
SIR WFB SETS SWITCH IF I/O STARTED BUCM1325
TRA 1,4 BUCM1326
TTL PRBUF - PRIMING BUFFER FROM CURRENT INDEX BUCM1327
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1328
* BUCM1329
* PRBUF READS RECORD FROM FILE IN ORDER TO COMPLETE THE BUFFER BUCM1330
* WINDEX MUST BE SET TO ZERO IF FULL RECORD IS WANTED. BUCM1331
* BUCM1332
* TSX PRBUF,4 BUCM1333
* LABEL MUST BE SET TO THE RECORD NUMBER WANTED BUCM1334
* NO I/O INITIATED IF IOF SWITCH IS ON BUCM1335
* NORMAL RETURN 1,4 BUCM1336
* SETS FILE TABLE, WINDEX, PRIME, BUFREC, BLAST BUCM1337
* RESETS IOF BUCM1338
* BUCM1339
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1340
PRBUF SYN * BUCM1341
SXA .14,4 BUCM1342
TBUF CHECKS FOR BUFFER ASSIGNED BUCM1343
TRA NIDBUF NONE. ERROR BUCM1344
RIR BLAST RESET AS RECORD MAY BE A NEW ONE BUCM1345
TSX TSLT,4 TEST IF IT IS LAST RECORD BUCM1346
SIR BLAST YES BUCM1347
LXD WINDEX,1,5 BUCM1348
STZ T CLEARS TEMPORARY BUCM1349
PXA ,5 BUCM1350
SXD T,5 NR. OF WORDS WRITTEN IN BUFFER BUCM1351
ADM BUFADR,1 BUCM1352
STA REQ ADDRESS WHERE READING STARTS IN BUFFER BUCM1353
SCD AR,5 BUCM1354
CAL RCOUNT,1 BUCM1355
RFT BLAST BUCM1356
CAL LCOUNT,1 BUCM1357
PAX ,6 BUCM1358
AR TXI *+1,6,** RCOUNT (OR LCOUNT) - WINDEX BUCM1359
TXL BW,6,0 SKIP IF NOTHING TO READ IN BUCM1360
SXD REQ,6 = WORD COUNT TO READ BUCM1361
CAL =1 BUCM1362
TSX QUEUE,4 BUCM1363
CAL T SKIP REQUEST BUCM1364
TZE BD BUCM1365
ORA PON BUCM1366
TSX READL,4 SET IN IO LIST BUCM1367
BD SYN * BUCM1368
CAL REQ BUCM1369
ORA BUFR BUCM1370
TSX READL,4 SET IN READING LIST BUCM1371
RNT IOF SKIP IF NO ACTION WANTED BUCM1372
TSX READ,4 BUCM1373
CAL RCOUNT,1 BUCM1374
RFT BLAST BUCM1375
CAL LCOUNT,1 BUCM1376
ALS 18 BUCM1377
STD WINDEX,1 UPDATE FILE TABLE BUCM1378
CAL PON PRIME FLAG BUCM1379
ORS PRIME,1 SET FLAG BUFFER PRIMED BUCM1380
LXA LABEL,5 BUCM1381
SXD BUFREC,1,5 BUCM1382
BW RIR IOF RESET INHIBIT SWITCH BUCM1383
.14 AXT **,4 BUCM1384
TRA 1,4 BUCM1385
* BUCM1386
TTL RWBUF - REWRITING BUFFER INTO FILE BUCM1387
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1388
* BUCM1389
* RWBUF REWRITES THE CONTENTS OF THE BUFFER AS A RECORD BUCM1390
* NO I/O INITIATED IF IOF SWITCH IS ON BUCM1391
* LABEL CONTAINS THE NUMBER OF THE RECORD BUCM1392
* BLAST MUST BE SET IF IT HAS TO BE THE LAST RECORD BUCM1393
* BUCM1394
* TSX RWBUF,4 BUCM1395
* RESETS IOF SWITCH BUCM1396
* NORMAL RETURN 1,4 BUCM1397
* SETS FILE TABLE, PRIME, LCOUNT BUCM1398
* BUCM1399
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1400
* BUCM1401
RWBUF SYN * BUCM1402
SXA .20,2 BUCM1403
AXT 0,2 SETS IX2 AS A CALL FLAG BUCM1404
TRA BM SAME AS WRBUF BUCM1405
TTL WRBUF - WRITING BUFFER AS NEW RECORD BUCM1406
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1407
* BUCM1408
* WRBUF WRITES OUT CONTENTS OF BUFFER AS A NEW RECORD BUCM1409
* NO I/O INITIATED IF IOF SWITCH IS ON BUCM1410
* LABEL CONTAINS THE RECORD NUMBER BUCM1411
* BLAST MUST BE SET IF IT HAS TO BE THE LAST RECORD BUCM1412
* BUCM1413
* RESETS IOF SWITCH BUCM1414
* TSX WRBUF,4 BUCM1415
* NORMAL RETURN BUCM1416
* BUCM1417
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1418
* BUCM1419
WRBUF SYN * BUCM1420
SXA .20,2 BUCM1421
AXT 1,2 SETS IX2 AS A CALL FLAG BUCM1422
BM SXA .16,4 BUCM1423
TBUF CHECKS IF BUFFER ASSIGNED BUCM1424
TRA NIDBUF NONE. ERROR BUCM1425
CAL =1 BUCM1426
TSX QUEUE,4 CHECK FOR ROOM IN QUEUE BUCM1427
CAL WINDEX,1 AND WORD COUNT IN BUFFER BUCM1428
STD REQ AND IN IO REQUEST BUCM1429
RNT BLAST BUCM1430
ZAC BUCM1431
STD LABEL AND IN LABEL, FOR LAST RECORD BUCM1432
CAL BUFADR,1 BUFFER ADDRESS TO WRITE FROM BUCM1433
STA REQ SET INTO IO REQUEST BUCM1434
CAL REQ BUCM1435
ORA BUFR SET MEMORY FLAG BUCM1436
XEC BN,2 SET IN WRITING I/O LIST BUCM1437
* WRITE OUT BUFFER BUCM1438
RNT IOF SKIP IF NO ACTION WANTED BUCM1439
XEC BQ,2 BUCM1440
.20 AXT **,2 BUCM1441
.16 AXT **,4 BUCM1442
* BUCM1443
* UPDATE FILE TABLE, LCOUNT, PRIME, CHNG BUCM1444
Q SYN * BUCM1445
CAL PON FLAG PRIME BUCM1446
STP PRIME,1 CLEARS CHNG BUCM1447
CAL LABEL BUCM1448
ARS 18 BUCM1449
RFT BLAST IF LAST RECORD BUCM1450
STA LCOUNT,1 THEN SET LCOUNT BUCM1451
RIR IOF RESET INHIBIT SWITCH BUCM1452
TRA 1,4 BUCM1453
* BUCM1454
TSX WRITL,4 BUCM1455
BN TSX REWRTL,4 BUCM1456
TSX WRITE,4 BUCM1457
BQ TSX REWRT,4 BUCM1458
TTL FINISH UP DELAYED I/O MOVING BUCM1459
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1460
* BUCM1461
* FINISH UP ANY PENDING I/O BUCM1462
* BUCM1463
* TSX FINISH,4 BUCM1464
* RETURN TO 1,4 BUCM1465
* MOVES WORDS BETWEEN BUFFER AND USER BUCM1466
* THEN RESET DELAY FLAGS IN FILE TABLE BUCM1467
* BUCM1468
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1469
* BUCM1470
FINISH SYN * BUCM1471
CAL DR,1 DELAYED IO BITS BUCM1472
ARS 33 WRITE BIT RIGHT JUSTIFIED BUCM1473
TZE 1,4 RETURN. NO DELAYED IO BUCM1474
SXA .5,4 BUCM1475
SXA .6,2 BUCM1476
CAL DCOUNT,1 DADDRS,,DCOUNT BUCM1477
PDX ,4 WORD COUNT FOR DELAYED IO BUCM1478
STA TOLOC ADDRESS WHERE TO START IN USER'S AREA BUCM1479
LAC DINDEX,1,2 INDEX IN BUFFER SET IN IX2 BUCM1480
CAL BUFADR,1 BUCM1481
STA FRMLOC BUFFER ADDRESS BUCM1482
LDQ DR,1 DELAYED IO BITS BUCM1483
LGL 3 INTO AC BUCM1484
LBT IF WRITING BUCM1485
TRA AA ELSE GO AND MOVE BUCM1486
MOVE TB,TOLOC,(FRMLOC,2),, BUCM1487
CAL PTW CHNG FLAG BUCM1488
ORS CHNG,1 SET IN FILE TABLE BUCM1489
TRA AC BUCM1490
AA SYN * BUCM1491
MOVE TU,(FRMLOC,2),TOLOC,, BUCM1492
AC SYN * BUCM1493
STZ DR,1 RESET DELAY WORD IN FILE TABLE BUCM1494
.6 AXT **,2 BUCM1495
.5 AXT **,4 BUCM1496
TRA 1,4 BUCM1497
TTL LINCOR - COMPUTES LINEAR ADDRESS FROM RECORD-WORD BUCM1498
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1499
* BUCM1500
* LINCOR COMPUTES WORD ADDRESS IN A FILE, FROM A RECORD NO. AND BUCM1501
* WORD NUMBER IN THE RECORD BUCM1502
* NOVEMBER 64 LOUIS POUZIN BUCM1503
* BUCM1504
* CALLING SEQUENCE BUCM1505
* IX1 MUST BE SET AS ACTIVE FILE TABLE POINTER BUCM1506
* TSX LINCOR,4 BUCM1507
* TGR WORD,TGW,REC BUCM1508
* SLW WORD WORD RELATIVE ADDRESS BUCM1509
* IF TGR AND TGW ARE ZERO, WORD AND REC CONTAIN ACTUAL RECORD BUCM1510
* AND WORD NUMBER. BUCM1511
* IF TGR OR TGW IS NOT ZERO, RECNO=C(REC)+C(IX(TGR)) BUCM1512
* WORDNO=C(WORD)+C(IX(TGW)) BUCM1513
* BUCM1514
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1515
REM BUCM1516
HEAD L BUCM1517
REM BUCM1518
LINCOR SYN * BUCM1519
CAL 1,4 GET THE ARGUMENT BUCM1520
SLW T SAVE ARGUMENT BUCM1521
STT A SAVE TGW BUCM1522
LGR 18 BUCM1523
STT B SAVE TGR BUCM1524
A SXA T1,** SAVE WORD INDEX BUCM1525
B SXA T2,** SAVE RECORD INDEX BUCM1526
LAC T,6 WORD POINTER INTO IX6 BUCM1527
LDC T,7 RECORD POINTER INTO IX7 BUCM1528
E CAL ,7 BUCM1529
ADM T2 REC + IX(TGR) BUCM1530
TZE *+2 SKIP IF RECORD NO. ZERO BUCM1531
SBM =1 1ST RECORD COUNTS FOR ZERO BUCM1532
XCL INTO MQ BUCM1533
CAL RCOUNT,1 NUMBER OF WORDS PER RECORD BUCM1534
ANA 0$ADMSK KEEP ADDRESS BUCM1535
SLW T BUCM1536
MPY T WORD COUNT IN INTEGRAL RECORDS BUCM1537
STQ T SAVE IT BUCM1538
CAL ,6 GET WORD COUNT IN RECORD BUCM1539
ADM T1 WORD + IX(TGW) BUCM1540
ADM T + WORD COUNT FOR INTEGRAL RECORDS BUCM1541
TRA 2,4 = LINEAR ADDRESS IN AC BUCM1542
* BUCM1543
T PZE TEMPORARY BUCM1544
T1 PZE .. BUCM1545
T2 PZE .. BUCM1546
HEAD BUCM1547
TTL LOCAL - SETTING BUFFER AND BOUNDARIES SWITCHES BUCM1548
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1549
* BUCM1550
* ANALYSES THE CALL AS TO SPECIAL CASES OF BOUNDARIES BUCM1551
* TSX LOCAL,4 BUCM1552
* FOLLOWING LOCATIONS MUST BE SET BUCM1553
* NDBLOC BUCM1554
* NEXCUR BUCM1555
* RELADR BUCM1556
* MAY SET FOLLOWING SWITCHES BUCM1557
* BAIL LAST RECORD (IN BUFFER) NOT YET WRITTEN BUCM1558
* BBUF BEGINS IN THE RECORD IN BUFFER BUCM1559
* BLAST BUFFER CONTAINS THE LAST RECORD OF FILE BUCM1560
* BREC BEGINS WITH 1ST WORD OF A RECORD BUCM1561
* BUFIN RECORD IN BUFFER INCLUDED IN THE DEAL BUCM1562
* CHG CONTENTS OF BUFFER DIFFERS FROM FILE BUCM1563
* EBUF ENDS IN THE RECORD IN BUFFER BUCM1564
* EREC ENDS WITH LAST WORD OF A RECORD BUCM1565
* LAST CALL INCLUDES THE LAST RECORD OF THE FILE BUCM1566
* MREC CALL INCLUDES SEVERAL RECORDS BUCM1567
* PRIM BUFFER CONTAINS A COMPLETE RECORD BUCM1568
* BUCM1569
* SETS FOLLOWING LOCATIONS BUCM1570
* RELADR+1 WORD INDEX,,RECORD NR. BUCM1571
* NDBLOC+1 WORD INDEX,,RECORD NR. BUCM1572
* NEXCUR+1 WORD INDEX,,RECORD NR. BUCM1573
* BUCM1574
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1575
* BUCM1576
* BUCM1577
* CHECKS IF THE CALL STARTS AT THE BEGINNING OF A RECORD BUCM1578
LOCAL SYN * BUCM1579
SXA .13,4 BUCM1580
SXA .18,3 BUCM1581
CAL RELADR BUCM1582
TSX RECOR,4 BUCM1583
FIVE Z,7,Z WORD INDEX TO X7, RECORD NO. TO X5 BUCM1584
SXA RELADR+1,7 BUCM1585
SXD RELADR+1,5 BUCM1586
SXD V,5 SAVE FOR LATER COMPARISON BUCM1587
TXH *+2,7,1 BUCM1588
SIR BREC SWITCH BEGINNING OF RECORD BUCM1589
LXD BUFREC,1,3 NO. OF RECORD IN BUFFER BUCM1590
TXL CF,3,0 SKIP IF NOTHING IN THE BUFFER BUCM1591
SCD *+1,3 BUCM1592
TXI *+1,5,** DIFF WITH 1ST RECORD OF CALL BUCM1593
TXH *+2,5,0 SKIP IF DIFFERENT BUCM1594
SIR BBUF 1ST RECORD IS THE SAME AS IN THE BUFFER BUCM1595
* BUCM1596
* CHECKS IF THE CALL ENDS UP WITH A RECORD BUCM1597
CF CAL NEXCUR BUCM1598
TSX RECOR,4 BUCM1599
FIVE Z,7,Z X7 SET TO WORD IX. X5 SET TO REC. NO. BUCM1600
SXA NEXCUR+1,7 BUCM1601
SXD NEXCUR+1,5 BUCM1602
TXH *+2,7,1 BUCM1603
SIR EREC SWITCH END OF RECORD BUCM1604
* BUCM1605
* CHECKS IF RECORD IN BUFFER IS INVOLVED IN CALL BUCM1606
TXL D,3,0 SKIP IF NOTHING IN BUFFER BUCM1607
TSX LINCOR,4 FINDS OUT LINEAR ADD. OF 1ST WORD IN BUFFERBUCM1608
PTH =1,0,Z 1ST WORD IN BUFFER BUCM1609
LDQ NDBLOC BUCM1610
TLQ G BEYOND THE CALL BUCM1611
LDQ RELADR BUCM1612
TLQ MM SKIP IF CERTAINLY INVOLVED IN THE CALL BUCM1613
RFT BBUF IF BEGINNING OF CALL IS IN THE BUFFER BUCM1614
MM SIR BUFIN SWITCH BUFFER INVOLVED BUCM1615
* BUCM1616
* SETS SWITCHES ABOUT BUFFER STATUS BUCM1617
G SYN * BUCM1618
LDQ CHNG,1 BUCM1619
RQL 1 BUCM1620
TQP *+2 BUCM1621
SIR CHG BUFFER DIFFERS FROM RECORD IN FILE BUCM1622
RQL 1 BUCM1623
TQP *+2 BUCM1624
SIR PRIM BUFFER CONTAINS A COMPLETE RECORD BUCM1625
LXD NORECS,1,4 BUCM1626
SCD *+1,3 BUCM1627
TXI *+1,4,** BUCM1628
TXH D,4,0 SKIP IF NOT LAST RECORD IN BUFFER BUCM1629
SIR BLAST BUFFER CONTAINS LAST RECORD OF FILE BUCM1630
* BUCM1631
* CHECKS IF LAST RECORD IS ALREADY WRITTEN IN FILE BUCM1632
CAL WINDEX,1 WORD COUNT IN BUFFER BUCM1633
STD AZ BUCM1634
LXA LCOUNT,1,4 BUCM1635
AZ TXH D,4,** SKIP IF ONLY PART OF RECORD IN BUFFER BUCM1636
RNT PRIM AND IF NOT PRIMED BUCM1637
SIR BAIL THEN LAST RECORD NOT YET WRITTEN BUCM1638
* BUCM1639
* CHECKS IF CALL INVOLVES LAST RECORD OF FILE BUCM1640
D SYN * BUCM1641
CAL NDBLOC LAST WORD ADDRESS IN CALL BUCM1642
TSX RECOR,4 CONVERT BUCM1643
SIX NDBLOC+1,0,Z RECNO. IN IX6 BUCM1644
SXD NDBLOC+1,6 BUCM1645
SXD AP,6 BUCM1646
LXD NORECS,1,5 BUCM1647
AP TXH *+2,5,** SKIP IF NORECS .G. LAST RECORD CONCERNED BUCM1648
SIR LAST BUCM1649
* BUCM1650
* CHECKS IF CALL TERMINATES IN THE CURRENT BUFFER BUCM1651
TXL CG,3,0 SKIP IF NOTHING IN THE BUFFER BUCM1652
SCD *+1,3 BUCM1653
TXI *+1,6,** NDBLOC - BUFFER NR. BUCM1654
TXH *+2,6,0 SKIP IF DIFFERENT BUCM1655
SIR EBUF SAME, ENDS IN BUFFER BUCM1656
* BUCM1657
* CHECKS IF CALL INVOLVES SEVERAL RECORDS BUCM1658
CG LXD NDBLOC+1,5 LAST RECORD NR. IN CALL BUCM1659
V TXL *+2,5,** SKIP IF SAME AS FIRST BUCM1660
SIR MREC MULTIPLE RECORDS CALL BUCM1661
.18 AXT **,3 BUCM1662
.13 AXT **,4 BUCM1663
TRA 1,4 BUCM1664
TTL PICK - GETS ARGUMENT FROM CALLER AND SETS BASIC LOCATIONSBUCM1665
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1666
* BUCM1667
* PICKS UP ARGUMENTS FROM CALLING SEQUENCE BUCM1668
* BUCM1669
* AXT LENGTH,5 LENGTH OF ARGUMENTS LIST BUCM1670
* TSX PICK,4 BUCM1671
* STORES ARGUMENTS IN THE VECTOR ARG...ARG+5 BUCM1672
* SETS FOLLOWING LOCATIONS BUCM1673
* RETURN BUCM1674
* MEMORY BUCM1675
* BUFFER BUCM1676
* EOFRTN BUCM1677
* QWAIT BUCM1678
* NIDBUF BUCM1679
* MEMRY BUCM1680
* BUFR BUCM1681
* RELADR BUCM1682
* IX 1 TO FILE TABLE POINTER BUCM1683
* BUCM1684
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1685
* BUCM1686
PICK SYN * BUCM1687
SXA .7,4 BUCM1688
SXD LCS,5 BUCM1689
AXT ARG,4 BUCM1690
LCS TXI *+1,4,** BUCM1691
SXA BA,4 BUCM1692
LXA X4,4 RESTORE IX4 AS OF CALL BUCM1693
TXI *+1,4,-1 BUCM1694
B SYN * BUCM1695
CAL 0,4 BUCM1696
BA SLW **,5 STORE ARGUMENTS IN ARG...ARG+5 BUCM1697
TXI *+1,4,-1 BUCM1698
TIX B,5,1 BUCM1699
SCA RETURN,4 SAVE RETURN TO CALLER BUCM1700
SCA EOFRTN,4 SET EOF RETURN FOR BOPEN BUCM1701
CAL ARG PTR,TAG BUCM1702
STI SW SAVE SWITCHES BUCM1703
TSX GETEFA,4 BUCM1704
LDI SW RESTORE SWITCHES BUCM1705
PAC ,1 BUCM1706
LXD LCS,5 BUCM1707
TXL .7,5,2 SKIP IF ONLY 2 ARGUMENTS BUCM1708
LXD ARG+2,4 BUCM1709
SXA EOFRTN,4 EOFRTN OR NON RELEVANT BUCM1710
TXL AD,5,4 SKIP IF LESS THAN 5 ARGUMENTS BUCM1711
LAC ARG+2,4 BUCM1712
CAL 0,4 RELATIVE ADDRESS BUCM1713
SLW RELADR BUCM1714
LXA ARG+5,4 NIDBUF FOR BREAD/BWRITE BUCM1715
TXH *+2,5,5 SKIP IF 6 ARGUMENTS BUCM1716
LXD ARG+4,4 NIDBUF FOR BTRUNC BUCM1717
SXA NIDBUF,4 BUCM1718
LXD ARG+3,4 BUCM1719
AD SYN * BUCM1720
SXA QWAIT,4 QWAIT OR FINISH BUCM1721
LAC ARG+1,5 BUCM1722
CAL ,5 MEMORY FLAG BUCM1723
SLW MEMORY USER'S MEMORY FLAG BUCM1724
ALS 15 SET IN TAG BUCM1725
STT MEMRY AND IN MEMORY CELL BUCM1726
LDC ARG+1,5 BUCM1727
CAL ,5 BUFFER FLAG BUCM1728
SLW BUFFER BUFFER MEMORY FLAG BUCM1729
ALS 15 SET IN TAG BUCM1730
STT BUFR AND IN BUFFER CELL BUCM1731
.7 AXT **,4 BUCM1732
TRA 1,4 BUCM1733
TTL RECOR - COMPUTES RECORD AND WORD INDEX FROM LINEAR ADDRESSBUCM1734
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1735
* BUCM1736
* FAP BUCM1737
* RECOR COMPUTES RECORD NO. AND RELATIVE WORD IN RECORD BUCM1738
* FROM A GIVEN WORD NUMBER IN FILE BUCM1739
* CALLING SEQUENCE BUCM1740
* IX1 POINTS TO THE ACTIVE FILE STATUS TABLE BUCM1741
* CAL WORD WORD RELATIVE ADDRESS BUCM1742
* TSX RECOR,4 BUCM1743
* TGR WORD,TGW,REC BUCM1744
* IF TGR AND TGW ARE ZERO, REC AND WORD WILL CONTAIN THE RECORD BUCM1745
* NUMBER AND THE WORD NUMBER IN THE RECORD. BUCM1746
* IF TGR OR TGW ARE NOT ZERO, THE CORRESPONDING INDEX REGISTER WILL BUCM1747
* CONTAIN THE DIFFERENCE BETWEEN THE RECORD NUMBER AND THE PREVIOUS BUCM1748
* CONTENT OF REC. DITTO FOR WORD NUMBER AND PREVIOUS CONTENT OF WORD. BUCM1749
* I.E. RECNO.=REC+C(IX(TGR)) ** WORDNO.=WORD+C(IX(TGW)) BUCM1750
* BUCM1751
* NOVEMBER 64 LOUIS POUZIN BUCM1752
* BUCM1753
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1754
REM BUCM1755
REM BUCM1756
RECOR SYN * BUCM1757
HEAD R BUCM1758
SXA X4,4 BUCM1759
STZ T CLEAR T BUCM1760
TZE G SKIP IF ADDRESS IS ZERO BUCM1761
XCL LINEAR ADDRESS TO MQ BUCM1762
CAL RCOUNT,1 BUCM1763
ANA 0$ADMSK KEEP ADDRESS BUCM1764
SLW T BUCM1765
XCL RCOUNT TO MQ. LIN. AD. TO AC BUCM1766
ADM T WORD ADDRESS + NUMBER OF WORDS PER RECORD BUCM1767
SUB =1 BUCM1768
G SYN * BUCM1769
LGR 36 CLEAR AC, SET MQ BUCM1770
DVP T MQ = RECORD NUMBER BUCM1771
ZET T IF T = 0, THEN ADDRESS ZERO IN FILE BUCM1772
ADM =1 AC = WORD NUMBER IN BUFFER BUCM1773
SLW T SAVE IT BUCM1774
CAL 1,4 ARGUMENT FROM CALLER BUCM1775
PDC ,7 PREVIOUS RECORD NR. POINTER BUCM1776
PAC ,6 PREVIOUS WORD ADDRESS POINTER BUCM1777
STT C SAVE TGW BUCM1778
ARS 18 BUCM1779
STT D SAVE TGR BUCM1780
ARS 15 BUCM1781
TNZ A SKIP IF TGR SPECIFIED BUCM1782
STQ ,7 RETURN RECORD NUMBER BUCM1783
TRA B BUCM1784
REM BUCM1785
A SYN * BUCM1786
XCL RECNO INTO AC. BUCM1787
PAC ,4 RECORD NUMBER BUCM1788
CAL ,7 PREVIOUS RECORD NO. BUCM1789
ALS 18 BUCM1790
STD *+1 BUCM1791
TXI *+1,4,** PREVIOUS - CURRENT BUCM1792
SCA D,4 SAVE RECORD DEVIATION BUCM1793
REM BUCM1794
B SYN * PROCESS WORD POINTER BUCM1795
CAL C CHECK TGW ZERO BUCM1796
ANA =O700000 KEEP TAG BUCM1797
TNZ E SKIP IF TGW SPECIFIED BUCM1798
CAL T BUCM1799
STA ,6 RETURN WORD POINTER BUCM1800
TRA D BUCM1801
REM BUCM1802
E SYN * BUCM1803
LAC T,4 WORD POINTER BUCM1804
CAL ,6 PREVIOUS WORD POINTER BUCM1805
ALS 18 BUCM1806
STD *+1 BUCM1807
TXI *+1,4,** PREVIOUS - CURRENT BUCM1808
SCA C,4 SAVE WORD DEVIATION BUCM1809
REM BUCM1810
F SYN * BUCM1811
C AXT **,** SET TGW BUCM1812
D AXT **,** SET TGR BUCM1813
X4 AXT **,4 BUCM1814
TRA 2,4 BUCM1815
REM BUCM1816
T PZE TEMPORARY BUCM1817
HEAD BUCM1818
TTL SPLIT - BREAKING CALL INTO RECORD BOUNDARIES BUCM1819
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1820
* BUCM1821
* SPLIT. BREAKS BLOC INTO GROUP OF WORDS, ACCORDING TO RECORD BOUNDARIESBUCM1822
* BUCM1823
* TSX SPLIT,4 BUCM1824
* FOLLOWING LOCATIONS MUST BE SET BUCM1825
* RELADR AND RELADR+1 BUCM1826
* BLOC BUCM1827
* NEXCUR AND NEXCUR+1 BUCM1828
* IX1 SET TO FILE POINTER BUCM1829
* FOLLOWING LOCATIONS WILL BE SET BUCM1830
* CHK1 BUCM1831
* CHKL1 BUCM1832
* CHK2 BUCM1833
* CHKL2 BUCM1834
* CHK3 BUCM1835
* CHKL3 BUCM1836
* CHK1 IS SAME AS BEGINNING LOCATION IN USER'S MEMORY BUCM1837
* CHKL1 IS THE NO. OF WORDS UP TO THE NEXT RECORD BUCM1838
* CHK2 IS THE BEGINNING LOCATION OF AN INTEGRAL NO. OF RECORDS BUCM1839
* CHKL2 IS THE LENGTH OF THAT PORTION OF THE FILE BUCM1840
* CHK3 IS THE LEFTOVER BUCM1841
* CHKL3 IS ITS LENGTH BUCM1842
* CHKL1 AND CHKL3 MAY BE PRESET FOR FORCING A SPECIAL SPLITTING BUCM1843
* BUCM1844
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BUCM1845
* BUCM1846
SPLIT SYN * BUCM1847
RNT MREC IF SINGLE RECORD BUCM1848
TRA 1,4 IGNORE BUCM1849
SXA .8,4 BUCM1850
LXD BLOC,4 WORD COUNT BUCM1851
LXA RELADR+1,7 WORD INDEX OF BEGIN. BUCM1852
TXI *+1,7,-1 IX7 = WORD - 1 BUCM1853
TXL AL,7,0 SKIP IF ZERO. BEGINS A RECORD BUCM1854
SCD AM,7 BUCM1855
LXA RCOUNT,1,7 WORD COUNT PER RECORD BUCM1856
AM TXI *+1,7,** - WORD INDEX + 1 BUCM1857
SXA CHKL1,7 = LENGTH OF 1ST CHUNK BUCM1858
AL LXA NEXCUR+1,7 NEXT POINTER WORD IX. BUCM1859
TXI *+1,7,-1 BUCM1860
TXL *+2,7,0 BUCM1861
SXA CHKL3,7 SET LENGTH OF LAST CHUNK BUCM1862
PXA ,4 TOTAL LENGTH BUCM1863
SBM CHKL1 - 1ST CHUNK BUCM1864
SBM CHKL3 - 3RD CHUNK BUCM1865
SLW CHKL2 = 2ND CHUNK BUCM1866
CAL BLOC STARTING ADDRESS BUCM1867
STA CHK1 BUCM1868
ADM CHKL1 + 1ST LENGTH BUCM1869
STA CHK2 = 2ND ADDRESS BUCM1870
ADM CHKL2 + 2ND LENGTH BUCM1871
STA CHK3 = 3RD ADDRESS BUCM1872
.8 AXT **,4 BUCM1873
TRA 1,4 GO TO CP BUCM1874
TTL CALLS TO THE STRATEGY MODULE BUCM1875
* BUCM1876
STRAGY SYN * -IX1 SET TO FILE TABLE BUCM1877
CAL F,1 DEVICE CODE BUCM1878
ARS 15 RETURNS IN IX7 THE POINTER TO BUCM1879
ANA =O7 THE APPROPRIATE STRATEGY MODULE BUCM1880
PAC ,7 BUCM1881
SXA CRAMSV,7 SAVE IR7 FOR QCRAM BUCM1882
STI SW SAVE SWITCHES BUCM1883
BV LDI SW RESTORE SWITCHES BUCM1884
TRA 1,4 BUCM1885
SPACE 2 BUCM1886
* BUCM1887
* ROUTINE TO CHECK NO. OF POSSIBLE REQUESTS IN QUEUE BUCM1888
QUEUE SXA .1,4 BUCM1889
STO REQCT SAVE NO OF REQUESTS (KEEP SIGN BIT PLEASE) BUCM1890
TSX STRAGY,4 GET STRATEGY CODE BUCM1891
XEC QTESTF,7 BUCM1892
EFA 0,1 BUCM1893
PAR REQCT,,QWAIT BUCM1894
.1 AXT **,4 BUCM1895
TRA BV BUCM1896
* BUCM1897
WRITE SXA .2,4 BUCM1898
TSX STRAGY,4 SET IX7 BUCM1899
XEC WRITEF,7 BUCM1900
EFA 0,1 BUCM1901
PAR LABEL,,IOWR BUCM1902
PAR QCRAM,,NSPACE BUCM1903
STZ IOWR RESET LIST BUCM1904
.2 AXT **,4 BUCM1905
TRA BV BUCM1906
* BUCM1907
READ SXA .3,4 BUCM1908
TSX STRAGY,4 SET IX7 BUCM1909
XEC READF,7 BUCM1910
EFA 0,1 BUCM1911
PAR LABEL,,IORD BUCM1912
PAR QCRAM BUCM1913
STZ IORD RESET LIST BUCM1914
.3 AXT **,4 BUCM1915
TRA BV BUCM1916
* BUCM1917
REWRT SXA .4,4 BUCM1918
TSX STRAGY,4 SET IX7 BUCM1919
XEC REWRTF,7 BUCM1920
EFA 0,1 BUCM1921
PAR LABEL,,IORW BUCM1922
PAR QCRAM BUCM1923
STZ IORW RESET LIST BUCM1924
.4 AXT **,4 BUCM1925
TRA BV BUCM1926
* BUCM1927
OPEN SXA .11,4 BUCM1928
TSX STRAGY,4 SET IX7 BUCM1929
XEC OPENF,7 BUCM1930
EFA 0,1 BUCM1931
PAR ERROR BUCM1932
.11 AXT **,4 BUCM1933
TRA BV BUCM1934
* BUCM1935
DFILE SXA .12,4 BUCM1936
TSX STRAGY,4 SET IX7 BUCM1937
XEC DFILEF,7 BUCM1938
EFA 0,1 BUCM1939
PAR LABEL,,QCRAM BUCM1940
.12 AXT **,4 BUCM1941
TRA BV BUCM1942
* BUCM1943
CLOSE SXA .17,4 BUCM1944
TSX STRAGY,4 BUCM1945
XEC CLOSEF,7 BUCM1946
EFA 0,1 BUCM1947
.17 AXT **,4 BUCM1948
TRA BV BUCM1949
* BUCM1950
READL AXC IORD,7 BUCM1951
TRA BK BUCM1952
WRITL AXC IOWR,7 BUCM1953
TRA BK BUCM1954
REWRTL AXC IORW,7 BUCM1955
BK AXT IOLEN,6 BUCM1956
TNX AY,6,1 SKIP IF QUEUE FULL BUCM1957
ZET 0,7 SEARCH FOR 1ST AVAILABLE REQUEST BUCM1958
TXI *-2,7,-1 IN LIST BUCM1959
SLW 0,7 SET REQUEST BUCM1960
STZ 1,7 CLEARS NEXT REQUEST BUCM1961
TRA 1,4 BUCM1962
* BUCM1963
AY SCD *+1,4 SETS LOCATION BUCM1964
BRA ERROR,,** FOR DEBUGGING BUCM1965
TTL SAVE - RESTORE - INDEX REGISTERS 1, 2, 3, 4 BUCM1966
* BUCM1967
SAV SYN * SAVE INDEX REGISTERS BUCM1968
SXA X1,1 BUCM1969
SXA X2,2 BUCM1970
SXA X3,3 BUCM1971
SXA X4,4 5, 6, 7 ARE TEMPORARY BUCM1972
LDI Z CLEAR INDICATORS BUCM1973
AXT NDATA-DATA,7 BUCM1974
STI NDATA,7 CLEARS STORAGE AREA BUCM1975
TIX *-1,7,1 BUCM1976
TRA 1,5 BUCM1977
SPACE 2 BUCM1978
* BUCM1979
REST SYN * RESTORE INDEX REGISTERS BUCM1980
X1 AXT **,1 BUCM1981
X2 AXT **,2 BUCM1982
X3 AXT **,3 BUCM1983
X4 AXT **,4 BUCM1984
CAL DEV RETURNS NORECS DEVIATION BUCM1985
TRA 1,5 BUCM1986
TTL COMMON RETURNS - ERROR RETURNS BUCM1987
* BUCM1988
RETURN PAR ** RETURN ADDRESS TO CALLER BUCM1989
RFT EOF IF END OF FILE REACHED BUCM1990
TRA EOFRTN THEN TAKE EOF RETURN BUCM1991
TSX REST,5 RESTORE REGISTERS BUCM1992
TRA* RETURN BACK TO THE CALLER BUCM1993
* BUCM1994
* BUCM1995
* END OF FILE RETURN. WORD COUNT PROCESSED IN AC. BUCM1996
* BUCM1997
EOFRTN PAR ** BUCM1998
TSX REST,5 RESTORE REGISTERS BUCM1999
LXD BLOC,5 WORD COUNT ACCEPTED BUCM2000
PXA ,5 SET IN AC BUCM2001
TRA* EOFRTN BUCM2002
* BUCM2003
* QWAIT FOR ANY DELAYED PROCESS OF THE CALL BUCM2004
* BUCM2005
QWAIT PAR ** BUCM2006
TSX REST,5 RESTORE REGISTERS BUCM2007
TRA* QWAIT BUCM2008
* BUCM2009
* PVIOL FOR PROTECTION MODE VIOLATION OCCURING DURING THE IO PROCESS BUCM2010
* BUCM2011
PVIOL PAR ** BUCM2012
TSX REST,5 RESTORE REGISTERS BUCM2013
TRA* PVIOL BUCM2014
* BUCM2015
* NIDBUF WHEN BUFFER REQUIRED AND NONE ASSIGNED BUCM2016
* BUCM2017
NIDBUF PAR ** BUCM2018
TSX REST,5 BUCM2019
TRA* NIDBUF BUCM2020
* BUCM2021
* QCRAM IS AN ABNORMAL RETURN, SINCE QTEST IS CALLED BEFOREHAND BUCM2022
* BUCM2023
QCRAM SYN * BUCM2024
STL *+1 SETS LOCATION BUCM2025
BRN ** FOR DEBUGGING BUCM2026
CRAMSV AXT **,7 RESTORE STRATEGY MODULE POINTER BUCM2027
TRA 0,4 RETURN TO THE SAME CALL BUCM2028
* BUCM2029
* ERROR FOR ALL NON SPECIFIC ERRORS OCCURENCES BUCM2030
* BUCM2031
ERROR PAR ** BUCM2032
TSX REST,5 RESTORE REGISTERS BUCM2033
TRA* ERROR BUCM2034
* BUCM2035
NSPACE SCD *+1,4 SETS LOCATION BUCM2036
BRA ERROR,,** FOR DEBUGGING BUCM2037
REM BUCM2038
RMT * FLUSH REMOTE SEQUENCES BUCM2039
REM BUCM2040
REM BUCM2042
$BLOCK BCD,0084
END BUCM2043
* FAP
$BLOCK BCD,1344
ENTRY QINIT
ENTRY RETQUE
ENTRY GETQUE
ENTRY QSCRAP
ENTRY QTEST
NOLNK
*
WHOLE EQU 0 777777777777
FRELNG EQU 0 000000077777
FREEP EQU 0 077777000000
QUENO EQU 0 700000000000
NEXTQ EQU 0 000000077777
QLNG EQU 0 077777000000
FINISW EQU 0 000000700000
*
WHOLE1 EQU 1 777777777777
PAFST EQU 1 000000077777
FUNCT EQU 1 077777000000
*
ZERO DEC 0
*
QINIT TRA (L000
(L001 LAC **,1 KEY
CLA WHOLE,1
TNZ (L002
CLA =O1000000
STO WHOLE,1
QIN010 CAL ** KEY
AXC 18,4 22
ARS 0,4
SUB =1
STO WHOLE1,1
(L002 EQU *
RET001 AXT **,4
TRA 2,4
(L000 SXA RET001,4
CLA 1,4
STA (L001 2
STA QIN010 7
TRA (L001
*
RETQUE TRA (L003
(L004 CLA ** RPQ
STO PQ
PAC 0,4
CAL FINISW,4
ANA =O700000
TZE (L005
LAC PQ,1
CAL FALSE
ALS 15 17
STT FINISW,1
RET010 CAL ** KEY
ANA =O77777
STO QBASE
PAC 0,4
CAL NEXTQ,4
ANA =O77777
STO TP
CLA PQ
SUB QBASE
STO RP
CLA ZERO 0
STO BP
SRCH1 CLA TP
TZE (L006
CLA TP
SUB RP
TZE (L006
CLA TP
STO BP
ADD QBASE
PAC 0,4
CAL NEXTQ,4
ANA =O77777
STO TP
TRA SRCH1
TRA (L007
(L006 CLA BP
ADD QBASE
STO (C011
CLA TP
ADD QBASE
LAC (C011,1
PAC 0,4
CAL NEXTQ,4
ANA =O77777
STA NEXTQ,1
(L007 LAC QBASE,1
CAL FREEP,1
ANA =O77777000000
ARS 18 22
STO TP
CLA ZERO 0
STO BP
LOOK CLA TP
TZE (L010
CLA TP
SUB RP
TZE *+2
TPL (L010
CLA TP
STO BP
ADD QBASE
PAC 0,4
CAL FREEP,4
ANA =O77777000000
ARS 18 22
STO TP
TRA LOOK
(L010 CLA TP
ADD QBASE
STO TP
CLA BP
ADD QBASE
STO BP
LAC BP,1
CAL FRELNG,1
ANA =O77777
ADD BP
SUB PQ
TNZ (L011
CLA BP
SUB QBASE
TZE (L011
LAC PQ,2
CAL FRELNG,1
ANA =O77777
XCA
CAL QLNG,2
ANA =O77777000000
ARS 18 22
STO (C007
XCA
ADD (C007
STA FRELNG,1
CLA BP
STO PQ
TRA (L012
(L011 LAC PQ,1
CAL QLNG,1
ANA =O77777000000
ARS 18 22
STA FRELNG,1
LAC BP,2
CAL FREEP,2
ANA =O77777000000
ARS 18 22
ALS 18 22
STD FREEP,1
CLA RP
ALS 18 22
STD FREEP,2
(L012 LAC PQ,1
CLA PQ
XCA
CAL FRELNG,1
ANA =O77777
STO (C007
XCA
ADD (C007
SUB TP
TNZ (L013
LAC TP,2
CAL FRELNG,1
ANA =O77777
XCA
CAL FRELNG,2
ANA =O77777
STO (C007
XCA
ADD (C007
STA FRELNG,1
CAL FREEP,2
ANA =O77777000000
ARS 18 22
ALS 18 22
STD FREEP,1
(L013 TRA (L014
(L005 CLA BADRET
ADD =1
STO BADRET
(L014 EQU *
RET002 AXT **,4
TRA 1,4 DAVE HAD 3,4
(L003 SXA RET002,4
CLA 1,4
STA RET010 36
CLA 2,4
STA (L004 24
TRA (L004
*
GETQUE TRA (L015
(L016 CAL ** KEY
ANA =O77777
STO QBASE
PAC 0,4
CAL FREEP,4
ANA =O77777000000
ARS 18 22
STO TP
CLA ZERO 0
STO BP
GET010 CLA ** ASKED
ADD QHEAD
STO SIZE
LOOK1 CLA TP
TNZ (L017
GET020 TRA ** ERROR
(L017 CLA TP
ADD QBASE
PAC 0,4
CAL FRELNG,4
ANA =O77777
SUB SIZE
TZE (L020
TPL (L020
CLA TP
STO BP
ADD QBASE
PAC 0,4
CAL FREEP,4
ANA =O77777000000
ARS 18 22
STO TP
TRA LOOK1
TRA (L021
(L020 CLA BP
ADD QBASE
STO BP
CLA TP
STO NP
ADD QBASE
STO TP
PAC 0,4
CAL FRELNG,4
ANA =O77777
SUB SIZE
TNZ (L022
LAC BP,1
LAC TP,2
CAL FREEP,2
ANA =O77777000000
ARS 18 22
ALS 18 22
STD FREEP,1
TRA (L023
(L022 CLA NP
ADD SIZE
STO NP
LAC BP,1
ALS 18 22
STD FREEP,1
CLA NP
ADD QBASE
STO NP
PAC 0,4
LAC TP,2
CAL FREEP,2
ANA =O77777000000
ARS 18 22
ALS 18 22
STD FREEP,4
CAL FRELNG,2
ANA =O77777
SUB SIZE
LAC NP,3
STA FRELNG,3
(L023 EQU *
(L021 CLA TP
STO NP
CLA ZERO 0
STO BP
LAC QBASE,1
CAL NEXTQ,1
ANA =O77777
STO TP
LOOK2 CLA TP
TZE (L024
CLA TP
ADD QBASE
PAC 0,4
CAL QUENO,4
ANA =O700000000000
ARS 33 41
GET030 SUB ** PRIOR
TZE *+2
TPL (L024
CLA TP
STO BP
ADD QBASE
PAC 0,4
CAL NEXTQ,4
ANA =O77777
STO TP
TRA LOOK2
(L024 CLA BP
ADD QBASE
STO BP
LAC NP,1
PAC 0,4
CAL NEXTQ,4
ANA =O77777
STA NEXTQ,1
CLA NP
SUB QBASE
LAC BP,2
STA NEXTQ,2
CLA SIZE
ALS 18 22
STD QLNG,1
CAL FALSE
ALS 15 17
STT FINISW,1
GET040 CLA ** AFST
GET050 SUB ** IOSTAT
STA PAFST,1
GET060 CLA ** PRIOR
ALS 33 41
STP QUENO,1
CLA NP
STO NP
RET003 AXT **,4
TRA 1,4 DAVE HAD 7,4
(L015 SXA RET003,4
CLA 1,4
STA (L016 251
CLA 2,4
STA GET050 442
CLA 3,4
STA GET040 441
CLA 4,4
STA GET030 404
STA GET060 444
CLA 5,4
STA GET010 263
CLA 6,4
STA GET020 270
TRA (L016
*
QSCRAP TRA (L025
(L026 CAL ** KEY
ANA =O77777
STO QQBASE
PAC 0,4
CAL NEXTQ,4
ANA =O77777
STO QTP
QS0010 CLA ** AFST
QS0020 SUB ** IOSTAT
STO QRP
LOOK3 CLA QTP
TZE (L027
CLA QTP
ADD QQBASE
STO QTP
PAC 0,4
CAL PAFST,4
ANA =O77777
SUB QRP
TNZ (L030
LAC QTP,1
CAL NEXTQ,1
ANA =O77777
STO QBP
CAL TRUE
ALS 15 17
STT FINISW,1
TSX RETQUE,4
QS0030 TXH ** KEY
TXH QTP
CLA QBP
STO QTP
TRA (L031
(L030 LAC QTP,1
CAL NEXTQ,1
ANA =O77777
STO QTP
(L031 TRA LOOK3
(L027 EQU *
RET004 AXT **,4
TRA 1,4 DAVE HAD 4,4
(L025 SXA RET004,4
CLA 1,4
STA (L026 473
STA QS0030 527
CLA 2,4
STA QS0020 503
CLA 3,4
STA QS0010 502
TRA (L026
QRP OCT 0
QTP OCT 0
QBP OCT 0
QQBASE OCT 0
*
QTEST TRA (L032
(L033 LAC **,1 KEY
CAL FREEP,1
ANA =O77777000000
ARS 18 22
STO TP
QT0010 CLA ** NUM
STO BP
LOOK4 CLA BP
TMI (L034
TZE (L034
CLA TP
TNZ (L035
QT0020 TRA ** ERROR
(L035 CLA TP
QT0030 ADD ** KEY
STO TP
PAC 0,4
CAL FRELNG,4
ANA =O77777
SUB QSIZE
TMI (L036
TZE (L036
LAC TP,1
CAL FRELNG,1
ANA =O77777
LRS 35 43
DVP QSIZE
STQ (C020
CLA BP
SUB (C020
STO BP
(L036 LAC TP,1
CAL FREEP,1
ANA =O77777000000
ARS 18 22
STO TP
TRA LOOK4
(L034 EQU *
RET005 AXT **,4
TRA 1,4 DAVE HAD 4,4
(L032 SXA RET005,4
CLA 1,4
STA (L033 555
STA QT0030 573
CLA 2,4
STA QT0010 562
CLA 3,4
STA QT0020 571
TRA (L033
*
TRUE DEC 1
FALSE DEC 0
QSIZE DEC 7
QHEAD DEC 2
BADRET DEC 0
QBASE BSS 1
TP BSS 1
NP BSS 1
BP BSS 1
RP BSS 1
PQ BSS 1
SIZE BSS 1
(C007 BSS 1
(C011 BSS 1
(C020 BSS 1
$BLOCK BCD,0084
END
* FAP
$BLOCK BCD,1344
* I/O CONTROL MODULE (C. GARMAN --- 27 MARCH 1965) IOCM0001
TTL SYSTEM MACROS AND EQUIVALENCE IOCM0002
TITLE IOCM0003
ENTRY IOBEGN RESUME I/O FOR USER(S) IOCM0004
ENTRY IOHALT BLOCK I/O FOR USER(S) IOCM0005
ENTRY DRAIN WAIT FOR ALL I/O TO TERMINATE IOCM0006
ENTRY IORST RE-START I/O AFTER LOST TRAP IOCM0007
REM IOCM0008
ENTRY SSETUP ASSOCIATE ACTIVE FILE WITH I/O STATUS TABLEIOCM0009
ENTRY CNTIO DETERMINE LENGTH OF I/O LIST, NO. RECORDS IOCM0010
REM IOCM0011
ENTRY QUINT INITIALIZE USER'S QUEUES IOCM0012
ENTRY QTST TEST AVAILABILITY OF QUEUE SPACE IOCM0013
ENTRY QGET ENTER QUEUE IN SEQUENCE IOCM0014
ENTRY QSCRP DELETE QUEUES PERTAINING TO GIVEN FILE IOCM0015
ENTRY QDEL DELETE SPECIFIC ENTRY FROM USER'S QUEUES IOCM0016
REM IOCM0017
ENTRY FNDUSR FIND USER TO RUN IOCM0018
ENTRY NXTUSR FIND ANOTHER USER IOCM0019
ENTRY NXBEAD FIND NEXT QUEUE BEAD FOR THIS USER IOCM0020
REM IOCM0021
ENTRY PROLST PROCESS LIST FROM USER'S QUEUES IOCM0022
ENTRY TGTEFA GETEFA, TRAP-TIME IOCM0023
REM IOCM0024
EXTERN QINIT,RETQUE,GETQUE,QSCRAP,QTEST ENTRIES IN QMAN2B IOCM0025
REM IOCM0026
EXTERN UTABLE,USRTBL,PRIORT SCHEDULING TABLES IOCM0027
EXTERN GETEFA USED BY SETUP (CALLED ENABLED) IOCM0028
REM IOCM0029
REM IOEQ0001
REM ..... FILE INPUT/OUTPUT SYSTEM EQUIVALENCE PACKAGE ..... IOEQ0002
REM IOEQ0003
DUSERS EQU 2 MAX. NO. OF USERS OF I/O SYSTEM IOEQ0004
FMAX EQU 3 MAX. NO. OF DEVICES AVAILABLE IN I/O SYSTEMIOEQ0005
IOSMEM EQU 1 MEMORY WHERE I/O SYSTEM RESIDES (1=A, 2=B) IOEQ0006
EJECT IOEQ0007
.REL. SET 0 INITIALIZE RELATIVE A.F.S.T. ADDRESS IOEQ0008
REM IOEQ0009
SETWRD MACRO SYMBOL TO SET UP ACTIVE FILE ENTRIES IOEQ0010
IRP SYMBOL .. IOEQ0011
PMC ON .. IOEQ0012
SYMBOL SYN .REL. .. IOEQ0013
PMC OFF .. IOEQ0014
IRP .. IOEQ0015
.REL. SET .REL.+1 .. BUMP RELATIVE ADDRESS IOEQ0016
SETWRD END .. IOEQ0017
REM IOEQ0018
SETWRD (RPROBN) IOEQ0019
SETWRD (RPROGN) IOEQ0020
SETWRD (RNAME1) IOEQ0021
SETWRD (RNAME2) IOEQ0022
SETWRD (RMODE) IOEQ0023
SETWRD (FPROBN) IOEQ0024
SETWRD (FPROGN) IOEQ0025
SETWRD (FNAME1) IOEQ0026
SETWRD (FNAME2) IOEQ0027
SETWRD (DAYTIM,LPROBN) IOEQ0028
SETWRD (DATELU,AUTHOR,LPROGN) IOEQ0029
SETWRD (MODE,ILOCK,F,RCOUNT) IOEQ0030
SETWRD (RWSTAT,S,W,R,NORECS,P,LCOUNT,LNAME1) IOEQ0031
SETWRD (POINTR,LNAME2) IOEQ0032
SETWRD (ASGNSW,REDREC,REDWRD) IOEQ0033
SETWRD (WRTREC,WRTWRD) IOEQ0034
SETWRD (CHNG,PRIME,BUFREC,BUFADR) IOEQ0035
SETWRD (WINDEX,DINDEX) IOEQ0036
SETWRD (DR,DW,DCOUNT,DADDRS) IOEQ0037
SETWRD (PRIOR,IOTASK,EFLAG,CURREC) IOEQ0038
SETWRD (SMTMP1) IOEQ0039
SETWRD (SMTMP2) IOEQ0040
REM IOEQ0041
SETWRD (ACTLNG) LENGTH OF SINGLE ACTIVE FILE ENTRY IOEQ0042
EJECT IOEQ0043
MACRO TO ASSIGN CONSECUTIVE STORAGE LOCATIONS IOEQ0044
SYMBOL ASTORE BLOCK,NWORDS .. WITHIN A BLOCK IOEQ0045
PMC ON .. IOEQ0046
SYMBOL SYN BLOCK .. IOEQ0047
PMC OFF .. IOEQ0048
TMP SET NWORDS .. IOEQ0049
BLOCK SET BLOCK+TMP .. IOEQ0050
ASTORE END .. IOEQ0051
REM IOEQ0052
AFST SET 0 DEFINE ENTRIES IN ACTIVE FILE STATUS TABLE IOEQ0053
REM IOEQ0054
PROBNO ASTORE AFST,1 USER'S PROBLEM NUMBER IN BCD IOEQ0055
PROGNO ASTORE AFST,1 USER'S PROGRAMMER NUMBER IN BCD IOEQ0056
AUTHNO ASTORE AFST,1 USER'S 'AUTHOR' NUMBER IN BINARY IOEQ0057
URCODE ASTORE AFST,1 USER'S RESTRICTION CODE IOEQ0058
LIMITS ASTORE AFST,1 USER'S CORE LIMITS PZE LOWADR,,HIADR IOEQ0059
RELOC ASTORE AFST,1 USER'S RELOCATION IOEQ0060
FPRIOR ASTORE AFST,1 USER'S FILE PRIORITY SETTING IOEQ0061
ERRILC ASTORE AFST,1 LOCATION OF CALL RESULTING IN LAST ERROR IOEQ0062
ERNAME ASTORE AFST,1 NAME OF ENTRY IN WHICH ERROR WAS DISCOVEREDIOEQ0063
ERCODE ASTORE AFST,1 ERROR CODE OF LAST ERROR IOEQ0064
IOCODE ASTORE AFST,1 I/O ERROR CODE IF ANY OF LAST ERROR IOEQ0065
ENAME1 ASTORE AFST,1 FILE NAME(1) OF FILE INVOLVED IN LAST ERRORIOEQ0066
ENAME2 ASTORE AFST,1 FILE NAME(2) OF FILE INVOLVED IN LAST ERRORIOEQ0067
ERCALL ASTORE AFST,1 LOCATION OF LAST CALL TO ERROR OR IOERR IOEQ0068
QUEUE1 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(1) IOEQ0069
QUEUE2 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(2) IOEQ0070
QUEUE3 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(3) IOEQ0071
QUEUE4 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(4) IOEQ0072
QUEUE5 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(5) IOEQ0073
QUEUE6 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(6) IOEQ0074
QUEUE7 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(7) IOEQ0075
REM IOEQ0076
AFENTY ASTORE AFST,ACTLNG STORAGE FOR A SINGLE ACTIVE FILE ENTRY IOEQ0077
REM IOEQ0078
TBLMIN ASTORE AFST,0 MINIMUM LENGTH FOR USER I/O STATUS TABLE IOEQ0079
EJECT IOEQ0080
EFA OPSYN NOP EFFECTIVE ADDRESS PARAMETER FLAG IOEQ0081
PAR OPSYN PTH NORMAL PARAMETER FLAG IOEQ0082
REM IOEQ0083
ION OPSYN PON I/O NON-TRANSMIT AND PROCEED IOEQ0084
IOP OPSYN PTW I/O TRANSMIT AND PROCEED IOEQ0085
IOD OPSYN PZE I/O DISCONNECT IOEQ0086
REM IOEQ0087
HOMOP MACRO GENERATE INSTRUCTION TO RESET ECC TO 'HOME'IOEQ0088
IFF IOSMEM-1,0,1 IOEQ0089
SEA HOME INSTRUCTION FOR MEMORY A IOEQ0090
IFF IOSMEM-2,0,1 IOEQ0091
SEB HOME INSTRUCTION FOR MEMORY B IOEQ0092
IFF IOSMEM-3,0,1 IOEQ0093
SEC HOME INSTRUCTION FOR MEMORY C IOEQ0094
HOMOP END IOEQ0095
REM IOCM0031
TTL DEFINITIONS USED BY STRATEGY MODULES STE00010
REM DEFINITION OF QUEUE COMPONENTS STE00020
REM STE00030
QUENO EQU 0 (P) QUEUE NUMBER (PRIORITY) STE00040
QLNG EQU 0 (D) LENGTH OF QUEUE BEAD STE00050
FINISW EQU 0 (T) NON-ZERO WHEN BEAD FULLY PROCESSED STE00060
NEXTQ EQU 0 (A) POINTER TO NEXT QUEUE ELEMENT STE00070
QPRF1 EQU 1 (P) UNUSED COMPONENT STE00080
FUNCT EQU 1 (D) FUNCTION CODE STE00090
PAFST EQU 1 (A) POINTER TO ACTIVE FILE STATUS TABLE STE00100
QTAG1 EQU 1 (T) UNUSED COMPONENT STE00110
QWORDS EQU 2 (W) START OF ADDITIONAL REGISTERS IN BEAD STE00120
REM STE00130
REM STE00140
REM BITS ASSOCIATED WITH I/O COMMANDS STE00150
REM STE00160
IONBIT BOOL 100000 (L) FOR NO TRANSMISSION STE00170
IOPBIT BOOL 200000 (L) NORMAL TRANSMISSION STE00180
IODBIT BOOL 700000 (L) CHECK FOR ZERO PREFIX STE00190
REM STE00200
PROBIT BOOL 400000 (R) TRANSMISSION PROTECTED STE00210
B.BIT BOOL 200000 (R) TRANSMISSION IN CORE B STE00220
A.BIT BOOL 100000 (R) TRANSMISSION IN CORE A STE00230
REM IOCM0033
TTL DATA-MANIPULATION MACROS FOR STRATEGY MODULES STM00001
SAVE MACRO EXIT,TEMPS STANDARD ROUTINE ENTRANCE MACRO STMM0002
SCA EXIT,1 SAVE NON-DISPOSABLE INDEX REGISTERS STMM0003
SCA EXIT+1,2 .. STMM0004
SCA EXIT+2,3 .. STMM0005
SCA EXIT+3,4 .. STMM0006
SAVE END STMM0007
REM STMM0008
RETURN MACRO TEMPS STANDARD ROUTINE EXIT MACRO STMM0009
AXC **,1 .. STMM0010
AXC **,2 .. STMM0011
AXC **,3 .. STMM0012
AXC **,4 .. STMM0013
RETURN END STMM0014
REM STMM0015
RESTOR MACRO EXIT,TAG MACRO TO RESTORE SPECIFIC TAG STMM0016
IRP TAG .. STMM0017
LAC EXIT+TAG-1,TAG STMM0018
IRP STMM0019
RESTOR END STMM0020
REM STMM0021
SAVE4 MACRO EXIT SHORT SAVE STMM0022
SCA EXIT,4 .. STMM0023
SAVE4 END STMM0024
REM STMM0025
RETUR4 MACRO SHORT RETURN STMM0026
AXC **,4 .. STMM0027
RETUR4 END STMM0028
REM STMM0029
RESTO4 MACRO EXIT SHORT RESTORE STMM0030
LAC EXIT,4 .. STMM0031
RESTO4 END .. STMM0032
REM STMM0033
ENABLE MACRO MACRO TO ENABLE APPROPRIATE TRAPS STMM0034
ENB* ENABLE .. STMM0035
ENABLE END STMM0036
REM STMM0037
DISABL MACRO MACRO TO DISABLE APPROPRIATE TRAPS STMM0038
ENB =0 STMM0039
DISABL END STMM0040
REM STMM0041
MAKE MACRO WHAT,BOOL SET A VALUE TO TRUE OR FALSE STMM0042
IFF 1,BOOL,TRUE MAKE IT 7 IF TRUE STMM0043
CAL =O777777777777 STMM0044
IFF 1,BOOL,FALSE MAKE IT 0 IF FALSE STMM0045
PXD ,0 .. STMM0046
IPLACE WHAT AND PUT IT AWAY STMM0047
MAKE END STMM0048
REM STMM0049
GOIF MACRO WHAT,BOOL,WHERE CONDITIONAL TRANSFER MACRO STMM0050
IXTRCT WHAT OBTAIN INFORMATION STMM0051
IFF 1,BOOL,TRUE TAKE TNZ IF TRUE STMM0052
TNZ WHERE .. STMM0053
IFF 1,BOOL,FALSE TAKE TRA IF FALSE STMM0054
TZE WHERE .. STMM0055
GOIF END STMM0056
REM STMM0057
XTRACT MACRO WORD,PT MACRO TO EXTRACT PART OF A WORD STMM0058
IFF 0,WORD,AC GET WORD IF NOT IN ACCUMULATOR STMM0059
CAL WORD GET TOTAL WORD STMM0060
IFF 1,PT,D CALCULATE SHIFTS STMM0061
ARS 18 .. STMM0062
IFF 1,PT,LH .. STMM0063
ARS 18 .. STMM0064
IFF 1,PT,T .. STMM0065
ARS 15 .. STMM0066
IFF 1,PT,RH .. STMM0067
ANA =O777777 STMM0068
IFF 1,PT,P .. STMM0069
ARS 33 .. STMM0070
IFF 1,PT,A NOW CHECK FOR MASKS STMM0071
ANA =O77777 STMM0072
IFF 1,PT,D .. STMM0073
ANA =O77777 STMM0074
IFF 1,PT,T .. STMM0075
ANA =O7 STMM0076
XTRACT END STMM0077
REM STMM0078
IXTRCT MACRO WORD,PT EXTRACT WORD, LEAVE IN PLACE STMM0079
IFF 0,WORD,AC .. STMM0080
CAL WORD STMM0081
IFF 1,PT,A ADDRESS STMM0082
ANA =O77777 STMM0083
IFF 1,PT,D DECREMENT STMM0084
ANA =O77777000000 STMM0085
IFF 1,PT,P PREFIX STMM0086
ANA =O700000000000 STMM0087
IFF 1,PT,T TAG STMM0088
ANA =O700000 STMM0089
IFF 1,PT,LH LEFT HALF STMM0090
ANA =O777777000000 STMM0091
IFF 1,PT,RH RIGHT HALF STMM0092
ANA =O777777 STMM0093
IXTRCT END STMM0094
REM STMM0095
PLACE MACRO WHERE,PT MACRO TO REPLACE PART OF A WORD STMM0096
IFF 1,PT,D CALCULATE SHIFTS STMM0097
ALS 18 .. STMM0098
IFF 1,PT,T .. STMM0099
ALS 15 .. STMM0100
IFF 1,PT,P .. STMM0101
ALS 33 .. STMM0102
IFF 1,PT,LH .. STMM0103
LGR 18 .. STMM0104
XXXINS ST'PT(WHERE) PERFORM STORE STMM0105
PLACE END STMM0106
REM STMM0107
IPLACE MACRO WHERE,PT REPLACE PARTIAL WORD, IN PLACE STMM0108
XXXINS ST'PT(WHERE) PERFORM STORE, NO SHIFTING STMM0109
IPLACE END STMM0110
REM STMM0111
XXXINS MACRO OP,VAR GENERATE AN INSTRUCTION STMM0112
OP VAR .. STMM0113
XXXINS END STMM0114
REM STMM0115
STW OPSYN SLW FOR USE WITH 'PLACE' MACRO STMM0116
STLH OPSYN SLQ .. STMM0117
REM IOCM0035
TTL MACROS AND TRANSFER VECTORS FOR STRATEGY MODULE CALLS CMM.0001
MACRO MACRO TO GENERATE CALLS TO STRATEGY MODULESCMM.0002
SYMBOL GNCALL NAME .. CMM.0003
PMC ON .. CMM.0004
SYMBOL SYN *-1 .. DEFINE SYMBOL FOR TABLE REFERENCE CMM.0005
PMC OFF .. CMM.0006
SERNAM NAME,FMAX(1,2,3,4,5,6,7) .. GENERATE CALLS CMM.0007
GNCALL END CMM.0008
REM CMM.0009
SERNAM MACRO NAME,MAX,LIST,SYM GENERATE STRATEGY MODULE CALLS CMM.0010
IRP LIST .. CMM.0011
SYM SET LIST-1 .. CMM.0012
IFF SYM/MAX,1,0 .. CMM.0013
CONC NAME,LIST .. CMM.0014
IRP .. CMM.0015
SERNAM END CMM.0016
REM CMM.0017
CONC MACRO NAME,NO GENERATE A SINGLE CALL CMM.0018
EXTERN NAME'NO .. CMM.0019
PMC ON .. CMM.0020
TSX NAME'NO,4 .. CALL TO STRATEGY MODULE CMM.0021
PMC OFF .. CMM.0022
CONC END CMM.0023
REM CMM.0024
REM MACRO USED BY QUEUE WRITE-AROUNDS CMM.0025
REM CMM.0026
GETEFA MACRO N DETERMINE EFFECTIVE ADDRESS FOR PARAMETER CMM.0027
CLA N,4 GET N'TH PARAMETER FROM CALL CMM.0028
TSX TGTEFA,4 USE TRAP-TIME EDITION OF 'GETEFA' CMM.0029
GETEFA END CMM.0030
REM CMM.0031
TQ MACRO ERR TEST FOR PROPER ENTRY FOR QUEUE POINTER CMM.0032
TSX TQ,6 CALL TEST ROUTINE CMM.0033
EFA ERR ERROR RETURN CMM.0034
TQ END CMM.0035
REM CMM.0036
II BOOL 60 INDIRECT FLAG IN MACRO CALL CMM.0037
REM CMM.0038
REM ..... CONSTRUCT STRATEGY MODULE CALLING VECTORS .........CMM.0039
REM CMM.0040
IOHLTF GNCALL IOHLT CALL TO HALT USER I/O CMM.0041
REM CMM.0042
IOBGNF GNCALL IOBGN CALL TO RESTART USER I/O CMM.0043
REM CMM.0044
DRAINF GNCALL DRAIN CALL TO DRAIN ALL I/O QUEUES CMM.0045
REM CMM.0046
IORSTF GNCALL IORST CALL TO RESTART I/O AFTER LOSS OF MACHINE TCMM.0047
REM IOCM0037
TTL INTERFACE TO QUEUE SUBROUTINES FROM STRATEGY MODULES CMQ.0001
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMQ.0002
REM CMQ.0003
REM INITIALIZE USER'S QUEUES CMQ.0004
REM CMQ.0005
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMQ.0006
REM CMQ.0007
QUINT SAVE QINXIT INITIALIZE USER'S QUEUES CMQ.0008
CAL* 1,4 GET KEY FROM USER'S I/O STATUS TABLE CMQ.0009
TQ (2,4) TEST QUEUES FOR PROPER CONSTRUCTION CMQ.0010
TSX QINIT,4 CALL S/R CMQ.0011
PAR KEY .. CMQ.0012
QINXIT RETURN .. CMQ.0013
TRA 2,4 .. CMQ.0014
REM CMQ.0015
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMQ.0016
REM CMQ.0017
REM TEST FOR SPACE IN USER'S QUEUES CMQ.0018
REM CMQ.0019
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMQ.0020
REM CMQ.0021
QTST SAVE QTSXIT VENI --- CMQ.0022
CAL* 2,4 .. CMQ.0023
SLW NUM .. CMQ.0024
CAL 2,4 .. CMQ.0025
ARS 18 .. CMQ.0026
STA ERROR .. CMQ.0027
STL QFULL .. CMQ.0028
CAL* 1,4 CMQ.0029
TQ QTS.2 SEE IF KEY FITS CMQ.0030
TSX QTEST,4 VIDI --- CMQ.0031
PAR KEY .. CMQ.0032
PAR NUM .. CMQ.0033
PAR *+2 .. CMQ.0034
QTS.1 STZ QFULL .. CMQ.0035
QTSXIT RETURN .. CMQ.0036
QTS.2 ZET QFULL TEST SUCCESS CMQ.0037
TRA* ERROR .. CMQ.0038
TRA 1,4 VINCI .. CMQ.0039
REM CMQ.0040
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMQ.0041
REM CMQ.0042
REM GET QUEUE ENTRY FOR USER'S I/O CMQ.0043
REM CMQ.0044
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMQ.0045
REM CMQ.0046
QGET SAVE QTSXIT .. CMQ.0047
CAL* 3,4 .. CMQ.0048
SLW PRIOR. .. CMQ.0049
CAL* 4,4 .. CMQ.0050
SLW ASKED .. CMQ.0051
CAL 4,4 .. CMQ.0052
ARS 18 .. CMQ.0053
STA ERROR .. CMQ.0054
CAL 3,4 .. CMQ.0055
PDC ,7 .. CMQ.0056
CAL 0,7 GET QUEUEF CMQ.0057
SLW QUEUEF .. CMQ.0058
GETEFA 2 CONVERT 'AF-ENTRY' CMQ.0059
STA AFENT. .. CMQ.0060
RESTOR QTSXIT(4) .. CMQ.0061
GETEFA 1 '' 'IOBASE' CMQ.0062
STA IOSTAT .. CMQ.0063
ACL QUEUEF CALCULATE LOCATION OF KEY CMQ.0064
PAC ,7 .. CMQ.0065
CAL 0,7 .. CMQ.0066
STL QFULL .. CMQ.0067
TQ QTSXIT CHECK ON FORGERIES CMQ.0068
TSX GETQUE,4 NOW CALL FOR ACTION CMQ.0069
PAR KEY .. CMQ.0070
PAR IOSTAT .. CMQ.0071
PAR AFENT. .. CMQ.0072
PAR PRIOR. .. CMQ.0073
PAR ASKED .. CMQ.0074
PAR QTSXIT .. CMQ.0075
STA PQ SAVE AC TEMPORARILY CMQ.0076
LAC AFENT.,2 .. CMQ.0077
XTRACT (IOTASK,2)D .. CMQ.0078
ADD =1 .. CMQ.0079
PLACE (IOTASK,2)D INCREMENT IOTASK FOR EACH QUEUE PLACED CMQ.0080
CLA PQ RESTORE POINTER TO QUEUE IN AC CMQ.0081
TRA QTS.1 (NORMAL RETURN) CMQ.0082
REM CMQ.0083
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMQ.0084
REM CMQ.0085
REM REMOVE ALL QUEUES FOR USER'S ACTIVE FILE CMQ.0086
REM CMQ.0087
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMQ.0088
REM CMQ.0089
QSCRP SAVE QINXIT .. CMQ.0090
CAL* 3,4 .. CMQ.0091
SLW QUEUEF .. CMQ.0092
GETEFA 2 .. CMQ.0093
STA AFENT. .. CMQ.0094
RESTOR QINXIT(4) .. CMQ.0095
GETEFA 1 .. CMQ.0096
STA IOSTAT .. CMQ.0097
ACL QUEUEF .. CMQ.0098
PAC ,7 .. CMQ.0099
CAL 0,7 .. CMQ.0100
TQ QINXIT .. CMQ.0101
TSX QSCRAP,4 .. CMQ.0102
PAR KEY .. CMQ.0103
PAR IOSTAT .. CMQ.0104
PAR AFENT. .. CMQ.0105
LAC AFENT.,2 GET BASE OF AF-ENTRY CMQ.0106
MAKE ((IOTASK,2)D)FALSE CLEAR ACTIVITY FOR THIS FILE CMQ.0107
TRA QINXIT .. CMQ.0108
REM CMQ.0109
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMQ.0110
REM CMQ.0111
REM RELEASE QUEUE ENTRY AFTER I/O FINISHED CMQ.0112
REM CMQ.0113
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMQ.0114
REM CMQ.0115
QDEL SAVE QINXIT .. CMQ.0116
CAL* 1,4 .. CMQ.0117
TQ (2,4) GO BACK DIRECTLY IF BAD I/O STATUS TABLE CMQ.0118
GETEFA 3 .. CMQ.0119
STA PQ .. CMQ.0120
RESTOR QINXIT(4) NOW GET AF-ENTRY LOCATION CMQ.0121
GETEFA 2 POINTER TO A.F. WITH COMPLETED TASK CMQ.0122
PAC ,2 CMQ.0123
XTRACT (IOTASK,2)D .. CMQ.0124
TZE QDL.1 SHOULDN'T HAVE GOTTEN HERE WITH IT '0' CMQ.0125
SUB =1 DECREMENT IT CMQ.0126
PLACE (IOTASK,2)D RE-PLACE CMQ.0127
QDL.1 TSX RETQUE,4 .. CMQ.0128
PAR KEY .. CMQ.0129
PAR PQ .. CMQ.0130
TRA QINXIT .. CMQ.0131
REM IOCM0039
TTL ENTRIES FROM FILE CONTROL FOR I/O SYNCHRONIZATION CMA.0001
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMA.0002
REM CMA.0003
REM HALT I/O FOR GIVEN USER CMA.0004
REM CMA.0005
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMA.0006
REM CMA.0007
IOHALT SAVE HLTXIT CMA.0008
CAL* 1,4 FIND USER TO BLOCK CMA.0009
PAC ,7 .. CMA.0010
STL IOBLK,7 SIGNAL TRAP-TIME ENTRIES CMA.0011
TZE DRAINA ZERO INDICATES BLOCK ALL I/O CMA.0012
ACL USRTBL CALCULATE LOCATIONIN 'USRTBL' CMA.0013
PAC ,7 TO INDEX REGISTER CMA.0014
CAL 0,7 GET BASE OF A.F.S.T. CMA.0015
SLW HLTTMP SAVE FOR CALLS CMA.0016
AXC 1,1 CALL FIRST STRATEGY MODULE CMA.0017
XEC IOHLTF,1 .. CMA.0018
PAR HLTTMP .. CMA.0019
TXL *+2,1,-FMAX .. CMA.0020
TXI *-3,1,-1 GET NEXT USER CMA.0021
HLTXIT RETURN RESTORE REGISTERS CMA.0022
TRA 1,4 CMA.0023
REM CMA.0024
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMA.0025
REM CMA.0026
REM DRAIN ALL CURRENT I/O CMA.0027
REM CMA.0028
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMA.0029
REM CMA.0030
DRAIN SAVE HLTXIT CMA.0031
DRAINA AXC 1,1 CMA.0032
XEC DRAINF,1 DRAIN ALL CURRENT I/O CMA.0033
TXL HLTXIT,1,-FMAX .. CMA.0034
TXI *-2,1,-1 .. CMA.0035
REM CMA.0036
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMA.0037
REM CMA.0038
REM RESTART BLOCKED I/O CMA.0039
REM CMA.0040
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMA.0041
REM CMA.0042
IOBEGN SAVE HLTXIT .. CMA.0043
CAL* 1,4 GET USER TO RUN CMA.0044
PAC ,7 CMA.0045
STZ IOBLK,7 LET HIM GO THROUGH AGAIN CMA.0046
AXC 1,1 .. CMA.0047
XEC IOBGNF,1 .. CMA.0048
TXL HLTXIT,1,-FMAX .. CMA.0049
TXI *-2,1,-1 .. CMA.0050
REM CMA.0051
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMA.0052
REM CMA.0053
REM RESTART I/O AFTER MACHINE RESET CMA.0054
REM CMA.0055
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMA.0056
REM CMA.0057
IORST SAVE HLTXIT .. CMA.0058
AXC 1,1 INITIALIZE DEVICE NUMBER CMA.0059
XEC IORSTF,1 CALL STRATEGY MODULE CMA.0060
TXL HLTXIT,1,-FMAX .. CMA.0061
TXI *-2,1,-1 NEXT STRATEGY MODULE CMA.0062
TTL FIND LOCATION OF ACTIVE FILE AND I/O STATUS TABLE CMA.0063
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMA.0064
REM CMA.0065
REM 'SSETUP' IS CALLED BY THE STRATEGY MODULES TO DETERMINE CMA.0066
REM (EX POST FACTO) WHICH OF THE POSSIBLE I/O STATUS TABLES CMA.0067
REM THE FILE BEING WORKED ON BELONGS TO. CMA.0068
REM CMA.0069
REM THIS IS DONE BY PICKING UP ONE OF THE ACTUAL PARAMETERS CMA.0070
REM SENT THE STRATEGY MODULE BY THE BUFFER CONTROL MODULE, CMA.0071
REM DETERMINING THE ADDRESS OF THE ACTIVE FILE ENTRY, CMA.0072
REM AND A LITTLE BIT OF HAND-WAVING. CMA.0073
REM CMA.0074
REM THE ADDRESS OF THE ACTIVE FILE ENTRY IS RETURNED IN THE CMA.0075
REM ADDRESS OF (AC), THE ADDRESS OF THE RE-ASSOCIATED I/O CMA.0076
REM STATUS TABLE IN THE DECREMENT OF (AC). CMA.0077
REM CMA.0078
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMA.0079
REM CMA.0080
SSETUP SAVE4 SETXIT CMA.0081
CAL* 1,4 GET PARAMETER CMA.0082
TSX GETEFA,4 (THIS CALL CAME FROM AN ENABLED S/R) CMA.0083
STA SETTMP .. CMA.0084
PAC ,7 .. CMA.0085
IXTRCT (PRIOR,7)P .. CMA.0086
TNZ *+3 CHECK THE PRIORITY CMA.0087
CAL* USRTBL GET 0-TH ENTRY FROM USRTBL (SYSTEM) CMA.0088
TRA *+2 CMA.0089
CAL* UTABLE CURRENT USER CMA.0090
ALS 18 .. CMA.0091
ORA SETTMP .. CMA.0092
SETXIT RETUR4 .. CMA.0093
TRA 2,4 .. CMA.0094
TTL COUNT LENGTH OF I/O LIST FOR USER CMA.0095
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMA.0096
REM CMA.0097
REM 'CNTIO' COUNTS THE LENGTH OF THE I/O LIST AND THE NUMBER CMA.0098
REM OF RECORDS THAT WILL BE TRANSMITTED IN AN I/O REQUEST CMA.0099
REM FROM THE BUFFER CONTROL MODULE. CMA.0100
REM CMA.0101
REM THE NUMBER OF COMMANDS IN THE I/O LIST (INCLUDING THE CMA.0102
REM 'IOD') IS RETURNED IN THE AC, THE NUMBER OF RECORDS BEINGCMA.0103
REM TRANSMITTED IN THE MQ. CMA.0104
REM CMA.0105
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMA.0106
REM CMA.0107
CNTIO CAL 1,4 GET LOCATION OF RECWRD CMA.0108
PDC ,5 .. CMA.0109
CAL* 1,4 GET LOCATION OF IOLIST CMA.0110
PAC ,6 .. CMA.0111
AXT 1,7 COUNT OF WORDS PROCESSED CMA.0112
STZ CNTMP COUNT OF WORDS TO BE WRITTEN OR READ CMA.0113
CNT.2 LDI 0,6 GET IO LIST WORD CMA.0114
LFT IODBIT CHECK FOR 'IOD' CMA.0115
TRA *+2 YES CMA.0116
TRA CNT.1 END OF LIST FOUND CMA.0117
PIA GET WORD COUNT CMA.0118
XTRACT (AC)D .. CMA.0119
ADD CNTMP .. CMA.0120
STO CNTMP .. CMA.0121
TXI *+1,7,1 INCREMENT COUNT OF WORDS READ CMA.0122
TXI CNT.2,6,-1 AND PICK UP NEXT WORD CMA.0123
CNT.1 PXD ,0 GET COUNT OF TRACKS CMA.0124
LDQ CNTMP DIVIDE BY NWORDS PER RECORD CMA.0125
DVP 0,5 NO OF WORDS PER RECORD FOR THIS MODULE CMA.0126
TZE CNT.3 .. CMA.0127
XCA ADD 1 TO TRACK COUNT CMA.0128
ADD =1 IF I/O NOT INTEGRAL NUMBER OF RECORDS CMA.0129
XCA .. CMA.0130
CNT.3 PXA ,7 GET COUNT OF IO WORDS CMA.0131
TRA 2,4 AND RETURN CMA.0132
REM IOCM0041
TTL ENTRIES FROM TRAP PROCESSORS TO SET UP NEW USER CMB.0001
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMB.0002
REM CMB.0003
REM FIND QUEUE ENTRY FOR TRAP PROCESSOR TO RUN CMB.0004
REM CMB.0005
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMB.0006
REM CMB.0007
FNDUSR CAL 1,4 GET NOUSR,,STOPIO CMB.0008
PDC ,7 .. CMB.0009
ZET IOBLK TEST IF NO I/O TO BE RUN CMB.0010
TRA 0,7 DON'T SET UP ANYTHING MORE CMB.0011
CAL* 2,4 GET RELATIVE LOCATION OF QUEUE POINTER CMB.0012
SLW QUEUEF SAVE FOR LATER USE CMB.0013
CAL PRIORT INITIALIZE FOR NO SYSTEM I/O CMB.0014
SLW NXTUSE .. CMB.0015
STL THSUSR INDICATE INITIALIZATION SECTION ENTERED CMB.0016
CAL* USRTBL GET BASE OF SYSTEM I/O STATUS TABLE CMB.0017
FND.1 TSX GTBEAD,7 SEE IF THIS USER HAS ANY I/O QUEUED CMB.0018
FND.2 LAC NXTUSE,5 TRY SOMEONE ELSE CMB.0019
FND.3 CAL 0,5 GET NEXT ENTRY FROM PRIORT CMB.0020
SLW THSUSR SET SWITCH CMB.0021
TZE* 1,4 GO HOME CMB.0022
TXI *+1,5,-1 MOVE UP IN PRIORT CMB.0023
SCA NXTUSE,5 SAVE FOR RE-ENTRY CMB.0024
PAC ,6 USER'S NUMBER CMB.0025
ZET IOBLK,6 TEST FOR BLOCK ON THIS USER'S I/O CMB.0026
TRA FND.3 CMB.0027
ACL USRTBL FORM LOCATION CONTAINING POINTER TO STATUS CMB.0028
PAC ,7 .. CMB.0029
CAL 0,7 GET POINTER CMB.0030
TRA FND.1 LOOK FOR WAITING I/O CMB.0031
REM CMB.0032
NXTUSR NZT THSUSR CHECK FOR BAD CALL CMB.0033
TTR* 1,4 I DON'T LIKE YOU CMB.0034
TRA FND.2 GET NEXT ENTRY FROM PRIORT CMB.0035
REM CMB.0036
NXBEAD ZET THSUSR HAS 'FNDUSR' BEEN PROPERLY INITIALIZED CMB.0037
NZT NXTQ ARE WE AT THE END OF OUR ROPE CMB.0038
TTR* 1,4 STLING BLOKE CMB.0039
LAC QBASE,6 SET UP INDEX REGISTER CMB.0040
TSX GTB.1,7 RE-ENTER GTBEAD CMB.0041
TTR* 1,4 ALL THERE IS, THERE AIN'T NO MORE CMB.0042
REM CMB.0043
GTBEAD STA IOBASE SAVE ORIGIN OF USER'S I/O STATUS TABLE CMB.0044
ACL QUEUEF FIND LOCATION OF QUEUE POINTER CMB.0045
PAC ,6 .. CMB.0046
CAL 0,6 GET POINTER TO QUEUES CMB.0047
TSX TQ+1,6 TAKE ABNORMAL ENTRY TO 'TQ' S/R CMB.0048
EFA 1,7 GO BACK FOR MORE IF BAD NEWS CMB.0049
LAC KEY,6 SET UP FIRST SEARCH CMB.0050
GTB.1 XTRACT (NEXTQ,6)A GET POINTER TO QUEUE ELEMENT CMB.0051
SLW NXTQ SET SWITCH CMB.0052
TZE 1,7 NO ACTIVE REQUESTS WAITING CMB.0053
ACL QORG RELOCATE IT. CMB.0054
STA QBASE SAVE FOR RETURN CMB.0055
PAC ,6 AND RETURN POINTER. CMB.0056
GOIF ((FINISW,6)T)TRUE,GTB.1 YOU'RE OUT OF IT, CHARLIE BROWN CMB.0057
XTRACT (PAFST,6)A SET UP POINTER TO ACTIVE FILE STATUS TABLE CMB.0058
ACL IOBASE RELOCATE IT. CMB.0059
ALS 18 MOVE TO DECREMENT FOR RETURN CMB.0060
ORA QBASE MOVE IN QUEUE HEADER LOCATION CMB.0061
LDQ IOBASE RESTORE RETURN INFORMATION CMB.0062
TRA 2,4 BACK TO STRATEGY MODULE CMB.0063
TTL I/O LIST PROCESSOR CMB.0064
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMB.0065
REM CMB.0066
REM REMOVE ONE RECORD OF I/O FROM I/O LIST CMB.0067
REM CMB.0068
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* CMB.0069
REM CMB.0070
PROLST SAVE4 PRLXIT PROCESS IO LIST IN QUEUE ELEMENTS INTO OUTPCMB.0071
STZ PROTMP ZERO TEMPORARY CMB.0072
CAL* 2,4 GET ORIGIN OF QUEUE ENTRY CMB.0073
ACL* 3,4 ADD OFFSET TO FIND I/O LIST IN QUEUE ENTRY CMB.0074
PAC ,6 HOLD CMB.0075
CAL* 4,4 GET NWDSPR CMB.0076
SLW RECWRD .. CMB.0077
CAL 2,4 .. CMB.0078
PDC ,5 GET POINTER TO POINTER CMB.0079
CAL 0,5 GET CURRENT IOBASE FOR RELOCATION WORK CMB.0080
PAC ,5 (USED BY PROREL) CMB.0081
CLA 1,4 GET ADDRESS OF OUTPUT LIST CMB.0082
TSX TGTEFA,4 GET EFFECTIVE ADDRESS CMB.0083
PAC ,7 SAVE CMB.0084
PRO.1 CAL 0,6 GET INPUT COMMAND CMB.0085
PDX ,4 GET COUNT CMB.0086
PAI TEST FOR COMMAND TYPE CMB.0087
LFT IODBIT ARE ALL OFF CMB.0088
TRA *+2 NO - CONTINUE CMB.0089
TRA PROND1 YES - TERMINATE SEQUENCE CMB.0090
TXH *+2,4,0 CONTINUE IF NON-ZERO CMB.0091
TXI PRO.1,6,-1 OTHERWISE PICK UP NEW COMMAND CMB.0092
LFT IONBIT IS IT A NON-TRANSMIT CMB.0093
TRA *+3 YES, LET ADAPTER RE-FORMAT IF NECESSARY CMB.0094
TSX PROREL,4 CHECK RELOCATION AND PROTECTION. CMB.0095
TRA PROERR ERROR CMB.0096
SLW 0,7 AND SAVE FINAL RESULT CMB.0097
XTRACT (AC)D CHECK WORD COUNTS CMB.0098
SLW PROTMP+1 SAVE ORIGINAL WORD COUNT CMB.0099
ADD PROTMP TOTAL USED THIS TIME CMB.0100
STA PROTMP .. CMB.0101
SUB RECWRD SUBTRACT WORDS PER RECORD FOR THESE UNITS CMB.0102
TMI PRO.2 NOT FINISHED WITH THIS TRACK YET CMB.0103
TNZ *+3 NOT END OF THIS COUNT CMB.0104
NZT 1,6 IS NEXT WORD DISCONNECT CMB.0105
TXI PROND1,7,-1 YES - INDICATE LIST IS FINISHED. CMB.0106
SLW PROTMP+2 SAVE LEFT-OVER CMB.0107
PLACE (0,6)D SAVE LEFTOVER IN COMMAND WORD CMB.0108
CAL PROTMP+1 GET ORIGINAL WORD COUNT CMB.0109
SUB PROTMP+2 REMOVE LEFTOVERS CMB.0110
SLW PROTMP+1 PARTIAL I/O COUNT FOR THIS COMMAND CMB.0111
ACL 0,6 UPDATE I/O ADDRESS FOR NEXT TIME AROUND CMB.0112
STA 0,6 .. CMB.0113
CAL PROTMP+1 SET TRANMISSION CT. FOR THIS COMMAND CMB.0114
PLACE (0,7)D .. CMB.0115
TXI PROEND,7,-1 PUT IN DISCONNECT CMB.0116
PRO.2 MAKE ((0,6)D)FALSE ZERO OUT QUEUE WORD TO INDICATE COMPLETION CMB.0117
TXI *+1,7,-1 INCREMENT OUTPUT COUNTER CMB.0118
ZET 1,6 DON'T GO BACK IF 'IOD' WAITING CMB.0119
TXI PRO.1,6,-1 AND GO BACK FOR NEXT INPUT COMMAND CMB.0120
PROND1 RESTO4 PRLXIT .. CMB.0121
CAL* 2,4 FIND ORIGIN OF QUEUE ENTRY ONCE MORE CMB.0122
PAC ,6 .. CMB.0123
MAKE ((FINISW,6)T)TRUE INDICATE END OF I/O LIST CMB.0124
PROEND CAL IODCON PUT IN DISCONNECT CMB.0125
SLW 0,7 .. CMB.0126
PRLXIT RETUR4 RETURN. CMB.0127
TRA 1,4 .. CMB.0128
REM CMB.0129
PROERR RESTO4 PRLXIT .. CMB.0130
CAL 4,4 FIND ERROR RETURN CMB.0131
PDC ,7 .. CMB.0132
TRA 0,7 LEAVE CMB.0133
REM CMB.0134
PROREL SAVE4 PRORXT PROTECT AND RELOCATE IO COMMANDS CMB.0135
PAI .. CMB.0136
ANA =O777777077777 REMOVE TAG CMB.0137
RFT B.BIT IS IT CORE B CMB.0138
ORA =O100000 YES - PUT IN CORRECT BIT CMB.0139
RNT PROBIT IS IT PROTECTED CMB.0140
TRA 2,4 NO CMB.0141
SLW PROTMP+1 YES. CMB.0142
ANA =O77777077777 REMOVE PREFIX AND TAG CMB.0143
SLW PROTMP+2 .. CMB.0144
ACL RELOC,5 ADD USER'S RELOCATION CMB.0145
STA PROTMP+1 AND PUT IN BOTH CMB.0146
STA PROTMP+2 .. CMB.0147
ARS 18 CHECK FOR BLOCKED CALL CMB.0148
TZE PROR.1 NO CMB.0149
ACL PROTMP+2 YES - CHECK UPPER ADDRESS CMB.0150
SUB =1 .. CMB.0151
PAI .. CMB.0152
RFT 700000 CHECK FOR VALID ADDRESS CMB.0153
TRA PRORER NOT VALID CMB.0154
TSX TCKADR,4 CHECK FOR PROTECTION CMB.0155
PROR.1 CAL PROTMP+2 CHECK LOWER ADDRESS CMB.0156
TSX TCKADR,4 .. CMB.0157
CAL PROTMP+2 AND PUT BACK IN OTHER WORD. CMB.0158
STA PROTMP+1 .. CMB.0159
STD PROTMP+1 .. CMB.0160
CAL PROTMP+1 .. CMB.0161
PRORXT RETUR4 AND RETURN. CMB.0162
TRA 2,4 GOOD RETURN. CMB.0163
REM CMB.0164
PRORER CAL PROTMP+1 RETURN BAD STUFF CMB.0165
RESTO4 PRORXT .. CMB.0166
TRA 1,4 .. CMB.0167
REM CMB.0168
TCKADR XTRACT (AC)A ROUTINE TO CHECK USER ADDRESS CMB.0169
XCL ADDRESS TO MQ CMB.0170
XTRACT (LIMITS,5)A GET USER'S PROTECTION LIMITS (LOWER BOUND) CMB.0171
TLQ PRORER ERROR CMB.0172
XTRACT (LIMITS,5)D UPPER BOUND NOW CMB.0173
XCL .. CMB.0174
TLQ PRORER ERROR CMB.0175
TRA 1,4 RETURN. CMB.0176
REM CMB.0177
TGTEFA STT SCATMP GET EFFECTIVE ADDRESS FROM AC CMB.0178
XEC SCATMP STORE AFFECTED INDEX REGISTER CMB.0179
ACL XRTMP ADD TO ADDRESS OF AC CMB.0180
TRA 1,4 .. CMB.0181
REM CMB.0182
TQ STZ THSUSR INTERLOCK 'FNDUSR' AGAINST BAD CALLS CMB.0183
SLW KEY (=QORG) CMB.0184
GOIF ((AC)D)FALSE(1,6,II) TEST LENGTH OF QUEUES CMB.0185
SUB =O1000000 MINIMUM LENGTH = 2 CMB.0186
TZE* 1,6 NOT LONG ENOUGH CMB.0187
TRA 2,6 OK CMB.0188
REM IOCM0043
TTL CONSTANTS AND VARIABLES FOR I/O CONTROL MODULE CMV.0001
IODCON IOD I/O DISCONNECT CMV.0002
REM CMV.0003
SETTMP PZE ** ADDRESS USED BY SETUP CMV.0004
REM CMV.0005
SCATMP SCA XRTMP,** TAG FIELD IS MODIFIED CMV.0006
XRTMP PZE ** CONTENTS OF INDEX REGISTER CMV.0007
REM CMV.0008
IOBLK DUP 1,DUSERS+1 FORM VECTOR FOR BLOCKING I/O CMV.0009
PZE NON-ZERO MEANS DON'T RUN THIS USER CMV.0010
REM CMV.0011
THSUSR *** NON-ZERO WHEN NXTUSR MAY BE ENTERED CMV.0012
NXTQ *** NON-ZERO WHEN NXBEAD MAY BE ENTERED CMV.0013
REM CMV.0014
IOBASE PZE ** BASE OF USER'S I/O STATUS TABLE CMV.0015
QORG PZE ** ORIGIN OF QUEUES FOR STATUS TABLE/DEVICE CMV.0016
AFENT. PZE ** BASE OF USER'S ACTIVE FILE ENTRY CMV.0017
QBASE PZE ** BASE OF QUEUE BEAD CMV.0018
REM CMV.0019
ERROR PZE ** LOCATION OF CALLER'S ERROR ENTRY CMV.0020
REM CMV.0021
PRIOR. BSS 1 PRIORITY OF FILE IN QUEUEING CMV.0022
NUM BSS 1 NUMBER OF WORST-CASE ENTRIES DESIRED CMV.0023
QFULL BSS 1 ERROR RETURN TEST CMV.0024
QUEUEF BSS 1 OFFSET FROM IOBASE TO LOCATE USER'S QUEUES CMV.0025
REM CMV.0026
HLTTMP BSS 1 BASE OF I/O STATUS TABLE BEING BLOCKED CMV.0027
CNTMP BSS 1 TEMPORARY FOR CNTIO CMV.0028
REM CMV.0029
NXTUSE BSS 1 NEXT USER TO BE RUN CMV.0030
RECWRD BSS 1 CALLER'S RECORD LENGTH CMV.0031
PROTMP BSS 3 TEMPORARIES FOR PROLST CMV.0032
REM CMV.0033
ASKED SYN NUM LENGTH OF QUEUE BEAD DESIRED (QGET) CMV.0034
IOSTAT SYN IOBASE .. CMV.0035
PQ SYN QBASE QUEUE UNDER CONSIDERATION CMV.0036
KEY SYN QORG POINTER TO USER'S QUEUES (A,,N) CMV.0037
DETAIL IOCM0045
TTL LITERALS AND CROSS-REFERENCE LISTING IOCM0046
END IOCM0047
$BLOCK BCD,0084
END
* FAP
$BLOCK BCD,1344
* DISK-DRUM STRATEGY MODULE (R. BAYLES, C. GARMAN - 12/28/64) DDST0001
TTL SYSTEM MACROS AND EQUIVALENCE DDST0002
LINK OFF DDST0003
TITLE DDST0004
REM DDST0005
ENTRY SINIT1 DDST0006
ENTRY OPEN1 DDST0007
ENTRY CLOSE1 DDST0008
ENTRY QTEST1 DDST0009
ENTRY READ1 DDST0010
ENTRY WRITE1 DDST0011
ENTRY REWRT1 DDST0012
ENTRY DFILE1 DDST0013
ENTRY SCRAP1 DDST0014
ENTRY IOHLT1 DDST0015
ENTRY IOBGN1 DDST0016
ENTRY DRAIN1 DDST0017
ENTRY IORST1 DDST0018
REM DDST0019
ENTRY SINIT2 DDST0020
ENTRY OPEN2 DDST0021
ENTRY CLOSE2 DDST0022
ENTRY QTEST2 DDST0023
ENTRY READ2 DDST0024
ENTRY WRITE2 DDST0025
ENTRY REWRT2 DDST0026
ENTRY DFILE2 DDST0027
ENTRY SCRAP2 DDST0028
ENTRY IOHLT2 DDST0029
ENTRY IOBGN2 DDST0030
ENTRY DRAIN2 DDST0031
ENTRY IORST2 DDST0032
REM DDST0033
ENTRY SM1TRP ****** FOR DEBUGGING PURPOSES ****** DDST0034
ENTRY SM1VAR ****** LIKEWISE ****** DDST0035
REM DDST0036
EXTERN .REFER,.DINIT,.FORCE,.DRSET,.DREAD,.DWRIT I/O ADAPTER DDST0037
EXTERN QUINT,QTST,QGET,QDEL,QSCRP QUEUE MANIPULATION S/R-S DDST0038
EXTERN SSETUP,GETEFA,.PACK,.UNPAK UTILITY ROUTINES DDST0039
EXTERN CNTIO,PROLST,FNDUSR,NXBEAD,NXTUSR ENTRIES IN I/O CONTROLDDST0040
EXTERN GETTRK,DELTRK TRACK MANAGEMENT SUBROUTINES DDST0041
EXTERN SSTRAP SUPERVISOR INTERRUPT ENTRY DDST0042
REM DDST0043
REM IOEQ0001
REM ..... FILE INPUT/OUTPUT SYSTEM EQUIVALENCE PACKAGE ..... IOEQ0002
REM IOEQ0003
DUSERS EQU 2 MAX. NO. OF USERS OF I/O SYSTEM IOEQ0004
FMAX EQU 3 MAX. NO. OF DEVICES AVAILABLE IN I/O SYSTEMIOEQ0005
IOSMEM EQU 1 MEMORY WHERE I/O SYSTEM RESIDES (1=A, 2=B) IOEQ0006
EJECT IOEQ0007
.REL. SET 0 INITIALIZE RELATIVE A.F.S.T. ADDRESS IOEQ0008
REM IOEQ0009
SETWRD MACRO SYMBOL TO SET UP ACTIVE FILE ENTRIES IOEQ0010
IRP SYMBOL .. IOEQ0011
PMC ON .. IOEQ0012
SYMBOL SYN .REL. .. IOEQ0013
PMC OFF .. IOEQ0014
IRP .. IOEQ0015
.REL. SET .REL.+1 .. BUMP RELATIVE ADDRESS IOEQ0016
SETWRD END .. IOEQ0017
REM IOEQ0018
SETWRD (RPROBN) IOEQ0019
SETWRD (RPROGN) IOEQ0020
SETWRD (RNAME1) IOEQ0021
SETWRD (RNAME2) IOEQ0022
SETWRD (RMODE) IOEQ0023
SETWRD (FPROBN) IOEQ0024
SETWRD (FPROGN) IOEQ0025
SETWRD (FNAME1) IOEQ0026
SETWRD (FNAME2) IOEQ0027
SETWRD (DAYTIM,LPROBN) IOEQ0028
SETWRD (DATELU,AUTHOR,LPROGN) IOEQ0029
SETWRD (MODE,ILOCK,F,RCOUNT) IOEQ0030
SETWRD (RWSTAT,S,W,R,NORECS,P,LCOUNT,LNAME1) IOEQ0031
SETWRD (POINTR,LNAME2) IOEQ0032
SETWRD (ASGNSW,REDREC,REDWRD) IOEQ0033
SETWRD (WRTREC,WRTWRD) IOEQ0034
SETWRD (CHNG,PRIME,BUFREC,BUFADR) IOEQ0035
SETWRD (WINDEX,DINDEX) IOEQ0036
SETWRD (DR,DW,DCOUNT,DADDRS) IOEQ0037
SETWRD (PRIOR,IOTASK,EFLAG,CURREC) IOEQ0038
SETWRD (SMTMP1) IOEQ0039
SETWRD (SMTMP2) IOEQ0040
REM IOEQ0041
SETWRD (ACTLNG) LENGTH OF SINGLE ACTIVE FILE ENTRY IOEQ0042
EJECT IOEQ0043
MACRO TO ASSIGN CONSECUTIVE STORAGE LOCATIONS IOEQ0044
SYMBOL ASTORE BLOCK,NWORDS .. WITHIN A BLOCK IOEQ0045
PMC ON .. IOEQ0046
SYMBOL SYN BLOCK .. IOEQ0047
PMC OFF .. IOEQ0048
TMP SET NWORDS .. IOEQ0049
BLOCK SET BLOCK+TMP .. IOEQ0050
ASTORE END .. IOEQ0051
REM IOEQ0052
AFST SET 0 DEFINE ENTRIES IN ACTIVE FILE STATUS TABLE IOEQ0053
REM IOEQ0054
PROBNO ASTORE AFST,1 USER'S PROBLEM NUMBER IN BCD IOEQ0055
PROGNO ASTORE AFST,1 USER'S PROGRAMMER NUMBER IN BCD IOEQ0056
AUTHNO ASTORE AFST,1 USER'S 'AUTHOR' NUMBER IN BINARY IOEQ0057
URCODE ASTORE AFST,1 USER'S RESTRICTION CODE IOEQ0058
LIMITS ASTORE AFST,1 USER'S CORE LIMITS PZE LOWADR,,HIADR IOEQ0059
RELOC ASTORE AFST,1 USER'S RELOCATION IOEQ0060
FPRIOR ASTORE AFST,1 USER'S FILE PRIORITY SETTING IOEQ0061
ERRILC ASTORE AFST,1 LOCATION OF CALL RESULTING IN LAST ERROR IOEQ0062
ERNAME ASTORE AFST,1 NAME OF ENTRY IN WHICH ERROR WAS DISCOVEREDIOEQ0063
ERCODE ASTORE AFST,1 ERROR CODE OF LAST ERROR IOEQ0064
IOCODE ASTORE AFST,1 I/O ERROR CODE IF ANY OF LAST ERROR IOEQ0065
ENAME1 ASTORE AFST,1 FILE NAME(1) OF FILE INVOLVED IN LAST ERRORIOEQ0066
ENAME2 ASTORE AFST,1 FILE NAME(2) OF FILE INVOLVED IN LAST ERRORIOEQ0067
ERCALL ASTORE AFST,1 LOCATION OF LAST CALL TO ERROR OR IOERR IOEQ0068
QUEUE1 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(1) IOEQ0069
QUEUE2 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(2) IOEQ0070
QUEUE3 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(3) IOEQ0071
QUEUE4 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(4) IOEQ0072
QUEUE5 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(5) IOEQ0073
QUEUE6 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(6) IOEQ0074
QUEUE7 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(7) IOEQ0075
REM IOEQ0076
AFENTY ASTORE AFST,ACTLNG STORAGE FOR A SINGLE ACTIVE FILE ENTRY IOEQ0077
REM IOEQ0078
TBLMIN ASTORE AFST,0 MINIMUM LENGTH FOR USER I/O STATUS TABLE IOEQ0079
EJECT IOEQ0080
EFA OPSYN NOP EFFECTIVE ADDRESS PARAMETER FLAG IOEQ0081
PAR OPSYN PTH NORMAL PARAMETER FLAG IOEQ0082
REM IOEQ0083
ION OPSYN PON I/O NON-TRANSMIT AND PROCEED IOEQ0084
IOP OPSYN PTW I/O TRANSMIT AND PROCEED IOEQ0085
IOD OPSYN PZE I/O DISCONNECT IOEQ0086
REM IOEQ0087
HOMOP MACRO GENERATE INSTRUCTION TO RESET ECC TO 'HOME'IOEQ0088
IFF IOSMEM-1,0,1 IOEQ0089
SEA HOME INSTRUCTION FOR MEMORY A IOEQ0090
IFF IOSMEM-2,0,1 IOEQ0091
SEB HOME INSTRUCTION FOR MEMORY B IOEQ0092
IFF IOSMEM-3,0,1 IOEQ0093
SEC HOME INSTRUCTION FOR MEMORY C IOEQ0094
HOMOP END IOEQ0095
REM DDST0045
TTL DEFINITIONS USED BY STRATEGY MODULES STE00010
REM DEFINITION OF QUEUE COMPONENTS STE00020
REM STE00030
QUENO EQU 0 (P) QUEUE NUMBER (PRIORITY) STE00040
QLNG EQU 0 (D) LENGTH OF QUEUE BEAD STE00050
FINISW EQU 0 (T) NON-ZERO WHEN BEAD FULLY PROCESSED STE00060
NEXTQ EQU 0 (A) POINTER TO NEXT QUEUE ELEMENT STE00070
QPRF1 EQU 1 (P) UNUSED COMPONENT STE00080
FUNCT EQU 1 (D) FUNCTION CODE STE00090
PAFST EQU 1 (A) POINTER TO ACTIVE FILE STATUS TABLE STE00100
QTAG1 EQU 1 (T) UNUSED COMPONENT STE00110
QWORDS EQU 2 (W) START OF ADDITIONAL REGISTERS IN BEAD STE00120
REM STE00130
REM STE00140
REM BITS ASSOCIATED WITH I/O COMMANDS STE00150
REM STE00160
IONBIT BOOL 100000 (L) FOR NO TRANSMISSION STE00170
IOPBIT BOOL 200000 (L) NORMAL TRANSMISSION STE00180
IODBIT BOOL 700000 (L) CHECK FOR ZERO PREFIX STE00190
REM STE00200
PROBIT BOOL 400000 (R) TRANSMISSION PROTECTED STE00210
B.BIT BOOL 200000 (R) TRANSMISSION IN CORE B STE00220
A.BIT BOOL 100000 (R) TRANSMISSION IN CORE A STE00230
REM DDST0047
TTL COMPONENTS AND PARAMETERS FOR STRATEGY MODULE 1 SM1E0001
REM DEFINITION OF ADDITIONAL ACTIVE FILE STATUS TABLE ELEMENTSM1E0002
REM SM1E0003
NXTREC SYN SMTMP1 (A) NEXT RECORD FOR TRAP PROCESSOR SM1E0004
LSTREC SYN SMTMP2 (A) POSITION OF LAST RECORD IN PROCESS SM1E0005
THSTRK SYN SMTMP1 (L) POSITION OF THIS TRACK SM1E0006
LSTTRK SYN SMTMP2 (L) POSITION OF LAST TRACK SM1E0007
EOFSW SYN SMTMP1 (T) NON-ZERO ON LAST TRACK SM1E0008
SEQSW SYN SMTMP2 (T) NON-ZERO WHEN POINTER CHECKING IS SUSPENDEDSM1E0009
REM SM1E0010
REM SM1E0011
REM DEFINITION OF ADDITIONAL QUEUE COMPONENTS SM1E0012
REM SM1E0013
QEOF EQU QPRF1 (P) INDICATE LAST RECORD WILL INCLUDE E.O.F. SM1E0014
REM SM1E0015
TRQST EQU QWORDS (W) POSITION OF REQUESTED FILE ON SEARCH SM1E0016
REM SM1E0017
QLABEL EQU QWORDS (W) RELATIVE LOCATION OF REC. ID SM1E0018
QLIST EQU QWORDS+1 (W) START OF I/O LIST IN QUEUE BEAD SM1E0019
REM SM1E0020
REM SM1E0021
REM DEFINITION OF QUEUE COMPONENTS FOR DELETE RING SM1E0022
REM SM1E0023
DELTRQ EQU 0 (W) DELETE REQUEST IN DELETE QUEUE SM1E0024
DELFRP EQU 1 (W) FORWARD POINTER FOR VALIDITY CHECK SM1E0025
DELREC EQU 2 (A) DELETED RECORD IDENTIFICATION SM1E0026
DELFIN EQU 2 (D) SEQ. NO. OF LAST RECORD TO DELETE SM1E0027
DLFNSW EQU 2 (T) TESTED BY WDELET SM1E0028
REM SM1E0029
REM SM1E0030
REM PARAMETERS ASSOCIATED WITH DELETE RING SM1E0031
REM SM1E0032
DELNUM EQU DELFIN+1 NUMBER OF WORDS USED BY DELETE REQUEST SM1E0033
REM SM1E0034
DELACT EQU 20 MAXIMUM NUMBER OF ACTIVE DELETE REQUESTS SM1E0035
REM SM1E0036
DELLNG EQU DELNUM*DELACT DEFINE LENGTH OF DELETE RING SM1E0037
REM SM1E0038
REM SM1E0039
REM DEFINITION OF QUEUE FUNCTION CODES SM1E0040
REM SM1E0041
CRANKP EQU 0 CRANK UP FROM SCRATCH SM1E0042
BEGINF EQU 1 POSITION FILE AT BEGINNING SM1E0043
ENDF EQU 2 POSITION FILE AT END SM1E0044
SRCFWD EQU 3 MOVE FILE FORWARD AND SEARCH SM1E0045
SRCBKW EQU 4 MOVE FILE BACKWARD AND SEARCH (FIRST REC.) SM1E0046
READF EQU 5 READ THE FILE SM1E0047
WRITEF EQU 6 WRITE THE FILE SM1E0048
REWRTF EQU 7 READ PREFIX FOR RE-WRITE SM1E0049
RWRT1 EQU 8 WRITE HALF OF RE-WRITE SM1E0050
SRCBK. EQU 9 SUBSEQUENT RECORDS OF BACKWARD SEARCH SM1E0051
REM SM1E0052
REM SM1E0053
REM DEFINE LENGTH OF DRUM/DISC RECORDS SM1E0054
REM SM1E0055
NWDSPR EQU 432 NUMBER OF WORDS/RECORD, DISK/DRUM SM1E0056
REM SM1E0057
REM SM1E0058
REM NUMBER OF I/O COMMANDS IN IOLIST (INCL. 'IOD') SM1E0059
REM SM1E0060
MAXLST EQU 4 MAXIMUM NUMBER OF I/O COMMANDS SM1E0061
REM SM1E0062
REM SM1E0063
REM DECREMENT DEFINITION FOR INDIRECT ADDRESSING SM1E0064
REM SM1E0065
II BOOL 60 INDIRECT FLAG IN DECREMENT SM1E0066
REM SM1E0067
REM SM1E0068
REM STATUS-BIT DEFINITIONS IN RWSTAT SM1E0069
REM SM1E0070
W.STAT BOOL 200000 FILE IN WRITE-STATUS SM1E0071
R.STAT BOOL 100000 FILE IN READ-STATUS SM1E0072
REM DDST0049
TTL DATA-MANIPULATION MACROS FOR STRATEGY MODULES STM.0001
SAVE MACRO EXIT,TEMPS STANDARD ROUTINE ENTRANCE MACRO STM.0002
TSX SAVE,7 CALL INTERNAL S/R STM.0003
SAVE END STM.0004
REM STM.0005
RETURN MACRO TEMPS STANDARD ROUTINE EXIT MACRO STM.0006
TSX RETURN,7 CALL INTERNAL S/R STM.0007
RETURN END STM.0008
REM STM.0009
RESTOR MACRO UNUSED,TAG MACRO TO RESTORE SPECIFIC TAG STM.0010
IRP TAG .. STM.0011
LAC EXIT+TAG,TAG RELIES ON SEQUENCE OF EXIT-RETURN STM.0012
IRP STM.0013
RESTOR END STM.0014
REM STM.0015
SAVE4 MACRO EXIT SHORT SAVE STM.0016
SCA EXIT,4 .. STM.0017
SAVE4 END STM.0018
REM STM.0019
RETUR4 MACRO SHORT RETURN STM.0020
AXC **,4 .. STM.0021
RETUR4 END STM.0022
REM STM.0023
RESTO4 MACRO EXIT SHORT RESTORE STM.0024
LAC EXIT,4 .. STM.0025
RESTO4 END .. STM.0026
REM STM.0027
ENABLE MACRO MACRO TO ENABLE APPROPRIATE TRAPS STM.0028
ENB* ENABLE .. STM.0029
ENABLE END STM.0030
REM STM.0031
DISABL MACRO MACRO TO DISABLE APPROPRIATE TRAPS STM.0032
ENB =0 STM.0033
DISABL END STM.0034
REM STM.0035
MAKE MACRO WHAT,BOOL SET A VALUE TO TRUE OR FALSE STM.0036
IFF 1,BOOL,TRUE MAKE IT 7 IF TRUE STM.0037
CAL =O777777777777 STM.0038
IFF 1,BOOL,FALSE MAKE IT 0 IF FALSE STM.0039
PXD ,0 .. STM.0040
IPLACE WHAT AND PUT IT AWAY STM.0041
MAKE END STM.0042
REM STM.0043
GOIF MACRO WHAT,BOOL,WHERE CONDITIONAL TRANSFER MACRO STM.0044
IXTRCT WHAT OBTAIN INFORMATION STM.0045
IFF 1,BOOL,TRUE TAKE TNZ IF TRUE STM.0046
TNZ WHERE .. STM.0047
IFF 1,BOOL,FALSE TAKE TRA IF FALSE STM.0048
TZE WHERE .. STM.0049
GOIF END STM.0050
REM STM.0051
XTRACT MACRO WORD,PT MACRO TO EXTRACT PART OF A WORD STM.0052
IFF 0,WORD,AC GET WORD IF NOT IN ACCUMULATOR STM.0053
CAL WORD GET TOTAL WORD STM.0054
IFF 1,PT,D CALCULATE SHIFTS STM.0055
ARS 18 .. STM.0056
IFF 1,PT,LH .. STM.0057
ARS 18 .. STM.0058
IFF 1,PT,T .. STM.0059
ARS 15 .. STM.0060
IFF 1,PT,RH .. STM.0061
ANA =O777777 STM.0062
IFF 1,PT,P .. STM.0063
ARS 33 .. STM.0064
IFF 1,PT,A NOW CHECK FOR MASKS STM.0065
ANA =O77777 STM.0066
IFF 1,PT,D .. STM.0067
ANA =O77777 STM.0068
IFF 1,PT,T .. STM.0069
ANA =O7 STM.0070
XTRACT END STM.0071
REM STM.0072
IXTRCT MACRO WORD,PT EXTRACT WORD, LEAVE IN PLACE STM.0073
IFF 0,WORD,AC .. STM.0074
CAL WORD STM.0075
IFF 1,PT,A ADDRESS STM.0076
ANA =O77777 STM.0077
IFF 1,PT,D DECREMENT STM.0078
ANA =O77777000000 STM.0079
IFF 1,PT,P PREFIX STM.0080
ANA =O700000000000 STM.0081
IFF 1,PT,T TAG STM.0082
ANA =O700000 STM.0083
IFF 1,PT,LH LEFT HALF STM.0084
ANA =O777777000000 STM.0085
IFF 1,PT,RH RIGHT HALF STM.0086
ANA =O777777 STM.0087
IXTRCT END STM.0088
REM STM.0089
PLACE MACRO WHERE,PT MACRO TO REPLACE PART OF A WORD STM.0090
IFF 1,PT,D CALCULATE SHIFTS STM.0091
ALS 18 .. STM.0092
IFF 1,PT,T .. STM.0093
ALS 15 .. STM.0094
IFF 1,PT,P .. STM.0095
ALS 33 .. STM.0096
IFF 1,PT,LH .. STM.0097
LGR 18 .. STM.0098
XXXINS ST'PT(WHERE) PERFORM STORE STM.0099
PLACE END STM.0100
REM STM.0101
IPLACE MACRO WHERE,PT REPLACE PARTIAL WORD, IN PLACE STM.0102
XXXINS ST'PT(WHERE) PERFORM STORE, NO SHIFTING STM.0103
IPLACE END STM.0104
REM STM.0105
XXXINS MACRO OP,VAR GENERATE AN INSTRUCTION STM.0106
OP VAR .. STM.0107
XXXINS END STM.0108
REM STM.0109
STW OPSYN SLW FOR USE WITH 'PLACE' MACRO STM.0110
STLH OPSYN SLQ .. STM.0111
REM DDST0051
TTL MACROS FOR STRATEGY MODULE 1 SM1M0001
SETUP MACRO SETUP STANDARD POINTERS SM1M0002
TSX SETUP.,7 SAVE X4 AT SETUP. SM1M0003
SETUP END SM1M0004
REM SM1M0005
QUEUE MACRO FUNCT MACRO TO CALL QUEUEING ROUTINE SM1M0006
TSX QUEUE,4 CALL ROUTINE SM1M0007
PAR FUNCT FUNCTION SM1M0008
QUEUE END SM1M0009
REM SM1M0010
GETQ MACRO LENGTH OBTAIN POINTER TO QUEUE OF PROPER LENGTH SM1M0011
IFF 0,AC,LENGTH SKIP PICK-UP IF ALREADY THERE SM1M0012
CAL LENGTH GET LENGTH SM1M0013
TSX GETQ,4 CALL S/R SM1M0014
GETQ END SM1M0015
REM SM1M0016
QSCRAP MACRO MACRO TO DELETE ALL REFS IN QUEUE SM1M0017
TSX QSCRAP,4 CALL FOR COMMON SETUP S/R SM1M0018
QSCRAP END .. SM1M0019
REM SM1M0020
IOCALL MACRO ADAPTR CALL PROPER ADAPTER SM1M0021
CAL ADAPTR GET TV ENTRY SM1M0022
STA IOADPT,5 .. SM1M0023
IOCALL END SM1M0024
REM SM1M0025
BCDTRK MACRO PTR CALL S/R TO SAVE UNPACKING SM1M0026
TSX BCDTRK,4 .. SM1M0027
EFA PTR .. SM1M0028
BCDTRK END SM1M0029
REM SM1M0030
LACX MACRO PLACE,TAG LOAD FROM LOCATION,TAGGED SM1M0031
CAL PLACE .. SM1M0032
PAC ,TAG .. SM1M0033
LACX END SM1M0034
REM SM1M0035
LDCX MACRO PLACE,TAG LOAD FROM DECREMENT, TAGGED SM1M0036
CAL PLACE SM1M0037
PDC ,TAG SM1M0038
LDCX END SM1M0039
REM SM1M0040
SCAX MACRO PLACE,TAG STORE INTO LOCATION,TAGGED SM1M0041
PCA ,TAG .. SM1M0042
SLW PLACE .. SM1M0043
SCAX END SM1M0044
REM SM1M0045
OBTVAL MACRO FUNCT OBTAIN VALUE OF EFFECTIVE ADDRESS SM1M0046
AXT FUNCT,7 .. SM1M0047
PXA ,7 .. SM1M0048
OBTVAL END SM1M0049
REM SM1M0050
OBTVLD MACRO FUNCT .. SM1M0051
AXT FUNCT,7 .. SM1M0052
PXD ,7 .. SM1M0053
OBTVLD END SM1M0054
REM SM1M0055
UNPACK MACRO MACRO TO UNPACK A TRACK ADDRESS INTO BCI SM1M0056
SXA TMPIR5,5 SAVE INDEX REGISTER 5 SM1M0057
ANA =O777777 SM1M0058
SLW STEMP AND REQUEST. SM1M0059
TSX .UNPAK,4 CALL ROUTINE. SM1M0060
PAR STEMP WITH THIS REQUEST. SM1M0061
LXA TMPIR5,5 RESTORE XR5 SM1M0062
UNPACK END .. SM1M0063
REM SM1M0064
PACK MACRO MACRO TO PACK A TRACK ADDRESS SM1M0065
SXA TMPIR5,5 SAVE INDEX REGISTER 5 SM1M0066
SLW STEMP AND REQUEST. SM1M0067
TSX .PACK,4 CALL ROUTINE SM1M0068
PAR STEMP WITH REQUEST SM1M0069
LXA TMPIR5,5 .. SM1M0070
PACK END SM1M0071
REM SM1M0072
ERROR MACRO CODE SET ERROR CONDITIONS SM1M0073
STO ERR.AC FOR DEBUGGING SM1M0074
STL ILCERR FIND WHO CALLED AT A STOP SM1M0075
CAL =O'CODE'00000 SM1M0076
IPLACE (EFLAG,2)T .. SM1M0077
ERROR END SM1M0078
REM SM1M0079
TRAPUP OPSYN NULL WILL BE MACRO TO REFLECT FUNCTION DONE TRAPSM1M0080
REM SM1M0081
UNDONE MACRO FOR PARTS WHICH AREN'T DONE YET SM1M0082
HTR * .. SM1M0083
UNDONE END SM1M0084
REM DDST0053
TTL INTERNAL SUBROUTINES --- SAVE, RESTOR SM1A0001
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0002
REM SM1A0003
REM SAVE, RESTORE STANDARD INDEX REGISTERS SM1A0004
REM SM1A0005
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0006
REM SM1A0007
SAVE SCA EXIT,7 SAVE LOCATION OF CALL SM1A0008
SCA EXIT+1,1 .. SM1A0009
SCA EXIT+2,2 .. SM1A0010
SCA EXIT+3,3 .. SM1A0011
SCA EXIT+4,4 .. SM1A0012
TRA 1,7 RETURN TO CALLER SM1A0013
REM SM1A0014
EXIT PZE **,,** INDEX REGISTER 7, SAVE,,RESTOR SM1A0015
REM SM1A0016
RETURN AXC **,1 MUST BE ONE BEYOND 'EXIT' SM1A0017
AXC **,2 .. SM1A0018
AXC **,3 .. SM1A0019
AXC **,4 .. SM1A0020
SCD EXIT,7 .. SM1A0021
TRA 1,7 RETURN FOR TESTING IF NECESSARY SM1A0022
TTL STRATEGY MODULE 1 SM1A0023
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0024
REM SM1A0025
REM STRATEGY MODULE 1 --- 7320 DRUM SM1A0026
REM SM1A0027
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0028
TTL ENTRIES FROM FILE COORDINATOR --- SINITF SM1A0029
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0030
REM SM1A0031
REM INITIALIZE THE STRATEGY MODULE SM1A0032
REM SM1A0033
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0034
REM SM1A0035
SINIT1 SAVE4 SN1XIT INITIALIZE ENABLE WORD AND ZEROES SM1A0036
CLA* 1,4 GET ENABLE WORD SM1A0037
STA ENABLE .. SM1A0038
TSX .REFER,4 TELL IO ADAPTER WHERE TO REFER ALL SM1A0039
PAR SM1TRP TRAPS. SM1A0040
TSX .DINIT,4 INITIALIZE ADAPTER SM1A0041
PAR ENABLE WITH THIS ALSO SM1A0042
AXT ZEROL,4 AND ZERO OUT STUFF SM1A0043
STZ ZERST+ZEROL,4 .. SM1A0044
TIX *-1,4,1 .. SM1A0045
SN1XIT RETUR4 RESTORE XRS SM1A0046
SINIT2 TRA 1,4 .. (EXIT IMMEDIATELY SECOND TIME) SM1A0047
TTL ENTRIES FROM BUFFER CONTROL MODULE --- OPENF SM1A0048
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-SM1A0049
REM SM1A0050
REM OPEN A FILE SM1A0051
REM SM1A0052
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-SM1A0053
REM SM1A0054
OPEN1 SAVE OP1XIT ENTER OPEN1 ROUTINE SM1A0055
SETUP GET STANDARD POINTERS SM1A0056
CLA =1 INITIALIZE ACTIVE FILE STATUS ENTRY SM1A0057
PLACE (LSTREC,2)W (ALSO CLEARS LSTTRK, SEQSW) SM1A0058
MAKE ((CURREC,2)A)FALSE SM1A0059
IPLACE (ASGNSW,2)P .. SM1A0060
LDQ POINTR,2 FIND FIRST TRACK SM1A0061
LGL 18 .. SM1A0062
STQ THSTRK,2 INITIALIZE THSTRK, CLEAR NXTREC,EOFSW SM1A0063
DISABL DON'T WANT TRAP DURING QUEUE MANIP. SM1A0064
TSX QUINT,4 CALL FOR QUEUE INITIALIZATION SM1A0065
EFA QUEUE1,1 QUEUES FOR THIS STRATEGY MODULE SM1A0066
ENABLE .. SM1A0067
MAKE ((IOTASK,2)D)FALSE CLEAR OUT NOISE SM1A0068
GOIF ((NORECS,2)D)FALSE,OPEN.1 SM1A0069
GOIF ((RCOUNT,2)A)TRUE,OP1XIT .. SM1A0070
OPEN.1 CAL RECWRD SET UP REC. CNT IN AFST SM1A0071
PLACE (RCOUNT,2)A .. SM1A0072
STZ POINTR,2 (HELP IN DE-BUGGING) SM1A0073
LDI RWSTAT,2 CHECK STATUS OF FILE SM1A0074
CAL * GET P-BIT SM1A0075
LNT W.STAT SEE IF FILE TO BE EXTENDED SM1A0076
ZAC NO, DO NOT DELETE EMPTY FILE IF NOT WRITTENSM1A0077
IPLACE (ASGNSW,2)P MARK OPENED, UN-WRITTEN FILE SM1A0078
OP1XIT RETURN AND RETURN SM1A0079
TRA 2,4 .. SM1A0080
TTL ENTRIES FROM BUFFER CONTROL MODULE --- CLOSEF SM1A0081
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0082
REM SM1A0083
REM CLOSE A FILE SM1A0084
REM SM1A0085
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0086
REM SM1A0087
CLOSE1 SAVE CL1XIT CLOSE OUT FILE AND SM1A0088
SETUP DRAIN ALL STUFF FROM THE QUEUES SM1A0089
DISABL DISABLE ALL TRAPS SM1A0090
QSCRAP FOR THIS ACTIVE FILE STATUS ENTRY SM1A0091
ENABLE AND REENABLE SM1A0092
CL1XIT RETURN .. SM1A0093
TRA 2,4 .. SM1A0094
TTL ENTRIES FROM BUFFER CONTROL MODULE --- QTESTF SM1A0095
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0096
REM SM1A0097
REM TEST FOR QUEUE SPACE SM1A0098
REM SM1A0099
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-SM1A0100
REM SM1A0101
QTEST1 SAVE QTSXIT .. SM1A0102
SETUP SET UP STD PNTRS SM1A0103
RESTOR QTSXIT(4) RESTORE XR4 TO CALL SM1A0104
CAL 2,4 ERROR RETURN. SM1A0105
ARS 18 .. SM1A0106
STA QWAIT .. SM1A0107
CLA* 2,4 GET NUM. OF REQUEST SM1A0108
TMI QTS.2 IF MINUS TEST DELETE QUEUES SM1A0109
ADD =1 FOR EXTRA CALLS SM1A0110
SLW NEEDQL SAVE NUMBER OF QUEUES TO LOOK FOR SM1A0111
STL QFULL SET FOR QUEUES ASSUMED FULL SM1A0112
DISABL .. SM1A0113
TSX QTST,4 GO TO QUEUE TESTING ROUTINES SM1A0114
EFA QUEUE1,1 .. SM1A0115
PAR NEEDQL,,*+2 .. SM1A0116
STZ QFULL SPACE AVAILABLE SM1A0117
ENABLE .. SM1A0118
QTSXIT RETURN .. SM1A0119
NZT QFULL .. SM1A0120
TRA 2,4 NORMAL RETURN SM1A0121
TRA* QWAIT FULL RETURN SM1A0122
REM SM1A0123
QTS.2 LAC DELTOP,6 GET HEAD OF DELETE RING SM1A0124
CAL DELTRQ,6 GET NEXT POSITION SM1A0125
SLW QFULL NON-ZERO IF POSITION TAKEN SM1A0126
TRA QTSXIT .. SM1A0127
TTL ENTRIES FROM BUFFER CONTROL MODULE --- READF, WRITEF, REWRTF SM1A0128
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-SM1A0129
REM SM1A0130
REM READ A FILE SM1A0131
REM SM1A0132
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-SM1A0133
REM SM1A0134
READ1 OBTVLD READF SIGNAL READING FUNCTION SM1A0135
ENT1 STL POSNSW POSITIONING MAY BE REQUIRED SM1A0136
ENT2 SLW FUNCTN SAVE ENTRY NAME SM1A0137
SAVE RD1XIT(QNUM,LABEL,IOLIST,QWAIT) ENTER READ1 ROUTINE SM1A0138
SETUP SET UP STANDARD POINTERS SM1A0139
RESTOR RD1XIT(4) AND RESTORE XR4 SM1A0140
CLA 3,4 GET QWAIT POSITION SM1A0141
STA QWAIT .. SM1A0142
STL QFULL ASSUME FULL SM1A0143
CLA 2,4 GET LABEL,,IOLIST SM1A0144
ARS 18 AND SAVE IOLIST ADDRESS SM1A0145
STA IOLIST .. SM1A0146
CAL* 2,4 GET LABEL SM1A0147
SLW LABEL .. SM1A0148
XTRACT (PRIOR,2)P GET FILE PRIORITY SM1A0149
SLW QNUM AND USE AS QUEUE NUMBER SM1A0150
DISABL IN CASE OF ERROR ON I/O, SCRAP THEM ALL SM1A0151
NZT POSNSW WAS THIS A WRITE CALL SM1A0152
TRA READ.1 YES, SHOULD NOT HAVE TO POSITION SM1A0153
XTRACT (LABEL)A GET RECORD ID. ONLY SM1A0154
SLW POSLBL .. SM1A0155
SUB =1 CHECK FOR FIRST RECORD SM1A0156
SLW POSNSW RE-USE THIS SWITCH SM1A0157
XTRACT (NORECS,2)D ALSO CHECK POSITIONING AT END OF FILE SM1A0158
SLW POSREC SAVE SM1A0159
SUB POSLBL SWITCH FOR LAST SM1A0160
STA POSTMP+2 (CANNOT STORE WHOLE WORD) SM1A0161
XTRACT (LSTREC,2)A GET CURRENT POSITION OF FILE SM1A0162
AXC POS.B2,7 SET SWITCH FOR BACK SEARCH ONLY SM1A0163
LAS POSREC COMPARE WITH NORECS SM1A0164
AXC POS.B3,7 AT END OF FILE, QUEUE END, THEN BACK SM1A0165
AXT 0,0 'NOP' SM1A0166
SUB POSLBL COMPUTE DISTANCE TO DESIRED RECORD SM1A0167
TZE READ.1 IT IS RIGHT THERE WAITING SM1A0168
NZT POSNSW WERE WE LOOKING FOR FIRST RECORD SM1A0169
TRA POS.B1 YES, PUT IN 'BEGIN' REQUEST SM1A0170
NZT POSTMP+2 WERE WE LOOKING FOR LAST RECORD SM1A0171
TRA POS.F3 YES, PUT IN 'END' REQUEST SM1A0172
TMI POS.F1 NO - WE ARE BEHIND IT SM1A0173
SUB POSLBL WE ARE IN FRONT OF IT - SHALL WE GO BACK SM1A0174
TMI 0,7 OR START FROM THE FRONT END SM1A0175
QUEUE BEGINC INDICATE WE ARE STARTING FROM FRONT SM1A0176
POS.F2 QUEUE SRCFWC AND LOOKING FORWARD SM1A0177
TRA READ.1 EXIT SM1A0178
POS.B1 QUEUE BEGINC POSITION AT HEAD OF QUEUE SM1A0179
TRA READ.1 FINISHED SM1A0180
POS.F3 QUEUE ENDC POSITION AT END SM1A0181
TRA READ.1 .. SM1A0182
POS.F1 STA POSTMP+2 WE ARE BEHIND IT - SHOULD WE SEARCH FORWARDSM1A0183
CAL POSREC GET NUMBER OF FINAL RECORD SM1A0184
SUB POSLBL IN THE FILE. SM1A0185
SUB POSTMP+2 .. SM1A0186
TPL POS.F2 GO AHEAD SM1A0187
POS.B3 QUEUE ENDC START FROM END OF FILE SM1A0188
POS.B2 QUEUE SRCBKC SEARCH BACKWARDS SM1A0189
READ.1 QUEUE FUNCTN QUEUE FINAL REQUEST SM1A0190
STZ QFULL CLEAR WHEN ALL REQUESTS SATISFIED SM1A0191
QUE.FL ENABLE TAKE ANY WAITING TRAPS (FULL QUEUE RETURN) SM1A0192
TSX .FORCE,4 ACTIVATE I/O, IF NECESSARY SM1A0193
RD1XIT RETURN (QNUM,LABEL,IOLIST,QWAIT) RESTORE USED REGISTERS SM1A0194
ZET QFULL WERE QUEUES FILLED SM1A0195
TTR* QWAIT YES SM1A0196
TRA 2,4 NO SM1A0197
REM SM1A0198
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-SM1A0199
REM SM1A0200
REM WRITE A FILE SM1A0201
REM SM1A0202
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-SM1A0203
REM SM1A0204
REM SM1A0205
REM SM1A0206
WRITE1 OBTVLD WRITEF FUNCTION IS WRITE SM1A0207
STZ POSNSW NO POSITIONING SM1A0208
TRA ENT2 TO COMMON CODE SM1A0209
REM SM1A0210
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-SM1A0211
REM SM1A0212
REM REWRITE A FILE SM1A0213
REM SM1A0214
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-SM1A0215
REM SM1A0216
REWRT1 OBTVLD REWRTF FUNCTION IS RE-WRITE SM1A0217
TRA ENT1 GO TO COMMON CODE SM1A0218
TTL ENTRIES FROM BUFFER CONTROL/FILE COORD. --- DFILEF, SCRAPF SM1A0219
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-SM1A0220
REM SM1A0221
REM DELETE OR TRUNCATE A FILE SM1A0222
REM SM1A0223
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-SM1A0224
REM SM1A0225
REM SM1A0226
REM SM1A0227
DFILE1 SAVE DF1XIT(QWAIT,LABEL) ENTER DFILE1 ROUTINE SM1A0228
SETUP SET UP STANDARD POINTERS SM1A0229
RESTOR DF1XIT(4) RESTORE XR4 SM1A0230
CLA 2,4 GET RECNUM,,QWAIT SM1A0231
ARS 18 FILL IN QWAIT SM1A0232
STA QWAIT .. SM1A0233
STL QFULL ASSUME QUEUE-WAIT RETURN SM1A0234
CAL* 2,4 GET LABEL SM1A0235
SLW LABEL SAVE SM1A0236
GOIF ((AC)D)FALSE,DFIL.1 IF NORECS = 0 SM1A0237
GOIF ((IOTASK,2)D)TRUE,DF1XIT MUST WAIT TO READ LAST TRACK SM1A0238
TSX DELSUB,4 COMMON DELETE RING SETUP SM1A0239
PAR DF1XIT QUEUE FULL SM1A0240
LDQ LSTTRK,2 UPDATE LAST TRACK ON 'TRFILE' CALL SM1A0241
SLQ POINTR,2 .. SM1A0242
XTRACT (LABEL)A ONE MORE CHECK SM1A0243
SUB =1 IS IT ENTIRE FILE SM1A0244
TZE DFIL.1 YES, LEAVE NOW ON SCRAP SM1A0245
CAL =.75B0 PARTIAL DELETE, GET RID OF TRAILING POINTERSM1A0246
TRA DFIL.2 GO TO SET SWITCH SM1A0247
DFIL.1 STZ POINTR,2 CLEAR TRACK POINTERS SM1A0248
STZ THSTRK,2 CLEAR THSTRK, EOFSW AND NXTREC SM1A0249
IPLACE (CURREC,2)A ZERO IN AC, PUT INTO CURREC SM1A0250
CLA =1 RESET LSTREC SM1A0251
STO LSTTRK,2 .. SM1A0252
DFIL.2 IPLACE (ASGNSW,2)P SET PROPER BITS IN ASGNSW SM1A0253
STZ QFULL .. SM1A0254
DF1XIT RETURN (QWAIT,LABEL) .. SM1A0255
ZET QFULL WERE QUEUES FILLED SM1A0256
TTR* QWAIT YES SM1A0257
TRA 2,4 NO SM1A0258
REM SM1A0259
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0260
REM SM1A0261
REM SCRAP A FILE ON 'RESETF' SM1A0262
REM SM1A0263
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0264
REM SM1A0265
SCRAP1 SAVE SCRXIT CALLED WITH I/O BLOCKED FOR THIS USER SM1A0266
SETUP .. SM1A0267
RESTOR SCRXIT(4) .. SM1A0268
CLA 2,4 GET PARAMETER SM1A0269
STA QWAIT .. SM1A0270
STL QFULL .. SM1A0271
CLA ASGNSW,2 SEE IF ANY TRACKS WRITTEN SM1A0272
TMI SCR.2 IF P-BIT=1, OPENED FOR WR, NOTHING WRITTEN SM1A0273
GOIF ((AC)P)FALSE,SCR.1 NOTHING VENTURED, NOTHING LOST SM1A0274
XTRACT (CURREC,2)A EXPECTED ID SM1A0275
ALS 18 CALL WITH LABEL FORMAT SM1A0276
ORA =1 DELETE BACK TO BEGINNING SM1A0277
SLW LABEL .. SM1A0278
TSX DELSUB,4 .. SM1A0279
PAR SCRXIT .. SM1A0280
SCR.2 MAKE ((RCOUNT,2)A)FALSE KILL F.D. ENTRY SM1A0281
IPLACE (ASGNSW,2)P AGAIN, FOR THE RECORD SM1A0282
SCR.1 DISABL .. SM1A0283
QSCRAP .. SM1A0284
ENABLE .. SM1A0285
STZ QFULL SUCCESS, AT LAST SM1A0286
SCRXIT RETURN .. SM1A0287
ZET QFULL TEST SM1A0288
TTR* QWAIT .. SM1A0289
TRA 2,4 .. SM1A0290
TTL QUEUEING SUBROUTINE --- QUEUE SM1A0291
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-SM1A0292
REM SM1A0293
REM 'QUEUE' ACCEPTS A QUEUE NUMBER AND FUNCTION CODE AND SM1A0294
REM PLACES AN APPROPRIATE REQUEST IN THE PROPER QUEUE TO SM1A0295
REM PERFORM THE FUNCTION AT THE PROPER TIME. SM1A0296
REM SM1A0297
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- -SM1A0298
REM SM1A0299
QUEUE SAVE4 QUEXIT(IOCNT,RECCNT) ENTER QUEUEING ROUTINE SM1A0300
CLA* 1,4 GET FUNCTION CODE SM1A0301
PDC ,5 .. SM1A0302
STD FNO SAVE FUNCTION CODE SM1A0303
CLA QCOUNT,5 INCREMENT COUNTER SM1A0304
ADD =1 .. SM1A0305
STO QCOUNT,5 .. SM1A0306
TRA* *+1,5 TAKE APPROPRIATE FUNCTION TRANSFER SM1A0307
REM SM1A0308
PAR QCRANK QUEUE INITIAL CRANKUP REQUEST SM1A0309
PAR QBEGIN QUEUE SEEK BEGIN REQUEST SM1A0310
PAR QEND QUEUE SEEK END REQUEST SM1A0311
PAR QSRCF QUEUE SEARCH FORWARD REQUEST SM1A0312
PAR QSRCB QUEUE SEARCH BACKWARD REQUEST SM1A0313
PAR QREAD QUEUE READ FILE REQUEST SM1A0314
PAR QWRITE QUEUE WRITE FILE REQUEST SM1A0315
PAR QREWRT QUEUE REWRITE FILE REQUEST SM1A0316
REM SM1A0317
REM SM1A0318
QRET SYN * .. SM1A0319
QRET1 SYN * .. SM1A0320
QUEXIT RETUR4 (IOCNT,RECCNT) RETURN SM1A0321
TRA 2,4 .. SM1A0322
REM SM1A0323
QCRANK SYN QRET1 FOR NOW ANYWAY SM1A0324
REM SM1A0325
QBEGIN GETQ =0 GET QUEUE OF LENGTH 0 SM1A0326
CLA =1 AND INITIALIZE LSTREC SM1A0327
PLACE (LSTREC,2)A .. SM1A0328
TRA QRET .. SM1A0329
REM SM1A0330
QEND CAL POSREC GET CURRENT LENGTH OF FILE SM1A0331
TRA QSRCF1 .. SM1A0332
REM SM1A0333
QSRCF CAL POSLBL GET LABEL FOR SEARCH SM1A0334
QSRCF1 SLW QLBL TEMP SM1A0335
GETQ =1 GET QUEUE OF LENGTH 1 SM1A0336
CAL QLBL GET LABEL USED IN POSITIONING SM1A0337
SLW QLABEL,3 INTO QUEUE SM1A0338
PLACE (LSTREC,2)A AFST SM1A0339
TRA QRET AND RETURN SM1A0340
REM SM1A0341
QSRCB SYN QSRCF SAME STUFF SM1A0342
REM SM1A0343
QREAD TSX CNTIO,4 AND COUNT IT SM1A0344
PAR IOLIST,,RECWRD .. SM1A0345
STO IOCNT COUNT OF WORDS IN IO LIST SM1A0346
STQ RECCNT COUNT OF RECORDS TO BE READ SM1A0347
ADD =1 NEED ONE MORE TO HOLD LABEL SM1A0348
GETQ AC GET QUEUE BEAD OF PROPER LENGTH SM1A0349
XTRACT (LSTREC,2)A UPDATE POSITIONING INFO SM1A0350
ADD RECCNT .. SM1A0351
PLACE (LSTREC,2)A .. SM1A0352
LAS POSREC COMPARE FINAL POSITION WITH CURRENT LENGTH SM1A0353
CAL =O700000000000 GREATER, MAKE QEOF TRUE SM1A0354
AXT 0,0 EQUAL, WILL BE AT EOF ON NEXT RECORD SM1A0355
IPLACE (QEOF,3)P PLACE ANSWER IN FLAG (USED ONLY BY SRWT1) SM1A0356
LXA IOCNT,6 GET IO COUNT SM1A0357
CAL LABEL GET DESIRED LABEL SM1A0358
SLW QLABEL,3 ADD TO QUEUE SM1A0359
LAC IOLIST,7 GET BASE OF I/O LIST SM1A0360
QR.1 CAL 0,7 GET WORD IN IO LIST SM1A0361
SLW QLIST,5 AND PUT IN BEAD ELEMENT SM1A0362
TXI *+1,7,-1 INCREMENT PICKUP COUNTER SM1A0363
TXI *+1,5,-1 AND DEPOSIT COUNTER. SM1A0364
TIX QR.1,6,1 COPY WHOLE LIST SM1A0365
TRA QRET RETURN SM1A0366
REM SM1A0367
QWRITE SYN QREAD SAME CODING EXCEPT FOR VALUE SM1A0368
REM SM1A0369
QREWRT SYN QREAD SAME QUEUEING AS FOR 'READ' SM1A0370
TTL CALL-TIME UTILITY ROUTINES --- GETQ, SETUP., DELSUB SM1A0371
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0372
REM SM1A0373
REM STANDARD INTERFACE TO 'QGET' SM1A0374
REM SM1A0375
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0376
REM SM1A0377
GETQ SAVE4 GQXIT COMPLETE SAVE NOT REQUIRED HERE SM1A0378
SLW NEEDQL SAVE REQUESTED LENGTH SM1A0379
TSX QGET,4 CALL TO WRITE-AROUND ENTRY SM1A0380
EFA 0,1 ACTIVE FILE STATUS TABLE POINTER SM1A0381
EFA 0,2 ACTIVE FILE POINTER SM1A0382
PAR QNUM,,QUEUEC .. SM1A0383
PAR NEEDQL,,GTQERR .. SM1A0384
PAC ,3 SAVE RETURNED POINTER IN XR3 SM1A0385
PAC ,5 ALSO IN XR5 FOR CONVENIENCE SM1A0386
CLA FNO INSERT FUNCTION NUMBER SM1A0387
IPLACE (FUNCT,3)D .. SM1A0388
GQXIT RETUR4 SM1A0389
TRA 1,4 SM1A0390
REM SM1A0391
GTQERR SYN QUE.FL UNTIL COUNT SECTION IS IN SM1A0392
REM SM1A0393
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0394
REM SM1A0395
REM GET 'AFENTY' AND 'IOBASE' SM1A0396
REM SM1A0397
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0398
REM SM1A0399
SETUP. SCA STXIT,7 .. SM1A0400
CLA 1,4 .. SM1A0401
STO SETTMP .. SM1A0402
TSX SSETUP,4 CALL FOR STANDARD INFORMATION SM1A0403
PAR SETTMP .. SM1A0404
PAC ,2 ACTIVE FILE SM1A0405
PDC ,1 I/O STATUS TABLE SM1A0406
STXIT AXC **,7 SM1A0407
TRA 1,7 .. SM1A0408
REM SM1A0409
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0410
REM SM1A0411
REM SET UP ENTRY IN DELETE RING SM1A0412
REM SM1A0413
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0414
REM SM1A0415
DELSUB SAVE4 DLSXIT SM1A0416
CAL D.CALL INCREMENT NUMBER OF DELETE-Q CALLS SM1A0417
ADD =1 .. SM1A0418
STO D.CALL FORCE + IF OVERFLOW SM1A0419
LAC DELTOP,3 FIND Q-POINTER SM1A0420
DISABL INSURE DECISION REMAINS VALID SM1A0421
NZT DELTRQ,3 IS RING FULL SM1A0422
TRA DLS.1 NO, ADD NEW ENTRY, BELOW SM1A0423
CAL D.FULL YES, INCREMENT STATISTICS SM1A0424
ADD =1 .. SM1A0425
STO D.FULL .. SM1A0426
STL DWATSW INDICATE WAITING FOR DELETE FREEUP SM1A0427
TSX SSTRAP,4 INFORM SUPERVISOR OF THIS SM1A0428
PAR =0 .. SM1A0429
PAR =1 .. INTERRUPT CODE 1, I/O QUEUE WAIT SM1A0430
PAR =0 .. SM1A0431
PAR =0 .. SM1A0432
PAR SSCODE .. SM1A0433
ENABLE REENABLE FOR ALL TRAPS NOW SM1A0434
DLS.4 RESTO4 DLSXIT SM1A0435
TRA* 1,4 SM1A0436
REM SM1A0437
DLS.1 ENABLE REENABLE AFTER FULL TEST SM1A0438
CAL DELTOP INCREMENT RING POINTER SM1A0439
ADD DELSIZ .. SM1A0440
LAS DELEND CHECK SIZE SM1A0441
AXT 0,0 .. SM1A0442
CAL DELPNT YOU RANG, SIR .. SM1A0443
SLW DELTOP .. SM1A0444
GOIF ((ASGNSW,2)P)FALSE,DLS.5 SM1A0445
XTRACT (THSTRK,2)LH .. SM1A0446
SLW POSTMP .. SM1A0447
TSX .UNPAK,4 PREPARE 'DELFRP' SM1A0448
PAR POSTMP .. SM1A0449
SLW POSTMP+1 SAVE UNPACKED VERSION SM1A0450
DLS.5 SLW DELFRP,3 PUT IN QUEUE AS EXPECTED FORWARD POINTER SM1A0451
SLW POSTMP+1 AND FOR RELEASE OF TRACK SM1A0452
LDQ LABEL .. SM1A0453
RQL 18 RE-FORMAT SM1A0454
STQ DELREC,3 .. SM1A0455
XTRACT (POINTR,2)LH GET ADDR. OF LAST TRACK SM1A0456
SLW POSTMP .. SM1A0457
TSX .UNPAK,4 .. SM1A0458
PAR POSTMP .. SM1A0459
PLACE (DELTRQ,3)W TRACK NAME (LAST CHANGE FOR RING ENTRY) SM1A0460
TSX .FORCE,4 START WORKING IF NOTHING ELSE TO DO SM1A0461
NZT POSTMP+1 SEE IF ANYTHING TO BE SPECIALLY RELEASED SM1A0462
TRA DLSXIT NOPE, SCRAM SM1A0463
DISABL .. SM1A0464
TSX DELTRK,4 RE-USE TRACK THAT WAS AHEAD SM1A0465
PAR POSTMP+1 .. SM1A0466
PAR *+1 FOR THE RECORD SM1A0467
ENABLE MAY DISABLE AGAIN SOON, BUT C'EST LA VIE SM1A0468
DLSXIT RETUR4 .. SM1A0469
TRA 2,4 SM1A0470
TTL ENTRIES FROM I/O CONTROL MOD. --- IOHLTF,DRAINF,IOBGNF,IORSTFSM1A0471
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0472
REM SM1A0473
REM HALT I/O FOR USER(S) SM1A0474
REM SM1A0475
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0476
REM SM1A0477
REM SM1A0478
REM SM1A0479
IOHLT1 CAL* 1,4 GET USER TO STOP SM1A0480
PAC ,7 POINTER TO USER'S I/O STATUS TABLE SM1A0481
AXT 0,5 SET SWITCHES FOR CHECK SM1A0482
HLT.2 PCA ,7 COMPARE IO STATUS TABLE POINTERS SM1A0483
SUB STATBL,5 DOES IT MATCH THIS BUFFER SM1A0484
TNZ *+3 NO SM1A0485
ZET FILLED,5 YES - WAIT FOR IT TO EMPTY SM1A0486
TRA HLT.2-1 OR CHANGE USERS (WATCH FOR LEAKY DRAINS). SM1A0487
TXH *+2,5,0 IF DONE SM1A0488
TXI HLT.2,5,-1 TRY NEXT BUFFER SM1A0489
TRA 1,4 RETURN SM1A0490
REM SM1A0491
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0492
REM SM1A0493
REM WAIT FOR ALL I/O TO STOP SM1A0494
REM SM1A0495
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0496
REM SM1A0497
DRAIN1 ZET FILLED WAIT FOR BOTH BUFFERS TO EMPTY SM1A0498
TRA DRAIN1 .. SM1A0499
ZET FILLED+1 .. SM1A0500
TRA DRAIN1 MORE LEAKY DRAINS SM1A0501
TRA 1,4 RETURN WHEN DONE SM1A0502
REM SM1A0503
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0504
REM SM1A0505
REM START I/O FOR USER(S) SM1A0506
REM SM1A0507
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0508
REM SM1A0509
IOBGN1 TTR .FORCE TAKE RETURN FROM I/O ADAPTER SM1A0510
REM SM1A0511
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0512
REM SM1A0513
REM RESTART I/O WHEN TRAPS LOST SM1A0514
REM SM1A0515
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0516
REM SM1A0517
IORST1 TTR .DRSET RESET ADAPTER, RESTART I/O SM1A0518
REM SM1A0519
IORST2 TRA 1,4 DO ---NOT--- RESET ADAPTER, SECOND TIME SM1A0520
TTL ENTRIES FOR STRATEGY MODULE 2 --- SAME AS STRATEGY MODULE 1 SM1A0521
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0522
REM SM1A0523
REM STRATEGY MODULE 2 --- 1302 DISK SM1A0524
REM (SAME STRATEGY AS 7320 DRUM) SM1A0525
REM SM1A0526
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1A0527
REM SM1A0528
OPEN2 SYN OPEN1 .. SM1A0529
CLOSE2 SYN CLOSE1 .. SM1A0530
QTEST2 SYN QTEST1 .. SM1A0531
READ2 SYN READ1 .. SM1A0532
WRITE2 SYN WRITE1 .. SM1A0533
REWRT2 SYN REWRT1 .. SM1A0534
DFILE2 SYN DFILE1 .. SM1A0535
SCRAP2 SYN SCRAP1 .. SM1A0536
IOHLT2 SYN IOHLT1 .. SM1A0537
IOBGN2 SYN IOBGN1 .. SM1A0538
DRAIN2 SYN DRAIN1 .. SM1A0539
REM DDST0055
TTL INTERRUPT PROCESSOR - 'SM1TRP' SM1B0001
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0002
REM SM1B0003
REM 'SM1TRP' ACCEPTS INTERRUPTS FROM THE VARIOUS IO SM1B0004
REM ADAPTERS IN THE FORM OF A SUBROUTINE CALL. IT SENDS SM1B0005
REM THE TRAP TO THE WINDUP SECTIONS OF THE PREVIOUS FUNCTIONSSM1B0006
REM WHICH GO TO 'IOPREP' TO MAKE THE WAITING CALL TO AN SM1B0007
REM I/O ADAPTER, AND THEN SET UP THE NEXT OPERATION FROM THE SM1B0008
REM APPROPRIATE QUEUE. SM1B0009
REM SM1B0010
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- SM1B0011
REM SM1B0012
SM1TRP SAVE4 SM1XIT ENTER ROUTINE HERE SM1B0013
SM1T.1 LAC BUFTRP,5 GET BUFFER WHICH JUST TRAPPED SM1B0014
STL DIFFSW ASSUME BUFFERS DIFFERENT SM1B0015
NZT FILLED,5 WAS THIS A LEGITIMATE TRAP SM1B0016
TRA IOPREP NO - GO DIRECTLY TO SET UP NEXT USER SM1B0017
STZ SEQTMP .. SM1B0018
LACX (STATBL,5)1 SETUP STANDARD POINTERS FOR POST-TRAP SM1B0019
LACX (AFSTBL,5)2 PROCESSING. SM1B0020
LACX (QUEUEP,5)3 .. SM1B0021
CAL RECID,5 GET POSS. LAST REC. COUNT SM1B0022
STD LSTCNT .. SM1B0023
MAKE ((RECID,5)D)FALSE CLEAR DECR. FOR SEQ. CHECKING SM1B0024
LAC BUFWAT,7 SETUP FOR DIFFSW SM1B0025
NZT FILLED,7 IS BUFFER FILLED SM1B0026
TRA *+4 NO - DON'T CHECK FOR SAME AFST SM1B0027
CAL AFSTBL,7 COMPARE AFST POINTERS SM1B0028
SUB AFSTBL,5 .. SM1B0029
SLW DIFFSW NON-ZERO IF DIFFERENT FILES SM1B0030
ZET NULLIO WAS THIS SPECIAL RE-ENTRY SM1B0031
TRA SM1T.2 YES, NO ERRORS POSSIBLE SM1B0032
CLA* 1,4 CHECK FOR POSSIBLE ERROR SM1B0033
ZET DELSW,5 WAS THIS A DELETE SM1B0034
TRA WDELET YES, LET WIND-UP HANDLE ERROR CODE SM1B0035
TZE SM1T.2 NONE SM1B0036
PAC ,7 GET ERROR CODE SM1B0037
TRA *,7 AND TAKE APPROPRIATE TRANSFER SM1B0038
REM SM1B0039
TRA SM1T.4 PARITY ERROR SM1B0040
ERROR 2 FATAL ERROR SM1B0041
TRA FATERR .. SM1B0042
REM SM1B0043
SM1T.4 ERROR 1 NON-FATAL ERROR SM1B0044
SM1T.2 LDCX (FUNCNO,5)7 GET FUNCTION WHICH TRAPPED SM1B0045
CAL SEQSW,2 CHECK BLOCKING OF POINTER CHECK SM1B0046
STT SEQTMP .. SM1B0047
MAKE ((SEQSW,2)T)FALSE SM1B0048
TRA* *+1,7 AND TAKE APPROPRIATE TRANSFER TO WINDUP SM1B0049
REM SM1B0050
PAR WCRANK WINDUP THE APPROPRIATE FUNCTIONS SM1B0051
PAR WBEGIN .. SM1B0052
PAR WEND .. SM1B0053
PAR WSRCF .. SM1B0054
PAR WSRCB .. SM1B0055
PAR WREAD .. SM1B0056
PAR WWRITE .. SM1B0057
PAR WREWRT .. SM1B0058
PAR WRWT1 .. SM1B0059
PAR WSRCB. .. SM1B0060
REM SM1B0061
SM1RET CAL FINISW,3 GET SETTING OF FINISW SM1B0062
SM1RT2 STT QUEGO,5 SET FOR LATER DELETION (ENTRY FROM SDELET) SM1B0063
SM1RT1 SCAX (STATBL,5)1 SAVE STANDARD TAGS (ALSO ENTRY FROM SDELET)SM1B0064
SCAX (AFSTBL,5)2 .. SM1B0065
SCAX (QUEUEP,5)3 .. SM1B0066
STL FILLED,5 INDICATE SOMETHING IN BUFFER SM1B0067
LAC BUFTRP,7 IS OTHER BUFFER FILLED NOW SM1B0068
ZET FILLED,7 .. SM1B0069
SM1RT3 ZET NULLIO OR DO WE HAVE TO FAKE A TRAP (ENTRY ON PMV)SM1B0070
TRA SM1T.1 RETURN TO TRAP PROCESSOR SM1B0071
LAC DELNXT,7 CHECK DELETE RING SM1B0072
ZET DWATSW IS CALL SIDE WAITING FOR DELETE SM1B0073
ZET DELTRQ,7 .. YES, IS DELETE RING FLUSHED NOW SM1B0074
TRA SM1XIT .. NO, EXIT SM1B0075
TSX SSTRAP,4 DELETE RING NOW EMPTY, INFORM SUPERVISOR SM1B0076
PAR =0 .. SM1B0077
PAR =2 .. INTERRUPT CODE 2, I/O UNBLOCKED SM1B0078
PAR =0 .. SM1B0079
PAR =0 .. SM1B0080
PAR SSCODE .. FOR STRATEGY MODULE 1 SM1B0081
STZ DWATSW RESET WAITING DELETE SWITCH SM1B0082
SM1XIT RETUR4 RETURN THROUGH HERE SM1B0083
TRA 2,4 .. SM1B0084
REM SM1B0085
.DNULL TTR *+1 CYCLE THROUGH THE PROCESS ON POSITIONING SM1B0086
STL NULLIO SIGNAL NON-TRAPPING ADAPTER SM1B0087
STZ BRKSW,5 X5 STILL LEFT FROM CALL SM1B0088
ZET DIFFSW WILL DEFERRED INFO CLOBBER ANYTHING SM1B0089
TRA 3,4 NO SM1B0090
LAC BUFWAT,7 GET THE NUMBER OF THAT TRUCK SM1B0091
STZ FILLED,7 AND SEND HIM AWAY SM1B0092
TRA 3,4 .. SM1B0093
TTL WINDUP PREVIOUS TASK SM1B0094
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0095
REM SM1B0096
REM WINDUP SECTION --- CHECK SEQUENCE, BACKWARD/FORWARD SM1B0097
REM POINTERS OF RECORD JUST COMPLETED, UPDATE POSITION SM1B0098
REM INDICATORS, PROVIDE ANY NECESSARY POINTERS FOR SM1B0099
REM WAITING RECORD. SM1B0100
REM SM1B0101
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0102
REM SM1B0103
WBEGIN PXD ,0 CLEAR AC SM1B0104
WBGN.1 PLACE (NXTREC,2)A UPDATE TEMPORARIES SM1B0105
STZ NULLIO CLEAR SM1B0106
STZ FILLED,5 BLOCK FILLING FOR WAITING BUFFER SM1B0107
STL DIFFSW BLOCK PICKUP SM1B0108
MAKE ((SEQSW,2)T)TRUE .. SM1B0109
WCRANK TRA IOPREP NOTHING TO DO HERE SM1B0110
REM SM1B0111
WEND CAL QLABEL,3 GET OLD VERSION OF NORECS SM1B0112
SUB =1 .. SM1B0113
TRA WBGN.1 COMMON UPDATING SM1B0114
REM SM1B0115
WSRCF TSX FORCHK,4 CHECK THE SEQUENCE SM1B0116
NZT FOREP,5 IS THIS LAST TRACK SM1B0117
TRA SEQERR YES, IMPROPER REQUEST SM1B0118
WSRCF1 TRA IOPREP SET UP NEXT USER SM1B0119
REM SM1B0120
WSRCB STL SEQTMP BLOCK POINTER CHECKING ON TURN-AROUND SM1B0121
WSRCB. TSX BCKCHK,4 CHECK THE SEQUENCE SM1B0122
NZT QUEGO,5 ARE WE THROUGH WITH THIS QUEUE SM1B0123
TRA IOPREP NO, LEAVE IT SM1B0124
MAKE ((SEQSW,2)T)TRUE BLOCK CHECKING NEXT TIME SM1B0125
TRA IOPREP .. SM1B0126
REM SM1B0127
WREAD TSX FORCHK,4 CHECK FORWARD SEQUENCING SM1B0128
ZET FOREP,5 LAST TRACK SM1B0129
TRA IOPREP WOULDN'T IT BE LOVERLY SM1B0130
LDI NORECS,2 SEE IF LENGTH SPECIFIED SM1B0131
LNT 77777 .. SM1B0132
TRA WRD.1 YES SM1B0133
CAL LSTCNT NO, READING INDEFINITE LENGTH FILE SM1B0134
ARS 18 SM1B0135
PLACE (LCOUNT,2)A SET UP LCOUNT HERE SM1B0136
CAL TMPTRK SETUP POINTR SM1B0137
PACK .. SM1B0138
PLACE (POINTR,2)LH .. SM1B0139
CAL RECID,5 .. SM1B0140
PLACE (NORECS,2)D .. SM1B0141
LAC BUFWAT,7 SM1B0142
NZT DIFFSW SAME FILE WAITING SM1B0143
STZ FILLED,7 YES, KILL IT SM1B0144
STL QUEGO,5 .. SM1B0145
WRD.2 MAKE ((EOFSW,2)T)TRUE INTERNAL CHECK ON QUEUE REQUESTS SM1B0146
TRA IOPREP FINITA LA COMMEDIA SM1B0147
REM SM1B0148
WRD.1 IXTRCT (QWORDS,3)D CHECK FOR MATCHING LCOUNT SM1B0149
SUB LSTCNT .. SM1B0150
TNZ SEQERR LENGTHS DON'T MATCH SM1B0151
NZT QUEGO,5 WERE WE AT END OF QUEUES SM1B0152
TRA SEQERR NO (GROAN) SM1B0153
LAC BUFWAT,7 CHECK WAITING BUFFER SM1B0154
ZET DIFFSW IS SAME FILE WAITING SM1B0155
TRA WRD.2 NO, MARK EOF SM1B0156
NZT BRKSW,7 IS BREAK WAITING SM1B0157
TRA SEQERR SOMEBY GOOFED SM1B0158
TRA IOPREP NOW DO 'I/O' ON THIS BREAK SM1B0159
REM SM1B0160
WWRITE CAL RECID,5 MAINTAIN TEMPORARIES SM1B0161
PLACE (NXTREC,2)A .. SM1B0162
TRA IOPREP .. SM1B0163
REM SM1B0164
WREWRT TSX FORCHK,4 SEQUENCE CHECK PREFIX READIN SM1B0165
STZ RWT1SW,5 .. SM1B0166
ZET DIFFSW CHECK IF REALLY SAME FILE WAITING SM1B0167
TRA IOPREP NO, MUST HAVE BEEN SCRAPPED SM1B0168
LAC BUFWAT,7 SM1B0169
CAL BACKP,5 UPDATE STUFF SM1B0170
SLW BACKP,7 .. SM1B0171
CAL FOREP,5 .. SM1B0172
NZT LCTSW,7 IS THERE VALID INFORMATION ALREADY THERE SM1B0173
SLW FOREP,7 NO, PUT IN THIS FOREP SM1B0174
CAL FOREP,7 GET WHATEVER IS NOW IN WAITING BUFFER SM1B0175
SLW PCKTRK .. SM1B0176
TRA IOPREP .. SM1B0177
REM SM1B0178
WRWT1 SYN WWRITE .. SM1B0179
REM SM1B0180
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0181
REM SM1B0182
REM WINDUP OF DELETE --- VERIFY POINTERS AND RECORD I.D. SM1B0183
REM BEFORE ACCEPTING RECORD AS BEING DELETED AND RETURNED SM1B0184
REM TO LIST OF AVAILABLE RECORDS. SM1B0185
REM SM1B0186
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0187
REM SM1B0188
WDELET TZE WDEL.1 ENTER WITH ERROR CODE IN AC SM1B0189
SUB =2 CHECK I/O CODE SM1B0190
TZE DELERR FATAL, DUMP THIS QUEUE SM1B0191
WDEL.1 XTRACT (DELREC,3)A GET EXPECTED ID SM1B0192
SUB RECID,5 .. SM1B0193
TNZ DELERR DON'T TOUCH TRACK SM1B0194
XTRACT (DELFIN,3)D CHECK RECID AGAINST REQUEST SM1B0195
SUB RECID,5 .. SM1B0196
TMI *+3 NORMAL CASE SM1B0197
TNZ DELERR HE ALMOST LOST SM1B0198
STL QUEGO,5 END OF THIS DELETE SM1B0199
XTRACT (DELFRP,3)W GET EXPECTED FORWARD POINTER SM1B0200
LAS FOREP,5 COMPARE SM1B0201
TRA DELERR .. SM1B0202
TRA *+2 (THIS ALSO WORKS FIRST TIME, SM1B0203
TRA DELERR SEE INITIALIZATION) SM1B0204
CAL RECID,5 UPDATE QUEUE CONTENTS SM1B0205
SUB =1 .. SM1B0206
PLACE (DELREC,3)A .. SM1B0207
CAL TMPTRK UPDATE QUEUE SM1B0208
PLACE (DELFRP,3)W NEW EXPECTED FOREP (ALSO USED BY DELTRK) SM1B0209
CAL BACKP,5 PREPARE TO UPDATE DELTRQ SM1B0210
SLW PCKTRK TRACK ADDRESS FOR WAITING BUFFER SM1B0211
PLACE (DELTRQ,3)W .. SM1B0212
TZE DLDLET IF NO BACK POINTER, CHECK END OF REQUEST SM1B0213
ZET QUEGO,5 SM1B0214
TRA DLDLET .. SM1B0215
TRA IOPREP SAME DELETE CANNOT BE WAITING SM1B0216
REM SM1B0217
DELERR SYN * .. SM1B0218
STO ERR.AC SAVE ERROR CONDITION SM1B0219
STL ILCERR AND LOCATION (FOR DUMPS SANS M.C.) SM1B0220
STL SCRPSW,5 SET DELETION SWITCH SM1B0221
DLDLET CAL AFSTBL,5 RUDIMENTARY QSCRAP FOR DELETE RING SM1B0222
SUB DELNXT CHECK LOCATION OF SWITCH SM1B0223
TNZ DELDL IT'S BEEN MOVED SM1B0224
TSX DELINC,4 INCREMENT POINTER FOR NEXT DELETE SM1B0225
DELDL STZ DELTRQ,3 KILL REQUEST SM1B0226
STZ QUEGO,5 CLEAR THIS SWITCH SM1B0227
ZET DIFFSW IS ANOTHER DELETE WAITING SM1B0228
TRA IOPREP NO, WE ARE OK SM1B0229
LAC BUFWAT,7 SM1B0230
STZ FILLED,7 KILL WAITING BUFFER SM1B0231
STZ DELSW,7 KILL DELETE SWITCH, LIKEWISE SM1B0232
STZ QUEGO,7 .. SM1B0233
STL DIFFSW NOTHING TO FILL, EITHER SM1B0234
TRA IOPREP AND PREPARE FOR NEXT I/O SM1B0235
TTL SEQUENCE CHECKING SUBROUTINES SM1B0236
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0237
REM SM1B0238
REM FORCHK, BCKCHK --- CHECK SEQUENCING OF RECORDS SM1B0239
REM AGAINST EXPECTED I.D., VERIFY FORWARD/BACKWARD POINTERS SM1B0240
REM SM1B0241
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0242
REM SM1B0243
FORCHK SAVE4 SEQXIT CHECK FORWARD SEQUENCING SM1B0244
XTRACT (NXTREC,2)A SEE IF THE RECORD ID MATCHES SM1B0245
ADD =1 SM1B0246
SUB RECID,5 .. SM1B0247
TNZ SEQERR NO - SEQUENCE ERROR SM1B0248
CAL RECID,5 YES - INCREMENT IT SM1B0249
PLACE (NXTREC,2)A .. SM1B0250
ZET SEQTMP IS POINTER CHECKING BLOCKED SM1B0251
TRA FOR.1 YES SM1B0252
CAL EXPTRK GET EXPECTED BACK POINTER SM1B0253
LAS BACKP,5 .. SM1B0254
NZT BACKP,5 BUT CHECK FOR FIRST RECORD OF FILE SM1B0255
TRA *+2 OK, OR BEGINNING OF FILE SM1B0256
TRA SEQERR ERROR SM1B0257
FOR.1 ZET RWT1SW,5 IS RE-WRITE IN PROGRESS SM1B0258
TRA SEQXIT YES, DON'T MOVE TEMPORARIES SM1B0259
CAL FOREP,5 GET NEW TRACK ADDRESS SM1B0260
SEQ.1 SLW PCKTRK FOR DEFERRED DELIVERY SM1B0261
LDQ THSTRK,2 AND UPDATE AFSTBL SM1B0262
SLQ LSTTRK,2 .. SM1B0263
SEQXIT RETUR4 .. SM1B0264
TRA 1,4 SM1B0265
REM SM1B0266
BCKCHK SAVE4 SEQXIT CHECK BACKWARD SEQUENCING SM1B0267
NZT BACKP,5 HAVE WE REACHED FIRST TRACK OF FILE SM1B0268
TRA SEQERR YES, IMPROPER REQUEST SM1B0269
XTRACT (NXTREC,2)A GET EXPECTED ID NO SM1B0270
ADD =1 .. SM1B0271
SUB RECID,5 AND COMPARE IT SM1B0272
TNZ SEQERR ERROR SM1B0273
CAL RECID,5 UPDATE IT SM1B0274
SUB =2 FUDGE IT BACK SM1B0275
PLACE (NXTREC,2)A .. SM1B0276
ZET SEQTMP .. SM1B0277
TRA BACK.1 .. SM1B0278
CAL EXPTRK GET EXPECTED FORWARD POINTER SM1B0279
LAS FOREP,5 .. SM1B0280
NZT FOREP,5 ON END OF FILE, MAY NOT MATCH SM1B0281
TRA *+2 .. SM1B0282
TRA SEQERR .. SM1B0283
BACK.1 CAL BACKP,5 .. SM1B0284
TRA SEQ.1 RETURN, WITH TRACK TO PACK SM1B0285
TTL SEQUENCE CHECKING SUBROUTINES SM1B0286
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0287
REM SM1B0288
REM FLAG SEQUENCE OR I/O ERROR, RELEASE WAITING ACTIVITY SM1B0289
REM FOR FILE SM1B0290
REM SM1B0291
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0292
REM SM1B0293
SEQERR ERROR 2 INDICATE FATAL ERROR SM1B0294
REM SM1B0295
FATERR SYN * SM1B0296
REM SM1B0297
FTSCRP ZET DELSW,5 IS DELETION SWITCH ZERO SM1B0298
TRA FTSCR1 YES, SKIP THE QSCRAP SM1B0299
QSCRAP DELETE ALL QUEUES FOR THIS FILE SM1B0300
FTSCR1 CLA BUFTRP CLEAR NECESSARY SWITCHES SM1B0301
TSX SWCLR,4 .. SM1B0302
ZET DIFFSW CHECK ON NEXT FILE SM1B0303
TRA IOPR.1 DIFFERENT FILE, DO I/O SM1B0304
CLA BUFWAT SAME FILE, DUMP WAITING I/O SM1B0305
TSX SWCLR,4 .. SM1B0306
STZ NOFILL,6 .. SM1B0307
TRA IOPR.1 CYCLE SM1B0308
TTL OUTPUT WAITING COMMAND AND FIND NEW USER SM1B0309
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0310
REM SM1B0311
REM AFTER WINDUP OF PREVIOUS I/O, PREPARE TO INITIATE SM1B0312
REM I/O THAT WAS SET UP BEFORE RELEASING THE PREVIOUS SM1B0313
REM TRAP. SM1B0314
REM SM1B0315
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0316
REM SM1B0317
IOPREP ZET SCRPSW,5 .. SM1B0318
TRA FTSCRP .. SM1B0319
ZET DIFFSW IS THERE ANYTHING TO SET UP SM1B0320
TRA IOPR.1 NOTHING TO CHANGE SM1B0321
LAC BUFWAT,7 GET BUFFER WAITING IN WINGS SM1B0322
CAL PCKTRK PICK UP STUFF DESIRED OUT OF THIS TRAP SM1B0323
NZT NOFILL,7 DON'T FILL, HAS BEEN SET UP BY SRWT2 SM1B0324
SLW* IOLSTA,7 AND PUT INTO WAITING REQUEST SM1B0325
IOPR.1 CLA BUFTRP COMPLEMENT BUFFERS SM1B0326
STO BUFWAT .. SM1B0327
SUB =1 FASTER THAN 'ERA' SM1B0328
SLW BUFTRP STORE ABSOLUTE VALUE SM1B0329
PAC ,5 SM1B0330
NZT FILLED,5 IS THERE ANYTHING TO GO IN THIS ONE SM1B0331
TRA IOPR.6 NO, SKIP TO PACK/DELETE TESTING SM1B0332
CAL IOLSTA,5 YES SM1B0333
SCA TMPIR2,2 SAVE SM1B0334
PAC ,2 GET EFFECTIVE ADDRESS OF LIST SM1B0335
CAL TMPTRK GET LAST TRACK ADDRESS USED SM1B0336
SLW EXPTRK IN CASE WE CAN SAVE UNPACKING SM1B0337
CAL 0,2 GET NEW TRACK ADDRESS SM1B0338
SLW TMPTRK AND PUT IN TEMPORARY STORAGE SM1B0339
AXC *+1,4 SIMULATE 'TSX' SM1B0340
TRA* IOADPT,5 .. SM1B0341
EFA 0,2 .. SM1B0342
PAR DAPERR ERROR RETURN FOR BAD RECORD ADDRESS SM1B0343
LAC TMPIR2,2 RESTORE SM1B0344
IOPR.6 LAC BUFWAT,5 GET BUFFER WHICH LAST TRAPPED SM1B0345
NZT FILLED,5 WAS THERE REALLY ANYTHING THERE SM1B0346
TRA IOPR.5 NO, THERE WASN'T SM1B0347
STZ FILLED,5 CLEAR BUFFER SM1B0348
ZET NOFILL,5 CHECK SWITCH SETTING SM1B0349
TRA IOPR.5 BYPASS PACKING DURING WRITING SM1B0350
NZT DELSW,5 WAS IT A SUCCESSFUL DELETE SM1B0351
TRA IOPR.3 NO, GO TO PACK POINTER INTO TEMPORARY SM1B0352
STZ DELSW,5 CLEAR SWITCH SM1B0353
TSX DELTRK,4 RETURN TRACK TO FREE TABLE SM1B0354
EFA DELFRP,3 RETURN THE TRACK JUST READ FROM SM1B0355
PAR DELER1 ERROR RETURNING TRACK SM1B0356
TRA IOPR.2 .. SM1B0357
REM SM1B0358
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0359
REM SM1B0360
REM ERROR RETURN FROM ADAPTER MODULE SM1B0361
REM SM1B0362
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0363
REM SM1B0364
DAPERR LAC BUFTRP,5 ERROR ON CALL TO ADAPTER SM1B0365
STZ FILLED,5 CLEAR BUFFER SM1B0366
NZT DELSW,5 WERE WE ATTEMPTING A DELETE SM1B0367
TRA DAPER1 NO SM1B0368
STZ DELSW,5 CLEAR THIS DELETE FLAG SM1B0369
LACX (AFSTBL,5)7 GET DELETE POINTER FOR THIS FILE SM1B0370
STZ DELTRQ,7 RESET QUEUE SM1B0371
SUB DELNXT DO WE SCRAP THIS ENTRY SM1B0372
TNZ FND.4 IT HAS BEEN PASSED SM1B0373
TSX DELINC,4 MOVE POINTER SM1B0374
TRA FND.4 LOOK FOR SOMETHING ELSE SM1B0375
REM SM1B0376
DAPER1 SYN * SM1B0377
CLA BUFTRP CLEAR SWITCHES SM1B0378
TSX SWCLR,4 .. SM1B0379
STZ NOFILL,6 .. SM1B0380
LACX (STATBL,5)1 RELOAD POINTERS SM1B0381
LACX (AFSTBL,5)2 .. SM1B0382
ERROR 2 .. SM1B0383
QSCRAP FRUSH SM1B0384
TRA FND.4 .. SM1B0385
REM SM1B0386
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0387
REM SM1B0388
REM CLEAN UP LAST DETAILS OF PREVIOUS WINDUP THAT WERE SM1B0389
REM DEFERRED FOR PURPOSES OF TIMING SM1B0390
REM SM1B0391
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0392
REM SM1B0393
IOPR.3 CAL PCKTRK GET TRACK WHOSE PACKING WAS DEFERRED SM1B0394
TZE IOPR.4 DON'T PACK ZEROES SM1B0395
PACK .. SM1B0396
IOPR.4 PLACE (THSTRK,2)LH UPDATE AFST SM1B0397
IOPR.5 STZ NOFILL,5 CLEAR OLD SETTING SM1B0398
NZT QUEGO,5 SHOULD WE DELETE THIS QUEUE SM1B0399
TRA IOPR.2 NO SM1B0400
STZ QUEGO,5 RESET SWITCH SM1B0401
TSX QDEL,4 REMOVE QUEUE ENTRY FROM ACTIVE LIST SM1B0402
EFA QUEUE1,1 POINTER TO KEY SM1B0403
EFA 0,2 ACTIVE FILE ENTRY SM1B0404
EFA 0,3 QUEUE ENTRY SM1B0405
IOPR.2 LAC BUFTRP,5 GET BUFFER NOW IN I/O SM1B0406
NZT DIFFSW ARE FILES THE SAME SM1B0407
TRA FNDUS. YES, NO UNPACKING, USE PREVIOUS TMPTRK SM1B0408
NZT DELSW,5 CHECK WHAT HAS TO BE PACKED SM1B0409
ZET NOFILL,5 NO PACKING ON WRITE OR DELETE SM1B0410
TRA FNDUS. .. SM1B0411
LACX (AFSTBL,5)2 RESTORE AFST POINTERS SM1B0412
GOIF ((SEQSW,2)T)TRUE,FNDUS. LSTTRK IS NOW GARBAGE SM1B0413
XTRACT (LSTTRK,2)LH SM1B0414
UNPACK .. SM1B0415
SLW EXPTRK POINTER EXPECTED ON THIS RECORD SM1B0416
REM SM1B0417
DELER1 SYN IOPR.2 IGNORE ERROR RETURN FROM 'DELTRK' SM1B0418
REM SM1B0419
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0420
REM SM1B0421
REM LOOK FOR NEW USER TO PROCESS, AND SET UP I/O SM1B0422
REM BEFORE RETURNING CONTROL TO PROGRAM WHICH WAS SM1B0423
REM IN EXECUTION BEFORE TRAP SM1B0424
REM SM1B0425
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0426
REM SM1B0427
FNDUS. NZT RWT1SW,5 IS IT PART OF RE-WRITE SM1B0428
TRA FND.4 NO, GO AHEAD SM1B0429
LACX (STATBL,5)1 RESTORE OLD INDEX VALUES SM1B0430
LACX (AFSTBL,5)2 THAT WOULD OTHERWISE BE SM1B0431
LACX (QUEUEP,5)3 SET UP BY GTBEAD AND NORMAL SEARCH SM1B0432
STZ DIFFSW .. SM1B0433
TRA FND.3 NOW GO AS IF REGULAR CALL SM1B0434
REM SM1B0435
FND.4 TSX FNDUSR,4 CALL I/O CONTROL FOR A USER TO RUN SM1B0436
PAR NOUSR,,SM1RT3 ERROR RETURNS FOR NO ONE ACTIVE/ALLOWED SM1B0437
PAR QUEUEC RELATIVE LOCATION OF QUEUE KEY SM1B0438
STQ IOBASE .. SM1B0439
FND.2 SLW QBASE .. SM1B0440
PAC ,3 ADDRESS CONTAINS QUEUE POINTER SM1B0441
PDC ,2 DECREMENT CONTAINS ACTIVE FILE POINTER SM1B0442
LAC IOBASE,1 .. SM1B0443
STL DIFFSW MARK DIFFSW FOR SETUPS SM1B0444
LAC BUFTRP,7 CHECK THE BUFFER IN I/O SM1B0445
NZT NULLIO FORCE UNPACKING REGARDLESS SM1B0446
NZT FILLED,7 IS I/O IN PROGRESS SM1B0447
TRA FND.3 NO, LEAVE DIFFSW SET SM1B0448
ARS 18 CHECK AFST POINTERS SM1B0449
SUB AFSTBL,7 .. SM1B0450
SLW DIFFSW PUT RESULT IN DIFFSW SM1B0451
TNZ FND.3 IF DIFFERENT FILES, DON'T CHECK SCRPSW SM1B0452
ZET SCRPSW,7 IS FILE TO BE SCRAPPED AFTER I/O SM1B0453
TRA NXBD YES, LOOK FOR DIFF. FILE, SAME USER SM1B0454
FND.3 IXTRCT (FUNCT,3)D GET FUNCTION CODE SM1B0455
LAC BUFWAT,5 SET UP BUFFER WAITING SM1B0456
STD FUNCNO,5 SAVE FUNCTION NUMBER SM1B0457
PDC ,7 AND TAKE APPROPRIATE TRANSFER SM1B0458
CLA SCOUNT,7 INCREMENT COUNTER SM1B0459
ADD =1 .. SM1B0460
STO SCOUNT,7 .. SM1B0461
TRA* *+1,7 .. SM1B0462
REM SM1B0463
PAR SCRANK TRANSFER TABLE TO SET UP FUNCTIONS SM1B0464
PAR SBEGIN .. SM1B0465
PAR SEND .. SM1B0466
PAR SSRCF .. SM1B0467
PAR SSRCB .. SM1B0468
PAR SREAD .. SM1B0469
PAR SWRITE .. SM1B0470
PAR SREWRT .. SM1B0471
PAR SRWT1 .. SM1B0472
PAR SSRCB. .. SM1B0473
REM SM1B0474
NXUSR AXC FND.4,4 SIMULATE CALL FROM FND.4 SM1B0475
TRA NXTUSR .. SM1B0476
REM SM1B0477
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0478
REM SM1B0479
REM USER I/O REQUEST ABORTED FOR SOME REASON DURING SM1B0480
REM SETUP, RELEASE QUEUES OR BLOCK FURTHER ACTIVITY SM1B0481
REM FOR FILE, AND LOOK FOR DIFFERENT FILE TO PROCESS SM1B0482
REM FOR SAME USER, IF POSSIBLE SM1B0483
REM SM1B0484
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0485
REM SM1B0486
USERR ERROR 2 ERROR IN QUEUEING (EOF, LABEL) SM1B0487
REM SM1B0488
FATER1 SYN * COLLECTION POINT LABEL SM1B0489
REM SM1B0490
SERR CLA BUFWAT CLEAR SWITCHES SM1B0491
TSX SWCLR,4 .. SM1B0492
STZ NOFILL,6 .. SM1B0493
ZET DIFFSW IS SAME FILE IN I/O SM1B0494
TRA SERR.1 NO, DUMP QUEUES, LOOK FOR NEW WORK SM1B0495
LAC BUFTRP,7 YES, FLAG TRAP SM1B0496
STL SCRPSW,7 .. SM1B0497
ZET RWT1SW,7 DID WE BREAK IN MIDDLE OF RE-WRITE SM1B0498
TRA FND.4 YES, GO BACK TO 'FNDUSR' SEQUENCE SM1B0499
NXBD TSX NXBEAD,4 GET NEW QUEUE ENTRY FOR SAME USER SM1B0500
PAR NXUSR EMPTY, TRY DIFFERENT USER SM1B0501
TRA FND.2 SUCCESS, CHECK AND PROCESS SM1B0502
REM SM1B0503
SERR.1 QSCRAP REMOVE ALL ACTIVE ENTRIES SM1B0504
TRA FND.4 NOW SEARCH AGAIN SM1B0505
REM SM1B0506
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0507
REM SM1B0508
REM ALL USERS INACTIVE OR BLOCKED, CHECK FOR ACTIVE SM1B0509
REM DELETE REQUESTS SM1B0510
REM SM1B0511
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0512
REM SM1B0513
NOUSR LAC BUFWAT,5 GET AVAILABLE BUFFER SM1B0514
LAC DELNXT,3 GET QUEUE POINTER SM1B0515
NOUSR1 NZT DELTRQ,3 IS THERE ANYTHING TO DELETE SM1B0516
TRA SM1RT3 BACK TO USER (CHECK FOR NON-TRAPPING I/O) SM1B0517
GOIF ((DLFNSW,3)T)FALSE,SDELET IS THIS DELETE STILL ACTIVE SM1B0518
TSX DELINC,4 BUMP DELETE QUEUE SM1B0519
PAC ,3 .. SM1B0520
TRA NOUSR1 TRY AGAIN SM1B0521
TTL SET UP NEXT TASK SM1B0522
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0523
REM SM1B0524
REM PREPARE INFORMATION NECESSARY TO START NEXT SM1B0525
REM RECORD INTO I/O AS SOON AS POSSIBLE AFTER NEXT TRAP. SM1B0526
REM SM1B0527
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0528
REM SM1B0529
SCRANK SYN NXBD FIND ANOTHER QUEUE ENTRY FOR THIS USER SM1B0530
REM SM1B0531
SBEGIN LDQ POINTR,2 GET FIRST TRACK ADDRESS SM1B0532
LGL 18 .. SM1B0533
PXD ,0 NEW CURREC SM1B0534
SBGN.1 SLQ THSTRK,2 UPDATE TEMPORARIES SM1B0535
PLACE (CURREC,2)A NEW VALUE SM1B0536
LDQ =0 .. SM1B0537
SLQ LSTTRK,2 .. SM1B0538
STL BRKSW,5 USED LATER BY WREAD SM1B0539
MAKE ((FINISW,3)T)TRUE .. SM1B0540
MAKE ((EOFSW,2)T)FALSE .. SM1B0541
IOCALL .DNULL SPECIAL ADAPTER SUBROUTINE (INTERNAL) SM1B0542
TRA SM1RET GO BACK FOR MORE SM1B0543
REM SM1B0544
SEND LDQ POINTR,2 GET LAST TRACK ADDRESS SM1B0545
CAL QWORDS,3 NEW VALUE FOR CURREC SM1B0546
SUB =1 POSITIONED TO LOOK AT LAST RECORD SM1B0547
TRA SBGN.1 TO COMMON CODE SM1B0548
REM SM1B0549
SSRCF GOIF ((EOFSW,2)T)TRUE,USERR SM1B0550
TSX CURINC,4 INCREMENT CURREC SM1B0551
ADD =1 .. SM1B0552
SUB TRQST,3 CHECK SM1B0553
TNZ SSRCF1 NOT THERE SM1B0554
MAKE ((FINISW,3)T)TRUE .. SM1B0555
SSRCF1 BCDTRK (THSTRK,2) RETURNS GARBAGE IF NO PACKING NECESS SM1B0556
SLW* IOLSTA,5 AND SAVE IN IO LIST SM1B0557
CAL IODCON GET IOD CONSTANT SM1B0558
SLW* IOCOM,5 AND PUT IT IN BOTTOM OF LIST SM1B0559
IOCALL .DREAD SET UP CALL TO READ DISK/DRUM SM1B0560
TRA SM1RET AND RETURN. SM1B0561
REM SM1B0562
SSRCB GOIF ((EOFSW,2)T)TRUE,USERR IS DESIRED INFORMATION AVAILABLE SM1B0563
OBTVLD SRCBK. .. SM1B0564
IPLACE (FUNCT,3)D .. SM1B0565
SSRCB. XTRACT (CURREC,2)A GET CURRENT RECORD SM1B0566
SLW STEMP .. SM1B0567
SUB TRQST,3 COMPARE WITH REQUEST SM1B0568
TNZ SSRCB1 NOT THERE SM1B0569
MAKE ((FINISW,3)T)TRUE .. SM1B0570
SSRCB1 CAL STEMP NOW UPDATE CURREC SM1B0571
SUB =1 .. SM1B0572
PLACE (CURREC,2)A .. SM1B0573
TRA SSRCF1 .. SM1B0574
REM SM1B0575
SREAD GOIF ((EOFSW,2)T)TRUE,USERR SOMEBODY MIS-QUEUED SM1B0576
TSX CURINC,4 .. SM1B0577
IOCALL .DREAD SET UP CALL TO READ DISK/DRUM SM1B0578
BCDTRK (THSTRK,2) .. SM1B0579
SLW* IOLSTA,5 .. SM1B0580
TSX PRLST.,4 PROCESS IO LIST IN QUEUE ELEMENT SM1B0581
TRA SM1RET AND RETURN. SM1B0582
REM SM1B0583
SWRITE GOIF ((EOFSW,2)T)TRUE,USERR BAD CALL SM1B0584
TSX CURINC,4 UPDATE CURREC SM1B0585
PLACE (RECID,5)W PUT SEQUENCE NUMBER INTO PREFIX SM1B0586
XTRACT (QLABEL,3)A PREPARE TO VERIFY SEQUENCE SM1B0587
SUB RECID,5 .. SM1B0588
TNZ USERR NO MATCH, MIS-QUEUE SM1B0589
CAL RECID,5 NOW UPDATE QLABEL SM1B0590
ADD =1 .. SM1B0591
PLACE (QLABEL,3)A .. SM1B0592
STL NOFILL,5 ON WRITE, NO FILLING PLEASE SM1B0593
IOCALL .DWRIT SET UP CALL TO WRITE DISK/DRUM SM1B0594
TSX PRLST.,4 .. SM1B0595
CAL RECID,5 FIND SEQUENCE NUMBER SM1B0596
SUB =1 SEE IF FIRST RECORD SM1B0597
TNZ SWR.3 NO, SET POINTERS AS REQ'D. SM1B0598
STZ BACKP,5 FIRST TRACK, NO BACK-POINTER SM1B0599
STZ RECID,5 FOR ERROR FROM GETTRK SM1B0600
XTRACT (F,2)T GET DEVICE CODE SM1B0601
SLW STEMP AND SAVE SM1B0602
TSX GETTRK,4 GET A TRACK SM1B0603
PAR STEMP ON THIS DEVICE SM1B0604
PAR GETERR ERROR SM1B0605
PACK (UNPACKED FORM IS SAVED IN STEMP) SM1B0606
SLW POINTR,2 SAVE STARTING TRACK SM1B0607
PLACE (POINTR,2)LH (= ENDING TRACK) SM1B0608
SLQ THSTRK,2 AND IN AFST ALSO. SM1B0609
SLQ LSTTRK,2 .. SM1B0610
LAC BUFWAT,5 DESTROYED BY GETTRK SM1B0611
CAL =1 REPLACE RECID SM1B0612
PLACE (RECID,5)A .. SM1B0613
IPLACE (ASGNSW,2)P MARK FILE WITH TRACK(S) ON DEVICE SM1B0614
CAL STEMP GET UNPACKED TRACK SM1B0615
TRA SWR.5 .. SM1B0616
SWR.3 CAL TMPTRK IF SAME FILE BEING WRITTEN, SM1B0617
BCDTRK (LSTTRK,2) DON'T UNPACK LSTTRK AGAIN SM1B0618
SLW BACKP,5 POINTER TO PREVIOUS TRACK SM1B0619
LDQ THSTRK,2 .. SM1B0620
SLQ LSTTRK,2 UPDATE LAST TRACK SM1B0621
SLQ POINTR,2 KEEP AFST UPDATED SM1B0622
LAC BUFTRP,7 GET BUFFER IN I/O SM1B0623
CAL FOREP,7 GET TRACK POINTED TO SM1B0624
BCDTRK (THSTRK,2) NO UNPACKING FOR SAME FILE SM1B0625
SLW STEMP .. SM1B0626
SWR.5 SLW* IOLSTA,5 AND PUT IN IO COMMAND LIST SM1B0627
GOIF ((FINISW,3)T)FALSE,SWR.1 SM1B0628
GOIF ((QWORDS,3)D)FALSE,SWR.1 SM1B0629
SWR.7 STD RECID,5 THIS IS COUNT SM1B0630
STZ FOREP,5 NO NEXT TRACK SM1B0631
MAKE ((EOFSW,2)T)TRUE SM1B0632
MAKE ((ASGNSW,2)P)FALSE FILE IS NOW COMPLETE ON UNIT SM1B0633
LDQ =0 .. SM1B0634
TRA SWR.2 .. SM1B0635
SWR.1 TSX GETTRK,4 GET NEW TRACK SM1B0636
PAR STEMP NEXT TO THIS ONE SM1B0637
PAR GETERR ERROR SM1B0638
LAC BUFWAT,5 .. SM1B0639
SLW FOREP,5 AND SAVE IN FORWARD POINTER SM1B0640
PACK PACK POINTER SM1B0641
LGR 18 AND SAVE IN THSTRK SM1B0642
CLA =.75B0 SET ASGNSW POSITIVE, NON-ZERO SM1B0643
IPLACE (ASGNSW,2)P .. SM1B0644
SWR.2 SLQ THSTRK,2 .. SM1B0645
TRA SM1RET AND RETURN. SM1B0646
REM SM1B0647
SREWRT GOIF ((EOFSW,2)T)TRUE,USERR BAD REQUEST SM1B0648
TSX CURINC,4 UPDATE CURREC FOR FILE SM1B0649
IOCALL .DREAD SET UP CALL TO READ PREFIX SM1B0650
OBTVLD RWRT1 FLIP VALUES SM1B0651
IPLACE (FUNCT,3)D .. SM1B0652
BCDTRK (THSTRK,2) .. SM1B0653
SLW* IOLSTA,5 SAVE IN IO COMMAND LIST SM1B0654
CAL IODCON SET UP DISCONNECT SM1B0655
SLW* IOCOM,5 .. SM1B0656
STL RWT1SW,5 INDICATE SPECIAL HANDLING SM1B0657
TRA SM1RET .. SM1B0658
REM SM1B0659
SRWT1 IOCALL .DWRIT CALL DWRITE FOR WRITING SM1B0660
OBTVLD REWRTF FLIP FUNCTION SM1B0661
IPLACE (FUNCT,3)D .. SM1B0662
TSX PRLST.,4 INSERT IO LIST SM1B0663
XTRACT (QLABEL,3)A .. SM1B0664
SLW RECID,5 .. SM1B0665
ADD =1 UPDATE RECORD COUNT SM1B0666
PLACE (QLABEL,3)A .. SM1B0667
CAL TMPTRK GET NAME OF TRACK NOW BEING READ SM1B0668
SLW STEMP IN CASE FILE IS TO BE EXTENDED SM1B0669
SLW* IOLSTA,5 WILL WRITE ON SAME TRACK SM1B0670
STZ LCTSW,5 .. SM1B0671
STL NOFILL,5 .. SM1B0672
LDQ THSTRK,2 .. SM1B0673
SLQ LSTTRK,2 .. SM1B0674
GOIF ((FINISW,3)T)FALSE,SM1RET .. SM1B0675
GOIF ((QEOF,3)P)FALSE,SM1RET IS THIS LAST RECORD OF FILE SM1B0676
STL LCTSW,5 INDICATE WRWT1 NOT TO MOVE FOREP SM1B0677
GOIF ((QWORDS,3)D)FALSE,SWR.1 FILE IS BEING EXTENDED SM1B0678
SLQ POINTR,2 SAVE CURRENT TRACK IN AFENTY SM1B0679
TRA SWR.7 RE-WRITE LAST TRACK WITH LABEL SM1B0680
REM SM1B0681
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0682
REM SM1B0683
REM INITIATE PREFIX READ-IN FOR RECORD OF ACTIVE SM1B0684
REM DELETE REQUEST, TO VERIFY SEQUENCE NUMBER SM1B0685
REM AND POINTERS SM1B0686
REM SM1B0687
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0688
REM SM1B0689
SDELET IOCALL .DREAD SET UP READ FOR DELETE SM1B0690
CLA S.DCNT INCREMENT COUNTER SM1B0691
ADD =1 .. SM1B0692
STO S.DCNT .. SM1B0693
CAL DELTRQ,3 .. SM1B0694
SLW* IOLSTA,5 .. SM1B0695
CAL IODCON .. SM1B0696
SLW* IOCOM,5 .. SM1B0697
LAC DELNXT,1 IN CASE A USER IS BLOCKED SM1B0698
LAC DELNXT,2 THIS IS CURRENT 'AFST' SM1B0699
STL DELSW,5 INDICATE THAT THIS IS A DELETE REQUEST SM1B0700
XTRACT (DELFIN,3)D CHECK FOR LAST QUEUE SM1B0701
SLW STEMP .. SM1B0702
XTRACT (DELREC,3)A GET CURRENT POSITION SM1B0703
SUB STEMP .. SM1B0704
TPL SM1RT1 OK, GO BACK TO USER SM1B0705
MAKE ((DLFNSW,3)T)TRUE MARK FOR NEXT TIME AROUND SM1B0706
TRA SM1RT2 MARK QUEGO AT SM1RET SM1B0707
TTL SET UP NEXT TASK SM1B0708
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0709
REM SM1B0710
REM PROCESS RECORD OF I/O FROM QUEUE, CHECK SM1B0711
REM FOR PROTECTION VIOLATION IN QUEUED REQUEST. SM1B0712
REM SM1B0713
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0714
REM SM1B0715
PRLST. SAVE4 PRLXIT .. SM1B0716
CAL IOCOM,5 GET OUTPUT LIST NAME SM1B0717
PAC ,3 RESTORE X3 LATER SM1B0718
TSX PROLST,4 CALL I/O LIST PROCESSOR SM1B0719
EFA 0,3 LOCATION OF OUTPUT LIST SM1B0720
PAR QBASE,,IOBASE PARAMETERS FOR USER'S I/O SM1B0721
PAR QLISTC .. SM1B0722
PAR RECWRD,,PROERR SM1B0723
LAC QBASE,3 RESTORE SM1B0724
LAC BUFWAT,5 .. SM1B0725
PRLXIT RETUR4 .. SM1B0726
TRA 1,4 .. SM1B0727
REM SM1B0728
PROERR LAC BUFWAT,5 .. SM1B0729
ERROR 7 .. SM1B0730
TRA SERR SM1B0731
REM SM1B0732
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0733
REM SM1B0734
REM ERROR RETURN FROM TRACK MANAGEMENT --- NO MORE SM1B0735
REM RECORDS AVAILABLE OR ILLEGAL DEVICE REQUEST SM1B0736
REM SM1B0737
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1B0738
REM SM1B0739
GETERR SUB =2 CHECK ERROR FROM GETTRK SM1B0740
TNZ GERR.1 BAD CALL SM1B0741
ERROR 3 STORAGE EXHAUSTED SM1B0742
LAC BUFWAT,5 RESTORE SM1B0743
NZT RECID,5 CHECK LABEL SM1B0744
TRA GERR.2 NEW FILE SM1B0745
STL SCRPSW,5 SCRAP QUEUES FOR THIS SM1B0746
STL LCTSW,5 FILE AFTER CLOSING FILE SM1B0747
CAL RECWRD COMPLETE RECORD SM1B0748
PLACE (LCOUNT,2)A INDICATE TO FILE CONTROL SM1B0749
PLACE (RECID,5)D AND IN LABEL SM1B0750
CAL RECID,5 GET SEQUENCE NUMBER SM1B0751
PLACE (NORECS,2)D MODIFY FILE SM1B0752
STZ FOREP,5 CLEAR LOOK-AHEAD SM1B0753
MAKE ((FINISW,3)T)TRUE THIS QUEUE GOING SM1B0754
IPLACE (EOFSW,2)T FORCE EOF CONDDITION SM1B0755
MAKE ((ASGNSW,2)P)FALSE IF FILE IS RESET, IT STILL EXISTS SM1B0756
TRA SM1RET .. SM1B0757
REM SM1B0758
GERR.2 MAKE ((LCOUNT,2)A)FALSE NEW FILE, CLEAR COUNTERS SM1B0759
IPLACE (NORECS,2)D .. SM1B0760
TRA SERR CLEAN UP SWITCHES SM1B0761
REM SM1B0762
GERR.1 ERROR 2 FATAL ERROR FROM GETTRK SM1B0763
TRA FATER1 FLAG BAD RETURN FROM TRACK MGT. SM1B0764
TTL UTILITY ROUTINES --- USED BY CLOSEF (DISABLED), SM1TRP SM1B0765
CURINC XTRACT (CURREC,2)A INCREMENT CURREC SM1B0766
ADD =1 .. SM1B0767
PLACE (CURREC,2)A UPDATE SM1B0768
TRA 1,4 NEW VALUE IN AC SM1B0769
REM SM1B0770
DELINC CAL DELNXT GET CURRENT POSITION SM1B0771
ACL DELSIZ ADD LENGTH OF ENTRY SM1B0772
LAS DELEND CHECK END OF BUFFER SM1B0773
AXT 0,0 .. SM1B0774
CAL DELPNT ANSWER THE PHONE SM1B0775
SLW DELNXT .. SM1B0776
TRA 1,4 SM1B0777
REM SM1B0778
BCDTRK NZT DIFFSW UNPACK TRACKS ONLY WHEN DIFF. FILES SM1B0779
TRA 2,4 SAME FILE, TRACK IN AC SM1B0780
SAVE4 BTRX4 .. SM1B0781
XTRACT (1,4,II HARD WAY TO GET AN INDIRECT WORD)LH SM1B0782
UNPACK .. SM1B0783
BTRX4 RETUR4 .. SM1B0784
TRA 2,4 .. SM1B0785
REM SM1B0786
QSCRAP SAVE4 QSCXIT CALLED FROM 'QSCRAP' MACRO SM1B0787
TSX QSCRP,4 CALL WRITE-AROUND SM1B0788
EFA 0,1 IOBASE SM1B0789
EFA 0,2 AFENTRY SM1B0790
PAR QUEUEC .. SM1B0791
QSCXIT RETUR4 .. SM1B0792
TRA 1,4 .. SM1B0793
REM SM1B0794
SWCLR PAC ,6 CLEAR SWITCHES OF BUFFER SPECIFIED IN AC SM1B0795
STZ FILLED,6 CLEAR FILLED SWITCH SM1B0796
STZ DELSW,6 CLEAR DELETE SWITCH SM1B0797
STZ RWT1SW,6 .. SM1B0798
STZ BRKSW,6 .. SM1B0799
STZ SCRPSW,6 .. SM1B0800
STZ LCTSW,6 .. SM1B0801
STZ QUEGO,6 .. SM1B0802
TRA 1,4 ALL EXCEPT FILLED, NOFILL SM1B0803
REM DDST0057
TTL CONSTANTS USED BY STRATEGY MODULE SM1V0001
REM FOLLOWING VARIABLES USED TO QUEUE I/O REQUESTS SM1V0002
REM SM1V0003
BEGINC PZE ,,BEGINF CONSTANTS FOR QUEUEING CALLS SM1V0004
ENDC PZE ,,ENDF .. SM1V0005
SRCFWC PZE ,,SRCFWD .. SM1V0006
SRCBKC PZE ,,SRCBKW .. SM1V0007
REM SM1V0008
RECWRD PZE NWDSPR .. SM1V0009
REM SM1V0010
QUEUEC PZE QUEUE1 OFFSET TO LOCATE USER'S QUEUES SM1V0011
QLISTC PZE QLIST OFFSET TO LOCATE I/O LIST SM1V0012
REM SM1V0013
REM SM1V0014
REM VARIABLES HOLDING POINTERS TO LOCATIONS W/IN STRAT. MOD. SM1V0015
REM SM1V0016
IOLSTA PZE LIST1 POINTER TO I/O LIST 1 SM1V0017
PZE LIST2 POINTER TO I/O LIST 2 SM1V0018
REM SM1V0019
IOCOM PZE IOC1 POINTER TO START OF IO COMMANDS SM1V0020
PZE IOC2 .. SM1V0021
REM SM1V0022
REM SM1V0023
REM I/O TRANSMISSION COMMANDS USED DURING I/O SETUP SM1V0024
REM SM1V0025
IODCON IOD IO DISCONNECT COMMAND SM1V0026
REM SM1V0027
REM SM1V0028
REM POINTERS USED IN INCREMENTING RING BUFFER FOR DELETES SM1V0029
REM SM1V0030
DELPNT PZE DELRNG POINTER TO TOP OF DELETE RING SM1V0031
DELEND PZE DELRNG+DELLNG POINTER TO END OF RING (+1) SM1V0032
DELSIZ PZE DELNUM DELETE RING INCREMENT SM1V0033
REM SM1V0034
DELEFA EFA FPROBN,2 START OF 4-WORD NAME OF FILE SM1V0035
TTL VARIABLE STORAGE --- NOT CLEARED BY 'SINIT1' SM1V0036
REM POINTERS INDICATING STATUS OF (ASYNCHRONOUS) DELETE RING SM1V0037
REM SM1V0038
DELTOP PZE DELRNG POINTER TO NEXT AVAILABLE ENTRY SM1V0039
DELNXT PZE DELRNG POINTER TO ACTIVE DELETE REQUEST SM1V0040
REM SM1V0041
D.CALL PZE NUMBER OF DELETE-QUEING CALLS SM1V0042
D.FULL PZE .. DELETE RING WAS FULL SM1V0043
REM SM1V0044
DWATSW PZE NON-ZERO IF CALL SIDE WAITING FOR DELETE SM1V0045
REM SM1V0046
REM SM1V0047
REM LOCATION OF SYSTEM'S COMMON ENABLE WORD SM1V0048
REM SM1V0049
ENABLE PZE =0 ** POINTER TO ENABLE WORD SM1V0050
SSCODE PZE 1 SUPERVISOR INTERRUPT CODE, S.M. 1 SM1V0051
REM SM1V0052
REM SM1V0053
SM1VAR SYN * START OF VARIABLE SECTION (FOR DEBUGGING) SM1V0054
REM SM1V0055
REM SM1V0056
REM VARIABLES INDICATING WHICH BUFFERS ACTIVE AT WHICH TIME SM1V0057
REM SM1V0058
BUFTRP PZE 0 INDEX OF BUFFER IN I/O OR TRAP SM1V0059
BUFWAT PZE 1 INDEX OF BUFFER WAITING OR BEING SET UP SM1V0060
REM SM1V0061
FILLED OCT 0,0 NON-ZERO WHEN BUFFER IS ACTIVE (2 LOCS) SM1V0062
REM SM1V0063
REM SM1V0064
REM LISTS USED IN CALLS TO I/O ADAPTERS SM1V0065
REM SM1V0066
LIST1 VFD O36/121212121212 SAMPLE TRACK ADDRESS SM1V0067
IOP BACKP,IOSMEM-1,1 INPUT/OUTPUT OF BACKWARD POINTER SM1V0068
IOP FOREP,IOSMEM-1,1 INPUT/OUTPUT OF FORWARD POINTER SM1V0069
IOP RECID,IOSMEM-1,1 INPUT/OUTPUT OF RECORD ID. SM1V0070
IOC1 BSS MAXLST MAXIMUM LENGTH OF IO LIST SM1V0071
REM SM1V0072
LIST2 VFD O36/121212121212 .. SM1V0073
IOP BACKP+1,IOSMEM-1,1 .. SM1V0074
IOP FOREP+1,IOSMEM-1,1 .. SM1V0075
IOP RECID+1,IOSMEM-1,1 .. SM1V0076
IOC2 BSS MAXLST .. SM1V0077
TTL VARIABLE STORAGE --- CLEARED BY 'SINIT1' SM1V0078
ZERST SYN * START OF ZERO BUFFER SM1V0079
REM SM1V0080
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1V0081
REM SM1V0082
REM VARIABLES SET BY CALLS FROM BUFFER CONTROL MODULE SM1V0083
REM SM1V0084
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1V0085
REM SM1V0086
REM PARAMETERS INVOLVED IN CALLS BY BUFFER CONTROL MODULE SM1V0087
REM SM1V0088
LABEL BSS 1 RECORD IDENTIFICATION IN I/O REQUEST SM1V0089
IOLIST BSS 1 ADDRESS OF I/O COMMANDS TO BE TRANSMITTED SM1V0090
QWAIT BSS 1 ADDRESS FOR RETURN WHEN QUEUES FILLED SM1V0091
REM SM1V0092
QFULL BSS 1 SWITCH LEFT NON-ZERO WHEN QUEUES FILLED SM1V0093
REM SM1V0094
SETTMP BSS 1 COPY OF (1,4) FOR CALL TO 'SSETUP' SM1V0095
REM SM1V0096
REM SM1V0097
REM VARIABLES DETERMINING PATH DURING QUEUEING OF I/O SM1V0098
REM SM1V0099
FUNCTN BSS 1 FUNCTION CODE OF SUBR. ENTERED SM1V0100
POSNSW BSS 1 SWITCH FOR NECESSITY OF POSITIONING SM1V0101
REM SM1V0102
POSLBL BSS 1 MASKED VERSION OF LABEL SM1V0103
POSREC BSS 1 COPY OF 'NORECS' SM1V0104
POSTMP BSS 3 TEMPORARIES FOR POSITIONING SM1V0105
REM SM1V0106
REM SM1V0107
REM VARIABLES USED DURING QUEUEING SM1V0108
REM SM1V0109
NEEDQL BSS 1 NUMBER OF WORDS (ENTRIES) NEEDED IN QUEUES SM1V0110
QNUM BSS 1 QUEUE NUMBER (=ENTRY PRIORITY) SM1V0111
REM SM1V0112
FNO BSS 1 FUNCTION NUMBER SM1V0113
REM SM1V0114
QLBL BSS 1 TEMPORARY FOR QEND, QSEARCH SM1V0115
REM SM1V0116
IOCNT BSS 1 COUNT OF WORDS IN I/O LIST SM1V0117
RECCNT BSS 1 COUNT OF NO. OF RECORDS TO BE PROCESSED SM1V0118
TTL VARIABLE STORAGE --- CLEARED BY 'SINIT1' SM1V0119
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1V0120
REM SM1V0121
REM VARIABLES MODIFIED ONLY BY TRAP-PROCESSOR SM1V0122
REM SM1V0123
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* SM1V0124
REM SM1V0125
REM ADAPTER, PREFIX READ-IN/OUT FOR I/O OPERATIONS SM1V0126
REM SM1V0127
IOADPT BSS 2 ADDRESS OF PROPER I/O ADAPTER FOR BUFFER SM1V0128
BACKP BSS 2 BACKWARD FILE POINTERS (PREFIX) SM1V0129
FOREP BSS 2 FORWARD FILE POINTERS (PREFIX) SM1V0130
RECID BSS 2 RECORD IDENTIFICATION NUMBERS (PREFIX) SM1V0131
REM SM1V0132
REM SM1V0133
REM POINTERS PERTAINING TO TABLES FOR I/O OPERATIONS SM1V0134
REM SM1V0135
STATBL BSS 2 POINTER TO USER'S I/O STATUS TABLE SM1V0136
AFSTBL BSS 2 POINTER TO USER'S ACTIVE FILE STATUS TABLE SM1V0137
QUEUEP BSS 2 POINTER TO QUEUE ELEMENT SM1V0138
REM SM1V0139
REM SM1V0140
REM OPERATION INVOLVED IN I/O (EXCEPT DELETE) SM1V0141
REM SM1V0142
FUNCNO BSS 2 FUNCTION NUMBER OF EACH BUFFER SM1V0143
REM SM1V0144
REM SM1V0145
REM SWITCHES DEFINING STATUS OF ACTIVE BUFFERS SM1V0146
REM SM1V0147
DELSW BSS 2 NON-ZERO WHEN BUFFER HOLDS DELETE REQUEST SM1V0148
RWT1SW BSS 2 NON-ZERO TO INDICATE RE-WRITE IN PROGRESS SM1V0149
NOFILL BSS 2 NON-ZERO TO INHIBIT UPDATE OF ACT FILE TEMPSM1V0150
BRKSW BSS 2 NON-ZERO WHEN BREAK IN SEQUENCE FOLLOWS SM1V0151
SCRPSW BSS 2 NON-ZERO TO SCRAP QUEUES WHEN BUFFER TRAPS SM1V0152
LCTSW BSS 2 NON-ZERO IF BUF. HOLDS LAST TRK OF RE-WRITESM1V0153
QUEGO BSS 2 NON-ZERO WHEN QUEUE IS TO BE DELETED SM1V0154
REM SM1V0155
REM SM1V0156
REM SINGLE LEVEL SWITCHES AND VARIABLES USED DURING TRAP-TIMESM1V0157
REM SM1V0158
DIFFSW BSS 1 NON-ZERO WHEN BUFFERS ON DIFF. FILES SM1V0159
NULLIO BSS 1 SET WHEN .DNULL CALLED SM1V0160
LSTCNT BSS 1 COUNT OF WORDS IN LAST TRACK (D) SM1V0161
SEQTMP BSS 1 NON-ZERO TO INHIBIT POINTER CHECKING SM1V0162
IOBASE BSS 1 BASE OF CURRENT I/O STATUS TABLE SM1V0163
QBASE BSS 1 CURRENT QUEUE ENTRY,,AF ENTRY SM1V0164
REM SM1V0165
REM SM1V0166
REM VARIABLES HOLDING UNPACKED TRACK ADDRESSES SM1V0167
REM SM1V0168
PCKTRK BSS 1 TRACK ADDRESS TO BE PACKED AFTER LATENCY SM1V0169
TMPTRK BSS 1 TRACK CURRENTLY IN I/O SM1V0170
EXPTRK BSS 1 TRACK EXPECTED IN POINTER SM1V0171
REM SM1V0172
REM SM1V0173
REM TEMPORARIES USED VARIOUSLY DURING TRAP-TIME SM1V0174
REM SM1V0175
TMPIR2 BSS 1 TEMP FOR X2 WHILE CALLING IOADPT SM1V0176
TMPIR5 BSS 1 TEMP. FOR XR-5 SM1V0177
STEMP BSS 2 GENERAL USE TEMPORARIES (TRAP TIME ONLY) SM1V0178
REM SM1V0179
REM SM1V0180
REM USED FOR CHECKING QWAIT RETURNS ON DELETE CALLS SM1V0181
REM SM1V0182
QCOUNT BSS REWRTF+1 COUNT ENTRIES TO QUEUING ROUTINES SM1V0183
SCOUNT BSS SRCBK.+1 COUNT RECORDS IN QUEUING POSIT. OPERS. SM1V0184
S.DCNT BSS 1 NUMBER OF RECORDS DELETED SM1V0185
REM SM1V0186
REM RING BUFFER HOLDING ASYNCHRONOUS DELETE REQUESTS SM1V0187
REM SM1V0188
DELRNG BSS DELLNG RING BUFFER FOR DELETE QUEUE SM1V0189
REM SM1V0190
ZEROL SYN *-ZERST COUNT OF ZEROED WORDS SM1V0191
REM SM1V0192
REM SM1V0193
REM DEBUGGING VARIABLES (AC, ILC) FOR ERRORS SM1V0194
REM SM1V0195
ERR.AC PZE CONTENTS OF AC ON ERROR SM1V0196
ILCERR PZE .REFER (/R/0) LOC. OF ERROR MACRO IN SM1TRP SM1V0197
DETAIL DDST0059
TTL LITERALS AND CROSS-REFERENCE LISTING DDST0060
$BLOCK BCD,0084
END DDST0061
* FAP
$BLOCK BCD,1344
* T111 508 ... DANIEL J. EDWARDS .... TRACK MANAGEMENT MODULE TMAN0001
LINK OFF TMAN0002
* MODIFIED FOR NEW TABLE FORMAT BY D.H. JOHNSON ON 30 JULY 1965 TMAN0003
TITLE TMAN0004
* TMAN0005
* THIS PACKAGE IS THE TMAN0006
* 1302/7620 DISK DRUM TRACK USAGE TABLE KEEPER TMAN0007
* TMAN0008
ENTRY GETTRK TMAN0009
ENTRY DELTRK TMAN0010
ENTRY IDRUMS TMAN0011
ENTRY IDISKS TMAN0012
ENTRY UPDRUM TMAN0013
ENTRY UPDISK TMAN0014
* TMAN0016
* TMAN0017
* ASSEMBLY PARAMETERS FOR NUMBER OF MODULES TMAN0018
* ASSUMES DISK MODULE NUMBERS BELOW DRUM MODULE NUMBERS TMAN0019
* TMAN0020
BDISKM EQU 0 BOTTOM DISK MODULE TMAN0021
TDISKM EQU 7 TOP DISK MODULE TMAN0022
BDRUMM EQU 8 BOTTOM DRUM MODULE TMAN0023
TDRUMM EQU 8 TOP DRUM MODULE TMAN0024
NDISKM EQU TDISKM-BDISKM+1 TMAN0025
NDRUMM EQU TDRUMM-BDRUMM+1 TMAN0026
DRMTSZ EQU 400*NDRUMM/36+1 TMAN0027
DSKTSZ EQU 10000*NDISKM/36+1 TMAN0028
DCYTSZ EQU 250*NDISKM/36+1 TMAN0029
* TMAN0030
* TMAN0031
* TMAN0032
BDISKQ MACRO ASSEMBLE PROPER INSTRUCTION FOR TMAN0033
IFF BDISKM,A,A TMAN0034
TXH *+2,4,BDISKM-1 TMAN0035
IFF BDISKM,A,A TMAN0036
TSX DSERR,4 TMAN0037
BDISKQ END TMAN0038
* TMAN0039
MDRUM MACRO MAGIC CODE APPERAS IF NDRUMM .G. 1 TMAN0040
STZ DSDRM TMAN0041
PXD 0,0 TMAN0042
TSX GBA,4 TMAN0043
PAR DSDRUT TMAN0044
AXT 400*NDRUMM,3 TMAN0045
TSX SBIT,4 TMAN0046
TRA GDLZ TMAN0047
TRA GDRFT TMAN0048
MDRUM END TMAN0049
* TMAN0050
DRUMSQ MACRO CONTROLS APPERANCE OF ABOVE CODE TMAN0051
IFF NDRUMM-1,A,A TMAN0052
MDRUM TMAN0053
DRUMSQ END TMAN0054
* TMAN0055
REM IOEQ0001
REM ..... FILE INPUT/OUTPUT SYSTEM EQUIVALENCE PACKAGE ..... IOEQ0002
REM IOEQ0003
DUSERS EQU 2 MAX. NO. OF USERS OF I/O SYSTEM IOEQ0004
FMAX EQU 3 MAX. NO. OF DEVICES AVAILABLE IN I/O SYSTEMIOEQ0005
IOSMEM EQU 1 MEMORY WHERE I/O SYSTEM RESIDES (1=A, 2=B) IOEQ0006
EJECT IOEQ0007
.REL. SET 0 INITIALIZE RELATIVE A.F.S.T. ADDRESS IOEQ0008
REM IOEQ0009
SETWRD MACRO SYMBOL TO SET UP ACTIVE FILE ENTRIES IOEQ0010
IRP SYMBOL .. IOEQ0011
PMC ON .. IOEQ0012
SYMBOL SYN .REL. .. IOEQ0013
PMC OFF .. IOEQ0014
IRP .. IOEQ0015
.REL. SET .REL.+1 .. BUMP RELATIVE ADDRESS IOEQ0016
SETWRD END .. IOEQ0017
REM IOEQ0018
SETWRD (RPROBN) IOEQ0019
SETWRD (RPROGN) IOEQ0020
SETWRD (RNAME1) IOEQ0021
SETWRD (RNAME2) IOEQ0022
SETWRD (RMODE) IOEQ0023
SETWRD (FPROBN) IOEQ0024
SETWRD (FPROGN) IOEQ0025
SETWRD (FNAME1) IOEQ0026
SETWRD (FNAME2) IOEQ0027
SETWRD (DAYTIM,LPROBN) IOEQ0028
SETWRD (DATELU,AUTHOR,LPROGN) IOEQ0029
SETWRD (MODE,ILOCK,F,RCOUNT) IOEQ0030
SETWRD (RWSTAT,S,W,R,NORECS,P,LCOUNT,LNAME1) IOEQ0031
SETWRD (POINTR,LNAME2) IOEQ0032
SETWRD (ASGNSW,REDREC,REDWRD) IOEQ0033
SETWRD (WRTREC,WRTWRD) IOEQ0034
SETWRD (CHNG,PRIME,BUFREC,BUFADR) IOEQ0035
SETWRD (WINDEX,DINDEX) IOEQ0036
SETWRD (DR,DW,DCOUNT,DADDRS) IOEQ0037
SETWRD (PRIOR,IOTASK,EFLAG,CURREC) IOEQ0038
SETWRD (SMTMP1) IOEQ0039
SETWRD (SMTMP2) IOEQ0040
REM IOEQ0041
SETWRD (ACTLNG) LENGTH OF SINGLE ACTIVE FILE ENTRY IOEQ0042
EJECT IOEQ0043
MACRO TO ASSIGN CONSECUTIVE STORAGE LOCATIONS IOEQ0044
SYMBOL ASTORE BLOCK,NWORDS .. WITHIN A BLOCK IOEQ0045
PMC ON .. IOEQ0046
SYMBOL SYN BLOCK .. IOEQ0047
PMC OFF .. IOEQ0048
TMP SET NWORDS .. IOEQ0049
BLOCK SET BLOCK+TMP .. IOEQ0050
ASTORE END .. IOEQ0051
REM IOEQ0052
AFST SET 0 DEFINE ENTRIES IN ACTIVE FILE STATUS TABLE IOEQ0053
REM IOEQ0054
PROBNO ASTORE AFST,1 USER'S PROBLEM NUMBER IN BCD IOEQ0055
PROGNO ASTORE AFST,1 USER'S PROGRAMMER NUMBER IN BCD IOEQ0056
AUTHNO ASTORE AFST,1 USER'S 'AUTHOR' NUMBER IN BINARY IOEQ0057
URCODE ASTORE AFST,1 USER'S RESTRICTION CODE IOEQ0058
LIMITS ASTORE AFST,1 USER'S CORE LIMITS PZE LOWADR,,HIADR IOEQ0059
RELOC ASTORE AFST,1 USER'S RELOCATION IOEQ0060
FPRIOR ASTORE AFST,1 USER'S FILE PRIORITY SETTING IOEQ0061
ERRILC ASTORE AFST,1 LOCATION OF CALL RESULTING IN LAST ERROR IOEQ0062
ERNAME ASTORE AFST,1 NAME OF ENTRY IN WHICH ERROR WAS DISCOVEREDIOEQ0063
ERCODE ASTORE AFST,1 ERROR CODE OF LAST ERROR IOEQ0064
IOCODE ASTORE AFST,1 I/O ERROR CODE IF ANY OF LAST ERROR IOEQ0065
ENAME1 ASTORE AFST,1 FILE NAME(1) OF FILE INVOLVED IN LAST ERRORIOEQ0066
ENAME2 ASTORE AFST,1 FILE NAME(2) OF FILE INVOLVED IN LAST ERRORIOEQ0067
ERCALL ASTORE AFST,1 LOCATION OF LAST CALL TO ERROR OR IOERR IOEQ0068
QUEUE1 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(1) IOEQ0069
QUEUE2 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(2) IOEQ0070
QUEUE3 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(3) IOEQ0071
QUEUE4 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(4) IOEQ0072
QUEUE5 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(5) IOEQ0073
QUEUE6 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(6) IOEQ0074
QUEUE7 ASTORE AFST,1 STORAGE POINTER FOR STRATEGY MODULE(7) IOEQ0075
REM IOEQ0076
AFENTY ASTORE AFST,ACTLNG STORAGE FOR A SINGLE ACTIVE FILE ENTRY IOEQ0077
REM IOEQ0078
TBLMIN ASTORE AFST,0 MINIMUM LENGTH FOR USER I/O STATUS TABLE IOEQ0079
EJECT IOEQ0080
EFA OPSYN NOP EFFECTIVE ADDRESS PARAMETER FLAG IOEQ0081
PAR OPSYN PTH NORMAL PARAMETER FLAG IOEQ0082
REM IOEQ0083
ION OPSYN PON I/O NON-TRANSMIT AND PROCEED IOEQ0084
IOP OPSYN PTW I/O TRANSMIT AND PROCEED IOEQ0085
IOD OPSYN PZE I/O DISCONNECT IOEQ0086
REM IOEQ0087
HOMOP MACRO GENERATE INSTRUCTION TO RESET ECC TO 'HOME'IOEQ0088
IFF IOSMEM-1,0,1 IOEQ0089
SEA HOME INSTRUCTION FOR MEMORY A IOEQ0090
IFF IOSMEM-2,0,1 IOEQ0091
SEB HOME INSTRUCTION FOR MEMORY B IOEQ0092
IFF IOSMEM-3,0,1 IOEQ0093
SEC HOME INSTRUCTION FOR MEMORY C IOEQ0094
HOMOP END IOEQ0095
EJECT TMAN0057
* TMAN0058
* CONSTANTS FOR THE OPEN SUBROUTINE - WBIT TMAN0059
* TMAN0060
EVEN TMAN0061
DSC1 OCT 200000000000 TMAN0062
DSZER PZE TMAN0063
DSC2 OCT 200777777 TMAN0064
* TMAN0065
* SBIT ON ENTRY XR 1 HAS -WORD POINTER, XR 2 HAS -BIT POINTER TMAN0066
* AND XR 3 HAS NUMBER OF BITS TO BE SEARCHED TMAN0067
* EXIT 1,4 MEANS NO BIT FOUND IN THE RANGE AND 2,4 MEANS TMAN0068
* BIT FOUND WITH - WORD PINTER IN XR 1 AND -BIT POINTER TMAN0069
* IN XR 2 TMAN0070
* TMAN0071
SBIT CAL 0,1 TMAN0072
ALS 0,2 TMAN0073
TXL SBT,3,1 QUICK TEST FOR ONLY 1 BIT SEARCH TMAN0074
SXD SBX4,4 TMAN0075
PAI TMAN0076
CAL SBONE ALL BITS MASK TMAN0077
TIF SBN TMAN0078
SBF PIA TMAN0079
ARS 0,2 TMAN0080
* TMAN0081
* WBIT FINDS THE NUMBER OF THE FIRST BIT THAT IS A 1 TMAN0082
* ARGUMENT IS IN THE LOGICAL AC TMAN0083
* VALUE IS IN THE DECREMENT OF THE AC TMAN0084
* METHOD IS LEFT AS AN EXERCISE FOR THE STUDENT OF TMAN0085
* COMPUTER PROGRAM OBFUSCATION TMAN0086
* TMAN0087
WBIT LDQ DSZER TMAN0088
LGR 9 TMAN0089
RQL 27 TMAN0090
ORA DSC1 TMAN0091
DFAD DSC1 TMAN0092
ARS 9 TMAN0093
SUB DSC2 TMAN0094
SCD SBA,2 COMPARE TO SEE IF WITHIN TMAN0095
STO SBB LIMITS SPECIFIED TMAN0096
ADD SBA WBIT ANSWER IS NEGATIVE TMAN0097
STD SBTS TMAN0098
XEC SBTS TMAN0099
SBLZ LXD SBX4,4 LIMIT RAN OUT BEFORE A BIT FOUND TMAN0100
TRA 1,4 YOU LOSE EXIT TMAN0101
* TMAN0102
SBOK LDC SBB,2 FOUND ONE TMAN0103
LXD SBX4,4 TMAN0104
TRA 2,4 YOU WIN EXIT TMAN0105
* TMAN0106
* SPECIAL TEST FOR P BIT ONLY TMAN0107
SBT PBT TMAN0108
TRA 1,4 TMAN0109
TRA 2,4 YOU WIN TMAN0110
* TMAN0111
SBN TXI *+1,2,36 GET NUMBER OF BITS CHECKED TMAN0112
SXD SBTT,2 TMAN0113
XEC SBTT EXIT LOSE IF COUNT RAN OUT TMAN0114
AXT 0,2 TMAN0115
TXI SBG,1,-1 RESET BIT XR (2) AND ADD 1 TO WORD XR (1) TMAN0116
* TMAN0117
SBH TNX SBLZ,3,36 EXIT LOSE IF COUNT RAN OUT TMAN0118
TXI *+1,1,-1 TMAN0119
SBG LDI 0,1 AC STIL HAS ONES MASK TMAN0120
TIF SBH TMAN0121
TRA SBF FOUND A BIT,CHECK IF WITHIN LIMIT TMAN0122
* TMAN0123
SBA PZE STORAGE FOR BIT XR TMAN0124
SBB PZE STORAGE FOR NUMBER OF BIT FOUND TMAN0125
SBX4 PZE TMAN0126
SBONE OCT 777777777777 TMAN0127
SBTS TXH SBOK,3,** TMAN0128
SBTT TNX SBLZ,3,** TMAN0129
* TMAN0130
* TMAN0131
* GBA GET BIT ADDRESS - TAKES AC AND GETS WORD ADDRESS TMAN0132
* IN XR 1 AND BIT ADDRESS IN XR 2 TMAN0133
* TMAN0134
GBA XCA TMAN0135
PXD 0,0 TMAN0136
DVP =36 TMAN0137
PAC 0,2 BIT ADDRESS TMAN0138
XCA TMAN0139
ADM 1,4 TMAN0140
PAC 0,1 TMAN0141
TRA 2,4 TMAN0142
* TMAN0143
* GTA DOES INVERSE OF GBA TMAN0144
* TMAN0145
GTA PCA 0,1 TMAN0146
ORA GTAU TMAN0147
SBM 1,4 TMAN0148
XCA TMAN0149
MPY =36 TMAN0150
STQ GTAT TMAN0151
PCA 0,2 TMAN0152
ADD GTAT TMAN0153
TRA 2,4 TMAN0154
* TMAN0155
GTAT PZE TMAN0156
GTAU PAR TMAN0157
* TMAN0158
* STBT SETS BIT CORRESPONDIND TO WORD ADDRESS IN XR 1 TMAN0159
* AND BIT ADDRESS IN XR 2 TMAN0160
* TMAN0161
STBT CAL DSMSK A P-BIT TMAN0162
ARS 0,2 TMAN0163
LDI 0,1 TMAN0164
OAI TMAN0165
STI 0,1 TMAN0166
TRA 1,4 TMAN0167
* TMAN0168
* CLBT CLEARS BIT - ADDRESS IN ABOVE FORMAT TMAN0169
* TMAN0170
CLBT CAL DSMSK TMAN0171
ARS 0,2 TMAN0172
LDI 0,1 TMAN0173
RIA TMAN0174
STI 0,1 TMAN0175
TRA 1,4 TMAN0176
* TMAN0177
*************************** TMAN0178
* * TMAN0179
* MAIN PROGRAM * TMAN0180
* * TMAN0181
*************************** TMAN0182
* TMAN0183
* CALLING SEQUENCE TMAN0184
* TMAN0185
* TSX GETTRK,4 TMAN0186
* PAR BCDWRD TMAN0187
* PAR ERRET 1 = BAD TRACK ADDRESS, 2 = NO TRACKS LEFT TMAN0188
* TMAN0189
GETTRK SXA DSX12,1 GET A TRACK, FIRST SAVE XRS TMAN0190
SXD DSX12,2 TMAN0191
SXA DSX34,3 TMAN0192
SXD DSX34,4 TMAN0193
SXA DSX56,5 TMAN0194
CLA* 1,4 TMAN0195
PDX 0,4 TEST FOR GET ON UNIT TMAN0196
TXL DSGTU,4,0 TMAN0197
GDISK XCA TMAN0198
PXD 0,0 TMAN0199
LGL 6 TMAN0200
CAS =10 IF MODULE NUMBER OCTAL 12,CHANGE TO 0 TMAN0201
TRA *+2 TMAN0202
PXD 0,0 TMAN0203
PAX 0,4 TMAN0204
LDI =1 ERROR TYPE 1 TMAN0205
BDISKQ MACRO TO GENERATE CODE TO CHECK BDISKM TMAN0206
TXH GDRM,4,TDISKM NOT A DISK MODULE, TRY DRUM TMAN0207
SUB DSBD MORMALIZE MODULE NUMBER TMAN0208
GDSK SLW DSMOD TMAN0209
STQ DSTEM TMAN0210
XCA TMAN0211
ARS 6 TEST IF RECORD EVEN OR ODD TMAN0212
LBT TMAN0213
TRA DSSTK RECORD WAS EVEN ADD 1,RETURN TO CALLER TMAN0214
MPY MPY =250 MODULE NUMBER*250 TMAN0215
STQ DSM25 TMAN0216
LDQ DSTEM TMAN0217
TSX DSDEC,4 CONVERT NEXT 4 DEC TO BIN TMAN0218
XCA TMAN0219
PXD 0,0 TMAN0220
DVP =40 GET CYLINDER NUMBER TMAN0221
STQ DSCYL TMAN0222
CLA DSCYL FIRST TRY THIS CYLINDER TMAN0223
ADD DSM25 GET CYLINDER IN CORRECT MODULE TMAN0224
TSX GBA,4 FORM ADDRESS INTO CYLINDER TABLE TMAN0225
PAR DSCYLT TMAN0226
AXT 1,3 TMAN0227
TSX SBIT,4 SEARCH THIS 1 BIT TMAN0228
TRA DSCLZ TOO BAD CYLINDER IS FULL TMAN0229
SXA DSCWB,1 TMAN0230
SXD DSCWB,2 PROBALY NOT FULL, SAVE BIT ADDRESS TMAN0231
TSX GTA,4 TMAN0232
PAR DSCYLT TMAN0233
XCA TMAN0234
MPY =40 FORM FULL TRACK NUMBER TMAN0235
XCA TMAN0236
STO DSBTN TMAN0237
TSX GBA,4 TMAN0238
PAR DSDSUT FORM ADDRESS IN DISK USAGE TABLE TMAN0239
AXT 40,3 SEARCH 40 BITS TMAN0240
TSX SBIT,4 TMAN0241
TRA DSCLF TOO BAD, CYLINDER WAS FULL AFTER ALL TMAN0242
DSFTR TSX CLBT,4 FOUND A TRACK, CLEAR THE BIT TO SET BUSY TMAN0243
TSX GTA,4 MAP BACK TO TRACK ADDRESS TMAN0244
PAR DSDSUT TMAN0245
DSDON LDQ DSBD RESTORE BOTTOM DISK NUMBER TMAN0246
DRDON RQL 30 DRUM DONE COMES HERE TMAN0247
STQ DSMN TMAN0248
STO DSRN TMAN0249
LDQ DSRN TMAN0250
AXT 4,7 TMAN0251
DSD1 PXD 0,0 TMAN0252
DVP DSDNT,7 CONVERT TO PROPER BCD WITH 12 OCTAL FOR 0 TMAN0253
TNZ *+2 TMAN0254
CAL =10 TMAN0255
STO DSDIG,7 TMAN0256
TIX DSD1,7,1 TMAN0257
STQ DSDIG TMAN0258
AXT 5,7 PICK UP DIGITS IN ORDER TMAN0259
LDQ =O120000000000 TMAN0260
CLA DSDIG+1,7 TMAN0261
LGR 6 TMAN0262
TIX *-2,7,1 TMAN0263
XCL TMAN0264
ADD DSMN RESTORE PROPER MODULE NUMBER TMAN0265
CAS =O007777777777 TMAN0266
TRA *+3 TMAN0267
TRA *+2 TMAN0268
ADD =O120000000000 TMAN0269
DSRETU LXA DSX12,1 TMAN0270
LXD DSX12,2 TMAN0271
LXA DSX34,3 RESTORE XRS TMAN0272
LXD DSX34,4 TMAN0273
LXA DSX56,5 TMAN0274
TRA 3,4 TMAN0275
* TMAN0276
DSX12 PZE TMAN0277
DSX34 PZE XR STORAGE TMAN0278
DSX56 PZE TMAN0279
DSLDI PZE BDISKM LAST DISK MODULE GTU ASSIGNED TMAN0280
DSM25 PZE MODULE NUMBER * 250 TMAN0281
DSMOD PZE MODULE NUMBER TMAN0282
DSCYL PZE CYLINDER NUMBER TMAN0283
DSRN PZE RECORD NUMBER (0 OR 1) TMAN0284
DEC 10,10,10,10 CONVERSION DIVISION TABLE TMAN0285
DSDNT BES 0 TMAN0286
BSS 4 DIGIT STORAGE TMAN0287
DSDIG PZE TMAN0288
DSCWB PZE TEMP STORAGE FOR CYLINDER BIT ADDRESSES TMAN0289
DSWB SYN DSCWB SAVE STORAGE TMAN0290
DSWC PZE TEMP STORAGE FOR NUMBER OF BITS TO BE SEARCTMAN0291
DSWD PZE TEMP STOR. CYL TABLE BIT ADR TMAN0292
DSBTN PZE TRACK NUMBER TEMP STORAGE TMAN0293
DSTEM PZE TEMPORARY STORAGE TMAN0294
DSMSK MZE TMAN0295
* TMAN0296
* TMAN0297
DSCLF LXA DSCWB,1 CYLINDER WAS FULL, TURN OFF BIT TMAN0298
LXD DSCWB,2 TMAN0299
TSX CLBT,4 TMAN0300
DSCLZ AXT 5,6 TRY NEXT ITEM IN STRATGY TMAN0301
DSNXV TIX DSTRT,6,1 TMAN0302
LDI =2 ERROR TYPE 2 TMAN0303
AXC *,7 XXX TOO BAD, NO DISK TRACKS LEFT TMAN0304
DSERR PCA 0,7 COMMON ERROR EXIT, LOC NOW IN AC TMAN0305
XCA ERROR ADDRESS IN MQ TMAN0306
PIA ERROR TYPE IN AC TMAN0307
LXA DSX12,1 TMAN0308
LXD DSX12,2 TMAN0309
LXA DSX34,3 TMAN0310
LXD DSX34,4 TMAN0311
LXA DSX56,5 TMAN0312
TRA* 2,4 ERROR RETURN TMAN0313
* TMAN0314
PAR FC10 FIRST TRY WITHIN GROUP OH 10 TMAN0315
PAR FC50 THEN TRY TO GET IN SECTOR TMAN0316
PAR FC250 ANYTHING IN MODULE WILL DO AT THIS POINT TMAN0317
PAR FCALL PANIC, TRY WHOLE DISK TMAN0318
DSTRT TRA* DSTRT,6 STRATEGY DISPATCHER TMAN0319
* TMAN0320
DSCYF CLA DSWD GET CYL TABLE BIT ADDRESS TMAN0321
TSX GBA,4 TMAN0322
PAR DSCYLT TMAN0323
TSX CLBT,4 ZERO PROPER BIT IN CYLINDER TABLE TMAN0324
LXD DSWB,2 TMAN0325
LXA DSWC,3 RESTORE NUMBER OF BITS TO BE SEARCHED TMAN0326
DSNXT CLA DSM25 MODULE NUMBER TMAN0327
ADD DSCYL CYLINDER NUMBER IN MODULE TMAN0328
TSX GBA,4 TMAN0329
PAR DSCYLT TMAN0330
SXA DSWB,1 SAVE BIT ADDRESS TMAN0331
SXD DSWB,2 TMAN0332
SXA DSWC,3 SAVE BIT COUNT TMAN0333
TSX SBIT,4 TMAN0334
TRA DSNXV NO FREE CYLINDERS, TRY NEXT STRATEGY TMAN0335
TSX GTA,4 TMAN0336
PAR DSCYLT TMAN0337
STO DSWD TMAN0338
XCA TMAN0339
MPY =40 FORM TRACK ADDRESS TMAN0340
XCA TMAN0341
TSX GBA,4 TMAN0342
PAR DSDSUT TMAN0343
AXT 40,3 SEARCH 40 BITS TMAN0344
TSX SBIT,4 TMAN0345
TRA DSCYF CYLINDER WAS FULL TMAN0346
TRA DSFTR GOODY, FOUND A TRACK TMAN0347
* TMAN0348
FC10 PXD 0,0 FIRST TRY IN LOCAL AREA TMAN0349
LDQ DSCYL TMAN0350
DVP =10 TMAN0351
MPY =10 TMAN0352
STQ DSCYL TMAN0353
AXT 10,3 SEARCH 10 BITS TMAN0354
TRA DSNXT TMAN0355
* TMAN0356
FC50 LXA DSCYL,3 FIND LOCAL SECTOR TMAN0357
TXH FC50A,3,199 TMAN0358
TXH FC50B,3,159 TMAN0359
TXH FC50C,3,99 TMAN0360
TXH FC50D,3,59 TMAN0361
STZ DSCYL TMAN0362
FC50E AXT 60,3 60 BITS IN SECTORS 1 AND 3 TMAN0363
TRA DSNXT TMAN0364
FC50A AXT 200,3 SECTOR 5 - 50 BITS TMAN0365
SXA DSCYL,3 TMAN0366
AXT 50,3 TMAN0367
TRA DSNXT TMAN0368
FC50B AXT 160,3 40 BITS IN SECTOR 2 AND 4 TMAN0369
FC50F SXA DSCYL,3 TMAN0370
AXT 40,3 TMAN0371
TRA DSNXT TMAN0372
FC50C AXT 100,3 TMAN0373
SXA DSCYL,3 TMAN0374
TRA FC50E TMAN0375
FC50D AXT 60,3 TMAN0376
TRA FC50F TMAN0377
* TMAN0378
FC250 STZ DSCYL SEARCH WHOLE MODULE TMAN0379
AXT 250,3 TMAN0380
TRA DSNXT TMAN0381
* TMAN0382
FCALL STZ DSM25 START AT ZERO MODULE TMAN0383
AXT 250*NDISKM,3 AND SEARCH THE WHOLE THING TMAN0384
TRA DSNXT TMAN0385
* TMAN0386
DSGTU PAX 0,4 GET ON UNIT, 1=DRUM, 2=DISK TMAN0387
TXH DSGDI,4,1 TMAN0388
AXT BDRUMM,4 SET BOTTOM DRUM MODULE TMAN0389
TRA GDRM GET FROM DRUM TMAN0390
* TMAN0391
DSGDI LXA DSLDI,4 PICK LAST MODULE GTU GOT TRACK ON TMAN0392
TXI *+1,4,1 INCREMENT TMAN0393
TXL *+2,4,TDISKM CHECK FOR TOO BIG TMAN0394
AXT BDISKM,4 TMAN0395
SXA DSLDI,4 TMAN0396
PXD 0,4 GET IN POSITION TO BE A MODULE NUMBER TMAN0397
ALS 12 TMAN0398
ADD =1 FORCE RECORD ODD SO NEW TRACK IS FOUND TMAN0399
TRA GDISK RANDOM TRACK NUMBER AND GET DISK TMAN0400
* TMAN0401
* TMAN0402
* DELTRK RESTORES A TRACK TO THE DISK OR DRUM TRACK USAGE TABLE TMAN0403
* CALLING SEQUENCE TMAN0404
* TSX DELTRK,4 TMAN0405
* PAR BCDWRD POINTER TO TRACK ADDRESS TMAN0406
* PAR ERRET 1 = BAD ADRESSS TMAN0407
* TMAN0408
DELTRK SXA DSX12,1 TMAN0409
SXD DSX12,2 TMAN0410
SXA DSX34,3 TMAN0411
SXD DSX34,4 TMAN0412
SXA DSX56,5 TMAN0413
CAL* 1,4 TMAN0414
LBT TMAN0415
TRA *+2 TMAN0416
TRA 3,4 TMAN0417
LDQ* 1,4 GET ARGUMENT TMAN0418
PXD 0,0 TMAN0419
LGL 6 TMAN0420
CAS =10 TMAN0421
TRA *+2 TMAN0422
PXD 0,0 TMAN0423
PAX 0,4 TMAN0424
LDI =1 ERROR TYPE 1 TMAN0425
BDISKQ TMAN0426
TXH DLDRM,4,TDISKM NOT ON DISK, DELETE DRUM TRACK TMAN0427
SUB DSBD TMAN0428
TSX DSDEC+1,4 XXX BEWARE SHABBY PROGRAMMING TRICK TMAN0429
STO DLTN TMAN0430
XCA TMAN0431
PXD 0,0 TMAN0432
DVP =40 TMAN0433
STQ DLCYL CYLINDER NUMBER FOR FUTURE REFERENCE TMAN0434
CLA DLTN TMAN0435
TSX GBA,4 TMAN0436
PAR DSDSUT GET ADDRESS IN USAGE TABLE TMAN0437
TSX STBT,4 TMAN0438
CLA DLCYL CYLINDER NUMBER TMAN0439
TSX GBA,4 TMAN0440
PAR DSCYLT TMAN0441
DLEXT TSX STBT,4 SET BIT AND EXIT TMAN0442
LXA DSX12,1 ONLY XRS 1,2 AND 4 USED TMAN0443
LXD DSX12,2 TMAN0444
LXD DSX34,4 TMAN0445
TRA 3,4 TMAN0446
* TMAN0447
DSSTK LXD DSX34,4 TMAN0448
CLA* 1,4 TMAN0449
SUB =9 CHANGE OCTAL 12 TO 1 TMAN0450
TRA DSRETU GIVE CALLER ODD RECORD IN SAME TRACK TMAN0451
* TMAN0452
* TMAN0453
DLTN PZE FULL TRACK NUMBER TMAN0454
DLCYL PZE CYLINDER NUMBER TMAN0455
* TMAN0456
GDRM TXH *+3,4,BDRUMM-1 SEE IF IN PROPER RANGE FOR TMAN0457
LDI =1 ERROR TYPE 1 TMAN0458
TSX DSERR,7 A DRUM MODULE TMAN0459
TXH *-1,4,TDRUMM TMAN0460
TXI *+1,4,-BDRUMM TMAN0461
PXA 0,4 TMAN0462
STO DSDRM TMAN0463
XCA TMAN0464
MPY =400 400 TRACKS PER DRUM TMAN0465
XCA TMAN0466
TSX GBA,4 FORM BIT ADDRESS TMAN0467
PAR DSDRUT IN DRUM TABLE TMAN0468
AXT 400,3 TMAN0469
TSX SBIT,4 SEARCH TABLE TMAN0470
TRA *+2 NOT FOUND ON THIS DRUM TMAN0471
TRA GDRFT FOUND A TRACK TMAN0472
DRUMSQ MACRO MAKES MORE CODE IF NDRUMS .G. 1 TMAN0473
GDLZ PXD 0,0 GIVE UP, GET DISK TRACK TMAN0474
LDQ DSRN PICK UP A PSEUDO RANDOM NUMBER TMAN0475
DVP =31 HASH IT UP TMAN0476
PXD 0,0 TMAN0477
DVP DSND DIVIDE BY NUMBER OF DISK MODULES TMAN0478
STO DSMOD TMAN0479
STZ DSTEM START LOOKING AT TRACK 0 OF MODULE DSMOD TMAN0480
XCA TMAN0481
TRA MPY TMAN0482
* TMAN0483
GDRFT TSX CLBT,4 FOUND ATRACK, MARK IT USED TMAN0484
TSX GTA,4 MAP ADDRESS BACK TMAN0485
PAR DSDRUT TMAN0486
XCA TMAN0487
PXD 0,0 TMAN0488
DVP =400 EXTRACT MODULE NUMBER TMAN0489
STO DSDRM TMAN0490
MPY =10000 TMAN0491
ADD DSDRM FORM FULL ADDRESS TMAN0492
LDQ DSBDR TMAN0493
TRA DRDON CONVERT TO BCD AND EXIT TMAN0494
* TMAN0495
DLDRM TXH *+3,4,BDRUMM-1 CHECK IF MODULE NUMBER TMAN0496
LDI =1 ERROR TYPE 1 TMAN0497
TSX DSERR,7 IN PROPER RANGE TMAN0498
TXH *-1,4,TDRUMM TMAN0499
TXI *+1,4,-BDRUMM TMAN0500
SXA DLDRT,4 TMAN0501
TSX DSDEC,4 CONVERT NEXT FOR DEC DIGITS TO BIN TMAN0502
CAS =400 CHECK TO SEE IF TOO BIG TMAN0503
NOP TMAN0504
TSX DSERR,7 TMAN0505
LDQ DLDRT TMAN0506
STO DLDRT TMAN0507
MPY =400 TMAN0508
XCA TMAN0509
ADD DLDRT FORM TABLE ADDRESS TMAN0510
TSX GBA,4 TMAN0511
PAR DSDRUT TMAN0512
TRA DLEXT SET BIT AND EXIT TMAN0513
* TMAN0514
DLDRT PZE TEMP STORAGE TMAN0515
DSDRM PZE TMAN0516
DSBD PZE BDISKM BOTTOM DISK MOD TMAN0517
DSND PZE NDISKM NUMBER OF DISK MODULES TMAN0518
DSMN PZE TEMP STORAGE TMAN0519
DSBDR PZE BDRUMM BOTTOM DRUM MODULE TMAN0520
* TMAN0521
DSDEC PXD 0,0 CONVERT FOUR CHARACTERS FROM DEC TO BIN TMAN0522
AXT 4,7 TMAN0523
DSD11 ALS 1 TMAN0524
STO DSDES TMAN0525
ALS 2 TMAN0526
ADD DSDES TMAN0527
STO DSDES TMAN0528
PXD 0,0 TMAN0529
LGL 6 TMAN0530
CAS =10 TMAN0531
TRA *+2 TMAN0532
PXD 0,0 TMAN0533
ADD DSDES TMAN0534
TIX DSD11,7,1 TMAN0535
TRA 1,4 TMAN0536
* TMAN0537
DSDES PZE TEMP STORAGE TMAN0538
* TMAN0539
* TMAN0540
* INITIALIZE SECTION FOR TRACK MANAGEMENT MODULE TMAN0541
* TMAN0542
IDRUMS CLA DRUMP TMAN0543
TRA IDCOM TMAN0544
IDISKS CLA DISKP TMAN0545
IDCOM STZ INITS TMAN0546
IDUP SXA IDX24,2 SAVE XRS TMAN0547
SXD IDX24,4 TMAN0548
PAC 0,2 TMAN0549
LDQ 0,2 TMAN0550
STQ Y TMAN0551
PDC 0,2 TMAN0552
LDQ 0,2 TMAN0553
STQ NAME TMAN0554
LDQ 1,2 TMAN0555
STQ NAME+1 TMAN0556
ZET INITS TMAN0557
TRA UPA GO TO UPDATE SECTION TMAN0558
* TMAN0559
TSX $SEARCH,4 GET FILE ENTRY TMAN0560
EFA MFDPTR .. TMAN0561
EFA NAME .. TMAN0562
EFA PUT .. TMAN0563
PAR ERR,,ERR .. TMAN0564
TSX $STAFIL,4 SET FILE ACTIVE TMAN0565
EFA PUT .. TMAN0566
EFA ERR .. TMAN0567
UPA TSX $GTAFIL,4 GET STUFF FROM FILE TABLE TMAN0568
PAR NAME,,ERR .. TMAN0569
PAC 0,2 TMAN0570
TSX $BOPEN,4 OPEN THE FILE TMAN0571
EFA 0,2 .. TMAN0572
PAR DSZER,,ERR .. TMAN0573
ZET INITS CHECK FOR READ OR WRITE TMAN0574
TRA UPB TMAN0575
QWA TSX $BREAD,4 READ FILE IN ONE BITE TMAN0576
EFA 0,2 .. TMAN0577
PAR HOME,,DSZER .. TMAN0578
PAR DSZER,,ERR .. TMAN0579
PAR Y,,QWA .. TMAN0580
PAR ERR,,ERR .. TMAN0581
PAR ERR .. TMAN0582
QWB TSX $BCLOSE,4 CLOSE OUT FILE TMAN0583
EFA 0,2 .. TMAN0584
PAR HOME,,DSZER .. TMAN0585
PAR ERR,,QWB .. TMAN0586
PAR ERR .. TMAN0587
ZET INITS TMAN0588
TRA UPD FINISH UPDATE PROCESS TMAN0589
EXIT LXA IDX24,2 TMAN0590
LXD IDX24,4 TMAN0591
TRA 1,4 TMAN0592
* TMAN0593
* UPDATE DISK AND DRUM FILES TMAN0594
* TMAN0595
UPDRUM CLA DRUMP TMAN0596
TRA *+2 TMAN0597
UPDISK CLA DISKP TMAN0598
STL INITS SET SWITCH FOR UPDATE TMAN0599
TRA IDUP TMAN0600
* TMAN0601
UPB TSX $BWRITE,4 REWRITE FILE TMAN0602
EFA 0,2 .. TMAN0603
PAR HOME,,DSZER .. TMAN0604
PAR =1,,ERR .. TMAN0605
PAR Y,,UPB .. TMAN0606
PAR ERR,,ERR .. TMAN0607
PAR ERR .. TMAN0608
TRA QWB CLOSE THE FILE TMAN0609
* TMAN0610
UPD TSX $GTDYTM,4 HERE ON UPDATE, GET DATE AND TIME TMAN0611
SLW DAYTIM,2 .. SET NEW DATE AND TIME LAST MODIFIED TMAN0612
XCL TMAN0613
SLQ DATELU,2 SET NEW DATE LAST USED TMAN0614
TSX $UPDFIL,4 UPDATE M.F.D. (FILE) ENTRY TMAN0615
EFA MFDPTR .. TMAN0616
EFA NAME .. TMAN0617
EFA FPROBN,2 .. TMAN0618
PAR ERR,,ERR .. TMAN0619
TRA EXIT TMAN0620
* TMAN0621
DRUMP PAR DRUMY,,DRUMN TMAN0622
DISKP PAR DISKY,,DISKN TMAN0623
DRUMY PZE DSDRUT,,DRMTSZ TMAN0624
DRUMN BCI 2,DRUMUT(FILE) TMAN0625
DISKY PZE DSDSUT,,DSKTSZ+DCYTSZ TMAN0626
DISKN BCI 2,DISKUT(FILE) TMAN0627
Y PZE TMAN0628
NAME BSS 2 TMAN0629
MFDPTR BCI 2,M.F.D.(FILE) TMAN0630
PUT BSS 9 TMAN0631
INITS PZE SWITCH 0=INIT,NON-0=UPDATE TMAN0632
HOME PZE IOSMEM TMAN0633
IDX24 PZE XR STORAGE TMAN0634
* TMAN0635
ERR HTR * BIG TROUBLE, CANT READ USAGE TABLES TMAN0636
REM TMAN0637
DSDRUT BSS DRMTSZ DRUM TRACK USAGE TABLE TMAN0638
* TMAN0639
DSDSUT BSS DSKTSZ DISK TRACK USAGE TABLE TMAN0640
DSCYLT BSS DCYTSZ DISK CYLINDER USAGE TABLE TMAN0641
$BLOCK BCD,0084
END TMAN0642
* FAP
$BLOCK BCD,1344
* M1416 786 R. DALEY .... DISK/DRUM INPUT/OUTPUT PACKAGE FOR 2302/7320DDAP0001
LINK OFF DDAP0002
ENTRY .DINIT TO INITIALIZE DISK/DRUM CHANNELS DDAP0004
ENTRY .DWAIT TO WAIT UNTIL PREVIOUS I/O COMPLETED DDAP0005
ENTRY .REFER TO REFER CONTROL ON COMPLETED I/O DDAP0006
ENTRY .SETER TO REFER CONTROL ON I/O ERROR FROM .DWAIT DDAP0007
ENTRY .DRSET TO RESTART STRAT. MOD. AFTER LOST TRAPS DDAP0008
ENTRY .FORCE TO FORCE TRAP IF NO I/O IN OPERATION DDAP0009
ENTRY .WRFMT TO WRITE WITH FORMAT OPERATION DDAP0010
ENTRY .WRHAO TO WRITE WITH HA1 OPERATION DDAP0011
ENTRY .WRTRO TO WRITE WITH FULL TRACK OPERATION DDAP0012
ENTRY .WRCYL TO WRITE WITH CYLINDER OPERATION DDAP0013
ENTRY .DWRIT TO WRITE WITH SINGLE RECORD OPERATION DDAP0014
ENTRY .DWRCK TO WRITE-CHECK PREVIOUS WRITE OPERATION DDAP0015
ENTRY .RDHAO TO READ WITH HA1 OPERATION DDAP0016
ENTRY .RDTRO TO READ WITH FULL TRACK OPERATION DDAP0017
ENTRY .RDCYL TO READ WITH CYLINDER OPERATION DDAP0018
ENTRY .DREAD TO READ WITH SINGLE RECORD OPERATION DDAP0019
ENTRY .UNPAK TO UNPACK RECORD ADDRESS DDAP0020
ENTRY .PACK TO PACK RECORD ADDRESS INTO 18 BITS DDAP0021
REM DDAP0022
EXTERN ALLSAV,ALLRST,WRTOPR,CMEXIT DDAP0023
REM DDAP0024
CHANLS EQU 3 NO. OF CHANNELS DDAP0025
BSZ EQU 50 SIZE OF DRAIN BUFFER (FOR 'ION') DDAP0026
B EQU 0 MEMORY B SWITCH ('0' FOR A, '1' FOR B) DDAP0027
IOSMOD EQU 1 NON-ZERO IF I/O ADAPTER PART OF FILE SYSTEMDDAP0028
DENB BOOL 4 DISK/DRUM ENABLE WORD, CHANNEL C ONLY DDAP0029
REM DDAP0030
REM DISK/DRUM MODULE TABLE DDAP0031
REM DDAP0032
MODTBL OCT 3001212 ACCESS 0, MODULE 0, CHANNEL C DDAP0033
OCT 3000112 ACCESS 1, MODULE 0, CHANNEL C DDAP0034
OCT 3001201 ACCESS 0, MODULE 1, CHANNEL C DDAP0035
OCT 3000101 ACCESS 1, MODULE 1, CHANNEL C DDAP0036
OCT 3001204 ACCESS 0, MODULE 4, CHANNEL C DDAP0037
OCT 3000104 ACCESS 1, MODULE 4, CHANNEL C DDAP0038
OCT 3001205 ACCESS 0, MODULE 5, CHANNEL C DDAP0039
OCT 3000105 ACCESS 1, MODULE 5, CHANNEL C DDAP0040
OCT -3001202 ACCESS 0, MODULE 2, CHANNEL C DDAP0041
HIMOD EQU *-MODTBL-1 HIGHEST LOGICAL MODULE NUMBER DDAP0042
REM DDAP0043
WHEN MACRO A,TFIND,LOC,OP,ADDR,TAG,DECR WHENEVER MACRO DDAP0044
IFF 1,TFIND,T DDAP0045
GENIF A,0,0,LOC,OP,ADDR,TAG,DECR, DDAP0046
IFF 1,TFIND,F DDAP0047
GENIF A,0,1,LOC,OP,ADDR,TAG,DECR, DDAP0048
WHEN END DDAP0049
REM DDAP0050
GENIF MACRO IF1,IF2,IF3,LOC,OP,ADDR,TAG,DECR DDAP0051
IFF IF1,IF2,IF3 DDAP0052
GENOP LOC,OP,ADDR,TAG,DECR, DDAP0053
GENIF END DDAP0054
REM DDAP0055
GENOP MACRO LOC,OP,ADDR,TAG,DECR GENERATE OPERATION DDAP0056
PMC ON DDAP0057
LOC OP ADDR,TAG,DECR DDAP0058
PMC OFF DDAP0059
GENOP END DDAP0060
REM DDAP0061
OVLBGN MACRO USED AT START OF SECTION TO BE OVERLAPPED DDAP0062
IFF IOSMOD .. OVERLAP IF IOSMOD .G. 0 DDAP0063
UNLIST .. SUSPEND LISTING OF OVERLAPPED SECTION DDAP0064
IFF IOSMOD .. DDAP0065
OVLORG SET * .. SAVE CURRENT LOCATION COUNTER DDAP0066
OVLBGN END DDAP0067
REM DDAP0068
OVLEND MACRO USED AT END OF SECTION TO BE OVERLAPPED DDAP0069
IFF IOSMOD .. DDAP0070
ORG OVLORG .. RE-ORIGIN AT SAVED LOCATION COUNTER DDAP0071
IFF IOSMOD .. DDAP0072
LIST .. RESTORE LISTING DDAP0073
OVLEND END DDAP0074
REM DDAP0075
EJECT DDAP0076
REM DDAP0077
REM .DINIT .... INITIALIZATION ENTRY FOR DISK/DRUM ADAPTER DDAP0078
REM DDAP0079
.DINIT LMTM INITIALIZE DISK/DRUM CHANNELS DDAP0080
CAL* 1,4 GET LOCATION OF COMMON ENABLE WORD DDAP0081
STA ENABLE .. AND SAVE IT DDAP0082
AXC 1,6 INITIALIZE CHANNEL POINTER DDAP0083
AXT CHANLS,7 NO. OF CHANNELS TO IR7 DDAP0084
LDI DTRAP. TRA ON TRAP TO SI DDAP0085
LDQ DINTR. TCH ON INTERRUPT TO MQ DDAP0086
DI1 CAL DENBWD SET UP DISK/DRUM CHANNELS DDAP0087
ARS CHANLS,7 .. DDAP0088
LBT .. DDAP0089
TRA DI2 .. SKIP IF NO DISK/DRUM ON THIS CHANNEL DDAP0090
CAL CTIL,6 .. DDAP0091
WHEN B,T,,SEA,,,,, .. DDAP0092
PAC 0,5 .. SET UP TRAP LOCATIONS DDAP0093
STZ 0,5 .. DDAP0094
STI 1,5 .. DDAP0095
PDC 0,5 .. SET UP CHANNEL INTERRUPT LOCATIONS DDAP0096
STZ 0,5 .. DDAP0097
STQ 1,5 .. DDAP0098
WHEN B,T,,SEB,,,,, .. DDAP0099
XEC RICOP,6 .. RESET THIS CHANNEL DDAP0100
AXC SETUP,5 .. AND DDAP0101
XEC RSCOP,6 .. SET CHANNEL IN 6-BIT MODE DDAP0102
DI2 TNX *+2,7,1 .. DDAP0103
TXI DI1,6,-1 .. DDAP0104
CAL DENBWD ADD DISK/DRUM ENABLE TO COMMON ENABLE WORD DDAP0105
ORS* ENABLE .. TO COMMON ENABLE WORD DDAP0106
ENB* ENABLE ENABLE FOR ALL TRAPS DDAP0107
TRA 2,4 AND RETURN DDAP0108
REM DDAP0109
EJECT DDAP0110
REM DDAP0111
.REFER CAL 1,4 ENTRY TO REFER ALL TRAPS TO USER DDAP0112
STA USRTRP .. AT LOCATION SPECIFIED BY 1,4 DDAP0113
STA REFRSW .. DDAP0114
TRA 2,4 DDAP0115
REM DDAP0116
.SETER CAL 1,4 ENTRY TO SET USER ENTRY ON DISK/DRUM ERROR DDAP0117
ANA =O77777 .. GET ADDRESS OF USER ERROR ROUTINE DDAP0118
TNZ *+2 .. SKIP IF ADDRESS PROVIDED DDAP0119
CAL =O400001 .. OTHERWISE SUBSTITUTE TRA 1,4 DDAP0120
STA UERROR .. SET UP CALL TO USER DDAP0121
STT UERROR .. ON ALL DISK/DRUM ERROS DDAP0122
TRA 2,4 DDAP0123
REM DDAP0124
.DRSET STZ BUSY BLAST OUT BUSY FLAG DDAP0125
CAL =2 ERROR CALL IF TRAP EXPECTED BY STRAT. MOD. DDAP0126
TRA FRC1 .. DDAP0127
REM DDAP0128
.FORCE ZET BUSY ENTRY TO FORCE TRAP IF CHANNELS INACTIVE DDAP0129
TRA 1,4 RETURN IF CHANNELS BUSY DDAP0130
PXD ,0 NO ERRORS DDAP0131
FRC1 NZT REFRSW IS USER INTERRUPT PROCEDURE DEFINED DDAP0132
TRA 1,4 NO, RETURN DDAP0133
ENB =0 YES, DISABLE ALL TRAPS DDAP0134
SLW FRCTMP SAVE ERROR FLAG DDAP0135
STL TRAPSW INDICATE TRAP IN PROCESS DDAP0136
SXA FRCIR4,4 SAVE IR4 DDAP0137
TSX ALLSAV,4 SAVE REST OF MACHINE CONDITIONS DDAP0138
TSX USRTRP,4 GO TO USER INTERRUPT PROCEDURE DDAP0139
PTH FRCTMP .. ERROR FLAG DDAP0140
TSX ALLRST,4 RESTORE MACHINE CONDITIONS DDAP0141
FRCIR4 AXT **,4 .. DDAP0142
STZ TRAPSW CLEAR TRAP-IN-PROCESS INDICATOR DDAP0143
ENB* ENABLE REENABLE ALL TRAPS DDAP0144
TRA 1,4 AND RETURN DDAP0145
REM DDAP0146
* * * * * * * * * * * * * * * * * * * * * * * * DDAP0147
REM DDAP0148
.DWAIT TSX DWAIT,7 ENTRY TO WAIT UNTIL I/O COMPLETED DDAP0149
NZT TRAPSW RESTORE STATUS OF ENABLE REGISTER DDAP0150
ENB* ENABLE IF NECESSARY DDAP0151
TRA 1,4 RETURN WHEN DONE DDAP0152
REM DDAP0153
DWAIT NZT TRAPSW IS ROUTINE CALLED DURING TRAP-TIME DDAP0154
ENB* ENABLE NO, MAKE SURE TRAPS CAN BE TAKEN DDAP0155
ZET BUSY LOOP UNTIL CHANNEL IS FREE DDAP0156
TRA *-1 .. DDAP0157
ENB =0 NOW DISABLE ALL TRAPS DURING FOLLOWING OPERDDAP0158
NZT ERROR WAS THERE AN ERROR DDAP0159
TRA 1,7 NO, RETURN DDAP0160
SXA DWAITX,4 YES, SAVE USER'S IR4 DDAP0161
CAL ERROR PICK UP ERROR FLAG DDAP0162
STZ ERROR AND RESET ERROR DDAP0163
TSX UERROR,4 CALL USER'S ERROR ROUTINE (FLAG IN AC) DDAP0164
DWAITX AXT **,4 RESTORE USER'S IR4 DDAP0165
TRA 1,7 AND RETURN TO CALLER DDAP0166
EJECT DDAP0167
REM DDAP0168
OVLBGN DDAP0169
REM DDAP0170
.WRFMT TSX DWAIT,7 ENTRY TO WRITE FORMAT TRACK DDAP0171
TSX CVTRK,7 CONVERT USER RECORD ADDRESS DDAP0172
LGR 12 LAST TWO CHARACTERS ALREADY IN MQ DDAP0173
LDI DSEK SET UP SEEK ORDER DDAP0174
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0175
STI SEEKW .. DDAP0176
STQ SEEKW+1 .. DDAP0177
LDI DWRF SET UP WRITE FORMAT ORDER DDAP0178
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0179
STI R.WORD .. DDAP0180
STQ R.WORD+1 .. DDAP0181
CAL CTLW LOAD WRITE COMMAND DDAP0182
TRA SETCOM GO SET UP FOR WRITE OPERATION DDAP0183
REM DDAP0184
.WRHAO TSX DWAIT,7 ENTRY TO WRITE WITH HOME ADDRESS OPERATION DDAP0185
TSX CVTRK,7 CONVERT USER RECORD ADDRESS DDAP0186
LGR 12 LAST TWO CHARACTERS ALREADY IN MQ DDAP0187
LDI DSEK SET UP SEEK ORDER DDAP0188
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0189
STI SEEKW .. DDAP0190
STQ SEEKW+1 .. DDAP0191
LDI DVHA SET UP WRITE HOME ADDRESS ORDER DDAP0192
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0193
STI R.WORD .. DDAP0194
STQ R.WORD+1 .. DDAP0195
CAL CTLW LOAD WRITE COMMAND DDAP0196
TRA SETCOM GO SET UP FOR WRITE OPERATION DDAP0197
REM DDAP0198
.WRTRO TSX DWAIT,7 ENTRY TO WRITE FULL TRACK WITH ADDRESSES DDAP0199
TSX CVTRK,7 CONVERT USER RECORD ADDRESS DDAP0200
LDQ =HXX0000 HA2 REPLACES LAST CHARACTERS OF RECORD ADDRDDAP0101
LGR 12 LOW-ORDER TRACK ADDRESS TO MQ DDAP0202
LDI DSEK SET UP SEEK ORDER DDAP0203
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0204
STI SEEKW .. DDAP0205
STQ SEEKW+1 .. DDAP0206
LDI DVTA SET UP TRACK WITH ADDRESSES ORDER DDAP0207
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK-HA2-HA2---DDAP0208
STI R.WORD .. DDAP0209
STQ R.WORD+1 .. DDAP0210
CAL CTLW LOAD WRITE COMMAND DDAP0211
TRA SETCOM GO SET UP FOR WRITE OPERATION DDAP0212
REM DDAP0213
.WRCYL TSX DWAIT,7 ENTRY TO WRITE WITH CYLINDER OPERATION DDAP0214
TSX CVTRK,7 CONVERT USER RECORD ADDRESS DDAP0215
LDQ =HXX0000 HA2 REPLACES LAST CHARS OF RECORD ADDRESS DDAP0216
LGR 12 LOW-ORDER TRACK ADDRESS TO MQ DDAP0217
LDI DSEK SET UP SEEK ORDER DDAP0218
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0219
STI SEEKW .. DDAP0220
STQ SEEKW+1 .. DDAP0221
LDI DVCY SET UP CYLINDER OPERATION DDAP0222
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK-HA2-HA2---DDAP0223
STI R.WORD .. DDAP0224
STQ R.WORD+1 .. DDAP0225
CAL CTLW LOAD WRITE COMMAND DDAP0226
TRA SETCOM GO SET UP FOR WRITE OPERATION DDAP0227
REM DDAP0228
OVLEND DDAP0229
REM DDAP0230
.DWRIT TSX DWAIT,7 ENTRY TO WRITE SINGLE RECORD DDAP0231
TSX CVTRK,7 CONVERT USER RECORD ADDRESS DDAP0232
LGR 12 LAST TWO CHARACTERS ALREADY IN MQ DDAP0233
LDI DSEK SET UP SEEK ORDER DDAP0234
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0235
STI SEEKW .. DDAP0236
STQ SEEKW+1 .. DDAP0237
LDI DVSR SET UP SINGLE RECORD ORDER DDAP0238
OAI ORD-ORD-ACC-MOD-REC-REC, REC-REC-REC-REC---DDAP0239
STI R.WORD .. DDAP0240
STQ R.WORD+1 .. DDAP0241
CAL CTLW LOAD WRITE COMMAND DDAP0242
TRA SETCOM GO SET UP FOR WRITE OPERATION DDAP0243
REM DDAP0244
OVLBGN DDAP0245
REM DDAP0246
.RDHAO TSX DWAIT,7 ENTRY TO READ WITH HOME ADDRESS 2 DDAP0247
TSX CVTRK,7 CONVERT USER RECORD ADDRESS DDAP0248
LGR 12 LAST TWO CHARACTERS ALREADY IN MQ DDAP0249
LDI DSEK SET UP SEEK ORDER DDAP0250
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0251
STI SEEKW .. DDAP0252
STQ SEEKW+1 .. DDAP0253
LDI DVHA SET READ HOME ADDRESS ORDER DDAP0254
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0255
STI R.WORD .. DDAP0256
STQ R.WORD+1 .. DDAP0257
CAL CTLR LOAD READ COMMAND DDAP0258
TRA SETCOM GO SET UP FOR READ OPERATION DDAP0259
REM DDAP0260
.RDTRO TSX DWAIT,7 ENTRY TO READ FULL TRACK WITH ADDRESSES DDAP0261
TSX CVTRK,7 CONVERT USER RECORD ADDRESS DDAP0262
LDQ =HXX0000 HA2 REPLACES LAST CHARACTERS OF RECORD ADDRDDAP0263
LGR 12 LOW-ORDER TRACK ADDRESS TO MQ DDAP0264
LDI DSEK SET UP SEEK ORDER DDAP0265
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0266
STI SEEKW .. DDAP0267
STQ SEEKW+1 .. DDAP0268
LDI DVTA SET UP TRACK WITH ADDRESSES ORDER DDAP0269
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK-HA2-HA2---DDAP0270
STI R.WORD .. DDAP0271
STQ R.WORD+1 .. DDAP0272
CAL CTLR LOAD READ COMMAND DDAP0273
TRA SETCOM GO SET UP FOR READ OPERATION DDAP0274
REM DDAP0275
.RDCYL TSX DWAIT,7 ENTRY TO READ WITH CYLINDER OPERATION DDAP0276
TSX CVTRK,7 CONVERT USER RECORD ADDRESS DDAP0277
LDQ =HXX0000 HA2 REPLACES LAST CHARS OF RECORD ADDRESS DDAP0278
LGR 12 LOW-ORDER TRACK ADDRESS TO MQ DDAP0279
LDI DSEK SET UP SEEK ORDER DDAP0280
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0281
STI SEEKW .. DDAP0282
STQ SEEKW+1 .. DDAP0283
LDI DVCY SET UP CYLINDER OPERATION DDAP0284
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK-HA2-HA2---DDAP0285
STI R.WORD .. DDAP0286
STQ R.WORD+1 .. DDAP0287
CAL CTLR LOAD READ COMMAND DDAP0288
TRA SETCOM GO SET UP FOR READ OPERATION DDAP0289
REM DDAP0290
OVLEND DDAP0291
REM DDAP0292
.DREAD TSX DWAIT,7 ENTRY TO READ SINGLE RECORD DDAP0293
TSX CVTRK,7 CONVERT USER RECORD ADDRESS DDAP0294
LGR 12 LAST TWO CHARACTERS ALREADY IN MQ DDAP0295
LDI DSEK SET UP SEEK ORDER DDAP0296
OAI ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0297
STI SEEKW .. DDAP0298
STQ SEEKW+1 .. DDAP0299
LDI DVSR SET UP SINGLE RECORD ORDER DDAP0300
OAI ORD-ORD-ACC-MOD-REC-REC, REC-REC-REC-REC---DDAP0301
STI R.WORD .. DDAP0302
STQ R.WORD+1 .. DDAP0303
CAL CTLR LOAD READ COMMAND DDAP0304
REM DDAP0305
SETCOM SLW CTLR.W SET READ OR WRITE COMMAND IN CHANNEL PROG. DDAP0306
CAL 1,4 EFFECTIVE ADDRESS (EFA PTR,T) DDAP0307
STT *+1 COMPUTE EFFECTIVE ADDRESS DDAP0308
PCA 0,** .. DDAP0309
ACL 1,4 .. DDAP0310
PAC 0,6 -POINTER TO IR6 DDAP0311
AXC 0,5 DDAP0312
GETCM1 LDI 1,6 GET FIRST OR NEXT COMMAND FROM USER'S LIST DDAP0313
LFT 700000 IS IT 'IOD' (PREFIX ZERO) DDAP0314
TXI GETCM3,6,-1 NO, GO SET UP CPYP FOR THIS COMMAND DDAP0315
TXH GETCM2,5,0 YES, SKIP IF AT LEAST ONE COMMAND FOUND DDAP0316
STZ COPYPR,5 OTHERWISE ZERO FIRST COPY COMMAND DDAP0317
TXI GETCM2,5,-1 AND BUMP POINTER DDAP0318
GETCM2 CAL CPYD CHANGE LAST CPYP TO CPYD COMMAND DDAP0319
ORS COPYPR-1,5 .. DDAP0320
CAL TWT SET UP TWT AT END OF COPY COMMANDS DDAP0321
SLW COPYPR,5 .. DDAP0322
TRA STCHAN GO START UP DISK/DRUM CHANNEL PROGRAM DDAP0323
REM DDAP0324
GETCM3 LNT 200000 IS COMMAND 'IOP' (PTW) DDAP0325
TRA GETCM4 NO, SKIP DDAP0326
RIS =O700000600000 YES DDAP0327
OSI CPYP .. CHANGE TO CPYP DDAP0328
STI COPYPR,5 AND SAVE IN CHANNEL PROGRAM DDAP0329
TXI GETCM1,5,-1 GO BACK TO CHECK FOR NEXT COMMAND DDAP0330
REM DDAP0331
GETCM4 PIA HERE FOR 'ION' (PON) DDAP0332
PDX 0,7 WORD COUNT TO IR7 DDAP0333
GETCM5 TNX GETCM6,7,BSZ SKIP IF .LE. BSZ DDAP0334
CAL DRN1 OTHERWISE, DRAIN OFF 'BSZ' WORDS DDAP0335
SLW COPYPR,5 .. DDAP0336
TXI GETCM5,5,-1 CONTINUE UNTIL WORD COUNT EXHAUSTED DDAP0337
REM DDAP0338
GETCM6 SXD DRN2,7 COPY LAST BLOCK INTO DRAIN BUFFER ALSO DDAP0339
CAL DRN2 .. DDAP0340
SLW COPYPR,5 .. INTO CHANNEL PROGRAM DDAP0341
TXI GETCM1,5,-1 GO BACK TO CHECK FOR NEXT COMMAND DDAP0342
REM DDAP0343
STCHAN STL BUSY SET CHANNEL BUSY SWITCH DDAP0344
RSCHN1 *** SKTRAK START UP DISK DRUM CHANNEL PROGRAM DDAP0345
NZT TRAPSW TEST IF CALL MADE DURING TRAP DDAP0346
ENB* ENABLE NO, RE-ENABLE TRAPS DDAP0347
TRA 3,4 AND RETURN DDAP0348
REM DDAP0349
* * * * * * * * * * * * * * * * * * * * * * * * DDAP0350
REM DDAP0351
.DWRCK TSX DWAIT,7 ENTRY TO WRITE-CHECK PREVIOUS OPERATION DDAP0352
CAL CTLW SET UP WRITE COMMAND DDAP0353
SLW CTLR.W .. DDAP0354
LDI R.WORD ORD-ORD-ACC-MOD-TRK-TRK, TRK-TRK----- DDAP0355
RIL 777700 MASK OUT PREVIOUS ORDER CODE DDAP0356
OSI DWRC SET WRITE-CHECK ORDER DDAP0357
STI R.WORD DDAP0358
STL RECAL INSURE NO RECALIBRATION DDAP0359
STL BUSY SET CHANNEL BUSY SWITCH DDAP0360
RSCHN2 *** CKTRAK START CHANNEL PROGRAM TO WRITE-CHECK DDAP0361
NZT TRAPSW AS IT WAS IN THE BEGINNING, DDAP0362
ENB* ENABLE IS NOW ... DDAP0363
TRA 1,4 AND RETURN DDAP0364
REM DDAP0365
EJECT DDAP0366
REM DDAP0367
CVTRK CLA* 1,4 ROUTINE TO SET UP TRACK ADDRESS DDAP0368
TPL CVTRK1 SKIP IF RECORD ADDRESS ALREADY CONVERTED DDAP0369
SXA CVTX4,4 OTHERWISE, SAVE USER'S IR4 DDAP0370
TSX UNPACK,4 AND CONVERT RECORD ADDRESS DDAP0371
CVTX4 AXT **,4 RESTORE USER'S IR4 DDAP0372
REM DDAP0373
CVTRK1 XCL TRACK ADDRESS TO MQ DDAP0374
ZAC DDAP0375
LGL 6 PICK UP LOGICAL MODULE NUMBER DDAP0376
PAC 0,5 -LOGICAL MODULE NO. TO IR5 DDAP0377
TXI *+1,5,10 SUBSTITUTE '0' FOR OCTAL '12' DDAP0378
TXL CVTRK2,5,0 .. SKIP IF -MODNO+12= 0 DDAP0379
TXI *+1,5,-10 .. DDAP0380
TXL BADREC,5,-HIMOD-1 ERROR IF MODNO .G. HIMOD DDAP0381
CVTRK2 LGR 6 REPLACE LOGICAL MODULE NUMBER DDAP0382
RQL 6 .. AT END OF RECORD ADDRESS DDAP0383
CLA MODTBL,5 PICK UP PHYSICAL MODULE AND CHANNEL NO. DDAP0384
TPL *+2 SKIP IF DISK UNIT DDAP0385
STL RECAL HERE IF DRUM, SET FOR NO RECALIBRATION DDAP0386
PDC 0,5 -CHANNEL NO. TO IR5 DDAP0387
ANA =O7777 NECESSARY ONLY TO PREVENT AC OVERFLOW DDAP0388
LGL 24 BRING HIGH ORDER 4 BITS OF RECORD ADDRESS DDAP0389
STQ RECSAV SAVE LOW-ORDER RECORD ADDRESS DDAP0390
LDQ RSCOP,5 GET RSC OPERATION FOR THIS CHANNEL DDAP0391
SLQ RSCHN1 .. DDAP0392
SLQ RSCHN2 .. DDAP0393
SCA CHANNO,5 SAVE CHANNEL NUMBER DDAP0394
LDQ RECSAV RELOAD LOW-ORDER RECORD ADDRESS DDAP0395
TRA 1,7 RETURN TO READ OR WRITE SET UP ROUTINE DDAP0396
REM DDAP0397
BADREC NZT TRAPSW AND EVER SHALL BE, DDAP0398
ENB* ENABLE WORLD WITHOUT END (AMEN) DDAP0399
TRA* 2,4 BAD RECORD ADDRESS, TAKE ERROR RETURN DDAP0400
REM DDAP0401
EJECT DDAP0402
REM DDAP0403
REM .PACK/.UNPAK ... PACK AND UNPACK TRACK AND RECORD ADDRESSDDAP0404
REM DDAP0405
.PACK AXC 0,5 ROUTINE TO PACK LOGICAL RECORD ADDRESS DDAP0406
ZET TRAPSW IS A TRAP CURRENTLY IN PROCESS DDAP0407
AXC 1,5 IF SO, SET TO USE TMP+1 FOR TEMP STORAGE DDAP0408
CAL* 1,4 CONVERT '12' TO OCTAL '00' IN RECORD ADDR. DDAP0409
ADD =H666666 .. 12 GOES TO 20 (OCTAL) DDAP0410
ANA =H++++++ .. SAVE 20S ONLY DDAP0411
ARS 1 .. 20S TO 10S DDAP0412
SLW TMP,5 .. SAVE 10S DDAP0413
ARS 2 .. 10S TO 02S DDAP0414
ORA TMP,5 .. 02S TO 12S IN AC DDAP0415
ERA* 1,4 .. MASK OUT ALL 12S IN RECORD ADDRESS DDAP0416
XCL BCD RECORD ADDRESS TO MQ DDAP0417
RQL 30 MOVE RECORD BIT TO FIRST CHARACTER POSITIONDDAP0418
AXT 6,6 DDAP0419
STZ TMP,5 DDAP0420
PAC1 ZAC CONVERT RECORD (RMTTTT) TO BINARY (18 BITS)DDAP0421
LGL 3 .. DDAP0422
ADM TMP,5 .. DDAP0423
LGL 3 .. DDAP0424
ADM TMP,5 .. DDAP0425
ACL TMP,5 .. DDAP0426
SLW TMP,5 .. DDAP0427
TIX PAC1,6,1 .. DDAP0428
TRA 2,4 AND RETURN (PACKED ADDRESS IN AC) DDAP0429
REM DDAP0430
.UNPAK CLA* 1,4 ROUTINE TO UNPACK TRACK ADDRESS DDAP0431
TXI UNPACK,4,-1 .. FROM 18-BIT BINARY FORMAT DDAP0432
REM DDAP0433
UNPACK AXC 0,5 ASSUME NOT IN TRAP MODE DDAP0434
ZET TRAPSW IS A TRAP CURRENTLY IN PROCESS DDAP0435
AXC 1,5 IF SO, SET TO USE TMP+1 FOR TEMP STORAGE DDAP0436
TMI UPAC3 SKIP IF MZE RECNO,,MODNO DDAP0437
XCL DDAP0438
AXT 36,6 OTHERWISE ASSUME 18-BIT FORMAT DDAP0439
STZ TMP,5 DDAP0440
UPAC2 ZAC CONVERT TRACK TO BCD FORMAT DDAP0441
DVP =10 .. DDAP0442
ALS 36,6 .. DDAP0443
ORS TMP,5 .. DDAP0444
TIX UPAC2,6,6 .. DDAP0445
TRA UPAC5 SKIP TO RETURN TRACK IN LAC DDAP0446
REM DDAP0447
UPAC3 PDX 0,6 HERE FOR MZE RECNO,,MODNO DDAP0448
LDQ =0 .. MODNO SAVED IN IR6 DDAP0449
LGR 1 CONVERT RECORD BIT DDAP0450
ALS 5 .. TO 6-BIT CHARACTER DDAP0451
LGR 5 .. DDAP0452
ANA =O77777 .. GET TRACK ADDRESS ALONE IN AC DDAP0453
XCL .. DDAP0454
PAI .. SAVE RECORD CHARACTER IN SI DDAP0455
PXD 0,6 MODULE NUMBER TO AC DECREMENT DDAP0456
ALS 6 PLACE IN SECOND CHARACTER POSITION DDAP0457
OAI ADD MODULE CHAR. TO RECORD CHAR. DDAP0458
STI TMP,5 SAVE RECORD AND MODULE CHARACTERS DDAP0459
AXT 24,6 DDAP0460
UPAC4 ZAC CONVERT TRACK ADDRESS TO BCD FORMAT DDAP0461
DVP =10 .. DDAP0462
ALS 24,6 .. DDAP0463
ORS TMP,5 .. DDAP0464
TIX UPAC4,6,6 .. DDAP0465
UPAC5 LDQ TMP,5 PICK UP UNPACKED TRACK ADDRESS DDAP0466
RQL 6 MOVE RECORD CHARACTER TO LAST POSITION DDAP0467
XCL CONVERT '00' TO '12' OCTAL DDAP0468
PAI .. SAVE COPY OF TRACK ADDRESS IN SI DDAP0469
ORA =H------ .. 00S TO 40S (OCTAL) DDAP0470
SUB =H111111 .. 40S TO 37S DDAP0471
ANA =H++++++ .. 37S TO 20S DDAP0472
ARS 1 .. 20S TO 10S DDAP0473
SLW TMP,5 .. SAVE 10S DDAP0474
ARS 2 .. 10S TO 02S DDAP0475
ORA TMP,5 .. 02S TO 12S DDAP0476
OAI .. REPLACE 00S WITH 12S IN SI DDAP0477
PIA RETURN CONVERTED TRACK ADDRESS IN AC DDAP0478
TRA 1,4 .. DDAP0479
EJECT DDAP0480
REM DDAP0481
REM DCTRAP ...... HERE ON DATA CHANNEL TRAP FROM DISK OR DRUMDDAP0482
REM DDAP0483
DCTRAP WHEN B,T,,SEB,,,,, DDAP0484
ENB =0 INSURE ALL TRAPS DISABLED DDAP0485
SXA DCTIR4,4 SAVE IR4 DDAP0486
STI DCTSI AND SENSE INDICATORS DDAP0487
LAC CHANNO,4 PICK UP NO. OF CHANNEL CAUSING TRAP DDAP0488
WHEN B,T,,SEA,,,,, DDAP0489
LDI* CTIL,4 PICK UP TRAP RETURN ADDRESS AND FLAGS DDAP0490
WHEN B,T,,SEB,,,,, DDAP0491
STI DCTRTN SAVE TRAP RETURN LOCATION DDAP0492
NZT DERRSW WAS THERE AN ERROR ON THIS CHANNEL DDAP0493
TRA DCTOK NO, SKIP TO SET UP COMPLETION INTERRUPT DDAP0494
STZ DERRSW YES, RESET ERROR SWITCH DDAP0495
LXA RECAL,4 GET RECALIBRATION COUNT DDAP0496
TXH CRUMP,4,3 GIVE UP IF TOO MANY TRACK ERRORS DDAP0497
TXI *+1,4,1 OTHERWISE UPDATE ERROR COUNT DDAP0498
SXA RECAL,4 .. AND TRY AGAIN TO RECALIBRATE DDAP0499
LDI SEEKW GET MODULE NO. FROM SEEK WORD DDAP0500
RIS =O777700007777 DDAP0501
OSI =O101200001113 DDAP0502
STI SEEKCE SET UP ORDER TO SEEK CE TRACK DDAP0503
RIS =O777700007777 DDAP0504
OSI =O101200001212 DDAP0505
STI SEEK0. SET UP ORDER TO SEEK TRACK ZERO DDAP0506
LAC CHANNO,4 RELOAD -CHANNEL NO. TO IR4 DDAP0507
XEC STCOP,4 AND START UP RECALIBRATION PROGRAM DDAP0508
TRA DCTXIT AND EXIT FROM TRAP DDAP0509
REM DDAP0510
DCTOK STZ RECAL HERE FOR SUCCESSFUL COMPLETION OF I/O DDAP0511
STZ BUSY RESET CHANNEL BUSY SWITCH DDAP0512
NZT REFRSW IS A COURTESY CALL REQUIRED DDAP0513
TRA DCTXIT NO, EXIT FROM TRAP DDAP0514
TSX ALLSAV,4 YES, SAVE REST OF MACHINE CONDITIONS DDAP0515
LDI =0 LOAD SUCCESSFUL COMPLETION FLAG FOR USER DDAP0516
REM DDAP0517
DCTINT STI RTNFLG SAVE ERROR FLAG IF ANY FOR USER DDAP0518
STZ ERROR RESET ERROR FLAG IF ANY DDAP0519
STL TRAPSW INDICATE SIMULATED TRAP IN PROGRESS DDAP0520
TSX USRTRP,4 REFLECT INTERRUPT TO USER PROGRAM DDAP0521
PTH RTNFLG .. WITH ERROR FLAGS IF ANY DDAP0522
STZ TRAPSW RESET TRAP SWITCH DDAP0523
TSX ALLRST,4 RESTORE SAVED MACHINE CONDITIONS DDAP0524
REM DDAP0525
DCTXIT LDI DCTSI HERE TO RETURN FROM TRAP DDAP0526
TSX CMEXIT,4 EXIT THROUGH COMMON EXIT ROUTINE DDAP0527
DCTIR4 AXT **,4 .. DDAP0528
DCTRTN .. DDAP0529
REM DDAP0530
CRUMP STZ RECAL HERE AFTER UNSUCCESSFUL ATTEMPT TO READ DDAP0531
STZ BUSY .. OR WRITE ON DISK/DRUM, RESET BUSY SWITCHDDAP0532
TSX ALLSAV,4 SAVE REST OF MACHINE CONDITIONS DDAP0533
LDI CTLR.W PICK UP READ OR WRITE COMMAND DDAP0534
CAL =HREAD SET UP TYPE OF ERROR (READ OR WRITE) DDAP0535
RNT 200000 .. CTLR HAS '2' IN TAG DDAP0536
CAL =HWRITE .. DDAP0537
SLW ERRCM1+2 .. DDAP0538
CAL CHANNO GET CHANNEL NUMBER (1-8) DDAP0539
ORA =HNNEL + CONVERT TO CHANNEL LETTER 'NNEL X' DDAP0540
SLW ERRCM1+5 .. INTO ERROR COMMENT DDAP0541
AXT 2,1 DDAP0542
CDCT1 LDQ R.WORD+2,1 CONVERT OCTAL '12' TO OCTAL '00' DDAP0543
AXT 6,2 .. DDAP0544
CDCT2 ZAC .. DDAP0545
LGL 6 .. DDAP0546
LAS =O12 .. CHECK FOR OCTAL 12 DDAP0547
TRA *+2 .. DDAP0548
ZAC .. REPLACE 12 WITH ZERO DDAP0549
LGR 6 .. DDAP0550
RQL 6 .. DDAP0551
TIX CDCT2,2,1 .. DDAP0552
STQ R.WORD+2,1 .. DDAP0553
TIX CDCT1,1,1 .. DDAP0554
CAL R.WORD PICK UP OPERATION, ACCESS AND MODULE DDAP0555
LDQ R.WORD+1 .. LOW-ORDER TRACK ADDRESS IN MQ DDAP0556
LGR 12 SAVE TRACK ADDRESS IN MQ DDAP0557
ALS 6 ADJUST OPERATION IN AC DDAP0558
ORA =H 0000 .. ADD IN BLANKS DDAP0559
SLW ERRCM1+8 SET OPERATION ACCESS AND MODULE IN MESSAGE DDAP0560
STQ ERRCM1+9 SET TRACK/RECORD ADDRESS IN ERROR COMMENT DDAP0561
LDQ SENSE CONVERT SENSE DATA DDAP0562
TSX CVTOCT,4 .. DDAP0563
SLW ERRCM2+2 .. DDAP0564
TSX CVTOCT,4 .. DDAP0565
SLW ERRCM2+3 .. DDAP0566
LDQ SENSE+1 .. DDAP0567
TSX CVTOCT,4 .. DDAP0568
SLW ERRCM2+5 .. DDAP0569
TSX CVTOCT,4 .. DDAP0570
SLW ERRCM2+6 .. DDAP0571
WPRA EJECT PAGE ON LINE DDAP0572
SPRA 1 .. DDAP0573
TSX WRTOPR,4 PRINTF DISK/DRUM ERROR COMMENT DDAP0574
ERRCM1,,11 .. DDAP0575
TSX WRTOPR,4 .. DDAP0576
ERRCM2,,7 .. DDAP0577
LAC CHANNO,4 -CHANNEL NO. TO IR4 DDAP0578
XEC RICOP,4 RESET THIS CHANNEL DDAP0579
WPRA EJECT PAGE ON LINE DDAP0580
SPRA 1 .. DDAP0581
LDI =1 FIND TYPE OF ERROR DDAP0582
CAL SENSE .. RELOAD FIRST SENSE WORD DDAP0583
ANA =O072727270000 .. REMOVE UNWANTED BITS DDAP0584
ERA =O020001000000 .. CHECK FOR PARITY ERROR DDAP0585
TZE *+2 .. SKIP IF PARITY ERROR DDAP0586
LDI =2 .. OTHERWISE SET FLAG FOR FATAL ERROR DDAP0587
STI ERROR SAVE ERROR FLAG (1=PARITY 2=FATAL) DDAP0588
ZET REFRSW IS USER INTERRUPT COURTESY CALL REQUIRED DDAP0589
TRA DCTINT YES, GO TO USER INTERRUPT PROCEDURE DDAP0590
TSX ALLRST,4 NO, RESTORE SAVED MACHINE CONDITIONS DDAP0591
TRA DCTXIT AND EXIT FROM TRAP DDAP0592
REM DDAP0593
CVTOCT SXA CVOCTX,4 CONVERT BINARY TO OCTAL IN BCD DDAP0594
ZAC DDAP0595
AXT 6,4 DDAP0596
CVOCT ALS 3 FORM BCD WORD IN AC DDAP0597
LGL 3 .. DDAP0598
TIX CVOCT,4,1 .. DDAP0599
CVOCTX AXT **,4 DDAP0600
TRA 1,4 DDAP0601
EJECT DDAP0602
REM DDAP0603
REM SKTRAK/CKTRAK/SETUP ..... 7909 CHANNEL PROGRAMS ..... DDAP0604
REM DDAP0605
WHEN B,T,,BCORE,,,,, DDAP0606
REM DDAP0607
SKTRAK LCC 20 ROUTINE TO SEEK-READ OR SEEK-WRITE A TRACK DDAP0608
RSTART CTL SEEKW SEEK FOR TRACK DDAP0609
WTR * AND WAIT FOR INTERRUPT DDAP0610
REM DDAP0611
CKTRAK LCC 0 ROUTINE TO WRITE-CHECK TRACK JUST WRITTEN DDAP0612
TCH CTLR.W .. DDAP0613
REM DDAP0614
INTRPT TCM TFOUND,,4 HERE FOR INTERRUPT, WAS IT ATTENTION 1 DDAP0615
TDC RETRY HERE FOR ERROR, TRY AGAIN DDAP0616
SNS HERE AFTER 20 RETRIES DDAP0617
CPYD SENSE,,2 GET ERROR DATA DDAP0618
DERTWT XMT DERRSW,,1 SET DISK ERROR SWITCH DDAP0619
PZE * .. DDAP0620
TWT SEEKRC AND TRAP CPU DDAP0621
REM DDAP0622
RETRY LIPT RSTART HERE TO TRY AGAIN AFTER ERROR DDAP0623
REM DDAP0624
TFOUND LIPT *+1 TRACK FOUND, ALLOW ERROR INTERRUPTS DDAP0625
CTLR.W *** ** CHANNEL READ/WRITE PROGRAM DDAP0626
COPYPR BSS 20 .. COPY COMMANDS IF ANY, FOLLOWED BY TWT DDAP0627
REM DDAP0628
SEEKRC LIPT *+1 ROUTINE TO RECALIBRATE ACCESS ON ERROR DDAP0629
XMT INTRPT,,1 SET UP NEW INTERRUPT PROCEDURE DDAP0630
TCH CETFND .. DDAP0631
CTL SEEKCE SEEK CE TRACK DDAP0632
WTR * WAIT FOR INTERRUPT DDAP0633
CETFND TCM FIND0.,,4 HERE ON INTERRUPT, DID WE FIND CE TRACK DDAP0634
DSKNG. XMT INTRPT,,1 NO, RESET INTERRUPT PROCEDURE DDAP0635
TCM TFOUND,,4 .. DDAP0636
TCH DERTWT AND GO TO TRAP CPU AGAIN DDAP0637
REM DDAP0638
FIND0. LIPT *+1 HERE WHEN CE TRACK FOUND DDAP0639
XMT INTRPT,,1 SET UP NEW INTERRUPT PROCEDURE DDAP0640
TCH TK0FND .. DDAP0641
CTL SEEK0. SEEK TRACK ZERO DDAP0642
WTR * WAIT FOR INTERRUPT DDAP0643
TK0FND TCM TRBACK,,4 HERE ON INTERRUPT, DID WE FIND TRACK ZERO DDAP0644
TCH DSKNG. NO, GO TO TRAP CPU DDAP0645
TRBACK XMT INTRPT,,1 YES, RESET INTERRUPT PROCEDURE DDAP0646
TCM TFOUND,,4 .. DDAP0647
LIPT SKTRAK GO BACK TO RETRY 20 TIMES DDAP0648
REM DDAP0649
SETUP CTL =O121100000000 SETUP ROUTINE, SET FILE IN 6-BIT MODE DDAP0650
WTR * .. DDAP0651
REM DDAP0652
DINTR. TCH INTRPT CONSTANT FOR INTERRUPT LOCATIONS DDAP0653
TWT TWT -1 COMMAND TO END CHANNEL ROUTINE DDAP0654
DRN1 CPYP DRAIN,,BSZ SIMULATE 'ION' COPY BSZ WORDS TO DRAIN DDAP0655
DRN2 CPYP DRAIN,,** .. COPY LAST N WORDS TO DRAIN DDAP0656
CTLR CTLR R.WORD CHANNEL READ COMMAND DDAP0657
CTLW CTLW R.WORD CHANNEL WRITE COMMAND DDAP0658
REM DDAP0659
WHEN B,T,,ACORE,,,,, DDAP0660
REM DDAP0661
CPYP CPYP 0,,0 CONSTANT FOR COPY AND PROCEDE DDAP0662
CPYD CPYD 0,,0 CONSTANT FOR COPY AND DISCONNECT DDAP0663
REM DDAP0664
* * * * * * * * * * * * * * * * * * * * * * * * DDAP0665
REM DDAP0666
DSEK OCT 101200000000 7631 FILE CONTROL ORDERS DDAP0667
DVSR OCT 100200000000 .. VERIFY SINGLE RECORD DDAP0668
DWRF OCT 100300000000 .. WRITE FORMAT DDAP0669
DVCY OCT 100500000000 .. VERIFY CYLINDER OPERATION DDAP0670
DWRC OCT 100600000000 .. WRITE CHECK DDAP0671
DVTA OCT 101000000000 .. VERIFY TRACK WITH ADDRESSES DDAP0672
DVHA OCT 101100000000 .. VERIFY WITH HOME ADDRESSES DDAP0673
REM DDAP0674
DENBWD PZE DENB DISK/DRUM ENABLE WORD DDAP0675
ENABLE PZE ** POINTER TO COMMON ENABLE WORD DDAP0676
REM DDAP0677
WHEN B,F,DTRAP.,TTR,DCTRAP,,,, DDAP0678
WHEN B,T,DTRAP.,TIB,DCTRAP,,,, DDAP0679
REM DDAP0680
SEEKW OCT 0,0 7631 SEEK ORDER DDAP0681
R.WORD OCT 0,0 7631 READ/WRITE ORDER DDAP0682
REM DDAP0683
SEEKCE OCT 101200001113,121200000000 7631 ORDER TO SEEK CE TRACK DDAP0684
SEEK0. OCT 101200001212,121200000000 7631 ORDER TO SEEK TRACK ZERO DDAP0685
REM DDAP0686
SENSE OCT 0,0 SENSE STORAGE IF DISK ERROR DDAP0687
TMP OCT 0,0 TEMPS. FOR .PACK .UNPAK DDAP0688
BUSY PZE 0 DISK/DRUM CHANNEL BUSY SWITCH DDAP0689
CHANNO PZE 0 NO. OF CHANNEL CURRENTLY IN OPERATION DDAP0690
DERRSW PZE 0 SWITCH SET BY CHANNEL ON ERROR DDAP0691
RECSAV PZE 0 TEMP FOR CVTRK DDAP0692
ERROR PZE 0 DISK/DRUM ERROR SWITCH (1=PARITY 2=FATAL) DDAP0693
RECAL PZE 0 COUNTS RECALIBRATIONS DDAP0694
REM DDAP0695
DCTSI PZE 0 SENSE INDICATORS SAVED HERE ON TRAP DDAP0696
DCTRTN PZE 0 RETURN LOCATION SAVED HERE ON TRAP DDAP0697
TRAPSW PZE 0 NON-ZERO ON COURTESY DURING TRAP DDAP0698
REFRSW PZE 0 NON-ZERO IF COURTESY CALL REQUIRED DDAP0699
FRCTMP PZE 0 TEMP FOR .FORCE, .DRSET (ERROR FLAG) DDAP0700
RTNFLG PZE 0 FLAG RETURNED TO USER ON COURTESY CALL DDAP0701
USRTRP TTR ** LOCATION OF USER INTERRUPT ROUTINE DDAP0702
UERROR TTR ** LOCATION OF USER ERROR ROUTINE DDAP0703
REM DDAP0704
EJECT DDAP0705
REM DDAP0706
RICOP SYN *-1 CHANNEL RIC INSTRUCTIONS DDAP0707
RICA .. DDAP0708
RICB .. DDAP0709
RICC .. DDAP0710
RICD .. DDAP0711
RICE .. DDAP0712
RICF .. DDAP0713
RICG .. DDAP0714
RICH .. DDAP0715
REM DDAP0716
ORG RICOP+CHANLS+1 OVERLAY UNNECESSARY INSTRUCTIONS DDAP0717
REM DDAP0718
RSCOP SYN *-1 CHANNEL RSC INSTRUCTION TABLE DDAP0719
RSCA 0,5 .. DDAP0720
RSCB 0,5 .. DDAP0721
RSCC 0,5 .. DDAP0722
RSCD 0,5 .. DDAP0723
RSCE 0,5 .. DDAP0724
RSCF 0,5 .. DDAP0725
RSCG 0,5 .. DDAP0726
RSCH 0,5 .. DDAP0727
REM DDAP0728
ORG RSCOP+CHANLS+1 OVERLAY UNNECESSARY INSTRUCTIONS DDAP0729
REM DDAP0730
STCOP SYN *-1 CHANNEL STC INSTRUCTION TABLE DDAP0731
STCA .. DDAP0732
STCB .. DDAP0733
STCC .. DDAP0734
STCD .. DDAP0735
STCE .. DDAP0736
STCF .. DDAP0737
STCG .. DDAP0738
STCH .. DDAP0739
REM DDAP0740
ORG STCOP+CHANLS+1 OVERLAY UNNECESSARY INSTRUCTIONS DDAP0741
REM DDAP0742
CTIL SYN *-1 CHANNEL TRAP AND INTERRUPT LOCATIONS DDAP0743
PZE 10,,34 ..A DDAP0744
PZE 12,,36 ..B DDAP0745
PZE 14,,38 ..C DDAP0746
PZE 16,,40 ..D DDAP0747
PZE 18,,42 ..E DDAP0748
PZE 20,,44 ..F DDAP0749
PZE 22,,46 ..G DDAP0750
PZE 24,,48 ..H DDAP0751
REM DDAP0752
ORG CTIL+CHANLS+1 OVERLAY UNNECESSARY INSTRUCTIONS DDAP0753
REM DDAP0754
TITLE DDAP0755
REM DDAP0756
ERRCM1 BCI 8, DISK/DRUM READ ERROR ON CHANNEL X, OPERATION= DDAP0757
BCI 3, XXXX XXXXXX. DDAP0758
ERRCM2 BCI 7, SENSE DATA 000000000000 000000000000 DDAP0759
REM DDAP0760
DRAIN BSS BSZ DRAIN BUFFER TO SIMULATE 'ION' DDAP0761
REM DDAP0762
DETAIL DDAP0763
$BLOCK BCD,0084
END DDAP0764
* FAP
$BLOCK BCD,1344
* DUMMY TAPE STRATEGY PACKAGE TPST0001
TTL D.R. WIDRIG FEBRUARY 1967 TPST0002
ENTRY TAPEAX TPST0003
ENTRY SINIT3 TPST0004
ENTRY IORST3 TPST0005
ENTRY IOBGN3 TPST0006
ENTRY IOHLT3 TPST0007
ENTRY DRAIN3 TPST0008
ENTRY MNTTAP TPST0009
ENTRY UMTTAP TPST0010
ENTRY UMTALL TPST0011
ENTRY LBLTAP TPST0012
ENTRY VERTAP TPST0013
ENTRY OPEN3 TPST0014
ENTRY READ3 TPST0015
ENTRY WRITE3 TPST0016
ENTRY REWRT3 TPST0017
ENTRY CLOSE3 TPST0018
ENTRY DFILE3 TPST0019
ENTRY SCRAP3 TPST0020
ENTRY QTEST3 TPST0021
ENTRY TAPKEY TPST0022
REM TPST0023
RET1 TRA 1,4 1,4 RETURNS TPST0024
RET2 TRA 2,4 2,4 RETURNS TPST0025
RET3 TRA 3,4 3,4 RETURNS TPST0026
STOR BSS 1 RANDOM STORAGE TPST0027
REM TPST0028
TAPEAX EQU STOR TPST0029
SINIT3 EQU RET2 TPST0030
IORST3 EQU RET1 TPST0031
IOBGN3 EQU RET1 TPST0032
IOHLT3 EQU RET2 TPST0033
DRAIN3 EQU RET1 TPST0034
MNTTAP EQU RET1 TPST0035
UMTTAP EQU RET1 TPST0036
UMTALL EQU RET3 TPST0037
LBLTAP EQU RET3 TPST0038
VERTAP EQU RET3 TPST0039
OPEN3 EQU RET3 TPST0040
READ3 EQU RET3 TPST0041
WRITE3 EQU RET3 TPST0042
REWRT3 EQU RET3 TPST0043
DFILE3 EQU RET3 TPST0044
CLOSE3 EQU RET3 TPST0045
SCRAP3 EQU RET3 TPST0046
QTEST3 EQU RET3 TPST0047
TAPKEY EQU RET2 TPST0048
REM TPST0049
$BLOCK BCD,0084
END TPST0050
* FAP
$BLOCK BCD,1344
TTL TPAPDM --- DUMMY TAPE ADAPTER
LINK OFF
ENTRY TRAPA DUMMY ENTRY FOR CHANNEL 'A' TRAPS
ENTRY TRAPB .. CHANNEL 'B'
REM
TRAPA SYN * ..
TRAPB SYN * ..
REM
TRA 3,4 NO ADAPTER, IGNORE CHANNEL A, B TRAPS
REM
$BLOCK BCD,0084
END
*DATA
~
$IBSYS
$STOP