1chipMSXにROMディスク その4 ― 2017年01月29日 10:41
ROMディスクの切り離し機能を付けてみた。
起動時(2番目のLEDが点灯している間)にF9押下で切り離し。
あと、音量は最大で固定にした。
ダウンロードはこちら
※前回のPOFとURL一緒。
切り離しはBIOS側ではなく、HW側で処理。(っていうかそんな解析できない)
仕掛けは単純で、切り離しキー押されたら、以降ROMDISKのアドレス空間へのアクセス時はデータをすべて0に置換しているだけ。
これで問題でないならVer1.04でROMディスク機能としてマージしようか…
※BIOSロード機能用のBIOSの様式がまた変更になるけど…
以下メモ。
物は試しでNextor+ROMDISKでROMDISKのRAM化ができるかちょっと試してみた。
とはいえ、NEXTORのBIOSは全く理解していないで、BlueMSXのESERAM上にNextor+ROMDISKを構築してMKDIR発行しながらデバッグウインドウで適当に当たりを付けてレジスタの値を書き換えて反応見る程度。
で、書き込み可のFDとROMDISKで返値が違った&h3977(バンク05)のルーチンにこれまた適当にパッチを当てたところ、ROMDISK上にディレクトリが作れたように見えた。
けどドライブ変更したりすると作ったディレクトリが消えるので、実際のディスクは書き換えれていない模様。
※メモリ上のFATのキャッシュだけ書き換わっている?
で、このBIOSを1chipMSXに書き込んだところ、ROMDISKには書き込みできないんだけど、LOCKしているはずのSDカードに書き込みができてしまった。(SDカードWindwosに持って来てもフォルダ増えてるのが確認できる)
…自分はいったい何をしたんだ?
訳も分からずBIOS書き換えなんてするもんじゃないなぁ…
コメント
_ OKEI ― 2017年01月29日 17:51
_ ゆうくん ― 2017年01月29日 23:19
OKEIさん、いつもありがとうございます。
>NextorのBank 0FhのSDドライバにROMdiskの読出しルーチンがあります。
>ROMdisk用なので書き込みルーチンは無いです。
なるほど。納得です。
1chipNextorMSXでESERAM上のファイル更新できてたんで勘違いしてたみたいです。
ESERAMにアクセスするときはESERAM上のDOSカーネルがドライバ兼ねてるんでしたっけ。
1chipMSXの特性上、今回のようなROMDISK(256KB)を作成する際896KBのディスクの先頭256KBを組み込んでやると(要はFATのセクタ数だけ&h700にするイメージ)、セクタスキャンで&h200以降にそのままMSXのBIOSが見え始めます。
※2+のBIOSでもサイズは320KB(漢字ROM含む)なので普通のフロッピーをイメージ化し、先頭256KBを組み込むのでも可能。
もしROMディスクが書き換え可能になると、ディスクアクセスする要領でBIOSが自由に書き換え可能になるという、面白いながら恐ろしい環境が簡単に作れてしまいます。
※VRMも128KBなのでうまくマッピングすればアクセス可能かも。
>NextorのBank 0FhのSDドライバにROMdiskの読出しルーチンがあります。
>ROMdisk用なので書き込みルーチンは無いです。
なるほど。納得です。
1chipNextorMSXでESERAM上のファイル更新できてたんで勘違いしてたみたいです。
ESERAMにアクセスするときはESERAM上のDOSカーネルがドライバ兼ねてるんでしたっけ。
1chipMSXの特性上、今回のようなROMDISK(256KB)を作成する際896KBのディスクの先頭256KBを組み込んでやると(要はFATのセクタ数だけ&h700にするイメージ)、セクタスキャンで&h200以降にそのままMSXのBIOSが見え始めます。
※2+のBIOSでもサイズは320KB(漢字ROM含む)なので普通のフロッピーをイメージ化し、先頭256KBを組み込むのでも可能。
もしROMディスクが書き換え可能になると、ディスクアクセスする要領でBIOSが自由に書き換え可能になるという、面白いながら恐ろしい環境が簡単に作れてしまいます。
※VRMも128KBなのでうまくマッピングすればアクセス可能かも。
_ ゆうくん ― 2017年01月30日 00:03
上記セクタスキャンでBIOS参照可能なBIOSロード機能用ROMイメージです。
ROMDISK版の1chipNextorMSXで利用可能です。
※SHEMも入れてあります。
ttp://yahoo.jp/box/hPXzKf
ROMDISK版の1chipNextorMSXで利用可能です。
※SHEMも入れてあります。
ttp://yahoo.jp/box/hPXzKf
_ OKEI ― 2017年01月30日 19:35
ROMdisk、書き換えできますね。
1chipMSXにMegaFlashROM SCC+ SDを差してShemを起動、Ctrl+Yでぺーじ1を8Bにします。6000hに90hを入れて4000h-5FFFhをBank10hに切替えると、書き込みできますよ。
NextorのSDドライバに書き込みルーチンを追加してみようかな。
1chipMSXにMegaFlashROM SCC+ SDを差してShemを起動、Ctrl+Yでぺーじ1を8Bにします。6000hに90hを入れて4000h-5FFFhをBank10hに切替えると、書き込みできますよ。
NextorのSDドライバに書き込みルーチンを追加してみようかな。
_ ゆうくん ― 2017年01月30日 23:23
>1chipMSXにMegaFlashROM SCC+ SDを差してShemを起動、Ctrl+Yでぺーじ1を8Bにします。
>6000hに90hを入れて4000h-5FFFhをBank10hに切替えると、書き込みできますよ。
おおっ、確かに!
1chipNextorMSX単体でもShemで
ファイル名変更できました。(前の書き込みのBIOSで確認しました)
リセットしても変更したままです。
>6000hに90hを入れて4000h-5FFFhをBank10hに切替えると、書き込みできますよ。
おおっ、確かに!
1chipNextorMSX単体でもShemで
ファイル名変更できました。(前の書き込みのBIOSで確認しました)
リセットしても変更したままです。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。
トラックバック
このエントリのトラックバックURL: http://miyako.asablo.jp/blog/2017/01/29/8340270/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
Nextorを似非SCCディスク(512kb)に入れた時に、書き込みルーチンを追加しようかと思ったことがあります。動作原理はMegaSCSIの似非RAMdiskと同じで、セクタ番号をバンク番号に変換してLDIでデータを転送しています。
1chipMSXのROMdiskはRAMdiskになる?