SENTINELS-OSとはS-OSの歴史S-OSの理念S-OSが移植された機種S-OSの派生OSアプリケーションの数々・Oh!MZ/X掲載分アプリケーションの数々・自主流通分S-OSユーザーズクラブとはS-OS通信についてS-OSとはS-OSとは、1985年、当時ソフトバンクから出版されていた「Oh!MZ」誌(後のOh!X、休刊の後不定期で復刊)の6月号に初めて発表されたZ80マシン用OSです。パソコンに備わるシステムコールが機種や言語等により呼び出し方法・パラメータが違うものの機能的に大差ないことに注目、共通の呼び出し窓口とパラメータを定義して各システム固有のモニタやBIOS,IOCSとの間で翻訳するような仕組みが考え出されました。することで、違う機種であっても同じソフトを走らせることができます。モニタを拡張したような造りのために操作もマシン語モニタと同様になってしまうのが欠点といえば欠点でした。S-OSの野望は多くの読者の共感を呼び、その雑誌の専門であるSHARP製パソコンだけでなく他メーカーのものまで広く移植されるに至りました。S-OSの歴史S-OSのルーツは、1985年1月号に掲載されたEDASMというエディタ・アセンブラです。このプログラムはMZ用・X1用と分けて(しかもMZ用はMZ-80K/C/1200,MZ-700/1500,MZ-80B/2000/2200にも分けて)発表されたのですが、各マシン語モニタのエントリを統一することでエディタ・アセンブラとしては1本のプログラムのみを開発するだけで済みました。アセンブラの文法はもとよりテープフォーマットをMZ2400ボーに統一することでユーザー間のデータ交換までも可能にしたのです。System)」の企画を発表、それが多くの賛同を集め、ついにS-OSへの歩みが始まりました。1985年6月号で発表されたS-OS"MACE"はルーツであるEDASMを踏襲して設計されました。開発の対象になったマシンもMZ,X1のみではありましたが、テープフォーマットをMZ2400ポーとし、アスキーコードは7ビット、そしてEDASMでは内部ルーチンに過ぎなかった画面関係やキー入力などがパラメータと共に公開され、テープベースのOSとして誕生したのです。S-OSという企画を最も特徴付ける出来事もこの号にありました。EDASMの代替ともとれなくもないS-OS"MACE"ですが、アプリケーションとしてのアセンブラは後回しになり、なんとLispが発表されたのです。この後もProlog,Forthといった一味違う言語やオリジナルコンパイラが発表され、マシン語開発環境と共にS-OSのもうひとつの顔となりました。1986年2月号でディスク対応版S-OS"SWORD"が発表されると、それまでテープがハード的に対応できなかったシャープ以外のメーカーへのマシンに対する移植の気運が高まりました。最初に6月号でPC-8801に、翌7月号でソニーのSMC-777Cに移植され、以後PASOPIAやFM-7/77、X68000などにもS-OSの輪が広がっていきました。マシン語開発環境としてのS-OSはEDASM代替のZEDA、デバッガのZAIDに始まり、トレーサ、リロケータブルアンブラとリンカ、高級言語と見紛うものなどこれも多岐にわたり、ソフトハウスでも開発に使用されるほどでした。当初アドベンチャーはともかくシューティングタイプのゲームは無理だろうと言われていたのですが、なんと最初に掲載されたゲームはインベーダーゲームでした。共通のサービスルーチンのみを使用しているのにオープニングデモも滑らかに動き、見るものを唸らせ、その後の数多くのゲームに影響を与えました。共通仕様ではグラフィックは定義されていませんでしたのでキャラは全てアルファベットやカナでしたが、それでも様々なゲームが登場したのです。S-OSそのものは"SWORD"以来RAMディスクの追加とコマンドの拡張が若干行われた以外は大きなバージョンアップはしませんでした。そのままの仕様で、1995年12月号のOh!X休刊まで誌上での発展を続けたのです。S-OSの理念10年あまりにわたってOh!MZ/X誌で連載されたS-OSは、ひとえに「パソコンユーザーのレベルアップ」を目的に展開されてきたと言って良いと思います。そのシステムを維持するために、守られるべきルールがありました。●ソース公開どんなに長いプログラムも、必ずそのソースプログラムを掲載しました。これはBASICなどと同様、人のプログラムを読んでその動作を理解することで自身のプログラミングスキルの向上を期待したものです。マシン語のダンプリストで掲載されることの多かったS-OSアプリは両方とも同時を原則として掲載されることになりました。この趣旨はS-OSにとどまらず、他の企画や連載でもソース掲載が当たり前となりました。●アプリケーションは全機種で動作することどんなに優秀なアプリケーションでも、特定機種のハードを期待して書かれたプログラムでは全員が享受できません。共通のモニタコールを使用して、特定のハードを直接は叩かないようにするのが肝心です。●共通の切り口を介して、データを共有する例えばグラフィックなどは、その実現方法は異なっても、MAGICというグラフィックパッケージを介することでそのデータとプログラムを共有することができます。このように、ハードが異なってもスペックとして共通のものをもっているなら、共通の呼び出し窓口を用意すればそれで全機種共通となるわけです。Oh!MZ/X誌上では、S-OSシステムのことを「RPS(ロールプレイングシステム)」と呼ぶことがしばしばありました。これは、読者のスキルアップとともにシステムもレベルアップしていく、まさに編集部と読者をドラゴンを倒すべくレベルアップしていく勇者に例えていわれたものです。実際、最初につけられた名前"MACE"は多くのRPGにおいて勇者が最初に手にする武器「闘棍」のことです。これが"AXE"(斧)、"SWORD"(剣)とレベルアップしていくにつれて、ユーザーもまたレベルアップしていくというわけなのです。(1986.2)古い機種のためにいろいろ制限があります。英文字は大文字のみ、テープはMZ1200ボーのみ、画面は40桁のみ、メモリは48KBまで、ディスクは使用不可(I/Fが2Dに対応できないため)。そりゃまぁ改造すればなんとかなるでしょうけど。(1986.2)画面が40桁のみという制限があります。MZ-1500ではQDが使用できます。(1987.5)MZ-1500とはQDのサービスルーチンが違うのでそれに対応したもの。MZ-800まだMZ-800モードでは動かせていません。MZ-700モードで起動して、PCGを設定しモニタをMZ-1Z009Aに入れ替えてとりあえず使っています。(1986.2)X1と共にスタンダード的存在です。(1986.6)メモリの上位にQDサービスルーチンを配置してMZ-1500同様の環境を提供しています。(1986.8)漢字が使用できます。アルゴ機能も生きています。ディスクフォーマットの都合で2DDでも512KBしか使用できませんが、システムを残り128KB内に記録することでディスクを有効利用しています。1989.2)スタンダードです。FDのフォーマットが同じなのでMZ以上に使いやすいとの話もあります。(未発表)MSX版の作者による未発表版。Huモニタを使用せず、ほとんどを作り直した高速版です。テープが使用できないなど、一部制限があります。1987.12)漢字が使用できます。システム辞書も使えます。BIOSに任せてあるので2Dの他2DD,2HD,HDDでも使用できます。1987.9)最初88にはROMルーチンを使用したものが移植されましたが、80用兼用としてオールRAM版があらためて移植されました。HuMonitorを移植するという手法を用いて、作業の簡略化を図っています。(1986.7)メディアの都合で1DDのみとなっています。CP/M(SONY-Filer)のディスクをアクセスできます。(1987.12)「Oh!PASOPIA」休刊の置き土産として発表されました。PASOPIA7用はMZ共通テープフォーマットをサポートしています。(1987.8)Z80エミュレータ版とZ80カード版があります。(1990.6)Z80エミュレータを使用しています。2Dディスクはイメージファイルで扱います。このリンク先は「改良版」としてOh!Xにディスクで添付されたものです。(1990.6)X1版の移植というスタンスです。X1用のMAGICも使用できます。2DディスクはイメージですがPC-286系統なら直接読み出しも可能です。ダウンロードできるのは昔MAX-BBSという草の根BBS局にアップされていたもので、IXL/IXH等の使用が可能になるなどOh!X掲載時よりも機能が追加されています。ソースも添付されています。FP-1000/1100FPユーザーズクラブで発表されました(Oh!MZ/Xでは未発表です)。(1993.7)8ビット機で唯一イメージファイルを使用します。ダウンロード可能なものは未発表の最終版です。巷に溢れるMSXエミュレータでは動作が怪しげなものばかりのようですので、実機でのご使用をお勧めします。6.1,IRIXへのポーティングが確認され、BeOSやLinuxへも可能になっているようです。β版ではありますがついに一般公開されました。あるウィンドウでREDAを立ち上げ、別のウィンドウでソースを書き、元のウィンドウのREDAにカット&ペーストで流し込み、アセンブル&実行するとか、UNIX環境に慣れた人には格別の使い心地があるシステムになっているようです。Windows95/98/NT/XP上記UNIX版をCygwin環境によってWin32へポーティングしたものです。見た目はDOS窓で動きますが、立派なWin32アプリです。ポーティングの際にはソースファイルの手作業による変更は伴っていないことから、移植性の高さが伺えます。パッケージにはCygwin環境がない人(がほとんどでしょうが)のために実行バイナリを入れてあります。これで、S-OSの野望は世界に広がったか...(本当に広めたかったらせめて英文ドキュメントを入れないとねぇ)。PC-6001mkII/6601/6601/SRモード5・40桁×20行で動作するSWORD。残念ながらメモリマップの関係で初代PC-6001には非対応ですが、これでNEC製Z80パソコンのほとんどをカバーすることになりました。CP/Mの移植(I/O記事の追試)もあわせてどうぞ。S-OSの派生OSX-DOSメモリの上位にシステムを置く、"SWORD"とソース互換のX1シリーズ用OS。同じシステムコールは持っているものの、エントリアドレスが全然違うのでそれ用にアセンブル/コンパイルし直さなくてはならないのですが、主要なアプリはすでに移植済みとなっています。マシン語開発環境としては最高とされています。Los-Angeles"SWORD"とサブルーチンエントリ互換で、ファイルフォーマットがMS-DOS互換のX1シリーズ用OS。Magazine(通称"らばま")」ブラウズ用に開発したものが元になっています。HuMonitorを使わずにBIOSからフルスクラッチで書かれています。クローンオリジナルのX1コンパチIOCSを備えたゲーム用OS「Kanrinin/3」上で動作する、S-OSエミュレータです。2本のゲームとファイラーがサンプルとして収録されています。実装されていない機能がまだあるので、動作は不完全です。登録してあるアプリは、上記Win32版エミュレータにてコンバートしてあります。それぞれのファイルには先頭に18バイトのヘッダがついていますので、直接転送した時にはそれを取り除いてください。複数ファイルの組み合わせになっているものはLHA/ZIPにて圧縮してあります。各ファイルが正しく動くかどうかの保証はいたしません。バグがありましたら修正して送っていただけると幸いです。(1987.6)EDASM互換となるエディタ・アセンブラです。「改造版」ではラベルテーブルにハッシュを取り入れ、「3」ではハッシュテーブルの改良と変換テーブルの効率化を図ることでアセンブル速度を向上させています。分割アセンブルにも対応しています。1993.12)ZEDAからさらにアセンブル速度が高速化された他、エディタ部の切り離し、エディタのタブコード対応などの機能向上が図られています。(1990.7)MACRO-80ばりのリロケータブルアセンブラです。REDA等と若干文法が異なっています。リロケータブルバイナリを出力するので、最終的なバイナリを得るにはリンカのWLKが必要です。(1990.8)WZD専用のリンカです。WLBで作ったライブラリをリンクすることもできます。(1990.10)ライブラリアン。これら3本のWシリーズはSmall-Cのコンパイルに必要です。(1990.3)もはやアセンブラの域を越えた、超多機能マクロアブソリュートアセンブラ。A,HLレジスタを犠牲にしてZ80CPUのニーモニックの直交性を高くしています。ループ命令や条件分岐など高級言語に匹敵する擬似命令も備えています。結果としてどのようなコードが出力されるかを知っていないと危険なので初心者には薦められませんが、それがわかれば非常に強力なツールとなるでしょう。(1985.7)ZEDAと共に発表されたデバッガ。トレース機能はないので、次のZ80TRACERと組み合わせて使用します。(1986.6)ZAIDとペアで使用します。制作者は元々トレーサというものをその名前しか聞いたことがなかったのですが、見事に使えるツールになっています。プログラマの求めるものへ自然に行き着くということなのでしょうか。(1988.4)ZAID+Z80TRACERに機能を加えたものです。(1985.8)ソースジェネレータです。(1988.12)ZINGを拡張し、分割アセンブルに対応したソースを出力するようにしたものです。(1989.5)SOURCERYにタブコード出力を付加し、文法をREDAに合わせた(ZEDAのマクロを削除した)ものです。(1987.9)ジャスト2KBの逆アセンブラ。完全リロケータブルプログラムとなっています。(1992.12)EDITの出力する「UPDATE.$$$」を参照して、効率良くコンパイル・アセンブルを管理します。(1985.6)MacLispを参考に作られた、CP/M用のフルセットLispに匹敵するLispインタプリタ。前に掲載されたMZ-1500用Prologの反響が大きかったのか、早々の掲載となりました。(1986.3)これも清水和人氏によって連載されたFORTHの解説の反響によるところが大きいでしょう。(1988.1)ローカル変数や再帰定義など、およそBASICとは思えない強力な整数BASICです。そのサンプルCにも似た関数型言語です。Cのようには欲張らず、でも必要な機能は全ておさえてある人気の高いコンパイラ言語と言えます。リダイレクション・MAGICサポートがあります。1991.7)SLANGに実数演算命令を追加したコンパイラ。実数演算ライブラリSOROBANが必要です。(1989.10)GAME言語やT.T.L.等を意識して作られた記号型言語。TTCがコンパイラで、機能拡張した上でインタプリタにしたTTIが発表され、さらにその機能をサポートしてTTC++が発表されました。(1990.12)言語構造はFORTHのようなスタック型だが、文法はBASIC似な言語。(1991.12)CP/M用のSmall-Cの移植版です。制御関数もひととおりあってそこそこ使えます。(1986.5)標準的な全画面型スクリーンエディタです。1988.9)キャラクタベースながら立派にマルチウィンドウしているエディタです。(1988.9)その名の通りわずか750バイトの超小型エディタ。1993.1)タブコードに対応したエディタです。後に「UPDATE.$$$」出力にも対応しました。(1992.11)REDAのエディタ部分を抜き出し、MAKEのためのテンポラリファイル「UPDATE.$$$」を自動生成する機能を追加したもの。(1995.7)同じくタブコード対応のエディタ。専用のラインプリントルーチンがあればカラー表示されます。(1986.4)倉庫番のようなルールで、宝石をゴールに運ぶパズルゲーム。(1986.4)マイコンプログラムの定番。(1986.8)これも定番ですね。コンピュータと対戦します。(1986.11)PITMANのような(ってこれがわからんか)パズルゲーム。マップ上の宝石を集めるのですが、プレイヤーはハシゴでないと上へ登れず、トンネルを掘ると移動したあとには上から土が落ちてくる...。(1986.11)ダンジョン型RPG風迷路ゲーム。キャラクタではありますが3D表示します。(1987.2)限られたキャラクタで、できうる限り絵を描いたアドベンチャーゲーム。(1987.4)標準ルーチンだけでここまでできる!デモ画面は一見の価値あり。(1987.4)最初の横スクロールシューティングゲーム。(1987.8)並んだ碁石を全てとればクリア。動かすと壁か碁石に当たるまで止まらない駒を使います。WARSの縮小版(画面をメモリに見たてるのですが、ちょっと狭いので本物と同じ容量にはなりません)。戦うプログラムをメモリに展開し、最後に生き残ったスレッドの方のプレーヤーの勝ち。(1987.11)いわゆる「西洋双六」。いっても、室町だったか以前の双六というのはバックギャモンのことを指すんですってね。(1988.11)縦・横のスクロール型シューティングゲーム。3は予告されましたがボツになったようです。それに5部構成だったような気が...。(1988.5)最初にMZ-80Kに書かれた古典ゲーム。迫りくるヘビの襲撃にどれだけ長い間地底基地を守りぬけるか。(1988.6)なんとLisp-85用の口説きゲーム。ただの一本も投稿作品が掲載されたことのない言語に、よもやこんな作品が登場するとは...。COMMANDERなんですけど、爆発シーンが凝っています。画面のあちこちで爆発させれば、スクリーンはもう満開。(1989.7)いわゆるチクタクバンバン。TTCのサンプルプログラムとして発表されました。(1989.9)日経サイエンス誌89年7月号に紹介された生物進化シミュレーション。SOROBAN要です。(1989.11)TTIのサンプルプログラム。特定の3つのブロックを並べるとクリアとなるパズルゲーム。(1990.1)いわゆるスネーキーですかね。網をはって餌を捕らえられるところに特徴があります。(1990.4)ファジーシミュレーターです。した理論に基づいて制作されています。(1990.6)MAGIC要。コンピュータスカッシュです。BILLIARDS(1990.9)MAGIC要。あのビリヤードが全機種共通のプログラムで遊べます。(1991.1)かつてテトリスの次に流行し「落ち物」というジャンルを不動のものにしたゲーム。(1991.2)別名YATHEE。5つのサイコロをふって、ポーカーのような役をひとつずつ組み立てていくゲームです。(1991.3)要は雪合戦なんですけど、S-OS標準キャラのみで作られたコミカルなプレーヤーが秀悦です。(1991.4)ページワンのローカルルール。(1991.11)死ぬと踊る異教徒を溶岩で殺す異色ゲーム。(1992.1)盤に書かれた番号を手がかりに、盤を線で一筆書きするパズルゲーム。(1992.2)スタートレック風シミュレーションゲーム。エネルギーは敵から略奪するという、元ネタからするとかなり海賊的なゲームです。(1992.3)Windowsにあるソリティアというのは、正式にはこの名前です。(1992.10)Small-Cで制作された横スクロールシューティングゲーム。(1993.2)「21」ですよね。(1993.6)言わずと知れた「オクトリバーシ」。(1993.9)説明不要。(1994.11)縦型シューティングゲーム。シンプルながら、敵の種類と出現パターン、攻撃パターンでゲームに彩りを添えます。(1995.6)さめがめ。(1995.8)同じ数字か同じマークのカードを出しつづけることで手札を減らしていくカードゲーム。(1995.9)こちらもミサイルコマンドのリメイク版。本来トラックボールを使って狙いをつけるシステムを、フルキーボードを画面に対応させることでトラックボールなしでも操作感の良いゲームとして仕上げてあります。(1995.10)特定のキューブをルールどおりに挟んで消すパズルゲーム。重力がありますので下に何もないと落ちていくところは、グラブニック(パズニックの派生)に良く似てます。(1995.11)ピクトパズルのソフトです。(1985.8)どんなシューティングゲームでも、B(Back、背景),E(Enemy、敵),M(Missile、自分と敵の双方の攻撃),S(Ship、自機)の4つの要素からなります。そこで、共通のシステムにてこれらの移動・衝突の管理をしてしまおうという、ゲーム開発パッケージなのです。1994.6)BEMSを引き継ぐゲームコアシステム。BEMSのようにゲームの大部分をパッケージ化するのではなく、もっと基本的でどのようなゲームにも必要な機能をパッケージ化してあります。その分利用する側の負担は増えているのですが...。1993.8)MACINTO-SはS-OS初の投稿掲載プログラムです。S-OS"MACE"発表時からあった128バイトサム方式のチェックサム自動計算機能を備えるマシン語入力ツールです。単純サムでは縦横サムをとっても100%信用できるわけではないので、総合サムにCRCチェックバイトを採用したMACINTO-Cに切り替わりました。CRC演算が全く同じになる確率は極めて低いので、入力確認に非常に有効です。MACINTO-Sは完全リロケータブルです。(1986.12)情報処理試験に欠かせない仮想CPU。連載中に試験の要項が変わったので、連載側も新たに対応したものです。(1986.7)「ハード版S-OS」を目指して設計された「共通I/Oポート」に接続されるFM音源用のツールです。他にも8251使用のRS-232Cボード、リレーによるリモコンロボットコントローラがあります。(1986.10)不意のファイル消去、システム暴走によるディスク消去に対応できるディスクエディタ。メディアがなんであっても管理しているクラスタが同じ大きさなのでFDDもHDDもRAMディスクでもなんにでも使えます。このDREAMはRコマンドでビット反転モードに入れるS-OSUC版です。(1987.7)テキストアドベンチャー作成ツール。CONTEXは完成したシナリオデータをゲームに変換する一種のコンバータ。MASTERはシナリオの作成をしながら制作できるインタプリタ。(1987.3)「カリグラフ」と呼ばれる線画アニメの管理ツール。(1987.8)専用ディスクに記録した漢字データをMAGICによって表示させるシステム。漢字はストロークデータとして入力するので、拡大してもそれほど崩れず表示されます。2Dディスク1枚で第一水準がまるごと収録できます。発表当時はJISコードに対応していましたが、現在「S-OS通信」で使用されているものはシフトJISコード、縦8ドット表示、漢字ROMがあればそれを優先という仕様に変わっています。(1987.11)0番地と任意の番地から始まるプログラムオブジェクトを生成しておき、そのオフセットの差を使ってリロケータブルファイルを作るツール。WZDで生成されるリロケータブルバイナリとは違うので注意。(1987.12)タートルグラフィックパッケージ。いわゆるLOGOのような描画システムを提供します。どっちかっていうと、FORTH向き。(1988.7)マルチウィンドウドライバ。S-OSのシステムコールのかなりの数にフックをかけて、通常のテキスト出力をマルチウィンドウ対応にします。ウィンドウが隠すエリアの保存とか、ウィンドウシステムが持つべき機能をフルに搭載したものです。(1989.3)実数演算ライブラリ。REALの実行には必要です。(1989.8)元々Small-Cを移植した石上達也氏がソースを転送するために制作したもののようです。(1992.8)アセンブラソースを解析して、最適化を施します。Small-Cの実践講座として掲載されました。1992.6)MS-DOSライクなコマンドとバッチ実行環境を実現するシェル。(1992.9)3DモデラとSLANG用データコンバータ。(1995.12)ソフトウェアでD/A変換を行う本物のPCM再生プログラム。S-OSが移植されていたほとんどのマシンに、そのマシンのハードにあわせて制作されたS-OSの理念の王道を行くソフトとも言えます。アプリケーションの数々・自主流通分これまで制作されたS-OS用ソフトをここで紹介します。希望の方は説明と共にプログラムをこちらまでメール等してお送りください。原則としてここでダウンロードできるようにすることとしますが、もしリンク先でダウンロードできるようになっていればそれでも構いません。WINGRING/SOURCERYを元にした、ソースジェネレータ。数値表記などをMS互換とし、ソースの移植性を高めることを狙ったものです。解説8080/Z80を主なターゲットとするクロス開発ツール。これまでもMZやX1、MSX、PC-6001といった多数のマシンをサポートしてきましたが、ついにS-OS"SWORD"にまでも対応。Small-CベースのCコンパイラを使った開発が可能になります。S-OSユーザーズクラブとはS-OSに関するサークルはこれまでいくつもありましたが、最も有名で最も長く活動していると自負しているのが我がS-OSユーザーズクラブ(以下S-OSUC)です。S-OS通信についてS-OSUCが不定期にディスク会報として発行していたのが「S-OS通信」です。各機種用に自動起動システムを内蔵して、100%S-OSのツール上で閲覧できるのが自慢でした。ここでは各バックナンバーの抜粋をご覧いただけます。記事中の募集事項であるとか価格情報は掲載当時のものです。住所など一部変更されているものもあります。