Oh!X

概要

日本ソフトバンクではかつて Oh! シリーズとして『Oh!PC』、『Oh!FM』（後に『Oh!FM TOWNS』）、『Oh!HIT BIT』など機種別パソコン雑誌を発行しており、そのうちで『Oh!MZ』はシャープのMZシリーズを対象としていた。シャープからは後にMZシリーズとは別にX1やX68000シリーズが発売され、次第にそちらの方がシャープのパソコンとして主流となったために誌名を『Oh!X』に変更した。
対象機種の衰退につれ1995年12月号を最後に休刊したが、その後ムックとして復刊し2001年までに5号が発行された。
続刊を望む声は強いが、当時の編集関係者は既に別会社に移り、公式サイトも閉鎖されており、復刊は困難である。

記事

内容は、広告、機種に関わる製品情報、投稿記事などによって構成される。
初心者向け記事も存在するが、概して記事を理解するための努力を読者に要求していた。マシン語のダンプリストが掲載された場合は紙幅が許す限りソースリストも掲載された。
そのため読者に「Oh!MZはドラゴンだ」といわしめた。これは『Oh!MZ』をファンタジーロールプレイングゲームで倒すべき（手強い）相手であるドラゴンに例えたものである。
ダンプリストの入力には、セルフリロケータブルに作られたMACINTO-Sという入力ツールが用意され、縦横、ブロックのトータルサムがリアルタイムに表示され、その入力を助けた。ただし、データなど、配列、配置によってはそれらのチェック情報のみでは誤入力が発生するケースもあったため、精度を上げるべく、トータルサムの代わりにCRCチェックサムをブロックごとに表示するMACINTO-Cというソフトウェアが提供された。MACINTO-Cは、各機種用のモニタを利用したものと、S-OS用、配置アドレスの違う二つの版が用意された。
また、同じ出版社のOh!PC誌やOh!FM（Oh!FM TOWNS）と異なり、他機種への露骨な批判が多いことでも知られており、中にはシャープ製のPCを偏愛する余り明らかに偏った記述もあり、一部では顰蹙を買っていた。

オークスターのお姉さん

初期のOh!MZの表紙にはアメリカンコミックに描かれているような肌の露出が多い女性が描かれており、目次ページ（創刊号では編集後記）には表紙絵についてのストーリーとされるものが記されていた。この表紙のおかげで本屋によってはアダルト雑誌コーナーに置かれていたこともあったと後の誌面で語られている。原画提供はマジックバス。
その後一時期はシド・ミードによるブレードランナーのコンセプト画が用いられたり、ティム・ホワイトが表紙画を担当したこともある。

THE SENTINEL

1985年6月号-1995年12月号の連載記事。Z80を使用した機種に共通のプラットフォーム、アプリケーション、解説記事が提供された。
「THE SENTINEL」は、元々はこの特集の冒頭記事名で、当初は特集に関する読者からの投書欄であったが、後に編集部からのメッセージ欄となった。この特集記事全体を指す名称が無いため、その代わりに使われることもある。THE SENTINELは監視者を意味し、ここで言う監視対象はドラゴンとされる同誌を指すとされる。
1985年1月号に掲載されたEDASMという同誌が対象とする機種のアセンブラの特集記事で異機種間の共通入出力処理系の構想が発表された。それに対する読者の反応が本特集記事へとつながっている。
コーナーとは別ではあるが、S-OS以降にも、同誌はいくつかのソフトウェアによってメインと機種依存部を分けることでの複数機種へ対応する試みを行っている。1990年4月号に掲載されたThe Cave of DalkというオリジナルのRPGについては、編集部の意向で、X1版として完成されたものを機種依存のI/O部分を分離する作業を行い、MZ-2000/2200、MZ-2500、X1シリーズで動作するプログラムとして掲載された。X1のYM2151によるBGMがあり、残りはBeep以外無音ではあるが、画面の方は同じように動作するように作られていた。なお結果的にこのゲームがMZ-2000/2200用最後の機種別プログラムの掲載となっている。ユーザー投稿ではあるが、後述のMZ-700版のスペースハリアーも機種依存部のパッチによってX1で動作させるプログラムが公開されている。

