2025年9月28日日曜日

FLEXをOS-9上で走らせる(OS-9パラサイトシステム)

 FLEXをOS-9 Level2システム上で走らせてみました

Oh!FM誌の1985年5月号に「OS-9パラサイトシステム FLEXをOS-9上で走らせる(佐藤富美雄さん)」という記事が掲載されていました。


Oh!FM誌1985年5月号の記事

私はFLEXをFM77AV40SXなどで使用しているので、OS-9上でFLEXを走らせるという発想に興味を持ち、以前、必要な7個のファイルを入力してSXの2DDディスク上で試してみましたが、もちろんシステムを構築できませんでした。

先日、FM-11AD2(OS-9L2付き)を入手して、何とか2Dドライブ上でFLEXを走らせることができました。(2HDドライブで走らせることは未だできていません。。。)

上記の記事では、どうもFLEXが2Dドライブで動作していれば良いようで、これならシステムを構築できるかもと考えました。さらに良く読むと、このFLEXシステムで使用しているのはFLEX.CORのみなので、私が所有しているVer 3.01(今はネットで入手可能)で実現できそうでした。

ということで、以前入力してあった7個のファイルを使用してパラサイトシステムを構築してみましたが、分かりにくい事などがあって結構手間取りましたので、整理を兼ねてここに経過を記しておきます。


◎システムの構築


 (必要なシステム)
 最小1台の2HDでOS-9Level2が、1台の2DでFLEXが動作していること。
 2Dドライブはシステム構築後は不要。

1.OS-9の/D0/CMDSに下記の3ファイルをセットする。
 Flex(モニター)、Newdisk_flex(仮想ディスク作成)、Mfd_dcopy(Flex丸ごとコピー)

2.FLEXシステムに下記の4ファイルをセットする。
 OO.CMD(FLEXのOコマンド相当)、II.CMD(FLEXのIコマンド相当)、SHELL.CMD(OS-9のShellを起動)、PRINT.SYS(OS-9上でプリンタへ出力)

3.2DディスクでFLEXを起動してパラサイトシステム用のFLEX.SYSを作成する。
このFLEX.SYSの実体は元のFLEX.CORに起動アドレス$CD00をAPPENDしただけのものです。(FLEXシステムとして必要なI/OはOS-9が担当するのでCORのみで良い)

4.2HDディスクでOS-9Level2を立ち上げ、Mfd_dcopyでFLEXを丸ごとOS-9に取り込む。
この時、保存するFLEXファイル名として、例えば/D0/FlexSysを指定すると、これがドライブ0として使用するファイルになる。

5.FLEXは4台までのドライブを扱えるので、Newdisk_flexを用いて、例えば/D1/FlexWk1のようにワークドライブを作成する。

以上でシステムの構築は完了。


◎使用法

1.OS-9Level2を起動する。

2.Flexモニターを実行し、そのSコマンドで仮想ドライブを設定する。

ドライブ0には/D0/FlexSysを、ドライブ1には/D1/FlexWk1を指定する。必要ならドライブ2,3も指定する。

3.GコマンドでFLEXが起動する。

4.Xコマンドでシステムドライブを、Dコマンドでワークドライブを指定できる。また、SHELLコマンドでOS-9のShellが起動する。

5.終了するときには、MONコマンドを実行してFlexモニターに戻ってからQを入力してOS-9に戻る。

起動の手順

オリジナルのCATコマンドを改良したCAT1コマンドの実行結果です。


現在のFlexSys中のファイル一覧

◎使用してみて

FLEXのI/Oルーチンのみを使用しているプログラムは正常に動作するはずですが、直接I/Oをコントロールしているものは動作しません。例えば、直接サブシステムを使用しているDUET(スクリーンエディタ)はダメでした。また、何故かFORTH77もダメでした。

私の場合はアセンブラASMBを使用することがほとんどなので、これが動作するのはとてもありがたいです。

最後に

OS-9はもちろん、FLEXなども使用している方はまずおられないと思いますので、何の参考にもならないのですが、以前何とかしたかったことがようやく実現できたという自己満足の記事でした。

(このシステムを実際に試してみようと思われる方はおられないと思いますので、記事から入力した7個のファイルを掲載することはしませんでしたが、試してみようと思われた方には連絡していただければお送りできます。)

ユニークな発想を実現された佐藤富美雄さんに感謝いたします。