Loading AI tools
富士通が自社のパソコンに搭載したBASIC言語 ウィキペディアから
F-BASIC(エフベーシック)は、富士通が自社のパソコンブランドであるFMシリーズに搭載したBASIC言語。マイクロソフト系BASICに由来する命令セットを持つ。
CHAIN
文/COMMON
文、配列を消去するERASE
文、プリンタ出力のためのLLIST
文/LPRINT
文/LPRINT USING
文/LPOS
関数、PRINT USING
文/LPRINT USING
文での書式制御文字列の追加、OPEN
文でのプリンタに対するオプション指定の追加、ユーザープログラムの自動スタート機能などが追加された。また、文字列領域のガベージコレクションが改良され、文字変数1つあたり2バイト余計にメモリを必要とするようになったが、ガベージコレクション処理は大幅に高速化された。バリエーションとして128KBバブルカセットに対応したF-BASIC V2.2(128KBバブルカセットにより供給)が存在する。COLOR=
文、マルチページ機能を制御するSCREEN
文、MMLによる音楽演奏を行うPLAY
文、PSGの直接制御を行うSOUND
文などが拡張された。バブルカセットに対するBUBINI/BUBR/BUBW
文及びアナログポートに対するANPORT
関数は削除された[1]。バリエーションとして1MBフロッピーディスクに対応したF-BASIC V3.1(3.5インチフロッピーディスクにより供給)が存在する。STOP ON/OFF
文、漢字表示のためのKANJI
文、外字登録のためのDEF KANJI
文、式の評価をファイルに出力するWRITE/WRITE#
文、テキスト画面の色やアトリビュートを設定するCOLOR@
文、漢字のグラフィック画面への拡大描画を行えるSYMBOL@
文、グラフィック画面のハードウェアスクロールが可能なROLL
文、テキスト画面上に時刻を表示するCLOCK ON/OFF
文、ライトペン割り込み制御のPEN
文/ON PEN GOSUB
文、PEN ON/OFF/STOP
文が追加された。また、AUTO
文での注釈行自動発生機能、HARDC
文でのテキスト画面・グラフィック画面個別のハードコピー、SCREEN
文での画面モード指定、LINE
文でのラインスタイル指定、PAINT
文でのタイルペイント対応、SIN/COS/TAN
などの数学関数の倍精度演算化が行われた。このバージョンから文字列領域とスタックバッファの扱いが逆になり(文字列領域はメモリがある限り確保、スタックバッファはCLEAR
文で確保される)、それに伴いCLEAR
文の文法も変更された。基本的にBASICインタプリタはフロッピーディスクからRAM領域に展開されるが、ディスクドライブを標準装備していないFM-11STでは起動時に専用のROMカードからRAM領域にBASICインタプリタを展開する方式となった。バリエーションとして128KBバブルカセットに対応したF-BASIC V4.2、ハードディスクに対応したF-BASIC V4.3が存在する。ANPORT
関数が正式に削除された。PEN
文は削除された。400ラインセット付属の192KB RAMカードを装着した場合には、RAMディスクが使用できる。PLAY
文/SOUND
文のFM音源やMIDIへの対応などが行われた。画面編集の方式がF-BASIC V3.0までと同様のものに戻ったほか、日本語文字列にも対応していないため、F-BASIC V5.0/V3.5に存在したKANJI/ROLL/CLOCK
文および日本語文字列操作関数などは削除された[2]。FM-77+拡張RAMカードでも起動できたが、FM77AV独自機能が使用出来ないよう制限がかけられていた。KANJI ON/OFF
文、RS-232Cインタフェースのボーレート制御のためのBAUD
文が追加された[3]。日本語モード対応に伴い、F-BASIC V3.3L10で削除された日本語文字列操作関数およびSYMBOL@
文が復活した。NEW ON
文が追加された。FM77AV40/40EXでRAMディスクを使用している場合、V3.4L10ではリセットごとに内容が初期化されていたが、V3.4L20では内容が保持されるようになった。なお、このバージョンからデータレコーダのサポートが削除された。この2つのバージョンは起動プロセス、起動メッセージおよびバージョンスタンプ情報を除き、極力コードの統一化が図られた。バリエーションとして、レベルアップサービスによって提供された400ラインモードおよび262,144色モード用サブシステムコードを含むFM77AV40専用版のF-BASIC V3.4L20[4]、FM77AV40SXに付属したF-BASIC V3.4L21が存在した。F-BASIC V3.4L21はF-BASIC V3.4L20のバグ修正版にして8ビット機F-BASICの最終バージョン。F-BASICインタプリタ内部のエントリアドレスが一部異なるため、F-BASIC V3.4L20の拡張BASICが使えない場合が存在した。当時としては画像や音声を扱う機能が豊富であった。
共通点として、コマンド画面では行ごとにRETURNキーを押さなくても画面上の全変更行が更新されたため、比較的スクリーンエディタ風の編集が出来た。
F-BASIC V1.0/V3.0では、本体内蔵のROM BASICにはフロッピーディスク用の命令等が含まれておらず、ディスク使用時には別売のDISK-BASICを購入して起動時に読み込ませる必要があった。このディスク拡張部分は本体RAMの上位アドレス部分(ROM領域の直前)に展開され、ROM BASICの命令と同じように使用することができた。F-BASIC V2.0以降で拡張された命令も同様の仕組みで実装されている。
後にこの部分の仕様が解析されると、ユーザが独自に新たな命令を定義してBASICを拡張することが可能であることが判明したため、『I/O』(工学社)や『Oh!FM』(日本ソフトバンク)等の専門誌ではユーザやライターらが開発した拡張命令等がほぼ毎月のように掲載されるようになった。
DEF SEG
文やINP
関数、OUT
文、SYSTEM
文などが追加されているが、PLAY
文・SOUND
文は割愛されているほか、データレコーダのサポートが削除されている。SCREEN 6
文からKANJI ON/OFF
文に変更されている。日本語モードでの各種メッセージが日本語化されている。ワールド座標に対応したほか、CIRCLE
文のアルゴリズムが変更され従来よりきれいな円を描画することができるようになっており、LINE
文、CIRCLE
文の塗りつぶしを枠と別の色(タイルパターンも使用可能)で塗りつぶす機能に対応した。OPEN
文の文法としてNECのN88-BASIC同様の書式が使用可能となっている。8ビット機用F-BASICフォーマットのフロッピーディスクの読み書きにも対応している。後に発売されたFM16βSDではフリーエリアの減少を最低限にとどめるため、F-BASIC86 V2.1をCPUカード上のROMに搭載しており、FM-16βFD/HDにおいても同バージョンのフロッピーディスクによる供給が行われた。KOKUGO ON/OFF
文、チャイルドプロセスを呼び出すCHILD
文などが追加されている。8ビット機用F-BASICフォーマットのフロッピーディスクの読み書き機能は削除され、外部ツールを利用する形となった。BEEP &HFB386
というコマンドを実行すると隠しドキュメントが表示されるというイースター・エッグがある[5](V2.1L20で実行すると、前述の隠しコマンドの解説が表示される[5])。『Oh!FM TOWNS』1992年8月号のアンケートの集計結果によると、FM TOWNSユーザーのF-BASIC386所有率は半数以上に達していた[7]。
特定の機種用の言語であったF-BASICだったが、Windows上で動作するバージョンも登場した。
何度かバージョンアップが行われたものの、Windows XPはサポートされないまま、2006年3月末をもって販売を終了した[8]。最終バージョンは6.3[8]。
従来のF-BASICに近い「手続き型」のほか、Microsoft Visual Basicに近く、WindowsのGUIを使った「イベント駆動型」での開発が可能。
しかし設計はあまり洗練されておらず、GUIの部品にアクセスするには、ATTACH命令で変数と部品を接続しなければならないうえ、Visual BASICのような「プロパティ」の概念がなく、複雑な名前の命令を呼ぶ必要があるなど、煩雑で扱いにくいプログラムになりがちであった。例としてテキストボックスのテキストを変更するプログラムは、Visual BASICではText1.Text = "Wikipedia"
と書くだけで良いのに対して、F-BASICでは以下のように書く必要がある。
COMMON SHARED TEXT1 AS OBJECT
TEXT1.ATTACH GETDLGITEM("TEXT1")
TEXT1.SETWINDOWTEXT "Wikipedia"
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.