S-OS

S-OSは、この特集で提供されたZ80のコードをコアとした、プラットフォームの名称である。S-OSのバージョンは、数字ではなく、当初のバージョンは戦棍を意味する"MACE"、次のバージョンは剣を意味する"SWORD"という名称が付けられた。これは、当時流行していたロールプレイングゲームで多用する武器から取られており、「S-OSを読者参加で成長させていきたい」という編集部の意向に基づいている。ただし、名称としてはMACE、SWORDの2つのみで、その後は若干の拡張が行われたものの、拡張キットの実装により、システム空間として予約されていた領域の空きがほぼなくなったこともあり、コアとなる共通仕様には大きな変更はなされなかった。初期に発表されたシステムでは、機種依存する部分以外のコマンドシェル等も共通のソースからビルドされている。また、高機能な機種に移植されたものは機能を利用するための拡張がされているものもある。CPUが共通であっても動かすバイナリは機種ごとに作成されることが当たり前の時代にあって、同一のバイナリが異機種でも動作することも珍しい試みであった。
1985年6月、カセットテープベースのMACEが発表された。ファイルフォーマットをMZフォーマットの2400ボー（ただしMZ-80K/Cはハードウェアの制約により1200ボー）で統一することでファイルを相互にやりとりできるようにし、内部的には表示、キー入力などの入出力を特定の条件でそろえることにより、ソフトウェアの開発を簡略化させた。
1986年2月にフロッピーディスクの普及に従い、ディスクベースのSWORDが発表された。SWORDでは、X1のHu-BASICフォーマットがフロッピーの共通フォーマットとなっている。ディスクに負論理で記録され表裏が逆に取り扱われるのが標準であるMZシリーズではディレクトリエントリの先頭部分にIPLに使用するデータの一部が文字列で表示されるが、ディスクの扱いを意識できるよう、そのまま表示されるようになっている。データレコーダ用のソフトウェアについても、ほぼそのままディスクで使用可能になっている。オフィシャルなSWORDはバッチ処理と、いくつかのコマンドをセットにした拡張キットが発表され、以降の移植などはこの環境を基準に行われることもあった。多くのモニタではディスクへの入出力は対応していないことから、大きなバイナリプログラムのローダなどにも使用することが可能である。オペレーティングシステムではなく、あえて最強のマシン語モニタを自称しているのには、メモリの保護など、システム側から動作に干渉するような機能が無いことや、システムコールなどが整備されていないことが挙げられる。S-OS対応アプリケーションは読者投稿も交えてBASIC、FORTH、LISP などの言語や、インベーダーゲームやテトリスをはじめ、様々なスクロールシューティングゲームまで幅広い作品が掲載された。
これ以前には、多機種で共通に使用できるディスクオペレーティングシステムとして CP/M が比較的普及していた。とはいえ、当時は CP/M の稼動に必要なフロッピーディスクドライブが搭載されていない機種も多かったうえに、CP/Mそのものの価格に加え、CP/M上で動作するアプリケーションソフト（言語やツールの類）はさらに高価であり、一般に普及していたとは言い難い。
しかも、連載開始当時はオープンソースソフトウェアの思想がまだない時期であって、CP/Mでもソースコード公開のアプリケーションソフトはほとんど無かった。プログラミングの入門記事という側面もあることからこのコーナーでは、再掲載時、並びにPC-286版等の例外以外はダンプリストのみではなくソースコードの掲載を行なっていた。しかも連載第一回に掲載されたのがLISPインタープリタであったことに見られるように、単なるプログラム作例公開にとどまらない連載であった点は、当時として極めて画期的なものであった。またここで公開された開発ツールは市販されていたものに匹敵するほどの物も多く、アセンブラ、デバッガ、コンパイラ、ソースジェネレータなど、シンプルな物から、多機能であるもの、リロケータブルな物など同じカテゴリのツールも再掲載を兼ねて複数掲載されている。
同誌の休刊間際に発表され、販売の見込まれる部数の問題から店頭に並ぶことは無かったが、ソフトウェアの頒布を目的として、直販の形で一度書籍化されている。その際、一部の掲載プログラムについて、MOOKでの再頒布のみの許可、並びに、フリーでの使用での可否の確認が取られ、正式にコピーフリーとなっているソフトウェアもある。ただし、このMOOKは、刊行が末期だったことや投稿の減少から投稿の呼びかけを誌面で行うような状況だったことや通販のみという流通などから、現存する実数は少ない。
同誌以外で言及された記述としては、雑誌『ハッカー』の書評欄で「ただのジャンプテーブルのようなもの」と評されたことがある。

