最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

17.2.コンピュータとの出会い

[ Previous ] [ HOME ] [ Upper ] [ Next ]


ここでは、講師の、ときめく(おぇっ)、コンピュータとの初めての出会いを紹介します。プロファイルとダブりますが、我慢してください。

それから、基本的で、重要なコンピュータ一般の用語が、たくさん出てきます。(赤い字で出ています。)AS/400はもちろん、その他のコンピュータにも関係することですから、知らないことは、各自参考書で自習するようにしてください。(一般的な参考書は情報処理試験の参考書がいいと思います。)


FM−7来る

学生アルバイトで、大金をつかんだ私は、少しだけ酒をのみ、少しだけ女遊びをして、ほとんどを富士通のFM-7(8ビット)という機械につぎ込みました。これは、あのタモリがイメージキャラクターになったマシンです。構成は、CRT(カソードレイチューブ:ブラウン管のこと)とCPU組み込みのキーボード(というか、CPUとキーボードが一体となった、本体というべきか)と、バックアップ用のテープレコーダーと、漢字プリンターです。FDD(フロッピーディスクドライブ)はありません。テープレコーダにセットするのは、普通の音楽用テープです。

音響カプラをご存知ですか?モデムではありませんが、通信装置です。電話の受話器にすっぽりかぶして、受話器の音をマイクで拾ったり、スピーカーから音を出すのです。音の高低で、デジタル信号に変換していました。これと、同じ原理で、この音の高低(聞いたままだと、最初ピーーーーといって、相手とつながると、ピーヒョロ、と続き、その後、ピーピーガーガーピーガピガピガ...が続いていきます。)を音楽テープにその音を録音することでバックアップできます。(今の、テープ装置とは違うものです。) もっとも安価なバックアップ機械でした。パソコンと、そのテープ装置に三本の線(入力、出力、コントロール)で結びつき、LOAD命令で、テープがポコンという機械音を出して、読み込みが開始されます。ものすごく時間がかかり、何をしようとしていたか忘れるほどです。このテープ装置の概観は、昔の英語のLL教材を使うときのとそっくりでした。多分その目的でも使えます。黄土色の平べったく、モノラルのスピーカ付きでした。

FM-7が使える純正のバックアップ機器で変わりどころは、バブルメモリでした。正直言って、いまだに原理が判然としません。どうも、無数の泡のように空洞があいたメデアが磁化するらしいのですが、メカニカルな部分がないため、高速で、しかも、どえらく高かったのです。FDDもとても高くて、まだ買えませんでした。

ところで、なぜ磁気なのかは知っていますよね。そうです、RAMは通電してないと、内容が消える(揮発する)のです。RAMにはたいていプログラムそのものが置かれますが、配列に入力内容を保管して、テープにかき出してたりする場合、電源が切れれば、データは(プログラムも)電子の塵となり、この世から消えます。これを避けるのにデータを保管したいのですが、電気で扱えて、しかも2進数的に0と1であらわせるものが必要でした。それは、磁気です。S極N極は、電気で書き換えられて、しかも通電しなくとも保持できるのです。電気を消した後も、データを保持するのにもっとも安く、便利で、安定した素材が磁気だったのです。なお、ROMは、工場で内容を焼き付けますので、電源を切っても内容は残りますが、書き換えはできなかったので、データ保管は不可能でした。

F-BASIC

