Nextor OS その4 ― 2016年12月28日 23:46
ここに書き忘れていたけど、1ChipMSXに内蔵するNextorのROMは
Nextor-2.0.4.StandaloneASCII8.rom
ではなく
Nextor-2.0.4.MegaFlashSDSCC.rom
の方を利用し、SDカードを刺したまま起動すると、1ChipMSXのSDカードスロットが有効になる。
内蔵FDISKを利用すれば4GB以上のSDHCも利用可能。
ただし、OKEIさんがコメントしてくれたようにSDHCを刺したままでは1ChipMSXは起動しない。
一度2GB以下のSDカードを刺して起動してあとから差し替えが必要。
この動作は前エントリで書いた通り、HW的な制約ではなく、iplromに起因するSW的制約な模様。
1ChipMSXのBIOSロード機能覚書 その3 ― 2016年12月28日 23:53
OKEIさんにNextorBIOSのSDカードドライバの逆アセンブルリストをいただいた。
とても分かりやすく纏められていて感動!
で、とてもいいサンプルがあるわけなので、さっそくIPLROMの改変に着手。
着手部分はSDカード初期化部分。
元のIPLROMではSDカードコマンドを
1・CMD0→CMD55→CMD41(CMD55とCMD41の組み合わせでACMD41)
もしくは
2・CMD0→CMD55→CMD1
と発行する。
どちらが実行されるかはCMD55の返値で判断されている。
おそらく、1がSDカード、2がMMC用と思われる。
で、ACMD41やCMD1は初期化処理なので初期化終了まで繰り返し発行される。
SDHCに対応するには
CMD0→CMD8→ACMD41→CMD58
と発行する必要があるみたい。
既存の初期化ルーチンにCMD8を組み込んでみたところ、動作は変わらずSDカードは起動するけどSDHCは起動途中でアクセスランプがつきっぱなしでハングした。
アクセスランプがつきっぱなしでハングということはループ抜けていないんだろうとCMD1を発行するか判断するルーチンをつぶして強制的にCMD0→CMD8→ACMD41→CMD58と発行されるように書き換えたところ、SDHCを刺したままでも1ChipMSXがブートするようにはなった。
この状態ではSDカードからのBIOSロードは機能する。しかし、SDHCからのBIOSロード機能が動かない…
どこか見落としあるのかな?
最近のコメント