MSXにAT互換機のFDD接続 ― 2016年12月16日 23:00
MSXにAT互換機のFDDを接続するためのアダプタを作り直してみた。
今回は1.27mmピッチの両面基板+ポリエチレンウレタン銅線を利用してコンパクトにまとめてみた。
かなりシンプルに仕上がっていい感じ。
と、改めて以前改造したD353M3DをA1STに接続して動作確認していたら、ディスク入れ替えを検知しない…
どうやらDiskChangeがうまく処理できていない模様。
ということで、おとなしくDEN1、DEN2、DEN3をオープンにし、チップから2番ピンに直接配線した。
MSXのMAXメモリ? ― 2016年12月16日 23:42
某掲示板がきっかけで作成していた1ChipMSXの改造ファーム、最近放置していたんだけどそういえば手持ちのメモリを全部乗せるってやってみたんだよな、と画像をあげてみる。
構成は
Slot0-1、0-2、0-3、1-0、1-1、1-2、3-1に1ChipMSXの内蔵メモリをそれぞれ4M配置
Slot2には16MBメモリカードリッジ、Slot1-3は外部スロット1に割り当ててそこに4Mメモリカートリッジ
これで合計48MB。
にがさんのMPCMも全領域再生できました。
しかし、こんな大量のメモリきちんと使えるんだなぁ…
こちらM.A.D.さんとこの互換機。
スロット1に海外製の4Mカートリッジ、スロット2に16Mカートリッジ接続。
手前のUSBに接続しているのはキーボード。
内部的にPS/2接続するようにファーム改造してみた。
(なのでPS/2接続可能なUSBキーボードのみ接続可能)
Nextor OS ― 2016年12月17日 10:37
れふてぃさんにお声がけいただき、1ChipMSXのDISKBIOSのサイズ変更に挑戦中。
64KB→128KBということで、スロットに収まらないからバンク切り替え必須だよなぁ…内部でメガロム増設みたいなことするのかなぁとか考えながら調べてみることに。
とりあえず、話の元の某パッチ当ての権威の方のサイトをみてターゲットはNextorということを確認し、続いてNextorのサイトをのぞいてみると、普通に8Kバンク版のRomイメージが置いてあった。
1ChipMSXの内部に接続されているMegaSD(megasd.vhd)ってバンクとか似非RAM(というかMegaSCSI)と似たような構造だよね(多分)、ってことで8Kバンクのイメージならバンク切り替えはあんまり気にしなくてもいいんじゃないかと思い、とりあえず作ってみることに。
以下、HRA!氏の改造ファームでの話(オリジナルも多分ほとんど同じ動き)。
まず、1ChipMSXのブートシーケンスだけど
1・スロット3-3のページ0および3にマップされているiplrom.vhdが起動し、SD→内部の順にBIOSを検索する(注1)
2・BIOSがあったら、それをスロット3-2のページ1および2にマップされているMegaSD(megasd.vhd)に書き込み行う
3・MegaSDへの書き込みは、実際には1ChipMSXのSDRAMへの書き込みになるため、アドレスは&H600000~に用意したBIOSがそのままロードされる形になる(注2)。
4・各スロットはSDRAMにアドレス固定でマップされているので、3の書き込み後BIOSに正常にアクセスできるようになる
といった感じになっている(と思われる)。
アドレスに関してはソースの中に記述があり
こんな感じ。
DISKROMは600000-60FFFF( 64KB)の位置にロードされる。
で、DISKROMを128KBにするにはロードされる位置をその分ずらせばいいと考えた。
こうなるようにコード修正し、それに合わせたBIOSイメージファイルを準備する。
※アドレス指定がめんどくさくなるのでBIOSの順番は入れ替え。
この構成で
DISKBIOS(64K)+ダミー(0埋ファイル)(64K)+KANJIROM(128K)+MAINROM(32K)+SUBROM(16KB)+FMBIOS(16K)
というBIOSイメージを作成し、SDから起動することを確認した。
その後、
Nextor-2.0.4.StandaloneASCII8.rom(128K)+KANJIROM(128K)+MAINROM(32K)+SUBROM(16KB)+FMBIOS(16K)
というBIOSイメージを作成し、SDから読み込ませたところ、とりあえずNextorBASICが起動することが確認できた。
(BIOSはMSX2の物。2+のBIOS利用する場合は最後に64KBにサイズ調整した漢字ドライバ追加した上でSUBROMの書き換え必須)
で、CALL FDISKでPartitionningToolが起動することも確認できた。
ただ、SDカードにはアクセスできないし、スロットも全く反応しなくなった…
NextorOSのファイルを読み込ませる手段がないのでDOSの起動までは確認とれない。
でも、パッチ当ての権威の方のサイトを見るにNextorBIOSに何らかのパッチを当てる必要ありそうだからこれでいいのかな?
とここまでやって、れふてぃさんの検証待ち。
注1:SDカードからのBIOS読み込みはセクタを直接読んでいるらしく、ファイル名は何でもいいし、一度書き込んだ後消しても普通に読み込み成功する。
この動作のおかげでサイズの大きいBIOS→小さなBIOSの順でテストを行うと先に書き込んだBIOSの残骸のせいで思わぬ動作をすることがしばしば。
同じサイズのBIOSを入れ替えて確認する分には問題起きないだろうけど、そうでなければ念のため0埋めした大きなファイルで明示的にクリアしながら作業するの推奨。
注2:HRA!氏のファームの場合、ファームに埋め込むBIOSイメージは圧縮されているため、SDからはリニアに読み込まれるけど、ファームからの読み込みの場合は展開処理が入る。
この圧縮は2+BIOS(漢字ドライバの分256KBより大きくなる)を利用する際サイズを抑えるための手法と思われる。
海外のKDLなんかは未圧縮306KBのBIOSをファームに埋め込んで最後尾48KBを32Kと16Kに分割、それぞれ64Kに拡張してからメモリ上にロードしている(それぞれページ1からマップされるように前後に00(かFFかわからないけど)を埋めている)
64KB→128KBということで、スロットに収まらないからバンク切り替え必須だよなぁ…内部でメガロム増設みたいなことするのかなぁとか考えながら調べてみることに。
とりあえず、話の元の某パッチ当ての権威の方のサイトをみてターゲットはNextorということを確認し、続いてNextorのサイトをのぞいてみると、普通に8Kバンク版のRomイメージが置いてあった。
1ChipMSXの内部に接続されているMegaSD(megasd.vhd)ってバンクとか似非RAM(というかMegaSCSI)と似たような構造だよね(多分)、ってことで8Kバンクのイメージならバンク切り替えはあんまり気にしなくてもいいんじゃないかと思い、とりあえず作ってみることに。
以下、HRA!氏の改造ファームでの話(オリジナルも多分ほとんど同じ動き)。
まず、1ChipMSXのブートシーケンスだけど
1・スロット3-3のページ0および3にマップされているiplrom.vhdが起動し、SD→内部の順にBIOSを検索する(注1)
2・BIOSがあったら、それをスロット3-2のページ1および2にマップされているMegaSD(megasd.vhd)に書き込み行う
3・MegaSDへの書き込みは、実際には1ChipMSXのSDRAMへの書き込みになるため、アドレスは&H600000~に用意したBIOSがそのままロードされる形になる(注2)。
4・各スロットはSDRAMにアドレス固定でマップされているので、3の書き込み後BIOSに正常にアクセスできるようになる
といった感じになっている(と思われる)。
アドレスに関してはソースの中に記述があり
-- ISLTERM 600000-6FFFFF(1024KB) -- 600000-60FFFF( 64KB) MEGASD(ISLTERM BANK 0- 7) -- ROM_MAIN 610000-617FFF( 32KB) MEGASD(ISLTERM BANK 8- 11) -- ROM_EXTR 618000-61BFFF( 16KB) MEGASD(ISLTERM BANK12- 13) -- ROM_OPLL 61C000-61FFFF( 16KB) MEGASD(ISLTERM BANK14- 15) -- ROM_KANJI 620000-63FFFF( 128KB) MEGASD(ISLTERM BANK16- 31) -- ROM_FRM1(SLOT0-1) 640000-64FFFF( 64KB) MEGASD(ISLTERM BANK32- 39) -- ROM_FRM2(SLOT0-3) 650000-65FFFF( 64KB) MEGASD(ISLTERM BANK40- 47)
こんな感じ。
DISKROMは600000-60FFFF( 64KB)の位置にロードされる。
で、DISKROMを128KBにするにはロードされる位置をその分ずらせばいいと考えた。
-- ISLTERM 600000-6FFFFF(1024KB) -- 600000-61FFFF( 128KB) MEGASD(ISLTERM BANK 0- 15) -- ROM_KANJI 620000-63FFFF( 128KB) MEGASD(ISLTERM BANK16- 31) -- ROM_MAIN 640000-647FFF( 32KB) MEGASD(ISLTERM BANK32- 35) -- ROM_EXTR 648000-64BFFF( 16KB) MEGASD(ISLTERM BANK36- 37) -- ROM_OPLL 64C000-64FFFF( 16KB) MEGASD(ISLTERM BANK38- 39) -- ROM_FRM1(SLOT0-1) 650000-65FFFF( 64KB) MEGASD(ISLTERM BANK40- 47)
こうなるようにコード修正し、それに合わせたBIOSイメージファイルを準備する。
※アドレス指定がめんどくさくなるのでBIOSの順番は入れ替え。
この構成で
DISKBIOS(64K)+ダミー(0埋ファイル)(64K)+KANJIROM(128K)+MAINROM(32K)+SUBROM(16KB)+FMBIOS(16K)
というBIOSイメージを作成し、SDから起動することを確認した。
その後、
Nextor-2.0.4.StandaloneASCII8.rom(128K)+KANJIROM(128K)+MAINROM(32K)+SUBROM(16KB)+FMBIOS(16K)
というBIOSイメージを作成し、SDから読み込ませたところ、とりあえずNextorBASICが起動することが確認できた。
(BIOSはMSX2の物。2+のBIOS利用する場合は最後に64KBにサイズ調整した漢字ドライバ追加した上でSUBROMの書き換え必須)
で、CALL FDISKでPartitionningToolが起動することも確認できた。
ただ、SDカードにはアクセスできないし、スロットも全く反応しなくなった…
NextorOSのファイルを読み込ませる手段がないのでDOSの起動までは確認とれない。
でも、パッチ当ての権威の方のサイトを見るにNextorBIOSに何らかのパッチを当てる必要ありそうだからこれでいいのかな?
とここまでやって、れふてぃさんの検証待ち。
注1:SDカードからのBIOS読み込みはセクタを直接読んでいるらしく、ファイル名は何でもいいし、一度書き込んだ後消しても普通に読み込み成功する。
この動作のおかげでサイズの大きいBIOS→小さなBIOSの順でテストを行うと先に書き込んだBIOSの残骸のせいで思わぬ動作をすることがしばしば。
同じサイズのBIOSを入れ替えて確認する分には問題起きないだろうけど、そうでなければ念のため0埋めした大きなファイルで明示的にクリアしながら作業するの推奨。
注2:HRA!氏のファームの場合、ファームに埋め込むBIOSイメージは圧縮されているため、SDからはリニアに読み込まれるけど、ファームからの読み込みの場合は展開処理が入る。
この圧縮は2+BIOS(漢字ドライバの分256KBより大きくなる)を利用する際サイズを抑えるための手法と思われる。
海外のKDLなんかは未圧縮306KBのBIOSをファームに埋め込んで最後尾48KBを32Kと16Kに分割、それぞれ64Kに拡張してからメモリ上にロードしている(それぞれページ1からマップされるように前後に00(かFFかわからないけど)を埋めている)
Nextor OS その2 ― 2016年12月19日 22:20
前項で書いたNextorOSのDISKBIOSを1ChipMSXに書いたときにスロットが反応しないというのは勘違い。
正確には「NextorのDISKROMを1ChipMSXに入れた場合、スロットにさした似非RAMからMSX-DOSが起動しない」だけだった。MSX-DOSは起動はしないけどファイルは普通に読めていた。スロットにさしたゲームも普通に起動した。
で、SDカードは読めないけど、似非RAMの中は読めるので似非RAMにnextor.sysとcommand2.comのver2.44をコピーしたところ、とりあえずNextorOSのDOSの起動を確認できた。
MMも動いた。
ついでにこの構成でのSLOT.BASの実行結果
フラッシュで見えなくなってるけど、SLOT1のページ1は似非RAMにインストールしたDISKBIOS
SLOT3-2のページ1と2にNextorのDISKBIOSが見えてる。
でも、これだけだとただのMSX-DOSと変わらない…
Nextor OS その3 ― 2016年12月20日 22:14
BIOS内蔵できないのもいろいろ不便そうなので、IPLROM.VHDをHRA!氏のものから海外のKDLBIOSのものに差し替え。
これで、非圧縮BIOSが利用できるので、変更したBIOSの内蔵が可能になる。
といってもBIOSサイズは304KBまでに制限されるし、最後尾48KBは展開時に拡張されてしまうので、実質利用できるのは256KB。
そこで内蔵用BIOSの並び順を
DISKBIOS(128K)+MAINROM(32K)+SUBROM(16KB)+FMBIOS(16K)+FREE(64K)+Dummy(48K)
に変更。漢字ROMを切り捨てることで容量確保した。
※2+BIOS利用時にはFREEのところに漢字ドライバをセット。SUBROMの書き換え必須。
この並びで304KBのファイル作成し、HEXに変換、pofに書き込むことでBIOS内蔵版が出来上がる。
SDからのBIOSファイル読込はリニアに384KB読込可能なので
DISKBIOS(128K)+MAINROM(32K)+SUBROM(16KB)+FMBIOS(16K)+FREE(64K)+KANJIROM(128K)
というファイルを用意すれば漢字ROMまで利用可能。(MMのメニュー表示で確認)
とりあえず、BIOSマージしてないpofは上げておく。
最近のコメント