戦士のカートリッジmkII 技術資料


2015 年11 月より頒布を開始した「特攻空母ベルーガ」の新しいROM カートリッジ「戦士のカートリッジmkII」は、ゲーム以外に様々な機能を有しています。ここではその機能を活用するために必要な技術情報を公開します。
なお、ゲーム以外のこれらの機能はオマケであり、確実に使用できることを保証するものではありません。また、将来のバージョンアップにより、機能が変更されたり、一部の機能が使えなくなったりする可能性があります。ご了承下さい。

■■■ 目次 ■■■
  1. 拡張RAMとして使用する
  2. 拡張ROMとして使用する
  3. 「旧戦士のカートリッジ」として使用する
  4. PC-6001mkII互換機能を使用する(初代PC-6001のみ)
  5. カートリッジ内のROMにデータを書き込む
  6. MegaFlashWriterの使い方
  7. カートリッジ内のROM/RAMを使用するための詳細仕様


PC-6601SRを使用される場合
起動時に特定のキーを押して起動する際は、電源投入後 / リセット ボタン押下後、1 秒間程度おいてからキーを押して下さい。キーを押すタイミングが早過ぎると正しく認識されないことがあります。


1.拡張RAMとして使用する

SHIFTキーを押しながら起動すると、PC-6000/6600 シリーズ用の拡張RAM 相当として動作します。初代PC-6001 は16KB (PC-6006 相当)、mkII以降は64KB (PC-6006SR 相当) のRAM が拡張されます。
FDDが接続されている場合に、SHIFTキーを押しながら起動した場合は、RAMが拡張されている状態でFDDから起動します。



2.拡張ROMとして使用する

CTRLAXキーを押しながら起動すると、カートリッジ内のROMの一部を外部ROMとして0x4000~0x7FFFに割り当て、起動させます。
カートリッジ内のROMで使用できるエリア、起動するキーは以下の通りです。

アドレスバンク表記セクタ-ブロック起動キー
ROMセット#ROMバンク#セクタ#ブロック#
00000~01FFF0000ベルーガ領域のため使用不可
02000~03FFF0101ベルーガ領域のため使用不可
04000~05FFF0202ベルーガ領域のため使用不可
06000~07FFF0303ベルーガ領域のため使用不可
08000~09FFF0404ベルーガ領域のため使用不可
0A000~0BFFF0505ベルーガ領域のため使用不可
0C000~0DFFF0606ベルーガ領域のため使用不可
0E000~0FFFF0707ベルーガ領域のため使用不可
10000~11FFF0810ベルーガ領域のため使用不可
12000~13FFF0911ベルーガ領域のため使用不可
14000~15FFF01012ベルーガ領域のため使用不可
16000~17FFF01113ベルーガ領域のため使用不可
18000~19FFF01214ベルーガ領域のため使用不可
1A000~1BFFF01315ベルーガ領域のため使用不可
1C000~1DFFF01416ベルーガ領域のため使用不可
1E000~1FFFF01517ベルーガ領域のため使用不可
20000~21FFF1020CTRL+A
22000~23FFF1121CTRL+A
24000~25FFF1222CTRL+B
26000~27FFF1323CTRL+B
28000~29FFF1424CTRL+C
2A000~2BFFF1525CTRL+C
2C000~2DFFF1626CTRL+D (RAM16K)
2E000~2FFFF1727CTRL+D (RAM16K)
30000~31FFF1830CTRL+E
32000~33FFF1931CTRL+E
34000~35FFF11032CTRL+F
36000~37FFF11133CTRL+F
38000~39FFF11234CTRL+G
3A000~3BFFF11335CTRL+G
3C000~3DFFF11436CTRL+H (RAM16K)
3E000~3FFFF11537CTRL+H (RAM16K)
40000~41FFF2040CTRL+I
42000~43FFF2141CTRL+I
44000~45FFF2242CTRL+J
46000~47FFF2343CTRL+J
48000~49FFF2444CTRL+K
4A000~4BFFF2545CTRL+K
4C000~4DFFF2646CTRL+L (RAM16K)
4E000~4FFFF2747CTRL+L (RAM16K)
50000~51FFF2850CTRL+M
52000~53FFF2951CTRL+M
54000~55FFF21052CTRL+N
56000~57FFF21153CTRL+N
58000~59FFF21254CTRL+O
5A000~5BFFF21355CTRL+O
5C000~5DFFF21456CTRL+P (RAM16K)
5E000~5FFFF21557CTRL+P (RAM16K)
60000~61FFF3060CTRL+Q
62000~63FFF3161CTRL+Q
64000~65FFF3262CTRL+R
66000~67FFF3363CTRL+R
68000~69FFF3464CTRL+S
6A000~6BFFF3565CTRL+S
6C000~6DFFF3666CTRL+T (RAM16K)
6E000~6FFFF3767CTRL+T (RAM16K)
70000~71FFF3870CTRL+U
72000~73FFF3971CTRL+U
74000~75FFF31072CTRL+V
76000~77FFF31173CTRL+V
78000~79FFF31274CTRL+W
7A000~7BFFF31375CTRL+W
7C000~7DFFF31476CTRL+X (RAM16K)
7E000~7FFFF31577CTRL+X (RAM16K)

