イランでイスラム革命がおきたとき、時代が中世に逆戻りしたという解説がされていました。Windows時代前夜のMS-DOS時代に、「中世のOS、CP/M」を提供する文豪にはまってしまった当時の私は、PCプチ原理主義信者ってとこでしょうか^^;


 NECのワープロ専用機である文豪mini5Gを購入したのは1986年の冬、スキー購入予定の資金+αで購入しました。当時、各社から様々なワープロ専用機が発売されていましたが、文豪を選んだ理由は覚えていません。はじめはワープロとしてのみ使用していました(あたりまえだって)。文章や表の作成以外にワープロの面白い使い道はないのかと思い、ワープロ関連の特集をしている雑誌を購入し、その中に文豪シリーズの裏機能について書かれた記事を見つけたのが、洗脳されるきっかけでした。
 この裏機能とは、文豪のあるキーを押しながらスイッチを押すと、CP/Mが立ち上がるというもので、ためしてみると、画面に小さな半角文字で「A>」というものが映し出されました。MS-DOSの画面に似ていますが(本当はMS-DOSがCP/Mをぱくったものらしい)、当時の私は、スイッチを押すとBASICが立ち上がるパソコン環境しか見たことがなかったので、この「A>」が何を表しているのか、次にどのような操作をしたらいいのかまったくわからなかりませんでした。その後、CP/M関連の本を購入し、アプリケーションソフトがなければ、これ以上なにもできないことを理解しました。
 しばらくしてピーシーワールド(PCW)という雑誌が文豪の裏機能関連の記事を多く扱っているのに気付き、定期購読するようになり、バックナンバーも購入しました。記事の中で最初に試してみたのは、文豪のワープロ画面上で、ある法則にしたがって文書(文字列)を作成し、CP/M側で、その文書ファイルの拡張子部分を「.COM」に変更すると、マシン語で書いたソフトとして立ち上がるという裏機能でした。この法則は、文豪の文書データの特徴をうまく利用したもので、アルゴリズム的にはやや遠回りな手順ですが、確かにマシン語のプログラムとして機能しました。雑誌に載っていたサンプルプログラムは短いダンプリストを入力するためのプログラムであったと記憶しています。この機能を利用し、もう少し長いダンプリストを打ち込むためのプログラムのダンプリストを入力し(わけわからん^^;)、そのプログラムでCP/Mの解説本に掲載されていたダンプリストを表示するコマンドのダンプリストを入力し(ダンプだらけだ!)、動かすことに成功しました。
 次に、同様の手順で、ポケコンのプログラム集で見かけた名前占いゲームと同じも内容のプログラムに挑戦しました。鉛筆でプログラムを書き、マシン語・ニーモニック対応表を見ながら、プログラムをコード化し、それを間違いなく数字で打ち込むという作業です。苦労して打ち込んでも、プログラムに間違いがあるとまったく動かなかったり、暴走したりします。かなり短いプログラムなのに、正しく動作するようになるまで、かなりの時間がかかってしまいました。「こんなんじゃ時間の無駄。アセンブラーが欲しい」
 そこで、文豪と同じ3.5インチ2DDのドライブを搭載していたシャープのMZ-2500のCP/M本体を購入しました。文豪mini5GにはCP/Mに標準で搭載されるアセンブラーがなかったし(後の機種には搭載されていた)、プログラムで遊ぶためには使いやすいエディタも必要でした。MZ-2500のCP/Mにはワードマスター(WM)が搭載され、それを文豪で快適に動かすためのパッチ当てがPCWで紹介されていました。使い始めてすぐ、アセンブラーを使っても、機械語プログラムの難しさにはかわりがないことに気がつきました。そこで、言語ソフトを購入しました。最初に購入した言語ソフトはα−CというC言語でした。本当はBASICが欲しかったのですが、MZ-2500用に販売されていたライフボードのαシリーズのリストにBASICはなかったように記憶しています。なぜC言語を選んだのか忘れましたたが、どの言語ソフトもアセンブラーよりましだろうという楽観的な考えと、PCW誌に文豪用のα-Cによるサンプルリストが掲載されていたので、α-Cならば動くのは確実であるという安心感があったためかもしれません。α−Cは、システムコールに対応していたため、文豪の様々な機能を引き出すことができました。文豪には本来CP/Mにはない様々な機能を提供するためのシステムコールが準備され、その内容がPCWで公開されていました。PCWで公開していたのはmini5Gの一つ前の機種であるmini5Eのもので、グラフィックのx,y座標の指定が逆になっている程度でほとんどの機能がmini5Gでも利用できました。また、α-Cは幾つかのパッチあてをすることにより、漢字の表示も可能でした(化ける文字もあった)。しかし、小数の計算はできませんでした。後に計算を目的としたプログラムのためにα−Fotranも購入しましたが、Fotranは難しかったので、ほとんど使用しませんでした。(遊びでするプログラムでは、数値計算ができなくても不都合はなかった)。その他、時期は覚えていないが、I/O誌で通販されていたsmall Cも購入しましたが、α-Cに慣れた後に手に入れたため、「使い難いソフト」という印象があり、実際、ほとんど使っていません。
 言語ソフトを購入したことにより、文豪は、ワープロ専用機からプリンター付きラップトップパソコンに変身し、「コタツでパソコン」という夢が現実のものになりました。


