
 .ABS
 .TITLE NRMNTR      /NON-RESIDENT MONITOR
 .LOC 7000
TWC=1720
TLBA=1715
NTB=772
PJ=1060
GTCHAR=1407
PTCHAR=1466
PG1=1722
PG2=1723
PRNT=1247
CRLF=1241
FT=316
MTRS=707352
MTGO=707344
MTLC=707304
MTCL=707302
MTSF=707301
DRDA=707004
DRRS=707212
DRSF=707001
DRCL=707201
ERCD=157
EXT=1050
TTY=1062
DATD=60
FTAD=314
MTA=1730
/
RESTRT LAC ERCD    /CHECK IF ENTRY FROM ERROR.
 AND (1000
 SZA
 JMP ERPROC
 CLA!CMA
 DAC 111     /SET NRMNTR IN CORE
 .INIT -2,1,RESTRT      /INIT DEV.
 707764
 .INIT -3,0,RESTRT
/
 .WRITE -3,2,CAPT,32
 .WAIT -3            /WRITE OUT CAPTION "$MONITOR V2A"
 LAC MBUF
 SNA
 JMP NMSG     /NO MESSEGE IF ZERO
 .WRITE -3,2,MBUF,32
 .WAIT -3  /PRINT THE MESSEGE
NMSG JMS CRLF
/
CLOOP 707764
 LAC (272
 JMS PRNT        /PRINT OUT ':'
 .READ -2,2,CBUF,32       /COMMAND LOOP
 .WAIT -2            /READ A COMMAND
/
 DZM TWC             /INITIALIZE GTCHAR ROUTINE
 777777
 DAC PG1
 777776
 DAC PG2
 LAC STBA     /SIX BIT BUF. PT.
 DAC BP2      /AD. MUST BE EVEN
 777770       /ZERO BUF.
 DAC LP
 DZM* BP2
 ISZ BP2
 ISZ LP
 JMP .-3
 LAC STBA
 DAC BP2
 LAC (CBUF+1
 DAC TLBA
 DZM ARGC      /# ARGUEMENTS
NARG 777776    /NEXT ARG.
 DAC LP        /2 PASSES (2x3=6 CHARS.)
 JMS GTCHK     /GET AND CHECK A CHAR.
 SAD (40
 JMP .-2       /IGNORE BLANKS
LPT SWHA
 CLL!RTL
 RAL
 DAC* BP2      /1st. CHAR. OF ARG. UPPER END.
 JMS GTCHK
 SAD (40
 JMP ENDARG    /ARG. FINISHED
 SWHA
 CLL!RTR
 RAR
 XOR* BP2      /2nd. (5th.) CHAR IN ARG.
 DAC* BP2
 JMS GTCHK
 SAD (40
 JMP ENDARG
 XOR* BP2
 DAC* BP2      /3rd. (6th.) CHAR. IN ARG.
 JMS GTCHK
 SAD (40
 JMP ENDARG   
 ISZ BP2         /PT. TO 2nd PART OF ARG OR NEXT ARG.
 ISZ LP          /TEST IF 2nd PART
 JMP LPT         /DO 2nd PART OF ARG.
 .WRITE -3,2,ER2,10     /ARG .GT. 6 CHARS.
 .WAIT -3
 JMS CRLF
 JMP CLOOP
/
ER2 011002
 772776
 .ASCII '***SYMBOLIC NAME EXEEDS 6 CHARACTERS'
/
GTCHK 0
 JMS GTCHAR
 SAD (54     /CHECK IF ','
 JMP ENDARG
 SAD (15       /CHECK IF CR.
 JMP ENDCOM
 SAD (56         /CHECK IF '.'
 JMP ENDCOM
 AND (77
 JMP* GTCHK
/
ENDARG ISZ ARGC     /INC. ARG. COUNT
 LAC BP2
 ADD (2
 AND (777776
 DAC BP2       /ADJUST FOR NEXT ARG ENTRY
 JMP NARG      /INTERPRET NEXT ARG
/
ENDCOM ISZ ARGC    /COMMAND INTERPRETER
 LAC STBA       /LOOK UP ARG.
 JMS TBLLK      /TABLE LOK UP ROUTINE
 CTAB           /COMMAND TABLE ADD.
 SZA
 JMP CDSPCH      /COMMAND FOUND;DISATCH
 LAC STBA
 JMS TBLLK
 FTAB            /FILE TABLE ADD.
 SZA
 JMP FLD         /IT IS A FILE; LOAD IT
 .WRITE -3,2,ER3,10      /FILE NOT FOUND NOR A COMMAND
 .WAIT -3
 LAC STBA
 JMS PRS         /PRNT 2 WD. NAME
 JMS CRLF
 JMP CLOOP
/
ER3 012002
 772776
 .ASCII '***NON-EXISTENT COMMAND OR FILE REFERENCED:'<15>
/
ERPROC .WRITE -3,2,IE1,10
 .WAIT -3
 LAC ERCD
 JMS WOCT
 LAC ERCD
 AND (777
 DAC ERCD
 JMS CRLF
 .WRITE -3,2,S1,10
 .WAIT -3
 LAC ERCD+3
 JMS WOCT
 JMS CRLF
 .WRITE -3,2,S2,10
 .WAIT -3
 LAC ERCD+4
 JMS WOCT
 JMS CRLF
 .WRITE -3,2,S4,10
 .WAIT -3
 LAC ERCD+5
 JMS WOCT
 JMS CRLF
 .WRITE -3,2,S6,10
 .WAIT -3
 LAC ERCD+2
 JMS WOCT
 JMS CRLF
 .WRITE -3,2,S7,10
 .WAIT -3
 LAC ERCD+1
 JMS WOCT
 JMS CRLF
 JMP RESTRT
IE1 004002
 774776
 .ASCII 'ERROR CODE= '<22>
S7 004002
 773776
 .ASCII 'PC ON INT.=   '<22>
S4 004002
 773776
 .ASCII 'MT. STATUS=   '<22>
S6 004002
 773776
 .ASCII 'CAL ADDRESS=  '<22>
/
TBLLK 0      /SEQ. TABLE LOOK-UP
 DAC LARGP   /ARG. PT.
 LAC* TBLLK
 DAC TADD    /TABLE ADD.
 LAC* TADD    /-#ENTRIES IN TABLE
 DAC NENT
 ISZ TADD    /PT. TO 1st. ENTRY
 ISZ TBLLK   /ADJUST FOR RETURN
 DZM EN      /ZERO ENTRY NO.
 LAC* LARGP
LKLP ISZ EN
 SAD* TADD
 JMP C2      /COMPARE 1st. PART
 ISZ TADD
 ISZ TADD
 ISZ NENT
 JMP LKLP
 CLA
 JMP* TBLLK   /ENTRY NOT FOUND
/
C2 ISZ TADD
 ISZ LARGP
 LAC* LARGP  /2nd. PART
 SAD* TADD      /COMPARE 2nd. PART
 SKP
 JMP PTBCK    /NOT CORRECT
 LAC EN
 JMP* TBLLK   /ENTRY FOUND
PTBCK LAC LARGP
 ADD (777776
 DAC LARGP
 LAC* LARGP
 JMP LKLP+4     /PT. RESET BACK; CHECK NEXT ENTRY
/
PRS 0       /PRINTS 6-BIT.
 DAC TADD
 777776
 DAC LP     /2 PASSES
PRSL LAC* TADD
 SWHA
 CLL!RTR
 RAR
 AND (77    /UPPER 6 BITS
 SNA
 JMP* PRS   /IF CHAR=0 - FINISHED
 JMS PRNT6
 LAC* TADD
 RTR
 RTR
 RTR
 AND (77
 SNA
 JMP* PRS
 JMS PRNT6
 LAC* TADD
 AND (77
 SNA
 JMP* PRS
 JMS PRNT6
 ISZ LP
 SKP
 JMP* PRS
 ISZ TADD
 JMP PRSL
PRNT6 0    /PRINT 6 BIT
 DAC CH1
 AND (40
 SZA
 JMP .+3
 LAC (300   /ALPHA
 JMP .+2
 LAC (200     /NON-ALPHA
 XOR CH1
 JMS PRNT
 JMP* PRNT6
CH1
/
CDSPCH TAD (JMP* DSPCH
 DAC DSPCH
 LAC STBA
 AAC+2
 DAC BP2    /MOVE ARG. PT.
DSPCH XX
 LOAD
 SYSMOD
 LOGIN
 REWIND
 MSG
 FILES
 CREATE
 COMLST
 PURGE
 STRMSG
 DEVLST
 ASSIGN
 ERPROC
 SYSTAT
 COPYCR
 INIT
 CLOSE
 SKIPR
 BKSPC
/
REWIND MTCL
 LAC (004000
 MTLC
 MTRS
 AND (020000
 SNA
 JMP .-3
 JMP CLOOP
/
STRMSG LAC 112    /STORE A MESSAGE TO BE DISPLAYED
 CMA
 SZA
 JMP NPERM    /SYS. PERSONEL ONLY
 LAC (275
 JMS PRNT
 LAC (276
 JMS PRNT
 .READ -2,2,MBUF,32
 .WAIT -2
 JMS CRLF
 JMP CLOOP
MBUF 0
 .BLOCK 25
/
LOGIN JMS TBLLK
 PSWD       /PASS WD. LIST
 SNA
 JMP ILPS   /ILLEGAL PASS WD.
 DAC 113
 TAD (JMP* PDSPCH
 DAC PDSPCH
 CLA
PDSPCH XX    /PASS WD. DISPATCH
 USER1
 USER2
 USER3
 SYS1
 SYS2
 SYSVK
 SYSTEM
/
SYSTEM NOP
SYSVK CMA
 JMP PROT
SYS1 NOP
SYS2 IAC
 JMP PROT
USER1 NOP
USER2 NOP
USER3 JMP PROT
/
PROT DAC 112     /ESTABLISH ACCESS LEVEL
 LAC (24
 JMS PRNT    /CLEAR SCREEN
 JMP CLOOP
/
ILPS .WRITE -3,2,ER4,10
 .WAIT -3
 JMS CRLF
 JMP CLOOP    /ILLEGAL PASS WD.
ER4 005002
 775776
 .ASCII '***ILLEGAL PASSWORD'
/
SYSMOD LAC 112
 SZA
 JMP 3760    /ODT
NPERM .WRITE -3,2,ER5,10   /NOT PERMITTED
 .WAIT -3
 JMS CRLF
 JMP CLOOP
ER5 011002
 772776
 .ASCII '***INSUFICIENT AUTHORIZATION'
/
INIT JMS CONVDAT
 DAC DATS
 JMS DATD   /CHECK DAT
 777000
 AND INITM XOR DATS   /ADD THE DAT
 DAC INITM
INITM .INIT -7,0,RESTRT
 JMP CLOOP
/
CLOSE JMS CONVDAT
 DAC DATS
 JMS DATD  /CHECK
 777000
 AND CLS
 XOR DATS
 DAC CLS
CLS .CLOSE 7
 JMP CLOOP
/
COPYCR JMS CONVDAT   /FETCH DAT
 DAC DATS  /SAVE DAT #
 777000
 AND RD
 XOR DATS
 DAC RD
 777000
 AND WT1
 XOR DATS
 DAC WT1
 JMS DATD   /CHECK DAT
 ISZ BP2
 ISZ BP2
 JMS CONVDAT   /READ NEXT ARG.
 DAC DATS
 777000
 AND WRT
 XOR DATS
 DAC WRT
 JMS DATD        /CHECK DAT
 777000
 AND WT2
 XOR DATS
 DAC WT2
 ISZ BP2
 ISZ BP2   /PT. TO NEXT ARG.
 JMS RNUM   /RD. # OF RECORDS.
 SNA
 IAC
 TCA
 DAC TEMP
RD .READ 7,2,CBUF,32   /USE CBUF FOR INTERMEDIATE BUFFERING
WT1 .WAIT 7
WRT .WRITE 7,2,CBUF,32
WT2 .WAIT 7
 ISZ TEMP
 JMP RD
 JMP CLOOP
DATS 0
/
SKIPR JMS CONVDAT
 DAC DATS
 JMS DATD   /CHECK DAT
 ISZ BP2
 ISZ BP2    /PT. TO NEXT ARG.
 777000
 AND RDS
 XOR DATS
 DAC RDS
 777000
 AND WTS
 XOR DATS
 DAC WTS
 JMS RNUM
 SNA
 IAC 
 TCA
 DAC TEMP
RDS .READ 7,2,CBUF,32
WTS .WAIT 7
 ISZ TEMP
 JMP RDS
 JMP CLOOP
/
BKSPC JMS RNUM    /NO NAME OR DAT NEEDED
 SNA
 IAC
 TCA
 DAC TEMP
BKLP LAC (CBUF-1
 DAC 17763
 -50
 DAC 17762
 LAC (100000     /READ BACK
 MTLC
 MTGO
 MTSF
 JMP .-1
 ISZ TEMP
 JMP BKLP
 JMP CLOOP
/
CONVDAT 0    /CONVERT INPUT ARG. INTO DAT #
 770000
 AND* BP2
 SAD (520000   /CHECK IF ARG. IS DEV. NAME,OR DAT.
 JMP CDEV      /IT IS A DEVICE
 SAD (530000   
 JMP CDAT      /ITS A DAT '+'
 SAD (550000   /          '-'
 JMP CDAT
 AND (400000
 SZA           /CHECK IF INTEGER
 JMP CDAT      /IT IS A DAT
 LAC BP2       /IT IS A FILE NAME
 JMS TBLLK
 FTAB
 SNA
 JMP NSF       /NO SUCH FILE
 RAL
 ADD (FADTAB-1
 DAC TEMP
 LAC* TEMP
 AND (7
 SNA
 JMP FNAS       /FILE NOT ASSIGNED
 CMA
 AND (7
 ADD JDR0
 JMS DATLK      /LOOK FOR THIS ENTRY IN DAT TABLE
 JMS CONV       /CONVERT TO ACTUAL DAT
 AND (777
 JMP* CONVDAT
FNAS .WRITE -3,2,MM2,10
 JMP NSF+4
MM2 005002
 773776
 .ASCII ?***FILE NOT ASSGN'D?<15>
CDAT JMS RNUM
 AND (777
 JMP* CONVDAT
CDEV LAC BP2
 JMS TBLLK
 DEVTAB    /LOOK FOR THIS DEV.
 SNA
 JMP NSD   /NO SUCH DEV.
 RAL
 ADD (DEVINF-2
 DAC TEMP
 LAC* TEMP
 JMS DATLK
 JMS CONV
 AND (777
 JMP* CONVDAT
DATLK 0    /SEARCH DAT TABLE
 DAC TEMP
 LAC DAT
 DAC LP
 -25
 DAC TST
 LAC TEMP
DDLP SAD* LP
 JMP* DATLK    /FOUND
 ISZ LP
 ISZ TST
 JMP DDLP
 DZM TST     /NOT FOUND
 JMP* DATLK
CONV 0
 LAC TST
 AAC+10
 SMA
 JMP* CONV
 AAC+16
 TCA
 JMP* CONV
WDAT 0   /WRITE OUT DAT
 DAC TEMP
 AND (400
 SNA
 JMP PLUS
 LAC (255
 JMS PRNT
 LAC TEMP
 TCA
 DAC TEMP
 JMP .+3
 LAC (240
 JMS PRNT
PLUS LAC TEMP
 AND (7
 XOR (260
 DAC T1
 LAC TEMP
 RTR
 RAR
 AND (7
 XOR (260
 JMS PRNT
 LAC T1
 JMS PRNT
 JMP* WDAT
T1 0
/
LOAD HLT
/
 .TITLE PURGE   /PURGE A FILE NAME
PURGE JMS TBLLK     /REMOVE A FILE COMPLETELY
 FTAB
 SNA
 JMP NSF    /NO SUCH FILE
 RAL      /x2
 DAC FNP
 ADD (FADTAB-2
 DAC FIP     /PT TO FILE DRUM ADD.
 IAC
 DAC LP      /AND DRn
 LAC* LP
 AND (7
 SZA        /CHECK IF ACTIVE (ie. n .NE. 0)
 JMP FACT
 LAC 112     /CHECK IF SYS LOGIN
 CMA
 SNA
 JMP .+5     /IF SO THEN NO PROT.
 LAC* LP
 AND (700
 SZA
 JMP NPERM    /A PROT FILE
 LAC FNP
 ADD (FTAB-1
 DAC FNP      /PT. TO NAME ENTRY
 777776
 TAD FNPT
 DAC FNPT     /RESET -1 FILE NAME PT.
 DAC TEMP
 SAD FNP
 JMP BTF       /IF FILE IS BOTTOM THEN JUST MOVE PT.
 LAC* TEMP    /MOVE UP LAST FILE NAME
 DAC* FNP       /TO FILL EMPTY SPACE
 ISZ TEMP
 ISZ FNP
 LAC* TEMP      /2nd. PART
 DAC* FNP
 LAC FTAB
 CMA
 RAL
 ADD (FADTAB-1
 DAC TEMP        /PT. TO LAST ENTRY IN INFO TAB.
 LAC* TEMP
 DAC* FIP        /BRING UP DR. AD.
 ISZ TEMP
 LAC* TEMP
 DAC* LP         /BRING UP DRn ect.
BTF ISZ FTAB        /ONE LESS FILE
 JMP CLOOP
/
NSF .WRITE -3,2,ER10,10     /NO SUCH FILE
 .WAIT -3
 LAC BP2
 JMS PRS
 JMS CRLF
 JMP CLOOP
ER10 006002
 772776
 .ASCII '***NON-EXISTENT FILE:'<15>
/
FACT .WRITE -3,2,ER11,10    /FILE IS ACTIVE
 JMP NSF+3  /WAIT ect.
ER11 004002
 773776
 .ASCII '***FILE ACTIVE'<15>
/
 .TITLE FLD   /LOAD & EXEC. A PRG.
FLD RAL   /x2
 TAD (LAC FADTAB-2      /LOAD AND EX. MODULE
 DAC FRET
 DAC TEMP
 ISZ TEMP
 LAC* TEMP
 RAL
 SNL   /SKP IF LOADABLE
 JMP NLDBL
FRET XX    /RETRIEVE FILE ADDRESS
 DAC FRET
 LAC (FINFO-1
 707764      /BANK MODE
 DAC 17765   /LOC. OF FILE INFO
 777774     / -4 WDS. OF FILE INFO
 DAC 17764
 LAC FRET
 IOF
 DRDA
 DRSF
 JMP .-1
 DRCL
 LAC* 17765
 DAC 17761    /ACCUMULATOR FOR AFTER LOAD
 LAC FINFO
 DAC 17764    /-#WDS.
 LAC FINFO+1
 DAC 17765      /CORE ADD. -1
 LAC FINFO+2
 DAC 17760      /PRG. ST. ADD.
 LAC FRET
 AAC+4          /ACTUAL PRG DRUM AD.
 707764       /BANK MODE
 JMP 17750       /START LOADING
/
NLDBL .WRITE -3,2,ER6,10
 .WAIT -3
 LAC STBA
 JMS PRS    /WRITE OUT FILE NAME
 JMS CRLF
 JMP CLOOP
ER6 007002
 772776
 .ASCII '***FILE NOT LOADABLE:'<15>
/
FINFO .BLOCK 4     /FILE INFORMATION FOR LOADING
/
 .TITLE SYSTAT      /PRINT OUT SYSTEM STATISTICS
SYSTAT  .WRITE -3,2,S5,10    /WRITE OUT SYSTEM STATS.
 .WAIT -3
 LAC FTAB
 TCA
 JMS WOCT
 JMS CRLF
 IORS
 DAC ERCD+3
 DRRS
 DAC ERCD+4
 MTRS
 DAC ERCD+5
 JMP ERPROC
S1 004002
 774776
 .ASCII 'I/O STATUS=  '<22>
S2 004002
 774776
 .ASCII 'DR. STATUS=   '<22>
S5 005002
 773776
 .ASCII '# OF FILES=    '<22>
/
 .TITLE COMLST    /PRINT OUT LIST OF COMMANDS
COMLST LAC CTAB      /WRITE OUT COMMAND LIST
 DAC LP1    /# OF COMMANDS
 .WRITE -3,2,M2,32   /WRITE OUT CAPTION
 .WAIT -3
 LAC CP    /COMMAND PT.
 DAC TEMP
ILOOP LAC TEMP
 JMS PRS
 LAC (11
 JMS PRNT
 ISZ TEMP
 ISZ TEMP
 ISZ LP1
 JMP ILOOP
 JMS CRLF
 JMP CLOOP
CP CTAB+1
M2 006002
 772776
 .ASCII <24>'COMMANDS AVAILABLE:'<6><15>
/
 .TITLE ASSIGN     /ASSIGN FILE OR DEVICE TO A DAT.
ASSIGN 770000     /ASSIGN A FILE OR DEVICE TO A DAT.
 AND* BP2
 SAD (520000    /CHECK IF A DEV. (*nnn)
 JMP DASS
 LAC BP2
 JMS TBLLK       /CHECK IF LEGAL FILE
 FTAB
 DAC TEMP
 SNA
 JMP NSF     /NO SUCH FILE
/
 ISZ BP2
 ISZ BP2     /PT TO NEXT ARG
 JMS RNUM    /INTERPRET AS A DAT.
 JMS DATD
 ADD DATM1
 DAC DATP
 LAC TEMP
 RAL
 ADD (FADTAB-2
 DAC TEMP    /PT TO DRn ect.
 IAC
 DAC LP
 LAC* LP
 AND (7
 CLL
 SZA
 JMP NFA     /NOT FIRST ASSIGN
 LAC DRPT
 AND (17777     /MASK OUT ADDRESS ONLY
 DAC FTAD
 ADD (100000
 SKP     /SHOULD READ SZL
 JMP DRFT    /TABLE FULL
 DAC DRPT
 RTL
 RTL
 AND (7
 XOR* LP
 DAC* LP
 LAC* TEMP
 AAC+4
 DAC* DRPT   /STORE DATA PT.
 ISZ DRPT
 770000
 DAC* DRPT    /# WDS. IN FILE
 ISZ DRPT
 DZM* DRPT   /ZERO NEXT SECTION
 ISZ DRPT    /PT TO BEGIN. ADD
 LAC* TEMP
 DAC* DRPT
 ISZ DRPT
 ISZ DRPT   /PT. FOR NEXT ENTRY
 LAC* TEMP
 IAC
 DAC PJ     /PT. FOR NTB (DRUM ADD.)
 JMS NTB    /WRITE KEY BLOCK ON FILE
NFA LAC* LP
 CMA
 AND (7
 ADD JDR0
 DAC* DATP
 JMP CLOOP
DRFT .WRITE -3,2,MM,10
 .WAIT -3
 JMP CLOOP
MM 006002
 773776
 .ASCII '***INTERNAL TABLE FULL'<15>
TEST 0
DASS LAC BP2    /ASSIGN DEV. TO DAT.
 JMS TBLLK
 DEVTAB         /CHECK IF LEGAL DEVICE
 DAC TEMP
 SNA
 JMP NSD        /NO SUCH DEVICE
 ISZ BP2
 ISZ BP2        /PT TO NEXT ARG.
 JMS RNUM         /INTERPRET AS DAT
 JMS DATD
 ADD DATM1
 DAC DATP
 LAC TEMP
 RAL
 ADD (DEVINF-2
 DAC LP
 LAC* LP
 DAC* DATP
 JMP CLOOP
/
RNUM 0
 DZM NUM       /ITERPRET ARG. AS SIGNED OCTAL
 DZM SIGN
 LAC* BP2
 JMS SH6
 RAL     /GET BIT OUT OF LINK
 AND (77
 SAD (55         / '-'
 JMP MIN      /IT IS NEG.
 SAD (53         / '+'
 JMP POS      /IT IS SPECIFIED AS POS.
 AND (7
 DAC NUM
POS LAC* BP2
 RTR
 RTR
 RTR
 JMS PT      /PACK INTO NUM
 LAC* BP2
 JMS PT       
 777775      /3 MORE PASSES
 DAC LP1
 ISZ BP2     /2nd. PART
 LAC* BP2
 DAC TEMP
RLOOP LAC TEMP
 JMS SH6
 DAC TEMP
 RAL
 JMS PT    /PACK IT
 ISZ LP1
 JMP RLOOP
FINR LAC SIGN    /FINISHED
 SZA
 JMP .+3
 LAC NUM
 JMP .+3
 LAC NUM
 TCA
 DAC NUM
 JMP* RNUM
MIN CLA!CMA
 DAC SIGN   /SET SIGN
 JMP POS
PT 0    /PACK LOWER 3 BITS
 AND (77
 SNA
 JMP FINR
 AND (7
 DAC LP
 LAC NUM
 CLL!RTL
 RAL
 XOR LP
 DAC NUM
 JMP* PT
NUM 0
SIGN 0
SH6 0    /SHIFT ACC. 6 LEFT
 RTL
 RTL
 RTL
 JMP* SH6
/
 .TITLE FILES      /LIST FILE TABLE
FILES LAC FTAB   /WRITE OUT FILE NAMES AND STATS.
 DAC LP1    /# OF FILES
 LAC (FTAB+1
 DAC FNP    /FILE NAME PT.
 LAC (FADTAB
 DAC FIP    /FILE INFO. PT.
 .WRITE -3,2,FHD,32    /WRITE OUT HEADING AND SET TABS
 .WAIT -3
FLOOP LAC FNP
 JMS PRS    /WRITE FILE NAME
 LAC (11
 JMS PRNT   /TAB OVER TO NEXT COL.
 LAC* FIP
 JMS WOCT     /WRITE OUT DRUM ST. AD.
 LAC (11
 JMS PRNT
 ISZ FIP
 LAC* FIP
 AND (7
 SZA
 JMP DETD    /DETERMINE DAT's
 .WRITE -3,2,M1,10
 .WAIT -3     /FILE INACTIVE
 JMP LDB
DETD LAC FNP
 DAC BP2
 JMS CONVDAT
 JMS WDAT
LDB LAC (11     /CHECK IF LOADABLE FILE
 JMS PRNT
 LAC* FIP
 RAL
 SNL      /SKP IF LOADABLE
 JMP .+3
 LAC (YES
 SKP
 LAC (NO
 JMS PRS   /PRINT YES OR NO
 LAC 112
 CMA
 SNA
 JMP .+5    /SYS. IS IN; PRINT ALL ID's
 LAC* FIP
 AND (700   /CHECK IF PROT. FILE
 SZA
 JMP ENDL   /IF SO DO NOT PRINT ID.
 LAC (11
 JMS PRNT
 LAC* FIP
 RTR       /SHIFT AND x2
 AND (16
 ADD (PSWD-1
 JMS PRS   /PRINT ID.
ENDL JMS CRLF
 ISZ FIP
 ISZ FNP
 ISZ FNP
 ISZ LP1
 JMP FLOOP
 JMP CLOOP
/
DATP 0   /DAT PT.
DTST 0   /DAT COUNT
FNP     /FILE NAME PT.
FIP      /FILE INFO. PT.
YES .SIXBT 'YES'
 0
NO .SIXBT 'NO'
 0
M1 003002
 774776
 .ASCII 'INACTIVE'<22>
FHD 014002
 762776
 .ASCII <24>'FILE NAME   '<6>'DR.ST.AD.'<6>' .DAT    '<6>'LOAD   '<6>'ID'<15>
JDR0 600276
DRPT 300340
DAT 251   /DAT TABLE ADD.
DATM1 250
/
WOCT 0    /WRITE OUT AN OCTAL INTEGER
 DAC OCT
 777772   /6 DIGITS
 DAC TST
WLOOP LAC OCT
 RTL
 RAL
 DAC OCT
 RAL      /GET BIT OUT OF LINK
 AND (7
 XOR (260
 JMS PRNT
 ISZ TST
 JMP WLOOP
 JMP* WOCT
OCT 0
TST 0
/
 .TITLE DEVLST    /LIST DEVICES & 1 DAT
DEVLST .WRITE -3,2,M3,10   /LIST ALL DEVICES
 .WAIT -3
 LAC DEVTAB
 DAC TEST     /# OF DEV.
 LAC (DEVTAB+1
 DAC LP1
DVLOOP LAC LP1
 JMS PRS    /PRINT NAME
 LAC (11
 JMS PRNT
 LAC LP1
 DAC BP2
 JMS CONVDAT
 JMS WDAT
 LAC (11
 JMS PRNT
 ISZ LP1
 ISZ LP1
 ISZ TEST
 JMP DVLOOP
 JMS CRLF
 JMP CLOOP
M3 006002
 772776
 .ASCII <24>'DEVICES AVAILABLE '<6>'.DAT'<15>
/
NSD .WRITE -3,2,ER12,10     /NO SUCH DEVICE NAME
 JMP NSF+3
ER12 006002
 772776
 .ASCII '***NON-EXISTENT DEVICE'<15>
/
 .TITLE MSG   /STORE A MESSAGE ON DAT -7
MSG LAC (275  /ENTER A MSG ONTO MSGFL
 JMS PRNT
 LAC (276
 JMS PRNT     /PRINT OUT PROMT '=>'
 .READ -2,2,CBUF,32   /USE CBUF AS INTERMEDIATE BUFF.
 .WAIT -2
 .WRITE -7,2,CBUF,32
 .WAIT -7       /MSGFL IS PERM. ASSIGNED TO -7
 JMS CRLF
 JMP CLOOP
/
CAPT 005002     /CAPTION BLOCK
 772776
 .ASCII '$MONITOR VA2'<15>
/
 .TITLE CREATE     /CREATE AND ENTER A FILE NAME
CREATE JMS TBLLK    /CHECK IF ENTRY PREVIOUSLY MADE
 FTAB
 SNA
 JMP NPM    /IT IS NOT
 .WRITE -3,2,ER7,10     /FILE ALREADY EXISTING
 .WAIT -3
 JMS CRLF
 JMP CLOOP
/
NPM LAC FTAB   /#WDS. IN LIST
 TAD (11
 SMA
 JMP NTFL        /TABLE NOT FULL
 .WRITE -3,2,ER8,10    /TABLE FULL
 .WAIT -3
 JMS CRLF
 JMP CLOOP
/
NTFL ADD (777776
 SZA
 JMP NTNFL    /STILL NOT FILLED
 .WRITE -3,2,ER9,10
 .WAIT -3     /TABLE NOW FILLED
 JMS CRLF
NTNFL LAC* BP2
 DAC* FNPT    /STORE FILE NAME
 ISZ BP2
 ISZ FNPT
 LAC* BP2
 DAC* FNPT    /2nd. PART
 ISZ FNPT     /ADJUST FOR NEXT ENTRY
/
 777776
 ADD FTAB
 DAC FTAB   /INCR. FILE COUNTER
 CMA
 RAL   /x2
 ADD (FADTAB-1
 DAC TEMP   /INFO TABLE PT.
 LAC EXT
 DAC* TEMP   /STORE DRUM ADD.
 ADD (-770000    /STANDARD FILE SIZE
 DAC EXT   /MOVE FOR NEXT FILE
 ISZ TEMP
 LAC 112     /PROTECT FILE
 AND (700
 DAC* TEMP
 LAC 113     /RECORD OWNER ID.
 CLL!RTL
 RAL
 XOR* TEMP
 DAC* TEMP
 JMP CLOOP
/
FNPT FTAB+15    /PT. TO NEXT EMPTY SLOT 
/ERROR MESSEGES FOR CREATE COMMAND
ER7 007002
 772776
 .ASCII '***EXISTING FILE REFRENCED'
ER8 005002
 774776
 .ASCII '***FILE TABLE FULL'
ER9 006002
 774776
 .ASCII 'WARNING: LAST FILE ENTRY'
/
/
/COMMAND BUFFER (IOPS ASCII)
CBUF .BLOCK 52
/
ARGC
LP
BP2
/SIX-BIT COMMAND BUFFER
 0   /SPARE STB
STB .BLOCK 16
/MAKE SURE STB IS AN EVEN ADDRESS
 .IFZER STB+1&777776-STB
STBA STB
 .ENDC
 .IFNZR STB+1&777776-STB
STBA STB-1
 .ENDC
/
TADD
FTAB -6
 .SIXBT 'EDITOR'
 .SIXBT 'MACRO'
 .SIXBT 'MSGFL'
 .SIXBT 'EDITI'
 .SIXBT 'EDITO'
 .SIXBT 'MACROO'
 .BLOCK 12
DEVTAB -3     /DEVICE NAME TABLE
 .SIXBT '*TTY'
 .SIXBT '*DRA'
 .SIXBT '*MT'
 0
 .BLOCK 16
DEVINF JMP TTY    /HANDLER ADD.
 3776     /DAT=-2,I/O POSSIBLE
 JMP 436    /DRUM HANDLER
 3010
 JMP MTA
 3777
 .BLOCK 16
/
CTAB -23
 .SIXBT 'LOAD'
 .SIXBT 'SYSMOD'
 .SIXBT 'LOGIN'
 .SIXBT 'REWIND'
 .SIXBT 'MSG'
 0
 .SIXBT 'FILES'
 .SIXBT 'CREATE'
 .SIXBT 'COMLST'
 .SIXBT 'PURGE'
 .SIXBT 'STRMSG'
 .SIXBT 'DEVLST'
 .SIXBT 'ASSIGN'
 .SIXBT 'ERROR'
 .SIXBT 'SYSTAT'
 .SIXBT 'COPYCR'
 .SIXBT 'INIT'
 .SIXBT 'CLOSE'
 .SIXBT 'SKIPR'
 .SIXBT 'BKSPCR'
/
PSWD -7
 .SIXBT 'USER1'
 .SIXBT 'USER2'
 .SIXBT 'USER3'
 .SIXBT 'SYS1'
 .SIXBT 'SYS2'
 .SIXBT 'SYS.VK'
 .SIXBT 'SYSTEM'
/
NENT
LP1 0    /JUST A TEMP. COUNTER
EN
TEMP
LARGP
FADTAB 600000       / FILE ADDRESS TABLE 
 400770
 640000      /ENTRIES CORESPOND TO ORDER OF FILE NAME TABLE (FTAB)
 400770
 660000
 000763
 600000
 000771
 610000
 000771
 620000
 000772
 .BLOCK 12
 .END
