1ChipMSXのBIOSロード機能覚書 その3
2016-12-28


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ロード機能が動かない…

どこか見落としあるのかな?




[MSX]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット