2014.7.23

前へ
次へ
ホームページトップへ戻る

MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!


[第3回]


●はじめの一歩

ハードウェアの準備ができたところで、次はいよいよソフトウェアです。
しかし。
千里の道も一歩から、です。
このはじめの一歩については最初はあれこれ迷いました。
どうすると一番手際よくことを進めることができるだろうか?
結局選びましたのは、TK−80モニタを利用する、ということでした。
なんたって7セグLEDとキー入力が使えるのですから、これはなかなかに強力な武器となります。
これを利用しないテはありませんでしょう。

まずやるべきはメモリバンクを切り換えて64KBのメモリ空間を全てRAMにすることです。
その方法は前回説明いたしました。
キースキャンに使っているI/Oアドレス9C〜9Fにビット3=0であるような値を出力するとメモリアドレス0000〜7FFFにMYCPU80上のROMが割り当てられ、I/Oアドレス9C〜9Fにビット3=1であるような値を出力するとメモリアドレス0000〜7FFFに増設メモリ基板のRAMが割り当てられます。

しかし初期状態でROMが選択されているときにいきなりI/Oアドレス9C〜9Fにビット3=1であるような値を出力することはできません。
そんなことをしたらたちまち暴走してしまいます。
理由は、わかりますよね。
ROM上で実行されていたプログラムが、いきなりRAMに切り換わって、そこには今までのプログラムは書かれていないわけですから、車で走っていたらいきなり道路が消えて海になってしまったようなものです。
とても無事では済みません。
それではどうするか?

あ。
今こうやって説明しておりますのは、最終的に完成したときのCP/Mシステムについての手続きのことではありません。
物事には何事においても順序というものがあります。
まずはこれからそのシステムを作っていくために必要な準備作業についての説明です。

普通はこういう場合にはブートローダーなるプログラムを使います。
しかし、せっかくTK−80モニタが使えるのですから、それをそのまま利用してしまうのが一番楽な方法だと気がつきました。

MYCPU80はボード上に232CをUSBに変換するための小基板を取り付けていて、それを介してパソコンとUSB接続して、パソコンからマシン誤のプログラムをロードすることができます。
操作はとても簡単です。
TK−80回路のキーのLOADキーを押しておいて、パソコンからはW232プログラムを実行するだけです。
下の図を見てください。



メモリアドレス0000〜で動くように作られているTK−80モニタプログラムを9000〜で動くように作り変えたものを用意しておきます。
それならメモリアドレス8000〜で動くようにするほうがわかりやすいのでは?と思われるかも知れませんが、それにはちょっとした理由があって、ここでは9000〜で動くようにしてあります。
そのような変更はアセンブラを使えば至極簡単です。
MYCPU80やND80ZV(ND80Z3.5)に付属の8080アセンブラ(ASM80.COM)は、通常のバイナリファイルのほかに、TK−80モニタのLOADキーの操作でマシン語プログラムを簡単に送ることができるように、先頭にロードアドレス情報を付加した、拡張子BTKのファイルを生成します。
そのファイルをパソコンから送出するにはMYCPU80に付属のW232.COMプログラムを使います。

コマンドプロンプト画面で、
>W232 TKMON2.BTK[Enter]
のように操作することで、上の図のようにRAM上の任意の位置(ただしTK−80モニタのワークアドレス以外の範囲)
に、プログラムをロードすることができます。
実際にこうやって作業してみると、これは(TK−80モニタは)なかなかに便利で役に立つツールです。

説明の途中ですが本日は時間がなくなってしまいました。
この続きは次回にいたします。

MYCPU80でCP/Mを![第3回]
2014.7.23upload

前へ
次へ
ホームページトップへ戻る