第0章 まだまだ完全無欠にならないI/Oマップ

Ver.2013.7.1

これがないと始まらない、おきまりの資料。
PSGのレジスタマップがないとか、アドレス未デコード情報が不完全とかは周知のことなので指摘しないでいただきたい。
間違い、追記の必要、要望などがあれば掲示板へ書いてほしい。
信号名は回路図を参考にしているが多くは分からないので適当に付けてある。

機能別参照
X1/turbo/Z全シリーズに適合 汎用I/O スキャナ用パラレル FM 音源ボード カラーイメージボード 立体映像ボード
RS232Cカード VHDpc  外部RAMボード BASIC ROM 漢字ROM SASI-HDD 8 イン チFD 5インチFD
グラ フィッ クパレット PCG CRTC サ ブCPU PIA8255 PSG/ ジョイスティック IPL ROM
Z80 周辺 増 設SIO/CTC テキストVRAM
X1turbo/Zシ リーズのみ適合 バンクメモリ 画 面制御 スタートポート 
X1turboZシリー ズのみ 適合 Zモード
付随資料
サブCPUコマンド CRTCレジスタ




メモリマップ(I/Oじゃないよ)
Z80メモリ
アドレス空間
BMCS
(0B00H.4)
IPL ROMセレクト
(1DxxH/1ExxH)
R/W マップ されるメモリ
0000H-7FFFH 1 OFF R/W メインRAM
1 ON R IPL ROM (X1)
BIOS ROM(Turbo/Z)
W メインRAM
0 x R/W バンクメモリ
8000H-FFFFH x x R/W メインメモリ
X1turbo/Zは基本ノーウェイトだが、X1ではIPL ROM選択時にM1サイクルで1ウエイト挿入される。
IPL ROMのアクセス時ではなく選択時、つまり8000H-FFFFHのメインメモリについてもそれは起こる。
そのような情報は読んだことがなのだが回路図にはそう書いてあるのである。

I/Oアドレス全体マップ/グラフィックRAM
アドレス 同時アクセス
モード(1A02H.5)
R/W
バンク0アクセス
1FD0H.4=0
バンク1アクセス
1FD0H.4=1
0000H-3FFFH
-
R
システムI/O,、 テキストVRAM
OFF W
4000H-7FFFH
-
R
GRAM B0
GRAM B1
OFF
W
8000H-BFFFH
-
R
GRAM R0
GRAM R1
OFF
W
C000H-FFFFH
-
R
GRAM G0
GRAM G1
OFF
W
0000H-3FFFH
ON
W
GRAM B0+R0+G0
GRAM B1+R1+G1
4000H-7FFFH
W
GRAM      R0+G0
GRAM      R1+G1
8000H-BFFFH
W
GRAM B0     +G0
GRAM B1     +G1
C000H-FFFFH
W
GRAM B0+R0
GRAM B1+R1
-
R
リードサイクル開始時に同時アクセスモード解除
(同時に通常のIOリードが行われる)
200 line時、GRAMオフセット値 = (X/8) + ((Y & 7)<<11) + ((Y/8)*WIDTH{40 or 80})
400 line時、GRAMオフセット値はY/2を200line時のYとして同じ計算、GRAMバンク = (Y & 1)
同時アクセスモード中はGRAM以外のI/Oに書き込みアクセスすることはできない。
GRAMはVRAMサイクルスチールアクセスで、アクセス時に数ピクセルクロック間のウェイトが発生する。


汎用I/O (CZ- 8UIユニバーサルI/Oボード)
ア ドレス
R/W
説 明
0000H
W
ボード0、 O1 - O8 出力レベル設定
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
O8
O7
O6
O5
O4
O3
O2
O1
DIP SW1-1がONの時、常時出力
DIP SW1-1がOFFの時、書き込み期間のみ出力
R
ボード0、O1-O8 ピンレベル入力
0001H
W
ボー ド0、O9 - O16 出力レベル設定
DIP SW1-2がONの時、常時出力
DIP SW1-2がOFFの時、書き込み期間のみ出力
R
ボード0、O9 - O16 ピンレベル入力
0002H
W
ボード0、O17 - O24 出力レベル設定
DIP SW1-3がONの時、常時出力
DIP SW1-3がOFFの時、書き込み期間のみ出力
R
ボード0、O17 - O24 ピンレベル入力
0003H
W
ボード0、O25 - O32 出力レベル設定
DIP SW1-3がONの時、常時出力
DIP SW1-3がOFFの時、書き込み期間のみ出力
R
ボード0、O25 - O32 ピンレベル入力
0004H-00FFH
R/W
ボード1 ~ ボード63
8bit x 4 = 32bit構成のいわゆるパラレルポートであり、EMMと同様にDIPスイッチ切り替えで
理論上は64枚を同時使用することができる。
入出力の切り替えはソフトウェアではなく、DIPスイッチにて8bit単位で行う。ただし入力設定でも
出力ポートに書き込むとライト・サイクル期間(turboIIで実測570ns)だけ出力がイネーブルされる。
用途を限定しない汎用ボードであるが、それはRS232Cも同様である。
SHARP純正ボードで上位アドレスが固定されているのだからシステムI/Oと捉えるべきである。
先頭へ戻る

スキャナ用パラレル・インターフェース (CZ-8BN1)
ア ドレス
R/W
説 明
0200H-0203H ?
R/W
8255
純正スキャナCZ-8BS1とパラレル接続するためのインターフェース。
現物は未調査だが、互換性があるというI・Oデータ機器製PIO-4052をサポートするZ's STAFFの
I/Oアクセスアドレスから間接的に予測。
実際に8255ボードを自作して動かしていたという情報と、基板写真を併せるとI/Fチップは確定的。
I/F基板にはジャンパピンがあり、割り込みかDMA転送の対応もありそうだが詳細は不明。
パラレルインターフェースはPC-IN501/502とも互換性があるらしい。

