FM-7シリーズ用OS、開発システム画面キャプチャ集(by はせりん)


本ページの各画面キャプチャについては、XM7 V3.4を使用させていただきました。
PI.さん、たけがみりうさん、いつも感謝しております。
(XM7がなかったらこんなページを作ろうという気にはなりませんでした。^^;)

7. F-BASIC ファイルシステム(およびその上位互換)上に構築されたOS、開発システム

F-BASICのファイルシステムをそのまま、あるいは手を加えて使用し、その上で動作するOSや開発システムとして仕上げた例をいくつか紹介します。 FM-7シリーズはブートROM内にDISKアクセスルーチンが使いやすい形で用意されているため、こうしたシステムを作成しやすかったのではないかと 思います。

RunserOS-0FM EngineMMSpico-DOSIODOS9R-DOS (Relocatable DOS)P-dosKDOS一覧表

7.1 Runser

Runser_0
Runser_1
Runser_2

ファイルシステム拡張点:
  3文字までの拡張子
  読み出し許可、書き込み許可の属性
  タイムスタンプ
  擬似階層ディレクトリ

常駐コマンド:
  Dir      ファイル一覧の表示
  Cpy      ファイルコピー
  Chd      カレントディレクトリ変更
  Chx      カレント実行ディレクトリ変更

非常駐コマンド:
  Attr     ファイル属性変更
  Copy     ファイルコピー(ワイルドカード可)
  Del      ファイル削除(ワイルドカード可)
  Dire     ファイル一覧の詳細表示(ワイルドカード可)
  FBasic   F-BASIC V3.0の起動
  List     テキストファイルの内容表示
  Rename   ファイルリネーム
  SetDrv   ドライブ設定
  DiskCopy ディスクのコピー
  DiskInit ディスクの初期化(全ファイル消去)
  Dump     ファイルダンプ
  Format   ディスクのフォーマット
  Chk      Cソースコードチェックサム
  LHd      Rr-LHarc デコード
  LHe      Rr-LHarc エンコード
  PutSys   システム設定

メモリマップ
     0 -+-------------------------------------+
        |         ワーク、システムFCB         |
   400 -+-------------------------------------+
        |                                     |
        |                                     |
        |            フリー・エリア           |
        |                                     |
        |↑スタック                           |
  8000 -+-------------------------------------+ - - - - - - - - +---------------+
        |            Runser本体               |                 |               |
        |        (Rr-BIOS & Rr-Shell)         |                 |               |
  C000 -+-------------------------------------+                 |               |
        |            AV-SubRoutine            |                 |               |
  D000 -+-------------------------------------+                 |  F-BASIC ROM  |
        |                                     |                 |               |
        |            ワークエリア             |                 |               |
        |                                     |                 |               |
  F000 -+-------------------------------------+                 |               |
        |           フォントデータ            |                 |               |
  F800 -+-------------------------------------+                 |               |
        |            システム定数             |                 |               |
  FC00 -+-------------------------------------+ - - - - - - - - +---------------+
        |          I/O、BOOT ROM他            |
  FFFF -+-------------------------------------+

7.2 OS-0

os0_0
os0_1
os0_2
os0_3
os0_3h
os0_4
os0_5
os0_6
os0_7
os0_8

ファイルシステム拡張点:
  テキスト(アセンブラソース)ファイルのみ、フラグとファイル長を格納
  ... DIR では * 属性で表示される。ED, ASM0, COPY が参照。

常駐コマンド:
  なし

