1223 lines
25 KiB
Plaintext
1223 lines
25 KiB
Plaintext
/EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB
|
||
/COPYRIGHT 1975
|
||
/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
|
||
/
|
||
/THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON WHICH INDIVIDUAL
|
||
/EDUSYSTEM 50 MONITORS ARE TO RUN.
|
||
/FOR EACH STATEMENT, THE COMMENT INDICATES THE POSSIBLE RESPONSES.
|
||
|
||
CPU= 2 /1 IF CPU IS PDP-8; 0 IF CPU IS PDP-8/I;
|
||
/2 IF CPU IS PDP-8/E
|
||
|
||
CORMEM= 70 /HIGHEST DATA FIELD SELECT. FOR 12K SYSTEM,
|
||
/RESPOND 20, FOR 16K SYSTEM, RESPOND 30, ETC. (70 MAX)
|
||
|
||
PHONES= 0 /1 IF DC08 INCLUDES 689AG;
|
||
/0 IF IT DOES NOT OR IF TTY INTERFACING IS OTHER THAN DC08
|
||
|
||
EAE= 0 /20 IF PROCESSOR INCLUDES EAE; 0 IF IT DOES NOT
|
||
|
||
RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF SYSTEM DISK IS RF08
|
||
|
||
RS08= 1 /NUMBER OF DISCS ON THE SYSTEM, WHETHER DF/DS OR RF/RS.
|
||
/RESPOND WITH 1, 2, 3, OR 4.
|
||
|
||
PUNCH= 1 /1 IF SYSTEM INCLUDES PUNCH; 0 IF IT DOES NOT
|
||
|
||
TC01= 1 /1 IF SYSTEM INCLUDES DECTAPE(S); 0 IF IT DOES NOT
|
||
|
||
RK05= 1 /NUMBER OF RK05 CARTRIDGE DISK DRIVES ON THE SYSTEM; 0 TO 4
|
||
|
||
CDR= 1 /1 IF SYSTEM INCLUDES CARD READER; 0 IF IT DOES NOT
|
||
|
||
LPT= 1 /1 IF SYSTEM INCLUDES LINE PRINTER; 0 IF NO LINE PRINTER
|
||
|
||
DECIMAL /MONITOR CAPACITY FOR THIS SYSTEM
|
||
|
||
JOBMAX= 20 /NUMBER OF SIMULTANEOUS USERS (20 MAXIMUM)
|
||
|
||
/THE FOLLOWING ENTRIES DEFINE THE NUMBER OF TERMINALS
|
||
/ATTACHED TO THE SYSTEM, AND ALSO THE METHOD OF INTERFACING
|
||
|
||
CONTTY= 1 /WE ALWAYS HAVE A CONSOLE (K00)
|
||
|
||
DC08A= 0 /NUMBER OF TERMINALS INTERFACED VIA DC08A (PDP-8/I ONLY, 19 MAX.)
|
||
|
||
DC08LO= 0 /LOWEST HARDWARE LINE NUMBER UTILIZED ON DC08A; USUALLY 0
|
||
|
||
PT08= 0 /NUMBER OF TERMINALS INTERFACED VIA PT08 (PDP-8 & PDP-8/I ONLY)
|
||
|
||
KL8= 16 /NUMBER OF ADDITIONAL TERMINALS INTERFACED VIA KL8 (PDP-8/E ONLY, 19 MAX.)
|
||
/PARAMATERS 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.
|
||
OCTAL
|
||
PLT= 0
|
||
IFNZRO CPU < IFNZRO DC08A <ILLEGAL CONFIGURATION>>
|
||
IFNZRO 24-JOBMAX&4000 <ILLEGAL CONFIGURATION>
|
||
IFNZRO 23-KL8-PT08&4000 <ILLEGAL CONFIGURATION>
|
||
IFNZRO 24-DC08A&4000 <ILLEGAL CONFIGURATION>
|
||
IFZERO DC08A <D689=0>
|
||
IFNZRO DC08A < IFNZRO PHONES <D689=4>
|
||
IFZERO PHONES <D689=0>>
|
||
NULINE= DC08A+PT08+KL8 /EVERY TERMINAL EXCEPT THE CONSOLE
|
||
SWDEX= 5 /DISK TRACK OF THE FIRST USER SWAP TRACK
|
||
STOMIN= 5 /MINIMUM # FREE STORAGE BLOCK FOR NEW JOB
|
||
IFZERO RF08-40 <
|
||
IFZERO RS08-1 <DSKSIZ=10>
|
||
IFZERO RS08-2 <DSKSIZ=20>
|
||
IFZERO RS08-3 <DSKSIZ=30>
|
||
IFZERO RS08-4 <DSKSIZ=40>
|
||
DSKEXT= DSKSIZ-1>
|
||
IFZERO RF08 <DSKSIZ=RS08^100 /# 4K DISC TRACKS
|
||
DSKEXT= RS08^100+77>
|
||
CLOCKR= 144 /MILLISECONDS PER TICK
|
||
TICMIN= 1130 /600 TICKS PER MINUTE
|
||
INCLK2= 0322 /INITIAL CLOCK
|
||
INCLK1= 7400
|
||
TICSPS= 12 /NUMBER OF SYSTEM TICKS PER SECOND
|
||
INIDEX= 10 /INIT DISC EXTENSION
|
||
TS8DEX= 30 /FIELD 0 DISC EXTENSION*2^3
|
||
ERPDEX= 0 /ERP DISC EXTENSION*4
|
||
ERPWC= 0 /ERP WORD COUNT
|
||
FIPDEX= 4 /FIP DISC EXTENSION*4
|
||
FIPWC= 0 /FIP WORD COUNT
|
||
SIDEX= ERPDEX /SI DISC EXTENSION*4
|
||
SIWC= ERPWC /SI WORD COUNT
|
||
LIBACT= 2 /LIBRARY ACCOUNT #
|
||
BRKINI= 4000 /INITIAL USER BREAK MASK
|
||
|
||
/IOT DEFINITIONS
|
||
|
||
IFNZRO DC08A < /DC08A, DL8I IOTS
|
||
TTIL= 6401 /INCREMENT LINE REGISTER
|
||
TTI= 6402 /TELETYPE INPUT COMMAND
|
||
TTO= 6404 /TELETYPE OUTPUT COMMAND
|
||
TTCL= 6411 /CLEAR LINE REGISTER
|
||
TTLL= 6412 /LOAD LINE REGISTER, CLEAR AC
|
||
TTRL= 6414 /READ LINE REGISTER
|
||
T1SKP= 6421 /SKIP ON CLOCK FLAG
|
||
T1OFF= 6422 /TURN CLOCK OFF
|
||
T1ON= 6424 /TURN CLOCK ON
|
||
TTIR= 6461 /INCREMENT THE R REG.
|
||
TTCR= 6471 /CLEAR THE R REG.
|
||
TTLR= 6472 > /LOAD THE R REG.
|
||
/EXTEDED MEMORY
|
||
|
||
CDF= 6201 /CHANGE TO DATA FIELD 0
|
||
CIF= 6202 /CHANGE TO INSTRUCTION FIELD 0
|
||
CINT= 6204 /CLEAR USER IOT
|
||
|
||
RDF= 6214 /READ DATA FIELD
|
||
RIF= 6224 /READ INSTRUCTION FIELD
|
||
RIB= 6234 /READ INTERRUPT BUFFER
|
||
RMF= 6244 /RESTORE MEMORY FIELD
|
||
SINT= 6254 /SKIP ON USER IOT
|
||
CUF= 6264 /USER FLAG OFF
|
||
SUF= 6274 /USER FLAG ON
|
||
|
||
|
||
/EAE
|
||
MUY= 7405 /MULTIPLY
|
||
DVI= 7407 /DIVIDE
|
||
NMI= 7411 /NORMALIZE
|
||
SHL= 7413 /SHIFT ARITHMETIC LEFT
|
||
ASR= 7415 /ARITHMETIC SHIFT RIGHT
|
||
LSR= 7417 /LOGICAL SHIFT RIGHT
|
||
MQL= 7421 /LOAD MQ
|
||
SCL= 7403 /STEP COUNTER LOAD FROM MEMORY
|
||
SCA= 7441 /STEP COUNTER TO AC
|
||
MQA= 7501 /MQ TO AC
|
||
|
||
IFZERO CPU-2 <
|
||
|
||
DBSZ= 7451 /MODE B ONLY - SKIP IF AC&MQ ARE CLEAR
|
||
SWBA= 7447 /CHANGE MODE TO A
|
||
SWAB= 7431 /CHANGE MODE TO B (ALSO DOES MQL)
|
||
ACS= 7403 /AC(7:11) TO SC; AC CLEARED
|
||
SGT= 6006 /SKIP ON GT FLAG
|
||
>
|
||
|
||
|
||
|
||
/LINE PRINTER IOTS
|
||
LSF= 6661 /SKIP ON CHAR FLAG SET
|
||
LCF= 6662 /CLEAR CHAR FLAG
|
||
LSRP= 6663 /SKIP ON NOT READY OR ON ERROR
|
||
LLC= 6664 /TRANSMIT CHAR TO PRINTER
|
||
LSP= 6665 /SET PROGRAM INTERRUPT; LP08/LE8
|
||
LPC= 6666 /TRANSMIT CHAR & CLEAR FLAG
|
||
LCP= 6667 /CLEAR PROGRAM INTERRUPT
|
||
LIE= 6665 /AC11 TO INTERRUPT ENABLE; LS08/LS8E
|
||
|
||
/CTY
|
||
|
||
TPC= 6044 /LOAD TELEPRINTER AND PRINT
|
||
|
||
/DISC (DF32)
|
||
|
||
DCMA= 6601 /CLEAR
|
||
DMAR= 6603 /READ
|
||
DMAW= 6605 /WRITE
|
||
DCEA= 6611 /CLEAR DISC EXTENDED ADDRESS
|
||
DEAL= 6615 /LOAD EXTENDED ADDRESS
|
||
DFSE= 6621 /SKIP ON ERROR
|
||
DFSC= 6622 /SKIP ON COMPLETION
|
||
DEAC= 6616 /READ EXTENDED ADDRESS
|
||
|
||
/DISC (RF08)
|
||
|
||
DSAC= 6612
|
||
DORS= 6614
|
||
DIML= 6615
|
||
DIMA= 6616
|
||
DCXA= 6641
|
||
DXAL= 6643
|
||
|
||
/CARD READER IOT'S
|
||
RCSF= 6631
|
||
RCRA= 6632
|
||
RCRB= 6634
|
||
RCNO= 6635 /8E ONLY
|
||
RCRC= 6636 /8E ONLY
|
||
RCNI= 6637 /8E ONLY
|
||
RCSD= 6671
|
||
RCSE= 6672
|
||
RCRD= 6674
|
||
RCSI= 6675 /8E ONLY
|
||
RCTF= 6677 /8E ONLY
|
||
|
||
/RK05 IOT'S
|
||
|
||
IFZERO PHONES <
|
||
DSKP= 6741
|
||
DCLR= 6742
|
||
DLAG= 6743
|
||
DLCA= 6744
|
||
DRST= 6745
|
||
DLDC= 6746
|
||
DMAINT= 6747 >
|
||
IFNZRO PHONES <
|
||
DSKP= 6751
|
||
DCLR= 6752
|
||
DLAG= 6753
|
||
DLCA= 6754
|
||
DRST= 6755
|
||
DLDC= 6756
|
||
DMAINT= 6757 >
|
||
|
||
/DECTAPE
|
||
|
||
DTRA= 6761
|
||
DTCA= 6762
|
||
DTXA= 6764
|
||
DTSF= 6771
|
||
DTRB= 6772
|
||
DTLB= 6774
|
||
|
||
|
||
IFZERO CPU <
|
||
/KW8I REAL TIME CLOCK
|
||
|
||
CECI= 6137 /CLEAR AND ENABLE CLOCK AND INTERRUPT
|
||
CSCF= 6133 /SKIP AND CLEAR FLAG IF FLAG
|
||
>
|
||
IFZERO CPU-1 <
|
||
CECI= 6315 /CLOCK ENABLE
|
||
CSCF= 6301 /SKIP ON CLOCK FLAG
|
||
CCF= 6302 /CLEAR CLOCK FLAG, CLEAR ENABLE, AND CLEAR BUFFER
|
||
CLB= 6304 > /LOAD BUFFER FROM AC
|
||
|
||
IFZERO CPU-2 <
|
||
CECI= 6131 /CLOCK ENABLE
|
||
CSCF= 6133 /SKIP AND CLEAR FLAG IF FLAG
|
||
|
||
/POWER FAIL IOT
|
||
|
||
SPL= 6102 /SKIP IF POWER LOW
|
||
|
||
/ 8/E PROCESSOR IOT
|
||
SRQ= 6003 /SKIP ON INTERRUPT REQUEST
|
||
GTF= 6004 /LINK TO AC0, GT FLAG TO AC1
|
||
RTF= 6005 /AC0 TO LINK, AC1 TO GT FLAG
|
||
CAF= 6007 > /CLEAR ALL FLAGS
|
||
|
||
IFZERO CPU-4 <
|
||
CLLE= 6135 /AC11 TO INTERRUPT ENABLE FOR CLOCK
|
||
CLCL= 6136 /CLEAR CLOCK FLAG
|
||
CLSK= 6137 /SKIP ON CLOCK FLAG
|
||
SPL= 6102 /SKIP POWER LOW
|
||
CAL= 6133 > /CLEAR AC LOW FLAG
|
||
|
||
IFNZRO DC08A <
|
||
|
||
/689AG
|
||
|
||
SRF= 6701 /SKIP IF RING FLAG
|
||
SCF= 6711 /SKIP IF CARRIER FLAG
|
||
DFCRF= 6742 /CLEAR RING FLAG
|
||
CTG= 6721 /CLEAR GROUP COUNTER
|
||
RRS= 6702 /READ RING STATUS
|
||
ITG= 6731 /INCREMENT GROUP COUNTER
|
||
STR= 6722 /SET TERMINAL READY
|
||
EDF= 6704 /ENABLE DATAPHONE FEATURES
|
||
DDF= 6714 /DISABLE DATAPHONE FEATURES
|
||
CTR= 6724 /CLEAR TERMINAL FLAG
|
||
CCF= 6741 /CLEAR CARRIER FLAG
|
||
RCS= 6712 /READ CARRIER STATUS
|
||
>
|
||
|
||
/FIP IOTS (IN ABBREVIATED FORM)
|
||
|
||
SEGS= 0006 /RETURN NUMBER OF FREE SEGMENTS ON DISK
|
||
ASD= 0040 /ASSIGN
|
||
REL= 0042 /RELEASE
|
||
REN= 0200 /RENAME
|
||
OPEN= 0201 /OPEN
|
||
CLOS= 0202 /CLOSE
|
||
RFILE= 6603 /READ FILE
|
||
PROT= 0204 /PROTECT
|
||
WFILE= 6605 /WRITE FILE
|
||
CRF= 0210 /CREATE
|
||
EXT= 0211 /EXTEND
|
||
RED= 0212 /REDUCE
|
||
FINF= 6613 /FILE INFORMATION
|
||
LIN= 0214 /LOGIN
|
||
LOUT= 0215 /LOGOUT
|
||
WHO= 6616 /WHO
|
||
/DEVICE DATA BLOCK
|
||
|
||
DDBSTS= 0 /WORD 1, STATUS AND UNIT NUMBER
|
||
DXON= 2000 /XOFF SENT FLAG
|
||
DSI= 1000 /DESTINATION IS S.I. FLAG
|
||
DFULL= 400 /KEYBOARD BUFFER IS FULL
|
||
DUPL= 200 /CONSOLE IN DUPLEX MODE
|
||
SICOM= 100 /COMMAND WAITING
|
||
DECHO= 40 /CAUSE SI TO RE-ECHO CURRENT INPUT BUFFER
|
||
|
||
/DEVICE UNIT NUMBER IS IN BITS 6-11
|
||
|
||
DDBJN= 1 /WORD 2, JOB NUMBER IN 7-11
|
||
DDBBRK= 2 /BREAK MASK
|
||
DDBTIM= 3 /TIME THAT DEVICE WAS ASSIGNED
|
||
DDBINP= 4 /BUFFER FILL POINTER
|
||
DDBINC= 5 /BUFFER TOTAL COUNT
|
||
DDBOUC= 6 /BUFFER EMPTY COUNT
|
||
DDBOUP= 7 /BUFFER EMPTY POINTER
|
||
/JOB DATA AREA
|
||
|
||
JOBSTS= 0 /STATUS
|
||
/STR0
|
||
JSRUN= 4000 /RUN BIT
|
||
JSEREN= 2000 /USER ERROR ENABLE
|
||
JCOMBD= 1000 /LAST TIME THE JOB RAN AS COMPUTE BOUND
|
||
JSPEEK= 400 /ALLOW "PEEK" AND "LOGOUT" IOT'S
|
||
JSACC= 200 /JOB LOGGED IN UNDER PRIVILEGED ACCOUNT (1, 2, OR 3)
|
||
JSIOT= 100 /NON-RESIDENT IOT
|
||
JSIOTC= 40 /COPY IOT RESULT TO USER
|
||
JSEXON= 20 /EXECUTE ONLY
|
||
JSINER= 10 /INHIBIT ERROR REPORT FROM SI, (UNTIL NEXT COMMAND)
|
||
/BITS 9-11 ARE SYSTEM ERROR CODE
|
||
UUOERF= 1 /IOT ERROR
|
||
SWPRER= 2 /SWAP READ ERROR
|
||
SWPWER= 3 /SWAP WRITE ERROR
|
||
DSKERR= 5 /DISC ERROR
|
||
HUNGDV= 6 /HUNG DEVICE
|
||
|
||
/STR1
|
||
JSTIME= 4000 /TIME IS UP
|
||
JSF0= 2000 /FILE 0 IS NOT BUSY
|
||
JSF1= 1000 /FILE 1 IS NOT BUSY
|
||
JSF2= 400 /FILE 2 IS NOT BUSY
|
||
JSF3= 200 /FILE 3 IS NOT BUSY
|
||
JSDEL= 100 /KEYBOARD DELIMITER SEEN
|
||
JSLPT= 40 /LINE PRINTER BUFFER IN USE BUT NOT FULL
|
||
JSTEL= 20 /TELEPRINTER OUTPUT BUFFER IN USE BUT NOT FULL
|
||
JSPTR= 10 /CHARACTERS IN READER BUFFER
|
||
JSPTP= 4 /PUNCH BUFFER IN USE BUT IS NOT FULL
|
||
JSERR= 2 /SYSTEM ERROR DETECTED
|
||
JSWAIT= 1 /JOB NOT IN WAIT STATE
|
||
|
||
|
||
JOBSTB= 2 /DEVICE STATUS REGISTER (FOR RK05, DECTAPE, AND CARD READER)
|
||
JOBWMK= 3 /WAIT MASK
|
||
JOBSRA= 5 /JOB RESTART ADDRESS
|
||
JOBERR= 6 /JOB ERROR RESTART ADDRESS
|
||
JOBLNK= 7 /IOT LINKAGE
|
||
JOBSWR= 10 /SWITCH REGISTER
|
||
JOBREG= 11 /PC LINK AC
|
||
JOBEAE= 14 /MQ MODE GT SC
|
||
JOBACC= 16 /ACCOUNT NUMBER
|
||
JOBF0= 17 /POINTER TO FILE 0 CONTROL
|
||
JOBF1= 20 /POINTER TO FILE 1 CONTROL
|
||
JOBF2= 21 /POINTER TO FILE 2 CONTROL
|
||
JOBF3= 22 /POINTER TO FILE 3 CONTROL
|
||
JOBRTM= 23 /LOW ORDER RUN TIME
|
||
JOBRTH= 24 /HI ORDER RUN TIME
|
||
/FILE CONTROL BLOCK - POINTED TO BY JOBFX, X=0,1,2,3
|
||
|
||
FILWPT= 0 /POINTER TO FILE RETRIEVAL WINDOW
|
||
FILSCT= 1 /SEGMENT NUMBER OF FIRST WINDOW ENTRY
|
||
FILPRO= 2 /FILE PROTECTION - BIT 9
|
||
FILPAR= 3 /POINTER TO RFILE OR WFILE PARAMETER BLOCK
|
||
FILDA= 4 /DISC ADDRESS OF RFILE OR WFILE
|
||
FILWC= 6 /-WORD COUNT OF RFILE OR WFILE
|
||
FILRES= 7 /POINTER TO FILPIF IN USER AREA
|
||
|
||
/FILE RETRIEVAL WINDOW
|
||
/WORD 0: UFD LINK TO NEXT GROUP OF 7 SEGMENT POINTERS
|
||
/WORDS 1-7: SEVEN SEGMENT ADDRESSES
|
||
|
||
/RFILE OR WFILE PARAMETER BLOCK - POINTED AT BY FILPAR
|
||
|
||
FILPFN= 0 /FUNCTION: 0603 OR 0605
|
||
FILPDX= 1 /DISC EXTENSION
|
||
FILPIF= 2 /INTERNAL FILE # (BITS 10-11) AND FIELD # (BITS 7-9)
|
||
FILPWC= 3 /-WORD COUNT FOR THIS TRANSFER
|
||
FILPCA= 4 /CORE ADDRESS FOR THIS TRANSFER
|
||
FILPDA= 5 /DISC ADDRESS
|
||
FILPRA= 6 /EXEC RETURN ADDRESS FOR THIS TRANSFER
|
||
FILPCT= 7 /POINTER TO FILE CONTROL BLOCK
|
||
|
||
|
||
/CORE TABLE CONTROL FLAGS
|
||
|
||
SWAP= 4000 /SWAP REQUEST
|
||
LOCK= 2000 /LOCK IN CORE
|
||
NOTRUN= 1000 /HAS NOT BEEN SCHEDULED TO RUN
|
||
FIP= 400 /FILE PHANTOM
|
||
SI= 200 /SYSTEM INTERPRETOR
|
||
NOHOLD= 140 /INHIBIT "NOTRUN" STATUS AFTER FOUR CONSECUTIVE FILE TRANSFERS
|
||
CJOB= 37 /BITS 7-11 CONTAIN THE JOB #
|
||
|
||
|
||
|
||
/FIP TABLE DEFINITIONS
|
||
|
||
SATSIZ= 530
|
||
JTABLE= 6000
|
||
ENTABL= JTABLE+JOBMAX+1
|
||
UTABLE= ENTABL+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX
|
||
RTABLE= UTABLE+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX
|
||
|
||
|
||
/TABLES
|
||
CORTBL= 7001 /CORE ASSIGNMENT TABLE
|
||
L2QTB= CORTBL+7
|
||
IFZERO DC08A <DCSIZE=0>
|
||
IFNZRO DC08A <DCSIZE=400> /SIZE OF FIELD 1 DC08A CODE PLUS 689AG CODE
|
||
|
||
OUTREG= 200 /ACTIVE OUTPUT REGISTERS (TTY'S, LPT & PTP)
|
||
SKPTBL= OUTREG+NULINE+3 /START OF IOT SKIP TABLE
|
||
SKPTP= SKPTBL+NULINE+NULINE+3 /POSITION OF PUNCH SKIP IN SKIP TABLE
|
||
RINGIN= SKPTP+3 /KEYBOARD INPUT RING BUFFER
|
||
ENDBUF= OUTREG+200 /END OF KEYBOARD INPUT BUFFER
|
||
INPUTS= ENDBUF-RINGIN%2 /NUMBER OF POSSIBLE ENTRIES IN THE KEYBOARD RING BUFFER
|
||
|
||
DATFLD= CDF 10 /MONITOR DATA FIELD SELECT
|
||
|
||
IFZERO EAE-20 <MQREG=1>
|
||
IFZERO EAE <IFNZRO CPU&7776 <MQREG=1>
|
||
IFZERO CPU&7776 <MQREG=0>>
|
||
IFNZRO OUTREG&1 <YOU GOOFED>
|
||
/SUPER CRITICAL LOCATIONS
|
||
/THESE LOCATIONS ARE USED TO LINK TS8, TS8II, FIP, SI, AND INIT.
|
||
|
||
/IT MAY BE NECESSARY TO ADJUST THEM ACCORDINGLY
|
||
|
||
/DEFINED IN TS8:
|
||
|
||
WSCHED= 2573 /ADDRESS FOR WAIT
|
||
GETJTB= 401 /GETJTA
|
||
CORSRC= 1317 /SEARCH CORE TABLE
|
||
OVERLA= 5171 /FILE STUFF
|
||
READFI= 574 /MORE FILE STUFF
|
||
CONDBA= 132 /DEVTBL POINTER USED BY "PRINT" ETC.
|
||
RETB= 611 /RETURN A BLOCK TO FREE CORE
|
||
GETB= 1405 /GET A BLOCK OF FREE CORE
|
||
GETDB0= 1447 /GET A DDB
|
||
CLK1= 51 /LOW ORDER DAYTIME CLOCK
|
||
CLK2= 50 /HIGH ORDER DAYTIME CLOCK
|
||
DATE= 166 /12 BIT DATE WORD
|
||
TTCHAR= 31 /SAVE REG. FOR CONSOLE CHARACTERS
|
||
KBD00= 3201 /PROCESS KEYBOARD INPUT
|
||
PRINT0= 1205 /TYPE OUT A CHARACTER
|
||
OVRLA1= 562 /MORE FILE STUFF
|
||
RUNFI= 605 /SI FILE TRANSFER INITIALIZER
|
||
L2SF= 103 /LEVEL 2 SAVED MODE AND FIELD
|
||
SICLR= 6572 /SI CLEAR LINKED BUFFER
|
||
TIMSI= 2421 /TIMER FOR SI "COMWAT"
|
||
SIWAIT= 1702 /NUMBER OF SI COMMANDS BEING WAITED ON
|
||
TIMFIP= 2423 /TIMER FOR FIPLOCK
|
||
FIPLOK= 2724 /CORTBL STATUS CHECK FOR FORCE OUT
|
||
CLKINI= 322 /CONVERT HARDWARE CLOCK TO SYSTEM-TICKS (100MS)
|
||
BLT0= 1602 /BLOCK TRANSFER FROM CORE TO CORE
|
||
KBDSQ= 3213 /ADDRESS OF JMS TO ^S/^Q CODE
|
||
|
||
/DEFINED IN TS8II:
|
||
|
||
F1TCNT= 175 /SI DDB CHARACTER COUNT
|
||
F1ECNT= 176 /SI DDB EMPTY COUNT
|
||
F1BUF= 177 /SI DDB EMPTY BLOCK POINTER
|
||
DTJOB= 20 /JOB OWNING THE DECTAPE CONTROLLER
|
||
RKJOB= 54 /JOB OWNING RK05 CONTROLLER
|
||
DTSI= 1175 /SI TERMINATE A DECTAPE ON TIMER
|
||
DATA1= 2200+DCSIZE
|
||
DEVTBL= DATA1+140
|
||
DEVTBE= DEVTBL+NULINE+NULINE+2
|
||
JOBTBL= DEVTBE+22
|
||
CLKTBL= JOBTBL+JOBMAX+1
|
||
TTYTBL= CLKTBL+JOBMAX+1
|
||
PRGTBL= TTYTBL+JOBMAX+1
|
||
DSUTBL= PRGTBL+JOBMAX+JOBMAX+JOBMAX-7
|
||
FIPBLK= 7720 /FIXED BLOCK FOR FIP I/O
|
||
WINBAS= 7730 /ADDRESS OF THE BASIC WINDOW
|
||
OUTDIF= -OUTREG^2+DEVTBL /FOR LINKING BETWEEN OUTREG AND DEVTBL
|
||
F1OFFJ= 164 /FOR OFF/ON COMMANDS USED BY SI
|
||
IFNZRO DEVTBL&1 <YOU GOOFED>
|
||
|
||
/DEFINED IN SI:
|
||
|
||
DTSIDT= 7270 /RETURN FROM STOPPING A DECTAPE ON TIMER
|
||
VERBRK= 7600 /START OF INSTALLATION DEFINED LOGIN MESSAGE
|
||
/INIT 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.
|
||
/RIM AUTO-LOADER FOR TSS/8 INIT
|
||
RIM1= 7757
|
||
RIM2= 7760
|
||
*7400
|
||
FIX, DCA RD1 /SAVE SKIP IOT
|
||
*7401
|
||
TAD K5
|
||
*7402
|
||
TAD RD1
|
||
*7403
|
||
DCA RD2 /SAVE READ IOT
|
||
*7404
|
||
RIF /CURRENT FIELD
|
||
*7405
|
||
CMA
|
||
*7406
|
||
AND KCDF /CREATE CDF FOR FIELD 0 OR 2
|
||
*7407
|
||
DCA KCDF
|
||
*7410
|
||
KCDF, CDF 20
|
||
*7411
|
||
JMS FRM /READ NEXT FRAME; SKIP ON RETURN
|
||
*7412
|
||
LOOP, DCA SUM /SAVE NEW CHECKSUM
|
||
*7413
|
||
TAD CHAR0
|
||
*7414
|
||
DCA CHAR1 /SAVE LEFT BYTE
|
||
*7415
|
||
JMS READ
|
||
*7416
|
||
DCA CHAR2 /SAVE RIGHT BYTE
|
||
*7417
|
||
JMS FRM /LOOK AHEAD
|
||
*7420
|
||
JMP CHKSUM /WE HAVE THE CHECKSUM
|
||
*7421
|
||
JMS ASSMBL /ASSEMBLE BOTH BYTES
|
||
*7422
|
||
SNL /DATA OR ORIGIN?
|
||
*7423
|
||
JMP OSAVE /DATA
|
||
*7424
|
||
DCA ORG /SAVE NEW ORIGIN
|
||
*7425
|
||
ADD, TAD CHAR1
|
||
*7426
|
||
TAD CHAR2 /SUM BOTH BYTES
|
||
*7427
|
||
TAD SUM /WITH THE OLD SUM
|
||
*7430
|
||
JMP LOOP
|
||
*7431
|
||
OSAVE, DCA I ORG /SAVE DATA
|
||
*7432
|
||
ISZ ORG /INCREMENT ADDRESS
|
||
*7433
|
||
RM200, 7600 /COVER SKIP WITH CONSTANT
|
||
*7434
|
||
JMP ADD
|
||
*7435
|
||
CHKSUM, JMS ASSMBL /ASSEMBLE CHECKSUM BYTES
|
||
*7436
|
||
CIA
|
||
*7437
|
||
TAD SUM /SUBTRACT CALCULATED SUM
|
||
*7440
|
||
SZA /OK?
|
||
*7441
|
||
HLT /NO; ERROR
|
||
*7442
|
||
STL RTL /AC=2
|
||
*7443
|
||
TAD KCDF /PLUS CDF TO "INIT'S" FIELD
|
||
*7444
|
||
DCA K5 /SAVE
|
||
*7445
|
||
K5, 5 /CIF CDF TO FIELD 0 OR 2
|
||
*7446
|
||
JMP 0 /JUMP INTO INIT
|
||
*7447
|
||
READ, 0
|
||
*7450
|
||
RD1, HLT /SKIP IOT
|
||
*7451
|
||
JMP .-1
|
||
*7452
|
||
RD2, HLT /READ IOT
|
||
*7453
|
||
DCA CHAR0
|
||
*7454
|
||
TAD CHAR0
|
||
*7455
|
||
JMP I READ
|
||
*7456
|
||
FRM, 0
|
||
*7457
|
||
JMS READ /READ A FRAME
|
||
*7460
|
||
TAD RM200
|
||
*7461
|
||
SPA /IS IT DATA/ORIGIN?
|
||
*7462
|
||
ISZ FRM /YES; SKIP ON RETURN
|
||
*7463
|
||
SPA SNA CLA /FIELD SETTING?
|
||
*7464
|
||
JMP I FRM /NO
|
||
*7465
|
||
JMP FRM+1 /YES; IGNORE IT
|
||
*7466
|
||
ASSMBL, 0
|
||
*7467
|
||
TAD CHAR1 /LEFT BYTE
|
||
*7470
|
||
CLL RTL
|
||
*7471
|
||
RTL
|
||
*7472
|
||
RTL /SHIFTED INTO POSITION
|
||
*7473
|
||
TAD CHAR2 /PLUS RIGHT BYTE
|
||
*7474
|
||
JMP I ASSMBL
|
||
*7475
|
||
ORG, 0
|
||
*7476
|
||
CHAR0, 24 /CHECKSUM CORRECTION; RIGHT BYTE
|
||
*7477
|
||
CHAR1, 0
|
||
*7500
|
||
CHAR2, 0
|
||
*7501
|
||
SUM, 6000 /CHECKSUM CORRECTION; LEFT BYTE
|
||
*7601
|
||
RIMJMP, TAD RIMFIX
|
||
*7602
|
||
DCA RIM2 /RESTORE RIM LOADER
|
||
*7603
|
||
TAD RIM1 /GET SKIP IOT
|
||
*7604
|
||
JMP I FIXA
|
||
*7605
|
||
RIMFIX, JMP RIM1
|
||
*7606
|
||
FIXA, FIX
|
||
*RIM2
|
||
JMP RIMJMP /EXIT FROM RIM
|
||
/PAGE 0
|
||
|
||
FIELD 2 /INIT LOADS ONTO DISK TRACK 2
|
||
|
||
*0
|
||
JMP I SUPERA /JUST IN CASE!!
|
||
SUPERA, SUPER
|
||
|
||
|
||
*10
|
||
AXS1, .
|
||
AXS2, .
|
||
|
||
SIDATA= 20 /SYSTEM INTERPRETER DATA
|
||
|
||
CONSTANTS=SIDATA+12
|
||
*CONSTANTS
|
||
C0002, 2
|
||
C0003, 3
|
||
C0004, 4
|
||
C0007, 7
|
||
C0037, 37
|
||
C0100, 100
|
||
C1000, 1000
|
||
C7770, 7770
|
||
C7600, 7600
|
||
C7763, 7763
|
||
DM32,
|
||
C7740, 7740
|
||
|
||
JOBCON= CONSTANTS+11 /JOB CONTROL
|
||
|
||
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
|
||
|
||
DATEND= 60 /END OF FIELD 0 PAGE 0 DATA
|
||
|
||
|
||
|
||
FIPDAT= 155 /DATA REFERENCED BY FIP
|
||
*FIPDAT+1
|
||
|
||
C0400, 400
|
||
SEGSIZ= C0400 /# WORDS PER SEGMENT
|
||
CORTBA, CORTBL-1 /CORE ALLOCATION TABLE
|
||
DSUTBA, DSUTBL /USER DISC REQUEST QUEUE
|
||
|
||
/THE DATE IS KEPT AS A 12 BIT NUMBER IN THE FORMAT
|
||
/DATE=((YEAR-1974)*12+(MONTH-1))*31+DAY-1
|
||
|
||
*DATE
|
||
DATE, .
|
||
|
||
CORSRA, CORSRC
|
||
WAITA, WSCHED
|
||
WAIT= JMP I WAITA
|
||
|
||
|
||
/SUBROUTINE DISPATCHES
|
||
|
||
SUBDSP= DATEND
|
||
*SUBDSP
|
||
|
||
CHDFA, 0
|
||
INIF, HLT
|
||
JMP I CHDFA
|
||
|
||
CHDF= JMS CHDFA
|
||
|
||
CJOBMX, -JOBMAX
|
||
INBUF, INBUFA
|
||
NUMBIA, NUMBI0
|
||
CHAR, 0
|
||
NUMHO, 0
|
||
0
|
||
0
|
||
CORCNT, 0
|
||
|
||
C0010, 10
|
||
C6201, 6201
|
||
C0200, 0200
|
||
C0177, 0177
|
||
|
||
COMGEA, COMGE0
|
||
DISCA, DISC0
|
||
DISCHA, DISCH0
|
||
YESNO= JMS I .
|
||
YESNO0
|
||
MESSAG= JMS I .
|
||
MESSA0
|
||
OCTIN= JMS I .
|
||
OCTIN0
|
||
GETIN= JMS I .
|
||
GETIN0
|
||
OUTTLS= JMS I .
|
||
OUTA, OUT
|
||
INKRB= JMS I .
|
||
IN
|
||
ZERO1= JMS I .
|
||
ZERO
|
||
CHEKCC= JMS I .
|
||
CCCHEK
|
||
SWBASE, SWDEX /SWAP TRACK FOR JOB 1
|
||
C7777, -1
|
||
MC0377, -377
|
||
OSF, OSTRAP
|
||
OST, 7607
|
||
OSC, -16
|
||
OSA, 7607
|
||
OSTAB, .
|
||
RBOOT
|
||
7746
|
||
-7
|
||
7746
|
||
KBOOT
|
||
26
|
||
-4
|
||
26
|
||
KBOOT, DLCA
|
||
DLDC
|
||
DLAG
|
||
JMP 31
|
||
OSTRAP,
|
||
NOPUNCH
|
||
*7607
|
||
ENPUNCH
|
||
TAD KA
|
||
DCA 7754
|
||
TAD KA
|
||
DCA 7755
|
||
DTLB
|
||
TAD KB
|
||
DTLA
|
||
DTSF
|
||
JMP .-1
|
||
TAD KC
|
||
JMP .-4
|
||
KA, 7577
|
||
KB, 600
|
||
KC, 220
|
||
/PAGE ASSIGNMENTS
|
||
|
||
INIP= 1000
|
||
/PROGRAM TO OPEN AND MODIFY SINGLE DISC REGISTERS
|
||
|
||
*0200
|
||
DISCLK, TAD KCR /PUT OUT A CR, LF
|
||
OUTTLS
|
||
TAD KLF
|
||
OUTTLS
|
||
/ NOW GET AN ADDRESS FROM THE KEYBOARD
|
||
JMS OTIN
|
||
JMP DISCLK /: IS ONLY VALID TERMINATOR
|
||
JMP DISCLK / " "
|
||
/DISC ADDRESS FOLLOWED BY ":" HAS BEEN ENTERED
|
||
DISPLA, JMS SPACE /PROVIDE ELEGANT FORMAT
|
||
JMS I POPEN /GET REG FROM DISC
|
||
TAD OPNREG /GET THIS VALUE
|
||
JMS I PHACK /DISPLAY IT
|
||
JMS SPACE /CONTINUE POLICY OF ELEGANT FORMATING
|
||
JMS I PSAVE /SAVE VALUE, VALUE1
|
||
/REGISTER IS OPEN ---- WAIT FOR A MODIFY
|
||
JMS OTIN
|
||
JMP SHUT /TERMINATOR WAS CR
|
||
JMP CLSOPN /TERMINATOR WAS LF
|
||
|
||
/: WAS TYPED ---- MUST BE NEW DISC ADDRESS
|
||
JMP DISPLAY
|
||
|
||
/CARRIAGE RETURN MEANS CLOSE REGISTER
|
||
/FIRST, SEE IF IT WAS MODIFIED
|
||
SHUT, TAD INPUT
|
||
SPA CLA
|
||
JMP DISCLK /NO MODIFY
|
||
/OPEN REGISTER WAS MODIFIED, SO CHANGE ON THE DISC
|
||
TAD VALUE1
|
||
DCA OPNREG
|
||
JMS I PCLOSE /WRITE VALUE OUT
|
||
/NOW SEND OUT LF AND START AGAIN
|
||
JMP DISCLK
|
||
/LINE FEED MEANS CLOSE REGISTER AND OPEN THE NEXT ONE
|
||
CLSOPN, TAD INPUT
|
||
SPA CLA
|
||
JMP .+4 /NO MODIFY
|
||
/VALUE WAS MODIFIED, SO WRITE OUT NEW ONE
|
||
TAD VALUE1
|
||
DCA OPNREG
|
||
JMS I PCLOSE
|
||
/RESPOND TO LF WITH CR
|
||
TAD KCR
|
||
OUTTLS
|
||
TAD KCR
|
||
OUTTLS /FOR TIMING (??)
|
||
|
||
/NOW RESTORE ADDR WORD TO VALUE1
|
||
JMS I PRESTOR
|
||
/NOW INCREMENT ADDRESS IN VALUE, VALUE1
|
||
JMS I PNEXTAD
|
||
/NOW TYPE OUT THIS NEW ADDRESS
|
||
TAD VALUE
|
||
JMS I PHACK
|
||
TAD VALUE1
|
||
JMS I PHACK
|
||
TAD KCOLON
|
||
OUTTLS
|
||
JMP DISPLAY
|
||
|
||
/TYPE TWO SPACES
|
||
|
||
SPACE, 0
|
||
TAD KSPACE
|
||
OUTTLS
|
||
TAD KSPACE
|
||
OUTTLS
|
||
JMP I SPACE
|
||
KSPACE, 0240
|
||
|
||
KCOLON, 0272
|
||
KCR, 0215
|
||
KLF, 0212
|
||
POPEN, XOPEN
|
||
PCLOSE, CLOSE
|
||
PNEXTAD, NEXTAD
|
||
PSAVE, SAVE
|
||
PRESTOR, RESTOR
|
||
PHACK, HACK
|
||
/ROUTINE TO INPUT AN OCTAL NUMBER
|
||
/ECHOES INPUT IF IT WAS VALID
|
||
/CALL: JMS OTIN
|
||
/ CR TERMINATOR
|
||
/ LF TERMINATOR
|
||
/ : TERMINATOR
|
||
/
|
||
/RETURNS WITH "DOUBLE PRECISION" INPUT IN
|
||
/VALUE AND VALUE1
|
||
/INPUT=0 IF THERE WAS ANY, ELSE -1
|
||
|
||
OTIN, 0
|
||
CLA CMA
|
||
DCA INPUT /NO INPUT YET
|
||
DCA VALUE /SUBTOTAL
|
||
DCA VALUE1
|
||
SKP
|
||
|
||
OUTTLS
|
||
LISTEN, INKRB
|
||
DCA YCHAR
|
||
/IS THE INPUT A VALID TERMINATOR?
|
||
TAD YCHAR
|
||
TAD KMCOLON /COLON?
|
||
SNA
|
||
JMP COEXIT /YES
|
||
TAD KMLF /LF?
|
||
SNA
|
||
JMP LFEXIT /YES
|
||
TAD KMCR /CR?
|
||
SNA
|
||
JMP CREXIT /YES
|
||
/NOT A VALID TERMINATOR --- IS IT A VALID OCTAL DIGIT?
|
||
TAD KMEIGHT
|
||
STL
|
||
TAD C0010
|
||
SZL /IS IT A VALID OCTAL DIGIT?
|
||
JMP NOTOK /NO
|
||
/COMES HERE WITH A VALID OCTAL DIGIT
|
||
ISZ INPUT /REMEMBER THAT THERE IS INPUT
|
||
NOP
|
||
/NOW ADD THIS DIGIT TO THE DOUBLE PRECISION TOTAL
|
||
DCA XCHAR
|
||
/FIRST, SHIFT HIGH-ORDER WORD LEFT ONE PLACE
|
||
TAD VALUE
|
||
CLL RAL
|
||
CLL RAL
|
||
CLL RAL
|
||
DCA VALUE
|
||
/NOW GET LEFT-MOST LOW-ORDER DIGIT
|
||
TAD VALUE1
|
||
RTL
|
||
RTL
|
||
AND C0007
|
||
/MOVE THIS DIGIT INTO THE HIGH ORDER WORD
|
||
TAD VALUE
|
||
DCA VALUE
|
||
/NOW ADD NEW INPUT DIGIT
|
||
TAD VALUE1
|
||
CLL RAL
|
||
CLL RAL
|
||
CLL RAL
|
||
TAD XCHAR
|
||
DCA VALUE1
|
||
TAD YCHAR
|
||
JMP LISTEN-1 /NOW GO ECHO INPUT
|
||
|
||
COEXIT, ISZ OTIN
|
||
LFEXIT, ISZ OTIN
|
||
CREXIT, TAD YCHAR
|
||
OUTTLS /ECHO TERMINATOR
|
||
JMP I OTIN
|
||
|
||
NOTOK, CLA
|
||
MESSAG
|
||
NOTOK1
|
||
JMP OTIN+1
|
||
NOTOK1, TEXT " ?_"
|
||
|
||
|
||
VALUE, 0
|
||
VALUE1, 0
|
||
OPNREG, 0
|
||
YCHAR, 0
|
||
XCHAR, 0
|
||
INPUT, -1
|
||
|
||
KMCOLON, -0272
|
||
KMLF, -0212+":
|
||
KMCR, -0215+212
|
||
KMEIGHT, -0270+215
|
||
|
||
*0400
|
||
XOPEN, 0
|
||
JMS CONVERT /MAKE A DISC ADDRESS OUT OF VALUE, VALUE1
|
||
TAD READCOM /WE ARE READING
|
||
JMS DISK
|
||
JMP I XOPEN
|
||
READCOM, 6603 /DMAR
|
||
|
||
/ROUTINE TO CLOSE A DISC REGISTER
|
||
CLOSE, 0
|
||
TAD WRITECOM
|
||
JMS DISK
|
||
JMP I CLOSE
|
||
WRITECOM, 6605 /DMAW
|
||
|
||
/DISC TRANSFER ROUTINE
|
||
DISK, 0
|
||
DCA DISCIOT /READ IOT OR WRITE IOT
|
||
/NOW HAVE TO SET UP 7750,7751 IN FIELD 0
|
||
/REMEMBER WHAT FIELD WE'RE IN NOW
|
||
/SO WE CAN RESTORE
|
||
RIF
|
||
TAD .+2
|
||
DCA XFIELD
|
||
CDF /NOW GO TO DATA FIELD 0
|
||
CLA CMA
|
||
DCA I P7750 /LOOKING FOR ONE WORD
|
||
TAD POPNREG
|
||
DCA I P7751 /READ INTO OPNREG
|
||
/7750, 7751 ARE SET --- RESTORE DATA FIELD
|
||
/ALSO, SET DISC TO TRANSFER INTO THIS FIELD
|
||
XFIELD, 0
|
||
RIF
|
||
IFZERO RF08-40 <TAD I PDISCHI>
|
||
6615 /DIML; FIELD , NO INTERRUPTS
|
||
IFZERO RF08 <TAD I PDISCHI /PICK UP HIGH ADDRESS
|
||
6643 /DXAL>
|
||
CLA /DEAL DOESN'T CLEAR AC
|
||
TAD I PDISCLO /PICK UP LOW ADDRESS
|
||
DISCIOT, 0 /DMAR OR DMAW
|
||
6621 /DFSE -- ANY ERRORS?
|
||
IFZERO RF08 <SKP CLA /NO
|
||
HLT /YES
|
||
6622 /DFSC --- DONE?
|
||
JMP .-4 /NO>
|
||
IFZERO RF08-40 <HLT
|
||
6622
|
||
JMP .-3>
|
||
DCMA /DON'T LEAVE DISK FLAG UP
|
||
JMP I DISK /YES
|
||
|
||
P7750, 7750
|
||
P7751, 7751
|
||
|
||
PDISCHI, DISCHI
|
||
PDISCLO, DISCLO
|
||
POPNREG, OPNREG-1
|
||
|
||
|
||
|
||
/ROUTINE TO CONVERT THE DOUBLE PRECISION NUMBER
|
||
/IN VALUE, VALUE1 INTO AN RF08 DISC ADDRESS
|
||
/PUT IT IN DISCHI, DISCLO
|
||
|
||
CONVERT, 0
|
||
CLA
|
||
TAD I PVALUE
|
||
IFZERO RF08-40 <ANDN C0177
|
||
CLL RTL
|
||
RTL
|
||
RTL>
|
||
DCA I PDISCHI
|
||
TAD I PVALU1
|
||
DCA I PDISCLO
|
||
JMP I CONVERT
|
||
PVALUE, VALUE
|
||
PVALU1, VALUE1
|
||
|
||
/ROUTINE TO TYPE THE 4 OCTAL DIGITS IN THE AC
|
||
/ON THE TELEPRINTER
|
||
|
||
HACK, 0
|
||
CLL RAL
|
||
DCA XHACK
|
||
TAD KM4
|
||
DCA XCNT /4 DIGITS
|
||
YHACK, TAD XHACK
|
||
RTL
|
||
RAL
|
||
DCA XHACK
|
||
TAD XHACK
|
||
AND C0007
|
||
TAD K260
|
||
OUTTLS
|
||
ISZ XCNT
|
||
JMP YHACK
|
||
JMP I HACK
|
||
XCNT, 0
|
||
DISCHI, 0
|
||
DISCLO, 0
|
||
XHACK, 0
|
||
KM4, -4
|
||
K260, 260
|
||
|
||
/ROUTINE TO GET A CHAR FROM THE KEYBOARD
|
||
IN, 0
|
||
KSF
|
||
JMP .-1
|
||
JMS CCCHEK /IS IT A CONTROL-C?
|
||
KRB
|
||
AND C0177
|
||
TAD C0200 /IN CASE OF PARITY TERMINALS
|
||
JMP I IN /RETURN
|
||
|
||
CCCHEK, 0
|
||
KSR
|
||
JMP I CCCHEK
|
||
KRS /WHAT'S THE CHARACTER?
|
||
AND C0177 /PARITY TERMINAL?
|
||
TAD KCRC
|
||
SMA
|
||
CML
|
||
SNA CLA
|
||
JMP I SUPERA /[S]HE WANTS TO RESTART - ^C
|
||
JMP I CCCHEK /NO ^C
|
||
|
||
KCRC, -3 /- ^C, STRIPPED OF PARITY BIT
|
||
|
||
/ROUTINE TO TELEPRINT A CHAR
|
||
|
||
OUT, 0
|
||
NOP /CHANGE TO "KSF" IF DESIRED TO TERMINATE PRINT-OUT UPON TYPE-AHEAD
|
||
SKP /NO
|
||
JMP OUT0 /YES; DON'T WASTE TIME WITH FURTHER PRINTING
|
||
TLS
|
||
TSF
|
||
JMP .-1
|
||
OUT0, CLA
|
||
CHEKCC
|
||
JMP I OUT
|
||
/ROUTINE TO INCREMENT THE DOUBLE-PRECISION VALUE
|
||
/IN VALUE, VALUE1
|
||
|
||
NEXTAD, 0
|
||
CLA
|
||
ISZ I PVALU1
|
||
JMP I NEXTAD
|
||
ISZ I PVALUE
|
||
JMP I NEXTAD
|
||
|
||
/ROUTINE TO SAVE VALUE, VALUE1
|
||
SAVE, 0
|
||
TAD I PVALUE
|
||
DCA SAVE1
|
||
TAD I PVALU1
|
||
DCA SAVE2
|
||
JMP I SAVE
|
||
|
||
/ROUTINE TO RESTORE VALUE, VALUE1
|
||
RESTOR, 0
|
||
TAD SAVE1
|
||
DCA I PVALUE
|
||
TAD SAVE2
|
||
DCA I PVALU1
|
||
JMP I RESTOR
|
||
SAVE1, 0
|
||
SAVE2, 0
|
||
|
||
*600
|
||
LOGMES, 0 /PUT MESSAGE OF THE DAY IN SI
|
||
YESNO
|
||
LOGM1 /"PROMO?"
|
||
JMP I LOGMES /NO
|
||
DISC /YES, READ SI INTO FIELD 1
|
||
6603
|
||
SIDEX+1
|
||
DISCHK /SHECK FOR DISK OK
|
||
LOG2LG, MESSAG /MESSAGE TOO LONG
|
||
LOGM2 /"END WITH ALTMODE"
|
||
STA
|
||
TAD LOGST /VERBRK
|
||
DCA AXS1
|
||
TAD LOGST
|
||
DCA NUMHO /FOR GETCH
|
||
IAC
|
||
DCA NUMHO+1
|
||
DATFLD /LOGIN MESSAGE TO FIELD 1
|
||
LOGNEX, JMS I GETCHA /GET A CHARACTER INTO BUFFER
|
||
JMP LOG2LG /MESSAGE TOO LONG
|
||
TAD MC0377 /IS IT AN ESCAPE OR ALTMODE?
|
||
IAC /TEST FOR MODEL 35 ALTMODE
|
||
SZA
|
||
IAC /TEST FOR ALTMODE
|
||
SZA
|
||
TAD LOGESC /TEST FOR ESCAPE
|
||
SZA CLA
|
||
JMP LOGNEX /NOT ESCAPE OR ALTMODE, GET ANOTHER CHAR
|
||
TAD AXS1
|
||
DCA CHAR
|
||
DCA I CHAR /A 0 ENDS THE MESSAGE IN SI
|
||
CHDF
|
||
MESSAG /ECHO $CR-LF
|
||
LOGM3
|
||
DISC /WRITE OUT SI
|
||
6605
|
||
SIDEX+1
|
||
DISCHK /CHECK FOR DISK OK
|
||
JMP I LOGMES
|
||
|
||
LOGST, VERBRK /START OF INSTALLATION MESSAGE OF THE DAY
|
||
GETCHA, GETCH
|
||
LOGESC, 375-233 /ALT MODE MINUS ESCAPE
|
||
|