0x2C000~0x2FFFF(CTRL-D)、0x3C000~0x3FFFF(CTRL-H)、0x4C000~0x4FFFF(CTRL-L)、0x5C000~0x5FFFF(CTRL-P)、0x6C000~0x6FFFF(CTRL-T)、0x7C000~0x7FFFF(CTRL-X)、に割り当てたROMを起動した場合は、拡張RAMを割り当てません。
それ以外の場合は、拡張RAMを割り当てて、合計32Kで起動します。PC-6006のソケットにROMを挿した状態で、起動した場合と同様の動作になります。

カートリッジ内のROMに書き込む方法については、『5.カートリッジ内のROMにデータを書き込む』を参照して下さい。



3.『旧戦士のカートリッジ』として使用する

CTRLYCTRLZキーを押しながら起動すると、カートリッジ内のROMの一部を『旧戦士のカートリッジ』のROMとして起動します。
カートリッジ内のROMで使用できるエリア、起動するキーは以下の通りです。

起動キーアドレスバンク表記セクタ
ROMセット#ROMバンク#セクタ#セクタ#
CTRLY40000~5FFFF20~1545
CTRLZ60000~7FFFF30~1567

カートリッジ内のROMに書き込む方法については、『5.カートリッジ内のROMにデータを書き込む』を参照して下さい。



4.PC-6001mkII互換機能を使用する(初代PC-6001のみ)

ESCキーを押しながら起動すると、似非mkII (エセマークツー) モードで動作します。似非mkII モードとは、初代PC-6001 の全メモリ領域64KB をRAM にして、mkII 以降と同様の動作をさせるものです。 あくまでRAM が増えるだけですので、MODE 5 の画面やBASIC が使えるようになるわけではありません。 似非mkIIでは、mkII 以降専用の「タイニー ゼビウスmkII」、「スペース ハリアー」、「サンダーフォース」の動作報告があります 。


この機能は初代PC-6001のみで、それ以外の機種では普通にベルーガが起動します。



5.カートリッジ内のROMにデータを書き込む

!!!注意事項!!!
すべての作業に関して、自己責任で行って下さい。万一、ここの記載が誤っていても、当方では責任は負いません。
カートリッジ内のROMにデータを書き込む際、途中で電源を切ったり、リセットをしたりしないで下さい。
最悪、書き込まれているデータ(ベルーガプログラムを含む)が消去される場合があります。
また、ベルーガプログラムのバックアップ方法については、このHPでは記載しません。

