PC-9801とPC-8801の互換性 [コメントする]

PC-9801とPC-8801の互換性


スレッド作成 : KFELLOWさん
 (1997/11/27 16:23:00)

 「98も88とBASIC互換」って書いてありましたが、それに一言。
 88MkIIにはN-BASICとN88-BASICの2つのモードがありましたが、SRになってN88SR-BASIC(ちゃんとした名前は失念してしまいました)というモードがありました。その他にもSRには拡張スロットが2つだか3つだか忘れましたが多く積まれていました。ところがFRになったとたんN-BASICモードは削られ、スロットも1つになってしまうなどの仕打ちを受け、MRの2HDは「2HDのドライブで2Dを書き込んだら、そのうちその2Dは読み込めなくなる」というまことしやかな話があったためMRを買い控えた人はSRを求めに中古屋へ走った、という経緯がありますね。
 98の方はVMで大きく変わったけれど、BASIC自体の仕様は大きくは変わりませんでしたし、VX以降のGDCを使ったものでもBASIC自体は大きく変わらず内部変更のみだったため、混乱はあんまりなかったようですね。というよりその頃はCが主流になってたでしょうから、あんまり関係ないですね。


ribbon さんのコメント
 (1997/11/27 16:23:23)

> FRになったとたんN-BASICモードは削られ

 てはいません。N88-BASICのプロンプトからNEW ONコマンドでBASICのモードを選択できるようになりました。
 たしかPC-9801の一部の機種もこのコマンドでNモードに出来たはずです。


keita さんのコメント
 (1997/11/27 16:23:49)

 FRはコストダウンのため、BASICモード表示のLEDが減らされていました。(SRはV2,V1,Nの3個、FRはNを除いた二つ)モード設定もSRと同様に前面蓋の中にある2つのスライドスイッチで切り替えられました。(V2,V1-H,V1-N,Nだったかな?)
 拡張スロットはひとつでしたが、基板上には2つ分の配線がしてありました(MRと同じ)ので、その気になればコネクタのハンダつけと背面パネルの加工で2スロット仕様にできました。


mio さんのコメント
 (1997/11/27 16:24:12)

N-BASICが削られたのは、MC。それ以前は起動時に

N 8 0

の3つのキーを押していると N-BASIC モードで起動しました。画面キャプチャするときによく使ったものです(N80モードは起動時に画面をクリアしない)。

SRで付加された、というのは、N88-日本語BASICのこと?98に載っていたのは、N88-日本語BASIC(86)。Intel8086の86ですね。BASIC互換というのは、あくまでテキストソースとして、であって、ディスク上は(オプション指定しない限り)ベツモノでした。

処理モードの名前は、V1S、V1H、V2です。たしか、VAはV3モードというので独自モードを実行していたと思います。あと、オリジナルDOSの名前は

PC-Engine

NECはこの名前が大好きなようですね。とりあえずフルスクリーンエディタをROMで持っている、など、斬新だったことは確か。

88だとあとおもしろかったのが、「タートルグラフィック拡張命令」ですね。これは亀(タートル)の頭に似た矢印にベクトルを与えてやって、描画していくというもので、システムディスクに収録されていたんですが、FH/MHでマニュアルから消え去ったために知らない人も多いと思います。


みれい さんのコメント
 (1997/11/27 16:24:57)

PC-80や88ではキーボードスキャンにINP関数がよく使われていたために、98ではCPUがZ80でないにも関わらずポートをエミュレーションするようになってましたよね。PEEK、POKEでわざと88と同じ反応を返すようにしてた部分も確かあったはず。

そんなこんな工夫してるので、98と88のROM-BASICの、ソースレベルでの互換性は高かったのではないかと思います。業務用プログラムの移植には役立ったのではないでしょうか。

ただ、88にしても80にしても、ちょっと表示のかっこいいプログラムがBASICオンリーということはまず有り得ませんね。


みれい さんのコメント
 (1997/11/27 16:25:18)

タートルグラフィックは、LOGOという言語で流行した命令ですね。ぴゅう太やファミリーベーシックにも付いてませんでしたっけ?
当時物凄い流行して、パソコンの標準言語はLOGOになるとまで言われましたが、Windowsの時代になっても相変わらずパソコンはBASIC。
そういえばLOGOの前はPASCALがそう言われてましたね。

MK2の時に付いたこのへんの新命令はCMDなんたらと接頭語が付いてて嫌でした。
SRでCMD CLSよりも速いCLSを見たときは夢のようでした。


keita さんのコメント
 (1997/11/27 16:25:44)

CMD命令、懐かしいですね(^^)。
私はMK2からのユーザーでしたが、組み込むとフリーエリアがドカンと減る拡張パッケージはあまり好きではありませんでした。
PSGボード(8801-10)の音楽ルーチンと一緒に組み込めなかったし。拘束…もとい高速CLSだけ独立させて使っていたような記憶があります。
当事発売されていたシステムソフトと秀和の88本と拡張パッケージの逆アセンブルリストを見ながらコマンドの拡張方法を覚えたような気がします。その結果は後に作った88用パソ通ホストプログラムにつながって行ったのですが………

振り返ると、5年くらい前まで私、初代88使ってましたね。最後の方はJET-TERMでしたが。


