The CCP Auto-Load Feature2018年10月04日 15:40

TRN-8は、ROM上にCCP/BDOS、CBIOS、ROMBIOSを持っているので、 ディスケット上にシステムを書き込んでいなくとも、リブートできる。(ドライブAに、 フォーマット済みのディスケットを入れておかねばならないが)

だが、ディスクからシステムを読み込む方が、融通が聞くことがある。

さて、Digital Research Source Code にCP/Mのパッチを集めたパッケージ"PATCHES"がある。 これをダウンロードして眺めていると、"The CCP Auto-Load Feature(CPM22APN.01)"というのがあった。 内容は、CCPがロードされるごとに特定のプログラムを動かすという物だ。これはCCPの一部にパッチをあてることで実現している。

これを実現するのは、現状のTRN-8ではROMを書き換えが必要である。が、TRN-8は、ジャンパーを1本飛ばすことで、CCP/BDOSをシステムディスクから読み込むようにできる。今回の実験には、この方が都合がよい。

ところが、システムディスクはどうやって作るかは、TRN-8の製作記事中では言及されていない。 手元にある村瀬康治氏の「実習CP/M」を参照し、システムディスクを作成した。

手順としては

1. MOVCPMで、63K CP/Mのイメージを作成する。

2. DDTで、CP/MのイメージとCBIOSを結合する。

3. 次いで、パッチをあてる。

4. SYSGENで、システムイメージをシステムディスクに書き込む。

となる。ワークディスクを用意して早速やってみる。

          a>dir

          A: MOVCPM   COM : DDT      COM : CBIOS    HEX : SYSGEN   COM
          A: STAT     COM
          a>movcpm 63 *


          CONSTRUCTING 63k CP/M vers 2.2
          READY FOR "SYSGEN" OR
          "SAVE 34 CPM63.COM"  <==== メモリー上にシステムが展開された。

          63K CP/M VER 2.2   (BIOS VER 3.1)

                                (C) 1988.12.1.  K.YOSHIDA
          a>save 34 cpm63.com  <==== 展開されたシステムをファイルに落とす。
          a>dir
          A: MOVCPM   COM : DDT      COM : CBIOS    HEX : SYSGEN   COM
          A: CPM63    COM : STAT     COM
          a>ddt cpm63.com   <==== システムイメージをロードする。
          DDT VERS 2.2            このうち必要なの0980Hから1F80Hである。
          NEXT  PC
          2300 0100
          -icbios.hex
          -r2980       <==== CBIOS.HEXをオフセット2980Hをつけて読み込む。
          NEXT  PC           実際には、1F80Hから配置される。
          2300 F600

          63K CP/M VER 2.2   (BIOS VER 3.1)
                                (C) 1988.12.1.  K.YOSHIDA
          a>sysgen     <==== メモリー上のシステムイメージをディスクに書き込む。           

          SYSGEN VER 2.0 FOR TRN-8   (C) 1988.12.1. K.YOSHIDA

          SOURCE DRIVE NAME (OR RETURN TO SKIP)
          DESTINATION DRIVE NAME (OR RETURN TO REBOOT)a <== ドライブAのディスクに書き込む。
          DESTINATION ON A, THEN TYPE RETURN
          FUNCTION COMPLETE
          DESTINATION DRIVE NAME (OR RETURN TO REBOOT)

          63K CP/M VER 2.2   (BIOS VER 3.1)
                      (C) 1988.12.1.  K.YOSHIDA
          a>

ここで、いったん電源を落としディスクからシステムを読み込むようにジャンパーを設定する。 再起動すると、

          63K CP/M VER 2.2   (BIOS VER 3.1)
                                (C) 1988.12.1.  K.YOSHIDA
          A>dir
          A: MOVCPM   COM : DDT      COM : CBIOS    HEX : SYSGEN   COM
          A: CPM63    COM : STAT     COM
          A>ddt cpm63.com
お気づきであろうか。コマンドプロンプトが、小文字から大文字に変わった。 システムディスクをAドライブにセットしておかないと、システムはハングアップする。 うまくいっているようだ。

