モードスイッチ


PC-8001/8801は、従来機種との互換性を保つために「建て増し」された構造となっています。これは別にPC-8801に限った話ではなく、この世代のソフトウェアはハードウェアの仕様に強く依存したもので、OSが差異を吸収するなんてことはまずなかったからです。

本体を新品で入手すると、マニュアルにはその機種の「モード」について説明があったので、当時のユーザはそれを読んで適切に設定ができました。 でも今それを知るのは大変手間がかかるでしょう。

例題1:誰かから「PC-8801FH」一式と、「PC-8801/mkII用」の「ハイドライドII」をもらった(買った)として、このソフトを動かすための設定は?

例題2:昔の雑誌に掲載されていた「PC-8001、PC-8001mkII、PC-8801、PC-8801mkII用」のプログラムを打ち込むとして、このソフトを動かすための設定は?

もちろん、当時のユーザからすれば簡単な問題ですが、これらを初めて手にしたユーザは困惑するしかないでしょう。というわけで、自分が把握している範囲で書き記してみました。

PC-8001/8801の各機種は、(PC-88VAシリーズを除き)N-BASICモードという共通基盤があり、PC-8001系とPC-8801系でそれぞれ互換性のない(似て異なる)進化を遂げています(一方、PC-6001/6601シリーズの間は互換の範囲が大きい)。そのため、以下のような非互換性が存在します。

また、少ないもののこの前提に当てはまらないソフトウェアも存在します。例えばPC-8801mkIISRでは動作するが、FR以降では動作しないなど。逆にPC-8001mkIISR/PC-8801mkIISR両対応のソフトウェアも存在します。また、BASICモードを自力で適切に切り替えてしまうソフトもわずかに存在します。

そして、起動中にスイッチを操作することによるモード切り替え(クロック切り替えも含む)はサポートされていません。切り替えた場合は、リセットまたは電源を再投入することで反映されます。

用語について

たとえば「N88V1S」(V1Sモード)はPC-8801相当のモードを指しますが、PC-8801発売当時にあった名称ではありません(レトロニム)。 PC-8801mkIISRで新設された「N88V2」(V2モード)と区別するために、この名前となっています。

こういった経緯により、当時のマニュアルやパッケージの表記には揺らぎがあります。

また、設定方法の略語は次のとおりです。 セットアップモードは、[PC]キー(DO/DO+は[GRPH]キー)を押しながらリセット、あるいは電源オンで現れるメニュー画面のことです。

略称意味
DIPSWDIPスイッチ。ボールペンの先で上下させ、値を変化させるスイッチ。設定方法はリンク先参照。
SSWスライドスイッチ。横方向にスライドさせるスイッチ。
SETUP+SSWセットアップモードによる設定(BASIC)と、スライドスイッチの設定(CLOCK)を併用。
SETUPセットアップモード。画面を見ながらキーボードで値を設定する。

また、各モードの記号は次のような意味で記しています。

記号意味
利用不可
直接モード変更ができない
隠しコマンド([N][8][0]リセット、後述)でモード変更可能
対応(互換モード)
対応(その機種本来のモード)

モードの指示がある場合は、もちろんそれに従ってください。ソフトウェアの対応機種が分かる場合、他に特別な指示がない限りは◎のあるモードを選択すれば良いです。

例題1の答え:「PC-8801FH」で「PC-8801/mkII用」の「ハイドライドII」を動かす場合、この表でPC-8801mkIIの「◎」がある「N88V1・4MHz」を選択する。

例題2の答え:「PC-8001、PC-8001mkII、PC-8801、PC-8801mkII用」のプログラムを動かす場合、全ての機種の共通項である「N・4MHz」を選択する。

機種別モード表