mio さんのコメント
 (1997/11/27 16:26:10)

 ちょっと間があいてしまいました。

 「ディスク上は」です。

 知っている人は知っていますが、N-88 BASICというものは、メモリあるいはディスクに格納するとき PRINT なら "PRINT" という文字列で格納されるのではなく、1バイトあるいは2バイトの中間言語に変換されて格納されています。メモリの節約と、実行時のトークン解釈の簡略化の両方に役立つ手法ですね。

 この中間言語コードが、88と98でかなりの部分異なるために、通常ソースレベルでの互換性は低い、ということになります(98 で読み込むと、BSAVE が BLOAD になったりする)。

 また同様に、他機種への移植もそのままではできません。このために用意されたのが「アスキーセーブ」モードで、こうするとディスクに格納するときに、中間言語を "PRINT" という文字列に変換して出力します(結果、サイズは大きくなる)。この状態なら98 で読み込めば、ほとんどそのまま動きます。


mio さんのコメント
 (1997/11/27 16:26:45)

 CMD命令は、ある意味大きくなっても仕方ないですね。「拡張」ですから。

 ただ、88には ISET、IRESET、POLL などの俗に言う未定義命令がインプリメントされていたため、これを使えば長くすることなく新しい命令を作ることもできました。

 私も CMD PAL などを自作のルーチンを ISET に割り当てていました(もっとも、同時に音楽をやろうとすると NEW CMD するので、PMD というドライバが手に入るまではあまり意味はなかったのですが)。

 それから、ディスクBASIC で拡張された命令はすべてRAMフックの形式だったので、「使わねー」と思ったら独自ルーチンに割り当てることもできました。

 あの頃は、本当に「マシンをいじる」という感覚でプログラミングしていても貼りがあったというか…。
今は、「ゲイツ様にお仕事をお願いする」という感じのプログラムですよね。


keita さんのコメント
 (1997/11/27 16:27:18)

> また同様に、他機種への移植もそのままではできません。この
>ために用意されたのが「アスキーセーブ」モードで、こうすると

88ってテキストエリアをほぼ使い切ってるプログラムをアスキーセーブして、それをロードしようとしてもできないんですよね(^^;;;;;;;;; 
なんかいかこれやってしまってとても焦ったことがあります。


mio さんのコメント
 (1997/11/27 16:27:39)

> 88ってテキストエリアをほぼ使い切ってるプログラムをアスキーセーブして、
> それをロードしようとしてもできないんですよね(^^;;;;;;;;; 

 初代「蒼き狼と白き雌鹿」のBASICリストをアスキーセーブして…(笑)。


keita さんのコメント
 (1997/11/27 16:28:06)

> 初代「蒼き狼と白き雌鹿」のBASICリストをアスキーセーブして…(笑)。

私はVillageというソフトでやりました。残り40数バイトになったときにやばいと思いながらセーブしてロードしたら....(涙)


MCのNBASICは…

水の魔導師にゃー さんのコメント
 (1998/1/16 15:26:33 -
E-Mail Web)

削られていません。
それどころか、FE2とMCのNBASICは
8MHzHモードでも動作するので非常に高速です

なくなったのはVAシリーズです。98DO系
はどうだったのかな?

VAでもROMをすいだしてNBASICが
動かないこともないです(^^;


Saiey さんのコメント
 (1998/1/16 21:53:03)

そーいえば、98DOの88って、88のどのあたりの機種相当なんでしょうね?88MAあたり?


Re:98DO

水の魔導師ニャー さんのコメント
 (1998/1/17 16:06:01)

ええと、98DOの88モードが88MH相当、
98DO+が88MA相当です(^_^=
ちなみに、98DO+のcpuは演算速度だけなら386より速いってご存じでした?


Saiey さんのコメント
 (1998/1/19 11:21:02)

98DO+って、CPUなんでしたっけ?V33とか、なんかそんな感じのだったかな?そんなに高速マシンだったっていうのは、知らなかったです。

386より速いっていうのは、もちろん98モードですよね?88モードが爆速ってことは・・・(^^;


DOシリーズのCPU

水の魔導師にゃー さんのコメント
 (1998/1/19 14:36:36 -
E-Mail)

DOにはμPD70116+μPD70008AC-8+μPD780C
DO+がμPD70116(V30)の代わりにV33A
が搭載されています。
98DO+では使えませんがV33Aが4Mか16Mの
メモリ空間を扱えたと思います(^^;


DO+

Saiey さんのコメント
 (1998/1/19 16:08:59)

むぅー。μPD型番はよくわからない・・・(T-T)。

で、なぜ386より速いんですか?・・・って、単にCPUが速いってことで良いんですか?
複数CPU積んでるから同時に動かして・・・とか。


BASICでの互換性

ma3 さんのコメント
 (1998/3/5 14:51:58)

PLAY文の扱いとかも違いますが、一番気になる違いはキースキャンポートかもしれません。
INP関数でテンキーとかからキースキャンするとき、88のハードではI/Oポートから直接入力しているのを、98のN88(86)-BASICでは88の機能に相当するものをわざわざBASIC側でエミュレートしていました。
そのアドレスが、98の都合上か、88とはずれていました。


BASIC

現役BASIC さんのコメント
 (2002/01/05 18:19:44)

N88-BASIC(86)とN88-BASICはAUTO文からしても違う。
二つ並べて使ってるといろいろ解ってくる


BASIC

現役BASIC さんのコメント さんのコメント
 (2002/01/26 15:07:17)

そしてWRITE文にいたる。


何故早いかと言うと

t-ohara さんのコメント
 (2004/07/08 20:09:57)

>で、なぜ386より速いんですか?
同一クロック動作時、286と同じかそれ以下のクロック数で命令を処理できるから;-)

つか、リアルモードだと386より286の方が高速ですし。


コメントする


なまえメール
WWW
タイトル
コメント
参考
リンク
ページ名
URL


[HOME] [TOP] [HELP] [FIND]

Mie-BBS v2.14 by Saiey