4458 lines
63 KiB
Plaintext
4458 lines
63 KiB
Plaintext
/SI VERSION 8.24 (01-JANUARY-75)
|
||
/
|
||
/
|
||
/
|
||
/
|
||
/COPYRIGHT (C) 1975
|
||
/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
|
||
/
|
||
/
|
||
/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY
|
||
/ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH
|
||
/THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS
|
||
/SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO-
|
||
/VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON
|
||
/EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO
|
||
/THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE
|
||
/SOFTWARE SHALL REMAIN IN DEC.
|
||
/
|
||
/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE
|
||
/WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM-
|
||
/MITMENT BY DIGITAL EQUIPMENT CORPORATION.
|
||
/
|
||
/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR
|
||
/RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT
|
||
/SUPPLIED BY DEC.
|
||
|
||
/SI PAGE 0
|
||
FIELD 0 /SI LOADS ONTO DISK TRACK 0
|
||
|
||
*0
|
||
CLA CLL
|
||
C6201, CDF /CHANGE TO FIELD ZERO
|
||
JMP I .+1
|
||
SI1, COM
|
||
SKIP= JMS I .
|
||
SKIPS
|
||
|
||
IX1=10
|
||
IX2=11
|
||
IX3=12
|
||
IX4=13
|
||
IX5=12
|
||
|
||
*10
|
||
. /IX1
|
||
. /IX2
|
||
. /IX3
|
||
. /IX4
|
||
C4000, 4000
|
||
C0200, 200
|
||
NOPUNCH
|
||
*6622
|
||
ENPUNCH
|
||
DMAR /FOR BOOT-STRAPPING
|
||
JMP . /FOR BOOT-STRAPPING
|
||
|
||
SIDATA=20 /SYSTEM INTERPRETER DATA
|
||
*SIDATA
|
||
|
||
COMPTR, . /POINTER TO LAST DEVTBL ENTRY SCANNED, INITIALIZE TO DEVTBL-1
|
||
CONDVA, CONDBA /DEVTBL POSITION OF OUTPUT SIDE
|
||
SITCNT, F1TCNT
|
||
COMDSP, . /FIP RETURN DISPATCH
|
||
SIFLG, . /COMMAND FLAGS
|
||
SICHAR, . /SAVE LAST CHAR FROM COMMAND SCAN
|
||
SIREG, . /USER AC, LINK, PC
|
||
.
|
||
.
|
||
TTCHAR, . /TTY CHARACTER
|
||
|
||
CONSTANTS=SIDATA+12
|
||
*CONSTANTS
|
||
C0002, 2
|
||
C0003, 3
|
||
C0004, 4
|
||
C0007, 7
|
||
C0037, 37
|
||
C0100, 100
|
||
C1000, 1000
|
||
C7770, 7770
|
||
C0010, 10
|
||
|
||
JOBCON=CONSTANTS+11 /JOB CONTROL
|
||
*JOBCON
|
||
|
||
JOBTIM, . /-#TICKS REMAINING TO RUN
|
||
JOBTBA, JOBTBL /JOB TABLE ADDRESS
|
||
C0006, 6
|
||
|
||
FRSTOR=JOBCON+3
|
||
*FRSTOR
|
||
|
||
FREE, . /POINTER TO HEAD OF FREE STORAGE
|
||
FRECNT, . /# FREE BLOCKS AVAILABLE
|
||
|
||
|
||
TIMDAT=FRSTOR+2 /CLOCK AND DATE
|
||
*TIMDAT
|
||
|
||
/CLOCK
|
||
CLK2, .
|
||
CLK1, .
|
||
|
||
|
||
SCHDAT=TIMDAT+2
|
||
*SCHDAT /SCHEDULING DATA
|
||
|
||
COMCNT, . /NUMBER OF COMMANDS WAITING EXECUTION
|
||
|
||
|
||
|
||
FIPDAT=155 /DATA REFERENCED BY FIP
|
||
*FIPDAT+1
|
||
|
||
C0400, 400
|
||
SEGSIZ=C0400 /#WORDS PER SEGMENT
|
||
FIBASE, SWDEX+JOBMAX /BASE ADDRESS OF ALLOCATABLE DISC STORAGE
|
||
JOB, . /# OF CURRENT JOB
|
||
JOBDAT, . /ADDRESS OF CURRENT JOB DATA LIST, MUST RESIDE IN DATA FIELD.
|
||
CORTBA, CORTBL-1 /CORE ALLOCATION TABLE
|
||
DEVTBA, DEVTBL /DEVICE TABLE
|
||
DSUTBA, DSUTBL /USER DISC REQUEST QUEUE
|
||
DSBUSY, . /DISC BUSY COUNT
|
||
|
||
/THE DATE IS KEPT AS A 12 BIT NUMBER IN THE FORMAT
|
||
/DATE=((YEAR-1974)*12+(MONTH-1))*31+DAY-1
|
||
|
||
DATE, .
|
||
|
||
|
||
FISUBL= 400
|
||
|
||
BLTA, BLT0 /BLOCK TRANSFER
|
||
BLT=JMS I BLTA
|
||
CORSRA, CORSRC
|
||
CORE=JMS I CORSRA
|
||
GETBA, GETB
|
||
GETBLK=JMS I GETBA
|
||
GETDBA, GETDB0 /GET A DATA BLOCK
|
||
GETDDB=JMS I GETDBA
|
||
PRINTA, PRINT0 /TYPE OUT A CHARACTER
|
||
PRINT=JMS I PRINTA
|
||
GETJT0, GETJTB /GET JOB DATA TABLE ADDRESS
|
||
GETJTA=JMS I GETJT0
|
||
KBDA, KBD00 /INPUT KEYBOARD CHARACTERS
|
||
KEY=JMS I KBDA
|
||
RETBA, RETB /RETURN BLOCK TO FREE STORAGE
|
||
RETBLK=JMS I RETBA
|
||
WAITA, WSCHED
|
||
WAIT=JMP I WAITA
|
||
|
||
|
||
*SCHDAT+1
|
||
|
||
SIJOB, 0
|
||
CHDFA, 0 /TEMP LOC USED BY MANY ROUTINES
|
||
CHDF=6221
|
||
COMDB0, 0 /ADDRESS OF COMMAND DDB
|
||
COMRDB, 0 /RESPONSE DEVTBL ADDRESS
|
||
COMBFA, COMBUF-1
|
||
COMTBE, 0 /COMMAND TABLE ENTRY ADDRESS
|
||
COMFLG, 0 /COMMAND CONTROL FLAGS
|
||
IOTPAR, . /IOT PARAMETER BLOCK
|
||
IOTP0, 0
|
||
IOTP1, 0
|
||
IOTP2, 0
|
||
IOTP3, 0
|
||
IOTP4, 0
|
||
IOTP5, 0
|
||
IOTP6, 0
|
||
IOTP7, 0
|
||
CHAR, 0 /CURRENT SCAN CHARACTER
|
||
NUMHO, 0 /HIGH ORDER FOR NUMBIN
|
||
0
|
||
0
|
||
TEXTS=JMS I .
|
||
CTEXT /ASCII READ
|
||
DECRCA, DECRC0 /DECREMENT COMCNT
|
||
NUMBIA, NUMBI0 /NUMBER CONVERT
|
||
ASCOUA, ASCOU0 /ASCII OUTPUT
|
||
ENDTSA, ENDTS0 /TEST FOR END OF COMMAND
|
||
COMGEA, COMGE0 /GET COMMAND STRING CHARACTER
|
||
COMERA, COMERR /ERROR RETURN
|
||
COMEXA, COMRET /OK RETURN
|
||
COMEXP, COMRET /FOR RESETTING COMEXA
|
||
ASCSIA, ASCSI0 /ASCII TO SIXBIT
|
||
GETFBA, GETFB0 /GET FREE BLOCK
|
||
GETBAA, GETTB0 /GET JOB TABLE ADDRESS
|
||
RETDBA, RETDB0 /RETURN BLOCK
|
||
RETBKA, RETBK0 /RETURN BLOCKS
|
||
IOTEND, FIPEND
|
||
LNGIOT, FOPEN1 /LONG IOT
|
||
SHTIOT, ACSET /SHORT IOT
|
||
CALFIA, CALFI0 /FIP OVERLAY
|
||
RESPDA, RESPDB /GET RESPONSE DDB
|
||
EXITA, COMEXT
|
||
EXIT=JMP I EXITA
|
||
GETWRA, GETWR0 /GET STATUS WORD
|
||
OCTASA, OCTAS0 /OCTAL TO ASCII
|
||
BUFDEA, BUFDE0 /BUFFER DELETE
|
||
RETPAA, RETPA0 /RETURN PARAMETERS
|
||
CORES=JMS I .
|
||
CORSER
|
||
ASSCOR=JMS I .
|
||
ASSCO0
|
||
RELCOR=JMS I .
|
||
RELCO0
|
||
TTYTBA, TTYTBL /START OF TTY TABLE
|
||
SIERR=JMS I .
|
||
SYSER0
|
||
SWBASE, SWDEX /START OF SWAPPING TRACKS
|
||
ACCTIN= JMS I .
|
||
ACC0
|
||
P7777, -1
|
||
C7700, 7700
|
||
JOBONC, -JOBMAX
|
||
SIECNT, F1ECNT /DDB EMPTY COUNT
|
||
SIBUF, F1BUF /DDB EMPTY POINTER
|
||
COMES1, COMLGM
|
||
COMWAA, COMDEL
|
||
COMWAT=JMP I COMWAA
|
||
|
||
/SI PAGE DIRECTORY
|
||
|
||
SCAN=200
|
||
SUBR=SCAN+1400
|
||
COMMAN=SUBR+1200
|
||
CTABLE=COMMAN+3000
|
||
ERPAGE=CTABLE+1000
|
||
|
||
|
||
/COMMAND CONTROL FLAGS
|
||
|
||
NOLOG=4000 /LOGIN NOT REQUIRED
|
||
USERM=2000 /REFERENCES USER MEMORY
|
||
USAVE=1000 /SAVE USER REGISTERS
|
||
UREST=400 /RESTORE USER REGISTERS
|
||
|
||
PRBUF=200 /PRINT BUFFER
|
||
PRQM=100 /PRINT ?
|
||
PRPER=40 /PRINT .
|
||
PRCRLF=20 /PRINT CRLF
|
||
NOMESS=10 /NO MESSAGE
|
||
/BITS 9-11 CONTAIN # FREE BLOCKS REQUIRED
|
||
|
||
*SCAN
|
||
|
||
DEVTND, -DEVTBE+1
|
||
COMSIC=C0100 /SICOM
|
||
COMFND=IOTP7 /COUNT OF SEARCH MATCHES
|
||
COMLNK=IOTP5
|
||
COMNXT=IOTP6
|
||
COMSET, RESTBP
|
||
|
||
COM, TAD I JOB
|
||
AND C0037
|
||
DCA SIJOB
|
||
TAD SIJOB
|
||
SZA CLA /FIP RETURN?
|
||
JMP COMFIP /YES
|
||
TAD I COMPTR
|
||
DCA IX1
|
||
TAD IX1
|
||
DCA IOTP0
|
||
DATFLD
|
||
COM1, ISZ IX1 /DON'T BOTHER LOOKING AT THE OUTPUT SIDE
|
||
TAD DEVTND
|
||
TAD IX1
|
||
SZA CLA /END OF TABLE?
|
||
JMP COM2 /NO
|
||
STA
|
||
TAD DEVTBA /YES, RESET TO BEGIN OF TABLE
|
||
DCA IX1
|
||
COM2, TAD I IX1 /GET TABLE ENTRY
|
||
SZA
|
||
JMP COM3
|
||
COM4, TAD IX1 /SCANNED ENTIRE TABLE?
|
||
CIA
|
||
TAD IOTP0
|
||
SZA CLA
|
||
JMP COM1 /NO
|
||
CDF
|
||
DCA I COMCNT
|
||
COMEXT, RELCOR /RELEASE COR
|
||
CIF CDF
|
||
DCA I COMDSP
|
||
WAIT /RESCHEDULE
|
||
|
||
SIWATA, SIWAIT
|
||
SITIMA, TIMSI
|
||
|
||
COM3, DCA COMDB0
|
||
TAD I COMDB0 /COMMAND WAITING?
|
||
AND COMSIC
|
||
SNA CLA
|
||
JMP COM4 /NO
|
||
TAD COMDB0 /SET JOB #
|
||
IAC
|
||
DCA COMTBE
|
||
TAD I COMTBE
|
||
CDF
|
||
AND C0037
|
||
DCA SIJOB
|
||
TAD IX1
|
||
DCA I COMPTR
|
||
TAD SIJOB
|
||
TAD I JOB
|
||
DCA I JOB
|
||
TAD SIJOB
|
||
DATFLD
|
||
SNA
|
||
JMP COM31
|
||
TAD JOBTBA
|
||
DCA CHDFA
|
||
TAD I CHDFA
|
||
COM31, DCA I JOBDAT
|
||
TAD I JOBDAT /DO WE HAVE JOB?
|
||
SNA
|
||
JMP COM33 /NO
|
||
IAC
|
||
DCA CHDFA /ADDRESS OF STR0
|
||
JMS I COMLRA /CHECK FOR RUBOUT AND LINE-FEED
|
||
TAD C7367
|
||
AND I CHDFA /CLEAR OUT THE R PRIVILEGE & ERROR REPORT INHIBIT BITS
|
||
DCA I CHDFA /SAVE IT
|
||
COM33, JMS I COMSET /SETUP BUFFER POINTERS
|
||
DCA COMRDB
|
||
DCA COMFLG
|
||
COM32, DCA CHAR
|
||
TAD COMBFA /GET COMMAND NAME
|
||
TEXTS
|
||
CIA
|
||
TAD COMBFA /NULL?
|
||
SZA CLA
|
||
JMP I COM41A
|
||
TAD CHAR
|
||
SZA CLA
|
||
ENDTST /END OF COMMAND?
|
||
JMP I COM64A /YES
|
||
JMP COM32 /TRY TO FIND A VALID COMMAND
|
||
|
||
C7367, -JSPEEK-JSINER-1
|
||
COM64A, COM64
|
||
COMLRA, COMLRB
|
||
COM41A, COM41
|
||
|
||
COMFIP, TAD I COMDSP
|
||
SNA
|
||
JMP COMFI2
|
||
DCA IOTP0
|
||
DCA I COMDSP
|
||
TAD I SIFLG /RESTORE CONTROL FLAGS.
|
||
DCA COMFLG
|
||
TAD I SICHAR
|
||
DCA CHAR
|
||
TAD I COMPTR
|
||
DCA COMDB0
|
||
DATFLD
|
||
TAD I COMDB0
|
||
DCA COMDB0
|
||
TAD I JOBDAT
|
||
SNA
|
||
JMP COMFI1
|
||
IAC
|
||
DCA CHDFA
|
||
TAD C0003
|
||
TAD I CHDFA
|
||
AND C0007 /WAS THERE A SYSTEM DISK ERROR?
|
||
SZA CLA
|
||
COMFI1, ISZ IOTP0
|
||
CHDF
|
||
JMP I IOTP0
|
||
COMFI2, CHDF
|
||
JMP I .+1
|
||
SYSERR
|
||
|
||
COMDEL, CDF /SI MUST WAIT FOR SOME REASON
|
||
TAD I COMCNT /NUMBER OF COMMANDS LEFT TO DO
|
||
TAD I SIWATA /PLUS THOSE ALREADY WAITING
|
||
DCA I SIWATA
|
||
DCA I COMCNT /WE'LL RELOAD THE COUNT WHEN THE TIMER RUNS OUT
|
||
STA
|
||
DCA I SITIMA /WAIT FOR ONE SECOND
|
||
EXIT
|
||
PAGE
|
||
|
||
COMTBA, COMTBL
|
||
COM9A, COM9
|
||
COM91A, COM91
|
||
COM41, DCA COMFND /SEARCH COMMAND TABLE
|
||
TAD COMTBA
|
||
COM6, DCA COMLNK
|
||
TAD I COMLNK
|
||
SNA
|
||
JMP I COM9A /END OF TABLE
|
||
DCA COMNXT
|
||
TAD COMLNK
|
||
TAD C0003
|
||
DCA IX2
|
||
TAD COMBFA
|
||
DCA IX3
|
||
COM5, TAD IX2
|
||
CMA
|
||
TAD COMNXT
|
||
SNA CLA
|
||
JMP COM99 /EXACT MATCH
|
||
TAD I IX3
|
||
SNA
|
||
JMP COM8
|
||
TAD I IX2
|
||
SNA CLA
|
||
JMP COM5
|
||
JMP COM7
|
||
COM8, ISZ COMFND /PARTIAL MATCH
|
||
TAD COMLNK
|
||
DCA COMTBE
|
||
COM7, TAD COMNXT
|
||
JMP COM6
|
||
|
||
|
||
COM99, TAD I IX3
|
||
SNA CLA
|
||
JMP I COM91A /EXACT
|
||
JMP COM7
|
||
COMECH, DECHO
|
||
COMLBT, -SICOM-DECHO-1
|
||
COMPST, STRNG0
|
||
COMPNT, RESTBP
|
||
|
||
COMLRB, 0
|
||
TAD I COMDB0
|
||
AND COMECH
|
||
SNA CLA
|
||
JMP I COMLRB
|
||
JMS I COMPNT
|
||
DCA CHAR
|
||
DCA COMRDB
|
||
DCA COMFLG
|
||
JMS I COMPST
|
||
ASCOUT
|
||
CRLF
|
||
NOP
|
||
GETWRD
|
||
JOBSTS
|
||
SPA CLA
|
||
JMP COMLRR
|
||
ASCOUT
|
||
PERIOD
|
||
NOP
|
||
COMECC, ASCOUT
|
||
VERBRK
|
||
NOP
|
||
DATFLD
|
||
TAD COMLBT
|
||
AND I COMDB0
|
||
DCA I COMDB0
|
||
DECRCT
|
||
EXIT
|
||
COMLRR, ASCOUT
|
||
CB
|
||
NOP
|
||
JMP COMECC
|
||
CB, "^
|
||
"B
|
||
0
|
||
|
||
SWITCH, TAD JBSWR
|
||
RESTRT, TAD JBSRA
|
||
DCA .+2
|
||
GETTBA
|
||
0
|
||
JMP BRK0
|
||
|
||
JBSWR, JOBSWR-JOBSRA
|
||
JBSRA, JOBSRA
|
||
|
||
BREAK, TAD COMDB0 /DDB ADDRESS
|
||
TAD C0002
|
||
BRK0, DCA IOTP1 /POINTER TO APPROPRIATE REGISTER
|
||
ENDTST /ARGUMENT?
|
||
SKP /NO; TELL HER WHAT IT IS
|
||
JMP BRK1 /YES, NEW VALUE FOR MASK
|
||
DATFLD
|
||
TAD I IOTP1 /GET BREAK MASK
|
||
CHDF
|
||
OCTASC /CONVERT TO ASCII
|
||
IOTP2 /STORE IN IOTP3,4,5,6,7
|
||
ASCOUT /OUTPUT A CRLF
|
||
CRLF
|
||
NOP
|
||
ASCOUT
|
||
IOTP3
|
||
NOP
|
||
JMP I COMEXA
|
||
|
||
BRK1, NUMBIN
|
||
-267
|
||
JMP I COMERA /INVALID CHARACTER IN STRING
|
||
DATFLD
|
||
DCA I IOTP1
|
||
JMP I COMEXA
|
||
|
||
STARS, 215;212;"*;"*;"*;240;0
|
||
FM5400, "B;"A;"D;240;"D;"I;"R;"E;"C;"T;"O;"R;"Y;0
|
||
|
||
/ROUTINE TO SEE IF JOB IS RUNNING WHEN COMMAND REQUIRING FIP IS ISSUED.
|
||
/IF SO, WE CAN'T HONOR COMMAND
|
||
/THE MESSAGE "TYPE ^BS FIRST" IS GIVEN
|
||
|
||
/CALL TAD IOT ENTRY FROM COMMAND TABLE
|
||
/ JMS FIPCHK
|
||
/ RETURN IF OK TO PROCEED [OTHERWISE RETURN IS TO COMEXT]
|
||
/ IF NOT RUNNING BUT JOB IS BUSY WITH FIP OR FILE I/O, EXIT VIA COMWAT
|
||
|
||
|
||
FIPCHK, 0
|
||
DCA IOTP0 /SAVE THE IOT
|
||
GETWRD /IT'S A CALL TO FIP; IS HE RUNNING?
|
||
JOBSTS /IF SO HER RUN BIT IS ON
|
||
SPA
|
||
JMP FIPCH2 /HE'S TURNED ON SO DON'T HONOR COMMAND
|
||
AND C0140 /DOES HE STILL HAVE A FIP REQUEST IF HER OWN PENDING?
|
||
SZA CLA
|
||
COMWAT /YES DON'T CONFUSE THE ISSUE
|
||
ISZ IOTP7
|
||
DATFLD
|
||
TAD I IOTP7 /STR1
|
||
RAR
|
||
CMA RAL
|
||
ISZ IOTP7
|
||
ISZ IOTP7
|
||
AND I IOTP7 /WAIT MASK 1
|
||
AND FILES
|
||
CHDF
|
||
CLL RAR
|
||
SNA SZL CLA /IS HE WAITING FOR A FILE TRANSFER?
|
||
JMP I FIPCHK /NO; SO LET HER PROCEED
|
||
COMWAT /WAIT FOR THINGS TO COOL OFF
|
||
|
||
FIPCH2, CLA
|
||
TAD IOTP0
|
||
SPA
|
||
AND C0010 /EITHER FINF, DMAR, OR DMAW
|
||
SNA CLA
|
||
JMP I FIPCHK /WANTS TO EXAMINE OR DEPOSIT
|
||
TAD COMFLG
|
||
AND P7377 /DON'T RESTORE REGISTERS SINCE THEY ARE NOT SAVED
|
||
DCA COMFLG
|
||
TAD FIPTCB
|
||
JMP I COMEXA /"TYPE ^BS FIRST"
|
||
|
||
FIPTCB, TYCRLB
|
||
C0140, JSIOT JSIOTC
|
||
P7377, 7377
|
||
FILES, JSF0 JSF1 JSF2 JSF3 JSWAIT
|
||
|
||
WAIT1, TAD I DTJOBA
|
||
CIA
|
||
TAD SIJOB /DOES HE CURRENTLY OWN THE CONTROLLER, OR IS HE JUST WAITING IN THE QUEUE
|
||
SNA CLA
|
||
JMP I COMEXA /HE OWNS IT - DON'T BOTHER HER
|
||
|
||
JMP I .+1 /GO DO THE STUFF COMMON WITH THE RK05
|
||
DTSIDT
|
||
|
||
K5, 5
|
||
|
||
WAIT2, TAD I IOTP7 /GET POINTER TO HER TIMER
|
||
TAD K5
|
||
DCA CHDFA
|
||
STA
|
||
DCA I CHDFA /SET HER TIMER=1 SECOND
|
||
STA
|
||
TAD SIJOB
|
||
TAD JOBTBA
|
||
CIF DATFLD
|
||
JMP I .+1 /FORCE THE TIMER TO RUN - JUST FOR HER JOB
|
||
DTSI
|
||
DTJOBA, DTJOB
|
||
|
||
ACCBUF, " ;" ;"[;0;0;0;0;0;"];0
|
||
|
||
SYSET6, "H /HUNG DEVICE
|
||
"U
|
||
"N
|
||
"G
|
||
240
|
||
"D
|
||
"E
|
||
"V
|
||
"I
|
||
"C
|
||
"E
|
||
SYRING, 207;207;207
|
||
0
|
||
|
||
*724 /DO NOT MOVE ANYTHING IN THIS AREA
|
||
/IT IS VITAL FOR BOOT-STRAPPING
|
||
NOPUNCH
|
||
*7730 /THIS IS WHERE IT WILL ACTUALLY EXECUTE
|
||
ENPUNCH
|
||
IFZERO RF08 <
|
||
TRBOOT, 2
|
||
FLBOOT, 20
|
||
GOBOOT, DCMA
|
||
CLA
|
||
TAD FLBOOT
|
||
DIML
|
||
TAD TRBOOT
|
||
DXAL
|
||
>
|
||
IFZERO RF08-40 <
|
||
NOP;NOP;NOP /FOR SIZE
|
||
TRBOOT, 220
|
||
GOBOOT, DCMA
|
||
CLA
|
||
TAD TRBOOT
|
||
DEAL
|
||
>
|
||
STA
|
||
DCA CABOOT
|
||
DCA WCBOOT
|
||
DMAR
|
||
DFSC
|
||
JMP .-1
|
||
CIF CDF 20
|
||
JMP 0
|
||
WCBOOT, -3 /READ 3 WORDS AFTER OVERLAYING ITSELF
|
||
CABOOT, 6621 /OVERLAY OUR CURRENT "JMP ." WE'RE EXECUTING AT 6623
|
||
NOPUNCH
|
||
*6622
|
||
ENPUNCH
|
||
GOBOOT
|
||
JMP I .-1
|
||
*750
|
||
GETACC, 0
|
||
TAD JOBTBA
|
||
CIF
|
||
GETJTA
|
||
JOBACC
|
||
DCA CHDFA
|
||
DATFLD
|
||
TAD I CHDFA
|
||
CHDF
|
||
OCTASC
|
||
ACCBUF+2
|
||
TAD ACCBUF+6
|
||
DCA ACCBUF+7
|
||
TAD ACCBUF+5
|
||
DCA ACCBUF+6
|
||
TAD ACOMMA
|
||
DCA ACCBUF+5
|
||
JMP I GETACC
|
||
ACOMMA, ",
|
||
SYBELL, ASCOUT
|
||
SYRING
|
||
NOP
|
||
EXIT
|
||
|
||
CUSERM=CLA CLL CML RTR /AC =2000
|
||
|
||
COM9, STA
|
||
TAD COMFND
|
||
SZA CLA
|
||
JMP COM99A /NOT UNIQUE OR NOT FOUND
|
||
JMP COM91Z
|
||
FIPCOM, FIPCHK
|
||
COM91, TAD COMLNK
|
||
DCA COMTBE
|
||
COM91Z, ISZ COMTBE /GET COMMAND FLAGS
|
||
TAD I COMTBE
|
||
DCA COMFLG
|
||
TAD COMFLG /ENOUGH FREE STORE?
|
||
AND C0007
|
||
CIA
|
||
CDF
|
||
TAD I FRECNT
|
||
CHDF
|
||
SPA CLA
|
||
COMWAT /NO
|
||
CUSERM /AC=2000
|
||
AND COMFLG /USER MEMORY REFERENCE?
|
||
SNA CLA
|
||
JMP COM16 /NO
|
||
STL RAR /AC=SWAP
|
||
TAD SIJOB /YES, IS USER BEING SWAPPED?
|
||
CORES
|
||
SZA CLA
|
||
COMWAT
|
||
COM16, ISZ COMTBE
|
||
TAD SIJOB
|
||
SZA CLA
|
||
TAD I COMTBE /STORE IOT
|
||
SZA /NON RESIDENT IOT?
|
||
JMS I FIPCOM /YES--IS HE RUNNING A PROGRAM?
|
||
TAD IOTPAR
|
||
DCA IX1
|
||
TAD C7770
|
||
DCA CHDFA
|
||
TAD I COMTBE /FIX UP IOTP0
|
||
DCA I IX1
|
||
ISZ CHDFA
|
||
JMP .-2
|
||
ISZ COMTBE
|
||
TAD I COMTBE
|
||
DCA COMTBE
|
||
TAD COMFLG
|
||
SPA CLA /LOGIN REQUIRED?
|
||
JMP I COMTBE /NO, DISPATCH
|
||
TAD SIJOB
|
||
SNA CLA /NULL JOB?
|
||
JMP I COM12A
|
||
TAD COMFLG /SAVE REGISTERS?
|
||
AND C1000
|
||
SNA CLA
|
||
JMP I COMTBE /NO, DISPATCH
|
||
GETTBA
|
||
JOBREG
|
||
DCA COMREG
|
||
CIF
|
||
BLT
|
||
DATFLD
|
||
COMREG, 0
|
||
CDF
|
||
SIREG
|
||
-3
|
||
DATFLD /PC=-1
|
||
STA
|
||
DCA I COMREG
|
||
CHDF
|
||
JMP I COMTBE
|
||
COM12A, COM12
|
||
|
||
COM99A, TAD SIJOB /IS HE LOGGED IN?
|
||
SNA CLA
|
||
TAD COMES1 /NO, SO SEND "LOGIN PLEASE"
|
||
JMP I COMERA
|
||
|
||
CALFIP=JMP I CALFIA
|
||
|
||
CALFI0, STA CLL RAL /SAVE RETURN ADDRESS
|
||
TAD COMTBE
|
||
CDF
|
||
DCA I COMDSP
|
||
TAD COMFLG /SAVE FLAGS
|
||
DCA I SIFLG
|
||
TAD CHAR
|
||
DCA I SICHAR
|
||
TAD CALFBA
|
||
LOADUS, DCA CALFI2
|
||
CHDF
|
||
TAD CALFI4
|
||
TAD DSUTBA
|
||
GETFBL
|
||
COMWAT
|
||
DCA CALFI1
|
||
ASSCOR
|
||
CIF CDF
|
||
TAD SIJOB
|
||
TAD C0200
|
||
DCA I JOB
|
||
CHDF
|
||
BLT
|
||
CHDF
|
||
OFF5, /SOURCE FIELD
|
||
CALFI2, 0 /SOURCE ADDR
|
||
DATFLD /DESTINATION FLD
|
||
CALFI1, 0 /DESTINATION ADDR
|
||
-10
|
||
CIF CDF
|
||
ISZ I DSBUSY
|
||
WAIT
|
||
JMP I .+1
|
||
OVRLA1
|
||
DEPEXA, TAD CALFI5
|
||
JMP LOADUS
|
||
CALFI5, IOTP0
|
||
|
||
CALFBA, .+1
|
||
DMAR
|
||
FIPDEX
|
||
CALFI4, 10 /MEMORY EXT IN 7-9
|
||
-FIPWC
|
||
-1
|
||
0
|
||
OVERLA
|
||
0
|
||
|
||
OFF3A, ACTNM1
|
||
OFF4, 7774 /ALLOW ONLY ACCOUNTS 1, 2 & 3 TO LOGIN
|
||
OFFJOB, F1OFFJ
|
||
OFFLIN, TAD OFF4
|
||
ON, DCA OFF5
|
||
JMS I OFF3A /CHECK ACCOUNT NUMBER
|
||
TAD OFF5 /.. 0 IF ON
|
||
DATFLD
|
||
DCA I OFFJOB /STORE IT IN FIELD 1
|
||
JMP I COMEXA /RETURN
|
||
COMFLE, PRQM+PRBUF
|
||
COPRBF, PRBUF
|
||
COMESF, NOMESS
|
||
COMQM, PRQM
|
||
COMCRF, PRCRLF
|
||
COMELF, PRPER+PRCRLF
|
||
CO18A, COM18
|
||
COMURE, UREST
|
||
COMURM, -UREST-1
|
||
MSEMI, -273
|
||
MCR, -215
|
||
|
||
COM12, TAD COMFLG
|
||
AND COMURM
|
||
DCA COMFLG
|
||
TAD COMES1
|
||
|
||
COMERR, DCA COMESA
|
||
TAD COMFLG
|
||
AND C7700
|
||
TAD COMELF /SET FLAGS FOR ERROR MESSAGE
|
||
DCA COMFLG
|
||
TAD COMESA
|
||
SZA CLA
|
||
JMP COMRET+1
|
||
TAD COMFLE
|
||
TAD COMFLG
|
||
SKP
|
||
COM64, TAD COMELF
|
||
DCA COMFLG
|
||
|
||
COMRET, DCA COMESA
|
||
CHDF
|
||
TAD COMFLG /RESTORE REGISTERS
|
||
AND COMURE
|
||
SNA CLA
|
||
JMP COMRE0
|
||
GETTBA
|
||
JOBREG
|
||
DCA .+6
|
||
CIF
|
||
BLT
|
||
CDF
|
||
SIREG
|
||
DATFLD
|
||
0
|
||
-3
|
||
COMRE0, TAD COMFLG /MESSAGE?
|
||
AND COMESF
|
||
SZA CLA
|
||
JMP COM10 /NO
|
||
ASCOUT
|
||
CRLF
|
||
NOP
|
||
TAD COMFLG
|
||
AND COPRBF
|
||
SNA CLA /PRINT BUFFER?
|
||
JMP COMRE3 /NO, DELETE COMMAND
|
||
JMS I CORSET /YES, RESTORE BUFFER POINTER
|
||
COMRE1, COMGET /GET A CHAR
|
||
JMP COMRE3 /NONE
|
||
STL RTL
|
||
ENDTST /LAST CHARACTER OF COMMAND LINE?
|
||
JMP COMRE3 /YES; DON'T ECHO THIS ONE
|
||
RESDDB
|
||
CIF CDF
|
||
DCA I CONDVA
|
||
TAD CHAR
|
||
DCA I TTCHAR
|
||
CHDF
|
||
PRINT
|
||
JMP COMRE1
|
||
JMP COMRE1
|
||
COMRE3, SKPCOM /SKIP TO END OF COMMAND
|
||
NOP
|
||
BUFDEL /DELETE TO CURRENT POINTER
|
||
TAD COMESA
|
||
SNA CLA
|
||
JMP COM11
|
||
ASCOUT /OUTPUT MESSAGE
|
||
COMESA, 0
|
||
JMP COM10 /WON'T FIT
|
||
COM11, TAD COMFLG /PRINT ??
|
||
AND COMQM
|
||
SNA CLA
|
||
JMP COM13 /NO
|
||
ASCOUT
|
||
QQEST
|
||
JMP COM10
|
||
COM13, TAD COMFLG /PRINT CRLF?
|
||
AND COMCRF
|
||
SNA CLA
|
||
JMP COM10
|
||
ASCOUT
|
||
CRLF
|
||
NOP
|
||
COM10, TAD CHAR
|
||
TAD MSEMI
|
||
SNA CLA
|
||
JMP I COM22A
|
||
DECRCT /DECREMENT COMCNT
|
||
JMP I CO18A /YES
|
||
COM22A, COM22
|
||
CORSET, RESTBP
|
||
LOGIF2, DCA .+4 /SAVE POINTER TO TIME ASCII STRING
|
||
TAD COMEXP /RESTORE COMRET
|
||
DCA COMEXA
|
||
ASCOUT /OUTPUT TIME MESSAGE
|
||
0
|
||
JMP I COMEXA /NO ROOM, SO DON'T PROCEED
|
||
TAD CHAR /ENDED WITH RETURN?
|
||
TAD MCR
|
||
SNA CLA
|
||
TAD VERBRA /YES, SO OUTPUT MESSAGE OF THE DAY
|
||
JMP I COMEXA /DONE AT LAST
|
||
|
||
VERBRA, VERBRK-2
|
||
SKPCOA, SKPCO0 /SKIP TO END OF COMMAND
|
||
SKPCOM=JMS I SKPCOA
|
||
|
||
|
||
LOGE0, "A;"L;"R;"E;"A;"D;"Y;240;"L;"O;"G;"G;"E;"D;240;"I;"N;0
|
||
COMMSI, -SICOM-DECHO-1
|
||
COMPF, PRPER
|
||
COMCLN, -272
|
||
COMKEY, -JSDEL-1
|
||
COMKEF= C0100
|
||
|
||
COM18, DATFLD
|
||
TAD COMDB0 /JOB DEFINED?
|
||
SNA /HAS HE JUST LOGGED OUT?
|
||
JMP COM22
|
||
IAC
|
||
DCA CHDFA
|
||
TAD I COMDB0
|
||
AND COMMSI
|
||
DCA I COMDB0
|
||
TAD I CHDFA
|
||
AND C0037
|
||
SNA CLA
|
||
JMP COM17 /NO
|
||
CHDF
|
||
GETWRD
|
||
JOBSTS
|
||
DATFLD
|
||
SMA CLA /IS JOB RUNNING?
|
||
JMP COM20 /NO
|
||
TAD I COMDB0
|
||
AND COMSIF
|
||
DCA I COMDB0 /SAVE WITH FLAG CLEARED
|
||
TAD COMPF
|
||
CMA
|
||
AND COMFLG
|
||
DCA COMFLG
|
||
ISZ IOTP7
|
||
TAD CHAR
|
||
TAD COMCLN
|
||
SZA CLA
|
||
JMP COM21
|
||
TAD I IOTP7
|
||
AND COMKEY
|
||
TAD COMKEF
|
||
DCA I IOTP7
|
||
COM21, STL RTL
|
||
TAD IOTP7
|
||
DCA NUMHO
|
||
IAC
|
||
TAD NUMHO
|
||
DCA NUMHO+1
|
||
TAD I NUMHO+1
|
||
SNA
|
||
TAD I NUMHO
|
||
SZA CLA
|
||
JMP COM19
|
||
ISZ I NUMHO
|
||
TAD I IOTP7
|
||
RAR
|
||
STL RAL
|
||
DCA I IOTP7
|
||
COM19, TAD CHAR /GET TERMINATING CHARACTER
|
||
TAD MCRS
|
||
SZA CLA /WAS IT CR
|
||
JMP COM22 /NO; LEAVE OUTPUT MODE AS IS
|
||
RESDDB /DETERMINE DEVTBL ADDRESSES FOR THIS TERMINAL
|
||
STA
|
||
TAD COMRDB
|
||
DCA QON /SAVE KEYBOARD DEVTBL POINTER
|
||
DATFLD
|
||
TAD I COMRDB /GET ADDRESS OF OUTPUT DDB
|
||
DCA IOTP7
|
||
TAD I IOTP7
|
||
SMA CLA /^S MODE?
|
||
JMP COM22 /NO
|
||
TAD CTRLQ /YES; FORCE A ^Q THROUGH THE INPUT ROUTINES
|
||
CIF CDF 00
|
||
DCA I TTCHAR
|
||
CHDF
|
||
KEY /PUSH IT THRU
|
||
QON, .-. /DEVTBL ADDRESS
|
||
CTRLQ, "Q-100 /"KEY" CAN'T FAIL
|
||
COM22, CLA
|
||
CHDF
|
||
TAD COMFLG
|
||
AND COMPF
|
||
SNA CLA
|
||
EXIT
|
||
ASCOUT
|
||
PERIOD
|
||
EXIT
|
||
EXIT
|
||
COM20, CIF 00
|
||
TAD COMDB0
|
||
JMS I SICLRA
|
||
JMP COM19
|
||
COMSIF, -DSI-1
|
||
COM17, CIF CDF 00
|
||
TAD I COMPTR /DELETE THE INPUT DDB SINCE WE'RE DONE
|
||
DCA CHDFA
|
||
DATFLD
|
||
DCA I CHDFA
|
||
TAD COMDB0
|
||
JMS I SICLRA
|
||
TAD COMDB0
|
||
RETDBL
|
||
JMP COM22
|
||
|
||
MCRS, -215
|
||
SICLRA, SICLR
|
||
|
||
/ROUTINE TO GET TEXT STRING FROM USERS INPUT BUFFER TO LAST PAGE
|
||
/OF SI, WHERE THEY STORE LOGIN MESSAGE
|
||
|
||
/CALL JMS STRNG0
|
||
/ RETURN
|
||
|
||
STRNG0, 0
|
||
TAD STRBRK /SET UP POINTERS
|
||
DCA IOTP0 /POINTS TO START OF BUFFER
|
||
TAD IOTP0
|
||
DCA IOTP1 /POINTS TO END OF BUFFER
|
||
SKIP /SKIP SPACES AND TABS
|
||
JMP STREND /END OF INPUT BUFFER REACHED
|
||
STRNG1, TAD CHAR /SAVE CHARACTER IN BUFFER
|
||
DCA I IOTP1
|
||
ISZ IOTP1 /READY FOR NEXT CHARACTER
|
||
SKP
|
||
JMP I COMERA /HOW COULD HE TYPE SO MUCH?
|
||
COMGET /GET ANOTHER CHARACTER
|
||
JMP STREND /NONE
|
||
JMP STRNG1 /AND LOOK AT IT
|
||
|
||
STREND, DCA I IOTP1 /END THE STRING
|
||
JMP I STRNG0 /RETURN
|
||
|
||
STRBRK, VERBRK
|
||
|
||
|
||
*SUBR
|
||
|
||
/GET A TEXT STRING
|
||
/CALL TAD ADDRESS OF BUFFER -1
|
||
/ TEXTS
|
||
/ RETURN WITH POINTER TO LAST CHAR IN AC
|
||
|
||
CTEXA, -241
|
||
CTEXZ, -340
|
||
CTEXCN, -272
|
||
CTEX6, -6
|
||
CTEXBF, 0 /BEGIN OF BUFFER
|
||
CTEXNU, 0 /NUMBER OF CHARACTERS
|
||
|
||
CTEXT, 0
|
||
DCA IX1 /INITIALIZE INDEX
|
||
TAD IX1
|
||
CIA
|
||
DCA CTEXBF
|
||
DCA CTEXNU
|
||
SKIP /SKIP SPACES AND TABS
|
||
JMP CTEXT4
|
||
CTEXT3, TAD CHAR
|
||
TAD CTEXCN
|
||
CLL RAR
|
||
SNA CLA /COLON OR SEMICOLON?
|
||
JMP CTEXT4 /YES
|
||
TAD CHAR /NO
|
||
TAD CTEXA
|
||
SPA CLA
|
||
JMP CTEXT4 /NO
|
||
TAD CHAR
|
||
TAD CTEXZ
|
||
SMA CLA
|
||
JMP CTEXT4 /NO
|
||
TAD CTEXNU /STORE CHARACTER
|
||
TAD CTEX6
|
||
SMA CLA
|
||
JMP .+3
|
||
TAD CHAR
|
||
DCA I IX1
|
||
ISZ CTEXNU
|
||
COMGET /GET ANOTHER CHAR
|
||
SKP /NONE
|
||
JMP CTEXT3
|
||
CTEXT4, DCA I IX1 /CLEAR NEXT POSITION
|
||
STA
|
||
TAD IX1
|
||
JMP I CTEXT
|
||
|
||
/SKIP LEADING SPACES AND TABS
|
||
/CALL JMS SKIPS
|
||
/ BUFFER EMPTY
|
||
/ NORMAL RETURN
|
||
|
||
SKISPA, -240
|
||
SKITAB, -211
|
||
|
||
SKIPS, 0
|
||
JMP .+3
|
||
SKIPS1, COMGET
|
||
JMP I SKIPS /NONE LEFT
|
||
TAD CHAR
|
||
SNA
|
||
JMP .-4
|
||
TAD SKISPA
|
||
SNA CLA
|
||
JMP SKIPS1
|
||
TAD SKITAB
|
||
TAD CHAR
|
||
SNA CLA
|
||
JMP SKIPS1
|
||
ISZ SKIPS
|
||
JMP I SKIPS
|
||
|
||
/GET A CHARACTER FROM COMMAND STRING
|
||
/CALL COMGET
|
||
/ NONE LEFT
|
||
/ RETURN WITH CHARACTER IN CHAR
|
||
|
||
TC7766, 7766
|
||
TC7400, 7400
|
||
C0377, 377
|
||
COMGET=JMS I COMGEA
|
||
COMGE0, 0
|
||
CLA
|
||
DATFLD
|
||
TAD I SITCNT
|
||
SNA
|
||
JMP COMGE3
|
||
ISZ COMGE0
|
||
CIA
|
||
CMA
|
||
DCA I SITCNT
|
||
ISZ I SIECNT
|
||
JMP COMGE1
|
||
TAD TC7766
|
||
DCA I SIECNT
|
||
TAD I SIBUF
|
||
DCA COMGT1
|
||
TAD I COMGT1
|
||
DCA I SIBUF
|
||
COMGE1, TAD I SIECNT
|
||
TAD C0003
|
||
SMA
|
||
STL RAL
|
||
SPA
|
||
STL CIA
|
||
TAD I SIBUF
|
||
DCA COMGT1
|
||
TAD I COMGT1
|
||
SZL
|
||
JMP COMGE2
|
||
AND TC7400
|
||
DCA COMGT2
|
||
ISZ COMGT1
|
||
TAD I COMGT1
|
||
AND TC7400
|
||
CLL RTR
|
||
RTR
|
||
TAD COMGT2
|
||
RTR
|
||
RTR
|
||
COMGE2, AND C0377
|
||
DCA CHAR
|
||
COMGE3, CHDF
|
||
JMP I COMGE0
|
||
|
||
/GET A FREE BLOCK AND RETURN ITS ADDRESS
|
||
/CALL TAD FIELD 1 LINK
|
||
/ GETFBL
|
||
/ NONE AVAILABLE
|
||
/ ADDR IN AC
|
||
|
||
GETFBL=JMS I GETFBA
|
||
|
||
COMGT1,
|
||
GETFB0, 0
|
||
DCA CHDFA
|
||
TAD CHDFA
|
||
CIF
|
||
GETBLK
|
||
JMP I GETFB0
|
||
DATFLD
|
||
TAD I CHDFA
|
||
CHDF
|
||
ISZ GETFB0
|
||
JMP I GETFB0
|
||
|
||
|
||
/SEARCH FOR JOB IN CORE
|
||
/CALL TAD SEARCH ITEM
|
||
/ CORES
|
||
/ RETURN WITH CORE ARG IN AC
|
||
|
||
COMGT2,
|
||
CORSER, 0
|
||
CIF
|
||
CORE
|
||
SWAP SI CJOB
|
||
CLA
|
||
JMP I CORSER
|
||
|
||
|
||
|
||
|
||
JOBNO, "J;"O;"B;240;0
|
||
KSPACE, 240;240;"K;0
|
||
|
||
|
||
/NUMBER INPUT
|
||
/CALL NUMBIN
|
||
/ -N N=7,9 IN ASCII
|
||
/ NOT A NUMBER
|
||
/ # IN AC
|
||
|
||
NUMBIN=JMS I NUMBIA
|
||
|
||
ASCOT0,
|
||
NUMSGN, 0 /SIGN
|
||
NUMAGN=NUMHO+1 /MAGNITUDE
|
||
ASCOT1,
|
||
NUMCNT, 0 /DIGIT COUNT
|
||
NUMCOM, 240-254 /" "-","
|
||
NUMPLS, -253 /+
|
||
NUMINU, -255 /-
|
||
NUMZER, -260
|
||
NUMM5, -5
|
||
NUMB17, 17
|
||
NUMDSP, JMP NUMDEC
|
||
|
||
NUMBI0, 0
|
||
TAD I NUMBI0 /SET CONVERSION DISPATCH
|
||
AND C0002
|
||
SNA CLA
|
||
TAD C0010
|
||
TAD NUMDSP
|
||
DCA NUMDEC-1
|
||
DCA NUMSGN /INITIALIZE
|
||
DCA NUMAGN
|
||
DCA NUMHO
|
||
DCA NUMCNT
|
||
SKIP /SKIP SPACES AND TABS
|
||
JMP NUMBI4 /BUFFER EMPTY
|
||
TAD CHAR
|
||
TAD NUMPLS /+?
|
||
SNA CLA
|
||
JMP NUMBI1 /YES
|
||
TAD CHAR
|
||
TAD NUMINU /-?
|
||
SZA CLA
|
||
JMP NUMBI2 /NO
|
||
ISZ NUMSGN
|
||
NUMBI1, COMGET /GET A CHARACTER
|
||
JMP NUMBI3
|
||
NUMBI2, TAD CHAR
|
||
TAD NUMZER
|
||
SPA CLA /DIGIT?
|
||
JMP NUMBI3 /NO
|
||
TAD CHAR
|
||
TAD I NUMBI0
|
||
SMA SZA CLA
|
||
JMP NUMBI3
|
||
TAD CHAR
|
||
AND NUMB17
|
||
DCA CHDFA
|
||
ISZ NUMCNT
|
||
TAD NUMCNT /MORE THAN 4 DIGITS?
|
||
TAD NUMM5
|
||
SPA CLA
|
||
JMP NUMBI5 /NO
|
||
TAD NUMHO /SHIFT HIGH ORDER
|
||
CLL RTL
|
||
RAL
|
||
AND C7770
|
||
DCA NUMHO
|
||
TAD NUMAGN
|
||
CLL RTL
|
||
RTL
|
||
AND C0007
|
||
TAD NUMHO
|
||
DCA NUMHO
|
||
NUMBI5, TAD NUMAGN
|
||
CLL RTL
|
||
RAL
|
||
AND C7770
|
||
.
|
||
NUMDEC, CLL
|
||
TAD NUMAGN
|
||
SZL
|
||
ISZ NUMHO
|
||
CLL
|
||
TAD NUMAGN
|
||
SZL
|
||
ISZ NUMHO
|
||
CLL
|
||
TAD CHDFA
|
||
SZL
|
||
ISZ NUMHO
|
||
DCA NUMAGN
|
||
JMP NUMBI1
|
||
|
||
NUMBI3, TAD C7540 /-SPACE
|
||
TAD CHAR /WAS TERMINATOR A SPACE?
|
||
SNA
|
||
JMP NUMBI6 /YES, OK
|
||
TAD NUMCOM /NO- IS IT A ","
|
||
SNA CLA
|
||
JMP NUMBI6 /YES
|
||
ENDTST /NO--WAS IT AN ACCEPTABLE END CHAR?
|
||
SKP /YES, OK
|
||
JMP NUMBI4 /NO, COMPLAIN
|
||
|
||
NUMBI6, TAD NUMCNT /ANY VALID DIGITS IN STRING?
|
||
SNA CLA
|
||
JMP NUMBI4 /NOPE
|
||
ISZ NUMBI0 /YES, IT WAS A VALID STRING.
|
||
TAD NUMSGN
|
||
CLL RAR
|
||
CLA
|
||
TAD NUMAGN
|
||
SZL
|
||
CIA
|
||
NUMBI4, ISZ NUMBI0
|
||
JMP I NUMBI0
|
||
C7540, -240 /-SPACE
|
||
|
||
/OUTPUT ASCII MESSAGE
|
||
/CALL TAD ADDR OF DEVTBL ENTRY OR 0 IF RESPONSE DDB
|
||
/ ASCOUT
|
||
/ POINTER TO MESSAGE (TERMINATED BY 0
|
||
/ WON'T FIT
|
||
/ OK
|
||
|
||
ASCOUT=JMS I ASCOUA
|
||
|
||
|
||
ASCOU0, 0
|
||
SNA
|
||
RESDDB
|
||
ASCOU3, CDF
|
||
DCA I CONDVA
|
||
CHDF
|
||
TAD I ASCOU0
|
||
DCA ASCOT1
|
||
ISZ ASCOU0
|
||
ASCOU1, TAD I ASCOT1 /GET NEXT CHAR
|
||
SNA /END OF STRING
|
||
JMP ASCOU2 /YES
|
||
CIF CDF /NO, STORE IT IN BUFFER
|
||
DCA I TTCHAR
|
||
CHDF
|
||
PRINT
|
||
JMP I ASCOU0 /WON'T FIT
|
||
ISZ ASCOT1
|
||
JMP ASCOU1
|
||
ASCOU2, ISZ ASCOU0
|
||
JMP I ASCOU0
|
||
|
||
*SUBR+400
|
||
|
||
/GET JOB TABLE ADDRESS
|
||
/CALL GETTBA
|
||
/ RELATIVE ADDRESS
|
||
/ RETURN
|
||
|
||
GETTBA=JMS I GETBAA
|
||
|
||
GETTB0, 0
|
||
CHDF
|
||
TAD I GETTB0
|
||
DCA GETTB1
|
||
ISZ GETTB0
|
||
TAD JOBDAT
|
||
CIF
|
||
GETJTA
|
||
GETTB1, 0
|
||
JMP I GETTB0
|
||
/GET RESPONSE DEVTBL ADDRESS
|
||
/CALL RESDDB
|
||
/ ADDR IN AC AND COMRDB
|
||
|
||
RESDDB=JMS I RESPDA
|
||
|
||
RESPDB, 0
|
||
CDF
|
||
IAC
|
||
TAD I COMPTR
|
||
DCA COMRDB
|
||
TAD COMRDB
|
||
CHDF
|
||
JMP I RESPDB
|
||
|
||
/DELETE BUFFER TO CURRENT POINTER
|
||
/CALL JMS BUFDEL
|
||
/ RETURN
|
||
|
||
BUFDEL=JMS I BUFDEA
|
||
|
||
BUFDT0, 0
|
||
BUFDE0, 0
|
||
TAD COMDB0
|
||
SNA
|
||
JMP I BUFDE0 /NO, NOTHING TO DELETE
|
||
TAD C0004
|
||
DCA BUFDT0
|
||
DATFLD
|
||
TAD I BUFDT0
|
||
SNA CLA
|
||
JMP BUFDE3
|
||
TAD COMDB0
|
||
TAD C0007
|
||
DCA BUFDT0
|
||
BUFDE1, TAD I SIBUF
|
||
CIA
|
||
TAD I BUFDT0
|
||
SNA CLA
|
||
JMP BUFDE2
|
||
TAD I BUFDT0
|
||
CHDF
|
||
RETDBL
|
||
DATFLD
|
||
DCA I BUFDT0
|
||
JMP BUFDE1
|
||
BUFDE2, TAD C0003
|
||
TAD COMDB0
|
||
DCA IX1
|
||
TAD I SITCNT
|
||
SNA
|
||
JMP BUFDE4
|
||
ISZ IX1
|
||
DCA I IX1
|
||
TAD I SIECNT
|
||
DCA I IX1
|
||
BUFDE3, CHDF
|
||
JMP I BUFDE0
|
||
|
||
BUFDE4, TAD I BUFDT0
|
||
CHDF
|
||
RETBKS
|
||
DATFLD
|
||
DCA I IX1
|
||
DCA I IX1
|
||
DCA I IX1
|
||
DCA I IX1
|
||
CHDF
|
||
JMP I BUFDE0
|
||
|
||
/DECREMENT COMCNT
|
||
/CALL DECRCT
|
||
/ RETURN
|
||
|
||
DECRCT=JMS I DECRCA
|
||
|
||
DECRC0, 0
|
||
CDF
|
||
STA
|
||
TAD I COMCNT
|
||
SPA
|
||
CLA
|
||
DCA I COMCNT
|
||
CHDF
|
||
JMP I DECRC0
|
||
ASSIND, "A;"S;"S;"I;"G;"N;"E;"D;0
|
||
S3757, 3757
|
||
|
||
S, GETWRD
|
||
JOBSTS
|
||
DATFLD
|
||
AND S3757 /TURN OFF HER RUN BIT
|
||
DCA I IOTP7
|
||
CHDF
|
||
|
||
IFNZRO TC01+RK05+CDR <
|
||
GETWRD
|
||
JOBWMK+1
|
||
DATFLD
|
||
AND C0007
|
||
TAD .+3
|
||
DCA .+1
|
||
.-.>
|
||
JMP I .+1
|
||
SEXIT /NO WAIT 2 CONDITIONS TAKE S EXIT
|
||
IFNZRO TC01+RK05+CDR <
|
||
IFNZRO TC01 <
|
||
WAIT1 /DECTAPE CONTROLLER WAIT
|
||
WAIT2> /DECTAPE TIMER WAIT
|
||
IFZERO TC01<
|
||
SEXIT
|
||
SEXIT>
|
||
IFNZRO RK05 <
|
||
WAIT3> /WAITING FOR THE RK05
|
||
IFZERO RK05 <
|
||
SEXIT>
|
||
IFNZRO CDR <
|
||
SEXIT> /NOTHING SPECIAL FOR THE CARD READER AT THIS TIME
|
||
IFZERO CDR <
|
||
SEXIT>
|
||
SEXIT
|
||
SEXIT
|
||
SEXIT>
|
||
SEXIT, JMP I COMEXA
|
||
SPACES, " ;" ;" ;" ;0
|
||
|
||
IFZERO MQREG-1 <
|
||
|
||
WHERMQ, 240 /SP MQ=
|
||
315
|
||
321
|
||
275
|
||
0 >
|
||
|
||
|
||
|
||
/RUN USER PROGRAM "LOGOUT" TO DELETE FILES FOR THIS GUY
|
||
/"LOGOUT" ISSUES USER LOUT IOT TO MAKE JOB GO AWAY
|
||
|
||
JMP I LOGRER /SYSTEM ERROR ON OPEN
|
||
JMP I LOGR1 /"LOGOUT" SAVE FILE OPENED
|
||
|
||
LOGOUT, TAD LOGMA /GET POINTER TO "LOGOUT" STRING
|
||
JMP I .+1 /USER CODE FROM "SYSTAT" TO FINISH UP
|
||
SYSTAT+1
|
||
|
||
LOGRER, RERR
|
||
LOGR1, R1
|
||
LOGMA, LOGOMA-1
|
||
|
||
*SUBR+600
|
||
|
||
/ASCII TO SIXBIT CONVERT
|
||
/CALL ASCSIX
|
||
/ SOURCE-1 (TERMINATED BY 0)
|
||
/ DESTINATION-1
|
||
/ RETURN
|
||
|
||
ASCSIX=JMS I ASCSIA
|
||
|
||
ASC240, -240
|
||
|
||
ASCSI0, 0
|
||
TAD I ASCSI0
|
||
DCA IX1
|
||
ISZ ASCSI0
|
||
TAD I ASCSI0
|
||
DCA IX2
|
||
ISZ ASCSI0
|
||
ASCSI1, TAD I IX1
|
||
SNA
|
||
JMP I ASCSI0 /THAT'S ALL
|
||
TAD ASC240 /CONVERT TO SIXBIT
|
||
CLL RTL /NO
|
||
RTL
|
||
RTL
|
||
DCA CHDFA
|
||
TAD I IX1
|
||
SNA
|
||
JMP ASCSI2
|
||
TAD ASC240
|
||
TAD CHDFA
|
||
DCA I IX2
|
||
JMP ASCSI1
|
||
ASCSI2, TAD CHDFA
|
||
DCA I IX2
|
||
JMP I ASCSI0
|
||
|
||
/SKIP TO END OF COMMAND
|
||
/CALL SKPCOM
|
||
/ EMPTY BUFFER
|
||
/ NORMAL RETURN
|
||
|
||
|
||
SKPCO0, 0
|
||
SKPCO1, ENDTST /END?
|
||
JMP SKPCO2 /YES
|
||
COMGET /NO, GET NEXT CHAR
|
||
JMP I SKPCO0 /NONE
|
||
JMP SKPCO1
|
||
SKPCO2, ISZ SKPCO0
|
||
JMP I SKPCO0
|
||
|
||
|
||
/RETURN BLOCK TO FREE STORAGE
|
||
/CALL TAD ADDR OF BLOCK
|
||
/ RETDBL
|
||
/ RETURN
|
||
|
||
RETDBL=JMS I RETDBA
|
||
|
||
RETDB0, 0
|
||
CIF
|
||
RETBLK
|
||
JMP I RETDB0
|
||
|
||
/RETURN LINKED BLOCKS TO FREE STORAGE
|
||
/CALL TAD ADDRESS OF BLOCK
|
||
/ RETBKS
|
||
/ RETURN
|
||
|
||
RETBKS=JMS I RETBKA
|
||
|
||
RETBK0, 0
|
||
SNA
|
||
JMP I RETBK0
|
||
RETDBL
|
||
JMP .-3
|
||
|
||
/OCTAL TO ASCII CONVERT
|
||
/CALL TAD OCTAL #
|
||
/ OCTASC
|
||
/ BUFFER ADDR-1
|
||
/ RETURN
|
||
|
||
OCTASC=JMS I OCTASA
|
||
|
||
OCTASN=ASSCO0
|
||
OCTACT=RELCO0
|
||
OCT260, 260
|
||
|
||
OCTAS0, 0
|
||
DCA OCTASN
|
||
TAD C0004
|
||
CIA
|
||
DCA OCTACT
|
||
TAD I OCTAS0
|
||
DCA IX1
|
||
ISZ OCTAS0
|
||
TAD OCTASN
|
||
CLL RAL
|
||
SKP
|
||
OCTAS1, TAD OCTASN
|
||
RTL
|
||
RAL
|
||
DCA OCTASN
|
||
TAD OCTASN
|
||
AND C0007
|
||
TAD OCT260
|
||
DCA I IX1
|
||
ISZ OCTACT
|
||
JMP OCTAS1
|
||
DCA I IX1
|
||
JMP I OCTAS0
|
||
|
||
/ASSIGN THIS FIELD TO JOB
|
||
/CALL ASSCOR
|
||
|
||
ASSCO0, 0
|
||
CDF
|
||
TAD I JOB
|
||
DCA I SICORE
|
||
CHDF
|
||
JMP I ASSCO0
|
||
|
||
/RELEASE THIS FIELD
|
||
/CALL RELCOR
|
||
|
||
SICORE, CORTBL+1
|
||
|
||
RELCO0, 0
|
||
CDF
|
||
TAD C0200
|
||
DCA I SICORE
|
||
CHDF
|
||
JMP I RELCO0
|
||
|
||
ASSIG9, ASCOUT /TELL USER WHAT HE GOT
|
||
CRLF
|
||
NOP
|
||
JMS ASSUNI
|
||
ASCOUT
|
||
ASSIND /TYPE "ASSIGNED"
|
||
C0260, 260
|
||
JMP I COMEXA /AND LEAVE
|
||
|
||
ASSOUT, 0 /TYPE CHARACTER IN AC OUT;
|
||
CIA /FOLLOWED BY SPACE
|
||
DCA ASSBUF /CALLED WITH - CHAR IN AC
|
||
ASCOUT
|
||
ASSBUF /TYPE STRING
|
||
NOP
|
||
JMP I ASSOUT
|
||
|
||
ASSUNI, 0 /ROUTINE TO TYPE OUT UNIT NAME
|
||
GETWRD /FIRST FIGURE OUT WHAT HE WANTED
|
||
JOBREG /PC CONTAINS ORIGINAL REQUEST
|
||
AND C0037
|
||
DCA IOTP0 /DEVICE #
|
||
TAD IOTP0 /WHAT KIND OF DEVICE
|
||
TAD C7773 /-5
|
||
SPA /DEVICE #'S .GE. 5 ARE DTA
|
||
JMP ASSG10 /NOT DTA
|
||
DCA IOTP0 /UNIT #
|
||
TAD IOTP0
|
||
AND C7770
|
||
SNA CLA
|
||
TAD C0007
|
||
TAD ASSDK
|
||
JMS ASSOUT /TYPE "D SPACE" (or K space)
|
||
TAD IOTP0
|
||
AND C0007
|
||
TAD C0260
|
||
CIA
|
||
ASSG11, JMS ASSOUT /TYPE "N SPACE"; N=0,1,...,7
|
||
JMP I ASSUNI /RETURN
|
||
|
||
ASSG10, TAD ASSTBZ /END OF ASSIGNMENT TABLE
|
||
DCA IOTP0 / +UNIT # -5 = PTR TO ASSTBL
|
||
TAD I IOTP0
|
||
JMP ASSG11 /TYPE OUT DEVICE ASSIGNED
|
||
|
||
ASSDK, -"K
|
||
C7773, 7773
|
||
ASSTBZ, ASSD
|
||
ASSBUF, 0
|
||
240
|
||
0
|
||
|
||
*SUBR+1000
|
||
|
||
/SIXBIT TO ASCII CONVERT
|
||
/CALL JMS SIXASC
|
||
/ SIXBIT ADDR (TERMINATED BY 0 OR SIXTH CHAR)
|
||
/ ASCII BUFFER-1
|
||
/ RETURN
|
||
|
||
SIXM6, -3
|
||
SIXCNT, 0
|
||
SIXADR, 0
|
||
SIX240=WHERLK
|
||
C0077, 77
|
||
|
||
SIXASC, 0
|
||
SNA
|
||
TAD SIXM6 /COUNT
|
||
DCA SIXCNT
|
||
TAD I SIXASC
|
||
DCA SIXADR
|
||
ISZ SIXASC
|
||
TAD I SIXASC
|
||
DCA IX2
|
||
ISZ SIXASC
|
||
SIXAS2, TAD I SIXADR
|
||
AND C7700
|
||
SNA
|
||
JMP SIXAS1
|
||
CLL RTR
|
||
RTR
|
||
RTR
|
||
TAD SIX240
|
||
DCA I IX2
|
||
TAD I SIXADR
|
||
AND C0077
|
||
SNA
|
||
JMP SIXAS1
|
||
TAD SIX240
|
||
DCA I IX2
|
||
ISZ SIXADR
|
||
ISZ SIXCNT
|
||
JMP SIXAS2
|
||
SIXAS1, DCA I IX2 /CLEAR LAST WORD
|
||
JMP I SIXASC
|
||
|
||
/RETURN PARAMETERS
|
||
/CALL RETPAR
|
||
/ RETURN
|
||
|
||
RETPAR=JMS I RETPAA
|
||
|
||
|
||
RETPA0, 0
|
||
GETWRD
|
||
JOBLNK
|
||
IAC
|
||
DCA RETPA1
|
||
CIF
|
||
BLT
|
||
DATFLD /SOURCE FLD
|
||
RETPA1, 0 /SOURCE ADDR
|
||
CHDF /DESTINATION FIELD
|
||
IOTP0 /DEST ADDR
|
||
-7 /-COUNT
|
||
STA /RETURN PARAMETER LBLOCK TO FREE STORAGE
|
||
TAD RETPA1
|
||
CIF
|
||
RETBLK
|
||
CLA
|
||
JMP I RETPA0
|
||
/SAVE/RESTORE BUFFER POINTERS
|
||
/CALL JMS RESTBP
|
||
/ RETURN
|
||
|
||
|
||
RESTBP, 0
|
||
TAD COMDB0
|
||
TAD C0004
|
||
DCA IX1
|
||
DATFLD
|
||
TAD I IX1
|
||
DCA I SITCNT
|
||
TAD I IX1
|
||
DCA I SIECNT
|
||
TAD I IX1
|
||
DCA I SIBUF
|
||
CHDF
|
||
JMP I RESTBP
|
||
|
||
SAVNAM, TAD SIJOB /PRGTBL INDEX=3*JOB
|
||
TAD SIJOB
|
||
TAD SIJOB
|
||
TAD PRGTBA /START OF PRGTBL-3 (NO ENTRY FOR JOB 0)
|
||
DCA IX1
|
||
DATFLD
|
||
TAD IOTP3 /TRANSFER 3 WORD BLOCK
|
||
DCA I IX1
|
||
TAD IOTP4
|
||
DCA I IX1
|
||
TAD IOTP5
|
||
DCA I IX1
|
||
CHDF
|
||
TAD C0003 /FILE 3
|
||
DCA IOTP1
|
||
JMP I LNGIOT /GO DO OPEN
|
||
|
||
PRGTBA, PRGTBL-3-1
|
||
|
||
|
||
HASITM, " ;" ;"H;"A;"S;" ;" ;0
|
||
|
||
/ROUTINE TO GET USER'S ACCOUNT # IN FORM M,N OR M
|
||
/CALL
|
||
/ ACCTIN
|
||
/ ILLEGAL CHARACTER IN STRING
|
||
/ RETURN WITH ACCOUNT # IN AC
|
||
|
||
ACC0, 0
|
||
DCA ACC1 /CLEAR #
|
||
ACC3, NUMBIN /GET ONE COMPONENT
|
||
-"7
|
||
JMP ACC4 /COULDN'T DO IT
|
||
TAD ACC1 /ACCUMULATE INTO TOTAL
|
||
DCA ACC1
|
||
TAD CHAR /TERMINATOR A COMMA
|
||
TAD ACCOMA
|
||
SNA CLA
|
||
JMP ACC2 /YES-- SO SHIFT NUMBER THUS FAR INTO LEFT HALF OF WORD
|
||
TAD ACC1 /NO- RETURN WHOLE #
|
||
ISZ ACC0 /SKIP TO INDICATE GOODNESS
|
||
ACC4, JMP I ACC0
|
||
|
||
ACC2, TAD ACC1 /SHIFT IT LEFT 6 PLACES
|
||
CLL RTL
|
||
RTL
|
||
RTL
|
||
DCA ACC1 /SAVE IT
|
||
COMGET /GET PAST THE OFFENDING COMMA
|
||
JMP ACC4 /NONE LEFT, BUT WE NEED ONE--ERROR
|
||
JMP ACC3 /GET NEXT PART OF NUMBER
|
||
|
||
ACC1, 0
|
||
ACCOMA, -",
|
||
WHERLK, 240 /SP L=
|
||
314
|
||
275
|
||
0
|
||
|
||
*COMMAN
|
||
|
||
LOGINE, JMS LOGIE0
|
||
SIERR
|
||
JMP I COMEXA
|
||
|
||
LOGIE0, 0
|
||
TAD COMDB0
|
||
SNA
|
||
JMP LOGIE1
|
||
IAC
|
||
DCA IOTP0
|
||
DATFLD
|
||
TAD I IOTP0
|
||
AND C7700
|
||
DCA I IOTP0
|
||
CHDF
|
||
LOGIE1, RESDDB
|
||
DATFLD
|
||
CLA
|
||
TAD I COMRDB
|
||
SNA
|
||
JMP LOGIE2
|
||
IAC
|
||
DCA IOTP0
|
||
DCA I IOTP0
|
||
LOGIE2, CDF
|
||
TAD I JOB /SET JOB = 0
|
||
AND C7700
|
||
DCA I JOB
|
||
TAD SIJOB
|
||
TAD JOBTBA /SET JOBTBL ENTRY=0
|
||
DCA CHDFA
|
||
DATFLD
|
||
DCA I CHDFA
|
||
TAD I JOBDAT /RETURN JOB STATUS BLOCKS
|
||
CHDF
|
||
RETBKS
|
||
DATFLD
|
||
DCA I JOBDAT
|
||
CHDF
|
||
JMP I LOGIE0
|
||
LOGUNA, UNACCT
|
||
|
||
LOGINF, GETWRD
|
||
JOBREG+2
|
||
SNA CLA
|
||
JMP LOGIF1 /HOW DID HE TERMINATE COMMAND
|
||
JMS LOGIE0
|
||
TAD LOGUNA
|
||
JMP I COMEXA
|
||
LOGIF1, ASCOUT /FINISH TYPING MESSAGES ON LOGIN
|
||
VERSMA, VERSIM /FIRST OUTPUT VERSION #
|
||
JMP I COMEXA
|
||
TAD SIJOB /NOW OUTPUT JOB#
|
||
JMS I LOGJPR /PRINT #JOB, ACCOUNT & CONSOLE#
|
||
ASCOUT
|
||
SPACES
|
||
JMP I COMEXA
|
||
TAD LOGFA2 /FUDGE COMRET TO GO TO LOGIF2 ON COMPLETION
|
||
DCA COMEXA / OF TIME EVALUATION
|
||
TAD SIJOB /PUT "LOGIN" IN PRGTBL FOR THIS JOB
|
||
TAD SIJOB
|
||
TAD SIJOB /PRGTBL INDEX IS 3*JOB#
|
||
TAD LOGPRG /START OF PRGTBL-3-1
|
||
DCA IX1
|
||
DATFLD
|
||
TAD LOGN5A /LO
|
||
DCA I IX1
|
||
TAD LOGN5B /GI
|
||
DCA I IX1
|
||
TAD LOGN5C /N
|
||
DCA I IX1
|
||
JMP I .+1 /NOW GO DO TIME EVALUATION
|
||
TIME3
|
||
|
||
LOGPRG, PRGTBL-3-1
|
||
LOGN5A, 5457 /LO
|
||
LOGN5B, 4751 /GI
|
||
LOGN5C, 5600 /N
|
||
|
||
|
||
|
||
VERSIN, TAD VERSMA /TYPE OUT VERSION #
|
||
JMP I COMEXA
|
||
|
||
LOGJPR, USRJPR /PRINT USER #
|
||
LOGFA2, LOGIF2
|
||
|
||
|
||
|
||
|
||
IOTSET, GETTBA
|
||
JOBLNK
|
||
DCA CHDFA
|
||
TAD IOTP0
|
||
DATFLD
|
||
DCA I CHDFA
|
||
CHDF
|
||
CALFIP /EXECUTE IOT
|
||
LOGME0, LOGE0
|
||
LOGME1, LOGE1
|
||
LOGME2, ILLREQ
|
||
JMP LOGINE /FIP ERROR RETURN
|
||
JMP LOGINF /OK RETURN
|
||
LOGIN, TAD SIJOB
|
||
SZA CLA
|
||
JMP LOGIN2
|
||
TAD JOBTBA /JOB # AVAILABLE?
|
||
DCA IX4
|
||
DATFLD
|
||
TAD JOBONC
|
||
DCA CHDFA
|
||
LOGIN1, TAD I IX4
|
||
SNA CLA
|
||
JMP LOGIN4 /GOT A JOB #
|
||
ISZ CHDFA
|
||
JMP LOGIN1
|
||
LOGIN3, TAD LOGME1 /CAPACITY EXCEEDED
|
||
SKP
|
||
LOGIN6, TAD LOGME2 /NUMBER REQUIRED
|
||
DCA IOTP0
|
||
CDF
|
||
TAD I JOB
|
||
AND C7700
|
||
DCA I JOB
|
||
TAD IOTP0
|
||
JMP I COMERA
|
||
LOGIN2, TAD LOGME0 /CONSOLE IN USE
|
||
JMP I COMERA
|
||
LOGIN4, TAD JOBTBA /SAVE JOB #
|
||
CIA
|
||
TAD IX4
|
||
DCA SIJOB
|
||
TAD SIJOB
|
||
CDF
|
||
TAD I JOB
|
||
DCA I JOB
|
||
CHDF
|
||
ACCTIN /GET ACCT #
|
||
JMP LOGIN6 /NOT A NUMBER
|
||
DCA IOTP2
|
||
DATFLD
|
||
TAD IOTP2
|
||
AND I OFFMSK
|
||
CHDF
|
||
SZA CLA
|
||
JMP I LOGI3A
|
||
TAD COMBFA /GET PASSWORD IN ASCII
|
||
TEXTS
|
||
CLA
|
||
ASCSIX /CONVERT TO SIXBIT
|
||
COMBUF-1
|
||
IOTP3-1
|
||
CDF
|
||
TAD I FRECNT
|
||
TAD LOGMIN
|
||
SPA CLA
|
||
JMP I LOGI3A
|
||
TAD SIJOB /PUT ENTRY IN TTYTBL
|
||
TAD TTYTBA
|
||
DCA IOTP7
|
||
RESDDB
|
||
STA
|
||
TAD COMDB0
|
||
DCA IX1
|
||
TAD DEVTBA
|
||
CIA
|
||
TAD COMRDB
|
||
DATFLD
|
||
CLL RAR
|
||
DCA I IOTP7
|
||
TAD I IOTP7
|
||
TAD I COMDB0
|
||
DCA I IX1
|
||
TAD SIJOB
|
||
DCA I IX1
|
||
STL RAR
|
||
DCA I IX1
|
||
TAD I COMRDB
|
||
SZA
|
||
JMP LOGIN5
|
||
TAD COMRDB
|
||
CHDF
|
||
GETFBL
|
||
LOGDDB, 0
|
||
LOGIN5, DCA LOGDDB
|
||
DATFLD
|
||
TAD I IOTP7
|
||
DCA I LOGDDB
|
||
ISZ LOGDDB
|
||
TAD SIJOB
|
||
DCA I LOGDDB
|
||
CHDF
|
||
TAD IX4 /INITIALIZE JOB STATUS
|
||
GETFBL
|
||
0
|
||
DCA IX1
|
||
TAD IX1
|
||
ISZ IX1
|
||
GETFBL
|
||
LOGMIN, -STOMIN /MINIMUM FREE STORAGE FOR NEW JOB
|
||
GETFBL
|
||
OFFMSK, F1OFFJ
|
||
STA
|
||
TAD IX1
|
||
DATFLD
|
||
DCA I JOBDAT
|
||
IFZERO CPU+EAE-22 < /8E WITH EAE:
|
||
CHDF
|
||
GETWRD /SC IS BUMPED OVER 2 BITS AND MODE AND GT ARE
|
||
JOBEAE+1 /IN BITS 10 AND 11
|
||
CLA CLL CML RTL
|
||
DATFLD
|
||
DCA I IOTP7 > /SET TO MODE A, GT OFF.
|
||
DCA IOTP7
|
||
CHDF
|
||
GETTBA
|
||
JOBLNK
|
||
GETFBL
|
||
NOP
|
||
DCA LOGPMA
|
||
DATFLD
|
||
ISZ I IX1 /SET JSWAIT IN STR1
|
||
ISZ IX1
|
||
ISZ I IX1 /SET JSWAIT IN WAIT MASK
|
||
CHDF
|
||
CIF
|
||
BLT
|
||
CHDF /SOURCE FLD
|
||
IOTPAR+1 /SOURCE ADDR
|
||
DATFLD /DEST FLD
|
||
LOGPMA, 0 /DEST ADDR
|
||
-10 /-COUNT
|
||
CALFIP
|
||
LOGI3A, LOGIN3
|
||
|
||
EXAMI1, CHDF
|
||
ASCOUT
|
||
CRLF
|
||
JMP I EXAMI5
|
||
TAD IOTP3
|
||
DCA NUMHO
|
||
TAD COMBFA
|
||
DCA IX2
|
||
DCA IOTP4
|
||
EXAMI3, TAD I IX2
|
||
OCTASC
|
||
IOTPAR
|
||
ASCOUT
|
||
IOTP0
|
||
JMP I EXAMI5
|
||
ISZ NUMHO
|
||
SKP
|
||
JMP I EXAMI5
|
||
ASCOUT
|
||
SPACE
|
||
JMP I EXAMI5
|
||
JMP EXAMI3
|
||
|
||
EXAMI5, DEPOS3
|
||
|
||
|
||
|
||
*COMMAN+400
|
||
|
||
ASSTBL, .
|
||
-"R
|
||
-"P
|
||
-"I
|
||
-"L
|
||
-"C
|
||
ASSD, -"D
|
||
ASSK, -"K /****** THIS TABLE MUST BE FOLLOWED BY A POSITIVE NUMBER
|
||
ASSCAL, IOTSET
|
||
ASSBFA, -COMBUF
|
||
|
||
SIERR
|
||
JMP ASSIGF
|
||
ASSIGN, JMS W2BUSY /SEE IF WAIT 2 IS BUSY
|
||
TAD COMBFA
|
||
TEXTS
|
||
DCA CHDFA /POINTER TO LAST CHAR IN AC
|
||
TAD ASSBFA /ONE CHARACTER ONLY?
|
||
TAD CHDFA
|
||
SZA CLA
|
||
JMP ASSIG4 /NO
|
||
TAD ASSTBL
|
||
DCA IOTP2
|
||
ASSIG2, ISZ IOTP2
|
||
TAD I IOTP2
|
||
SMA
|
||
JMP ASSIG4-1
|
||
TAD I CHDFA
|
||
SZA CLA /MATCH?
|
||
JMP ASSIG2 /NO
|
||
TAD I CHDFA /YES, RK05?
|
||
TAD ASSK
|
||
SZA
|
||
JMP ASSIGD /NO, CHECK FOR DECTAPE?
|
||
NUMBIN
|
||
-"7
|
||
JMP ASSGK2 /WE MUST FIND A DRIVE
|
||
ASSGK1, DCA IOTP1
|
||
TAD IOTP1
|
||
AND C7774
|
||
SZA CLA
|
||
JMP ASSIG4
|
||
TAD C0015
|
||
JMP ASSG3K
|
||
|
||
ASSGK2, TAD ASSRK5
|
||
DCA IX2
|
||
TAD C7774
|
||
JMS ASSSUB
|
||
AND C0003
|
||
JMP ASSGK1
|
||
ASSIGD, TAD C0007 /"K-"D
|
||
SZA CLA
|
||
JMP ASSIG3 /NO, MUST BE SOME OTHER DEVICE
|
||
NUMBIN /YES, GET UNIT #
|
||
-"7
|
||
JMP ASSIG6 /HE WANTS US TO CHOOSE FOR HER
|
||
ASSIG7, DCA IOTP1
|
||
TAD IOTP1 /IS UNIT # .LE. 7?
|
||
AND C7770
|
||
SZA CLA
|
||
JMP ASSIG4 /NO...ERROR
|
||
ASSIG3, TAD ASSTBL
|
||
IAC
|
||
CIA
|
||
TAD IOTP2
|
||
ASSG3K, TAD IOTP1
|
||
TAD C4000
|
||
ACSET, DCA IOTP1 /SAVE AC IN BOTH USER'S AC AND PC
|
||
GETTBA
|
||
JOBREG
|
||
DCA CHDFA
|
||
TAD IOTP1
|
||
DATFLD
|
||
DCA I CHDFA
|
||
ISZ CHDFA
|
||
ISZ CHDFA /NOW POINTS TO USERS AC
|
||
TAD IOTP1
|
||
DCA I CHDFA
|
||
CHDF
|
||
JMP I ASSCAL
|
||
|
||
C0015, 15
|
||
C7774, 7774
|
||
|
||
ASSIG6, TAD ASSDTA /POSITION OF DTA IN DRVTBL-1
|
||
DCA IX2
|
||
TAD C7770 /ONLY EIGHT POSSIBILITIES
|
||
JMS ASSSUB
|
||
AND C0007
|
||
JMP ASSIG7
|
||
|
||
ASSSUB, 0
|
||
DCA IX1
|
||
DATFLD
|
||
TAD I IX2 /PICK UP DEVTBL ENTRY
|
||
SNA CLA /AVAILABLE?
|
||
JMP ASSG60 /YES
|
||
ISZ IX1 /NO...TRY THE NEXT ONE
|
||
JMP .-4
|
||
ASSIG8, CLA /NO MORE TO TRY
|
||
TAD ASSNON
|
||
JMP I COMEXA /"NO SUCH DEVICE"
|
||
|
||
ASSG60, TAD IX1 /GOT ONE; UNIT # IN BITS 8-11 IF IX1
|
||
JMP I ASSSUB
|
||
|
||
|
||
|
||
ASSNON, NONSUC /NO SUCH DEVICE
|
||
ASSG9A, ASSIG9
|
||
ASSDTA, DEVTBE+5-1
|
||
ASSRK5, DEVTBE+5+10-1
|
||
|
||
|
||
|
||
SIERR
|
||
JMP RELF
|
||
RELEAS, JMP ASSIGN
|
||
|
||
RELF, GETWRD
|
||
JOBREG+2
|
||
SZA CLA
|
||
ASSIG4, TAD .+2
|
||
JMP I COMEXA
|
||
ILLREQ
|
||
|
||
|
||
W2BUSY, 0
|
||
GETWRD
|
||
JOBWMK+1 /GET JOB WAIT MASK 2
|
||
SNA CLA /IS HE WAITING FOR ANYTHING????
|
||
JMP I W2BUSY /NO BACK TO WHATEVER
|
||
TAD WAITMS /WAIT FOR I/O COMPLETION
|
||
JMP I COMEXA
|
||
WAITMS, WAITIO
|
||
|
||
ASSIGF, GETWRD /HOW DID WE FARE IN FIP
|
||
JOBREG+2
|
||
SNA
|
||
JMP I ASSG9A /WE GOT IT TELL THE USER
|
||
SPA
|
||
JMP ASSIG8 /FAILED
|
||
DCA IOTP0
|
||
ASCOUT
|
||
CRLF
|
||
NOP
|
||
TAD IOTP0 /OWNER
|
||
JMS I ASSUPN
|
||
ASCOUT
|
||
HASITM
|
||
NOP
|
||
JMS I ASSUNA
|
||
ASCOUT
|
||
CRLF
|
||
NOP
|
||
JMP I COMEXA
|
||
|
||
ASSUPN, USRJPR
|
||
ASSUNA, ASSUNI
|
||
|
||
|
||
SIERR
|
||
JMP I IOTEND
|
||
FOPEN, NUMBIN /FILE #
|
||
-267
|
||
JMP I COMERA
|
||
AND C0003
|
||
DCA IOTP1
|
||
JMS NULLNA
|
||
ASCSIX
|
||
COMBUF-1
|
||
IOTP3-1
|
||
ENDTST
|
||
JMP FOPEN1
|
||
ACCTIN /ACCOUNT #
|
||
SKP
|
||
DCA IOTP2
|
||
FOPEN1, GETTBA
|
||
JOBLNK
|
||
GETFBL
|
||
COMWAT /NONE, TRY LATER
|
||
DCA FOPEN2
|
||
CIF
|
||
BLT
|
||
CHDF /SOURCE FLD
|
||
IOTPAR+1 /SOURCE ADDR
|
||
DATFLD /DEST FLD
|
||
FOPEN2, 0 /DEST ADDR
|
||
-10 /-COUNT
|
||
CALFIP
|
||
|
||
SIERR
|
||
JMP I IOTEND
|
||
CLOSE, NUMBIN
|
||
-267
|
||
JMP CLOSE2
|
||
AND C0003
|
||
CMA
|
||
DCA IOTP2
|
||
STL
|
||
RAR
|
||
ISZ IOTP2
|
||
JMP .-2
|
||
DCA IOTP2
|
||
TAD IOTP1
|
||
AND IOTP2
|
||
SNA CLA
|
||
TAD IOTP2
|
||
TAD IOTP1
|
||
DCA IOTP1
|
||
JMP CLOSE
|
||
CLOSE2, TAD IOTP1
|
||
SNA
|
||
TAD C4000
|
||
JMP I SHTIOT
|
||
|
||
|
||
SIERR
|
||
JMP I IOTEND
|
||
CREATE, JMS NULLNA
|
||
ASCSIX
|
||
COMBUF-1
|
||
IOTP1-1
|
||
JMP I LNGIOT
|
||
NULLNA, 0
|
||
TAD COMBFA
|
||
TEXTS /READ IN THE NAME
|
||
CIA
|
||
TAD COMBFA /WAS IT A NULL NAME
|
||
SNA CLA
|
||
JMP I COMERA /YES
|
||
JMP I NULLNA
|
||
|
||
|
||
SIERR
|
||
JMP I IOTEND
|
||
RENAME, NUMBIN /FILE #
|
||
-267
|
||
JMP I COMERA
|
||
AND C0003
|
||
DCA IOTP1
|
||
JMS NULLNA
|
||
ASCSIX
|
||
COMBUF-1
|
||
IOTP2-1
|
||
JMP I LNGIOT
|
||
|
||
SIERR
|
||
JMP I IOTEND
|
||
EXTEND,
|
||
REDUCE, NUMBIN /FILE #
|
||
-267
|
||
JMP I COMERA
|
||
AND C0003
|
||
DCA IOTP1
|
||
NUMBIN
|
||
-271
|
||
JMP I COMERA
|
||
DCA IOTP2
|
||
JMP I LNGIOT
|
||
|
||
|
||
|
||
C7637, 7637
|
||
|
||
SIERR
|
||
JMP I IOTEND
|
||
PROTEC, NUMBIN /FILE #
|
||
-267
|
||
JMP I COMERA
|
||
AND C0003
|
||
CLL RTL
|
||
RTL
|
||
RAL
|
||
DCA IOTP1
|
||
NUMBIN
|
||
-267
|
||
JMP I COMERA
|
||
AND C7637
|
||
TAD IOTP1
|
||
JMP I SHTIOT
|
||
|
||
|
||
*COMMAN+1000
|
||
|
||
ST3770, 3770
|
||
ST7377, 7377
|
||
STERF, -JSWAIT-JSERR-JSDEL-1
|
||
STACHK, W2BUSY
|
||
|
||
START, JMS I STACHK /CAN'T START IKF I/O IN PROGRESS
|
||
ENDTST /END OF COMMAND?
|
||
JMP START1 /YES
|
||
START0, GETTBA /NO, SET STARTING ADDRESS
|
||
JOBREG
|
||
DCA IOTP2
|
||
ENDTST
|
||
JMP START2 /NO STARTING ADDRESS FOR "R" OR "RUN" ASSUME 0
|
||
GETWRD
|
||
JOBSTS
|
||
AND ST7377 /CLEAR "R PRIV. BIT"
|
||
DATFLD
|
||
DCA I IOTP7
|
||
CHDF
|
||
NUMBIN
|
||
-267
|
||
JMP I COMERA /NON-ACTAL ADDRESS
|
||
START2, DATFLD
|
||
DCA I IOTP2
|
||
ISZ IOTP2 /CLEAR LINK & AC
|
||
DCA I IOTP2
|
||
ISZ IOTP2
|
||
DCA I IOTP2
|
||
IFZERO CPU+EAE-22 <
|
||
CHDF
|
||
GETWRD
|
||
JOBEAE+1
|
||
RTR
|
||
STL RAL
|
||
CLL RAL
|
||
DATFLD
|
||
DCA I IOTP7 > /ZERO OUT GT, AND SET MODE A
|
||
CHDF
|
||
GETTBA /RESET STATUS
|
||
JOBSTS
|
||
DCA IX1
|
||
DATFLD
|
||
DCA I IX1
|
||
DCA I IX1 /THIS IS CLEARING OUT PART OF JOB STATUS BLOCK 1
|
||
DCA I IX1
|
||
DCA I IX1
|
||
CHDF
|
||
START1, GETWRD /JSRUN=1
|
||
JOBSTS
|
||
AND ST3770 /CLEAR ERROR FLAGS + JSSTOP
|
||
TAD C4000
|
||
DATFLD
|
||
DCA I IOTP7
|
||
ISZ IOTP7
|
||
TAD I IOTP7
|
||
AND STERF
|
||
IAC /JSWAIT=1
|
||
DCA I IOTP7
|
||
ISZ IOTP7
|
||
ISZ IOTP7
|
||
CLL CLA CMA RAL
|
||
AND I IOTP7
|
||
IAC
|
||
DCA I IOTP7
|
||
CHDF
|
||
JMP I COMEXA
|
||
|
||
/
|
||
JOBS10=C0010
|
||
|
||
WHERE, JMS WHEPRT /ANSWER TO WHERE COMMAND
|
||
JMP I COMEXA
|
||
|
||
WHEPRT, 0
|
||
TAD WHEVEC /SET POINTER TO WHLST
|
||
DCA IX2
|
||
TAD JOBS10 /INITIALIZE WHERE3 TO SWITCH REG
|
||
DCA WHERE3
|
||
|
||
WHERE1, TAD I IX2 /GET TEXT ADDRESS
|
||
SNA
|
||
JMP I WHEPRT /DONE
|
||
DCA WHERE2
|
||
ASCOUT /PRINT TEXT
|
||
WHERE2, 0
|
||
NOP
|
||
GETWRD /GET JSB WORD
|
||
WHERE3, 0
|
||
JMP I IX2 /JUMP TO PROCESS JSB WORD
|
||
WHEVEC, WHLST-1
|
||
|
||
WHERE4, OCTASC /PRINT 4 OCTAL DIGITS
|
||
COMBUF-1
|
||
ASCOUT
|
||
COMBUF
|
||
NOP
|
||
WHERE5, ISZ WHERE3 /GO TO NEXT JSB WORD
|
||
JMP WHERE1
|
||
|
||
WHERE6, SPA CLA
|
||
IAC
|
||
TAD K0260
|
||
DCA I WHACA /SAVE WHERE IT WILL BE PRINTED
|
||
JMP WHERE5
|
||
|
||
IFZERO CPU+EAE-22 < /ON 8E WITH EAE:
|
||
WHERE7, RTR /GT FLAG IFF BIT 10=0, 11=0
|
||
SMA SNL CLA
|
||
IAC
|
||
TAD K0260
|
||
DCA I GT /SAVE WHERE IT WILL BE PRINTED
|
||
CML RAL /LINK HAS EAE MODE, SET FOR MODE A
|
||
TAD C0301
|
||
DCA I WHSCA /SAVE WHERE IT WILL BE PRINTED
|
||
JMP WHERE1
|
||
GT, WHERSC+5
|
||
|
||
WHERE8, RAR CLL /8E WITH EAE: SC IS BUMPED 2 BITS
|
||
RAR CLL
|
||
JMP WHERE4 >
|
||
|
||
|
||
WHLST, WHERSW
|
||
JMP WHERE4
|
||
WHERPC
|
||
JMP WHERE4
|
||
WHERLK
|
||
JMP WHERE6
|
||
WHACA, WHERAC
|
||
JMP WHERE4
|
||
IFZERO MQREG-1 <
|
||
WHERMQ
|
||
JMP WHERE4
|
||
IFZERO CPU+EAE-22 <
|
||
WHERGT
|
||
JMP WHERE7 >
|
||
IFNZRO EAE <
|
||
WHSCA, WHERSC
|
||
IFZERO CPU-2 <JMP WHERE8>
|
||
IFNZRO CPU-2 <JMPWHERE4> > >
|
||
0
|
||
|
||
C0301, 301
|
||
K0260, 260
|
||
|
||
*4200
|
||
/TEST FOR END OF COMMAND STRING
|
||
/CALL ENDTST WITH CHARACTER IN CHAR
|
||
/ END RETURN
|
||
/ NOT END
|
||
|
||
ENDTST=JMS I ENDTSA
|
||
|
||
ENDTS0, 0
|
||
TAD ENDTBA
|
||
DCA IX5
|
||
TAD I IX5
|
||
SNA
|
||
JMP .+5
|
||
TAD CHAR
|
||
SZA CLA
|
||
JMP .-5
|
||
SKP
|
||
ISZ ENDTS0
|
||
JMP I ENDTS0
|
||
|
||
ENDTBA, .
|
||
-273 /;
|
||
-272 /:
|
||
-215 /CR
|
||
-212 /LF
|
||
-213 /VT
|
||
-214 /FF
|
||
0
|
||
|
||
|
||
/GET USER STATE WORD
|
||
/CALL GETWRD
|
||
/ RELATIVE ADDRESS
|
||
/ RETURN WITH USER WORD IN AC, ADDRESS IN IOTP7
|
||
|
||
GETWRD=JMS I Z GETWRA
|
||
|
||
GETWR0, 0
|
||
TAD I GETWR0
|
||
DCA GETWR1
|
||
ISZ GETWR0
|
||
GETTBA
|
||
GETWR1, 0
|
||
DCA IOTP7
|
||
DATFLD
|
||
SZL
|
||
TAD I IOTP7
|
||
CHDF
|
||
JMP I GETWR0
|
||
|
||
/ROUTINE TO FORCE A STRING INTO AN INPUT BUFFER
|
||
/USER MUST BE LOGGED IN AS ACCOUNT 1 OR 3 TO SUCCEED
|
||
|
||
FORSE, JMS I ACCNT1 /IS THIS ACCOUNT # 1 OR 3
|
||
NUMBIN /GET CONSOLE #
|
||
-"7
|
||
JMP I COMERA /BAD CONVERSION, QUIT
|
||
CLL RAL /*2 FOR DEVTBL INDEX
|
||
TAD DEVTBA /+START OF DEVTBL
|
||
DCA FORDEV
|
||
TAD FORDEV
|
||
TAD FOR5
|
||
SMA CLA
|
||
JMP I COMERA
|
||
DATFLD
|
||
TAD I FORDEV /DOES HE HAVE A DDB?
|
||
CHDF
|
||
SZA CLA
|
||
JMP FOR0 /YES
|
||
TAD FORDEV /NO; GET ONE
|
||
CIF
|
||
GETDDB
|
||
JMP I COMERA /NONE TO GET- NEVER HAPPENS
|
||
DATFLD
|
||
TAD I FORDEV
|
||
DCA BRO8
|
||
TAD C1000
|
||
DCA I BRO8
|
||
CHDF
|
||
FOR0, JMS I FORSTG /GET INPUT STRING
|
||
FOR7, TAD I IOTP0
|
||
TAD FORFOR /CHECK FOR FORM FEED
|
||
SNA
|
||
JMP I COMEXA /IT IS; SO EXIT
|
||
TAD FORARW /NO, MAYBE IT'S A ^?
|
||
SZA CLA
|
||
JMP FOR2
|
||
ISZ IOTP0 /IT IS SO MAKE THE NEXT CHARACTER A CONTROL CHARACTER
|
||
TAD C0100
|
||
FOR2, CMA
|
||
AND I IOTP0 /GET CHARACTER
|
||
SNA /END OF STRING?
|
||
JMP I COMEXA /YES, FINISH UP
|
||
CIF CDF
|
||
DCA I TTCHAR /SET UP GIR CALL
|
||
CHDF /BACK UP HERE, SO GIR WILL RETURN PROPERLY
|
||
KEY /PUSH CHARACTER THRU PROPER CHANNELS
|
||
BROAD4,
|
||
FORDEV, 0 /DEVTBL ADDRESS
|
||
JMP FOR3 /DIDN'T FIT FOR SOME REASON
|
||
ISZ IOTP0 /NEXT CHARACTER
|
||
JMP FOR7
|
||
FOR3, BUFDEL /DELETE FORCE COMMAND
|
||
TAD FOR6
|
||
DCA COMFLG /PRINT ?? AT END OF FAILED TEXT STRING
|
||
TAD IOTP0
|
||
JMP I COMERA /EXIT; PRINT THE PORTION OF THE COMMAND THAT DIDN'T FIT
|
||
FOR5, -DEVTBE
|
||
FOR6, 167
|
||
FORFOR, -"L+100 /-FORM FEED
|
||
FORARW, "L-100-"^
|
||
ACCNT1, ACTNM1
|
||
|
||
|
||
|
||
/ROUTINE TO TYPE A MESSAGE ON EVERYBODY'S CONSOLE AT ONCE
|
||
/THE USER MUST BE LOGGED IN UNDER ACCOUNT 1 OR 3
|
||
|
||
BROAD, JMS I ACCNT1 /ONLY ACCOUNT 1 OR 3
|
||
JMS I FORSTG /GET STRING INPUT
|
||
TAD BROLN /INITIALIZE FOR ALL CONSOLES
|
||
DCA IOTP3
|
||
TAD DEVTBA /GET POINTER TO FIRST OUTPUT DDB
|
||
IAC
|
||
DCA IOTP4
|
||
DCA BROAD4 /TO REMEMBER WHETEHR WE SUCCEED
|
||
|
||
BROAD3, JMS BRO8 /PUSH STRING CR-LF STARS THRU
|
||
STARS
|
||
JMS BRO8 /OUTPUT MESSAGE
|
||
VERBRK
|
||
JMS BRO8 /CR-LF
|
||
CRLF
|
||
BROAD2, ISZ IOTP4 /ON TO NEXT CONSOLE
|
||
ISZ IOTP4
|
||
ISZ IOTP3 /ARE WE DONE?
|
||
JMP BROAD3 /NO, CONTINUE
|
||
TAD BROAD4
|
||
SZA CLA /DID ANY FAIL?
|
||
TAD BROBUS /YES
|
||
TAD BROOK
|
||
JMP I COMEXA
|
||
|
||
BRO8, 0
|
||
TAD I BRO8
|
||
DCA .+3
|
||
TAD IOTP4
|
||
ASCOUT
|
||
0
|
||
ISZ BROAD4
|
||
ISZ BRO8
|
||
JMP I BRO8
|
||
|
||
BROBUS, BUSY-OK
|
||
BROOK, OK
|
||
BROLN, -NULINE-1
|
||
FORSTG, STRNG0
|
||
|
||
*COMMAN+1400
|
||
FSIXAS, SIXASC
|
||
FDECOU, DECOUT
|
||
|
||
SIERR
|
||
JMP F2
|
||
F, NUMBIN /INTERNAL FILE #
|
||
-267
|
||
JMP I COMERA
|
||
AND C0003
|
||
DCA IOTP1
|
||
JMP I LNGIOT
|
||
F2, RETPAR
|
||
ASCOUT
|
||
CRLF
|
||
NOP
|
||
TAD IOTP1 /ACCT #
|
||
SNA
|
||
JMP I COMEXA /FILE NOT OPEN
|
||
OCTASC
|
||
COMBUF-1
|
||
JMS FOUT
|
||
STA
|
||
TAD IOTP1
|
||
SNA CLA
|
||
JMP F4 /DON'T GIVE AWAY A PASSWORD
|
||
JMS I FSIXAS /FILE NAME
|
||
IOTP2
|
||
COMBUF-1
|
||
JMS FOUT
|
||
TAD IOTP5 /PROTECTION
|
||
CLL RTL
|
||
F3, RTL
|
||
RTL
|
||
JMS USRPR
|
||
ASCOUT
|
||
SPACE
|
||
JMP I COMEXA
|
||
TAD IOTP5
|
||
JMS USRPR
|
||
ASCOUT
|
||
SPACE
|
||
JMP I COMEXA
|
||
STA
|
||
TAD IOTP1
|
||
SNA CLA
|
||
JMP I COMEXA /UFD; SIZE NOT RETURNED
|
||
TAD COMBFA
|
||
DCA IX1
|
||
TAD IOTP6 /SIZE
|
||
JMS I FDECOU
|
||
DCA I IX1
|
||
JMS FOUT
|
||
JMP I COMEXA
|
||
|
||
F4, TAD IOTP5 /LOGOUT QUOTA
|
||
CLL RAL
|
||
RTL
|
||
JMP F3 /SHIFT AN EXTRA PLACE
|
||
|
||
FOUT, 0
|
||
ASCOUT
|
||
COMBUF
|
||
JMP I FOUT
|
||
ASCOUT
|
||
SPACE
|
||
JMP I FOUT
|
||
JMP I FOUT
|
||
|
||
|
||
USER, ASCOUT /TELL USER WHERE HE IS
|
||
CRLF
|
||
JMP I COMEXA /NO ROOM, SO SKIP IT
|
||
ENDTST /THIS JOB?
|
||
JMP USER1 /YES
|
||
NUMBIN /NO; WHAT JOB THEN?
|
||
-267 /OCTAL JOB #
|
||
USER1, TAD SIJOB /ASSUME THIS JOB
|
||
USER2, SPA
|
||
CIA
|
||
DCA IOTP0 /SAVE JOB #
|
||
TAD IOTP0 /VALID JOB #?
|
||
TAD USEMAX /-HIGHEST JOB # - 1
|
||
SMA CLA
|
||
JMP I COMERA /NO SUCH JOB
|
||
DATFLD /IS THE JOB LOGGED IN?
|
||
TAD IOTP0
|
||
TAD JOBTBA
|
||
DCA IOTP1 /POINTER TO JOBTBL
|
||
TAD I IOTP1 /ADDRESS OF JOB STATUS
|
||
SNA CLA
|
||
JMP I COMEXA /NOT LOGGED IN; SAY NOTHING
|
||
CHDF /BACK UP HERE
|
||
TAD IOTP0 /JOB #
|
||
JMS USRJPR /PRINT "JOB ACCOUNT & CONSOLE"
|
||
JMP I COMEXA
|
||
|
||
USEMAX, -JOBMAX-1
|
||
|
||
USRJPR, 0 /PRINT "JOB NN"
|
||
DCA IOTP7 /SAVE #
|
||
ASCOUT
|
||
JOBNO
|
||
JMP I USRJPR /NO ROOM
|
||
TAD IOTP7 /JOB #
|
||
JMS USRPR /PRINT #
|
||
TAD IOTP7
|
||
JMS I USRACC /FIND HER ACCOUNT NUMBER
|
||
ASCOUT
|
||
ACCBUFF
|
||
JMP I USRJPR
|
||
ASCOUT
|
||
KSPACE
|
||
JMP I USRJPR
|
||
DATFLD
|
||
TAD IOTP7 /GET HER TTY #
|
||
TAD TTYTBA /POINTS TO ENTRY IN TTYTBL
|
||
DCA IOTP1
|
||
TAD I IOTP1 /GET TTY #
|
||
CHDF
|
||
JMS USRPR
|
||
JMP I USRJPR
|
||
USRACC, GETACC
|
||
|
||
USRPR, 0 /PRINT OCTAL # AS MM
|
||
OCTASC
|
||
COMBUF-1 /SNEAKY WAY TO SUPPRESS LEADING 00
|
||
ASCOUT
|
||
COMBUF+2
|
||
NOP
|
||
JMP I USRPR
|
||
|
||
*COMMAN+1600
|
||
|
||
R4A, R4
|
||
R6A, R6
|
||
R6B, COMEXT
|
||
STARTA, START0
|
||
RRFILE, RFILE
|
||
RLSA, RLS
|
||
RUNLOD, LOAD
|
||
RUNSAV, SAVE1
|
||
SETPRA, SETPRV
|
||
|
||
JMP RERR
|
||
JMP R1
|
||
RUN, JMP I RUNLOD
|
||
RERR, SIERR
|
||
JMP I COMERA
|
||
|
||
|
||
JMP RERR
|
||
JMP R1
|
||
R, JMS I SETPRA /SET THE R PRIVILEGE BIT
|
||
STL RTL /AC=LIBACT
|
||
JMP I RUNSAV
|
||
|
||
R1, GETWRD /RETURN FROM OPEN
|
||
JOBREG+2
|
||
SZA CLA
|
||
JMP I IOTEND
|
||
GETTBA
|
||
JOBLNK
|
||
GETFBL
|
||
COMWAT
|
||
DCA I R4A
|
||
TAD R6A
|
||
DCA EXITA
|
||
JMP I STARTA
|
||
R6, TAD R6B /RESTORE NORMAL EXIT
|
||
DCA EXITA
|
||
TAD C0003
|
||
TAD C4000
|
||
DCA IOTP2 /FILE 3
|
||
STA
|
||
DCA IOTP4 /CORE ADDRESS
|
||
TAD RRFILE
|
||
DCA IOTP0
|
||
IAC /CALL RLS WITH NONZERO AC FOR R AND RUN
|
||
JMS I RLSA
|
||
|
||
TAD SIJOB
|
||
CORES
|
||
SZA
|
||
JMP R8
|
||
CORES
|
||
SZA
|
||
JMP R8
|
||
ASSCOR
|
||
TAD C0122 /USER MODE, FIELD 2
|
||
R7, CIF CDF
|
||
DCA I RL2SF /FIELD OF JOB
|
||
TAD SIJOB
|
||
JMP I .+1
|
||
RUNFI
|
||
|
||
R8, DCA NUMHO /SAVE FIELD INFO
|
||
TAD R6B /RESTORE EXIT
|
||
DCA EXITA
|
||
RELCOR
|
||
TAD NUMHO
|
||
AND C0007
|
||
TAD CORTBA
|
||
DCA IOTP0
|
||
CDF
|
||
TAD SIJOB
|
||
DCA I IOTP0
|
||
TAD NUMHO
|
||
JMP R7
|
||
RL2SF, L2SF
|
||
C0122, 122
|
||
|
||
|
||
|
||
JMP RERR
|
||
JMP R1
|
||
SYSTAT, TAD SYSMA /SYSTAT COMMAND
|
||
DCA IX1 /POINTER TO FILE NAME
|
||
JMS I SETPRA /SET THE R PRIVILEGE BIT
|
||
TAD I IX1 /PUT "SYSTAT" OR "LOGOUT" IN IOTP3,4,5
|
||
DCA IOTP3
|
||
TAD I IX1
|
||
DCA IOTP4
|
||
TAD I IX1
|
||
DCA IOTP5
|
||
STL RTL /AC=LIBACT
|
||
DCA IOTP2
|
||
JMP I .+1
|
||
SAVNAM /GO SAVE NAME; THEN OPEN FILE
|
||
|
||
SYSMA, SYSM-1
|
||
|
||
SWFILE, WFILE
|
||
|
||
JMP RERR
|
||
JMP SAVE2
|
||
SAVE, JMP I .+1
|
||
SAVE3
|
||
SAVE2, GETWRD
|
||
JOBF3 /WRITE PROTECTED?
|
||
TAD C0002
|
||
DCA IOTP0
|
||
DATFLD
|
||
TAD I IOTP0 /POINTS TO PROTECTION WORD IN FILE CONTROL BLOCK
|
||
AND C0004
|
||
CHDF
|
||
SZA CLA
|
||
JMP SAVPRO /WRITE PROTECTED
|
||
TAD SWFILE
|
||
JMP I .+1
|
||
LOAD2
|
||
|
||
SAVPRO, TAD SFMS
|
||
JMP I COMERA
|
||
|
||
SFMS, FM6000 /"PROTECTION VIOLATION"
|
||
|
||
IFZERO CPU+EAE-22 <
|
||
WHERGT, 240 /SP MODE=
|
||
315
|
||
317
|
||
304
|
||
305
|
||
275
|
||
0
|
||
WHERSC, 240 /SP SP GT=X SC=
|
||
240
|
||
307
|
||
324
|
||
275
|
||
330
|
||
240
|
||
323
|
||
303
|
||
275
|
||
0 >
|
||
IFZERO CPU+EAE-20 <
|
||
WHERSC, 240 /SP SC=
|
||
323
|
||
303
|
||
275
|
||
0 >
|
||
|
||
*COMMAN+2003
|
||
|
||
LOADER, RERR
|
||
LRFILE, RFILE
|
||
LOADUA, LOADUS
|
||
SAVCHK, W2BUSY
|
||
|
||
JMP I LOADER
|
||
JMP LOAD1
|
||
LOAD,
|
||
SAVE3, ACCTIN
|
||
SKP
|
||
SAVE1, DCA IOTP2 /ACCOUNT #
|
||
ENDTST
|
||
JMP I COMERA
|
||
JMS I SAVCHK /SEE IF I/O IN PROGRESS
|
||
TAD COMBFA
|
||
TEXTS
|
||
CLA
|
||
ASCSIX
|
||
COMBUF-1
|
||
IOTP3-1 /FILE NAME
|
||
JMP I .+1 /SAVE PROGRAM NAME IN PRGTBL
|
||
SAVNAM
|
||
|
||
LOAD1, TAD LRFILE
|
||
LOAD2, DCA IOTP0
|
||
GETWRD /ERROR?
|
||
JOBREG+2
|
||
SZA CLA
|
||
JMP I IOTEND /YES
|
||
GETTBA /NO, SET UP RFILE OR WFILE
|
||
JOBLNK
|
||
GETFBL
|
||
COMWAT
|
||
DCA R4
|
||
CLL CML RTR /AC=2000
|
||
TAD C0003 /FILE #
|
||
DCA IOTP2
|
||
STA /DEFAULT CORE ADDRESS
|
||
DCA IOTP4
|
||
ENDTST /ANY PARAMETERS?
|
||
JMP LOAD4 /NO
|
||
NUMBIN /YES, FILE ADDRESS 02 CAN BE 6 DIGITS!
|
||
-267
|
||
JMP LOAD4
|
||
DCA IOTP5 /LEAST SIGN, 12 BITS
|
||
TAD NUMHO
|
||
DCA IOTP1 /HIGH ORDER
|
||
ENDTST
|
||
JMP LOAD4
|
||
NUMBIN /STARTING CORE ADDRESS
|
||
-267
|
||
JMP LOAD4
|
||
TAD IOTP4
|
||
DCA IOTP4
|
||
ENDTST
|
||
JMP LOAD4
|
||
NUMBIN /LAST CORE ADDRESS
|
||
-267
|
||
CLA CMA
|
||
CIA
|
||
TAD IOTP4
|
||
DCA IOTP3 /WORD COUNT
|
||
LOAD4, TAD SIJOB /SET UP XFER BLOCK TO LOAD USER AREA
|
||
TAD LOADM1
|
||
TAD SWBASE
|
||
CHDF
|
||
CLL RTL
|
||
DCA LOADEX
|
||
TAD LOAD5A
|
||
DCA EXITA
|
||
JMP I COMEXA
|
||
LOAD5, JMS RLS
|
||
TAD SIJOB
|
||
CORES
|
||
SZA
|
||
JMP I LOAD6A /JOB IS IN CORE
|
||
TAD LOADUB
|
||
JMP I LOADUA
|
||
|
||
LOAD6A, R8
|
||
LOAD5A, LOAD5
|
||
LOADUB, .+1
|
||
DMAR
|
||
LOADEX, 0
|
||
10
|
||
0
|
||
LOADM1, -1
|
||
0
|
||
OVERLA
|
||
READFI
|
||
|
||
RJSF3, JSF3+1
|
||
C5600, 5600
|
||
|
||
RLS, 0
|
||
SNA CLA /CALLED FROM RUN?
|
||
JMP RLS1 /NO
|
||
GETWRD /YES; INITIALIZE JOB STATUS
|
||
|
||
JOBSTS
|
||
AND C5600 /CLEAR ERROR FLAGS
|
||
DATFLD
|
||
DCA I IOTP7 /POINTS TO STR0
|
||
ISZ IOTP7
|
||
TAD I IOTP7 /GET STR1
|
||
AND C0100 /SAVE DELIMITER BIT IF SET
|
||
IAC /TURN ON THE DUMMY WAIT BIT
|
||
DCA I IOTP7 /POINTS TO STR1
|
||
ISZ IOTP7
|
||
DCA I IOTP7 /POINTS TO JOBSTB
|
||
RLS1, CHDF
|
||
GETWRD /F3 WAIT
|
||
JOBWMK
|
||
CLA
|
||
TAD RJSF3
|
||
DATFLD
|
||
DCA I IOTP7
|
||
ISZ IOTP7 /CLEAR WAIT MASK 2 AS WELL
|
||
DCA I IOTP7
|
||
TAD SIJOB
|
||
CIF CDF
|
||
DCA I SIREG
|
||
TAD I SIREG
|
||
DCA I JOB
|
||
CHDF
|
||
BLT
|
||
6221 /SOURCE FIELD (ALWAYS 2)
|
||
IOTP0
|
||
DATFLD
|
||
R4, 0
|
||
-6
|
||
JMP I RLS
|
||
|
||
*COMMAN+2200
|
||
|
||
C7766, 7766
|
||
DEPO3A, DEPOS3
|
||
|
||
DEPOSI, NUMBIN /STARTING ADDRESS
|
||
-267
|
||
JMP I COMERA
|
||
DCA IOTP5 /LOW ORDER DISC ADDRESS
|
||
TAD C7766
|
||
DCA IOTP1
|
||
TAD COMBFA
|
||
DCA IX1
|
||
DEPOS2, NUMBIN /CONVERT ARGUMENT LIST
|
||
-267
|
||
JMP DEPOS1
|
||
DCA I IX1
|
||
ISZ IOTP1
|
||
JMP DEPOS2
|
||
DEPOS1, TAD IX1
|
||
CIA
|
||
TAD COMBFA
|
||
SNA
|
||
JMP I COMERA /NOTHING TO DEPOSIT
|
||
DCA IOTP3 /-WORD COUNT
|
||
TAD SIJOB
|
||
CORES
|
||
SZA
|
||
JMP DEPOS4
|
||
TAD DEPO3A
|
||
|
||
EXAMI2, DCA SI1 /RETURN ADDRESS
|
||
TAD COMBFA
|
||
DCA IOTP4 /CORE ADDRESS-1
|
||
CLA CMA /-1 IN AC
|
||
TAD SIJOB
|
||
TAD SWBASE
|
||
CLL RTL
|
||
DCA IOTP1 /DISC EXTENSION
|
||
TAD C0010
|
||
DCA IOTP2
|
||
TAD DEPEX2
|
||
DCA IOTP6
|
||
DCA IOTP7
|
||
TAD IOTP3 /ARE WE GOING INTO NEXT JOB'S DISK IMAGE?
|
||
CLL CMA /WORD COUNT -1
|
||
TAD IOTP5 /WC+ADDRESS>7777?
|
||
SNL CLA
|
||
JMP I DEPEX /OK TO PROCEED
|
||
TAD COMA /RESET DISPATCH ADDRESS
|
||
DCA SI1
|
||
JMP I COMERA /EVIL ONCE AGAIN AVERTED
|
||
DEPEX, DEPEXA
|
||
DEPEX2, OVERLA
|
||
|
||
/RETURN AFTER READING OR WRITING USER AREA
|
||
|
||
DEPOS3, TAD COMA
|
||
DCA SI1
|
||
JMP I COMEXA
|
||
|
||
COMF, CHDF
|
||
|
||
COMA, COM
|
||
C0070, 70
|
||
|
||
DEPOS4, AND C0070
|
||
TAD C6201
|
||
DCA DEDEF
|
||
TAD IOTP5
|
||
DCA DEDEA
|
||
TAD COMF
|
||
DCA DESRF
|
||
TAD BUFFER
|
||
DCA DESRA
|
||
JMS DEMOVE
|
||
JMP I COMEXA
|
||
|
||
DEMOVE, 0
|
||
TAD IOTP3
|
||
DCA DECNT
|
||
CIF
|
||
BLT
|
||
DESRF, 0 /FROM FLD
|
||
DESRA, 0 /FROM ADDR
|
||
DEDEF, 0 /TO FLD
|
||
DEDEA, 0 /TO ADDR
|
||
DECNT, 0 /-COUNT
|
||
JMP I DEMOVE
|
||
|
||
EXAMIN, NUMBIN /STARTING ADDRESS
|
||
-267
|
||
JMP I COMERA
|
||
DCA IOTP5
|
||
NUMBIN
|
||
-271
|
||
IAC
|
||
SNA
|
||
IAC
|
||
CIA
|
||
DCA IOTP3
|
||
TAD IOTP3 /IS COUNT WAY OUT OF LINE?
|
||
SMA CLA
|
||
JMP I COMERA /YES
|
||
TAD IOTP3
|
||
CIA
|
||
TAD C7766
|
||
SMA SZA CLA
|
||
JMP I COMERA
|
||
TAD SIJOB
|
||
CORES
|
||
SZA
|
||
JMP EXAMI4
|
||
TAD EXAM1A
|
||
JMP EXAMI2
|
||
|
||
EXAM1A, EXAMI1
|
||
BUFFER, COMBUF
|
||
|
||
EXAMI4, AND C0070
|
||
TAD C6201
|
||
DCA DESRF
|
||
TAD IOTP5
|
||
DCA DESRA
|
||
TAD COMF
|
||
DCA DEDEF
|
||
TAD BUFFER
|
||
DCA DEDEA
|
||
JMS DEMOVE
|
||
JMP I EXAM1A
|
||
|
||
|
||
FORJOB, 240
|
||
306 /F
|
||
317 /O
|
||
322 /R
|
||
240
|
||
312 /J
|
||
317 /O
|
||
302 /B
|
||
240
|
||
0
|
||
|
||
*COMMAN+2400
|
||
|
||
|
||
TICLK2, INCLK2
|
||
TICLK1, INCLK1
|
||
JOBRSA, JOBRES /RESTORE JOBDAT
|
||
|
||
TIME, ENDTST /ARGUMENT?
|
||
JMP TIME1 /NO, THIS JOB
|
||
NUMBIN
|
||
-267
|
||
JMP TIME1
|
||
DCA IOTP0 /LEGAL JOB #?
|
||
TAD IOTP0
|
||
TAD JOBONC
|
||
SMA SZA CLA
|
||
JMP I COMERA /NO
|
||
TAD IOTP0 /JOB 0?
|
||
SNA CLA
|
||
JMP TIME3 /YES, TIME OF DAY
|
||
DATFLD
|
||
TAD IOTP0
|
||
TAD JOBTBA
|
||
DCA IOTP0
|
||
TAD I IOTP0
|
||
SNA /LOGGED IN?
|
||
JMP TIME5 /NO
|
||
DATFLD
|
||
DCA I JOBDAT
|
||
|
||
TIME2, CHDF
|
||
GETWRD
|
||
JOBRTM
|
||
DCA NUMHO+1
|
||
GETWRD
|
||
JOBRTH /HI ORDER TIME
|
||
TIME4, DCA NUMHO
|
||
JMS PTIME
|
||
JMS I JOBRSA /RESTORE JOBDAT IF ALTERED
|
||
TAD COMBFA
|
||
IAC
|
||
TIME5, CHDF
|
||
JMP I COMEXA
|
||
|
||
TIME1, TAD SIJOB
|
||
SZA CLA
|
||
JMP TIME2
|
||
|
||
TIME3, CDF
|
||
TAD I CLK1
|
||
CLL
|
||
TAD TICLK1
|
||
DCA NUMHO+1
|
||
SZL
|
||
IAC
|
||
TAD I CLK2
|
||
TAD TICLK2
|
||
CHDF
|
||
JMP TIME4
|
||
|
||
/ROUTINE TO CONVERT VALUE IN NUMHO AND NUMHO+1 (IN TICKS)
|
||
/TO HOURS, MINUTES AND SECONDS.
|
||
/THE RESULT IS STORED IN COMBUF AS HH:MM:SS
|
||
|
||
PTIME, 0 /ENTER WITH AC=0
|
||
TAD COMBFA /START OF OUTPUT BUFFER
|
||
DCA IX1
|
||
TAD PTABX /SET UP TABLE FETCH (LOW)
|
||
DCA PTIMX
|
||
TAD PTABX1 /SET UP TABLE FETCH (HIGH)
|
||
DCA PTIMX1
|
||
|
||
TAD PTFORM /FORMAT MASK
|
||
DCA PTCONT
|
||
|
||
PTLOOP, TAD PT0260 /INITIALIZE DIGIT COUNTER
|
||
DCA PTDIGI
|
||
CLL /DIVIDE LOOP
|
||
TAD NUMHO+1 /DOUBLE PRECISION ADD
|
||
PTIMX, NOP /(TAD PTAB1+N)
|
||
DCA NUMHO+2 /SAVE LOW ORDER REMAINDER
|
||
RAL /GET OVERFLOW
|
||
TAD NUMHO /ADD HIGH ORDER
|
||
PTIMX1, NOP /(TAD PTAB+N)
|
||
SNL
|
||
JMP PTIMA /DIVIDE OVERFLOW
|
||
DCA NUMHO /RESTORE REMAINDER
|
||
TAD NUMHO+2 /LOW ORDER RESTORE
|
||
DCA NUMHO+1
|
||
ISZ PTDIGI /COUNT THIS SUBTRACTION
|
||
JMP PTIMX-2 /CONTINUE LOOP
|
||
|
||
|
||
|
||
PTIMA, ISZ PTIMX /ADVANCE TABLE FETCH
|
||
ISZ PTIMX1 /ADVANCE TABLE FETCH
|
||
CLA /CLEAR OUT REMAINDER
|
||
TAD PTDIGI
|
||
DCA I IX1 /STORE ASCII DIGIT
|
||
TAD PTCONT
|
||
SNA /TEST FOR ALL DONE
|
||
JMP I PTIME /EXIT
|
||
RAL CLL /TEST FOR COLON PRINT
|
||
DCA PTCONT /RESTORE FORMAT
|
||
SZL /PRINT COLON?
|
||
JMP PTLOOP /CONTINUE LOOP
|
||
TAD PTCOLN /ADD COLON TO OUTPUT
|
||
DCA I IX1
|
||
JMP PTLOOP /CONTINUE LOOP
|
||
|
||
|
||
|
||
PTABX, TAD PTAB1 /TABLE FETCH LOW
|
||
PTABX1, TAD PTAB /TABLE FETCH HIGH
|
||
PTFORM, 5200 /FORMAT FOR OUTPUT
|
||
PT0260, 260
|
||
PTCOLN, 272 /ASCII COLON
|
||
|
||
PTDIGI, 0 /ASCII DIGIT BUILT HERE
|
||
PTCONT, 0 /LOOP CONTROL
|
||
C0005, 5
|
||
|
||
/SUBROUTINE TO SET R PRIVILEGE BIT
|
||
/SET BY R COMMAND, AND IN ADDITION K, LOGOUT, AND SYSTAT COMMANDS
|
||
/ALLOWS PRIVILEGED IOT'S; IE LOGOUT, PEEK
|
||
|
||
SETPRV, 0
|
||
GETWRD
|
||
JOBSTS
|
||
DATFLD
|
||
TAD C0400 /PRIVILEGE BIT
|
||
DCA I IOTP7 /SAVE IT
|
||
TAD C0005
|
||
TAD IOTP7
|
||
DCA IOTP7
|
||
DCA I IOTP7 /CLEAR HER RESTART ADDRESS
|
||
CHDF
|
||
JMP I SETPRV /AND RETURN
|
||
|
||
SYSM, 6371 /SY
|
||
6364 /ST
|
||
4164 /AT
|
||
|
||
|
||
/DOUBLE PRECISION WORDS...HIGH ORDER BITS
|
||
PTAB, 7650 /-TICKS PER 10 HRS
|
||
7767 /-TICKS PER 1 HR
|
||
7776 /-TICKS PER 10 MIN
|
||
7777 /-TICKS PER 1 MIN
|
||
7777 /-TICKS PER 10 SEC
|
||
7777 /-TICKS PER 1 SEC
|
||
|
||
/DOUBLE PRECISION WORDS...LOW ORDER BITS
|
||
PTAB1, 0700 /-TICKS PER 10 HRS
|
||
1540 /-TICKS PER 1 HR
|
||
4220 /-TICKS PER 10 MIN
|
||
6650 /-TICKS PER 1 MIN
|
||
7634 /-TICKS PER 10 SEC
|
||
7766 /-TICKS PER 1 SEC
|
||
|
||
*5600
|
||
|
||
/ROUTINE TO CONVERT CONTENTS OF AC INTO DECIMAL CHARACTER STRING
|
||
/STORE STRING USING IX1 AS BUFFER POINTER
|
||
/ONLY DECIMAL VALUES <4000 (DECIMAL) ARE VALID
|
||
|
||
DECOUT, 0
|
||
DCA BCDI /SAVE VALUE
|
||
TAD BCDC
|
||
DCA BCDP /RESET TABLE POINTER
|
||
CLL CMA RTL /AC:=-3
|
||
DCA NUMHO /SET DIGIT COUNTER
|
||
DCA JOBRES /CLEAR OUTPUT FLAG
|
||
TAD BCDT
|
||
DCA BCDN /SET MAGIC BIT
|
||
TAD BCDI /RECALL CURRENT VALUES
|
||
CLL
|
||
BCDP, TAD BCDTB /SUBTRACT BIT VALUE
|
||
SZL /SKIP IF TOO LARGE
|
||
DCA BCDI /SAVE NEW VALUE
|
||
CLA
|
||
TAD BCDN /RECALL CONSTRUCTION WORD
|
||
RAL
|
||
ISZ BCDP /ADVANCE TABLE POINTER
|
||
SNL /SKIP IF CHARACTER ASSEMBLED
|
||
JMP BCDP-3 /KEEP AT IT
|
||
DCA BCDN /SAVE CURRENT ASSEMBLY WORD
|
||
TAD BCDN
|
||
AND DEC17 /MASK OUT BCD CHARACTER
|
||
SZA /ZERO SUPPRESSION?
|
||
JMP .+4 /NON ZERO- PROCEED
|
||
TAD JOBRES /PRECEDING OUTPUT?
|
||
SNA CLA
|
||
JMP .+4 /NO; DON'T TYPE THE 0
|
||
TAD DEC260
|
||
DCA I IX1 /STORE IN BUFFER
|
||
ISZ JOBRES /SET OUTPUT FLAG
|
||
ISZ NUMHO /3 DIGITS ASSEMBLED?
|
||
JMP BCDP-2 /NO, REPEAT
|
||
TAD BCDI /NOW GET LAST DIGIT
|
||
TAD DEC260 /CONVERT TO ASCII
|
||
DCA I IX1 /STORE IN BUFFER
|
||
JMP I DECOUT /RETURN
|
||
|
||
DEC260, 260
|
||
DEC17, 17
|
||
BCDC, TAD BCDTB
|
||
BCDI, 0
|
||
BCDN, 0
|
||
BCDT, 2104 /MAGIC BITS
|
||
BCDTB, -3720 /-2000 DECIMAL
|
||
-1750 /-1000 DECIMAL
|
||
-1440 /-800
|
||
-0620 /-400
|
||
-0310 /-200
|
||
-0144 /-100
|
||
-0120 /-80
|
||
-0050 /-40
|
||
-0024 /-20
|
||
-0012 /-10
|
||
|
||
|
||
/ROUTINE TO RESTORE JOBDAT IF IT HAS BEEN KLUGED
|
||
|
||
JOBRES, 0
|
||
TAD SIJOB
|
||
SNA /IS HE LOGGED IN?
|
||
JMP .+7 /NO; JOBDAT IS NOT RELEVANT
|
||
DATFLD /YES
|
||
TAD JOBTBA /START OF JOBTBL
|
||
DCA IOTP7
|
||
TAD I IOTP7
|
||
DCA I JOBDAT /NOW JOB AND JOBDAT AGREE
|
||
CHDF
|
||
JMP I JOBRES /RETURN
|
||
|
||
/ROUTINE TO SEE IF A CONSOLE IS "ACTIVE"
|
||
/ACTIVE IS DEFINED AS HAVING A NONZERO
|
||
/FILL OR EMPTY POINTER ON INPUT OR OUTPUT SIDES
|
||
/CALL TAD DEVTBL POINTER
|
||
/ JMS TALK1
|
||
/ RETURN IF ACTIVE
|
||
/ RETURN IF NOT ACTIVE
|
||
/ IF INPUT DDB DOES NOT EXIST, CONSOLE IS INACTIVE
|
||
|
||
TALK1, 0
|
||
DCA IOTP2 /DEVTBL POINTER
|
||
DATFLD
|
||
TAD I IOTP2 /DDB ADDRESS
|
||
SNA /EXISTING?
|
||
JMP TALK12 /NOT YET
|
||
TAD C0004
|
||
DCA IOTP2 /POINTS TO FILL PTR
|
||
TAD I IOTP2 /FILL PTR
|
||
SZA CLA / =0?
|
||
JMP TALK13 /NO - SEE IF HE IS UNDER A PRIVILEGED ACCOUNT
|
||
TALK12, ISZ TALK1 /YES; CONSOLE IS THUS INACTIVE
|
||
JMP I TALK1 /RETURN
|
||
|
||
TALK13, CHDF
|
||
GETWRD
|
||
JOBSTS
|
||
AND C0200
|
||
SZA CLA
|
||
JMP TALK12 /HE IS - LET HER DO THE TALK
|
||
JMP I TALK1
|
||
|
||
ACTNM1, 0
|
||
GETWRD /CHECK ACCOUNT #
|
||
JOBACC
|
||
TAD P7777
|
||
CLL RTR /ALLOW EITHER ACCOUNT 1 OR ACCOUNT 3; NOONE ELSE!!!!
|
||
SZA CLA
|
||
JMP I COMERA /NOT ACCOUNT #; ERROR
|
||
JMP I ACTNM1
|
||
|
||
COMLGM, 314 /L
|
||
317 /O
|
||
307 /G
|
||
311 /I
|
||
316 /N
|
||
240
|
||
320 /P
|
||
314 /L
|
||
305 /E
|
||
301 /A
|
||
323 /S
|
||
305 /E
|
||
0
|
||
ILLREQ, 311 /I
|
||
314 /L
|
||
314 /L
|
||
305 /E
|
||
307 /G
|
||
301 /A
|
||
314 /L
|
||
240
|
||
322 /R
|
||
305 /E
|
||
321 /Q
|
||
325 /U
|
||
305 /E
|
||
323 /S
|
||
324 /T
|
||
215
|
||
212
|
||
0
|
||
QQEST, 277 /?
|
||
277 /?
|
||
0
|
||
PERIOD, 256 /.
|
||
0
|
||
|
||
*CTABLE
|
||
|
||
0
|
||
COMBUF, 0
|
||
0
|
||
0
|
||
0
|
||
0
|
||
0
|
||
0
|
||
0
|
||
0
|
||
0
|
||
0
|
||
0
|
||
|
||
|
||
FIPFLS=PRPER+USAVE+UREST
|
||
|
||
COMTBL, CL1 /LOGIN O1 S1;
|
||
NOLOG+PRPER+PRCRLF /IOTP2:=O1 ACCOUNT #
|
||
LIN /IOTP3-4:=S1 PASSWORD
|
||
LOGIN /RESP: VERSION # HR:MIN
|
||
-314 /.
|
||
-317
|
||
-307
|
||
-311
|
||
-316
|
||
CL1, CL2 /LOGOUT;
|
||
USERM+2 /RESP: .
|
||
OPEN /.
|
||
LOGOUT
|
||
-314
|
||
-317
|
||
-307
|
||
-317
|
||
-325
|
||
-324
|
||
CL2, CL3 /TIME;
|
||
NOLOG+PRPER+PRCRLF /RESP: HR:MIN
|
||
0 /.
|
||
TIME
|
||
-324
|
||
-311
|
||
-315
|
||
-305
|
||
CL3, CL4 /ASSIGN L1 O1;
|
||
FIPFLS+2 /AC0-5:=DEVICE # OF L1
|
||
ASD /AC6-11:=O1 UNIT #
|
||
ASSIGN /ERROR: AC NOT 0
|
||
-301 /RESP:
|
||
-323 /.
|
||
-323
|
||
-311
|
||
-307
|
||
-316
|
||
CL4, CL5 /RELEASE L1 O1;
|
||
FIPFLS+2 /SAME AS ASSIGN
|
||
REL
|
||
RELEAS
|
||
-322
|
||
-305
|
||
-314
|
||
-305
|
||
-301
|
||
-323
|
||
-305
|
||
CL5, CL7 /TALK C1 S1
|
||
NOLOG+PRPER+PRCRLF /C1=CONSOLE TO TALK TO
|
||
0 /S1=MESSAGE TO TRANSMIT
|
||
TALK /RESP: BUSY IF TARGET TTY IS ACTIVE
|
||
-"T / OTHERWISE CRLF
|
||
-"A
|
||
-"L
|
||
-"K
|
||
CL7, CL8 /OPEN O1 S1 O2;
|
||
FIPFLS+2 /IOTP1:=O1 INTERNAL FILE #
|
||
OPEN /IOTP2:=O2 ACCOUNT #
|
||
FOPEN /IOTP3-5:=S1 FILE NAME
|
||
-317 /ERROR: AC NOT 0
|
||
-320 /RESP:
|
||
-305 /.
|
||
-316
|
||
CL8, CL9 /CLOSE S1;
|
||
FIPFLS+2 /ACI:=1 I=0,1,2,3
|
||
CLOS /ERROR: AC NOT 0
|
||
CLOSE /RESP:
|
||
-303 /.
|
||
-314
|
||
-317
|
||
-323
|
||
-305
|
||
CL9, CL10 /CREATE S1;
|
||
FIPFLS+2 /IOTP1-3:=S1 FILE NAME
|
||
CRF /ERROR: AC NOT 0
|
||
CREATE /RESP:
|
||
-303 /.
|
||
-322
|
||
-305
|
||
-301
|
||
-324
|
||
-305
|
||
CL10, CL12 /RENAME O1 S1;
|
||
FIPFLS+2 /IOTP1:=O1 INTERNAL FILE #
|
||
REN /IOTP2-4:=S1 NEW NAME
|
||
RENAME /ERROR: AC NOT 0
|
||
-322 /RESP;
|
||
-305 /.
|
||
-316
|
||
-301
|
||
-315
|
||
-305
|
||
CL12, CL13 /REDUCE O1 D1;
|
||
FIPFLS+2 /IOTP1:=O1 INTERNAL FILE #
|
||
RED /IOTP2:=D1 # SEGMENTS TO REMOVE
|
||
REDUCE /ERROR: AC NOT 0
|
||
-322 /RESP:
|
||
-305 /.
|
||
-304
|
||
-325
|
||
-303
|
||
-305
|
||
CL13, CL14 /EXTEND O1 D1;
|
||
FIPFLS+2 /SAME AS REDUCE
|
||
EXT
|
||
EXTEND
|
||
-305
|
||
-330
|
||
-324
|
||
-305
|
||
-316
|
||
-304
|
||
CL14, CL15 /PROTECT O1 O2;
|
||
FIPFLS+2 /AC5-6:=O1 INTERNAL FILE #
|
||
PROT /AC7-11:=O2 NEW PROTECTION
|
||
PROTEC /ERROR: AC NOT 0
|
||
-320 /RESP:
|
||
-322 /.
|
||
-317
|
||
-324
|
||
-305
|
||
-303
|
||
-324
|
||
CL15, CL17 /F O1;
|
||
FIPFLS+3 /IOTP1:=O1 INTERNAL FILE #
|
||
FINF /ERROR: AC NOT 0
|
||
F /RESP: ACCT # FILE NAME PROT SIZE
|
||
-306 /.
|
||
CL17, CL18 /SAVE S1 O1 O2 O3;
|
||
USAVE+UREST+PRPER+2+USERM
|
||
OPEN
|
||
SAVE
|
||
-323
|
||
-301
|
||
-326
|
||
-305
|
||
CL18, CL19 /LOAM0G1 S1 O2 O3 O4
|
||
USAVE+UREST+PRPER+USERM+2
|
||
OPEN
|
||
LOAD
|
||
-314
|
||
-317
|
||
-301
|
||
-304
|
||
CL19, CL20 /START O1;
|
||
0
|
||
1 /FORCE IT THROUGH "FIPCHK"
|
||
START
|
||
-323
|
||
-324
|
||
-301
|
||
-322
|
||
-324
|
||
CL20, CL21 /S;
|
||
PRPER
|
||
0
|
||
S
|
||
-323
|
||
CL21, CL22 /WHERE;
|
||
PRPER+3
|
||
0
|
||
WHERE
|
||
-327
|
||
-310
|
||
-305
|
||
-322
|
||
-305
|
||
CL22, CL23 /USER O1;
|
||
NOLOG+PRPER+3
|
||
0
|
||
USER
|
||
-325
|
||
-323
|
||
-305
|
||
-322
|
||
CL23, CL29 /SWITCH O1;
|
||
PRPER
|
||
0
|
||
SWITCH
|
||
-323
|
||
-327
|
||
-311
|
||
-324
|
||
-303
|
||
-310
|
||
CL29, CL32 /DUPLEX;
|
||
PRPER+PRCRLF
|
||
0
|
||
DUPLEX
|
||
-304
|
||
-325
|
||
-320
|
||
-314
|
||
-305
|
||
-330
|
||
|
||
CL32, CL33 /R S1 O1
|
||
USERM+2 /S1=FILE NAME
|
||
OPEN /O1=STARTING ADDRESS; 0000 IF OMITTED
|
||
R
|
||
-322
|
||
CL33, CL34 /RUN C1 S1 O1
|
||
USERM+2 /C1=ACCOUNT OF FILE OWNER (OPTIONAL)
|
||
OPEN /S1=FILE NAME
|
||
RUN /O1=STARTING ADDRESS; 0000 IF OMITTED
|
||
-322
|
||
-325
|
||
-316
|
||
CL34, CL35 /EXAMINE C1 D1
|
||
PRPER+USERM+1 /C1=STARTING ADDRESS
|
||
DMAR
|
||
EXAMIN /D1=# OF LOCATIONS TO EXAMINE
|
||
-305
|
||
-330
|
||
-301
|
||
-315
|
||
-311
|
||
-316
|
||
CL35, CL36 /DEPOSIT C1 C2 C3 ... C13
|
||
PRPER+USERM+1 /C1=STARTING ADDRESS
|
||
DMAW /C2,...,C13=NEW VALUES
|
||
DEPOSI
|
||
-304
|
||
-305
|
||
-320
|
||
-317
|
||
-323
|
||
-311 /no ending T??? PROTECT has one!
|
||
CL36, CL37 /VERSION
|
||
NOLOG+PRPER+PRCRLF /RESP: TSS8/.C1
|
||
0
|
||
VERSIN /C1=VERSION #
|
||
-326
|
||
-305
|
||
-322
|
||
-323
|
||
-311
|
||
-317
|
||
CL37, CL38 /BREAK O1
|
||
PRPER+PRCRLF
|
||
0
|
||
BREAK
|
||
-"B
|
||
-"R
|
||
-"E
|
||
-"A
|
||
-"K
|
||
|
||
CL38, CL39 /RESTART O1
|
||
PRPER
|
||
0
|
||
RESTRT
|
||
-"R
|
||
-"E
|
||
-"S
|
||
-"T
|
||
-"A
|
||
-"R
|
||
CL39, CL40 /UNDUPLEX
|
||
PRPER+PRCRLF
|
||
0
|
||
UNDUPL
|
||
-"U
|
||
-"N
|
||
-"D
|
||
-"U
|
||
-"P
|
||
-"L
|
||
CL40, CL41 /SYSTAT
|
||
USERM+2
|
||
OPEN
|
||
SYSTAT
|
||
-"S
|
||
-"Y
|
||
-"S
|
||
-"T
|
||
-"A
|
||
-"T
|
||
CL41, CL42 /KJOB
|
||
USERM+2 /EQUIVALENT TO .R LOGOUT
|
||
OPEN
|
||
LOGOUT
|
||
-"K
|
||
-"J
|
||
-"O
|
||
-"B
|
||
CL42, CL43 /BROADCAST S1
|
||
PRPER+PRCRLF+7 /SEND MESSAGE TO ALL CONSOLES
|
||
0 /MUST BE LOGGED IN AS ACCT 1 OR 3
|
||
BROAD
|
||
-"B
|
||
-"R
|
||
-"O
|
||
-"A
|
||
-"D
|
||
-"C
|
||
CL43, CL44 /FORCE C1 S1
|
||
PRPER+PRCRLF+7 /FORCE STRING S1 INTO INPUT BUFFER OF CONSOLE C1
|
||
0 /USER MUST BE LOGGED IN AS ACCT 1 OR 3
|
||
FORSE /ANY "LETTER" PRECEEDED BY "^" WILL BECOME A CONTROL CHARACTER
|
||
-"F /"^S", "^Q", "^B" OR "^C" ARE THE MOST USEFUL
|
||
-"O
|
||
-"R
|
||
-"C
|
||
-"E
|
||
CL44, CL45 /ON LINE
|
||
PRPER+PRCRLF
|
||
0
|
||
ON
|
||
-"O
|
||
-"N
|
||
CL45, CL46 /OFFLINE
|
||
PRPER+PRCRLF
|
||
0
|
||
OFFLIN
|
||
-"O
|
||
-"F
|
||
-"F
|
||
CL46, 0
|
||
|
||
UNACCT, 325 /U
|
||
316 /N
|
||
301 /A
|
||
325 /U
|
||
324 /T
|
||
310 /H
|
||
317 /O
|
||
322 /R
|
||
311 /I
|
||
332 /Z
|
||
305 /E
|
||
304 /D
|
||
240
|
||
301 /A
|
||
303 /C
|
||
303 /C
|
||
317 /O
|
||
325 /U
|
||
316 /N
|
||
324 /T
|
||
240
|
||
0
|
||
|
||
LOGE1, 306 /FULL
|
||
325
|
||
314
|
||
314
|
||
0
|
||
|
||
WHERPC, 240 /SP PC=
|
||
320
|
||
303
|
||
275
|
||
0
|
||
WHERAC, 240 /SP SP AC=
|
||
240
|
||
301
|
||
303
|
||
275
|
||
0
|
||
WHERSW, 215 /CR LF SW=
|
||
212
|
||
240
|
||
323
|
||
327
|
||
275
|
||
0
|
||
|
||
TYCRLB, "T;"Y;"P;"E;240;"^;"B;"S;240;"F;"I;"R;"S;"T;215;212;0
|
||
NONSUC, "D;"E;"V;"I;"C;"E;240;;"N;"O;"T;240;"A;"V;"A;"I;"L;"A;"B;"L;"E
|
||
CRLF, 215
|
||
212
|
||
0
|
||
|
||
TALK, ENDTST /END OF COMMAND
|
||
JMP I COMERA /YES
|
||
NUMBIN /GET CONSOLE #
|
||
-267
|
||
JMP TALK6 /IGNORE "K"
|
||
TALK7, SPA
|
||
CIA /MAKE SURE IT'S POSITIVE
|
||
DCA IOTP0
|
||
TAD IOTP0 /VALIDITY CHECK
|
||
TAD TALKMX /-HIGHEST CONSOLE #
|
||
SMA CLA
|
||
JMP I COMERA
|
||
TAD IOTP0
|
||
CLL RAL
|
||
TAD DEVTBA /POINTER TO DEVTBL
|
||
DCA IOTP4
|
||
TAD IOTP4
|
||
JMS I TALK1A /INPUT SIDE INACTIVE?
|
||
JMP TALKNO /NO
|
||
ISZ IOTP4 /POINTS TO OUTPUT SIDE
|
||
TAD IOTP4
|
||
JMS I TALK1A /OUTPUT SIDE INACTIVE?
|
||
JMP TALKNO /NO
|
||
CDF /GET # OF CALLING CONSOLE
|
||
TAD I COMPTR
|
||
TAD TALKXX
|
||
CLL RAR
|
||
CHDF
|
||
OCTASC
|
||
COMBUF-1 /AND PUT IN COMBUF
|
||
JMS TALK5 /"CRLF** K"
|
||
TALKM1
|
||
JMS TALK5 /"MM"
|
||
COMBUF+2
|
||
TAD SIJOB
|
||
SNA
|
||
JMP .+4
|
||
JMS I TALKAC
|
||
JMS TALK5 /OUTPUT HER ACCOUNT NUMBER
|
||
ACCBUF
|
||
JMS TALK5 /" ** "
|
||
TALKM2
|
||
DCA NUMHO /MAKE CHAR,NUMHO TWO WORD VECTOR
|
||
TALK2, JMS TALK5 /PUT CHAR IN DESTINATION BUFFER
|
||
CHAR
|
||
COMGET /GET NEXT CHARACTER
|
||
JMP TALK4 /END OF MESSAGE
|
||
JMP TALK2
|
||
|
||
TALK4, JMS TALK5
|
||
CRLF
|
||
JMP I COMEXA
|
||
|
||
TALKAC, GETACC
|
||
TALKXX, -DEVTBL
|
||
TALKNO, TAD TABSYM /"BUSY"
|
||
JMP I COMEXA
|
||
|
||
|
||
|
||
TALK6, TAD CHAR /WAS IT A K?
|
||
TAD TALKMK
|
||
SZA CLA
|
||
JMP TALK7 /NO, ASSUME OPR
|
||
TAD TALKZE /MAKE CHARACTER A "0"
|
||
DCA CHAR
|
||
JMP TALK+2
|
||
|
||
TALKMK, -"K
|
||
|
||
|
||
TALK5, 0 /OUTPUT A CHARACTER
|
||
TAD I TALK5 /BUFFER ADDRESS
|
||
DCA .+3
|
||
TAD IOTP4 /DEVTBL ADDRESS
|
||
ASCOUT
|
||
0
|
||
JMP TALKNO /NO ROOM...INDICATE BUSY
|
||
ISZ TALK5 /SKIP ARGUMENT
|
||
JMP I TALK5
|
||
|
||
TABSYM, BUSY
|
||
TALKZE, "0
|
||
TALK1A, TALK1
|
||
TALKMX, -NULINE-1
|
||
|
||
|
||
LOGOMA, 5457 /LO
|
||
4757 /GO
|
||
6564 /UT
|
||
|
||
TALKM1, 215;212;"*;"*;240;"K;0
|
||
BUSY, "B;"U;"S;"Y;0
|
||
OK, "O;"K
|
||
SPACE, 240
|
||
0
|
||
|
||
*ERPAGE
|
||
|
||
SYSDSI, DSI
|
||
SYSPRT, WHEPRT
|
||
SYDING, SYBELL
|
||
SY3760, 3760
|
||
CONCLR, SICLR
|
||
SYSEJN, USRPR
|
||
|
||
SYSERR, TAD SIJOB
|
||
TAD TTYTBA
|
||
DCA COMDB0 /POINTER TO TTYTBL
|
||
DATFLD
|
||
TAD I COMDB0
|
||
CLL RAL /UNIT*2= POSITION IN DEVTBL
|
||
TAD DEVTBA
|
||
DCA COMDB0
|
||
TAD COMDB0
|
||
CDF
|
||
DCA I COMPTR
|
||
DCA COMRDB
|
||
DATFLD
|
||
TAD I COMDB0
|
||
DCA COMDB0
|
||
TAD SYSDSI
|
||
CMA
|
||
AND I COMDB0
|
||
TAD SYSDSI
|
||
DCA I COMDB0
|
||
CHDF
|
||
JMS SYSER0
|
||
TAD IOTP6
|
||
AND C0010
|
||
SZA CLA
|
||
JMP I SYDING
|
||
TAD IOTP6
|
||
SPA CLA
|
||
JMS I SYSPRT
|
||
ASCOUT
|
||
CRLF
|
||
NOP
|
||
ASCOUT
|
||
PERIOD
|
||
NOP
|
||
EXIT
|
||
|
||
SYSER0, 0
|
||
GETWRD
|
||
JOBSTS
|
||
AND C0007
|
||
TAD SYSETB
|
||
DCA SYSER1
|
||
DATFLD
|
||
TAD I IOTP7
|
||
DCA IOTP6
|
||
TAD IOTP6
|
||
AND SY3760
|
||
TAD C0010
|
||
DCA I IOTP7
|
||
ISZ IOTP7 /POINTS TO STR1
|
||
CLL STA RTL
|
||
AND I IOTP7
|
||
DCA I IOTP7
|
||
CHDF
|
||
TAD IOTP6
|
||
AND C0010
|
||
SZA CLA
|
||
JMP I SYSER0
|
||
TAD I SYSER1
|
||
DCA SYSER1
|
||
RESDDB
|
||
DATFLD
|
||
DCA CHDFA
|
||
TAD I CHDFA
|
||
CIF
|
||
JMS I CONCLR /MAKE ROOM FOR THE ERROR MESSAGE
|
||
ASCOUT
|
||
CRLF
|
||
JMP SYSER2
|
||
ASCOUT
|
||
SYSER1, 0
|
||
NOP
|
||
SYSER2, ASCOUT
|
||
FORJOB
|
||
JMP SYSER4
|
||
TAD SIJOB
|
||
JMS I SYSEJN
|
||
ASCOUT
|
||
CRLF
|
||
NOP
|
||
SYSER4, JMP I SYSER0
|
||
|
||
SYSETB, .+1
|
||
QQEST
|
||
SYSET1
|
||
SYSET2
|
||
SYSET3
|
||
QQEST
|
||
SYSET5
|
||
SYSET6
|
||
QQEST
|
||
|
||
SYSET1, 311 /ILLEGAL IOT
|
||
314
|
||
314
|
||
305
|
||
307
|
||
301
|
||
314
|
||
240
|
||
311
|
||
317
|
||
324
|
||
0
|
||
SYSET2,
|
||
SYSET3, 323 /SWAP ERROR
|
||
327
|
||
301
|
||
320
|
||
240
|
||
305
|
||
322
|
||
322
|
||
317
|
||
322
|
||
0
|
||
SYSET5, 304 /DISK ERROR
|
||
311
|
||
323
|
||
313
|
||
240
|
||
305
|
||
322
|
||
322
|
||
317
|
||
322
|
||
0
|
||
|
||
|
||
/RETURN FOR FILE COMMANDS
|
||
|
||
FIPEND, GETWRD
|
||
JOBREG+2
|
||
SNA
|
||
JMP I COMEXA
|
||
CIA
|
||
DCA IOTP1
|
||
TAD FIPETB
|
||
DCA IX1
|
||
FIPEN1, TAD I IX1
|
||
SNA
|
||
JMP FIPEN2 /NOT IN TABLE
|
||
TAD IOTP1
|
||
SZA CLA
|
||
JMP FIPEN1
|
||
TAD IX1 /GET MESSAGE ADDRESS
|
||
TAD FIPMTB
|
||
DCA IOTP1
|
||
TAD I IOTP1
|
||
JMP I COMERA
|
||
|
||
FIPEN2, ASCOUT
|
||
CRLF
|
||
NOP
|
||
ASCOUT
|
||
FAILBY
|
||
NOP
|
||
TAD COMBFA
|
||
DCA IX1
|
||
TAD IOTP1
|
||
CIA
|
||
JMS I FIPDEC
|
||
DCA I IX1
|
||
ASCOUT
|
||
COMBUF
|
||
NOP
|
||
ASCOUT
|
||
SEGMTA
|
||
NOP
|
||
JMP I COMEXA
|
||
DUPLEX, TAD C0200 /DUPLEX BIT
|
||
UNDUPL, DCA IOTP0
|
||
DATFLD
|
||
TAD I COMDB0 /WORD 1 OF DDB
|
||
AND P7577 /CLEAR BIT
|
||
TAD IOTP0 /SET BIT
|
||
DCA I COMDB0 /SAVE IT
|
||
JMP I COMEXA
|
||
P7577, 7577
|
||
|
||
FIPDEC, DECOUT
|
||
|
||
RKJOBA, RKJOB
|
||
|
||
WAIT3, TAD I RKJOBA
|
||
CIA
|
||
TAD SIJOB
|
||
SNA CLA /DOES HE OWN THE RK05 CONTROLLER?
|
||
JMP I COMEXA /YES - LET HER FINISH
|
||
DTSIDT, DCA I IOTP7 /CLEAR OUT WAIT 2 MASK
|
||
CLL STA RAL
|
||
TAD IOTP7
|
||
DCA IOTP7
|
||
STA
|
||
DCA I IOTP7 /-1 TO DEV. STATUS REG
|
||
CHDF
|
||
GETWRD
|
||
JOBREG+2
|
||
DATFLD
|
||
DCA I IOTP7 /CLEAR HER AC
|
||
JMP I COMEXA
|
||
|
||
WAITIO, "W;"A;"I;"T;" ;"F;"O;"R;" ;"I;"/;"O;215;212;0
|
||
FAILBY, 306 /F
|
||
301 /A
|
||
311 /I
|
||
314 /L
|
||
305 /E
|
||
304 /D
|
||
240
|
||
302 /B
|
||
331 /Y
|
||
240
|
||
0
|
||
|
||
SEGMTA, 240
|
||
323 /S
|
||
305 /E
|
||
307 /G
|
||
315 /M
|
||
305 /E
|
||
316 /N
|
||
324 /T
|
||
323 /S
|
||
0
|
||
|
||
FIPETB, .
|
||
4000 /FILE NOT OPEN
|
||
4400 /FILE IN USE
|
||
5000 /DIRECTORY FULL
|
||
5400 /BAD DIRECTORY
|
||
6000 /PROTECTION VIOLATION
|
||
6400 /BAD FILE NAME
|
||
7000 /FILE NOT FOUND
|
||
7400 /DISK FULL
|
||
0
|
||
FIPMTB, .-FIPETB
|
||
FM4000
|
||
FM4400
|
||
FM5000
|
||
FM5400
|
||
FM6000
|
||
FM6400
|
||
FM7000
|
||
FM7400
|
||
|
||
FM6400, "B;"A;"D;240;"F;"I;"L;"E;240;"N;"A;"M;"E;0
|
||
|
||
FM7000, 306
|
||
311
|
||
314
|
||
305
|
||
240
|
||
316
|
||
317
|
||
324
|
||
240
|
||
306
|
||
317
|
||
325
|
||
316
|
||
304
|
||
0
|
||
FM4400, 306
|
||
311
|
||
314
|
||
305
|
||
240
|
||
311
|
||
316
|
||
240
|
||
325
|
||
323
|
||
305
|
||
0
|
||
FM5000, 304
|
||
311
|
||
322
|
||
305
|
||
303
|
||
324
|
||
317
|
||
322
|
||
331
|
||
240
|
||
306
|
||
325
|
||
314
|
||
314
|
||
0
|
||
FM6000, 320
|
||
322
|
||
317
|
||
324
|
||
305
|
||
303
|
||
324
|
||
311
|
||
317
|
||
316
|
||
240
|
||
326
|
||
311
|
||
317
|
||
314
|
||
301
|
||
324
|
||
311
|
||
317
|
||
316
|
||
0
|
||
FM4000, 306
|
||
311
|
||
314
|
||
305
|
||
240
|
||
316
|
||
317
|
||
324
|
||
240
|
||
317
|
||
320
|
||
305
|
||
316
|
||
0
|
||
FM7400, 304
|
||
311
|
||
323
|
||
313
|
||
240
|
||
306
|
||
325
|
||
314
|
||
314
|
||
0
|
||
TALKM2, 240;"*;"*;215;212;0
|
||
VERSIM, 215;212;"T;"S;"S;"/;"8;".;"2;"4;"+;207;240;240;0
|
||
|
||
*VERBRK-2
|
||
215
|
||
212
|
||
/VERBRK,
|
||
ZBLOCK 200 /LOGIN MESSAGE GOES HERE
|
||
|
||
|
||
$$$$$$
|