仕様

MACEでは、当時の同誌が対象としていた機種の多くに搭載されていたZ80プロセッサをコアに、40桁25行の英数字と半角カナのキャラクタ画面、MZフォーマット、2400ボーのデータレコーダのサポートのみを基本とする。
$2FFF迄がシステム空間として予約されており、シェル等の共通部分と、ローレベルな処理を行う機種依存部で構成されている。アプリケーションプログラムは、$3000から、MZ-80KのVRAM開始位置直前である$CFFF迄のユーザ空間に配置、表示、入出力については、レジスタに引数を定義し、ジャンプテーブルになっているアドレスをコールすることによって行う。
SWORDではそれらに加え、Hu-BASICフォーマットのフロッピーディスクをサポートし、グラフィックスVRAMがある機種では、拡張ワークエリア、80桁の表示モードも標準的にサポートされる様になった。
また、ハードウェアについても、共通I/Oポートが提案され、ユニバーサル基板の外に共通化されたハードウェアを接続するという試みもあった。ただし、使用可能な機種は少なく、実際に作例として掲載されたのは、YM2203を二つ搭載したFM音源ボード、8251使用のRS-232Cボード、リレーによるリモコンロボットコントローラがあり、FM音源用のツールには、S-OSで動作するように作られたものも掲載されている。こちらはかなり多くの配線とパーツが必要なハードウェアということもあり、ハードルは高く、余り普及、成功したとは言い難かった。
グラフィックスのサポートはS-OSには無いが、コーナーとは別に、吉村功成によるMAGICというグラフィックスインタープリタが発表されており、S-OSアプリケーションとしてグラフィックス表示を行う場合には、これを利用する。また、拡張キットでは、グラフィックVRAMをRAMDISKとして利用する試みもあった。
システムはBIOSに相当するモニタプログラムや、ROMに搭載されたIOCS、BIOS等をラップする形で行われ、必要に応じて入出力条件を調整してモニタ、BIOS等に処理を引き渡す。具体的には機種によって異なる文字コード、モニタがサポートしないFDD等の追加デバイスのサポート、シェルのコマンド処理などは、S-OS本体に直接組み込まれている。文字コードについては、初期の仕様として割り当てられたベタとチェッカのコードは、ソースコードでよく利用する{}と重なっているため、後期に移植されたシステムでは括弧の方が割り当てられるケースが多かった。これらの処理は、速度としてはデメリットとなるものであるが、モニタを残すことにより、システムのプログラムを小さくできるほか、高機能な機種のシステムでは機種固有の日本語入力、漢字テキストVRAMのサポートなどの利用を容易にし、共通システムとしての顔だけではなく、その機種での開発システムとしても利用できる側面もあった。機種によってフリーエリアや、特殊ワークの有無、表示桁の違いなどが有るため、最小構成を想定しないソフトウェアの場合は、フリーエリア、特殊ワークエリアなどの値をシステムのワークエリアを確認のうえ、動作するように作らなければならない。また、本誌で掲載された修正を適用しても仕様表と異なる動作をするシステムルーチンがあるほか、機種によってコールした後の状況は必ずしも一致しないため、仕様表で保存されないとされるレジスタは破壊されることを前提にする必要がある。本誌に掲載されたプログラムであっても、特殊ワークサイズを固定値で利用しているものや、実挙動で問題が無いため仕様として未定義なワークエリアの初期化などを期待した実装など、動作チェックこそされているものの、必ずしも互換性を確認のうえ掲載されているわけではない。
MZフォーマットで比較的高速なフォーマットのみであったカセットテープデバイスは、他社の製品ではその仕様上、互換性を維持することができなかったが、フロッピーディスクへの対応により、他社製品にも移植されていくようになった。これにより特定機種を対象とした雑誌としては珍しく、対象外の機種のプログラムが掲載されるという現象にもなった。実際に、一部の掲載アプリケーションは、PC-88ユーザー等の手によるものもあり、成果に対しては、機種の壁など関係なく褒め称えようという同誌の性格も示すものになっている。
なお、前述のとおり、特定のエントリアドレスをコールした結果が保証される場合は互換性が維持出来るため、モニタをコールするのではなく、エントリの書き換えによって独自の最適化された表示ルーチンをコールする改造や、速度が必要なエディタなどのアプリケーションでは、表示ルーチンをコールする代わりに、各機種専用のモジュールをコールすることで高速化するアプローチもあった。
また、モジュール単位での入れ替えに留まらず、モニタ部分、ファイルシステムも含め書き直された互換システムも作成されている。MZ、Xシリーズ以外への移植版については、草の根のユーザーグループ、パソコン通信等で頒布されたもの、Oh!PASOPIA誌上等で公開された物などもあるが、機種別雑誌である同誌にソース、ダンプリスト共に掲載された事が異例である。
初期は多くの機種が2Dフロッピーであったことにより露見しなかったが、ファイルシステム自体の変更は行われなかったため、2DD以上の容量を持つメディアに対しては、512KB迄で利用する、ディスクイメージを利用するなどの対応が取られ、後期には必ずしもメディアまでは互換性が維持されているわけではない。その場合でも、利用できないエリアにシステムを書き込むなど、利用の工夫が各々見られた。また、亜種に於いてはMS-DOSフォーマットを読み書きするシステムも存在する。移植に際してCPUが異なる場合は、CPUエミュレーションや拡張カードへの対応によって対応している。

