このエントリーをはてなブックマークに追加

OS-0

OS-0とは

OS-0は、FM-7シリーズ(7/77/AV)のプログラムを開発するために作られたOSです。これはカーネル部の常駐をできる限り小さくする事を目標としており、そのためMS-DOSのような内部コマンドは一切ありません。DIR やCOPY等も全て外部コマンドとなっており、都度フロッピーから読み込むようになっています。

基本的にアセンブラで開発する事を前提としています。当サイトで掲載しております「少年マイク?の一人旅」や「ディーバ?二木神居の試練」のアクションゲーム部(惑星戦)はこのOSで開発しています。ディスクはF-BASICのファイルシステムと互換性があり、OS-0でフォーマットしたディスクは、F-BASICのデーターディスクとしてそのまま使えるようになっています。

ダウンロード

OS-0をダウンロードする

注意
このイメージは決してブランクディスクのイメージではありません。ブランクディスクはXM7のメニューから作成してください。また、今回はブランクディスクとしては使えないように、あえて目障りなファイルを多めに入れています。全部手動で消していたら面倒でしょうから、ブランクディスクとしては使わない方が無難です。

起動方法

os0.d77をXM7のドライブ0にセットして、F12を押してリセットしてください。


すぐにOS-0が立ち上がります。OS-0では大文字、小文字を区別するのと、標準コマンドは全て大文字で入っているため、まずは大文字モードにしないと何もできないと思います。CapsLockキーを押して大文字モードにしてくささい。


試しにDIRと打ってみてください。

※これは一例です。実際に入っているファイルとは異なります。

ファイル名の後ろの数字が使用クラスター数で、その後ろがファイルの種類です。ファイルの種類が「2」のものがバイナリファイルであり、実行形式ファイル(MS-DOSでいうところの.COMや.EXE)です。このバイナリファイルの名前を直接コマンドラインから入力する事でファイルが実行されます。

データーディスクの作り方

この頃のパソコンにはハードディスクという便利なものがなかったので、ドライブ0をシステムディスク(いわゆるMS-DOSでいうところのCドライブ)、ドライブ1をデーターディスク(いわゆるDドライブやEドライブ・・・) として使います。それには、データーディスクを作成します。

XM7の[ツール]→[新規ディスク作成]を選択して、新規ディスクイメージを作成してください。「F-BASICのユーザーディスクを作成する」は、チェックを入れなくてもかまいません。タイトルも何でもいいです。




その後、作成した新規イメージをドライブ1にセットして、FORMATと入力します。Whats drive?と聞いてくるので、1と入れます。(注:ここで間違っても0とは入れないようにしてください。心配ならば、あらかじめos0.d77に書き込み不可属性をつけておくと安全です。)


これでリターンキーを押すと、ドライブ1のディスクがフォーマットされます。これでドライブ1がデーターディスクになりました。

エディタ(ED)

ED ドライブ:ファイル名
とします。ドライブレターは、MS-DOSのようなCとかDではなく、0:とか1:です。

例)
ED 1:TEST

こんな感じでアセンブラのプログラムを入れていきます。

[ESC]キーでヘルプを表示します。

使い方は忘れてしまったので、これ見てがんばって調べてください。

終わらせる時は、[Ctrl][C]を押します。元のファイル名が表示されるので、よければそのままリターンキーを、また、別名で保存する時はファイル名を書き換えてリターン、セーブせずに破棄する時は、スペースキーを押してリターンキーを押します。

アセンブル(ASM0)

ASM0 ドライブ:ファイル名
とします。たとえば、ASM0 1:TEST



アセンブルが成功すれば、ソースと同名のファイル名の最後に小文字のoがついたファイルができあがります。

F-BASICのファイルシステムには拡張子というものがないので、最後にoがついたものが実行ファイルという意味になります。ソースのファイル名が8文字の場合は、最後の1文字のかわりに小文字のoになります。ファイル名重複防止のため、なるべくソースのファイル名は7文字以内にしてください。

バッチ処理(SUBMIT、AUTO、AUTO_OFF)

あらかじめ一連の処理をEDで作っておきます。
例)ED START
W 40,20
(セーブして終了)

SUBMIT START
で、STARTに記載された処理が実行されます。

起動時に自動実行(AUTO)
AUTO 起動時に実行させる処理
OS-0が起動した時に自動的に実行させる処理を指定する事ができます。MS-DOSでいうところのAUTOEXEC.BATのようなものです。例えば、AUTO SUBMIT STARTとすると、起動時にSUBMIT STARTが実行されます。解除する時は、AUTO_OFF を実行します。

少年マイク?のひとり旅でもSUBMITを使っています。起動時にSUBMIT STARTが起動するようになっています。

注意
AUTOで誤って無限ループになったり暴走したりするプログラムを指定しないようにしてください。もし誤って、無限ループになるプログラムをAUTOで指定してしまった時は、いったん別のディスクイメージでOS0を起動して、ドライブ0のディスクイメージを交換してからAUTO_OFFを実行してください。

