CPU | μPD780C−1(Z80A) 3.9936MHz 1WAIT |
PSG | 無し、ゲートによるBEEP音1つ |
ROM | 24KB(本体内は計32KBまで拡張可) |
RAM | 16KB(本体内は計32KBまで拡張可) |
CRTC μPD3301とDMA μPD8257の極悪コンビが割り込み(正確にはCPUバス制御)でCPU速度を落とし
尚且つ1WAITかかりZ80A 4MHzは遅いイメージを植付けさせた罪作りな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は外付けの8251を使用
PC−8801、PC−8001mkIIは全て本体内蔵のSIOを使用
/EXTON
PC−8001はPC−8011、12、13等の拡張ユニットの接続(1=オン、0=オフ)
PC−8801、PC−8001mkIIはFDドライブの接続 (1=オン、0=オフ)
海外のN−BASIC
USINGの’¥’が’$’に変更
キーボードのカナがSHIFT LOCK、テンキーの=がALT GRPHになっているが
ソフトの変更はないのでフォント部分の変更のみとなる
------------------------------------------------------------------------------
起動方法
PC−8001には3つの起動方法があります。
1.リセット(電源を入れる) コールドスタート
2.STOPを押しながらリセット ホットスタート(BASICの内容等が残る)
3.ESC を押しながらリセット 次のPC−8031系ユニットをブート
*ESC+リセットは
通常のPC−8031系のポート0FCH〜0FFHのアクセスをせず
ポート0F8H〜0FBHをPC−8031系のポートとしてアクセスを試みます
殆どがポート0F8H〜0FBHでのPC−8031系のユニットを接続していないので
ディスクドライブの切り離しとして使用出来ます
パラレルポートPC−8801−13等で接続が可能か?(未確認)
コールドスタートルーチンは機種によって若干変わるようで
主に3種類になるようです(NECのソフトによってはこの辺りで判断してます)
またPC−8001mkIIでは
N−BASIC だとBFFF:00
N80−BASICだとBFFF:2Bになります
PC−8001 Ver1.00/ 1.01/ 1.1
1757:3A 00 00 LD A,(00000H)
175A:3A 00 40 LD A,(04000H)
175D:3A 00 80 LD A,(08000H)
1760:3A 00 C0 LD A,(0C000H)
:
PC−8001mkII/SR
1757:21 D0 07 LD HL,007D0H
175A:2B DEC HL
175B:7C LD A,H
175C:B5 OR L
175D:20 FB JR NZ,A175A
175F:AF XOR A
1760:32 FF BF LD (0BFFFH),A
:
PC−8801/mkII/SR系
1757:AF XOR A
1758:D3 E7 OUT (0E7H),A
175A:D3 F8 OUT (0F8H),A
175C:00 NOP
175D:3A 00 80 LD A,(08000H)
1760:3A 00 C0 LD A,(0C000H)
:
------------------------------------------------------------------------------
ターミナルモード
PC−8001の本体内にはターミナルモードで使用する為の
シリアル転送用のソケット(16ピン)があります
オプションPC−8052(RS−232Cケーブル)が必要になりますが
自作でレベルコンバートする方法もあります
BASICのRS−232C命令はPC−8011等のオプション用の命令になります
*PC−8001以外はターミナルモード、BASICは同じRS−232Cを使用
1:GND 16:GND
2:/T×D 15:−12V
3:/R×D 14:GND
4:RTS 13:+12V
5:CTS 12:GND
6:DSR 11:+5V
7:CD 10:GND
8:DTR 9: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に出力
[コマンド]
TERM x,n,m,l
x:A 8ビットモード
J 7ビットモード
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のラインフィードの実行
------------------------------------------------------------------------------
プリンタ・インターフェィス
セントロニクス社仕様に基準しています。
<PC−8001>
1:/STB 2:GND
3:PD0 4:GND
5:PD1 6:GND
7:PD2 8:GND
9:PD3 10:GND
11:PD4 12:GND
13:PD5 14:GND
15:PD6 16:GND
17:PD7 18:GND
19:/ACK 20:GND
21:/READY 22:GND
23:N C 24:N C
25:N C 26:HIGH
27:N C 28:N C
29:HIGH 30:HIGH
31:GND 32:N C
33:N C 34:N C
<PC−8001mkII>
1:/PSTB(/STB)
2:PDB0 (PDB0)
3:PDB1 (PDB1)
4:PDB2 (PDB2)
5:PDB3 (PDB3)
6:PDB4 (PDB4)
7:PDB5 (PDB5)
8:PDB6 (PDB6)
9:PDB7 (PDB7)
10:N C
11:BUSY (/READY)
12:N C
13:N C
14:GND
/STB :ライトストローブ信号
プリンタにデータを出力する時のライト信号として使用
PD0〜PD7:プリンタ用のデータバス
/ACK :プリンタからのアクノリッジ信号
ポートではフリップ・フロップで受けています
プリンタから/ACK を受けたらリセット
/STB が出力されたらセット
/READY :0のときにプリンタにデータ出力が出来ます
*N−BASICでは/STB と/READY を見て、/ACK は無視
PC−8801/mkIIまでは片方向で
PC−8801mkIISR以降は双方向可
主なプリンタアクセス方法
/READY(ポート040H d0入力)が0になるまで待つ
/READY(ポート040H d0入力)が0になったら、ポート010Hにデータを書き込む
/STB (ポート040H d0出力)を0にする
/STB (ポート040H d0出力)を1にする
プリンタ・インタフェースのPD0〜PD7を
アンプ+スピーカに繋いでサンド出力するソフトがあります
PD0を出力 (アスキー’80年8月号 PC−8001による音声合成)
(RAM ’84年8月号 PC−8801/9801
キャリーラボ『JELDAII』サウンド出力ケーブル)
PD7を出力 (I/O ’82年2月号 スピーチ・シンセサイザ)
------------------------------------------------------------------------------
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|
・―――――――――――・
汎用I/Oポート(PC-8001mkII/8801mkII)
1:UIP2
2:UIP1
3:UOP1
4:UOP2
5:GND
6:UOP3
7:GND
8:/UINT2
9:+5V
------------------------------------------------------------------------------
CRTインターフェース
カラーインターフェース
1:VDD (+12V)
2:GND
3:COLOR CLK
4:/HSYNC (水平同期信号)
5:/VSYNC (垂直同期信号)
6:R
7:G
8:B
*COLOR CLK CLKはオプション用(カラーモジュレータ)
カラーバースト3.58MHz の4倍の14.32MHzを出力
白黒 インターフェース
1:VDD (+12V)
2:GND
3:VIDEO OUT
4:/HSYNC (水平同期信号)
5:/VSYNC (垂直同期信号)
*VIDEO OUT は出力が弱い為ビデオアンプの回路が必要になります
(モニタの明るさ調節だけでも一応表示可)
------------------------------------------------------------------------------
CPU拡張バス(PC−8001のみ)
1:+5V 2:+12V
3:DB0 4:−12V
5:DB1 6:/ROMDS0
7:DB2 8:/ROMDS1
9:DB3 10:/ROMDS2
11:DB4 12:/ROMDS3
13:DB5 14:/INT
15:DB6 16:/NMI
17:DB7 18:/EXTON
19:AB0 20:AB8
21:AB1 22:AB9
23:AB2 24:AB10
25:AB3 26:AB11
27:AB4 28:AB12
29:AB5 30:AB13
31:AB6 32:AB14
33:AB7 34:AB15
35:/RD 36:/RESET
37:/WR 38:/WAIT
39:/MREQ 40:/WE
41:/IORQ 42:/MUX
43:/RFSH 44:/RAS0
45:/M1 46:/RAS1
47:SCLOCK 48:GND
49:φ 50:GND
/ROMDS0=N−BASIC ROM 00000H〜01FFFHの使用禁止
/ROMDS1=N−BASIC ROM 02000H〜03FFFHの使用禁止
/ROMDS2=N−BASIC ROM 04000H〜05FFFHの使用禁止
/ROMDS3=本体内の拡張ROM 06000H〜07FFFHの使用禁止
拡張ROM
本体内には8KBのROM(06000H〜07FFFH)が拡張出来るようになっています
また特定のアドレスに特定のデータを書き込む事によって
オートスタートやモニタコマンドの拡張等が出来ます
オートスタートする場合
6000:41 42(アスキーコードで'AB')であれば
PCが初期設定(01757H)の途中で拡張ROMチェックをしていて、
06002Hに飛びます
メモリチェックや割り込みの設定は行っていません
またPC−8001nkIIのN80−BASICブート時の初期設定で
BFFF:2Bにして0C000Hに拡張ROMチェックプログラムを転送、実行され
06000H〜07FFFHは拡張ROMに選択され
6000:41 42 00であれば6002Hをコールされます
RET で帰るとDMAディスクのブートへ飛びます
6000:41 42 00以外ならN80−BASICのROM選択に戻して
DMAディスクのブートへ飛びます
6000:41 42 ― ← N−BASIC用
6000:41 42 00 ← N80、N−BASIC用
また起動時に0BFFFHでどのBASICか判断できます
BFFF:00 ← N−BASIC
BFFF:2B ← N80−BASIC
モニタコマンド
07FFFHに055H(アスキーコードで'U')であれば
BASICのMONコマンドを実行すれば
通常のモニタへは飛ばず、07FFCHに飛びます
拡張RAM
PC−8011または
PC−8012+PC−8012−02/PC-8013等で拡張します
00000H〜07FFFHの32KBがRAMとして割り当てられますが
バンク切り替え方法が異なったりします
PC−8011の場合
DIP SW2の設定により起動またはリセットでバンク設定
またポート0E0H〜0E3Hで使用バンク設定
ポートは出力するだけでよい
PC−8012+PC−8012−02/PC−8013の場合
起動またはリセットでRAMカード内のLS74により、
RAMリード禁止、RAMライト許可になます
ポート0E2Hで使用バンク設定
<例>
RAMバンク0がある場合
起動時には00000H〜07FFFHは
RAMリード:禁止(本体ROMを選択)
RAMライト:バンク0
つまりOUT&HE2,&H10の状態になる
この状態で00000H〜07FFFHにデータを書き込むとバンク0に書き込まれ
データを読み込むとN−BASIC+拡張ROMが読み込まれる
RAMバンク0−3がある場合(未確認)
起動時には00000H〜07FFFHは
RAMリード:禁止(本体ROMを選択)、
RAMライト:バンク0〜3になる
つまりOUT&HE2,&HF0の状態になる
00000H〜07FFFHにデータを書き込むと
バンク0〜3に同時に書き込まれ
データを読み込むとN−BASIC+拡張ROMが読み込まれる
バンク内のデータを読み込みは同時には出来ません
メモリチェック
PC−8001のモニタにはTM(テストメモリコマンド)で
本体内RAM(16KBまたは32KB)のチェックを行います
実行して、エラーが無ければ電源をONにしたときと同じになりますが
エラーが出た場合は音がBEEP音が鳴りっぱなしなり停止(HALT)します
エラーが出た場合はSTOPを押しながらリセットして
次のアドレスを見ればエラー箇所が分かります
0FF39H〜0FF3AH:エラーの出たアドレス(下位、上位の順)
0FF3BH :その時に書き込んだデータ
0FF3CH :その時に読み込んだデータ
上記のアドレスRAMが不良な場合はこの内容は信用できません
割り込み/INTについて
/INTはオプションのPC−8011/12/13によって変ります
どのオプションでもモード2で使用
コントロラーチップは8214(PC−8011は2つ、PC−8012/13は1つ)を使用
割り込み順位は/INT0が最低です
PC−8011は16レベル
08000H〜08001H:IEEE-448
08002H〜08003H:IEEE-448
08004H〜08005H:リアルタイムクロック
08006H〜08007H:未使用
08008H〜08009H:RS−232C Ch1(8251のRxRDYが1になるとかかる)
0800AH〜0800BH:RS−232C Ch2(8251のRxRDYが1になるとかかる)
0800CH〜0800DH:/INT9 汎用パラレル
0800EH〜0800FH:/INT8 汎用パラレル
08010H〜08011H:/INT7
08012H〜08013H:/INT6
08014H〜08015H:/INT5
08016H〜08017H:/INT4
08018H〜08019H:/INT3
0801AH〜0801BH:/INT2
0801CH〜0801DH:/INT1
0801EH〜0801FH:/INT0
PC−8012/13は8レベル
08000H〜08001H:/INT7 もしくはリアルタイム割り込み
08002H〜08003H:/INT6
08004H〜08005H:/INT5
08006H〜08007H:/INT4
08008H〜08009H:/INT3 BASICではRS−232C Ch1になっている(拡張)
0800AH〜0800BH:/INT2 BASICではRS−232C Ch2になっている(拡張)
0800CH〜0800DH:/INT1
0800EH〜0800FH:/INT0
08010H〜08011H:/INT7’もしくはリアルタイム割り込み
08012H〜08013H:/INT6’
08014H〜08015H:/INT5’
08016H〜08017H:/INT4’
08018H〜08019H:/INT3’BASICではRS−232C Ch1になっている(拡張)
0801AH〜0801BH:/INT2’BASICではRS−232C Ch2になっている(拡張)
0801CH〜0801DH:/INT1’
0801EH〜0801FH:/INT0’
*32KBシステムの場合です、16KBの場合0C000Hからテーブルが割り当てられます
PC−8011の/INT8〜/INT9は汎用パラレルI/Oポートにでているだけです
PC−8012/13で8214のI/Oアドレスの設定はジャンパCN1で設定を行います
1−2:ポート0E4Hを使用(上位8レベル)
2−3:ポート0E5Hを使用(下位8レベル)
PC−8012/13で/INT7をリアルタイム割り込みか/INT7の使用はジャンパCN3で設定を行います
1−2:INT7を選択
2−3:リアルタイム割り込みを選択
PC−8012/13で8214の出力されるエンコードベクトルはジャンパCN5で設定を行います
1−2:割り込みレベル(上位8レベル)
2−3:割り込みレベル(下位8レベル)
PC−8001mkII/PC−8801は
PC−8012基準+独自の割り込みに当てられています。
その為汎用スロットも若干端子に違いがあります
PC−8001mkIIは内蔵で8レベル
08000H〜08001H:/INT7 RS−232C BASICではRS−232C Ch1になっている
08002H〜08003H:/INT6 VRTC
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:/INT7 RS−232C
08002H〜08003H:/INT6 VRTC
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/12/13を接続することで
使用可能となります(PC−8012/13はジャンパで使用の設定)
PC−8801、PC−8001mkIIは本体内に実装
約1.67mS( 600Hz)毎で割り込みが掛かりますが
本体はCRTC+DMAのバス制御が掛かるので
割り込みでもDMAを禁止(画面表示オフ)にしないと
DMA要求が掛かかります
PC−8011/12/13の場合
0E6H
d0 リアルタイム割り込み 1=許可、0=禁止
PC−8801の場合
0E6H
d2:8251 RxRDY割り込み 1=許可、0=禁止
d1:VRTC割り込み 1=許可、0=禁止
d0:リアルタイム割り込み 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(入力):
d0:TABキー 1=押されていない、0=押されている
010H:プリンタまたはμPD1990用データ、汎用I/Oポート 出力
プリンタの場合
d7:PD7
d6:PD6
d5:PD5
d4:PD4
d3:PD3
d2:PD2
d1:PD1
d0:PD0
μPD1990の場合
d7:UOP3(6pin)
d6:未使用
d5:未使用
d4:未使用
d3:μPD1990データ出力(DATA IN)
d2:μPD1990コマンド出力 C2
d1:μPD1990コマンド出力 C1
d0:μPD1990コマンド出力 C0
030H(入力)
d7:UIP2(2pin)
d6:UIP1(1pin)
d5:MODE SELECT SW3 1=オフ、0=オン
d4:MODE SELECT SW4 1=オフ、0=オン
d3:MODE SELECT SW5 1=オフ、0=オン
d2:MODE SELECT SW6 1=オフ、0=オン
d1:MODE SELECT SW7 1=オフ、0=オン
d0:MODE SELECT SW8 1=オフ、0=オン(N80/Nモードの切り換えの使用)
UIPnは背面にある汎用I/Oの入力ポート部分です。
MODE SELECT SWnは背面にあるDIPスイッチで上にやるとオンになります
その中のMODE SELECT SW8はBASICの切り換えで
1:N80−BASIC、0:N−BASICとなります。
またこのSWはただの入力ポートなのでソフトでこのSWを見てポートの制御を行います
MODE SELECT SW2は拡張ボード用の為のメモリウェイト
MODE SELECT SW1は未使用
031H(出力)
d7:バックグラウンドカラーG
d6:バックグラウンドカラーR
d5:バックグラウンドカラーB
d4:グラフィック解像度 1=320×200 、0=640×200
d3:グラフィックの表示 1=表示する 、0=表示しない
d2:カラーモード 1=モノクロモード、0=アトリビュートカラーモード
d1:メモリモード 1=RAMモード 、0=ROMモード
d0:拡張ROMセレクト 1=N80−ROM 、0=拡張ROM
*d2のカラーモードは
640×200 1=モノクロモード 、0=アトリビュートカラーモード
320×200 1=4色カラーモード1、0=4色カラーモード0
PC−8001mkII専用のポートでグラフィックとメモリの制御を行います。
メモリモードは 00000H〜07FFFHを本体内のROMかRAMの選択を行います。
拡張ROMセレクトは06000H〜07FFFHのROM領域の選択になります。
リセット時、最初はN80−ROMが選択されています(正確にはN−BASICとN80は同じROM16KB*2内に収納)
040H(出力)
d7:UOP2(2pin)
d6:UOP1(1pin)
d5:BEEP 1=オン、0=オフ
d4:未使用
d3:CRT /CLDS CLK
d2:RTC CLK(μPD1990 データ・シフト)
d1:RTC STB(μPD1990 コントロール)
d0:PRT /STROBE
040H(入力)
d7:UIP4(4pin)
d6:UIP3(3pin)
d5:CRT VRTC(/DMA BUSY) 1=垂直帰線期間 、0=表示または水平帰線期間
d4:RTC DO(μPD1990 DATA OUT)
d3:/FDD 1=接続されていない、0=接続されている
d2:CMT CDIN CMTからのキャリア信号が検出されたら1
d1:未使用
d0:PRT /READY 1=BUSY 、0=READY
05CH(出力)
08000H〜0BFFFHのRAM領域をG−RAMに切り換えます
N/N80 BASICの割り込みベクタアドレスが08000Hから始まっていますので、
G−RAMを切り換えた後に割り込み要求が始まると暴走してしまいます。
BASICシステムが動作中にアクセスする場合、
割り込みを禁止にするか
ベクタアドレスをG−RAM領域以外に移動する必要があります
05FH(出力)
08000H〜0BFFFHのRAM領域を本体メモリに切り換えます
0C8H(出力)不明 RS−232Cポートの使用禁止ゲート(出力データは何でもよい)
0CAH(出力)不明 RS−232Cポートの使用禁止ゲート(出力データは何でもよい)
0E2H(出力)バンク領域アクセス(PC−8012−02相当)
d7:未使用
d6:未使用
d5:未使用
d4:1=RAMの書き込み、0=使用禁止
d3:未使用
d2:未使用
d1:未使用
d0:1=RAMの読み込み、0=ROMの読み込み
0E8H(出力)漢字ROMアドレスの下位
(入力)漢字フォント下位の読み出し
0E9H(出力)漢字ROMアドレスの上位
(入力)漢字フォント上位の読み出し
0EAH(出力)漢字ROMの読み出し開始(出力データは何でもよい)
0EBH(出力)漢字ROMの読み出し終了(出力データは何でもよい)
0ECH(出力)漢字の種類 000H=1/4角、全角第1
001H=全角第2
本体内のジャンパ
PC−8001mkIIには数ヶ所のジャンパがあります(内容は不明)
恐らく後期ロットのPC−8801(製造番号下3桁がW〜Z)や
PC−8801mkIIと同様にモニタの外部同期と
内部同期の切り換えと割り込み関係かもしれません
本体の起動
PC−8001mkIは起動(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 から起動
028H=N80−BASICから起動
WAIT機能
メモリアクセスに1WAIT掛かり
300nsまでのメモリが使用可
それより遅いメモリを使用する場合に
さらに1WAIT追加する事が出来ます
MODE SELECT SW2をオンまたは/MWAITを0にする
FGU−8200について(未確認)
使用ポート
0EFH :FGU−8200用(未確認)
d7:
d6:1=GRAM選択 、0=PC−8001RAM選択
d5:
d4:
d3:
d2:
d1:
d0:1=グラフィック表示オン、0=グラフィック表示オフ
GRAM領域は08000H〜0BFFFH
解像度は640×200のみだが
WIDTH80,25を実行する必要があり
おそらくCRTCと同期していて
WIDTH40,25だと320×200になるが
リニアマッピンではなく
右画面半分は使用できないようである(未確認)
また前のモデルFGU−8000は
本体RAMをG−RAMとして使用する為
フリーエリアが減少します
FD8080(CP/Mシステム)について
本体にFD8080を接続すると00000H〜07FFFHのバンク領域に
1.PC ROM 32KB(N−BASIC+拡張ROM)
2.拡張 RAM 32KB(DRAM)
3.ブートROM 2KB+DMA用SRAM 2KB
が割り当てられます
FDCは1171を使用しており
外付けDMA8257でディスク、SRAM間をアクセスします
PC−8001自体、画面表示でDMAの為、1ラインごとCPUが停止しますが
外付けDMAとSRAMでディスクをアクセスするので
CPU停止状態でも、外付けDMAはディスク、SRAM間のアクセスを可能にしています
なお両面8インチ(FD8090)、拡張端子はS100バス(FD8100)
OSは59K CP/M Ver2.0−0.5(Ver2.2も存在?)になります
PC−8001の使用ポート
000H〜009H:キーボード(入力)
1=押されていない、0=押されている
00AH〜00FH:未使用
010H :プリンタ/μPD1990出力データ
プリンタの場合
d7:PD7
d6:PD6
d5:PD5
d4:PD4
d3:PD3
d2:PD2
d1:PD1
d0:PD0
μPD1990の場合
d7:未使用
d6:未使用
d5:未使用
d4:未使用
d3:μPD1990データ出力(DATA IN)
d2:コマンド出力 C2
d1:コマンド出力 C1
d0:コマンド出力 C0
011H〜01FH:ポート010Hのイメージ
020H :μPD8251データ
021H :μPD8251コントロール
コマンドワード(出力)
d7:EH 1=SYNCキャラクタの検出を始める、0=何もしない
d6:IR 1=内部リセットの実行 、0=何もしない
d5:RTS 1=センド要求を実行 、0=何もしない
d4:ER 1=全エラーフラグをリセット 、0=何もしない
d3:SBRK 1=ブレイクキャラクタの送信 、0=通常動作
d2:RxE 1=受信可 、0=受信不可
d1:DTR 1=データ・ターミナルレディを実行 、0=何もしない
d0:TxEN 1=送信可 、0=送信不可
EH ハントイネーブル 同期モード時にSYNCキャラクタがくるの待つ
IR 内部リセット 8251をモード・ワード受け取り状態にする
RTS センド要求 1で/RTS 端子をLにする
ER エラーリセット PE、OE、FEを0にする
SBRK センドブレイク・キャラクタ 1でTxD端子をLとして通信ブレイク
RxE 受信イネーブル
DTR データ・ターミナルレディ 1で/DTR端子をLにする
TxEN 送信イネーブル
ステータス(入力)
d7:DSR 1=レディ 、0=ビジィ
d6:SYNDET 1=キャラクタ検出、0=検出無し
d5:FE 1=エラー発生 、0=エラー無し
d4:OE 1=エラー発生 、0=エラー無し
d3:PE 1=エラー発生 、0=エラー無し
d2:T×E 1=エンプティ 、0=フル
d1:R×RDY 1=レディ 、0=ビジィ
d0:T×RDY 1=レディ 、0=ビジィ
DSR データ・レディ /DSR 端子がLの時に1になる
SYNDET SYNCキャラクタ検出 SYNDET端子の内容
FE フレミングエラー ストップビットが検出されない
OE オーバーランエラー CPUがデータを読む前に次のデータが入った
PE パリティエラー 入力データにパリティエラーの検出
TxE 送信バッファエンプティ TxEMPTY 端子の内容
RxRDY 受信レディ RxRDSY端子の内容
TxRDY 送信レディ TxEN=1、/CTS =0の場合1
モードワード(出力)
非同期モード
d7:S2 ストップビット 11=2ビット、10=1+1/2ビット
d6:S1 01=1ビット、00=無効
d5:EP 偶数パリティ発生/チェック 1=偶数 、0=奇数
d4:PEN パリティ・イネーブル 1=実行可 、0=実行不可
d3:L2 キャラクタ長 11=8ビット、10=7ビット
d2:L1 01=6ビット、00=5ビット
d1:B2 ボーレート 11=×64 、10=×16
d0:B1 01=×1 、00=同期モード
同期モード
d7:SCS 単一キャラクタ同期 1=単一SYNCキャラクタ、0=ダブルSYNCキャラクタ
d6:ESD 外部同期検出 1=SYNDET入力 、0=SYNDET出力
d5:EP 偶数パリティ発生/チェック 1=偶数 、0=奇数
d4:PEN パリティ・イネーブル 1=実行可 、0=実行不可
d3:L2 キャラクタ長 11=8ビット、10=7ビット
d2:L1 01=6ビット、00=5ビット
d1:0
d0:0
022H〜02FH:ポート020H、021Hのイメージ
030H(出力)
d7:未使用
d6:未使用
d5:CMT BS2
d4:CMT BS1
d3:CMT MOTOR 1=MOTORオン 、0=MOTORオフ
d2:CMT CHIN 1=マーク(2400Hz)、0=スペース(1200Hz)
d1:CRT 1=白黒 、0=カラー
d0:CRT 1=80行 、0=40行
031H〜03FH:ポート030Hのイメージ
040H(出力)
d7:未使用
d6:未使用
d5:BEEP 1=オン、0=オフ
d4:未使用
d3:CRT /CLDS CLK
d2:RTC CLK(μPD1990 データ・シフト)
d1:RTC STB(μPD1990 コントロール)
d0:PRT /STROBE
040H(入力)
d7:未使用
d6:未使用
d5:CRT VRTC(/DMA BUSY) 1=垂直帰線期間 、0=表示または水平帰線期間
d4:RTC DO(μPD1990 DATA OUT)
d3:EXP /EXTON 1=接続されていない、0=接続されている
d2:CMT CDIN CMTからのキャリア信号が検出されたら1
d1:PRT /STROBEを/PR /ACKをCLK D=0にしたFF(LS74)のQ
d0:PRT /READY
*EXP /EXTONはPC−8001ではPC−8011/12/13/33の接続の有無、
PC−8001mkII、PC−8801ではDISKユニットの接続の有無
PC−8033はPC−8001本体に直接接続するDISK IF
041H〜04FH:ポート040Hのイメージ
050H :μPD3301 パラメータ(入出力)
051H :μPD3301 コマンド (入出力)
060H :μPD8257 Ch0 DMAアドレス・セット
061H :μPD8257 Ch0 ターミナルカウンタ・セット
062H :μPD8257 Ch1 DMAアドレス・セット
063H :μPD8257 Ch1 ターミナルカウンタ・セット
064H :μPD8257 Ch2 DMAアドレス・セット
065H :μPD8257 Ch2 ターミナルカウンタ・セット
066H :μPD8257 Ch3 DMAアドレス・セット
067H :μPD8257 Ch3 ターミナルカウンタ・セット
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−232C Ch1 8251データ入出力
0C1H :RS−232C Ch1 8251コントロール入出力
0C2H :RS−232C Ch2 8251データ入出力
0C3H :RS−232C Ch2 8251コントロール入出力
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 メモリ モード d0=0 モード1、1=モード0
0E8H〜0EFH:未使用
0EFH :FGU−8200(未確認)
d7:
d6:1=GRAM選択 、0=PC−8001RAM選択
d5:
d4:
d3:
d2:
d1:
d0:1=グラフィック表示オン、0=グラフィック表示オフ
0F3H :DMA転送方式IFセレクト 020H=8インチ *PC−8001は使用不可
010H=5インチ
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系インテリジェントタイプ ディスク 8255 PA *通常は使用しません
0F9H :PC−8031系インテリジェントタイプ ディスク 8255 PB *通常は使用しません
0FAH :PC−8031系インテリジェントタイプ ディスク 8255 PC *通常は使用しません
0FBH :PC−8031系インテリジェントタイプ ディスク 8255 CW *通常は使用しません
0FCH :PC−8031系インテリジェントタイプ ディスク 8255 PA
0FDH :PC−8031系インテリジェントタイプ ディスク 8255 PB
0FEH :PC−8031系インテリジェントタイプ ディスク 8255 PC
0FFH :PC−8031系インテリジェントタイプ ディスク 8255 CW
Home へ戻る