PC-8001mkII の I/O マップ (暫定版) [パソコン]
〔本館〕サイトで公開しようかと思って、PC-8001mkII の I/O マップを作っていたのですが、思いがけず簡単に出来てしまいました。
グラフィック関係のポートがリストアップされていない等、まだまだ不完全ですが暫定版として公開します。
でも、これって誰も必要としていない情報ですよね(笑)
間違っている箇所もあるかと思いますので、もし間違いに気付かれましたら、ご指摘頂ければ大変ありがたいです。
レイアウトの都合上、かなり縮小して表示するように設定してあります。
残念ながら一部のブラウザで表示させると右端が切れてしまう場合や、レイアウトが崩れることもあるのですが、HTMLソースにはデータとしてはちゃんとありますので、ご入用の方はHTMLソースから切り出してください。
なお、HTML化をするに当たって、元のテキストファイルから文字実体参照に変換してある箇所もありますので、使用の際はご注意ください。
グラフィック関係のポートがリストアップされていない等、まだまだ不完全ですが暫定版として公開します。
でも、これって誰も必要としていない情報ですよね(笑)
間違っている箇所もあるかと思いますので、もし間違いに気付かれましたら、ご指摘頂ければ大変ありがたいです。
レイアウトの都合上、かなり縮小して表示するように設定してあります。
残念ながら一部のブラウザで表示させると右端が切れてしまう場合や、レイアウトが崩れることもあるのですが、HTMLソースにはデータとしてはちゃんとありますので、ご入用の方はHTMLソースから切り出してください。
なお、HTML化をするに当たって、元のテキストファイルから文字実体参照に変換してある箇所もありますので、使用の際はご注意ください。
--------------------------------------------------------
PC-8001mk2 I/O Map
(MSB) | bit-7 | bit-6 | bit-5 | bit-4 | bit-3 | bit-2 | bit-1 | bit-0 | (LSB)
--------------------------------------------------------
00H - 0BH: キーボード入力
(入力) 00H:(MSB)| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | (LSB)
(入力) 01H: | RETURN| . | , | = | + | * | 9 | 8 |
(入力) 02H: | G | F | E | D | C | B | A | @ |
(入力) 03H: | O | N | M | L | K | J | I | H |
(入力) 04H: | W | V | U | T | S | R | Q | P |
(入力) 05H: | - | ^ | ] | \ | [ | Z | Y | X |
(入力) 06H: | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
(入力) 07H: | _ | ? | < | > | + | * | ) | ( |
(入力) 08H: | CTRL | SHIFT | カナ | GRPH | DEL | → | ↑ | CLR |
(入力) 09H: | ESC | SPACE | f5 | f4 | f3 | f2 | f1 | STOP |
(入力) 0AH: | | | | | | | | |
(入力) 0BH: | | | | | | | | |
10H: プリンタデータ出力
(出力)
(MSB) | PD7 | PD6 | PD5 | PD4 | PD3 | PD2 | PD1 | PD0 | (LSB)
10H: 汎用出力ポート
(出力)
(MSB) | UOP6 | | | | | | | | (LSB)
UOP6 : 汎用出力ポート #6
10H: カレンダクロック(µPD1990) コントロール
(出力)
(MSB) | | | | | CDO | C2 | C1 | C0 | (LSB)
CDO : データ出力
C2 - C0 : コマンド出力
11H - 1FH: ポート 10H のイメージ
20H: USART(µPD8251)データポート(RS-232C #0/ CMT)
(入出力)
(MSB) | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | (LSB)
21H: USART(µPD8251)コントロールポート(RS-232C #0/ CMT)
(出力) モード設定:非同期モード
(MSB) | S2 | S1 | EP | PEN | L2 | L1 | B2 | B1 | (LSB)
S2,S1 : ストップビット (00:無効, 01:1bit, 10:1.5bit, 11:2bit)
EP : パリティ指定 (0:奇数, 1:偶数)
PEN : パリティイネーブル (0:Disable, 1:Enable)
L2,L1 : キャラクタ長 (00:5bit, 01:6bit, 10:7bit, 11:8bit)
B2,B1 : ボーレート (00:同期モード, 01:x1, 10:x16, 11:x64)
(出力) モード設定:同期モード
(MSB) | SCS | ESC | EP | PEN | L2 | L1 | | | (LSB)
SCS : キャラクタ同期 (0:ダブルSYNCキャラクタ, 1:シングルSYNCキャラクタ)
ESC : 外部同期検出 (0:SYNDETは出力, 1:SYNDETは入力)
EP : パリティ指定 (0:奇数, 1:偶数)
PEN : パリティイネーブル (0:Disable, 1:Enable)
L2,L1 : キャラクタ長 (00:5bit, 01:6bit, 10:7bit, 11:8bit)
(出力) コマンド出力
(MSB) | EH | IR | RTS | ER | SBRX | RxE | DTR | TxEN | (LSB)
EH : HUNTモード時にSYNCキャラクタ検出開始 (0:NOP, 1:開始) (同期モードのみ)
IR : 内部リセット (0:NOP, 1:インストラクションモードへ戻す)
RTS : 送信要求 (0:OFF, 1:ON)
ER : エラーリセット (0:NOP, 1:FE/OE/PEをリセット)
SBRX : センドブレイクキャラクタ (0:NOP, 1:送信)
RxE : 受信イネーブル (0:Disable, 1:Enable)
DTR : データターミナルレディ (0:OFF, 1:ON)
TxEN : 送信イネーブル (0:Disable, 1:Enable)
(入力) ステータス読出
(MSB) | DSR | SYNDET| FE | OE | PE | TxE | RxRDY | TxRDY | (LSB)
DSR : データセットレディ (0:On, 1:Off)
SYNDET : SYNCキャラクタ検出 (0:なし, 1:あり)
FE : フレーミングエラー (0:なし, 1:あり)
OE : オーバーランエラー (0:なし, 1:あり)
PE : パリティエラー (0:なし, 1:あり)
TxE : 送信バッファエンプティ (0:フル, 1:エンプティ)
RxRDY : 受信レディ (0:ビジー, 1:レディ)
TxRDY : 送信レディ (0:ビジー, 1:レディ)
22H - 2FH: ポート 20H, 21H のイメージ
30H: システムコントロール1
(出力) システムコントロール1
(MSB) | | | CB2 | CB1 | MOTOR | CINH | COLOR | 40 | (LSB)
CB2,CB1 : USART チャンネルコントロール (00:CMT 600 baud, 01:CMT 1200 baud,
10:RS-232C 非同期, 11:RS-232C 同期)
MOTOR : CMT モータコントロール (0:OFF, 1:ON)
CINH : CMT キャリアコントロール (0:マーク [2400Hz], 1:スペース [1200Hz])
COLOR : ディスプレイモードコントロール (0:カラー, 1:モノクロ)
40 : ディスプレイフォーマットコントロール (0:40桁, 1:80桁)
(入力) DIP-SW#1 ステータス入力
(MSB) | UIP1 | UIP2 | SW1-3 | SW1-4 | SW1-5 | SW1-6 | SW1-7 | SW1-8 | (LSB)
UIP1 : 汎用入力ポート #1
UIP2 : 汎用入力ポート #2
SW1-3 : DIP-SW #1-3 (0:ON, 1:OFF)
SW1-4 : DIP-SW #1-4 (0:ON, 1:OFF)
SW1-5 : DIP-SW #1-5 (0:ON, 1:OFF)
SW1-6 : DIP-SW #1-6 (0:ON, 1:OFF)
SW1-7 : DIP-SW #1-7 (0:ON, 1:OFF)
SW1-8 : DIP-SW #1-8 起動時のBASICモード (0:N-BASIC, 1:N80-BASIC)
31H: システムコントロール3
(出力) システムコントロール3
(MSB) | BGG | BGR | BGB | CGM | GRPH | HCOLOR| MMODE | 4THROM| (LSB)
BGG : バックグラウンドカラー 緑成分 (0:OFF, 1:ON)
BGR : バックグラウンドカラー 赤成分 (0:OFF, 1:ON)
BGG : バックグラウンドカラー 青成分 (0:OFF, 1:ON)
CGM : カラーグラフィックモード (0:640x200, 1:320x200)
GRPH : グラフィック表示 (0:非表示, 1:表示)
GMOD : グラフィックモード (0:属性カラー/モード0, 1:モノクロ/モード1)
4THROM : 4th ROM アクセスコントロール (0:許可, 1:禁止)
32H - 3FH: ポート 30H, 31H のイメージ
40H: システムコントロール2
(出力) システムコントロール2
(MSB) | UOP4 | UOP3 | BEEP | | CLDS | CCK | CSTB | PSTB | (LSB)
UOP4 : 汎用出力ポート #4
UOP3 : 汎用出力ポート #3
BEEP : ブザーコントロール (0:OFF, 1:ON)
CLDS : ディスプレイI/Fの同期コントロール (0:同期パルス OFF, 1:同期パルス ON)
CCK : カレンダクロックへのシフトパルス (0:パルスOFF, 1:パルスON)
CSTB : カレンダクロックへのストローブ信号 (0:OFF, 1:ON)
PSTB : プリンタへのストローブ信号 (0:ON, 1:OFF)
(入力) システムコントロール2
(MSB) | | | VRTC | CDI | EXTON | DCD | | BUSY | (LSB)
VRTC : CRTC からの垂直帰線同期 (0:表示/水平帰線サイクル, 1:垂直帰線サイクル)
CDI : カレンダクロックからのデータ
EXTON : ディスクユニット接続信号 (0:接続されている, 1:接続されていない)
DCD : データキャリアディテクト信号 (0:キャリア入力なし, 1:キャリア入力あり)
BUSY : プリンタからのビジー信号 (0:READY, 1:BUSY)
41H - 4FH: ポート 40H のイメージ
50H: CRTC(µPD3301) パラメータ出力
51H: CRTC(µPD3301) コマンド出力
60H - 68H: DMAC(µPD8257) コントロール
(入出力) 60H: Ch#0 DMA 開始アドレス(5"DMAタイプのディスク用)
F/L:0 (MSB) | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | (LSB)
F/L:1 | A15 | A14 | A13 | A12 | A11 | A10 | A9 | A8 |
A15 - A0: DMA 開始アドレス
アドレス拡張のためフリップフロップが設けられており、アクセスの度に反転する
(入出力) 61H: Ch#0 ターミナルカウント(5"DMAタイプのディスク用)
F/L:0 (MSB) | C7 | C6 | C5 | C4 | C3 | C2 | C1 | C0 | (LSB)
F/L:1 | Rd | Wr | C13 | C12 | C11 | C10 | C9 | C8 |
C13 - C0: ターミナルカウントの値
Rd,Wr : 動作モード (00:Verify, 01:Write, 10:Read)
アドレス拡張のためフリップフロップが設けられており、アクセスの度に反転する
(入出力) 62H: Ch#1 DMA 開始アドレス(8"DMAタイプのディスク用)
(入出力) 63H: Ch#1 ターミナルカウント(8"DMAタイプのディスク用)
(入出力) 64H: Ch#2 DMA 開始アドレス(テキスト表示用)
(入出力) 65H: Ch#2 ターミナルカウント(テキスト表示用)
(入出力) 66H: Ch#3 DMA 開始アドレス(テキスト表示用オートロードバッファ)
(入出力) 67H: Ch#3 ターミナルカウント(テキスト表示用オートロードバッファ)
(出力) 68H: モードセット
(MSB) | AL | TCS | EW | RP | EN3 | EN2 | EN1 | EN0 | (LSB)
AL : オートロード
TCS : ターミナルカウントストップ
EW : 拡張ライト
RP : 回転優先
EN3-EN0 : チャンネルイネーブル
(入力) 68H: ステータスリード
(MSB) | 0 | 0 | 0 | UP | TC3 | TC2 | TC1 | TC0 | (LSB)
UP : UPDATEフラグ
TC3-TC0 : TCステータスビット
69H - 6FH: ポート 60H - 68H のイメージ
70H - 7FH: 未使用
80H - AFH: 拡張 I/O ポート(PC-8011/8012/8013 で使用可能)
B0H: 汎用パラレル I/O 8ビット入力(PC-8011 で使用)
B1H: 汎用パラレル I/O 8ビット出力(PC-8011 で使用)
B2H: 汎用パラレル I/O 4ビット入力(PC-8011 で使用)
B3H: 汎用パラレル I/O 4ビット出力(PC-8011 で使用)
B4H - BFH: 未使用
C0H: USART(µPD8251)データポート(RS-232C #1)(PC-8011 で使用)
仕様は 20H と同じ
C1H: USART(µPD8251)コントロールポート(RS-232C #1)(PC-8011 で使用)
仕様は 21H と同じ
C2H: USART(µPD8251)データポート(RS-232C #2)(PC-8011 で使用)
仕様は 20H と同じ
C3H: USART(µPD8251)コントロールポート(RS-232C #2)(PC-8011 で使用)
仕様は 21H と同じ
C4H - CAH: 不明
CBH - CFH: 未使用
D0H: IEEE-488(GP-IB) データ出力
D1H: IEEE-488(GP-IB) データ入力
D2H: IEEE-488(GP-IB) 制御信号出力
D3H: IEEE-488(GP-IB) 8255コントロール
D8H: IEEE-488(GP-IB) 制御信号入力
DAH: IEEE-488(GP-IB) マイアドレス モード入力
DCH: IEEE-488(GP-IB) ストローブコントロール出力
DEH: IEEE-488(GP-IB) モードコントロール出力
E0H: メモリーバンク制御 (拡張 ROM:本体側)
E1H: メモリーバンク制御 (拡張 ROM:拡張ユニット側)
E2H: メモリーバンク制御 (拡張 RAM)
(出力) メモリバンク選択
(MSB) | R3WR | R2WR | R1WR | R0WR | R3RD | R2RD | R1RD | R0RD | (LSB)
R3WR : 拡張 RAM #3 書き込み許可 (0:禁止, 1:許可)
R2WR : 拡張 RAM #2 書き込み許可 (0:禁止, 1:許可)
R1WR : 拡張 RAM #1 書き込み許可 (0:禁止, 1:許可)
R0WR : 拡張 RAM #0 書き込み許可 (0:禁止, 1:許可)
R3RD : 拡張 RAM #3 読み出し許可 (0:禁止, 1:許可)
R2RD : 拡張 RAM #2 読み出し許可 (0:禁止, 1:許可)
R1RD : 拡張 RAM #1 読み出し許可 (0:禁止, 1:許可)
R0RD : 拡張 RAM #0 読み出し許可 (0:禁止, 1:許可)
R3RD - R0RD は「許可」を複数個選択することが可能ですが意味をなしません
(入力) メモリバンクステータス
(MSB) | R3WR | R2WR | R1WR | R0WR | R3RD | R2RD | R1RD | R0RD | (LSB)
R3WR : 拡張 RAM #3 書き込み (0:許可, 1:禁止)
R2WR : 拡張 RAM #2 書き込み (0:許可, 1:禁止)
R1WR : 拡張 RAM #1 書き込み (0:許可, 1:禁止)
R0WR : 拡張 RAM #0 書き込み (0:許可, 1:禁止)
R3RD : 拡張 RAM #3 読み出し (0:許可, 1:禁止)
R2RD : 拡張 RAM #2 読み出し (0:許可, 1:禁止)
R1RD : 拡張 RAM #1 読み出し (0:許可, 1:禁止)
R0RD : 拡張 RAM #0 読み出し (0:許可, 1:禁止)
E3H: メモリーバンク制御 RAMバンク選択
E4H: 割り込みコントローラ(µPD8214) カレントステータス出力 (INT0 - INT7)
E5H: 割り込みコントローラ(µPD8214) カレントステータス出力 (INT8 - INT15)
E6H: 割り込みコントローラ(µPD8214) 割り込みマスク出力
E7H: メモリーバンク制御 モード選択
E8H - EFH: 未使用
F3H: 不明
F8H: 5"インテリジェントタイプ フロッピディスク モーターコントロール
FCH: パラレルインターフェース(µPD8255) コマンド/データ入力
(5"インテリジェントタイプ フロッピディスク)
(入力) ポートA
(MSB) | PA7 | PA6 | PA5 | PA4 | PA3 | PA2 | PA1 | PA0 | (LSB)
PA7-PA0 : 入力コマンド/データ
FDH: パラレルインターフェース(µPD8255) コマンド/データ出力
(5"インテリジェントタイプ フロッピディスク)
(出力) ポートB
(MSB) | PB7 | PB6 | PB5 | PB4 | PB3 | PB2 | PB1 | PB0 | (LSB)
PB7-PB0 : 出力コマンド/データ
FEH: パラレルインターフェース(µPD8255) ハンドシェイク入出力
(5"インテリジェントタイプ フロッピディスク)
(入出力) ポートC
(MSB) | PC7 | PC6 | PC5 | PC4 | PC3 | PC2 | PC1 | PC0 | (LSB)
PC7 : Attention (送信用)
PC6 : Data Accepted (送信用)
PC5 : Ready For Data(送信用)
PC4 : Data Valid (送信用)
PC3 : (Attention) (受信用)
PC2 : Data Accepted (受信用)
PC1 : Ready For Data(受信用)
PC0 : Data Valid (受信用)
ポートCでのハンドシェイクは、直接このポートを制御するのではなく、FFH を使用して行う
FFH: パラレルインターフェース(µPD8255) コントロール出力
(5"インテリジェントタイプ フロッピディスク)
(出力) モード選択
(MSB) | 1 | GAMS2 | GAMS1 | PA | PCH | GBMS | PB | PCL | (LSB)
GAMS2, GAMS1
: モード選択(PA / PC High) (00:モード0, 01:モード1,
10:モード2, 11:モード3)
PA : ポートA入出力 (0:出力ポート, 1:入力ポート)
PCH : ポートC上位入出力 (0:出力ポート, 1:入力ポート)
GBMS : モード選択(PB / PC Low) (0:モード0, 1:モード1)
PB : ポートB入出力 (0:出力ポート, 1:入力ポート)
PCL : ポートC下位入出力 (0:出力ポート, 1:入力ポート)
(出力) PIO コントロール
(MSB) | 0 | | | | D3 | D2 | D1 | RSET | (LSB)
D3 - D0 : ポートCビット選択 (000:PC0選択, 001:PC1選択,
010;PC2選択, 011:PC3選択,
100:PC4選択, 101:PC5選択,
110:PC6選択, 111:PC7選択)
RSET : ビットセット/リセット (0:リセット, 1:セット)
///////////////////////////////////////////////////////
タグ:PC-8001
単騎さん、nice! ありがとうございます。
by Thunderbolt (2009-08-24 14:13)
おお,新コンテンツですね。
ポートのイメージまで網羅している資料というのは初めてではないでしょうか。素晴らしいです。
以前80mkII/SR共用プログラムを作ろうとして,内蔵OPNの搭載チェックで44,45にアクセスしたらBEEP音が鳴りっぱなしになって悩んだ経験があります。そのときにこの資料があれば...
ざっと見て,グラフィック以外の部分で気がついた部分は
・E8~ECは88と同じ漢字ROM関係
・F3~FBは88と同じ8インチFDD関係
・B0~E1,E5,E7はたぶん未使用(8011/8012/8013の機能?)
てなところです。
by apaslothy (2009-08-26 02:29)
apaslothyさん、コメントありがとうございます。
N80-BASICを解析している時に、I/Oマップの資料がなかったので「作ってしまえ~」と、勢いで作りました(笑)
漏れているポートは、大体「当たり」はついていたのですが、解析が完全に出来ていないので、記載を見送りました。
mkIIに関してはapaslothyさんの方がお詳しいでしょうから、ご指摘どおりで間違いないかと思います。
いつもありがとうございます。
by Thunderbolt (2009-08-26 07:03)