今回もちょっとマニアックですが、 高校生の時に作った「よみあげくん」をご紹介します。
打ち込んだプログラムを読み上げてくれたら便利じゃね?と思って作ったプログラムです。(NECのPC-6601用)
おいおいあっきーさん、なんで最近みんなが知らないようなよくわからんパソコンのネタを書くんですか?と思われるだろうと信じていますが(笑)
最近PC-6001エミュレータでの開発などが面白いのと、再現が難しいとされていた音声合成が実装されたので、今まで日の目を見ることのなかった自作ソフトがようやく無駄にご紹介できるんです!
制作したのはたしか高2か高3ぐらいですが、 アスキー出版の「PC-6001マシン語入門」と 「PC-Techknow6000 Vol.1」と 「Mr.PC techinical collection」などなどの数少ない雑誌たちを眺めて独学でプログラミングしていました。
だって…。教えてくれる人なんていなかったので…
そうかー、当時の段階でインターネットがあれば多少は楽だったかもー
いやいやいやいや、
おいらの村にはそんなものはなかったでゲス。
そんな便利なものはなかったでやんすw
そんな私を困せたのはtalkルーチン(しゃべらせる方法)の場所と使い方などの詳細がわからなかったので、PC-6601やPC-6601SRのBASICインタプリタROMをかいつまんで直接逆アセンブルして解析してました。
BasicインタプリタRomといえば16進数の塊です。こんな感じの呪文が2000行以上続きます。
これに挑む感覚は「漢字をほとんど知らないのに、すごい長文のお経の原文を読んでいる感じ」とか「子供用三輪車で世界一周する」とか、「ビルゲイツの大豪邸にある石を1つ1つ観察する」とか、そんなノリです。
この正体不明のROMの一部を解析して「おおっ なるほど!」と 叫んでできたのが「よみあげくん」です。basicリストを読ませるのだから、もちろんオールマシン語で作成しています。
(※ここではニーモニックで記述)
まあ、こんなかんじでずっとプログラムを組んでいきました。
余談ですが、当時ウチの高校でこんな感じでプログラムを組めるのが 私以外に2人いました。
そのうち1人はNECのPC-9801VMでYs3のような多重スクロールを再現し、 もう一人はMZ-700でSEGAのアフターバーナーもどきを作って、360度ぐるぐる回転させていたんです。
そりゃもう、電波ソフトから「Tiny AfterBurner」として 発売して欲しいレベルだったよ…
(「回転ですか? 行列変換の応用ですよ」とさらっといってた彼はその後、スーファミのデスブレイドのメインプログラマーをしてた)…と、ちょっと脱線した。
まあ、この「よみあげくん」は技術的にはかなり苦労して作ってみたけどしゃべりが遅くて使い物にならかったので、作っただけで全く使わなかった、というのはナイショであります。
※今回の記事はBernieさんのPC-6001VW3エミュレータを使って書いております。
(エミュレータ内のひらがながローマ字入力出来るところが最高に便利です)
(追記@150628)
よみあげくんのソースリストを公開して!
というリクエストにお応えして 裸になる思いで公開してみます。ソースリストはこちら。
※著作権は主張しません。
「何だこの呪文w」とか、ここは普通こういうプログラミングはしないだろが」など、こっそりみてニヤニヤして下さい。