非常駐コマンド:
  DIR      ファイル一覧の表示(F-BASICのFILES相当)
           ファイル名でソートされて表示
  COPY     ファイルコピー
  REN      ファイルリネーム
  KILL     ファイル削除
  FORMAT   ディスクのフォーマット
  DISKCOPY ディスクのコピー
  TYPE     テキストファイルの内容表示
  ED       スクリーンエディタ
  LOADM    オブジェクトのロードと実行(F-BASICのLOADM相当)
  SAVEM    メモリ内容のセーブ(F-BASICのSAVEM相当)
  ASM0     2パス アセンブラ
  DISASM0  逆アセンブラ(オンメモリ)
  DUMP     メモリダンプ(と言いつつ書き換えもできるメモリエディタです)
  W        桁数、行数の変更(40桁or80桁、20行or25行) (F-BASICのWIDTH相当)
  SUBMIT   テキストファイルに書かれた内容をバッチ処理する (CP/MのSUBMIT相当)
  AUTO     起動時の自動実行処理の指定 (MS-DOSのAUTOEXEC.BAT相当)
  AUTO_OFF 起動時の自動実行処理の解除

メモリマップ
     0 -+-------------------------------------+
        |                                     |
        |                                     |
        |                                     |
        |           ユーザ・エリア/          |
        |          非常駐コマンド領域         |
        |                                     |
        |                                     |
        |                                     |
  E800 -+ - - - - - - - - - - - - - - - - - - +
        |       LOADMコマンドロード領域       |
  ED80 -+ - - - - - - - - - - - - - - - - - - +
        |               Stack                 |
  F000 -+-------------------------------------+ Cold Entry
  F002  |                                     | Warm Entry
        |            OS-0 Kernel              |
  F800  |                                     | FAT Buffer
  FC80 -+-------------------------------------+
        |          I/O、BOOT ROM他            |
  FFFF -+-------------------------------------+

7.3 FM Engine

fme30_0

fme30_1

fme30_2

fme30_3
常駐コマンド:
  DIR  CHD  ECHO  DEL  REN  TYPE  COPY  LOAD  SAVE  EXEC  BOOT
  常駐コマンドは一通り揃っています。ほぼ名前の通りの動作をします。
  TYPE はバイナリファイルには使用しない方がいいでしょう。
  LOAD/SAVE はマシン語属性ファイル専用です。

非常駐コマンド:
  マシン語属性のファイルは非常駐コマンドとして扱われ、パラメタを渡すこともできます。
 サンプルとして2つのコマンドが添付されています。
  MDUMP  メモリのダンプ
  REPO   フィルの詳細属性の表示

FM Engineメモリマップ
     0 -+-------------------------------------+
        |         システムスタック            |
  0200 -+-------------------------------------+
        |         ワークエリア                |
  0300 -+-------------------------------------+
        |         FME30o                      | FM Engine
  0CE2 -+-------------------------------------+
        |         (reserved)                  |
  1200 -+-------------------------------------+
        |         FBIOS_R                     | File BIOS (Oh!FM誌1988年9月号三谷直之氏)
  1A00 -+-------------------------------------+
        |         FMEDOSo                     | FM Engine DOS
  1F40 -+-------------------------------------+
        |         (reserved)                  |
  2200 -+-------------------------------------+
        |         各種バッファ領域            |
  2800 -+-------------------------------------+
        |                                     |
        |                                     |
        |         ユーザ・エリア              | 51KB
        |                                     |
        |                                     |
  F17D -+-------------------------------------+
        |         F-BIOS                      |
  FC00 -+-------------------------------------+
        |         I/O、BOOT ROM他             |
  FFFF -+-------------------------------------+

7.4 MMS(Memory Management System)

mms_0
mms_1
mms_2
mms_3

常駐コマンド:(F-BASICに対して拡張したコマンド。プログラム中にも書ける。)
  CALL     裏RAMに格納されている非常駐コマンドをメインRAM上で実行する。
           存在しなければカレントドライブから裏RAMへコピー&メインRAM上で実行する。
  MDIR     裏RAMに格納されているファイル一覧を表示する。
           (3文字までの拡張子に対応、ただしDISK BASICの拡張依存)
  UNLINK   裏RAMに格納されている指定したファイルを削除する
  GPAR     パラメータエリアの内容を文字変数に代入する
  BYE      MMSを終了する