マシンは、たちあげると、真っ黒な画面に白い字で、いきなり、Fujitsu-BASIC(通称 F-BASIC; 日立はHu-BASIC,NECはN88-BASICなど)が画面にでて、Readyと表示して、(NECはたしかOkだったような)その右横で、カーソルが点滅します。このマシンを制御していたのは、DOSではなくBASICでした。いわゆるROM BASICと呼ばれるものです。日本では、この仕様は当然のようにまかり通っていました。ほとんどの日本のメーカ(富士通、NEC、日立、シャープ)はこの仕様でした。LOADでゲームプログラムをテープからメモリに展開して、RUNでゲームが始まります。このLOADやRUNはもともと、プログラム言語BASICの命令語です。言語が、OSのコマンド代わりをしていたのです。Readyの表示がマシンの要求受付可能を意味していました。ここで、FILES(=DIR),KILL(=DEL),ができます。SAVE命令でプログラムを保管も、しました。このBASICなる言語は、日本のパソコンのデファクトスタンダード(事実上の標準)の地位にまであがったのです。BASICとは、Beginners' All-purpose Symbolic Instruction Codeのアクロニム(頭文字を集めて独立した単語となったもの)といわれています。(実はこじつけだとする説もある)。この言語は、インタープリタ型(パソコンの世界に慣れ親しんだ人は、大体、最後の語尾を延ばさない。たとえばコンピューターではなく、コンピュータ。インタプリターではなくインタープリタ。)で、実行時にその都度マシン語や、それに相当する機能を呼び出しつつ、実行します。もし、エラーがあれば、メッセージを出してその場でストップします。エラー行を修正して、またRUNします。これに対し、コンパイラ型の言語は、実行する前に一括して、まずマシン語を生成します。 エラーがあれば、ソースを修正して、またコンパイルしてマシン語を作り直して、実行します。当然のことながら、インタープリタは開発は楽ですが、実行が遅いのです。

メモリは、すずめの涙より少なく、最大64k(だったと思う。もっと少なかったかな?)なので、大きなゲームは一気にメモリに展開できず、実行中にチェインして、別のプログラムをロードして、制御を渡したりします。テープだと、ゲームが始まったと思ったら、またポコン、ピー、ピゴピガを始めるので、大きくため息を吐いて待つのです。FDDがほしいよう、と切実に思いました。

後日、BASICコンパイラを買い(基盤で提供される)、それでBASICをコンパイルしたときの感動は忘れません。速いのです。3倍くらいのスピードになりました。でも、整数型BASICコンパイラだったので、小数点以下が扱えないため、ほとんどのゲームはまともに動きませんでした。また、サポートする命令語もかぎられていました。なお、実数型BASICコンパイラはこのころなかったと思います。

ところで、BASICのプログラムリストを見たことありますか?8ビットのころは、ブランチ命令(GOTO)やサブルーチン(GOSUB)もすべて、ターゲットは行番号です。GOTO 1020とかGOSUB 3070とか表記します。今のようにGOTO ENDのようなラベルはありませんでした。このプログラムを読んで理解するのは、大変でした。俗に言う、スパゲティとは、まさにこのことです。ラベルがあればもっとましになるのでしょうが、行番号だと、もーむちゃくちゃでした。特にゲームのプログラムなんて、「動きゃいい」というのが大前提、小前提、序文、本文、結論なので、きれいな「り・す・と」なんて、頭もよぎらない。ひどいものでした。品質0です。いくつかの本では、構造化らしきものをこのころから叫んでいましたが、ゲーマは聞きませんでした。

レンタルショップ

さて、ゲーマとして、BASICを使ううち、レンタルソフト屋が池袋に何店かあることを知り、(このころレコードのレンタルもしていた。覚えていますか?)、一本500円くらいで、正価3000円とか4000円するソフトを借りたのです。音楽テープが媒体なので、音楽のコピーと同じで、テープのダイビングができれば、コピーは簡単なのです。音を劣化せず、コピーするだけだったのです。このころのソフトの品揃えは、ほとんどこのテープ方式なので、問題ありませんでした。結構、店内は混んでいたのですが、音楽などかからず、シーンとして、時たま、ソフトのケースを下に落とすやつがいたり、ため息ついたりする人の息の音が響く異様なムードでした。今で言う、オタクの巣くつです。自分は絶対に違うとは言いきれませんが、やっぱやなムードです。借りるとストトトトと店から出て、いそいそ、うちに帰ります。費用は、レンタル代金と媒体のテープのお金だけです。

なんでそんな違法な店(たくさんあった店はほとんど摘発されて、消えていった)があるか、わかりますか。そのころのソフトは信じられないくらい高かったのです。住所録ソフトなんて、ウン万するんですよ。しかも、8ビットマシンの漢字は(高い漢字ボードを購入したうえ)、16×16を通常の画面の2行分を使って表示するんです。はっきりいって、使い物にならないソフトばかり。そして、ゲームは、一部の優良メーカを除いて、むちゃくちゃなゲームばかりでした。すごいと思ったのは、光栄という会社の「信長の野望」というゲームでした。今でもあるでしょう?生き残ると思いました。これならお金を出す価値大いにあります。でも、こういう優良ソフトは、そうだな全体の1割くらいで、デパートで高い思いして買って、がっかりした経験があまりに多いのです。ケースを見ると、いかにも面白そうに書いてあって、いざロードしたら、「うそつき!」の世界です。社会のしくみを垣間見る思いでした。でも、レンタルが違法ということは、私だけでなく、店の従業員から、客まで全員知っていたと思います。後ろめたい気持ちがありましたが、学生の身分では、失敗するにしては、かなり大きな出費だったのです。「コピーは違法」という、正当防衛の影で、それを逆手に取った業者がいたようです。「コピーしちゃいけないのなら、中身は、わかんないはずだろう?へへ」。みたいな。

