王BASIC

王BASIC
開発者王研究所
初登場1973 (1973年
影響を受けた
ダートマスベーシック

Wang BASICは、 Wang Laboratories社製のコンピュータ用BASICプログラミング言語シリーズです。この用語はWang社製のあらゆるマシンに搭載されているBASICを指すこともありますが、主に1970年代初頭のWang 2200ミニコンピュータシリーズに搭載されていたバージョンを指します。1976年にこれらのマシンがVPシリーズにアップデートされた際にBASIC-2が導入され、2200シリーズの後継機種のベースとなりました。計画されていたBASIC-3はリリースされませんでした。

ワンは2200シリーズの各バージョンに複数のモデルを提供しました。これらのモデルは、読み取り専用メモリ(ROM)に格納されるマイクロコードの量、つまりそのマシンで使用できるBASICコマンドの数のみが異なるものでした。例えば、BモデルマシンはベースモデルAとは異なり、ROMを2倍にし、そこに様々な入出力コマンドやファイル管理コマンドを格納していました。

Wang BASICは、構文的にはオリジナルのDartmouth BASICに忠実に従っていましたが、コンパイル&実行システムではなくインタープリタでした。注目すべき特徴は、すべての演算処理に倍精度の2進化10進数(BCD)形式が使用されていたことです。これは当時のBASICとしては異例でした。[ a ] Microsoft BASICなどの後継方言に共通する多くの機能が欠けていましたが、これらの機能の多くはBASIC-2で追加されました。

説明

以下の説明は、2200Aに搭載されていたオリジナルのBASICに基づいています。以下に挙げる命令の全てがベースモデルで使用できるわけではありません。2200BとCでは数十もの新しいキーワードが追加されており、以下で個別に説明します。

プログラムの編集と実行

2200用のオリジナルのWang BASICは、ダートマスBASICのコンセプトの比較的標準的なバージョンであり、Microsoft BASICなどの一般的なBASICインタープリタのユーザーには馴染み深いものでしょう。ほとんどのBASICインタープリタと同様に、Wang BASICはイミディエイトモードまたはプログラムモードで動作し、(リターン)キーが押されたときに行の先頭に行番号が表示された場合、後者に切り替わりますEXEC。行番号の範囲は0から9999です。行は最大192文字で、画面上の複数の行にまたがり、[ 1 ]また、行にはコロンで区切られた複数のステートメントを含めることができます。[ 2 ]大規模なプログラムを整理しやすくするために、この言語にはRENUMBERコマンドが含まれていました。[ 3 ]

LISTはプログラムのソースコードを表示するために使用され、 はLIST S最初の15行のみを表示して一時停止しました。一時停止中にEXECキーを押すと、次の15行が表示されます。[ 4 ]SAVE "filename"は現在のプログラムをカセットに保存し、LOAD "filename"それを読み込みます。SKIP 2Fはカセットテープ上の次の2つのファイルを読み込み、その後停止し、次のLOADまたは がSAVE3番目のファイルを読み取れるようにします。[ 5 ]BACKSPACEはSKIPの反対で、ファイルポインタを巻き戻します。ディスクストレージの操作はやや複雑で、 を使用しますLOAD DC F "filename"。ここで、Fは定義済みのドライブの1つを指し、この場合は「F」です。[ 6 ]

RUN実行を開始し、のように特定の行に指示することができますRUN 100。このSTOPコマンドは、通常デバッグに使用され、そのステートメントが実行されたときに表示されるオプションの文字列を許可します。[ 7 ] はTRACE、実行された行を印刷するために使用でき、キーボードのカスタム(break) キーとキーと組み合わせてプログラムを1行ずつ移動するためによく使用されます。[ 8 ] は、行間の遅延を16秒単位で設定するために使用されました。遅延を0に設定すると、各行の後に12秒停止します。 [ 9 ]HALTSTEPSELECT PTRACESELECT P0SELECT P3

NEW既存のプログラムのメモリをクリアするコマンドは存在せず、 [ 10 ]代わりにCLEARメモリをリセットするコマンドが存在した。[ 11 ]CLEAR P("P"rogram用)はNEWコマンドと同等であるが、オプションのfrom行番号とto行番号が追加され、[ 12 ]一部の方言で見られるコマンドと同様の方法で、指定した範囲の行だけを削除するDELETECLEAR V変数値をクリアする。 [ 13 ]これは通常、CLRほとんどの方言で実行される。[ 14 ]CLEAR NはCLEAR Vコマンドと似ているが、共有変数の値はクリアしない(下記参照)。[ 12 ]

構文

分岐はIF...THEN、、GOTOおよびによってサポートされていましたGOSUB。代替形式でGO TOある、はサポートされていませんでした。Wang BASICの制限の一つは、オリジナルのDartmouthの場合と同様に、 IF文のTHEN句に行番号しか使用できないことです。これは、 THEN句の後に任意の文を記述できるより現代的な方言とは対照的です。また、 ANDORのようなブール接続詞がないため、テストは単一の比較しか実行できませんでした。[ 15 ]

この言語に追加された興味深い機能の 1 つは、名前付きルーチンというアイデアです。実装は、 というステートメントに続いて一重引用符と 0 から 255 までの数字 (例) を続けることで行われました。これは を使用して呼び出すことができます。さらにややこしいことに、DEFFN 行は真の関数定義であり、 などのパラメータを使用でき、これは を使用して呼び出すことができます。 では、複数行の関数定義を実装できます。これは、他の方言では GOSUB ではなく従来の関数スタイルを使用して提供されることがありました。[ 16 ]さらに、0 から 31 までの名前付きルーチンが 2200 キーボードの同じ番号のキーに割り当てられ、1 回のキー押しで直接呼び出すことができるようになりました。[ 17 ]DEFFNDEFFN'1GOSUB'1DEFFN'5(A$,N)GOSUB'5("hello",4)

PRINTはパラメータを区切るコンマとセミコロンをサポートしており、前者はカーソルを次の16文字幅の列に移動し、後者はカーソルを印刷値の末尾に置きます。関数はサポートしていましたTAB()が、はサポートしていませんでしたSPC()。当時の他の「ハイエンド」BASICと同様に、Wang BASICは とPRINTUSING別の「イメージ」を使用してフォーマットされた出力を提供していました。イメージは、例えばパーセント記号で始まる別の行を使用して定義され、180 % ##,###.##そのフォーマットを使用して で定義されました。[ 18 ]フォーマット文字以外の文字は印刷時にエコーバックされるため、 のような形式で完全な出力を定義することができました。[ 19 ]190PRINTUSING180,N180 % ANGLE= #.#### RADIANS

INPUT文には、プロンプトと、コンマで区切られた1つ以上の変数のリストを含めることができます。INPUT文ではセミコロンは使用できません。また、入力中はカーソルは常に最後に表示された要素の末尾に留まります。[ 20 ]

数学と論理

当時の多くの方言と同様に、変数名は大文字1文字、または文字1文字とそれに続く数字1文字で構成できました。2文字の名前はサポートされていませんでした。[ 21 ]複数の変数に初期値を設定するには、コンマ区切りのリストを使用しますLET A,B,C=1。例えば、 です。ほとんどのBASICと同様に、 はLET常にオプションでした。[ 22 ]変数は を使ってリスト(1次元配列)にすることができますDIM。例えば、 はDIM A(5)5つの数値のリストを作成します。[ 23 ]または を使って2次元配列にすることができますDIM B(5,5)[ 24 ]

関係演算子には、標準的な 、、、、、および が含まれていました。[25] 三角関数には、、、、、、、、および が含まれていました。[ 26 =]はARCTANの別名でし。[ 27 ]三角関数通常ラジアン演算れます、を使用して度またはを使用してグラジアンを使用するように設定できを使用ラジアンに戻すことができます。その他の関数には、、、、[ 28 ]および疑似変数が含まれていました。[ 29 ]<><><=>=SINCOSTANARCSINARCCOSARCTANLOGEXPSQRATNSELECT DSELECT GSELECT RINTABSSGNRND#PI

ほとんどのBASICとは異なり、このRND関数はパラメータをプレースホルダとして扱いませんでした。ゼロ以外の値を指定すると、他のBASICで見られるRNDのように動作し、ゼロを指定すると、RANDOMIZE他のBASICで見られるステートメントと同じように数値シーケンスが再開されました。[ 29 ]これは、他の方言から移植する場合に潜在的なバグの原因となります。他の方言では、一般的にパラメータが無視され、ゼロが単なる共通のプレースホルダとしてパラメータとして使用されることが多かったためです。[ b ]

文字列

文字列変数がサポートされ、プラス演算子を用いた連結もサポートされていました。Microsoftのようにヒープ上で動的長さの文字列を使用する後期のBASICとは対照的に、Wang BASICでは全ての文字列のデフォルト長を16文字に設定し、それを超える文字は無視されていました。[ c ]文字列末尾の未使用文字はスペース文字で埋められ、PRINT文では末尾のスペースは無視されました。[ 30 ]これは、Wang BASICへのコード移植時に問題を引き起こす可能性のあるもう一つの原因です。

任意の単一文字列の格納長はDIM、ステートメントを使用して変更できます。この場合、通常のDIMステートメントのように括弧を使用する代わりに、変数名の直後に長さを指定するという少し変わった構文が使用されます。DIM A$40[ 31 ]文字列の最大長は64文字でした。[ 33 ]構文では文字列のリストが許可されており、たとえば、デフォルトの16文字長の文字列を5つリストにすると、20文字の文字列を10個リストにすることができます[ 34 ]DIM A$(5)DIM B$(10)20

文字列関数はいくつかありました。は、DEC/Microsoft スタイルの/ /に代わるSTR汎用の配列スライスコマンドです。たとえば、は A$ の 10 文字目から始まる 5 文字を返します。[ 35 ] 2 番目のパラメータはオプションで、5 文字目以降のすべてを返します。は、末尾のスペースを無視して文字列の長さを返すため、3 を返します。[ 36 ]さらに混乱を招くのは、空の文字列変数は常に長さ 1 を返すことです。[ 37 ]文字列関数には $ が含まれないことに注意してください。これは、これらの関数が などと名前付けされ、戻り値が数値ではなく文字列であることを示します。[ 38 ]MIDLEFTRIGHTSTR(B$,10,5)STR(C$,5)LENLEN("ABC ")STR$

データとI/O

ダートマスモデルに倣い、ワングBASICにはDATAプログラムコード内に定数を格納するための文が含まれており、これらのREAD定数は 文を使って読み取られる。 文は最初のデータ要素から始まり、READごとにポインタを次の要素に移動する。 はRESTOREREADポインタをリセットすることができ、オリジナルのダートマス版から拡張され、リスト内の特定の項目にポインタを設定できるようになった。例えば は、ポインタをRESTORE 1010番目の要素に設定する。1つのプログラムでは、DATA文に入力できる値は合計256個だけであった。[ 39 ]

ステートメントSELECTは、デバイスの「アドレス」に基づいて、他のBASICコマンドの出力を他のデバイスにリダイレクトするために使用できます。例えば、SELECT PRINT 215は後続のPRINTステートメントの出力をアドレス215のプリンタに送信し、SELECT PRINT 005出力を内蔵CRTに返します。は、SELECT LIST 215後続のLISTステートメントに対しても同様の処理を行います。[ 40 ] SELECTには、最大行長を設定するためのオプションのパラメータもありますSELECT PRINT 215 (132)。例えば、 のように。SELECTは、CI(コンソール入力、通常はキーボード)やLIST(プログラムリストを別のデバイスにリダイレクトする)など、様々な定義済みデバイスと共に使用できます。[ 40 ]

プログラムの連鎖

当時のマシンのメモリ容量は非常に限られていたため、ほとんどのBASIC方言には、プログラムを「連鎖」させて小さなモジュールに分割する機能が含まれていました。Wang BASICでは、これはCOMLOAD文によって実現されていました。[ 41 ]

COMは1つ以上の変数を「共通」として宣言した([ d ] 、現代の用語ではグローバル)。連鎖を使用するプログラムでは、通常、コードの先頭近くで、おそらく で、いくつかの変数を共通として宣言するCOM A,B,I,A$20[ 42 ]別のプログラムモジュールがロードされると、リセットされる非共通変数とは対照的に、これらの変数の値はクリアされない。共通変数は を使用して明示的にクリアできるCLEAR Vが、 はCLEAR N非共通変数をクリアし、共通変数はそのままにする。変数は を使用して非共通として宣言することもできCOM CLEAR、これによりすべての共通変数が通常の状態にリセットされるか、またはA の状態だけがリセットされる。ややこしいことに、 COM CLEAR は A より前に定義された他の COM 変数もリセットするため、元のプログラムがまたはCOM CLEAR Aを使用した場合、 COM CLEAR A の結果は異なり、最初の例では3つすべてがリセットされるのに対し、2番目の例では A のみがリセットされる。[ 43 ]COM S,B,ACOM A,B,S

LOADコマンドは連鎖処理にも使用されました。オプションで開始行番号と終了行番号を追加することができ、その場合、その間にある既存の行は削除されます。開始行番号が1つだけ指定されている場合は、開始行からプログラムの最後までが削除されます。新しいプログラムはその時点でロードされ、開始行番号から実行が開始されます。開始行番号が指定されていない場合は、プログラムの先頭から実行されます。[ 44 ]

2200 BASICのバリエーション

オリジナルの Wang BASIC には、ROM ベースのマイクロコードの量、つまりサポートされるキーワードの数が異なる複数のバージョンがありました。

2200B

2200BのBASICは、2200A版の大幅な拡張でした。追加された機能は、大きく分けて4つのカテゴリーに分類できます。不足していた機能、追加された文字列コマンド、ベクター風コマンド、そして入出力です。バージョン間の差異は、2200の概要資料に表形式で記載されています。[ 45 ]

ON...GOTO2200Bで対応された欠落機能には、 [ 46 ][ 47 ]の追加が含まれていましたON...GOSUB。KEYINMS BASICと同様に、一時停止せずにキーボードから文字を読み取ります。VAL文字列を検索し、その中の数値を返します。NUM関数はLENに似ていますが、最初の非数値文字までの部分文字列の長さを返します。例えば、A$が の場合、は6を返しますが、 A$が の場合、NUMは10を返します。これは、数値にはスペースが有効であるためです。[ 48 ]INKEY$"1234.5"NUM(A$)"1234.5    "

2200B では、数値を文字列に変換するSTR$関数は追加されませんでした。代わりに、文字列を数値に、またはその逆に変換するCONVERTコマンドが追加されました。たとえば、上記のA$を使用すると、Bには値 1234.5 が含まれますが、 を使用すると、B$には のようなものが残ります。[ 49 ]ダートマス BASIC にはCHANGEコマンドが含まれていましたが、その目的はまったく異なり、ダートマスでは、Bに値の配列を生成し、各要素にはA$の対応する文字の ASCII コードが含まれます。この場合、Bには 49、50、51、52、46、53 という文字の ASCII 値が含まれます。Wang のCONVERT には、 PRINTUSINGなどの書式指定子を受け取り、それを使用してCsprintfに類似した方法で数値を書式設定された文字列に変換する2 番目のモードもありました。[ 49 ]CONVERT A$ TO BCONVERT 123 TO B$"123 "CHANGE A$ TO B"1234.5"

POS関数は、文字列内の指定された文字のインデックスを返します。つまり、3 が返されます。MSのINSTRとは対照的に、POS は複数文字の文字列ではなく、単一の文字のみを検索できます。 POS("HELLO WORLD", "L")

HEXは16進数値を対応する文字に変換します。例えば、A$A$=HEX(20)の最初の文字にスペース文字(16進数20)を挿入します。[ 50 ]複数のコードを一度に挿入することができ、3つの文字、2つのバックスペース、そしてカーソル右を生成します。[ 51 ] HEXはほとんどのBASICに見られるASC関数に対応していますが、 [ 52 ] 10進数ではなく16進数を入力します。BIN2進数に対して同じことを行います。[ 37 ]PRINTHEX(080809)

スペース以外の初期値で文字列を埋めるための特殊コマンドが追加されました。はA$をX文字でINIT ("X") A$埋め、は16進数値41(文字A)をB$に格納します。[ 53 ]INIT (41) B$

2200Bには、通常はループ、あるいはダートマス版では行列演算コマンドを使って実行されるような一般的なタスクを、ベクトルのように動作するコマンドもいくつか含まれていました。例えば、ADDは式のリストを受け取り、それらを加算して結果を返します。これは、中置式を使って同じことを表現するよりもはるかに高速に実行されました。 はよりも速く完了します。同様のコマンドには、ORANDXORなどがあります。 A=ADD(B,C,D)A=B+C+D

2200Bで追加された機能の大部分は入出力関連で、主にフロッピーディスクファイルの操作に関するものでした。データファイルを含む複数の異なるファイルタイプを持つという概念が導入され、ファイルコマンドの先頭に「DA」を付けることでデータファイルを識別するようになりました。他にも、ファイルの複製を行うCOPYコマンド、ファイル内のMOVEコマンド、ファイルのVERIFYコマンド、ファイルの消去またはすべてのファイルの消去を行うSCRATCHコマンドなど、様々なコマンドがこれらのファイルの操作をサポートしていました。 SCRATCH DISK

2200C

2200Aの大幅な拡張版である2200B版とは対照的に、2200Cは機能範囲がはるかに限定されていました。共有変数をクリアするコマンド( 16進数を返すコマンドCOM CLEARの一種)が追加され、GOSUBをスタックから「ポップ」するために使用されるようになりました[ 47 ] 。また、プログラム内のエラーをトラップするためにも使用されました。 DEFFN'RETURN CLEARON ERROR

2200T

シリーズの後期モデルでは、BバージョンまたはCバージョンのコマンドの一部またはすべてが追加されましたが、それらの拡張は2200Tのみでした。拡張の中で最も注目すべきは行列演算機能の追加ですが、I/Oに関する詳細もいくつか追加されました。

行列演算コマンドは、ダートマスBASICの後期リリースのものとほぼ同一でした。これらは通常、LETのような代入文の形をとりますが、LETを に置き換えますMAT。例えば、MAT A=B+Cは行列Aを生成します。その要素は行列BとCの対応する要素の和です。[ 54 ]その他の行列コマンドには、単位行列を求めるINVert、零行列を求めるert、そして 、 、 などの様々なユーティリティがあります。[ 45 ]IDNZERCOPYMERGEMOVESORT

ベーシック2

2200VPの全く新しい命令セットの導入には、全く新しいBASICを一から開発する必要がありました。後方互換性が主な目標でしたが、新しいBASIC-2には、これまで欠けていた機能がいくつか追加されました。最も顕著な変更点は、BASICが読み取り専用メモリ(ROM)に保存されなくなり、起動時にディスクから読み込まれるようになったことです。これにより、現場で簡単にパッチを適用してバグを修正できるようになりました。また、サイズよりもパフォーマンスを重視した設計とVPプラットフォームの優れたパフォーマンスにより、約8倍の速度向上も達成されました。[ 55 ]

IF文はオリジナル版では制限がありましたが、BASIC-2では大幅に改善されました。ブール接続詞が追加され、次のようなより複雑なテストが可能になりました。THENに続く文は暗黙のGOTOである必要がなくなり、次のような一般的な文が可能になりました。節が追加され、コロンの後に置く必要がありました。ELSEはON文でも使用できました。Xの値が1、2、または3の場合、10、20、または30行目に分岐し、それ以外の場合は100に分岐します。[ 55 ]IFX=5ANDY=10THEN...IFX=10THENPRINT"IT IS TEN"ELSEIFX=10THENPRINT"IT IS TEN":ELSEPRINT"IT IS NOT TEN"ONXGOTO10,20,30:ELSE100

新しい関数にはFIX、常に切り捨てられるINTの代わりに、常にゼロに向かって切り捨てられる が含まれます。FIX(-4.5)は-4を返しますが、INT(-4.5)は-5を返します。ROUND(value,num)はFIXに似ていますが、2番目のパラメータで指定された小数点以下の桁に丸められます。MODは整数除算を実行し、余りを返します。MAX(a,b,c...)は、MIN(d,e,f...)入力リストの中で最高値または最低値を持つ値を返します。 は、LGT値の10を底とする対数を返します。 は、VER最初のパラメータの文字列が2番目のパラメータの形式と一致するかどうかを確認します。形式はPRINTUSINGと同じでした。[ 55 ]

PRINTUSINGは文字列出力が可能になり、PRINTUSING TO A$, "#.##", SQR(3)3の平方根を2小数点以下にフォーマットし、結果をA$に格納するようになりました。PRINTにはいくつかの新しい擬似関数が追加されました。このAT(X,Y)関数はTABと概念的に似ていますが、カーソルをX,Y座標に移動し、BOX(W,H)現在のカーソル位置を左上隅とする指定された幅と高さのボックスを描画し、HEXOF(v)その16進数値を返します。[ 55 ]

デフォルトの文字列サイズは変更されませんでしたが、最大サイズは64文字から124文字に増加しました。配列の最大次元は255要素から65535要素に増加しました。[ 55 ]

ベーシック3

1977年3月、ワンはVPシステムの拡張版を発表しました。この拡張版は、メモリ容量を最大256KBに増やし、 1台のマシンで最大12台の端末をサポートできるターミナルサーバーシステムを搭載していました。2200MVPとして知られるこのマシンの最初のユニットは1978年1月に出荷されました。同じマシンの4ユーザー対応LVPとシングルユーザー対応SVPモデルは1980年に出荷されました。[ 56 ]

1981年4月2日、ハノーバー・メッセにおいて、ワングはMVPシリーズのマイクロコードのメジャーアップデートを発表しました。2,000ドルの「C」オプションには、 COBOLコンパイラと、BASICのさらなるアップデート版であるBASIC-3が追加されました。当時、同社は8月にベータ版をリリースし、11月には全顧客向けにリリースする予定でした。[ 57 ]このシステムはベータテストのために少数の拠点に送られましたが、リリースには至りませんでした。[ 58 ]

注記

  1. ^王氏は長年にわたり BCD を使用したビジネス用電卓を製造していたため、これは同社にとって珍しいことではなかった。
  2. ^たとえば、使用されている「スーパースタートレック」RND(0)を参照してください。
  3. ^これはHP Time-Shared BASICから引用されたものと思われますが、HP Time-Shared BASIC と全く同じものです。家庭用コンピュータ時代のいくつかのBASICもこのモデルのバリエーションを使用しており、特にInteger BASICAtari BASICが有名です。
  4. ^この機能を持つ他の BASIC では、一般に完全な用語 が使用されていましたCOMMON

参考文献

引用

  1. ^ WangBASIC 1976、46ページ。
  2. ^ WangBASIC 1976、125ページ。
  3. ^ WangBASIC 1976、123ページ。
  4. ^ WangBASIC 1976、14ページ。
  5. ^ WangBASIC 1976、60ページ。
  6. ^ WangBASIC 1976、65ページ。
  7. ^ WangBASIC 1976、116ページ。
  8. ^ WangBASIC 1976、121ページ。
  9. ^ WangBASIC 1976、118ページ。
  10. ^コモドール 1982年、62ページ。
  11. ^ WangBASIC 1976、8ページ。
  12. ^ a b WangBASIC 1976、p.274。
  13. ^ WangBASIC 1976、124ページ。
  14. ^コモドール 1982年、39ページ。
  15. ^ 「BASICの比較」
  16. ^ WangBASIC 1976、158~159ページ。
  17. ^ WangBASIC 1976、162ページ。
  18. ^ WangBASIC 1976、169ページ。
  19. ^ WangBASIC 1976、172ページ。
  20. ^ WangBASIC 1976、56ページ。
  21. ^ WangBASIC 1976、102ページ。
  22. ^ WangBASIC 1976、20ページ。
  23. ^ WangBASIC 1976、135ページ。
  24. ^ WangBASIC 1976、210ページ。
  25. ^ WangBASIC 1976、49ページ。
  26. ^ WangBASIC 1976、82ページ。
  27. ^ WangBASIC 1976、83ページ。
  28. ^ WangBASIC 1976、78ページ。
  29. ^ a b WangBASIC 1976、p.81。
  30. ^ WangBASIC 1976、106ページ。
  31. ^ WangBASIC 1976、107ページ。
  32. ^ WangBASIC 1976、137ページ。
  33. ^ WangBASIC 1976、128ページ。
  34. ^ WangBASIC 1976、139ページ。
  35. ^ WangBASIC 1976、185ページ。
  36. ^ WangBASIC 1976、189ページ。
  37. ^ a b WangBASIC 1976、p.190。
  38. ^コモドール 1982年、34ページ。
  39. ^ WangBASIC 1976、145–150ページ。
  40. ^ a b WangBASIC 1976、pp.20–21。
  41. ^ WangBASIC 1976、272ページ。
  42. ^ WangBASIC 1976、275ページ。
  43. ^ WangBASIC 1976、277ページ。
  44. ^ WangBASIC 1976、273ページ。
  45. ^ a b 1976年序文、2ページ。
  46. ^ WangBASIC 1976、130ページ。
  47. ^ a b WangBASIC 1976、p.156。
  48. ^ WangBASIC 1976、192ページ。
  49. ^ a b WangBASIC 1976、p.193。
  50. ^ WangBASIC 1976、183ページ。
  51. ^ WangBASIC 1976、196ページ。
  52. ^コモドール 1982年、37ページ。
  53. ^ WangBASIC 1976、188ページ。
  54. ^ WangBASIC 1976、215ページ。
  55. ^ a b c d e BASIC2 1979 .
  56. ^プログラマブル端末(PDF) . Datapro Research. 1981年2月.
  57. ^ 「2200シリーズの機能強化」(PDF) 1981年4月2日。
  58. ^ "2200 BASIC-3" (PDF) . Wang Laboratories.

参考文献