カートリッジ内のROMにデータを書き込むためには、いくつかの手順を踏む必要があります。
  1. JP1をショートする
  2. 書き込むデータを分割、変換する
  3. MegaFlashWriterを起動する
  4. ROMにデータを書き込む
  5. JP1をオープンに戻す

以下、それぞれの手順の詳細です。

1) JP1をショートする

カートリッジの基板上の『PROGRAM JP1』をショートします。
可能ならスイッチを付けるか、一時的にリード線などを半田付けして下さい。
通常のジャンパピンを付けると、高さが高いために上の蓋が閉まらなくなります。

2) 書き込むデータを分割、変換する

まず、ROMに書き込みたいプログラム(バイナリデータ)を用意します。バイナリデータなら、拡張子は問いません。
(エミュレータで使用する時は、通常は~.binだと思います)
書き込みデータの変換プログラム(ct8k.exe)を使って、書き込みたいデータを分割、変換します。

ct8k.exe をダウンロードする

ct8k.exeは、コマンドライン用のプログラムです。コマンドプロンプトから、ct8k filename と入力すると、分割、変換を行います。ct8k.exe を実行すると、filename.000.p6、filename.001.p6、…、という通し番号がついたファイルが生成されます。
次に、生成されたファイルを、P6DatRecなどを使用してwavファイルに変換します。
(P6DatRecの場合は、入力するファイルの拡張子が~.p6になっている必要があります。)

3) MegaFlashWriterを起動する

カートリッジをP6本体に挿入し、キーを両方押しながら起動します。すると、MegaFlashWriterが起動されます。

4) ROMにデータを書き込む

MegaFlashWriterを使用して、目的の場所にデータを書き込みます。使用方法については、『6.MegaFlashWriterの使い方』を参照して下さい。

5) JP1をオープンに戻す

書き込みが終了後、カートリッジ上のJP1をオープンに戻します。

書き込みが終わったら、必ず JP1 をオープンに戻して下さい。
そのままにして置くと、最悪、暴走などが原因で、ROMのデータが消去される可能性があります。



6.MegaFlashWriterの使い方

機能概要

Mega Flash Writerは、ベルーガカートリッジに搭載されているFLASH-ROMへの書き込み、及び部分消去が出来ます。
また、書き込みは、テープベースになります。

起動方法

起動時、キーを両方押します。
また、FLASH-ROMにデータを書き込む/消去をしたい場合は、JP1をショートする必要があります。

!!!注意事項!!!
すべての作業に関して、自己責任で行って下さい。万一、ここの記載が誤っていても、当方では責任は負いません。
カートリッジ内のROMにデータを書き込む際、途中で電源を切ったり、リセットをしたりしないで下さい。
最悪、書き込まれているデータ(ベルーガプログラムを含む)が消去される場合があります。
通常使用時は、JP1をショートしないで下さい。最悪、暴走などでFLASH-ROMの内容が消去される可能性があります。
ベルーガが書き込まれている領域(SECT0、SECT1)は選択できません。間違って消去などしないためです。

使い方

起動すると、以下のような画面が表示されます。
====== Mega Flash Writer =======
BLOCK 01234567     1.SELECT
SECT0 @@@@@@@@     2.CLOAD
SECT1 @@@@@@@@     3.WRITE
SECT2 --------     4.ERASE
SECT3 --------
SECT4 --------
SECT5 --------
SECT6 --------
SECT7 --------
*Command >


画面の見方ですが、@ や - が表示されている部分が、1つのバンク(8Kバイト)になります。
また、SECT0~SECT7は、セクタ#0~セクタ#7を表しています。

@ が既に書き込まれているブロック、 - が空いているブロックを示します。
(空いているブロックというのは、全てのデータが0xFFのブロックです)

一番最初は、セクタ#0、セクタ#1、@ が表示されているはずです(上図のようになっている)。
ここには、ベルーガのプログラムが書き込まれています。

FLASH-ROMのアドレスと、バンク表記と、セクタ番号-ブロック番号の対応は、『2.拡張ROMとして使用する』を参照して下さい。

