MZ-800のI/Oマップ

検証されていないのであくまで参考程度に。


CRTC (GDG WHID65040-032)

アドレスR/W説明
CChW ライト・フォーマット・レジスタ(WF)
Bit76543210
信号WMD2WMD1WMD0B/AIVIIIIII

WMD[2:0]モードB/AIVIIIIIIディスプレイモード機能 [WD:書き込みデータ VD:VRAMデータ]
000Single WriteFrame A: 0
Frame B: 1
0/10/10/10/1320×200, 4/16色

640×200, 1/4色
1のプレーン: WD
0のプレーン: 変化せず
001EXOR1のプレーン: WD xor VD
0のプレーン: 変化せず
010OR1のプレーン: WD or VD
0のプレーン: 変化せず
011Reset1のプレーン: (not WD) and VD
0のプレーン: 変化せず
10xReplace0xx0/10/1320×200, 4色VRAMに指定カラーで書き込み

1のプレーン: WD
0のプレーン: 0
xのプレーン: 変化せず
10/10/1xx
x0/10/10/10/1320×200, 16色
0xxx0/1640×200, 1色
1x0/1xx
xx0/1x0/1640×200, 4色
11xPSET0xx0/10/1320×200, 4色VRAMに指定カラーで書き込み(ビットが1の部分のみ)

1のプレーン: WD or VD
0のプレーン: (not WD) and VD
xのプレーン: 変化せず
10/10/1xx
x0/10/10/10/1320×200, 16色
0xxx0/1640×200, 1色
1x0/1xx
xx0/1x0/1640×200, 4色
000MZ-70000001MZ-700VRAM/PCGRAM 通常ライト

※B/A はRF/WFで共用
※MZ-700モードでは 01h をセットする
CDhW リード・フォーマット・レジスタ(RF)
Bit76543210
信号SRCH/SING

B/AIVIIIIII

SRCH/SINGディスプレイモードB/AIVIIIIII機能 (VRAMリード時)
0MZ-70000001VRAM, PCG-RAM をそのまま読む
320×200, 4/16色
640×200, 1/4色
Frame A: 0
Frame B: 1
0/10/10/10/1指定のプレーンのデータをそのまま読む
複数のプレーンを指定してはならない
1320×200, 4色0xx0/10/1プレーンI, IIが指定の状態と一致した箇所のビットを1にして返す
10/10/1xxプレーンIII, IVが指定の状態と一致した箇所のビットを1にして返す
320×200, 16色x0/10/10/10/1プレーンI, II, III, IVが指定の状態と一致した箇所のビットを1にして返す
640×200, 1色0xxx0/1プレーンIが指定の状態と一致した箇所のビットを1にして返す
1x0/1xxプレーンIIIが指定の状態と一致した箇所のビットを1にして返す
640×200, 4色xx0/1x0/1プレーンI, IIIが指定の状態と一致した箇所のビットを1にして返す

※B/A はRF/WFで共用
※MZ-700モードでは 01h をセットする
CEhW ディスプレイ・モード・レジスタ(DMD)
Bit76543210
信号



DMD3DMD2DMD1DMD0

DMD解像度色数表示フレーム組み合わせ
0000320×2004Frame AI, II
0001320×2004Frame BIII, IV
0010320×20016Frame AI, II, III, IV
0100640×2001Frame AI
0101640×2001Frame BIII
0110640×2004Frame AI, III
100040×25
(MZ-700)
8Frame A
それ以外(禁止)

※DMD3は画面モードの制御だけではなく、システム全体のMZ-700/800モードを切り替える大元のスイッチのようだ

R ディスプレイ・ステータス・レジスタ(STATUS)
Bit76543210
信号HBLANKVBLANKHSYNCVSYNC

SW1TEMPO

HBLANK0: 水平ブランキング期間
1: 水平表示期間
VBLANK0: 垂直ブランキング期間
1: 垂直表示期間
HSYNC0: 水平帰線期間
1: 水平表示期間
VSYNC0: 垂直帰線期間
1: 垂直表示期間
SW1ディップスイッチSW1の状態
0: MZ-700モード
1: MZ-800モード
TEMPOテンポタイマー入力?
01CFhW スクロール・オフセット・レジスタ(SOF1)
Bit76543210
信号SOF[7:0]
02CFhW スクロール・オフセット・レジスタ(SOF2)
Bit76543210
信号
SOF[9:8]