先頭へ戻る

FM 音源ボード(CZ- 8BS1,CZ-880C,CZ881C,CZ-888C)
ア ドレス
R/W
説 明
0700H W
YM2151アドレスポート
0701H W
YM2151 データポート
R
YM2151 ス テータスポート
0704H R/W FM音源検出ポート
0704H R/W CTCチャンネル0(CZ-8BS1のみ)
0705H R/W CTCチャンネル1(CZ-8BS1のみ)
0706H R/W CTCチャンネル2(CZ-8BS1のみ)
0707H R/W CTCチャンネル3(CZ-8BS1のみ)
X1turboZシリーズの0704H~0707HにCTCは存在しない
検出ポートの回路を追加するくらいなら内蔵CTCへデュアルデコードすればよかったのでは?
先頭へ戻る

カ ラーイメージボード(CZ-8BV1)
ア ドレス
R/W
説 明
0800H
W
カ ラーイメージボードコントロール
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
SCR_OFF
H16
H4
RESET
M_CAP
M_READ
NEXT_C NEXT_L

信号 内容
SCR_OFF
1
スクランブルOFF
H16
1
水平サンプリングを1/4で行う。(1/16画面)
H4
1
水平サンプリングを1/2で行う。(1/4画面)
RESET
1
スクランブルON
水平サンプリングを1/1で行う。
M_CAP
1
キャプチャモードに設定する
M_READ
1
転送モードに設定する
NEXT_C
1
リードデータを次のプレーン(色)にする
NEXT_L
1
リードポインタを次の水平ラインにする
ずべてのビットは'1'を書き込んだ時に有効で、'0'を書き込んでも
機能しない。'1'を書き込んだ後に'0'を書き込む必要はない。
RESETと SCR_OFF/H16/H4はRSラッチ構造で、RESETと同時に
'1'を書き込むと状態は不定となる。
M_CAP/M_READはRSラッチ構造で同時に'1'を書き込むと状態は不定になる。かな?
タイミング規則がいろいろあるので、「試験に出るX1ハードウェア
のフルコース」等に記載されている手順に従うこと。
0801H
R
画像データ読み込み
先頭へ戻る

カ ラーイメージボード2(CZ-8BV2)
ア ドレス
R/W
説 明
0802H
W
カ ラーイメージ ボードコントロール

CZ-8BV1の上位コンパチブル仕様
0803H
R
画像データ読み込み
先頭へ戻る

立体映像ボード(CZ-8BR1)
ア ドレス
R/W
説 明
0A00H
W
立 体ボードコン トロール
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
x x
x
x
x
SEL

信号 内容
SEL

00b
垂直同期ごと、L,R交互に開閉
01b
左シャッターOPEN、右シャッターCLSOE
10b
左シャッターCLOSE,右シャッターOPEN
11b
左シャッターOPEN,右シャッターOPEN

0A04H
R/W
CTC チャンネ ル0
0A05H
R/W
CTC チャンネ ル1
0A06H
R/W
CTC チャンネ ル2
0A07H
R/W
CTC チャンネ ル3
昇圧電源、コンポジットビデオからの同期分離、I/Oレジスタと同期信号によるフリップ
動作という単純な構造だとおもわれるが、現物がないので詳細は不明。
CTCチャネル1のトリガ入力には、左右を判別できるフレーム信号が入力されているらしいが詳細は不明

当時、多くの機械に3Dスコープオプションが出たが、当時はフリッカー、液晶シャッターの速度や
透過率、作画技術全てが実用に達しておらず色物としてすぐに廃れた。
今日の3Dシステムなら、PCでフリッカーレスにして再現できそうだが、X1では表示すべき素材が
皆無という事に問題がある。サポートソフトはトリフォニーだけだろうか。
先頭へ戻る

バンクメモリ切り替え(CZ-141SF,CZ- 127MF, X1turboZII,X1turboZ3)
ア ドレス
R/W
説 明
0B00H
R/W
メ イン/バンク メモリ切り替え
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
x BML5 BMCS BMNO
信号 R/W 内容
BML5 R/W 無機能ラッチ
単なる1bitメモリで、CZ-8FB03からソフトウェアの状態管理として使われる。
未確認だがマルチプラン(CZ-127MF)付属ボードにはこのビットが未サポートか、全ビットのリードバックが無いためにCZ-8FB03が動作しないと思われる
BMCS R/W 1= メインRAM選択
0=バンクRAM選択
BMNO R/W バ ンク メモリ番号
Z-BASIC付属ボード(CZ-141SF)、
マルチプラン付属ボード(CZ-127MF)、
X1TuroboZII/3、
いずれもバンク0,1の64KBytesが実装
非turboのX1でバンクメモリボードは使用できない。X1のメモリリードアクセスでは常に拡張スロット
のデータバスは遮断されるためだ。厳密にいえばボードは正常に動作するが、リードデータが
CPUに届かないため虚しく電力を浪費するだけとなる。
バンク切り替え制御はオーバーヘッドのネックなのに、切り替えにBCレジスタ+1レジスタを必要
とする仕様だ。データ値ではなくアドレス下位でバンクを設定できる方が速く、せめてアドレス下位
8ビットを未デコードにすべきだったのではないだろうか。
それよりも、何故ここにもGRAMをマップすることを考えなかったのだろうか?
先頭へ戻る

RS-232Cカード (CZ-8RS)
ア ドレス
R/W
説 明
0C*0H
R/W
8251 データR/W
0C*1H
R/W
8251 コ ントロール、 ステータス
0C*2H
W
送信IEOをリセット
0C*3H
W
受信IEOをリセット
0C*4H
W
送信割り込み許可
0C*5H
W
送信割り込み禁止
0C*6H
W
受信割り込み許可
0C*7H
W
受信割り込み禁止
X1用の古RS232Cボード。
シリアルインターフェースICは8251、ボーレートはDIPスイッチで設定する。
アドレスbit7-bit4はDIPスイッチで設定できるため、理論上は16枚を同時利用できる。
割り込みベクタ上位5ビットはDIPスイッチで設定、下位3ビットは割り込み要因により
送信割り込み=100b、受信割り込み=010bとなる。
8251のアクセス時には?サイクルのウェイトが発生する。
先頭へ戻る

