Hu-BASIC

Hu-BASICは、ハドソンが開発したシャープのパーソナルコンピュータ向けのBASIC言語。最初はMZ-80K向けに開発され、やがてシャープによりMZ-700、X1などで採用されたほか、韓国サムスンのSPCシリーズでも採用された。そのほか任天堂のファミリーコンピュータにもハドソンによりHu-BASICブランドのBASICが開発された。

名称はハドソンの社名に由来する。

1. 概説
-----

MZシリーズが標準で採用したシャープ製のS-BASICは、PETに由来する命令セットであるため、大勢を占めたマイクロソフト系のBASICからの移植性は低かった。対してHu-BASICはMS-BASICと同じ命令体系を持ち、MS-BASICで作成されたソフトウェアをHu-BASICに移植することが容易であった。

動作する機種当初はMZ-80K向けのインタープリタとして開発された。これはMZ-80Cなどいわゆる「MZ-80K系」の機種ならいずれも動く。MZ-80B系の機種用のものも開発・発売されている。のちにMZ-80K系の機種には、Hu-BASICのコンパイラも開発・発売されたが、コンパイラはバグを多く含んでいた。

MZ-80K系の機種であるMZ-700では、S-BASICと共にHu-BASICも標準添付された。MZ-80B系の機種であるMZ-2500用には発売されなかったが、標準添付されたBASIC-S25とBASIC-M25のうちBASIC-M25がHu-BASICに近い命令体系を持っていた。

後にシャープAV事業部から発売されたX1では標準プログラミング言語として提供された。X1ではS-BASICは無く、Hu-BASICだけが標準添付された。

ファミリーコンピュータ用のファミリーベーシックに採用された「NS-Hu BASIC」も同一のブランドで、一部同様の特徴があるが、機能的にはかなり異なる。

その他、サムスンが韓国で1982年に発売したサムスン・SPC-1000でも採用されている。

特徴
シャープのポケットコンピュータや富士通のF-BASICなどと同じく、命令文に省略形式が存在し、“LOCATE”は“LOC.”、“FOR”、“NEXT”はそれぞれ“F.”、“N.”と入力することでタイピングの手間を減らすことができた。
同時期のMS-BASICに比べ内部構造が洗練されており、実行速度も高速であった。
MZ-2000/2200用のVersion 2.0以降やX1用はRAMディスクに対応しており、RAMディスクを利用可能な環境であれば、テープ版であってもランダムアクセス処理を可能にしていた。
他機種のフロッピーディスクに対応しないBASICでは、カセットテープのシーケンシャルアクセスしかサポートしないため、ほとんどはランダムアクセス用の命令自体が実装されていなかった。
ディスクのフォーマットは共通になっており、機種に依存せずファイルの読み書きが可能。そのためMZ用では、S-BASICとデータディスクの裏表の扱いが反転している。
後にX1のHu-BASICを軸に開発されたS-OS"SWORD"でも、このディスクフォーマットが用いられた。元々単体製品だったゆえに多くの機能を盛り込んだことで、BASIC本体が大きくなったため、ユーザーが利用可能なフリーエリアは他の環境よりも狭くなっている。64KiBの主記憶が実装されたX1用であっても、フリーエリアは20KiB程度である。その後X1turboになる際、ファイル管理ルーチン、グラフィック描画ルーチン、機械語モニタプログラム、日本語変換機能をシャドーROMに追い出しフリーエリアを増やしている。X1F以降に標準添付されたV2.0では、NEW ON命令を使用することで、機能重複・低使用頻度の命令文やエラーメッセージなどを段階的に削除し、フリーエリアを増やせるようになっている。

2. 歴史
-----

開発にいたった経緯と開発した技術者たち

最初のリリース・発売の年月日と販売状況

3. バージョン
--------

3.1. MZ-700用
------------

HU-BASIC VERSION 2.0AMZ-700シリーズ用として標準添付されたもの。

3.2. MZ-1500用
-------------

HuBASIC Ver2.0標準添付されたMZ-700シリーズ用とは異なり別途販売されたもの。

3.3. X1用
--------

CZ-8CB01 V1.0初代X1などデータレコーダ搭載モデルに標準添付。カセットテープ専用。CZ-8RB01 V1.0CZ-8CB01 V1.0をROMに納め、X1用の拡張ボードとしたもの。ROMのままメモリ空間に配置されるのではなく、あくまでもRAMに転送してから起動するが、カセットテープからBASICをロードする時間を省くことができる。CZ-8FB01 V1.0ディスクドライブ搭載機種に標準添付。CZ-8CB01 V1.0にフロッピーディスク関連の命令を追加したもの。フリーエリアが若干減少している。CZ-8FB01 V2.0X1F/Gのディスクドライブ搭載モデル及びtwinに標準添付。NEW BASICとも呼ばれる。X1turbo開発時に得たノウハウをフィードバックし、グラフィック描画速度を大幅に向上させ、漢字も扱いやすくなった。反面、削除された命令もあり、広く利用されたV1.0に対する互換性が低下したため、利用があまり進まなかった。CZ-8CB01 V2.0X1F/Gのデータレコーダ搭載モデルに標準添付。機能はCZ-8FB01 V2.0と同等だが、NEW ON命令で削除される命令セットがデータレコーダに合わせたものになっている点が異なる。CZ-8FB02X1turboシリーズに標準添付。turbo BASICとも呼ばれる。400ライン表示などのX1turboのハードをサポートし、グラフィック描画速度も改善、全角文字を半角英数字と同等に扱えるようになった。CZ-8CB01/8RB01/8FB01 V1.0に対する上位互換性は良好だが、BIOS ROMをコールするオーバーヘッドのため、全体的な速度はCZ-8CB01/8RB01/8FB01より遅い。CZ-8CB02CZ-8FB02のテープ版。X1turbo model10に標準添付されたもので、単体での販売はされていない。テープ版でありながら機能はフロッピーディスク版と同等であり、ハードウェアを増設すればそのままフロッピーディスクドライブ、拡張GRAM、シリアルマウスI/Fの操作も可能。CZ-8FB03X1turboZII・ZIIIに標準添付。New Z-BASICとも呼ばれる。X1turboシリーズおよびX1turboZでは、単体販売されたNew
Z-BASICに同梱されているバンクメモリボードを増設することにより対応する。バンクメモリを使用して、FM音源とアナロググラフィック機能をサポートした。変数領域をバンクメモリに配置することでフリーエリアを広げることができるが、バンクメモリを切り替えるオーバーヘッドのため、CZ-8FB02/8CB02よりさらに遅くなっている。

3.4. ファミリーベーシック用
----------------

3.5. サムスンSPC用
-------------

V1.0サムスン・SPC-1000に付属。

3.6. その他
--------

mini Hu-BASIC/コンパイラー　 コンパイラに特化した整数BASICのインタプリターとコンパイラのセット。Hu-BASICとは文法が大きく異なり、Tiny BASICに近い。MZ-700用、X1用、PC-8001mkII用が存在する。カセットテープ専用。

4. 脚注
-----

4.1. 注釈
-------

4.2. 出典
-------

5. 関連項目
-------

Human68k - X1の後継機X68000のオペレーティングシステム。シャープとハドソンが共同開発している。
S-BASIC - シャープが自社開発したMZシリーズ用のBASIC。
dB-BASIC - デービーソフトが開発したMZシリーズおよびX1シリーズ用のBASIC。