歴史
シモンズのベーシック
SimonsのBASICは、Commodore 64ホームコンピューター用のBASIC 2.0の拡張機能でした。 1983年にイギリスのプログラマーであるデイビッド・サイモンズによって書かれましたが、当時16歳でしたが、コモドールによってカートリッジ形式で配布されました。
ファーストネーム「Simon」と姓「Simons」の混同のため、「 Simon's BASIC 」と広く呼ばれていますが、間違っています。
特徴
SimonsのBASICは、BASIC 2.0に114のキーワードを追加しました。これらには、スプライト、高解像度およびマルチカラーグラフィックス、およびサウンドのコーディングを容易にするコマンドが含まれていました。さらに、構造化プログラミングを支援するコマンドも実装されました。 VIC-20 Programmer's Aidカートリッジのキーワードに似た、BASICプログラムの作成と編集を支援するキーワードも含まれていました。また、SimonsのBASICで記述されたプログラムでは、$プレフィックスを含めることで割り当てと計算に16進数を使用したり、%プレフィックスを使用して2進数を使用したりできます。
カートリッジデータの一部は、標準のC64 BASIC RAMの一部と重複するアドレス$ 8000〜$ 9FFFのメモリにマップされたため、BASICプログラムで使用可能なメモリ量は、標準のC64構成よりも8 KB少なくなりました。
さらに拡張機能がSimonsによって作成され、CommodoreによってSimonsのBasic Extensionとしてフロッピーディスクおよびテープでリリースされました。このソフトウェアは、SimonsのBasic 2とも呼ばれます。拡張機能を使用するには、元のSimonsのBasicカートリッジが必要だったため、カートリッジでリリースできませんでした。 SimonsのBasic Extensionは、GOTOステートメントとGOSUBステートメントの宛先の番号を付け直すことを大事にするRENUMberコマンドを含む91個の追加コマンドを追加しました。
114個のキーワード
スプライト(MOB)処理キーワード
- MOB SET –スプライトを有効にし、その属性を定義します
- MMOB –画面にスプライトを配置します
- RLOCMOB-スプライトをある場所から別の場所にスムーズに移動させます
- CMOB –マルチカラースプライトの2つのグローバルカラーを設定します
- MOB OFF-スプライトを無効にします
- DETECT –スプライトの衝突検出を初期化します
- CHECK –スプライトの衝突をチェックします
高解像度グラフィックス処理キーワード
- HIRES –高解像度グラフィックモードを初期化します
- MULTI –マルチカラーグラフィックモードを初期化します
- NRM –テキスト表示に戻ります
- LOW COL –プロットの色を変更します
- HI COL –元のプロット色に戻ります
- PLOT –ピクセルを描画します
- LINE –線を引きます
- CIRCLE –円を描きます
- ARC –弧を描く
- ANGL –円の半径を描画します
- ペイント-塗りつぶしを実行します
- REC –中空の長方形を描画します
- ブロック–塗りつぶされた長方形を描画します
- DRAW –ユーザー定義の線のセットを描画します
- ROT – DRAWのスケーリング係数を設定します
- CHAR –高解像度画面にテキスト文字をプロットします
- TEXT –高解像度画面にテキスト文字列をプロットします
- TEST –ピクセルをプロットするか空にするかを決定します
その他のグラフィックス処理キーワード
- COLOR-背景と境界線の色を設定します。 (「COLOUR」のスペルはイギリス人にとって正しいものであり、SIMONSのBASICカートリッジにそのように組み込まれました。)
- CSET –文字セットを選択します
- MEM –文字ROMをRAMにコピーします
- BCKGNDS –拡張背景色モードを構成します
- フラッシュ-画面の色をフラッシュに設定します
- OFF-以前のFLASHディレクティブをキャンセルします
- BFLASH –画面の境界線を点滅させます
- FCHR –テキスト画面の領域を特定の文字コードで埋めます
- FCOL –画面の選択した領域の文字の色を変更します
- FILL – FCHRとFCOLの組み合わせ
- MOVE –画面の一部をコピーします
- INV-画面領域を逆に表示します
- LEFT-画面を左にスクロールします
- RIGHT –画面を右にスクロールします
- UP-画面を上にスクロールします
- DOWN –画面を下にスクロールします
- GRAPHICS –常に$ D000(VIC-IIチップのベースアドレス)に等しい予約変数
- SCRSV –テキスト画面をテープまたはディスクに保存します
- SCRLD –テープまたはディスクからテキスト画面をロードします
サウンド処理キーワード
- MUSIC –文字列変数の内容に基づいて一連のノートを再生します
- PLAY – MUSIC中にプログラムを実行し続けるかどうかを決定します
- VOL –マスター音量を指定します
- WAVE –音声タイプを指定します
- ENVELOPE – SID音声のADSRパラメーターを設定します
- SOUND –常に$ D400(SIDチップのベースアドレス)に等しい予約変数
キーボード入力処理キーワード
- FETCH –コマンドで定義された制限付きでユーザー入力を取得します
- INKEY –ファンクションキーが押されたかどうかを確認します
- ON KEY –指定されたキー押下をチェックし、存在する場合はブランチを実行します
- DISABLE-以前のON KEYディレクティブを無効にします
- RESUME –以前のON KEYディレクティブを再度有効にします
入力周辺機器処理キーワード
- JOY-ジョイスティックを読み取ります
- POT –パドルを読み取ります
- PENX –ライトペンの水平位置を読み取ります
- PENY –ライトペンの垂直位置を読み取ります
スプライト/カスタムキャラクター定義キーワード
- @ –スプライトまたはカスタムキャラクターグラフィックの1行を記述します
- DESIGN –隣接する@行を使用して、スプライトまたはカスタムキャラクターを定義します
キーワードのトラップエラー
- ON ERROR –エラー状態をトラップするルーチンを設定します
- OUT-エラー処理ルーチンを終了します
- エラーなし–エラー時にキャンセルし、通常のBASICエラー処理を復元します
ディスク処理キーワード
- DIR –メモリ内のBASICプログラムを破壊せずにディスクディレクトリを表示します(ドライブ#8のみ)
- DISK –ディスクドライブのコマンドチャネルに文字列を送信します(ドライブ#8のみ)
プリンター処理キーワード
- HRDCPY –テキスト画面をプリンターに送信します
- COPY –高解像度画面をプリンターに送信します
文字列操作キーワード
- INSERT – 1つの文字列を別の文字列の中央に挿入します(注:STR $、LEFT $、RIGHT $などの他の文字列演算子とは異なり、INSERTの後にドル記号はありません)
- INST – INSERTと似ていますが、挿入ではなく上書きします。 (注:INSERTと同様に、INSTの後にドル記号はありません。)
- PLACE –ある文字列を別の文字列の中央で検索します
- DUP-文字列を指定された回数だけ複製します。 (注:INSERTと同様に、DUPの後にドル記号はありません。)
テキスト書式設定キーワード
- PRINT AT –指定された画面の場所に文字列を印刷します
- CENTER –画面上の文字列を中央に配置します。 (CENTERはイギリス人にとって正しいことを思い出してください。)
- USE –テンプレートに基づいて文字列の数値データをフォーマットします。たとえば、Commodore 128など、他のコンピューターのBASICの他の高度なバージョンでPRINT USINGを使用するのと同じです。
- LIN –カーソルの垂直位置を返します
数学キーワード
- MOD –除算演算を実行し、剰余を返します
- DIV –除算演算を実行し、整数の商を返します
- FRAC –数値の小数部分を分離します
- EXOR –排他的OR論理演算を実行します
プログラマー支援キーワード
- AUTO-BASICプログラムが入力されると自動的に行番号を生成します
- RENUMBER – BASICプログラムの番号を付け直します(ただし、GOTO / GOSUBステートメントは修正しません。)
- OLD – NEWコマンドによって誤って削除されたプログラムの削除を取り消します
- KEY –文字列をマクロとして機能キーに割り当てます
- DISPLAY-すべてのファンクションキーマクロを表示します
- MERGE – BASICプログラムをテープまたはディスクから現在メモリにあるプログラムにマージします
- PAGE –ページ形式でBASICプログラムリストを表示します
- OPTION – LISTコマンドを使用するときにSimonsのBASICキーワードを強調表示します
- DELAY – LISTコマンドが画面をスクロールする速度を変更します
- FIND –プログラムで文字列を検索します
- TRACE –プログラムの実行中に行番号を表示します
- RETRACE –トレースの結果を表示します
- DUMP –配列を除くすべての変数値を表示します
- COLD – C64をリセットします
セキュリティ関連のキーワード
- DISAPA –非表示の基本プログラム行をマークします
- SECURE-DISAPAでマークされたすべての行を非表示にして、LISTで表示できないようにします
構造化プログラミングのキーワード
- ELSE – IF / THEN条件の代替ブランチを許可します
- REPEAT – REPEAT / UNTILループ構造の開始
- UNTIL – REPEAT / UNTILループ構造のループ条件を定義し、その終了をマークします
- RCOMP –最も最近使用されたIF / THEN / ELSE条件を復元します
- LOOP – EXIT IF条件が真になるまで実行されるループの開始を定義します
- EXIT IF –条件が真であるため、現在のLOOP / END LOOP構造を終了します
- END LOOP – EXIT IF条件が真になるまで実行されるループの終了を定義します
- PROC –名前付きサブルーチンの開始を定義します
- END PROC –名前付きサブルーチンの終了を定義します
- CALL – PROC / END PROCで定義された名前付きサブルーチンにジャンプして、そこにとどまります
- EXEC – PROC / END PROCで定義された名前付きサブルーチンを呼び出してから戻ります
- LOCAL –構造体で使用する変数を再定義します
- GLOBAL –以前のLOCALコマンドの効果を反転します
その他のキーワード
- CGOTO – GOTOと同等ですが、計算式を受け入れます
- RESET – DATAポインターを特定の行番号に移動します
- PAUSE –指定した秒数の間、プログラムの実行を一時停止します
その他
- $および%もキーワードと見なされ、合計で114です。
トリビア
バンドバルセロナは、1999年のデビューアルバムSimon Basicに敬意を表してタイトルを付けました。アルバムには曲「C-64」が含まれています。
受信
クリエイティブコンピューティングは、サイモンズのBASICが「64をほぼ新しいコンピューターにする(おそらくそもそも最初にあったはずだった)」と述べ、コモドールの通常は貧弱なドキュメンテーションとは対照的に、「非常に優れたマニュアル」を賞賛し、それは「機械をプログラミングするための標準言語になるだろう... Commodoreは、高速になるので、大量のコピーを製造することを計画した方が良い」と予測しました。 アホイ! 「BASICで何らかのプログラミングを行い、たまたまディーラーの棚でこの製品を見る場合は、質問せずに、—しないで、ただ購入してください!」同誌は、サイモンズのBASICの力と「優れたマニュアル」を称賛し、「その価格により、コモドール64で利用可能な最大のお買い得品の1つになる」と述べました。 RUNのレビューはあまり好意的ではなく、「多くの強力で便利なコマンドが、残念ながら商用パッケージに対して非常に貧弱に実装されていました。コマンドパラメータのチェックはほとんどなく、多くのことが見落とされていました。」
元のSIMONSのBASICカートリッジ(拡張子なし)には、Commodore 1541およびCommodore 1571ディスクドライブのエラーチャネルを読み取るための規定がありません。また、Drive以外のディスクドライブでファイルのディレクトリリストを実行したり、DISKコマンドを発行したりすることもできません#8。複数のディスクドライブがCommodore 64に接続されている場合。ほとんどの「標準」BASIC 2.0キーワードは、最初または1番目と2番目の文字を入力し、Shiftキーを押しながら2番目(または3番目の)その後の手紙、すべてのSIMONSのBASICキーワードは、付属のユーザーズマニュアルに示されているとおりに完全に完全に記述しなければなりません。これには、COLOR(背景色と外部境界色を選択する)コマンドとCENTER(画面の「中央」にあるテキストメッセージを印刷する)コマンドが含まれます。どちらもイギリス人用に正しく記述され、SIMONSに組み込まれます。 '基本。