ステップアップ

 (2011年1月28日 補足1 補足2が入りました)  戻る 次へ



当時読んでいた雑誌【月刊RAM】1982年2月号

当時はプログラムのことばかりを書いている初心者向けの雑誌ばかりを読んでいたため、ICEの存在やROMエミュレーターの存在を知りませんでした。

でも、CPUは8080Aに代わってZ80が主流になりつつあるのは感じていましたので、開発マシンを替えることにしました。
 『開発マシンって……。おおげさ~』
ゲームを作るための機械ですから、開発マシンでいいんじゃないですか。



Z-80
(筆者撮影)




とにかく当時のパソコンでできることはゲームで遊ぶか、ゲームを作るかあるいは何らかのプログラムを組むしかありませんでした。

実務に使われていた人もいたかもしれませんが、いまのようにワープロになるわけでも無し、表計算ソフトはありましたが、とても実用的ではありませんでした。プリンターもフロッピーも超お金持ちしか手にすることはできない時代です。


 ただ、筆者の場合、運良く家の中に業務用のゲーム機の基板が転がっていたのですから、パソコンを利用してそれをいじるという流れは自然でしょう。
 『まぁ、そうかな……。 でも、誰かに教わるわけでもないでしょ』
 確かに人に教わることはできませんでした。というか、まだみんなが手探り状態でしたからね。ネットでもあればおなじ仲間が集まって、ワイワイやることもあったでしょうが……。

とにかく、本は読みまくりました。読めば読むほどわけがわからなくなることもありました。それほど、情報が未成熟だったんだと思います。

そんななか、世の中は2回目のパソコンブームで、TK80BSからみるとかなり高機能なものが出回っていました。そこで、次の開発マシンの候補に上がったのは〝PC6001〟でした。値段が手ごろでTK80BSと比べると高級感がありましたので、つい衝動買いをしましたが、フタをあけてみると、これは完全にオモチャでした。



NEC 【PC-6001】 本体価格:89,500円
ひらがな表示機能と三重和音可能なシンセサイザー搭載
(月刊RAM 1982年2月号より)




〝PC6001〟はパソコンをやり始めた知り合いにすぐに売り払い、遠回りをしましたが〝PC8001〟を購入しました。
 『もったいないなぁ』



NEC 【PC-8001】 本体価格:168,000円
標準実装RAM16Kバイト(32Kバイトまで拡張可能)
(月刊RAM 1982年2月号より)


PC8001に換えたのは正解でした。やはりメモリーの多さと拡張性のよさはPC6001とは異なっていました。

 PC8001の後ろには、パソコンと外部機器をつなぐための〝外部バス〟と呼ばれる信号が出ているコネクターがあり、自作の機器を接続させることができました。いまでいうPCIバスのようなものです。構造ははるかに単純で、ある程度の知識があれば利用することができました。




1982年当時の広告
(月刊RAM 1982年2月号より)






2011年1月28日 補足1

PC-8001 と、最新パソコンとの比較を "2010年6月25日「お宝ゲッツ!」"で行っています。興味のある方はご覧ください。










PC8001の内部(電源ユニットは外してあります)
撮影:2010年6月25日
(筆者撮影)








2010年11月に発見された PC8001ユーザーズマニュアル





PC8001ユーザーズマニュアルの目次部分



2011年1月28日 補足1 はここまで





この拡張性のよさがうけたのか、この機種はあっというまに世間に広がりました。
 『ヒット機種というわけね』
持っている人が増えると、当然、このパソコンに関する書籍類も情報も増え、筆者の謎だった部分がどんどん解消されていきます。


さらに運がよかったのは、拡張RAMがゲーム機に使用されているRAMとおなじものが使われていたため、フルRAM実装にするのにお金が1円もかかりませんでした。それから、専用モニターもゲーム機のモニターがそのまま利用できたため、これもお金がかからずステップアップできました。
 『うゎ、超うらやましぃ状態……・・』





【1980年初頭の筆者のパソコン】

これは、なんとも恥ずかしい写真ですね。TK80BSを使っていたころの写真です。
『なんだか大がりですねぇ』
そう見えますが、真ん中のモニターは12インチの白黒モニター、その左右はナント電卓です。
『でっか! 電卓とは呼べないでしょ』
キーボードはTK80BSのキーボードとTK80の16進キーボードを本体からはずして、アクリルパネルにはめ込んであるだけです。そして、キーボードの右横にあるのもレシート印刷のできる電卓です。

『ぎゃははははは。ようは、ガラクタの寄せ集め?』
ですねぇ。何もいえませんねぇ。ただ、恥ずかしいだけです。


でも、このパソコンでゲーム機のプログラムをしていたんです。モニターの右横電卓の奥にモヤモヤと見えているのが、ゲーム機のボードだったと思います。
『このガラクタで、とりあえずはプログラムを組んでいたの?』
そうです。でも当時としては一応最新でした。ただ、ターゲットにするゲーム機を替えるとなると、このシステムではもう限界でした。そこで、パソコンをPC8001にしたのです。

『ふ~ん。そうやろね。このガラクタではね……』
うっさいなぁ!もう~。
ガラクタ、ガラクタというなよ!
『で、このガラクタを捨てて次のステップに上がれたの?』
     :
     :
     :
     :
     :
