1984年2月25日土曜日
[改造][PC] NEC PC8001, ROM拡張
PC-8001
CRTC:μPD3301D、μPD8257C-5へ
RTC:μPD1990Cへ
SIO:μPD8251Cへ
CRTCμPD3301とDMAμPD8257の極悪コンビが割り込み(正確にはCPUバス制御)でCPU速度を落とし尚且つ1WAITかかりZ80A4MHzは遅いイメージを植付けさせた罪作りなPC(実際はDMAが無いと遅い)
後にPC-8801でバンク切り換えが遅いというイメージも追加される。
■実質的な速度
PC-8001はメモリアクセスで1WAITかかりZ80Aの約4MHzの速度の約20%の速度が落ちます。
CRTC+DMAでのバス割り込みでさらに約34%の速度が落ちます。
よって実質な速度は約46%になり、約1.84MHzのクロックと同等となります。
これがPC-8001系の欠点でありますが長所でもある所です。
通常PCを使うのに常に画面を表示する場合が多いのでDMAを使わない(CPU処理速度を落さない)で
ソフトでブロック転送するよりCPUを停止してDMAを使用する(CPU処理速度を落す)方が結果的には速かったりします。
CPUを停止するのはZ80がメモリのアクセスが非同期なので68系の様にメモリアクセスをしないときに
DMAを使用するような事が出来ないのでCPUを停止してバス制御をDMAに移す為です。
ただしCPUを停止するという事は割り込み関係にその影響が受けてしまう事になるということになります。
ただPC-8001では割り込みを使用するのにはオプションであるのと
N-BASICではほとんど使用することが無いので気にする事はないでしょう。
■互換性
N-BASICを搭載しているPCには互換性がありますが特定の操作によっては動作しない場合があります
タイマー関係の違い
PC-8001のみ単純なタイマとなっていますのでワークエリアをクリアするだけで
タイマーの内容がリセットされます
それ以外の機種ではバッテリーバックアップが行われておりワークエリアをクリアするだけでは
タイマーの内容がリセットされるとは限りません
ROMの切り替え
PC-8001のみ/ROMDSn(n=0-3)で8KBごと切り替えができます。
ただしPC-8012、13では/ROMKILLで全てのROMを使用禁止
PC-8801、PC-8001mkIIは/ROMKILLで全てのROMを使用禁止
SIO
PC-8001のみターミナルモード用SIO、CMTは本体内蔵、RS-232Cは外付けの8351を使用
PC-8801、PC-8001mkIIは全て本体内蔵のSIOを使用
/EXTON
PC-8001はPC-8011、12,13等の拡張ユニットが繫がると1、繫がっていないと0
PC-8801、PC-8001mkIIはFDドライブが繫がると1、繫がっていないと0
■起動方法
PC-8001には3つの起動方法があります。
1、リセット(電源を入れる)コールドスタート
2、STOPを押しながらリセットホットスタート(BASICの内容等が残る)
3、ESCを押しながらリセット次のPC-8031系ユニットをブート
*ESC+RESETは通常のPC-8031系のポート0FCH-0FFHのアクセスをせず
ポート0F8H-0FBHをPC-8031系のポートとしてボートを試みます
殆どがポート0F8H-0FBHでPC-8031系のユニットを接続していないので
ディスクドライブの切り離しとして使用します
パラレルポートPC-8801-13等で接続が可能か?(未確認)
コールドスタートルーチンは機種によって若干変わるようで
主に3種類になるようです
またNECのソフトによってはこの辺りで判断してます
PC-8001Ver.1.00/1.01/1.1
1757:3A0000LDA,(00000H)
175A:3A0040LDA,(04000H)
175D:3A0080LDA,(08000H)
1760:3A00C0LDA,(0C000H)
PC-8001mkII/SR
1757:21D007LDHL,007D0H
175A:2BDECHL
175B:7CLDA,H
175C:B5ORL
175D:20FBJRNZ,A175A
175F:AFXORA
1760:32FFBFLD(0BFFFH),A
|
PC-8801/mkII/SR系
1757:AFXORA
1758:D3E7OUT(0E7H),A
175A:D3F8OUT(0F8H),A
175C:00NOP
175D:3A0080LDA,(08000H)
1760:3A00C0LDA,(0C000H)
|
■シリアルソケット
PC-8001の本体内にはシリアル転送用の16ピンソケットがあります
ターミナルモードで使用する為オプションPC-8062(RS-232Cケーブル)が必要になりますが
自作でレベルコンバートする方法もあります
BASICのRS-232C命令はPC-8011等のオプション用の命令になります
*PC-8001以外はターミナルモードもBASICでも同じRD-232Cを使用
1:GND16:GND
2:/T×D15:-12V
3:/R×D14:GND
4:RTS13:+12V
5:CTS12:GND
6:DSR11:+5V
7:CD10:GND
8:DTR9:GND
■ボーレートの変更
PC-8001の本体内にジャンパー線の接続で設定を行います。
ターミナルモードで2-3で接続していると、何も動作はしませんが、ページプリントは出来ます。
1-2:×16モード4800、×64モード1200
1-3:×16モード2400、×64モード600
1-4:×16モード1200、×64モード300
1-5:×16モード600、×64モード150
1-6:×16モード300、×64モード75
■ターミナルモード
N-BASICのダイレクトコマンドでターミナルモードに移行します
ターミナルモードからN-BASICへの移行はCTRL+B(^B)
BASICプログラムは壊れません
動作は下記の2種類
1.RS-232Cから入力した文字をCRT出力
2.キーインプットした文字をRS-232Cに出力
[コマンド]
TERMx,n,m,l
x:A8Bitモード
J7Bitモード
n:0パリティモードなし
1奇数パリティ
2偶数パリティ
m:0ボーレートファクタ16
1ボーレートファクタ64
l:0オートL/Fをする
1オートL/Fをしない
[ファンクションキー]
f・6:コントロールコードの表示のオン、オフ
f・7:半二重/全二重の切り替え
f・8:LPにエコーバックのオン、オフ
f・9:スクリーンのLPへのコピー
f・10:LPのラインフィードの実行
CPU拡張バス
1:+5V2:+12V
3:DB04:-12V
5:DB16:/ROMDS0
7:DB28:/ROMDS1
9:DB310:/ROMDS2
11:DB412:/ROMDS3
13:DB514:/INT
15:DB616:/NMI
17:DB718:/EXTON
19:AB020:AB8
21:AB122:AB9
23:AB224:AB10
25:AB326:AB11
27:AB428:AB12
29:AB530:AB13
31:AB632:AB14
33:AB734:AB15
35:/RD36:/RESET
37:/WR38:/WAIT
39:/MREQ40:/WE
41:/IORQ42:/MUX
43:/RFSH44:/RAS0
45:/M146:/RAS1
47:SCLOCK48:GND
49:φ50:GND
/ROMDS0=N-BASICROM00000H-01FFFHの使用禁止
/ROMDS1=N-BASICROM02000H-03FFFHの使用禁止
/ROMDS2=N-BASICROM04000H-05FFFHの使用禁止
/ROMDS3=本体内の拡張ROM06000H-07FFFHの使用禁止
プリンタ・インターフェィス
セントロニクス社仕様に基準しています。
1:/STB2:GND
3:PD04:GND
5:PD16:GND
7:PD28:GND
9:PD310:GND
11:PD412:GND
13:PD514:GND
15:PD616:GND
17:PD718:GND
19:/ACK20:GND
21:/READY22:GND
23:NC24:NC
25:NC26:HIGH
27:NC28:NC
29:HIGH30:HIGH
31:GND32:NC
33:NC34:NC
/STB:ライトストローブ信号。プリンタにデータを出力する時のライト信号として使用。
PD0~PD7:プリンタ用のデータバス。
/ACK:プリンタからのアクノリッジ信号。
ポートではフリップ。フロップで受けています。
プリンタから/ACKを受けたらリセット
/STBが出力されたらセット
/READY:0のときにプリンタにデータ出力が出来ます。
*N-BASICでは/STBと/READYを見ていますが、/ACKは無視しています。
主なプリンタアクセス方法
/READY(ポート040HのBit0入力)が0になるまで待つ
/READY(ポート040HのBit0入力)が0になったら、ポート010Hにデータを書き込む
/STB(ポート040HのBit0出力)を0にする
/STB(ポート040HのBit0出力)を1にする
プリンタ・インタフェースのD0~D7をアンプ+スピーカに繋いでサンド出力する
ソフトがあります
PD0を出力(アスキー’80年8月号PC-8001による音声合成)
(RAM’84年8月号PC-8801/9801
キャリーラボ『JELDAII』サウンド出力ケーブル)
PD7を出力(I/O’82年2月号スピーチ・シンセサイザ)
CRTインターフェース
カラーインターフェース
1:VDD(+12V)
2:GND
3:COLORCLK
4:/HSYNC(水平同期信号)
5:/VSYNC(垂直同期信号)
6:R
7:G
8:B
*COLORCLKはオプション用(カラーモジュレータ)
カラーバースト3.58MHzの4倍の14.32MHzを出力
白黒インターフェース
1:VDD(+12V)
2:GND
3:VIDEOOUT
4:/HSYNC(水平同期信号)
5:/VSYNC(垂直同期信号)
*VIEDOOUTはこのままでは出力が弱い為ビデオアンプの回路が必要になります(明るさ調節だけでも一応可)
CMTインターフェース
PC-8001/mkII以降
1:GND
2:GND
3:GND
4:CMTOUT
5:CMTIN
6:REM+
7:REM-
8:GND
PC-8801のみ
1:VCC
2:GND
3:/INT5
4:REC、UIP3
5:MON、UIP2
6:REM+、UIP1
7:REM-、UIP0
8:UOP0
*初代PC-8801は汎用I/Oと共用になります(本体内のジャンパで切り替える)
またCMTケーブルのピンが入出力端子として使用できます(ただし一部使用不可)
PC-8801mkII、PC-8001mkIIは汎用I/O(9ピン)が増設されています
CMTピン対応表
・-----------・
||プラス|マイナス|
|-+----+----|
|白|UIP2|GND|
|赤|UIP3|GND|
|黒|UIP0|UIP1|
・-----------・
■拡張ROM
本体内には8KBのROMが拡張出来るようになっています。
また特定のアドレスに特定のデータを書き込む事によって
オートスタートやモニタコマンドの拡張等が出来るように設計されています。
オートスタートする場合
06000Hから041H、042H(アスキーコードでAB)を書き込むと
PCが初期設定(01757H)の途中でPROMチェックをしていて、06002Hに飛びます。
メモリチェックや割り込みの設定は行っていないので注意が必要です。
またPC-8001mkIIではN80ROMと拡張ROMを区別する為に
拡張ROMでは06002Hに000Hを書き込めば
オートスタートROMとして06002Hから実行されるようになります。
モニタコマンド
07FFFHに055H(アスキーコードでU)を書き込むと
BASICでMONコマンドを実行すれば
通常のモニタへは飛ばず、07FFCHに飛びます。
■拡張RAM
PC-8011またはPC-8012+PC-8012-02/PC-8013等で拡張します
00000H-07FFFHの32KBがRAMとして割り当てられますが
バンク切り替え方法が異なったりします
PC-8011の場合
DIPSW2の設定により起動またはリセットでバンク設定
またポート0E0H-0E3Hで使用バンク設定
入力:$0000=ブロックコード$01-2比較データアドレス下位
PC-8012+PC-8012-02/PC-8013の場合
起動またはリセットでRAMカード内のLS74により、
RAMリード禁止、RAMライト許可になます
ポート0E2Hで使用バンク設定
<例>
RAMバンク0がある場合
起動時には00000H-07FFFHは
RAMリード:禁止(本体ROMを選択)、ライト:バンク0になる
つまりOUT&HE2,&H10の状態になる
00000H-07FFFHにデータを書き込むとバンク0に書き込まれ
データを読み込むとN-BASIC+拡張ROMが読み込まれる
RAMバンク0-3がある場合(未確認)
起動時には00000H-07FFFHは
RAMリード:禁止(本体ROMを選択)、ライト:バンク0-3になる
つまりOUT&HE2,&HF0の状態になる
00000H-07FFFHにデータを書き込むとバンク0-3に同時に書き込まれ
データを読み込むとN-BASIC+拡張ROMが読み込まれる
また、バンク内のデータを読み込みは同時には出来ません
メモリチェック
PC-8001のモニタにはTM(テストメモリコマンド)があり。
本体内RAM(16KBまたは32KB)のチェックを行います。
TMコマンドを実行して、エラーが無ければ電源をONにしたときと同じになりますが
エラーが出た場合は音がBEEP音が鳴りっぱなしなり停止(HALT)します
エラーが出た場合はSTOPを押しながらリセットして
次のアドレスを見ればエラーヶ所が分かります。
0FF39H-0FF3AH:エラーの出たアドレス(下位、上位の順)
0FF3BH:その時に書き込んだデータ
0FF3CH:その時に読み込んだデータ
上記のアドレスRAMが不良な場合はこの内容は信用できません。
割り込み/INTについて
/INTはオプションのPC-8011・8012・8013によって変ります。(どのオプションでもモード2で使用)
コントロラーチップは8214(PC-8011は2つ、PC-8012・8013は1つ)を使用されています。
割り込み順位は/INT0が最低です。
PC-8011は16レベル
08000H-08001H:PC-8011IEEE-448
08002H-08003H:PC-8011IEEE-448
08004H-08005H:PC-8011リアルタイムクロック
08006H-08007H:PC-8011未使用
08008H-08009H:PC-8011RS-232CCh1(8251のR×RDYが1になるとかかる)
0800AH-0800BH:PC-8011RS-232CCh2(8251のR×RDYが1になるとかかる)
0800CH-0800DH:PC-8011/INT9汎用パラレル
0800EH-0800FH:PC-8011/INT8汎用パラレル
08010H-08011H:PC-8011/INT7
08012H-08013H:PC-8011/INT6
08014H-08015H:PC-8011/INT5
08016H-08017H:PC-8011/INT4
08018H-08019H:PC-8011/INT3
0801AH-0801BH:PC-8011/INT2
0801CH-0801DH:PC-8011/INT1
0801EH-0801FH:PC-8011/INT0
PC-8012・8013は8レベル
08000H-08001H:PC-8012/INT7もしくはリアルタイム割り込み
08002H-08003H:PC-8012/INT6
08004H-08005H:PC-8012/INT5
08006H-08007H:PC-8012/INT4
08008H-08009H:PC-8012/INT3BASICではRS-232C Ch1になっている(拡張)
0800AH-0800BH:PC-8012/INT2BASICではRS-232C Ch2になっている(拡張)
0800CH-0800DH:PC-8012/INT1
0800EH-0800FH:PC-8012/INT0
08010H-08011H:PC-8012/INT7’もしくはリアルタイム割り込み
08012H-08013H:PC-8012/INT6’
08014H-08015H:PC-8012/INT5’
08016H-08017H:PC-8012/INT4’
08018H-08019H:PC-8012/INT3’BASICではRS-232C Ch1になっている(拡張)
0801AH-0801BH:PC-8012/INT2’BASICではRS-232C Ch2になっている(拡張)
0801CH-0801DH:PC-8012/INT1’
0801EH-0801FH:PC-8012/INT0’
*32KBシステムの場合です、16KBの場合0C000Hからテーブルが割り当てられます。
PC-8011の/INT8-/INT9は汎用パラレルI/Oポートにでているだけです。
PC-8012、PC-8013で8214のI/Oアドレスの設定はジャンパCN1で設定を行います。
1-2:ポート0E4Hを使用(上位8レベル)
2-3:ポート0E5Hを使用(下位8レベル)
PC-8012、PC-8013で/INT7をリアルタイム割り込みか/INT7の使用はジャンパCN3で設定を行います。
1-2:INT7を選択
2-3:リアルタイム割り込みを選択
PC-8012、PC-8013で/8214の出力されるエンコードベクトルはジャンパCN5で設定を行います。
1-2:割り込みレベル(上位8レベル)
2-3:割り込みレベル(下位8レベル)
PC-8001mkII/PC-8801はPC-8012基準で独自の割り込みに当てられています。
その為汎用スロットも若干端子に違いがあります。
PC-8001mkIIは内蔵で8レベル
08000H-08001H:/INT7RS-232CBASICではRS-232C Ch1になっている
08002H-08003H:/INT6VRTC
08004H-08005H:/INT5リアルタイムクロック
08006H-08007H:/INT4/INT3
08008H-08009H:/INT3/INT4
0800AH-0800BH:/INT2/INT5汎用I/Oポート
0800CH-0800DH:/INT1/FDCINT1
0800EH-0800FH:/INT0/FDCINT2
*N-BASIC、N80―BASIC両方です。(ベクタアドレスはモードによって若干変ります)
/INT2、/INT3のベクタはBASIC ROM内に飛び8251のシ処理を行われています。
8214からみた/INT0-7です。INT/4-2のバスが違う名前として繋がっています。
N-BASIC:/INT7:0F1E6H
/INT6:0F1E9H
/INT5:000C9H
/INT4:000C9H
/INT3:0237FH
/INT2:023A9H
/INT1:000C9H
/INT0:000C9H
以降は000C9H
N80-BASIC:/INT7:0237FH
/INT6:0165AH
/INT5:0165AH
/INT4:0165AH
/INT3:0237FH
/INT2:023A9H
/INT1:0165AH
/INT0:0165AH
以降は0165AH
PC-8801は内蔵で8レベル
08000H-08001H:/INT7RS-232C
08002H-08003H:/INT6VRTC
08004H-08005H:/INT5リアルタイムクロック
08006H-08007H:/INT4/INT3
08008H-08009H:/INT3/INT4
0800AH-0800BH:/INT2/INT5汎用I/Oポート(CMT端子の3ピン)
0800CH-0800DH:/INT1/FDINT1
0800EH-0800FH:/INT0/FDINT2
*N-BASICモードの場合です。
8214からみた/INT0-7です。INT/4-2のバスが違う名前として繋がっています。
リアルタイム割り込みについて
PC-8001はPC-8011、PC-8012・13を接続することで使用可能となります(PC-8012・13はジャンパで設定)
またPC-8801、PC-8001mkIIは本体内で実装されています。
約1.67mS(600Hz)毎で割り込みが掛かりますが本体はCRTC+DMAのバス制御が掛かるので
割り込みでもDMAを禁止(画面表示Off)にしないとDMA要求が掛かかります。
PC-8011、PC-8012・8013の場合
0E6H
Bit0リアルタイム割り込み1=許可、0=禁止
PC-8801の場合
0E6H
Bit2:8251RxRDY割り込み1=許可、0=禁止
Bit1:VRTC割り込み1=許可、0=禁止
Bit0:リアルタイム割り込み1=許可、0=禁止
DMAについて
PC-8001はチャンネル2をCRTC用のみで使用していましたが
PC-8801、PC-8001mkIIは拡張してチャンネル0~2まで使用しています。
チャンネル0は5インチDMAタイプディスク
チャンネル1は8インチDMAタイプディスク
チャンネル2はCRTC
DMAタイプディスク用ポート
0F3H:DMAタイプディスクユニットインターフェイスセレクトポート
0F4H:DMAタイプ8インチ制御
0F5H:DMAタイプ8インチマージンコントロール
0F6H:DMAタイプ8インチFDCステータス
0F7H:DMAタイプ8インチFDCデータレジスタ
0F8H:DMAタイプ5インチ制御
0F9H:DMAタイプ5インチマージンコントロール
0FAH:DMAタイプ5インチFDCステータス
0FBH:DMAタイプ5インチFDCデータレジスタ
DMAタイプディスクのFDCはuPD765Aを使用
PC-8001mkII専用I/Oポートについて
PC-8001mkIIは新たに拡張されたポートがあります
00AH:Bit0:TABキー1=押されていない、0=押されている
010H:プリンタまたはμPD1990用データ、汎用I/Oポート出力
プリンタの場合
Bit7:PD7
Bit6:PD6
Bit5:PD5
Bit4:PD4
Bit3:PD3
Bit2:PD2
Bit1:PD1
Bit0:PD0
μPD1990の場合
Bit7:UOP3
Bit6:未使用
Bit5:未使用
Bit4:未使用
Bit3:μPD1990データ出力(DATAIN)
Bit2:コマンド出力C2
Bit1:コマンド出力C1
Bit0:コマンド出力C0
030H(入力)
Bit7:UIP1
Bit6:UIP2
Bit5:MODESELECTSW31=Off、0=On
Bit4:MODESELECTSW41=Off、0=On
Bit3:MODESELECTSW51=Off、0=On
Bit2:MODESELECTSW61=Off、0=On
Bit1:MODESELECTSW71=Off、0=On
Bit0:MODESELECTSW81=Off、0=On(N80/Nモードの切り換えの使用)
UIPnは背面にある汎用I/Oの入力ポート部分です。
MODESELECTSWnは背面にあるDIPスイッチで上にやるとOnになります。
その中のMODESELECTSW8はBASICの切り換えで
1:N80-BASIC、0:N-BASICとなります。
またこのSWはただの入力ポートなのでソフトでこのSWを見てポートの制御をします。
MODESELECTSW2は拡張ボード用の為のメモリウェイト(未確認)
MODESELECTSW1は未使用
031H(出力)
Bit7:バックグラウンドカラー
Bit6:バックグラウンドカラー
Bit5:バックグラウンドカラー
Bit4:グラフィック解像度1=320×200、0=640×200
Bit3:グラフィックの表示1=表示する、0=表示しない
Bit2:カラーモード1=モノクロモード、0=アトリビュートカラーモード
Bit1:メモリモード1=RAMモード、0=ROMモード
Bit0:拡張ROMセレクト1=N80-ROM、0=拡張ROM
PC-8001mkII専用のポートでグラフィックとメモリの制御を行います。
メモリモードは00000H-07FFFHを本体内のROMかRAMの選択を行います。
拡張ROMセレクトは06000H-07FFFHのROM領域の選択になります。
リセット時、最初はN80-ROMが選択されています。(正確にはN-BASICとN80は同じROM16KB*2内に収納)
040H(出力)
Bit7:UOP2
Bit6:UOP1
Bit5:BEEP1=オン、0=オフ
Bit4:未使用
Bit3:CRT/CLDSCLK
Bit2:RTCCLK(μPD1990データ・シフト)
Bit1:RTCSTB(μPD1990コントロール)
Bit0:PRT/STROBE
05CH(出力)
08000H-0BFFFHのRAM領域をG-RAMに切り換えます
N/N80BASICの割り込みベクタアドレスが08000Hから始まっていますので、
G-RAMを切り換えた後に割り込み要求が始まると暴走してしまいます。
したがってBASICシステムが動いていてアクセスする場合、
割り込みを禁止にするかベクタアドレスをG-RAM領域以外に移動する必要があります。
05FH(出力)
08000H-0BFFFHのRAM領域を本体メモリに切り換えます
0C8H(出力)不明RS-232Cポートの使用禁止ゲート(出力データは何でもよい)
0CAH(出力)不明RS-232Cポートの使用禁止ゲート(出力データは何でもよい)
0E8H(出力)漢字ROMアドレスの下位
(入力)漢字フォント下位の読み出し
0E9H(出力)漢字ROMアドレスの上位
(入力)漢字フォント上位の読み出し
0EAH(出力)漢字ROMの読み出し開始
0EBH(出力)漢字ROMの読み出し終了
本体内のジャンパ
PC-8001mkIIには数ヶ所のジャンパがあります。
内容は不明(ひょとするとマニュアルに記してあるかもしれませんが)
恐らく後期ロットのPC-8801(製造番号下3桁がW~Z)やPC-8801mkIIと同様に
モニタの外部同期と内部同期の切り換えと割り込み関係かもしれません
割り込みの選択の可能性も考えられます。
本体の起動
PC-8001mkIIは起動(RESET)すると以下の順で起動します
Nモードの場合
1.PC-8031系インテリジェントタイプ
2.拡張ROM(06000H-07FFFH)
3.N-BASIC
N80モードの場合
1.拡張ROM(06000H-07FFFH)
2.DMA転送方ディスク8インチ
3.DMA転送方ディスク5インチ
4.PC-8031系インテリジェントタイプ
5.N80-BASIC
0BFFFHの内容でどのモードから起動したのかが判断出来るようになっています。
0BFFFH:000H=N-BASICから起動
02BH=N80-BASICから起動
FGU-8200について(未確認)
使用ポート
0EFH:FGU-8200用(未確認)
Bit7:
Bit6:1=GRAM選択、0=PC-8001RAM選択
Bit5:
Bit4:
Bit3:
Bit2:
Bit1:
Bit0:1=グラフィック表示オン、0=グラフィック表示オフ
GRAM領域は08000H-0BFFH
解像度は640×200のみだが
WIDTH80,25を実行する必要があるらしく
テキスト画面と同期ている?(未確認)
また前のモデルFGU-8000は通常のRAMを使用するため
FD8080(CP/Mシステム)について
本体にFD8080を接続すると00000H-07FFFHのバンク領域に
1.PCROM32KB(N-BASIC+拡張ROM)
2.拡張RAM32KB(DRAM)
3.ブートROM2KB+DMA用SRAM2KB
が割り当てられます
FDCは1171を使用しており外付けDMA8257でディスク、SRAM間をアクセスします
CPU停止状態でも、外付けDMAはディスク、SRAM間のアクセスを可能にしています
なお両面8インチ(FD8090)、拡張端子はS100バス(FD8100)
OSは59KCP/MVer2.0-0.5(Ver2.2も存在?)になります
PC-8001の使用ポート
000H-009H:キーボード(入力)
1=押されていない、0=押されている
00AH-00FH:未使用
010H:プリンタまたはμPD1990用出力データ
プリンタの場合
Bit7:PD7
Bit6:PD6
Bit5:PD5
Bit4:PD4
Bit3:PD3
Bit2:PD2
Bit1:PD1
Bit0:PD0
μPD1990の場合
Bit7:未使用
Bit6:未使用
Bit5:未使用
Bit4:未使用
Bit3:μPD1990データ出力(DATAIN)
Bit2:コマンド出力C2
Bit1:コマンド出力C1
Bit0:コマンド出力C0
011H-01FH:ポート010Hのイメージ
020H:μPD8251データ
021H:μPD8251コントロール
コマンドワード(出力)
Bit7:EH1=SYNCキャラクタの検出を始める、0=何もしない
Bit6:IR1=内部リセットの実行、0=何もしない
Bit5:RTS1=センド要求を実行、0=何もしない
Bit4:ER1=全エラーフラグをリセット、0=何もしない
Bit3:SBRK1=ブレイクキャラクタの送信、0=通常動作
Bit2:RxE1=受信可、0=受信不可
Bit1:DTR1=データ・ターミナルレディを実行、0=何もしない
Bit0:TxEN1=送信可、0=送信不可
EHハントイネーブル同期モード時にSYNCキャラクタがくるの待つ
IR内部リセット8251をモード・ワード受け取り状態にする
RTSセンド要求1で/RTS端子をLにする
ERエラーリセットPE、OE、FEを0にする
SBRKセンドブレイク・キャラクタ1でTxD端子をLとして通信ブレイク
RxE受信イネーブル
DTRデータ・ターミナルレディ1で/DTR端子をLにする
TxEN送信イネーブル
ステータス(入力)
Bit7:DSR1=レディ、0=ビジィ
Bit6:SYNDET1=キャラクタ検出、0=検出無し
Bit5:FE1=エラー発生、0=エラー無し
Bit4:OE1=エラー発生、0=エラー無し
Bit3:PE1=エラー発生、0=エラー無し
Bit2:T×E1=エンプティ、0=フル
Bit1:R×RDY1=レディ、0=ビジィ
Bit0:T×RDY1=レディ、0=ビジィ
DSRデータ・レディ/DSR端子がLの時に1になる
SYNDETSYNCキャラクタ検出SYNDET端子の内容
FEフレミングエラーストップビットが検出されない
OEオーバーランエラーCPUがデータを読む前に次のデータが入った
PEパリティエラー入力データにパリティエラーの検出
T×E送信バッファエンプティTxEMPTY端子の内容
R×RDY受信レディRxRDSY端子の内容
T×RDY送信レディTxEN=1、/CTS=0の場合1
■モードワード(出力)
非同期モード
Bit7:S2ストップビット11=2ビット、10=1+1/2ビット
Bit6:S101=1ビット、00=無効
Bit5:EP偶数パリティ発生/チェック1=偶数、0=奇数
Bit4:PENパリティ・イネーブル1=実行可、0=実行不可
Bit3:L2キャラクタ長11=8ビット、10=7ビット
Bit2:L101=6ビット、00=5ビット
Bit1:B2ボーレート11=×64、10=×16
Bit0:B101=×1、00=同期モード
同期モード
Bit7:SCS単一キャラクタ同期1=単一SYNCキャラクタ、0=ダブルSYNCキャラクタ
Bit6:ESD外部同期検出1=SYNDET入力、0=SYNDET出力
Bit5:EP偶数パリティ発生/チェック1=偶数、0=奇数
Bit4:PENパリティ・イネーブル1=実行可、0=実行不可
Bit3:L2キャラクタ長11=8ビット、10=7ビット
Bit2:L101=6ビット、00=5ビット
Bit1:0
Bit0:0
022H-02FH:ポート020H、021Hのイメージ
030H(出力)
Bit7:未使用
Bit6:未使用
Bit5:CMTBS2
Bit4:CMTBS1
Bit3:CMTMOTOR1=MOTORオン、0=MOTORオフ
Bit2:CMTCHIN1=マーク(2400Hz)、0=スペース(1200Hz)
Bit1:CRT1=白黒、0=カラー
Bit0:CRT1=80行、0=40行
031H-03FH:ポート030Hのイメージ
040H(出力)
Bit7:未使用
Bit6:未使用
Bit5:BEEP1=オン、0=オフ
Bit4:未使用
Bit3:CRT/CLDSCLK
Bit2:RTCCLK(μPD1990データ・シフト)
Bit1:RTCSTB(μPD1990コントロール)
Bit0:PRT/STROBE
040H(入力)
Bit7:未使用
Bit6:未使用
Bit5:CRTVRTC(/DMABUSY)1=垂直帰線期間、0=表示または水平帰線期間
Bit4:RTCDO(μPD1990DATAOUT)
Bit3:EXP/EXTON1=接続されていない、0=接続されている
Bit2:CMTCDINCMTからのキャリア信号が検出されたら1
Bit1:PRT/STROBEを/PR/ACKをCLKD=0にしたFF(LS74)のQ
Bit0:PRT/READY
*EXP/EXTONはPC-8001ではPC-8011/8012/8013/8033の接続の有無、
PC-8001mkII、PC-8801ではDISKユニットの接続の有無になります。
041H-04FH:ポート040Hのイメージ
050H:μPD3301パラメータ(入出力)
051H:μPD3301コマンド(入出力)
060H:μPD8257Ch0DMAアドレス・セット
061H:μPD8257Ch0ターミナルカウンタ・セット
062H:μPD8257Ch1DMAアドレス・セット
063H:μPD8257Ch1ターミナルカウンタ・セット
064H:μPD8257Ch2DMAアドレス・セット
065H:μPD8257Ch2ターミナルカウンタ・セット
066H:μPD8257Ch3DMAアドレス・セット
067H:μPD8257Ch3ターミナルカウンタ・セット
068H:μPD8257モード・セットまたはステータス・リード
070H-07FH:未使用
080H-08FH:PC-8011用/EXT0(ユーザー用)
090H-09FH:PC-8011用/EXT1(ユーザー用)
0A0H-0AFH:PC-8011用/EXT2(ユーザー用)
0A0H-0A3H:GSX用
0A0H:AY-3-8910#1レジスタ
0A1H:AY-3-8910#1データ
0A2H:AY-3-8910#2レジスタ
0A3H:AY-3-8910#2データ
0A4H-0A7H:GSX用
0A4H:AY-3-8910#3レジスタ
0A5H:AY-3-8910#3データ
0A6H:AY-3-8910#4レジスタ
0A7H:AY-3-8910#4データ
0B0H:PC-8011用汎用パラレルI/Oポート8ビット入力
0B1H:PC-8011用汎用パラレルI/Oポート8ビット出力
0B2H:PC-8011用汎用パラレルI/Oポート4ビット入力
0B3H:PC-8011用汎用パラレルI/Oポート4ビット出力
0B4H-0BFH:未使用
0C0H:RS-232CCh18251データ入出力
0C1H:RS-232CCh18251コントロール入出力
0C2H:RS-232CCh28251データ入出力
0C3H:RS-232CCh28251コントロール入出力
0C4H-0CFH:RS-232Cの使用禁止(データは何でもよく出力するだけで良い)
0D0H:PC-8011用IEEE-488バスデータ出力
0D1H:PC-8011用IEEE-488バスデータ入力
0D2H:PC-8011用IEEE-488バス制御信号出力
0D3H:PC-8011用IEEE-488バス8255コントロール
0D8H:PC-8011用IEEE-488バス制御信号入力
0DAH:PC-8011用IEEE-488バスマイアドレスモード入力
0DCH:PC-8011用IEEE-488バスNRFD制御ストローブ
0DEH:PC-8011用IEEE-488バスモード制御出力
0E0H:PC-8011用拡張メモリモード0セレクト
0E1H:PC-8011用拡張メモリモード1セレクト
0E2H:PC-8011用拡張メモリモード2セレクト、PC-8012-02拡張メモリセレクト
0E3H:PC-8011用拡張メモリモード3セレクト
0E4H:PC-8011/12用μPD8214カレントステータス出力
0E5H:PC-8011/12用μPD8214カレントステータス出力
0E6H:PC-8011/12用リアルタイム割り込み
0E7H:PC-8012メモリモードBit0=0モード1、1=モード0
0E8H-0EFH:未使用
0EFH:FGU-8200(未確認)
Bit7:
Bit6:1=GRAM選択、0=PC-8001RAM選択
Bit5:
Bit4:
Bit3:
Bit2:
Bit1:
Bit0:1=グラフィック表示オン、0=グラフィック表示オフ
0F3H:DMA転送方式インターフェィスセレクト(8インチ、5インチ)*PC-8001は使用不可
0F4H:DMA転送方式8インチインターフェイスチェック*PC-8001は使用不可
0F5H:DMA転送方式8インチマージンコントロール*PC-8001は使用不可
0F6H:DMA転送方式8インチFDCステータス・レジスタ*PC-8001は使用不可
0F7H:DMA転送方式8インチデータ・レジスタ*PC-8001は使用不可
0F8H:DMA転送方式5インチインターフェイスチェック*PC-8001は使用不可
0F9H:DMA転送方式5インチマージンコントロール*PC-8001は使用不可
0FAH:DMA転送方式5インチFDCステータス・レジスタ*PC-8001は使用不可
0FBH:DMA転送方式5インチデータ・レジスタ*PC-8001は使用不可
0F8H:PC-8031系インテリジェントタイプディスク8255PA*通常は使用しません
0F9H:PC-8031系インテリジェントタイプディスク8255PB*通常は使用しません
0FAH:PC-8031系インテリジェントタイプディスク8255PC*通常は使用しません
0FBH:PC-8031系インテリジェントタイプディスク8255CW*通常は使用しません
0FCH:PC-8031系インテリジェントタイプディスク8255PA
0FDH:PC-8031系インテリジェントタイプディスク8255PB
0FEH:PC-8031系インテリジェントタイプディスク8255PC
0FFH:PC-8031系インテリジェントタイプディスク8255CW
Enri's HP
http://www43.tok2.com/home/cmpslv/
0 件のコメント:
コメントを投稿