非常駐コマンド: (裏RAMまたはDISKに格納され、CALL文によりフリーエリアに転送されて実行する)
  pip      標準入力の内容をそのまま標準出力へ出力
  echo     パラメータで指定した文字列または文字変数の内容を標準出力へ出力
  ALD      ASM9のフルセット版をDISKからロードして実行
  asm9     裏RAMに格納されたASM9のワークエリア縮小版を実行
  chd      デフォルトドライブの変更
  vsave    VRAMの内容をDISKにセーブ
  vload    vsaveでセーブしたファイルをVRAMにロード(=表示)
  map      マシン語ファイルの先頭、終了、開始番地の表示
  lc       標準入力の行数をカウントして、標準出力へ出力
  fdump    標準入力の内容を標準出力へダンプ (16進とASCII)
  getdir   指定したディレクトリ情報をパラメータエリアに渡す

F-BASIC用ユーティリティ: (RUNで実行する)
  FCOPY    ファイルコピー(メニュー形式)

はせりん作成コマンド:
  fbmap    メモリマップ確認用です。
           F-BASICのワークエリアのうち、メモリマップ関係のアドレスを表示します。
           MMSとは独立に作られています。(F-BASIC ROMのみ使用)

MMSメモリマップ
     0 -+-------------------------------------+
        |             ワークエリア            |
       -+-------------------------------------+
        |               MMS本体               |
       -+-------------------------------------+ (33:34)
        |                                     |
        |            テキストエリア           |
        |                                     |
       -+-------------------------------------+ (35:36)
        |              変数エリア             |
       -+-------------------------------------+ (3B:3C)
        |              配列エリア             |
       -+-------------------------------------+ (3D:3E)
        |                                     | ← ここに非常駐コマンドが転送され
        |            フリー・エリア           |    実行される
        |↑スタック                           |
       -+-------------------------------------+ (3F:40)
        |               文字領域              |
       -+-------------------------------------+ (45:46)
        |            ユーザーエリア           |
  71D5 -+-------------------------------------+ (59D:59E)
        |              DISK BASIC             |
  8000 -+-------------------------------------+ - - - - - - - - +---------------+
        |                                     |                 |               |
        |            F-BASIC ROM              |                 |     裏RAM     |
        |                                     |                 |   (RAM DISK)  |
        |                                     |                 |               |
  FC00 -+-------------------------------------+ - - - - - - - - +---------------+
        |          I/O、BOOT ROM他            |
  FFFF -+-------------------------------------+

ASM9フルセット版メモリマップ(参考)
     0 -+-------------------------------------+
        |           実行、ROM呼び出し         |
   600 -+-------------------------------------+
        |          F-BASICワークエリア        |
       -+-------------------------------------+ 
        |                                     |
        |            テキストエリア           |
        |          (ソースコード格納)         |
        |                                     |
       -+-------------------------------------+
        |           変数・配列エリア          |
       -+-------------------------------------+
        |            フリー・エリア           |
        |↑スタック                           |
       -+-------------------------------------+
        |               文字領域              |
  71D5 -+-------------------------------------+
        |              DISK BASIC             |
  8000 -+-------------------------------------+ - - - - - - - - +---------------+
        |                                     |                 |               |
        |              ASM9本体               |                 |               |
        |                                     |                 |               |
  A100 -+-------------------------------------+                 |               |
        |            ワークエリアA            |                 |               |
  A500 -+-------------------------------------+                 |  F-BASIC ROM  |
        |        ↓  ラベルエリア             |                 |               |
        |        ↓                           |                 |               |
        |                                     |                 |               |
        |        ↑                           |                 |               |
        |        ↑  ワークエリアB            |                 |               |
  FC00 -+-------------------------------------+ - - - - - - - - +---------------+
        |          I/O、BOOT ROM他            |
  FFFF -+-------------------------------------+

7.5 pico-DOS

picodos_0
picodos_1
picodos_2
picodos_3

常駐コマンド:
  q        pico-DOSを終了する。
  cp       標準入力より1バイトずつ入力し、そのまま標準出力へ出力する