・書き込み方法
  1. 書き込むサイズは8Kバイトごとです。
  2. 書き込むデータを用意します。テープベースですので、~.wav を作成する必要があります。作成方法は『5.2)書き込むデータを分割、変換する』を参照して下さい。
  3. 1を押し、SELECT を実行します。セクタ番号を聞いてくるので、書き込むバンクがあるセクタを選びます。
  4. 2を押し、CLOAD を実行します。ブロック番号を聞いてくるので、書き込むブロックを選びます。
  5. テープからロードします。2分弱かかります。
  6. 3を押します。選択していたセクタを書き込みます。3を押した後は、書き込み処理が終了してコマンドを受け付ける状態になるまでは、リセットしたり、電源を切ったりしないで下さい。

複数のデータを書き込む場合、違うセクタのバンクに書き込む時には、上記の手順を踏む必要があります。
同じセクタのバンクに書き込む場合は、以下のようにします。
  1. 1を押し、SELECT を実行します。セクタ番号を聞いてくるので、書き込むバンクがあるセクタを選びます。
  2. 2を押し、CLOAD を実行します。ブロック番号を聞いてくるので、書き込むブロックを選びます。
  3. 2を押し、次のデータをロードします。ブロック番号を聞いてくるので、書き込むブロックを選びます。
  4. 書き込むデータの数だけ、3)を繰り返します。
  5. 書き込みたいデータをすべてロードしたら、3を押します。選択していたセクタを書き込みます。3を押した後は、書き込み処理が終了してコマンドを受け付ける状態になるまでは、リセットしたり、電源を切ったりしないで下さい。

・セクタの消去方法
  1. 1を押し、SELECT を実行します。セクタ番号を聞いてくるので、消去するセクタを選びます。
  2. 4を押し、ERASE を実行します。4を押した後は、消去処理が終了してコマンドを受け付ける状態になるまでは、リセットしたり、電源を切ったりしないで下さい。


FLASH-ROMには、8Kバイト単位でしか書き込めません。
また、消去は、1セクタ(64Kバイト)ごとでしか、消去することができません。



7.カートリッジ内のROM/RAMを使用するための詳細仕様

カートリッジの構成

新ROMカートリッジ「戦士のカートリッジmkII」には、FLASH-ROM(512Kバイト)、SRAM(128Kバイト)が搭載されています。
便宜上、アドレスと8Kバイトごとのバンク表記をすると以下の通りです。

FLASH-ROM:00000~7FFFF

アドレスROMセット#ROMバンク#
00000~01FFF00ベルーガプログラムで使用
02000~03FFF01ベルーガプログラムで使用
04000~05FFF02ベルーガプログラムで使用
06000~07FFF03ベルーガプログラムで使用
:
1A000~1BFFF013ベルーガプログラムで使用
1C000~1DFFF014ベルーガプログラムで使用
1E000~1FFFF015ベルーガプログラムで使用
20000~21FFF10
22000~23FFF11
24000~25FFF12
26000~27FFF13
:
3A000~3BFFF113
3C000~3DFFF114
3E000~3FFFF115
40000~41FFF20
:
5E000~5FFFF215
60000~61FFF30
:
7E000~7FFFF315

SRAM:00000~1FFFF

アドレスRAMバンク#
00000~01FFF0
02000~03FFF1
04000~05FFF2
06000~07FFF3
08000~09FFF4
0A000~0BFFF5
0C000~0DFFF6
0E000~0FFFF7
10000~11FFF8
12000~13FFF9
14000~15FFF10
16000~17FFF11
18000~19FFF12
1A000~1BFFF13
1C000~1DFFF14
1E000~1FFFF15

P6本体から見た場合、カートリッジとしてのアドレス空間は0x0000~0xFFFFです。
そのアドレス0x0000~0xFFFFに対して、8Kバイトごとに、FLASH-ROM、RAMを自由に割り当てる事ができます(一部制限あり)。

