| パラダイム | 命令形 |
|---|---|
| デザイン: | ジョン・グラント、スティーブ・ヴィッカーズ |
| 開発者 | ナインタイルズネットワークス、 シンクレアリサーチ |
| 初登場 | 1979年 |
| プラットフォーム | ZX80、ZX81、ZXスペクトラム、+、128、+2、+3、T/S 2068、TC 3256 |
| ライセンス | 独自 |
シンクレアBASICは、シンクレアリサーチ、タイメックスシンクレア、アムストラッドの8ビットホームコンピュータで使用されているプログラミング言語BASICの方言です。シンクレアBASICインタープリタは、ナインタイルズネットワークス社によって作成されました。[1]
わずか 1 KB のRAMで動作するように設計されたこのシステムは、メモリ使用量を削減するためにさまざまな決定を下します。これにより、Sinclair BASIC の最も注目すべき機能の 1 つである、キーワードを 1 回のキー操作で入力できるようになりました。可能なキーワードはそれぞれキーボードのキーにマップされており、キーを押すとトークンがメモリに配置され、キーワード全体が画面に表示されます。これにより、コード入力が容易になり、パーサーが簡素化されました。
オリジナルのZX80バージョンでは整数演算のみがサポートされていましたが、これはパフォーマンスに悪影響を与えていたメモリ節約設計ノートの一部を部分的に補うものでした。1981年にシステムがZX81に移植されたとき、完全な浮動小数点実装が追加されました。このバージョンは非常に遅く、当時市場にあった BASIC の中で最も遅い部類に入りましたが、マシンの機能が限られていたため、これは深刻な問題ではありませんでした。
1983 年にZX Spectrumがリリースされると、マシンの新機能を十分に活用するには動作が遅すぎるという、より深刻な問題が生じました。このため、その後のSinclair QL用にまったく新しい BASIC が開発され、Spectrum とそのさまざまなクローン用に多数のサードパーティ製 BASIC が開発されました。元のバージョンは、Sinclair 以降の時代でも引き続き修正と移植が行われました。
歴史
クライブ・シンクレアは1979年4月にナインタイルズのオーナーであるジョン・グラントと初めて会い、シンクレアの新しいコンピュータのコンセプトのためのBASICについて話し合った。[2]シンクレアは息子がTRS-80を楽しんでいるのを見て新しいマシンを作ることを思いついたが、そのマシンの500ポンドという値段は人気が出るには深刻な制限のように思われた。彼は以前のMK14を拡張し、目標価格79.95ポンドでBASICを内蔵した新しいキットを望んでいた。この価格帯を満たすために、マシンは1KBのRAMと4KBのROMのみで出荷される予定だった。グラントは代わりにForth言語を使用することを提案したが、予算の都合でこれは不可能だった。グラントは1979年6月から7月にかけてBASICインタープリタを書いたが、コードは当初5KBあり、彼は翌月それを削減することに費やした。当初は1978年のアメリカ規格協会(ANSI)の最小BASIC標準の不完全な実装であり、整数演算のみをサポートしており、4K BASICと呼ばれていました。[3]
1980年2月にZX80が発表される前から、業界における価格下落圧力が続いていたため、もともと安価な設計がさらに複雑化、低コスト化していた。特に、ZX80の個別回路の多くは、Ferrantiの単一の未使用ロジックアレイに再実装されたため、ROMのサイズを8kBに増やしながら、価格をわずか49.95ポンドにまで下げることができた。この作業は、1980年1月にNine Tilesに入社したSteve Vickersに割り当てられました。Grantがハードウェアとのインターフェイスのコードに取り組んでいる間、Vickersは広いスペースを利用して、当時のBASICに期待されていた浮動小数点演算と一連の三角関数を導入し、 8K BASICを生み出しました。[4]初期バージョンはZXプリンターをサポートしておらず、平方根関数にバグがありました。Nine Tilesはこれらの問題を解決した新バージョンを提供しましたが、Sinclairは新バージョンをROMに組み込むのに時間がかかりました。新しいROMは最終的に以前のZX80の所有者にも提供されました。[5]
シンクレアはBBC コンピュータの構築コンテストに敗れた後、低コストのカラー対応マシンの生産計画を進め、 1982 年 4 月にZX Spectrumとして登場しました。ROM スペースは再び増加され、今度は 16 KB になりました。可能な限り低コストでシステムを作成するという彼の哲学に従って、シンクレアは既存の 8K BASIC への変更を最小限にすることを望みました。ナインタイルズは新しいマシンにはもっと良いものが必要だと感じましたが、スケジュール上それは許されず、元のコードをさらに拡張することになりました。RAM も 48 KB に増加されたため、このバージョンは 48K BASIC と呼ばれ、最終的にはZX Spectrum 128 の導入により48 BASICになりました。その時点で 16 KB の Spectrum は販売されなくなり、使用されていたほとんどの既存の Spectrum は 48 KB にアップグレードされていました。[6] [7]新バージョンは1981年末に発売されたが、「ひどく遅い」うえに「カタツムリのような」ものだった。さらに、その年の終わりまで試作品が発売されなかったため、シンクレアが計画していた新しい周辺機器のラインをサポートしていなかった。[8]
1982年2月、ナインタイルズは、自社が制作した各種マニュアルの著作権使用料をめぐってシンクレア社と意見の相違が生じ始めた。同じ頃、ヴィッカーズとシンクレア社の同僚リチャード・アルトヴァッサーはそれぞれの会社を離れ、ジュピターエースプロジェクトを開始した。 [9]スペクトラムが発売されたとき、ROMはまだ完成しておらず、ナインタイルズは1982年4月まで作業を続けたが、その時点で75,000台のスペクトラムがすでに販売されていたため、プロジェクトは中止された。不足していた機能は、後にZXインターフェース1の追加コードによって追加された。ナインタイルズとシンクレアが別々の道を歩んだ後、48 BASICの新しいバージョンがいくつか作成された。
1983年、タイメックスはスペクトラムをTS2068として米国市場に導入する一環として、これをT/S 2000 BASICとして改良した。この新バージョンでは、マシンの機能のメモリ位置が移動したため、多くのスペクトラムプログラムを実行できなかった。類似しているが、やや互換性が高いバージョンが、1985年のスペインのスペクトラム128、128 BASICの一部として導入された。[7]
1986年にアムストラッドはシンクレア・リサーチを買収した。シンクレアは言語の著作権を所有したことがなかったため、アムストラッドはナイン・タイルズと新しいライセンスを締結する必要があった。この時期には、スペクトラムのさまざまな拡張機能やクローンが導入され、他のバージョンもいくつか登場した。これには、 +3 BASIC、BASIC64、Timex Extended Basicなどがある。[7] [6]
2015年現在、最新のオペレーティングシステム[ 10]と古いシステム[11]用のインタープリタが存在し、 Sinclair Basicを簡単に使用できるようになりました。
説明
プログラム編集
ほとんどの家庭用コンピュータ BASIC と同様に、Sinclair BASIC は行エディタを中心に展開されます。マシンを起動すると、BASIC が実行され、エントリ ポイントを示すために画面の下部に反転表示の「K」が表示されます。行が入力されてキーが押されると、行番号のNEW LINEプレフィックスがない場合はすぐに実行されます。そうでない場合は画面がクリアされ、コマンドと同等の処理が実行され、最後に入力された行の行番号の後に「>」カーソルが配置されます。
LIST
当時のほとんどのマシンとは異なり、エディターでは画面上のどの位置でも自由形式の編集はできません。代わりに、ユーザーが を押すと、現在のコード行が画面の下部にコピーされます。ユーザーはカーソル キーを使用してこの行を水平に移動でき、もう一度 を押すと変更が確定します。対照的に、Commodore 64やAtari 8 ビット コンピューターなどのマシンでは、上下のキーを使用してプログラム内の行間を移動し、その場で編集できます。 EDITNEW LINE
エディターの最も注目すべき機能は、キーワードを 1 回のキー操作で入力できることです。たとえば、ZX81 では、キーボードのキーを押すと、現在編集中の行にキーワード全体が入力されます。キーワードを入力すると、カーソルが「L」に変わり、後続の文字が通常のテキストとして解釈されることを示します。たとえば、この時点でもう一度押すと、1 つの文字「P」が入力されます。
PPRINTP
キーには通常、上と下に 2 つの別々のキーワードが割り当てられています。「K」モードでキーを押すと、 のようにキーの上にあるキーワードが入力されますPRINT。システムが「L」モードの場合、 Shift キーを押すと「K」に戻ることができます。システムは当初小文字 をサポートしていなかったため、Shift キーは必要ありませんでした。キーの下にあるキーワードを入力するには、2 回目のキーストローク+ が必要で、これによりエディターが「機能モード」になり、カーソルが「F」に変わります。一般的なコードを入力すると、多くの場合、かなりの数のキーストロークが必要になります。
P⇧ ShiftNEW LINE
このシステムには、複数文字のキーワードをすべてメモリ内で 1 文字として表すという利点があり、これは 1 KB の RAM しか搭載していなかった初期のマシンでは大きな節約になりました。この 1 文字の表現には、 などの複数文字の項目が含まれていました<>。これにより、ソース コード内の文字がキーワードかテキストかをすぐに判断できるため、ランタイムが簡素化されるという利点もあります。また、キーワードが直接入力されることがないため、たとえば、システムがキーワードと同じではないと判断できるため、「PRINT」という名前の変数を持つことができます。
システムが進化し、新しいキーワードが追加されるにつれて、入力システムはますます使いにくくなっていった。Spectrumの48 BASICでは、各キーに最大4つのキーワードを入力する必要があった。キーワードの入力は、キーボード上の比較的小さな文字から適切なキーを探し、それを正しく入力するために必要な複数のキー入力を正しく行うという時間のかかる作業だった。例えば、入力するには、拡張モードにアクセスするために+をBEEP入力し(後のモデルでは別のキーが含まれる)、+を押したままにして、+を押す必要があった。Spectrumの複雑な入力を改善するために、キーワードは必要なモードを示すために色分けされた。[12]CAPS SHIFTSYMBOL SHIFTEXTENDED MODESYMBOL SHIFTZ
- 白:キーのみ
- キー自体が赤色:キープラスSYMBOL SHIFT
- キーの上の緑色:その後にキーが続くEXTENDED MODE
- キーの下の赤:その後にキーをプラスEXTENDED MODESYMBOL SHIFT
このコンセプトは時代遅れとなり、128 BASIC を実行する後継マシン(ZX Spectrum 128、+2、+3、+2A、および +2B) には、当時の他の家庭用コンピュータと同様に、ユーザーがキーワードを個別の文字として入力する、より伝統的なエディタが搭載されました。これにより、行を同様の内部形式に変換するための新しいトークナイザーが必要になりました。
結果として得られたプログラムのメモリ内ストレージは、キーワードのみがトークンとして提示され、非キーワード(文字列定数、数値定数、変数名など)は元の入力形式のままであるという点で、Microsoft BASICと類似していました。ただし、その入力形式はASCIIではなく、印刷可能な文字とキーワード トークンの両方を含む内部文字コードでした。表の一部、たとえば大文字の A から Z は ASCII と同じ順序になっていますが、それらの文字は異なる数値に対応しています。つまり、コード ポイントの 0 からのオフセットは、ASCII の 65 からのオフセットとは異なります。句読点などの他の文字は、さらに移動されている可能性があります。ZX Spectrum 文字セットは、このような文字コードの最も顕著な例です。Sinclair BASIC を実行する関連コンピューターでは、 ZX80またはZX81 文字セットなどの同様のバリアントが使用されていました。これらの異なるが関連する文字セットにはすべて、Sinclair BASIC トークンが含まれていました。
データ型
Sinclair BASIC の珍しい特徴の 1 つは、変数をメモリに格納する方法です。通常、インタープリタは固定サイズのエントリを使用してデータを保持し、変数テーブルを簡単にスキャンできるようにします。ZX シリーズのメモリは非常に限られていたため、無駄なスペースを避ける必要があり、可変長形式が使用されました。データ型には、5 バイト値に格納された数値、長さと文字が続く文字列、およびこれら両方のタイプの配列が含まれていました。データはテーブル自体に格納されました。これは、文字列と配列エントリが別のヒープに格納されていた当時のほとんどの BASIC とは対照的です。
変数エントリの最初のバイトは、常に最初の 3 ビットに型を保持し、次の 5 ビットに名前の最初の文字を保持していました。ほとんどのマイクロコンピュータ方言の場合と同様に、、、Aおよびはすべて異なる変数であり、異なる値を格納できます。ほとんどの変数は 1 文字の名前しか持つことができませんでした。例外は数値変数 (配列ではない) で、代替形式では同じ 5 ビットに名前の最初の文字を保持し、その後に上位ビットが設定された文字で終わる追加の文字が続きます。長い変数名は空白に依存せず、後のバージョンでは大文字と小文字が区別されないため、同じ変数を参照する
場合と同じです。A$A()A$()LET Number Of Apples = 5LET numberofapples = 5
このアプローチの欠点は、変数参照の値を検索するためにテーブルをスキャンすることがより複雑になることです。最初のバイトのサブセットを使用して名前が一致するかどうかをテストすることに加えて、エントリが検索されているエントリでない場合は、上位 3 ビットから型を読み取り、次にその型を使用してストレージ内の変数の次の場所を計算する必要があります。たとえば、プログラムが変数 "A" に遭遇し、テーブルが "B$" のエントリで始まる場合、A と B の一致に失敗し、型を読み取ってそれが文字列であることを確認し、次の長さのバイトを読み取ってそのバイト数だけ前方にスキップして、テーブル内の次のエントリを見つける必要があります。これをいくらか簡単にするために、配列には 2 バイトの長さも格納されるため、構造全体をより簡単にスキップできます。
ユニークな機能は、「ショート フロート」または整数型です。数値変数はどちらの型も格納でき、ストレージ自体は変更されず、どちらの場合も 5 バイトを使用します。整数は指数バイトを 0 に設定することで示され、浮動小数点値は128 を超える形式の指数で格納されます。つまり、ゼロを浮動小数点として格納できず、指数の絶対値が 1 つ失われます。また、値はメモリ内で 5 バイトのままであるため、メモリの使用量は減りません。この形式の利点はパフォーマンスです。数学ライブラリにはゼロ指数を探すテストが含まれており、ゼロ指数が見つかった場合は、特定の条件下で残りの 3 バイトに対してさまざまな操作を実行しません。
キーワードの詳細
ZX81 8K BASIC では、より短い形式の 、 、 が使用さGOTOれGOSUB、CONTSpectrum RAND48 BASIC では、より長い形式のGO TO、GO SUB、CONTINUEが使用されましたRANDOMIZE。ZX80 4K BASICもこれらの長い形式を使用しましたが、スペルが である点で異なっていましたRANDOMISE。ZX81 8K BASIC はFAST、SCROLL、SLOW、 を使用する唯一のバージョンでしたUNPLOT。ZX80 4K BASIC には、排他的な関数 がありTL$()、これは後のバージョンの文字列演算子と同等でした(2 TO )。
ZX80 文字セット、ZX81 文字セット、およびZX Spectrum 文字セットでは、各キーワードまたは複数文字演算子に一意のコード ポイントが割り当てられています(つまり<=、、、(ZX81 でのみトークン化されます)、(Spectrum では に置き換えられます))。これらは、ROM 内のトークン テーブルを参照する >=ことで拡張されます。したがって、キーワードは 1 バイトのメモリのみを使用するため、従来の文字ごとのストレージに比べて大幅に節約できます。これはまた、BASIC インタプリタが1 バイトを評価することでコマンドや関数をすばやく決定できること、およびキーワードが他の BASIC 方言や他のプログラミング言語のように予約語である必要がないことも意味します(たとえば、 という名前の変数を定義し、 を使用してその値を出力できます)。これは、すべての行がコマンド キーワードで始まるという構文要件にも関連しており、行の先頭でそのコマンドのキーを 1 回押すと、エディターがコマンド モードから文字モードに切り替わります。したがって、変数の割り当てには(つまり、だけでなく) が必要です。この方法も他の BASIC 方言とは異なります。さらに、他のBASIC方言とは異なり、インタープリタは関数を識別するために括弧を必要としないことを意味しました。括弧は十分であり、必要ではありません(ただし、括弧は許可されています)。ZX80の4K BASIC ROMには、これに対する例外がいくつかあります。関数、、、、、、、には1バイトのトークンがなく、文字ごとに入力され、括弧が必要でした。これらは、キーボードの上部右側のラベルにINTEGRAL FUNCTIONSとしてリストされていました。[13]<>""**↑PRINTPRINT PRINTLETLET a=1a=1SIN xSIN(x)CHR$()STR$()TL$()PEEK()CODE()RND()USR()ABS()
ZX Spectrum 128、+2、+3、+2A、+2B に搭載されている128 BASIC は、キーワードを 1 バイトのコード ポイントで内部的に保存していましたが、従来の文字ごとの BASIC 入力システムを使用していました。また、2 つの新しいコマンドも導入されました。
PLAY128kモデルのGeneral Instrument AY-3-8910音楽チップを操作したSPECTRUM128kスペクトラムを48kスペクトラム互換モードに切り替えた
オリジナルのスペイン語版ZX Spectrum 128には、スペイン語で4つのBASICエディタコマンドが追加されていましたが、[14] [15]そのうちの1つは文書化されていませんでした。
EDITAR(行番号を編集するか、フルスクリーン文字列エディタを起動します)NUMERO(プログラム行の番号を変更する)BORRAR(プログラム行を削除する)ANCHO( RS-232デバイスの列幅を設定するためのものですが、コードが壊れているため文書化されていません)
家庭用コンピュータで広く使用されている Microsoft BASIC 方言で使用される 、 、 関数とは異なり、Sinclair BASIC の文字列の一部は数値範囲でアクセスされます。たとえば、 は、LEFT$()変数MID$()の5番目の文字で始まり 10 番目の文字で終わる部分文字列を提供します。したがって、配列の左側または右側の位置をそれぞれ省略するだけで、およびコマンドを置き換えることができます。たとえば、 はと同等です。さらに、を置き換えるには だけで十分です。
RIGHT$()a$(5 TO 10)a$LEFT$()RIGHT$()a$( TO 5)LEFT$(a$,5)a$(5)MID$(a$,5,1)
構文
キーワード
16K/48K ZX Spectrum ( 48 BASIC)では、Sinclair BASIC に 88 個のキーワードがあり、コマンド (そのうち 50 個)、関数と論理演算子 (31 個)、その他のキーワード (16 個、うち 9 個はコマンドまたは関数) を表します。
公式バージョン
4Kベーシック
4K BASIC for ZX80 [76] ( 4KiBの 読み取り専用メモリ(ROM)に格納されていることからこの名前が付けられた )は、Nine TilesのJohn GrantによってZX80用に開発された。整数演算のみを行う。
- システムコマンド:
NEWRUNLISTLOADSAVE - 制御ステートメント:
GOTOIFTHENGOSUBSTOPRETURNFORTONEXTCONTINUE - 入力/出力ステートメント:
PRINTINPUT - 譲渡ステートメント:
LET - その他の声明:
CLEARCLSDIMREMRANDOMIZEPOKE - 機能:
ABSCHR$CODEPEEKRNDSTR$TL$USR
8Kベーシック
8K BASICは、ZX81 BASIC(ZX80 [5]のアップグレード版としても利用可能)であり、スティーブ・ビッカーズによって浮動小数点演算機能が追加され、8KiB ROMに格納されていることからその名が付けられました。
- 声明:
PRINTRANDLETCLEARRUNLISTGOTOCONTINPUTNEWREMPRINTSTOPBREAKIFSTOPFORNEXTTOSTEPSLOWFASTGOSUBRETURNSAVELOADCLSSCROLLPLOTUNPLOTPAUSELPRINTLLISTCOPYDIMPOKENEW - 機能:
ABSSGNSINCOSTANASNACSATNLNEXPSQRINTPIRNDFUNCTIONLENVALSTR$NOTCODECHR$INKEY$ATTABINKEY$PEEKUSR
48 ベーシック
48 BASICは、オリジナルの 16/48 KB RAM ZX Spectrum (およびクローン)用の BASICで、Steve Vickers と John Grant によってカラーと周辺機器が追加されました。16 KB ROM に常駐し、ZX Spectrum 128 の導入により 48 BASIC と呼ばれるようになりました。その時点では 16 KB Spectrum は販売されなくなり、使用されていた既存のもののほとんどが 48 KB にアップグレードされていました。[6]
128 ベーシック
128 BASICはZX Spectrum 128用のBASICです。[7]追加コマンドを提供し、文字ごとの入力を使用します。
- 新しいコマンド:
LOAD !SAVE !MERGE !ERASE !PLAYSPECTRUM
+3 ベーシック
+3 BASICはZX Spectrum +3および+2A用のディスクサポート付きBASICです。[6]
- 新しいコマンド:
FORMATCOPY
T/S 2000 ベーシック
T/S 2000 BASIC は、Spectrum 互換のTimex Sinclair 2068 (T/S 2068) で使用され、次の 6 つの新しいキーワードが追加されます。
DELETEBASIC プログラムの行範囲を削除します。FREE空き RAM の量を返す関数です。PRINT FREE空き RAM の量を表示します。ON ERRON ERR GO TOは、主にまたはとして使用されるエラー処理関数ですON ERR CONT。RESETの動作をリセットするために使用できますON ERR。また、周辺機器をリセットすることも目的としていました。SOUNDAY-3-8192 サウンド チップを制御します。STICK内部ジョイスティック(Timex Sinclair 2090)の位置を示す関数です。
ベーシック64
ポルトガルのTimex社によるBASIC64は、Timex Sinclairコンピュータでのみ利用可能な512×192およびデュアルディスプレイ領域のグラフィックモードで、より優れたBasicプログラミングを可能にするソフトウェア拡張機能[77]です。この拡張機能はコマンドを追加し、システムが拡張画面メモリ領域を上書きするのを防ぐためにメモリを完全に再マップします。メモリマップが異なるため、 TC 2048用のバージョンと、T/S 2068およびTC 2068用のバージョンの2つのバージョンが存在します。
PRINT #特定の出力チャネルに印刷します。LIST #特定の出力チャネルにプログラムをリストします。CLS*両方の表示領域をクリアします。INK*両方の表示領域のインクの色を設定しますPAPER*両方の表示領域の用紙の色を設定しますSCREEN$高解像度/通常解像度モードを選択します。PLOT*ピクセルをプロットし、描画位置を更新します。LINE前のPLOT位置から線を描き、円弧の描画をサポートしますCIRCLE*画面モードに応じて円または楕円を描きます。
タイメックス エクステンデッド ベーシック
ポルトガルのタイメックス社によるタイメックス拡張ベーシックは、タイメックスコンピュータ3256で使用され、 AY-3-8912サウンドチップ、RS-232ネットワーク、512x192ピクセルの高解像度グラフィックモードをサポートするTEC - タイメックス拡張コマンドコマンドを追加しました。[78] [79]
- RAM ドライブ コマンド:
LOAD!SAVE!CAT!MERGE!ERASE!CLEAR! - RS-232 コマンド:
FORMAT!LPRINTLLIST - AY-3-8912 コマンド:
BEEP! - 512 x 192 解像度のコマンド:
SCREEN$DRAW!PLOT!CIRCLE!
その他のバージョン、拡張機能、派生製品、後継製品
ZX Spectrum ファミリーのインタープリター
ZX Spectrumインタープリタは複数存在する。[80]
- アンディ・ライト博士によるベータBASICは、もともとBASICの拡張機能でしたが、完全なインタープリタになりました。 [81]
- YSメガベーシック、マイク・リーマン著。 [80] [82]
- ニューヨークのゼブラシステムズ社によるZebraOSは、 512×192画面モードを使用するT/S 2000 BASICのカートリッジバージョンです。 [83]
- Sea Change ROMはスティーブ・ヴィッカーズとイアン・ローガンが開発し、ジェフ・ウェアマウスが改良したもので、シンクレアBASICを拡張した代替ROMである。[84]
- ジェフ・ウェアマウスによるGosh Wonderfulは、バグを修正し、トークナイザー、ストリームリスト、削除および再番号付けコマンドを追加した代替ROMです。[80] [85]
- OpenSE BASIC(旧SE BASIC)はアンドリュー・オーウェンによるもので、バグ修正やULAplus [86] のサポートを含む多くの機能強化が施された代替ROMであり、2011年にオープンソースとして公開された[87] [88] [89]
ZX Spectrum ファミリー向けコンパイラ
ZX Spectrumコンパイラは複数存在する。[80]
- HiSoft COLTコンパイラ(別名HiSoft COLT整数コンパイラ) [90] [91]
- HiSoft BASIC(別名HiSoft BASICコンパイラ)、整数および浮動小数点対応コンパイラ[92] [93]
- レーザーコンパイラ[94] [95]
- Softek 'IS' 整数コンパイラ[96] [97] (Softek 整数コンパイラ[98]の後継)
- Softek 'FP' フルコンパイラ[99] [100]
- ZIPコンパイラ[101] [102]
他のコンピュータの派生型および後継機
- SuperBASICは、シンクレアQLパソコンで導入された、より高度なBASIC方言であり、以前のシンクレアBASICといくつかの類似点がある[103]
- SAM Basic 、 SAM CoupéのBASIC 、一般的にZX Spectrumのクローンと考えられている[104]
- ROMU6(CesarとJuan Hernandez作) - MSX [80]
- Whitby ComputersのSpectrum 48 -コモドール64 [80]
- リチャード・ケルシュによるSparky eSinclair BASICは、ZX Spectrum BASIC - Zilog eZ80 [105]をベースにしたオペレーティングシステムです。
- シンバスby Pavel Napravnik - DOS [80]
- Basic [106] (および CheckBasic [107] ) by Philip Kendall - Unix
- BINSIC [108] Adrian McMenaminによる、ZX81 BASICをモデルにしたGroovyの再実装- Java
- BASin [109]ポール・ダン、ZX Spectrumエミュレーター[80]をベースにした完全なSinclair BASIC統合開発環境(IDE) - Windows
- SpecBAS [110] (別名SpecOS) はポール・ダンによるもので、Sinclair BASICの拡張スーパーセットを提供する統合開発環境(IDE)である - Windows、Linux、Pandora、Raspberry Pi
- ZX-Basic [111]後方互換性があるが、Sinclair BASICプログラムのZX Spectrumの拡張コンパイラ。Pythonで書かれており、 Windows、Linux、Mac OSで無料で利用できる。
- ZX-Basicus [112]はJuan-Antonio Fernández-Madrigalによるもので、PC用のSinclair BASIC 48Kのシンセサイザー、アナライザ、オプティマイザ、インタープリタ、デバッガであり、LinuxおよびWindowsで無料でダウンロードできます。
参照
- コンピュータシステムエミュレータのリスト § Sinclair ZX80
- コンピュータシステムエミュレータのリスト § Sinclair ZX81
- コンピュータシステムエミュレータのリスト § Sinclair ZX Spectrum およびクローン
注記
- ^ オプションパラメータは[角括弧]で囲まれます
- ^ これらは、コンピュータが K (キーワード) モードであることを前提としています。これは通常、BASIC を入力するときの行の先頭にあります。Spectrum 16K および 48K では、Spectrum+ 以降のモデルにあるキーではなく、 とを同時に押すことで拡張モードに入ります。CAPS SHIFTSYMBOL SHIFTEXTENDED MODE
- ^ abc Sinclair BASIC では「False」は 0 (ゼロ) に相当し、それ以外はすべて「True」に相当します。したがって、真偽値を返す関数は、実際には偽の場合は 0、真の場合は 1 を返しますが、真の場合は
AND通常、指定された条件の最初の値を返します。数値が指定されていない場合は 1 を返します。たとえば、は6 AND 76 を返し、はNOT 6=71 を返します。 - ^ abc 使用可能な色の番号は次のとおりです:
すべての色関連コマンドでは、数字 8 は「透明」を示すために使用できます。
INKまた、数字PAPER9 を「コントラスト」に設定することもできます。つまり、暗い色を明るい背景に自動的に配置したり、その逆を行ったりすることができます。 - ^ abcdef
INK、PAPER、FLASH、BRIGHT、OVERおよびINVERSEset 属性は、テキストとグラフィックスを画面に出力するために使用します。これらは、コマンドとして使用して、再度 set されるまで後続のすべての出力に適用することも、PRINTステートメント内で使用して、その時点からステートメントの終わりまでのみに適用することもできます。 - ^ abcdef
CAT、、はERASE、もともと周辺機器で使用するために設計されましたが、ZX Spectrum の発売時には完全には実装されておらず、使用するとエラー メッセージ (Invalid Stream) が生成されました。後に、ZX Interface 1 シャドウ ROM の助けを借りて、これらはZX Microdriveで使用されるようになりました。(シャドウ ROM は、BASIC インタプリタが構文エラーを検出するとページングされたため、ほとんどの ZX Microdrive コマンドは を使用します)。FORMATMOVE"*" - ^ ab 他の多くのBASIC方言とは異なり、Sinclair Basicでは- [- ]節
ELSEに演算子が含まれていませんでした。回避策としては、代わりに- -構文を使用して、- [- ]節に含まれる行をバイパスします。IFTHENELSEIFTHENGO TOELSEGO TO - ^ Spectrumのディスプレイメモリはアドレス16384から始まり、6912バイトの長さです。
- ^ 文字列内の文字列は、Sinclair BASIC では引用符を二重にする必要があります。
参考文献
- ^ ガーフィールド、サイモン (2010 年 2 月 28 日)。「サー・クライヴ・シンクレア: 「私はコンピューターをまったく使用していません」」。ガーディアン。2011 年5 月 23 日閲覧。
彼は [...]、とりわけ Basic オペレーティング ソフトウェアを作成した Nine Tiles 社に敬意を表したいと熱心に語っています。
- ^ アダムソン&ケネディ、63ページ。
- ^ アダムソン&ケネディ 1986年、64ページ。
- ^ アダムソン&ケネディ 1986年、70ページ。
- ^ ab 「ZX80 - 8K BASIC ROM アップグレード」。www.fruitcake.plus.com。
- ^ abcd 「World of Spectrum - ドキュメント - ZX Spectrum +3 - 第7章」。worldofspectrum.org。
- ^ abcd 「World of Spectrum - ドキュメント - ZX Spectrum 128 マニュアル ページ 6」。worldofspectrum.org。
- ^ スミス、トニー (2012 年 4 月 23 日)。「シンクレア ZX スペクトラム、30 周年おめでとう」。The Register。
- ^ アダムソン&ケネディ 1986年、88ページ。
- ^ Dunn、Paul (2022 年 12 月 7 日)、SpecBAS 、 2022 年12 月 12 日取得
- ^ 「CSDb」。コモドール64シーンデータベース。 2022年12月12日閲覧。
- ^ ヴィッカース 1983、7-8ページ。
- ^ 「ZX80の写真」。
- ^ 「Spectrum 128 ROM 逆アセンブリ - スペイン語 Spectrum 128」。www.fruitcake.plus.com。
- ^ シンクレア (1985)。 ZX Spectrum 128 の概要と機能の紹介。 Sinclair Research Ltd および Investronica, SA p. 9.
- ^ abcd Vickers 1983、59ページ。
- ^ Vickers 1983、70ページより。
- ^ abc Vickers 1983、85ページ。
- ^ ヴィッカース1983、69-70ページ。
- ^ abcd Vickers 1983、101ページ。
- ^ ヴィッカース 1983、116ページ。
- ^ ヴィッカース1983、135ページ。
- ^ ヴィッカース 1983、93ページ。
- ^ ヴィッカース1983、113ページ。
- ^ ヴィッカース1983、110-111ページ。
- ^ ケンブリッジコミュニケーション1983年、15ページ。
- ^ Vickers 1983、91ページより。
- ^ ヴィッカース 1983、123ページ。
- ^ abc Vickers 1983、103ページ。
- ^ 「World of Spectrum - ドキュメント - ZX Spectrum マニュアル - 第 24 章」。worldofspectrum.org。
- ^ ヴィッカース1983、168ページ。
- ^ ヴィッカース 1983、19ページ。
- ^ abc Vickers 1983、151ページ。
- ^ ヴィッカース 1983、68ページより。
- ^ Vickers 1983、41ページより。
- ^ abc Vickers 1983、142ページ。
- ^ abc Vickers 1983、60ページ。
- ^ ヴィッカース1983、79-81頁。
- ^ ヴィッカース 1983、11–123ページ。
- ^ ケンブリッジコミュニケーション1983年、18ページ。
- ^ ヴィッカース 1983、66ページ。
- ^ ケンブリッジコミュニケーション1983年、19ページ。
- ^ ヴィッカース 1983、31ページ。
- ^ Vickers 1983、32ページより。
- ^ Vickers 1983、37ページより。
- ^ Vickers 1983、25ページより。
- ^ ヴィッカース 1983、159ページより。
- ^ ヴィッカース 1983、110ページより。
- ^ ヴィッカース1983、131ページ。
- ^ abcd Vickers 1983、16ページ。
- ^ ヴィッカース 1983、112ページより。
- ^ ヴィッカース 1983、57ページ。
- ^ Vickers 1983、13ページより。
- ^ ヴィッカース1983、144ページ。
- ^ ヴィッカース 1983、15ページ。
- ^ Vickers 1983、67ページより。
- ^ ヴィッカース1983、142-143ページ。
- ^ ヴィッカース1983、147ページ。
- ^ ケンブリッジコミュニケーション1983年、39ページ。
- ^ ヴィッカース 1983、31-32ページ。
- ^ ケンブリッジコミュニケーション1983年、22ページ。
- ^ ヴィッカース1983、129ページ。
- ^ ヴィッカース1983年、130ページ。
- ^ ヴィッカース1983、121ページ。
- ^ ヴィッカース1983、163ページ。
- ^ ヴィッカース1983、74ページ。
- ^ ヴィッカース 1983、42ページ。
- ^ ヴィッカース 1983、73ページ。
- ^ Vickers 1983、14ページより。
- ^ ヴィッカース1983、143ページ。
- ^ ヴィッカース 1983、69ページ。
- ^ ヴィッカース1983、32、51ページ。
- ^ ヴィッカース1983年、180ページ。
- ^ ヴィッカース 1983.
- ^ ヴィッカース1983年、141ページ。
- ^ 「Sinclair ZX80 ユーザーマニュアル 4K Basic for ZX80」。
- ^ 「Timex 技術情報 - TC2048 用 Basic 64」。timex.comboios.info。
- ^ 「Microsete N.º46、Maio 1987」(PDF)。ロードzx.com。
- ^ 「Timex Computer 3256、Timexポルトガル」k1.spdns.de。
- ^ abcdefgh 「World of Spectrum - Sinclair BASIC - Home of the Sinclair Extended Basic Project」。www.worldofspectrum.org。2002年10月13日時点のオリジナルよりアーカイブ。
- ^ 「Spectrum Computing の Beta Basic - Sinclair ZX Spectrum のゲーム、ソフトウェア、ハードウェア」。Spectrum Computing。2022年12 月 13 日閲覧。
- ^ 「Spectrum Computing の YS MegaBasic - Sinclair ZX Spectrum のゲーム、ソフトウェア、ハードウェア」。Spectrum Computing。2022年12 月 13 日閲覧。
- ^ 「Spectrum Computing の Zebra OS64 - Sinclair ZX Spectrum のゲーム、ソフトウェア、ハードウェア」。Spectrum Computing。2022年12 月 13 日閲覧。
- ^ 「Sinclair BASIC の歴史 - Sinclair Wiki」。sinclair.wiki.zxnet.co.uk。
- ^ 「不完全なスペクトラムROMアセンブリ」。2015年9月1日時点のオリジナルよりアーカイブ。
- ^ 「ULAplus」. sites.google.com . 2013年5月25日時点のオリジナルよりアーカイブ。 2016年3月21日閲覧。
- ^ 「ZX Interface 2 - SE BASIC (3rd Party ROM Cartridge)」。www.fruitcake.plus.com。2015年3月25日時点のオリジナルよりアーカイブ。2016年3月23日閲覧。
- ^ 「OpenSE BASIC」。SourceForge。2013年4月16日。
- ^ 「Spectrum Computing の OpenSE BASIC - Sinclair ZX Spectrum のゲーム、ソフトウェア、ハードウェア」。Spectrum Computing。2022年12 月 13 日閲覧。
- ^ 「World of Spectrum - HiSoft COLT コンパイラ」。World of Spectrum。
- ^ 「HiSoft COLT コンパイラー at Spectrum Computing - Sinclair ZX Spectrum ゲーム、ソフトウェア、ハードウェア」。Spectrum Computing。2022年12 月 13 日閲覧。
- ^ 「スペクトラムの世界 - HiSoft BASIC」。スペクトラムの世界。
- ^ 「HiSoft BASIC at Spectrum Computing - Sinclair ZX Spectrumのゲーム、ソフトウェア、ハードウェア」。Spectrum Computing 。 2022年12月13日閲覧。
- ^ 「World of Spectrum - Laser Compiler」。World of Spectrum。
- ^ 「Spectrum Computing のレーザー コンパイラ - Sinclair ZX Spectrum のゲーム、ソフトウェア、ハードウェア」。Spectrum Computing。2022年12 月 13 日閲覧。
- ^ 「World of Spectrum - Softek 'IS' BASIC コンパイラ」。World of Spectrum。
- ^ 「Spectrum Computing の整数コンパイラ - Sinclair ZX Spectrum のゲーム、ソフトウェア、ハードウェア」。Spectrum Computing。2022年12 月 13 日閲覧。
- ^ 「World of Spectrum - 整数コンパイラ」。World of Spectrum。
- ^ 「World of Spectrum - Softek 'FP' フルコンパイラ」。World of Spectrum。
- ^ 「Spectrum Computing の Softek 'FP' フルコンパイラ - Sinclair ZX Spectrum のゲーム、ソフトウェア、ハードウェア」。Spectrum Computing。2022年12 月 13 日閲覧。
- ^ 「World of Spectrum - ZIP コンパイラ」。World of Spectrum。
- ^ 「Spectrum Computing の ZIP コンパイラ - Sinclair ZX Spectrum のゲーム、ソフトウェア、ハードウェア」。Spectrum Computing。2022年12 月 13 日閲覧。
- ^ Berry, Stephen (1984). 「QLキーワード」。2017年2月22日時点のオリジナルよりアーカイブ。 2023年6月27日閲覧。
{{cite web}}: CS1 メンテナンス: 不適切 URL (リンク) - ^ 「Sam Coupe Scrapbook: Sam BASIC」. www.mono.org . 2022年12月13日閲覧。
- ^ 「Sparky eZX BASIC プロジェクト」。rk-internet.com。
- ^ 「フィリップ・ケンドール - ベーシック」www.shadowmagic.org.uk。
- ^ 「Philip Kendall - CheckBasic」。www.shadowmagic.org.uk。
- ^ 「Binsic は Sinclair 命令コードではない」。2012 年 6 月 25 日。
- ^ 「ZX Spin と BASin - ULAplus」。sites.google.com。
- ^ “ZXDunny/SpecBAS”. 2021 年 6 月 5 日 – GitHub 経由。
- ^ 「ZX-Basic: 下位互換性がありながら、Sinclair BASIC プログラムの強化されたコンパイラ」。
- ^ 「ZX-Basicus: ZX Spectrum 48K 用 Sinclair BASIC プログラムのアナライザー/シンセサイザー/オプティマイザー/インタープリター」。jafma.net。
文献
- アダムソン、イアン、ケネディ、リチャード (1986)。シンクレアと「日の出」テクノロジー。ペンギン。
- Ardley, Neil (1984)。Sinclair ZX Spectrum+ ユーザー ガイド。Dorling Kindersleyと Sinclair Research の共同出版。ISBN 0-86318-080-9。
- Vickers, Steven (1982)。Sinclair ZX Spectrum BASIC プログラミング。Sinclair Research。
- Vickers, Steven (1983)。Sinclair ZX Spectrum BASIC プログラミング(第 2 版)。Sinclair Research。
- Cambridge Communication (1983)。Sinclair ZX Spectrum Microdrive および Interface 1 マニュアル。Sinclair Research。
外部リンク
- Sinclair ZX Spectrum BASIC プログラミング: Steven Vickers による 1982 年のオリジナル マニュアル (上記参照)
- Sinclair ZX81 基本プログラミング 2007-04-22 にWayback Machineにアーカイブ: Vickers によるもの
- シンクレア BASIC の歴史: アンドリュー・オーウェン著
- Timex Computer World: Timex Computer 2048 の Basic 64 ユーザー マニュアル
- シンクレアBASIC文法:シンクレアBASIC 16/48Kを解析するためのLL(1)文法仕様
