復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第169回]
●F80フォルダ
前回はND80ZVのCP/M互換DOSシステムの上でFORTRAN80コンパイラが動きました、というご報告をいたしました。
もっともすんなりと動いたわけではありません。
前回書きましたように3日間も泥沼にはまって苦闘いたしました。
そのように書きますと、何かものすごい難しいセッティングか何かが必要だったかのように思われるかもしれません。
ええ。
そのほうが格好がついていいですよね。
「今回はほんと、難しかったですね。何とか経験とカンを頼りに辛うじてクリアできました」
いやあ。
泥沼でもがいている最中は、ほんと、そう思いましたよ。
むむ。
あかん。
どこから攻めたらクリアできるのか見当もつかん。
難攻不落じゃあ。
そんな感じだったのですけれど。
クリアできてみますと、どこが難攻不落やねん。
あほらし。
つうような、お粗末なミスであったり、当然気がつくべきところに気がつかなかっただけ、というようなことが重なって、一見難攻不落のように見えていただけでありました。
まあ。
世の中というものは大体におきましてそういったものであります。
そういったあたりの顛末につきましても少しずつお話をしてまいります。
まずは。
ダウンロードしましたF80.ZIPを解凍いたしますと、F80フォルダが作成され、その中には下のように複数のファイルが見えます。
MSDOSアプリケーション(.COM)がいくつもあります。
この中でFORTRANコンパイラ本体はF80.COMです。
これを仮想FDDにセーブすれば、FORTRANのソースプログラムをコンパイルできるようになります。
しかし前回書きましたように、F80.COMを実行して得られるのは拡張子RELがついた相対ファイルで、そのままでは実行することができません。
リンカ(L80.COM)を実行すると、相対ファイルから実行ファイル(.COM)が作成されます。
F80.COMの実行によって作成された相対ファイルからL80.COMによって実行ファイルを作成するときには、FORTRANライブラリファイル(FORLIB.REL)が必要になります。
つまり上記F80フォルダ中、FORTRANソースプログラムから実行ファイルを作成するのに必要なファイルは、
F80.COM
L80.COM
FORLIB.REL
の3ファイルです。
なおM80.COMはマクロアセンブラ、LIB80.COMはライブラリマネージャのようです。
これはまだ試していませんが、使う必要があるかどうかは、ちょいと疑問です。
●各ファイルのLOADとSAVE
まずはF80.COM、L80.COM、FORLIB.RELを仮想FDDにSAVEします。
Windows側のフォルダにあるファイルを仮想FDDにセーブする手続きはちょっと面倒な作業が必要です。
実は現在ではそれを簡単に行なうことのできる機能を作ってしまったのですが、この時点ではまだデバッグ中でしたので、以下の手順で行なっていました。
まず、ZB3BASICを起動して、そこで/LDコマンドでトランジェントエリアの0100番地にファイルをロードします。
次に JP D233 でCP/M互換DOSを起動します。
そこでSAVEコマンドでファイルセーブをします。
別のファイルをセーブするには、ここで一旦Ctrl+Dを入力して、ZB3BASICに戻り、そこで/LDコマンドでファイルをロードします。
これを必要なだけ繰り返します。
その作業を行なったときのログファイルです。
logfile nd80zlog\07101741.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** can't open D.vfd >/ld f80.com,0100 loading F80.COM ...7000(28672)bytes loaded,from 0100 to 70FF >jp d233 A>save 112 f80.com A>end of ZBDOS >/ld l80.com,0100 loading L80.COM ...2a00(10752)bytes loaded,from 0100 to 2AFF >jp d233 A>save 42 l80.com A>end of ZBDOS >/ld forlib.rel,0100 loading FORLIB.REL ...6600(26112)bytes loaded,from 0100 to 66FF >jp d233 A>save 102 forlib.rel |
A>end of ZBDOS >/ld hello.for,0100 loading HELLO.FOR ...00dd(221)bytes loaded,from 0100 to 01DC >jp d233 A>save 2 hello.for A>dir A: VFTST1 COM : MBASIC COM : F80 COM : L80 COM A: FORLIB REL : HELLO FOR |
A>f80 *=HELLO HELLO %Line:10 Zero Format Valu・FORMAT(3X,7A+ ?Line:10 Illegal Character for Synta・FORMAT(3X,7A+ %1 Warning(s) Issued ・ ?1 Fatal Error(s) Detected ・ |