Oh!X

『Oh!X』（オー! エックス）はかつて日本ソフトバンク（現ソフトバンクグループ）およびソフトバンクパブリッシング（現SBクリエイティブ）から発行されていたパソコン雑誌。本項では、前身の『Oh!MZ』（オー! エムゼット）についても解説する。

概要
日本ソフトバンクではかつて Oh! シリーズとして『Oh!PC』、『Oh!FM』（後に『Oh!FM TOWNS』）、『Oh!HIT BIT』、『Oh!Dyna』、『Oh!HC』、『Oh!PASOPIA』など機種別パソコン雑誌を発行しており、そのうちで『Oh!MZ』はシャープのMZシリーズを対象としていた。シャープからは後にMZシリーズとは別にX1やX68000シリーズが発売され、次第にそちらの方がシャープのパソコンとして主流となったために誌名を『Oh!X』に変更した。

対象機種の衰退につれ1995年12月号を最後に休刊したが、その後ムックとして復刊し2001年までに5号が発行された。

2023年9月21日、東京ゲームショウの4Gamerブースにて、当時のスタッフが参加した復刊版が2024年6月8日に発売されることが発表された。

歴史
1982年 5月 『Oh!MZ』6月号創刊
1987年11月 12月号より『Oh!X』に改題
1995年11月 12月号をもち休刊
1998年11月 復刊記念号発刊
1999年 5月 1999春号刊行
1999年 9月 1999夏号刊行
2000年 3月 2000春号刊行
2001年 3月 2001春号刊行
2024年 6月 「令和版Oh!X」刊行予定

記事
内容は、広告、機種に関わる製品情報、投稿記事などによって構成される。

初心者向け記事も存在するが、概して記事を理解するための努力を読者に要求していた。マシン語のダンプリストが掲載された場合は紙幅が許す限りソースリストも掲載された。

そのため読者に「Oh!MZはドラゴンだ」といわしめた。これは『Oh!MZ』をファンタジーロールプレイングゲームで倒すべき（手強い）相手であるドラゴンに例えたものである。

ダンプリストの入力には、セルフリロケータブルに作られたMACINTO-Sという入力ツールが用意され、縦横、ブロックのトータルサムがリアルタイムに表示され、その入力を助けた。ただし、データなど、配列、配置によってはそれらのチェック情報のみでは誤入力が発生するケースもあったため、精度を上げるべく、トータルサムの代わりにCRCチェックサムをブロックごとに表示するMACINTO-Cというソフトウェアが提供された。MACINTO-Cは、各機種用のモニタを利用したものと、S-OS用、配置アドレスの違う二つの版が用意された。

また、同じ出版社のOh!PC誌やOh!FM（Oh!FM TOWNS）と異なり、他機種への露骨な批判が多いことでも知られており、中にはシャープ製のPCを偏愛する余り明らかに偏った記述もあり、一部では顰蹙を買っていた。

創刊号
前述のOh!PCと時期を同じく刊行された。定価620円（翌月号からは480円）。104ページ（内、全面広告19ページ）。編集人は田鎖洋治郎（Oh!PCの編集人でもある）。副題は「MZ-80B K/C ポケコンシリーズ」。ページ数が少ないこともあり、製本は後の背表紙（ホットメルト接着）ではなく、ステープラーでの平綴じであった。目次に記載されている寄稿者は林 剛正、神谷 誠、粕谷昌朗、杉本 伸、関 克美、鈴木芳昭、T.マックガバン（Thomas Mac-Gaban、編集部訳の記事）、伊藤のりこ、高野庸一、有田隆也、山本 寛、大山 学（マンガ）。特集記事は「MZ-80KIIを生体解剖」など。日本ソフトバンク設立の1年後ということもあり、社員募集の広告も掲載されている。「Oh!MZ質問箱」は、おそらく編集者自身が考えたであろう質問に答える形になっており（質問者の名前や肩書きが記載されていない）、「市販されているパソコンで適当なものを教えてください」という質問に対し「MZ-80B、MZ-80K/C、PC-8001、ベーシックマスター、パソピアなど」と、シャープ以外のメーカーのパソコンも勧めている。

創刊初期の連載（途中でタイトルが代わったものは変更後のタイトル）
 絵夢絶登面白玉手箱／有田隆也
 PASCAL SB-4510入門／鈴木芳昭
 誰でもできる経営ゲーム／渡辺明
 ポケコンPC-1500入門／粕谷昌朗
 マシン語・魔神語・DEUS EX MACHINA／長瀬敏之
 COMPUTER CHESS／馬場隆信
 言いたい放題／伊藤のり子
 すぐに使えるプログラム／塚田洋