非常駐コマンド: 
  cc       ファイルのバイト数を数える。
  lc       ファイルの行数を数える。アスキーファイルのみ。
  list     ファイルをリスティングする。バイナリセーブしたF-BASICプログラムもOK。
  dump     ファイルの16進ダンプ
  echo     文字列をそのまま標準出力へ出力する
  search   標準入力の中で引数(=「文字列」)を含んだ行のみ出力する。

はせりん作成コマンド:
  files    FILESと同じ。(DISK BASICをコールしているだけなので、ドライブ0のみ
           表示可能という手抜きになっています。)
  fbmap    MMSで作成したものがそのまま動作。

pico-DOSメモリマップ
     0 -+-------------------------------------+
        |             ワークエリア            |
       -+-------------------------------------+
        |            テキストエリア           |
       -+-------------------------------------+
        |              変数領域               |
       -+-------------------------------------+
        |           文字領域、スタック        |
       -+-------------------------------------+ (45:46) CLEAR文で宣言(-1)
        |                                     |
        |            ユーザーエリア           | 非常駐コマンドはここに後ろ詰めでロード
        |                                     |
  6800 -+-------------------------------------+
        |                                     |
        |              pico-DOS               |
        |                                     |
  6E72 -+-------------------------------------+
        |                空き                 |
  71D5 -+-------------------------------------+ (59D:59E)
        |             DISK BASIC              |
  8000 -+-------------------------------------+
        |                                     |
        |            F-BASIC ROM              |
        |                                     |
  FC00 -+-------------------------------------+
        |          I/O、BOOT ROM他            |
  FFFF -+-------------------------------------+

7.6 IODOS9

iodos9-0
iodos9-1
IODOS9_198407

ファイルシステム拡張点:
  ボリューム名(ただし2文字と少ない)
  3文字までの拡張子(拡張子がCOMのファイルは非常駐コマンド扱いされる)
  読み出し許可、書き込み許可の属性
  16文字までの任意の補足情報(テキスト)を付加可能

制御コマンド:
  0 1 ... カレントドライブを切り替える。2ドライブまでのサポート。
  +   ... プリンタ出力のON/OFF切り替え。デフォルトはOFF。

常駐コマンド:
  LOAD  LOADM  SAVE  SAVEM  FILES  KILL  NAME  EXEC
      ... F-BASICとほぼ同じ機能 (FILESはワイルドカード使える)

非常駐コマンド:(SAVEM の際のアドレスとは関係なく、非常駐領域にロードされる。)
≪「FM-7/11活用研究」掲載分≫
  FBASIC  ROM版F-BASICに制御を移す。BYE で IODOS9に戻る。
          ROM版なのでフロッピーディスクにはアクセスできない。カセットは使用可。
  KD      IODOS9用Kコンパイラ(オンメモリ版)。
          ランタイムは$CD00としてコンパイルされる。オブジェクトは$5000以降に出力。
  TYPE    ファイル情報を表示する。 (ディレクトリ位置、格納位置、アドレス等)
          ASCIIファイルの場合は上記に加え、内容を表示する。
  WIDTH   桁数を80または40に指定。行数は25で固定。
  DATE    ファイルに補足情報を追記する。
  HELP    各コマンドの使い方を表示する。
  STARTUP ボリューム名とブート時の自動実行プログラム名の指定
≪I/O 1985年2月号掲載分≫
  BATCH   バッチ処理を行う。
  DBASIC  DISK版F-BASICに制御を移す。BYE で IODOS9に戻る。
          IODOS9の拡張されたファイルシステムにアクセス可能。(ただし拡張子は無視される。)
  FBASIC  ROM版F-BASICに制御を移す。BYE で IODOS9に戻る。
          「FM-7/11活用研究」掲載版と比較し、R オプションが追加されている。
  FSEDIT  フルスクリーンエディタ。アスキーファイルの編集専用。
  KEY     ファンクションキーの設定と表示。
