見出し画像

コンピュータ今昔物語3~NEC パソコン PC-8001とN-BASIC

今は昔、コンピュータが計算機と呼ばれていたころの物語
前回:前史:プログラム電卓 FX-502P
次回:ミニコン OKITAC system50と紙カード


NEC パーソナルコンピュータ PC-8001

今は昔、パソコンが専門店で販売されていた1980年のころ、NECのPC-8001をNEC Bit-INNで手に入れました。ここではPC-8001を見ていきます。

PC-8001の仕様

PC-8001はキーボードと本体が一体型のパソコンで完成品でした。標準で168,000円でしたが、私は16KB増設RAMと12インチのグリーンディスプレイを購入し、合計で20万円以上になりました。

PC-8001の仕様としては、CPUに4MHzのZ80互換が搭載され、RAMは16KB増設して32KBにしました。プログラムの外部記憶はカセットテープで行うようになっていました。

PC-8001にはOSはなく、電源を入れるといきなりN-BASICが起動します。漢字ROMは非搭載のため画面には英数字と半角カタカナのみで80桁×25行が表示でき、グラフィックは160x100ドットの8色表示でした。

PC-8001の困った点

次にバグや困った仕様を見ていきます。

(1) N-BASICの文字落ちバグ
N-BASICのプログラム入力時に80桁目の文字が入力されないというバグがver1.0のときにありました。私の買ったのもこのver1.0で、このバグに対応するには2回改行キーを押下することが必要でした。そこでファンクションキーに改行キーを2回押下する設定をし、改行キーの代わりにファンクションキーを押すようにしました。
なおver1.1でこのバグは修正されましたが、今のようにアップデートは簡単にはできず、このバグとはずっとつきあうことになりました。

(2) カセットテープからのロード(CLOAD)で失敗
PC-8001ではプログラムをカセットテープに「音」として録音してセーブしていました。録音したカセットからプログラムをロードするときに、失敗することがありました。ボーレートは600ボー(600bit/s)なのに失敗します。
そこで録音レベルを調整して、ロードに失敗しないようにする必要がありました。

(3) 色表示の変更回数制限
これはバグではありませんが、VRAMの仕様の制限のため、1行当たりの色表示の変更回数は20回しかできませんでした。なお私はグリーンディスプレイを使っていましたので、気になりませんでした(気にできませんでした)。

(4) グラフィック表示
1980年に購入したときは気にならないように努めていましたが、やはりグラフィックが160x100というのは後発のPCと比較して(特にゲームが)弱いです。
ハドソンからキャラクタージェネレータという文字グラフィックスを自由に変更することで、結果として高精細な画面表示をする装置を販売していました。たとえば文字をインベータのグラフィックに変更することで臨場感が増します。

N-BASICは大規模プログラムに不向きだけどかわいい

(1) N-BASICは大規模プログラムには不向き
N-BASICはプログラムの先頭に行番号を付けて管理します。コマンド実行とプログラムの違いは先頭に行番号があるかないかになります。しかしこれは行番号をプログラミング前に付ける必要があり、大規模プログラムにおける変更などに対応しにくくなります。

N-BASICはマイクロソフトのBASICですが、言語的にはサブルーチンの引数や返り値、名前の概念がなく、局所性がありません。このため構造化プログラミングも(気をつけないと)困難でスパゲティプログラミングになりがちで、大規模なプログラムに向いていません。

またN-BASICの変数は先頭2文字だけで識別する強い制限があり、これも大規模プログラムには不向きです。

N-BASICは実行効率のためにマルチステートメントで1行のコードが長くなりがちで、この結果、読解性に劣ります。これも大規模プログラムに向いていないことになります。

(2) N-BASICは気軽にプログラミングできるかわいいやつ
しかし気軽にプログラミングするときはN-BASICは使えます。電源を入れると直ぐにN-BASICインタプリタが起動して、直接コマンドを実行することもプログラミングすることも直ぐにできます。変なおまじないや呪文は不要です。

PC-8001のライバルたち

当時はシャープのMZ-80や日立のベーシックマスターLevel2、そしてNECのPC-8001が御三家と呼ばれていました。しかしベーシックマスターは私の周りでは誰も持っておらず論外でした。