VHDpcコントローラ・インターフェース (VO-20PS)
ア ドレス
R/W
説 明
0C*0H
R/W
8251 データR/W
0C*1H
R/W
8251 コ ントロール、 ステータス
0C*2H
W
送信IEOをリセット
0C*3H
W
受信IEOをリセット
0C*4H
W
送信割り込み許可
0C*5H
W
送信割り込み禁止
0C*6H
W
受信割り込み許可
0C*7H
W
受信割り込み禁止
0C*8H R/W 8255 ポートA(データ送受信)
0C*9H R/W 8255 ポートB(シリアル・パラレル切り替え)
0C*AH R/W 8255 ポートC(ハンドシェーク信号)
0C*BH W
8255 モード設定、ポートCビット制御
VHDpcプレーヤーをPC制御するためのコントロールユニット(VO-20PC)と接続するための
専用インターフェースボード(VO-20PS)だ。
その実態はシリアルポート+パラレルポート(と思われる)で、シリアルポートはCZ-8RSとはレジスタ
レベルで互換性があり、信号レベルはおそらくRS232C入力許容のTTLレベルだろう。
パラレルポートは8255のモード2で双方向通信をするもので8251とは別のベクタから割り込みの
発生ができるようだが詳細は確認中。

エミュレータではX1twinまでが再現される2012年現在、このVHDpc INTER ACTION
ゲームの再現が最高の砦(ネタ)だと思うが、全ての機材やソフトが超レアな上、VHD言語
のプログラムをディスクから吸出す必要があるなど、非常に難易度が高い。
ちなみにサンダーなんとか(否フォース)やタイムなんとか(否シークレット)はX1専用ソフト
を用いるらしく、VHD言語の部分は不要でLD版の動画ストリームが流用できる可能性が高い。
といってもX1専用ソフトの方がよっぽど入手困難じゃないか。

VO-20PC/VO-20PSを所有している方がいらっしゃるならば、資料の補完のためにぜひご協力を
いただきたい。貸与いただけなくても、部品番号は判読できるレベルの基板写真をネット上に
さらしていただけるだけでも参考になる。
先頭へ戻る

外部RAMボード(CZ-8EM,CZ-8BE2)
ア ドレス
R/W
説 明
0D00H W EMM0 アドレス下位指定(00H-FFH)
0D01H W EMM0 アドレス中位指定(00H-FFH)
0D02H W EMM0 アドレス上位指定(00H-04H)
0D03H R/W EMM0 データのリード/ライト、アドレス+1
0D04H-0D3FH
EMM(1-9) BASICサポート範囲
0D40H-0DFFH
EMM(10-63) BASIC未サポート範囲外
自作やサードパーティー品で1デバイス512KBytesや1MBytesで使えるものも存在したが、正式に
サポートされているのは1デバイス320KBytesのタイプだけで、turboのBIOSルーチンにも容量の
上限チェックがあったような気がする。
X1turbo版スタークルーザーは320KB/512KBのEMMがあればディスクキャッシュとして利用する。
I/O空間の理論的上限は1デバイス16MBytes、64デバイスなら、なんと1GBytesを実装できる。
先頭へ戻る

BASIC ROM(CZ-8RB)
ア ドレス
R/W
説 明
0E00H
W
ア ドレス上位指定
0E01H
W
ア ドレス中位指定
0E02H
W
ア ドレス下位指定
0E03H
R
データリード
IPL起動に対応したROM。EMMとはアドレス上位と下位のポートが逆であり、漢字ROMの仕様も
照らし合わせるとIPL-ROMにバグがあったが、そのまま仕様としてボード側で合わせたという
線が濃厚である。ボードに自動アドレス更新機能はない。
先頭へ戻る

漢字ROM(CZ-8KR,CZ-8BK2,CZ-804C,CZ-812,CZ-822C,CZ-830C)
ア ドレス
R/W
説 明
0E80H R
増設メモリ1データ/漢字ROM左データ
W アドレス下位
0E81H R
増設メモリ2データ漢字ROM右データ
アクセス後、アド レス下位8bit
自動インクリメント
アクセス後、漢字ROMデータラッチを0xFFにクリア(CZ-822Cのみ)
w アドレス上位
0E82H R
漢字ROM鏡像データ(CZ-8KR / CZ-8BK2)
不定データ(CZ-804C / CZ-812C)
漢字ROMデータ(CZ-822C)
W
メモリ選択
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
x x x x x x EKSEL
信号 ROM選択
EKSEL 0 増設メモリ選択
0  -> 1
漢字ROMデータラッチ
1
漢字ROM選択(常時イネーブル)
漢字ROMを読み出す場合、アドレス確定後にEKSELを0から1に変化させる必要がある。これは自動インクリメント後にも必要。
EKSELを1にすると漢字ROMは常時イネーブル状態となる(CZ-822Cは未確認)ため、電力消費の面からアクセス後は0にすべき。
0E83H
R
漢字ROM鏡像データ(CZ-8KR / CZ-8BK2)
不定データ(
CZ-804C / CZ-812C)
漢字ROM右データ(CZ-822C)
アクセス後、アド レス下位8bit自動インクリメント
アクセス後、漢字ROMデータラッチを0xFFにクリア(CZ-822Cのみ)
W
増設メモリデータライト
アクセス後、アド レス下位8bit自動インクリメント
拡張メモリに64kbit SRAMを実装した場合に機能する。
X1turbo/Z内蔵の漢字フォントROMとは異なる。
増設メモリ用ソケットは4つで、カナ漢字変換 ROM (PIO-3055-01)の他に64kbitのSRAMも
実装できた。
最大27128を4個で64KBytesを実装できるようだが、IPL起動のサポートはなかった。
ソケットはX1Ckから2つに縮小、X1Gからは全てオミットされた。
鏡像ポートはGRAMビット配列が逆になっているMZ-80B系の為であり、CZ-8KR/CZ-8BK2には
MZモードに切り替える回路があり、未実装のDIPスイッチ用パターンに
つながっている。
X1Ckには鏡像ポートのバッファ用パターンはあるがICは未実装で、X1Fではパターンからなくなり
X1Gに至ってはデコードすらされなくなった、途中で抹殺された仕様である。用途もないのだが。
CZ-830Cに関しては全く未調査である。
先頭へ戻る
 