≪I/O 1985年9月号掲載分≫
  KF      IODOS9用Kコンパイラ(ファイル版)。
          ランタイムは$CD00としてコンパイルされる。オブジェクトは$5000以降に出力。
  MFILE   複数ファイルについて、TYPE同様のファイル情報を表示する。

アプリケーション:
  IODOS9を使いやすく (I/O 1984年12月号、FM-7/11活用研究第2集) PIP、KLINKコマンド
  IODOS9ユーティリティ (I/O 1985年7月号) CONV、DSKINI、FORMAT、PUTLDR、CALCコマンド
  IODOS9用LISTコマンド (I/O 1985年8月号)
  IODOS9ユーティリティ (I/O 1986年2月号)
  IODOS9ダンプリスト打ち込みツール (I/O 1986年4月号)
  IODOS9 FSEDIT用ファイル版Kコンパイラ (I/O 1986年7月号)
  IODOS9 FILE日付を記録(FM77AV) (I/O 1986年8月号)
  ターミナルソフト (I/O 1988年4月号)

メモリマップ
     0 -+-------------------------------------+
        |           ワーク・スタック          | F-BASICのワークと共用
   900 -+------------------+------------------+
        |                  |                  |
        |                  | テキスト・エリア |
        |                  |                  |
  5000 -+                  +------------------+
        |                  |                  |
  7000 -+                  |                  + - - - - - - - - +---------------+
        |                  |オブジェクトコード|                 |  (DISK-BASIC) |
  8000 -+  ユーザ・エリア  |                  + - - - - - - - - +---------------+
        |                  |                  |                 |               |
  9600 -+                  +------------------+                 |               |
        |                  | ラベル・テーブル |                 |               |
  9E00 -+                  +------------------+                 |               |
        |                  |コンパイラ・ワーク|                 |               |
  A000 -+ - - - - - - - - -+------------------+                 |               |
        |非常駐コマンド領域|   KDコンパイラ   |                 |               |
  CC00 -+------------------+------------------+                 |               |
        |         IODOS9・ワークエリア        |                 |               |
  CD00 -+-------------------------------------+                 |               |
        |         K・ランタイムルーチン       |                 |               |
  D000 -+-------------------------------------+ Cold Entry      |  F-BASIC ROM  |
        |                                     |                 |               |
        |               IODOS9                |                 |               |
        |                                     |                 |               |
  EC00 -+-------------------------------------+                 |               |
        |               FAT/FCB               |                 |               |
  F000 -+-------------------------------------+                 |               |
        |               F-BIOS                |                 |               |
  FC00 -+-------------------------------------+ - - - - - - - - +---------------+
        |          I/O、BOOT ROM他            |
  FFFF -+-------------------------------------+
iodos9-2
iodos9-h1
iodos9-h2
iodos9-h3
iodos9-3
iodos9-4

7.7 R-DOS (Relocatable DOS)

rdos-0
rdos-1
rdos-A

常駐コマンド:
  LOADM  SAVEM  FILES  KILL  NAME  EXEC
    ... F-BASICとほぼ同じ機能 (FILESはファイル種類により色分けされて表示)

非常駐コマンド:
  KC-ON   キークリック オン
  KC-OFF  キークリック オフ
  PTR-ON  プリンター オン
  BASIC.1 F-BASIC V1.0イメージファイル
  BASIC.3 F-BASIC V3.0イメージファイル
  BOOT.V1 F-BASIC V1.0起動(コマンド名ははせりん命名)
  BOOT.V3 F-BASIC V3.0起動(コマンド名ははせりん命名)

関連記事:
  I/O 1985年9月号 P.341 (RANDOM BOX) R-DOS の FILESコマンドの改良

メモリマップ
     0 -+-------------------------------------+
        |                                     |
        |                                     |
        |            ユーザ・エリア           |
        |                                     |
        |                                     |
        |↑スタック                           |
  E000 -+-------------------------------------+
        |         R-DOS・ワークエリア         |
  E400 -+-------------------------------------+
        |                                     |
        |               R-DOS                 |
        |          (Relocatble Dos)           |
        |                                     |
  F100 -+-------------------------------------+
        |               F-BIOS                |  アプリケーションソフト用。
  FC00 -+-------------------------------------+  R-DOSは使用していないため、この部分にも配置可能。
        |          I/O、BOOT ROM他            |
  FFFF -+-------------------------------------+

