PC-98のDISK BASICにおいてフリーエリアを極限まで確保する

Image: PC-98D49-MW(K)

NEC PC-9800シリーズのDISK BASIC(ここではN88-日本語BASIC(86))における利用可能メモリ、いわゆるフリーエリアを極限まで確保しようという試み。
話題が激しく「今さら」感がするのはいつものこと。

本題に入る前に。
N88-BASIC(86)は純粋な16ビットOSであるため、PC-98のノーマルモードでは最大640KBのメモリしか利用できない。
その中でBASICのシステムがメモリを消費するため実際にユーザーが利用できるメモリの空き容量はさらに少なくなる。
最もフリーエリアを確保できる方法はPC-98内蔵のROM BASICを利用することだが、ディスク装置を扱えないという致命的な問題がある。
というわけでここではDISK BASICを利用する。

Disk version
How many files(0-15)? X
NEC N-88 BASIC(86) version X.X
Copyright (C) 1983 by NEC Corporation / Microsoft Corp.
XXXXXX Bytes free
Ok

「How many files(0-15)?」で確保するファイルバッファの数を指定する (バッファ1個あたりテキストセグメントを296バイト消費。)
空きメモリサイズはBASIC起動時に「117380 Bytes free」というようなメッセージからわかる。
DISK BASICを標準的なPC-98で標準の設定で起動すると空きメモリは460KB〜500KBくらいになるだろう。
しかしこれは既にいくつかの拡張機能を組み込んだ状態での空きメモリ容量だ。
この拡張機能については取捨選択ができるようになっており、使わない機能を無効にすることで空きメモリを確保することができる。
下表はN88-日本語BASIC(86)ユーザーズマニュアルより抜粋。

機能 サイズ
標準 24KB
AI逐次変換, AI連文節変換, 逐次変換, 連文節変換入力を選択した場合 +123KB
単文節変換入力機能の場合 +42KB
拡張グラフィックモードでシステムが起動された場合 +22KB
拡張画面ハードコピー機能が選択された場合 +8KB
モニタモードを使用する場合 +17KB
電話制御機能を使用する場合 +20KB
拡張フォーマットの固定ディスクを使用する場合 +18KB
SCSI固定ディスクを使用する場合 +17KB

ということで使わない機能を無効にしてみる。

・かな漢字変換機能を無効にする
DISK BASICを起動して「run "setup.n88"」(セットアップユーティリティ)を実行する。
日本語入力属性の設定で日本語入力方式を「JISコード入力」に設定する。


・拡張グラフィックモードを基本グラフィックモードに変更する
ディップスイッチ SW1-8をOFFにする。

・固定ディスク(ハードディスク)を切り離す
ディップスイッチ SW2-6をONにする。

・拡張画面ハードコピー機能、モニタモード、電話制御機能を無効にする
DISK BASICを起動して「run "switch.n88"」を実行しメモリスイッチの設定を変更する。
メモリスイッチの設定を保持するため、ディップスイッチ SW2-5をONにする。

上記すべての機能を無効にすると100KBほどのメモリを解放でき、約600KBものフリーエリアを確保できる。
まあ実のところBASICではメモリを用途ごとにいくつかの区画に分けていて、それぞれの区画内の空きの合計を「XXXXXX Bytes free」としているのだけど。
そのあたりの細かいことはユーザーズマニュアルを参照。


QLOOK ANALYTICS