さて、"CCP Auto-Load Feature"の実験である。この機能は、コマンドをCCPに引き渡すバッファーに あらかじめコマンドを書き込んでおくことで実現している。システムがロードされる都度、コマンドが 実行される。サンプルは"dir"コマンドを実行するという物。先に作成したシステムディスクを 使用して、設定をする。

          A>dir

          A: MOVCPM   COM : DDT      COM : CBIOS    HEX : SYSGEN   COM
          A: CPM63    COM : STAT     COM
          A>ddt cpm63.com

          DDT VERS 2.2
          NEXT  PC
          2300 0100
          -icbios.com     <==== おっと、間違えた。
          -icbios.hex     <==== 正しく入力し直し。
          -r2980
          NEXT  PC
          2300 F600

セットするのは、

0987Hにはコマンド文字の長さ

0988Hからはコマンド文字列を書き込み、最後に00Hを書き込む

である。

          -d980 9af
          0980 C3 5C E3 C3 58 E3 7F 00 20 20 20 20 20 20 20 20 .\..X...        
          0990 20 20 20 20 20 20 20 20 43 4F 50 59 52 49 47 48         COPYRIGH
          09A0 54 20 28 43 29 20 31 39 37 39 2C 20 44 49 47 49 T (C) 1979, DIGI
          -s987
          0987 00 3    <==== コマンド文字列の長さは、3バイト。
          0988 20 44   <==== "D"
          0989 20 49   <==== "I"
          098A 20 52   <==== "R"
          098B 20 0    <==== 00Hでターミネートする。
          098C 20 .
          -g0

          63K CP/M VER 2.2   (BIOS VER 3.1)
                                (C) 1988.12.1.  K.YOSHIDA
          A>sysgen
          
          SYSGEN VER 2.0 FOR TRN-8   (C) 1988.12.1. K.YOSHIDA
          
          SOURCE DRIVE NAME (OR RETURN TO SKIP)
          DESTINATION DRIVE NAME (OR RETURN TO REBOOT)a
          DESTINATION ON A, THEN TYPE RETURN
          FUNCTION COMPLETE
          DESTINATION DRIVE NAME (OR RETURN TO REBOOT)
          
          63K CP/M VER 2.2   (BIOS VER 3.1)
                                (C) 1988.12.1.  K.YOSHIDA
          A: MOVCPM   COM : DDT      COM : CBIOS    HEX : SYSGEN   COM  <==== DIRコマンドが
          A: CPM63    COM : STAT     COM                                      実行された。
          A>^C
          
          63K CP/M VER 2.2   (BIOS VER 3.1)
                                (C) 1988.12.1.  K.YOSHIDA
          A: MOVCPM   COM : DDT      COM : CBIOS    HEX : SYSGEN   COM
          A: CPM63    COM : STAT     COM
          A>b:   <==== ドライブを変えて
          B>^C   <==== リブートすると。
          
          63K CP/M VER 2.2   (BIOS VER 3.1)
                                (C) 1988.12.1.  K.YOSHIDA
          B: ARGLIST  COM : COMP     COM : FUTY     COM : XSUB     COM  <==== ドライブBの
          B: ASM      COM : DDT      COM : LOAD     COM : PIP      COM        ディレクトリーが
          B: XFORMAT  MAC : XMODEM   COM : PEP      COM : DELETE   COM        表示される。
          B: UNCR     COM : SUB2COM  COM : USQ      COM : DELBR    COM
          B: LHRD     COM : ARK      COM : LHVW     COM : UNZIP    COM
          B: CRUNCH20 COM : TYPELZ20 COM : UNCR20   COM : UNARC    COM
          B: UNARCA   COM : XFORMAT  COM : SUBMIT   COM : ED       COM
          B: M80      COM : L80      COM : MAKESYM  COM : 8080     MAC
          B: Z80ASM   DOC : FORMAT   COM : README   LNK : TRN-8    MAC
          B: ARKZS    COM : COMPARE  LIB : ZSIDP    COM : 64180    MAC
          B: FUTY     Z80 : SLR180   COM : 180FIG   COM : Z80ASM   COM
          B: SLRNK1   COM : SLRIB    COM : FUTY     REL : ZSID     COM
          B: FUTY     LST : CONFIG   COM : MDUMP    COM : FDUMP    COM
          B: TYPEX    COM : XDIR     COM : SID      COM : HIST     UTL
          B: TRACE    UTL : STAT     COM : TEST     COM : ECHO     COM
          B: LC       COM : AUTOEXEC SUB : AUTOEXEC BAK

リブートするごとに、"DIR"コマンドが実行される事が確認できた。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://kida.asablo.jp/blog/2018/10/04/8968623/tb