SASI ハードディスク
ア ドレス
R/W
説 明
0FD0H W 送信データ書き込み
R 受信データ読み込み
0FD1H W リセットセクション
R 制御線読み込み
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
-
-
-
MSG CXD IXO BSY REQ
0FD2H W リセットバス
0FD3H W セ レクション、DB0-7に出力する 値 を書き込む
BIOSのアクセスから想定してエミュレータで検証した結果で、実機や実ボードでは検証していない
DMAリクエストに対応していて、X1turboではデータのDMA転送が可能である。
先頭へ戻る

8インチFD
ア ドレス
R/W
説 明
0FE8H
R/W
MB8877A ステータス/コマンドレジスタ
0FE9H
R/W
MB8877A トラックレジスタ
0FEAH
R/W
MB8877A セレクタレジスタ
0FEBH
R/W
MB8877A データレジスタ
0FECH
W
ド ライブ番号、 モーター制御
R FM方式 指定
0FEDH R MFM 方式指定
0FEEH R 1.6M タイプ指定
0FEFH R 500K/1M切り替え
I/OはリザーブされBIOSでサポートされたが実際にはI/Fボードが発売されなかった幻のポート。
5.25イ ンチ用のCZ-8BF1にアドレス切り替えジャンパをつければ済んだ話しだし、そもそも
5.25イ ンチと同時にアクセスする事は皆無なのだから、ドライブセレクト信号のポートだけ
追加して、FDCは5.25インチと共有すれば無駄なく実装できたと思うのだが。
先頭へ戻る

5.25インチFD
ア ドレス
R/W
説 明
0FF8H
R/W
MB8877A ステータス/コマンドレジスタ
0FF9H
R/W
MB8877A トラックレジスタ
0FFAH
R/W
MB8877A セレクタレジスタ
0FFBH
R/W
MB8877A データレジスタ
0FFCH-0FFFH
W
モーター制御、サイド選択、 ドライブ選択
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
MON x x SIDE1 x x DRVSEL

信号 制御
MON 1 -> 0 約1.2秒後にモーターOFF,
DSELをインアクティブ
1 モーターON,DSELアクティブ
SIDE1 0 FDのサイド0選択
1 FDのサイド1選択
DRVSEL 00b ド ライ ブ0選択
01b ドライ ブ1選択
10b ドライ ブ2選択
11b ドライ ブ3選択
MONビットを立ち下げてから約1.2秒の間はモーターON信号と
ドライブセレクト信号がアクティブに保たれる。
この間はFDアクセスも可能。
0FFCH
R FM方式指定 (turbo/Z/CZ-8BF1のみ)
0FFDH
R MFM 方式指定 (turbo/Z/CZ-8BF1のみ)
0FFEH
R 1.6M(2HD) タイプ指定 (turbo/Z/CZ-8BF1のみ)
0FFFH
R 500K(2D)/1M(2DD) タイプ指定 (turbo/Z/CZ-8BF1のみ)
X1とCZ-8BF1の組みわせでFM/MFMと2D/2HD切り替えは機能するが、Z80@4MHzのポーリング
処理では2HDのアクセスは間に合わないとされるので、実質的に使えるのはFM方式だけである。
turboIII以降の内蔵FDDにおける2D/2DDの切り替えはソフト制御できないばかりか検出すら出来ない
不親切きわまりない仕様となっており、2DD活用の大きな妨げとなった。互換性の目的を勘違い
したか、手抜き設計だったかのどちらかだ。
たとえば2DDモード時はモータON後に一瞬FMモードに切り替えるギミックをBIOSに追加しておけば
ハード互換を保ったままで、内蔵、外付けそれぞれTTL1つの追加で自動切り替えが可能だった。
先頭へ戻る

グラフィックパレット・プ ライオリティー
ア ドレス
R/W
説 明
10**H W グラ フィックパレッ トのBLUE設定(デジタル)
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
PLC7[0] PLC6[0] PLC5[0] PLC4[0] PLC3[0] PLC2[0] PLC1[0] PLC0[0]

信号 0の時 1の時
PLCB[n] パレットコード[n]
の青は発光しない
パレットコード[n]
の青は発光する
B,R,G全てのレジスタを設定して8色分のパレットを設定する
R/W
グラフィックパレットBLUE(RED/GREEN)設定(多色)
AEN APEN APRD R/W ア ドレ ス
ビット
デー タ ビット 備 考
7-4 3-0 7-4 3-0
0 x x W x x デ ジタ ルと同じ 互換モード
1 0 x x x x x 変更禁止
1 1 0 W APC_G APC_R APC_B ACC_B
(ACC_R)
(ACC_G)
多色ライト
1 1 1 W APC_G APC_G APC_B x リード色
設定
1 1 1 R APC_G APC_R x ACC_B
(ACC_R)
(ACC_G)
多色リード
事前に ポート1FB0H,1FC1Hでアクセス許可しておく必要がある
多色パレットは多色モードでないと設定できないが設定したパレットはデジタルモード時も機能する
多色リードの動作は「試験に出るX1」の資料から推測したもので未確認

