F-
BASIC(エフベーシック)は、かつて
富士通が自社のパソコンシリーズであるFMシリーズ向けに開発・搭載したプログラミング言語です。その命令セットは、広く普及していた
マイクロソフト系
BASICに由来しており、多くのユーザーにとって親しみやすい環境を提供しました。
8ビット機向けF-BASICの展開
最初のF-
BASICは、
FM-8に搭載されたF-
BASIC V1.0でした。これは
マイクロソフト製の6809用
BASICをベースに開発され、「FUJITSU MICRO 8
BASIC」としてスタートしました。その後、ディスク版専用のF-
BASIC V2.0が登場し、プログラム連結実行のためのCHAIN/COMMON文、配列操作、プリンタ出力機能、書式制御などが追加され、文字列処理のガベージコレクションも改良されるなど、実用性が向上しました。
FM-7シリーズの標準となったF-
BASIC V3.0は、V2.0を基盤としつつ、起動メッセージが「FUJITSU F-
BASIC」に変更されました。このバージョンでは、
FM-7のハードウェアを活かすCOLOR=文、SCREEN文によるマルチページ制御、MMLによるPLAY文、PSG直接制御のSOUND文といったマルチメディア関連機能が拡張されました。
FM-11シリーズでは、メモリマッピングレジスタを活用するF-
BASIC V4.0が登場。インタプリタやテキストエリアが拡大され、画面編集方法も改良されました。640x400グラフィックモード、漢字表示、外字登録、ファイル出力、テキスト画面の色制御、漢字拡大描画、ハードウェアスクロールなど、多数の新機能が追加されました。数学関数の倍精度演算化や、文字列領域とスタックの扱いの変更も行われました。特にディスクドライブ非搭載のFM-11ST向けには、ROMカードからのインタプリタ展開という供給形態も存在しました。
F-
BASIC V5.0はV4.0をベースとしたFM-11AD2向けのバージョンで、プログラム中に直接日本語文字列を記述できる対応が最大の特長です。これに関連した日本語文字列操作関数も追加されました。
FM-77シリーズ向けには、400ライン表示に対応したF-
BASIC V3.5(
FM-77/77L4)が提供されました。これはほぼV5.0の
FM-77移植版とも言えるもので、日本語文字列にも対応しましたが、ライトペン関連機能は削除されました。
FM77AVシリーズ専用に開発されたF-
BASIC V3.3L10〜L12では、AV機能が大幅に強化されました。320x200ピクセル4096色モード、スーパーインポーズ、ビデオデジタイズ、FM音源・MIDI対応などが盛り込まれました。ただし、画面編集方法はV3.0以前に戻り、日本語文字列対応機能は一旦削除されました。
F-
BASIC V3.3L20はV3.3L10に2DD
フロッピーディスク対応と日本語文字列対応機能を追加。日本語モード切り替えのKANJI ON/OFF文や、削除されていた日本語文字列操作関数などが復活しました。
FM77AV40向けのF-
BASIC V3.4L10では、640x400ピクセル8色モードと320x200ピクセル262,144色モードが追加され、日本語モードでのメッセージも日本語化されました。
8ビット機F-
BASICの最終バージョン群であるF-
BASIC V3.3L30 (FM77AV) および V3.4L20〜21 (FM77AV40) は、日本語漢字表示の高速化、MMR使用時のクロックダウン抑制、DMAによる高速なディスクアクセスなどが実現しました。データレコーダのサポートはこのバージョンで終了しました。V3.4L21はV3.4L20のバグ修正版で、8ビット機F-
BASICの最終形態となりました。
これらの8ビット機向けF-
BASICは、当時としては画像や音声を扱う機能が豊富でした。また、コマンド画面での編集において、行単位でRETURNキーを押さなくても画面上の変更が反映されるなど、スクリーンエディタに近い操作性も共通する特徴でした。初期のバージョンでは、本体内蔵のROM
BASICにディスク命令が含まれておらず、DISK-
BASICを別途読み込む必要がありました。この拡張機構の仕様が解析されると、専門誌を通じてユーザーが独自に拡張命令を開発・公開する文化が生まれました。
16ビット機向けF-BASIC86
FM-11向けのF-
BASIC86 V1.0は、
CP/M|CP_M-86上で動作する16ビット版です。F-
BASIC V5.0の8086コード移植版と言えますが、ハードウェアやOSの違いからDEF SEG、INP、OUT、SYSTEMといった命令が追加・変更され、PLAY/SOUND文やデータレコーダサポートは削除されました。
FM16βシリーズ向けのF-
BASIC86 V2.0/V2.1は、
CP/M|CP_M-86上で動作し、日本語メッセージの日本語化やグラフィック機能の向上(ワールド座標、きれいな円、塗りつぶし機能強化)が図られました。NEC N88-
BASIC互換のOPEN文法や、8ビット機F-
BASICフォーマットの
フロッピーディスク読み書き対応も特徴です。FM16βSD向けにはCPUカード上のROMに搭載されたバージョンもありました。
FM16πには、FM16β用V2.1のサブセット版がROMカートリッジで供給されました。
FM16βおよびFMRシリーズ向けのF-
BASIC86 V3.1は、
MS-DOS上で動作するバージョンです。日本語変数名対応、
BASIC構文の「国語化」を行うKOKUGO ON/OFF文、チャイルドプロセス呼び出しのCHILD文などが追加されました。一方で、8ビット機FDの読み書き機能は削除されています。
F-
BASIC86HGは、
MS-DOS上で動作するF-
BASIC86 V3.1の大幅拡張版で、サブプログラムの概念が導入されました。ただし、中間コードに互換性がなく、V3.1のプログラム実行にはユーティリティが必要でした。
32ビット機向けF-BASIC386
FM TOWNS向けに開発されたF-
BASIC386は、実行画面とは独立したスクリーンエディタを備え、スプライトや
サウンドなどのマルチメディア機能が強化されました。後に
コンパイラ版も発売され、V2.1からは構造化プログラミングに対応しました。TownsGEARというGUI開発環境も提供され、そのスクリプト言語としても機能しました。また、
隠しコマンドやイースターエッグも存在しました。当時の
FM TOWNSユーザーの間では非常に普及しており、アンケートでは半数以上の所有率が確認されています。
Windows向けF-BASIC
特定の機種に特化した
BASICだったF-
BASICは、汎用OSであるMicrosoft Windows上でも動作するバージョンが登場しました。
Windows 3.1向けの「F-
BASIC コンパイラ for Windows 3.1」は、コンパイルして実行ファイルを生成でき、
Visual Basicとは異なり
ランタイムライブラリが不要な点が特徴でした。
Windows 95以降には、「F-
BASIC V4.1」、「F-
BASIC97 V5.0」、「F-
BASIC V6.0」、「F-
BASIC V6.3」とバージョンアップが重ねられました。「F-
BASIC97 V5.0」の「97」は、FM-11用V5.0とのバージョン番号重複を避けるためのものでした。これらのバージョンは
MS-DOS版
BASICプログラムのWindowsへの移行を支援し、WindowsのGUIコントロールを利用した開発も可能でした。
開発スタイルとしては、従来の「手続き型」に加え、
Visual Basicに近い「イベント駆動型」が提供されました。しかし、その設計は必ずしも洗練されておらず、GUI部品へのアクセスには「ATTACH」命令で変数と部品を接続する必要があり、
Visual Basicのような「プロパティ」の概念がないため、複雑な名前の命令を呼び出す必要がありました。これにより、プログラムが煩雑になりやすく、扱いにくさを感じるユーザーもいました。
Windows XPには正式対応しないまま、F-
BASICは
2006年3月末をもって販売を終了しました。最終バージョンはV6.3でした。