SOF
最小値: 0
最大値: 3E8h
最小設定幅: 5
03CFhW スクロール幅レジスタ(SW)
Bit76543210
信号
SW

SW
最小値: 5
最大値: 7Dh
最小設定幅: 5
SW == SEA - SSA, SW > SSA
04CFhW スクロール開始アドレスレジスタ(SSA)
Bit76543210
信号
SSA

SW
最小値: 0
最大値: 7Dh
最小設定幅: 5
05CFhW スクロール終了アドレスレジスタ(SEA)
Bit76543210
信号
SEA

SW
最小値: 5
最大値: 7Dh
最小設定幅: 5
06CFhW ボーダーカラー・レジスタ(BCOL)
Bit76543210
信号
BCOL[3:0]

BCOLBCOL
0000 1000灰色
0001暗い青 1001明るい青
0010暗い赤 1010明るい赤
0011暗い紫 1011明るい紫
0100暗い緑 1100明るい緑
0101暗い水色1101明るい水色
0110暗い黄色1110明るい黄色
0111灰色 1111
ボーダーカラーはパレットの影響を受けない
07CFhW スーパーインポーズビット(CKSW)
Bit76543210
信号CKSW

CKSW0: 50Hz
1: 60Hz

8255 PPI

アドレスR/W説明
D0hW 8255 ポートA
Bit76543210
信号556RST
JOY2-8JOY1-8KEYSTROBE

556RSTカーソル点滅用タイマーのリセット0: リセット
1: 何もしない
JOY2-8ジョイスティックポート2 #8ピン出力
JOY1-8ジョイスティックポート1 #8ピン出力
KEYSTROBEキーボードマトリクスのストローブ出力
D1hR 8255 ポートB
キーボードマトリクスのデータ入力
\Strobe
Data\
0123456789
D7Blank YQIA1INSTBREAKF1
D6GRAPH ZRJB2~ DEL CTRL F2
D5£ @SKC3- F3
D4ALPHA [TLD4SP F4
D3TAB ]UME50 F5
D2; VNF69
D1: WOG7, ?
D0CR XPH8. / SHIFT
Blankは[カナ]の位置にあるキー
TABは[英数]の位置にあるキー
ALPHAは左[SHIFT]を2分割した右側のキー
D2hR/W 8255 ポートC
Bit76543210
R/WRRRRWWWW
信号VBLN556OUTRDATAMOTORM-ONINTMSKWDATASMSK

VBLN垂直ブランキング信号
556OUTカーソル点滅用タイマー
RDATAデータレコーダからの入力
MOTORデータレコーダのモータの状態0: OFF
1: ON
M-ONデータレコーダのモータON/OFF0→1の立ち上がりエッジでトリガ動作
INTMSK8253 Ch.2からの割り込みをマスクする0: 割り込み禁止
1: 割り込み許可
WDATAデータレコーダへの出力
SMSK8253 Ch.0からのサウンド出力および
割り込みをマスクする
0: サウンド/割り込み禁止
1: サウンド/割り込み許可
D3hW 8255 コントロール
  • ビットセット/リセット
    Bit76543210
    信号0
    ポートCの
    ビット番号
    0: リセット
    1: セット

  • モードセット
    ※MZ-800では8Ahに設定する
    Bit76543210
    信号1ModeAPortAPortCHModeBPortBPortCL

    ModeAPort A 動作モード1x: モード2
    01: モード1
    00: モード0
    ModeBPort B 動作モード1: モード1
    0: モード0
    PortAPort A 入出力0: 出力
    1: 入力
    PortBPort B 入出力0: 出力
    1: 入力
    PortCHPort C 上位ニブル 入出力0: 出力
    1: 入力
    PortCLPort C 下位ニブル 入出力0: 出力
    1: 入力

MZ-700モードではメモリマップドI/Oだが、MZ-800モードではI/O空間にマップされる。


8253 PIT

アドレスR/W説明
D4hR/W8253 Ch.0 カウンタリード/ライト
D5hR/W8253 Ch.1 カウンタリード/ライト
D6hR/W8253 Ch.2 カウンタリード/ライト
D7hW8253 コントロール
Bit76543210
信号SC1SC0RL1RL0M2M1M0BCD