信号 アナログパレットのパレット設定/確認パ ラメータ
APC_G パレットコードGREEN(0-15)
APC_R パレットコードRED(0-15)
APC_B パレットコードBLUE(0-15)
ACC_B カラーコードBLUE(0-15) = 出力輝度
(ACC_R) カラーコードRED(0-15) = 出力輝度
(ACC_G) カラーコードGREEN(0-15) = 出力輝度
64色時のパレットコードは、下位2ビットを00bでフィルする(未確認)
8色時のパレットコードは、下位3ビットを000bでフィルする(未確認)
11**H W グラフィックパレットRED設定(デジタ ル)
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
PLC7 PLC6 PLC5 PLC4 PLC3 PLC2 PLC1 PLC0
R/W グラフィックパレッ トRED設定 (多色)
データ配置は「グラフィックパレットBLUE設定(多色)」の(ACC_R)を参照
12**H W グラフィックパ レットのGREEN 輝度設定
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
PLCB7 PLCB6 PLCB5 PLCB4 PLCB3 PLCB2 PLCB1 PLCB0
R/W グラフィックパレッ トRED設定 (多色)
データ配置は「グラフィックパレットBLUE設定(多色)」の(ACC_G)を参照
13*H W プ ライオリティー設定
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
PR7 PR6 PR5 PR4 PR3 PR2 PR1 PR0

信号 テキストに対するグラフィックのプライオ リティー
PR[n] 1=パレットコード[n]はテキストより 前面
X1ではパレットポートを読むと設定値が変わってしまう(未確認)らしいが、turboZの互換モードでは
リードはできないが設定値は変わらない
先頭へ戻る

CG ROM / PCG
ア ドレス
R/W
説 明
14**H R CG ROMアクセス

PCG
高速アクセス
モード
(1FD0H.bit5)
ア ドレ ス
bit
データ
bit
備 考
3 2 1 0 7-0
0 x x x x CGデータ 互換モード
1 ラ スタ 番号 CGデータ 高速モード
CG ROMをアクセスするにはアトリビュートRAMのビット5を0、PCGをアクセスする場合はビット5を1に設定しなければならない。
互換モードではCRTCが現在スキャンしているCGコードとラスタ位置にあるCG ROMがアクセスされるので、ソフトウェアでタイミング同期をとる必要がある。
高速モードでは、テキストVRAM 27FFH,37FFH,3FFFH番地が示すCGコードの'ラスタ番号'をアクセスする。CPUは次の水平ブランク期間になるまでウェイ によって金縛り状態となる。
15**H R/W PCG BLUEプレーンアクセス
PCGモードと動作はCG ROMポートと同様
アトリビュートRAMのビット5は1でなければならない。
16**H R/W PCG REDプ レーンア クセス PCG モードと動作はCG ROMポートと同様
17**H R/W PCG GREENプ レーンア クセス
PCG モードと動作はCG ROMポートと同様
互換モードのCG ROM/RAMアクセスではウェイトは一切掛からない。
CZ-821Cでは表示期間中もCGデータのリードが可能だがCZ-880Cでは常に0xFFがリードされるかも。(要検証)
表示中の書き込みは危険かもしれない。CZ-800Cの回路図を読む限りCGデータのバスが衝突する気がする。(要検証)

先頭へ戻る

CRTC
ア ドレス
R/W
説 明
1800H W CRTC レジス タNo.指定HD46505-SP
X1turboZ3のみ
MB89321という噂
1801H W CRTC データ
1802H-18FFH
W
アドレス1800H,1801Hと同じ
先頭へ戻る

サブCPU(MSM80C49)
ア ドレス
R/W
説 明
19**H W サ ブCPUへコ マンド/送信データの書き込み
サブCPU側の8255のハンドシェークポートに接続されている。
ポート1A01H.Bit6=1の時は書き込み禁止
R サブCPUからの受信データの読み込み
サブCPU側 の8255の ハンドシェークポートに接続されている。
ポート1A01H.Bit5=1の時は読み込み禁止

受信ポートはサブCPUの割り込みベクタリードと共有されているので、サブCPUからの割り込み要求中はポート 1A01H.Bit5=0の時にも読み込ん ではいけない。
コマンド書き込み後、最初のバイトを受信する前に1A01H.Bit6 =0になるまで「割り込み許可」にして待つようにする。

先頭へ戻る

PIA(8255)  プリンタ、サブ CPU制御、画面制御、カセット記録信号
ア ドレス
R/W
説 明
1A00H R/W
(W)
8255 ポートA(出力ポートに設定)
Bit R/W 8255機能 ポートアサイン
7-0 R PA7-0 プリンタ出力データ
1A01H R/W
(R)
8255 ポートB (入力ポートに設定)
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0
V-DISP IBF OBF IPL
RESET
BUSY CV-SYNC READ
DATA
-BREAK

信号名 内容
V-DISP 0=垂直帰線期間
IBF 1=サブCPUへ送信禁止
OBF 0=サブCPUから受信済み
IPL RESET 0=BIOS ROM SEL
BUSY 0=プリンタデータ出力許可
CV-SYNC 1=垂直同期信号
READ DATA カセット読み出しデータ
-BREAK 0=サブCPUがBREAK検出
1A02H R/W 8255 ポートC(出力ポートに設定)
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
STROBE 80 40 DAM
SEL
スムーズ
スクロール
x x x WRITE
DATA


信号名 内容
STROBE プリンタストローブ
0 -> 1でプリンタはデータをサンプルする
80 40 CRTCクロック選択、0=80 桁,1=40桁
DAM SEL 1 -> 0で同時アクセスモード
スムーズ
スクロール
1=スムーズクロール
WRITE
DATA
カセット書き込みデータ
※8255コントロールポートのビッ操作を使ったほうが便利

同時アクセスモードは、DAM SELの立ち下がりでイネーブルされ、その後のIOリードサイクル時に解除される。

