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

復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります

[第159回]


●64KBフルRAMシステム(1)

前回はND80ZV上で動作するCP/M互換システムについて、ソフトウェアが階層構造になっているという説明をしました。
ソフトウェアの面から基本的な構造について説明をしました。
今回はハード面から説明をいたします。

[第156回]で説明しましたように、CP/M互換DOSを完全な形で走らせるためには、ND80ZVを改造して64KBフルRAM化しなければなりません。
ND80ZVの64KBフルRAM化につきましては、[第21回]から[第29回]で説明をしておりますが、その内容をよく理解していただくために、以下に整理して簡単にまとめてみることにいたします。

昔は本当にROMを全く搭載していなくて、RAMだけしか無いようなボードやマシンもありましたが、私達が普通に使うボードやマシンとしては、CPUが動くためには、少なくとも0番地台はROMである必要があります。
これは電源ONまたはリセットによって、CPUのプログラムカウンタがクリアされて、0000番地からスタートする、というCPUの仕組みからきています。

ところがCP/Mが動くためには、その0000番地台を含めてRAMであることが要求されます。
これはちょっと考えると無理なことのように思えますが、ハードとソフトを工夫することによって、その条件をクリアすることができます。
その方法については、のちほど説明することにいたします。

まずは実物の写真を見ていただくことにいたします。
これは[第21回]でお見せした写真です。
ND80ZVを改造して、32KBのRAMを1個増設しています。



ND80ZVの上に増設メモリ基板が乗っています。
その部分をアップしました。
これは[第28回]にお見せした写真です。



下方の丸い窓があるのがROMです。
上方の黒っぽく見えているのがRAMです。
この写真では、ROMとRAMが各1個しか見えませんが、この増設メモリ基板の下にRAMがもう1個あります。

増設メモリ基板を外したところです。



もともとROMを実装していたICソケットからROMを外して、そのICソケットに増設メモリ基板を挿し込みます。
写真で空きになっているROMのICソケットの下方に見えているのが、もとから実装されているRAMです。
このRAMのアドレスは8000H〜FFFFHです。

もとはROMが実装されていたアドレス0000H〜7FFFHに、もとのROMと増設RAMを同じアドレスに割り付けます。
なにも考えないでそのようなことをすれば、ROMとRAMがぶつかってしまってまともには動いてくれません。

そこで条件によって、ROMとRAMのいずれか一方だけが選択されるような仕組みを考えます。
これがそのための回路です。
この回路図は[第22回]でお見せしました。



図の破線内は増設メモリ基板の回路です。
[第22回]でも書きましたように、図の左側部分の回路はキー入力回路のキーライン選択のための出力回路です。
ND80ZVのモニタプログラムではD0〜D2までしか使っていませんから、空いていたD3をメモリの切り換えに利用しました。

I/Oアドレス9CにD3が0(ビット3=0)になるような値を出力すると、ROMが選択され、D3=1(ビット3=1)になるようなデータを出力するとRAMが選択されます。

ワンボードマイコンでCP/Mを![第159回]
2012.6.27upload

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