(以下メモ)
試した事と不具合の状況
入力したプログラムはPC-6001mk2以降用のもので、MONコマンドでモニタを起動して機械語データをロードしてからBASICに戻り、CLOADでBASICで作成されたメインプログラムをロード・実行するような形式。単純に2つのテープイメージを結合させたものだと、CLOADの段階でメインプログラムを見つけることができない。
市販ゲームをイメージ化した時のように、機械語とBASICのデータ間にダミーデータとして$00を適当に挿入することでメインプログラムのロードは可能となったが、先頭行のみ行番号がありえない数値となり、データの一部も破損してしまう。(二行目以降は問題無し)
原因と解決策について
とりあえずは機械語とBASICデータ間のダミーデータの個数を増減させてみると、19バイトでメインプログラムも破損しなくなったが、ちょっとスマートな方法ではない…。Twitterでフォロワーの方から教えて頂いたが、マシン語のローダープログラムによっては最後のデータを読み込んでからテープが停止するまでにラグがあり、その為テープが進んでしまいロード失敗してしまうのが原因の様子。
解決策としてはダミーデータを挿入すると共に、テープイメージ形式を『P6T』にすることが無難との事。
<参考:ぱぴこんのこころさんのP6Tフォーマット技術資料>
ツールはこちらの『P6toP6T for WIN32』させて頂いたが、今回入力したプログラムでは機械語とBASICデータ間にダミーデータを挿入しなくても問題なく変換・ロードが可能な事を確認できた。
その他
P6Tフォーマットにすることで可能となる『オートスタート』機能が非常に便利。市販ゲームや雑誌掲載の入力したプログラムの数はまだまだ少ないが、今のうちにモードとページやロード手順の管理をどこかでやらなければならないと考えていたが、この機能を使用することで一挙に解決できるようだ。
P6を入手してからまだ半年位だが、ネット上の情報を色々と調べているとエミュレータやツール群、雑誌掲載プログラムの再配布など『P6の環境は非常に恵まれている』と感じたが、どれもこれもユーザーの皆さんのおかげなんだよな…感謝せねばならん。
0 件のコメント:
コメントを投稿