DUO シリーズと PI-CD1 の仕様の考察です. Games Express CD Card の対応をしていて気になった記述がありました.
games express cd card (blue) 00F8C6: cli lda $18C1 <- レジスタの読み込み cmp #$AA bne $F8EB lda $18C2 <- レジスタの読み込み cmp #$55 bne $F8EB ;レジスタがあったので初期化 lda #$AA sta $18C0 <- レジスタへの書込み lda #$55 sta $18C0 <- レジスタへの書込み lda #$68 sta $2204 lda #$20 sta $2205 bra $F8F5 00F8EB: ;レジスタがないので旧システムと判断 lda #$80 sta $2204 lda #$08 sta $2205 00F8F5: lda #$01 tam #$40
CPU address $18cx は絶対 address 0x1ff8cx のことです.
read のレジスタは HuCard の Super System Card にも存在し、 BIOS でも参照してます. ここに無効な値をデータバスに出すと起動画面で SUPER の文字がでなくなって旧システムと判断するようです.
HuCard の Super System Card 内部には下記の IO があります. 全て mirror を含んだ絶対アドレスでの記述です.
絶対アドレス
0x000000-0x07ffff ROM 0x080000-0x0fffff RAM 0x1ff8c0-0x1ff8cf register
内蔵機種の場合 HuCard (相当品も含む)挿入でこれら全てが無効になると思いこんでたのですが, ROM と RAM を無効にして register は無条件で有効のようです. *1
この BIOS の書込みをから想像するに 0x1ff8c0 に上記の値を書き込むと HuCard が挿入されていても内蔵 RAM が使えるようになるみたいです. なぜなら Super System Card の BIOS ではこのレジスタ領域は読むだけで書くことはありませんでした. さらに HuCard の Super System Card では RAM は必ず有効になるべきなので, 本体内蔵機種でのみ意味があるレジスタになります. *2
UperGrafx では標準状態で address 0x1ff8cx の read レジスタは HuCard のほうを使うようにしています. Games Express 専用モードでは read レジスタも UperGrafx から出力することと 0x0d0000-0x0fffff の RAMを使えるようにして CD 麻雀美少女中心派が起動できることを確認しました.