FDD登場

この後、Logitechの5インチのFDDを買いました。20万くらいだったかな?外付けで、両面タイプで二個のドライブがありました。I/F(インターフェイス)は、SCSI(スカジーと読む)など無く、FM-7専用のI/Fカードで本体につけました。これもアルバイトでまかないました。

当時、フロッピーは8インチ、5.25インチ(それから随分経ってから、ソニーの3.5インチと、今は消えた日立の3インチ)がありました。8インチはパソコンではつかなかったと思います。(失礼しました。8インチあったそうです!) 8インチのIBMフォーマットは、大型やオフコンともに、業界標準なので、メーカーの違うマシンでのデータのやり取りに使えました。3.5インチの無いころ、パソコンのメインは、5.25(普通5インチといってますが、実際は5.25インチです。最近までWindowsの雑誌の付録に使われていたので、見たことあるでしょう?黒くて、ヘラヘラしたやわなやつです。)でした。それから、コンピュータはアメリカ生まれのアメリカ育ちのヤンキーですので、規格に関わるものはすべてインチが使われます。1インチ=2.54センチですよ。(ちなみにディスケットがIBMの商標名=商品名であること知っていますか?だから、IBM以外のメーカのフロッピーはディスケットと商品に明記できないのです。)

フロッピーはもともと片面と両面があるのをご存知ですか。今は、8インチにあるくらいで(それももう無いだろうけど)、それ以外では片面なんて見かけません。早い話、片面しか記録できなのと、両面も記録できるのとあるんですよ。フロッピー表面の磁性体が、片面だけ塗布されたのか、両面塗布されたのかの違いです。当然、FDDも、両方読めるものでなければ、両面は使えません。私のは両面でした。

このころ、シャープはクイックディスクなるフロッピーもどきを開発して、自社PCにつけて売っていました。これは、フロッピーのように、同心円上に記録するのではなく、レコードと同じで、渦巻き上に(一筆書きみたいに)記録するもので、当然、ランダムアクセスはできません。ちなみに、このクイックディスクはすぐに姿を消し、その後、昔のファミコンのディスクシステムとして、復活しています。

フロッピーディスクのデータ管理は、こんな感じです。つまり、データの内容がフロッピーの同心円の一番外側(記録密度は各同心円で同じなので、面積の広い一番外側が一番安定しているので、システム部分は通常ここに書き込まれる。)に書き込まれます。(この部分は2つに別れて、FAT:file allocation tableとDIRECTORYになります)。FATは、セクタ(フロッピーの最小記録単位のこと)の管理で、DIRECTORYはファイル名の管理と思えばいいです。ファイルを削除すると、DIRECTORYのある部分に、削除マークがつき、ここに削除マークがついていると、FILES(DIR)でファイル名が出なくなります。さらに、次回書き込みの時、ファイルが削除されていると、FATをみて、削除されたファイルに関連してセクタを占めていた領域を上書きします。空いているセクタが、記録しようとするデータサイズとまったく同じ場合はまれです。すると、書き込めないデータは、その後、どっか、離れたところに空いているセクタに書き込まれます。当然、FATも、書き込んだセクタに連動して、記録されていきます。つまり、論理的に一本のファイルが、物理的にバラバラのセクタに記録されることになります。そして、これがフラグメンテーションの原因なのです。デフラグメンテーションツールは、このころからありました。要は、元のFATの内容をどこかに記録して、それを、FATとともに、セクタも、ファイル単位にきれいに並べ替えをいているのだけです。これで、一本のファイルが、物理的にバラバラに記録されなくなるので、読み込みが速くなるのです。