フロッピーディスク格納状況

セクタ      1 2 3 4 5 6 7 8 9 101112131415161 2 3 4 5 6 7 8 9 10111213141516
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
トラック0  |i| |d|       |f|       R-DOS本体         |        F-BIOS       |
           +-+-+-+-+-+-+-+-+-------------------------+---------------------+
            |   |         |
            IPL ID Sector Function Key

           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
トラック1  |F|   |                      Directory                          |
(F-BASIC   +-+-+-+---------------------------------------------------------+
 と同じ)    | 
            FAT

さて、便利なR-DOSですが若干の問題点と使い勝手の悪さを抱えています。

バグと思われる点:
(1) SAVEMコマンドで1セクタ余分にセーブしてしまう。また、最後の1バイト
  (具体的には実行アドレスの下位バイト)をセーブし忘れることがある。
(2) BASIC.3 で F-BASIC V3.0 L2.0 に対応してなさそう。

はせりん的に使い勝手が悪い点:
(3) DOSモードじゃないとブートしてくれない。
(4) アプリケーションから RTS で戻る際に COLD ブートしてしまう。

そこで、勝手ながら手を入れさせてもらいました。

DEBUG

(1) SAVEMコマンドのバグ

 最後の1バイト(具体的には実行アドレスの下位バイト)をセーブし忘れること
 がある件

 $E6D5 10 9C 0F → $E6D5 8D 07
 $E6D8 22 3E    → $E6D7 10 9C 0F
 $E6DA 8D 02    → $E6DA 22 3C

 1セクタ余分にセーブしてしまう件

 $E736 86 FF    → $E736 6A E4
 $E738 A1 E4    → $E738 27 04
 $E73A 27 06    → $E73A 6F 80
 $E73C 6F 80    → $E73C 20 F8
 $E73E 8D 9E    → $E73E 6C 61
 $E740 20 F6    → $E741 8D A1

 # 尚、2017年10月7日以前にこのページで紹介していた対処方法は不完全であり、
 # 1セクタ余分にセーブするケース(レアですが)が残っていました。完全に修正
 # するには上記の修正が必要です。もし以前の修正を施されていたら元に戻して
 # ください。すいません。

  $E74C $C8 → $C7 → $C8 (元に戻してください。)

(2) BASIC.3 で F-BASIC V3.0 L2.0 に対応してなさそうな件

  L2.0は、DISKコードの初期化途中に CONFIGセクター(TRK=0,SCT=14)
  を読みに行くのですが、R-DOSシステムディスクはそこは R-DOS本体
  なのでカナリまずいです。そこで、DISK BASIC にパッチを当てます。
 L0.0 または L1.0 ではこのパッチは不要です、というか当てないでください。

    $716C $7E $6EE2  JMP $6EE2 → $B6 $7213   LDA $7213

改良(仕様変更)

(3) DOSモードじゃないとブートしてくれない件

  リスト2
 $4C1C $BD $FE02  JSR $FE02 → $7F $FD0F  CLR $FD0F

  最初に RESTORE してますが、そもそもIPLはTrack 0から
  読み出されてるので不要です。

(4) アプリケーションから RTS で戻る際に COLD ブートしてしまう件

  COLD $E493
  HOT  $E4C7

  $E5A7 $FE $EA → $FF $1E  メモリ上

 リスト4
  $55A7 $FE $EA → $FF $1E  システムファイル上

  リスト5
  EXEC1 LEAX COLD,PCR → LEAX HOT,PCR
        PSHS X
        LDX  EXEC
        TFR  X,PC
rdos-1a
rdos-2a
rdos-3
rdos-4
rdos-9

7.8 P-dos