主なアプリケーション

掲載開始から、終了まで、多くのアプリケーションが掲載され、常にバイナリダンプだけではなく、アセンブラで作られたものについては、左側に出力されるバイナリも書かれたソースコードも掲載された。誌面の都合上ソースコードが掲載できない場合は、別の号で掲載されたが、ソースリストについては製作者が独自に作ったツールなどによるものも含まれ、必ずしも連載されたツールのみでアセンブル/コンパイルできるものだけではなかった。移植された言語や、新規に開発された簡易言語等、開発ツールも多く発表されたが、マシンパワーやメモリ容量等から、アセンブラやそれに関連するツールの数が多い。

グラフィックスインタープリタMAGIC

1986年9月号に掲載された、当時アルシスソフトウェアに在籍していた吉村功成によるMZ、X1、PC-8801用のグラフィックスインタープリタ。
X1のVRAMもエミュレートするPC-286/386用のS-OSでも動作する。
ワイヤーフレームとはいえ、3Dでの表現も可能にし、そのライン描画は当時の機種においては高速であった。
後にX68000用にもリファインされ、SION、SION IIというサンプルプログラム兼付録ゲームの描画ライブラリとしても利用されている。

SIONシリーズ

付録ディスクに収録された描画ライブラリのデモとして使われた一連のシリーズで、IIIは欠番である。初代はX68000版のリアルタイム3DグラフィックパッケージMAGICと、Oh!X標準ドライバとしてADPCMを同期して演奏することを可能にしたOPMDのサンプルとして作成された。ADPCMの発声は、Yコマンドを利用して行う形になっている。作曲者は、西川善司。ゲームは、ワイヤーフレームによって描画された3Dのシューティングゲームとなっている。
SION IIは、MAGIC4並びに、Z-MUSICのサンプルとして収録され、初代と共に、ワイヤーフレームによって描画される3Dシューティングゲームとなっている。SION IIでは、全体の解像度が低く設定されていることもあり、1キャラクタ辺りの頂点数も増え、動作速度も改善された。メインプログラムは浜崎正哉。Z-MUSICは、標準のMMLよりも細かな制御を可能にした内蔵音源、ハードウェアMIDI音源に対応した音源ドライバであり、ゲームのBGMは、CM-64/MT-32、SC-55に対応し、SC-55版ならびに本編サウンドエフェクトは、初代から引き続き西川善司が、MT-32版は高橋哲史、CM-64版は瀧康史、内蔵音源の打ち込みは、進藤慶到が各々担当した。音源ごとに別のデータが作成されたが、CM-64版はオープニングと、エンディング以外は、MT-32と同じになっている。内蔵音源については、データ作成者が作曲を苦手とするため、Iの曲、並びに他の音源に用意された楽曲をコンバートしたものになっているが、サイン波の変調から、音を生成するという構造上、ADPCMを併用した場合でも、MIDI音源よりも貧弱になりがちな内蔵音源でありながら、パーカッションのADPCMへの割り当てや音色パラメータ、打ち込みの技術により、外部MIDI音源に引けをとらない仕上がりとなっており、BGM、ゲーム性共に、当時の市販ゲームに匹敵するとの声もある。システムとしては、シーンごとにBGMを割り当てられるようになっているが、全てのシーンに曲を用意されたのは、MT-32版のみであり、SC-55については、最終ボスキャラクターのBGMが間に合わず、直前のシーンの曲がそのまま使われることになった。
尚、実行に大きな役割を果たすZ-MUSIC1.10とMAGIC4が非対応であるため、そのままでは双方共X68030では動作しない。Z-MUSICは対応版を使用しソースからコンパイルしなおすことと、実行ファイルはユーザーモードへ切り替えているところを削除し、全体をスーパバイザモードで動作するように書き換えたソースコードをアセンブルすることで動作するとしている。
2016年には、HTML5ベースのX68000エミュレータと、高解像度に対応する仕掛けによって動作するSION II HDが公開されている。表示領域の拡大や、VRAMへのアクセスパターンからフォントを推測の上、高解像度ベクトルフォントへ置換するなどの処理により、高精細な画面で動作させることに成功している。
2017年には、SION II 030 for X680x0が公開された。Z-MUSICはバイナリから対応版へのコンバートを行い68030に対応した版を使用し、ゲーム本体に動作させるためのパッチに加え、処理速度に関わる部分の調整などにより、高速な動作環境でもゲーム速度は一定となり表示フレーム数が増える形となっている。
IVはSLASHというポリゴンライブラリのデモとして、ポリゴンによって描画する3Dシューティングとして仕上がっている。プログラムを山田純二。BGMの作曲は高橋哲史、SE等を西川善司が担当している。

