ITproTechメールを担当する私の自己紹介,というかPC歴をご紹介したいと思います。

 当時「マイコン」と呼んでいたPCに初めて触れたのは1981年でした。そのころは日曜日になるたびに,東京・秋葉原のラジオ会館にあったビットイン(NECのショールーム)に通い,PC-8001という機種を使っていました。

 その後1982年にPC-8801を購入し(正確には買ってもらい),雑誌に掲載されていたプログラム・リストを必死に入力して楽しんでいました。このようにしてBASIC言語は自然に覚え,同時にマシン語(Z80)の学習もこのころから始めました。当時のPCユーザーはみんなプログラマでしたので,私もその例に漏れず独自のプログラムも作って楽しんでいました。プログラム・リストはプログラミングのよい教材ですが,最近ではプログラム・リストが掲載されている雑誌が減り,プログラミングの学習環境としては当時よりも悪くなっているような気がします。

 この後,NECのPC-9801を購入したのは1985年のことです。それまでPC-9801VM2という機種がロング・セラーを続け,数年間新機種が出ていませんでした。そろそろ新しい機種が出るだろうと待ちに待って,登場したのが8MHz動作の80286を搭載したPC-9801VX2でした。これに飛びついたわけです。するとすぐに,10MHz版のPC-9801VX21が発売され,悔しい思いをしたものでした。

 PC-9801向けには,当時様々なコンパイラが出ていました。Cインタープリタの「RUN C」というものもありました。その中で,確か9800円と安かった「Power C」を購入し,C言語を始めました。その後,マイクロソフトウエア・アソシエイツ(MSA)がTurbo C 2.0のアカデミック版を1万2000円という低価格で発売したのでこれを購入しました。1989年か1990年ころだと思います。MSAはパソコン通信「MSAネット」を運営していましたので,ここでC言語についていろいろと質問し,教えていただきました。このときに教えていただいた,いわば師匠に当たる人には今でも仕事の上でお世話になっています。

 同じころキヤノンのレーザー・プリンタ「LBP A404」という機種を購入しました。これは,LIPS IIIというページ記述言語を備えた最初のプリンタで,アウトライン・フォントが使えるのが特徴でした。それ以前のレーザー・プリンタはドット・フォントだったので,文字を拡大すると,ドット・プリンタと同様に,ギザギザが目立ったのですが,LIPS IIIなら拡大してもなめらかに印刷できます。フォントも,日本語が明朝体,英文がTimes RomanやCourierなどを標準で備えています。

 ところが当時はLIPS IIIに対応したワープロ・ソフトがありませんでした。文字はギザギザになるし,アルファベットも日本語フォントで印刷するので見栄えがよくありません。

 そこで,LIPS IIIのリファレンス・マニュアルを購入し,LIPS IIIに対応した印刷ソフトを自前で作りました。当然,日本語文字は日本語フォントで,半角英数字は英数フォントで印刷します。使用するフォントや文字の大きさ,ページ当たりの行数,1行当たりの文字数,上下左右の余白も,CUI(キャラクタ・ユーザー・インターフェース)で自由に設定できるようにしました。当時最も早くLIPS IIIに対応した印刷ソフトの1つだったと思います。

 このソフト,その名も「LIPS3」は,技術評論社が当時運営していたJUPITER-NETで,ソース・コードと一緒に公開しました。C言語のソース・コードといっても,アセンブリ言語もだいぶ使っていました。今では当たり前ですが,インライン・アセンブラが使えるCコンパイラは,Turbo Cが初めてだったと記憶しています。

 その後,Windows 3.1対応の印刷ソフトや,Windows 9x/2000/XP/2003対応の印刷ソフトを作りました。日本語と半角英数文字でそれぞれフォントを選べるようにしていることはもちろん,文字の大きさ,ページ当たりの行数,1行当たりの文字数,上下左右の余白,2段組,縦書き,フッタのカスタマイズ機能などを実装しています。

 ちなみにLIPS IIIは,一度に日本語フォントと英数フォントの両方を設定でき,印刷する文字種に応じて自動的にフォントを切り替える仕組みになっており,プログラマにとっては非常に便利です。これに対してWindowsは1つのフォントしか設定できず,日本語文字は日本語フォントで,半角英数字は英数フォントで印刷するには,これから印刷しようとする文字種に応じてフォントをその都度切り替える処理が必要で,コーディングが面倒だし,オーバーヘッドが大きく時間がかかります。現在のPCは十分速いので気になりませんが,Windows 3.1当時は,PCの印刷処理には非常に時間がかかったものでした。

 「ないものは自分で作る」主義で,これまでいろいろと小さなツール類を作ってきました。これまで利用した言語/コンパイラは,アセンブリ言語(マシン語),BASIC,C,C++,Delphi,Kylix(Linux版のDelphi),C#などです。現在最も多く利用しているのは,C#です。最近では,デスクトップの「マイコンピュータ」などのアイコンを変更するソフト,ファイル・サーバー上の共有フォルダを一覧し,その全容量や空き容量を表示するソフト,などを作りました。いずれもC#で作ったのですが,PInvokeと呼ぶOSのAPI呼び出しを利用しています。「それならVisual C++で,ネイティブ・アプリケーションとして作った方が簡単なのでは?」と思われるかもしれません。もちろんそうなのですが,私にとってプログラミングは趣味なので,あえて手間のかかるツールを使うことも「有り」なわけです。

 このように,根っからのアマチュア・プログラマですので,記事の内容もプログラミング関係が多くなりがちですが,これからもITproTechメールをよろしくお願いします。

ITproTechメール担当 山口 哲弘