私のPC遍歴は・・・・

年齢とはつじつまの合わないTK-80から始まります。(決してそういう年では有りません)
テンキー上にある0からFまでの16進のキーで入力し、「RUN」のボタンで実行する。表示はLEDの現在の電卓の液晶のような表示で 「グラフィティ」の入力よりも文字らしくない表示を アルファベットと頭の中で理解してみていました。
勿論、この時代は人から提供されるプログラムは、紙に並ぶニーモニックコード。
アセンブラーもコンパイラーも無かったので16進二桁の数字の羅列でしかありません。
ただ、当時機械語と言われたニーモニックも 縦横 8ビットのマトリックスの縦行 横行に規則性があり 覚えることもそう苦では有りませんでした。
現在のように、ニーモニックだけで200を越えるような 機械語どころかニーモニックすら覚え切れないなどということはありません。
勿論、ハードの知識無しには成立しない趣味で(販売形態がキットのみでしたので)そういう時代でした。
その後、パーソナルコンピューター時代(この当時はマイコンという表現でPCという呼称は その後海外から入って来たものです)に一世を風靡する(といっても狭い世界ですが)BASICもこのころRAMの価格の低下と共にスタートするのですが お金持ちの道楽の世界で 車を購入できるほどの金額を投じてようやくBASICが動く程度でしたので その恩恵を預かれたのは僅かな人達だったこともあり、やはりテンキー入力の機械語を話す現代風に言うとおたくな人達が支えていた 本当に僅かな世界でした。
パーソナルコンピューターの名前の下に、NEC独占時代を築く尖兵となったPC−8001が発売されて、BASICという言語がメジャーな存在となります。
実際問題、このときに移行できないユーザーがたくさん出ました。
勿論、TK−80からPC−8001への比較であれば価格もぐっと安くなりますし、扱いも楽になりました。しかし、機械語中心の理解をBASICに向ける事が出来ない人達が少なくなく この世界を去った人達を私は沢山知っています。
ハードに転向した人達が多かったと記憶します。
すこし逸れますが、この頃からデジタルICというものが一般的になり プログラムを書くように回路設計をするという手法が出てきました。そちらが楽しくて流れていった人が殆どでした。
いきなりLEDの数字表示から、80x25行の文字表示になり 色々な部分が変わりました。
特に画面処理では大きな問題が発生しました。経験の無かったプログラマ達にBASIC以外で今までの経験を生かす機械語のプログラムでの描画は非常に難しかった。また、
NECもそういった情報を豊富に開放する会社ではなかった為に(最初のころは、メモリーに直接データを操作する PEEKやPOKEコマンドすらマニュアルに載ってなかったぐらいです 綴りを間違えていたらごめんなさい)そういった部分を1から解析してプログラムを書くという行為が非常に大変な行為だと言うことは なんとなく理解していただけると思います。
勿論、インターネットも一般的ではありませんしパソコン通信すら一般的では無かったので 多くはBASICに流れてゆきました。
ASCIIを始めとするパソコン雑誌に、ぽつぽつと内部の解析記事みたいなものが上がりだし 徐々にその手法が一般的に成ってくると、BASICの速度に我慢できないプログラマー機械語のプログラムを開始し始めます。
ただし、8080からZ80に移行したことにより 同じ機械語でもアセンブラーを利用したプログラムに変わってゆきます。低レベルであれば コンパイラーなども発生しました。カルトな世界で言えば GAMEなどという様な Basicライクなコンパイラー言語も発生しました。
ここで、又大きなふるいが発生します。DOSという概念です。
モリーを全ての世界として扱っていた人達に対して、FDの登場はプログラムの概念を大きく変える事になってしまいました。
特に大型プログラムでは、一般的にはコンパイルにせよアセンブラーにせよソースは出来上がるオブジェクトのサイズの数倍〜数十倍のサイズになります。
それをメモリー上に置き、コンパイルをした時に16K〜32kのメモリーしか持たないPCでは出来るプログラムに大きな制限があります。
FREEメモリーが24K(Mではないので注意してください)、アセンブラーが4〜8Kで考えると1K少々のプログラムを作ることで精一杯。
中に含まれるデータも含めて考えると、限界は既に見えていました。
ところが当時高速のデバイスだったFDからソースを読みながらオブジェクトを作る形式であれば 10K程度までプログラムの作成できるサイズが拡大します。
データ部分を後で結合する方法で考えれば、20K程度のフルメモリーのプログラムすら作れるようになりました。
高額なFDを購入して、もう一歩踏み込んだ層と そうで無い層というふるいが発生し その当時に触らなくなった人達も知っています。
その後の大きなふるいは、X86CPUの登場でしょう。
16ビットプログラムでZ80と言われるザイログと言われる会社の今で言うところの方言で書かれた(Intelの書式と違う表記をします。8080〜現在のPentiumまでに至っても Intelの書式は拡張され続けていますが 一つのルートを辿っています。)アセンブラーの書式をIntel書式に変更する努力が必要でした。それと、Z系では多用された絶対アドレスの分岐が、相対アドレス中心になった事も大きな考え方の変更を要したように記憶します。そのまま8ビットにしがみ付き続けた人達のグループもいました。
これも余談ですが、その人達は16bitで作られたプログラムのコピーのような物を良く作られていました それもパワーアップして 当時は感動しました。
ところが、日本語の扱いでメモリーの消費が激しいPCにとって16ビット化は128Kのメモリー空間を与えた為徐々に16bitに世界は進んでゆきます。
もちろん、BASICで書いている人にとっては 速く機能が上がったと言う概念しか有りません 当然、資金が許す限り移行しました。
このころには、Nifty(現在の@nifty)のフォーラムで内部情報やハードの情報が交換され、キラーとなる書籍の登場無しに機器情報を知ることが出来るようになっていました。
その後は、32bit化 286から386と続く流れの中で メモリーの管理のしかたが理解できるか?というふるいが発生しますし、プログラム言語を使う場合にも プログラムの細分化やパーツ化(関数化)の概念 つまり 構造化型プログラムという手法に変わってゆきました。当時は、PC関連の書籍を見に行けば 「構造化」というキーワードが何にでも書いてあったような気がします。
その後、(実は既にドロップアウトしていたので 想像の世界に入っています どこからドロップアウトしたかは秘密)Windowsの登場。
プログラムの集合体であるWindowsは最初から多くの関数を開発者の為に解放し、例えば「画面に字を表示する為にはこの関数」というように プログラム開発者の負担を軽減する為の情報を多く公開してくれるようになったような気がします。
ルールと、実際に利用してみれば癖のような物があるのですが(例えば負の引数が入ったときの動作が関数によって違ったとか)プログラム本体の設計に頭を悩ませば 入出力に関する部分の多くは提供された物を使えば良くなり、プログラムの工数が減ったかのように思います。
最も、GUIによって 今までのCUIでは上から順番にしかおきえなかったイベントが、マウスの動く量だけどこからでも発生するようになり、その部分の対策が当時は大変だったような気がするのですが・・・・
で、本文にも書いたとおりに 私は途中からプログラムを書くことが出来なくなっています。
もちろん、仕事もそういったことはしていないのでそれはそれで困っていないのですが。
良く行って、Excelのマクロか簡単なSQL文程度しか書くこともありません。
しかし、いつか自分が書くこともあるかとおもって眺めていたりはします。
世代が変わるたびに、メンバーが変わり その度にそういえばプログラムを書く層の人は減っているように思います。
もちろん、仕事で書いている人の中でも。
どころか、会社にもPDAを持っている人はいますが プログラムを導入することすら殆ど無い人達が多くいます。
もちろん、現在のポケットPCには購入時の取り説がついていて、コードのつなぎ方からPCの接続ソフトの入れ方、ソフト側にもインストールの方法が書いてあり 多くの場合はPC側でプログラムを実行すれば自動的にインストールされます。
先日からの、内臓ストレージと本体メモリーの関係なんて 内臓ストレージはバックアッププログラムを動かした時にデータの入る格納場所ぐらいの認識だったり 存在すらも知らないというのが実際のところでした。
どこからどこまでがマニアな使い方というのかは解りませんが、今までは詳しい人の山が立っていてそこからはるか差があって平地が有ると言うようなイメージだったのが、中腹部に私のようなプログラムの書けない層が居るなだらかな坂のような構造になってきたのかもしれません。
幸いにもなのか、そうでないのかは別にして PCの世界ではマイクロソフトの独占に近い状態にありますし PDAでもマイクロソフトのシェアは小さくありません。
.NET Frameworkという開発環境は PCとPDAの間にも互換性を持たせるべく設計されているようですし 制限はあるもののPCと共通のソフトの組み方が利用できるようです。
また、C言語の拡張形であるVisualCでもBasic言語の拡張形であるVisual Basicでも同じ書式の関数として動作するようです(読み漁りなので 間違えているかもしれません)もちろん、ハードに関する直接の制御はある程度の知識が必要でしょうが その関数の範囲で収まる操作ならできるはずです。
開発環境は、マイクロソフトPDAのサイトからダウンロードして無償で使えるようになっています。
もし、自らなにか不満がある とか 機能を追加したいと思うのであれば そういったツールを使ってプログラムを組んでみるのも面白いかもしれません。
それに、実はその中にはエミュレーターもあって、今話題のWindowsMobile5もPC上で動く仮想機械として操作することも出来るわけですから、それもタダで すこし頑張って勉強してみてはどうでしょうね?
師匠は沢山いますし。
追記:勿論 Tk−80は所有したわけではありません。当時、現在のシリコンハウス共立にあったものをすこし触った程度です。後は、本からの知識でした。