その他のコマンド

COPY
ファイルをコピーします。COPY コピー元 コピー先 のように入力します。また、 COPY TEST 1: のように、コピー先をドライブレターだけにすると、同名で別ドライブにコピーします。

DIR
指定ドライブのファイルの一覧を表示します。F-BASICでいうとろこのFILESです。 ドライブ1を表示させたい時は、DIR 1:とします。ドライブレターを省略した時は0になります。

ファイル名の後ろの数字は、使用クラスタ、属性です。属性は、0がF-BASICのファイル、*がテキストファイル、2がバイナリファイル(実行形式ファイル)です。

DISASM0
メモリー内を逆アセンブルします。アドレスを聞いてくるので入力してください。同時プリントアウトするか聞いてくるので、YかNで入力します。スペースキーで一時停止します。一時停止している時に、[A]キーでアドレスの再入力、[Q]キーで終了します。


DISKCOPY
コピー元ディスクをドライブ0、コピー先ディスクをドライブ1に交換してリターンキーを押します。[ESC]を押すと中止します。コピーの方向は必ず0→1です。OS-0(F-BASIC) 標準のセクタ長、セクタ数にしか対応していません。

DUMP
メモリーをダンプします。アドレスを聞いてくるので入力してください。メモリーの書き換えもできます。書き換えた内容は、後述のSAVEMコマンドでセーブします。[ESC]キーで終了します。


FORMAT
ディスクをフォーマットします。Whats drive?と聞いてくるので、0か1を入れてください。ちなみに、FORMAT 1:とかやってもダメで、ドライブは改めて聞いてきます。誤ってOS-0のシステムディスクをフォーマットしないように注意してください。システムディスクにはあらかじめ書き込み禁止属性をつけておくと安全です。

KILL
ファイルを削除します。KILL ファイル名 です。

LOADM
バイナリファイルをメモリーに読み込みます。Load address? という質問には、読み込む番地を指定してください。Exec address ? という質問の時にアドレスを入力すると、読み込んだ後に指定のアドレスからプログラムを実行します。単にリターンキーのみを押すと、読み込むだけで実行はしません。Rと入力すると、読み込んだアドレスから実行します。

REN
ファイル名を変更します。REN 元のファイル名 新しいファイル名 です。異なるドライブを指定する事はできません。(Illegal drive selectエラーになります。)新しいファイル名が既に存在する場合はリネームできません。(File already existエラーになります。)

SAVEM
メモリーの中身をファイルに保存します。セーブ開始アドレス、セーブ終了アドレス、ファイル名を聞いてくるので、それぞれ入力してください。同名のファイル名が存在している場合は、特に確認もせずに上書きする事に注意してください。

TYPE
テキストファイルの中身を表示します。いわゆるMS-DOSでいうところのTYPE、Linuxでいうところのcatです。[ESC]で一旦停止します。[Break]で終了します。Linuxとかと違って、パイプ処理とかリダイレクトとかはありません。ファイルが見つからないと「DISK I/O ERROR」と表示されますが、ディスクがエラーなわけではありません。

また、ファイルの末尾にEOFがないテキストファイルを表示させると、ファイルが終わりになっても、該当クラスターの最後まで表示してから「DISK I/O ERROR」と表示されますが、ディスクがエラーなわけではありません。

W
widthを変更します。W 80 または、W 80,25で、80x25、W 40または W40,25で、40x25、W 80,20で80x20、W 40,20で40x20になります。

サンプルプログラム

TEST、TRANS、ADJUST

アセンブラのサンプルプログラムです。ASM0 TESTとか、ASM0 TRANSとかしてみてください。それぞれ、TESTo、TRANSoというファイルができあがります。

また、少年マイク?のひとり旅のディスクイメージにも、ゲームのソースが入っています。ファイルの種類が*のファイルをEDエディタで開いてみてください。ちなみに、私が担当した箇所は、ソースに「~ BY C.B.」 と書いてある部分だけで、残りの部分は兄が作りました。

おことわり

この記事は20年以上経ってから思い出して書いているため、かなり誤りを含む場合がありますので、あらかじめご了承ください。なお、現在では既に実機も開発環境もなくなってしまったため、技術的な質問に対しても対しても一切お答えする事はできません。

OS-0はフリーのOSですので、OS-0のディスクイメージは、FM-7シリーズの自作プログラムの配布用として使うことができます。ただし、F-BASICシステムは入ってないため、F-BASICで作られたプログラムを実行するためには、別途F-BASICのシステムディスクを各自で用意してもらう必要はあります。

XM7で動作させるために、フロッピードライブのReadyを待つ部分をNOPにしていますが、コマンドによってはNOPにしていないものもあり、XM7のバージョンによっては動作しないコマンドもあります。また、このような理由から基本的にはフロッピードライブのReadyを待たなくしているため、実機では誤動作する可能性があります。
このページの先頭へ
  広告