This commit is contained in:
BIN
tss8/rf.dsk
Normal file
BIN
tss8/rf.dsk
Normal file
Binary file not shown.
29
tss8/rim.txt
Normal file
29
tss8/rim.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
7756 6014
|
||||
7757 6011
|
||||
7760 5357
|
||||
7761 6016
|
||||
7762 7106
|
||||
7763 7006
|
||||
7764 7510
|
||||
7765 5374
|
||||
7766 7006
|
||||
7767 6011
|
||||
7770 5367
|
||||
7771 6016
|
||||
7772 7420
|
||||
7773 3776
|
||||
7774 3376
|
||||
7775 5357
|
||||
7776 0000
|
||||
|
||||
rf08 boot
|
||||
|
||||
0000
|
||||
7750
|
||||
7600
|
||||
6603
|
||||
6622
|
||||
5352
|
||||
5752
|
||||
7750
|
||||
|
||||
31
tss8/system/NOTES.txt
Normal file
31
tss8/system/NOTES.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
README
|
||||
|
||||
fipb.pal
|
||||
fipa.pal
|
||||
fipc.pal
|
||||
|
||||
inita.pal
|
||||
initb.pal
|
||||
initc.pal
|
||||
|
||||
link.pal
|
||||
|
||||
param.pal
|
||||
|
||||
si.pal
|
||||
|
||||
ts8a.pal
|
||||
ts8b.pal
|
||||
ts8c.pal
|
||||
ts8d.pal
|
||||
ts8e.pal
|
||||
ts8f.pal
|
||||
|
||||
----
|
||||
|
||||
si
|
||||
fip
|
||||
xddt?
|
||||
ts8
|
||||
init
|
||||
link
|
||||
52
tss8/system/README
Normal file
52
tss8/system/README
Normal file
@@ -0,0 +1,52 @@
|
||||
This directory contains the source code to the TSS/8.24 timesharing system
|
||||
for the PDP-8. This copy comes from a source listing that I borrowed from
|
||||
the Melrose (Mass.) High School in 1984, typed in to my PDP-8/E (which came
|
||||
from the Belmont High School but ran Melrose H.S.'s monitor), and proofread.
|
||||
Then I cleverly dumped it to TSS/8 PUTR DECtapes for "safekeeping", and it
|
||||
took me over a decade to get around to extracting the data (on a PDP-11),
|
||||
and three more years to get around to finishing reverse-engineering PUTR.SAV's
|
||||
DECtape format! But here the files are, finally.
|
||||
|
||||
This should be an almost 100% vanilla DEC source set, unless some typos
|
||||
crept in. The only change I made was to fix comments that refer to the user
|
||||
as "HIM" to say "HIM/HER". What can I say, I was going through a P.C. phase.
|
||||
Also, I inadvertantly had EDIT.SAV set in the mode where it expands any two
|
||||
spaces to a tab on input from a file, so some things look funny, like the
|
||||
DEC copyright notice. The source for each 4 K component is broken into
|
||||
pieces small enough to fit into the free space on my system's RF08/RS08
|
||||
disk when I was typing it in, they should be concatenated before actual use.
|
||||
|
||||
This version is set up for an 8/E with 32 KW of core, one RF08/RS08 256 KW
|
||||
disk unit, a PC8E/PC04 high speed paper tape reader/punch, an RK05, line
|
||||
printer, card reader, and a bazillion KL8E terminals (I used an LC8E for K00,
|
||||
which worked fine). It seems to be a good sport about running with missing
|
||||
hardware (my machine had no RK05, LP, or card reader, and ran this monitor
|
||||
fine), except the RF08 of course.
|
||||
|
||||
There are lots of conditionals to tweak if you want to change the
|
||||
configuration. Normally this was done by DEC, they'd rebuild it using
|
||||
the PAL-10 cross-assembler on a TOPS-10 system and ship the binaries (and
|
||||
maybe a hardcopy listing) to the customer. I'm not sure what needs to be
|
||||
changed to make it build under PAL-8 on OS/8 but I've heard it's been done.
|
||||
PAL-D (the TSS/8 assembler) doesn't support conditionals at all, so it
|
||||
certainly couldn't be used...
|
||||
|
||||
CPU=4 seems to be a valid setting for the CPU model, although its meaning
|
||||
is not documented. Maybe it's for the PDP-8/A?
|
||||
|
||||
The sources to SI (the System Interpreter, i.e. command line interface) were
|
||||
typed in separately a few years later, I ran out of steam typing in the
|
||||
original listing so I photocopied the SI part so I could return the listing.
|
||||
SI was typed into an IBM PC so it doesn't have the problem with two blanks
|
||||
being translated into a tab. Also, I split off the "parameters" and "linking"
|
||||
sections into PARAM.PAL and LINK.PAL since it looks like they were constant
|
||||
prefix files for assembling all five components, those parts should probably
|
||||
be hacked off of the other sources so that one centralized file can adjust
|
||||
each.
|
||||
|
||||
Thank you very much to Bob McCann, who if I'm not mistaken was the person at
|
||||
Melrose HS who loaned me the listing (in 1983 or 1984). And thank you to
|
||||
Ron Diamond (who went to M.H.S.) for brainstorming about M.H.S. faculty to
|
||||
remind me of Bob's name (sorry, it was a long time ago!).
|
||||
|
||||
John Wilson <wilson@dbit.com>, 18-May-2000.
|
||||
1195
tss8/system/fipa.pal
Normal file
1195
tss8/system/fipa.pal
Normal file
File diff suppressed because it is too large
Load Diff
1268
tss8/system/fipb.pal
Normal file
1268
tss8/system/fipb.pal
Normal file
File diff suppressed because it is too large
Load Diff
1329
tss8/system/fipc.pal
Normal file
1329
tss8/system/fipc.pal
Normal file
File diff suppressed because it is too large
Load Diff
1223
tss8/system/inita.pal
Normal file
1223
tss8/system/inita.pal
Normal file
File diff suppressed because it is too large
Load Diff
1184
tss8/system/initb.pal
Normal file
1184
tss8/system/initb.pal
Normal file
File diff suppressed because it is too large
Load Diff
888
tss8/system/initc.pal
Normal file
888
tss8/system/initc.pal
Normal file
@@ -0,0 +1,888 @@
|
||||
/ROUTINE TO CONVERT ASCII TO TSS/8 SIXBIT
|
||||
|
||||
ASCSIX, 0
|
||||
CLL STA RAL /SET AC=-2
|
||||
DCA ASCNT
|
||||
TAD INBUF
|
||||
DCA ASCI6 /INPUT BUFFER
|
||||
TAD I ASCSIX
|
||||
DCA ASCI7 /POINTER TO OUTPUT VECTOR
|
||||
ISZ ASCSIX
|
||||
ASCI1, JMS ASCGET /GET ONE CHARACTER
|
||||
CLL RTL
|
||||
RTL
|
||||
RTL /SHIFT TO HIGH ORDER
|
||||
DCA I ASCI7 /SAVE THE CHARACTER
|
||||
CHDF
|
||||
JMS ASCGET /GO GET ANOTHER CHARACTER
|
||||
TAD I ASCI7 /PACK IT IN WITH THE LAST ONE
|
||||
DCA I ASCI7 /AND SAVE IT
|
||||
ISZ ASCI7
|
||||
CHDF
|
||||
ISZ ASCNT /DONE?
|
||||
JMP ASCI1 /NO
|
||||
JMP I ASCSIX /YES, EXIT
|
||||
|
||||
ASC240, -240
|
||||
|
||||
ASCGET, 0 /GET A PASSWORD CHARACTER, EXIT UPON CARRIAGE RETURN
|
||||
TAD I ASCI6 /GET NEXT CHARACTER
|
||||
TAD ASCCR
|
||||
SNA CLA /IS IT CR?
|
||||
JMP I ASCSIX /YES, RETURN
|
||||
TAD I ASCI6
|
||||
ISZ ASCI6
|
||||
TAD ASC240 /PASSWORDS ARE STORED IN EXCESS 240 CODE
|
||||
DATFLD
|
||||
JMP I ASCGET
|
||||
|
||||
ASCCR, -215
|
||||
CSQ, TEXT "ENABLE ^S FEATURE? "
|
||||
*INIP+2200
|
||||
|
||||
/USES INIT'S BINARY LOADER TO LOAD INTO FIELD 1
|
||||
ZERO1 /ZERO FIELD 1
|
||||
DATFLD
|
||||
Y1, JMS I BINLD /GO LOAD BINARY TAPE
|
||||
SKP /FIELD SETTING ENCOUNTERED
|
||||
JMP I SUPERA /END OF TAPE
|
||||
DCA DISC0 /SAVE IT
|
||||
RDF
|
||||
CIA
|
||||
TAD DISC0 /IS IT THE CURRENT FIELD ANYWAY?
|
||||
SNA CLA
|
||||
JMP I BINT3B /YES - SO IT'S OK
|
||||
TAD DISC0 /NO - LET HIM/HER KNOW ABOUT IT
|
||||
HLT
|
||||
CLA /IGNORE FIELD SETTING
|
||||
JMP I BINT3B
|
||||
|
||||
BINLD, BINTAP
|
||||
BINT3B, BINT3
|
||||
|
||||
Y, JMS I STFLDA
|
||||
JMP Y1
|
||||
|
||||
STFLDA, STFLD
|
||||
|
||||
RDORWT, TEXT "READ OR WRITE - "
|
||||
FIELD1, TEXT "FIELD NUMBER - "
|
||||
TRACK, TEXT "TRACK NUMBER - "
|
||||
TAPMES, TEXT "_TAPE "
|
||||
TIMESS, TEXT "HR:MIN - "
|
||||
NUMBLK, TEXT "# - "
|
||||
YN, TEXT "YES OR NO... "
|
||||
/DISK READ OR WRITE
|
||||
/CALL DISC
|
||||
/ FUNCTION
|
||||
/ DEAL ARGUMENTS (DISC EXTENSION IN BITS 1-8; MEMORY FIELD IN BITS 9-11)
|
||||
/ DISCHK
|
||||
/ RETURN HERE WHEN OK
|
||||
|
||||
DISC= JMS I DISCA
|
||||
DISCHK= JMS I DISCHA
|
||||
|
||||
|
||||
DISC0, 0
|
||||
RDF
|
||||
TAD C6201
|
||||
DCA DISC2
|
||||
CHDF
|
||||
TAD I DISC0
|
||||
DCA DISROW
|
||||
ISZ DISC0
|
||||
TAD I DISC0
|
||||
DCA DEALSV /SAVE THE DEAL ARGUMENTS
|
||||
TAD DEALSV
|
||||
IFZERO RF08-40 < ISZ DISC0
|
||||
CLL RTL
|
||||
RAL
|
||||
DEAL
|
||||
CLA CLL>
|
||||
IFZERO RF08 < RTL
|
||||
RAL
|
||||
AND C0070
|
||||
DIML
|
||||
TAD I DISC0
|
||||
CLL RTR
|
||||
ISZ DISC0
|
||||
RAR
|
||||
DXAL>
|
||||
CDF
|
||||
DCA I C7750
|
||||
STA
|
||||
DCA I C7751
|
||||
DISROW, 0
|
||||
JMP I DISC0
|
||||
|
||||
C0070, 70
|
||||
C7750, 7750
|
||||
C7751, 7751
|
||||
|
||||
|
||||
/SUBROUTINE TO WAIT FOR DISK COMPLETION, CHECK FOR ERRORS, AND
|
||||
/IF THERE ARE ANY ERRORS, RETRY THE OPERATION.
|
||||
|
||||
DISCH0, 0
|
||||
CLL STA RTL
|
||||
DCA RFTRY /TRY 3 TIMES
|
||||
IFZERO RF08 <DFSE DFSC>
|
||||
IFNZRO RF08 <DFSC>
|
||||
JMP .-1 /WAIT FOR THE DISK TO FINISH
|
||||
DFSE /ERROR?
|
||||
IFZERO RF08-40 <SKP> /DF32 SKIPS BACKWARDS
|
||||
JMP DISC2 /NO
|
||||
DIMA
|
||||
AND DSKFLG /CHECK WLS, DRL, PER
|
||||
CDF
|
||||
SNA
|
||||
TAD I C7750 /MAYBE NXD - IS WC=0?
|
||||
DISC2, .-. /CDF -- RESTORE DATA FIELD
|
||||
SNA /OK?
|
||||
JMP I DISCH0 /I GUESS SO
|
||||
ISZ RFTRY /3 TRIES YET?
|
||||
CLA SKP
|
||||
JMP DISERR /DISK WRITE LOCKED, PARITY ERROR, OR DRL
|
||||
TAD DISROW /GET OLD DMAR OR DMAW
|
||||
DCA .+2
|
||||
DISC
|
||||
0
|
||||
DEALSV, 0 /DEAL ARGUMENTS SAVED BY LAST DISC CALL
|
||||
JMP DISCH0+3
|
||||
|
||||
DSKFLG, IFZERO RF08 <1005>
|
||||
IFZERO RF08-40 <0007>
|
||||
RFTRY, 0 /RETRY COUNT FOR DISK ERRORS
|
||||
|
||||
DISERR, MESSAG
|
||||
DISKER
|
||||
JMP I SUPERA
|
||||
DISKER, TEXT "_DISK ERROR"
|
||||
*INIP+2400
|
||||
|
||||
/DISC DUMP ON DTA1
|
||||
/DECTAPE BLOCK 40N+1=DISC TRACK N
|
||||
|
||||
DSKDMP, JMS I RWA /GO TO INITIALIZE CHDF, PRINT MESSAGE,
|
||||
TAPMES /AND DETERMINE READ OR WRITE
|
||||
DCA DTA
|
||||
MESSAG
|
||||
NUMBLK
|
||||
GETIN
|
||||
OCTIN
|
||||
CIA
|
||||
SNA
|
||||
DSKSUP, TAD DSKSZ
|
||||
DCA LDFCNT /SAVE DISK TRACK COUNT
|
||||
DCA RFFUNC /WELL, FOLKS, THE FOLLOWING ROUTINE
|
||||
CHDF /ONLY WORKS IN FIELD 0, SO HERE
|
||||
TAD I RFFUNC /WE GO, MOVING EVERYTHING DOWN TO
|
||||
CDF /FIELD 0 SO THAT IT WILL BE HAPPY
|
||||
DCA I RFFUNC
|
||||
ISZ RFFUNC
|
||||
JMP .-5
|
||||
CIF CDF /AND DOWN TO FIELD 0!
|
||||
JMP .+1
|
||||
TAD .-2
|
||||
DCA INIF /SET UP CHDF FOR FIELD 0
|
||||
TAD DTA /IS IT LOAD OR DUMP??
|
||||
CLL
|
||||
SNA CLA
|
||||
STL
|
||||
SNL /SKIP IF READ
|
||||
TAD C0020
|
||||
TAD C0030
|
||||
DCA I DTFUNA /SAVE FUNCTION FOR DECTAPE
|
||||
TAD RFDMAR
|
||||
SZL /SKIP IF DISK READ
|
||||
TAD C0002 /MAKE IT DMAW
|
||||
DCA RFFUNC /SAVE DMAR OR DMAW
|
||||
TAD LDFCNT
|
||||
RAL
|
||||
DCA LDFCNT /FUDGE LDFCNT SO THAT IT ISZES TO 0 AT THE RIGHT TIME
|
||||
DCA I DTBLKA /START AT DECTAPE BLOCK 1
|
||||
TAD C1000
|
||||
DTLA /START WITH DECTAPE DRIVE 1
|
||||
IAC
|
||||
DCA RFTRAK /START WITH RF08/DF32 TRACK 0 FIELD 1
|
||||
TAD C0010
|
||||
DCA I DTFLDA /START WITH DECTAPE FIELD 1
|
||||
TAD DTA
|
||||
SZA CLA /LOAD OR DUMP?
|
||||
JMP DMPINI /MUST BE DUMP
|
||||
JMS I DTRWA /READ FIRST TRACK FROM DECTAPE
|
||||
DISC /READ OR WRITE - START OPERATION ONLY
|
||||
RFFUNC, 0 /DMAR OR DMAW
|
||||
RFTRAK, 0 /BITS 1-8=TRACK, 9-11=FIELD
|
||||
ISZ LDFCNT /DONE LOADING?
|
||||
JMP LD2 /NO
|
||||
DISCHK /YES - LAST WRITE OK??
|
||||
JMP LDSTOP
|
||||
LD2, TAD RFTRAK /WHAT FIELD DOES DECTAPE GO TO NOW?
|
||||
RTR
|
||||
SPA CLA
|
||||
TAD C0010
|
||||
TAD C0010
|
||||
DCA I DTFLDA
|
||||
JMS I DTRWA /READ/WRITE DECTAPE
|
||||
ISZ LDFCNT /DONE DUMPING???
|
||||
JMP DMPJMP /NO
|
||||
DCMA /MAKE SURE THE DISK IS STOPPED
|
||||
LDSTOP, TAD C0400 /YES - REWIND LAST DECTAPE
|
||||
DTXA
|
||||
JMP I .+1
|
||||
RFBOOT /NOW GO BOOT WHATEVER IS ON RF08/DF32
|
||||
DMPJMP, DISKCHK /DISK OK??
|
||||
TAD RFTRAK
|
||||
RAR
|
||||
SZL CLA
|
||||
TAD C0002
|
||||
TAD C0007
|
||||
TAD RFTRAK
|
||||
DCA RFTRAK
|
||||
JMP RFFUNC-1
|
||||
DMPINI, DISC
|
||||
RFDMAR, DMAR
|
||||
1
|
||||
JMP DMPJMP
|
||||
|
||||
SUPDMP, STA
|
||||
SUPLOD, DCA DTA /SET DTA NON-0 FOR LOAD, 0 FOR DUMP
|
||||
JMP DSKSUP /AND GO LOAD OR DUMP
|
||||
|
||||
DTA, 0
|
||||
DSKSZ, -DSKSIZ
|
||||
LDFCNT, 0
|
||||
DTFUNA, DTFUNC
|
||||
DTBLKA, DTBLOK
|
||||
DTFLDA, DTFLD
|
||||
DTRWA, DTRORW
|
||||
C0020, 0020
|
||||
C0030, 0030
|
||||
RWA, RW
|
||||
TAPERR, TEXT "_TAPE READ ERROR"
|
||||
HUH, TEXT "_WHAT?_PLEASE TRY AGAIN_"
|
||||
HUH2= HUH+3
|
||||
/FILE PHANTOM AND DISK REFRESHER
|
||||
|
||||
/WRITE NEW MFD ON DISC DIRECTLY ABOVE THE SWAPPING AREA
|
||||
PAGE
|
||||
FIPR4, 0
|
||||
FIPASC, ASCSIX
|
||||
MFD1, MFDT-1
|
||||
|
||||
FIPREF, ZERO1 /ZERO FIELD 1
|
||||
MESSAG /"SYSTEM"
|
||||
SYSTEM
|
||||
MESSAG /"PASSWORD"
|
||||
PASWRD
|
||||
GETIN
|
||||
JMS I FIPASC /CONVERT PASSWORD TO SIXBIT
|
||||
0011 /GOOES AT WORD 11, 12 OF MFD
|
||||
MESSAG /"LIBRARY"
|
||||
LIBARY
|
||||
MESSAG /"PASSWORD"
|
||||
PASWRD
|
||||
GETIN
|
||||
JMS I FIPASC /CONVERT PASSWORD TO SIXBIT
|
||||
0041 /AND PUT IT AT WORDS 41,42 OF MFD
|
||||
MESSAG /"OPERATOR"
|
||||
OPRAT
|
||||
MESSAG /"PASSWORD"
|
||||
PASWRD
|
||||
GETIN
|
||||
JMS I FIPASC /CONVERT PASSWORD TO SIXBIT
|
||||
0061 /AND PUT IT AT WORDS 61,62 OF MFD
|
||||
TAD MFD1 /INITIALIZE POINTER
|
||||
DCA AXS1
|
||||
FIPR2, TAD I AXS1 /GET ADDRESS OF DATA TO BE STORED IN MFD
|
||||
SNA /ARE WE THROUGH?
|
||||
JMP FIPR3 /YES
|
||||
DCA FIPR4 /SAVE IT
|
||||
TAD I AXS1 /GET DATA TO STORE
|
||||
DATFLD
|
||||
DCA I FIPR4 /STORE IT IN THE MFD
|
||||
CHDF
|
||||
JMP FIPR2 /GO FOR MORE
|
||||
|
||||
FIPR3, TAD SWBASE
|
||||
TAD JBMXP /"JOBMAX"
|
||||
CLL RTL
|
||||
STL RAL /MAKE IT FIELD 1
|
||||
DCA .+3
|
||||
DISC
|
||||
DMAW /WRITE OUT THE MFD
|
||||
.-.
|
||||
DISCHK
|
||||
/INITIALIZE STORAGE ALLOCATION TABLE "SAT"
|
||||
/THE SAT TABLE RESIDES IN FIP AT 7777 AND EXTENDS
|
||||
/DOWN THROUGH 7777-(SATSIZ-1). EACH BIT POSITION REPRESENTS 1 SEGMENT
|
||||
/OF FILE STORAGE.
|
||||
/SEGMENT 0 IS BIT 0 OF 7252,
|
||||
/SEGMENT 1 IS BIT 1 OF 7252, ETC. 7252=7777-(SATSIZ+2).
|
||||
/LOCATION SATCNT=7777-(SATSIZ-1)+1 CONTAINS THE COUNT OF AVAILABLE
|
||||
/SEGMENTS. A SEGMENT IS AVAILABLE IF ITS SAT BIT HAS THE
|
||||
/VALUE 0.
|
||||
|
||||
JMS I FIPRFD /FIP TO FIELD 1
|
||||
TAD CJTABL
|
||||
ZERO1 /CLEAR ALL FIP TABLES AND RETRIEVAL INFORMATION
|
||||
TAD SWDEXP
|
||||
TAD CJOBMX
|
||||
TAD DSKSZP /"DSKSIZ"
|
||||
CLL RTL
|
||||
RTL
|
||||
TAD C7777 /CAN'T USE LAST SEGMENT ON DF32
|
||||
DCA STORE0 /NUMBER OF DISK SEGMENTS
|
||||
CLA CMA
|
||||
DATFLD
|
||||
DCA I SATBOT /"-255"
|
||||
CLL STA RTL /SUBTRACT THREE SEGMENTS (FOR 1,2,3 UFD'S)
|
||||
TAD STORE0 /SET SATCNT TO # DISC SEGMENTS-2
|
||||
DCA I SATCNT /"-254"
|
||||
TAD K7000 /MARK SEGMENTS 1,2,3 FOR MFD, UFD USAGE
|
||||
DCA I SATTBL
|
||||
TAD STORE0 /MORE THAN 4000 SEGMENTS.
|
||||
SMA
|
||||
JMP .+6 /NO OK
|
||||
TAD CM4004 /SUBTRACT 4004
|
||||
DCA STORE0
|
||||
TAD C0253 /253 WORDS=4004 SEGS
|
||||
DCA COUNT
|
||||
TAD STORE0
|
||||
TAD C7764 /-14
|
||||
ISZ COUNT /COUNT # ZERO WORDS IN SAT
|
||||
SMA
|
||||
JMP .-3
|
||||
DCA STORE0
|
||||
STA
|
||||
TAD COUNT
|
||||
TAD SATTBL
|
||||
DCA COUNT
|
||||
STL RAL
|
||||
ISZ STORE0
|
||||
JMP .-2
|
||||
DCA I COUNT /MARK END OF FILE STORAGE AS ALLOCATED
|
||||
JMP FIPRF5
|
||||
FIPRF4, CLA CMA
|
||||
DCA I COUNT
|
||||
FIPRF5, ISZ COUNT
|
||||
JMP FIPRF4
|
||||
DISC
|
||||
DMAW
|
||||
0011 /FIP IS TRACK 1, FIELD 1
|
||||
DISCHK /MAKE SURE THE DISK IS OK
|
||||
JMP I SUPERA
|
||||
SATTBL, -SATSIZ+2
|
||||
K7000, 7000
|
||||
|
||||
COUNT, 0
|
||||
SWDEXP, -SWDEX
|
||||
JBMXP, JOBMAX
|
||||
C7764, -14
|
||||
DSKSZP, DSKSIZ
|
||||
STORE0, 0
|
||||
FIPRFD, FIPRD
|
||||
CJTABL, JTABLE
|
||||
SATBOT, -SATSIZ
|
||||
SATCNT, -SATSIZ+1
|
||||
C0253, 253
|
||||
CM4004, -4004
|
||||
FIPREM, TEXT "_WRITE ZERO SYSTEM DIRECTORY? "
|
||||
*INIP+3000
|
||||
JMP I .+1
|
||||
INBOOT
|
||||
|
||||
|
||||
/MFD SEGMENT #S TO INBUF
|
||||
|
||||
FRD0, 0
|
||||
TAD SWBASE
|
||||
TAD JBMAX
|
||||
CLL RTL
|
||||
STL RAL
|
||||
DCA FRD1
|
||||
DISC
|
||||
DMAR
|
||||
FRD1, 0
|
||||
DISCHK /MAKE SURE THE DISK IS OK
|
||||
TAD K0020
|
||||
DCA AXS1
|
||||
TAD INBUF
|
||||
DCA AXS2
|
||||
TAD K7771
|
||||
DCA Z1
|
||||
FRD2, DATFLD
|
||||
TAD I AXS1
|
||||
CHDF
|
||||
DCA I AXS2
|
||||
ISZ Z1
|
||||
JMP FRD2
|
||||
DATFLD
|
||||
TAD I FGRACE /FETCH SIZE OF "GRACE SPACE"
|
||||
CHDF
|
||||
DCA I AXS2
|
||||
JMP I FRD0
|
||||
|
||||
JBMAX, JOBMAX
|
||||
FGRACE, 0014
|
||||
K0020, 0020
|
||||
|
||||
Z1,
|
||||
FIPRD, 0
|
||||
DISC
|
||||
DMAR
|
||||
0011 /FIP IS TRACK 1, READ INTO FIELD 1
|
||||
DISCHK /MAKE SURE THE DISK IS OK
|
||||
JMP I FIPRD
|
||||
|
||||
Z0, JMS I STFLDB /SET DATA FIELD TYPED
|
||||
DCA Z1
|
||||
DCA I Z1 /ZERO OUT A FIELD
|
||||
ISZ Z1
|
||||
JMP .-2
|
||||
JMP I SUPERA
|
||||
|
||||
STFLDB, STFLD
|
||||
/TABLE USED TO CONSTRUCT VIRGIN MFD
|
||||
/INCLUDES ENTRIES FOR ACCOUNTS 1, 2, 3
|
||||
/EACH PAIR OF NUMBERS INCLUDES FIRST THE MFD ADDRESS, THEN ITS CONTENTS
|
||||
|
||||
MFDT, 3;10 /DUMMY POINTER
|
||||
10;1 /ACCOUNT NUMBER 1
|
||||
13;40 /NEXT ACCOUNT STARTS AT 40; LINK TO IT
|
||||
14;12 /DEFAULT "GRACE SPACE" OF 10 SEGMENTS PAST QUOTA
|
||||
17;20 /SEGMENT LIST IS AT 20
|
||||
21;1 /MFD STARTS WITH SEGMENT 1 ONLY
|
||||
30 /AN EXTRA BLOCK IS USED HERE. THE REASON IS SO THAT THE
|
||||
7777 /LAST ACCOUNT IN A SEGMENT WON'T HAVE ITS RETRIEVAL
|
||||
/BLOCK IN THE NEXT SEGMENT.
|
||||
40;2 /ACCOUNT 2
|
||||
43;60 /LINK TO NEXT ACCOUNT AT 60
|
||||
44;7777 /NO LIMIT ON DISK SEGMENTS
|
||||
47;50 /SEGMENT LIST IS AT 50
|
||||
51;2 /ACCOUNT 2 UFD STARTS WITH ONLY SEGMENT 2
|
||||
60;3 /ACCOUNT 3
|
||||
64;7777 /NO LIMIT ON DISK SEGMENTS
|
||||
67;70 /SEGMENT LIST IS AT 70
|
||||
71;3 /ACC. 3 UFD OWNS SEGMENT 3 ONLY, INITIALLY
|
||||
0 /TABLE TERMINATOR
|
||||
CRTABL, RTABLE-1 /MFD SEGMENT #S
|
||||
CUTABL, UTABLE
|
||||
SATCON, SATSIZ+1
|
||||
CJOBTB, JTABLE-1 /START OF AREA TO CLEAR IN FIP
|
||||
|
||||
PERSET, 0
|
||||
JMS FRD0 /MFD SEGMENT #S TO INBUF
|
||||
JMS FIPRD /FIP TO FIELD 1
|
||||
TAD CJOBTB /CLEAR FIP TABLES
|
||||
DCA AXS1
|
||||
DATFLD
|
||||
DCA I AXS1
|
||||
TAD AXS1 /HAVE WE REACHED BOTTOM OF SAT?
|
||||
TAD SATCON
|
||||
SZA CLA
|
||||
JMP .-4 /NO
|
||||
TAD CRTABL /MOVE MFD SEGMENT #S TO RTABLE
|
||||
DCA AXS1
|
||||
TAD INBUF
|
||||
DCA AXS2
|
||||
TAD K7771
|
||||
DCA Z1
|
||||
PERSE3, CHDF
|
||||
TAD I AXS2
|
||||
DATFLD
|
||||
DCA I AXS1
|
||||
ISZ Z1
|
||||
JMP PERSE3
|
||||
CLL CLA CML RAL
|
||||
DCA I CUTABL /UTABLE=1
|
||||
CMA
|
||||
ISZ CUTABL
|
||||
DCA I CUTABL /UTABLE+1=-1
|
||||
ISZ CUTABL
|
||||
CHDF
|
||||
TAD I AXS2
|
||||
DATFLD
|
||||
CIA
|
||||
DCA I CUTABL /UTABLE+2=-"GRACE SPACE"
|
||||
CHDF
|
||||
DISC
|
||||
DMAW
|
||||
0011 /WRITE FIP FROM FIELD 1, TO TRACK 1
|
||||
DISCHK /MAKE SURE THE DISK IS OK
|
||||
JMP I PERSET
|
||||
|
||||
K7771, 7771
|
||||
|
||||
/THERE'S ALWAYS SOMEONE WHO WILL TRY TO LOAD INIT INTO THE SAME FIELD AS
|
||||
/THE BINARY LOADER. GIVE HIM/HER A MESSAGE IF [S]HE DOES!!
|
||||
|
||||
*4200
|
||||
CLA
|
||||
RIF
|
||||
TAD C6201
|
||||
DCA INIF
|
||||
MESSAG
|
||||
OOPS
|
||||
HLT
|
||||
JMP .-4
|
||||
OOPS, TEXT "_PLEASE DON'T TRY TO LOAD INIT WITH THE BINARY LOADER "
|
||||
*.-1
|
||||
TEXT "LOCATED IN FIELD 2!"
|
||||
*7632
|
||||
JMP I SUPERA /THIS INSTRUCTION SHOULD INTERCEPT ANY BINARY
|
||||
/LOADER IN PROGRESS IN THIS FIELD.
|
||||
/INIT SUPERVISOR
|
||||
/OVERLAYS XDDT PERMANENT SYMBOL TABLE
|
||||
|
||||
*4200
|
||||
SUPER, CLA /SET DATA FIELD
|
||||
RIF
|
||||
TAD C6201
|
||||
DCA INIF
|
||||
CHDF
|
||||
DTRA
|
||||
AND C0200
|
||||
DTXA /STOP ANY DECTAPE WHICH MAY BE MOVING AFTER AN ERROR
|
||||
TAD OUT1
|
||||
DCA OUTA /RESTORE TTY OUTPUT
|
||||
IFZERO CPU-2 <6030> /DO HIM/HER A FAVOR IF IT'S AN 8/E
|
||||
IFNZRO CPU-2 <6032> /NOT QUITE AS HELPFUL, BUT NECESSARY
|
||||
|
||||
MESSAG
|
||||
LDXRS /LOAD, DUMP, START AND OTHER THINGS IN THE LIST OF COMMANDS??
|
||||
GETIN /WAIT FOR REPLY
|
||||
TAD SUPTBA /ADDRESS OF TABLE OF LETTERS
|
||||
DCA AXS1 /SAVE IT AUTO-INDEX
|
||||
SUPER2, TAD I AXS1 /GET A LETTER FROM TABLE
|
||||
SNA /END OF TABLE?
|
||||
JMP SUPHUH /YES - LET HIM/HER TRY AGAIN
|
||||
TAD I INBUF /ADD ON FIRST CHARACTER TYPED
|
||||
SNA CLA /THIS ONE?
|
||||
JMP SUPER3 /YES - DISPATCH
|
||||
ISZ AXS1 /NO - PASS UP DISPATCH ADDRESS
|
||||
JMP SUPER2 /NEXT
|
||||
|
||||
SUPER3, TAD I AXS1 /GET DISPATCH ADDRESS
|
||||
DCA CHDFA
|
||||
JMP I CHDFA /AND DISPATCH
|
||||
|
||||
SUPHUH, CLA
|
||||
MESSAG
|
||||
HUH
|
||||
JMP SUPER
|
||||
|
||||
SUPTBA, SUPTBL-1
|
||||
OUT1, OUT
|
||||
STFLD, 0
|
||||
CHDF
|
||||
TAD I STFAD /WHAT WAS THE SECOND CHARACTER TYPED?
|
||||
TAD STFM8
|
||||
CLL
|
||||
TAD C0010
|
||||
SNL
|
||||
JMP SUPHUH
|
||||
CLL RTL
|
||||
RAL
|
||||
TAD C6201
|
||||
DCA .+1
|
||||
.-.
|
||||
JMP I STFLD
|
||||
STFAD, INBUFA+1
|
||||
STFM8, -"8
|
||||
/REFRESHER CONTROL
|
||||
|
||||
LOGSMA, LOGMES
|
||||
REFFLD, CORFLD
|
||||
REFDDT, XDDFLG
|
||||
NOCSQ, ISZ CONDBA
|
||||
REFCSQ, CORJMS
|
||||
IFZERO DC08A <
|
||||
REFREQ, FREQ
|
||||
CYC50, FRETEL
|
||||
CYC60,
|
||||
IFNZRO CPU-2 <-6>
|
||||
IFZERO CPU-2 <-14> >
|
||||
|
||||
REFCO0, JMS I LOGSMA /CHECK FOR NEW SI LOGIN MESSAGE
|
||||
DISC /READ INIT INTO FIELD 1
|
||||
DMAR
|
||||
21
|
||||
DISCHK /IS IT OK?
|
||||
YESNO /LAOD XDDT?
|
||||
DDTMES
|
||||
STA
|
||||
DATFLD
|
||||
DCA I REFDDT /INITIALIZE XDDT LOAD FLAG
|
||||
REFCO1, CHDF
|
||||
MESSAG /# USER FIELDS -
|
||||
CORMES
|
||||
GETIN
|
||||
OCTIN
|
||||
DATFLD
|
||||
DCA I REFFLD /INITIALIZE NUMBER OF USER FIELDS
|
||||
TAD I REFFLD
|
||||
CLL IAC
|
||||
TAD C7770
|
||||
SZL CLA /IS HIS/HER ANSWER REASONABLE?
|
||||
JMP REFCO1 /NO
|
||||
CHDF
|
||||
YESNO
|
||||
CSQ /DOES [S]HE WANT ^S FEATURE?
|
||||
TAD NOCSQ /NO
|
||||
DATFLD
|
||||
DCA I REFCSQ
|
||||
IFZERO DC08A < IFNZRO CPU-4 <
|
||||
CHDF
|
||||
YESNO
|
||||
FREQUE /60 HERTZ?
|
||||
JMS I CYC50
|
||||
TAD CYC60
|
||||
DATFLD
|
||||
DCA I REFREQ > >
|
||||
CHDF
|
||||
DISC /WRITE OUT INIT
|
||||
DMAW
|
||||
21
|
||||
DISCHK /MAKE SURE IT'S OK
|
||||
YESNO /DO YOU WANT TO REFRESH?
|
||||
FIPREM
|
||||
JMP I SUPERA /NO
|
||||
JMP I .+1
|
||||
FIPREF /GO REFRESH
|
||||
|
||||
SUPTBL, -"L
|
||||
SUPLOD /LOAD
|
||||
-"D
|
||||
SUPDMP /DUMP
|
||||
-"I
|
||||
SUPREF /INITIALIZE
|
||||
-"S
|
||||
SUPST /START
|
||||
-"X
|
||||
7000 /XDDT
|
||||
-"B
|
||||
SBUILD /BUILD
|
||||
-"P
|
||||
DISCLK /PATCH
|
||||
-"T
|
||||
DSKDMP /LOAD OR DUMP; YOU CHOOSE HOW MANY TRACKS
|
||||
-"O
|
||||
PATCH /LOAD AN OVERLAY TAPE
|
||||
-"C
|
||||
LOAD /READ OR WRITE 4K TO "C" OR
|
||||
-"Y
|
||||
Y /READ BINARY TAPE TO A SELECTED FIELD
|
||||
-"Z
|
||||
Z0 /ZERO A SELECTED FIELD
|
||||
-"M
|
||||
MF0 /MATCH A SELECT FIELD WITH FIELD 1
|
||||
-"W
|
||||
CD0 /DUMP A SELECTED FIELD
|
||||
-"E
|
||||
OSB /EXIT TO SOME OPERATING SYSTEM
|
||||
-"R
|
||||
RFBOOT /BOOT TO OPERATING SYSTEM ON RF08/DF32
|
||||
-"K
|
||||
KEBOOT /ROOT TO RK8E
|
||||
0 /TABLE TERMINATOR
|
||||
|
||||
/FOLLOWING THIS COMMENT, YOU WILL FIND XDDT. ONLY IT MIGHT BE A
|
||||
/LITTLE HARD TO SEE, SINCE IT'S XLISTED.
|
||||
|
||||
|
||||
*5400
|
||||
70 /PATCH FIELD SELECT FOR XDDT
|
||||
|
||||
*6400
|
||||
4434
|
||||
4434
|
||||
4434
|
||||
|
||||
*4724
|
||||
6031 /PATCH TO FIX XDDT BUGS ON 8E
|
||||
*4726
|
||||
5376
|
||||
*4776
|
||||
6032
|
||||
5772
|
||||
*5004 /^C CODE
|
||||
TSF
|
||||
JMP .-1 /WAIT FOR FLAG FROM ^C
|
||||
XOP, SKP /NOP IF XDDT IS EXEC DDT
|
||||
CIF CDF 0
|
||||
JMP I .+1
|
||||
4200
|
||||
*5523
|
||||
1222
|
||||
*5547
|
||||
7000
|
||||
*5572
|
||||
7760 /GIVE THE TTY FLAG MORE TIME
|
||||
*6045
|
||||
5225 /DON'T GO TO BINARY LOADER
|
||||
/BINARY LOADER SUBROUTINE
|
||||
/CALLING SEQUENCE: CDF TO FIELD TO LOAD TAPE INTO
|
||||
/ JMS BINTAP
|
||||
/ JMP ? /RETURN WITH FIELD SETTING IN AC6-8
|
||||
/ /JMP BINT3 WHEN DESIRED ACTION HAS BEEN TAKEN
|
||||
/ ? /RETURN WITH CHECKSUM IN THE AC
|
||||
|
||||
*7600
|
||||
|
||||
BINTAP, 0
|
||||
KCC /BRING UP FLAG ON LS READER, AC=0
|
||||
RFC /BRING UP FLAG ON HS READER
|
||||
TAD M200
|
||||
DCA TEMP /INITIALIZE DELAY TIME
|
||||
BLORI,
|
||||
BINF, KSF /LS READER FLAG YET?
|
||||
JMP .+3 /NO
|
||||
TAD BLORI /YES ---
|
||||
JMP .+4
|
||||
RSF /HS READER FLAG YET?
|
||||
JMP BINIL /NO
|
||||
TAD BHIRI /YES
|
||||
DCA BINRD+1 /SAVE HI/LO SWITCH
|
||||
JMS BFR /READ TAPE-LEADER?
|
||||
JMP .+2 /YES - GO FIND END OF LEADER
|
||||
JMP .-2 /NO - FIND LEADER BEFORE ANYTHING
|
||||
JMS BFR /READ TAPE - LEADER?
|
||||
JMP .-1 /YES - KEEP LOOKING
|
||||
DCA ORIGIN /INITIALIZE ORIGIN FOR SAVE TAPES
|
||||
GO, DCA BINCHK /CLEAR OUT OR UPDATE CHECKSUM
|
||||
BINT2, TAD FRAME /WHAT WAS IT?
|
||||
TAD C7500
|
||||
SMA
|
||||
JMP BINFLD /MUST HAVE BEEN A FIELD SETTING
|
||||
TAD MASK /NOW GET THE FRAME BACK
|
||||
DCA WORD1
|
||||
JMS BINRD /GET NEXT FRAME
|
||||
DCA WORD2
|
||||
JMS BFR /NOW LOOK AHEAD FOR LEADER/TRAILER
|
||||
JMP BINC /TRAILER! GO DO CHECKSUM
|
||||
JMS ASSEMB /ASSEMBLE WORD
|
||||
SZL /ORIGIN?
|
||||
JMP BINORG /ORIGIN
|
||||
DCA I ORIGIN /STORE AWAY DATA
|
||||
ISZ ORIGIN /PREPARE FOR NEXT
|
||||
M200, CLA 400
|
||||
BINT4, TAD WORD1 /NOW UPDATE THE CHECKSUM
|
||||
TAD WORD2
|
||||
TAD BINCHK /ADD IN OLD CHECKSUM
|
||||
JMP GO /AND GO SAVE IT AND CONTINUE
|
||||
|
||||
BINC, JMS ASSEMB /ASSEMBLE THE CHECKSUM
|
||||
CIA
|
||||
TAD BINCHK /COMPUTE FINAL CHECKSUM
|
||||
BINC2, ISZ BINTAP /SKIP ON RETURN
|
||||
SNA /CHECKSUM OK?
|
||||
JMP I BINTAP /YES
|
||||
DCA BINCHK /SAVE IT
|
||||
MESSAG /TELL HIM/HER ABOUT BAD CHECKSUM
|
||||
TAPERR
|
||||
TAD BINCHK /GET CHECKSUM
|
||||
JMP I BINTAP /AND RETURN; CHECKSUM IN AC
|
||||
|
||||
BINFLD, AND K0070 /GET FIELD BITS
|
||||
JMP I BINTAP /AND GO PROCESS THEM
|
||||
|
||||
SWITCH,
|
||||
ASSEMB, 0
|
||||
TAD WORD1
|
||||
CLL RTL
|
||||
RTL
|
||||
RTL
|
||||
TAD WORD2
|
||||
JMP I ASSEMB
|
||||
BINIL, JMS DELAY
|
||||
JMP BINF
|
||||
|
||||
/HERE IS THE REAL BINARY LOADER!
|
||||
|
||||
JMS BINTAP /GO AND BINARY LOAD
|
||||
JMP .+3 /FOUND A FIELD SETTING
|
||||
M376, HLT /FINISHED - CHECKSUM IN AC
|
||||
BEGIN, JMP .-3 /CONTINUE - [S]HE WANTS ANOTHER TAPE READ
|
||||
TAD K6201 /MAKE A CDF
|
||||
DCA .+1 /SAVE IT
|
||||
TEMP, .-.
|
||||
JMP BINT3 /AND CONTINUE
|
||||
|
||||
/MORE BINARY LOAD JUNK
|
||||
|
||||
/BFR - READ TAPE, IGNORING FRAMES BRACKETED BY RUBOUTS
|
||||
/SKIP ON RETURN IF LEADER NOT FOUND
|
||||
|
||||
BFR, 0
|
||||
DCA SWITCH /SET THE SWITCH (OR RESET IT)
|
||||
TAD M200
|
||||
DCA TEMP
|
||||
JMS BINRD /GET A CHARACTER
|
||||
TAD M376 /TEST FOR 377; RUBOUT
|
||||
SPA SNA CLA
|
||||
JMP .+4 /NOT RUBOUT
|
||||
ISZ SWITCH /YES; COMPLEMENT SWITCH
|
||||
CMA
|
||||
JMP BFR+1
|
||||
TAD SWITCH
|
||||
SZA CLA /IS THE SWITCH SET?
|
||||
JMP BFR+2 /YES; IGNORE THE DATA
|
||||
TAD FRAME /WHAT WAS THE CHARACTER AGAIN?
|
||||
AND MASK
|
||||
TAD M200
|
||||
SZA CLA /WAS IT LEADER?
|
||||
ISZ BFR /NO, SKIP ON RETURN
|
||||
JMP I BFR /AND RETURN
|
||||
|
||||
BINT3, JMS BFR /GET NEXT FRAME
|
||||
JMP BINC /HUH? LEADER/TRAILER FOLLOWING FIELD SETTING OR ORIGIN!!
|
||||
JMP BINT2 /AND PROCESS IT
|
||||
|
||||
BINRD, 0
|
||||
HLT /KSF OR ELSE JMP HIR
|
||||
JMP BINDL
|
||||
KRB
|
||||
DCA FRAME
|
||||
TAD FRAME
|
||||
JMP I BINRD
|
||||
BHIR, RSF
|
||||
JMP BINDL
|
||||
RRB RFC
|
||||
JMP .-6
|
||||
|
||||
*7750 /WC & CA; INIT WILL READ INTO FIELD 0 OK
|
||||
.+1;.
|
||||
BINDL, JMS DELAY
|
||||
JMP BINRD+1
|
||||
|
||||
WORD1, .-. /DECTAPE WC & CA
|
||||
WORD2, .-.
|
||||
|
||||
/MORE BINARY LOAD JUNK
|
||||
|
||||
BINORG, DCA ORIGIN /SAVE ORIGIN
|
||||
JMP BINT4
|
||||
|
||||
DELAY, 0
|
||||
ISZ FRAME
|
||||
JMP I DELAY
|
||||
ISZ TEMP
|
||||
JMP I DELAY
|
||||
STA /TIME OUT - GIVE HIM/HER ERROR MESSAGE
|
||||
JMP BINC2
|
||||
|
||||
BHIRI, JMP BHIR
|
||||
BINCHK, 0 /CHECKSUM ACCUMULATION
|
||||
ORIGIN, 0 /CURRNET ADDRESS
|
||||
FRAME, 0
|
||||
C7500, 7500
|
||||
MASK, 0300
|
||||
K0070, 0070
|
||||
K6201, 6201
|
||||
|
||||
*7777
|
||||
JMP BEGIN /BINARY LOADER?!!
|
||||
$ $ $ $ $!!!!!!!!!!
|
||||
|
||||
61
tss8/system/link.pal
Normal file
61
tss8/system/link.pal
Normal file
@@ -0,0 +1,61 @@
|
||||
/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:
|
||||
|
||||
MSCHED=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 IO
|
||||
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 /RETURNED FROM STOPPING A DECTAPE ON TIMER
|
||||
VERBRK=7600 /START OF INSTALLATION DEFINED LOGIN MESSAGE
|
||||
450
tss8/system/param.pal
Normal file
450
tss8/system/param.pal
Normal file
@@ -0,0 +1,450 @@
|
||||
/PARAMETERS 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.
|
||||
|
||||
/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
|
||||
/4 is defined too (PDP-8/A???)
|
||||
|
||||
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.)
|
||||
|
||||
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 NEWJOB
|
||||
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.
|
||||
/EXTENDED 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 <
|
||||
|
||||
DPSZ=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 ADDRESSES
|
||||
|
||||
/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 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 INTERPRETER
|
||||
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>
|
||||
4456
tss8/system/si.pal
Normal file
4456
tss8/system/si.pal
Normal file
File diff suppressed because it is too large
Load Diff
1372
tss8/system/ts8a.pal
Normal file
1372
tss8/system/ts8a.pal
Normal file
File diff suppressed because it is too large
Load Diff
1263
tss8/system/ts8b.pal
Normal file
1263
tss8/system/ts8b.pal
Normal file
File diff suppressed because it is too large
Load Diff
1294
tss8/system/ts8c.pal
Normal file
1294
tss8/system/ts8c.pal
Normal file
File diff suppressed because it is too large
Load Diff
1279
tss8/system/ts8d.pal
Normal file
1279
tss8/system/ts8d.pal
Normal file
File diff suppressed because it is too large
Load Diff
1329
tss8/system/ts8e.pal
Normal file
1329
tss8/system/ts8e.pal
Normal file
File diff suppressed because it is too large
Load Diff
620
tss8/system/ts8f.pal
Normal file
620
tss8/system/ts8f.pal
Normal file
@@ -0,0 +1,620 @@
|
||||
/ROUTINE TO SET A WAIT 2 CONDITION FOR THE CURRENT USER
|
||||
/ (FOR DECTAPE, RK05, OR CARDREADER)
|
||||
/ ENTER WITH DESIRED WAIT 2 STATUS IN THE AC
|
||||
|
||||
WAITS2, 0
|
||||
DCA TEMP2
|
||||
CDF
|
||||
TAD I JOB /GET USER JOB NUMBER
|
||||
JMS GETTBA
|
||||
JOBWMK
|
||||
DCA I TEMP0 /CLEAR WAIT MASK 1
|
||||
ISZ TEMP0
|
||||
TAD TEMP0 /GET WAIT NUMBER
|
||||
DCA I TEMP0 /NOW [S]HE'S WAITING
|
||||
JMP I WAITS2
|
||||
|
||||
/ROUTINE TO LOCK CURRENT USER IN HIS/HER CORE FIELD
|
||||
/ RETURNS WITH CORTBL POINTER IN AC
|
||||
USRLOK, 0
|
||||
CDF
|
||||
TAD I L2SFP /POINTER TO LEVEL 2 SAVE FIELD
|
||||
AND K0007 /JUST THE FIELD
|
||||
TAD CORTBA /DISPLACEMENT INTO THE CORE TABLE
|
||||
DCA TEMP2
|
||||
STL RTR /AC=2000
|
||||
TAD I TEMP2
|
||||
DCA I TEMP2 /LOCK IN CORE
|
||||
DATFLD
|
||||
TAD TEMP2 /NOW RETURN WITH POINTER INTO CORE TABLE
|
||||
JMP I USRLOK
|
||||
L2SFP, L2SF
|
||||
|
||||
FCB3= .+7&7770
|
||||
CDCNT, 0
|
||||
CDCORE, 0
|
||||
CDTIMR, TIMCDR
|
||||
CDL21, CLL CMA RTR /AC=5777
|
||||
AND I CDCORE
|
||||
DCA I CDCORE /UNLOCK THE CORE FIELD
|
||||
TAD CDJOB
|
||||
JMS GETTBA /FIND HIS/HER AC
|
||||
JOBREG+2
|
||||
TAD CDCNT
|
||||
DCA I TEMP0 /PUT THE COLUMN COUNT IN HIS/HER AC
|
||||
TAD CDJOB
|
||||
JMS I AWAKEN /TAKE HIM/HER OUT OF WAIT STATUS
|
||||
CDBUF, 0
|
||||
EXITF1
|
||||
CDL11, TAD I CDTIMR
|
||||
SNA CLA /WERE WE EXPECTING AN INTERRUPT?
|
||||
JMP CDIOT /NO
|
||||
ISZ CDCNT /COUNT A COLUMN
|
||||
ISZ CDBUF /BUMP THE USER'S POINTER
|
||||
CDJOB, 0 /JOB OWNING THE CARD READER - (COVERS THE "ISZ SKIP")
|
||||
CDREAD, .-. /THE PROPER READ IOT IS PLACED HERE
|
||||
CDFLD, .-. /CDF TO THE USER'S FIELD
|
||||
DCA I CDBUF /STASH A COLUMN IN THE USER'S BUFFER
|
||||
INTRTN
|
||||
CDIOT, RCRA /CLEAR UNWANTED INTERRUPT
|
||||
CLA
|
||||
INTRTN
|
||||
UUCDR, CLL RAL /TIMES 2
|
||||
TAD CDIOT /CONSTRUCT READ IOT
|
||||
DCA CDREAD /EITHER ALPHA, BINARY, OR COMPRESSED (8E ONLY)
|
||||
TAD I L2SAP
|
||||
DCA CDBUF /SAVE THE USER'S BUFFER POINTER
|
||||
DCA I L2SAP /CLEAR USER AC - IN CASE THE READER ISN'T READY
|
||||
TAD I UDFP
|
||||
DCA CDFLD /SAVE CDF TO USER'S FIELD
|
||||
TAD I JOB
|
||||
DCA CDJOB
|
||||
DCA CDCNT /ZERO COLUMN COUNT
|
||||
IOF
|
||||
IFZERO CPU&7776 < JMP .+4 >
|
||||
IFNZRO CPU&7776 < RCTF > /CLEAR 8E TRANSITION FLAG
|
||||
IAC
|
||||
RCNO /ENABLE CARD READER INTERRUPTS
|
||||
CLA
|
||||
RCSE /START CARD READER
|
||||
JMP UUCDRB /NOT READY - PUT HIM/HER TO SLEEP BEFORE CONTINUING
|
||||
JMS USRLOK /LOCK HIM/HER IN HIS/HER FIELD
|
||||
DCA CDCORE /SAVE POINTER TO CORTBL
|
||||
TAD K0004
|
||||
JMS I WAIT2 /MAKE HIM/HER WAIT FOR THE CARD READER
|
||||
CIF CDF
|
||||
CLL CMA RAL /AC=-2
|
||||
DCA I CDTIMR /SET CARD READER TIMER
|
||||
JMP I WAIT1
|
||||
UUCDRB, CIF CDF
|
||||
JMP I SLEEPB /PUT HIM/HER TO SLEEP FOR A COUPLE OF SECONDS
|
||||
*2000
|
||||
FCE3= .&7770
|
||||
FCB4= .+7&7770
|
||||
RKL11, DRST /GET CONTROLLER STATUS
|
||||
CLL RAL /IGNORE THE DONE BIT
|
||||
SZA
|
||||
JMP RKSR1 /ERROR!!!!!
|
||||
ISZ RKBLKS /COUNT A SUCCESSFUL TRANSFER
|
||||
TAD RKCMD
|
||||
SNA /ARE WE FINISHED?
|
||||
JMP RKSR2 /YES
|
||||
DLDC /LOAD THE NEW COMMAND
|
||||
TAD RKSECT
|
||||
DLAG /LOAD THE NEW SECTOR - WE'RE OFF AND RUNNING AGAIN
|
||||
JMS RKNXT /SET UP FOR THE NEXT BLOCK (IF ANY)
|
||||
CLL STA RAL
|
||||
DCA RKTIME /SET CONTROLLER TIMER FOR 2 MORE SECONDS
|
||||
CLL STA RTL
|
||||
DCA I RKERRA /THREE ERRORS
|
||||
INTRTN
|
||||
|
||||
RKSR1, ISZ I RKERRA
|
||||
JMP RKSR4 /STILL OK TO RETRY
|
||||
DRST
|
||||
RKSR2, DCA I RKERRA /FINAL STATUS FOR THE USER
|
||||
DLDC /CLEAR CONTROLLER STATUS AND COMMAND REGISTERS
|
||||
DCA RKTIME
|
||||
TAD RKL2 /SCHEDULE LEVEL 2
|
||||
INTRTN
|
||||
RKSR4, AND K1012 /SAVE SPECIAL CASE ERROR BITS
|
||||
SNA
|
||||
RKSRE, JMP RKSR5+1 /DON'T RECAL. OR PUT CURRENT JOB TO SLEEP
|
||||
AND K0010
|
||||
SZA CLA
|
||||
JMP RKSR5 /PUT CURRENT JOB TO SLEEP AND RE-TRY
|
||||
IAC
|
||||
DCLR /IN CASE WE HAVE SOMETHING REALLY IN TROUBLE
|
||||
TAD RKCOM
|
||||
AND K0006 /SAVE ONLY THE UNIT #
|
||||
TAD K0600 /ENABLE INTERRUPT ON SEEK COMPLETION
|
||||
DLDC
|
||||
STL RTL
|
||||
DCLR /RE-CALIBRATE
|
||||
TAD RKSRE
|
||||
DCA RKL11 /CHANGE LEVEL 1
|
||||
CLL STA RTL /ALLOW 3 SECONDS FOR THE RE-CALIBRATE
|
||||
DCA RKTIME
|
||||
DCLR
|
||||
INTRTN
|
||||
RKSR5, TAD SLEEPB
|
||||
DCA INTS2
|
||||
CLL CMA RTL /AC=-3
|
||||
TAD IX3 /POINTER TO DDB WORD 4 (-1)
|
||||
JMS RKGO /RE-TRY
|
||||
SNA /ANYTHING BAD?
|
||||
TAD INTS2 /NO - HOW ABOUT PUTTING SOMEONE TO SLEEP?
|
||||
INTRTN
|
||||
K1012, 1012
|
||||
RKL2, RKL20
|
||||
RKFLD, -CORTBL+51
|
||||
RKGO, 0
|
||||
DCA IX3 /SAVE THE DDB POINTER
|
||||
IAC
|
||||
DCLR /CLEAR THE CONTROLLER
|
||||
TAD I IX3 /USER WORD 1
|
||||
CLL RTR
|
||||
RAR
|
||||
DCA RKCOM /SAVE COMMAND DIVIDED BY 10
|
||||
TAD RKCOM
|
||||
AND K0037 /PAGE COUNT
|
||||
SNA
|
||||
TAD K0040 /FOR 0 OR 40 GIVE HIM/HER 40
|
||||
CMA
|
||||
TAD RKBLKS
|
||||
TAD RKBLKS /ADD NUMBER OF PAGES ALREADY TRANSFERRED
|
||||
DCA RKCNT
|
||||
TAD RKCOM
|
||||
AND K7400 /SAVE FUNCTION, DRIVE, AND HI ORDER SECTOR BIT
|
||||
TAD RKCORE /POINTER TO CORTBL ENTRY
|
||||
TAD RKFLD /EXTRACT FIELD NUMBER AND INSERT INTERRUPT ENABLE AND HALF BLOCK BITS
|
||||
CML RTL /"RKFLD" COMPLEMENTED THE LINK
|
||||
RAL
|
||||
DCA RKCOM /SAVE THE CONSTRUCTED COMMAND REGISTER
|
||||
TAD RKBLKS /NUMBER OF SECTORS ALREADY TRANSFERRED
|
||||
TAD I IX3
|
||||
DCA RKSECT /STARTING SECTOR NUMBER FROM THE USER
|
||||
SZL
|
||||
ISZ RKCOM /BUMP HI ORDER BIT
|
||||
TAD RKBLKS /NUMBER OF BLOCKS ALREADY TRANSFERRED
|
||||
CLL RTR /TIMES 400
|
||||
RTR
|
||||
RAR
|
||||
TAD I IX3
|
||||
IAC /WE ADD ONE SINCE THE CONTROLLER WANTS THE REAL ADDRESS
|
||||
DLCA /LOAD USER'S CA INTO THE CONTROLLER
|
||||
JMS RKCMD /GENERATE FIRST COMMAND
|
||||
IOF
|
||||
DLDC /LOAD CONTROLLER COMMAND REGISTER
|
||||
TAD RKSECT
|
||||
DLAG /LOAD IN THE DESIRED SECTOR - WE ARE OFF AND RUNNING
|
||||
JMS RKNXT /SET UP FOR THE NEXT SECTOR (IF ANY)
|
||||
TAD RKDRST
|
||||
DCA RKL11 /FIX FIRST WORD OF INTERRUPT SERVICE
|
||||
DSKP /ARE WE TRYING TO DO SOMETHING BAD?
|
||||
JMP I RKGO /NO - EVERYTHING IS PEACHY
|
||||
RKDRST, DRST
|
||||
DCA I RKERRA /SAVE ERROR STATUS - NO RE-TRIES WILL BE MADE
|
||||
DLDC /CLEAR CONTROLLER STATUS AND COMMAND REGISTERS
|
||||
TAD RKL2 /RETURN WITH L2 DISPATCH
|
||||
JMP I RKGO
|
||||
|
||||
RKCMD, 0
|
||||
ISZ RKCNT
|
||||
TAD RKCNT
|
||||
SMA CLA /ANY MORE BLOCKS TO GO?
|
||||
JMP RKDONE /NO - CLOSE IT OUT
|
||||
ISZ RKCNT /HALF BLOCK?
|
||||
TAD K7700 /NO - REMOVE THE HALF BLOCK BIT FROM THE COMMAND
|
||||
TAD RKCOM /GET THE COMMAND
|
||||
JMP I RKCMD
|
||||
|
||||
RKNXT, 0
|
||||
ISZ RKSECT /BUMP SECTOR
|
||||
TAD RKSECT
|
||||
SNA
|
||||
ISZ RKCOM /BUMP HI-ORDER SECTOR BIT
|
||||
AND K0037
|
||||
SZA CLA /WILL WE SEEK ON THIS ONE?
|
||||
TAD K1000 /NO - DO A READ ALL OR WRITE ALL
|
||||
DCA INTS1
|
||||
JMS RKCMD /CHECK FOR HALF BLOCK AND COMPLETION
|
||||
TAD INTS1
|
||||
RKDONE, DCA RKCMD /SAVE THE NEW COMMAND REGISTER
|
||||
JMP I RKNXT
|
||||
PAGE
|
||||
FCE4= .&7770
|
||||
IFNZRO DC08A <
|
||||
T8ASSM, 0
|
||||
AND T83770 /THE CHARACTER ONLY
|
||||
SNA
|
||||
JMP T8ASS1 /IGNORE NULL CHARACTERS
|
||||
CLL RTR /BRING THE CHARACTER INTO POSITION
|
||||
RAR
|
||||
AND T80177
|
||||
TAD K0200 /FORCE ON THE PARITY BIT
|
||||
CIF 00 /STASH IT AWAY
|
||||
JMS I T8IN1A /THAT'S DONE IN FIELD 0
|
||||
ION
|
||||
T8ASS1, CLL STA RTL /AC=-3
|
||||
TAD T8ASSM
|
||||
DCA T8T /POINTS TO THE LSW
|
||||
TAD I T8T
|
||||
AND T83770 /SAVE ONLY THE LINE NUMBER
|
||||
DCA I T8T
|
||||
ISZ T8T /POINTS TO THE CAW
|
||||
STL RTR /AC=2000
|
||||
DCA I T8T /RESET THE FLAG BIT
|
||||
TTIR /BUMP THE "R" REGISTER
|
||||
JMP I T8ASSM
|
||||
T80177, 177
|
||||
T83770, 3770
|
||||
T8IN1A, T8IN1
|
||||
T8T, 0
|
||||
T8TTI, TTI
|
||||
DC08LO^10+0 /LSW LINE # PT08+DC08LO+1
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+10 /LSW LINE # PT08+DC08LO+2
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+20 /LSW LINE # PT08+DC08LO+3
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+30 /LSW LINE # PT08+DC08LO+4
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+40 /LSW LINE # PT08+DC08LO+5
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+50 /LSW LINE # PT08+DC08LO+6
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+60 /LSW LINE # PT08+DC08LO+7
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+70 /LSW LINE # PT08+DC08LO+10
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+100 /LSW LINE # PT08+DC08LO+11
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+110 /LSW LINE # PT08+DC08LO+12
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+120 /LSW LINE # PT08+DC08LO+13
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+130 /LSW LINE # PT08+DC08LO+14
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+140 /LSW LINE # PT08+DC08LO+15
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+150 /LSW LINE # PT08+DC08LO+16
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+160 /LSW LINE # PT08+DC08LO+17
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+170 /LSW LINE # PT08+DC08LO+20
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+200 /LSW LINE # PT08+DC08LO+21
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+210 /LSW LINE # PT08+DC08LO+22
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+220 /LSW LINE # PT08+DC08LO+23
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
TTI
|
||||
DC08LO^10+230 /LSW LINE # PT08+DC08LO+24
|
||||
2000 /CAW
|
||||
JMS T8ASSM /CHARACTER FULLY ASSEMBLED
|
||||
*T8TTI+DC08A+DC08A+DC08A+DC08A
|
||||
CIF 00
|
||||
JMP I .+1 /BACK TO THE REST OF THE DC08A SERVICE
|
||||
T8OUT1
|
||||
|
||||
FCB5= .+7&7770
|
||||
*2360
|
||||
|
||||
FCE5= .&7770
|
||||
|
||||
DFCLS0, ZBLOCK 4
|
||||
DFCNO0, ZBLOCK 4
|
||||
DFL2S0, ZBLOCK 4
|
||||
-1 /TO END TABLE
|
||||
DFL2DL= .
|
||||
1-DC08LO+PT08+KL8;11-DC08LO+PT08+KL8
|
||||
21-DC08LO+PT08+KL8;31-DC08LO+PT08+KL8
|
||||
|
||||
|
||||
DFRING, CTG /CLEAR THE GROUP COUNTER
|
||||
TAD K7774
|
||||
DCA TEMP0 /COUNTER FOR GROUP SEARCH
|
||||
DFRNG1, RRS /READ RING STATUS
|
||||
SZA
|
||||
STR /ACKNOWLEDGE RING(S)
|
||||
CLA
|
||||
ITG /INCREMENT THE GROUP COUNTER
|
||||
ISZ TEMP0 /LOOKED AT ALL LINES?
|
||||
JMP DFRNG1 /NO, KEEP LOOKING
|
||||
STA
|
||||
IOF
|
||||
DCA I .+2 /DATA FLD=0 HERE, I HOPE. RESET COUNTER
|
||||
EXITF1
|
||||
D6FLAG
|
||||
|
||||
DFCLSI, 0
|
||||
DFCNWI, 0
|
||||
DFCLST, DFCLS0
|
||||
DFCNOW, DFCNO0
|
||||
DFCNTR, 0
|
||||
DFCSET, 0
|
||||
TAD DFCLST
|
||||
DCA DFCLSI /POINTER TO STATUS AT LAST INTERRUPT
|
||||
TAD DFCNOW
|
||||
DCA DFCNWI /POINTER TO STATUS AT THIS INTERRUPT
|
||||
TAD K7774
|
||||
DCA DFCNTR /COUNTER FOR COMPARISONNS
|
||||
CTG /CLEAR GROUP COUNTER
|
||||
JMP I DFCSET
|
||||
DFCARR, JMS DFCSET /INITIALIZE STATUS
|
||||
DFCAR1, RCS /READ CARRIER STATUS
|
||||
DCA I DFCNWI /PLACE ON TABLE
|
||||
ISZ DFCNWI
|
||||
ITG /INCREMENT THE GROUP COUNTER
|
||||
ISZ DFCNTR /READ ALL FOUR GROUPS?
|
||||
JMP DFCAR1 /NO, READ NEXT
|
||||
JMS DFCSET
|
||||
TAD DFL2ST
|
||||
DCA DFL2SI
|
||||
DFCAR2, TAD I DFCNWI
|
||||
CMA
|
||||
AND I DFCLSI
|
||||
SZA /ANY LINES CLEARED?
|
||||
JMP DFCAR3 /YES, ACKNOWLEDGE
|
||||
DFCAR5, TAD I DFCLSI
|
||||
CMA
|
||||
AND I DFCNWI
|
||||
SZA
|
||||
JMS DFCAR6
|
||||
ISZ DFCLSI
|
||||
ISZ DFCNWI
|
||||
ISZ DFL2SI
|
||||
ITG /INCREMENT THE GROUP COUNTER
|
||||
ISZ DFCNTR /ALL LINES CHECKED?
|
||||
JMP DFCAR2 /NO
|
||||
JMS DFCSET
|
||||
DFCAR4, TAD I DFCNWI /TRANSFER THIS STATUS TABLE TO LAST
|
||||
DCA I DFCLSI
|
||||
ISZ DFCNWI
|
||||
ISZ DFCLSI
|
||||
ISZ DFCNTR
|
||||
JMP DFCAR4
|
||||
JMP DFL200
|
||||
|
||||
DFCAR3, CTR /CLEAR TERMINAL READY
|
||||
JMS DFCAR6
|
||||
JMP DFCAR5 /LOOK AT OTHER GROUPS
|
||||
|
||||
DFCAR6, 0
|
||||
DCA TEMP4 /BIT TO SET
|
||||
TAD TEMP4
|
||||
CMA
|
||||
AND I DFL2SI
|
||||
TAD TEMP4
|
||||
DCA I DFL2SI
|
||||
JMP IDFCAR6
|
||||
DFL200, TAD DFL2ST /INITIALIZE PSEUDO GROUP CTR
|
||||
DCA DFL2SG
|
||||
|
||||
DFL22, TAD K7770 /EIGHT PHONES
|
||||
DCA TEMP0
|
||||
IAC
|
||||
DCA TEMP1 /SELECT EACH LINE IN GROUP
|
||||
|
||||
DFL21, TAD I DFL2SG
|
||||
SNA
|
||||
JMP DFL23
|
||||
SPA
|
||||
EXITF1
|
||||
AND TEMP1
|
||||
SZA CLA
|
||||
JMP DFL25
|
||||
|
||||
DFL26, TAD TEMP1
|
||||
CLL RAL
|
||||
DCA TEMP1
|
||||
ISZ TEMP0
|
||||
JMP DFL21
|
||||
DFL23, DCA I DFL2SG
|
||||
ISZ DFL2SG
|
||||
JMP DFL22
|
||||
|
||||
DFGBLK, GETB
|
||||
DFL25, TAD DFL2SG
|
||||
TAD DFL2C
|
||||
DCA TEMP2
|
||||
TAD I TEMP2
|
||||
TAD TEMP0
|
||||
TAD K0010
|
||||
CLL RAL
|
||||
TAD DFVTBA
|
||||
DCA TEMP3
|
||||
TAD I TEMP3
|
||||
SZA CLA
|
||||
JMP .+5 /YES
|
||||
TAD TEMP3
|
||||
CIF
|
||||
JMS I DFGBLK
|
||||
JMP DFL26
|
||||
TAD TEMP3
|
||||
CIF CDF
|
||||
JMS I DFUMES
|
||||
JMP DFL26
|
||||
|
||||
DFL2SG, 0
|
||||
DFL2C, DFL2DL-DFL2S0
|
||||
DFVTBA= DEVTBA
|
||||
DFL2SI, 0
|
||||
DFL2ST, DFL2S0
|
||||
DFUMES, UHLTMS
|
||||
>
|
||||
*DATA1
|
||||
/ROUTINE TO DECREMENT TIMERS
|
||||
/THEY ARE BUMPED ONCE EACH SECOND
|
||||
/THUS A USER CAN MEASURE UP TO 1 HOUR, 8 MINUTES, 15 SECONDS
|
||||
|
||||
TIMER0, 0
|
||||
ISZ TIMBIG /HAVE WE GONE THROUGH A SECOND YET?
|
||||
JMP F0TIMT /NO - DID WE FINISH ALL THE TIMERS LAST TIME?
|
||||
TAD TICSEC /REFRESH SECOND TIMER
|
||||
DCA TIMBIG
|
||||
|
||||
TAD JOBCNT
|
||||
DCA TIMET1
|
||||
TAD TIMTB1 /START OF CLKTBL
|
||||
DCA TIMET2
|
||||
TIMER1, DATFLD
|
||||
TAD I TIMET2
|
||||
SZA CLA
|
||||
ISZ I TIMET2
|
||||
JMP TIMER2
|
||||
TAD TIMEJM /SET TIMER FLAG
|
||||
TAD TIMET1
|
||||
JMS GETTBA /GET PTR TO STATUS 1
|
||||
JOBSTS+1
|
||||
TAD TEMP0 /DOES THE JOB STILL EXIST?
|
||||
SNA CLA
|
||||
JMP TIMER2 /NO
|
||||
TAD I TEMP0 /YES, SET JSTIME IN STR1
|
||||
RAL
|
||||
STL RAR
|
||||
DCA I TEMP0
|
||||
TIMER2, ISZ TIMET2
|
||||
ISZ TIMET1
|
||||
JMP TIMER1
|
||||
ISZ UPTIM1 /INDEX LOW ORDER UPTIME
|
||||
SKP
|
||||
ISZ UPTIM2 /INDEX HI ORDER UPTIME
|
||||
TIMEJM, JOBMAX+1 /NOP
|
||||
IFZERO TC01 < JMP .+3 >
|
||||
IFNZRO TC01 < STA >
|
||||
DCA TEMP2 /ENABLE TRANSFER BACK TO DECTAPE CONTROLLER WAIT
|
||||
JMS I TIMEDT /RUN DECTAPE TIMERS
|
||||
IFZERO RK05 < JMP F0TIMR >
|
||||
IFNZRO RK05 < CIF DATFLD > /NO INTERRUPTS
|
||||
TAD RKTIME
|
||||
SZA CLA /ACTIVE?
|
||||
ISZ RKTIME /YES, BUMP TIMER
|
||||
JMP F0TIMR /ALL IS WELL
|
||||
IAC
|
||||
DCLR /STOP WHATEVER IS GOING ON WITH THE RK05
|
||||
STA
|
||||
DCA I RKERRA /SHOW THAT TRANSFER WAS TERMINATED
|
||||
TAD RKJOB
|
||||
JMS I RKHUNG /REPORT THE ERROR
|
||||
RKL20
|
||||
/ROUTINE TO DUMP VALUE OF ONE CORE CELL INTO MQ
|
||||
/RUNS AT EACH SYSTEM TICK
|
||||
/TO USE, SET THE DESIRED CORE ADDRESS IN THE SWITCH REGISTER
|
||||
/TO SELECT FIELDS, CLEAR SR TO 0, AND SET THE DESIRED
|
||||
/FIELD IN THE LOW ORDER BITS OF THE SR.
|
||||
|
||||
/THIS MEANS THAT YOU CANNOT ADDRESS LOCATIONS 0,1,2, OR 3
|
||||
|
||||
/IF THIS ROUTINE IS RUNNING, THE EAE IS NOT MUCH USE
|
||||
/TO USER PROGRAMS. SORRY ABOUT THAT.
|
||||
|
||||
TIMOUT, JMP TIMEX /LAS /INSERT THE "LAS" (7604) TO ENABLE DISPLAY
|
||||
AND K7774 /TRYING A FIELD SELECT?
|
||||
SNA
|
||||
JMP DISPL1 /YES, GO CHANGE THE FIELD
|
||||
LAS /NO; WHAT WAS THAT ADDRESS AGAIN?
|
||||
DCA TEMP0
|
||||
DISFLD, CDF /ASSUME FIELD 0 TO START
|
||||
TAD I TEMP0 /PICK UP CONTENTS OF SPECIFIED ADDRESS
|
||||
MQL /DUMP IT IN THE MQ
|
||||
TIMEX, CIF CDF /BACK TO FIELD 0
|
||||
JMP I TIME3A /RETURN
|
||||
|
||||
TIMIT, TIMER3
|
||||
TIME3A, TIMER3
|
||||
TIMBIG, -TICSPS /ACTIVE COUNTER
|
||||
TICSEC, -TICSPS /STARTING VALUE OF TIMBIG
|
||||
TIMET1= TEMP4
|
||||
TIMET2= TEMP2
|
||||
TIMTB1, CLKTBL+1
|
||||
TIMEDT, DTIMER
|
||||
RKHUNG, DTRKER
|
||||
|
||||
DISPL1, LAS /WHAT WAS THAT FIELD AGAIN?
|
||||
CLL RAL
|
||||
RTL
|
||||
TAD K6201 /BUILD FIELD SELECT
|
||||
DCA DISFLD
|
||||
JMP DISFLD-1 /NOW GO LOOK
|
||||
|
||||
DEVDMB= JOBTBL-2
|
||||
*DEVTBL-1
|
||||
DEVDMB /DUMMY USED BY FIP RELEASE
|
||||
ZBLOCK DEVTBE-DEVTBL
|
||||
0 /WE ALLOW THE READER EVEN IF NOT CONFIGURED FOR ONE
|
||||
/THIS ALLOWS FIELD SERVICE TO USE THEIR PMK01
|
||||
IFZERO PUNCH <DEVDMB>
|
||||
IFNZRO PUNCH <0>
|
||||
DEVDMB
|
||||
IFZERO LPT <DEVDMB>
|
||||
IFNZRO LPT <0>
|
||||
IFZERO CDR <DEVDMB>
|
||||
IFNZRO CDR <0>
|
||||
IFZERO TC01 <DEVDMB
|
||||
DEVDMB
|
||||
DEVDMB
|
||||
DEVEMB
|
||||
DEVDMB
|
||||
DEVDMB
|
||||
DEVDMB
|
||||
DEVDMB>
|
||||
IFNZRO TC01 <ZBLOCK 10>
|
||||
IFNZRO RK05 <ZBLOCK RK05>
|
||||
IFNZRO .-JOBTBL+1 <DEVDMB>
|
||||
IFNZRO .-JOBTBL+1 <DEVDMB>
|
||||
IFNZRO .-JOBTBL+1 <DEVDMB>
|
||||
IFNZRO .-JOBTBL+1 <DEVDMB>
|
||||
-1 /TERMINATES ASSIGNABLE DEVICE TABLE
|
||||
|
||||
/JOBTBL, CLKTBL, TTYTBL, PRGTBL, & DSUTBL ARE SET UP BY INIT
|
||||
|
||||
|
||||
*FIPBLK
|
||||
ZBLOCK 10 /FIP'S FIXED PARAMETER BLOCK
|
||||
|
||||
*WINBAS
|
||||
ZBLOCK 50 /BASIC'S WINDOW
|
||||
|
||||
|
||||
$$$$$$$$$$$$$$$$$$$$$$$$$$$$
|
||||
|
||||
BIN
tss8/tss8.zip
Normal file
BIN
tss8/tss8.zip
Normal file
Binary file not shown.
65
tss8/tss8_boostrap.txt
Normal file
65
tss8/tss8_boostrap.txt
Normal file
@@ -0,0 +1,65 @@
|
||||
Loading TSS/8
|
||||
-------------
|
||||
|
||||
Note: your environment must have a functioning second Teletype; that is, you cannot
|
||||
at present run Foreground/Background if your host system is VMS or OS/2.
|
||||
|
||||
1. Load the paper-tape bootstrap:
|
||||
|
||||
sim> load tss8_init.bin
|
||||
|
||||
2. Enable the RF08, if it is not enabled, and disable the DF32, if it is enabled:
|
||||
|
||||
sim> set rf enabled
|
||||
sim> set df disabled
|
||||
|
||||
3. Mount the TSS/8 disk image of the RF08:
|
||||
|
||||
sim> attach rf tss8_rf.dsk
|
||||
|
||||
4. Assign a TCP/IP port to the Telnet listener for the extra terminals:
|
||||
|
||||
sim> attach tti1 <port #> -- 4000 typically works
|
||||
|
||||
5. Run the bootstrap:
|
||||
|
||||
sim> run 24200
|
||||
|
||||
5. TSS/8 will boot and go through its startup dialog
|
||||
|
||||
LOAD, DUMP, START, ETC? START
|
||||
MONTH-DAY-YEAR: mm:dd:yy -- numeric, yy in range [74:85]
|
||||
HR:MIN - hh:mm -- numeric, 24 hour format
|
||||
(type cr to get attention)
|
||||
|
||||
.
|
||||
|
||||
and is now ready for login. The list of accounts and passwords:
|
||||
|
||||
PPN Password
|
||||
[0,1] VH3M
|
||||
[0,2] LXHE
|
||||
[0,3] SHUG
|
||||
[77,77]
|
||||
[1,10] WBCN
|
||||
[20,1] DT
|
||||
[20,2] PT
|
||||
[20,3] TSS8
|
||||
[20,4] EDIT
|
||||
[20,5] 4TH
|
||||
[1,50] JERK
|
||||
|
||||
6. Login using one of the existing accounts. The login command won't echo:
|
||||
|
||||
.LOGIN 2 LXHE -- privileged library account
|
||||
|
||||
TSS/8.24 JOB 01 [00,02] K00 23:23:06
|
||||
|
||||
SYSTEM IS DOWN, INC.
|
||||
|
||||
7. The system is now ready for commands. To get a directory listing:
|
||||
|
||||
.R CAT
|
||||
|
||||
8. Other users can log in by connecting, from a Telnet client, to localhost
|
||||
on the port specified in the attach tti1 command.
|
||||
BIN
tss8/tss8_init.bin
Normal file
BIN
tss8/tss8_init.bin
Normal file
Binary file not shown.
2458
tss8/tss8_init.v
Normal file
2458
tss8/tss8_init.v
Normal file
File diff suppressed because it is too large
Load Diff
BIN
tss8/tss8_rf.dsk
Normal file
BIN
tss8/tss8_rf.dsk
Normal file
Binary file not shown.
BIN
tss8/tss8_rf.dsk.orig
Normal file
BIN
tss8/tss8_rf.dsk.orig
Normal file
Binary file not shown.
Reference in New Issue
Block a user