NetBSD/pdp10自体は、gcc for PDP-10の開発が止まってしまったので、放棄されているらしいが、KLH10がpkgsrcにないのは残念なので、追加してみたいと思った。
NetBSD/pdp10のウェブページによると、KL10Bというextended addressingをサポートするCPUをエミュレートするのは、KLH10だけである。
KLH10自体は、KL10B以外にKS10等もエミュレートするバイナリーを作ることができるが、今はそれには対応するpackageにはなっていない。
追加するには、当然動作確認が必要なので、TOPS-20を実行してみた。最新のKLH10を探しているうちに、NetBSDでのtap(4)ネットワークサポートのパッチが提供されていることが分かったので、それを適用して、telnetでloginできることも確認した。
TOPS-20はV7.0をインストールする。最新版は、V7.1のはずだが、どの磁気テープか確認できていないので。
pkgsrcにKLH10を追加する方法は書いても仕方ないので、pkgsrc/emulators/klh10を使って、TOPS-20にtelnetでloginするまでの方法を書いておく。
まずは、pkgsrc/emulators/klh10をmake installでインストールする。これは、現在のところ、NetBSD/i386とNetBSD/amd64しか想定しておらず、NetBSD/amd64 6.9924でしか動作確認していない。NetBSD/i386でも動くと思われる。armやalphaでのbuildができるようにするのは、そのうち対応したい。
KLH10の起動方法は普通のエミュレータープログラムとは異なる。/usr/pkg/share/klh10/binディレクトリーにあるバイナリーファイルは全て、kn10-klを実行するディレクトリーに置かれなくてはいけない。PATHが通っているからと言って、ちゃんと探して実行してもらえるようなことはないので、注意が必要である。
TOPS-20をKL10Bで動かすための環境は、/usr/pkg/share/klh10/klt20にインストールされる。
$ mkdir pdp10 $ cp -r /usr/pkg/share/klh10/klt20 ~/pdp10 $ cd klt20 $ cp /usr/pkg/share/klh10/bin/* .
として、KLH10を実行できる環境を整える。
次に、TOPS-20の磁気テープイメージをダウンロードする。
http://pdp-10.trailing-edge.com/tapes/ にあるものを使う。
TOPS-20本体については、bitsavers等にあるものでも良いが、TCP/IPに関しては、minotorプログラムが含まれていない磁気テープイメージもあるので、違うイメージを使う時には注意が必要である。
$ cd ~/pdp10/klh20
# TOPS-20 V7.0本体
$ ftp http://pdp-10.trailing-edge.com/tapes/bb-h137f-bm.tap.bz2
# TCP/IP拡張
$ ftp http://pdp-10.trailing-edge.com/tapes/bb-ev83b-bm_longer.tap.bz2
$ bunzip bb-h137f-bm.tap.bz2
$ bunzip bb-ev83b-bm_longer.tap.bz2
次は、KLH10を起動させて、TOPS-20をインストールする。
基本的には、/usr/pkg/share/klh10/klt20.txt にある通りに進める。
磁気テープイメージによって、若干違いがあるかもしれない。
以下に、インストール時のログを示す。
$ ./kn10-kl inst-klt20.ini
KLH10 V2.0H (MyKL) built Oct 18 2013 00:36:03
Copyright � 2002 Kenneth L. Harrenstien -- All Rights Reserved.
This program comes "AS IS" with ABSOLUTELY NO WARRANTY.
Compiled for NETBSD on I386 with word model USEHWD
Emulated config:
CPU: KL10-extend SYS: T20 Pager: KL APRID: 3600
Memory: 8192 pages of 512 words (SHARED)
Time interval: INTRP Base: OSGET
Interval default: 60Hz
Internal clock: OSINT
Other: MCA25 JPC DEBUG PCCACHE CTYINT EVHINT
Devices: DTE RH20 RPXX(DP) TM03(DP) NI20(DP)
[MEM: Allocating 8192 pages shared memory, clearing...done]
KLH10# ; Sample KLH10.INI for initial installation
KLH10#
KLH10# ; Define basic device config - one DTE, one disk, one tape.
KLH10# ; Use two RH20s because TOPS-10 doesn't like mixing disk and tape on
KLH10# ; the same controller (TOPS-20 is fine).
KLH10#
KLH10# devdef dte0 200 dte master
KLH10# devdef rh0 540 rh20
KLH10# devdef rh1 544 rh20
KLH10# devdef dsk0 rh0.0 rp type=rp06 format=dbd9
KLH10# devdef mta0 rh1.0 tm03 type=tu45
KLH10#
KLH10# ; Need KLNI to avoid LAPRBF BUGCHKs - use valid address if known
KLH10# ;
KLH10# devdef ni0 564 ni20 ipaddr=10.0.0.51
KLH10#
KLH10# ; Mount installation tape (no ucode or boot to skip)
KLH10# devmount mta0 bb-h137f-bm.tap
Mount requested: "bb-h137f-bm.tap"
[mta0: Tape online]
KLH10#
KLH10# ; Load tape bootstrap directly
KLH10# load mtboot.sav
Using word format "c36"...
Loaded "mtboot.sav":
Format: DEC-CSAV
Data: 4067, Symwds: 0, Low: 040000, High: 054641, Startaddress: 040000
Entvec: JRST (120 ST: 0, 124 RE: 0, 137 VR: 0,,0)
KLH10#
KLH10# ; Now ready to GO
KLH10# [EOF on inst-klt20.ini]
KLH10# go
Starting KN10 at loc 040000...
BOOT V11.0(315)
MTBOOT>/l
[BOOT: Loading] [OK]
MTBOOT>/g143
[FOR ADDITIONAL INFORMATION TYPE "?" TO ANY OF THE FOLLOWING QUESTIONS.]
DO YOU WANT TO REPLACE THE FILE SYSTEM ON THE SYSTEM STRUCTURE? Y
DO YOU WANT TO DEFINE THE SYSTEM STRUCTURE? Y
HOW MANY PACKS ARE IN THIS STRUCTURE: 1
ON WHICH "CHANNEL,CONTROLLER,UNIT" IS LOGICAL PACK # 0 MOUNTED? 0,-1,0
DO YOU WANT THE DEFAULT SWAPPING SPACE? Y
DO YOU WANT THE DEFAULT SIZE FRONT END FILE SYSTEM? Y
DO YOU WANT THE DEFAULT SIZE BOOTSTRAP AREA? Y
DO YOU WANT TO ENABLE PASSWORD ENCRYPTION FOR THE SYSTEM STRUCTURE? Y
WHAT IS THE NAME OF THIS STRUCTURE? PS
[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
%%NO SETSPD.
System restarting, wait...
DATE AND TIME IS: FRIDAY, 18-OCTOBER-2013 11:03PM
WHY RELOAD? NEW
PROBLEM WITH ACCOUNTS-TABLE.BIN
CANNOT FIND ERROR MESSAGE FILE - ACCOUNT VALIDATION IS DISABLED
RUNNING DDMP
NO SYSJOB
********************
*BUGCHK "KNICFF" AT 18-OCT-2013 23:03:38
*PHYKNI - CANNOT RELOAD THE KLNI
*JOB: 0, USER: OPERATOR
*ADDITIONAL DATA: 600104
********************
NO EXEC
MX>GET FILE MTA0:
?
MX>GET FILE MTA0:
MX>START
TOPS-20 Command processor 7(4143)
@TER NO RAI
@ena
$run mta0:
DLUSER>load mta0:
DONE.
DLUSER>exit
$run mta0:
DUMPER>tape mta0:
DUMPER>restore <*>*.*.* (TO) *.*.*
Saveset "SYSTEM Files for TOPS-20 V7.0" 22-Jun-88 2035
Loading files into PS:
End of Saveset.
Total files restored: 26
Total pages restored: 1765
DUMPER>restore <*>*.*.* (TO) *.*.*
Saveset "SUBSYS Files for TOPS-20 V7.0" 22-Jun-88 2037
Loading files into PS:
End of Saveset.
Total files restored: 176
Total pages restored: 4535
DUMPER>restore <*>*.*.* (TO) *.*.*
Saveset "GALAXY SUBSYS Files for TOPS-20 V7.0" 22-Jun-88 2043
Loading files into PS:
End of Saveset.
Total files restored: 25
Total pages restored: 586
DUMPER>restore <*>*.*.* (TO) <*>*.*.*
Saveset "UETP Files for TOPS-20 V7.0" 22-Jun-88 2044
Loading files into PS:
End of Tape.
Total files restored: 55
Total pages restored: 482
DUMPER>exit
$conn
$vdir
PS:
2060-MONBIG.EXE.1;P777752 597 305664(36) 26-May-88 17:05:33 BROOKS
2060-MONMAX.EXE.1;P777752 597 305664(36) 26-May-88 17:28:27 BROOKS
7-PTYCON.ATO.1;P777752 1 823(7) 2-Jun-88 22:29:16 BROOKS
7-SETSPD.EXE.1;P777752 14 7168(36) 28-May-88 02:21:05 BROOKS
7-SYSJOB.EXE.1;P777752 7 3584(36) 28-May-88 03:11:07 BROOKS
.RUN.1;P777752 1 158(7) 2-Jun-88 21:41:35 BROOKS
BOOT.EXB.1;P777752 12 11658(18) 27-May-88 21:36:22 BROOKS
BUGS.MAC.1;P777752 155 395399(7) 23-May-88 18:14:48 BROOKS
BUGSTRINGS.TXT.1;P777752 22 54680(7) 26-May-88 17:28:13 BROOKS
CHECKD.EXE.1;P777752 22 11264(36) 27-May-88 21:42:19 BROOKS
ERRMES.BIN.1;P777752 24 12013(36) 28-May-88 01:48:31 BROOKS
EXEC.EXE.1;P777752 125 64000(36) 27-May-88 11:40:08 BROOKS
FEDDT.EXE.1;P777752 9 4608(36) 14-Feb-79 20:37:17 BROOKS
IPALOD.EXE.1;P777752 28 14336(36) 28-May-88 00:53:56 BROOKS
KNILDR.EXE.1;P777752 26 13312(36) 28-May-88 00:58:59 BROOKS
MTBOOT.EXB.1;P777752 11 10247(18) 27-May-88 21:37:31 BROOKS
PROGRAM-NAME-CACHE.TXT.1;P777752 1 78(7) 9-Mar-81 15:24:00 BROOKS
RP2DBT.EXB.1;P777752 18 17687(18) 27-May-88 21:38:15 BROOKS
RP2MBT.EXB.1;P777752 16 16276(18) 27-May-88 21:39:26 BROOKS
RSX20F.MAP.1;P777752 29 74007(7) 22-Mar-88 14:17:44 BROOKS
SYSJOB.HLP.1;P777752 3 5679(7) 29-Mar-82 15:47:02 BROOKS
SYSTEM.CMD.1;P777752 1 598(7) 24-Feb-84 20:01:23 BROOKS
TGHA.EXE.1;P777752 29 14848(36) 28-May-88 03:20:32 BROOKS
.HLP.1;P777752 1 214(7) 11-Nov-86 20:49:44 BROOKS
TOPS20.BWR.1;P777752 3 1425(36) 1-Jun-88 18:17:20 BROOKS
.DOC.1;P777752 13 6432(36) 21-Jun-88 15:25:11 LOMARTIRE
Total of 1765 pages in 26 files
$renAME (EXISTING FILE) 2060-monbig.EXE.* (TO BE) monitr.exe
2060-MONBIG.EXE.1 => MONITR.EXE.1 [OK]
$^Ecease now
TOPS20 Will be shut down IMMEDIATELY
[Confirm]
[Timesharing is over]
$
OPERATOR - Wait for the message "Shutdown complete" before
entering commands to PARSER.
Shutdown complete
[HALTED: FE interrupt]
KLH10> q
Are you sure you want to quit? [Confirm]
Shutting down...Bye!
ここで注意すべきは終了方法である。
^Ecease nowの^Eは、Ctrl-e を入力すると言うことである。
また、その後、shutdown completeと出たら、Ctrl-\を押すと、KLH10の管理コンソールに移行できるので、そこでqを入力して終了する。
次に、一度TOPS-20にログインしてシャットダウンするまでを示す。
起動できるか確認すると言うことである。
一般ユーザーで起動させるので、tap(4)を使おうとして失敗するメッセージが表示されるが、今は気にしないで良い。
$ ./kn10-kl klt20.ini
KLH10 V2.0H (MyKL) built Oct 18 2013 00:36:03
Copyright � 2002 Kenneth L. Harrenstien -- All Rights Reserved.
This program comes "AS IS" with ABSOLUTELY NO WARRANTY.
Compiled for NETBSD on I386 with word model USEHWD
Emulated config:
CPU: KL10-extend SYS: T20 Pager: KL APRID: 3600
Memory: 8192 pages of 512 words (SHARED)
Time interval: INTRP Base: OSGET
Interval default: 60Hz
Internal clock: OSINT
Other: MCA25 JPC DEBUG PCCACHE CTYINT EVHINT
Devices: DTE RH20 RPXX(DP) TM03(DP) NI20(DP)
[MEM: Allocating 8192 pages shared memory, clearing...done]
KLH10# ; Sample KLH10.INI for initial installation
KLH10#
KLH10# ; Define basic device config - one DTE, one disk, one tape.
KLH10# ; Use two RH20s because TOPS-10 doesn't like mixing disk and tape on
KLH10# ; the same controller (TOPS-20 is fine).
KLH10#
KLH10# devdef dte0 200 dte master
KLH10# devdef rh0 540 rh20
KLH10# devdef rh1 544 rh20
KLH10# devdef dsk0 rh0.0 rp type=rp06 format=dbd9
KLH10# devdef mta0 rh1.0 tm03 type=tu45
KLH10#
KLH10# ; Need KLNI to avoid LAPRBF BUGCHKs - use valid address if known
KLH10# ;
KLH10# ; devdef ni0 564 ni20 ipaddr=10.0.0.51
KLH10# ; The (NetBSD/FreeBSD) version with tap(4) and bridge(4) creates the named
KLH10# ; tap device dynamically and bridges it to the default interface.
KLH10# ; If you want it differently (for instance routed instead of bridged),
KLH10# ; you can create the tap yourself and it will be used as it is.
KLH10# devdef ni0 564 ni20 ipaddr=10.0.0.51 ifc=tap0 dedic=true
KLH10#
KLH10# ; Load disk bootstrap directly
KLH10# load boot.sav
Using word format "c36"...
Loaded "boot.sav":
Format: DEC-CSAV
Data: 4630, Symwds: 0, Low: 040000, High: 054641, Startaddress: 040000
Entvec: JRST (120 ST: 0, 124 RE: 0, 137 VR: 0,,0)
KLH10#
KLH10# ; Now ready to GO
KLH10# [EOF on klt20.ini]
KLH10# go
Starting KN10 at loc 040000...
BOOT V11.0(315)
BOOT>
[BOOT: Loading] [OK]
[PS MOUNTED]
System restarting, wait...
DATE AND TIME IS: FRIDAY, 18-OCTOBER-2013 11:11PM
WHY RELOAD? NEW
PROBLEM WITH ACCOUNTS-TABLE.BIN
CANNOT GET A JFN FOR ACCOUNTS-TABLE.BIN - ACCOUNT VALIDATION IS
DISABLED
RUN CHECKD? N
RUNNING DDMP
SYSJOB 7(78) STARTED AT 18-OCT-2013 2311
RUN SYS:INFO
RUN SYS:MAPPER
JOB 0 /LOG OPERATOR XX OPERATOR
ENA
^ESET LOGIN PSEUDO
^ESET LOGIN CONSOLE
^ESET OPERATOR
PTYCON
GET SYSTEM:7-PTYCON.ATO
/
[dpni20: Warning - cannot set high priority - Permission denied]
[dpni20: Fatal error: Must be superuser!]
[KNILDR: LOADING MICROCODE VERSION 1(172) INTO ETHERNET CHANNEL 0]
18-OCT-2013 23:11:15 - TGHA 4.2(31
SJ 0: @LOG OPERATOR OPERATOR
SJ 0: JOB 1 ON TTY172 18-OCT-2013 23:11:15, LAST LOGIN NEVER
SJ 0: @ENA
) IN OPERATION
********************
*BUGCHK "KNIINF" AT 18-OCT-2013 23:
SJ 0: $^ESET LOGIN PSEUDO
SJ 0: $^ESET LOGIN CONSOLE
11:10
*PHYKNI - KLNI INITIAL
SJ 0: $^ESET OPERATOR
SJ 0: $PTYCON
IZATION TIMED OUT
*JOB: 0, USER: OPERATOR
*ADDITIONAL DATA: 400007000036
********************
********************
*BUGCHK "KNIRLF" AT 18-OCT-2013 23:11:15
*PHYKNI - KLNI RELOAD FAILED
*JOB: 0, USER: OPERATOR
*ADDITIONAL DATA: 10
********************
SJ 0: PTYCON> GET SYSTEM:7-PTYCON.ATO
SJ 0: PTYCON> SILENCE
SJ 0: PTYCON> W ALL
SJ 0: GAL(0) 2 OPERATOR EXEC TI 0:0:0
SJ 0: BAT(1) 3 OPERATOR BATCON RN 0:0:0
SJ 0: NEB(2) 4 OPERATOR NEBULA RN 0:0:0
SJ 0: OPR(3) 5 OPERATOR OPR TI 0:0:0
SJ 0: MAILS(4) 6 OPERATOR MX RN 0:0:0
SJ 0: PTYCON> CONN OPR
SJ 0: [CONNECTED TO SUBJOB OPR(3)]
SJ 0:
SJ 0: 23:11:25 -- DEVICE STATUS FILE INITIALIZATION ERROR --
SJ 0: CHANGED CPU
SJ 0: SYSTEM:DEVICE-STATUS.BIN FILE WILL BE RESET
SJ 0:
SJ 0: 23:11:25 -- STRUCTURE STATUS CHANGE DETECTED --
SJ 0: PREVIOUSLY MOUNTED STRUCTURE PS: DETECTED
SJ 0:
SJ 0: 23:11:25 -- STRUCTURE STATUS CHANGE DETECTED --
SJ 0: STRUCTURE STATE FOR STRUCTURE PS IS INCORRECT
SJ 0: EXCLUSIVE/SHARED ATTRIBUTE SET INCORRECTLY
SJ 0: STATUS OF STRUCTURE PS: IS SET:
SJ 0: DOMESTIC, UNREGULATED, SHARED, AVAILABLE, DUMPABL
E
SJ 0:
TOPS-20 Big System, TOPS-20 Monitor 7(21017)
@TER NO RAI
@log operator
Job 7 on TTY145 18-Oct-2013 23:12:06, Last Login 18-Oct-2013 23:11:21
@ena
SJ 0: OPR>
SJ 0: **** MAILS(4) 23:12:21 ****
SJ 0:
SJ 0: [SCHEDULER]: Waiting for UPS:
SJ 0: **** OPR(3) 23:12:21 ****
vdir
PS:
2060-MONMAX.EXE.1;P777752 597 305664(36) 26-May-88 17:28:27 BROOKS
7-PTYCON.ATO.1;P777752 1 823(7) 2-Jun-88 22:29:16 BROOKS
7-SETSPD.EXE.1;P777752 14 7168(36) 28-May-88 02:21:05 BROOKS
7-SYSJOB.EXE.1;P777752 7 3584(36) 28-May-88 03:11:07 BROOKS
.RUN.1;P777752 1 158(7) 2-Jun-88 21:41:35 BROOKS
BOOT.EXB.1;P777752 12 11658(18) 27-May-88 21:36:22 BROOKS
BUGS.MAC.1;P777752 155 395399(7) 23-May-88 18:14:48 BROOKS
BUGSTRINGS.TXT.1;P777752 22 54680(7) 26-May-88 17:28:13 BROOKS
CHECKD.EXE.1;P777752 22 11264(36) 27-May-88 21:42:19 BROOKS
DEVICE-STATUS.BIN.1;P777752 0 0(0) 18-Oct-2013 23:11:25 OPERATOR
ERRMES.BIN.1;P777752 24 12013(36) 28-May-88 01:48:31 BROOKS
EXEC.EXE.1;P777752 125 64000(36) 27-May-88 11:40:08 BROOKS
FEDDT.EXE.1;P777752 9 4608(36) 14-Feb-79 20:37:17 BROOKS
IPALOD.EXE.1;P777752 28 14336(36) 28-May-88 00:53:56 BROOKS
KNILDR.EXE.1;P777752 26 13312(36) 28-May-88 00:58:59 BROOKS
MONITR.EXE.1;P777752 597 305664(36) 26-May-88 17:05:33 OPERATOR
MTBOOT.EXB.1;P777752 11 10247(18) 27-May-88 21:37:31 BROOKS
PROGRAM-NAME-CACHE.TXT.1;P777752 1 78(7) 9-Mar-81 15:24:00 BROOKS
RP2DBT.EXB.1;P777752 18 17687(18) 27-May-88 21:38:15 BROOKS
RP2MBT.EXB.1;P777752 16 16276(18) 27-May-88 21:39:26 BROOKS
RSX20F.MAP.1;P777752 29 74007(7) 22-Mar-88 14:17:44 BROOKS
SYSJOB.HLP.1;P777752 3 5679(7) 29-Mar-82 15:47:02 BROOKS
SYSTEM.CMD.1;P777752 1 598(7) 24-Feb-84 20:01:23 BROOKS
TGHA.DAT.1;P777752 16 8192(36) 18-Oct-2013 23:11:15 OPERATOR
.EXE.1;P777752 29 14848(36) 28-May-88 03:20:32 BROOKS
.HLP.1;P777752 1 214(7) 11-Nov-86 20:49:44 BROOKS
.TRA.1;P777752 1 237(7) 18-Oct-2013 23:11:15 OPERATOR
TOPS20.BWR.1;P777752 3 1425(36) 1-Jun-88 18:17:20 BROOKS
.DOC.1;P777752 13 6432(36) 21-Jun-88 15:25:11 LOMARTIRE
Total of 1782 pages in 29 files
$^Ecease now
TOPS20 Will be shut down IMMEDIATELY
[Confirm]
[Timesharing is over]
$
OPERATOR - Wait for the message "Shutdown complete" before
entering commands to PARSER.
SJ 0: Killed Job 1, User OPERATOR, Account OPERATOR, TTY 172,
SJ 0: at 18-Oct-2013 23:12:37, Used 0:00:00 in 0:01:21
Shutdown complete
[HALTED: FE interrupt]
KLH10> q
Are you sure you want to quit? [Confirm]
Shutting down...Bye!
ここで注意すべきは、ログインの方法である。
log operatorと書かれている箇所がloginをしている箇所である。
パスワードが必要で、初期値はDEC-20である。
入力方法は、log operator DEC-20エンターキーである。log operatorの後のDEC-20の部分は続けて入力するが表示されない。Unix like OSでの感覚でlog operatorの後にエンターキーを押さないように気をつけなくてはいけない。
次に、TCP/IPをインストールし、初期設定をする方法を示す。
$ ./kn10-kl klt20.ini
KLH10 V2.0H (MyKL) built Oct 18 2013 00:36:03
Copyright � 2002 Kenneth L. Harrenstien -- All Rights Reserved.
This program comes "AS IS" with ABSOLUTELY NO WARRANTY.
Compiled for NETBSD on I386 with word model USEHWD
Emulated config:
CPU: KL10-extend SYS: T20 Pager: KL APRID: 3600
Memory: 8192 pages of 512 words (SHARED)
Time interval: INTRP Base: OSGET
Interval default: 60Hz
Internal clock: OSINT
Other: MCA25 JPC DEBUG PCCACHE CTYINT EVHINT
Devices: DTE RH20 RPXX(DP) TM03(DP) NI20(DP)
[MEM: Allocating 8192 pages shared memory, clearing...done]
KLH10# ; Sample KLH10.INI for initial installation
KLH10#
KLH10# ; Define basic device config - one DTE, one disk, one tape.
KLH10# ; Use two RH20s because TOPS-10 doesn't like mixing disk and tape on
KLH10# ; the same controller (TOPS-20 is fine).
KLH10#
KLH10# devdef dte0 200 dte master
KLH10# devdef rh0 540 rh20
KLH10# devdef rh1 544 rh20
KLH10# devdef dsk0 rh0.0 rp type=rp06 format=dbd9
KLH10# devdef mta0 rh1.0 tm03 type=tu45
KLH10#
KLH10# ; Need KLNI to avoid LAPRBF BUGCHKs - use valid address if known
KLH10# ;
KLH10# ; devdef ni0 564 ni20 ipaddr=10.0.0.51
KLH10# ; The (NetBSD/FreeBSD) version with tap(4) and bridge(4) creates the named
KLH10# ; tap device dynamically and bridges it to the default interface.
KLH10# ; If you want it differently (for instance routed instead of bridged),
KLH10# ; you can create the tap yourself and it will be used as it is.
KLH10# devdef ni0 564 ni20 ipaddr=10.0.0.51 ifc=tap0 dedic=true
KLH10#
KLH10# ; Load disk bootstrap directly
KLH10# load boot.sav
Using word format "c36"...
Loaded "boot.sav":
Format: DEC-CSAV
Data: 4630, Symwds: 0, Low: 040000, High: 054641, Startaddress: 040000
Entvec: JRST (120 ST: 0, 124 RE: 0, 137 VR: 0,,0)
KLH10#
KLH10# ; Now ready to GO
KLH10# [EOF on klt20.ini]
KLH10# devmount mta0 bb-ev83b-bm_longer.tap
Mount requested: "bb-ev83b-bm_longer.tap"
[mta0: Tape online]
KLH10# go
Starting KN10 at loc 040000...
BOOT V11.0(315)
BOOT>
[BOOT: Loading] [OK]
[PS MOUNTED]
System restarting, wait...
DATE AND TIME IS: FRIDAY, 18-OCTOBER-2013 11:22PM
WHY RELOAD? NEW
PROBLEM WITH ACCOUNTS-TABLE.BIN
CANNOT GET A JFN FOR ACCOUNTS-TABLE.BIN - ACCOUNT VALIDATION IS
DISABLED
RUN CHECKD? N
RUNNING DDMP
SYSJOB 7(78) STARTED AT 18-OCT-2013 2322
RUN SYS:INFO
RUN SYS:MAPPER
JOB 0 /LOG OPERATOR XX OPERATOR
ENA
^ESET LOGIN PSEUDO
^ESET LOGIN CONSOLE
^ESET OPERATOR
PTYCON
GET SYSTEM:7-PTYCON.ATO
/
[dpni20: Warning - cannot set high priority - Permission denied]
[dpni20: Fatal error: Must be superuser!]
[KNILDR: LOADING MICROCODE VERSION 1(172) INTO ETHERNET CHANNEL 0]
18-OCT-2013 23:22:27 - TGHA 4.2(31
SJ 0: @LOG OPERATOR OPERATOR
SJ 0: JOB 1 ON TTY172 18-OCT-2013 23:22:27, LAST LOGIN 18-OCT-2013 23:
20:19
SJ 0: @ENA
) IN OPERATION
********************
*BUGCHK "K
SJ 0: $^ESET LOGIN PSEUDO
SJ 0: $^ESET LOGIN CONSOLE
NIINF" AT 18-OCT-2013 23:22:22
SJ 0: $^ESET OPERATOR
SJ 0: $PTYCON
*PHYKNI - KLNI INITIALIZATION TIMED OUT
*JOB: 0, USER: OPERATOR
*ADDITIONAL DATA: 400007000036
********************
********************
*BUGCHK "KNIRLF" AT 18-OCT-2013 23:22:27
SJ 0: PTYCON> GET SYSTEM:7-PTYCON.ATO
SJ 0: PTYCON> SILENCE
*JOB: 0, USER: OPERATOR
*ADDITIONAL DATA: 10
********************
SJ 0: PTYCON> W ALL
SJ 0: GAL(0) 2 OPERATOR EXEC TI 0:0:0
SJ 0: BAT(1) 3 OPERATOR BATCON RN 0:0:0
SJ 0: NEB(2) 4 OPERATOR NEBULA RN 0:0:0
SJ 0: OPR(3) 5 OPERATOR OPR TI 0:0:0
SJ 0: MAILS(4) 6 OPERATOR MX RN 0:0:0
SJ 0: PTYCON> CONN OPR
SJ 0: [CONNECTED TO SUBJOB OPR(3)]
SJ 0:
SJ 0: 23:22:36 -- STRUCTURE STATUS CHANGE DETECTED --
SJ 0: PREVIOUSLY MOUNTED STRUCTURE PS: DETECTED
SJ 0:
SJ 0: 23:22:36 -- STRUCTURE STATUS CHANGE DETECTED --
SJ 0: STRUCTURE STATE FOR STRUCTURE PS IS INCORRECT
SJ 0: EXCLUSIVE/SHARED ATTRIBUTE SET INCORRECTLY
SJ 0: STATUS OF STRUCTURE PS: IS SET:
SJ 0: DOMESTIC, UNREGULATED, SHARED, AVAILABLE, DUMPABL
E
SJ 0:
TOPS-20 Big System, TOPS-20 Monitor 7(21017)
@TER NO RAI
@log operator
Job 7 on TTY145 18-Oct-2013 23:22:49, Last Login 18-Oct-2013 23:22:33
@ena
$BUILD PS:
[Old]
$$WORKING 2700
$$PERMANENT 2700
$$
$BUILD PS:
[Old]
$$WORKING 600
SJ 0: OPR>
SJ 0: **** MAILS(4) 23:23:33 ****
SJ 0:
SJ 0: [SCHEDULER]: Waiting for UPS:
SJ 0: **** OPR(3) 23:23:33 ****
$$PERMANENT 600
$$
$dumper
DUMPER>tape mta0:
DUMPER>rewind
DUMPER>SUPERSEDE ALWAYS
DUMPER>RESTORE PS:<*>*.*.* PS:*.*.*
Saveset "Documentation Files for TCP/IP-20 V4.0" 22-Jun-88 2031
Loading files into PS:
End of Saveset.
Total files restored: 6
Total pages restored: 107
DUMPER>
SJ 0: **** MAILS(4) 23:24:33 ****
SJ 0:
SJ 0: [SCHEDULER]: Waiting for UPS:
SJ 0: **** OPR(3) 23:24:33 ****
RESTORE PS:<*>*.*.* PS:*.*.*
Saveset "SYSTEM Files for TCP/IP-20 V4.0" 22-Jun-88 2032
Loading files into PS:
End of Saveset.
Total files restored: 10
Total pages restored: 2071
DUMPER>RESTORE PS:<*>*.*.* PS:*.*.*
Saveset "Unsupported SUBSYS Utilities for TCP/IP-20 V4.0" 22-Jun-8
8 2034
Loading files into PS:
End of Saveset.
Total files restored: 10
Total pages restored: 162
DUMPER>RESTORE PS:<*>*.*.* PS:*.*.*
Saveset "Source Files for TCP/IP-20 V4.0" 22-Jun-88 2035
Loading files into PS:
End of Saveset.
Total files restored: 56
Total pages restored: 2638
DUMPER>RESTORE PS:<*>*.*.* PS:*.*.*
Saveset "TCP/IP Monitor Source Keys" 22-Jun-88 2038
Loading files into PS:
End of Tape.
Total files restored: 25
Total pages restored: 541
DUMPER>exit
$unload mta0:
$CONNECT PS:
$CREATE INTERNET.ADDRESS
Input: PS:INTERNET.ADDRESS.1
00100 IPNI#0,192 168 81 3,PACKET-SIZE:1500,DEFAULT,PREFERRED
00200 $
*EU
[PS:INTERNET.ADDRESS.1]
$^Ecease now
TOPS20 Will be shut down IMMEDIATELY
[Confirm]
[Timesharing is over]
$
OPERATOR - Wait for the message "Shutdown complete" before
entering commands to PARSER.
SJ 0: Killed Job 1, User OPERATOR, Account OPERATOR, TTY 172,
SJ 0: at 18-Oct-2013 23:26:59, Used 0:00:00 in 0:04:31
Shutdown complete
[HALTED: FE interrupt]
KLH10> q
Are you sure you want to quit? [Confirm]
Shutting down...Bye!
ここで、設定したIPアドレスは、192.168.81.3である。ここは必要なIPアドレスに変更することができる。default gateway等も設定する箇所があるが、localhostからtelnetでloginするには不要なので割愛する。
次に、ネットワークを有効にして起動する方法を示す。
klt20.iniには、すでにtap(4)を有効にする設定が書かれているので、それを以下のように編集する。
$ cat klt20.ini ; Sample KLH10.INI for initial installation ; Define basic device config - one DTE, one disk, one tape. ; Use two RH20s because TOPS-10 doesn't like mixing disk and tape on ; the same controller (TOPS-20 is fine). devdef dte0 200 dte master devdef rh0 540 rh20 devdef rh1 544 rh20 devdef dsk0 rh0.0 rp type=rp06 format=dbd9 devdef mta0 rh1.0 tm03 type=tu45 ; Need KLNI to avoid LAPRBF BUGCHKs - use valid address if known ; ; devdef ni0 564 ni20 ipaddr=10.0.0.51 ; The (NetBSD/FreeBSD) version with tap(4) and bridge(4) creates the named ; tap device dynamically and bridges it to the default interface. ; If you want it differently (for instance routed instead of bridged), ; you can create the tap yourself and it will be used as it is. devdef ni0 564 ni20 ipaddr=192.168.81.3 ifc=tap0 dedic=true ; Load disk bootstrap directly load boot.sav ; Now ready to GO
起動させる。今回はrootで起動させる。
$ sudo ./kn10-kl klt20.ini
Password:
KLH10 V2.0H (MyKL) built Oct 18 2013 00:36:03
Copyright � 2002 Kenneth L. Harrenstien -- All Rights Reserved.
This program comes "AS IS" with ABSOLUTELY NO WARRANTY.
Compiled for NETBSD on I386 with word model USEHWD
Emulated config:
CPU: KL10-extend SYS: T20 Pager: KL APRID: 3600
Memory: 8192 pages of 512 words (SHARED)
Time interval: INTRP Base: OSGET
Interval default: 60Hz
Internal clock: OSINT
Other: MCA25 JPC DEBUG PCCACHE CTYINT EVHINT
Devices: DTE RH20 RPXX(DP) TM03(DP) NI20(DP)
[MEM: Allocating 8192 pages shared memory, clearing...done]
KLH10# ; Sample KLH10.INI for initial installation
KLH10#
KLH10# ; Define basic device config - one DTE, one disk, one tape.
KLH10# ; Use two RH20s because TOPS-10 doesn't like mixing disk and tape on
KLH10# ; the same controller (TOPS-20 is fine).
KLH10#
KLH10# devdef dte0 200 dte master
KLH10# devdef rh0 540 rh20
KLH10# devdef rh1 544 rh20
KLH10# devdef dsk0 rh0.0 rp type=rp06 format=dbd9
KLH10# devdef mta0 rh1.0 tm03 type=tu45
KLH10#
KLH10# ; Need KLNI to avoid LAPRBF BUGCHKs - use valid address if known
KLH10# ;
KLH10# ; devdef ni0 564 ni20 ipaddr=10.0.0.51
KLH10# ; The (NetBSD/FreeBSD) version with tap(4) and bridge(4) creates the named
KLH10# ; tap device dynamically and bridges it to the default interface.
KLH10# ; If you want it differently (for instance routed instead of bridged),
KLH10# ; you can create the tap yourself and it will be used as it is.
KLH10# devdef ni0 564 ni20 ipaddr=192.168.81.3 ifc=tap0 dedic=true
KLH10#
KLH10# ; Load disk bootstrap directly
KLH10# load boot.sav
Using word format "c36"...
Loaded "boot.sav":
Format: DEC-CSAV
Data: 4630, Symwds: 0, Low: 040000, High: 054641, Startaddress: 040000
Entvec: JRST (120 ST: 0, 124 RE: 0, 137 VR: 0,,0)
KLH10#
KLH10# ; Now ready to GO
KLH10# [EOF on klt20.ini]
KLH10# go
Starting KN10 at loc 040000...
BOOT V11.0(315)
BOOT>AN-MONMAX
[BOOT: Loading] [OK]
[PS MOUNTED]
System restarting, wait...
DATE AND TIME IS: FRIDAY, 18-OCTOBER-2013 11:32PM
WHY RELOAD? NEW
PROBLEM WITH ACCOUNTS-TABLE.BIN
CANNOT GET A JFN FOR ACCOUNTS-TABLE.BIN - ACCOUNT VALIDATION IS
DISABLED
RUN CHECKD? N
RUNNING DDMP
[LOADING INTERNET HOST NAMES] [OK]
SYSJOB 7(78) STARTED AT 18-OCT-2013 2333
RUN SYS:INFO
RUN SYS:MAPPER
JOB 0 /LOG OPERATOR XX OPERATOR
ENA
^ESET LOGIN PSEUDO
^ESET LOGIN CONSOLE
^ESET OPERATOR
PTYCON
GET SYSTEM:7-PTYCON.ATO
/
[dpni20: Created host-side tap "tap0"]
[dpni20: Opened 10-side tap "/dev/tap0"]
[dpni20: Created bridge "bridge0"]
[dpni20: Bridging with default interface "bge0"]
[dpni20: /sbin/brconfig bridge0 add bge0 add tap0 up => 0]
arp: delete: can't locate 192.168.81.3
[KNILDR: LOADING MICROCODE VERSION 1(172) INTO ETHERNET CHANNEL 0]
18-OCT-2013 23:33:09 - TGHA 4.2(31
SJ 0: @LOG OPERATOR OPERATOR
SJ 0: JOB 1 ON TTY206 18-OCT-2013 23:33:09, LAST LOGIN 18-OCT-2013 23:
22:49
SJ 0: @ENA
) IN OPERATION
[INTERNET NETWORK
************192.168.81.0 ON, OUTPUT ON 18-OCT-2013 23:33:09]
SJ 0: $^ESET LOGIN PSEUDO
SJ 0: $^ESET LOGIN CONSOLE
********
*BUGINF "IPHTNI" AT 18
SJ 0: $^ESET OPERATOR
SJ 0: $PTYCON
-OCT-2013 23:33:04
*ERROR WHILE READING GHT
*JOB: 0, USER: OPERATOR
*ADDITIONAL DATA: 600104
********************
SJ 0: PTYCON> GET SYSTEM:7-PTYCON.ATO
SJ 0: PTYCON> SILENCE
SJ 0: PTYCON> W ALL
SJ 0: GAL(0) 2 OPERATOR EXEC TI 0:0:0
SJ 0: BAT(1) 3 OPERATOR BATCON RN 0:0:0
SJ 0: NEB(2) 4 OPERATOR EXEC TI 0:0:0
SJ 0: OPR(3) 5 OPERATOR OPR TI 0:0:0
SJ 0: MAILS(4) 6 OPERATOR MX RN 0:0:0
SJ 0: PTYCON> CONN OPR
SJ 0: [CONNECTED TO SUBJOB OPR(3)]
SJ 0:
SJ 0: 23:33:19 -- STRUCTURE STATUS CHANGE DETECTED --
SJ 0: PREVIOUSLY MOUNTED STRUCTURE PS: DETECTED
SJ 0:
SJ 0: 23:33:19 -- STRUCTURE STATUS CHANGE DETECTED --
SJ 0: STRUCTURE STATE FOR STRUCTURE PS IS INCORRECT
SJ 0: EXCLUSIVE/SHARED ATTRIBUTE SET INCORRECTLY
SJ 0: STATUS OF STRUCTURE PS: IS SET:
SJ 0: DOMESTIC, UNREGULATED, SHARED, AVAILABLE, DUMPABL
E
SJ 0:
TOPS-20AN Maximum System, TOPS-20AN Monitor 7(21017)
@TER NO RAI
@log operator
Job 7 on TTY205 18-Oct-2013 23:33:32, Last Login 18-Oct-2013 23:33:14
@ena
$
SJ 0: OPR>
SJ 0: **** MAILS(4) 23:34:14 ****
SJ 0:
SJ 0: [SCHEDULER]: Waiting for UPS:
SJ 0: **** OPR(3) 23:34:14 ****
tap(4)関連の項目は、自動で設定されるので、ifconfig tap0 create等をしておく必要はない。
この状態で、ホスト側のNetBSDからtelnetでloginできる。
% telnet 192.168.81.3 Trying 192.168.81.3... Connected to aluminum.elements.tetera.org. Escape character is '^]'. TOPS-20AN Maximum System, TOPS-20AN Monitor 7(21017) @TER NO RAI @log operator Job 8 on TTY270 18-Oct-2013 23:34:43, Last Login 18-Oct-2013 23:33:56 @ena $vdir PS:5221BM.MEM.1;P777700 43 21550(36) 21-Nov-83 20:58:02 BROOKS ANUTIL.MAN.1;P777700 48 121334(7) 13-Jun-85 16:25:21 BROOKS TCPIP.BWR.1;P777700 3 1075(36) 21-Jun-88 15:22:48 LOMARTIRE .DOC.1;P777700 3 1067(36) 31-May-88 18:51:39 BROOKS TELNET.DOC.1;P777700 9 22964(7) 5-Mar-84 15:53:22 BROOKS .HLP.1;P777700 1 916(7) 5-Mar-84 15:54:07 BROOKS Total of 107 pages in 6 files $logout Killed Job 8, User OPERATOR, Account , TTY 270, at 18-Oct-2013 23:34:58, Used 0:00:00 in 0:00:14 Connection closed by foreign host.