オークスターのお姉さん
初期の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は、刊行が末期だったことや投稿の減少から投稿の呼びかけを誌面で行うような状況だったことや通販のみという流通などから、現存する実数は少ない。

同誌以外で言及された記述としては、雑誌『ハッカー』の書評欄で「ただのジャンプテーブルのようなもの」と評されたことがある。

コマンド
そのコマンドは、OSよりもモニタに近く、一文字の命令にスペースによるセパレータを置き、パラメータを記述する。該当機種が機能を持っていないなど、使用できないものも存在する。

下記記述における#は、プロンプト。
#D <デバイス名>: ディレクトリの表示
#DV <デバイス名>: デフォルトデバイスの設定
#J <アドレス> 指定アドレスをコールする。
#L <ファイル名>[:<アドレス>] バイナリファイルのロード。指定アドレスに読み込むのみで、実行は行わない。
#K <ファイル名> ファイルの削除
#N <旧ファイル名>:<新ファイル名> ファイル名の変更。
#S <ファイル名>:<開始アドレス>:<終了アドレス>:<実行アドレス> 該当範囲のアドレスの保存。
#ST <ファイル名>:P(若しくはR) ファイルの書き込み禁止属性をPなら設定。Rなら解除する。
#M システムをモニタへ遷移する。
#! ブートコマンド。システムがリセットされる。
#W 80桁表示と40桁表示の切り替え。トグルスイッチになっており。実行のたびに切り替わる。

拡張キットでは、グラフィックスメモリを用いたRAMDISKが実装され、それにあわせて7KiB未満のサイズで且つ3000Hから実行されるプログラムはトランジェントコマンドとして扱う機能が追加された。データの退避にはRAMDISKの管理領域のうち容量から使われない部分が使用され、条件を満たすプログラムについてはその領域にメインメモリのデータを退避し、処理をシステムに戻すときに書き戻すという処理が加えられている。そのサンプルも兼ねてアプリケーションの形で、幾つかの外部コマンドが同時に掲載された。従来意味を持たなかった実行アドレスをロード後に呼び出す仕組みとそれに伴いテキストファイルによるバッチ処理も追加され、シェルには下記のコメント、ポーズに使用するコマンドが追加された。

# ファイル名 プロンプトとの間に半角スペースを記述することで、該当ファイルの実行を行う。ロード後の実行アドレスは、保存したときの値が使われる。テキスト形式の場合は、内容をコマンド列と解釈し、バッチ処理を行う。その後ろにパラメータを記述することで、実行したアプリケーションに対し、パラメータを引き渡すことが出来る。
#P キー入力を行うまで停止する。バッチ処理時のポーズ処理用。
#; 行末までをコメントとする。

デバイス名
A-D FDD
E RAMDISK
S 各システムの標準テープデバイス
T S-OS共通フォーマットのテープデバイス
Q クイックディスク

対応機種
移植された機種には以下のものがあり、多くは本誌に掲載された。長期にわたる連載であり、システムが無ければ動作しないことから、システムはダンプリストのみの再掲載が行われることもあったが、初回掲載時のままとなっていた。

それ以外に移植先の対象機種を扱う雑誌に掲載されたもの、個人が移植しパソコン通信等で頒布したものや、ディスクマガジンで使われたもの、改造された亜種などが存在する。

Oh!X掲載のシステムについては、休刊を前にフリーウェア化宣言がされているが、システムとしてはモニタを包含しているため、動作させるのにはメーカー側が著作権を持つモニタも必要である。そのため、それらの問題を含まずディスクイメージとして頒布されているのは、スクラッチから起こされたシステムか、他社の権利を含まないもののみである。