当時の経典の数々。「なぜ捨てないの?」「だって、信者なんだもん^^;」

 大学4年のとき(1989)、卒論用に文豪MINI5HGという機種を購入しました。mini5Gより画面広く、メモリーも多い機種で、mini5G用のCP/M関連のソフトも問題なく動きました。大学の研究室には当初5インチ(なぜか外付け8インチもあった^^;)のドライブを搭載したパソコンしかありませんでしたが、研究室が新しく購入した物理探査の測定器が、3.5インチ2DDのフロッピーディスクに測定結果を記録するタイプのものであったため、外付けの3.5インチドライブを新たに購入してくれました。これを利用し、雑誌の通販で購入したファイルコンバータソフトで、5インチのCP/Mソフトを3.5インチ2DDに落とすことも可能となり、5インチのフロッピーディスクで手に入れた某BASICと某Pascalを文豪に移植。Pascalの方はだめでしたが、basicの方はインタプリタ・コンパイラとも正常に動きました。また、PCWには北南昇氏により文豪MINI5HGにMS-DOSを移植する記事も掲載され、その記事通りに作業を進め、MS-DOSの移植に成功(熊本版と呼ばれていた)。そのMS-DOS上で、Cマガジン創刊号付録のLSI-C86試食版を動かすことに成功しました。


 文豪に「はまった」おかげで、ほとんど使う事はなかったのですが、大学2年か3年の頃、友人から中古で88を購入していました。その88にオマケで付いてきたゲームの中にchain shotというパズルゲームがありました。あの「さめがめ」のご先祖様です。
 単純なのに「はまる」ゲームで、α-Cのプログラムになれてきた頃、このゲームの移植に挑戦しました。chain shotのプログラムリストは覗くことが可能でしたが、C言語になれてしまうと(なーんて言って、いまではまったく組めない^^;)、BASICの行番号付きリトスは複雑難解に見え、リストを見ても目が付いていけません。そこで、プログラムは一から自分で組むことにしましたが、中身が脂肪でみたされている私の頭では元祖chain shotの対戦モードの移植はできませんでした。文豪版chain shotを完成させたのが1988年6月頃、私の文豪で唯一遊べるゲームソフトとなりました。

 当時、パソコン通信をしていなかったので、文豪用のフリーソフトを入手することが困難でした。自作プログラムにも限度があるので、BUNGO通信という文豪裏機能マニアの人たちの同人誌を購読しました。
BUNGO通信を通じて、面白いフリーソフトが紹介される事を期待したのです。会員となったのは創刊されて間もない時期で、投稿数も少なかったため、投稿者の敷居を下げるつもりで1989年4月に例の文豪版chain shotのリストを公開しました。でも、BUNGO通信ではハード関連のネタやOS移植ネタが多く、その後、ゲームソフトが投稿されることはなかったように記憶しています。
 MINI5HGへのMS-DOSの移植が成功し、LSI-C86試食版が動くようになると、DOS上で動くプログラムを組んで走らせて見たくなるものです。手元にはα-Cで組んだ、くだらないプログラムがいくつかありましたが、そこそこ使える、あるいは遊べるソフトは、chain shotしかありません。そこで、これをLSI-C86に移植してみました。移植といってもリストそのものを大幅に変えることはなかったと思います。CP/Mで利用できた文豪専用のシステムコールはMS-DOS側からも別の方法で利用できたので、システムコールを使った関数を手直しする程度でよかったと思います。Cマガジン創刊号でLSI-C86試食版を手に入れたのが1989年の秋、その後の11月か12月頃には文豪MS-DOSへの移植に成功しました。その時のコンパイル作業には研究室の98を使いました。LSI-C86試食版は、MS-DOSが走る環境であれば、機種に無関係で動作するソフトですが、CPUのスピードでコンパイルに要する時間は当然異なります。文豪のCPUは8088と8080両互換のV20、研究室の98はそれより高速のV30や80286マシンでした。ちなみに、文豪MS-DOS上で走るLSI-C86試食版は文豪CP/M上で走るα-Cよりも、コンパイルに時間がかかりました。
 はじめは、文豪用ソフトのコンパイル作業を98でするのが心配で、簡単なテキスト表示プログラムで98によるコンパイル後に文豪で動作確認し、次に文豪専用のシステムコールを使ったプログラムで同様の実験を行いました。どちらも文豪上で正常に動作します。あたりまえのことですが、当時の私にとっては不思議な事でした。
 卒業間近の1990年1月、
LSI-C86試食版で98用に自作したエスケープシーケンスによる文字列操作関数の動作チェックを目的として文豪MS-DOS版chain shotを98に移植しました。文豪版chan shotの駒が「●」や「□」などの文字を使用していたため、文豪のシステムコールを使った文字列操作関数部分をエスケープシーケンスによるものに置換えるといった微々たる変更で、98版が完成しました。そのままの移植ではつまらなかったので、98版の駒はすべて「■」とし、色分けして区別しましたが、文字列操作関数の実験用でしたので、それ以上の改良も、その後の改良もなく、部屋のどこかに眠っています。

<< 文豪mini5HGで動くCHAIN SHOT(CP/M版)左と、文豪版から移植した98版 右>>
文豪版98版
自称「さめがめファミリー」(作った当時「さめがめ」はなかったけど)

文豪mini5Gの画面(640×200ドット)に合わせて作ったため、MINI5HGや98の画面(640×400ドット)では上半分に表示された。


 このように、文豪で遊んでいたのが1986年冬から就職してMy98を購入する1991年までの間、日本語版のWindows3.0が登場するのは1992年のことです。My98購入後はBasic派になったため、文豪時代に会得した技は、何の役にも立っていません。