FMPascal_018
常駐コマンド:
 LOADM  SAVEM  EXEC  FILES  NAME  KILL CLEAR   POKE ... F-BASICとほぼ同じ機能

 LIST     アスキーファイルは内容表示、バイナリファイルは開始/終了/実行アドレス表示

非常駐コマンド:
 上記の常駐コマンド以外はすべて非常駐コマンドとみなされ、フロッピーディスクからロードして実行されます。
 edit     ラインエディタ Pascal editor と表示されるが、Pascalに特化した機能はなし
 chgstp   フロッピーディスクのシーク時のステップレートを変更
 printer プリンタ印字機能の拡張
 hardc    画面のハードコピー
 help     ヘルプ用テキストファイルの表示
 key      ファンクションキーの設定
 width    テキスト画面の桁数/行数の変更
FMPascal_050
FMPascal_051
FMPascal_052
FMPascal_053
FMPascal_054
メモリマップ
 コールドスタート時に指定するファイルバッファ数によりユーザ・エリアのサイズが変化します。
 このページで紹介しているOSの中ではユーザ・エリアは大きい方です。
     0 -+-------------------------------------+
        |                                     |
        |                                     |
        |         ユーザ・エリア              | 54-58KB
        |                                     |
        |                                     |
  D654 -+-------------------------------------+
  〜E635|         システムスタック            | ファイルバッファ数に応じて変動
        |         各種バッファ領域            |
        |         ワークエリア                |
  EC00 -+-------------------------------------+
        |                                     |
        |         P-dos本体                   |
        |                                     |
  FC00 -+-------------------------------------+
        |         Reserved                    |
  FC80 -+-------------------------------------+
        |         I/O、BOOT ROM他             |
  FFFF -+-------------------------------------+

システムコール(はせりん調べ。機能名や機能は間違ってる可能性あり)
#市販版FM-Pascalのマニュアルには解説が記載されてるのかもしれません。情報お持ちの方、ぜひご教授願います。

 呼び出し方法:
  SWI2
  FCB $nn 機能番号
機能番号機能名(はせりん命名)機能(はせりん推定)
$00INKEYキー入力
$01getchar (STDIN)1文字入力(標準入力)
$02getchar1文字入力
$03CHKEOFEOFチェック
$04ABORTFBREAKキーチェック
$05putchar (STDOUT)1文字出力(標準出力)
$06putchar1文字出力
$07LINE INPUT (STDIN)1行入力(標準入力)
$08PUTSTRING (STDOUT)文字列出力(標準出力)
$09OPENファイルOPEN
$0ACLOSEファイルCLOSE
$0BKILLファイル削除
$0CRENAMEファイル名変更
$0DLOADMバイナリLOAD
$0ESAVEMバイナリSAVE
$0FERCNTRエラー時処理設定
$10WARM STARTホットスタート
$11LINE INPUT1行入力
$12EXECバイナリ実行
$13STDIN標準入力設定
$14STDOUT標準出力設定
$15Illegal Function Callシステムコールエラー
$16SETCOLORテキスト色設定

7.9 KDOS

kdos-0
kdos-1

KDOSコマンド:
  H(Help)  : ヘルプ画面の表示
  Q(Quit)  : BASE09に戻る
  X(Xfer)  : KDOSを再配置する。
  R(Read)  : Disk Read (連続セクタ)
  W(write) : Disk Write (連続セクタ)
  L(Load)  : マシン語ファイルのロード (ロードアドレス変更可)
             シーケンシャルデータファイルのロード可
  S(Save)  : マシン語ファイルのセーブ
             テキストセーブも可
  ?(Detail): マシン語ファイルについては、開始、終了、入口番地の表示、
             それ以外のファイルについてはサイズを表示
  K(Kill)  : ファイル削除
  F(Files) : ディレクトリ表示 (R-DOSと同様なファイル種類による色分け表示)
  N(Name)  : ファイル名変更

