Biography

私のコンピュータ自叙伝

ファミリーベーシック

小学校2年のときに、父親が買ってきた「ファミコン」と「ファミリーベーシック」が、コンピュータとの出会いでした。父親が遊んでいるBASICに興味を持って、自分でもさわりはじめました。はじめてBASICで組んだプログラムは画面上を「マリオ」がゆっくり移動するものだったような気がします。自分で組んだプログラムがちゃんと動いてくれたのがとても嬉しくて、それ以来、当時数少ない参考書や雑誌を読みながら少しずつBASICを覚えました。なにせ、小学生で周りに教えてくれる人なんかいないもんだから、大変でした。関数の概念や、負の数を理解するのとか、16進数なんか理解するのにとても時間がかかりました。

MSXとZ80アセンブラ

宝物・マシン語入門

小学校高学年になると、さすがにファミリーベーシックじゃ物足りなくなってきて、当時友達が持っていたMSXに興味を持ち始めます。6年生くらいのときに貯金をはたいて、MSX2を購入しました。松下の「A1-F」という当時ちょっと高めのFDD付きモデルです。中学に入って、同じくMSXを持っていた友達と「ゲームを作ろう」なんていって、Z80のアセンブラを勉強しはじめました。地元の本屋を何件も探してやっと購入した入門書、「くじけちゃいけない マシン語入門」のPart1とPart2と、なけなしの金をはたいて買った「MSX2テクニカルハンドブック」は、手垢がつくほど読みました。中学時代はひたすらZ80アセンブラでしたね。MSX-DOSでDOSというものにはじめて触れたのもこの頃です。

PC9801とC言語、8086アセンブラ

当時の愛機PC-9801FX

中学3年はなんとなく入った地元の塾がとてつもなく厳しいところで、1年間、ずっと勉強してましたね。プログラムからはしばらく離れてました。高校に入ってからも中学から続けていたバドミントン部に再び入ったので、練習が忙しくて以前ほどは触らなかったように思います。それでも、暇な時間を見つけては、当時父親が使っていたPC-9801を使うようになり、少しづつC言語なんかを覚えていきました。BorlandのTurboC++が最初に買った処理系でした。Cと平行して、8086のアセンブラもやりました。当時、MS-DOSの常駐プログラムに興味を持って自分で組んでみたり、ゲームの改造をしようとしてみたり、ウインドウシステムを作ろうとしてみたこともありましたねぇ。当時、やっとWindows3.0がでてきた頃でした。とにかく、この時期にC言語を一通り使えるようになり、MS-DOSの内部構造なんかも大体わかるようになりました。C++もちょっとかじったんですが、オブジェクト指向がなかなか理解できなくて何度となく挫折しました。

浪人時代、ブランク

高校のときに遊びすぎたせいで大学受験に落ちて浪人、1年間駿台千葉校のお世話になりました。このときばかりはかなり勉強しましたねぇ。1日10時間くらい、朝から晩までやってました。今考えれば不思議です。とにかく、1年後、なんとか今の大学に入ることができたわけです。この間は、ほとんどコンピュータに触りませんでした。大学へ入ったら、マシンも入学祝いでWindows95がバリバリ動くものを買ってもらい、そろそろWindowsアプリケーションでも組めるようにしたいと思っていたのですが・・・。

なぜか再びZ80アセンブラ

たまたま入ったサークルが、私のプログラム人生を大きく変えてしまいました。当初はソーラーカーを作っているということで、「ソーラーカーやってるんならコンピュータを使う機会があるかな」程度で入ったのですが、こいつがとんでもなかった。
電気班というところで先輩が格闘していたプログラムは、もはや使うことはないだろうと思っていたZ80アセンブラだったのでした。なんでも、ソーラーカーの状態を自動で記録する「データロガー」というものを創ろうとしているらしい、こいつぁ血が騒ぐぜ、ということでずるずると深みにはまってしまったのです。

タイミングチャートとの格闘

先輩に渡された本を読んで、今度はZ80の周辺LSIの勉強をはじめました。CTC、PIO、SIOなどなど。割り込みを使ってLEDを点滅させる、通称「ナイトライダー」をつくることからはじめました。最初の大きな仕事は16×2行表示のLCD(秋月で売ってるアレです)をアセンブラで制御することでした。当時は、サンプルプログラムとかなかったんで、付属の2枚くらいの仕様書がすべての資料でした。
最初はけっこう単純に考えてたんですが、こいつがなかなか言うことを聞いてくれない。まだ見慣れないタイミングチャートを見ながら、「えーと、このコマンドを送ってから400ns後に・・・」なんてやってました。プログラムの実行時間に以上に気を使うようになったのはこのころでしょうか。今では、Z80の主な命令の実行ステート数はそらで言えるようになってしまいました(病気だよ、これは)。
なんのかんので、この液晶を征服するのに1ヶ月以上かかったと思います。この間、なんど学校で徹夜したことか。で、LCDが動いたときに当時副主任だった山田さんという方が詠んだ歌を紹介しましょう。

「このドットがいいね」と君が言ったから 6月17日はLCD記念日

Z80用自作OS

で、いろいろあって1年後の97年にZ80を使用したソーラーカー用車載コンピュータシステムが形になってきました。液晶もドットマトリックスタイプのものに変更し(このあたりは完全な趣味ですが)、ドライバも書きました。A/Dコンバータやら割り込みやら拡張メモリやらを制御するルーチンをひたすらアセンブラで書きつづけ、それらをOSの形にまとめました。ハードウエアをアクセスする部分はOSがすべて受け持ち、アプリケーションはハードウエアを意識せずにすむ、というものです。名称はサークルの名前(Meister)から、MeiOSとしました。OSを創るのはMS-DOSを勉強していた高校時代に、漠然と抱いていた夢だったんですね。

MeiOSタイトル画面 メイン画面
...to be continued.
Back

E-mail : webmaster@littleforest.jp
Copyright (c) 1997-2013. Y.Komori, All rights reserved.