紅茶羊羹氏にエラー状況をご報告しとかないと、ということで、GAME-MZのアセンブルエラー状況をまとめてみました。
・game-mz700.asmを、そのままWindows7上でアセンブルした場合
Error game-mz700.asm 69: Out of range on relative jump
が出てアセンブルならず。
# 利用したz80asのバージョンは0.03になります。
・上記の箇所をDB定義で強制回避してアセンブルした結果を、hojaでディスアセンブルして比較してみた所、5823H番地で謎の01H挿入が発生。
ラベル生成の状況も違うので、hojaの動作も少し怪しいところがあるのだけれど、ダンプを見ると確かに01Hが何故か挟まっていました。
内部のラベルテーブル生成というより、SUB命令が嫌われているっぽいのだけれど・・・
Windows Vistaになったからと言って変わる部分に思えないのに、XPとVista/Win7で吐き出すコードが変わるのは不思議でならない。
アセンブラソースは、こちらに同梱して置いてますので、ご確認いただけると幸いです。
・game-mz700.asmを、そのままWindows7上でアセンブルした場合
Error game-mz700.asm 69: Out of range on relative jump
が出てアセンブルならず。
# 利用したz80asのバージョンは0.03になります。
・上記の箇所をDB定義で強制回避してアセンブルした結果を、hojaでディスアセンブルして比較してみた所、5823H番地で謎の01H挿入が発生。
WinXP上での生成結果: CALL Z0005 ;581D CD 0F 5D ..] LD A,(05F4CH) ;5820 3A 4C 5F :L_ SUB L ;5823 95 . LD C,A ;5824 4F O LD A,(05F4DH) ;5825 3A 4D 5F :M_ SBC A,H ;5828 9C . LD B,A ;5829 47 G INC BC ;582A 03 . LDIR ;582B ED B0 .. Windows7上での生成結果(Vistaも同様): CALL 05D41H ;581D CD 41 5D .A] LD A,(05F4CH) ;5820 3A 4C 5F :L_ LD BC,04F95H ;5823 01 95 4F ..O LD A,(05F4DH) ;5826 3A 4D 5F :M_ LD BC,0479CH ;5829 01 9C 47 ..G INC BC ;582C 03 . LDIR ;582D ED B0 ..
ラベル生成の状況も違うので、hojaの動作も少し怪しいところがあるのだけれど、ダンプを見ると確かに01Hが何故か挟まっていました。
内部のラベルテーブル生成というより、SUB命令が嫌われているっぽいのだけれど・・・
Windows Vistaになったからと言って変わる部分に思えないのに、XPとVista/Win7で吐き出すコードが変わるのは不思議でならない。
アセンブラソースは、こちらに同梱して置いてますので、ご確認いただけると幸いです。
これでVM上げなくても、こっそりZ80のデバグができます(^-^)