機種 BASICモード クロック 設定方法 特徴
N N80 N80SR N88V1 N88V2 N88V3 4MHz 8MHzS 8MHzH
PC-8001
PC-8001N-BASICはここから
PC-8001mkIIDIPSWGVRAM搭載(80mkII方式)
PC-8001mkIISRDIPSWGVRAM追加(80mkIISR方式)、高速化
PC-8801 (V1S)
PC-8801DIPSWN88-BASIC、GVRAM搭載(88方式)
PC-8801mkIIDIPSWJIS第一水準漢字ROM搭載、FDD内蔵(5"2D)/内蔵可
PC-8801 V2 4MHz
PC-8801mkIISRSSW高速化、FM音源(OPN)
PC-8801mkIITRSSWモデム・受話器追加(TR)
PC-8801mkIIFRSSWSRの廉価版
PC-8801mkIIMRSSWJIS第二水準漢字ROM搭載、5"2HD内蔵、メモリ増設(Mシリーズ)
PC-8801 V2 8MHz (8MHzS)
PC-8801FHSETUP+SSW8MHzS
PC-8801MHSETUP+SSW8MHzS
PC-8801FASETUP+SSWFM音源(OPNA)
PC-8801MASETUP+SSWFM音源(OPNA)
PC-8801FESETUP+SSWFM音源(OPN)、廉価版
PC-8801MA2SETUP+SSWFM音源(OPNA)
PC-8801 V2 8MHzH
PC-8801FE2SETUP8MHzH、FM音源(OPN)、廉価版
PC-8801MCSETUP8MHzH、FM音源(OPNA)、CD-ROM2搭載/搭載可
PC-88VA (V3 mode)
PC-88VASSWV30/Z80切り替え
PC-88VA2/3SETUPV1/V2互換性向上、FM音源(OPNA)、2TD搭載/搭載可
PC-88+PC-98 (88モード)
PC-98DOSETUP98VM11/88MH相当のハイブリッド機
PC-98DO+SETUP98VM11/88MA相当のハイブリッド機
機種 N N80 N80SR N88V1 N88V2 N88V3 4MHz 8MHzS 8MHzH 設定方法 特徴
BASICモード クロック

N-BASIC

PC-8001互換のモードで、PC-8001mkII/SRやPC-8801の全シリーズ共通で持っているモード。唯一の例外として、PC-88VAシリーズのみN-BASIC ROMが存在しないため、このモードを持たない(参考)。

88MR/FR以降はこのモードに直接入るためのスイッチが廃されたが、V1Sモードを経由して利用することはできる(N88-BASIC から NEW ON 1 コマンド実行など)。

88FH/MH以降、98DO以降はV1Sモードで[N][8][0](全てフルキー側)を押しながらリセットすると、このモードに遷移する。 FE2/MCの場合はV1H/V2モードからでも切り替えられる。

このほか、V1H/V2モードからでもソフトウェア的に切り替えることもでき、一部のソフトウェアは切り替えた上で動作している。

ちなみに、このモードにしても各機種固有のハードウェア(例:SRで追加されたALU、FM音源など)にはアクセスできる。また、88SR以降のSPEEDスイッチを H にすると、V1Hモード同様に高速化される。

N-BASIC起動直後のメッセージは以下のようなもので、N-BASICという表示ではなく、PC-8001 BASICとなっている点に注意。

NEC PC-8001 BASIC Ver.1.X
Copyright 1979 (C) by Microsoft

N80-BASIC

PC-8001mkII互換のモードで、PC-8001mkIISRもこのモードを持っている。N-BASICに命令を拡張した作りになっている。

[CTRL]キーを押しながら起動すると、DIPSW (80mkII:SW8 / 80SR:SW2)の指定とは逆の設定で立ち上がる。

他のBASICの名称から推測すると、PC-8001に搭載されたBASICのような名前だが、PC-8001/8801に搭載されたBASICではない

NEC N-80 BASIC Ver.1.X
Copyright 1979 (C) by Microsoft
Enhanced 1982 by NEC

N80SR-BASIC

PC-8001mkIISRにのみ存在するモード。

N80-BASICに命令を拡張した作りになっている。

[SHIFT]キーを押しながら起動すると、DIPSW (80SR:SW1)の指定とは逆の設定で立ち上がる。

NEC N80SR-BASIC Ver.1.X
Copyright (C) 1979 Microsoft Corporation
Copyright (C) 1984 NEC Corporation
XXXXX Bytes free

N88-BASIC (V1, V1S)

PC-8801互換のモードで、全てのPC-8801シリーズ、PC-88VAシリーズ、PC-98DOシリーズに存在する。 80mkIIのように「N-BASICを拡張」したものではなく、中間コードも異なる別個のBASICとして登場している。

88/mkIIの頃は「N88-BASICモード」だったが、88SRが出た際に、N88-BASICモードが2つとなり、この従来互換のモードがV1モードと名付けられた。SR以降はSPEEDスイッチでV1モードがさらに2つに分かれている。V1SはテキストVRAMのウェイトで互換を持たせたモードであり、単に「V1モード」とある場合、このV1Sモードのことを示す。

細かい話をすると、SR以降のN88-BASICは、V1/V2ともDISK-BASICで拡張されていた機能の一部をROMで搭載している。

How many files(0-15)? は、OPEN文で利用する#1〜#15のバッファをいくつ確保するかの問いであり、そのままリターンキーを押すと接続中のディスクドライブ数に応じたバッファ数が指定される。

How many files(0-15)?
NEC N-88 BASIC Ver.1.X
Copyright (C) 1981 by Microsoft
XXXXX Bytes free

N88-BASIC V1H

PC-8801mkIISR以降、つまり「V2モードが存在する全てのPC-88シリーズで利用可能」なモードである。 V1Sとメモリマップは同一で、V2モード同様、テキストVRAMのDMAウェイトがかからない高速モードである。 ソフトウェアによっては高速すぎて利用に支障が出ることもあるので、その場合はV1Sを利用する。 「V2モードの速度で動作するV1モード」と言い換えることもできる。

N88-BASIC V2

PC-8801mkIISR互換モード。世の中に存在するPC-88用ソフトの多くはこのモード用に作られている。 テキストVRAMによるDMAウェイトから解放され、高速化が図られた。 ハードウェアの初期化方法の一部がV1モードとは異なる。 なお、V2モードはSPEEDスイッチがSであってもH相当で動作する。

V2モードでV1Sモード用のプログラムを実行すると、パレットの初期化方法が異なるために「グラフィックが全体的に青っぽくなる」ことがある。 これは本体の故障ではなく、V1Sモードで起動すれば正しく表示される。

How many files(0-15)?
NEC N-88 BASIC Ver.2.X
Copyright (C) 1981 by Microsoft
XXXXX Bytes free

N88-BASIC V3

PC-88VAシリーズにのみ存在するモードで、V30(16bit) 8MHz相当のモードで動作する。

4MHz

PC-8001シリーズの全てと、PC-8801/mkII/SR/TR/FR/MRは、このクロック周波数で動作している。 これらの機種まではクロック周波数の切り替えがそもそもできなかったので、明記されることはなかった。

PC-88VAでは本体前面のスピードスイッチを「Sモード」に、PC-88VA2/3ではセットアップメニューの「スピード」を「標準」にすると、このモード相当となる。

8MHz (8MHzS)

PC-8801MH/FHでは、クロック周波数を8MHzに切り替えることができるようになった。 ただし8MHzでは若干のウェイトが挿入されている。 MC/FE2登場までは単に「8MHz」と称された。

ソフトウェアによっては高速すぎて利用に支障が出ることもあるので、その場合は4MHzを利用する。

なお、クロック周波数はBASICモードとは独立して設定できるため、(あまり利用価値がないが)V1S 8MHzのような組み合わせの設定も可能ではある。

PC-88VAでは本体前面のスピードスイッチを「Hモード」に、PC-88VA2/3ではセットアップメニューの「スピード」を「ハイスピード」にすると、このモード相当となる。

8MHzH

PC-8801MC/FE2で利用できる、クロック周波数8MHzでウェイトを廃したモード。 利用できる機種が少ないこともあり、対応していないソフトウェアもあるので注意が必要。

8MHzでの動作を試す場合は、まず8MHzSから試してみることを推奨。

キーワード別 おすすめモードスイッチ

説明書の対応機種のキーワードと、モードスイッチの対応は、原則としてこのような具合です。 説明書などに具体的な指示がある場合は、それに従ってください。

N (4MHz)

N80

N80SR

N88 V1S 4MHz

N88 V2 4MHz

N88 V2 8MHzS

N88 V2 8MHzH

もちろん、V1S用のソフトウェアをV1Hで動かしたり、4MHzのソフトウェアを8MHzS/8MHzHで動かすこともできるかもしれません。 シミュレーションゲームのように、処理に時間のかかるソフトには有効という場合もあります。 ただし、キー入力がしづらくなったり、BGMがおかしくなったりといった可能性もあります。

V1S用のソフトウェアをV2で動かそうとすると、ワークエリアの違いなどから正常に動作しなかったり、パレットなどの初期化が一部異なるため正しい表示にならなかったりすることもあります。 88の、とくに古いソフトウェアで挙動がおかしい場合は、V1Sで試してみることをおすすめします。

V2用のソフトウェアをV1S/Hで動かそうとした場合、"V2 mode only!" などのメッセージを表示するソフトウェアも存在します。 この場合は素直にV2に切り替えて動かします。

ソフトウェアからの判別方法

ソフトウェアからモードスイッチの状態を読み取ることができます。このため、複数の設定に対応したソフトウェアも存在します。

そのモードの有無がある機種でしか機能しない点には注意してください(V1/V2の判別は88SR以降、など)。PC-8000/8800シリーズの機種の判別方法は、BASIC ROMが持っているバージョン情報を調べるのが一般的です。

PC-8801系列での判別
I/Oアドレスbit内容bit=0のときbit=1のとき
30H0BASICモードN-BASICN88-BASIC
31H7V1/V2モードV2モードV1モード
31H6ハイスピードモードスタンダードモード(V1S)ハイスピードモード(V1H/V2)
6EH7CPUクロックモード8MHz4MHz

PC-8001系列での判別
I/Oアドレスbit内容bit=0のときbit=1のとき
30H0起動時のBASICN-BASICN80-BASIC
33H7ROMモードコントロールN80SR-BASICN/N80-BASIC

bit 0は最下位ビット、bit 7は最上位ビットを示す。

N88-BASICからN-BASICへ強制的に切り替えるには

N88-V1SモードのBASICからは NEW ON 1 コマンドでN-BASICモードに切り替えることができます。 しかし、N88-V1H/V2モードで NEW ON 1 を実行すると Feature not available エラーとなってしまいます。

N88-V1H/V2モードでどうしても切り替えたい場合は、マシン語でモード切替IPLと同じようなことをすれば、切り換えられます。 このプログラムを実行するとリセットがかかるので、必要なら事前にSAVEしておきましょう。

10 ' N88 to N mode
20 DEF USR=&HD000
30 CLEAR ,&HCFFF:RESTORE
40 FOR ADR=&HD000 TO &HD008:READ D$:POKE ADR,VAL("&H"+D$):NEXT
50 A=USR(0)
60 DATA F3,AF,D3,E6,3E,04,D3,31,C7
; DATA文の中身
; N88→Nモード切替
         F3         DI                  ; 割り込み禁止
         AF         XOR  A
         D3 E6      OUT  (0E6H),A       ; RS-232C/VRTC/タイマ割り込み禁止
         3E 04      LD   A,04H
         D3 31      OUT  (31H),A        ; N-BASICモード選択
         C7         RST   00H           ; N-BASIC ROMの0000H番地へ(リセット)

N88-BASICでマシン語ルーチンを呼び出すには、DEF USR文のほかにCALL文もありますが、CALL文はPC-8801/mkIIではDisk BASICで追加される命令です。(?NA Error になる)

N-BASICからN88-BASICへ強制的に切り替えるには

N-BASICからN88-BASICへ切り替えるコマンドはありません。

N88-BASICモードにどうしても切り替えたい場合は、マシン語でモード切替IPLと同じようなことをすれば、切り換えられます。 V1モードかV2モードかは、本体のスイッチがどちら側にあるか(I/Oポート31H bit7の値)次第となります。 このプログラムを実行するとリセットがかかるので、必要なら事前にSAVEしておきましょう。

10 ' N to N88 mode
20 DEF USR=&HD000
30 CLEAR 300,&HCFFF:RESTORE
40 FOR A=&HD000 TO &HD00D:READ D$:POKE A,VAL("&H"+D$):NEXT
50 A=USR(0)
60 DATA AF,D3,31,DB,32,E6,FC,D3,32,3E,04,C3,FE,77
; DATA文の中身
; N→N88モード切替
         AF         XOR  A
         D3 31      OUT  (31H),A        ; N88-BASICモード選択(A=0)
         DB 32      IN   A,(32H)
         E6 FC      AND  0FCH
         D3 32      OUT  (32H),A        ; 内蔵拡張ROMバンク0選択(4th ROM)
         3E 04      LD   A,0CH          ; DIP-SW値 DELコード無視/Sパラメータ無効/テキスト80x25/N88-BASIC
         C3 FE 77   JP   77FEH          ; N88-BASIC ROMの77FEH番地へ(初期化処理)

PC-88VAでN-BASIC

PC-88VAシリーズにはN-BASIC ROMが内蔵されていません。 ただ、全く動かす方法がないかといえば、そうではありません。 VA-NBASIC SYSTEMを使い、他の機種のN-BASICをdiskに転送、これをPC-88VAで実行することで動作させることができるようです。

ただし、PC-88VAシリーズのテキスト画面はPC-8001/8801シリーズと一部仕様が異なるため、表示が異なるソフトウェアも存在します。


参考:


今だから使うPC-88へ戻る

工場のご案内(Top page)へ戻る