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

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

[第17回]

●CP/Mソースプログラムをダウンロードする

ND80ZVを改造しないで、そこにCP/Mを移植して、モデルといいますかテスト的に動作させるところまでは、だいたいうまくできたように思います。
Y様に送っていただいた「応用CP/M」の中から、ファンクションコールを使ったサンプルプログラムをいくつか実際に走らせてみて、同書の説明の通りの結果が得られました。

そこで、いよいよCP/Mをダウンロードする具体的な説明に入ることにいたしますが、その前に、今まで説明しましたことを簡単にまとめておくことにいたします。

すでに説明をしておりますように、CP/Mシステムは基本的にはメモリがROMではなくてRAMである必要があります。
ND80ZVの場合8000H〜FFFFHはRAMですけれど、0000H〜7FFFHはROMになっています。
CP/Mを実行させるためには、現在ROMになっているところもRAMにしなければなりません。
当然ハード(及びソフト)の改造を伴います。

しかしいきなり改造ということになりますと、誰しもがいささか気後れして、なかなか手を出しづらいものではないかと思います。

そこでなんとか改造しないで、とにかくテスト的にでも、CP/Mを走らせることはできないものかとあれこれ考えてみた結果、思いついたのが、本来は0000H〜00FFHのアドレスに置く、CP/Mのワークエリアを8000H〜80FFHに変更し、また0100Hから始まるトランジェントエリアを8100Hからに変更するというものでした。

さらにCP/Mではフロッピーディスクなどのディスク装置が少なくとも1台は必要であるところも、ND80ZVの8800H〜B7FFHのRAM上に、仮想フロッピーディスクを仮設することによって、とりあえずCP/Mが走ることを確認しました。

今まで書いてきました内容につきましては、すでにND80ZVをご購入いただいた方は、これから具体的に説明をしていきますCP/Mの移植作業をそのまま行なっていただければ、ND80ZVを改造することなく、どなたもが同じように体験していただくことができます。

そのようにして、まずCP/Mを移植して実際にそれを使ってみるという体験をしていただいたあと、いよいよND80ZVを改造して、本格的にCP/Mを走らせる、という次の段階に進んでいただくことにすれば、無理が無いのでは、と思います。

さて、それでは、CP/Mの移植の実際について説明をしていくことにいたします。
その第一段階は、CP/Mのソースプログラムの入手です。

すでに説明をしましたように、CP/Mはフリーソフトではありませんから、私が入手したものを勝手に皆様方に配布することはできません。
ただ個人使用に限っては、皆様方各自がダウンロードしてご自身のND80ZVに組み込んで使っていただくことは許されます。

CP/M2.2のソースプログラムリストの入手先については[第5回]で説明をいたしました。

以下のサイトからソースプログラムをダウンロードすることができます。
http://www.cpm.z80.de/source.html

そのページの少し下の方にCP/M 2.2がみつかります。

上記のサイトにはいろいろなバージョンのCP/Mがありますが、最も普及したバージョン2.2を使うことにします。
CP/M2.2のリンク先も、上の画像に見えるようにいくつかありますが、ここでは「CP/M 2.2 ASM SOURCE」を選びます。

「CP/M 2.2 ASM SOURCE」をクリックして、適当なフォルダかデスクトップに圧縮ファイルをダウンロードしてください。
cpm2−asm.zipという名前の圧縮ファイルがダウンロードされます。

Windows7では、ダウンロードした圧縮ファイルを右クリックして「すべて展開」を選択すると、解凍してくれます。
WindowsXPも解凍機能があるらしいのですが、私のXPはバージョンが古いためかクリックしても解凍してくれません。

解凍できない場合には、フリーの解凍ツールを使うとよいでしょう。
+Lhacaが有名です。
私はWindows98でずっと有り難く使わせていただいております。

解凍すると、cpm2−asmというフォルダが作成されます。
そのフォルダには、2種類のソースプログラムファイルcpm22.asm及びcpm22.z80とread.meがあります。
いずれのファイルもテキストファイルです。
ただ拡張子が一般的なものではありませんから、ファイルから開くことはできません。
メモ帳、ワードパッドなどのテキストエディタからなら開くことができます。

read.meを読んでいただければわかりますが、cpm22.asmは8080アセンブラ用のソースプログラムファイルで、cpm22.z80はZ80アセンブラ用のソースプログラムファイルです。
「ソースプログラム」ですけれど本当の意味でのソースプログラムではなくて、RAMに展開したマシン語コードを逆アセンブルして作成されたソースコードにあとから説明を付け加えたもののようです。

どちらのソースファイルを使ってもよいのですけれど、ここは私が8080ニーモニックよりもZ80ニーモニックに慣れている(8080ニーモニックは余りに昔のことなので思い出すのに苦労します)、という個人的な都合によって、cpm22.z80のほうを使うことにいたします。

Z80ニーモニックで書かれてはいますが、もともとのマシン語コードは8080の命令しか使われていませんから、当然8080で実行できる命令だけが使われていて、Z80で追加された命令は使われていません。

ところで、ダウンロードして、解凍して得られた、このソースプログラム。
これを一体どのようにして、ND80ZVに移植するのか?

上にも書きましたように、このファイルはただのテキストファイルですから、このまま移植するなどということはできません。
アセンブルしてマシン語のプログラムにしなければなりません。

すると。
アセンブラが必要になります。

本日は時間がありません。
アセンブラにつきましては、次回に説明をいたします。

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

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