2019/02/27

PC-6001のテープイメージ作成に関するメモ(その2)

市販されているテープソフトのイメージ化はできるようになったが、古いPC雑誌に掲載されたプログラムで機械語+BASICのような分割ロードが必要なものを一つのテープイメージにする方法が分からず難儀した事のメモ書き。

(以下メモ)

試した事と不具合の状況

入力したプログラムはPC-6001mk2以降用のもので、MONコマンドでモニタを起動して機械語データをロードしてからBASICに戻り、CLOADでBASICで作成されたメインプログラムをロード・実行するような形式。

単純に2つのテープイメージを結合させたものだと、CLOADの段階でメインプログラムを見つけることができない。
市販ゲームをイメージ化した時のように、機械語とBASICのデータ間にダミーデータとして$00を適当に挿入することでメインプログラムのロードは可能となったが、先頭行のみ行番号がありえない数値となり、データの一部も破損してしまう。(二行目以降は問題無し)

原因と解決策について

とりあえずは機械語とBASICデータ間のダミーデータの個数を増減させてみると、19バイトでメインプログラムも破損しなくなったが、ちょっとスマートな方法ではない…。

Twitterでフォロワーの方から教えて頂いたが、マシン語のローダープログラムによっては最後のデータを読み込んでからテープが停止するまでにラグがあり、その為テープが進んでしまいロード失敗してしまうのが原因の様子。
解決策としてはダミーデータを挿入すると共に、テープイメージ形式を『P6T』にすることが無難との事。
<参考:ぱぴこんのこころさんのP6Tフォーマット技術資料> 

ツールはこちらの『P6toP6T for WIN32』させて頂いたが、今回入力したプログラムでは機械語とBASICデータ間にダミーデータを挿入しなくても問題なく変換・ロードが可能な事を確認できた。

その他 

P6Tフォーマットにすることで可能となる『オートスタート』機能が非常に便利。
市販ゲームや雑誌掲載の入力したプログラムの数はまだまだ少ないが、今のうちにモードとページやロード手順の管理をどこかでやらなければならないと考えていたが、この機能を使用することで一挙に解決できるようだ。

P6を入手してからまだ半年位だが、ネット上の情報を色々と調べているとエミュレータやツール群、雑誌掲載プログラムの再配布など『P6の環境は非常に恵まれている』と感じたが、どれもこれもユーザーの皆さんのおかげなんだよな…感謝せねばならん。

0 件のコメント:

コメントを投稿