mirror of
https://github.com/livingcomputermuseum/cpus-pdp8.git
synced 2026-01-12 00:12:44 +00:00
added new tss8 source dirs
This commit is contained in:
parent
c164b2a51d
commit
e526fff7c6
Binary file not shown.
@ -143,7 +143,8 @@ int32 t;
|
||||
|
||||
{
|
||||
extern unsigned long cycles;
|
||||
printf("clock fire; cycles %d\n", cycles);
|
||||
extern FILE *traceout;
|
||||
fprintf(traceout, "clock fire; cycles %lu\n", cycles);
|
||||
}
|
||||
|
||||
dev_done = dev_done | INT_CLK; /* set done */
|
||||
|
||||
@ -324,6 +324,8 @@ static unsigned long cycles_last;
|
||||
static unsigned long max_cycles;
|
||||
int need_stop;
|
||||
|
||||
FILE *traceout;
|
||||
|
||||
t_stat sim_instr (void)
|
||||
{
|
||||
int32 IR, MB, IF, DF, LAC, MQ;
|
||||
@ -346,25 +348,32 @@ sim_rtcn_init (ttix_unit.wait, TMR_TTX); /* init ttx calib */
|
||||
|
||||
/* Main instruction fetch/decode loop */
|
||||
|
||||
if (traceout == NULL) {
|
||||
traceout = fopen("trace.txt", "w");
|
||||
}
|
||||
|
||||
while (reason == 0) { /* loop until halted */
|
||||
|
||||
#if 1
|
||||
cycles++;
|
||||
if (max_cycles && cycles >= max_cycles)
|
||||
need_stop = 1;
|
||||
cycles_last++;
|
||||
if (cycles_last >= 100000) {
|
||||
cycles_last = 0;
|
||||
printf("xxx cycles %d\r\n", (int)cycles);
|
||||
}
|
||||
{
|
||||
extern FILE *traceout;
|
||||
cycles++;
|
||||
if (max_cycles && cycles >= max_cycles)
|
||||
need_stop = 1;
|
||||
cycles_last++;
|
||||
if (cycles_last >= 100000) {
|
||||
cycles_last = 0;
|
||||
fprintf(traceout, "xxx cycles %d\r\n", (int)cycles);
|
||||
}
|
||||
|
||||
if (need_stop) {
|
||||
printf("\r\nxxx %lu stop\n", cycles);
|
||||
reason = STOP_HALT;
|
||||
if (1) { sim_ttclose(); exit(0); }
|
||||
break;
|
||||
if (need_stop) {
|
||||
fprintf(traceout, "\r\nxxx %lu stop\n", cycles);
|
||||
reason = STOP_HALT;
|
||||
if (1) { sim_ttclose(); exit(0); }
|
||||
break;
|
||||
}
|
||||
tt_service();
|
||||
}
|
||||
tt_service();
|
||||
#endif
|
||||
|
||||
if (sim_interval <= 0) { /* check clock queue */
|
||||
@ -373,8 +382,8 @@ while (reason == 0) { /* loop until halted */
|
||||
|
||||
if (int_req > INT_PENDING) { /* interrupt? */
|
||||
#if 0
|
||||
if (dtrace) printf("xxx %lu interrupt @ %o (UF%d IF%o DF%o)\n",
|
||||
cycles, PC, UF, IF>>12, DF>>12);
|
||||
if (dtrace) { extern FILE *traceout; fprintf(traceout, "xxx %lu interrupt @ %o (UF%d IF%o DF%o)\n",
|
||||
cycles, PC, UF, IF>>12, DF>>12); }
|
||||
#endif
|
||||
int_req = int_req & ~INT_ION; /* interrupts off */
|
||||
SF = (UF << 6) | (IF >> 9) | (DF >> 12); /* form save field */
|
||||
@ -414,11 +423,12 @@ while (reason == 0) { /* loop until halted */
|
||||
|
||||
#if 1
|
||||
if (dtrace) {
|
||||
printf("pc %04o ir %04o l%o ac %04o ion %d "
|
||||
"(IF%o DF%o UF%o SF%03o IB%o UB%o)\n",
|
||||
MA, IR, LAC & 010000 ? 1 : 0, LAC & 07777,
|
||||
int_req & INT_ION ? 1 : 0,
|
||||
IF>>12, DF>>12, UF, SF, IB>>12, UB);
|
||||
extern FILE *traceout;
|
||||
fprintf(traceout, "pc %04o ir %04o l%o ac %04o ion %d "
|
||||
"(IF%o DF%o UF%o SF%03o IB%o UB%o)\n",
|
||||
MA, IR, LAC & 010000 ? 1 : 0, LAC & 07777,
|
||||
int_req & INT_ION ? 1 : 0,
|
||||
IF>>12, DF>>12, UF, SF, IB>>12, UB);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -483,7 +493,7 @@ switch ((IR >> 7) & 037) { /* decode IR<0:4> */
|
||||
MA = IF | (IR & 0177); /* dir addr, page zero */
|
||||
LAC = (LAC + M[MA]) & 017777;
|
||||
#if 1
|
||||
if (mtrace) printf("mem read [%o] -> %o\n", MA, M[MA]);
|
||||
if (mtrace) { extern FILE *traceout; fprintf(traceout, "mem read [%o] -> %o\n", MA, M[MA]); }
|
||||
#endif
|
||||
break;
|
||||
|
||||
@ -491,7 +501,7 @@ switch ((IR >> 7) & 037) { /* decode IR<0:4> */
|
||||
MA = (MA & 077600) | (IR & 0177); /* dir addr, curr page */
|
||||
LAC = (LAC + M[MA]) & 017777;
|
||||
#if 1
|
||||
if (mtrace) printf("mem read [%o] -> %o\n", MA, M[MA]);
|
||||
if (mtrace) { extern FILE *traceout; fprintf(traceout, "mem read [%o] -> %o\n", MA, M[MA]); }
|
||||
#endif
|
||||
break;
|
||||
|
||||
@ -501,7 +511,7 @@ switch ((IR >> 7) & 037) { /* decode IR<0:4> */
|
||||
else MA = DF | (M[MA] = (M[MA] + 1) & 07777); /* incr before use */
|
||||
LAC = (LAC + M[MA]) & 017777;
|
||||
#if 1
|
||||
if (mtrace) printf("mem read [%o] -> %o\n", MA, M[MA]);
|
||||
if (mtrace) { extern FILE *traceout; fprintf(traceout, "mem read [%o] -> %o\n", MA, M[MA]); }
|
||||
#endif
|
||||
break;
|
||||
|
||||
@ -511,7 +521,7 @@ switch ((IR >> 7) & 037) { /* decode IR<0:4> */
|
||||
else MA = DF | (M[MA] = (M[MA] + 1) & 07777); /* incr before use */
|
||||
LAC = (LAC + M[MA]) & 017777;
|
||||
#if 1
|
||||
if (mtrace) printf("mem read [%o] -> %o\n", MA, M[MA]);
|
||||
if (mtrace) { extern FILE *traceout; fprintf(traceout, "mem read [%o] -> %o\n", MA, M[MA]); }
|
||||
#endif
|
||||
break;
|
||||
|
||||
@ -554,7 +564,7 @@ switch ((IR >> 7) & 037) { /* decode IR<0:4> */
|
||||
M[MA] = LAC & 07777;
|
||||
LAC = LAC & 010000;
|
||||
#if 1
|
||||
if (mtrace) printf("mem write [%o] <- %o\n", MA, M[MA]);
|
||||
if (mtrace) { extern FILE *traceout; fprintf(traceout, "mem write [%o] <- %o\n", MA, M[MA]); }
|
||||
#endif
|
||||
break;
|
||||
|
||||
@ -563,7 +573,7 @@ switch ((IR >> 7) & 037) { /* decode IR<0:4> */
|
||||
M[MA] = LAC & 07777;
|
||||
LAC = LAC & 010000;
|
||||
#if 1
|
||||
if (mtrace) printf("mem write [%o] <- %o\n", MA, M[MA]);
|
||||
if (mtrace) { extern FILE *traceout; fprintf(traceout, "mem write [%o] <- %o\n", MA, M[MA]); }
|
||||
#endif
|
||||
break;
|
||||
|
||||
@ -574,7 +584,7 @@ switch ((IR >> 7) & 037) { /* decode IR<0:4> */
|
||||
if (MEM_ADDR_OK (MA)) M[MA] = LAC & 07777;
|
||||
LAC = LAC & 010000;
|
||||
#if 1
|
||||
if (mtrace) printf("mem write [%o] <- %o\n", MA, M[MA]);
|
||||
if (mtrace) { extern FILE *traceout; fprintf(traceout, "mem write [%o] <- %o\n", MA, M[MA]); }
|
||||
#endif
|
||||
break;
|
||||
|
||||
@ -585,7 +595,7 @@ switch ((IR >> 7) & 037) { /* decode IR<0:4> */
|
||||
if (MEM_ADDR_OK (MA)) M[MA] = LAC & 07777;
|
||||
LAC = LAC & 010000;
|
||||
#if 1
|
||||
if (mtrace) printf("mem write [%o] <- %o\n", MA, M[MA]);
|
||||
if (mtrace) { extern FILE *traceout; fprintf(traceout, "mem write [%o] <- %o\n", MA, M[MA]); }
|
||||
#endif
|
||||
break;
|
||||
|
||||
@ -732,7 +742,7 @@ switch ((IR >> 7) & 037) { /* decode IR<0:4> */
|
||||
PCQ_ENTRY;
|
||||
MA = IF | (IR & 0177); /* dir addr, page zero */
|
||||
#if 1
|
||||
if (mtrace) printf("mem read [%o] -> %o\n", MA, M[MA]);
|
||||
if (mtrace) { extern FILE *traceout; fprintf(traceout, "mem read [%o] -> %o\n", MA, M[MA]); }
|
||||
#endif
|
||||
if ((MA & 07770) != 00010) MA = M[MA]; /* indirect; autoinc? */
|
||||
else MA = (M[MA] = (M[MA] + 1) & 07777); /* incr before use */
|
||||
@ -754,7 +764,7 @@ switch ((IR >> 7) & 037) { /* decode IR<0:4> */
|
||||
PCQ_ENTRY;
|
||||
MA = (MA & 077600) | (IR & 0177); /* dir addr, curr page */
|
||||
#if 1
|
||||
if (mtrace) printf("mem read [%o] -> %o\n", MA, M[MA]);
|
||||
if (mtrace) { extern FILE *traceout; fprintf(traceout, "mem read [%o] -> %o\n", MA, M[MA]); }
|
||||
#endif
|
||||
if ((MA & 07770) != 00010) MA = M[MA]; /* indirect; autoinc? */
|
||||
else MA = (M[MA] = (M[MA] + 1) & 07777); /* incr before use */
|
||||
|
||||
@ -200,8 +200,12 @@ if (pulse & 6) { /* DMAR, DMAW */
|
||||
t = (rf_da & RF_WMASK) - GET_POS (rf_time); /* delta to new loc */
|
||||
if (t < 0) t = t + RF_NUMWD; /* wrap around? */
|
||||
#if 1
|
||||
printf("xxx rf_go! (rf_da %o, wc %o, ma %o)\n", rf_da, M[RF_WC], M[RF_MA]);
|
||||
sim_activate (&rf_unit, 0); /* schedule op */
|
||||
{
|
||||
extern FILE *traceout;
|
||||
fprintf(traceout, "xxx rf_go! (rf_da %o, wc %o, ma %o)\n", rf_da, M[RF_WC], M[RF_MA]);
|
||||
}
|
||||
//sim_activate (&rf_unit, 0); /* schedule op */
|
||||
sim_activate (&rf_unit, t * rf_time); /* schedule op */
|
||||
#else
|
||||
sim_activate (&rf_unit, t * rf_time); /* schedule op */
|
||||
#endif
|
||||
@ -268,7 +272,10 @@ switch (pulse) { /* decode IR<9:11> */
|
||||
case 1: /* DCXA */
|
||||
rf_da = rf_da & 07777; /* clear DAR<0:7> */
|
||||
#if 1
|
||||
printf("xxx rf_da %o\n", rf_da);
|
||||
{
|
||||
extern FILE *traceout;
|
||||
fprintf(traceout, "xxx rf_da %o\n", rf_da);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
@ -277,7 +284,10 @@ switch (pulse) { /* decode IR<9:11> */
|
||||
case 2: /* DXAL w/o clear */
|
||||
rf_da = rf_da | ((AC & 0377) << 12); /* DAR<0:7> |= AC */
|
||||
#if 1
|
||||
printf("xxx rf_da %o\n", rf_da);
|
||||
{
|
||||
extern FILE *traceout;
|
||||
fprintf(traceout, "xxx rf_da %o\n", rf_da);
|
||||
}
|
||||
#endif
|
||||
AC = 0; /* clear AC */
|
||||
break;
|
||||
@ -332,7 +342,7 @@ do {
|
||||
if (MEM_ADDR_OK (pa)) /* if !nxm */
|
||||
M[pa] = fbuf[rf_da]; /* read word */
|
||||
#if 1
|
||||
if (dtrace) printf("dma [%o] <- %o\n", pa, M[pa]);
|
||||
if (dtrace) { extern FILE *traceout; fprintf(traceout, "dma [%o] <- %o\n", pa, M[pa]); }
|
||||
#endif
|
||||
}
|
||||
else { /* write */
|
||||
@ -349,7 +359,8 @@ do {
|
||||
|
||||
if ((M[RF_WC] != 0) && ((rf_sta & RFS_ERR) == 0)) /* more to do? */
|
||||
#if 1
|
||||
sim_activate (&rf_unit, 1/*0*/); /* sched next */
|
||||
// sim_activate (&rf_unit, 1/*0*/); /* sched next */
|
||||
sim_activate (&rf_unit, rf_time); /* sched next */
|
||||
#else
|
||||
sim_activate (&rf_unit, rf_time); /* sched next */
|
||||
#endif
|
||||
|
||||
@ -134,7 +134,7 @@ DEVICE tto_dev = {
|
||||
&tto_dib, 0
|
||||
};
|
||||
|
||||
#define FAKE_INPUT
|
||||
//#define FAKE_INPUT
|
||||
#ifdef FAKE_INPUT
|
||||
int tt_input_index;
|
||||
char tt_input[] = "START\r01:01:85\r10:10\r";
|
||||
@ -269,7 +269,7 @@ void tt_service(void)
|
||||
{
|
||||
if (tt_refire == 0 && (tt_input_index == tt_input_count)) {
|
||||
if (cycles >= R1) {
|
||||
strcpy(tt_input, "LOGIN 2 LXHE\r\r");
|
||||
strcpy(tt_input, "\rLOGIN 2 LXHE\r\r");
|
||||
tt_input_count = strlen(tt_input);
|
||||
tt_input_index = 0;
|
||||
tt_refire++;
|
||||
|
||||
@ -147,7 +147,7 @@ PDP8 = ${PDP8D}pdp8_cpu.c ${PDP8D}pdp8_clk.c ${PDP8D}pdp8_df.c \
|
||||
${PDP8D}pdp8_rx.c ${PDP8D}pdp8_sys.c ${PDP8D}pdp8_tt.c \
|
||||
${PDP8D}pdp8_ttx.c ${PDP8D}pdp8_rl.c ${PDP8D}pdp8_tsc.c \
|
||||
${PDP8D}pdp8_td.c
|
||||
PDP8_OPT = -I ${PDP8D}
|
||||
PDP8_OPT = -I ${PDP8D} -lm
|
||||
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
/EDUSYSTEM 50 MONITORS ARE TO RUN.
|
||||
/FOR EACH STATEMENT, THE COMMENT INDICATES THE POSSIBLE RESPONSES.
|
||||
|
||||
CPU= 0 /1 IF CPU IS PDP-8; 0 IF CPU IS PDP-8/I;
|
||||
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,
|
||||
@ -22,7 +22,7 @@ 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
|
||||
PUNCH= 0 /1 IF SYSTEM INCLUDES PUNCH; 0 IF IT DOES NOT
|
||||
|
||||
TC01= 0 /1 IF SYSTEM INCLUDES DECTAPE(S); 0 IF IT DOES NOT
|
||||
|
||||
@ -30,7 +30,7 @@ RK05= 0 /NUMBER OF RK05 CARTRIDGE DISK DRIVES ON THE SYSTEM; 0 TO 4
|
||||
|
||||
CDR= 0 /1 IF SYSTEM INCLUDES CARD READER; 0 IF IT DOES NOT
|
||||
|
||||
LPT= 1 /1 IF SYSTEM INCLUDES LINE PRINTER; 0 IF NO LINE PRINTER
|
||||
LPT= 0 /1 IF SYSTEM INCLUDES LINE PRINTER; 0 IF NO LINE PRINTER
|
||||
|
||||
DECIMAL /MONITOR CAPACITY FOR THIS SYSTEM
|
||||
|
||||
@ -41,11 +41,11 @@ JOBMAX= 20 /NUMBER OF SIMULTANEOUS USERS (20 MAXIMUM)
|
||||
|
||||
CONTTY= 1 /WE ALWAYS HAVE A CONSOLE (K00)
|
||||
|
||||
DC08A= 19 /NUMBER OF TERMINALS INTERFACED VIA DC08A (PDP-8/I ONLY, 19 MAX.)
|
||||
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= 8 /NUMBER OF TERMINALS INTERFACED VIA PT08 (PDP-8 & PDP-8/I ONLY)
|
||||
PT08= 0 /NUMBER OF TERMINALS INTERFACED VIA PT08 (PDP-8 & PDP-8/I ONLY)
|
||||
|
||||
KL8= 0 /NUMBER OF ADDITIONAL TERMINALS INTERFACED VIA KL8 (PDP-8/E ONLY, 19 MAX.)
|
||||
|
||||
|
||||
39
tss8.23/ASM.BI
Normal file
39
tss8.23/ASM.BI
Normal file
@ -0,0 +1,39 @@
|
||||
$JOB ASSEMBLE TSS/8
|
||||
/TSS/8 CONFIG PARMS IN DSK:TSCON.PA ??
|
||||
$MSG MT TSS/8 #1 & #2 ON D1 & D2
|
||||
.R PIP
|
||||
*DSK:<DSK: (OS)
|
||||
.R FOTP
|
||||
*DTA1:*.TS<DTA1:PARAM.PA,SI.PA /R
|
||||
*DTA1:*.TS<DTA1:FIP.PA,INIT.PA /R
|
||||
*DSK:*.TM<DTA1:*.TS,XDDT.BN
|
||||
*DTA1:*.PA<DTA1:*.TS /R
|
||||
$MSG TSS/8 #1 (D1) FREE.
|
||||
.R PAL8
|
||||
*SI<TSCON.PA,PARAM.TM,SI.TM (WKE)
|
||||
.R PIP
|
||||
*SI.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
.R PAL8
|
||||
*FIP<TSCON.PA,PARAM.TM,FIP.TM (WKE)
|
||||
.R PAL8
|
||||
*INIT<TSCON.PA,PARAM.TM,INIT.TM (WKE)
|
||||
.R PIP
|
||||
*INIT.BN<XDDT.TM,INIT.BN /B
|
||||
*FIP.TM,INIT.TM,XDDT.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
.R FOTP
|
||||
*DSK:*.TM<DTA2:TS8.PA,TS8II.PA
|
||||
$MSG TSS/8 #2 (D2) FREE.
|
||||
.R PAL8
|
||||
*TS8<TSCON.PA,PARAM.TM,TS8.TM (WKE)
|
||||
.R PIP
|
||||
*TS8.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
.R PAL8
|
||||
*TS8II<TSCON.PA,PARAM.TM,TS8II.TM (WKE)
|
||||
.R PIP
|
||||
*PARAM.TM,TS8II.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
$END
|
||||
|
||||
43
tss8.23/ASMJOB.BI
Normal file
43
tss8.23/ASMJOB.BI
Normal file
@ -0,0 +1,43 @@
|
||||
$JOB ASSEMBLE TSS/8
|
||||
/TSS/8 CONFIG PARMS IN DSK:TSCON.PA ??
|
||||
$MSG MT TSS/8 #1 & #2 ON D1 & D2
|
||||
.R PIP
|
||||
*DSK:<DSK: (OS)
|
||||
.R FOTP
|
||||
*DSK:*.TM<DTA1:PARAM.PA,SI.PA
|
||||
.R PAL8
|
||||
*SI<TSCON.PA,PARAM.TM,SI.TM (WKE)
|
||||
.R PIP
|
||||
*SI.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*FIP.TM<DTA1:FIP.PA
|
||||
.R PAL8
|
||||
*FIP<TSCON.PA,PARAM.TM,FIP.TM (WKE)
|
||||
.R PIP
|
||||
*FIP.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
.R FOTP
|
||||
*DSK:<DTA1:INIT.PA,INIT.XD
|
||||
$MSG TSS/8 #1 (D1) FREE.
|
||||
.R PAL8
|
||||
*INIT<TSCON.PA,PARAM.TM,INIT.PA (WKE)
|
||||
.R PIP
|
||||
*INIT.PA/D<
|
||||
*INIT.BN<INIT.XD,INIT.BN /B
|
||||
*INIT.XD/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*TS8.TM<DTA2:TS8.PA
|
||||
.R PAL8
|
||||
*TS8<TSCON.PA,PARAM.TM,TS8.TM (WKE)
|
||||
.R PIP
|
||||
*TS8.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*TS8II.TM<DTA2:TS8II.PA
|
||||
$MSG TSS/8 #2 (D2) FREE.
|
||||
.R PAL8
|
||||
*TS8II<TSCON.PA,PARAM.TM,TS8II.TM (WKE)
|
||||
.R PIP
|
||||
*PARAM.TM,TS8II.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
$END
|
||||
|
||||
BIN
tss8.23/BATCH.SV
Normal file
BIN
tss8.23/BATCH.SV
Normal file
Binary file not shown.
325
tss8.23/DOWN.PA
Normal file
325
tss8.23/DOWN.PA
Normal file
@ -0,0 +1,325 @@
|
||||
/// SYSTEM-DOWN PROGRAM
|
||||
/ MONITORS ALL KEYBOARDS AND RESPONDS
|
||||
/ TO ANY INPUT WITH A CANNED MESSAGE
|
||||
/ WRITTEN BY R. B. BARTLEIN - 11/14/74
|
||||
/
|
||||
*0
|
||||
0
|
||||
JMP I .+1
|
||||
INTER
|
||||
*10
|
||||
XR1, 0
|
||||
XR2, 0
|
||||
*20
|
||||
CHGPTR, 0
|
||||
CHKPTR, 0
|
||||
K00PTR, DEVLST+2 /MESSAGE POINTER FOR K00
|
||||
NEWMSG, EMSG
|
||||
RUBFLG, 0
|
||||
EDCHAR, 0
|
||||
/
|
||||
TYPE= JMS . /TYPE A CHARACTER
|
||||
0
|
||||
TLS
|
||||
CLA
|
||||
TSF
|
||||
JMP .-1
|
||||
JMP I .-5 /RETURN
|
||||
/
|
||||
AAAP0= .-1
|
||||
///
|
||||
*200
|
||||
/
|
||||
/START OF MAIN PROGRAM - WE MONITOR ALL TERMINALS AND
|
||||
/PRINT OUR CANNED MESSAGE WHEN ANYONE TYPES A CHAR
|
||||
START, CLA CLL
|
||||
CAF /CLEAR EVERYTHING INITIALLY
|
||||
TAD [CHGMSG-1
|
||||
DCA I K00PTR /START MESSAGE ON CONSOLE
|
||||
TLS
|
||||
ION
|
||||
TAD [707
|
||||
DCA DISPLY /SET UP THE AC DISPLAY
|
||||
LOOP, TAD LPCNT
|
||||
DCA TMP2 /SET SECOND LOOP COUNTER
|
||||
TAD DISPLY
|
||||
RAL
|
||||
ISZ TMP1
|
||||
JMP .-1
|
||||
ISZ TMP2
|
||||
JMP .-3
|
||||
DCA DISPLY
|
||||
TAD [DEVLST
|
||||
DCA TMP2 /SET THE LIST POINTER
|
||||
KIELP, TAD I TMP2 /GET AN INPUT DEVICE
|
||||
SNA /END OF LIST?
|
||||
JMP LOOP /YES - JUST WAIT
|
||||
TAD [6005 /NO - FORM THE 'KIE' INSTRUCTION
|
||||
DCA .+2
|
||||
CLA IAC
|
||||
HLT /NOW ENABLE INTERRUPTS
|
||||
CLA
|
||||
ISZ TMP2 /INCREMENT THE LIST POINTER
|
||||
ISZ TMP2
|
||||
ISZ TMP2
|
||||
JMP KIELP / AND ENABLE THE REST
|
||||
/
|
||||
DISPLY, 707
|
||||
LPCNT, -4
|
||||
TMP1, 0
|
||||
TMP2, 0
|
||||
/
|
||||
AAAP1= .-1
|
||||
///
|
||||
/INTERRUPT HANDLING - WE JUST CONTINUE TYPING
|
||||
/IF THIS IS AN OUTPUT INTERRUPT; IF THIS IS AN INPUT
|
||||
/INTERRUPT, WE START TYPING THE "DOWN" MESSAGE.
|
||||
INTER, DCA AC
|
||||
RTR
|
||||
DCA LINK
|
||||
TAD [DEVLST
|
||||
DCA CHKPTR
|
||||
INTER1, TAD I CHKPTR /GET THE INPUT DEVICE
|
||||
SNA /END OF LIST?
|
||||
JMP INTER7 /YES - EXIT ROUTINE
|
||||
TAD [6001
|
||||
DCA INTER2 /SET THE INPUT CHECK
|
||||
ISZ CHKPTR
|
||||
TAD I CHKPTR /GET THE OUTPUT DEVICE
|
||||
TAD [6006
|
||||
DCA INTER5 /SET THE OUTPUT SELECT
|
||||
ISZ CHKPTR
|
||||
INTER2, HLT / KSF
|
||||
JMP INTER3 /NOT INPUT DEVICE
|
||||
CLA IAC
|
||||
TAD .-3
|
||||
DCA .+1
|
||||
HLT / KCC
|
||||
TAD I CHKPTR /GET THE MESSAGE INDEX
|
||||
SZA CLA /ALREADY TYPING MESSAGE?
|
||||
JMP INTER6 /YES
|
||||
TAD K00PTR
|
||||
CIA
|
||||
TAD CHKPTR
|
||||
SNA CLA /IS THIS THE CONSOLE (K00)?
|
||||
TAD [CHGMSG-MSG /YES - ADD THE 'CHANGE' MESSAGE
|
||||
TAD [MSG-1 /NO - SET THE DOWN-MESSAGE
|
||||
DCA I CHKPTR /SET THE MESSAGE POINTER
|
||||
JMP INTER4
|
||||
INTER3, TAD INTER5 /GET THE OUTPUT SELECT
|
||||
TAD [-5
|
||||
DCA .+1
|
||||
HLT / TSF
|
||||
JMP INTER6 /NOPE - CONTINUE LOOP
|
||||
CLA IAC
|
||||
TAD .-3
|
||||
DCA .+1
|
||||
HLT /CLEAR THE FLAG
|
||||
INTER4, TAD I CHKPTR
|
||||
SNA /ANY MESSAGE BEING TYPED?
|
||||
JMP INTER6 /NOPE - JUST EXIT
|
||||
IAC
|
||||
DCA I CHKPTR /YES - INCREMENT THE ADDRESS
|
||||
TAD I CHKPTR
|
||||
DCA INTEMP /SET THE MESSAGE ADDRESS
|
||||
TAD I INTEMP
|
||||
SZA /END OF MESSAGE?
|
||||
JMP INTER5 /NO - TYPE THE CHARACTER
|
||||
DCA I CHKPTR /YES - CLEAR THE POINTER
|
||||
JMP INTER6 / AND EXIT
|
||||
INTER5, HLT /TYPE THE CHARACTER
|
||||
CLA CLL
|
||||
INTER6, ISZ CHKPTR
|
||||
SRQ /ANY MORE INTERRUPTS?
|
||||
JMP INTER7 /NO - JUST EXIT
|
||||
JMP INTER1 /YES - CONTINUE CHECKING
|
||||
/
|
||||
/NOW WE RELOAD THE AC & LINK AND RETURN TO OUR MAINLINE.
|
||||
INTER7, CLA CLL
|
||||
TAD LINK
|
||||
CLL RTL
|
||||
CLA
|
||||
TAD AC
|
||||
ION
|
||||
JMP I 0 /EXIT INTERRUPT HANDLER
|
||||
/
|
||||
AC, 0
|
||||
LINK, 0
|
||||
INTEMP, 0
|
||||
///
|
||||
*1000
|
||||
/
|
||||
/WE ARE STARTED HERE TO CHANGE THE "DOWN MESSAGE"
|
||||
CHANGE, CLA CLL
|
||||
DCA EDCHAR
|
||||
TAD ENDMSG
|
||||
DCA XR1
|
||||
TAD I XR1 /TYPE "END WITH ALT-MODE"
|
||||
SNA
|
||||
JMP .+3
|
||||
TYPE
|
||||
JMP .-4
|
||||
TAD NEWMSG /INITIALIZE THE MESSAGE POINTER
|
||||
DCA CHGPTR
|
||||
TAD [MSG+2
|
||||
DCA XR1 /SET POINTER FOR CHARACTER SEARCH
|
||||
DCA RUBFLG
|
||||
CHG2, KSF /NOW WAIT FOR A CHARACTER
|
||||
JMP .-1
|
||||
KRB
|
||||
AND [177
|
||||
TAD [200
|
||||
TAD [-377
|
||||
SNA /RUBOUT?
|
||||
JMP RUBOUT /YES
|
||||
DCA XR2 /NO - SAVE OUR CHAR A MOMENT
|
||||
ISZ RUBFLG /JUST FINISH RUBOUTS?
|
||||
JMP .+3 /NO
|
||||
TAD ["\
|
||||
TYPE /YES - CLOSE THE BLOCK
|
||||
DCA RUBFLG / AND CLEAR THE FLAG
|
||||
TAD XR2
|
||||
TAD [377-375
|
||||
SNA /ALT MODE?
|
||||
JMP CHGEND /YES
|
||||
TAD [375-376
|
||||
SNA /ASR 35 ALT MODE?
|
||||
JMP CHGEND /YES
|
||||
TAD [376-233
|
||||
SNA /ESCAPE?
|
||||
JMP CHGEND /YES
|
||||
TAD [233-232
|
||||
SNA /CTRL/Z - EDIT COMMAND?
|
||||
JMP EDIT /YES
|
||||
TAD [232-214
|
||||
SNA /CTRL/L - CONTINUE SEARCH?
|
||||
JMP EDITC /YES
|
||||
TAD [214
|
||||
DCA I CHGPTR /NOW STORE THE CHARACTER
|
||||
TAD I CHGPTR
|
||||
TYPE /NOW ECHO THE CHARACTER
|
||||
ISZ CHGPTR
|
||||
JMP CHG2 /GET THE NEXT CHARACTER
|
||||
JMP CHANGE /RAN OUT OF ROOM - RESTART
|
||||
/
|
||||
/HERE WE HANDLE THE RUBOUT CONTROL
|
||||
RUBOUT, TAD NEWMSG
|
||||
CIA
|
||||
TAD CHGPTR
|
||||
SNA CLA /ANYTHING TO RUB OUT?
|
||||
JMP CHG2 /NO - IGNORE THE RUBOUT
|
||||
ISZ RUBFLG /PART OF A STRING?
|
||||
SKP /NOT YET
|
||||
JMP .+3
|
||||
TAD ["\
|
||||
TYPE /YES - TYPE "\"
|
||||
CLA CMA
|
||||
DCA RUBFLG / AND SET THE FLAG
|
||||
CLA CMA
|
||||
TAD CHGPTR
|
||||
DCA CHGPTR /BACK UP THE POINTER
|
||||
TAD I CHGPTR
|
||||
TYPE / AND ECHO THE CHARACTER
|
||||
JMP CHG2 /NOW GET THE NEXT CHARACTER
|
||||
/
|
||||
/HERE WE TERMINATE THE NEW MESSAGE AND START THE
|
||||
/MAIN PROGRAM.
|
||||
CHGEND, DCA I CHGPTR /STORE A ZERO
|
||||
TAD [MSG+2
|
||||
DCA XR1 /SET THE DESTINATION POINTER
|
||||
CLA CMA
|
||||
TAD NEWMSG
|
||||
DCA XR2 / AND THE NEW MSG POINTER
|
||||
TAD I XR2 /GET A CHARACTER
|
||||
SNA /END OF MESSAGE?
|
||||
JMP CHGSET /YES - SET FOR THE NEXT CHANGE
|
||||
DCA I XR1
|
||||
JMP .-4 /NO - MOVE THE NEXT CHARACTER
|
||||
CHGSET, DCA I XR1 /STORE A ZERO
|
||||
DCA I XR1
|
||||
TAD XR1 /GET THE END ADDRESS
|
||||
DCA NEWMSG / AND SAVE IT
|
||||
JMP I [200 /THEN START THE PROGRAM
|
||||
/
|
||||
/WE COME HERE TO SEARCH THE PREVIOUS MESSAGE
|
||||
/AND COPY IT TO THE NEW MESSAGE.
|
||||
EDIT, TAD ["^
|
||||
TYPE /TYPE A PROMPT
|
||||
KSF
|
||||
JMP .-1
|
||||
KRB /READ THE SEARCH CHAR
|
||||
AND [177
|
||||
SNA /ZERO?
|
||||
JMP .-5 /YES - THAT'S NOT ALLOWED
|
||||
TAD [200
|
||||
CIA
|
||||
DCA EDCHAR
|
||||
/
|
||||
/WE COME HERE TO CONTINUE A SINGLE CHARACTER SEARCH.
|
||||
EDITC, TAD EDCHAR
|
||||
SNA CLA /IS THERE A SEARCH CHAR?
|
||||
JMP CHG2 /NO - IGNORE THE CTRL/L
|
||||
EDIT1, TAD I XR1 /GET THE NEXT MESSAGE CHARACTER
|
||||
SNA /END OF MESSAGE?
|
||||
JMP EDIT2 /YES
|
||||
DCA I CHGPTR /NO - STORE IT
|
||||
TAD I CHGPTR
|
||||
TYPE / AND ECHO IT
|
||||
TAD I CHGPTR
|
||||
ISZ CHGPTR /INCREMENT THE MESSAGE POINTER
|
||||
SKP
|
||||
JMP CHANGE /OUT OF ROOM - RESTART
|
||||
TAD EDCHAR
|
||||
SZA CLA /IS IT OUR SEARCH CHAR?
|
||||
JMP EDIT1 /NO - KEEP GOING
|
||||
JMP CHG2 /YES - STOP HERE
|
||||
/
|
||||
/WE REACHED THE END OF THE OLD MESSAGE
|
||||
EDIT2, CLA CMA
|
||||
TAD XR1 /RESET THE POINTER
|
||||
DCA XR1 / TO POINT TO THE END
|
||||
JMP CHG2 / AND TERMINATE THE SEARCH
|
||||
/
|
||||
AAACHG= .-1
|
||||
/
|
||||
ENDMSG, .;215;212;212;"E;"N;"D;" ;"W;"I;"T;"H
|
||||
" ;"A;"L;"T;" ;"M;"O;"D;"E;215;212;0
|
||||
///
|
||||
DEVLST, 030; 040; 0 /K00
|
||||
400; 410; 0
|
||||
420; 430; 0 /K02
|
||||
440; 450; 0
|
||||
460; 470; 0 /K04
|
||||
340; 350; 0
|
||||
110; 120; 0 /K06
|
||||
300; 310; 0
|
||||
320; 330; 0 /K10
|
||||
500; 510; 0
|
||||
520; 530; 0 /K12
|
||||
540; 550; 0
|
||||
560; 570; 0 /K14
|
||||
700; 710; 0
|
||||
360; 370; 0 /K16
|
||||
720; 730; 0
|
||||
740; 750; 0 /K20
|
||||
060; 070; 0
|
||||
140; 150; 0
|
||||
160; 170; 0 /K23
|
||||
0 /END OF LIST
|
||||
/
|
||||
CHGMSG, 215;212;212;"S;"T;"O;"P;" ;"C;"P;"U;" ;"A;"N;"D
|
||||
" ;"S;"T;"A;"R;"T;" ;"A;"T;" ;"L;"O;"C;"A;"T;"I;"O;"N
|
||||
" ;"1;"0;"0;"0;" ;"T;"O;" ;"C;"H;"A;"N;"G;"E
|
||||
" ;"M;"E;"S;"S;"A;"G;"E;".
|
||||
MSG, 215;212;212;"S;"Y;"S;"T;"E;"M;" ;"I;"S
|
||||
" ;"D;"O;"W;"N;";;" ;"P;"L;"E;"A;"S;"E
|
||||
" ;"H;"A;"N;"G;" ;"U;"P;" ;"N;"O;"W;215;212
|
||||
"A;"N;"D;" ;"C;"A;"L;"L;" ;"B;"A;"C;"K
|
||||
" ;"L;"A;"T;"E;"R;".;215;212
|
||||
0
|
||||
EMSG= .
|
||||
/
|
||||
AAAEND= .-1
|
||||
/// $$$
|
||||
$$$
|
||||
|
||||
321
tss8.23/FD.PA
Normal file
321
tss8.23/FD.PA
Normal file
@ -0,0 +1,321 @@
|
||||
/// HANDLER FOR THE ADC FLOPPY DISC
|
||||
/
|
||||
IFNDEF FDN <FDN= 1>
|
||||
/
|
||||
IDTRK= 20 /FIXED LOCATION FOR 'READ SECTOR I.D.'
|
||||
IDSECT= 21
|
||||
/
|
||||
X= 20 /IOT DIGIT FOR FIRST CONTROLLER
|
||||
Y= 30
|
||||
/
|
||||
CLRC= 6700+X /CLEAR CONTROLLER
|
||||
RTSR= 6701+X /READ STATUS REGISTER
|
||||
RTCA= 6703+X /READ CURRENT ADDRESS REGISTER
|
||||
DKGO= 6704+X /START OPERATION
|
||||
LTCR= 6705+X /LOAD COMMAND REGISTER
|
||||
LCAR= 6706+X /LOAD CURRENT ADDRESS REGISTER
|
||||
LDTA= 6707+X /LOAD THE DATA REGISTER
|
||||
SKRY= 6700+Y /SKIP ON READY
|
||||
SKER= 6701+Y /SKIP ON ERROR
|
||||
SKCE= 6702+Y /SKIP ON CRC ERROR
|
||||
/
|
||||
*0
|
||||
-1 /ONE HANDLER
|
||||
IFZERO FDN <DEVICE FDK0; DEVICE FD0>
|
||||
IFZERO FDN-1 <DEVICE FDK1; DEVICE FD1>
|
||||
IFZERO FDN-2 <DEVICE FDK2; DEVICE FD2>
|
||||
IFZERO FDN-3 <DEVICE FDK3; DEVICE FD3>
|
||||
IFZERO FDN-4 <DEVICE FDK4; DEVICE FD4>
|
||||
IFZERO FDN-5 <DEVICE FDK5; DEVICE FD5>
|
||||
IFZERO FDN-6 <DEVICE FDK6; DEVICE FD6>
|
||||
IFZERO FDN-7 <DEVICE FDK7; DEVICE FD7>
|
||||
4400; FDK0-200+4000; ZBLOCK 2
|
||||
///
|
||||
*200
|
||||
/
|
||||
/SUBROUTINE TO SELECT THE DATA-BUFFER'S DATA FIELD
|
||||
FDUDF, 0
|
||||
HLT
|
||||
JMP I FDUDF
|
||||
/
|
||||
FDPFIX, -74-1
|
||||
FD37, 37
|
||||
FD70, 70
|
||||
FDRIVE, FDN+200 /SET 'HEAD LOAD' BIT ALSO
|
||||
M1898D, -3552 /-1898
|
||||
/
|
||||
/SUBROUTINE TO INITIALIZE STUFF
|
||||
FDINIT, HLT
|
||||
CLA CLL CMA RAL
|
||||
TAD FDEXIT
|
||||
DCA FDIN2 /SET CDF BACK TO CALLING FIELD
|
||||
FD6201, CDF
|
||||
TAD FDPTR1
|
||||
TAD FDINIT /MAKE OUR POINTER ABSOLUTE
|
||||
DCA FDPTR1
|
||||
FDIN1, TAD I FDPTR1 /GET RELATIVE ADDRESS
|
||||
TAD FDINIT / AND ADD THE BASE ADDRESS
|
||||
FDBUF, DCA I FDPTR1 /STORE THE ABSOLUTE POINTER
|
||||
FDCMD, ISZ FDPTR1
|
||||
FDFUNC, ISZ FDCNT1
|
||||
FDPGCT, JMP FDIN1
|
||||
FDPKMK, TAD .+3 /FIX SO WE ONLY INITIALIZE ONCE
|
||||
FDREC, DCA FDINIT+1
|
||||
FDIN2, HLT /SET CALLING FIELD AGAIN
|
||||
FDSECT, JMP I FDINIT
|
||||
/
|
||||
FDK0, 01 /HANDLER VERSION NUMBER
|
||||
FDM200, 7600 /ALSO 'CLA'
|
||||
RDF /GET THE CALLING FIELD
|
||||
TAD FD6203
|
||||
DCA FDEXIT / AND SET THE EXIT 'CIF CDF'
|
||||
JMS FDINIT /INITIALIZE THE HANDLER
|
||||
FDBASE, TAD I FDK0 /GET THE FUNCTION CODE
|
||||
DCA FDFUNC
|
||||
ISZ FDK0
|
||||
TAD FDFUNC
|
||||
AND FD70 /GET THE DATA FIELD SELECT
|
||||
BSW
|
||||
TAD FDRIVE / ADD IN THE DRIVE NUMBER
|
||||
DCA FDCMD /SAVE AS THE COMMAND BASE
|
||||
TAD FDFUNC
|
||||
AND FD70 /GET THE BUFFER DATA FIELD AGAIN
|
||||
TAD FD6201 / AND BUILD A 'CDF' TO IT
|
||||
DCA FDUDF+1
|
||||
TAD I FDK0 /GET THE BUFFER ADDRESS
|
||||
DCA FDBUF
|
||||
ISZ FDK0
|
||||
TAD I FDK0 /GET THE OS/8 BLOCK NUMBER
|
||||
ISZ FDK0
|
||||
FD6203, CIF CDF
|
||||
CLL RAL /CONVERT IT TO A RECORD NUMBER
|
||||
SPA SZL /REASONABLE RECORD NUMBER?
|
||||
JMS FATAL /NO - FATAL ERROR
|
||||
DCA FDREC /YES - SAVE THE RECORD NUMBER
|
||||
TAD FDFUNC
|
||||
BSW
|
||||
AND FD37 /GET THE RECORD COUNT
|
||||
CMA
|
||||
DCA FDPGCT
|
||||
JMP FDEPG /DO ZERO PAGES IF ZERO SPECIFIED
|
||||
FDPGLP, TAD FDREC
|
||||
CLL RAL
|
||||
SPA SZL /LEGAL?
|
||||
JMS FATAL /NO
|
||||
DCA FDSECT /SECTOR NUMBER = RECORD * 2
|
||||
TAD FDSECT
|
||||
TAD M1898D
|
||||
SMA CLA /LEGAL SECTOR NUMBER?
|
||||
JMS FATAL /NO - TAKE ERROR EXIT
|
||||
TAD FDFUNC
|
||||
SMA CLA /READ OR WRITE?
|
||||
JMP FDKRD /READ
|
||||
/
|
||||
/WRITE A PAGE OUT TO DISC
|
||||
TAD FDSECT
|
||||
JMS I FDSTRT /FIRST A SECTOR OF FULL BYTES
|
||||
20
|
||||
JMS FDPACK /THEN OVERLAY THE PARTIAL SECTOR
|
||||
-1
|
||||
TAD FDSECT
|
||||
IAC
|
||||
JMS I FDSTRT / AND WRITE BACK THE PARTIAL SECTOR
|
||||
20
|
||||
JMP .+5
|
||||
/
|
||||
/READ A PAGE FROM THE DISC.
|
||||
FDKRD, TAD FDSECT
|
||||
IAC
|
||||
JMS I FDSTRT /FIRST READ THE PARTIAL SECTOR
|
||||
10
|
||||
JMS FDPACK / AND SHIFT THE HALF-BYTES UP
|
||||
+1
|
||||
TAD FDSECT
|
||||
JMS I FDOVER /THEN OVERLAY IT WITH THE FULL BYTES
|
||||
CDF
|
||||
RTCA /NOW UPDATE THE BUFFER ADDRESS
|
||||
DCA FDBUF
|
||||
ISZ FDREC / AND THE RECORD NUMBER
|
||||
FDEPG, ISZ FDPGCT
|
||||
JMP FDPGLP / AND GO TRANSFER ANOTHER PAGE
|
||||
ISZ FDK0 /OTHERWISE WE'RE DONE
|
||||
FDEXIT, HLT
|
||||
JMP I FDK0 / AND RETURN
|
||||
/
|
||||
/SUBROUTINE TO PACK THE PARTIAL BYTES
|
||||
FDPACK, HLT
|
||||
JMS I FDWAIT /MAKE SURE THE DISC IS DONE
|
||||
TAD FDBUF
|
||||
DCA FDPTR1
|
||||
TAD FDM200 /SET THE WORD COUNT
|
||||
DCA FDCNT1
|
||||
TAD I FDPACK /GET THE READ/WRITE SWITCH
|
||||
ISZ FDPACK
|
||||
SPA CLA /READ-PACK OR WRITE-PACK?
|
||||
TAD FDPFIX /WRITE - SET MASK = 74
|
||||
CMA /READ - SET MASK = 7777
|
||||
DCA FDPKMK
|
||||
JMS FDUDF /CHANGE TO BUFFER'S DATA FIELD
|
||||
FDPK1, TAD I FDPTR1 /GET THE WORD
|
||||
BSW /SWAP HALVES
|
||||
AND FDPKMK / AND MAYBE AND OFF PART
|
||||
DCA I FDPTR1 /THEN STORE BACK THE WORD
|
||||
ISZ FDPTR1
|
||||
ISZ FDCNT1 /DECREMENT COUNTER
|
||||
JMP FDPK1 / AND CONTINUE
|
||||
CDF
|
||||
JMP I FDPACK
|
||||
/
|
||||
FATAL,
|
||||
FDCNT1, FDPTR1-FDEREL /LENGTH OF RELOCATION LIST
|
||||
CLA CLL CMA /YES - INDICATE FATAL ERROR
|
||||
JMP FDEXIT / AND EXIT
|
||||
/
|
||||
IFNZRO 400-4-.&4000 <GLITCH>
|
||||
*400-4 /PART OF LIST BELONGS IN SECOND PAGE
|
||||
FDPTR1, .+1-FDBASE /USED DURING INITIALIZATION
|
||||
FDOVER, FDOVLY-FDBASE
|
||||
FDSTRT, FDST-FDBASE
|
||||
FDWAIT, FDWT-FDBASE
|
||||
FDUDFA, FDUDF-FDBASE
|
||||
FDCMDA, FDCMD-FDBASE
|
||||
FDBUFA, FDBUF-FDBASE
|
||||
FDQUIT, FATAL-FDBASE
|
||||
FDEREL= .-1 /END OF RELOCATION LIST
|
||||
///
|
||||
/
|
||||
/SUBROUTINE TO OVERLAY PART OF THE BUFFER WITH A SECTOR.
|
||||
FDOVLY, 0
|
||||
DCA SECT
|
||||
TAD I FDBUFA
|
||||
DCA FDPTR2 /SET THE OVERLAY POINTER
|
||||
TAD M200
|
||||
DCA FDCNT2 / AND THE WORD COUNTER
|
||||
TAD SECT
|
||||
JMS FDST /START THE TRANSFER
|
||||
10
|
||||
SKER /ANY ERROR NOW?
|
||||
SKP
|
||||
JMS I FDQUIT /YES - TAKE FATAL ERROR EXIT
|
||||
JMS I FDUDFA /CHANGE TO USER'S DATA FIELD
|
||||
FDOV1, TAD I FDPTR2 /GET THE WORD
|
||||
MQL / AND SAVE IT IN THE MQ
|
||||
FDOV2, RTCA /NOW GET THE CURRENT ADDRESS
|
||||
CIA
|
||||
TAD FDPTR2
|
||||
SMA CLA /PAST OUR WORD YET?
|
||||
JMP FDOV2 /NO - WAIT FOR IT
|
||||
TAD I FDPTR2 /YES - GET THE NEW VALUE
|
||||
MQA / AND 'OR' IN THE ORIGINAL
|
||||
DCA I FDPTR2 /THEN STORE THE FINAL RESULT
|
||||
ISZ FDPTR2
|
||||
ISZ FDCNT2 /DECREMENT THE COUNTER
|
||||
JMP FDOV1 / AND CONTINUE
|
||||
JMS FDWT /THEN WAIT FOR I/O COMPLETION
|
||||
JMP I FDOVLY / AND RETURN
|
||||
/
|
||||
/SUBROUTINE TO START A DISC TRANSFER.
|
||||
FDST, 0
|
||||
DCA SECT /SAVE THE SECTOR NUMBER
|
||||
CLA IAC
|
||||
DCA TRK
|
||||
TAD SECT
|
||||
FDST1, TAD M26D /NOW DIVIDE THE SECTOR BY 26
|
||||
SPA
|
||||
JMP .+3
|
||||
ISZ TRK / TO GET THE TRACK NUMBER
|
||||
JMP FDST1
|
||||
TAD K27D /SECTOR = REMAINDER + 1
|
||||
DCA SECT
|
||||
TAD M26D
|
||||
DCA TKERR /SET ERROR LIMITS
|
||||
TAD M200
|
||||
DCA SCERR
|
||||
TAD IDTRK /SAVE THE FIELD ZERO LOCATIONS
|
||||
DCA SAVIDT
|
||||
TAD IDSECT
|
||||
DCA SAVIDS
|
||||
FDST2, TAD I FDCMDA
|
||||
LTCR /READ SECTOR I.D.
|
||||
DKGO
|
||||
SKRY /WAIT FOR 'READY'
|
||||
JMP .-1
|
||||
RTSR
|
||||
AND FDSMSK
|
||||
SZA CLA /ANY FATAL ERRORS?
|
||||
JMS I FDQUIT /YES - DIE
|
||||
SKCE /CRC ERROR?
|
||||
JMP FDST3 /NO
|
||||
ISZ TKERR /YES - COUNT AS TRACK ERROR
|
||||
JMP FDST2 / AND TRY AGAIN
|
||||
JMS I FDQUIT /OTHERWISE ERROR
|
||||
FDST3, TAD IDTRK
|
||||
CIA
|
||||
TAD TRK
|
||||
SNA /RIGHT TRACK?
|
||||
JMP FDST4 /YES - CHECK SECTOR NUMBER
|
||||
LDTA /NO LOAD THE DIFFERENCE
|
||||
TAD I FDCMDA
|
||||
TAD FDSEEK
|
||||
LTCR /SET THE MOVE HEAD FUNCTION
|
||||
DKGO
|
||||
JMS FDWT /WAIT FOR COMPLETION
|
||||
ISZ TKERR /COUNT THIS AS A TRACK-ERROR
|
||||
JMP FDST2 / AND CHECK AGAIN
|
||||
JMS I FDQUIT
|
||||
FDST4, TAD IDSECT
|
||||
CIA
|
||||
TAD SECT
|
||||
SNA CLA /ARE WE AT THE RIGHT SECTOR?
|
||||
JMP FDST5 /YES
|
||||
ISZ SCERR /NO - COUNT OUR TRIES
|
||||
JMP FDST2 / AND TRY AGAIN
|
||||
JMS I FDQUIT /ERROR LIMIT REACHED
|
||||
FDST5, TAD I FDBUFA
|
||||
LCAR /SET THE BUFFER ADDRESS
|
||||
TAD K373
|
||||
LDTA /ASSUME SECTOR GOOD
|
||||
TAD TRK
|
||||
TAD M44D
|
||||
SMA CLA /TRACK NUMBER .GE. 44?
|
||||
TAD K40 /YES - SET FLAG TO USE LOWER WRITE CURRENT
|
||||
TAD I FDST /GET THE FUNCTION CODE
|
||||
ISZ FDST / AND INCREMENT THE RETURN
|
||||
TAD I FDCMDA /GET THE REST OF THE COMMAND
|
||||
LTCR
|
||||
TAD SAVIDT /NOW RESTORE THE PAGE ZERO STUFF
|
||||
DCA IDTRK
|
||||
TAD SAVIDS
|
||||
DCA IDSECT
|
||||
DKGO /NOW START THE TRANSFER
|
||||
JMP I FDST / AND RETURN
|
||||
/
|
||||
K40, 40
|
||||
K373, 373
|
||||
M26D, -32
|
||||
M44D, -54
|
||||
M200, -200
|
||||
K27D, 33
|
||||
FDSMSK, 2235
|
||||
TRK, 0
|
||||
SECT, 0
|
||||
TKERR, 0
|
||||
SCERR, 0
|
||||
FDPTR2, 0
|
||||
FDCNT2, 0
|
||||
FDSEEK, 30 /MOVE HEAD
|
||||
SAVIDS, 0
|
||||
SAVIDT, 0
|
||||
/
|
||||
/SUBROUTINE TO WAIT FOR DISC COMPLETION.
|
||||
FDWT, 0
|
||||
SKRY
|
||||
JMP .-1
|
||||
SKER /ANY ERROR BITS?
|
||||
JMP I FDWT /NO - JUST RETURN
|
||||
JMS I FDQUIT /YES - TAKE FATAL ERROR EXIT
|
||||
/
|
||||
AAAFD= .-1
|
||||
/// $$$
|
||||
$$$
|
||||
|
||||
1
tss8.23/FIP.CM
Normal file
1
tss8.23/FIP.CM
Normal file
@ -0,0 +1 @@
|
||||
FIP<UWM,PARAM,FIP (WKE)
|
||||
3200
tss8.23/FIP.PA
Normal file
3200
tss8.23/FIP.PA
Normal file
File diff suppressed because it is too large
Load Diff
1
tss8.23/INIT.CM
Normal file
1
tss8.23/INIT.CM
Normal file
@ -0,0 +1 @@
|
||||
INIT<UWM,PARAM,INIT (WKE)
|
||||
2957
tss8.23/INIT.PA
Normal file
2957
tss8.23/INIT.PA
Normal file
File diff suppressed because it is too large
Load Diff
2956
tss8.23/INIT.PA.1
Normal file
2956
tss8.23/INIT.PA.1
Normal file
File diff suppressed because it is too large
Load Diff
BIN
tss8.23/INIT.XD
Normal file
BIN
tss8.23/INIT.XD
Normal file
Binary file not shown.
BIN
tss8.23/INIT.XD.bin
Normal file
BIN
tss8.23/INIT.XD.bin
Normal file
Binary file not shown.
43
tss8.23/Makefile
Normal file
43
tss8.23/Makefile
Normal file
@ -0,0 +1,43 @@
|
||||
|
||||
MACRO = ../utils/macro/macro8x
|
||||
SHOWBIN = ../utils/showbin
|
||||
|
||||
all: init.bin fip.bin si.bin ts8.bin ts8ii.bin INIT.XD.bin
|
||||
|
||||
clean:
|
||||
rm -f *.bin *.prm *.lst *.err *.mem *.dump
|
||||
|
||||
init.bin: INIT.PA
|
||||
rm -f init.err init.lst
|
||||
$(MACRO) -o init UWM.PA PARAM.PA INIT.PA
|
||||
|
||||
fip.bin: FIP.PA
|
||||
rm -f fip.err fip.lst
|
||||
$(MACRO) -o fip UWM.PA PARAM.PA FIP.PA
|
||||
|
||||
si.bin: SI.PA
|
||||
rm -f si.err si.lst
|
||||
$(MACRO) -o si UWM.PA PARAM.PA SI.PA
|
||||
|
||||
ts8.bin: TS8.PA
|
||||
rm -f ts8.err ts8.lst
|
||||
$(MACRO) -o ts8 UWM.PA PARAM.PA TS8.PA
|
||||
|
||||
ts8ii.bin: TS8II.PA
|
||||
rm -f ts8ii.err ts8ii.lst
|
||||
$(MACRO) -o ts8ii UWM.PA PARAM.PA TS8II.PA
|
||||
|
||||
#it's a bin format papertape encoded as ascii bytes
|
||||
#but we dumped it as binary
|
||||
INIT.XD.bin: INIT.XD
|
||||
../tapes/tools/asc <INIT.XD >INIT.XD.bin
|
||||
|
||||
xxx:
|
||||
$(SHOWBIN) fip.bin >fip.src.mem
|
||||
$(SHOWBIN) init.bin >init.src.mem
|
||||
$(SHOWBIN) si.bin >si.src.mem
|
||||
$(SHOWBIN) ts8.bin >ts8.src.mem
|
||||
$(SHOWBIN) ts8ii.bin >ts8ii.src.mem
|
||||
# sdiff fip.rf.mem fip.src.mem
|
||||
# sdiff init.rf.mem init.src.mem
|
||||
# sdiff si.rf.mem si.src.mem
|
||||
583
tss8.23/PARAM.PA
Normal file
583
tss8.23/PARAM.PA
Normal file
@ -0,0 +1,583 @@
|
||||
/PARAMETERS - UWM VERSION 23
|
||||
/
|
||||
/COPYRIGHT 1971 DIGITAL EQUIPMENT CORPORATION
|
||||
/ MAYNARD, MASSACHUSETTS
|
||||
/
|
||||
/
|
||||
VERNUM= 27 /SYSTEM VERSION NUMBER
|
||||
/
|
||||
STOMIN= 5 /MINIMUM # FREE STORAGE BLOCKS FOR NEW JOB
|
||||
IFZERO RK8E <
|
||||
IFZERO RF08-40 <
|
||||
DSKSIZ= RS08^10
|
||||
>
|
||||
IFZERO RF08 <
|
||||
DSKSIZ= RS08^100 /# OF 4K DISC TRACKS
|
||||
>
|
||||
>
|
||||
IFNZRO RK8E <
|
||||
DSKSIZ= 400 /# OF 4K DISC TRACKS
|
||||
>
|
||||
CLOCKR= 62 /50 MILLISECONDS
|
||||
TICMIN= 2260 /1200
|
||||
INCLK2= 0645 /1,728,000 TICKS PER DAY
|
||||
INCLK1= 7000
|
||||
TICSPS= 24 /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
|
||||
WRDSEG= 400 /#WORDS PER DISC SEGMENT
|
||||
|
||||
/IOT DEFINITIONS
|
||||
|
||||
IFZERO D680-2 <
|
||||
TTINCR= 6401 /INCREMENT LINE REGISTER
|
||||
TTI= 6402 /TELETYPE INPUT COMMAND
|
||||
TTO= 6404 /TELETYPE OUTPUT COMMAND
|
||||
TTCL= 6411 /CLEAR LINE REGISTER
|
||||
TTSL= 6412 /SET LINE REGISTER, CLEAR AC
|
||||
TTRL= 6414 /READ LINE REGISTER
|
||||
T8SKP= 6421 /SKIP ON CLOCK FLAG
|
||||
T8OFF= 6422 /TURN CLOCK OFF
|
||||
TT8ON= 6424 /TURN CLOCK ON
|
||||
TTRINC= 6461 /INCREMENT THE R REG.
|
||||
TT8CLR= 6473 /CLEAR AND LOAD THE R REG.
|
||||
>
|
||||
/EXTENDED MEMORY
|
||||
|
||||
CDF= 6201 /CHANGE TO DATA FIELD 0
|
||||
CIF= 6202 /CHANGE TO INSTRUCTION FIELD 0
|
||||
CIOT= 6204 /CLEAR USER IOT
|
||||
|
||||
RDF= 6214 /READ DATA FIELD
|
||||
RIF= 6224 /READ INSTRUCTION FIELD
|
||||
RIB= 6234 /READ INTERRUPT BUFFER
|
||||
RMF= 6244 /RESTORE MEMORY FIELD
|
||||
SKPIOT= 6254 /SKIP ON USER IOT
|
||||
UFF= 6264 /USER FLAG OFF
|
||||
UFN= 6274 /USER FLAG ON
|
||||
|
||||
/EAE
|
||||
IFZERO EAE-20 <
|
||||
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 <
|
||||
SAM= 7453 /SUBTRACT AC FROM MQ
|
||||
SKB= 7671 /SKIP IF MODE B (MESSES UP AC AND MQ)
|
||||
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
|
||||
/SOMEDAY FIX 'WHERE' COMMAND TO PRINT MODE & GT
|
||||
|
||||
/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
|
||||
LPC= 6666 /TRANSMIT CHAR & CLEAR FLAG
|
||||
LCP= 6667 /CLEAR PROGRAM INTERRUPT
|
||||
/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)
|
||||
|
||||
DIML= 6615
|
||||
DIMA= 6616
|
||||
DXAL= 6643
|
||||
|
||||
IFNZRO RK8E <
|
||||
DCLR= 6742 /CLEAR THE CONTROLLER
|
||||
DLAG= 6743 /LOAD DISC ADDRESS & GO
|
||||
DLDC= 6746 /LOAD THE COMMAND REGISTER
|
||||
DRST= 6745 /READ THE STATUS
|
||||
DSKP= 6741 /SKIP IF DONE OR ERROR
|
||||
DLCA= 6744 /LOAD CURRENT CORE ADDRESS
|
||||
>
|
||||
|
||||
/
|
||||
/STANDARD DECTAPE CONTROLLER IOTS
|
||||
DTRA= 6761 /READ A-REGISTER
|
||||
DTCA= 6762 /CLEAR A-REGISTER
|
||||
DTXA= 6764 /XOR INTO A-REGISTER
|
||||
DTSF= 6771 /SKIP ON DECTAPE FLAG
|
||||
DTRB= 6772 /READ STATUS-REGISTER (B)
|
||||
DTLB= 6774 /LOAD STATUS-REGISTER (B)
|
||||
|
||||
IFZERO CPU-3 <
|
||||
CLAB= 6133
|
||||
CLLR= 6132
|
||||
CLEN= 6134
|
||||
CLSA= 6135
|
||||
CLSK= 6131
|
||||
|
||||
MTPF= 6113
|
||||
MINT= 6115
|
||||
MTON= 6117
|
||||
MKTF= 6123
|
||||
MINS= 6125
|
||||
MTRS= 6127
|
||||
|
||||
MKSF= 6111
|
||||
MKCC= 6112
|
||||
MKRS= 6114
|
||||
MKRB= 6116
|
||||
|
||||
MTSF= 6121
|
||||
MTCF= 6122
|
||||
MTPC= 6124
|
||||
MTLS= 6126
|
||||
>
|
||||
|
||||
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
|
||||
CAF= 6007 /CLEAR ALL FLAGS
|
||||
>
|
||||
|
||||
IFZERO D689-4 <
|
||||
/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
|
||||
>
|
||||
/TSS/8 IOTS
|
||||
SEGS= 406 /RETURN NUMBER OF FREE SEGMENTS ON DISC
|
||||
ASD= 440 /ASSIGN DEVICE
|
||||
REL= 442 /RELEASE DEVICE
|
||||
REN= 600 /RENAME FILE
|
||||
OPEN= 6601 /OPEN FILE
|
||||
CLOS= 602 /CLOSE
|
||||
RFILE= 6603 /READ FILE
|
||||
PROT= 604 /PROTECT
|
||||
WFILE= 6605 /WRITE FILE
|
||||
XOPEN= 6606 /OPEN FILE WITH EXCLUSIVE USE
|
||||
CPASS= 607 /CHANGE A USER'S PASSWORD
|
||||
CRF= 610 /CREATE
|
||||
EXT= 611 /EXTEND
|
||||
RED= 612 /REDUCE
|
||||
FINF= 6613 /FILE INFORMATION
|
||||
LIN= 614 /LOGIN
|
||||
LOUT= 615 /LOGOUT
|
||||
BCLR= 620 /CLEAR MFD BILLING INFORMATION
|
||||
|
||||
/DEVICE DATA BLOCK
|
||||
|
||||
DDBSTS= 0 /WORD 1. STATUS AND UNIT NUMBER
|
||||
DXON= 2000 /XOFF SENT FLAG
|
||||
DSI= 1000 /DESTINATION IS S.I. FLAG
|
||||
DXOUT= 400 /BIT TO CAUSE 'XOFF' TO GO OUT
|
||||
DUPL= 200 /CONSOLE IN DUPLEX MODE
|
||||
SICOM= 100 /COMMAND WAITING
|
||||
CTRLC= 40 /USER TYPED CTRL/C
|
||||
|
||||
/DEVICE UNIT NUMBER IS IN BITS 6-11
|
||||
|
||||
DDBJN= 1 /WORD 2. JOB NUMBER IN 7-11
|
||||
DDBBRK= 2 /BREAK MASK
|
||||
SIBRKM= 204 /SI BREAK MASK
|
||||
DDBTIM= 3 /TIME THAT DEVICE WAS ASSIGNED
|
||||
DDBINP= 4 /BUFFER FILL POINTER
|
||||
DDBINC= 5 /BUFFER FILL COUNT
|
||||
DDBOUP= 6 /BUFFER EMPTY POINTER
|
||||
DDBOUC= 7 /BUFFER EMPTY COUNT
|
||||
/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
|
||||
JSHLT= 400 /PROGRAM EXECUTED 'HLT'
|
||||
JSPRIV= 200 /LIBRARY PROGRAM (HAS PRIVILEGES)
|
||||
JSIOT= 100 /NON-RESIDENT IOT
|
||||
JSIOTC= 40 /COPY IOT RESULT TO USER
|
||||
JSEXON= 20 /EXECUTE ONLY
|
||||
/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 /DELIMITER SEEN
|
||||
JSTEL= 20 /OUTPUT BUFFER NOT FULL
|
||||
JSPTR= 10 /CHARACTER IN READER BUFFER
|
||||
JSPTP= 4 /PUNCH BUFFER IS NOT FULL
|
||||
JSERR= 2 /SYSTEM ERROR DETECTED
|
||||
JSWAIT= 1 /JOB NOT IN WAIT STATE
|
||||
|
||||
STR2= 1 /TC01&1!PUNCH&1!PLOTTER&1!LPT&1!CDR&1
|
||||
|
||||
JSPLT= 1000 /PLOTTER DONE
|
||||
JSCDR= 400 /CHARACTER IN CDR BUFFER
|
||||
JSCRNR= 200 /CDR NOT READY
|
||||
JSCREF= 100 /CDR END FILE
|
||||
JSDTC= 4 /DECTAPE CONTROLLER FLAG
|
||||
JSDTE= 2 /DT ERROR FLAG
|
||||
JSDTF= 1 /DT DONE FLAG
|
||||
|
||||
JOBWMK= 2+STR2 /WAIT MASK
|
||||
JOBSRA= JOBWMK+1+STR2 /JOB RESTART ADDRESS
|
||||
JOBERR= JOBSRA+1 /JOB ERROR RESTART ADDRESS
|
||||
JOBLNK= JOBERR+1 /IOT LINKAGE
|
||||
JOBSWR= JOBLNK+1 /SWITCH REGISTER
|
||||
JOBREG= JOBSWR+1 /PC, AC, & LINK (W/MODE, GT, & SC)
|
||||
JOBEAE= JOBREG+3 /MQ REGISTER
|
||||
JOBACT= JOBEAE+1 /USER'S ACCOUNT #
|
||||
JOBRTM= JOBACT+1 /LOW ORDER RUN TIME
|
||||
JOBRTH= JOBRTM+1 /HIGH ORDER RUN TIME
|
||||
JOBF0= JOBRTH+1 /POINTER TO FILE 0 CONTROL
|
||||
JOBF1= JOBF0+1 /POINTER TO FILE 1 CONTROL
|
||||
JOBF2= JOBF1+1 /POINTER TO FILE 2 CONTROL
|
||||
JOBF3= JOBF2+1 /POINTER TO FILE 3 CONTROL
|
||||
JOBSTB= JOBF3+1 /DECTAPE STATUS REGISTER B
|
||||
|
||||
/TUNING PARAMETERS
|
||||
|
||||
MAXBUF= 10 /MAXIMUM PERMITTED # OF OUTPUT BUFFERS
|
||||
MINBUF= 3 /RESTART JOB WHEN ONLY MINBUF BUFFERS ARE STILL FULL
|
||||
|
||||
/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
|
||||
|
||||
FSWP= 4000 /SWAP REQUEST
|
||||
LOCK= 2000 /LOCK IN CORE
|
||||
NOTRUN= 1000 /HAS NOT BEEN SCHEDULED TO RUN
|
||||
FIP= 400 /FILE PHANTOM (NOTE: FIP HAS BEEN ASSUMED EQUAL TO SEGISZ)
|
||||
SI= 200 /SYSTEM COMMAND INTERPRETER PHANTOM
|
||||
FIX= 100 /JUST FINISHED DISC TRANSFER
|
||||
/BITS 7-11 CONTAIN THE JOB #
|
||||
|
||||
/FIP TABLE DEFINITIONS
|
||||
|
||||
SATSIZ= 530
|
||||
ENTABL= 5600
|
||||
UTABLE= ENTABL+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX
|
||||
RTABLE= UTABLE+JOBMAX+JOBMAX+JOBMAX+JOBMAX
|
||||
SIDATA=20 /SYSTEM INTERPRETER DATA
|
||||
*SIDATA
|
||||
|
||||
COMPTR, . /POINTER TO LAST DEVTBL ENTRY SCANNED. INITIALIZE TO DEVTBL-1
|
||||
SIBUF, . /BUFFER STATE
|
||||
SICNT, .
|
||||
COMDSP, . /FIP RETURN DISPATCH
|
||||
SIFLG, . /COMMAND FLAGS
|
||||
SICHAR, . /SAVE LAST CHAR FROM COMMAND SCAN
|
||||
SIREG, . /USER AC, LINK, PC
|
||||
.
|
||||
.
|
||||
TTCHAR, . /TTY CHARACTER
|
||||
|
||||
CONSTANTS=SIDATA+12
|
||||
*CONSTANTS
|
||||
C0002, 2
|
||||
C0003, 3
|
||||
C0004, 4
|
||||
C0007, 7
|
||||
C0037, 37
|
||||
C0100, 100
|
||||
C1000, 1000
|
||||
C7770, 7770
|
||||
|
||||
JOBCON=CONSTANTS+11 /JOB CONTROL
|
||||
*JOBCON
|
||||
|
||||
JOBTIM, . /-#TICKS REMAINING TO RUN
|
||||
JOBTBA, JOBTBL /JOB TABLE ADDRESS
|
||||
|
||||
FRSTOR=JOBCON+3
|
||||
*FRSTOR
|
||||
|
||||
FREE, . /POINTER TO HEAD OF FREE STORAGE
|
||||
FRECNT, . /# FREE BLOCKS AVAILABLE
|
||||
TIMDAT= FRSTOR+2 /CLOCK AND DATE
|
||||
*TIMDAT
|
||||
|
||||
/CLOCK
|
||||
CLK2, .
|
||||
CLK1, .
|
||||
|
||||
SCHDAT=TIMDAT+2
|
||||
*SCHDAT /SCHEDULING DATA
|
||||
|
||||
COMCNT, . /NUMBER OF COMMANDS WAITING EXECUTION
|
||||
SQREQ, . /SWAP REQUEST FLAG
|
||||
FINISH, . /+(I)-(O) FIELD OF JOB BEING SWAPPED
|
||||
FIT, . /JOB # TO BE SWAPPED IN
|
||||
FORCE, . /FIELD TO BE SWAPPED OUT
|
||||
|
||||
DATEND= 60 /END OF FIELD 0 PAGE 0 DATA
|
||||
|
||||
FIPDAT=156 /DATA REFERENCED BY FIP
|
||||
*FIPDAT
|
||||
|
||||
C0400, 400
|
||||
IFNZRO WRDSEG-400 <GLITCH>
|
||||
SEGSIZ= C0400 /WRDSEG
|
||||
FIBASE, SWDEX+JOBMAX /BASE ADDRESS OF ALLOCATABLE DISC STORAGE
|
||||
JOB, . /# OF CURRENT JOB
|
||||
JOBDAT, . /ADDRESS OF CURRENT JOB DATA LIST. MUST RESIDE IN DATA FIELD.
|
||||
CORTBA, CORTBL-1 /CORE ALLOCATION TABLE
|
||||
DEVTBA, DEVTBL /DEVICE TABLE
|
||||
DSUTBA, DSUTBL /USER DISC REQUEST QUEUE
|
||||
DSBUSY, . /DISC BUSY COUNT
|
||||
|
||||
/THE DATE IS KEPT AS A 12 BIT NUMBER IN THE FORMAT
|
||||
/DATE=((YEAR-1974)*12+(MONTH-1))*31+DAY-1
|
||||
|
||||
DATE, .
|
||||
FISUBR=FIPDAT+11 /INST FIELD INDEPENDENT SUBROUTINES
|
||||
*FISUBR
|
||||
|
||||
FISUBL=400
|
||||
|
||||
BLT0= FISUBL+1200
|
||||
BLTA, BLT0 /BLOCK TRANSFER
|
||||
BLT= JMS I Z BLTA
|
||||
CORSRA, CORSRC
|
||||
CORE= JMS I CORSRA
|
||||
GETBA, GETB
|
||||
GETBLK= JMS I GETBA
|
||||
GETDBA, GETDB0 /GET A DATA BLOCK
|
||||
GETDDB= JMS I GETDBA
|
||||
TOFA, TOF /FETCH CHARACTER
|
||||
FETCH= JMS I Z TOFA
|
||||
GETJT0, GETJTB /GET JOB DATA TABLE ADDRESS
|
||||
GETJTA= JMS I Z GETJT0
|
||||
GIRSCA, GIRSC /STORE CHARACTER IN BUFFER
|
||||
STORE= JMS I Z GIRSCA
|
||||
RETBA, RETB /RETURN BLOCK TO FREE STORAGE
|
||||
RETBLK= JMS I Z RETBA
|
||||
WAITA, WSCHED
|
||||
WAIT= JMP I WAITA
|
||||
|
||||
/TABLES
|
||||
IFNZRO CPU-3 <
|
||||
DATA= 7100 /START OF FIELD 0 TABLES AND BUFFERS
|
||||
>
|
||||
|
||||
IFZERO CPU-3 <
|
||||
DATA= 7200 /IF DC02 THERE LEAVE ROOM FOR THE CODE
|
||||
>
|
||||
CORTBL= DATA /CORE ASSIGNMENT TABLE
|
||||
L2QTB= CORTBL+7
|
||||
IFZERO D680-2 <
|
||||
T8OBF= L2QTB+20 /TTY CHAR OUT BUFFER 1. # LINES
|
||||
T8OBF2= T8OBF+NULINE /TTY CHAR OUT BUFFER 2. # LINES
|
||||
T8IBF= T8OBF2+NULINE /TTY CHAR IN BUFFER. 2*# LINES
|
||||
T8IN= T8IBF+NULINE+NULINE /TTI LIST. 4*#LINES+1
|
||||
TYBEND= T8IN+NULINE+NULINE+NULINE+NULINE+1
|
||||
>
|
||||
IFZERO D680 <
|
||||
TIBUFF= L2QTB+20 /TTY INPUT BUFFER. # LINES
|
||||
TOBUFF= TIBUFF+NULINE+1 /TTY OUTPUT BUFFER. # LINES
|
||||
TIDEV= TOBUFF+NULINE+1 /DEVICE CODES (INPUT)
|
||||
IFNZRO CPU-3 <
|
||||
TODEV= TIDEV+NULINE+1 /DEVICE CODES (OUTPUT)
|
||||
TYBEND= TODEV+NULINE+1
|
||||
>
|
||||
|
||||
IFZERO CPU-3 <
|
||||
TODEV= TIDEV+1
|
||||
TYBEND= TODEV+1
|
||||
>
|
||||
>
|
||||
|
||||
IFZERO TC01 <DTASIZ=0> /SIZE OF DTA CODE+BUFFERS
|
||||
IFZERO TC01-1 <DTASIZ=1400>
|
||||
|
||||
IFZERO D689 <D689SIZ=0> /SIZE OF 689AG CODE
|
||||
IFZERO D689-4 <D689SIZ=200>
|
||||
|
||||
PTRSIZ= 200
|
||||
PTPSIZ= 200
|
||||
PTPBUF= 200 /START OF DEVICE BUFFERS
|
||||
PTRBUF= PTPBUF+PTPSIZ
|
||||
DTBUF1= PTRBUF+PTRSIZ
|
||||
DTBUF2= DTBUF1+201
|
||||
|
||||
DATFLD=6211 /MONITOR DATA FIELD SELECT
|
||||
|
||||
IFZERO EAE-20 <MQREG=1>
|
||||
IFZERO EAE <IFZERO CPU-2 <MQREG=1>
|
||||
IFNZRO CPU-2 <MQREG=0>>
|
||||
/SUPER CRITICAL LOCATIONS
|
||||
/THESE LOCATIONS ARE USED TO LINK TS8 AND TS8II
|
||||
|
||||
/IT MAY BE NECESSARY TO ADJUST THEM ACCORDINGLY
|
||||
|
||||
/DEFINED IN TS8:
|
||||
|
||||
BLT0= 1600
|
||||
CORSRC= 1302 /SEARCH CORE TABLE
|
||||
DATE= 166
|
||||
DISMI0= 300 /DISMIS
|
||||
DTINT= 273 /DECTAPE SLOT IN INTERRUPT CHAIN
|
||||
IFNZRO CPU-3 <DTL20= 2375>
|
||||
IFZERO CPU-3 <DTL20= 6575>
|
||||
GETB= 1400 /GET A BLOCK OF FREE CORE
|
||||
GETDB0= 1451 /GET A DDB
|
||||
GETJTB= 6600 /GETJTA
|
||||
GIRSC= 404 /STORE A CHARACTER
|
||||
GIR00= 6013 /ENTRY TO GIR (GENERAL INPUT ROUTINE)
|
||||
INTCOM= 5770 /COMPLETION OF INTERRUPT CODE
|
||||
L2EXIT= 354 /LEAVE LEVEL 2
|
||||
L2SV0= 104 /LEVEL 2 SAVED PC
|
||||
OVERLA= 2175 /FILE STUFF
|
||||
OVRLA1= 0576
|
||||
NFSEGS= 5333 /NUMBER OF FREE DISC SEGMENTS
|
||||
PTPEMP= 7420 /PTP BUFFER EMPTY PTR
|
||||
PTPFIL= 7457 /PTP BUFFER FILL PTR
|
||||
IFZERO D680 <PTP1= 211> /IOTS TO BE OVERLAYED
|
||||
IFZERO D680-2 <PTP1= 234>
|
||||
PTP2= 7477
|
||||
PTP3= 7531
|
||||
PTP4= 7533
|
||||
PTP5= 7537
|
||||
READFI= 3604 /MORE FILE STUFF
|
||||
RELOAD= 3400 /AUTOMATIC SYSTEM RESTART
|
||||
RETB= 600 /RETURN A BLOCK TO FREE CORE
|
||||
SOURCE= 112 /CHARACTER SOURCE FOR GIR
|
||||
T8K9= 6402
|
||||
T8LC= 6401
|
||||
T8MNC= 6400 /DC08 COMMON STORAGE LOCATIONS
|
||||
UUDF= 151 /USER DATA FIELD SELECT
|
||||
UUOERR= 5172
|
||||
UUOEX1= 326 /UUO (RESIDENT IOT HANDLERS) EXIT
|
||||
WSCHED= 2455 /ADDRESS FOR WAIT
|
||||
|
||||
/DEFINED IN TS8II
|
||||
|
||||
DTBST1= 32 /DT BUFFER 1 STATUS
|
||||
DTL21= PTRSIZ+PTPSIZ+DTASIZ /DT LEVEL 2 DISPATCH
|
||||
FIPBLK= 7720 /FIXED BLOCK FOR FIP I/O
|
||||
F1OFFJ= 151 /FOR OFF /ON COMMANDS USED BY SI
|
||||
UDTXA= DTL21-400 /DT UUO SERVICE
|
||||
UPTIM1= 174 /UPTIME COUNTER IN FIELD 1
|
||||
UPTIM2= 173
|
||||
WINBAS= 7730 /ADDRESS OF THE BASIC WINDOW
|
||||
|
||||
IFNZRO CPU-3 <
|
||||
DTL11= DTL21+1 /DT LEVEL 1 DISPATCH
|
||||
>
|
||||
|
||||
IFZERO CPU-3 <
|
||||
DTL11= DTL21+1+1 /DT LEVEL 1 DISPATCH; TO ALLOW FOR DISPLAY CHARACTERS
|
||||
>
|
||||
TOF= DTL21+200 /FETCH A CHARACTER
|
||||
BUFTST= TOF+116
|
||||
CRASH= TOF+200
|
||||
CNTRLC= CRASH+1 /DECTAPE CTRL/C HANDLER
|
||||
BRKTST= CRASH+105
|
||||
TIMER0= CRASH+200
|
||||
UPEEK1= TIMER0+100
|
||||
DFINT1= UPEEK1+34
|
||||
SWK1= UPEEK1+D689SIZ+100
|
||||
IFNZRO CPU-3 <DATA1= SWK1+200>
|
||||
|
||||
IFZERO CPU-3 <
|
||||
PDPBAS= SWK1
|
||||
DATA1= PDPBAS+1000
|
||||
PDPEXT= PDPBAS
|
||||
PDPIDE= PDPEXT+2
|
||||
DSCX= PDPBAS&6000+1
|
||||
>
|
||||
DEVCHK= DATA1-200
|
||||
KSFPRA= DATA1-100
|
||||
DEVTBL= DATA1
|
||||
DEVTBE= DEVTBL+NULINE+NULINE+2
|
||||
JOBTBL= DEVTBE+16
|
||||
CLKTBL= JOBTBL+JOBMAX+1
|
||||
TTYTBL= CLKTBL+JOBMAX+1
|
||||
PRGTBL= TTYTBL+JOBMAX+1
|
||||
DSUTBL= PRGTBL+JOBMAX+JOBMAX+JOBMAX
|
||||
|
||||
AUTOST= 4201 /SYSTEM RESTART ADDRESS IN INIT
|
||||
|
||||
/// END OF PARAMETERS & COMMON DATA
|
||||
|
||||
95
tss8.23/PHAM.PA
Normal file
95
tss8.23/PHAM.PA
Normal file
@ -0,0 +1,95 @@
|
||||
/TSS/8 CONFIGURATION FOR UWM
|
||||
/CONFIGURATION PARAMETERS FOR THE TSS/8 MONITOR
|
||||
/COPYRIGHT 1971
|
||||
/DIGITAL EQUIPMENT CORP. -MAYNARD, MASS
|
||||
/
|
||||
/TSS/8 PDP-8/E HARDWARE OPTIONS
|
||||
/THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON
|
||||
/WHICH THIS TSS/8 MONITOR WILL BE RUN
|
||||
/FOR EACH STATEMENT THE COMMENT INDICATES THE
|
||||
/POSSIBLE RESPONSES
|
||||
|
||||
CPU= 2 /0 IF CPU IS PDP-8/I; 1 IF PDP-8
|
||||
/ 2 IF PDP-8/E; 3 IF PDP-12
|
||||
|
||||
EAE= 0 /20 IF CPU INCLUDES EAE; 0 IF NOT
|
||||
|
||||
CORMEM= 30 /HIGHEST DATA FIELD SELECT; FOR 12K SYS,
|
||||
/ RESPOND 20; FOR 16K, RESPOND 30; FOR 32K, 70
|
||||
|
||||
D680= 0 /2 IF TTY INTERFACING IS 680 OR DC08;
|
||||
/ 0 IF TTY INTERFACING IS PT08'S
|
||||
|
||||
D689= 0 /4 IF 680 OR DC08 INCLUDES 689 OR DC08F;
|
||||
/ 0 IF IT DOESN'T OR TTY INTERFACING IS PT08'S
|
||||
|
||||
RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF RF08
|
||||
|
||||
RS08= 1 /# OF DISCS IN SYSTEM, WHETHER RF08 OR DF32
|
||||
|
||||
RK8E= 0 /# OF RK8E DRIVES; ONLY FIRST IS USED FOR SYSTEM
|
||||
/ THE REMAINDER ARE TREATED AS PERIPHERALS
|
||||
|
||||
READER= 0 /1 IF SYSTEM INCLUDES HIGH-SPEED READER; 0 IF NOT
|
||||
|
||||
PUNCH= 0 /1 IF SYS HAS HSP, 0 IF NOT
|
||||
|
||||
TC01= 1 /1 IF SYS HAS DECTAPES; 0 IF NOT
|
||||
|
||||
TU55= 0 /1 IF SYSTEM INCLUDES MORE THAN TWO DECTAPES
|
||||
/ 0 IF 0, 1, OR 2 DRIVES
|
||||
|
||||
TD8E= 0 /1 IF TD8E DECTAPES AVAILABLE FOR LOADING & DUMPING
|
||||
/ 0 IF NOT; NOTE THAT TD8E TAPES CANNOT BE USED UNDER
|
||||
/ TSS/8, THEY REQUIRE CONTINUOUS CPU ATTENTION
|
||||
|
||||
PLOTTER=0 /NO SYSTEMS CAN HAVE PLOTTER
|
||||
|
||||
LPT= 2 /0 IF NO PRINTER ON SYS; 1 IF LP08; 2 IF LS8E
|
||||
|
||||
CDR= 0 /NO SYS CAN HAVE CARD READER
|
||||
/
|
||||
/MONITOR OPTIONS
|
||||
/FILL IN THE FOLLOWING LINES TO INDICATE THE
|
||||
/MONITOR CAPACITY FOR THIS SYSTEM
|
||||
|
||||
DECIMAL
|
||||
JOBMAX= 6 /NUMBER OF SIMULTANEOUS USERS (.LE. 20)
|
||||
|
||||
NULINE= 15 /NUMBER OF TTYS TO BE ATTACHED TO SYS.
|
||||
/ SIMULTANEOUSLY, NOT COUNTING CONSOLE (.LE. 19)
|
||||
/ GENERALLY .GE. JOBMAX; IF SYS. USES 680 OR DC08,
|
||||
/ NULINE MUST BE A MULTIPLE OF 5 (FIVE); IF CPU IS
|
||||
/ A PDP-12, NULINE MUST BE MULTIPLE OF 8 (EIGHT)
|
||||
|
||||
TRUKBD= 5 /NUMBER OF ACTUAL KEYBOARDS ON SYSTEM (NOT COUNTING
|
||||
/ CONSOLE TTY). THIS MUST BE .LE. NULINE; NULINE
|
||||
/ MAY INCLUDE DUMMY TERMINALS, THIS MAY NOT.
|
||||
|
||||
FRCMAX= TRUKBD /THE HIGHEST KEYBOARD # A '00XX' ACCT # MAY FORCE
|
||||
/ NOTE THAT A '000X' ACCOUNT MAY FORCE UP TO 'NULINE'
|
||||
|
||||
TLKMAX= TRUKBD /THE HIGHEST KEYBOARD # WHICH MAY BE 'TALK'ED TO
|
||||
|
||||
BRDMAX= TRUKBD /THE HIGHEST KEYBOARD WHICH WILL RECEIVE BROADCASTS
|
||||
OCTAL
|
||||
|
||||
DTAMIN= 0 /THE FIRST DECTAPE DRIVE WHICH WILL BE ASSIGNED
|
||||
/ FOR 'ASSIGN D' COMMAND; NORMALLY =0, BUT MAY
|
||||
/ VARY FOR SLIGHTLY RESTRICTED DRIVE USE.
|
||||
|
||||
BILLNG= 7 /THE ACCOUNT NUMBER OF THE BILLING SYSTEM
|
||||
/ 0, IF NO BILLING SYSTEM USED
|
||||
/
|
||||
/SYSTEM CONSTANTS
|
||||
|
||||
QUANT= -2 /NUMBER OF SYSTEM TICKS PER TIME SLICE (-)
|
||||
SWDEX= 5 /DISC TRACK OF FIRST SWAP AREA
|
||||
TTYEVEN=1 /1 INDICATES PARITY TTY MAY BE USED WITH SYS
|
||||
/ 0 ALLOWS ONLY DEC MODIFIED TTYS
|
||||
INFLD= 20 /FIELD SELECT THAT 'INIT' SHOULD BE BOOTED INTO
|
||||
/ MAKING IT 20 AVOIDS PROBLEMS SHOULD A
|
||||
/ FIELD NEED REPAIR & SYSTEM IS RUN ON 12K
|
||||
|
||||
/// END OF SYSTEM CONFIGURATION PARAMETERS
|
||||
|
||||
95
tss8.23/PHAM20.PA
Normal file
95
tss8.23/PHAM20.PA
Normal file
@ -0,0 +1,95 @@
|
||||
/TSS/8 CONFIGURATION FOR UWM
|
||||
/CONFIGURATION PARAMETERS FOR THE TSS/8 MONITOR
|
||||
/COPYRIGHT 1971
|
||||
/DIGITAL EQUIPMENT CORP. -MAYNARD, MASS
|
||||
/
|
||||
/TSS/8 PDP-8/E HARDWARE OPTIONS
|
||||
/THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON
|
||||
/WHICH THIS TSS/8 MONITOR WILL BE RUN
|
||||
/FOR EACH STATEMENT THE COMMENT INDICATES THE
|
||||
/POSSIBLE RESPONSES
|
||||
|
||||
CPU= 2 /0 IF CPU IS PDP-8/I; 1 IF PDP-8
|
||||
/ 2 IF PDP-8/E; 3 IF PDP-12
|
||||
|
||||
EAE= 0 /20 IF CPU INCLUDES EAE; 0 IF NOT
|
||||
|
||||
CORMEM= 30 /HIGHEST DATA FIELD SELECT; FOR 12K SYS,
|
||||
/ RESPOND 20; FOR 16K, RESPOND 30; FOR 32K, 70
|
||||
|
||||
D680= 0 /2 IF TTY INTERFACING IS 680 OR DC08;
|
||||
/ 0 IF TTY INTERFACING IS PT08'S
|
||||
|
||||
D689= 0 /4 IF 680 OR DC08 INCLUDES 689 OR DC08F;
|
||||
/ 0 IF IT DOESN'T OR TTY INTERFACING IS PT08'S
|
||||
|
||||
RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF RF08
|
||||
|
||||
RS08= 1 /# OF DISCS IN SYSTEM, WHETHER RF08 OR DF32
|
||||
|
||||
RK8E= 0 /# OF RK8E DRIVES; ONLY FIRST IS USED FOR SYSTEM
|
||||
/ THE REMAINDER ARE TREATED AS PERIPHERALS
|
||||
|
||||
READER= 0 /1 IF SYSTEM INCLUDES HIGH-SPEED READER; 0 IF NOT
|
||||
|
||||
PUNCH= 0 /1 IF SYS HAS HSP, 0 IF NOT
|
||||
|
||||
TC01= 1 /1 IF SYS HAS DECTAPES; 0 IF NOT
|
||||
|
||||
TU55= 0 /1 IF SYSTEM INCLUDES MORE THAN TWO DECTAPES
|
||||
/ 0 IF 0, 1, OR 2 DRIVES
|
||||
|
||||
TD8E= 0 /1 IF TD8E DECTAPES AVAILABLE FOR LOADING & DUMPING
|
||||
/ 0 IF NOT; NOTE THAT TD8E TAPES CANNOT BE USED UNDER
|
||||
/ TSS/8, THEY REQUIRE CONTINUOUS CPU ATTENTION
|
||||
|
||||
PLOTTER=0 /NO SYSTEMS CAN HAVE PLOTTER
|
||||
|
||||
LPT= 0 /0 IF NO PRINTER ON SYS; 1 IF LP08; 2 IF LS8E
|
||||
|
||||
CDR= 0 /NO SYS CAN HAVE CARD READER
|
||||
/
|
||||
/MONITOR OPTIONS
|
||||
/FILL IN THE FOLLOWING LINES TO INDICATE THE
|
||||
/MONITOR CAPACITY FOR THIS SYSTEM
|
||||
|
||||
DECIMAL
|
||||
JOBMAX= 20 /NUMBER OF SIMULTANEOUS USERS (.LE. 20)
|
||||
|
||||
NULINE= 19 /NUMBER OF TTYS TO BE ATTACHED TO SYS.
|
||||
/ SIMULTANEOUSLY, NOT COUNTING CONSOLE (.LE. 19)
|
||||
/ GENERALLY .GE. JOBMAX; IF SYS. USES 680 OR DC08,
|
||||
/ NULINE MUST BE A MULTIPLE OF 5 (FIVE); IF CPU IS
|
||||
/ A PDP-12, NULINE MUST BE MULTIPLE OF 8 (EIGHT)
|
||||
|
||||
TRUKBD= 4 /NUMBER OF ACTUAL KEYBOARDS ON SYSTEM (NOT COUNTING
|
||||
/ CONSOLE TTY). THIS MUST BE .LE. NULINE; NULINE
|
||||
/ MAY INCLUDE DUMMY TERMINALS, THIS MAY NOT.
|
||||
|
||||
FRCMAX= TRUKBD /THE HIGHEST KEYBOARD # A '00XX' ACCT # MAY FORCE
|
||||
/ NOTE THAT A '000X' ACCOUNT MAY FORCE UP TO 'NULINE'
|
||||
|
||||
TLKMAX= TRUKBD /THE HIGHEST KEYBOARD # WHICH MAY BE 'TALK'ED TO
|
||||
|
||||
BRDMAX= TRUKBD /THE HIGHEST KEYBOARD WHICH WILL RECEIVE BROADCASTS
|
||||
OCTAL
|
||||
|
||||
DTAMIN= 0 /THE FIRST DECTAPE DRIVE WHICH WILL BE ASSIGNED
|
||||
/ FOR 'ASSIGN D' COMMAND; NORMALLY =0, BUT MAY
|
||||
/ VARY FOR SLIGHTLY RESTRICTED DRIVE USE.
|
||||
|
||||
BILLNG= 7 /THE ACCOUNT NUMBER OF THE BILLING SYSTEM
|
||||
/ 0, IF NO BILLING SYSTEM USED
|
||||
/
|
||||
/SYSTEM CONSTANTS
|
||||
|
||||
QUANT= -2 /NUMBER OF SYSTEM TICKS PER TIME SLICE (-)
|
||||
SWDEX= 5 /DISC TRACK OF FIRST SWAP AREA
|
||||
TTYEVEN=1 /1 INDICATES PARITY TTY MAY BE USED WITH SYS
|
||||
/ 0 ALLOWS ONLY DEC MODIFIED TTYS
|
||||
INFLD= 20 /FIELD SELECT THAT 'INIT' SHOULD BE BOOTED INTO
|
||||
/ MAKING IT 20 AVOIDS PROBLEMS SHOULD A
|
||||
/ FIELD NEED REPAIR & SYSTEM IS RUN ON 12K
|
||||
|
||||
/// END OF SYSTEM CONFIGURATION PARAMETERS
|
||||
|
||||
BIN
tss8.23/PIP2.SV
Normal file
BIN
tss8.23/PIP2.SV
Normal file
Binary file not shown.
4
tss8.23/SCAN.TE
Normal file
4
tss8.23/SCAN.TE
Normal file
@ -0,0 +1,4 @@
|
||||
|
||||
!LOOP!1J :<GLITCH><GLITCH; *.-1> "L OLOOP'
|
||||
:N Z"N OLOOP' EF
|
||||
|
||||
1
tss8.23/SI.CM
Normal file
1
tss8.23/SI.CM
Normal file
@ -0,0 +1 @@
|
||||
SI<UWM,PARAM,SI (WKE)
|
||||
4263
tss8.23/SI.PA
Normal file
4263
tss8.23/SI.PA
Normal file
File diff suppressed because it is too large
Load Diff
74
tss8.23/TEST.BI
Normal file
74
tss8.23/TEST.BI
Normal file
@ -0,0 +1,74 @@
|
||||
$JOB TEST TSS/8 CONFIGURATIONS
|
||||
$MSG MT TSS/8 #1 & #2 ON D1 & D2
|
||||
.R PIP
|
||||
*DSK:<DSK: (OS)
|
||||
.R FOTP
|
||||
*DSK:<DTA2:TEST.0?,DTA1:PARAM.PA,SI.PA
|
||||
$MSG
|
||||
$MSG MAX PDP-8/E SYSTEM -- SI.01
|
||||
.PAL SI.01<TEST.01,PARAM,SI (WKE)
|
||||
$MSG MAX PDP-8/I SYSTEM, W/D680 & D689 -- SI.02
|
||||
.PAL SI.02<TEST.02,PARAM,SI (WKE)
|
||||
$MSG MAX PDP-12 SYSTEM -- SI.03
|
||||
.PAL SI.03<TEST.03,PARAM,SI (WKE)
|
||||
$MSG MAX PDP-8 SYSTEM, W/PT08 -- SI.04
|
||||
.PAL SI.04<TEST.04,PARAM,SI (WKE)
|
||||
.R PIP
|
||||
*SI.PA/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*FIP.PA<DTA1:FIP.PA
|
||||
$MSG
|
||||
$MSG -- FIP.01
|
||||
.PAL FIP.01<TEST.01,PARAM,FIP (WKE)
|
||||
$MSG -- FIP.02
|
||||
.PAL FIP.02<TEST.02,PARAM,FIP (WKE)
|
||||
$MSG -- FIP.03
|
||||
.PAL FIP.03<TEST.03,PARAM,FIP (WKE)
|
||||
$MSG -- FIP.04
|
||||
.PAL FIP.04<TEST.04,PARAM,FIP (WKE)
|
||||
.R PIP
|
||||
*FIP.PA/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*INIT.PA<DTA1:INIT.PA
|
||||
$MSG TSS/8 #1 (D1) FREE
|
||||
$MSG
|
||||
$MSG -- INIT.01
|
||||
.PAL INIT.01<TEST.01,PARAM,INIT (WKE)
|
||||
$MSG -- INIT.02
|
||||
.PAL INIT.02<TEST.02,PARAM,INIT (WKE)
|
||||
$MSG -- INIT.03
|
||||
.PAL INIT.03<TEST.03,PARAM,INIT (WKE)
|
||||
$MSG -- INIT.04
|
||||
.PAL INIT.04<TEST.04,PARAM,INIT (WKE)
|
||||
.R PIP
|
||||
*INIT.PA/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*TS8.PA<DTA2:TS8.PA
|
||||
$MSG
|
||||
$MSG -- TS8.01
|
||||
.PAL TS8.01<TEST.01,PARAM,TS8 (WKE)
|
||||
$MSG -- TS8.02
|
||||
.PAL TS8.02<TEST.02,PARAM,TS8 (WKE)
|
||||
$MSG -- TS8.03
|
||||
.PAL TS8.03<TEST.03,PARAM,TS8 (WKE)
|
||||
$MSG -- TS8.04
|
||||
.PAL TS8.04<TEST.04,PARAM,TS8 (WKE)
|
||||
.R PIP
|
||||
*TS8.PA/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*TS8II.PA<DTA2:TS8II.PA
|
||||
$MSG
|
||||
$MSG -- TS8II.01
|
||||
.PAL TS8II.01<TEST.01,PARAM,TS8II (WKE)
|
||||
$MSG -- TS8II.02
|
||||
.PAL TS8II.02<TEST.02,PARAM,TS8II (WKE)
|
||||
$MSG -- TS8II.03
|
||||
.PAL TS8II.03<TEST.03,PARAM,TS8II (WKE)
|
||||
$MSG -- TS8II.04
|
||||
.PAL TS8II.04<TEST.04,PARAM,TS8II (WKE)
|
||||
.R FOTP
|
||||
*TEST.0?,PARAM.PA,TS8II.PA /D
|
||||
.R PIP
|
||||
*DSK:<DSK: (OS)
|
||||
$END
|
||||
|
||||
1
tss8.23/TS8.CM
Normal file
1
tss8.23/TS8.CM
Normal file
@ -0,0 +1 @@
|
||||
TS8<UWM,PARAM,TS8 (WKE)
|
||||
5838
tss8.23/TS8.PA
Normal file
5838
tss8.23/TS8.PA
Normal file
File diff suppressed because it is too large
Load Diff
1
tss8.23/TS8II.CM
Normal file
1
tss8.23/TS8II.CM
Normal file
@ -0,0 +1 @@
|
||||
TS8II<UWM,PARAM,TS8II (WKE)
|
||||
2424
tss8.23/TS8II.PA
Normal file
2424
tss8.23/TS8II.PA
Normal file
File diff suppressed because it is too large
Load Diff
95
tss8.23/UWM.PA
Normal file
95
tss8.23/UWM.PA
Normal file
@ -0,0 +1,95 @@
|
||||
/TSS/8 CONFIGURATION FOR UWM
|
||||
/CONFIGURATION PARAMETERS FOR THE TSS/8 MONITOR
|
||||
/COPYRIGHT 1971
|
||||
/DIGITAL EQUIPMENT CORP. -MAYNARD, MASS
|
||||
/
|
||||
/TSS/8 PDP-8/E HARDWARE OPTIONS
|
||||
/THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON
|
||||
/WHICH THIS TSS/8 MONITOR WILL BE RUN
|
||||
/FOR EACH STATEMENT THE COMMENT INDICATES THE
|
||||
/POSSIBLE RESPONSES
|
||||
|
||||
CPU= 2 /0 IF CPU IS PDP-8/I; 1 IF PDP-8
|
||||
/ 2 IF PDP-8/E; 3 IF PDP-12
|
||||
|
||||
EAE= 0 /20 IF CPU INCLUDES EAE; 0 IF NOT
|
||||
|
||||
CORMEM= 70 /HIGHEST DATA FIELD SELECT; FOR 12K SYS,
|
||||
/ RESPOND 20; FOR 16K, RESPOND 30; FOR 32K, 70
|
||||
|
||||
D680= 0 /2 IF TTY INTERFACING IS 680 OR DC08;
|
||||
/ 0 IF TTY INTERFACING IS PT08'S
|
||||
|
||||
D689= 0 /4 IF 680 OR DC08 INCLUDES 689 OR DC08F;
|
||||
/ 0 IF IT DOESN'T OR TTY INTERFACING IS PT08'S
|
||||
|
||||
RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF RF08
|
||||
|
||||
RS08= 1 /# OF DISCS IN SYSTEM, WHETHER RF08 OR DF32
|
||||
|
||||
RK8E= 0 /# OF RK8E DRIVES; ONLY FIRST IS USED FOR SYSTEM
|
||||
/ THE REMAINDER ARE TREATED AS PERIPHERALS
|
||||
|
||||
READER= 1 /1 IF SYSTEM INCLUDES HIGH-SPEED READER; 0 IF NOT
|
||||
|
||||
PUNCH= 1 /1 IF SYS HAS HSP, 0 IF NOT
|
||||
|
||||
TC01= 1 /1 IF SYS HAS DECTAPES; 0 IF NOT
|
||||
|
||||
TU55= 0 /1 IF SYSTEM INCLUDES MORE THAN TWO DECTAPES
|
||||
/ 0 IF 0, 1, OR 2 DRIVES
|
||||
|
||||
TD8E= 0 /1 IF TD8E DECTAPES AVAILABLE FOR LOADING & DUMPING
|
||||
/ 0 IF NOT; NOTE THAT TD8E TAPES CANNOT BE USED UNDER
|
||||
/ TSS/8, THEY REQUIRE CONTINUOUS CPU ATTENTION
|
||||
|
||||
PLOTTER=0 /NO SYSTEMS CAN HAVE PLOTTER
|
||||
|
||||
LPT= 0 /0 IF NO PRINTER ON SYS; 1 IF LP08; 2 IF LS8E
|
||||
|
||||
CDR= 0 /NO SYS CAN HAVE CARD READER
|
||||
/
|
||||
/MONITOR OPTIONS
|
||||
/FILL IN THE FOLLOWING LINES TO INDICATE THE
|
||||
/MONITOR CAPACITY FOR THIS SYSTEM
|
||||
|
||||
DECIMAL
|
||||
JOBMAX= 20 /NUMBER OF SIMULTANEOUS USERS (.LE. 20)
|
||||
|
||||
NULINE= 15 /NUMBER OF TTYS TO BE ATTACHED TO SYS.
|
||||
/ SIMULTANEOUSLY, NOT COUNTING CONSOLE (.LE. 19)
|
||||
/ GENERALLY .GE. JOBMAX; IF SYS. USES 680 OR DC08,
|
||||
/ NULINE MUST BE A MULTIPLE OF 5 (FIVE); IF CPU IS
|
||||
/ A PDP-12, NULINE MUST BE MULTIPLE OF 8 (EIGHT)
|
||||
|
||||
TRUKBD= 9 /NUMBER OF ACTUAL KEYBOARDS ON SYSTEM (NOT COUNTING
|
||||
/ CONSOLE TTY). THIS MUST BE .LE. NULINE; NULINE
|
||||
/ MAY INCLUDE DUMMY TERMINALS, THIS MAY NOT.
|
||||
|
||||
FRCMAX= TRUKBD /THE HIGHEST KEYBOARD # A '00XX' ACCT # MAY FORCE
|
||||
/ NOTE THAT A '000X' ACCOUNT MAY FORCE UP TO 'NULINE'
|
||||
|
||||
TLKMAX= TRUKBD /THE HIGHEST KEYBOARD # WHICH MAY BE 'TALK'ED TO
|
||||
|
||||
BRDMAX= TRUKBD /THE HIGHEST KEYBOARD WHICH WILL RECEIVE BROADCASTS
|
||||
OCTAL
|
||||
|
||||
DTAMIN= 2 /THE FIRST DECTAPE DRIVE WHICH WILL BE ASSIGNED
|
||||
/ FOR 'ASSIGN D' COMMAND; NORMALLY =0, BUT MAY
|
||||
/ VARY FOR SLIGHTLY RESTRICTED DRIVE USE.
|
||||
|
||||
BILLNG= 7 /THE ACCOUNT NUMBER OF THE BILLING SYSTEM
|
||||
/ 0, IF NO BILLING SYSTEM USED
|
||||
/
|
||||
/SYSTEM CONSTANTS
|
||||
|
||||
QUANT= -2 /NUMBER OF SYSTEM TICKS PER TIME SLICE (-)
|
||||
SWDEX= 5 /DISC TRACK OF FIRST SWAP AREA
|
||||
TTYEVEN=1 /1 INDICATES PARITY TTY MAY BE USED WITH SYS
|
||||
/ 0 ALLOWS ONLY DEC MODIFIED TTYS
|
||||
INFLD= 20 /FIELD SELECT THAT 'INIT' SHOULD BE BOOTED INTO
|
||||
/ MAKING IT 20 AVOIDS PROBLEMS SHOULD A
|
||||
/ FIELD NEED REPAIR & SYSTEM IS RUN ON 12K
|
||||
|
||||
/// END OF SYSTEM CONFIGURATION PARAMETERS
|
||||
|
||||
BIN
tss8.23/fip.bin
Normal file
BIN
tss8.23/fip.bin
Normal file
Binary file not shown.
4239
tss8.23/fip.lst
Normal file
4239
tss8.23/fip.lst
Normal file
File diff suppressed because it is too large
Load Diff
BIN
tss8.23/init.bin
Normal file
BIN
tss8.23/init.bin
Normal file
Binary file not shown.
4103
tss8.23/init.lst
Normal file
4103
tss8.23/init.lst
Normal file
File diff suppressed because it is too large
Load Diff
39
tss8.23/orig/ASM.BI
Normal file
39
tss8.23/orig/ASM.BI
Normal file
@ -0,0 +1,39 @@
|
||||
$JOB ASSEMBLE TSS/8
|
||||
/TSS/8 CONFIG PARMS IN DSK:TSCON.PA ??
|
||||
$MSG MT TSS/8 #1 & #2 ON D1 & D2
|
||||
.R PIP
|
||||
*DSK:<DSK: (OS)
|
||||
.R FOTP
|
||||
*DTA1:*.TS<DTA1:PARAM.PA,SI.PA /R
|
||||
*DTA1:*.TS<DTA1:FIP.PA,INIT.PA /R
|
||||
*DSK:*.TM<DTA1:*.TS,XDDT.BN
|
||||
*DTA1:*.PA<DTA1:*.TS /R
|
||||
$MSG TSS/8 #1 (D1) FREE.
|
||||
.R PAL8
|
||||
*SI<TSCON.PA,PARAM.TM,SI.TM (WKE)
|
||||
.R PIP
|
||||
*SI.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
.R PAL8
|
||||
*FIP<TSCON.PA,PARAM.TM,FIP.TM (WKE)
|
||||
.R PAL8
|
||||
*INIT<TSCON.PA,PARAM.TM,INIT.TM (WKE)
|
||||
.R PIP
|
||||
*INIT.BN<XDDT.TM,INIT.BN /B
|
||||
*FIP.TM,INIT.TM,XDDT.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
.R FOTP
|
||||
*DSK:*.TM<DTA2:TS8.PA,TS8II.PA
|
||||
$MSG TSS/8 #2 (D2) FREE.
|
||||
.R PAL8
|
||||
*TS8<TSCON.PA,PARAM.TM,TS8.TM (WKE)
|
||||
.R PIP
|
||||
*TS8.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
.R PAL8
|
||||
*TS8II<TSCON.PA,PARAM.TM,TS8II.TM (WKE)
|
||||
.R PIP
|
||||
*PARAM.TM,TS8II.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
$END
|
||||
|
||||
43
tss8.23/orig/ASMJOB.BI
Normal file
43
tss8.23/orig/ASMJOB.BI
Normal file
@ -0,0 +1,43 @@
|
||||
$JOB ASSEMBLE TSS/8
|
||||
/TSS/8 CONFIG PARMS IN DSK:TSCON.PA ??
|
||||
$MSG MT TSS/8 #1 & #2 ON D1 & D2
|
||||
.R PIP
|
||||
*DSK:<DSK: (OS)
|
||||
.R FOTP
|
||||
*DSK:*.TM<DTA1:PARAM.PA,SI.PA
|
||||
.R PAL8
|
||||
*SI<TSCON.PA,PARAM.TM,SI.TM (WKE)
|
||||
.R PIP
|
||||
*SI.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*FIP.TM<DTA1:FIP.PA
|
||||
.R PAL8
|
||||
*FIP<TSCON.PA,PARAM.TM,FIP.TM (WKE)
|
||||
.R PIP
|
||||
*FIP.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
.R FOTP
|
||||
*DSK:<DTA1:INIT.PA,INIT.XD
|
||||
$MSG TSS/8 #1 (D1) FREE.
|
||||
.R PAL8
|
||||
*INIT<TSCON.PA,PARAM.TM,INIT.PA (WKE)
|
||||
.R PIP
|
||||
*INIT.PA/D<
|
||||
*INIT.BN<INIT.XD,INIT.BN /B
|
||||
*INIT.XD/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*TS8.TM<DTA2:TS8.PA
|
||||
.R PAL8
|
||||
*TS8<TSCON.PA,PARAM.TM,TS8.TM (WKE)
|
||||
.R PIP
|
||||
*TS8.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*TS8II.TM<DTA2:TS8II.PA
|
||||
$MSG TSS/8 #2 (D2) FREE.
|
||||
.R PAL8
|
||||
*TS8II<TSCON.PA,PARAM.TM,TS8II.TM (WKE)
|
||||
.R PIP
|
||||
*PARAM.TM,TS8II.TM/D<
|
||||
*DSK:<DSK: (OS)
|
||||
$END
|
||||
|
||||
BIN
tss8.23/orig/BATCH.SV
Normal file
BIN
tss8.23/orig/BATCH.SV
Normal file
Binary file not shown.
325
tss8.23/orig/DOWN.PA
Normal file
325
tss8.23/orig/DOWN.PA
Normal file
@ -0,0 +1,325 @@
|
||||
/// SYSTEM-DOWN PROGRAM
|
||||
/ MONITORS ALL KEYBOARDS AND RESPONDS
|
||||
/ TO ANY INPUT WITH A CANNED MESSAGE
|
||||
/ WRITTEN BY R. B. BARTLEIN - 11/14/74
|
||||
/
|
||||
*0
|
||||
0
|
||||
JMP I .+1
|
||||
INTER
|
||||
*10
|
||||
XR1, 0
|
||||
XR2, 0
|
||||
*20
|
||||
CHGPTR, 0
|
||||
CHKPTR, 0
|
||||
K00PTR, DEVLST+2 /MESSAGE POINTER FOR K00
|
||||
NEWMSG, EMSG
|
||||
RUBFLG, 0
|
||||
EDCHAR, 0
|
||||
/
|
||||
TYPE= JMS . /TYPE A CHARACTER
|
||||
0
|
||||
TLS
|
||||
CLA
|
||||
TSF
|
||||
JMP .-1
|
||||
JMP I .-5 /RETURN
|
||||
/
|
||||
AAAP0= .-1
|
||||
///
|
||||
*200
|
||||
/
|
||||
/START OF MAIN PROGRAM - WE MONITOR ALL TERMINALS AND
|
||||
/PRINT OUR CANNED MESSAGE WHEN ANYONE TYPES A CHAR
|
||||
START, CLA CLL
|
||||
CAF /CLEAR EVERYTHING INITIALLY
|
||||
TAD [CHGMSG-1
|
||||
DCA I K00PTR /START MESSAGE ON CONSOLE
|
||||
TLS
|
||||
ION
|
||||
TAD [707
|
||||
DCA DISPLY /SET UP THE AC DISPLAY
|
||||
LOOP, TAD LPCNT
|
||||
DCA TMP2 /SET SECOND LOOP COUNTER
|
||||
TAD DISPLY
|
||||
RAL
|
||||
ISZ TMP1
|
||||
JMP .-1
|
||||
ISZ TMP2
|
||||
JMP .-3
|
||||
DCA DISPLY
|
||||
TAD [DEVLST
|
||||
DCA TMP2 /SET THE LIST POINTER
|
||||
KIELP, TAD I TMP2 /GET AN INPUT DEVICE
|
||||
SNA /END OF LIST?
|
||||
JMP LOOP /YES - JUST WAIT
|
||||
TAD [6005 /NO - FORM THE 'KIE' INSTRUCTION
|
||||
DCA .+2
|
||||
CLA IAC
|
||||
HLT /NOW ENABLE INTERRUPTS
|
||||
CLA
|
||||
ISZ TMP2 /INCREMENT THE LIST POINTER
|
||||
ISZ TMP2
|
||||
ISZ TMP2
|
||||
JMP KIELP / AND ENABLE THE REST
|
||||
/
|
||||
DISPLY, 707
|
||||
LPCNT, -4
|
||||
TMP1, 0
|
||||
TMP2, 0
|
||||
/
|
||||
AAAP1= .-1
|
||||
///
|
||||
/INTERRUPT HANDLING - WE JUST CONTINUE TYPING
|
||||
/IF THIS IS AN OUTPUT INTERRUPT; IF THIS IS AN INPUT
|
||||
/INTERRUPT, WE START TYPING THE "DOWN" MESSAGE.
|
||||
INTER, DCA AC
|
||||
RTR
|
||||
DCA LINK
|
||||
TAD [DEVLST
|
||||
DCA CHKPTR
|
||||
INTER1, TAD I CHKPTR /GET THE INPUT DEVICE
|
||||
SNA /END OF LIST?
|
||||
JMP INTER7 /YES - EXIT ROUTINE
|
||||
TAD [6001
|
||||
DCA INTER2 /SET THE INPUT CHECK
|
||||
ISZ CHKPTR
|
||||
TAD I CHKPTR /GET THE OUTPUT DEVICE
|
||||
TAD [6006
|
||||
DCA INTER5 /SET THE OUTPUT SELECT
|
||||
ISZ CHKPTR
|
||||
INTER2, HLT / KSF
|
||||
JMP INTER3 /NOT INPUT DEVICE
|
||||
CLA IAC
|
||||
TAD .-3
|
||||
DCA .+1
|
||||
HLT / KCC
|
||||
TAD I CHKPTR /GET THE MESSAGE INDEX
|
||||
SZA CLA /ALREADY TYPING MESSAGE?
|
||||
JMP INTER6 /YES
|
||||
TAD K00PTR
|
||||
CIA
|
||||
TAD CHKPTR
|
||||
SNA CLA /IS THIS THE CONSOLE (K00)?
|
||||
TAD [CHGMSG-MSG /YES - ADD THE 'CHANGE' MESSAGE
|
||||
TAD [MSG-1 /NO - SET THE DOWN-MESSAGE
|
||||
DCA I CHKPTR /SET THE MESSAGE POINTER
|
||||
JMP INTER4
|
||||
INTER3, TAD INTER5 /GET THE OUTPUT SELECT
|
||||
TAD [-5
|
||||
DCA .+1
|
||||
HLT / TSF
|
||||
JMP INTER6 /NOPE - CONTINUE LOOP
|
||||
CLA IAC
|
||||
TAD .-3
|
||||
DCA .+1
|
||||
HLT /CLEAR THE FLAG
|
||||
INTER4, TAD I CHKPTR
|
||||
SNA /ANY MESSAGE BEING TYPED?
|
||||
JMP INTER6 /NOPE - JUST EXIT
|
||||
IAC
|
||||
DCA I CHKPTR /YES - INCREMENT THE ADDRESS
|
||||
TAD I CHKPTR
|
||||
DCA INTEMP /SET THE MESSAGE ADDRESS
|
||||
TAD I INTEMP
|
||||
SZA /END OF MESSAGE?
|
||||
JMP INTER5 /NO - TYPE THE CHARACTER
|
||||
DCA I CHKPTR /YES - CLEAR THE POINTER
|
||||
JMP INTER6 / AND EXIT
|
||||
INTER5, HLT /TYPE THE CHARACTER
|
||||
CLA CLL
|
||||
INTER6, ISZ CHKPTR
|
||||
SRQ /ANY MORE INTERRUPTS?
|
||||
JMP INTER7 /NO - JUST EXIT
|
||||
JMP INTER1 /YES - CONTINUE CHECKING
|
||||
/
|
||||
/NOW WE RELOAD THE AC & LINK AND RETURN TO OUR MAINLINE.
|
||||
INTER7, CLA CLL
|
||||
TAD LINK
|
||||
CLL RTL
|
||||
CLA
|
||||
TAD AC
|
||||
ION
|
||||
JMP I 0 /EXIT INTERRUPT HANDLER
|
||||
/
|
||||
AC, 0
|
||||
LINK, 0
|
||||
INTEMP, 0
|
||||
///
|
||||
*1000
|
||||
/
|
||||
/WE ARE STARTED HERE TO CHANGE THE "DOWN MESSAGE"
|
||||
CHANGE, CLA CLL
|
||||
DCA EDCHAR
|
||||
TAD ENDMSG
|
||||
DCA XR1
|
||||
TAD I XR1 /TYPE "END WITH ALT-MODE"
|
||||
SNA
|
||||
JMP .+3
|
||||
TYPE
|
||||
JMP .-4
|
||||
TAD NEWMSG /INITIALIZE THE MESSAGE POINTER
|
||||
DCA CHGPTR
|
||||
TAD [MSG+2
|
||||
DCA XR1 /SET POINTER FOR CHARACTER SEARCH
|
||||
DCA RUBFLG
|
||||
CHG2, KSF /NOW WAIT FOR A CHARACTER
|
||||
JMP .-1
|
||||
KRB
|
||||
AND [177
|
||||
TAD [200
|
||||
TAD [-377
|
||||
SNA /RUBOUT?
|
||||
JMP RUBOUT /YES
|
||||
DCA XR2 /NO - SAVE OUR CHAR A MOMENT
|
||||
ISZ RUBFLG /JUST FINISH RUBOUTS?
|
||||
JMP .+3 /NO
|
||||
TAD ["\
|
||||
TYPE /YES - CLOSE THE BLOCK
|
||||
DCA RUBFLG / AND CLEAR THE FLAG
|
||||
TAD XR2
|
||||
TAD [377-375
|
||||
SNA /ALT MODE?
|
||||
JMP CHGEND /YES
|
||||
TAD [375-376
|
||||
SNA /ASR 35 ALT MODE?
|
||||
JMP CHGEND /YES
|
||||
TAD [376-233
|
||||
SNA /ESCAPE?
|
||||
JMP CHGEND /YES
|
||||
TAD [233-232
|
||||
SNA /CTRL/Z - EDIT COMMAND?
|
||||
JMP EDIT /YES
|
||||
TAD [232-214
|
||||
SNA /CTRL/L - CONTINUE SEARCH?
|
||||
JMP EDITC /YES
|
||||
TAD [214
|
||||
DCA I CHGPTR /NOW STORE THE CHARACTER
|
||||
TAD I CHGPTR
|
||||
TYPE /NOW ECHO THE CHARACTER
|
||||
ISZ CHGPTR
|
||||
JMP CHG2 /GET THE NEXT CHARACTER
|
||||
JMP CHANGE /RAN OUT OF ROOM - RESTART
|
||||
/
|
||||
/HERE WE HANDLE THE RUBOUT CONTROL
|
||||
RUBOUT, TAD NEWMSG
|
||||
CIA
|
||||
TAD CHGPTR
|
||||
SNA CLA /ANYTHING TO RUB OUT?
|
||||
JMP CHG2 /NO - IGNORE THE RUBOUT
|
||||
ISZ RUBFLG /PART OF A STRING?
|
||||
SKP /NOT YET
|
||||
JMP .+3
|
||||
TAD ["\
|
||||
TYPE /YES - TYPE "\"
|
||||
CLA CMA
|
||||
DCA RUBFLG / AND SET THE FLAG
|
||||
CLA CMA
|
||||
TAD CHGPTR
|
||||
DCA CHGPTR /BACK UP THE POINTER
|
||||
TAD I CHGPTR
|
||||
TYPE / AND ECHO THE CHARACTER
|
||||
JMP CHG2 /NOW GET THE NEXT CHARACTER
|
||||
/
|
||||
/HERE WE TERMINATE THE NEW MESSAGE AND START THE
|
||||
/MAIN PROGRAM.
|
||||
CHGEND, DCA I CHGPTR /STORE A ZERO
|
||||
TAD [MSG+2
|
||||
DCA XR1 /SET THE DESTINATION POINTER
|
||||
CLA CMA
|
||||
TAD NEWMSG
|
||||
DCA XR2 / AND THE NEW MSG POINTER
|
||||
TAD I XR2 /GET A CHARACTER
|
||||
SNA /END OF MESSAGE?
|
||||
JMP CHGSET /YES - SET FOR THE NEXT CHANGE
|
||||
DCA I XR1
|
||||
JMP .-4 /NO - MOVE THE NEXT CHARACTER
|
||||
CHGSET, DCA I XR1 /STORE A ZERO
|
||||
DCA I XR1
|
||||
TAD XR1 /GET THE END ADDRESS
|
||||
DCA NEWMSG / AND SAVE IT
|
||||
JMP I [200 /THEN START THE PROGRAM
|
||||
/
|
||||
/WE COME HERE TO SEARCH THE PREVIOUS MESSAGE
|
||||
/AND COPY IT TO THE NEW MESSAGE.
|
||||
EDIT, TAD ["^
|
||||
TYPE /TYPE A PROMPT
|
||||
KSF
|
||||
JMP .-1
|
||||
KRB /READ THE SEARCH CHAR
|
||||
AND [177
|
||||
SNA /ZERO?
|
||||
JMP .-5 /YES - THAT'S NOT ALLOWED
|
||||
TAD [200
|
||||
CIA
|
||||
DCA EDCHAR
|
||||
/
|
||||
/WE COME HERE TO CONTINUE A SINGLE CHARACTER SEARCH.
|
||||
EDITC, TAD EDCHAR
|
||||
SNA CLA /IS THERE A SEARCH CHAR?
|
||||
JMP CHG2 /NO - IGNORE THE CTRL/L
|
||||
EDIT1, TAD I XR1 /GET THE NEXT MESSAGE CHARACTER
|
||||
SNA /END OF MESSAGE?
|
||||
JMP EDIT2 /YES
|
||||
DCA I CHGPTR /NO - STORE IT
|
||||
TAD I CHGPTR
|
||||
TYPE / AND ECHO IT
|
||||
TAD I CHGPTR
|
||||
ISZ CHGPTR /INCREMENT THE MESSAGE POINTER
|
||||
SKP
|
||||
JMP CHANGE /OUT OF ROOM - RESTART
|
||||
TAD EDCHAR
|
||||
SZA CLA /IS IT OUR SEARCH CHAR?
|
||||
JMP EDIT1 /NO - KEEP GOING
|
||||
JMP CHG2 /YES - STOP HERE
|
||||
/
|
||||
/WE REACHED THE END OF THE OLD MESSAGE
|
||||
EDIT2, CLA CMA
|
||||
TAD XR1 /RESET THE POINTER
|
||||
DCA XR1 / TO POINT TO THE END
|
||||
JMP CHG2 / AND TERMINATE THE SEARCH
|
||||
/
|
||||
AAACHG= .-1
|
||||
/
|
||||
ENDMSG, .;215;212;212;"E;"N;"D;" ;"W;"I;"T;"H
|
||||
" ;"A;"L;"T;" ;"M;"O;"D;"E;215;212;0
|
||||
///
|
||||
DEVLST, 030; 040; 0 /K00
|
||||
400; 410; 0
|
||||
420; 430; 0 /K02
|
||||
440; 450; 0
|
||||
460; 470; 0 /K04
|
||||
340; 350; 0
|
||||
110; 120; 0 /K06
|
||||
300; 310; 0
|
||||
320; 330; 0 /K10
|
||||
500; 510; 0
|
||||
520; 530; 0 /K12
|
||||
540; 550; 0
|
||||
560; 570; 0 /K14
|
||||
700; 710; 0
|
||||
360; 370; 0 /K16
|
||||
720; 730; 0
|
||||
740; 750; 0 /K20
|
||||
060; 070; 0
|
||||
140; 150; 0
|
||||
160; 170; 0 /K23
|
||||
0 /END OF LIST
|
||||
/
|
||||
CHGMSG, 215;212;212;"S;"T;"O;"P;" ;"C;"P;"U;" ;"A;"N;"D
|
||||
" ;"S;"T;"A;"R;"T;" ;"A;"T;" ;"L;"O;"C;"A;"T;"I;"O;"N
|
||||
" ;"1;"0;"0;"0;" ;"T;"O;" ;"C;"H;"A;"N;"G;"E
|
||||
" ;"M;"E;"S;"S;"A;"G;"E;".
|
||||
MSG, 215;212;212;"S;"Y;"S;"T;"E;"M;" ;"I;"S
|
||||
" ;"D;"O;"W;"N;";;" ;"P;"L;"E;"A;"S;"E
|
||||
" ;"H;"A;"N;"G;" ;"U;"P;" ;"N;"O;"W;215;212
|
||||
"A;"N;"D;" ;"C;"A;"L;"L;" ;"B;"A;"C;"K
|
||||
" ;"L;"A;"T;"E;"R;".;215;212
|
||||
0
|
||||
EMSG= .
|
||||
/
|
||||
AAAEND= .-1
|
||||
/// $$$
|
||||
$$$
|
||||
|
||||
321
tss8.23/orig/FD.PA
Normal file
321
tss8.23/orig/FD.PA
Normal file
@ -0,0 +1,321 @@
|
||||
/// HANDLER FOR THE ADC FLOPPY DISC
|
||||
/
|
||||
IFNDEF FDN <FDN= 1>
|
||||
/
|
||||
IDTRK= 20 /FIXED LOCATION FOR 'READ SECTOR I.D.'
|
||||
IDSECT= 21
|
||||
/
|
||||
X= 20 /IOT DIGIT FOR FIRST CONTROLLER
|
||||
Y= 30
|
||||
/
|
||||
CLRC= 6700+X /CLEAR CONTROLLER
|
||||
RTSR= 6701+X /READ STATUS REGISTER
|
||||
RTCA= 6703+X /READ CURRENT ADDRESS REGISTER
|
||||
DKGO= 6704+X /START OPERATION
|
||||
LTCR= 6705+X /LOAD COMMAND REGISTER
|
||||
LCAR= 6706+X /LOAD CURRENT ADDRESS REGISTER
|
||||
LDTA= 6707+X /LOAD THE DATA REGISTER
|
||||
SKRY= 6700+Y /SKIP ON READY
|
||||
SKER= 6701+Y /SKIP ON ERROR
|
||||
SKCE= 6702+Y /SKIP ON CRC ERROR
|
||||
/
|
||||
*0
|
||||
-1 /ONE HANDLER
|
||||
IFZERO FDN <DEVICE FDK0; DEVICE FD0>
|
||||
IFZERO FDN-1 <DEVICE FDK1; DEVICE FD1>
|
||||
IFZERO FDN-2 <DEVICE FDK2; DEVICE FD2>
|
||||
IFZERO FDN-3 <DEVICE FDK3; DEVICE FD3>
|
||||
IFZERO FDN-4 <DEVICE FDK4; DEVICE FD4>
|
||||
IFZERO FDN-5 <DEVICE FDK5; DEVICE FD5>
|
||||
IFZERO FDN-6 <DEVICE FDK6; DEVICE FD6>
|
||||
IFZERO FDN-7 <DEVICE FDK7; DEVICE FD7>
|
||||
4400; FDK0-200+4000; ZBLOCK 2
|
||||
///
|
||||
*200
|
||||
/
|
||||
/SUBROUTINE TO SELECT THE DATA-BUFFER'S DATA FIELD
|
||||
FDUDF, 0
|
||||
HLT
|
||||
JMP I FDUDF
|
||||
/
|
||||
FDPFIX, -74-1
|
||||
FD37, 37
|
||||
FD70, 70
|
||||
FDRIVE, FDN+200 /SET 'HEAD LOAD' BIT ALSO
|
||||
M1898D, -3552 /-1898
|
||||
/
|
||||
/SUBROUTINE TO INITIALIZE STUFF
|
||||
FDINIT, HLT
|
||||
CLA CLL CMA RAL
|
||||
TAD FDEXIT
|
||||
DCA FDIN2 /SET CDF BACK TO CALLING FIELD
|
||||
FD6201, CDF
|
||||
TAD FDPTR1
|
||||
TAD FDINIT /MAKE OUR POINTER ABSOLUTE
|
||||
DCA FDPTR1
|
||||
FDIN1, TAD I FDPTR1 /GET RELATIVE ADDRESS
|
||||
TAD FDINIT / AND ADD THE BASE ADDRESS
|
||||
FDBUF, DCA I FDPTR1 /STORE THE ABSOLUTE POINTER
|
||||
FDCMD, ISZ FDPTR1
|
||||
FDFUNC, ISZ FDCNT1
|
||||
FDPGCT, JMP FDIN1
|
||||
FDPKMK, TAD .+3 /FIX SO WE ONLY INITIALIZE ONCE
|
||||
FDREC, DCA FDINIT+1
|
||||
FDIN2, HLT /SET CALLING FIELD AGAIN
|
||||
FDSECT, JMP I FDINIT
|
||||
/
|
||||
FDK0, 01 /HANDLER VERSION NUMBER
|
||||
FDM200, 7600 /ALSO 'CLA'
|
||||
RDF /GET THE CALLING FIELD
|
||||
TAD FD6203
|
||||
DCA FDEXIT / AND SET THE EXIT 'CIF CDF'
|
||||
JMS FDINIT /INITIALIZE THE HANDLER
|
||||
FDBASE, TAD I FDK0 /GET THE FUNCTION CODE
|
||||
DCA FDFUNC
|
||||
ISZ FDK0
|
||||
TAD FDFUNC
|
||||
AND FD70 /GET THE DATA FIELD SELECT
|
||||
BSW
|
||||
TAD FDRIVE / ADD IN THE DRIVE NUMBER
|
||||
DCA FDCMD /SAVE AS THE COMMAND BASE
|
||||
TAD FDFUNC
|
||||
AND FD70 /GET THE BUFFER DATA FIELD AGAIN
|
||||
TAD FD6201 / AND BUILD A 'CDF' TO IT
|
||||
DCA FDUDF+1
|
||||
TAD I FDK0 /GET THE BUFFER ADDRESS
|
||||
DCA FDBUF
|
||||
ISZ FDK0
|
||||
TAD I FDK0 /GET THE OS/8 BLOCK NUMBER
|
||||
ISZ FDK0
|
||||
FD6203, CIF CDF
|
||||
CLL RAL /CONVERT IT TO A RECORD NUMBER
|
||||
SPA SZL /REASONABLE RECORD NUMBER?
|
||||
JMS FATAL /NO - FATAL ERROR
|
||||
DCA FDREC /YES - SAVE THE RECORD NUMBER
|
||||
TAD FDFUNC
|
||||
BSW
|
||||
AND FD37 /GET THE RECORD COUNT
|
||||
CMA
|
||||
DCA FDPGCT
|
||||
JMP FDEPG /DO ZERO PAGES IF ZERO SPECIFIED
|
||||
FDPGLP, TAD FDREC
|
||||
CLL RAL
|
||||
SPA SZL /LEGAL?
|
||||
JMS FATAL /NO
|
||||
DCA FDSECT /SECTOR NUMBER = RECORD * 2
|
||||
TAD FDSECT
|
||||
TAD M1898D
|
||||
SMA CLA /LEGAL SECTOR NUMBER?
|
||||
JMS FATAL /NO - TAKE ERROR EXIT
|
||||
TAD FDFUNC
|
||||
SMA CLA /READ OR WRITE?
|
||||
JMP FDKRD /READ
|
||||
/
|
||||
/WRITE A PAGE OUT TO DISC
|
||||
TAD FDSECT
|
||||
JMS I FDSTRT /FIRST A SECTOR OF FULL BYTES
|
||||
20
|
||||
JMS FDPACK /THEN OVERLAY THE PARTIAL SECTOR
|
||||
-1
|
||||
TAD FDSECT
|
||||
IAC
|
||||
JMS I FDSTRT / AND WRITE BACK THE PARTIAL SECTOR
|
||||
20
|
||||
JMP .+5
|
||||
/
|
||||
/READ A PAGE FROM THE DISC.
|
||||
FDKRD, TAD FDSECT
|
||||
IAC
|
||||
JMS I FDSTRT /FIRST READ THE PARTIAL SECTOR
|
||||
10
|
||||
JMS FDPACK / AND SHIFT THE HALF-BYTES UP
|
||||
+1
|
||||
TAD FDSECT
|
||||
JMS I FDOVER /THEN OVERLAY IT WITH THE FULL BYTES
|
||||
CDF
|
||||
RTCA /NOW UPDATE THE BUFFER ADDRESS
|
||||
DCA FDBUF
|
||||
ISZ FDREC / AND THE RECORD NUMBER
|
||||
FDEPG, ISZ FDPGCT
|
||||
JMP FDPGLP / AND GO TRANSFER ANOTHER PAGE
|
||||
ISZ FDK0 /OTHERWISE WE'RE DONE
|
||||
FDEXIT, HLT
|
||||
JMP I FDK0 / AND RETURN
|
||||
/
|
||||
/SUBROUTINE TO PACK THE PARTIAL BYTES
|
||||
FDPACK, HLT
|
||||
JMS I FDWAIT /MAKE SURE THE DISC IS DONE
|
||||
TAD FDBUF
|
||||
DCA FDPTR1
|
||||
TAD FDM200 /SET THE WORD COUNT
|
||||
DCA FDCNT1
|
||||
TAD I FDPACK /GET THE READ/WRITE SWITCH
|
||||
ISZ FDPACK
|
||||
SPA CLA /READ-PACK OR WRITE-PACK?
|
||||
TAD FDPFIX /WRITE - SET MASK = 74
|
||||
CMA /READ - SET MASK = 7777
|
||||
DCA FDPKMK
|
||||
JMS FDUDF /CHANGE TO BUFFER'S DATA FIELD
|
||||
FDPK1, TAD I FDPTR1 /GET THE WORD
|
||||
BSW /SWAP HALVES
|
||||
AND FDPKMK / AND MAYBE AND OFF PART
|
||||
DCA I FDPTR1 /THEN STORE BACK THE WORD
|
||||
ISZ FDPTR1
|
||||
ISZ FDCNT1 /DECREMENT COUNTER
|
||||
JMP FDPK1 / AND CONTINUE
|
||||
CDF
|
||||
JMP I FDPACK
|
||||
/
|
||||
FATAL,
|
||||
FDCNT1, FDPTR1-FDEREL /LENGTH OF RELOCATION LIST
|
||||
CLA CLL CMA /YES - INDICATE FATAL ERROR
|
||||
JMP FDEXIT / AND EXIT
|
||||
/
|
||||
IFNZRO 400-4-.&4000 <GLITCH>
|
||||
*400-4 /PART OF LIST BELONGS IN SECOND PAGE
|
||||
FDPTR1, .+1-FDBASE /USED DURING INITIALIZATION
|
||||
FDOVER, FDOVLY-FDBASE
|
||||
FDSTRT, FDST-FDBASE
|
||||
FDWAIT, FDWT-FDBASE
|
||||
FDUDFA, FDUDF-FDBASE
|
||||
FDCMDA, FDCMD-FDBASE
|
||||
FDBUFA, FDBUF-FDBASE
|
||||
FDQUIT, FATAL-FDBASE
|
||||
FDEREL= .-1 /END OF RELOCATION LIST
|
||||
///
|
||||
/
|
||||
/SUBROUTINE TO OVERLAY PART OF THE BUFFER WITH A SECTOR.
|
||||
FDOVLY, 0
|
||||
DCA SECT
|
||||
TAD I FDBUFA
|
||||
DCA FDPTR2 /SET THE OVERLAY POINTER
|
||||
TAD M200
|
||||
DCA FDCNT2 / AND THE WORD COUNTER
|
||||
TAD SECT
|
||||
JMS FDST /START THE TRANSFER
|
||||
10
|
||||
SKER /ANY ERROR NOW?
|
||||
SKP
|
||||
JMS I FDQUIT /YES - TAKE FATAL ERROR EXIT
|
||||
JMS I FDUDFA /CHANGE TO USER'S DATA FIELD
|
||||
FDOV1, TAD I FDPTR2 /GET THE WORD
|
||||
MQL / AND SAVE IT IN THE MQ
|
||||
FDOV2, RTCA /NOW GET THE CURRENT ADDRESS
|
||||
CIA
|
||||
TAD FDPTR2
|
||||
SMA CLA /PAST OUR WORD YET?
|
||||
JMP FDOV2 /NO - WAIT FOR IT
|
||||
TAD I FDPTR2 /YES - GET THE NEW VALUE
|
||||
MQA / AND 'OR' IN THE ORIGINAL
|
||||
DCA I FDPTR2 /THEN STORE THE FINAL RESULT
|
||||
ISZ FDPTR2
|
||||
ISZ FDCNT2 /DECREMENT THE COUNTER
|
||||
JMP FDOV1 / AND CONTINUE
|
||||
JMS FDWT /THEN WAIT FOR I/O COMPLETION
|
||||
JMP I FDOVLY / AND RETURN
|
||||
/
|
||||
/SUBROUTINE TO START A DISC TRANSFER.
|
||||
FDST, 0
|
||||
DCA SECT /SAVE THE SECTOR NUMBER
|
||||
CLA IAC
|
||||
DCA TRK
|
||||
TAD SECT
|
||||
FDST1, TAD M26D /NOW DIVIDE THE SECTOR BY 26
|
||||
SPA
|
||||
JMP .+3
|
||||
ISZ TRK / TO GET THE TRACK NUMBER
|
||||
JMP FDST1
|
||||
TAD K27D /SECTOR = REMAINDER + 1
|
||||
DCA SECT
|
||||
TAD M26D
|
||||
DCA TKERR /SET ERROR LIMITS
|
||||
TAD M200
|
||||
DCA SCERR
|
||||
TAD IDTRK /SAVE THE FIELD ZERO LOCATIONS
|
||||
DCA SAVIDT
|
||||
TAD IDSECT
|
||||
DCA SAVIDS
|
||||
FDST2, TAD I FDCMDA
|
||||
LTCR /READ SECTOR I.D.
|
||||
DKGO
|
||||
SKRY /WAIT FOR 'READY'
|
||||
JMP .-1
|
||||
RTSR
|
||||
AND FDSMSK
|
||||
SZA CLA /ANY FATAL ERRORS?
|
||||
JMS I FDQUIT /YES - DIE
|
||||
SKCE /CRC ERROR?
|
||||
JMP FDST3 /NO
|
||||
ISZ TKERR /YES - COUNT AS TRACK ERROR
|
||||
JMP FDST2 / AND TRY AGAIN
|
||||
JMS I FDQUIT /OTHERWISE ERROR
|
||||
FDST3, TAD IDTRK
|
||||
CIA
|
||||
TAD TRK
|
||||
SNA /RIGHT TRACK?
|
||||
JMP FDST4 /YES - CHECK SECTOR NUMBER
|
||||
LDTA /NO LOAD THE DIFFERENCE
|
||||
TAD I FDCMDA
|
||||
TAD FDSEEK
|
||||
LTCR /SET THE MOVE HEAD FUNCTION
|
||||
DKGO
|
||||
JMS FDWT /WAIT FOR COMPLETION
|
||||
ISZ TKERR /COUNT THIS AS A TRACK-ERROR
|
||||
JMP FDST2 / AND CHECK AGAIN
|
||||
JMS I FDQUIT
|
||||
FDST4, TAD IDSECT
|
||||
CIA
|
||||
TAD SECT
|
||||
SNA CLA /ARE WE AT THE RIGHT SECTOR?
|
||||
JMP FDST5 /YES
|
||||
ISZ SCERR /NO - COUNT OUR TRIES
|
||||
JMP FDST2 / AND TRY AGAIN
|
||||
JMS I FDQUIT /ERROR LIMIT REACHED
|
||||
FDST5, TAD I FDBUFA
|
||||
LCAR /SET THE BUFFER ADDRESS
|
||||
TAD K373
|
||||
LDTA /ASSUME SECTOR GOOD
|
||||
TAD TRK
|
||||
TAD M44D
|
||||
SMA CLA /TRACK NUMBER .GE. 44?
|
||||
TAD K40 /YES - SET FLAG TO USE LOWER WRITE CURRENT
|
||||
TAD I FDST /GET THE FUNCTION CODE
|
||||
ISZ FDST / AND INCREMENT THE RETURN
|
||||
TAD I FDCMDA /GET THE REST OF THE COMMAND
|
||||
LTCR
|
||||
TAD SAVIDT /NOW RESTORE THE PAGE ZERO STUFF
|
||||
DCA IDTRK
|
||||
TAD SAVIDS
|
||||
DCA IDSECT
|
||||
DKGO /NOW START THE TRANSFER
|
||||
JMP I FDST / AND RETURN
|
||||
/
|
||||
K40, 40
|
||||
K373, 373
|
||||
M26D, -32
|
||||
M44D, -54
|
||||
M200, -200
|
||||
K27D, 33
|
||||
FDSMSK, 2235
|
||||
TRK, 0
|
||||
SECT, 0
|
||||
TKERR, 0
|
||||
SCERR, 0
|
||||
FDPTR2, 0
|
||||
FDCNT2, 0
|
||||
FDSEEK, 30 /MOVE HEAD
|
||||
SAVIDS, 0
|
||||
SAVIDT, 0
|
||||
/
|
||||
/SUBROUTINE TO WAIT FOR DISC COMPLETION.
|
||||
FDWT, 0
|
||||
SKRY
|
||||
JMP .-1
|
||||
SKER /ANY ERROR BITS?
|
||||
JMP I FDWT /NO - JUST RETURN
|
||||
JMS I FDQUIT /YES - TAKE FATAL ERROR EXIT
|
||||
/
|
||||
AAAFD= .-1
|
||||
/// $$$
|
||||
$$$
|
||||
|
||||
1
tss8.23/orig/FIP.CM
Normal file
1
tss8.23/orig/FIP.CM
Normal file
@ -0,0 +1 @@
|
||||
FIP<UWM,PARAM,FIP (WKE)
|
||||
3199
tss8.23/orig/FIP.PA
Normal file
3199
tss8.23/orig/FIP.PA
Normal file
File diff suppressed because it is too large
Load Diff
1
tss8.23/orig/INIT.CM
Normal file
1
tss8.23/orig/INIT.CM
Normal file
@ -0,0 +1 @@
|
||||
INIT<UWM,PARAM,INIT (WKE)
|
||||
2956
tss8.23/orig/INIT.PA
Normal file
2956
tss8.23/orig/INIT.PA
Normal file
File diff suppressed because it is too large
Load Diff
BIN
tss8.23/orig/INIT.XD
Normal file
BIN
tss8.23/orig/INIT.XD
Normal file
Binary file not shown.
583
tss8.23/orig/PARAM.PA
Normal file
583
tss8.23/orig/PARAM.PA
Normal file
@ -0,0 +1,583 @@
|
||||
/PARAMETERS - UWM VERSION 23
|
||||
/
|
||||
/COPYRIGHT 1971 DIGITAL EQUIPMENT CORPORATION
|
||||
/ MAYNARD, MASSACHUSETTS
|
||||
/
|
||||
/
|
||||
VERNUM= 27 /SYSTEM VERSION NUMBER
|
||||
/
|
||||
STOMIN= 5 /MINIMUM # FREE STORAGE BLOCKS FOR NEW JOB
|
||||
IFZERO RK8E <
|
||||
IFZERO RF08-40 <
|
||||
DSKSIZ= RS08^10
|
||||
>
|
||||
IFZERO RF08 <
|
||||
DSKSIZ= RS08^100 /# OF 4K DISC TRACKS
|
||||
>
|
||||
>
|
||||
IFNZRO RK8E <
|
||||
DSKSIZ= 400 /# OF 4K DISC TRACKS
|
||||
>
|
||||
CLOCKR= 62 /50 MILLISECONDS
|
||||
TICMIN= 2260 /1200
|
||||
INCLK2= 0645 /1,728,000 TICKS PER DAY
|
||||
INCLK1= 7000
|
||||
TICSPS= 24 /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
|
||||
WRDSEG= 400 /#WORDS PER DISC SEGMENT
|
||||
|
||||
/IOT DEFINITIONS
|
||||
|
||||
IFZERO D680-2 <
|
||||
TTINCR= 6401 /INCREMENT LINE REGISTER
|
||||
TTI= 6402 /TELETYPE INPUT COMMAND
|
||||
TTO= 6404 /TELETYPE OUTPUT COMMAND
|
||||
TTCL= 6411 /CLEAR LINE REGISTER
|
||||
TTSL= 6412 /SET LINE REGISTER, CLEAR AC
|
||||
TTRL= 6414 /READ LINE REGISTER
|
||||
T8SKP= 6421 /SKIP ON CLOCK FLAG
|
||||
T8OFF= 6422 /TURN CLOCK OFF
|
||||
TT8ON= 6424 /TURN CLOCK ON
|
||||
TTRINC= 6461 /INCREMENT THE R REG.
|
||||
TT8CLR= 6473 /CLEAR AND LOAD THE R REG.
|
||||
>
|
||||
/EXTENDED MEMORY
|
||||
|
||||
CDF= 6201 /CHANGE TO DATA FIELD 0
|
||||
CIF= 6202 /CHANGE TO INSTRUCTION FIELD 0
|
||||
CIOT= 6204 /CLEAR USER IOT
|
||||
|
||||
RDF= 6214 /READ DATA FIELD
|
||||
RIF= 6224 /READ INSTRUCTION FIELD
|
||||
RIB= 6234 /READ INTERRUPT BUFFER
|
||||
RMF= 6244 /RESTORE MEMORY FIELD
|
||||
SKPIOT= 6254 /SKIP ON USER IOT
|
||||
UFF= 6264 /USER FLAG OFF
|
||||
UFN= 6274 /USER FLAG ON
|
||||
|
||||
/EAE
|
||||
IFZERO EAE-20 <
|
||||
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 <
|
||||
SAM= 7453 /SUBTRACT AC FROM MQ
|
||||
SKB= 7671 /SKIP IF MODE B (MESSES UP AC AND MQ)
|
||||
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
|
||||
/SOMEDAY FIX 'WHERE' COMMAND TO PRINT MODE & GT
|
||||
|
||||
/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
|
||||
LPC= 6666 /TRANSMIT CHAR & CLEAR FLAG
|
||||
LCP= 6667 /CLEAR PROGRAM INTERRUPT
|
||||
/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)
|
||||
|
||||
DIML= 6615
|
||||
DIMA= 6616
|
||||
DXAL= 6643
|
||||
|
||||
IFNZRO RK8E <
|
||||
DCLR= 6742 /CLEAR THE CONTROLLER
|
||||
DLAG= 6743 /LOAD DISC ADDRESS & GO
|
||||
DLDC= 6746 /LOAD THE COMMAND REGISTER
|
||||
DRST= 6745 /READ THE STATUS
|
||||
DSKP= 6741 /SKIP IF DONE OR ERROR
|
||||
DLCA= 6744 /LOAD CURRENT CORE ADDRESS
|
||||
>
|
||||
|
||||
/
|
||||
/STANDARD DECTAPE CONTROLLER IOTS
|
||||
DTRA= 6761 /READ A-REGISTER
|
||||
DTCA= 6762 /CLEAR A-REGISTER
|
||||
DTXA= 6764 /XOR INTO A-REGISTER
|
||||
DTSF= 6771 /SKIP ON DECTAPE FLAG
|
||||
DTRB= 6772 /READ STATUS-REGISTER (B)
|
||||
DTLB= 6774 /LOAD STATUS-REGISTER (B)
|
||||
|
||||
IFZERO CPU-3 <
|
||||
CLAB= 6133
|
||||
CLLR= 6132
|
||||
CLEN= 6134
|
||||
CLSA= 6135
|
||||
CLSK= 6131
|
||||
|
||||
MTPF= 6113
|
||||
MINT= 6115
|
||||
MTON= 6117
|
||||
MKTF= 6123
|
||||
MINS= 6125
|
||||
MTRS= 6127
|
||||
|
||||
MKSF= 6111
|
||||
MKCC= 6112
|
||||
MKRS= 6114
|
||||
MKRB= 6116
|
||||
|
||||
MTSF= 6121
|
||||
MTCF= 6122
|
||||
MTPC= 6124
|
||||
MTLS= 6126
|
||||
>
|
||||
|
||||
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
|
||||
CAF= 6007 /CLEAR ALL FLAGS
|
||||
>
|
||||
|
||||
IFZERO D689-4 <
|
||||
/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
|
||||
>
|
||||
/TSS/8 IOTS
|
||||
SEGS= 406 /RETURN NUMBER OF FREE SEGMENTS ON DISC
|
||||
ASD= 440 /ASSIGN DEVICE
|
||||
REL= 442 /RELEASE DEVICE
|
||||
REN= 600 /RENAME FILE
|
||||
OPEN= 6601 /OPEN FILE
|
||||
CLOS= 602 /CLOSE
|
||||
RFILE= 6603 /READ FILE
|
||||
PROT= 604 /PROTECT
|
||||
WFILE= 6605 /WRITE FILE
|
||||
XOPEN= 6606 /OPEN FILE WITH EXCLUSIVE USE
|
||||
CPASS= 607 /CHANGE A USER'S PASSWORD
|
||||
CRF= 610 /CREATE
|
||||
EXT= 611 /EXTEND
|
||||
RED= 612 /REDUCE
|
||||
FINF= 6613 /FILE INFORMATION
|
||||
LIN= 614 /LOGIN
|
||||
LOUT= 615 /LOGOUT
|
||||
BCLR= 620 /CLEAR MFD BILLING INFORMATION
|
||||
|
||||
/DEVICE DATA BLOCK
|
||||
|
||||
DDBSTS= 0 /WORD 1. STATUS AND UNIT NUMBER
|
||||
DXON= 2000 /XOFF SENT FLAG
|
||||
DSI= 1000 /DESTINATION IS S.I. FLAG
|
||||
DXOUT= 400 /BIT TO CAUSE 'XOFF' TO GO OUT
|
||||
DUPL= 200 /CONSOLE IN DUPLEX MODE
|
||||
SICOM= 100 /COMMAND WAITING
|
||||
CTRLC= 40 /USER TYPED CTRL/C
|
||||
|
||||
/DEVICE UNIT NUMBER IS IN BITS 6-11
|
||||
|
||||
DDBJN= 1 /WORD 2. JOB NUMBER IN 7-11
|
||||
DDBBRK= 2 /BREAK MASK
|
||||
SIBRKM= 204 /SI BREAK MASK
|
||||
DDBTIM= 3 /TIME THAT DEVICE WAS ASSIGNED
|
||||
DDBINP= 4 /BUFFER FILL POINTER
|
||||
DDBINC= 5 /BUFFER FILL COUNT
|
||||
DDBOUP= 6 /BUFFER EMPTY POINTER
|
||||
DDBOUC= 7 /BUFFER EMPTY COUNT
|
||||
/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
|
||||
JSHLT= 400 /PROGRAM EXECUTED 'HLT'
|
||||
JSPRIV= 200 /LIBRARY PROGRAM (HAS PRIVILEGES)
|
||||
JSIOT= 100 /NON-RESIDENT IOT
|
||||
JSIOTC= 40 /COPY IOT RESULT TO USER
|
||||
JSEXON= 20 /EXECUTE ONLY
|
||||
/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 /DELIMITER SEEN
|
||||
JSTEL= 20 /OUTPUT BUFFER NOT FULL
|
||||
JSPTR= 10 /CHARACTER IN READER BUFFER
|
||||
JSPTP= 4 /PUNCH BUFFER IS NOT FULL
|
||||
JSERR= 2 /SYSTEM ERROR DETECTED
|
||||
JSWAIT= 1 /JOB NOT IN WAIT STATE
|
||||
|
||||
STR2= 1 /TC01&1!PUNCH&1!PLOTTER&1!LPT&1!CDR&1
|
||||
|
||||
JSPLT= 1000 /PLOTTER DONE
|
||||
JSCDR= 400 /CHARACTER IN CDR BUFFER
|
||||
JSCRNR= 200 /CDR NOT READY
|
||||
JSCREF= 100 /CDR END FILE
|
||||
JSDTC= 4 /DECTAPE CONTROLLER FLAG
|
||||
JSDTE= 2 /DT ERROR FLAG
|
||||
JSDTF= 1 /DT DONE FLAG
|
||||
|
||||
JOBWMK= 2+STR2 /WAIT MASK
|
||||
JOBSRA= JOBWMK+1+STR2 /JOB RESTART ADDRESS
|
||||
JOBERR= JOBSRA+1 /JOB ERROR RESTART ADDRESS
|
||||
JOBLNK= JOBERR+1 /IOT LINKAGE
|
||||
JOBSWR= JOBLNK+1 /SWITCH REGISTER
|
||||
JOBREG= JOBSWR+1 /PC, AC, & LINK (W/MODE, GT, & SC)
|
||||
JOBEAE= JOBREG+3 /MQ REGISTER
|
||||
JOBACT= JOBEAE+1 /USER'S ACCOUNT #
|
||||
JOBRTM= JOBACT+1 /LOW ORDER RUN TIME
|
||||
JOBRTH= JOBRTM+1 /HIGH ORDER RUN TIME
|
||||
JOBF0= JOBRTH+1 /POINTER TO FILE 0 CONTROL
|
||||
JOBF1= JOBF0+1 /POINTER TO FILE 1 CONTROL
|
||||
JOBF2= JOBF1+1 /POINTER TO FILE 2 CONTROL
|
||||
JOBF3= JOBF2+1 /POINTER TO FILE 3 CONTROL
|
||||
JOBSTB= JOBF3+1 /DECTAPE STATUS REGISTER B
|
||||
|
||||
/TUNING PARAMETERS
|
||||
|
||||
MAXBUF= 10 /MAXIMUM PERMITTED # OF OUTPUT BUFFERS
|
||||
MINBUF= 3 /RESTART JOB WHEN ONLY MINBUF BUFFERS ARE STILL FULL
|
||||
|
||||
/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
|
||||
|
||||
FSWP= 4000 /SWAP REQUEST
|
||||
LOCK= 2000 /LOCK IN CORE
|
||||
NOTRUN= 1000 /HAS NOT BEEN SCHEDULED TO RUN
|
||||
FIP= 400 /FILE PHANTOM (NOTE: FIP HAS BEEN ASSUMED EQUAL TO SEGISZ)
|
||||
SI= 200 /SYSTEM COMMAND INTERPRETER PHANTOM
|
||||
FIX= 100 /JUST FINISHED DISC TRANSFER
|
||||
/BITS 7-11 CONTAIN THE JOB #
|
||||
|
||||
/FIP TABLE DEFINITIONS
|
||||
|
||||
SATSIZ= 530
|
||||
ENTABL= 5600
|
||||
UTABLE= ENTABL+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX
|
||||
RTABLE= UTABLE+JOBMAX+JOBMAX+JOBMAX+JOBMAX
|
||||
SIDATA=20 /SYSTEM INTERPRETER DATA
|
||||
*SIDATA
|
||||
|
||||
COMPTR, . /POINTER TO LAST DEVTBL ENTRY SCANNED. INITIALIZE TO DEVTBL-1
|
||||
SIBUF, . /BUFFER STATE
|
||||
SICNT, .
|
||||
COMDSP, . /FIP RETURN DISPATCH
|
||||
SIFLG, . /COMMAND FLAGS
|
||||
SICHAR, . /SAVE LAST CHAR FROM COMMAND SCAN
|
||||
SIREG, . /USER AC, LINK, PC
|
||||
.
|
||||
.
|
||||
TTCHAR, . /TTY CHARACTER
|
||||
|
||||
CONSTANTS=SIDATA+12
|
||||
*CONSTANTS
|
||||
C0002, 2
|
||||
C0003, 3
|
||||
C0004, 4
|
||||
C0007, 7
|
||||
C0037, 37
|
||||
C0100, 100
|
||||
C1000, 1000
|
||||
C7770, 7770
|
||||
|
||||
JOBCON=CONSTANTS+11 /JOB CONTROL
|
||||
*JOBCON
|
||||
|
||||
JOBTIM, . /-#TICKS REMAINING TO RUN
|
||||
JOBTBA, JOBTBL /JOB TABLE ADDRESS
|
||||
|
||||
FRSTOR=JOBCON+3
|
||||
*FRSTOR
|
||||
|
||||
FREE, . /POINTER TO HEAD OF FREE STORAGE
|
||||
FRECNT, . /# FREE BLOCKS AVAILABLE
|
||||
TIMDAT= FRSTOR+2 /CLOCK AND DATE
|
||||
*TIMDAT
|
||||
|
||||
/CLOCK
|
||||
CLK2, .
|
||||
CLK1, .
|
||||
|
||||
SCHDAT=TIMDAT+2
|
||||
*SCHDAT /SCHEDULING DATA
|
||||
|
||||
COMCNT, . /NUMBER OF COMMANDS WAITING EXECUTION
|
||||
SQREQ, . /SWAP REQUEST FLAG
|
||||
FINISH, . /+(I)-(O) FIELD OF JOB BEING SWAPPED
|
||||
FIT, . /JOB # TO BE SWAPPED IN
|
||||
FORCE, . /FIELD TO BE SWAPPED OUT
|
||||
|
||||
DATEND= 60 /END OF FIELD 0 PAGE 0 DATA
|
||||
|
||||
FIPDAT=156 /DATA REFERENCED BY FIP
|
||||
*FIPDAT
|
||||
|
||||
C0400, 400
|
||||
IFNZRO WRDSEG-400 <GLITCH>
|
||||
SEGSIZ= C0400 /WRDSEG
|
||||
FIBASE, SWDEX+JOBMAX /BASE ADDRESS OF ALLOCATABLE DISC STORAGE
|
||||
JOB, . /# OF CURRENT JOB
|
||||
JOBDAT, . /ADDRESS OF CURRENT JOB DATA LIST. MUST RESIDE IN DATA FIELD.
|
||||
CORTBA, CORTBL-1 /CORE ALLOCATION TABLE
|
||||
DEVTBA, DEVTBL /DEVICE TABLE
|
||||
DSUTBA, DSUTBL /USER DISC REQUEST QUEUE
|
||||
DSBUSY, . /DISC BUSY COUNT
|
||||
|
||||
/THE DATE IS KEPT AS A 12 BIT NUMBER IN THE FORMAT
|
||||
/DATE=((YEAR-1974)*12+(MONTH-1))*31+DAY-1
|
||||
|
||||
DATE, .
|
||||
FISUBR=FIPDAT+11 /INST FIELD INDEPENDENT SUBROUTINES
|
||||
*FISUBR
|
||||
|
||||
FISUBL=400
|
||||
|
||||
BLT0= FISUBL+1200
|
||||
BLTA, BLT0 /BLOCK TRANSFER
|
||||
BLT= JMS I Z BLTA
|
||||
CORSRA, CORSRC
|
||||
CORE= JMS I CORSRA
|
||||
GETBA, GETB
|
||||
GETBLK= JMS I GETBA
|
||||
GETDBA, GETDB0 /GET A DATA BLOCK
|
||||
GETDDB= JMS I GETDBA
|
||||
TOFA, TOF /FETCH CHARACTER
|
||||
FETCH= JMS I Z TOFA
|
||||
GETJT0, GETJTB /GET JOB DATA TABLE ADDRESS
|
||||
GETJTA= JMS I Z GETJT0
|
||||
GIRSCA, GIRSC /STORE CHARACTER IN BUFFER
|
||||
STORE= JMS I Z GIRSCA
|
||||
RETBA, RETB /RETURN BLOCK TO FREE STORAGE
|
||||
RETBLK= JMS I Z RETBA
|
||||
WAITA, WSCHED
|
||||
WAIT= JMP I WAITA
|
||||
|
||||
/TABLES
|
||||
IFNZRO CPU-3 <
|
||||
DATA= 7100 /START OF FIELD 0 TABLES AND BUFFERS
|
||||
>
|
||||
|
||||
IFZERO CPU-3 <
|
||||
DATA= 7200 /IF DC02 THERE LEAVE ROOM FOR THE CODE
|
||||
>
|
||||
CORTBL= DATA /CORE ASSIGNMENT TABLE
|
||||
L2QTB= CORTBL+7
|
||||
IFZERO D680-2 <
|
||||
T8OBF= L2QTB+20 /TTY CHAR OUT BUFFER 1. # LINES
|
||||
T8OBF2= T8OBF+NULINE /TTY CHAR OUT BUFFER 2. # LINES
|
||||
T8IBF= T8OBF2+NULINE /TTY CHAR IN BUFFER. 2*# LINES
|
||||
T8IN= T8IBF+NULINE+NULINE /TTI LIST. 4*#LINES+1
|
||||
TYBEND= T8IN+NULINE+NULINE+NULINE+NULINE+1
|
||||
>
|
||||
IFZERO D680 <
|
||||
TIBUFF= L2QTB+20 /TTY INPUT BUFFER. # LINES
|
||||
TOBUFF= TIBUFF+NULINE+1 /TTY OUTPUT BUFFER. # LINES
|
||||
TIDEV= TOBUFF+NULINE+1 /DEVICE CODES (INPUT)
|
||||
IFNZRO CPU-3 <
|
||||
TODEV= TIDEV+NULINE+1 /DEVICE CODES (OUTPUT)
|
||||
TYBEND= TODEV+NULINE+1
|
||||
>
|
||||
|
||||
IFZERO CPU-3 <
|
||||
TODEV= TIDEV+1
|
||||
TYBEND= TODEV+1
|
||||
>
|
||||
>
|
||||
|
||||
IFZERO TC01 <DTASIZ=0> /SIZE OF DTA CODE+BUFFERS
|
||||
IFZERO TC01-1 <DTASIZ=1400>
|
||||
|
||||
IFZERO D689 <D689SIZ=0> /SIZE OF 689AG CODE
|
||||
IFZERO D689-4 <D689SIZ=200>
|
||||
|
||||
PTRSIZ= 200
|
||||
PTPSIZ= 200
|
||||
PTPBUF= 200 /START OF DEVICE BUFFERS
|
||||
PTRBUF= PTPBUF+PTPSIZ
|
||||
DTBUF1= PTRBUF+PTRSIZ
|
||||
DTBUF2= DTBUF1+201
|
||||
|
||||
DATFLD=6211 /MONITOR DATA FIELD SELECT
|
||||
|
||||
IFZERO EAE-20 <MQREG=1>
|
||||
IFZERO EAE <IFZERO CPU-2 <MQREG=1>
|
||||
IFNZRO CPU-2 <MQREG=0>>
|
||||
/SUPER CRITICAL LOCATIONS
|
||||
/THESE LOCATIONS ARE USED TO LINK TS8 AND TS8II
|
||||
|
||||
/IT MAY BE NECESSARY TO ADJUST THEM ACCORDINGLY
|
||||
|
||||
/DEFINED IN TS8:
|
||||
|
||||
BLT0= 1600
|
||||
CORSRC= 1302 /SEARCH CORE TABLE
|
||||
DATE= 166
|
||||
DISMI0= 300 /DISMIS
|
||||
DTINT= 273 /DECTAPE SLOT IN INTERRUPT CHAIN
|
||||
IFNZRO CPU-3 <DTL20= 2375>
|
||||
IFZERO CPU-3 <DTL20= 6575>
|
||||
GETB= 1400 /GET A BLOCK OF FREE CORE
|
||||
GETDB0= 1451 /GET A DDB
|
||||
GETJTB= 6600 /GETJTA
|
||||
GIRSC= 404 /STORE A CHARACTER
|
||||
GIR00= 6013 /ENTRY TO GIR (GENERAL INPUT ROUTINE)
|
||||
INTCOM= 5770 /COMPLETION OF INTERRUPT CODE
|
||||
L2EXIT= 354 /LEAVE LEVEL 2
|
||||
L2SV0= 104 /LEVEL 2 SAVED PC
|
||||
OVERLA= 2175 /FILE STUFF
|
||||
OVRLA1= 0576
|
||||
NFSEGS= 5333 /NUMBER OF FREE DISC SEGMENTS
|
||||
PTPEMP= 7420 /PTP BUFFER EMPTY PTR
|
||||
PTPFIL= 7457 /PTP BUFFER FILL PTR
|
||||
IFZERO D680 <PTP1= 211> /IOTS TO BE OVERLAYED
|
||||
IFZERO D680-2 <PTP1= 234>
|
||||
PTP2= 7477
|
||||
PTP3= 7531
|
||||
PTP4= 7533
|
||||
PTP5= 7537
|
||||
READFI= 3604 /MORE FILE STUFF
|
||||
RELOAD= 3400 /AUTOMATIC SYSTEM RESTART
|
||||
RETB= 600 /RETURN A BLOCK TO FREE CORE
|
||||
SOURCE= 112 /CHARACTER SOURCE FOR GIR
|
||||
T8K9= 6402
|
||||
T8LC= 6401
|
||||
T8MNC= 6400 /DC08 COMMON STORAGE LOCATIONS
|
||||
UUDF= 151 /USER DATA FIELD SELECT
|
||||
UUOERR= 5172
|
||||
UUOEX1= 326 /UUO (RESIDENT IOT HANDLERS) EXIT
|
||||
WSCHED= 2455 /ADDRESS FOR WAIT
|
||||
|
||||
/DEFINED IN TS8II
|
||||
|
||||
DTBST1= 32 /DT BUFFER 1 STATUS
|
||||
DTL21= PTRSIZ+PTPSIZ+DTASIZ /DT LEVEL 2 DISPATCH
|
||||
FIPBLK= 7720 /FIXED BLOCK FOR FIP I/O
|
||||
F1OFFJ= 151 /FOR OFF /ON COMMANDS USED BY SI
|
||||
UDTXA= DTL21-400 /DT UUO SERVICE
|
||||
UPTIM1= 174 /UPTIME COUNTER IN FIELD 1
|
||||
UPTIM2= 173
|
||||
WINBAS= 7730 /ADDRESS OF THE BASIC WINDOW
|
||||
|
||||
IFNZRO CPU-3 <
|
||||
DTL11= DTL21+1 /DT LEVEL 1 DISPATCH
|
||||
>
|
||||
|
||||
IFZERO CPU-3 <
|
||||
DTL11= DTL21+1+1 /DT LEVEL 1 DISPATCH; TO ALLOW FOR DISPLAY CHARACTERS
|
||||
>
|
||||
TOF= DTL21+200 /FETCH A CHARACTER
|
||||
BUFTST= TOF+116
|
||||
CRASH= TOF+200
|
||||
CNTRLC= CRASH+1 /DECTAPE CTRL/C HANDLER
|
||||
BRKTST= CRASH+105
|
||||
TIMER0= CRASH+200
|
||||
UPEEK1= TIMER0+100
|
||||
DFINT1= UPEEK1+34
|
||||
SWK1= UPEEK1+D689SIZ+100
|
||||
IFNZRO CPU-3 <DATA1= SWK1+200>
|
||||
|
||||
IFZERO CPU-3 <
|
||||
PDPBAS= SWK1
|
||||
DATA1= PDPBAS+1000
|
||||
PDPEXT= PDPBAS
|
||||
PDPIDE= PDPEXT+2
|
||||
DSCX= PDPBAS&6000+1
|
||||
>
|
||||
DEVCHK= DATA1-200
|
||||
KSFPRA= DATA1-100
|
||||
DEVTBL= DATA1
|
||||
DEVTBE= DEVTBL+NULINE+NULINE+2
|
||||
JOBTBL= DEVTBE+16
|
||||
CLKTBL= JOBTBL+JOBMAX+1
|
||||
TTYTBL= CLKTBL+JOBMAX+1
|
||||
PRGTBL= TTYTBL+JOBMAX+1
|
||||
DSUTBL= PRGTBL+JOBMAX+JOBMAX+JOBMAX
|
||||
|
||||
AUTOST= 4201 /SYSTEM RESTART ADDRESS IN INIT
|
||||
|
||||
/// END OF PARAMETERS & COMMON DATA
|
||||
|
||||
95
tss8.23/orig/PHAM.PA
Normal file
95
tss8.23/orig/PHAM.PA
Normal file
@ -0,0 +1,95 @@
|
||||
/TSS/8 CONFIGURATION FOR UWM
|
||||
/CONFIGURATION PARAMETERS FOR THE TSS/8 MONITOR
|
||||
/COPYRIGHT 1971
|
||||
/DIGITAL EQUIPMENT CORP. -MAYNARD, MASS
|
||||
/
|
||||
/TSS/8 PDP-8/E HARDWARE OPTIONS
|
||||
/THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON
|
||||
/WHICH THIS TSS/8 MONITOR WILL BE RUN
|
||||
/FOR EACH STATEMENT THE COMMENT INDICATES THE
|
||||
/POSSIBLE RESPONSES
|
||||
|
||||
CPU= 2 /0 IF CPU IS PDP-8/I; 1 IF PDP-8
|
||||
/ 2 IF PDP-8/E; 3 IF PDP-12
|
||||
|
||||
EAE= 0 /20 IF CPU INCLUDES EAE; 0 IF NOT
|
||||
|
||||
CORMEM= 30 /HIGHEST DATA FIELD SELECT; FOR 12K SYS,
|
||||
/ RESPOND 20; FOR 16K, RESPOND 30; FOR 32K, 70
|
||||
|
||||
D680= 0 /2 IF TTY INTERFACING IS 680 OR DC08;
|
||||
/ 0 IF TTY INTERFACING IS PT08'S
|
||||
|
||||
D689= 0 /4 IF 680 OR DC08 INCLUDES 689 OR DC08F;
|
||||
/ 0 IF IT DOESN'T OR TTY INTERFACING IS PT08'S
|
||||
|
||||
RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF RF08
|
||||
|
||||
RS08= 1 /# OF DISCS IN SYSTEM, WHETHER RF08 OR DF32
|
||||
|
||||
RK8E= 0 /# OF RK8E DRIVES; ONLY FIRST IS USED FOR SYSTEM
|
||||
/ THE REMAINDER ARE TREATED AS PERIPHERALS
|
||||
|
||||
READER= 0 /1 IF SYSTEM INCLUDES HIGH-SPEED READER; 0 IF NOT
|
||||
|
||||
PUNCH= 0 /1 IF SYS HAS HSP, 0 IF NOT
|
||||
|
||||
TC01= 1 /1 IF SYS HAS DECTAPES; 0 IF NOT
|
||||
|
||||
TU55= 0 /1 IF SYSTEM INCLUDES MORE THAN TWO DECTAPES
|
||||
/ 0 IF 0, 1, OR 2 DRIVES
|
||||
|
||||
TD8E= 0 /1 IF TD8E DECTAPES AVAILABLE FOR LOADING & DUMPING
|
||||
/ 0 IF NOT; NOTE THAT TD8E TAPES CANNOT BE USED UNDER
|
||||
/ TSS/8, THEY REQUIRE CONTINUOUS CPU ATTENTION
|
||||
|
||||
PLOTTER=0 /NO SYSTEMS CAN HAVE PLOTTER
|
||||
|
||||
LPT= 2 /0 IF NO PRINTER ON SYS; 1 IF LP08; 2 IF LS8E
|
||||
|
||||
CDR= 0 /NO SYS CAN HAVE CARD READER
|
||||
/
|
||||
/MONITOR OPTIONS
|
||||
/FILL IN THE FOLLOWING LINES TO INDICATE THE
|
||||
/MONITOR CAPACITY FOR THIS SYSTEM
|
||||
|
||||
DECIMAL
|
||||
JOBMAX= 6 /NUMBER OF SIMULTANEOUS USERS (.LE. 20)
|
||||
|
||||
NULINE= 15 /NUMBER OF TTYS TO BE ATTACHED TO SYS.
|
||||
/ SIMULTANEOUSLY, NOT COUNTING CONSOLE (.LE. 19)
|
||||
/ GENERALLY .GE. JOBMAX; IF SYS. USES 680 OR DC08,
|
||||
/ NULINE MUST BE A MULTIPLE OF 5 (FIVE); IF CPU IS
|
||||
/ A PDP-12, NULINE MUST BE MULTIPLE OF 8 (EIGHT)
|
||||
|
||||
TRUKBD= 5 /NUMBER OF ACTUAL KEYBOARDS ON SYSTEM (NOT COUNTING
|
||||
/ CONSOLE TTY). THIS MUST BE .LE. NULINE; NULINE
|
||||
/ MAY INCLUDE DUMMY TERMINALS, THIS MAY NOT.
|
||||
|
||||
FRCMAX= TRUKBD /THE HIGHEST KEYBOARD # A '00XX' ACCT # MAY FORCE
|
||||
/ NOTE THAT A '000X' ACCOUNT MAY FORCE UP TO 'NULINE'
|
||||
|
||||
TLKMAX= TRUKBD /THE HIGHEST KEYBOARD # WHICH MAY BE 'TALK'ED TO
|
||||
|
||||
BRDMAX= TRUKBD /THE HIGHEST KEYBOARD WHICH WILL RECEIVE BROADCASTS
|
||||
OCTAL
|
||||
|
||||
DTAMIN= 0 /THE FIRST DECTAPE DRIVE WHICH WILL BE ASSIGNED
|
||||
/ FOR 'ASSIGN D' COMMAND; NORMALLY =0, BUT MAY
|
||||
/ VARY FOR SLIGHTLY RESTRICTED DRIVE USE.
|
||||
|
||||
BILLNG= 7 /THE ACCOUNT NUMBER OF THE BILLING SYSTEM
|
||||
/ 0, IF NO BILLING SYSTEM USED
|
||||
/
|
||||
/SYSTEM CONSTANTS
|
||||
|
||||
QUANT= -2 /NUMBER OF SYSTEM TICKS PER TIME SLICE (-)
|
||||
SWDEX= 5 /DISC TRACK OF FIRST SWAP AREA
|
||||
TTYEVEN=1 /1 INDICATES PARITY TTY MAY BE USED WITH SYS
|
||||
/ 0 ALLOWS ONLY DEC MODIFIED TTYS
|
||||
INFLD= 20 /FIELD SELECT THAT 'INIT' SHOULD BE BOOTED INTO
|
||||
/ MAKING IT 20 AVOIDS PROBLEMS SHOULD A
|
||||
/ FIELD NEED REPAIR & SYSTEM IS RUN ON 12K
|
||||
|
||||
/// END OF SYSTEM CONFIGURATION PARAMETERS
|
||||
|
||||
95
tss8.23/orig/PHAM20.PA
Normal file
95
tss8.23/orig/PHAM20.PA
Normal file
@ -0,0 +1,95 @@
|
||||
/TSS/8 CONFIGURATION FOR UWM
|
||||
/CONFIGURATION PARAMETERS FOR THE TSS/8 MONITOR
|
||||
/COPYRIGHT 1971
|
||||
/DIGITAL EQUIPMENT CORP. -MAYNARD, MASS
|
||||
/
|
||||
/TSS/8 PDP-8/E HARDWARE OPTIONS
|
||||
/THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON
|
||||
/WHICH THIS TSS/8 MONITOR WILL BE RUN
|
||||
/FOR EACH STATEMENT THE COMMENT INDICATES THE
|
||||
/POSSIBLE RESPONSES
|
||||
|
||||
CPU= 2 /0 IF CPU IS PDP-8/I; 1 IF PDP-8
|
||||
/ 2 IF PDP-8/E; 3 IF PDP-12
|
||||
|
||||
EAE= 0 /20 IF CPU INCLUDES EAE; 0 IF NOT
|
||||
|
||||
CORMEM= 30 /HIGHEST DATA FIELD SELECT; FOR 12K SYS,
|
||||
/ RESPOND 20; FOR 16K, RESPOND 30; FOR 32K, 70
|
||||
|
||||
D680= 0 /2 IF TTY INTERFACING IS 680 OR DC08;
|
||||
/ 0 IF TTY INTERFACING IS PT08'S
|
||||
|
||||
D689= 0 /4 IF 680 OR DC08 INCLUDES 689 OR DC08F;
|
||||
/ 0 IF IT DOESN'T OR TTY INTERFACING IS PT08'S
|
||||
|
||||
RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF RF08
|
||||
|
||||
RS08= 1 /# OF DISCS IN SYSTEM, WHETHER RF08 OR DF32
|
||||
|
||||
RK8E= 0 /# OF RK8E DRIVES; ONLY FIRST IS USED FOR SYSTEM
|
||||
/ THE REMAINDER ARE TREATED AS PERIPHERALS
|
||||
|
||||
READER= 0 /1 IF SYSTEM INCLUDES HIGH-SPEED READER; 0 IF NOT
|
||||
|
||||
PUNCH= 0 /1 IF SYS HAS HSP, 0 IF NOT
|
||||
|
||||
TC01= 1 /1 IF SYS HAS DECTAPES; 0 IF NOT
|
||||
|
||||
TU55= 0 /1 IF SYSTEM INCLUDES MORE THAN TWO DECTAPES
|
||||
/ 0 IF 0, 1, OR 2 DRIVES
|
||||
|
||||
TD8E= 0 /1 IF TD8E DECTAPES AVAILABLE FOR LOADING & DUMPING
|
||||
/ 0 IF NOT; NOTE THAT TD8E TAPES CANNOT BE USED UNDER
|
||||
/ TSS/8, THEY REQUIRE CONTINUOUS CPU ATTENTION
|
||||
|
||||
PLOTTER=0 /NO SYSTEMS CAN HAVE PLOTTER
|
||||
|
||||
LPT= 0 /0 IF NO PRINTER ON SYS; 1 IF LP08; 2 IF LS8E
|
||||
|
||||
CDR= 0 /NO SYS CAN HAVE CARD READER
|
||||
/
|
||||
/MONITOR OPTIONS
|
||||
/FILL IN THE FOLLOWING LINES TO INDICATE THE
|
||||
/MONITOR CAPACITY FOR THIS SYSTEM
|
||||
|
||||
DECIMAL
|
||||
JOBMAX= 20 /NUMBER OF SIMULTANEOUS USERS (.LE. 20)
|
||||
|
||||
NULINE= 19 /NUMBER OF TTYS TO BE ATTACHED TO SYS.
|
||||
/ SIMULTANEOUSLY, NOT COUNTING CONSOLE (.LE. 19)
|
||||
/ GENERALLY .GE. JOBMAX; IF SYS. USES 680 OR DC08,
|
||||
/ NULINE MUST BE A MULTIPLE OF 5 (FIVE); IF CPU IS
|
||||
/ A PDP-12, NULINE MUST BE MULTIPLE OF 8 (EIGHT)
|
||||
|
||||
TRUKBD= 4 /NUMBER OF ACTUAL KEYBOARDS ON SYSTEM (NOT COUNTING
|
||||
/ CONSOLE TTY). THIS MUST BE .LE. NULINE; NULINE
|
||||
/ MAY INCLUDE DUMMY TERMINALS, THIS MAY NOT.
|
||||
|
||||
FRCMAX= TRUKBD /THE HIGHEST KEYBOARD # A '00XX' ACCT # MAY FORCE
|
||||
/ NOTE THAT A '000X' ACCOUNT MAY FORCE UP TO 'NULINE'
|
||||
|
||||
TLKMAX= TRUKBD /THE HIGHEST KEYBOARD # WHICH MAY BE 'TALK'ED TO
|
||||
|
||||
BRDMAX= TRUKBD /THE HIGHEST KEYBOARD WHICH WILL RECEIVE BROADCASTS
|
||||
OCTAL
|
||||
|
||||
DTAMIN= 0 /THE FIRST DECTAPE DRIVE WHICH WILL BE ASSIGNED
|
||||
/ FOR 'ASSIGN D' COMMAND; NORMALLY =0, BUT MAY
|
||||
/ VARY FOR SLIGHTLY RESTRICTED DRIVE USE.
|
||||
|
||||
BILLNG= 7 /THE ACCOUNT NUMBER OF THE BILLING SYSTEM
|
||||
/ 0, IF NO BILLING SYSTEM USED
|
||||
/
|
||||
/SYSTEM CONSTANTS
|
||||
|
||||
QUANT= -2 /NUMBER OF SYSTEM TICKS PER TIME SLICE (-)
|
||||
SWDEX= 5 /DISC TRACK OF FIRST SWAP AREA
|
||||
TTYEVEN=1 /1 INDICATES PARITY TTY MAY BE USED WITH SYS
|
||||
/ 0 ALLOWS ONLY DEC MODIFIED TTYS
|
||||
INFLD= 20 /FIELD SELECT THAT 'INIT' SHOULD BE BOOTED INTO
|
||||
/ MAKING IT 20 AVOIDS PROBLEMS SHOULD A
|
||||
/ FIELD NEED REPAIR & SYSTEM IS RUN ON 12K
|
||||
|
||||
/// END OF SYSTEM CONFIGURATION PARAMETERS
|
||||
|
||||
BIN
tss8.23/orig/PIP2.SV
Normal file
BIN
tss8.23/orig/PIP2.SV
Normal file
Binary file not shown.
4
tss8.23/orig/SCAN.TE
Normal file
4
tss8.23/orig/SCAN.TE
Normal file
@ -0,0 +1,4 @@
|
||||
|
||||
!LOOP!1J :<GLITCH><GLITCH; *.-1> "L OLOOP'
|
||||
:N Z"N OLOOP' EF
|
||||
|
||||
1
tss8.23/orig/SI.CM
Normal file
1
tss8.23/orig/SI.CM
Normal file
@ -0,0 +1 @@
|
||||
SI<UWM,PARAM,SI (WKE)
|
||||
4263
tss8.23/orig/SI.PA
Normal file
4263
tss8.23/orig/SI.PA
Normal file
File diff suppressed because it is too large
Load Diff
74
tss8.23/orig/TEST.BI
Normal file
74
tss8.23/orig/TEST.BI
Normal file
@ -0,0 +1,74 @@
|
||||
$JOB TEST TSS/8 CONFIGURATIONS
|
||||
$MSG MT TSS/8 #1 & #2 ON D1 & D2
|
||||
.R PIP
|
||||
*DSK:<DSK: (OS)
|
||||
.R FOTP
|
||||
*DSK:<DTA2:TEST.0?,DTA1:PARAM.PA,SI.PA
|
||||
$MSG
|
||||
$MSG MAX PDP-8/E SYSTEM -- SI.01
|
||||
.PAL SI.01<TEST.01,PARAM,SI (WKE)
|
||||
$MSG MAX PDP-8/I SYSTEM, W/D680 & D689 -- SI.02
|
||||
.PAL SI.02<TEST.02,PARAM,SI (WKE)
|
||||
$MSG MAX PDP-12 SYSTEM -- SI.03
|
||||
.PAL SI.03<TEST.03,PARAM,SI (WKE)
|
||||
$MSG MAX PDP-8 SYSTEM, W/PT08 -- SI.04
|
||||
.PAL SI.04<TEST.04,PARAM,SI (WKE)
|
||||
.R PIP
|
||||
*SI.PA/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*FIP.PA<DTA1:FIP.PA
|
||||
$MSG
|
||||
$MSG -- FIP.01
|
||||
.PAL FIP.01<TEST.01,PARAM,FIP (WKE)
|
||||
$MSG -- FIP.02
|
||||
.PAL FIP.02<TEST.02,PARAM,FIP (WKE)
|
||||
$MSG -- FIP.03
|
||||
.PAL FIP.03<TEST.03,PARAM,FIP (WKE)
|
||||
$MSG -- FIP.04
|
||||
.PAL FIP.04<TEST.04,PARAM,FIP (WKE)
|
||||
.R PIP
|
||||
*FIP.PA/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*INIT.PA<DTA1:INIT.PA
|
||||
$MSG TSS/8 #1 (D1) FREE
|
||||
$MSG
|
||||
$MSG -- INIT.01
|
||||
.PAL INIT.01<TEST.01,PARAM,INIT (WKE)
|
||||
$MSG -- INIT.02
|
||||
.PAL INIT.02<TEST.02,PARAM,INIT (WKE)
|
||||
$MSG -- INIT.03
|
||||
.PAL INIT.03<TEST.03,PARAM,INIT (WKE)
|
||||
$MSG -- INIT.04
|
||||
.PAL INIT.04<TEST.04,PARAM,INIT (WKE)
|
||||
.R PIP
|
||||
*INIT.PA/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*TS8.PA<DTA2:TS8.PA
|
||||
$MSG
|
||||
$MSG -- TS8.01
|
||||
.PAL TS8.01<TEST.01,PARAM,TS8 (WKE)
|
||||
$MSG -- TS8.02
|
||||
.PAL TS8.02<TEST.02,PARAM,TS8 (WKE)
|
||||
$MSG -- TS8.03
|
||||
.PAL TS8.03<TEST.03,PARAM,TS8 (WKE)
|
||||
$MSG -- TS8.04
|
||||
.PAL TS8.04<TEST.04,PARAM,TS8 (WKE)
|
||||
.R PIP
|
||||
*TS8.PA/D<
|
||||
*DSK:<DSK: (OS)
|
||||
*TS8II.PA<DTA2:TS8II.PA
|
||||
$MSG
|
||||
$MSG -- TS8II.01
|
||||
.PAL TS8II.01<TEST.01,PARAM,TS8II (WKE)
|
||||
$MSG -- TS8II.02
|
||||
.PAL TS8II.02<TEST.02,PARAM,TS8II (WKE)
|
||||
$MSG -- TS8II.03
|
||||
.PAL TS8II.03<TEST.03,PARAM,TS8II (WKE)
|
||||
$MSG -- TS8II.04
|
||||
.PAL TS8II.04<TEST.04,PARAM,TS8II (WKE)
|
||||
.R FOTP
|
||||
*TEST.0?,PARAM.PA,TS8II.PA /D
|
||||
.R PIP
|
||||
*DSK:<DSK: (OS)
|
||||
$END
|
||||
|
||||
1
tss8.23/orig/TS8.CM
Normal file
1
tss8.23/orig/TS8.CM
Normal file
@ -0,0 +1 @@
|
||||
TS8<UWM,PARAM,TS8 (WKE)
|
||||
5837
tss8.23/orig/TS8.PA
Normal file
5837
tss8.23/orig/TS8.PA
Normal file
File diff suppressed because it is too large
Load Diff
1
tss8.23/orig/TS8II.CM
Normal file
1
tss8.23/orig/TS8II.CM
Normal file
@ -0,0 +1 @@
|
||||
TS8II<UWM,PARAM,TS8II (WKE)
|
||||
2421
tss8.23/orig/TS8II.PA
Normal file
2421
tss8.23/orig/TS8II.PA
Normal file
File diff suppressed because it is too large
Load Diff
95
tss8.23/orig/UWM.PA
Normal file
95
tss8.23/orig/UWM.PA
Normal file
@ -0,0 +1,95 @@
|
||||
/TSS/8 CONFIGURATION FOR UWM
|
||||
/CONFIGURATION PARAMETERS FOR THE TSS/8 MONITOR
|
||||
/COPYRIGHT 1971
|
||||
/DIGITAL EQUIPMENT CORP. -MAYNARD, MASS
|
||||
/
|
||||
/TSS/8 PDP-8/E HARDWARE OPTIONS
|
||||
/THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON
|
||||
/WHICH THIS TSS/8 MONITOR WILL BE RUN
|
||||
/FOR EACH STATEMENT THE COMMENT INDICATES THE
|
||||
/POSSIBLE RESPONSES
|
||||
|
||||
CPU= 2 /0 IF CPU IS PDP-8/I; 1 IF PDP-8
|
||||
/ 2 IF PDP-8/E; 3 IF PDP-12
|
||||
|
||||
EAE= 0 /20 IF CPU INCLUDES EAE; 0 IF NOT
|
||||
|
||||
CORMEM= 30 /HIGHEST DATA FIELD SELECT; FOR 12K SYS,
|
||||
/ RESPOND 20; FOR 16K, RESPOND 30; FOR 32K, 70
|
||||
|
||||
D680= 0 /2 IF TTY INTERFACING IS 680 OR DC08;
|
||||
/ 0 IF TTY INTERFACING IS PT08'S
|
||||
|
||||
D689= 0 /4 IF 680 OR DC08 INCLUDES 689 OR DC08F;
|
||||
/ 0 IF IT DOESN'T OR TTY INTERFACING IS PT08'S
|
||||
|
||||
RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF RF08
|
||||
|
||||
RS08= 1 /# OF DISCS IN SYSTEM, WHETHER RF08 OR DF32
|
||||
|
||||
RK8E= 0 /# OF RK8E DRIVES; ONLY FIRST IS USED FOR SYSTEM
|
||||
/ THE REMAINDER ARE TREATED AS PERIPHERALS
|
||||
|
||||
READER= 1 /1 IF SYSTEM INCLUDES HIGH-SPEED READER; 0 IF NOT
|
||||
|
||||
PUNCH= 1 /1 IF SYS HAS HSP, 0 IF NOT
|
||||
|
||||
TC01= 1 /1 IF SYS HAS DECTAPES; 0 IF NOT
|
||||
|
||||
TU55= 0 /1 IF SYSTEM INCLUDES MORE THAN TWO DECTAPES
|
||||
/ 0 IF 0, 1, OR 2 DRIVES
|
||||
|
||||
TD8E= 0 /1 IF TD8E DECTAPES AVAILABLE FOR LOADING & DUMPING
|
||||
/ 0 IF NOT; NOTE THAT TD8E TAPES CANNOT BE USED UNDER
|
||||
/ TSS/8, THEY REQUIRE CONTINUOUS CPU ATTENTION
|
||||
|
||||
PLOTTER=0 /NO SYSTEMS CAN HAVE PLOTTER
|
||||
|
||||
LPT= 2 /0 IF NO PRINTER ON SYS; 1 IF LP08; 2 IF LS8E
|
||||
|
||||
CDR= 0 /NO SYS CAN HAVE CARD READER
|
||||
/
|
||||
/MONITOR OPTIONS
|
||||
/FILL IN THE FOLLOWING LINES TO INDICATE THE
|
||||
/MONITOR CAPACITY FOR THIS SYSTEM
|
||||
|
||||
DECIMAL
|
||||
JOBMAX= 10 /NUMBER OF SIMULTANEOUS USERS (.LE. 20)
|
||||
|
||||
NULINE= 15 /NUMBER OF TTYS TO BE ATTACHED TO SYS.
|
||||
/ SIMULTANEOUSLY, NOT COUNTING CONSOLE (.LE. 19)
|
||||
/ GENERALLY .GE. JOBMAX; IF SYS. USES 680 OR DC08,
|
||||
/ NULINE MUST BE A MULTIPLE OF 5 (FIVE); IF CPU IS
|
||||
/ A PDP-12, NULINE MUST BE MULTIPLE OF 8 (EIGHT)
|
||||
|
||||
TRUKBD= 9 /NUMBER OF ACTUAL KEYBOARDS ON SYSTEM (NOT COUNTING
|
||||
/ CONSOLE TTY). THIS MUST BE .LE. NULINE; NULINE
|
||||
/ MAY INCLUDE DUMMY TERMINALS, THIS MAY NOT.
|
||||
|
||||
FRCMAX= TRUKBD /THE HIGHEST KEYBOARD # A '00XX' ACCT # MAY FORCE
|
||||
/ NOTE THAT A '000X' ACCOUNT MAY FORCE UP TO 'NULINE'
|
||||
|
||||
TLKMAX= TRUKBD /THE HIGHEST KEYBOARD # WHICH MAY BE 'TALK'ED TO
|
||||
|
||||
BRDMAX= TRUKBD /THE HIGHEST KEYBOARD WHICH WILL RECEIVE BROADCASTS
|
||||
OCTAL
|
||||
|
||||
DTAMIN= 2 /THE FIRST DECTAPE DRIVE WHICH WILL BE ASSIGNED
|
||||
/ FOR 'ASSIGN D' COMMAND; NORMALLY =0, BUT MAY
|
||||
/ VARY FOR SLIGHTLY RESTRICTED DRIVE USE.
|
||||
|
||||
BILLNG= 7 /THE ACCOUNT NUMBER OF THE BILLING SYSTEM
|
||||
/ 0, IF NO BILLING SYSTEM USED
|
||||
/
|
||||
/SYSTEM CONSTANTS
|
||||
|
||||
QUANT= -2 /NUMBER OF SYSTEM TICKS PER TIME SLICE (-)
|
||||
SWDEX= 5 /DISC TRACK OF FIRST SWAP AREA
|
||||
TTYEVEN=1 /1 INDICATES PARITY TTY MAY BE USED WITH SYS
|
||||
/ 0 ALLOWS ONLY DEC MODIFIED TTYS
|
||||
INFLD= 20 /FIELD SELECT THAT 'INIT' SHOULD BE BOOTED INTO
|
||||
/ MAKING IT 20 AVOIDS PROBLEMS SHOULD A
|
||||
/ FIELD NEED REPAIR & SYSTEM IS RUN ON 12K
|
||||
|
||||
/// END OF SYSTEM CONFIGURATION PARAMETERS
|
||||
|
||||
BIN
tss8.23/si.bin
Normal file
BIN
tss8.23/si.bin
Normal file
Binary file not shown.
5871
tss8.23/si.lst
Normal file
5871
tss8.23/si.lst
Normal file
File diff suppressed because it is too large
Load Diff
BIN
tss8.23/ts8.bin
Normal file
BIN
tss8.23/ts8.bin
Normal file
Binary file not shown.
7254
tss8.23/ts8.lst
Normal file
7254
tss8.23/ts8.lst
Normal file
File diff suppressed because it is too large
Load Diff
BIN
tss8.23/ts8ii.bin
Normal file
BIN
tss8.23/ts8ii.bin
Normal file
Binary file not shown.
3527
tss8.23/ts8ii.lst
Normal file
3527
tss8.23/ts8ii.lst
Normal file
File diff suppressed because it is too large
Load Diff
11
tss8_uwm/COPY.BN
Normal file
11
tss8_uwm/COPY.BN
Normal file
@ -0,0 +1,11 @@
|
||||
B@,*@,$6.
: >%-= >?9,B: <6%?!?5$<$;$: $%?!?9$=%%9</?&
|
||||
6> !
|
||||
|
||||
6*"*+ ;%%?!?8$=0$>(/>0> /=0
|
||||
'6 :> !
|
||||
96> +
|
||||
'6> !
|
||||
% 8> -7 66: 7:6<6 < + 50 4?$%+$0+?!
|
||||
%?#?7 37<6
|
||||
*0;>(+';5$0%*"2 16*C;/6<#D:*#: >(!
|
||||
0?*$8?*) /#*)#:
|
||||
2
tss8_uwm/FIP.CM
Normal file
2
tss8_uwm/FIP.CM
Normal file
@ -0,0 +1,2 @@
|
||||
DSK:FIP<SYS:UWM,PARA,PARB,PARC,FIP (WKE)
|
||||
|
||||
3253
tss8_uwm/FIP.PA
Normal file
3253
tss8_uwm/FIP.PA
Normal file
File diff suppressed because it is too large
Load Diff
2
tss8_uwm/INIT.CM
Normal file
2
tss8_uwm/INIT.CM
Normal file
@ -0,0 +1,2 @@
|
||||
DSK:INIT<SYS:UWM,PARA,PARB,PARC,INIT (WKE)
|
||||
|
||||
2874
tss8_uwm/INIT.PA
Normal file
2874
tss8_uwm/INIT.PA
Normal file
File diff suppressed because it is too large
Load Diff
1
tss8_uwm/INIT.XD
Normal file
1
tss8_uwm/INIT.XD
Normal file
@ -0,0 +1 @@
|
||||
b< 2
2$ 22 22<:9> 8!0&0$0"0!000
|
||||
BIN
tss8_uwm/INIT.XD.bin
Normal file
BIN
tss8_uwm/INIT.XD.bin
Normal file
Binary file not shown.
43
tss8_uwm/Makefile
Normal file
43
tss8_uwm/Makefile
Normal file
@ -0,0 +1,43 @@
|
||||
|
||||
MACRO = ../utils/macro/macro8x
|
||||
SHOWBIN = ../utils/showbin
|
||||
|
||||
all: init.bin fip.bin si.bin ts8.bin ts8ii.bin INIT.XD.bin
|
||||
|
||||
clean:
|
||||
rm -f *.bin *.prm *.lst *.err *.mem *.dump
|
||||
|
||||
init.bin: INIT.PA
|
||||
rm -f init.err init.lst
|
||||
$(MACRO) -o init -d UWM.PA PARA.PA PARB.PA PARC.PA INIT.PA
|
||||
|
||||
fip.bin: FIP.PA
|
||||
rm -f fip.err fip.lst
|
||||
$(MACRO) -o fip -d UWM.PA PARA.PA PARB.PA PARC.PA FIP.PA
|
||||
|
||||
si.bin: SI.PA
|
||||
rm -f si.err si.lst
|
||||
$(MACRO) -o si -d UWM.PA PARA.PA PARB.PA PARC.PA SI.PA
|
||||
|
||||
ts8.bin: TS8.PA
|
||||
rm -f ts8.err ts8.lst
|
||||
$(MACRO) -o ts8 -d UWM.PA PARA.PA PARB.PA PARC.PA TS8.PA
|
||||
|
||||
ts8ii.bin: TS8II.PA
|
||||
rm -f ts8ii.err ts8ii.lst
|
||||
$(MACRO) -o ts8ii -d UWM.PA PARA.PA PARB.PA PARC.PA TS8II.PA
|
||||
|
||||
INIT.XD.bin: orig-dectapes/INIT.XD
|
||||
#it's a bin format papertape encoded as ascii bytes
|
||||
#but we dumped it as binary
|
||||
../tapes/tools/asc <orig-dectapes/INIT.XD >INIT.XD.bin
|
||||
|
||||
xxx:
|
||||
$(SHOWBIN) fip.bin >fip.src.mem
|
||||
$(SHOWBIN) init.bin >init.src.mem
|
||||
$(SHOWBIN) si.bin >si.src.mem
|
||||
$(SHOWBIN) ts8.bin >ts8.src.mem
|
||||
$(SHOWBIN) ts8ii.bin >ts8ii.src.mem
|
||||
# sdiff fip.rf.mem fip.src.mem
|
||||
# sdiff init.rf.mem init.src.mem
|
||||
# sdiff si.rf.mem si.src.mem
|
||||
446
tss8_uwm/PARA.PA
Normal file
446
tss8_uwm/PARA.PA
Normal file
@ -0,0 +1,446 @@
|
||||
/PARAMETERS - UWM VERSION 25
|
||||
/
|
||||
/COPYRIGHT 1971 DIGITAL EQUIPMENT CORPORATION
|
||||
/ MAYNARD, MASSACHUSETTS
|
||||
/
|
||||
/EXTENSIVELY MODIFIED AND CORRECTED BY
|
||||
/ RICHARD BARTLEIN, 1974, 1976
|
||||
/ UNIVERSITY OF WISCONSIN - MILWAUKEE
|
||||
/
|
||||
VERNUM= 31 /SYSTEM VERSION NUMBER
|
||||
/
|
||||
IFZERO DC08A <D689=0>
|
||||
IFNZRO DC08A <
|
||||
IFNZRO PHONES <D689=4>
|
||||
IFZERO PHONES <D689=0>>
|
||||
|
||||
NULINE= DC08A+PT08+KL8 /NUMBER OF TERMINALS LESS CONSOLE
|
||||
QUANT= -6 /NUMBER OF SYSTEM TICKS PER TIME SLICE
|
||||
PLT= 0
|
||||
STOMIN= 5 /MINIMUM # FREE STORAGE BLOCKS FOR NEW JOB
|
||||
SWDEX= 5 /DISC TRACK OF FIRST SWAP AREA
|
||||
TICSPS= 24 /NUMBER OF SYSTEM TICKS PER SECOND
|
||||
|
||||
IFZERO RK8E <
|
||||
IFZERO RF08-40 <
|
||||
DSKSIZ= RS08^10
|
||||
>
|
||||
IFZERO RF08 <
|
||||
DSKSIZ= RS08^100 /# OF 4K DISC TRACKS
|
||||
>>
|
||||
IFNZRO RK8E <
|
||||
DSKSIZ= 400 /# OF 4K DISC TRACKS
|
||||
>
|
||||
CLOCKR= TICSPS%2+1750%TICSPS /MILLISECONDS PER SYSTEM TICK
|
||||
INCLK2= 0645 /1,728,000 TICKS PER DAY
|
||||
INCLK1= 600^TICSPS / (LOW 12 BITS OF 86,400 SECS/DAY * TICKS/SEC)
|
||||
TICMIN= 74^TICSPS /SYSTEM TICKS PER MINUTE
|
||||
|
||||
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
|
||||
WRDSEG= 400 /#WORDS PER DISC SEGMENT
|
||||
|
||||
/IOT DEFINITIONS
|
||||
|
||||
IFZERO D680-2 <
|
||||
TTINCR= 6401 /INCREMENT LINE REGISTER
|
||||
TTI= 6402 /TELETYPE INPUT COMMAND
|
||||
TTO= 6404 /TELETYPE OUTPUT COMMAND
|
||||
TTCL= 6411 /CLEAR LINE REGISTER
|
||||
TTSL= 6412 /SET LINE REGISTER, CLEAR AC
|
||||
TTRL= 6414 /READ LINE REGISTER
|
||||
T8SKP= 6421 /SKIP ON CLOCK FLAG
|
||||
T8OFF= 6422 /TURN CLOCK OFF
|
||||
TT8ON= 6424 /TURN CLOCK ON
|
||||
TTRINC= 6461 /INCREMENT THE R REG.
|
||||
TT8CLR= 6473 /CLEAR AND LOAD THE R REG.
|
||||
>
|
||||
/EXTENDED MEMORY
|
||||
|
||||
CDF= 6201 /CHANGE TO DATA FIELD 0
|
||||
CIF= 6202 /CHANGE TO INSTRUCTION FIELD 0
|
||||
CDI= 6203 /CHANGE DATA & INSTRUCTION FIELDS
|
||||
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
|
||||
IFZERO EAE-20 <
|
||||
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 /SKIP IF AC=MQ=0 (MODE B ONLY)
|
||||
SAM= 7453 /SUBTRACT AC FROM MQ
|
||||
SKB= 7671 /SKIP IF MODE B (MESSES UP AC AND MQ)
|
||||
SWBA= 7447 /CHANGE MODE TO A
|
||||
SWAB= 7431 /CHANGE MODE TO B (ALSO DOES MQL)
|
||||
ACS= 7403 /AC(7:11) TO SC; AC CLEARED
|
||||
>>
|
||||
IFZERO CPU-2 <
|
||||
SRQ= 6003 /SKIP ON INTERRUPT REQUEST
|
||||
GTF= 6004 /LINK TO AC0, GT FLAG TO AC1
|
||||
RTF= 6005 /AC0 TO LINK, AC1 TO GT FLAG
|
||||
SGT= 6006 /SKIP ON GT FLAG
|
||||
CAF= 6007 /CLEAR ALL FLAGS
|
||||
SPL= 6102 /SKIP ON POWER LOW
|
||||
>
|
||||
|
||||
IFZERO CPU-4 <
|
||||
SPL= 6102 /SKIP ON POWER LOW
|
||||
CAL= 6133 /CLEAR POWER LOW 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
|
||||
LIE= 6665 /AC11 TO INTERRUPT ENABLE (LS08/LS8E)
|
||||
LSP= 6665 /SET PROGRAM INTERRUPT (LP08/LE8)
|
||||
LPC= 6666 /TRANSMIT CHAR & CLEAR FLAG
|
||||
LCP= 6667 /CLEAR PROGRAM INTERRUPT
|
||||
/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)
|
||||
|
||||
DIML= 6615
|
||||
DIMA= 6616
|
||||
DXAL= 6643
|
||||
|
||||
/RK05 DISC IOTS
|
||||
IFZERO PHONES <RKDV=6740>
|
||||
IFNZRO PHONES <RKDV=6750>
|
||||
DSKP= RKDV+1 /SKIP IF DONE OR ERROR
|
||||
DCLR= RKDV+2 /CLEAR THE CONTROLLER
|
||||
DLAG= RKDV+3 /LOAD DISC ADDRESS & GO
|
||||
DLCA= RKDV+4 /LOAD CURRENT CORE ADDRESS
|
||||
DRST= RKDV+5 /READ THE STATUS
|
||||
DLDC= RKDV+6 /LOAD THE COMMAND REGISTER
|
||||
DMAINT= RKDV+7 /MAINTENANCE ONLY
|
||||
|
||||
/
|
||||
/TC08 DECTAPE CONTROLLER IOTS
|
||||
DTRA= 6761 /READ A-REGISTER
|
||||
DTCA= 6762 /CLEAR A-REGISTER
|
||||
DTXA= 6764 /XOR INTO A-REGISTER
|
||||
DTSF= 6771 /SKIP ON DECTAPE FLAG
|
||||
DTRB= 6772 /READ STATUS-REGISTER (B)
|
||||
DTLB= 6774 /LOAD STATUS-REGISTER (B)
|
||||
|
||||
/CARD READER IOTS
|
||||
RCSF= 6631 /SKIP ON DATA READY
|
||||
RCRA= 6632 /READ ALPHANUMERIC
|
||||
RCRB= 6634 /READ BINARY
|
||||
RCNO= 6635 /READ CONDITIONS OUT TO CARD READER (8/E ONLY)
|
||||
RCRC= 6636 /READ COMPRESSED (8/E ONLY)
|
||||
RCNI= 6637 /READ CONDITION IN FROM CARD READER (8/E ONLY)
|
||||
RCSD= 6671 /SKIP ON CARD DONE FLAG
|
||||
RCSE= 6672 /SELECT CARD READER AND SKIP IF READY
|
||||
RCRD= 6674 /CLEAR CARD DONE FLAG
|
||||
RCSI= 6675 /SKIP IF INTERRUPT BEING GENERATED (8/E ONLY)
|
||||
RCTF= 6677 /CLEAR TRANSITION FLAGS (8/E ONLY)
|
||||
|
||||
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
|
||||
>
|
||||
|
||||
IFZERO CPU-3 <
|
||||
CLAB= 6133
|
||||
CLLR= 6132
|
||||
CLEN= 6134
|
||||
CLSA= 6135
|
||||
CLSK= 6131
|
||||
|
||||
MTPF= 6113
|
||||
MINT= 6115
|
||||
MTON= 6117
|
||||
MKTF= 6123
|
||||
MINS= 6125
|
||||
MTRS= 6127
|
||||
|
||||
MKSF= 6111
|
||||
MKCC= 6112
|
||||
MKRS= 6114
|
||||
MKRB= 6116
|
||||
|
||||
MTSF= 6121
|
||||
MTCF= 6122
|
||||
MTPC= 6124
|
||||
MTLS= 6126
|
||||
>
|
||||
|
||||
IFZERO CPU-4 <
|
||||
CLLE= 6135 /AC11 TO CLOCK INTERRUPT ENABLE
|
||||
CLCL= 6136 /CLEAR CLOCK FLAG
|
||||
CLSK= 6137 /SKIP ON CLOCK 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 (AS USED INTERNALLY)
|
||||
|
||||
ASD= 0040 /ASSIGN DEVICE
|
||||
REL= 0042 /RELEASE DEVICE
|
||||
REN= 0200 /RENAME FILE
|
||||
OPEN= 6601 /OPEN FILE
|
||||
CLOS= 0202 /CLOSE
|
||||
RFILE= 6603 /READ FILE
|
||||
PROT= 0204 /PROTECT
|
||||
WFILE= 6605 /WRITE FILE
|
||||
XOPEN= 6606 /OPEN FILE WITH EXCLUSIVE USE
|
||||
CPASS= 0207 /CHANGE A USER'S PASSWORD
|
||||
CRF= 0210 /CREATE
|
||||
EXT= 0211 /EXTEND
|
||||
RED= 0212 /REDUCE
|
||||
FINF= 6613 /FILE INFORMATION
|
||||
LIN= 0214 /LOGIN
|
||||
LOUT= 0215 /LOGOUT
|
||||
BCLR= 0220 /CLEAR MFD BILLING INFORMATION
|
||||
|
||||
|
||||
/DEVICE DATA BLOCK
|
||||
|
||||
DDBSTS= 0 /WORD 1. STATUS AND UNIT NUMBER
|
||||
DXON= 2000 /XOFF SENT FLAG - SEND 'XON' WHEN NEEDED
|
||||
DSI= 1000 /DESTINATION IS S.I. FLAG
|
||||
DFULL= 400 /INDICATES BUFFER IS FULL
|
||||
DUPL= 200 /CONSOLE IN DUPLEX MODE
|
||||
SICOM= 100 /COMMAND WAITING
|
||||
CTRLC= 40 /USER TYPED CTRL/C
|
||||
DECHO= 20 /CAUSE 'SI' TO ECHO INPUT BUFFER
|
||||
DHALF= 10 /KEYBOARD IS HALF-DUPLEX (HARDWARE)
|
||||
DFORC= 4 /KEYBOARD WAS JUST FORCED
|
||||
CTRLB= 2 /COMMAND PRECEDED BY EXPLICIT CTRL/B
|
||||
|
||||
/OUTPUT SIDE:
|
||||
|
||||
CTRLS= 4000 /CTRL-S ENTERED (OUTPUT FROZEN)
|
||||
DXOFF= 3000 /JAM 'XOFF' INTO OUTPUT
|
||||
DBELL= 1000 /JAM 'BELL' INTO OUTPUT
|
||||
DTALK= 1 /LOCK KEYBOARD AGAINST TALKS
|
||||
|
||||
/OUTPUT REGISTER:
|
||||
|
||||
/ 4000 - BUFFER CHECKING REQUESTED
|
||||
/ 2000 - DEVICE INTERRUPT EXPECTED
|
||||
/ 1000 - 5-SECOND TIMEOUT FLAG
|
||||
/ 400-2 - NEXT BUFFERED CHARACTER
|
||||
/ 0001 - BUFFERED CHARACTER WAITING
|
||||
|
||||
DDBJN= 1 /WORD 2. JOB NUMBER IN 7-11; DEVICE NUMBER IN 0-6
|
||||
DDBBRK= 2 /BREAK MASK
|
||||
SIBRKM= 204 /SI BREAK MASK
|
||||
DDBTIM= 3 /TIME THAT DEVICE WAS ASSIGNED
|
||||
DDBINP= 4 /BUFFER FILL POINTER
|
||||
DDBINC= 5 /BUFFER FILL COUNT
|
||||
DDBOUC= 6 /BUFFER EMPTY COUNT
|
||||
DDBOUP= 7 /BUFFER EMPTY POINTER
|
||||
|
||||
/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 READ-ONLY (BIT 9), FILE PRIVILEGED (BIT 11)
|
||||
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
|
||||
/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
|
||||
JSPRIV= 400 /LIBRARY PROGRAM (HAS PRIVILEGES)
|
||||
JSHLT= 200 /PROGRAM EXECUTED 'HLT'
|
||||
JSIOT= 100 /NON-RESIDENT IOT
|
||||
JSIOTC= 40 /COPY IOT RESULT TO USER
|
||||
JSRSEN= 20 /PROGRAMMATIC CTRL/C ENABLE
|
||||
JSINER= 10 /INHIBIT SI ERROR UNTIL NEXT COMMAND
|
||||
|
||||
JSACC= 200
|
||||
JSBAT= 100 /BATCH-MODE
|
||||
|
||||
/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 /DELIMITER SEEN
|
||||
JSLPT= 40 /LPT BUFFER IN USE BUT NOT FULL
|
||||
JSTEL= 20 /OUTPUT BUFFER NOT FULL
|
||||
JSPTR= 10 /CHARACTER IN READER BUFFER
|
||||
JSPTP= 4 /PUNCH BUFFER IS NOT FULL
|
||||
JSERR= 2 /SYSTEM ERROR DETECTED
|
||||
JSWAIT= 1 /JOB NOT IN WAIT STATE
|
||||
|
||||
JOBSTB= 2 /DEVICE STATUS REGISTER (RK05, DECTAPE, & CARD READER)
|
||||
JOBWMK= JOBSTB+1 /WAIT MASK
|
||||
JOBDWT= JOBWMK+1 /JOB DEVICE-WAIT
|
||||
JOBSRA= JOBDWT+1 /JOB RESTART ADDRESS
|
||||
JOBERR= JOBSRA+1 /JOB ERROR RESTART ADDRESS
|
||||
JOBLNK= JOBERR+1 /IOT LINKAGE
|
||||
JOBSWR= JOBLNK+1 /SWITCH REGISTER
|
||||
JOBREG= JOBSWR+1 /PC, AC, & LINK (W/MODE, GT, & SC)
|
||||
JOBEAE= JOBREG+3 /MQ REGISTER
|
||||
JOBACT= JOBEAE+1 /USER'S ACCOUNT #
|
||||
JOBRTM= JOBACT+1 /LOW ORDER RUN TIME
|
||||
JOBRTH= JOBRTM+1 /HIGH ORDER RUN TIME
|
||||
JOBF0= JOBRTH+1 /POINTER TO FILE 0 CONTROL
|
||||
JOBF1= JOBF0+1 /POINTER TO FILE 1 CONTROL
|
||||
JOBF2= JOBF1+1 /POINTER TO FILE 2 CONTROL
|
||||
JOBF3= JOBF2+1 /POINTER TO FILE 3 CONTROL
|
||||
JOBSCH= JOBF3+1 /SCHEDULING CONTROL-WORD
|
||||
|
||||
|
||||
/CORE TABLE CONTROL FLAGS
|
||||
|
||||
FSWP= 4000 /SWAP REQUEST
|
||||
LOCK= 2000 /LOCK IN CORE
|
||||
NOTRUN= 1000 /HAS NOT BEEN SCHEDULED TO RUN
|
||||
FIP= 400 /FILE PHANTOM (NOTE: FIP HAS BEEN ASSUMED EQUAL TO WRDSEG)
|
||||
SI= 200 /SYSTEM COMMAND INTERPRETER PHANTOM
|
||||
NOHOLD= 140 /DISC COMPLETION PRIORITY (SKIPPED EVERY 4 TRANSFERS)
|
||||
CJOB= 37 /MASK FOR JOB NUMBER
|
||||
/FIP TABLE DEFINITIONS
|
||||
|
||||
SATSIZ= 530
|
||||
ENTABL= 5600
|
||||
UTABLE= JOBMAX^10+ENTABL
|
||||
RTABLE= JOBMAX^4+UTABLE /*** CHANGE TO ^10 LATER ***
|
||||
|
||||
/TS8 TABLE DEFINITIONS
|
||||
|
||||
CORTBL= 7001
|
||||
L2QTB= CORTBL+7
|
||||
|
||||
/TS8II TABLE DEFINITIONS
|
||||
IFNZRO CDVIN <CDVGAP=3> /ROOM FOR HSR, ?, AND CDR
|
||||
IFZERO CDVIN <CDVGAP=0>
|
||||
IFZERO DC08A <DCSIZE=0>
|
||||
IFNZRO DC08A <DCSIZE=400> /DC08A & 689AG CODE
|
||||
|
||||
OUTREG= 200 /ACTIVE OUTPUT REGISTERS
|
||||
SKPTBL= OUTREG+NULINE+CONTTY+CDVOUT+2 /START OF IOT SKIP TABLE
|
||||
SKPTP= SKPTBL+NULINE+NULINE+CONTTY+CONTTY+CDVIN+CDVGAP+1
|
||||
RINGIN= SKPTP+CDVOUT+3 /INPUT RING BUFFER
|
||||
ENDBUF= OUTREG+200 /END OF KEYBOARD INPUT BUFFER
|
||||
INPUTS= ENDBUF-RINGIN%2 /NUMBER OF POSSIBLE RING-BUFFER ENTRIES
|
||||
DATFLD= CDF 10 /DATA FIELD SELECT
|
||||
|
||||
DATA1= 2400+DCSIZE /START OF DATA AREA (ALMOST)
|
||||
DEVTBL= DATA1+200 /ACTUAL START OF DATA AREA
|
||||
DEVTBE= DEVTBL+NULINE+NULINE+2
|
||||
JOBTBL= DEVTBE+35
|
||||
CLKTBL= JOBTBL+JOBMAX+1
|
||||
TTYTBL= CLKTBL+JOBMAX+1
|
||||
PRGTBL= TTYTBL+JOBMAX+1
|
||||
DSUTBL= PRGTBL+JOBMAX+JOBMAX+JOBMAX-7
|
||||
OUTDIF= -OUTREG^2+DEVTBL /FOR LINKING BETWEEN OUTREG & DEVTBL
|
||||
|
||||
IFZERO EAE-20 <MQREG=1>
|
||||
IFZERO EAE <IFZERO CPU-2 <MQREG=1>
|
||||
IFNZRO CPU-2 <MQREG=0>>
|
||||
|
||||
/// END OF SELF-DEFINING PARAMETERS -- START OF MONITOR LINKAGES ///
|
||||
|
||||
/A VERY FEW SELDOM CHANGED POINTERS
|
||||
|
||||
AUTOST= 4201 /AUTOMATIC SYSTEM RESTART ENTRANCE TO 'INIT'
|
||||
FIPBLK= 7720 /THE I/O TRANSFER BLOCK FOR 'FIP'
|
||||
|
||||
/FREQUENTLY CHANGED POINTERS IN TS8 & TS8II; THESE ARE UPDATED
|
||||
/BY THE 'LINK.TE' TECO MACRO. IN THE SOURCE, THEY ARE FLAGGED
|
||||
/FOR THE MACRO TO FIND BY '/*'.
|
||||
|
||||
|
||||
51
tss8_uwm/PARB.PA
Normal file
51
tss8_uwm/PARB.PA
Normal file
@ -0,0 +1,51 @@
|
||||
BLT0= 5200 /BLOCK TRANSFER
|
||||
CLK1= 0033 /SYSTEM DAYCLOCK (LOW)
|
||||
CLK2= 0034 / (HIGH)
|
||||
CONDBA= 0030 /POINTER TO DEVTBL ENTRY IN USE
|
||||
CONDDB= 0031 /POINTER TO DDB IN USE
|
||||
CORSRC= 1317 /CORTBL SEARCH
|
||||
CORTBL= 7001 /CORE ALLOCATION TABLE (FIXED)
|
||||
DATE= 0035
|
||||
DEVCHK= 7045 /CHECK DEVICE OWNERSHIP
|
||||
DSBUSY= 0036 /DISC BUSY COUNT
|
||||
DTDEF0= 0535 /DECTAPE ERROR REGISTRATION
|
||||
DTDSF0= 0541 /DECTAPE BUFFER TO SWAP AREA
|
||||
DTDSK= 0527 /DECTAPE DISC COMPLETION
|
||||
DTL20= 0551 /DECTAPE LEVEL-2 DISPATCH
|
||||
DTRKHG= 3671 /ERROR SETTING FROM FIELD 1
|
||||
ENDIOT= 5333 /JMP TO EXIT HANDLER
|
||||
F1RTN= 0277 /RETURN FROM FIELD 1 INTERRUPT HANDLERS
|
||||
FIPJOB= 0057 /JOB REQUESTING 'FIP'
|
||||
FRECNT= 0040 /AVAILABLE FREE-CORE BLOCKS
|
||||
FREE= 0037 /LINK TO FIRST FREE-CORE BLOCK
|
||||
GETB= 1400 /GET A FREE-BLOCK
|
||||
GETDB0= 1440 /GET DDB BLOCK
|
||||
GETJTB= 7200 /GET ADDRESS OF LINKED ENTRY
|
||||
GIR00= 6200 /GENERAL INPUT ROUTINE
|
||||
JOB= 0062 /CURRENTLY ACTIVE JOB
|
||||
L2EXIT= 4051 /LEVEL-2 EXIT ROUTINE
|
||||
L2SF= 0041 /LEVEL 2: SAVED FIELD AND MODE
|
||||
L2SV0= 0042 /LEVEL 2: SAVED PC
|
||||
L2TIM3= 2631 /RETURN FROM 'TIMER' ROUTINE
|
||||
NFSEGS= 5533 /NUMBER OF FREE DISC SEGMENTS
|
||||
OUTIOT= 2340 /INCREMENT 'ACFLG' TO SIGNAL OUTPUT
|
||||
OVERL1= 5764
|
||||
OVERLA= 2364 /DISC TERMINATION FOR OVERLAYS
|
||||
OVRLA1= 0572 /SYSTEM OVERLAY COMPLETION DISPATCHER
|
||||
PRINT0= 1203 /TYPE CHARACTER
|
||||
QUEUE0= 1473 /REGISTER LEVEL-2 FOR FIELD 1
|
||||
READFI= 3652 /SI FILE-LOADER
|
||||
REDO0= 4172 /'REDO' AND IOT
|
||||
RELOAD= 3600 /AUTO-RESTART STARTUP
|
||||
RETB= 0600 /FREE A CORE-BLOCK
|
||||
RKL20= 3676 /LEVEL-2 DISPATCH FOR RK05
|
||||
SCHED0= 3640 /'RSCHED' ENTRY
|
||||
SICLR= 4400 /BUFFER CLEAR ROUTINE
|
||||
SIDATA= 0020 /SI CONTROL WORDS
|
||||
SLEEP= 2357 /PUT THE JOB TO SLEEP
|
||||
TIMCDR= 2621 /CARD READ TIMER
|
||||
TTCHAR= 0032 /CHARACTER FOR FEED ROUTINES
|
||||
UUDF= 0172 /USER FIELD SELECT
|
||||
UUOERR= 4404 /USER IOT ERROR
|
||||
UUOEX1= 0336 /IOT EXIT ROUTINE
|
||||
WSCHED= 3006 /'WAIT' ENTRY
|
||||
22
tss8_uwm/PARC.PA
Normal file
22
tss8_uwm/PARC.PA
Normal file
@ -0,0 +1,22 @@
|
||||
CDL11= 1720 /LEVEL-1 INTERRUPT FOR CARD READER
|
||||
CDL21= 1704 /LEVEL-2 HANDLER FOR CARD READER
|
||||
CJOBDA= 0020 /CURRENT JOB DATA POINTER
|
||||
DTJOB= 0027 /JOB HOLDING DECTAPE CONTROLLER
|
||||
DTL11= 0601 /LEVEL-1 INTERRUPT FOR DECTAPE
|
||||
DTL21= 1004 /DECTAPE LEVEL-2 COMPLETION
|
||||
F1BUF= 0177 /DDB EMPTY BLOCK
|
||||
F1DTST= 2512 /DECTAPE STOP ROUTINE
|
||||
F1ECNT= 0176 /DDB EMPTY COUNT
|
||||
F1OFFJ= 0036 /SYSTEM OFF/ON COMMAND FLAG
|
||||
F1TCNT= 0175 /DDB CHARACTER COUNT
|
||||
RKJOB= 0045 /JOB HOLDING RK05 CONTROLLER
|
||||
RKL11= 2000 /LEVEL-1 INTERRUPT FOR RK05
|
||||
RKL21= 1615 /LEVEL-2 HANDLER FOR RK05
|
||||
TIMER0= 2200 /FIELD 1 TIMER ROUTINE
|
||||
UPEEK1= 2445 /FIELD 1 PEEK IOT CODE
|
||||
UPTIM1= 0174 /SYSTEM UPTIME
|
||||
UPTIM2= 0173
|
||||
UUCDR= 1735 /UUO ENTRY FOR CARD READER
|
||||
UUDTRK= 1415 /UUO ENTRY FOR DECTAPE & RK05
|
||||
WINBAS= 7730 /BASIC RETRIEVAL WINDOW
|
||||
|
||||
105
tss8_uwm/PHAM.PA
Normal file
105
tss8_uwm/PHAM.PA
Normal file
@ -0,0 +1,105 @@
|
||||
/TSS-8.25 CONFIGURATION FOR REMCO OF RACINE
|
||||
/CONFIGURATION PARAMETERS FOR THE TSS/8 MONITOR
|
||||
/COPYRIGHT 1971 - DIGITAL EQUIPMENT CORPORATION; MAYNARD, MASS.
|
||||
/
|
||||
/TSS-8 SYSTEM PARAMETERS AND OPTIONS. FOR EACH PARAMETER,
|
||||
/THE COMMENT INIDCATES THE POSSIBLE RESPONSES.
|
||||
|
||||
DEBUG= 2 /SYSTEM DEBUGGING CONTROL:
|
||||
/ =0, PRODUCTION SYSTEM (AUTO-RESTARTS & ERROR FIXUP)
|
||||
/ =1, SYSTEM RELIABILITY (JUST AUTO-RESTARTS)
|
||||
/ =2, SYSTEM DEBUGGING (SYSTEM HALTS ON ERROR)
|
||||
/ =3, FULL CHECKING (THOROUGH 'RETB' CHECK)
|
||||
/BITS 0-8, AVAILABLE FOR LOCAL SWITCHES:
|
||||
/ 4000 - ENABLE MQ MEMORY DISPLAY (IN TIMER)
|
||||
|
||||
CPU= 2 /0 IF CPU IS PDP-8/I; 1 IF PDP-8
|
||||
/ 2 IF PDP-8/E; 3 IF PDP-12; 4 IF PDP-8/A
|
||||
|
||||
EAE= 0 /20 IF CPU INCLUDES EAE; 0 IF NOT
|
||||
|
||||
CORMEM= 30 /HIGHEST DATA FIELD SELECT; FOR 12K SYS,
|
||||
/ RESPOND 20; FOR 16K, RESPOND 30; FOR 32K, 70
|
||||
|
||||
D680= 0 /2 IF TTY INTERFACING IS 680 OR DC08;
|
||||
/ 0 IF TTY INTERFACING IS PT08'S
|
||||
|
||||
PHONES= 0 /1 IF 680 OR DC08 INCLUDES 689 OR DC08F;
|
||||
/ 0 IF IT DOESN'T OR TTY INTERFACING IS PT08'S
|
||||
|
||||
RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF RF08
|
||||
|
||||
RS08= 1 /# OF DISCS IN SYSTEM, WHETHER RF08 OR DF32
|
||||
|
||||
RK05= 0 /# OF NONSYSTEM RK05 DRIVES
|
||||
|
||||
RK8E= 0 /# OF RK8E DRIVES; ONLY FIRST IS USED FOR SYSTEM
|
||||
/ THE REMAINDER ARE TREATED AS PERIPHERALS
|
||||
|
||||
READER= 1 /1 IF SYSTEM INCLUDES HIGH-SPEED READER; 0 IF NOT
|
||||
|
||||
PUNCH= 0 /1 IF SYS HAS HSP, 0 IF NOT
|
||||
|
||||
TC01= 1 /1 IF SYS HAS DECTAPES; 0 IF NOT
|
||||
|
||||
|
||||
TD8E= 0 /1 IF TD8E DECTAPES AVAILABLE FOR LOADING & DUMPING
|
||||
/ 0 IF NOT; NOTE THAT TD8E TAPES CANNOT BE USED UNDER
|
||||
/ TSS/8, THEY REQUIRE CONTINUOUS CPU ATTENTION
|
||||
|
||||
LPT= 3 /0 IF NO PRINTER ON SYS; 1 IF LP08; 2 IF LS8E; 3 IF NONSTANDARD
|
||||
|
||||
CDR= 0 / =1, IF CARD READER
|
||||
/
|
||||
/MONITOR OPTIONS
|
||||
/FILL IN THE FOLLOWING LINES TO INDICATE THE
|
||||
/MONITOR CAPACITY FOR THIS SYSTEM
|
||||
|
||||
DECIMAL
|
||||
JOBMAX= 6 /NUMBER OF SIMULTANEOUS USERS (.LE. 20)
|
||||
|
||||
CONTTY= 1 / (ALWAYS HAVE A CONSOLE)
|
||||
|
||||
DC08A= 0 /NUMBER OF TERMINALS VIA DC08A (PDP-8/I ONLY, 19 MAX)
|
||||
|
||||
DC08LO= 0 /LOWEST LINE-NUMBER USED ON DC08A
|
||||
|
||||
PT08= 0 /NUMBER OF TERMINALS VIA PT08 (PDP-8 & PDP-8/I ONLY)
|
||||
|
||||
KL8= 15 /NUMBER OF TERMINALS VIA KL8E (PDP-8/E ONLY, 19 MAX)
|
||||
|
||||
CDVIN= 3 /NONSTANDARD INPUT CHARACTER DEVICES (HIGHEST USED)
|
||||
/ 1 = R2; 2 = X0; 3 = X1; 4 = X2; 5 = X3
|
||||
|
||||
CDVOUT= 4 /NONSTANDARD OUTPUT CHARACTER DEVICES (HIGHEST USED)
|
||||
/ 1 = P2; 2 = L2; 3 = Y0; 4 = Y1; 5 = Y2; 6 = Y3
|
||||
|
||||
TRUKBD= 3 /NUMBER OF ACTUAL KEYBOARDS ON SYSTEM (NOT COUNTING
|
||||
/ CONSOLE TTY). THIS MUST BE .LE. NULINE; NULINE
|
||||
/ MAY INCLUDE DUMMY TERMINALS, THIS MAY NOT.
|
||||
|
||||
FRCMAX= TRUKBD /THE HIGHEST KEYBOARD # A '00XX' ACCT # MAY FORCE
|
||||
/ NOTE THAT A '000X' ACCOUNT MAY FORCE UP TO 'NULINE'
|
||||
|
||||
TLKMAX= TRUKBD /THE HIGHEST KEYBOARD # WHICH MAY BE 'TALK'ED TO
|
||||
|
||||
BRDMAX= TRUKBD /THE HIGHEST KEYBOARD WHICH WILL RECEIVE BROADCASTS
|
||||
OCTAL
|
||||
|
||||
DTAMIN= 2 /THE FIRST DECTAPE DRIVE WHICH WILL BE ASSIGNED
|
||||
/ FOR 'ASSIGN D' COMMAND; NORMALLY =0, BUT MAY
|
||||
/ VARY FOR SLIGHTLY RESTRICTED DRIVE USE.
|
||||
|
||||
BILLNG= 7 /THE ACCOUNT NUMBER OF THE BILLING SYSTEM
|
||||
/ 0, IF NO BILLING SYSTEM USED
|
||||
/
|
||||
/SYSTEM CONSTANTS
|
||||
|
||||
INFLD= 20 /FIELD SELECT THAT 'INIT' SHOULD BE BOOTED INTO
|
||||
/ MAKING IT 20 AVOIDS PROBLEMS SHOULD A
|
||||
/ FIELD NEED REPAIR & SYSTEM IS RUN ON 12K
|
||||
TTYEVEN=1 /1 INDICATES PARITY TTY MAY BE USED WITH SYS
|
||||
/ 0 ALLOWS ONLY DEC MODIFIED TTYS
|
||||
|
||||
/// END OF SYSTEM CONFIGURATION PARAMETERS
|
||||
|
||||
2
tss8_uwm/SI.CM
Normal file
2
tss8_uwm/SI.CM
Normal file
@ -0,0 +1,2 @@
|
||||
DSK:SI<SYS:UWM,PARA,PARB,PARC,SI (WKE)
|
||||
|
||||
4407
tss8_uwm/SI.PA
Normal file
4407
tss8_uwm/SI.PA
Normal file
File diff suppressed because it is too large
Load Diff
5553
tss8_uwm/TS8.PA
Normal file
5553
tss8_uwm/TS8.PA
Normal file
File diff suppressed because it is too large
Load Diff
2195
tss8_uwm/TS8II.PA
Normal file
2195
tss8_uwm/TS8II.PA
Normal file
File diff suppressed because it is too large
Load Diff
2230
tss8_uwm/TS8II.PA.1
Normal file
2230
tss8_uwm/TS8II.PA.1
Normal file
File diff suppressed because it is too large
Load Diff
105
tss8_uwm/UWM.PA
Normal file
105
tss8_uwm/UWM.PA
Normal file
@ -0,0 +1,105 @@
|
||||
/TSS-8.25 CONFIGURATION FOR UWM
|
||||
/CONFIGURATION PARAMETERS FOR THE TSS/8 MONITOR
|
||||
/COPYRIGHT 1971 - DIGITAL EQUIPMENT CORPORATION; MAYNARD, MASS.
|
||||
/
|
||||
/TSS-8 SYSTEM PARAMETERS AND OPTIONS. FOR EACH PARAMETER,
|
||||
/THE COMMENT INIDCATES THE POSSIBLE RESPONSES.
|
||||
|
||||
DEBUG= 0 /SYSTEM DEBUGGING CONTROL:
|
||||
/ =0, PRODUCTION SYSTEM (AUTO-RESTARTS & ERROR FIXUP)
|
||||
/ =1, SYSTEM RELIABILITY (JUST AUTO-RESTARTS)
|
||||
/ =2, SYSTEM DEBUGGING (SYSTEM HALTS ON ERROR)
|
||||
/ =3, FULL CHECKING (THOROUGH 'RETB' CHECK)
|
||||
/BITS 0-8, AVAILABLE FOR LOCAL SWITCHES:
|
||||
/ 4000 - ENABLE MQ MEMORY DISPLAY (IN TIMER)
|
||||
|
||||
CPU= 2 /0 IF CPU IS PDP-8/I; 1 IF PDP-8
|
||||
/ 2 IF PDP-8/E; 3 IF PDP-12; 4 IF PDP-8/A
|
||||
|
||||
EAE= 0 /20 IF CPU INCLUDES EAE; 0 IF NOT
|
||||
|
||||
CORMEM= 70 /HIGHEST DATA FIELD SELECT; FOR 12K SYS,
|
||||
/ RESPOND 20; FOR 16K, RESPOND 30; FOR 32K, 70
|
||||
|
||||
D680= 0 /2 IF TTY INTERFACING IS 680 OR DC08;
|
||||
/ 0 IF TTY INTERFACING IS PT08'S
|
||||
|
||||
PHONES= 0 /1 IF 680 OR DC08 INCLUDES 689 OR DC08F;
|
||||
/ 0 IF IT DOESN'T OR TTY INTERFACING IS PT08'S
|
||||
|
||||
RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF RF08
|
||||
|
||||
RS08= 1 /# OF DISCS IN SYSTEM, WHETHER RF08 OR DF32
|
||||
|
||||
RK05= 1 /# OF NONSYSTEM RK05 DRIVES
|
||||
|
||||
RK8E= 0 /# OF RK8E DRIVES; ONLY FIRST IS USED FOR SYSTEM
|
||||
/ THE REMAINDER ARE TREATED AS PERIPHERALS
|
||||
|
||||
READER= 1 /1 IF SYSTEM INCLUDES HIGH-SPEED READER; 0 IF NOT
|
||||
|
||||
PUNCH= 1 /1 IF SYS HAS HSP, 0 IF NOT
|
||||
|
||||
TC01= 1 /1 IF SYS HAS DECTAPES; 0 IF NOT
|
||||
|
||||
|
||||
TD8E= 0 /1 IF TD8E DECTAPES AVAILABLE FOR LOADING & DUMPING
|
||||
/ 0 IF NOT; NOTE THAT TD8E TAPES CANNOT BE USED UNDER
|
||||
/ TSS/8, THEY REQUIRE CONTINUOUS CPU ATTENTION
|
||||
|
||||
LPT= 3 /0 IF NO PRINTER ON SYS; 1 IF LP08; 2 IF LS8E; 3 IF NONSTANDARD
|
||||
|
||||
CDR= 0 /NO SYS CAN HAVE CARD READER
|
||||
/
|
||||
/MONITOR OPTIONS
|
||||
/FILL IN THE FOLLOWING LINES TO INDICATE THE
|
||||
/MONITOR CAPACITY FOR THIS SYSTEM
|
||||
|
||||
DECIMAL
|
||||
JOBMAX= 20 /NUMBER OF SIMULTANEOUS USERS (.LE. 20)
|
||||
|
||||
CONTTY= 1 / (ALWAYS HAVE A CONSOLE)
|
||||
|
||||
DC08A= 0 /NUMBER OF TERMINALS VIA DC08A (PDP-8/I ONLY, 19 MAX)
|
||||
|
||||
DC08LO= 0 /LOWEST LINE-NUMBER USED ON DC08A
|
||||
|
||||
PT08= 0 /NUMBER OF TERMINALS VIA PT08 (PDP-8 & PDP-8/I ONLY)
|
||||
|
||||
KL8= 15 /NUMBER OF TERMINALS VIA KL8E (PDP-8/E ONLY, 19 MAX)
|
||||
|
||||
CDVIN= 3 /NONSTANDARD INPUT CHARACTER DEVICES (HIGHEST USED)
|
||||
/ 1 = R2; 2 = X0; 3 = X1; 4 = X2; 5 = X3
|
||||
|
||||
CDVOUT= 4 /NONSTANDARD OUTPUT CHARACTER DEVICES (HIGHEST USED)
|
||||
/ 1 = P2; 2 = L2; 3 = Y0; 4 = Y1; 5 = Y2; 6 = Y3
|
||||
|
||||
TRUKBD= 10 /NUMBER OF ACTUAL KEYBOARDS ON SYSTEM (NOT COUNTING
|
||||
/ CONSOLE TTY). THIS MUST BE .LE. NULINE; NULINE
|
||||
/ MAY INCLUDE DUMMY TERMINALS, THIS MAY NOT.
|
||||
|
||||
FRCMAX= TRUKBD /THE HIGHEST KEYBOARD # A '00XX' ACCT # MAY FORCE
|
||||
/ NOTE THAT A '000X' ACCOUNT MAY FORCE UP TO 'NULINE'
|
||||
|
||||
TLKMAX= TRUKBD /THE HIGHEST KEYBOARD # WHICH MAY BE 'TALK'ED TO
|
||||
|
||||
BRDMAX= TRUKBD /THE HIGHEST KEYBOARD WHICH WILL RECEIVE BROADCASTS
|
||||
OCTAL
|
||||
|
||||
DTAMIN= 2 /THE FIRST DECTAPE DRIVE WHICH WILL BE ASSIGNED
|
||||
/ FOR 'ASSIGN D' COMMAND; NORMALLY =0, BUT MAY
|
||||
/ VARY FOR SLIGHTLY RESTRICTED DRIVE USE.
|
||||
|
||||
BILLNG= 7 /THE ACCOUNT NUMBER OF THE BILLING SYSTEM
|
||||
/ 0, IF NO BILLING SYSTEM USED
|
||||
/
|
||||
/SYSTEM CONSTANTS
|
||||
|
||||
INFLD= 20 /FIELD SELECT THAT 'INIT' SHOULD BE BOOTED INTO
|
||||
/ MAKING IT 20 AVOIDS PROBLEMS SHOULD A
|
||||
/ FIELD NEED REPAIR & SYSTEM IS RUN ON 12K
|
||||
TTYEVEN=1 /1 INDICATES PARITY TTY MAY BE USED WITH SYS
|
||||
/ 0 ALLOWS ONLY DEC MODIFIED TTYS
|
||||
|
||||
/// END OF SYSTEM CONFIGURATION PARAMETERS
|
||||
|
||||
1903
tss8_uwm/diffs.txt
Normal file
1903
tss8_uwm/diffs.txt
Normal file
File diff suppressed because it is too large
Load Diff
BIN
tss8_uwm/fip.bin
Normal file
BIN
tss8_uwm/fip.bin
Normal file
Binary file not shown.
4431
tss8_uwm/fip.lst
Normal file
4431
tss8_uwm/fip.lst
Normal file
File diff suppressed because it is too large
Load Diff
BIN
tss8_uwm/init.bin
Normal file
BIN
tss8_uwm/init.bin
Normal file
Binary file not shown.
4189
tss8_uwm/init.lst
Normal file
4189
tss8_uwm/init.lst
Normal file
File diff suppressed because it is too large
Load Diff
11
tss8_uwm/orig-bitsavers/COPY.BN
Normal file
11
tss8_uwm/orig-bitsavers/COPY.BN
Normal file
@ -0,0 +1,11 @@
|
||||
B@,*@,$6.
: >%-= >?9,B: <6%?!?5$<$;$: $%?!?9$=%%9</?&
|
||||
6> !
|
||||
|
||||
6*"*+ ;%%?!?8$=0$>(/>0> /=0
|
||||
'6 :> !
|
||||
96> +
|
||||
'6> !
|
||||
% 8> -7 66: 7:6<6 < + 50 4?$%+$0+?!
|
||||
%?#?7 37<6
|
||||
*0;>(+';5$0%*"2 16*C;/6<#D:*#: >(!
|
||||
0?*$8?*) /#*)#:
|
||||
2
tss8_uwm/orig-bitsavers/FIP.CM
Normal file
2
tss8_uwm/orig-bitsavers/FIP.CM
Normal file
@ -0,0 +1,2 @@
|
||||
DSK:FIP<SYS:UWM,PARA,PARB,PARC,FIP (WKE)
|
||||
|
||||
1
tss8_uwm/orig-bitsavers/FIP.PA
Normal file
1
tss8_uwm/orig-bitsavers/FIP.PA
Normal file
File diff suppressed because one or more lines are too long
2
tss8_uwm/orig-bitsavers/INIT.CM
Normal file
2
tss8_uwm/orig-bitsavers/INIT.CM
Normal file
@ -0,0 +1,2 @@
|
||||
DSK:INIT<SYS:UWM,PARA,PARB,PARC,INIT (WKE)
|
||||
|
||||
1
tss8_uwm/orig-bitsavers/INIT.PA
Normal file
1
tss8_uwm/orig-bitsavers/INIT.PA
Normal file
File diff suppressed because one or more lines are too long
1
tss8_uwm/orig-bitsavers/INIT.XD
Normal file
1
tss8_uwm/orig-bitsavers/INIT.XD
Normal file
@ -0,0 +1 @@
|
||||
b< 2
2$ 22 22<:9> 8!0&0$0"0!000
|
||||
1
tss8_uwm/orig-bitsavers/PARA.PA
Normal file
1
tss8_uwm/orig-bitsavers/PARA.PA
Normal file
File diff suppressed because one or more lines are too long
1
tss8_uwm/orig-bitsavers/PARB.PA
Normal file
1
tss8_uwm/orig-bitsavers/PARB.PA
Normal file
@ -0,0 +1 @@
|
||||
BLT0= 5200 /BLOCK TRANSFER
CLK1= 0033 /SYSTEM DAYCLOCK (LOW)
CLK2= 0034 / (HIGH)
CONDBA= 0030 /POINTER TO DEVTBL ENTRY IN USE
CONDDB= 0031 /POINTER TO DDB IN USE
CORSRC= 1317 /CORTBL SEARCH
CORTBL= 7001 /CORE ALLOCATION TABLE (FIXED)
DATE= 0035
DEVCHK= 7045 /CHECK DEVICE OWNERSHIP
DSBUSY= 0036 /DISC BUSY COUNT
DTDEF0= 0535 /DECTAPE ERROR REGISTRATION
DTDSF0= 0541 /DECTAPE BUFFER TO SWAP AREA
DTDSK= 0527 /DECTAPE DISC COMPLETION
DTL20= 0551 /DECTAPE LEVEL-2 DISPATCH
DTRKHG= 3671 /ERROR SETTING FROM FIELD 1
ENDIOT= 5333 /JMP TO EXIT HANDLER
F1RTN= 0277 /RETURN FROM FIELD 1 INTERRUPT HANDLERS
FIPJOB= 0057 /JOB REQUESTING 'FIP'
FRECNT= 0040 /AVAILABLE FREE-CORE BLOCKS
FREE= 0037 /LINK TO FIRST FREE-CORE BLOCK
GETB= 1400 /GET A FREE-BLOCK
GETDB0= 1440 /GET DDB BLOCK
GETJTB= 7200 /GET ADDRESS OF LINKED ENTRY
GIR00= 6200 /GENERAL INPUT ROUTINE
JOB= 0062 /CURRENTLY ACTIVE JOB
L2EXIT= 4051 /LEVEL-2 EXIT ROUTINE
L2SF= 0041 /LEVEL 2: SAVED FIELD AND MODE
L2SV0= 0042 /LEVEL 2: SAVED PC
L2TIM3= 2631 /RETURN FROM 'TIMER' ROUTINE
NFSEGS= 5533 /NUMBER OF FREE DISC SEGMENTS
OUTIOT= 2340 /INCREMENT 'ACFLG' TO SIGNAL OUTPUT
OVERL1= 5764
OVERLA= 2364 /DISC TERMINATION FOR OVERLAYS
OVRLA1= 0572 /SYSTEM OVERLAY COMPLETION DISPATCHER
PRINT0= 1203 /TYPE CHARACTER
QUEUE0= 1473 /REGISTER LEVEL-2 FOR FIELD 1
READFI= 3652 /SI FILE-LOADER
REDO0= 4172 /'REDO' AND IOT
RELOAD= 3600 /AUTO-RESTART STARTUP
RETB= 0600 /FREE A CORE-BLOCK
RKL20= 3676 /LEVEL-2 DISPATCH FOR RK05
SCHED0= 3640 /'RSCHED' ENTRY
SICLR= 4400 /BUFFER CLEAR ROUTINE
SIDATA= 0020 /SI CONTROL WORDS
SLEEP= 2357 /PUT THE JOB TO SLEEP
TIMCDR= 2621 /CARD READ TIMER
TTCHAR= 0032 /CHARACTER FOR FEED ROUTINES
UUDF= 0172 /USER FIELD SELECT
UUOERR= 4404 /USER IOT ERROR
UUOEX1= 0336 /IOT EXIT ROUTINE
WSCHED= 3006 /'WAIT' ENTRY
|
||||
1
tss8_uwm/orig-bitsavers/PARC.PA
Normal file
1
tss8_uwm/orig-bitsavers/PARC.PA
Normal file
@ -0,0 +1 @@
|
||||
CDL11= 1720 /LEVEL-1 INTERRUPT FOR CARD READER
CDL21= 1704 /LEVEL-2 HANDLER FOR CARD READER
CJOBDA= 0020 /CURRENT JOB DATA POINTER
DTJOB= 0027 /JOB HOLDING DECTAPE CONTROLLER
DTL11= 0601 /LEVEL-1 INTERRUPT FOR DECTAPE
DTL21= 1004 /DECTAPE LEVEL-2 COMPLETION
F1BUF= 0177 /DDB EMPTY BLOCK
F1DTST= 2512 /DECTAPE STOP ROUTINE
F1ECNT= 0176 /DDB EMPTY COUNT
F1OFFJ= 0036 /SYSTEM OFF/ON COMMAND FLAG
F1TCNT= 0175 /DDB CHARACTER COUNT
RKJOB= 0045 /JOB HOLDING RK05 CONTROLLER
RKL11= 2000 /LEVEL-1 INTERRUPT FOR RK05
RKL21= 1615 /LEVEL-2 HANDLER FOR RK05
TIMER0= 2200 /FIELD 1 TIMER ROUTINE
UPEEK1= 2445 /FIELD 1 PEEK IOT CODE
UPTIM1= 0174 /SYSTEM UPTIME
UPTIM2= 0173
UUCDR= 1735 /UUO ENTRY FOR CARD READER
UUDTRK= 1415 /UUO ENTRY FOR DECTAPE & RK05
WINBAS= 7730 /BASIC RETRIEVAL WINDOW
|
||||
1
tss8_uwm/orig-bitsavers/PHAM.PA
Normal file
1
tss8_uwm/orig-bitsavers/PHAM.PA
Normal file
@ -0,0 +1 @@
|
||||
/TSS-8.25 CONFIGURATION FOR REMCO OF RACINE
/CONFIGURATION PARAMETERS FOR THE TSS/8 MONITOR
/COPYRIGHT 1971 - DIGITAL EQUIPMENT CORPORATION; MAYNARD, MASS.
/
/TSS-8 SYSTEM PARAMETERS AND OPTIONS. FOR EACH PARAMETER,
/THE COMMENT INIDCATES THE POSSIBLE RESPONSES.
DEBUG= 2 /SYSTEM DEBUGGING CONTROL:
/ =0, PRODUCTION SYSTEM (AUTO-RESTARTS & ERROR FIXUP)
/ =1, SYSTEM RELIABILITY (JUST AUTO-RESTARTS)
/ =2, SYSTEM DEBUGGING (SYSTEM HALTS ON ERROR)
/ =3, FULL CHECKING (THOROUGH 'RETB' CHECK)
/BITS 0-8, AVAILABLE FOR LOCAL SWITCHES:
/ 4000 - ENABLE MQ MEMORY DISPLAY (IN TIMER)
CPU= 2 /0 IF CPU IS PDP-8/I; 1 IF PDP-8
/ 2 IF PDP-8/E; 3 IF PDP-12; 4 IF PDP-8/A
EAE= 0 /20 IF CPU INCLUDES EAE; 0 IF NOT
CORMEM= 30 /HIGHEST DATA FIELD SELECT; FOR 12K SYS,
/ RESPOND 20; FOR 16K, RESPOND 30; FOR 32K, 70
D680= 0 /2 IF TTY INTERFACING IS 680 OR DC08;
/ 0 IF TTY INTERFACING IS PT08'S
PHONES= 0 /1 IF 680 OR DC08 INCLUDES 689 OR DC08F;
/ 0 IF IT DOESN'T OR TTY INTERFACING IS PT08'S
RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF RF08
RS08= 1 /# OF DISCS IN SYSTEM, WHETHER RF08 OR DF32
RK05= 0 /# OF NONSYSTEM RK05 DRIVES
RK8E= 0 /# OF RK8E DRIVES; ONLY FIRST IS USED FOR SYSTEM
/ THE REMAINDER ARE TREATED AS PERIPHERALS
READER= 1 /1 IF SYSTEM INCLUDES HIGH-SPEED READER; 0 IF NOT
PUNCH= 0 /1 IF SYS HAS HSP, 0 IF NOT
TC01= 1 /1 IF SYS HAS DECTAPES; 0 IF NOT
TD8E= 0 /1 IF TD8E DECTAPES AVAILABLE FOR LOADING & DUMPING
/ 0 IF NOT; NOTE THAT TD8E TAPES CANNOT BE USED UNDER
/ TSS/8, THEY REQUIRE CONTINUOUS CPU ATTENTION
LPT= 3 /0 IF NO PRINTER ON SYS; 1 IF LP08; 2 IF LS8E; 3 IF NONSTANDARD
CDR= 0 / =1, IF CARD READER
/
/MONITOR OPTIONS
/FILL IN THE FOLLOWING LINES TO INDICATE THE
/MONITOR CAPACITY FOR THIS SYSTEM
DECIMAL
JOBMAX= 6 /NUMBER OF SIMULTANEOUS USERS (.LE. 20)
CONTTY= 1 / (ALWAYS HAVE A CONSOLE)
DC08A= 0 /NUMBER OF TERMINALS VIA DC08A (PDP-8/I ONLY, 19 MAX)
DC08LO= 0 /LOWEST LINE-NUMBER USED ON DC08A
PT08= 0 /NUMBER OF TERMINALS VIA PT08 (PDP-8 & PDP-8/I ONLY)
KL8= 15 /NUMBER OF TERMINALS VIA KL8E (PDP-8/E ONLY, 19 MAX)
CDVIN= 3 /NONSTANDARD INPUT CHARACTER DEVICES (HIGHEST USED)
/ 1 = R2; 2 = X0; 3 = X1; 4 = X2; 5 = X3
CDVOUT= 4 /NONSTANDARD OUTPUT CHARACTER DEVICES (HIGHEST USED)
/ 1 = P2; 2 = L2; 3 = Y0; 4 = Y1; 5 = Y2; 6 = Y3
TRUKBD= 3 /NUMBER OF ACTUAL KEYBOARDS ON SYSTEM (NOT COUNTING
/ CONSOLE TTY). THIS MUST BE .LE. NULINE; NULINE
/ MAY INCLUDE DUMMY TERMINALS, THIS MAY NOT.
FRCMAX= TRUKBD /THE HIGHEST KEYBOARD # A '00XX' ACCT # MAY FORCE
/ NOTE THAT A '000X' ACCOUNT MAY FORCE UP TO 'NULINE'
TLKMAX= TRUKBD /THE HIGHEST KEYBOARD # WHICH MAY BE 'TALK'ED TO
BRDMAX= TRUKBD /THE HIGHEST KEYBOARD WHICH WILL RECEIVE BROADCASTS
OCTAL
DTAMIN= 2 /THE FIRST DECTAPE DRIVE WHICH WILL BE ASSIGNED
/ FOR 'ASSIGN D' COMMAND; NORMALLY =0, BUT MAY
/ VARY FOR SLIGHTLY RESTRICTED DRIVE USE.
BILLNG= 7 /THE ACCOUNT NUMBER OF THE BILLING SYSTEM
/ 0, IF NO BILLING SYSTEM USED
/
/SYSTEM CONSTANTS
INFLD= 20 /FIELD SELECT THAT 'INIT' SHOULD BE BOOTED INTO
/ MAKING IT 20 AVOIDS PROBLEMS SHOULD A
/ FIELD NEED REPAIR & SYSTEM IS RUN ON 12K
TTYEVEN=1 /1 INDICATES PARITY TTY MAY BE USED WITH SYS
/ 0 ALLOWS ONLY DEC MODIFIED TTYS
/// END OF SYSTEM CONFIGURATION PARAMETERS
|
||||
2
tss8_uwm/orig-bitsavers/SI.CM
Normal file
2
tss8_uwm/orig-bitsavers/SI.CM
Normal file
@ -0,0 +1,2 @@
|
||||
DSK:SI<SYS:UWM,PARA,PARB,PARC,SI (WKE)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user