言わせてくれなくちゃだワ

毎年、5月号において読者の葉書投稿を特集して掲載した。同時に前年に掲載されたプログラムのバグ情報もまとめて掲載された。

「MZ-700 に不可能はない」

1986年11月号に読者投稿作品の MZ-700 用 TinyXEVIOUS が掲載された。1986年当時でも決して高機能とはいえなかった MZ-700 の特性を発揮させたものとして読者から高い評価を受けた。これにより「MZ-700 に不可能はない」とのフレーズが生まれ、オリジナルのシューティングゲーム、ライブラリなどの発表を経て、1988年10月号では、X1や、PC-88でも制限の多かったスペースハリアーをオンメモリで実現、掲載に至った。MZ-700の表示回路がテキストのみのサポートであるため、アトリビュートが背景色、文字色で別々に指定できることを利用し、チェッカのキャラクタをタイリングパターンに見立て40x25ピクセル36色として取り扱うという画面の精細さを割り切った実装となった。48KiBというサイズは、雑誌掲載のダンプリストとしては、かなり大きなものである。このMZ-700用スペースハリアーは、別の人物によってX1で動作させるためのパッチが投稿され1989年3月号に掲載されている。パッチサイズは3KiB程度で、機種依存部を書き換えることで実現している。X1のテキストプレーンは文字、背景を独立して色を定義できないため、タイリングパターンの一部をPCGに定義することで実現。音はPSGによって演奏する形となっている。

試験に出るX1

祝一平による、X1,X1turbo のハードウェア解説記事。後に単行本化された。

猫とコンピュータ

筆者である"キョウコさん"と飼い猫のホンニャア、そして家族の周辺とパソコンとの係わりを綴ったエッセイ。単行本が1巻のみ発売されたが、以降刊行されなかった都合上、全話は収録されていない。最後期には、MacintoshやWindows絡みのエピソードが増えていった。

知能機械概論-お茶目な計算機たち

人工知能を研究している筆者によるエッセイ。