1A03H W 8255 コントロール(モード設定は固定で使用)
機能
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
モード設定
GRA
MODE
PA
DIR
PCH DIR GRB
MODE
PB
DIR
PCL
DIR
ポートC
ビット操作
0 x x x PC Bit No. 1=SET/
0=RESET

X1/turbo/Zにおけるモード設定
レジスタ
設定値 内容
GRA MODE 00b グループA モード0
PA DIR 0 PA7-0は出力
PCH DIR 0 PC7-4は出力
GRB MODE 0 グ ルー プB モード0
PB DIR 1
PB7-0は入 力
PCL DIR 0
PC3-0は出力
モード設定はIPL-ROMが行うため通常は設定する必要はない。

1A04H-1AFFH
R/W
アドレス 1A00H-1A03Hの同じ(未デコード)
先頭へ戻る

PSG/ジョイスティック
ア ドレス
R/W
説 明
1B**H
R/W
PSG データ
1C**H
R/W
PSGレジスタ指定
先頭へ戻る

IPL(BIOS) ROM ON/OFF
ア ドレス
R/W
説 明
1D**H
W
IPL/BIOS ROM ON (書き込む値はなんでも良い)
1E**H
R/W
IPL/BIOS ROM OFF (書 き込む値はなんでもよく、リードでも可)
先頭へ戻る