いや、このあとに次の壁が待っていました。

 プログラムに関する情報は徐々に増えてきているのですが、ハードに関する情報、パソコンではなく内部で使用されている部品についての情報があまりに専門的過ぎて、当時の筆者の頭では理解不能でした。

デジタルICの使用方法なんて電話帳ほどもある英文の文献でした。専門店で見つけましたが開いてみてすぐ閉じました。
 『あははははは……・・』
 ………………・・。

パソコンとゲーム用機器をつなぐには、ハードに関する知識があまりに貧弱でした。

 『なんで、そんなにハードのことが知りたかったの?』
そもそも、なぜそんなにハードの知識が必要になったかといいますと、いままでのプログラムの方法では効率の悪さが前面に出て、とても実用的ではありませんでした。TK80でプログラムを作って、ROMに焼いて、それをゲーム機に差し込んで、バグが出たらもう一度焼いて……。の繰り返しでした。

 こんなやり方では数Kバイトのプログラムを組むのが精一杯なのと、業務用ゲーム機もZ80を使う時代に移っていましたので、次のターゲットになるボードを解析するには高度なハードの知識が必須でした。

 モトローラの6809というCPUを使ったのもありましたが、開発マシンにZ80を使用したPC8001を選びましたので、必然的にゲーム機もZ80のものに絞られていました。

しかし、Z80といわれても、プログラムに関してはそこそこ知識はありましたが、ハードについてはほとんど無知でした。

そんな時、本屋さんで写真の「Z80の使い方」という本を見つけて開いてみたところ、目からウロコ状態でした。
むずかしい概念はまったく書かれておらず、イラストとやさしいことばで説明されていました。しかし内容は濃く、知りたかったことがすべて書かれていました。

よく、いい本に出合えることは一生の宝といいますが、まさにそのとおりです。霧が晴れるように、わからなかったことが解けていきました。
 『ふ~ん。考えさせられるんねぇ』





筆者のZ80のバイブル【Z80の使い方】



2011年1月28日 補足2

そしてこれが PC-8001の幻のバイブルです。現在では古書の分野に入っています。もう手に入れることはできないとか……。





【PC-8001 マシン語活用ハンドブック】






【PC-8001 マシン語活用ハンドブックの目次部分】


微かな記憶をたどりますが、たしかこの解析本にNECがクレームを出したと思います。そんなニュースを見た気がします。でも、結果はこの本のおかげでたくさんの人がBASICからマシン語へ切り替えることができて、PC8001はバカ売れの機種になり第二次パソコンブームを引き起こしました。やがて、ソフト類(いまでいうアプリケーション)が充実し始めて多種多様のものが出てきました。
 その中には自作派のためのデバッグツールも出ており、ここで初めて逆アセンブラワンパスアセンブラを購入しました。


2011年1月28日 補足2 はここまで



TK80時代の開発支援ソフトのうち、逆アセンブルは本体のモニタープログラムに付いていましたが、アセンブラ言語をマシン語に変換するものがなく、今の人には信じられないと思いますが、人間がそれを手作業で行なうのです。いまでは消滅していますが、ハンドアセンブラと呼ばれるもので、まるでマッチを使わず木をこすって火を起こすようなものでした。
 『原始人? すごいねぇ』
 おかげで、よく使っていたマシン語は16進数で直接入力できていました。
 ”LD A,03H”なんて、”3E 03”と、いまだに意識しないでも出てきます。
 『人間、苦労するもんだ』
 ほんと、苦労はお金を払ってでもするもんです。
 『あんたの場合、払いすぎ』

ハンドアセンブラと比べるとワンパスアセンブラでも各段と解りやすくなります。
直接、16進のマシン語で、
  3E 03
  21 FF 3F
などと、入力するよりも、
  LD A、03H
  LD HL、3FFFH
の方が確実に解りやすいですし、デバッグ作業が極端に楽になります。
 『また、むずかしい話を始める……』

当時アセンブラは高級なツーパスアセンブラと安価なワンパスアセンブラがありました。

ツーパスアセンブラというのはジャプ先やメモリーの番地をラベル名で書き、アセンブルとリンクが自動的に行われ、実アドレスのことは意識しなくてすむものです。
それとは逆にワンパスアセンブラは、アセンブルする時に初めから実アドレスを自分で(人間が)考えながらプログラムに直接書き込んでいくものです。
 『おぉ~い。また、自分だけの世界に入ってるよぉ~。日本語でしゃべってくれ』

当然、ツーパスの方が製作効率も、あとのメンテナンスも比べ物のにならないほど楽なのですが、高価だったのと悲しい事に知識が少なくそれほど必要だと思っていませんでした。

命令と命令のあいだに別の命令の追加が必要になり、ジャンプ先の番地に変更が起きてもジャンプ先をすべて手で書き換えればいいと思っていました。それに少しは知恵もあって、命令の追加が起きそうな所は、NOP命令(何もしない命令)を必要なだけ並べて対処していました。
 『何いってるか、さっぱりわかんない』
早い話、プログラムを組むのがだいぶ楽になってきたということ。ただ、お金が無くてもっと高級なものは買えなかったので、何とか知恵を絞っていたということです。
 『あぁぁ。いまとおなじということか』
 ………………。


 とりあえず、開発支援機はPC8001に落ち着き、次に開発用のマザーボードを決めることにしました。選んだのは2枚組みで大きさ25cm×20cmほどのNAMCOのパックマンの基板にしました。
 『おぉぉ。パックマン知ってる。よく遊んだよ』