また、削除後に、この書き込みがなされる前で、DIRECTORYに直接アクセスできる言語があれば、削除したファイルを復活できました。でも、削除後、セクタの再利用(書き込み)をされてしまえば、もうだめです。(当たり前ですよね)。なお、フォーマットしてしまうと、全部初期化されますので、復活もクソもありません。

フロッピーディスクは、データを擦って読みます。ハードディスクは擦りません。擦ったら、ディスククラッシュします。ちなみに、ハードディスクとヘッドの間はミクロン単位の空きしかなく、もし、ヘッドをジャンボジェット機にたとえると、ディスクを読むさまは、まるでジャンボジェット機が、地上30センチすれすれを飛ぶのと同じ、といわれています。奇跡ですよね。

フロッピーに記録するファイルの使用方法は、ランダムアクセスシーケンシャルかで別れました。せいぜい、ゲームの起動だけなので、ほとんどシーケンシャルファイルでした。住所録みたいに、「誰それ」と入れると、ディスクをグイン、グインと呼んで、ペッと答えを出すのがランダムアクセス。ゲームのセーブデータでも使わなかった。ランダムアクセスは、オープンするだけでメモリを食うのです。処理もややこしかったのです。

さて、日本では、ここいらからが、ホームPCの夜明けです。FDDを買ったら、DISK BASICなるフロッピーディスクがついてきて、IPL(Initial Program LOAD)するとROM BASICは横取りされて、参照されなくなりました。今で言うシステムフロッピーを入れたまま、電源を入れると、Fujitsu DISK BASICが立ち上がったのです。システム部分をコピーすれば、ゲーム専用フロッピーを作って、そのゲーム専用のだけで立ち上げることができました。また、テープ装置から、本体のメモリを経由して、そのままフロッピーディスクにプログラムをコピーできました(当然シーケンシャルファイル)。BASICのプログラムも、媒体上では、ただのファイルです。テープファイルをオープンして、プログラムファイルを読み込み、FDDにかき出すだけでいいのです。

また、Fujitsu DISK BASIC以外のOSも入れられましたが、DOSなるものが雑誌をにぎわし、一部の世間に浸透するのは、まだずっと後でした。NECが16ビットのPC9800を出し始めたころからです。後で、説明します。

プロテクトとプロテクト破り

FDDになっても、やはり、レンタル屋に通いました。品揃えも、だんだんにフロッピーベースのものが増えてきて、市場に活気が出始めているのを肌で感じました。さらに、このころから、業界ではプロテクトとプログラム破りのいたちごっこが始まりました。技術評論社の「ザ・ベーシック」なる雑誌は、プロテクトの解き方を克明に説明していました。プロテクトキラーのソフトの宣伝がじゃんじゃん出てきました。これを超えるべく、プロテクト専門のソフトハウスが、それを超えるプロテクトを考えます。それにあわせて、プロテクト外しも行われていきました。ちなみに、プロテクト業者とプロテクトキラーが、実は同じ会社だったなどという噂が広まったのもこのころです。ほんとかはわかりませんが、もし事実なら、ソフト開発者からプロテクト料をとり、一方では別の会社名でプロテクトキラープログラムを販売していたことになります。すごいでしょう?こんな時代もあったんです。このころから、私もプログラムを作るようになりました。初めてのプログラムはやはり住所録でした。できたときは、うれしくて、今思えば、幼稚園児のおもちゃ程度でしたが、学校から戻ると、意味も無く立ち上げて、眺めていました。

このころの雑誌は、「ザベーシック」通称(ざべ)、「I/O」、「アスキー」などで、今でも書店で見かけますね。

プロテクトそのものは、わかってしまえば、たいしたことなく、CRC冗長検査;データの転送一般に使われる信頼性を上げる検査)のエラーをわざと起こして、コピーできなくするとか、(diskcopyなど(命令語は忘れた)でエラーになる。)、記録されたソフトのトラックやセクタを調べて、ゲーム進行で一切使用されないセクタを壊してしまうとか、結局は、媒体としてのフロッピーの特性(本来は、信頼性を担保する特性)を逆手に取ったものが多かったのです。おかげでいい勉強ができました。

