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

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

[第194回]


●MACRO−80(解決編です)

MACRO−80について、エラーは出なくなったものの、どういうわけか最終的に作成されたMVFTST1C.COMの中味がでたらめであることがわかりました。
原因不明です。

そういうときに、インターネットは実に有り難い存在です。
まさに情報の宝庫と言えましょう。
根気良く検索していきますと、原因がわからず悩んでいたことへの回答がみつかります。

今回もあちこちさぐっていましたら、
おや?これは?
というサイトに行きつきました。
この記事を書くために、どこだったのかあらためてサーチしてみたのですがみつかりませんでした。

今となってはMACRO−80について書かれたものだったかどうかも不明です。
仮にMACRO−80について書かれたものだったということにしまして、そこに書かれておりましたのは、
「ORGを書くのは間違い」
というような内容のことでした。

このときはちょいと意味不明でありましたが、溺れるものはわらをもつかむ、の心境でありますから、とにかくやってみることにいたしました。

; BDOS function 1 & 2 test for ZBDOS
;for MACRO-80
;12/8/4 8/5
;
;     ORG 0100H
;
        FCALL EQU 0005H
;
LOOP:LD E,3FH;?
        LD C,02
        CALL FCALL          
        LD C,01
        CALL FCALL
        CP 1AH;^z?
        RET Z
        PUSH AF
        LD E,3DH;=
        LD C,02
        CALL FCALL
        POP AF
        LD D,A
        CALL HEX1
        LD E,A
        LD A,D
        RRCA
        RRCA
        RRCA
        RRCA
        CALL HEX1
        PUSH DE
        LD E,A
        LD C,02
        CALL FCALL
        POP DE
        LD C,02
        CALL FCALL
        LD E,0DH
        LD C,02
        CALL FCALL
        LD E,0AH
        LD C,02
        CALL FCALL
        JP LOOP
HEX1:AND 0FH
        ADD A,30H
        CP 3AH
        RET C;0-9
        ADD A,07;A-F
        RET     
;
        END

ORG 0100Hの行に ; をつけてコメント行にしただけで、あとはどこも変更していません。
これをMVFTST1G.MACの名前で保存しました。

そしてそのMVFTST1G.MACをMACRO−80でアセンブルし、L80を実行してできたMVFTST1G.COMを実行してみました。
そうしましたら。



おお。
出来ました!
ちゃんと実行できたではありませんか!

むむ。
ORGが原因だったとは。
しかし。
そりゃあ、ちょっと、納得がいきません。
どうして、ORGを使っちゃいけないのさあ。

ともかく解決はできたのでありますが。
これじゃあ、不得要領というものです。

むむ。
忙しいのですけれどねえ。
納得できないことには、どうにも気持ちが悪いのですよねえ。

実は。
あとになってわかったことなのですが、[第193回]でお見せした、この画像にヒントが隠されていました。


え?
そのヒントってのはどの辺か、ヒントをください?

MVFTST1C.COMとVFTST1.COMのFCBエリアをよーく見比べてみてください。
あれえ?
というところに気が付きませんでしょうか?
(MVFTST1C.COMはMACRO−80およびL80によりアセンブルされリンクされて作成された実行ファイルで、VFTST1.COMはND80ZV附属のZASMによってアセンブルされたもので、両者は本来は同じ内容のプログラムファイルのはずなのですが…)

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

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