資料 「過去の遺物 ポケコン編」

 最近、ポケコンを見かけなくなった。工業高校などでは現役らしいが・・・。

 私は高校生の頃、ポケコンにはずいぶんハマった。授業中という事も忘れて、いじくり回していた。いま思えば
なんてバカだったんだろう。授業をちゃんと聞けよって、タイムマシンがあったら自分を叱りに行きたい(笑)。

 ポケコンは、中学の頃からのつきあいだった。最初は友達が持っていたカシオPB−100で、そいつがPB−80も買った
ので借りて遊んでいた。うそくさいゲームを作ったりしていた。
 工業高校に入学した時、シャープのPC−1417Gを教材として購入した。カシオとシャープでは、BASICの文法など異なる
部分が多かったが(カシオの方が特殊だったか?)、使っているうちにシャープに慣れてしまった。
 ちなみにPC−1417GのGは、学校向けの意味らしい(GAKKOのG)。



1. パスワード解除法
 このポケコンは、BASICプログラムに、PASSコマンドでパスワードをかける事ができた。パスワードをかけると、プログラムの読み
出しや、消去ができなくなり改竄から保護されるわけだ。
 それで、たぶんメモリのどこかにパスワードが記憶されてるんだろうなあと思って、探索プログラムを走らせて調べた。確か、学校
帰りに島原駅でRUNして、多比良か、神代あたりでアドレスが見つかったような気がする。
 パスワードと同じ文字列をメモリ上サーチする仕掛けになっていた。最初の1文字だけ見てたかな。一致したら、そのアドレスを
表示して、そこでPOKEやPEEKしてパスワードかどうか手動で確認して、違ったらプログラムを再開するやり方だったかな。

 その後の後継機種では、パスワードがかけられているとPOKEやPEEKコマンドが使えない仕様になった。まあ、それでも解除する
方法が無いわけではない。
 解除する価値があるかどうかは、また別問題だが・・・。


2. 中間言語コード
 BASICのコマンドは、たとえば PRINT をそのままメモリに記憶すると5バイト必要だが、PRINTが1、INPUTが2のようにコード化
されていれば、1バイトで済むし処理速度も速い。これを中間言語などと呼んでいた。
 10 : のようにプログラムを入れておき、:のアドレスを調べ、そこへPOKEで0〜255の数値をひとつずつ書き込み、そのつどリスト
を見て、何番がどのコマンドか対応を調べて、次のような表を作った。
 まったくヒマ人としか言いようがない(自分だろ!!)。

 210〜215のコマンドの筆跡が違うが、誰かに作業をたのんだのかなあ・・・?


3. プログラムはRAM内にどのように記憶されているか。
 これもヒマだなあと思う。1バイトずつ読み出して、いちいち意味を調べていた。
 ここでさっきの、中間言語コード表とあわせてみてもらいたい。



4. 文字データ作成法
 ポケコンの表示は文字が主体であり、5×7ドットのマス目で1文字を表示していた。
 だが、直接メモリに書き込む事で、自由に定義したパターンを表示することもできる。そのデータ作成法をまとめたものがこれ。

 ヒマ人が、授業中に、ボール(ドット)が、5×7のマス目の中を飛び跳ねるアニメーションを作って見せてくれた。そのうちに、
画面をめいっぱい使って、ブロック崩しのようなアニメーションにまで発展した。
 サイン波が、うねうねと流れるようなアニメーションを作った奴もいた。これは計算してやってるんじゃなくて、POKE文のパターン
を繰り返しているだけだが、データ作るの大変だったろうなあと思った。
 (実際にデータを作ってみると、これがなかなか、ハマるんだよね)


5. 数字表示器
 外部に7セグのLEDをつないで表示させようというものである。何の役に立つやら不明だが、とりあえず制御の入門編と
いうことで作ってみた。
 BASICにはOUT命令があり、0〜7の数字を指定すると、3ビットのポートを操作する事ができた。

 しかしこの回路、ヘンだな。なんでトランジスタを入れてるんだろう。
 最初、リレーや、単体のLEDを制御する回路だったのかもしれない。それならわからないでもないけど。
 あるいは、ポケコン本体を保護するためのバッファの意味かもしれない。
 しかしトランジスタによって論理反転してしまう。7447の入力をプルアップしてないのも妙だな。まあTTLは、入力開放だと
H入力と見るから、これでいいのか・・・。


6. ポケットサウンドジェネレータとソフト音源
 「ラジオの製作」で、電子オルガンの製作記事をみたのがヒントで、それならポケコンにつなげてしまえと思った。
 但し、0〜7のうち0は無音にしないといけないから、7音しか出せない(ドレミファソラシ)。

 だいたいPC−1417Gは、ブザーが付いていなかった。たぶん生徒が授業中にピーピーやらないように配慮されたのかも