MZ-80K/C/1200 (1986年2月号掲載)
その本体仕様により、制限は最も多いと思われる機種。持っているキャラクタフォントから、英文字は大文字のみに対応し、40桁表示のみ。メモリマップの都合上、48KBまでしかユーザ空間を確保できない。CPUによる直接制御のため速度的に間に合わず、CMTは、MZフォーマットの1200ボーのみ。FDDは利用できず、拡張ワークエリアも利用不可。S-OS用として互換性を意識した場合、この環境が基準になる。
MZ-700/1500 (1986年2月号掲載)
拡張ワークエリアのサポートなし。テキストは40桁のみをサポート。MZ-1500ではQDに対応しているが、MZ-700ではサービスルーチンの違いから、QDは利用できない。
MZ-700(QD対応版) (1987年5月号掲載)
MZ-700でQDを利用できるようにサービスルーチンを変更したもの。
MZ-80B/2000/2200 (1986年2月号掲載)
X1と共に基本仕様にフルセットで対応している。
テキストVRAMの構造が単純であり、且つ、メモリ空間にマッピングされているため、CPUクロックが同条件であれば無改造でも表示速度は高速である。
ディスクの扱いとIPLが利用するデータの都合から、ディレクトリエントリにはゴミが表示される。
後に拡張キットによって、グラフィックVRAMをRAMDISKとして利用できるようになった。
MZ-2000/2200(QD対応版) (1986年6月号掲載)
標準のSWORDでは対応していなかったQDに対応したもの。
MZ-2500/2861(MZ-2500モード) (1986年8月号掲載)
テキスト漢字V-RAMによる漢字の入出力に対応し、同機の特徴であるアルゴ機能も利用可能。ディスクフォーマットの仕様により、2DDの内蔵ドライブでは512KBまでをファイルシステムとして利用可能。S-OSのファイルシステムとして利用できない領域にシステム本体を書き込み、有効利用している。
高機能でありフォントも高解像度で表示されるが、出力のための手続きが煩雑である都合上、S-OSとしてはMZ-2000モードで動作させるほうが6MHzモードでの動作をもってしても高速である。
X1/C/D/Cs/Ck/F/G/Twin (1986年2月号掲載)
MZ-2000系と同じく、基本仕様にフルセットで対応している。
ファイルフォーマットが同機の環境をベースとしているため、同機のBASIC等標準環境との相互のやり取りをする事が可能であり運用上の利便性は高くなっている。
X1turbo/II/III/Z/ZII/ZIII (1987年10月号掲載)
漢字VRAMに対応し、日本語表示、並びにシステム辞書が利用可能。デバイスアクセスルーチンにROM BIOSを利用することで、2Dの他2DD、2HD、HDDでも利用が可能。
PC-8001/8801 (1986年6月号、1987年9月号掲載)
最初に掲載されたものは、本体のROMルーチンを利用した物。後に8801だけではなく、8001用兼用としてオールRAM版が掲載された。簡易的にX1のHu-Monitorを移植し、その上に実装することで移植作業を簡略化している。
SMC-777C (1986年7月号掲載)
同機が利用できるメディアの都合で3.5インチ1DDのみ対応となっており、同機の標準システムであるCP/M(SONY-Filer)のディスクにアクセス可能。
PASOPIA/5/7 (Oh!PASOPIA 1987年12月号掲載)
Oh!PASOPIAの休刊時に掲載され、シャープ以外の機種では珍しくPASOPIA7用はMZ共通テープフォーマットでの入出力をサポートしている。
FM-7/77 (1987.8月号掲載)
本体のCPUがS-OSの標準と異なるため、Z80エミュレータによるものと、拡張機器であるZ80カードを利用したものが掲載された。
X68000 (1990年6月号、1992年6月号掲載)
Z80エミュレータによって動作し、ディスクは基本的にディスクイメージを利用する。2HDメディアについては、直接の読み書きが可能。
掲載は二度行われ、後者は改良版とされているが、別人による別の経緯で書かれたプログラムである。
改良版では、S-OS自体のルーチンがネイティヴなコードで処理されるため、Z80の機種と異なり、S-OSに依存する処理が多いほどパフォーマンスは上がる特性を持つ。
また、X1のグラフィックVRAMをエミュレートしているため、PC-286系と同じくX1のMAGICも動作させることが可能になっている他、仮想的に作られたZ80のメモリ空間の外にデバッガを内蔵し、標準の25行以外の部分にレジスタの内容や、実行中のコードを表示させながら動作させることも可能になっている。
PC-286/386/486/586/9801 (1990年6月号掲載)
簡易的な、X1エミュレートを行い、その上にシステムを移植したもの。X1のグラフィック制御をサポートするため、X1用のMAGICも動作する。ディスクイメージによってファイルの入出力は行うが、PC-286系統なら直接読み出しも可能。
MSX/2/2+/turboR (1993年7月号掲載)
MSX用ではあるもののBIOSを経由せず、仮想テキスト空間を併用したVDPの直接制御など、比較的凝ったつくりになっており、パフォーマンス特性が通常のSWORDと異なる。また、ゲームに便利なようにジョイスティックの入力も一部キーへ割り当てられている。同機がMS-DOSフォーマットのみを仕様としてサポートし、FDC等のハードウェアが規格として不定であるため、8Bit機への移植の中で、唯一ディスクの取り扱いにイメージファイルを利用する形になっている。また、前述のとおり、ハードウェアを直接制御する部分が含まれるため、エミュレータでの実行時には結果が実機と異なることもある。turbo-Rでの実行時には、非エミュレート環境では最速で動作する環境となる。掲載が末期であったことや、ファイルシステムの互換性、ユーザ層や、同機へは独自のツールなどが有ったことなどから、他の機種に比べ利用者は多くない。掲載されたもの以外にも没になった掲載分よりも前のものや、掲載後に漢字出力への対応したものなどが開発され、存在している。

