WICS
WICSはBASIC(当時のマイコンのそれ)に似た表記方法を採用した高水準言語で、処理系としてはインタプリタもコンパイラもあった。処理速度とRAM領域が限られた8ビットパソコンで、容易に高速なアプリケーション、特にゲームを作成する目的で開発された。
工学社のI/O誌1981年9月号より連載記事の形で、MZ-80K/C版のインタープリタ(バージョン1.1)のアセンブラ言語BASE-80で記述されたソースコード、コンパイラ(バージョン1.2)のWICS自身で記述されたソースコードが公開された。後に発刊された「I/O別冊 WICS・BASEプログラム集」では、MZ-2000向けのインタプリタ(BASEアセンブラによる記述)・コンパイラ(WICSによる記述)の全ソースコードが掲載された(MZ-80B向けでは、I/O本誌連載時にコンパイラのみソースコード掲載)。
製品版は、カセットテープ2巻(インタプリタとランタイム、コンパイラ)でキャリーラボから販売された。
MZシリーズのアプリケーション作成ツールの主流の一つとなったが、他のプラットフォームの処理系は、キャリーラボからの発売のみか、発売されていないものさえあった。
ステートメント(文)と関数がある。
WICSによるHello world
(簡易なBASICであるTiny BASICなどにも良くあった機能制限であるが)扱える数値は8ビットか16ビットの整数のみで、文字列を編集するような機能も無い。代わりにメモリ操作やビット操作、画面表示関係などの機能を持つ。
リテラルには、16ビットの範囲の十進または十六進表記、及び1文字分の8ビット文字コードがある。変数は16ビットのみである(8ビット文字コードを変数に代入すると上位8ビットは0でパディングされ、変数を文字として出力する場合等では上位8ビットは捨てられる)。
配列は8ビット配列と16ビット配列とがある。実体としては、使用するメモリ領域先頭のアドレスを変数に与える。要するにポインタであり、適切に使用しなければ任意のメモリの内容を壊してしまう。
文字列は、特定のステートメント及び関数の引数としてのみ使用できる(文字列からポインタを得るような機能は提供されていない)。
BASICの基本的な制御構造と同様のものの他に、Pascal風のREPEAT - UNTILがある。
標準ストリーム的な考え方も取り入れられており、PRMODEステートメントにより、同一の出力命令からの出力先をディスプレイとプリンタとで切り替える。上記のHello worldは、PRMODE 1に変更するとプリンタに印字される。
多くのBASICと異なり、機械語プログラム呼出し機能の USR が関数であるため戻値を得ることができる。機械語ルーチンはHLレジスタに引数を設定して呼出され、HLレジスタに戻値を入れて戻す。