しれないが?
 だが、BEEPというコマンドが実行できたし、CLOADやCSAVEコマンドも動作したから、おそらく何かしらポートに出ていると
思って、ブザーを付けてみたくなった。
 分解してみると、確かにブザーが付けられるような場所があった。ここに、ゲームウォッチからはがしたブザーをはりつけて
BEEPを実行したらピッと鳴った。CSAVEだとピーーーーーーギョギョギョギョギョギョギョと鳴った。
 学校でみんなに見せたら、改造してほしいと何人も頼んできた。確か、ゲームウォッチの壊していいやつをもらう約束で、
改造を受けていたと思う。
 いたずらとしては、FOR〜NEXTのループが何分ぐらいか計算しておいて、設定時間にBEEPが鳴るようにプログラムを組み、
こっそり授業中に鳴り出すように、友達のポケコンに仕掛けておいたりした。

 ところで当時は、BEEPしか出せないと思っていた。ソフトで音階を出すには、マシン語でプログラムを作るしかない。しかし、
ポケコンのマシン語がわからない。Z80じゃなくて、シャープ独自のCPU、SC61860が使われていた。
 そこで、外付けハードウェアである、ポケットサウンドジェネレータを作って、音楽を演奏させようとしたわけだ。

 当時、ポケコンジャーナル(PJ)などの雑誌があったが、めったにPC−1417Gの記事は載っていなかった。
 ダメもとで、似たような機種のプログラムを入れて試したら、ソフトだけで音楽演奏ができるようになった。
 音階を出すルーチンだけ抜き出して、キーボード最下段のzxcvbnmそしてspc(スペース)がドレミファソラシドに対応するように
BASICで電子オルガンプログラムを作ってみんなに配ったりした。
 そのプログラムを次に示します。感熱紙なので消えかかっていました。補正してどうにか読めるようにしましたが、いまさら試す人も
いないから、これで良いでしょう。

 このプログラムにより、ポケットサウンドジェネレータの使命は終わった。


7. メモリ増設
 PC−1417Gは、初期状態ではRAMが8KBしかない。
 でも、ひょっとしたら増設できるんじゃないかと思ってバラしたら、もうひとつRAMを実装するパターンがあった。これまたダメもとで、
当時珍しかったSOPパッケージの6264を注文して、ハンダ付けした。初めてのSOPハンダ付けだった。
 だがそれだけでは16KBにならず、それらしいハンダジャンパーの組み合わせを片っ端から試して、ようやく16KBにできた。


8. キーボードかさ上げ
 このポケコンのテンキーは、押し込みがけっこう深く、高速で操作しにくい感じを受けた。
 それで分解して、キーの裏側に紙をはさむことで、押し込みを浅くして、チョンチョンと触れるだけで入力できるよう改造した。
 紙切れじゃなくて、小さい丸シールのほうが貼りやすかったのではと、いま思う。


9. 暴走族
 CALLコマンドで、適当なアドレスを指定して、どうなるか運を試すゲーム?
 学校帰りの列車の中で、マニア友達同士、交代でやっていた。
 CALL &123  (このポケコンの場合、16進数は&Hではなく&とする)のように打ち込んで、どうなるか?
 これをやっていて、面白い事も発見した。あるアドレスをCALLすると、ピーと連続音が鳴ったりした。また別のアドレスでは、音の
高さが違っていた。こりゃ面白い。
 電源が消えるアドレスもあったような気がする。
 まあ、たいていの場合、 ■■■■   ALL  RESET   ■■■■ になったが・・・。それと無反応(暴走状態)。


10. テトリス
 PC−1417Gではなく、この後継機種(1年後輩)のPC−G801用だが、テトリスを作った奴がいた。
 遊ぶときは、ポケコンを縦にして、テンキーで操作する。
 フルドット画面ではないので、文字の間は切れ切れで見づらかったが、とりあえず遊ぶことはできた。
 このプログラムを後輩に送ったら、学校でみんなコピーしまくって、教材のポケコンが、総ゲームボーイ化してしまった。


11. プログラム転送
 ポケコン同士を接続して、プログラムなどを転送するには、確か、3ピン同士をまず接続して、あと、送信側は?ピンと受信側は?ピン
を接続する。それで、送信側がCSAVE、受信側がCLOADだった。
 悪いことを考えるもので、試験の前に公式なんかをポケコンに入れていた奴がいた。その内容を、休み時間に転送しているのを
何度か見かけた。ブザー改造がしてあると、ピーギャギャギャーと鳴るのですぐわかる(笑)。
 通電するなら何でもありという事で、器用にシャープペンシルの芯でつなごうとしている奴もいた(笑)。


戻る