昔のBASIC奇跡の復活物語



 (このページのいちばん下で、ソフトのダウンロードができます)

 うんちく講座No.331「ソシオメトリーをもう一度」にも書いたのだが、10数年前、私は「ソシオメトリックマトリクス作成ソフト」をBASICで自作して使っていた。



 パソコンを使い始めて2年程度の頃である。当時はWindowsどころかMS-DOSもまだ普及しておらず、それぞれのパソコン固有のBASICで自作プログラムを動かすのが普通という時代であった。

 BASICについても全くの独学で(当時はそれも普通であったが)、文法説明書と首っ引きで夏休みいっぱいかかって作ったのが、その「ソシオメトリックマトリクス作成ソフト」であった。パソコンも非力な8ビットマシンだったので、処理も遅く、プログラムが正常に動作するか確認するだけで1時間近くもかかったのだが、それだけに使い物になるプログラムが完成したときには喜びもひとしおだった。

 自分ひとりで使うことを前提としていたので、ユーザーインターフェイスなどには全く配慮していないプログラムではあったが、自分の学級のソシオ調査だけでなく校内の他の学級の調査なども引き受けて、当時はかなり活躍したプログラムであった。



 うんちくNo.331「ソシオメトリーをもう一度」で、ソシオメトリック調査の有用性を書いたのだが、その時点では、手もとにソシオメトリックマトリクス作成の道具がなかった。哀しいことに、10数年前に作ったプログラムが使えなかったのである。



 その「哀しい」理由は、4つあった(^^;)



 1つめの理由は、当時使っていたパソコンがもう動かないということである。

 最初にそのプログラムを作ったのが、富士通の「FM77-D2」というパソコンだった。もちろん8ビット機である。その後、私がNECの「PC-9801-U2」を使うようになったとき、物置にしまったのだが、数年後に電源を入れたら、もう動かなくなっていた。

 「FM77」と並行して使っていたのが「MSX」という、おもちゃのような8ビットパソコンだった。これは安価で小さいし、テレビをディスプレイとして使えたので、学校に持って行って使うには便利だった。学校でソシオ処理ができるように、MSX用の「ソシオメトリックマトリクス作成ソフト」も作った。しかし、このマシンも、子供がゲーム機として使っているうちに(ファミコンのようにゲーム用ROMカセットを差し込んで遊べた)壊れてしまった。



 2つめの理由は、プログラムリストをなくしたということである。

 BASICをバリバリ使っていた頃は、自作のプログラム(ソース)リストをプリンタで印刷し保存していた。しかし、MS-DOSマシンを使い始め、BASICから縁が無くなると、そのリストもどこかにいってしまった。たぶん大掃除の時にでも処分してしまったのだろう(^^;)

 せめて、印刷したものでも残っていれば、ソシオ処理のアルゴリズムだけでもわかるのに‥‥と思ったのだが、あとのまつりであった。



 3つめは、ソシオメトリックマトリクスの作成手順の資料がないということである。

 自作のプログラムを作ったときに、参考にしたのが「教職5年経過教員研修講座」で指導してもらった「ソシオメトリックマトリクスの作成法」という資料であった。これは手作業で処理を行うときの手順を書いたものだったが、これもどこにしまったのか、探しても見つからなかった。新たに自力でプログラムを作りなおそうにも、これがないとお手上げである。



 4つめは、気力と時間がないということである(^^;)

 仮に作成の手順を書いた資料があったとしても(書籍も出ているので)、自力でプログラムをもう一度作るとなるとかなり大変である。自作した頃は30歳頃だったので、今より頭も冴えていたし(^^;)気力もあった。今のパソコンの何百倍も遅いマシンで試行錯誤を繰り返しても頑張れたが、40代もなかばを過ぎた今ではちょっと辛い。それにBASICの自作プログラミングにはまっていた当時は、BASICについての知識も興味もあったので勢いがあった。



 そういうことで、諦めかけてはいたのだが、なんとかあのプログラムを復活させて、現任校でも使えないものかという気持ちもあり、埃をかぶったフロッピーディスクの箱を探していたら、幸運にも当時使っていたディスクを見つけた。



 フロッピーディスクを見つけたことがきっかけになって、ありがたいことが6つ重なり、後述のように「ソシオメトリックマトリクス作成ソフト」は復活することができた。



 ありがたいことの1つめは、フロッピーディスクを読み込めたということである。



 見つけたフロッピーディスクは2枚あった。1枚は富士通FM77用、1枚はMSX用であった。現在使っているWindowsパソコンにディスクを挿入して読み込もうとしたが、FM77のディスクは読み込み不能だった。当時は各社のパソコンごとに独自のファイルフォーマットを使っていたためである。ちなみにNECの旧タイプのパソコンで使っていたフロッピーディスクもほとんど読み込めない。

 ところがMSXのフロッピーディスクは読み込むことができた。MSXの規格はIBMが主になって決めたものであり、フロッピーディスクの容量は720kbのいわゆる「2DD」フォーマットである。これはDOS/Vマシンで読み込むことができるのだ。学校でパソコンを使えれば便利だというだけの理由で、MSX用にプログラムを移植していたのが、今になって役に立った。先見の明があったなどということはないが(^^;) いわゆる世界標準の規格で保存していたことが幸いしたようだ。



 2つめのありがたかったことは、バイナリファイルをアスキーファイルに変換してくれる人がいたことだ。



 フロッピーディスクからMSXプログラムのファイルを読み込むことは可能であったが、テキストエディタで開いてみると「■鬱OR@・廟=‥」のような具合で、何が何だかわからないような状態であった。いわゆる文字化けの固まりのようなファイルである。

 これは、MSXのプログラムを保存するときにバイナリ形式にしたためだった。当時もアスキー形式での保存は可能だったが、ファイルサイズが大きくなるので、フロッピー容量節約のため、バイナリ形式で保存するのが標準的であった。

 「あのとき、アスキーセーブしておけば‥‥」と後悔したが、どうしようもない。せっかくファイルを読み込んでも、プログラムの構造も全くわからないようなものでは使い物にならない。自力でどうにかならないかと試みたがだめだった。



 そのとき思いついたのが、パソコン通信時代からの知り合いのA氏のこと。プロのシステムエンジニアである。メールで相談したら「そのファイルをメールに添付して送ってもらえばなんとかできるかもしれない」との嬉しい返事。さっそく真夜中にファイルを送ったら、翌朝にはすっきりとアスキーファイルになって帰ってきた(^^;)

 やはり餅は餅屋ということだった。プロはいろいろなツールを持っているし、それを使えるノウハウがある。こういう人と知り合いでホントに良かった(^^;) また、ファイルをメール添付でやりとりできるインターネットも便利だなあと改めて感じた次第である。



 ちなみに、ネット上で変換ツールはないかと探したら「N88BASIC」のバイナリファイルをアスキーファイルに変換できるツールがあったが、これは「N88BASIC」限定ツールらしく、MSXのファイルを変換しようとしたら「これはN88BASICではありません」と簡単に蹴られてしまった(^^;)



 さて、アスキーファイルになったMSXのBASICプログラムは、ちゃんとテキストエディタで読み込むことができたし、プログラムのかたちもきちんとしていたが、若干の文字化けがあった。これは変換のミスではなく、MSXのBASIC独特の「半角ひらがな」の部分であった。しかし、プログラムの基本的部分は完全に復活していたので、文字表示部分だけを手直しするだけで、「ソシオメトリックマトリクス作成プログラム」は完全に復活した。



 3つめのありがたかったことは、ActiveBasicというソフトを入手できたことだった。



 プログラムは復活できても、MSX−BASICを動かせるマシンがなくてはどうにもならない。

 一応、「ソシオメトリックマトリクス作成」のアルゴリズムはわかったので、その仕組みを今のパソコン上で動くプログラム言語に移植したらどうだろうと考えた。「C」とか「JAVA」とか「Perl」などに挑戦しようかと思ったのだが、いずれにしても初歩から勉強しなければならないのは、ちょっときつい。

 言語そのものやコンパイラを新規に購入しなければならないのは大変だし、別のサーバに転送しないと動作確認ができないというものも面倒だ。



 何かよいものはないかと、おなじみの「窓の杜」を探してみたら、どんぴしゃりのものを見つけた。それが「ActiveBasic」である。Windows上で昔ながらの行番号のついたBASICを動かせる(行番号なしも可能)というし、文法等は昔どおり、しかもWindows上でうごく実行(EXE)ファイルも生成できるという。かつフリーソフトなので無料だ!!

 これに私が飛びつかないわけがない。早速ダウンロードし(ファイルサイズも小さい)インストール。試しにちょっとしたプログラムを打ち込んで「RUN」させたら、見事に動く。



 そこで、ActiveBasicで「ソシオプログラム」が動くように、プログラムの手直しにかかった。



 昔のBASICは、実行画面もプログラム入力画面もいっしょで、しかもプログラム入力は編集中の1行だけに限られていた。ワープロのようにカーソルを上下左右に動かしたり、コピー&ペーストをしたりできなかったので、作業効率は極めて悪かった。

 ところがActiveBasicは、プログラム編集画面と実行画面が別になっている。プログラム自体はテキストファイルなので、メモ帳やワードパッド等のテキストエディタで編集可能だが、ActiveBasicに附属している「ProjectEditor.exe」を使うのがベストである。普通のテキストエディタのように自由自在に編集ができるほかに、BASICコマンド部分が青色に表示されて見やすくなっていたり、ステータスバー部分にコマンドの書式の例が表示されるなど、BASICプログラムの編集に好都合な機能がたくさんついている。おかげで「ソシオプログラム」の手直し作業もずいぶん楽にできた。



 4つめにありがたかったのは、パソコンの性能が向上したことである。



 前述したように、10数年前のパソコンでプログラムを作ったときには、パソコンの処理能力が低かったので、書いたプログラムを動かして、その結果が出るまで1時間近くかかった。最初から完全なプログラムができるはずもないので、1時間近くかかって出る結果が「エラー!」である。実に哀しい(^^;) またプログラムを見直して不具合を修正し、実行させて1時間後に「エラー!」これでは、プログラムが完成するまでに1ヶ月もかかるのも無理はない。

 しかし、現在のパソコンで動作させてみると、1分もかからないで処理が終わる。プログラムに不具合があるとエラーになるが、それを手直ししてまた試すのも楽だった。結果的に、昔は1ヶ月もかかった作業が1日程度でできてしまった。(もちろん昔のプログラムをそのまま使えたためなのだが)



 5つめにありがたかったのが、全角文字を使えるようになったことだ。



 昔の8ビットパソコンでは、漢字などの全角文字が使えなかった。どうしても使いたい場合には、プログラム中に「&H28,6A」などのように文字コードを書くしかない。これでは氏名データなどを漢字表記しようとしても無理だった。MSXでは漢字対応機能が全くなかった(そのかわりのような半角ひらがなとか、「年」「月」「日」「月」「人」などの文字を8ドット文字で表示するという面白い機能があったが、それが今回の文字化けの原因でもあった)

 そこで、ソシオの表の印字なども全て半角カタカナでやるしかなかった。そのためできあがったマトリクス表も妙に縦長の格好悪いものだったし、氏名等の文字データを縦書き表示する場合も、かなり面倒な工夫が必要であった。

 それがActiveBasicでは全角文字を使えるようになった。おかげで氏名も漢字で扱えるし、表の中の記号も、前は「まる」を表すにも半角アルファベットの「O」で代用していたのだが、今度はきちんと「○」を使えるようになった。表のかたちもちゃんと横幅のあるきれいなものになった。



 6つめにありがたかったのは、「EXE」ファイルを作れるようになったことだ。



 私個人で使う場合にはActiveBasic上で動かせばよいので問題はないのだが、ActiveBasicをインストールしていないパソコンでは使えないことになるので、不特定多数の人に使ってもらうには具合が悪い。

 ところがActiveBasicには、BASICプログラムから、Windows上で実行可能な「EXE」ファイルを作る機能がちゃんとついている。「ProjectEditor.exe」でプログラムを作り(あるいは読み込み)「EXEファイルを作成」というアイコンをクリックするだけでよいのだ。

 できあがった実行ファイルは、ActiveBasicが入っていないパソコンでも問題なく動く。実行ファイルのあるフォルダをマイコンピュータやエクスプローラで開いて、実行ファイルをダブルクリックするだけで動くし、デスクトップにショートカットを置くこともできる。

 実は、古いBASICのプログラムは、自分で使えればいいやということで、ソシオメトリー調査のデータ(氏名や選択・排斥データ等)もプログラムの中に書いてしまっているという原始的なものだった。しかし、これだと実行ファイルにしたときに新しいデータを扱うこともできないので、長い間(^^;)の懸案だった「データファイルの外置き」も実行した。



 こうやって、昔作ったBASICプログラムが、Windows上でよみがえり、ある程度、他の人に使ってもらえる状態になった。

 ちなみに、この「ソシオメトリックマトリクス作成ソフト」で作ったマトリクス表は、次のようなものである。


 縦横の区切り線まで引くようなプログラムは組めなかったので、プリンタで印刷後に手描きで線を引いているが、他は全てこのプログラムが処理した結果である。



 とりあえず作成した暫定版なので、プリンタとの相性が良くないと極端に小さな印字結果になるなどの不具合もあるが、今後、余裕があったらユーザーインターフェースなども改善してバージョンアップしていきたい。(使用法や留意点等については、下のファイルに添付されている「readme.txt」を参照いただきたい)

 自己解凍型の圧縮ファイルにして、下の「ダウンロード」をクリックすれば取り出せるようにしたので、興味のある方はお試しいただきたい。なお、圧縮ファイルも「exe」形式になっているので、ブラウザの設定によっては「ダウンロードするとウイルス感染のおそれがあり危険です」などの警告が出ることもあるかもしれないが、私は悪さをしていないので(^^;)、信用していただいてダウンロードしても大丈夫である。使用の感想等も掲示板やメールで教えていただけると嬉しい。

私の自作ソシオソフト→
ダウンロード

<01.02.03>


ホームページに戻る うんちく目次へ