SC1, SC0カウンタ選択00: Ch.0
01: Ch.1
10: Ch.2
11: Invalid
RL1, RL0Read/Load00: カウンタ・ラッチ・オペレーション
01: カウンタの下位バイトをアクセス
10: カウンタの上位バイトをアクセス
11: カウンタの下位バイト→上位バイトの順に連続してアクセス
M2,M1,M0モード選択000: Mode 0 (Interrupt on Terminal Count)
001: Mode 1 (Programmable One-Shot)
x10: Mode 2 (Rate Generator)
x11: Mode 3 (Square Wave Generator)
101: Mode 4 (Software Triggered Strobe)
101: Mode 5 (Hardware Triggered Strobe)
BCDカウントモード0: 16ビットバイナリ
1: 4桁BCD

MZ-700モードではメモリマップドI/Oだが、MZ-800モードではI/O空間にマップされる。

Ch.0のクロック周波数は1.1MHz
Ch.1のクロック周波数は15.625Hz


MZ-700のメモリマップドI/O E008h は、MZ-700モードでのみアクセス可能


メモリバンク切り替え

MZ-700モード
アドレスR/W説明
0000h-0FFFh
モニタROM1
1000h-1FFFh
CG-ROM
C000h-CFFFh
PCG-RAM
D000h-FFFFh
VRAM, MemI/O, ROM
E0hR
CG-ROMVRAM
E1h
DRAMDRAM
E0hWDRAMDRAM

E1h


DRAM
E2hROM


E3h


VRAM, MemI/O, ROM
E4hROMDRAMDRAMVRAM, MemI/O, ROM
E5h


禁止
E6h


禁止する前の状態に復帰

MZ-800モード
アドレスR/W説明
0000h-0FFFh
モニタROM1
1000h-1FFFh
CG-ROM
8000h-BFFFh
VRAM(*)
E000h-FFFFh
モニタROM2
E0hR
CG-ROMVRAM
E1h
DRAMDRAM
E0hWDRAMDRAM

E1h


DRAM
E2hROM


E3h


ROM
E4hROMCG-ROMVRAMROM
E5h


禁止
E6h


禁止する前の状態に復帰

(*) 320×200モード時は 8000h-9FFFh


パレット

アドレスR/W説明
F0hW パレット・レジスタ
Bit76543210
信号
S2S1S0IGR/SW1B/SW0

S[2:0]書き込むレジスタ書き込まれるデータ
000PLT0IGRB
001PLT1
010PLT2
011PLT3
1xxSWSW[1:0]

IGRBIGRB
0000 1000灰色
0001暗い青 1001明るい青
0010暗い赤 1010明るい赤
0011暗い紫 1011明るい紫
0100暗い緑 1100明るい緑
0101暗い水色1101明るい水色
0110暗い黄色1110明るい黄色
0111灰色 1111

パレットレジスタは、4bit長のレジスタが4本あり、1色モードではPLT0,1が、4色モードではPLT0〜3が使われる。
16色モードでは、プレーンIII・プレーンIVの出力データとSW[1:0]が一致する場合にのみPLT0〜3が適用され、それ以外の場合にはプレーンI〜IVの出力データがそのまま画面に出力される。(つまり、16色中4色のみにパレットが適用され、どの4色に適用するかをSWで指定する)


ジョイスティック

アドレスR/W説明
F0hR ジョイスティック1入力
Bit76543210
信号

TRG2TRG1RIGHTLEFTDOWNUP
F1hR ジョイスティック2入力
Bit76543210
信号

TRG2TRG1RIGHTLEFTDOWNUP

MZ-700/1500とは違い、ATARI仕様準拠。コモン出力は 8255 Port A の Bit4, 5 を使用。


PSG SN76489AN

アドレスR/W説明
F2hW SN76489
SN76489の入力クロックは 3.546895MHz

プリンタ・割り込み

アドレスR/W説明
FChWZ80PIO ポートAコントロール
FDhWZ80PIO ポートBコントロール
FEhR/W プリンタ制御・タイマ割り込み (Z80PIO ポートAデータ)
Bit76543210
R/WWWRRRRRR
信号RDPIRTVBLNINT000STARDA

INT08253 OUT0出力の反転
VBLN0: 垂直ブランキング期間
1: 垂直表示期間
FFhW プリンタ データ出力 (Z80PIO ポートBデータ)
Bit76543210
信号Data

MZ-1500では Bit5 に 8253 OUT2 出力が入っているが、MZ-800では垂直ブランク信号が入っている。(信号そのものは8255 Port C の Bit7 から読めるものと同じ)
また、Bit4 に入っている 8253 OUT0 出力も、MZ-800 では反転したものが入っていることに注意


戻る