以下は雑誌掲載されたものではないが現存若しくは開発が手がけられたもの。

X1/C/D/Cs/Ck/F/G/Twin(高速版)
MSX版の作者によって、Hu-Monitorを使用せずスクラッチから再度起こされたものが存在している。テープが使用できない他、互換性よりパフォーマンスを優先したコーディングにより、仕様が異なる部分が存在する。モニタを含まないため、再頒布が可能になっている。
FP-1000/1100
FPユーザーズクラブで発表されたが、雑誌などへの掲載はされていない。
MZ-800
所有する個人によって移植が試みられたが、現状はMZ-800モードで正式に動くには至っていない。
MZ-700(MZ-1R12対応版)
エミュレータでの利用を前提にMZ-1R12に対応したシステムが公開されている。ファイルの管理にディスクルーチンを流用するためFDDが無くてもサポートルーチンを必要とする。
UNIX
BSD/OSを基本として設計されたが、各種POSIX環境へのポーティングも行われている。直接ハードウェアを制御するようなシステムではなく1プロセスであるため、エディタとコンパイラやアセンブラを等を同時に起動し、プロセス間でデータを流し込むなどの作業も可能。
PC-6001mkII/6601/SR
秋川藤志により移植が行われた。
使用可能なメディアとデータレコーダの仕様から、記録デバイスの互換性はない。
縦の桁数不足を補うための、擬似25行モード、ゲーム対策のテンキーモードを搭載。
Windows 95/98/NT/XP
上記UNIX版をCygwin環境によってWin32へポーティングしたもの。
PC-G850/S/V/VS
ポケコン上で動作するS-OS SWORDクローンも公開されている。

派生システム
同誌に掲載はされていないが、S-OSのシステムから派生したシステムも存在している。

X-DOS
メモリの上位にシステムを置く、S-OS "SWORD"とソース互換のX1シリーズ用のシステム。システムコールの内容は同じであるものの、それらのエントリアドレスが全く異なるため、同じアプリケーションを動作させるためには、修正の上、アセンブル/コンパイルし直さなくてはならない。

Los-Angels
MS-DOS互換のファイルシステムを利用するX1シリーズ用の互換システム。ファイルシステムが異なるのみで、基本的にはSWORDと同じアプリケーションが動作するが、Hu-Monitorに依存せずハードウェア制御部分もスクラッチから起こされたシステム。X1シリーズのユーザグループLoversのディスクマガジン「Lovers Magazine」用に開発されたものが元になっている。

S-OS EMULATOR for Kanrinin/3 X1
X1用ゲームOSとして開発されたKanrinin/3上でシステムコール層を提供することで互換性を得る試み。現状ではシステムコールの一部のみが現状サポートされ、コマンドラインなどの実装は行われておらず、登録済みのアプリケーションのみが起動するという状況である。

仕様
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エミュレーションや拡張カードへの対応によって対応している。

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