Z80周辺IC
アドレス R/W 説明
1F8*H R/W Z80DMA
1F90H
R/W
Z80SIO チャンネルAデータ
1F91H
R/W
Z80SIO チャンネルA制御
1F92H
R/W
Z80SIO チャンネルBデータ
1F93H
R/W
Z80SIO チャンネルB制御
1FA0H
R/W
Z80CTC チャネル0 (TRGには未接続)
1FA1H
R/W
Z80CTC チャネル1 (TRGには2MHz,SIOAクロック
1FA2H
R/W
Z80CTC チャネル2 (TRGには2MHz,SIOBクロック)
1FA3H
R/W Z80CTC チャネル3 (TRGにはCTC出力)
先頭へ戻る

増設SIO/CTC (CZ-8BM2 RS232C・マウスボード )
アドレス
R/W
説明
1F98H
R/W
Z80SIO チャンネルAデータ
1F99H
R/W
Z80SIO チャンネルA制御
1F9AH
R/W
Z80SIO チャンネルBデータ
1F9BH
R/W
Z80SIO チャンネルB制御
1FA8H
R/W
Z80CTC チャネル0
1FA9H
R/W
Z80CTC チャネル1
1FAAH
R/W
Z80CTC チャネル2
1FABH
R/W
Z80CTC チャネル3
X1turbo内蔵のSIO/CTCとアドレスが異なる。
先頭へ戻る

Zモード
アドレス R/W 説明
1FB0H R/W
Z モード
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
AEN x x C64 CPEN CPINV x CITRI

AEN C64 HIRESO WIDTH 多色モード
0 x x x 互換(8色)モード
1 0 0 40 320x200x4096色
1 1 0 40 320x200x64色x2画面
1 x 0 80 640x200x64色
1 x 1 40 320x200x64色
1 x 1 80 640x200x8色

CPEN CPINV 画像取り込みモード
00 - OFF
1 0 ON
1 1 ON,色反転

CITRI テキストインタレースモード
0 OFF(互換モード)
1 ON(640x200x15KHzで 漢字表示可)
インタレース(スーパーインポーズ)時のみ有効
1FB9H R/W テキストパレット1のカラーコード
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
- - 緑輝度 赤 輝度 青 輝度
1FBAH R/W テキストパレット2のカラーコード
1FBBH R/W テキストパレット3のカラーコード
1FBCH R/W テキストパレット4のカラーコード
1FBDH R/W テキストパレット5のカラーコード
1FBEH R/W テキストパレット6のカラーコード
1FBFH R/W テキストパレット7のカラーコード
1FC0H R/W 多色プライオリティー設定
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
x x ADBL ABK1 x APRIO

グラフィック2面間のプライオリティー選択
ADBL ABK1 グラフ前 グラフ背
0 x GRAMバンク0 なし
1 0 GRAMバンク0 GRAMバンク1
1 1 GRAM バンク1 GRAMバンク0

グラフィック/テキストプライオリティー
ADBL APRIO 前面 中間 背面
0 x0 テキスト グラフ前
0 x1 グラフ前
テキスト
1 00 テキスト グラフ前 グラフ背
1 01 グラフ前 グラフ背 テキスト
1 10 グラフ前 テキスト グラフ背
1FC1H R/W Z画像取り込み位置補正指定
1FC2H R/W Zモザイク/粒子か取り込み指定
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
- - Yモザイク X モザ イク

モザイク
の設定値
Y
モザイク数
X
モザイク数
000b 1 1
001b 2 2
010b 4 4
011b 8 4
100b 16 16
101b 32 32
110b - 64
111b - -
1FC3H R/W クロマキー指定
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
CKEN CKINV CKG - CGR - CKB

CKEN CKINV クロマキーモード
0 x クロン巻きー無効
7 0 クロマキー有効
6 1 クロマキー有効、色反転

CKG CGR CKB クロマキー対象色
0 0 0
0 0 1
0 1 0
0 1 1 マゼンダ
1 0 0
1 0 1 シアン
1 1 0
1 1 1
1FC4H R/W 拡張スクロール指定
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
- - - - SCEN CRTEN SC1 SCOUT

信号 0の時 1の時
SCEN Z スク ロール無効 Zスクロール有効
CRTEN CRT出力する CRT出力しない
SC1 互 換 モード 1度だけスクロール
SCOUT スクロールイン スクロールアウト
1FC5H R/W アナログパレットアクセス制御
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
APEN - - - APRD - - -

AEN APEN APRD モード
0 x x 多 色パ レット禁止
1 0 x
1 1 0 パ レット書き込みモード

1 1 パレット読み出しモード
カスタムICでなんとでもなってしまうturboZの機能などは、はっきり言ってどうでもよい。
設計思想は一番最初の機種に集約されており、TurboやZではCPUの処理能力とのバランスが崩れて見苦しいばかりだ。
先頭へ戻る

画面制御
ア ドレス
R/W
説 明
1FDxH W 画面制御
Bit
0の時 1の時
7
アンダーラインなし
アンダーラインあり
6
8ラスタCGアクセス
16ラスタCGアクセス
5
PCGコンパチアクセス
PCG高速アクセス
4
GRAMバンク0アクセス
GRAMバンク1アクセス
3
GRAMバンク0表示
GRAMバンク1表示
2
8ラスタ/CHR(25/20行)
16ラスタ/CHR(12/10行)
1
1本ラスタ/ドット
2本ラスタ/ドット
0
低解像度(15KHz)
1=高解像度(24KHz)
R/W
1FExH W 黒色制御
Bit
名前
6
ブランキング期間を黒変換
5
グラフィックパレット1(青)を黒変換
4
グラフィックパレット0(黒)を黒変換
3
テキストの黒変換ON
2-0
黒変換をするテキストのパレットコード
グラフィックを黒変換するためにはパレットが0になっていなければならない。
R/W
X1との互換性とturboの拡張機能を切り替えるX1turboシリーズの肝ポート
先頭へ戻る

スタートポート
ア ドレス
R/W
説 明
1FFxH R
起 動ポート
Bit
DIP SW5が
OFFの時
DIP SW5が
ONの時
7
FD DATA
4
DIP SW4
3
DIP SW3
0
2
DIP SW2
前面 SW 2D(0)/2HD(1)
1
DIP SW1
0
0
0=HIGH / 1=STANDARDスイッチ
No.
Bit3-1
起動デバイス選択
0
000b
5/3インチ 2D
1
001b
5/3インチ 2DD
2
010b
5/3インチ 2HD
3
011b
5/3インチ 2DD (IBM)
4
100b
8インチ 2D256
5
101b
8インチ 2D256(IBM)
6
110b
8インチ 1S128(IBM)
7
111b
ハードディスク

先頭へ戻る

テキストVRAM
ア ドレス
R/W
説 明
2000H-27FFH R/W テ キストアトリ ビュート
Bit
信号名
説明
7
HS
水平2 倍モード
6
VS
垂直2倍モード
5
CG
0=CG(ROM) / 1=PCG
4
CF
点滅
3
CR
反転
2-0
G,R,B
パレットコード(カラーコード)
3000H-37FFH R/W テキスト キャラクタコード/漢字ROMコード下位
3800H-3FFFH R/W テキスト 漢字コード
Bit
説明
7
漢字 CGセレクト
6
0=漢字左 / 1=漢字右
5
アンダーライン
4
0=第 一水準 / 1=第二水準
3-0
漢字ROMコード上位
VRAMサイクルスチールでアクセスされるので、一定時間のウェイトが発生する。
先頭へ戻る

サブCPUコマンド送受信プロトコル
コマンド

データ
タイマーセット

タイマー(0-7)セット
Byte Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマンド 0DH
0 タ イ マーNo.
送信1 モー ド イ ン ターバル
送信2 コ マン ドコード(TV/割り込みベクタ/カセット)
送信3 - - 分 (BCD形式)
送信4 - - -
送信5 - 曜 日
送信6 - - 日 (BCD形式)
コマンドコード =  D0H + タイマーNo.(0-7)
コード モード
00b タイマ無効
01b TVコマンド
10b 割り込み
11b カセットデッキ
タイマー読み出し

タイマー(0-7)読み出し
Byte Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマンド 0DH 1 タ イ マーNo.
受信1 -6 タ イ マーセットと同じ

コマンドコード = D8H + タイマーNo.(0-7)
ゲームキー取得







Byte Bit 7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマンド 0E3H
受信 1 Q W E A D Z X C
受信 2 7 4 1 8 2 9 6 3
受信 3 ESC 1 - + * TAB スペース CR
キーボード側のスイッチがモードBの時だけ検出が可能となる。

仕様上はX1turboで拡張されたコマンドだが、X1シリーズでもコマンドを受け付ける機種があある。
X1F以降のCMT外付け機種は受け付ける可能性が考えられる。X1F Model10については未確認。

割り込みベクタ設定 割り込みベクタセット
Byte Bit 7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0r
コマンド 0E4H
送信1 割 り込 みベクタ(00H=割り込み停止)

タイマーイベントの割り込みベクタは、この値ではなく
タイマーセットのコマンドコードで指定する。
タイマー割り込みクリア タイマー割り込みクリア
Byte Bit 7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマンド 0E5H
割り込みモードに設定されている全てのタイマーを無効にする
本体の主電源がOFFになった時も、このコマンドと同様の処理が実行される
キーデーター
読み出し
キーデータ読み出し
Byte Bit 7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマンド 0E6H
送信1 -TEN -KIN -REP -GRPH -CAPS -KANA -SFT -CTRL
送信2 ASCII コード

パラメータ説明
パラメータ名 パラメータ説明
-TEN 0 テンキー、ファンクションキー、
特殊キーからの入力
1 通常キー
-KIN 0 有効キーあり
1 有効キーなし
-REP 0 リピートキー入力
1 最初のキー入力
-GRPH 0 GRAPHキーON
1 GRAPHキーOFF
-CAPS 0 CAPSキーON
1 CAPSキーOFF
-KANA 0 カナキーON
1 カナキーOFF
-SFT 0 シフトキーON
1 シフトキーOFF
-CTRL 0 CTRLキーON
1 カナキーOFF
X1では-SFT,-CTRLなどの状態は有効なASCIIキーが押されたときに付随して変化するが、X1turboではシフトやコントロー ルキーの単体押しで変化する。
ただし、これはキーボードに依存する機能差なので、X1にX1turbo用キーボードを接続しても単体検出されるようになる。
X1F以降の非turboのキーボードの挙動(サブCPU型番)は未確認

キーコード一覧
TVコントロール TVコントロール
Byte Bit7 Bit6-5 Bit4-0
コマンド 0E7H
送信 1 TVパワーON
+コントロール
-- TVコントロールコード

TVコントロールコード 内容
リモコンコード
01H 音量アップ 確認中
02H 音量ダウン 確認中
03H 音量ノーマル 確認中
04H チャンネルコール(トグル)(turbo 系) 確認中
05H TV画面 確認中
06H 音量ミュート(トグル) 確認中
07H 不明。チャンネル4になる 確認中
08H TV/COM画面(トグル) 確認中
09H チャンネルコール(トグル)(ノン turbo 系) 確認中
0AH スーパインポーズ
コントラストノーマル(一気型)
確認中
0BH チャンネル順送り 確認中
0CH チャンネル逆送り 確認中
0DH パワーオフ 確認中
0EH パワーオン/オフ(トグル) 確認中
0FH スーパインポーズ
コントラストダウン(一気型)
確認中
10H
-1BH
チャンネル1~12 確認中
1CH TV画面 確認中
1DH COM画面 確認中
1EH スーパーインポーズ
コントラストダウン
確認中
1FH スーパーインポーズ
コントラストノーマル
確認中
リモコンコードとは、TVコントロール用コネクタのTV REMOTE端子からモニタに送られるコード

TVコントロール読み出し TVコントロール読み出し
Byte Bit 7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマン ド 0E8H
送信 - - - TV コ ントロールコード
CPUコマンド、キーボード操作、タイマーイベント等で最後に制御したコード
モニタ側のボタンや赤外線リモコンによる操作は反映されない
カセットデッキ
コントロール
カセットデッキコントロール
Byte Bit 7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマン ド 0E9H
送信 - - - - カセッ トコマンド
カセット制御コマンド
コード コマンド
00H イジェクト
01H 停止
02H 再生
03H 早送り
04H 巻き戻し
05H APSS +1(頭だし)
06H APSS -1(頭だし)
0AH 録音
カセットデッキ
状態読み出し
カセットデッキ状態読み出し
Byte Bit 7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマン ド 0EAH
受信 - - - - カ セッ ト制御コマンド
キーボード操作やテープエンドの操作も反映される
カセットセンサー読み出し カセットセンサー読み出し
Byte Bit 7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマンド
0EBH
受信 - - - - - WP SET END
WP  0=書込み可/1=書き込み禁止(書き込み可ノッチなし)
SET 0=カセットなし/1=カセットあり
END 1=テープエンド
カレンダーセット カレンダーセット
Byte Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマンド 0ECH
送信1 年 (10の桁) 年 (1 の桁)
送信2
曜 日
送信3 日 (10の桁) 日 (1 の桁)
カレンダー読み出し カレンダー読み出し
Byte Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマンド 0EDH
受信1 -3 カ レンダーセットと同じ
時計セット 時計セット
Byte Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマンド 0EEH
送信1 時 (10の桁) 時 (1 の桁)
送信2 分 (10の桁) 分 (1 の桁)
送信3 秒 (10の桁) 秒 (1 の桁)
時、分、秒はBCD形式
時計読み出し 時計読み出し
Byte Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
コマンド 0EFH
受信1 -3 時 計セットと同じ
キー割り込み
(割り込みイベント)

キー割り込み
Byte Bit 7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
SpecialM1 応答 割 り込 みベクタ
受信1 キー データ読み出しと同じ
受信2 キー データ読み出しと同じ
SpecialM1応答は受信ポートと同じ回路を流用しているため
割り込み応答前にサブCPUのリードポートを読み込むと
割り込みリクエストと割り込みベクタを喪失し、キーデータのみ
がバッファに残留する。
割り込みイベントは他のコマンドを処理していないアイドル時
で発生し、コマンド通信中に割り込んで発生することはない。

タイマー割り込み
(割り込みイベント)
タイマー割り込み
Byte Bit 7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
SpecialM1 応答 割 り込 みベクタ(タイマーセットの送信2)
タイマーのイベントでモードが10b(割り込み)の設定で発動する

先頭へ戻る

CRTCレジスタマップ
レジス タ
No.
内 容 Low Reso
40x25 80x25
R0 水平総文字数(-1) 55 111
R1 水平表示文字数 40 80
R2 水平同期位置(-1) 45 89
R3 同期パルス幅(Bit7-4=V,Bit3-0=H) 52 56
R4 垂直総文字数(-1) 31 31
R5 総ラスタ調整 2 2
R6 垂直表示文字数 25 25
R7 垂直同期位置(-1) 28 28
R8 インタレース、スキュー 0 0
R9 最大ラスタアドレス 7 7
R10
R11
カーソルスタートラスタ
カーソルエンドラスタ
-
-
-
-
R12
R13
スタートアドレス上位
スアドレス下位
0
0
0
0
R14
R15
カーソルアドレス上位
カーソルアドレス下位
-
-
-
-
R16
R17
ライトペン上位
ライトペン下位
-
-
-
-
R18 スクリーン2開始位置

R18-R31は搭載CRTCの変更により
X1TurboZII/Z3の2機種のみで利用可能。
初代Zから公に変更してあれば
Z専用ソフトで活用できたのだが...

XeviousのX1版とMZ-2500版を比べて
何も感じなかったということだろう。

R19
R20
スタートアドレス2上位
スタートアドレス2下位
R21 スクリーン3開始位置
R22
R23
スタートアドレス3上位
スタートアドレス3下位
R24 スクリーン4開始位置
R25
R26
スタートアドレス4上位
スタートアドレス4下位
R27 垂直同期位置微調整
R28 ライトペンラスタ
R29 スムーススクロール
R30 コントロール
R31 コントロール/ステータス

先頭へ戻る

キーコード一覧

調査予定