Closed baseballcap-mio closed 5 months ago
asm_line.set( "LD", "" "A", "[work_csry]" );
p_info->assembler_list.body.push_back( asm_line );
asm_line.set( "LD", "" "L", "A" );
p_info->assembler_list.body.push_back( asm_line );
typo で、「,」が抜け落ちていました。"", "A" が "" "A" になっているので、"A" と解釈されておかしなコードを生成していました。 LOCATEの処理の中に、かなりの数の上記のようなミスがあり、全て修正しましたのでお試し下さい。
プログラム1、プログラム2はBACON、ZMAともにパスしました。 プログラム3は前回と変わらず、ZMAで前回と全く同じエラーメッセージが出て終了します。
間違って閉じてしまったので再オープンしました。すみません
LOCATEとしては、256は不正な値なのですが、これをそのままアセンブリコードとして出力してしまい、 LD A, 256 となっていたために、ZMA がエラーを出していました。
不正だけど、256 は 0 として動作するように対策を打ちました。 これで問題なくコンパイルが出来るようになったはずです。お試し下さい。
BACON、ZMA共にパスすることを確認しました。 お疲れ様でした。
3本のプログラムについて問題があるが、まず2本について
プログラム1 100 LOCATE 256 110 END
プログラム2 100 X=256 110 LOCATE X 120 END
プログラム1、プログラム2は共にBACONはパスするが、ZMA(v1.0.18)でエラーとなる。そして、
プロンプト>zma xxx.asm zma.bin プロンプト>zma xxx.asm zma.bin プロンプト>zma xxx.asm zma.bin
のように連続してアセンブルするとわかるが、その結果がしばしば変わる。
最後にプログラム3
プログラム3 100 LOCATE 256, 0 110 LOCATE 0,256 120 LOCATE 256,256 130 END
プログラム3もBACONはパスするが、ZMA(v1.0.18)でエラーとなる 下のような結果となる
Z80 Macro Assembler ZMA v1.0.18
Programmed by t.hara ERROR:Out of range relative address.: test-t03.asm(76) ERROR:Illegal operand.: test-t03.asm(76) ERROR:Out of range relative address.: test-t03.asm(85) ERROR:Illegal operand.: test-t03.asm(85) Found 4 error(s). Failed.
以上です