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

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

[第412回]


●今度はLOADコマンドでエラーです

やっとFORTRAN80のエラーに対処してやれやれと思ったところだったのですが。
別のお客様から、LOADコマンドでエラーになります、というメールをいただきました。

CP/Mをさわったことがある方でしたらご存知と思います。
LOADコマンドはトランジェントコマンドのひとつで、その名前からイメージする機能とは大きく異なっています。
HEX(おそらくインテルヘキサ)形式でセーブされたファイルを読み込んで、COMファイルとしてセーブするコマンドです。
トランジェントコマンドというのはCP/Mプログラム(CCP、BDOS、BIOS)に含まれているコマンドではなくて、アプリケーションとして配布されていたプログラムで、ユーザープログラムと同じように0100H番地からロードされて実行されるCOMファイルです。

このお客様はLOADだけではなくて、そのほかCP/Mで用意されていたいろいろなトランジェントコマンドをZB3DOSで試してみられたそうです。
その動作報告もいただきました。
こうやって皆様にいろいろ試していただきますと、とても助かります。
有難うございました。
そのご報告の内容やら、トランジェントコマンドファイルの入手先やらにつきましては、また次回以降にご説明をいたします。

今回はそのLOADコマンドのエラーのお話です。
ログファイルをメールに添付して送っていただきましたので、そのエラーの部分をお見せします。

A>asm dump2
CP/M ASSEMBLER - VER 2.0
0257
002H USE FACTOR
END OF ASSEMBLY

A>load dump2

ERROR: NO MORE DIRECTORY SPACE, LOAD ADDRESS 0100

ASMもトランジェントコマンドです。
おお、これは8080アセンブラなのですね。
なるほど。
ASMコマンドの実行によって、HEXファイルが作られます。
そこでそれをCOMファイルに変換するために、LOADコマンドを使います。
ところがそのLOADコマンドでおかしなエラーが出てしまいました。
もちろんDUMP2.HEXは下のようにちゃんと作成されています。

A>dir
A: ASM      COM : DDT      COM : DISKDEF  LIB : DUMP     COM
A: ED       COM : LOAD     COM : PIP      COM : STAT     COM
A: DUMP     ASM : CREF80   COM : DUMP2    ASM : MBASIC   COM
A: F80      COM : FORLIB   REL : L80      COM : LIB80    COM
A: M80      COM : OBSLIB   REL : DUMP2    PRN : DUMP2    HEX
A: MON9     COM : MON      COM
A>

ASMコマンドが正しく実行されたことは、同時に作成されたDUMP2.PRNをTYPEコマンドで表示させてみて確認済みとのことでした。

意味不明のエラーメッセージなのですが、実は私のところでも、このログファイルと全く同じように、ASMコマンドとLOADコマンドを使って確認をしてみました。
その結果、このエラーの原因は前回のFORTRAN80の問題と同じであることがわかりました。
FORTRAM80対策済みのZB3DOSで試してみましたら、このおかしなエラーは表示されなくなりました。

いやあ、よかった、よかった。
と喜んだのですけれど。
今度は別のエラーが表示されてしまいました。

A>load dump2

INVALID HEX DIGIT
LOAD  ADDRESS 0100
ERROR ADDRESS 0100
BYTES READ:
0100: 

時間がなくなってしまいましたので、この続きは次回にいたします。

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

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