アドレス割り当て

I/Oポート0x30~0x37を設定する事で、FLASH-ROM、RAM、SCCを割り当てます。

ポート0x30:Bank A(0x0000~0x1FFF)
ポート0x31:Bank B(0x2000~0x3FFF)
ポート0x32:Bank C(0x4000~0x5FFF)
ポート0x33:Bank D(0x6000~0x7FFF)
ポート0x34:Bank E(0x8000~0x9FFF)
ポート0x35:Bank F(0xA000~0xBFFF)
ポート0x36:Bank G(0xC000~0xDFFF)
ポート0x37:Bank H(0xE000~0xFFFF)

各ポートに書き込む値と割り当ては以下の通りです。

bit7-6=00時、FLASH-ROMを割り当てる。
bit5-4:ROMセット番号(#0~#3)
bit3-0:ROMバンク番号(#0~#15)

ROMセットは、Bank A~Bank Hで同じROMセットにしかアクセスできません。
違う値が設定されたときは、最後にセットしたROMセット番号になります。

bit7-6=01時、SRAMを割り当てる。
bit3-0:RAMバンク番号(#0~#15)

bit7-6=10時、SCCを割り当てる。
bit2:1 をセットする
bit1:0 をセットする
bit0:0時、互換モード。1時、SCC-Iモード

SCCは、カートリッジ内に端子のみが用意されています(拡張用です)。

bit7-6=11時、機能を割り当てない。

また、旧ベルーガカートリッジの互換動作用のレジスタがあります。

ポート0x70:Bank C(0x4000~0x5FFF)

bit3-0:ROMバンク番号(#0~#15)

BANK CにROMを割り当てる。
(ポート0x32に、bit7-4=00 として設定した場合とほぼ同じ動作になる)

ポート0x70では、ROMセット番号は指定できません。
ROMセット番号を指定する場合は、ポート0x30~0x37を使用して下さい。

リセット時、ROMセット番号=0です。

P6側の設定

カートリッジにアクセスするためには、P6側にも設定が必要になります。

・mk2、66の場合、及びmk2SR、66SRでのモード1~5の場合
ポート0xF0~0xF2を使用します。
カートリッジにアクセスする場合は、外部ROM、もしくは外部RAMの設定にします。
どちらを使用しても構いませんが、外部ROM設定の場合は書き込みが出来ません。

・mk2SR、66SRのモード6の場合
ポート0x60~0x6Fを使用します。
カートリッジにアクセスする場合は、外部ROM、もしくは外部RAMの設定にします。
どちらを使用しても構いませんが、外部ROM設定の場合は書き込みが出来ません。

・初代機の場合
初代機の場合、通常は0x0000~0x3FFFは内部ROM、0x4000~0x7FFFは外部ROMとなります。
そのために、0x0000~0x7FFFの領域に読み書きできるようにレジスタを設けています。

ポート0x06:初代機設定
ポート0xF0:0x0000~0x7FFFの読み出し設定(mk2以降のポート0xF0と似たような動作)
ポート0xF2:0x0000~0x7FFFの書き込み設定(mk2以降のポート0xF0と似たような動作)

ポート0x06に0x66、ポート0xF0のbit3-0に外部ROM/RAMの設定すると、0x0000~0x3FFFの範囲の読み出しが出来ます(内部ROMからはデータが読めなくなる)。

ポート0x06に0x66、ポート0xF2のbit3-2に内部/外部RAMの設定すると、0x4000~0x7FFFの範囲に書き込みが出来ます。
ポート0x06に0x66、ポート0xF2のbit1-0に内部/外部RAMの設定すると、0x0000~0x3FFFの範囲に書き込みが出来ます。

ポート0xF0は、0000、0011、0100、0111~1111、のどれかを設定した場合に外部ROM/RAMを読み出す設定になります。
ポート0xF2は、01、10、11、のどれかを設定した場合に外部ROM/RAMに書き込む設定になります。

初代機以外では、ポート0x06 には 0x66 を設定しないで下さい。

起動時の動作

・起動時、SHIFTキーを押している場合は、以下のポートが設定されている状態になります。
初代機の場合:
ポート0x30=0xFF(割り当てなし)
ポート0x31=0xFF(割り当てなし)
ポート0x32=0xFF(割り当てなし)
ポート0x33=0xFF(割り当てなし)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)
ポート0x36=0xFF(割り当てなし)
ポート0x37=0xFF(割り当てなし)

mk2以降の場合:
ポート0x30=0x40(RAMバンク#0)
ポート0x31=0x41(RAMバンク#1)
ポート0x32=0x42(RAMバンク#2)
ポート0x33=0x43(RAMバンク#3)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)
ポート0x36=0x46(RAMバンク#6)
ポート0x37=0x47(RAMバンク#7)

・起動時、ESCキーを押している場合は、以下のポートが設定されている状態になります。
初代機の場合:
ポート0x30=0x40(RAMバンク#0)
ポート0x31=0x41(RAMバンク#1)
ポート0x32=0x42(RAMバンク#2)
ポート0x33=0x43(RAMバンク#3)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)
ポート0x36=0xFF(割り当てなし)
ポート0x37=0xFF(割り当てなし)
ポート0x06=0x66(初代機モード)
ポート0xF0=0xd1(0x0000-0x3FFFは内部ROM、0x4000-0x7FFFは外部RAMから読み出す)
ポート0xF2=0x55(0x0000-0x7FFFは外部RAMに書き込む)

・起動時、CTRL+ACTRL+Xを押している場合は、以下のポートが設定されている状態になります。

CTRL+A
ポート0x32=0x10(ROMセット#1、ROMバンク#0)
ポート0x33=0x11(ROMセット#1、ROMバンク#1)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+B
ポート0x32=0x12(ROMセット#1、ROMバンク#2)
ポート0x33=0x13(ROMセット#1、ROMバンク#3)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+C
ポート0x32=0x14(ROMセット#1、ROMバンク#4)
ポート0x33=0x15(ROMセット#1、ROMバンク#5)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+D
ポート0x32=0x16(ROMセット#1、ROMバンク#6)
ポート0x33=0x17(ROMセット#1、ROMバンク#7)
ポート0x34=0xFF(割り当てなし)
ポート0x35=0xFF(割り当てなし)

CTRL+E
ポート0x32=0x18(ROMセット#1、ROMバンク#8)
ポート0x33=0x19(ROMセット#1、ROMバンク#9)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+F
ポート0x32=0x1A(ROMセット#1、ROMバンク#10)
ポート0x33=0x1B(ROMセット#1、ROMバンク#11)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+G
ポート0x32=0x1C(ROMセット#1、ROMバンク#12)
ポート0x33=0x1D(ROMセット#1、ROMバンク#13)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+H
ポート0x32=0x1E(ROMセット#1、ROMバンク#14)
ポート0x33=0x1F(ROMセット#1、ROMバンク#15)
ポート0x34=0xFF(割り当てなし)
ポート0x35=0xFF(割り当てなし)

CTRL+I
ポート0x32=0x20(ROMセット#2、ROMバンク#0)
ポート0x33=0x21(ROMセット#2、ROMバンク#1)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+J
ポート0x32=0x22(ROMセット#2、ROMバンク#2)
ポート0x33=0x23(ROMセット#2、ROMバンク#3)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+K
ポート0x32=0x24(ROMセット#2、ROMバンク#4)
ポート0x33=0x25(ROMセット#2、ROMバンク#5)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+L
ポート0x32=0x26(ROMセット#2、ROMバンク#6)
ポート0x33=0x27(ROMセット#2、ROMバンク#7)
ポート0x34=0xFF(割り当てなし)
ポート0x35=0xFF(割り当てなし)

CTRL+M
ポート0x32=0x28(ROMセット#2、ROMバンク#8)
ポート0x33=0x29(ROMセット#2、ROMバンク#9)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+N
ポート0x32=0x2A(ROMセット#2、ROMバンク#10)
ポート0x33=0x2B(ROMセット#2、ROMバンク#11)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+O
ポート0x32=0x2C(ROMセット#2、ROMバンク#12)
ポート0x33=0x2D(ROMセット#2、ROMバンク#13)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+P
ポート0x32=0x2E(ROMセット#2、ROMバンク#14)
ポート0x33=0x2F(ROMセット#2、ROMバンク#15)
ポート0x34=0xFF(割り当てなし)
ポート0x35=0xFF(割り当てなし)

CTRL+Q
ポート0x32=0x30(ROMセット#3、ROMバンク#0)
ポート0x33=0x31(ROMセット#3、ROMバンク#1)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+R
ポート0x32=0x32(ROMセット#3、ROMバンク#2)
ポート0x33=0x33(ROMセット#3、ROMバンク#3)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+S
ポート0x32=0x34(ROMセット#3、ROMバンク#4)
ポート0x33=0x35(ROMセット#3、ROMバンク#5)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+T
ポート0x32=0x36(ROMセット#3、ROMバンク#6)
ポート0x33=0x37(ROMセット#3、ROMバンク#7)
ポート0x34=0xFF(割り当てなし)
ポート0x35=0xFF(割り当てなし)

CTRL+U
ポート0x32=0x38(ROMセット#3、ROMバンク#8)
ポート0x33=0x39(ROMセット#3、ROMバンク#9)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+V
ポート0x32=0x3A(ROMセット#3、ROMバンク#10)
ポート0x33=0x3B(ROMセット#3、ROMバンク#11)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+W
ポート0x32=0x3C(ROMセット#3、ROMバンク#12)
ポート0x33=0x3D(ROMセット#3、ROMバンク#13)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)

CTRL+X
ポート0x32=0x3E(ROMセット#3、ROMバンク#14)
ポート0x33=0x3F(ROMセット#3、ROMバンク#15)
ポート0x34=0xFF(割り当てなし)
ポート0x35=0xFF(割り当てなし)


ポート0x30、0x31、0x36、0x37は全部0x00(割り当てなし)です。


・起動時、CTRL+ACTRL+Yを押している場合は、以下のポートが設定されている状態になります。

CTRL+Y
ポート0x32=0x20(ROMセット#2、ROMバンク#0)
ポート0x33=0x43(RAMバンク#3)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)
ポート0xF0=0xe1(0x0000-0x3FFFは内部ROM、0x4000-0x7FFFは外部RAMから読み出す)
ポート0xF1=0xdd(0x8000-0xFFFFは内部RAMから読み出す)
ポート0xF2=0x58(0x0000-0x3FFFは未使用、0x4000-0x7FFFは外部RAMに書き込む)

初代機の場合は、さらに
ポート0x06=0x66(初代機モード)

使用するROMバンクは、ROMセット#2、ROMバンク#0~#15


CTRL+Z
ポート0x32=0x30(ROMセット#3、ROMバンク#0)
ポート0x33=0x43(RAMバンク#3)
ポート0x34=0x44(RAMバンク#4)
ポート0x35=0x45(RAMバンク#5)
ポート0xF0=0xe1(0x0000-0x3FFFは内部ROM、0x4000-0x7FFFは外部RAMから読み出す)
ポート0xF1=0xdd(0x8000-0xFFFFは内部RAMから読み出す)
ポート0xF2=0x58(0x0000-0x3FFFは未使用、0x4000-0x7FFFは外部RAMに書き込む)

初代機の場合は、さらに
ポート0x06=0x66(初代機モード)

使用するROMバンクは、ROMセット#3、ROMバンク#0~#15




更新履歴
2015/11/01 公開