PC−8001


CRTC:μPD3301D、μPD8257C−5へ RTC :μPD1990Cへ SIO :μPD8251Cへ   PC−8011 拡張ユニットへ PC−8012 拡張スロットへ PC−80S31 ミニ ディスク ユニットへ   PCG8100へ シリアル マウスへ   N−BASICへ   PC−8001のスペック
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=オフ)  
起動方法   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−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のラインフィードの実行    
CPU拡張バス    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の使用禁止    
プリンタ・インターフェィス セントロニクス社仕様に基準しています。  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   /STB  :ライトストローブ信号         プリンタにデータを出力する時のライト信号として使用 PD0〜PD7:プリンタ用のデータバス /ACK  :プリンタからのアクノリッジ信号      ポートではフリップ・フロップで受けています      プリンタから/ACK を受けたらリセット      /STB が出力されたらセット /READY :0のときにプリンタにデータ出力が出来ます   *N−BASICでは/STB と/READY を見て、/ACK は無視   主なプリンタアクセス方法  /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月号 スピーチ・シンセサイザ)    
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 は出力が弱い為ビデオアンプの回路が必要になります  (モニタの明るさ調節だけでも一応可)    
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〜07FFFH)が拡張出来るようになっています また特定のアドレスに特定のデータを書き込む事によって オートスタートやモニタコマンドの拡張等が出来ます   オートスタートする場合  06000Hから041H、042H(アスキーコードで'AB')を書き込むと  PCが初期設定(01757H)の途中で拡張ROMチェックをしていて、  06002Hに飛びます  メモリチェックや割り込みの設定は行っていません    またPC−8001nkIIでは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の場合  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)のチェックを行います TMコマンドを実行して、 エラーが無ければ電源を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ポートの使用禁止ゲート(出力データは何でもよい)   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から起動  

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を実行する必要があり おそらくテキスト画面と同期していて 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 へ戻る