027 ファミリーコンピュータ ディスクBASIC

*Mensen2.0.0を使用
バイナリエディタを使ってディスクBASICのfdsを作るってよ ファミコン改造マニュアルVOL.2とかに載っていたアレ もうすでにイメージ化してるのに メモ代わりに記しとくってさ というわけで用意するもの   ・適当なバイナリエディタ ・適当な市販ソフトのfdsイメージ ・ファミリーBASICV2.1Aのロムイメージ ・ディスクシステム、キーボード対応のエミュレータ   まずイメージを整える fdsのヘッダ(片面1枚)  0000:46 44 53 1A 01 00 00 00 00 00 00 00 00 00 00 00   市販ソフト ブロックコード$01  0010:01 2A 4E 49 4E 54 45 4E 44 4F 2D 48 56 43 2A 00  0020:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  0030:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  0040:00 00 00 00 00 00 00 00   ブロックコード$02 (ファイル登録)  0048 02 03     <ファイル00 KYODAKU> ブロックコード$03、$04 (許諾データ)  004A〜013Aの許諾ファイルはそのままにする   <ファイル01 CHR> ブロックコード$03  013B:03 01 00 43 48 52 00 00 00 00 00 00 00 00 20 01   ブロックコード$04  014B 04  後は014C〜214BにファミリーBASICのCHR(8K)を挿入する     <ファイル02 PRG>  ブロックコード$03  214C:03 02 00 50 52 47 00 00 00 00 00 00 80 00 60 00   ブロックコード$04 (BASICのプログラム)  215C:04    ここでファミリーBASICのPRGを挿入するわけですが  ディスク用に変換する  ファミリーBASICのPRG部分32Kバイトを  バイナリエディタを使用して$6000〜$7FFFを削除する  ココにはオープング、メッセージボード、占い等が入っている  $0000〜$5FFFがBASIC本体となる  下記のように書き換える   00BC-00BE:20 31 81 → 4C F0 80   00DB :70 → 60   00E0 :70 → 60   00E7 :70 → 60   00EC :70 → 60   00EE-00EF:AD 80 → AF B5   00FD :70 → 60   0104 :70 → 60   010B :70 → 60   0110 :70 → 60   0118 :70 → 60   0210 :70 → 60   0213 :70 → 60   0220 :58 → EA   038D :70 → 60   0390 :70 → 60   0393 :70 → 60   03A5 :70 → 60   0570 :77 → 7F   125A :78 → 80   4151-4156:53 59 53 45 4D → 42 47 54 4F 4F 4C   4367 :41 → 44   4427-4429:20 94 CD → EA EA EA      4436-4456:20 7A EC A9 0F 8D 15 40 A9 4C    85 ED A9 A7 85 EE A9 CD 85 EF A5 60 C9 01 D0 0A    A5 10 29 7F 20 7A EC 4C 00 80             ↓    8D 00 20 85 10 A9 0F 8D 15 40    A9 FF 8D 00 01 8D 01 01 A9 35 8D 02 01 A9 53 8D    03 01 A9 26 8D 25 40 4C AD 80   5FF0-5FFF:A5 BF 18 69 01 85 C0 A9 29 85 00 A9 FF 85 01 20             ↓    58 5C 60 00 ED 00 ED 00 ED 00 ED 00 00 C4 F0 DF    215D〜815Cに書き換えたBASICを挿入する    残り815D〜FFEBは$FFで埋める     ・===・・===・・===・・===・・===・ ||___||||___||||___||||___||||___|| | ◎ || ◎ || ◎ || ◎ || ◎ | | ∩ || ∩ || ∩ || ∩ || ∩ | ・―――・・―――・・―――・・―――・・―――・ では作成例として片面のゲーム、スーパーマリオのfdsを使用 ブロック$01の内容が少し違うのが普通で 自分で吸い出したんだから書き換えのソフトは違ってくる場合もある 必要なのはブロック$01内の“*NINTENDO-HVC*”とコールドスタート ブロック$02の登録ファイル数は許諾、CHR、PRGの3本   ↑手持ちのスーパーマリオは書き換え5回目で62年5月25日とわかる     次にCHRファイル部分を挿入するわけだが 許諾データまで$0000〜$013Aを残して後は削除する $013B〜$014Aを下記のように追加    013B:03 01 00 43 48 52 00 00 00 00 00 00 00 00 20 01   最後に014B:04にする ↑CHRのブロック$03と$04のマークを書く   ファミリーBASIC V2.1AのCHR 8KBのデータを $014C〜$214Bにコピーする   $214C〜$215BにPRGのブロック$03を書く    214C:03 02 00 50 52 47 00 00 00 00 00 00 80 00 60 00   最後に215C:04にしたら一旦、不完全イメージを保存する ↑続いてPRGのブロック$03と$04のマークを書く   新たにバイナリエディタで 本丸のファミリーBASIC V2.1AのPRGのデータ $0000〜$7FFFの$6000〜$7FFF部分を削除する 上記の変更を行い 一旦保存した不完全イメージを読み込み その後ろ$215D〜$815Cにコピーする ↑後は$815D〜$FFEBは$FFで埋める   後はエミュレータで起動できたら完成 許諾画面が出るんだけど許諾されていない けれど厳しくすると独禁に... まぁ個人でやる場合なので関係無い もし自作ソフトを販売する場合は 許諾画面を出さないようにするベキなんだけれど 今回は全く関係ない で、“8216 BYTES FREE”となっているハズ ちなみにCHRは書き換えもできる ↑作成成功   元々バックアップ活用研究8からの記事で PC−6601SR+ハ−ド 後にファミコン改造マニュアルVol.2で トンカチエディタを使用して 8KバイトのフリーエリアのディスクBASICを作成したもの プログラムのセーブはCMTになります となるとディスクのSAVE/LOADが欲しくなる 最もディスクのワークとBASICのワークの違いがあるので 簡単にはいかない ファミコン改造マニュアルVol.3で 一応SAVEする事が出来るようになってはいますが この一応がクセもので結構面倒だったりする 似たようなものではI2 DISK BASICがあり これもファミリーBASIC V2.1Aをベースに書き換えるもの これがベストかもしれない   ↑問題は創世機ファミーとジェネレータが必要なのところ   このディスクBASICを活用するにしても色々と不便であり せめてRAMファイルでもあれば... 今更だしなぁ ROMカセット+拡張ハードでやるのがいいだろうし すでにそういのがあるし
前に戻る Homeに戻る