言語、開発ツール
ZEDA/改造版ZEDA/ZEDA-3
SWORD本体も記述されるのに使われたアブソリュートアセンブラ。
アセンブラ自身に対するもの以外に、幾つかの記述上の擬似命令が存在する。
改造版では、分割アセンブル、ハッシュテーブルの利用という変更が行われ、ZEDA3では、そのハッシュテーブル、変換テーブルの効率化などの改善がなされている。これらのアップデートは、機能の改善とともに、再掲載という側面もあった。
REDAの登場までは、システムの標準開発ツールとなっていた。
ZING
初期の頃のZ80のソースジェネレータ。開発期間の短縮のため、Z80トーレーサ/デバッガを改造して作られたことから、ラベルのソーティングにバブルソートを使用し速度が遅い他、データ領域を広範囲で定義すると紙面に掲載されていないBUFFER OVERなどのエラーコードが表示されるなどの制限も見られた。
SOURCERY
Z80のソースジェネレータ。
REDA
擬似命令によって拡張されているZEDAに対して、純粋なZ80のアブソリュートアセンブラとして開発された。
標準の簡易エディタにはタブコードが実装され、ソースコードの容量削減に一役買った。
連続したスペースのテキストについては無条件にTABコードに置き換えられてしまうため、直接ソースコードにテキストでスペースを記述した際にも置き換えられてしまうことには注意が必要である。
RING
ZINGの改良版という位置づけだが、REDAと対になるタブコードに対応するソースジェネレータ。
OHM-Z80
Z80の未定義命令もサポートした高機能アセンブラ。
高級言語であるSLANGの開発にも使われ、通常のアセンブラよりも高級言語に近い記述を可能とする。
アセンブラとしては実際に落ちるコードをイメージしづらくする反面、ループ命令や条件分岐などの未定義命令も積極的に使った擬似命令の数々は、ソースコードの可読性を高くしている。
Inside-R
2KiB丁度のサイズで書かれた逆アセンブラ。
自身が持つ機能としては高機能ではないが、サイズが小型であり、完全にセルフリロケータブルに書かれているため、自由なアドレスに配置することが可能。
作者は88ユーザであり、システムが共通化されているがゆえに投稿される事になった一例。
SLANG
Cを意識した構造型コンパイラ言語。ライブラリなども別途発表されている。
FuzzyBASIC、FuzzyBASICコンパイラ
ローカル変数や、再帰定義などを特徴とした整数BASICインタープリタとそのコンパイラ。
コンパイラは、普通にアセンブラでかかれたものと、FuzzyBASICによって、自分自身を記述する、ブートストラップによって記述された二種類が掲載されている。
WINER
テキストベースながら擬似的なマルチウィンドウを実現し、ウィンドウ位置こそ固定であるものの、複数のテキストファイルを編集することができたため、後期には愛用者の多かったエディタ。
標準出力の速度をカバーするため、同誌でサポートする機種については機種別のルーチンが用意され、表示処理を置き換えることで高速化して使うことができた。
WZD/WLK/WLB
末期に発表されたSmall-C移植の前段階として開発されたリロケータブルアセンブラとリンカ、ライブラリアン。

ユーティリティー
JACKWRITE
文字コードを解釈し、用意されたベクトルフォントを用い、MAGICのラインルーチンを利用して日本語の表示を行うプログラム。
紙面に掲載された時点ではひらがなのみをサポートしていた。
その後、フォントにJIS非漢字442字と第1水準の2965字が用意され、2Dのディスクに収録可能な容量で構成され、プログラムもJackwrite2としてアップデートし、高速化、並びに漢字ROMにも対応した出力プログラムも開発されている。

ゲーム
INVADER GAME
スタンダードなインベーダーゲーム。テキストベースではあるものの、標準出力のみでも多くのキャラクタの動作を実現した。
ELFESシリーズ。
最初のものは画面奥方向、IIはパワーアップ付きの横スクロールシューティング、IVは、パワーアップ付きの縦スクロールシューティングゲームとなっている。
システムの仕様から全てはキャラクタベースで描画され、文字表示ルーチンの遅さをカバーするため仮想VRAMを用いて、IIではドラゴンなどのダイナミックなキャラクタ、IVでは背景の合成などを実現し、IとIIでは背景の星の描画によってゲーム速度にウェイトを入れている。
ストーリーとしては、5部構成の予定だった様だがIIIの遅れ、休刊などによって、全貌は明らかにはならなかった。

グラフィックスインタープリタ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絡みのエピソードが増えていった。

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

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

パソコン千夜一夜

between the lines

別冊
書籍、並びに、Mookとして、下記の本が刊行されている。
Z-MUSICシステムver.2.0
Oh!X編集部 編

1993年12月発売。B5判/96ページ
4983円

EX-System リファレンスマニュアル
Oh!X編集部 編

1996年02月発売。B5判/66ページ
4893円

Z-MUSICシステムver.3.0
元Oh!X編集部 編

1997年01月発売。B5判/190ページ
6932円

脚注

注釈

出典

関連項目
クリーンコンピュータ
MZ-80
MZ-700
MZ-1500
MZ-2000
MZ-2200
MZ-2500
MZ-2861
X1
X68000
Oh!PC
Oh!FM
月刊ASCII
I/O
マイコンBASICマガジン
祝一平
満開製作所
パソコンサンデー

外部リンク
THE SENTINEL
株式会社満開製作所

SBクリエイティブの雑誌
パソコン雑誌の歴史
1982年創刊の雑誌
1995年休廃刊の雑誌