tablacus / LSX-Dodgers

CP/M80 MSX-DOS Compatible OS(Z80) for SHARP X1/turbo/Z, MZ-700/1500, PC-8801mkIISR and MSX
https://tablacus.github.io/LSX-Dodgers/
MIT License
43 stars 6 forks source link

Fix stack #5

Closed meister68k closed 2 years ago

meister68k commented 2 years ago

以下2点のpull requestを送信させていただきます。 内容ご検討いただければ幸いです。

  1. トランジェントコマンド起動時のスタックポインタSPをTPA末尾に設定

既定はOS領域内のスタックを指したままでしたが,CP/MとMSX-DOSではTPA末尾を指すようです。 アプリケーション側で再設定するのが作法かもしれませんが,少なくともz88dkでコンパイルされた アプリでは再設定されず,スタックを食いつぶして不具合を起こすことがあります。 変更箇所は LDCCP.ASM の COMPAT: から C_BAT: までの箇所です。バイト数が変わらぬよう詰め込んであります。

  1. Linux用 Z80アセンブラ pasmo への対応

私の都合により開発環境としてLinux (Ubuntu)を使用しているため対応させました。 ただしWindowsと比べて使用者はさほど多くないでしょうから,無視しても構わないと思います。 既に ZASM 対応が進んでいたため変更箇所は以下のみとなっています。(ver1.23当時は多々ありました)

 a. pasmoフォルダとmekefileの追加 ( pasmo/makefile )  b. 擬似命令 INCLUDE の違い ( pasmo/LD.ASM )  c. 先頭7バイトのバイナリヘッダ(?)の追加 ( pasmo/LD.ASM )  d. ラベルNULをNULLに ( LDFILE2.ASM )

以上,pull request の送付が初めてのため,失礼の折はご容赦願います。

tablacus commented 2 years ago

補足: 先頭7バイトのバイナリヘッダはMSXバイナリ形式でこれがあるので、LD.BINがL-os Angelesの外部コマンドしてそのまま実行できます。

MSXバイナリ形式は以下のMSX-BASIC BSAVE/BLOADファイルと同じです。 https://msxjpn.jimdofree.com/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%BD%A2%E5%BC%8F/