メモリマップ
     0 -+-------------------------------------+
        |             ハッシュ表              |
        |             ラベルテーブル          |
  2000 -+-------------------------------------+
        |                                     | BASE09本体はリロケータブルであり、
        |               BASE09                | 再配置可能。
        |                                     |
  3C00 -+------------------+                  |
        |       BIOS       |                  |
  4000 -+------------------+------------------+
        |             ワークエリア            |
  4300 -+-------------------------------------+
        |                                     |
        |             ソースエリア            |
        |                                     |
  5000 -+-------------------------------------+
        |                                     | KDOSはリロケータブルであり、Xコマンド
        |                KDOS                 | で動的に再配置可能。
        |                                     |
  6000 -+-------------------------------------+
        |                                     |
        |                                     |
        |             フリーエリア            |
        |                                     |
        |                                     |
  FB00 -+-------------------------------------+
        |         システム・スタック          |
  FC80 -+-------------------------------------+
        |          I/O、BOOT ROM他            |
  FFFF -+-------------------------------------+

7.10 比較表

最後にお約束の比較表です。
Runser OS-0 FM Engine MMS pico-DOS IODOS9 R-DOS P-dos KDOS OS-9 Level1 Flex 9
系列 ソフトバンク ソフトバンク ソフトバンク 秀和システム 秀和システム 工学社 工学社 工学社 技術評論社 Microware T.S.C.
初出 1989年8月 2002年? 1990年
(V3.00)
1985年4月 1984年6月 1984年3月 1984年5月 1987年2月 1984年6月 1982年8月
(FM-8)
1982年
(FM-8)
主開発ツール Draco-C ASM0 D-ASM アセンブラ アセンブラ K-Compiler アセンブラ FM-Pascal BASE09 Basic09, Asm ASMB
ファイルシステム拡張 △(edb2) OS-9 Flex
 ボリュームラベル
 拡張子 △(edb2)
 タイムスタンプ △(edb2) △(日付のみ)
 読み書き等属性
 階層ディレクトリ △(擬似)
 補足コメント
 テキストファイルフラグ
カラーFILES
Runtime Library ○(int) ○(Runb)
システムコール △(BASE09)
MMR対応 △(AV系版)
マルチタスク
プリントスプーラー
標準入出力
リダイレクト
F-BASICとの切り替え ○(片方向)
F-BASIC依存
 裏RAM切換 OSで使用 未使用
フリーメモリ 31KB 61KB 51KB 22KB 14KB 49KB 56KB 54-58KB 48KB 40KB 48KB


謝辞:本ページの各表の作成にはThinkさんのCSV→Table変換サイトのお世話になりました。 ありがとうございました。

F-BASIC起動画面集  F-BASIC詳細編  F-BASIC詳細編(その2:デモ画面集)  FM-11用F-BASIC
FM77AVシリーズ システムディスク編
FM77AVシリーズ デモ・入門ディスク編
CP/M-80編 CP/M-80 アプリケーション編
OS-9編
FLEX編 FLEX アプリケーション編
F-BASIC ファイルシステム(およびその上位互換)上に構築されたOS、開発システム
FM-7/8シリーズ用プログラミング言語とその処理系
番外編(その2:勝手に誤記修正編)
番外編(その3:6809用MMU考察)
番外編(その5:FM-7,8シリーズのROM一覧)
番外編(その6:FM-77用拡張メモリ他について)
番外編(その7:FM-8/7/77/77AVシリーズの微妙な非互換性)
番外編(その8:FM-7/8シリーズ用アドオンCPUカード)
番外編(その11:FM-11,16シリーズのROM一覧)
緊急特集:MB22603の秘密
FM-8改造 備忘録
--------
レベル3BASICとF-BASIC を覗いてみる
テクノポリス誌ナウシカベンチマークとミンキーモモベンチマーク
ASCIIART(マンデルブロ集合)ベンチマーク
漢字ROM博物館(情報募集中)
--------
電子工作のページ
各種電子デバイス関連
--------
入り口ページに戻る

ご意見、ご要望はこちらまで(笑)
Copyright (C) 2019 by Haserin