これに対し、さまざまなプロテクトキラーソフトができました。「アインシュタイン」「バイパー」とかPDS(Public Domain Software;著作権放棄ソフト)で「アップネ」とかありました。自分はアップネを使いました。雑誌にダンプリスト(マシン語のリスト:アセンブル結果がドッバーと、16進数で雑誌に載る。今みたいに通信でダウンロードなんて夢のまた夢。)この16進数のリストは、右縦一列と下一行に、チェックサムが乗っています。ちゃんと打ち込まないと、この合計の数字がくるうので入力ミスに気づくのです。いわゆるハッシュトータルです。(ハッシュトータルとは、あるタイミングで合計を取り、内容が正しいかを判定するための合計のこと。内容を自己診断するような場合につかう。データ入力や、通信でデータを送るときに利用したりする。)入力のキーボードは、数字キー(テンキーという)のみです。ダンプリスト入力用のプログラムがあり(これもダンプから入れたのだが)、0-9のほかに、その周りのキー(「.」とか「*」とか「/」とかのキー、改行キー以外)は、全部で6個あるでしょう?これにA,B,C,D,E,Fを割り当てたのです)。そして、BEEP機能を使って、チェックサムが出るとピッとならすわけです。これで、目をリストからCRTにうつして、チェックサムを確認します。ボリュームが多く、そうだな、新聞の株式欄くらいの文字が、ズラーとB5くらいの紙に、6-7ページびっしり出ています。これを入力していたのです。おかげでテンキーは完全にブラインドタッチできます。(電卓の資格試験があるの知ってる?その本を買って試したら、結構いい点だった。でも、資格試験受けなかった。あまり役立ちそうにないから。)

それから、キラーソフトでも、自動判定型をうりにするものと、プロテクトパターンをあらかじめ調べておいてくれて、このソフトはこのパターンではずすなどのインストラクションをつけたものとありました。(今でいう、ウイルスのワクチンのように、プロテクトに対するキラー方法を「個別に」提供する方式。)結局、前者の自動判定型は、新しいプロテクトに対応できず、後者のほうがよかったと思います。

マシン語(魔神語)

さて、私がここで学んだのは、マシン語というのは、きわめて強力で、恐ろしく危険であることです。諸刃の剣です。中には、ツールとして役に立つものも多かったのです。たとえば、ベーシックのリストをカラフルにしたり。(結局、表示属性のカラービットを、指定した文字と入れ替えてしまうだけ。)原理はわからないけど、インターリーブ(フロッピーディスクは便利だったけど、それでも遅かった。インターリーブはそのスピードをアップする。結局フロッピーディスクは無駄にデータを擦って読むので、その無駄を確率的に減らそうとする手法。)をしたり、フォントを作成して、ファイルに保管して、必要なときにロードして、印刷に使ったりするツールもあった。でも、マシン語は、一歩(ほんとに一歩)間違えると、暴走します。ループです。手がつけられません。言語のベーシックは、常駐のモニターが、命令を一行一行解釈して、実行するので、暴走はない(そのモニターがメモリ不足で、暴走したことはあった。)が、マシン語のプログラムは、モニターするものがいない。おお暴れする「やくざ」がいるけどけど、それを止める警官がいないのと同じ(というより、その警官が大暴れしているというべきか?)。この場合は、ホットスタート(メモリにプログラムを残したまま、リセットすること。これに対して、コールドスタートは、電源のオフオン(またはリセット)でRAMも初期化すること。ホットスタートのやり方はマシンにより違う。多分、今はない機能ではないか?)をする。でも、これで回復すればいいほうで、たいていはコールドスタートなのです。すると、マシン語はメモリから消えてなくなります。三日以上かけて入力したのが、セーブを忘れて実行して、暴走して、リセットして、消えたことがありました。暗い思い出です。

 

このマシン語、たいてい生成はアセンブラがします。(アセンブラ(ソフト)によらず、インストラクション表を見ながら、自作する人もいました。この作業をハンドアセンブルといいます。)このアセンブラへの記述はほとんどマシン語と一緒で、低級言語です(人間の言葉に近いものを高級言語。マシン語に近いものを低級言語、といいます)。

ふう、思ったより、内容が濃くなってきました。とりあえず、今日はここまで。次回は、もう少し、パソコンの話をします。AS/400に限らず、あるゆるコンピュータに共通した話題なのです。心して聞いてください。それでは。

起立、礼、着席。


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送