そこでやはりライバルはシャープのMZ-80シリーズです。私は周りと比較して早期に買ってしまったため、後から購入した人たちはいいものを買っていました。

MZ-80KならPC-8001は勝てたと思っていたのですが、MZ-80Bは(高価ですがその分)高性能でした。グラフィックスは精細で320x200もあり、テープレコーダが内蔵され2000ボーでエラーなしでロードできました。それになんと言っても64KBクリーンコンピュータでHu-BASICなどの処理系も動作できました(別にうらやましいわけじゃないんだから!)。

御三家のパソコンは、当時でやはり20万円級になりましたが、10万円級のパソコンとしては、VIC-1001やFP-1000などがありましたが、アプリ(当時は単にプログラム)はありませんでした。それに安かろう・・(以下略)。

PC-8001のプログラミングと打ち込み

(1) N-BASICプログラミング
PC-8001では標準搭載のN-BASICでプログラミングします。機械語を直接入力することでプログラミングもできました。なおアセンブラや逆アセンブラはサードパーティから(高価な)別売りでした。

PC-8001は最初の状態ではN-BASICインタプリタしか入っていないので、プログラミングするか、前にカセットテープにセーブしていたプログラムをロードするかになります。

そこでPC-8001を買った人は、プログラミングします。それもゲームプログラミングします(特に大学生は)。それも素人向けの「キャラクターゲーム」です。なおキャラクターゲームといっても、キャラクターが登場するのではなく、文字(キャラクター)ベースのゲームプログラムです。

最初は「スロットマシン」から始まり、トランプのスーツが文字としてあったので「七並べ」などのトランプゲーム、少し慣れてくると「迷路ゲーム」、さらに進むと「ガンアクション」などのアクションゲームを作ることになります。

おもしろいプログラミングとして、1行プログラミングがありました。N-BASICはマルチステートメントであり、1行255文字でどれだけプログラミングできるかというものでした。

逆に複数のプログラムを1本のプログラムにして、「RUN 行番号」で個別に動作する便利ツールも作っていました。

(2) プログラムの打ち込み

一方でパソコン雑誌に掲載されているプログラムを打ち込んでいました。当時は「アスキー」や「マイコン」、「RAM」、「I/O」のマイコン雑誌にBASICプログラムが掲載されていましたが、1980年ではまだN-BASICのプログラムは多くなく、他の機種のBASICプログラムを移植する必要がありました。レベル2ベーシック(日立 ベーシックマスター Level2のBASIC)やOKI-BASIC(OKI if800のBASIC)などのプログラムをN-BASICに移植していました。このおかげでBASIC全般を覚えることができました。

その後はN-BASICが主流になり、プログラムの打ち込みに困ることはなくなりました。また1982年くらいになるとプログラムの多くは機械語になり、打ち込みは単純な機械作業となり、面倒なものになりました。機械語の打ち込みに失敗したときのデバッグが大変でしたが、おかげでZ80の機械語(ニーモニックでなく機械語そのもの)を覚えることができました。CD~C9(CALL~RETURN)などを覚え、これはハッキングの役にも立ちました。

これらのおかげでプログラムをセーブしたカセットテープは50本くらいになりました。

あとがき

今回はNECのPC-8001の話でした。当時、グリーンディスプレイを買ったのは正解だったと思います。その理由はゲームに嵌らず、日常生活系やビジネス系などのプログラムの比率が多くなったんじゃないかなということです。

PC-8001のN-BASICは気軽にプログラミングできました。プログラミングはなによりもこの気軽さが大事です。

(参考)参考文献

コンピュータ今昔物語

(1) 前史:マイ・コンピュータ入門とTK-80
(2) 前史:プログラム電卓 FX-502P
(3) パソコン PC-8001とN-BASIC (本記事)

関連NOTEマガジン

エッセイ:エンジニア未来日記
現代ソフトウェア開発読本/プログラミングの掟/プログラマ日常
ソフトウェア開発マンガFAQ
プログラミングの掟
笑撃!プログラマの日常ドラマ

Facebookのグループ紹介

ソフトウェア研究会「とある技術のソフトウェアエンジニアリング」
DX研究会「とある技術のデジタル変革」

いいなと思ったら応援しよう!

五味弘 よろしければサポートをお願いします!