mirror of
https://github.com/PDP-10/klh10.git
synced 2026-02-14 11:55:37 +00:00
588 lines
21 KiB
Plaintext
588 lines
21 KiB
Plaintext
/* KST20.TXT - KS TOPS-20 system installation on KLH10
|
||
*/
|
||
/* $Id: kst20.txt,v 2.3 2001/11/10 21:24:21 klh Exp $
|
||
*/
|
||
/* Copyright © 2001 Kenneth L. Harrenstien
|
||
** All Rights Reserved
|
||
**
|
||
** This file is part of the KLH10 Distribution. Use, modification, and
|
||
** re-distribution is permitted subject to the terms in the file
|
||
** named "LICENSE", which contains the full text of the legal notices
|
||
** and should always accompany this Distribution.
|
||
*/
|
||
|
||
This file contains several sections:
|
||
|
||
KS TOPS-20 INSTALLATION (including tape and disk boot scripts)
|
||
KS T20 BOOT BUG NOTES
|
||
KS T20 MONITOR BUG
|
||
|
||
|
||
KS TOPS-20 INSTALLATION
|
||
=======================
|
||
|
||
Once you have installed the KLH10 binaries, you will need to
|
||
install a PDP-10 operating system on the KN10's virtual disks. This
|
||
file documents the basic procedure for TOPS-20 on a KS10 (2020).
|
||
|
||
Although the TOPS-20 installation procedures were certainly listed
|
||
somewhere in Digital's documentation, I'm not sure what references to
|
||
provide; they may be difficult or impossible to find. In any case,
|
||
some of the steps on a KN10 will be different.
|
||
|
||
(NB: the field service documentation files "red20.hlp" and "red20.mem"
|
||
helped me, but they were not intended for customers.)
|
||
|
||
You will need an "installation" tape or tape image to get started, and
|
||
almost certainly will want to install the accompanying sources and
|
||
tools. You should already have a valid TOPS-20 license (personal or
|
||
otherwise) in order to use them.
|
||
|
||
These are the tapes containing the last known DEC TOPS-20 distribution
|
||
for the KS10 (DEC-2020), which was TOPS-20 V4.1:
|
||
|
||
BB-D867E-BM TOPS-20 V4.1 2020 INSTL 16MT9 1983
|
||
BB-D868E-BM T-20 V4.1 2020 DIST 16MT9 1/2 1983
|
||
BB-V895A-BM T-20 V4.1 2020 DIST 16MT9 2/2 1983 ("1/9/85")
|
||
BB-J710B-BM TOPS-20 V4.1 TOOLS 16MT9 1983 ("3/27/85")
|
||
Tops-20 V4.1 TP#12 "Exec Src Mod" Gidney TU78 21-Nov-85
|
||
Tops-20 V4.1 TP#12 "Monitor Sources" Gidney TU78 21-Nov-85
|
||
|
||
It should be possible to obtain these from www.trailing-edge.com. In
|
||
particular, start with the first of these, which is the installation
|
||
tape:
|
||
|
||
ftp://ftp.trailing-edge.com/pub/pdp10/bb-d867e-bm_tops20_v41_2020_instl.tap.gz
|
||
|
||
The script that follows assumes you have uncompressed this into the
|
||
somewhat more manageable name of "bb-d867e-bm.tap" in your $KLH10_HOME.
|
||
|
||
In the transcript that follows, all notes are prefaced by triple
|
||
semicolons (;;;), and user input is presented in lowercase where
|
||
possible -- note that the monitor sometimes echoes typein in
|
||
uppercase. Where there might be some confusion, a note such as "Type
|
||
CR" will identify what you need to type.
|
||
|
||
=====================================================
|
||
|
||
QUICK SUMMARY:
|
||
|
||
$ ./kn10-ks inst-kst20.ini ;;; Configure and load tape bootstrap
|
||
;;; (normally smmtbt-k.sav, entry 40000)
|
||
KLH10> go
|
||
MTBOOT>/l ;;; Load rest of monitor
|
||
MTBOOT>/g143 ;;; Start at FS-creation entry point
|
||
;;; (/g147 if a filesystem already exists)
|
||
;;; After quiets down, ^C to get MEXEC, and carry on
|
||
|
||
;;; After installation finished:
|
||
$ ./kn10-ks klh10.ini ;;; Configure and load disk bootstrap
|
||
KLH10> go
|
||
BOOT> ;;; Type CR to load and start MONITR.EXE
|
||
|
||
=====================================================
|
||
|
||
FULL SCRIPT:
|
||
|
||
;;; Here we go...
|
||
;;;
|
||
$ ./kn10-ks inst-kst20.ini ;;; You type this
|
||
KLH10 V2.0 beta (MyKS) built Nov 10 2001 02:14:29
|
||
Copyright © 2001 Kenneth L. Harrenstien -- All Rights Reserved.
|
||
This program comes "AS IS" with ABSOLUTELY NO WARRANTY.
|
||
|
||
Compiled for LINUX on I386 with word model USEHWD
|
||
Emulated config:
|
||
CPU: KS10 SYS: T20 Pager: KL APRID: 759
|
||
Memory: 1024 pages of 512 words (SHARED)
|
||
Time interval: INTRP Base: OSGET
|
||
Interval default: 60Hz
|
||
Internal clock: OSINT
|
||
Other: JPC DEBUG PCCACHE CTYINT IMPINT EVHINT
|
||
Devices: RH11 RPXX(DP) TM03(DP)
|
||
[MEM: Allocating 1024 pages shared memory, clearing...done]
|
||
|
||
KLH10> ; This is a sample KLH10 config file for a KS10 running TOPS-20.
|
||
KLH10>
|
||
KLH10> ; Define basic KS10 device config - two RH11s each on its own Unibus
|
||
KLH10>
|
||
KLH10> devdef rh0 ub1 rh11 addr=776700 br=6 vec=254
|
||
KLH10> devdef rh1 ub3 rh11 addr=772440 br=6 vec=224
|
||
KLH10>
|
||
KLH10> ; Provide one disk, one tape in config T20 expects
|
||
KLH10>
|
||
KLH10> devdef dsk0 rh0.0 rp type=rp06 format=dbd9 path=T20-RP06.0-dbd9 iodly=0
|
||
KLH10> [dprpxx: WARNING! sigpend 37, 40, 43, 44, 45, 46, 47, 48, 49, 63]
|
||
[Creating RP06 disk file "T20-RP06.0-dbd9"]
|
||
devdef mta0 rh1.0 tm03 fmtr=tm03 type=tu45
|
||
KLH10>
|
||
KLH10> ; Mount installation tape, skipping past ucode and defective boot
|
||
KLH10> devmount mta0 bb-d867e-bm.tap fskip=2
|
||
Mount requested: "bb-d867e-bm.tap"
|
||
[dptm03: WARNING! sigpend 33, 35, 37, 39, 40, 42, 44, 46, 48, 50, 63]
|
||
KLH10>
|
||
[mta0: Tape online]
|
||
KLH10> ; Load fixed tape bootstrap directly
|
||
KLH10> load smmtbt-k.sav
|
||
Using word format "c36"...
|
||
Loaded "smmtbt-k.sav":
|
||
Format: DEC-CSAV
|
||
Data: 1017, Symwds: 0, Low: 040000, High: 044010, Startaddress: 040000
|
||
Entvec: JRST (120 ST: 0, 124 RE: 0, 137 VR: 0,,0)
|
||
KLH10>
|
||
KLH10> ; Now ready to GO
|
||
KLH10> [EOF on inst-kst20.ini] ;;; Init file now done.
|
||
KLH10> go ;;; Boot is loaded, type "go" to start KN10!
|
||
Starting KN10 at loc 040000...
|
||
|
||
MTBOOT>/l ;;; Type "/l" to load monitor
|
||
|
||
MTBOOT>/g143 ;;; Now type "/g143" to start monitor
|
||
uba_read: Bad unibus IO addr: 760540 ;;; KN10 reports probes of non-ex
|
||
uba_read: Bad unibus IO addr: 760010 ;;; devices; these are harmless.
|
||
|
||
|
||
[FOR ADDITIONAL INFORMATION TYPE "?" TO ANY OF THE FOLLOWING QUESTIONS.]
|
||
|
||
DO YOU WANT TO REPLACE THE FILE SYSTEM ON THE PUBLIC STRUCTURE? Y
|
||
|
||
DO YOU WANT TO DEFINE THE PUBLIC STRUCTURE? Y
|
||
|
||
HOW MANY PACKS ARE IN THIS STRUCTURE: 1
|
||
|
||
ON WHICH "CHANNEL,UNIT" IS LOGICAL PACK # 0 MOUNTED: 0,0
|
||
|
||
DO YOU WANT THE DEFAULT SWAPPING SPACE? Y
|
||
|
||
DO YOU WANT THE DEFAULT SIZE FRONT END FILE SYSTEM? Y ;;; Unnec but OK
|
||
|
||
DO YOU WANT THE DEFAULT SIZE BOOTSTRAP AREA? Y
|
||
|
||
[STRUCTURE "PS" SUCCESSFULLY DEFINED]
|
||
|
||
[PS MOUNTED]
|
||
?PS UNIT 0 HAS NO BAT BLOCKS.
|
||
DO YOU WANT TO WRITE A SET OF PROTOTYPE BAT BLOCKS? Y
|
||
uba_read: Bad unibus IO addr: 775400
|
||
uba_read: Bad unibus IO addr: 777160
|
||
|
||
%%NO SETSPD
|
||
|
||
System restarting, wait...
|
||
ENTER CURRENT DATE AND TIME: 30-SEP-2001 0605 ;;; Must enter time, sigh
|
||
|
||
YOU HAVE ENTERED SUNDAY, 30-SEPTEMBER-2001 6:05AM,
|
||
IS THIS CORRECT (Y,N) Y
|
||
WHY RELOAD? NEW ;;; Type "new" or whatever.
|
||
|
||
<SYSTEM>ACCOUNTS-TABLE.BIN NOT FOUND - ACCOUNT VALIDATION IS DISABLED
|
||
uba_read: Bad unibus IO addr: 760540
|
||
|
||
RUNNING DDMP
|
||
|
||
|
||
NO SYSJOB
|
||
;;; After you get "NO SYSJOB" you can type either
|
||
;;; a ^C to get to the MEXEC prompt ("MX>").
|
||
NO EXEC
|
||
MX>GET FILE MTA0: ;;; Type just "g" then "mta0:" and CR.
|
||
|
||
INTERRUPT AT 0 ;;; Monitor will read an EOF and do nothing.
|
||
MX>GET FILE MTA0: ;;; Repeat, to read EXEC.EXE from tape.
|
||
MX>START ;;; Type just "s" then CR.
|
||
|
||
TOPS-20 Command processor 5.1(1354)
|
||
@TER NO RAI ;;; Success! Let's stop uppercasing our input,
|
||
@ena ;;; and must get enabled.
|
||
$run mta0: ;;; Now read and start DLUSER.EXE from tape.
|
||
DLUSER>load mta0: ;;; Now read DLUSER data to set up directories.
|
||
|
||
DONE.
|
||
DLUSER>exit ;;; Get out.
|
||
$run mta0: ;;; Now read and start DUMPER.EXE from tape.
|
||
DUMPER>tape mta0: ;;; Point to tape drive and start restoring files!
|
||
;;; Note in the next command it is important to
|
||
;;; explicitly specify "<system>", otherwise the
|
||
;;; files will be restored into "<NEW-SYSTEM>".
|
||
DUMPER>restore <*>*.*.* (TO) <system>*.*.*
|
||
|
||
|
||
DUMPER tape # 1, "SYSTEM files for TOPS-20 V4.1", Thursday, 7-Apr-83 17
|
||
21
|
||
Loading file(s) into PS:<SYSTEM>
|
||
|
||
End of saveset
|
||
;;; Note in the next command it is important to
|
||
;;; explicitly specify "<system>", otherwise the
|
||
;;; files will be restored into "<NEW-SYSTEM>".
|
||
DUMPER>restore <*>*.*.* (TO) <subsys>*.*.*
|
||
|
||
|
||
DUMPER tape # 1, "SUBSYS files for TOPS-20 V4.1", Thursday, 7-Apr-83 17
|
||
23
|
||
Loading file(s) into PS:<SUBSYS>
|
||
|
||
End of saveset
|
||
;;; The last saveset is optional and can be skipped.
|
||
;;; If you want the UETP stuff, do:
|
||
DUMPER>restore <*>*.*.* (TO) <*>*.*.*
|
||
|
||
|
||
DUMPER tape # 1, "UETP files for TOPS-20 V4.1", Thursday, 7-Apr-83 1726
|
||
Loading file(s) into PS:<UETP.LIB>
|
||
|
||
End of saveset
|
||
DUMPER>exit ;;; Done, with or without UETP.
|
||
$conn <system>
|
||
$vdir ;;; Check out what we have in <SYSTEM>
|
||
|
||
PS:<SYSTEM>
|
||
2020-ARPA-MONMED.EXE.1;P777700 321 164352(36) 6-Apr-83 00:28:29 PURRET
|
||
TA
|
||
2020-ARPA-MONSML.EXE.1;P777700 321 164352(36) 6-Apr-83 00:24:37 PURRET
|
||
TA
|
||
2020-MONMED.EXE.1;P777700 326 166912(36) 5-Apr-83 23:37:27 PURRETTA
|
||
2020-MONSML.EXE.1;P777700 326 166912(36) 5-Apr-83 23:34:00 PURRETTA
|
||
4-1-SETSPD.EXE.1;P777700 10 5120(36) 7-Dec-82 16:19:35 PURRETTA
|
||
BUGS.MAC.1;P777700 50 127461(7) 10-Nov-82 23:09:16 PURRETTA
|
||
BUGSTRINGS.TXT.1;P777700 10 24240(7) 6-Apr-83 00:28:24 PURRETTA
|
||
CHECKD.EXE.1;P777700 17 8704(36) 7-Dec-82 16:53:16 PURRETTA
|
||
DUMP.EXE.1;P777700 1025 524800(36) 13-Feb-80 17:44:06 PURRETTA
|
||
ERRMES.BIN.1;P777752 16 7717(36) 20-Dec-82 16:18:48 PURRETTA
|
||
ERROR.SYS.1;P777752 1 23(36) 30-Sep-2001 06:05:03 OPERATOR
|
||
EXEC.EXE.1;P777752 102 52224(36) 1-Dec-82 02:17:14 PURRETTA
|
||
FTPSER.EXE.1;P777700 17 8704(36) 15-Apr-82 10:14:40 PURRETTA
|
||
GALAXY.BWR.1;P777700 2 818(36) 20-Dec-82 16:40:58 PURRETTA
|
||
.DOC.1;P777700 3 1402(36) 14-Jan-83 22:30:20 WING
|
||
HSTNAM.TXT.1;P777700 4 9974(7) 12-Aug-82 14:36:51 PURRETTA
|
||
KS10.RAM.1;P777700 12 6144(36) 20-May-82 10:46:56 PURRETTA
|
||
.ULD.1;P777700 42 21186(36) 1-Mar-82 16:27:00 PURRETTA
|
||
MTBOOT.RDI.1;P777700 6 3072(36) 20-May-82 10:47:30 PURRETTA
|
||
NETSRV.RUN.1;P777700 1 234(7) 3-Nov-81 16:32:05 PURRETTA
|
||
PROGRAM-NAME-CACHE.TXT.1;P777700 1 78(7) 9-Mar-81 15:24:00 PURRETTA
|
||
PTYCON.ATO.1;P777700 1 333(7) 29-Mar-82 15:46:43 PURRETTA
|
||
REAPER.CMD.1;P777700 1 537(7) 22-Aug-79 19:53:37 PURRETTA
|
||
SMBOOT.EXE.1;P777700 3 1175(36) 13-May-82 12:17:47 PURRETTA
|
||
SMFILE.EXE.1;P777700 42 21504(36) 19-Feb-79 15:58:00 PURRETTA
|
||
.HLP.1;P777700 1 163(36) 19-Feb-79 15:42:00 PURRETTA
|
||
SMMTBT.EXE.1;P777700 3 1030(36) 13-May-82 12:18:15 PURRETTA
|
||
SYSJOB.EXE.1;P777700 7 3584(36) 20-Dec-82 17:43:24 PURRETTA
|
||
.HLP.1;P777700 3 5679(7) 29-Mar-82 15:47:02 PURRETTA
|
||
.RUN.1;P777700 1 340(7) 29-Mar-82 15:46:54 PURRETTA
|
||
SYSTEM.CMD.1;P777700 1 725(7) 8-May-79 14:46:35 PURRETTA
|
||
TOPS20.BWR.1;P777700 6 2669(36) 6-Apr-83 16:12:07 PURRETTA
|
||
.DOC.1;P777700 3 1255(36) 6-Apr-83 16:04:44 PURRETTA
|
||
|
||
Total of 2685 pages in 33 files
|
||
$ ;;; For convenience, now is a good time to
|
||
;;; make MONITR.EXE be your desired monitor!
|
||
$ren 2020-monmed.EXE.* (TO BE) monitr.exe
|
||
2020-MONMED.EXE.1 => MONITR.EXE.1 [OK]
|
||
$^Ecease +1 ;;; OK, now we can try a disk boot.
|
||
|
||
[System going down in one minute!!]
|
||
$ ;;; It really does take a minute. Patience...
|
||
[System down]
|
||
|
||
Shutdown complete ;;; When you see this, type ^\ (CTRL-\)
|
||
[HALTED: FE interrupt] ;;; to return to KLH10
|
||
KLH10> shutdown ;;; Then give "shutdown" command.
|
||
Continuing KN10 at loc 03...
|
||
**HALTED**
|
||
[HALTED: Program Halt, PC = 10754]
|
||
KLH10> q ;;; OK to quit KLH10 now!
|
||
Are you sure you want to quit? [Confirm]
|
||
Shutting down...Bye!
|
||
$ ;;; Back at unix shell prompt
|
||
|
||
|
||
|
||
$ ./kn10-ks kst20.ini ;;; Fire it up again, with different ini file
|
||
KLH10 V2.0 alpha (MyKS) built Sep 30 2001 05:01:44
|
||
Copyright © 1992-2001 Kenneth L. Harrenstien -- All Rights Reserved.
|
||
Proprietary and Confidential; the copyright notice does not indicate
|
||
actual or intended publication.
|
||
This software is provided under a license agreement described by the
|
||
accompanying file "LICENSE". USE OF THIS SOFTWARE CONSTITUTES
|
||
ACCEPTANCE OF THE TERMS OF THE LICENSE AGREEMENT.
|
||
This program comes "AS IS" with ABSOLUTELY NO WARRANTY.
|
||
|
||
Compiled for LINUX on I386 with word model USEHWD
|
||
Emulated config:
|
||
CPU: KS10 SYS: T20 Pager: KL APRID: 759
|
||
Memory: 1024 pages of 512 words (SHARED)
|
||
Time interval: INTRP Base: OSGET
|
||
Interval default: 60Hz
|
||
Internal clock: OSINT
|
||
Other: JPC DEBUG PCCACHE CTYINT IMPINT EVHINT
|
||
Devices: RH11 RPXX(DP) TM03(DP)
|
||
[MEM: Allocating 1024 pages shared memory, clearing...done]
|
||
|
||
KLH10> ; This is a sample KLH10 config file for a KS10 running TOPS-20.
|
||
KLH10>
|
||
KLH10> ; Define basic KS10 device config - two RH11s each on its own Unibus
|
||
KLH10>
|
||
KLH10> devdef rh0 ub1 rh11 addr=776700 br=6 vec=254
|
||
KLH10> devdef rh1 ub3 rh11 addr=772440 br=6 vec=224
|
||
KLH10>
|
||
KLH10> ; Provide one disk, one tape in config T20 expects
|
||
KLH10>
|
||
KLH10> devdef dsk0 rh0.0 rp type=rp06 format=dbd9 path=T20-RP06.0-dbd9 iodly=0
|
||
KLH10> [dprpxx: WARNING! sigpend 37, 40, 43, 44, 45, 46, 47, 48, 49, 63]
|
||
devdef mta0 rh1.0 tm03 fmtr=tm03 type=tu45
|
||
KLH10>
|
||
KLH10> ; Define HOST device hackery if monitor supports it
|
||
KLH10> ;devdef idler 700 host
|
||
KLH10>
|
||
KLH10> ; For convenience, load up disk bootstrap
|
||
KLH10> load smboot-k.sav
|
||
Using word format "c36"...
|
||
Loaded "smboot-k.sav":
|
||
Format: DEC-CSAV
|
||
Data: 1162, Symwds: 0, Low: 040000, High: 044010, Startaddress: 040000
|
||
Entvec: JRST (120 ST: 0, 124 RE: 0, 137 VR: 0,,0)
|
||
KLH10> [EOF on kst20.ini] ;;; Init file now done.
|
||
KLH10> go ;;; Boot is loaded, type "go" to start KN10!
|
||
Starting KN10 at loc 040000...
|
||
|
||
BOOT> ;;; Type just CR, will default to MONITR.EXE
|
||
uba_read: Bad unibus IO addr: 760540
|
||
uba_read: Bad unibus IO addr: 760010
|
||
|
||
|
||
[PS MOUNTED]
|
||
uba_read: Bad unibus IO addr: 775400
|
||
uba_read: Bad unibus IO addr: 777160
|
||
|
||
System restarting, wait...
|
||
ENTER CURRENT DATE AND TIME: 30-SEP-2001 0611 ;;; Must enter time AGAIN!
|
||
|
||
YOU HAVE ENTERED SUNDAY, 30-SEPTEMBER-2001 6:11AM,
|
||
IS THIS CORRECT (Y,N) Y
|
||
WHY RELOAD? OTHER
|
||
|
||
<SYSTEM>ACCOUNTS-TABLE.BIN NOT FOUND - ACCOUNT VALIDATION IS DISABLED
|
||
RUN CHECKD? Y ;;; "Y" for first time is good idea
|
||
[CHECKING FILE CONSISTENCY]
|
||
|
||
[WORKING ON STRUCTURE - PS:]
|
||
|
||
|
||
LOCAL COUNT OF FILE PAGES: 8035
|
||
LOCAL COUNT OF OVERHEAD PAGES: 5402
|
||
LOCAL COUNT OF USED PAGES: 13437
|
||
|
||
SYSTEM COUNT BEFORE CHECKD: 13437
|
||
SYSTEM COUNT AFTER CHECKD: 13437
|
||
|
||
THERE ARE NO LOST PAGES.
|
||
|
||
********************
|
||
*BUGINF "UXXFIT" AT 30-SEP-2001 06:11:10
|
||
*CHECKPOINT FILE NOT IN CORRECT FORMAT FOR THIS SYSTEM, REBUILDING...
|
||
*JOB: 0, USER: OPERATOR
|
||
********************
|
||
uba_read: Bad unibus IO addr: 760540
|
||
|
||
RUNNING DDMP
|
||
|
||
|
||
SYSJOB 5(20) STARTED AT 30-SEP-2001 0611
|
||
RUN SYS:ORION
|
||
RUN SYS:QUASAR
|
||
RUN SYS:MOUNTR
|
||
RUN SYS:INFO
|
||
RUN SYS:MAILER
|
||
RUN SYS:MAPPER
|
||
RUN SYS:LPTSPL
|
||
RUN SYS:LPTSPL
|
||
RUN SYS:CDRIVE
|
||
RUN SYS:SPRINT
|
||
JOB 0 /LOG OPERATOR XX OPERATOR
|
||
ENA
|
||
^ESET LOGIN PSEUDO
|
||
^ESET LOGIN CONSOLE
|
||
^ESET OPERATOR
|
||
PTYCON
|
||
GET SYSTEM:PTYCON.ATO
|
||
/
|
||
JOB 1 /LOG OPERATOR XX OPERATOR
|
||
ENA
|
||
RUN SYS:BATCON
|
||
/
|
||
SJ 0: @LOG OPERATOR OPERATOR
|
||
SJ 1: @LOG OPERATOR OPERATOR
|
||
SJ 0: JOB 1 ON TTY43 30-SEP-2001 06:11:20
|
||
SJ 0: @ENA
|
||
SJ 0: $^ESET LOGIN PSEUDO
|
||
SJ 0: $^ESET LOGIN CONSOLE
|
||
SJ 0: $^ESET OPERATOR
|
||
SJ 0: $PTYCON
|
||
SJ 1: JOB 2 ON TTY44 30-SEP-2001 06:11:21
|
||
SJ 1: @ENA
|
||
SJ 1: $RUN SYS:BATCON
|
||
SJ 0: PTYCON> GET SYSTEM:PTYCON.ATO
|
||
SJ 0: PTYCON> SILENCE
|
||
|
||
[From OPERATOR on line 45 to all: SYSTEM IN OPERATION]
|
||
SJ 0: PTYCON.LOG.1
|
||
SJ 0: PTYCON> W ALL
|
||
SJ 0: OPR(0) 3 OPERATOR OPR TI 0:0:0
|
||
SJ 0: PTYCON> CONN OPR
|
||
SJ 0: [CONNECTED TO SUBJOB OPR(0)]
|
||
;;; When things seem quiet, type CR to get an EXEC.
|
||
|
||
TOPS-2020 MEDIUM SYSTEM, TOPS-20 Monitor 4.1(5471)
|
||
@TER NO RAI
|
||
@log operator ;;; Try logging in, pwd "DEC-20"
|
||
Job 4 on TTY42 30-Sep-2001 06:11:53
|
||
@ena
|
||
$ ;;; Now do whatever you wish...
|
||
|
||
|
||
=====================================================
|
||
|
||
Other things you probably want to do at some point:
|
||
|
||
|
||
$copy tty: monnam.txt ;;; Set the system name
|
||
MyKS TOPS-20 System
|
||
^Z
|
||
$copy tty: 4-1-config.cmd ;;; Set timezone here for now
|
||
timezone 8
|
||
^Z
|
||
$^Ecreate <operator> ;;; Change operator password
|
||
$$password tqbfjotld ;;; (use something better)
|
||
$$
|
||
$^Ecreate <me> ;;; Create your account
|
||
$$password nittfagmtc2taotp ;;; (or something better)
|
||
$$wheel
|
||
$$working 10000
|
||
$$permanent 10000
|
||
$$
|
||
$
|
||
|
||
There are large manuals devoted to TOPS-20 system maintenance, but
|
||
this is enough to make you dangerous.
|
||
|
||
KS T20 BOOT BUG NOTES
|
||
=====================
|
||
|
||
BOOT
|
||
----
|
||
The magtape bootstrap source is BOOT.MAC, which was still used
|
||
to build both KL and KS bootstraps as of V4.1 of TOPS-20 (but at some
|
||
point thereafter, and certainly as of V6.0, there were big changes --
|
||
the KS code no longer exists in the last TOPS-20 BOOT.MAC).
|
||
For the KS10, BOOT is assembled into either SMBOOT.EXE (for
|
||
booting from disk) or SMMTBT.EXE (for booting from tape), both in
|
||
CSAVE format. There is also SMBOOT.I?? which is SMBOOT.EXE converted
|
||
into FE-loadable format, which the KLH10 does not use.
|
||
|
||
Unfortunately the KS10 BOOT cannot be used as-is without either
|
||
patching it or playing tricks in the emulator. It has at least
|
||
three bugs:
|
||
|
||
[1] The most serious is the following:
|
||
40120/ J3+6/ WRCSTM [77B5]
|
||
should be: WRCSTM [77B5]-ENT(16)
|
||
(or better yet set up with a MOVSI 1,770000 ? WRCSTM 1)
|
||
|
||
This fails because at the time it is executed it has been
|
||
moved into high core and the literal is no longer at that
|
||
address! It ends up loading the CST mask with 0 which
|
||
causes an infinite page failure loop when the code turns
|
||
paging on for the first time.
|
||
|
||
It is not clear how a real KS10 managed to get past this bug.
|
||
|
||
For now, this has been patched:
|
||
40120/ 702540,,40127 => 702540,,774127
|
||
(Start address remains 40000.)
|
||
|
||
[2] In the code starting at FNDDEV there is the instruction
|
||
SETZM KLIOWD (zeros loc 35, KLINIK output word)
|
||
which causes a page trap because at this point page 0 is unmapped.
|
||
This instruction should either be done before turning paging on,
|
||
or after low pages have been mapped.
|
||
|
||
It was probably never noticed because the page fault handler
|
||
merely continues at .+1.
|
||
|
||
[3] The disk bootstrap (SMBOOT) also has a bug of its own:
|
||
CHKCHN: CAIG P,MAXCHN1 (CAIG 17,2)
|
||
should be: CAIG P1,MAXCHN-1 (CAIG 10,1)
|
||
|
||
Note there are two independent typo bugs in that one instruction!
|
||
Geez. First, the compare to P instead of P1 is clearly wrong.
|
||
Second, MAXCHN1 is undefined; the assembler does not distinguish
|
||
symbols beyond the first 6 characters so MAXCHN is silently being
|
||
used, with a value of 2. This causes the loop to check 3 channels
|
||
(0,1,2) but only 2 channels are provided for in the RH11CH table!
|
||
Trying to check the 3rd channel results in referencing the wrong
|
||
words of a valid channel, or worse.
|
||
|
||
This probably worked in real life because the first RH11
|
||
always existed and was always used for the boot.
|
||
|
||
For now, this has been patched:
|
||
SMMTBT: 41335/ 307740,,2 => 307400,,1
|
||
SMBOOT: 41441/ 307740,,2 => 307400,,1
|
||
|
||
FIXED VERSIONS
|
||
--------------
|
||
|
||
The patched versions of these binaries have been dumped out as:
|
||
|
||
SMBOOT: smboot-k.sav (c36 CSAVE format)
|
||
SMMTBT: smmtbt-k.sav (c36 CSAVE format)
|
||
|
||
|
||
MONITOR BOOT BUG
|
||
----------------
|
||
|
||
There is a T20 monitor bug with the G/143 boot code that
|
||
prevents simply loading monitr.exe directly into the KLH10 and
|
||
starting it.
|
||
When the monitor gets around to executing its first PXCT at
|
||
KISLOD+2 to set up the user ACs, it actually clobbers its own ACs.
|
||
The reason for this is that no WRUBR was ever done to set the
|
||
previous-context AC block; the emulator initializes both contexts to
|
||
AC block 0. Several WRUBRs have been executed prior to this, but none
|
||
of them ever set the AC block fields. One of them (at PGRON+3)
|
||
doesn't even set the base address either; they mostly seem to be used
|
||
as the CLHWPT macro to clear the cache and paging hardware, and refer
|
||
to an argument of KIPGW0 or KIPGWD which in the source (APRSRV.MAC)
|
||
don't have the set-ac-block flag set.
|
||
This appears to have worked in the past because BOOT, which
|
||
is expected to load monitr.exe, has already set the previous-context-AC
|
||
block to 6.
|
||
For now, this can be avoided by always using SMBOOT or SMMTBT.
|
||
One solution would be for the KLH10 FE to provide a "monitor load"
|
||
command that did this previous-context AC block setting (and any other
|
||
setup that might be found necessary) in addition to doing a normal
|
||
binary load.
|
||
|
||
KS T20 MONITOR BUG
|
||
------------------
|
||
|
||
There seems to be a timing race condition when outputting to
|
||
the CTY. Normally the KLH10 responds instantly to a KS->FE interrupt
|
||
request by gobbling a valid output char and sending a FE->KS interrupt.
|
||
This causes output to wedge after the first bufferful until another
|
||
FE->KS interrupt is given.
|
||
This happens because of the code in the tty driver that
|
||
tries to turn interrupts off and then on while initiating output of the
|
||
first char. It actually doesn't do any good and the entire buffer is
|
||
emptied at interrupt level before the first call returns!
|
||
|
||
|
||
KS T20 MONITOR SOURCE GLITCH
|
||
----------------------------
|
||
|
||
My copy of the "Monitor Sources" tape has a bad record data
|
||
header which resulted in problems with the "sources.cmd" file; it
|
||
either has its last page clobbered or has 444 zero words appended.
|
||
Shoppa's copy may not have this problem. Fortunately it isn't
|
||
an essential file.
|