仮想ゲーム機のあなた自身のレトロなゲームを作ってください。古典主義の BASIC 言語でプログラムして、そして含まれたツールでスプライト、タイルマップ、サウンドとミュージックを作成してください。 初心者としてあなたは速くどのようにシンプルなテキストゲームを作成するか、あるいはタイルマップであなたの最初のスプライトを示すべきか理解するでしょう。 経験豊かなプログラマーとしてあなたはレトロなハードウェアトリックのフルのポテンシャルを見いだす (引き出す) ことができます!
スライド (引き出し) 可能なタッチスクリーンの下に d-pad 、2つの移動ボタンと少しのゴムキーボードで LowRes NX が携帯ゲーム機であると想像してください。 LowRes NX は本当の8と16ビットのシステムによって触発されました、そして典型的なハードウェアのように実際に作動するパターン処理、音と入出力装置、からチップをシミュレートします。 それは、ハードウェア視差スクロールと同様、ハードウェアスプライトをサポートして、そして垂直の空白を提供しさえします、そしてラスターが正しいレトロな効果を引き起こすために中断します。
LowRes NX のプログラミング言語は第2世代の構造化 BASIC に基づいています。 それはすべての典型的なコマンドを提供します、しかしラベル、ループとサブプログラムで行番号の代わりに。 グラフィックスと音が追加のコマンドによって支援されます、そしてあなたは直接PEEKを使ってバーチャルハードウェアにアクセスしさえして、そしてPOKEことができます。 あなたはプログラムに関する完全な制御が流れるようにします、そこ(に・で)標準的な更新が実行するべき関数ですか。
LowRes NX はあなたが必要とするすべてのツールを含みます:ミュージックとサウンドエフェクトからサウンドコンポーザーと同様、スプライト、タイル、フォントとマップを編集するための Gfx デザイナー。 これらすべてはただ普通の BASIC プログラムです。 あなたは(彼・それ)らを変えて、そして改善するか、あるいはあなた自身のカスタムエディタを作成しさえすることができます。
直接他のユーザにあなたのゲームを送ってください、あるいはウェブサイトによって(彼・それ)らを共有してください。 プログラムがそうであるすべてはソースを開きます、それであなたは(彼・それ)らを演じて、(彼・それ)らから学んで、そして(彼・それ)らをエディットすることができます。 あなたはただ芸術あるいはミュージックを作ることをより好みますか? 資産としてあなたの創造を共有して、そして他のプログラマーに(彼・それ)らのプロジェクトで(彼・それ)らを使わせてください。
LowRes NX がどのようのように見えることができるか見る含まれたプログラムの若干を試みてください。 アクションゲーム LowRes Galaxy 2をひと目見てください、テキスト冒険 LowRes 冒険とデモは Scroller を主演させます。
あなたが十分にプレーした途端に、あなたはあなたの最初の自身のプログラムを作ることができます。
これらのラインをタイプしてください:
PRINT "WELCOME!" PRINT "WHAT IS YOUR NAME?" INPUT ">";N$ PRINT "HELLO ";N$;"!"
今あなたのプログラムを行なってください。 こちらはキーボードを使っている小さい例です。 gamepad で何かを試みましょう。 もう1つの新しいプログラムを作って、そしてこれをタイプしてください:
GAMEPAD 1 X=76 Y=60 DO IF UP(0) THEN Y=Y-1 IF DOWN(0) THEN Y=Y+1 IF LEFT(0) THEN X=X-1 IF RIGHT(0) THEN X=X+1 SPRITE 0,X,Y,225 WAIT VBL LOOP
このプログラムを行なってください、そうすればあなたはあなたが gamepad を使ってそれのまわりを回ることができるスクリーンで「A」を見るでしょう。
プログラムファイルが、シンプルなテキストとしてストアされたそのすべてのデータを含めて、完全なゲームあるいはアプリケーションを含んでいます。 最初の部分は BASIC ソースコードです。 どうかそれ以上の説明に関してプログラミングの章を読んでください。
2番目の部分はカートリッジROMエントリです。 これらはデータブロックであると数値化されて16に到達しています、そしてそれは、例パターン処理、レベルマップ、ミュージック、などから、どんな種類のデータでも含んでいることができます。 プログラムが走っているとき、そのすべてのROM・エントリはメモリの最初の32KBで accessable です。
あなたは、ツールを使うことによって、容易にROMエントリを作って、そして編集することができます。 ツールは標準的な NX プログラムです、しかし(彼・それ)らは編集データから特に作られています。 (彼・それ)らは「仮想ディスク」としてどんな NX ファイルにでもアクセスして、そしてファイルのようなそのROMエントリを使うことができます。
ツールを使う2つの方法があります:
それを試みましょう。 感動的な「A」で(「スタートアップガイド」区分から)あなたのプログラムを開いて、そしてツールメニューから「Gfx デザイナー」を選択してください。
文字 # 1として何かを引いてください(# 0を空に保ってください)、それから「ファイル」を軽くたたいて、そして2(「主人公」)をファイルとして保存してください。 今コード編集プログラムをソースに返してください、そうすればあなたはあなたのプログラムの下に若干の 16進データを見るでしょう。 これはあなたのイメージです! それを見るために、ラインを変えてください
SPRITE 0,X,Y,225
そうするために
SPRITE 0,X,Y,1
そしてあなたのプログラムを行なってください。 そこ(に・で)それはそうです!
ツールが自動的にセーブしないということを念頭においてください、それで決して、あなたが(彼・それ)らを終了する前に、貯蓄することを忘れないでください。
容易な始めからあなたは次の表のROM・入力番号を使うべきです。 (彼・それ)らのデータは自動的に使用のために準備ができていさせられます。
#0 | デフォルトフォントから空の状態を保ってください |
#1 | カラーパレット |
#2 | キャラクタ (スプライト、タイル) |
#3 | 背景 (タイルマップ) |
#15 | サウンドとミュージック |
もしではないがプログラムによって使ったカートリッジROM・入力0であるなら、コンパイラはデフォルトフォントからキャラクタデータを加えます。 それは文字192-255を占拠して、そして自動的にビデオ RAM にプログラムスタートのコピーを送られます。 もしあなたがデフォルトフォントを使うことを望むなら、ROM・入力0を使われていないようにしておくことを確実にしてください。
Gfx デザイナーを文字(スプライト、タイル、フォント)を描いて、バックグラウンド(タイルマップ、スクリーンレイアウト)を設計して、そしてカラー・パレットをエディットするために使ってください。
右下の上にプログラムの異なったセクションから3タブがあります:文字エディタ、パレット編集プログラムと背景編集プログラム。 あなたは、 LowRes NX を計算機上で走らせるとき、(彼・それ)らを切り替えるために、2と3で keys 1を使うことができます。
Gfx デザイナーはメインパレット(ファイル1)、文字(ファイル2)、をロードする、そして起動で(ファイル3)をバックグラウンド処理してください、しかしそれが自動的にセーブしないということを念頭においてください。
一番下の地域であなたは256文字が4ページに分けられるのを見ます。 そこ(に・で)あなたは編集から現在の(の・もの・人)を選択することができます。 もしあなたがデフォルトフォントを使うことを望むなら、最後のページ空きを引き留めてください。 同じく文字 # 0はクリーンな背景から空であるべきです。
最新の文字を描くことに対して、左上平方は選択されたカラーを使っています。
FILE | 文字ファイルにメニューに行ってください。 |
MOV | 最新の文字のピクセルを動かしてください。 |
16*16 | 16x16 - ピクセル編集スクリーンのところまで行ってください。 |
FLIP | 水平に、あるいは垂直に最新の文字をひっくり返してください。 |
SPIN | 最新の文字を回転させてください。 |
CLR | 選択されたカラーで最新の文字をクリアしてください。 |
CUT | 最新の文字をコピーして、そしてクリアしてください。 |
COP | 現在の文字をコピーしてください。 |
PAS | コピー済キャラクタを貼ってください。 |
SEL | 選択肢のサイズの変化。 |
選択肢の大きさはこのスクリーンの上に、バックグラウンドで編集プログラムを描くことに加えてすべての編集ツールに影響を与えます。
一番下の部分は文字エディタとまったく同じです。
囲み線で左側にあなたは現在のカラー・パレットを選択します。
あなたが編集することができる右の上に赤緑青引戸を使っているカレントパレットのそれぞれのカラー。 最初のカラーは通常透明で、そして、パレット0の最初のカラー以外、使われていません、そしてそれはスクリーン背景カラーのために使用されます。
ファイル | パレットファイルにメニューに行ってください。 |
ここであなたは現在選択される文字とカラー・パレットを使って他のスクリーンの上にあなたの背景を描きます。
FILE | 背景ファイルのメニューへ移動します。 |
Pan | 目に見える写像エリアをドラッグしてください。 |
Draw | 現行モードで絵を描いてください。 |
Erase | (彼・それ)らの属性を含めてセルを消去してください。 |
FLIP | X / Yフリップ属性をつけたり消したりします。 |
PRI | 優先度属性をつけたり消したりします。 |
あなたは矢線を使うことができます、あるいは WASD は、 LowRes NX を計算機上で走らせるとき、写像をスクロールに合わせます。 keys Z、X、C、VとBはツールを選択します。
ドローツールは異なった様式を持っています。再びボタンを利用し始めることによって、それがすでに選択されるとき、あなたは様式を変えることができます:
Draw | 単セルを編集してください。 |
Fill | ドラッグすることによって、エリアを編集してください。 |
Character | 選択されたフリップと優先性属性を使って、選択されたキャラクタとカラーパレットで描いてください。 |
Palette | カラー・パレットのみを変えてください。 |
Priority | 優先度のみを変えてください。 優先度1を持っているセルが緑、赤のすべての他のもので見せられます。 |
Stamp | ドラッグすることによって、エリアを選択してください、そして次にそれで絵を描いてください (コピー&ペースト)。 |
ここからあなたは別に文字、カラー・パレットと背景を積み込んで、そしてセーブします。 すぐにすべてを救うオプションがありません。
並びは16が現在の仮想ディスク、あるいは換言すればあなたがエディットしているプログラムのROM・エントリについてファイルするすべてを示します。 1(人・つ)を選択して、そして読み込みを軽くたたくか、あるいは貯蓄してください。
NEW | すべてキャラクターをクリアします。 |
FON | 現在のページに標準のフォントをコピーしてください。 |
PAG | 選択されたファイルから現在のページまでただ1ページだけをロードしてください。 例えばもう1つのファイルからインクルードフォントまで有用です。 |
NEW | デフォルトの色へのリセット。 |
NEW | 完全な背景(そのサイズの保持)をクリアしてください。 |
SIZE | サイズメニュー、あなたが、セルの大きさ(8x8 あるいは 16x16 ピクセル)と同様、(セルに)背景の幅と高度を選択することができるところに行ってください。 |
Sound Composer (サウンドコンポーザー) はサウンドプリセット、シーケンス ("トラック") および完成版のソングを作成します。
それはスタートアップのメインサウンドデータ (ファイル 15) をロードします、しかしそれが自動的にセーブしないということを念頭においてください。サウンドファイルがすべてのサウンドとミュージックデータを含みます。
音はすべての利用可能なサウンドパラメータ(波形、エンベロープ、LFO、など)を持っている事前設定です。 それは直接再生コマンドと共にあなたのプログラムあるいは測定器としてトラック / 曲で使われることができます。
トラックは一つの声から32ステップの並びです、そしてそこでそれぞれの階段が注釈を演ずるか、あるいは音を変化させることができます。 それはトラックコマンドと共にあなたのプログラムで複合音効果と短いメロディー(例えば "level up")のために使われることができます。 トラックが曲を作り出すために同じく使われます。
パターンはミュージックのブロックです、そしてそれは4つの声のそれぞれでどのトラックがプレーされるべきであるか定義します。 パターンが、次のケースから以外、次々に演奏されるでしょう:もし次のパターンが空であるなら、曲は止められます。 現在のパターンが終わって、そして「ループの終わり」が衰えるようにするとき、プレーヤーは「ループスタート」フラグで前のパターンに戻ってジャンプします。 パターンが終わって、そして「止まってください」フラグを持っているとき、プレーヤーはストップします。
もしあなたがゲームからミュージックを作り出すことを望み、そしてあなたが追加のサウンドエフェクトを使うことを計画するなら、あなたは少なくとも1つの声を空のままにしておくべきです。
64 パターンは1つの長い曲あるいはいくつかのより短い(の・もの・人)のために使われ得ます。 「ループしてください」、そして「止まってください」フラグを使うことによって、曲が切り離されることができます。 から再生の1に特定された曲、ただその最初のパターンにびくっとしてください。 あなたのプログラムで曲を演奏するために、ミュージックコマンドを使ってください。
サウンドコンポーザーは異なったセクションから右上隅で3タブを持ちます:パターン編集プログラム、トラック編集プログラムとサウンド編集プログラム。 これは頭のてっぺんから足の先まで、左から右にではなく、予定表が行くことを意味する「追跡者」式のプログラムです。 それでトラックでのステップは同じく口論と呼ばれます。 たいていの値が範囲で0から15まで 16進形式で見せられます(0F)。
LowRes NX を計算機上で走らせるとき、若干のキーボードサポートがあります:矢印キーはカーソルを動かします、そしてキーの並びはメモを入力するために2つのオクターブでミュージックのキーボードをシミュレートします。 リターンキーは注釈停止に入ります、後退が現在の注釈をデリートします、そして行送りが再生の間を行ったり来たりします(パターン / トラック)、そして止まってください。
ここであなたはパターンを選択して、そのトラックをすべての声のために選んで、そして直接それぞれの選択されたトラックのメモを編集することができます。 「ループを作ってください」、そして「止まってください」旗から現在のパターンから、同じくトグル・ボタンがあります。 もしあなたがトラックなしで声でメモを設定するなら、それは自動的に無料のトラックを選択します。 もしあなたがトラックで注釈を止めて / 発表することを望むなら、ミュージックのキーボードから、スター記号を使ってください。
ここであなたは追加のパラメータで単一トラックを選択して、そして編集することができます:
S | 音 |
V | 音量 |
C | 音コマンド |
P | パラメータ |
ここであなたのサウンドを定義して、そしてテストしてください。現在選択されたサウンドは他のエディタで新しい音符のために使われるでしょう。
これらのコマンドはあなたに、プレイバックである間に、動的にパラメータを変えることを許します。 トラック編集プログラムで(彼・それ)らを使ってください。
C | P | 目的 |
---|---|---|
0 | 0 | コマンドはなしです |
0 | x | 混ざってください(1 = 左、2 = 右、3歳 = 中心 / 両方とも) |
1 | x | 動作開始時間 |
2 | x | 消滅時間 |
3 | x | サステインレベル |
4 | x | リリースタイム |
5 | x | LFOレート |
6 | x | LFO周波数量 |
7 | x | LFO音量量 |
8 | x | LFOパルス幅量 |
9 | x | 幅を振動させてください |
D | x | (E、わずか+16のような)遅い速度 |
E | x | スピードを出します(デフォルトで穿孔段、8歳毎にカチカチいいます) |
F | 0 | トラック / パターンを壊してください |
F | 1 | 注意 / ボリューム0をカットしてください |
LowRes NX のプログラミング言語は第二世代の構造化 BASIC に基づいています(1985スタイル)。
このマニュアルは事前のプログラミング経験を持っている人々から参照であることを意図されています。 もしあなたがプログラムすることに不慣れであるなら、あなたは LowRes NX ウェブサイトでチュートリアルを探して、そして次にそれ以上の詳細な情報がないかこのマニュアルをチェックするべきです。
利用可能な値型は文字列と数(浮動小数点)です。
変数名が文字 (A-Z)、数字 (0-9) とアンダスコア (-) を含むことができる、けれども、数字から始まることができない. 予約語(コマンド、関数)が変数名として使用されることができません、しかし(彼・それ)らは(彼・それ)らの一部であり得ます。 区分「予約語」に並びがあります。
有効な変数名の例:
X A1 LONG_VARIABLE_NAME PRINTER
無効な変数名の例:
2B PRINT
文字列変数名が例えば $ symbol で終わります:
A$ NAME$
明確に変数が存在しない宣言しました、しかし、あなたが(彼・それ)らから読み込むことができる前に、(彼・それ)らは値で初期化される必要があります. 値が等しい記号を使って変数に割り当てられます:
NAME$="LOWRES NX" LIVES=3
十六進数と二進数が番号値のために使われることができます:
$FF02 %11001011
DIM [GLOBAL] var-list
それぞれの寸法から最も高いインデックスで配列を定義にします:
DIM A(100) DIM MAP(31,23,1),NAMES$(9),SCORES(9)
配列から要素にアクセスしてください、インデックスが0から始まります:
DIM SCORES(9) SCORES(0)=100 SCORES(9)=5 PRINT SCORES(0),SCORES(9)
配列のすべての要素は自動的に、ゼロ(0)あるいは空しい文字列(" ")を使って、初期化されます。
プログラムが走っているとき、そのすべての ROM エントリはメモリの最初の 32KB でアクセス可能です。
UBOUND(var[,dimension])
配列 var の寸法の上限(最も高いインデックス)を返します。
配列が多次元であるとき、寸法パラメータは使われた任意の数であって、そして配列の寸法を指定します。 省略時値は1歳です。
DIM SCORES(9) FOR I=0 TO UBOUND(SCORES) PRINT SCORES(I) NEXT I
ラベルがプログラムにおけるポジションを表わして、そして GoTo のようなコマンドのために使われます。 それは、変数からと同じルールを使って、コロンによって後に続かれて、名前から成り立ちます。
TESTLABEL:
記号 | 用例 | 用途 |
---|---|---|
- | -B | 負数 |
^ | X^3 | 冪乗 |
* | 2*Y | 乗算 |
/ | X/2 | 除算 |
\ | X\2 | 整数の除算 |
+ | C+2 | 加算 |
- | 100-D | 減算 |
MOD | X MOD 2 | 剰余 |
オペレーションが、例掛け算から、数学的な秩序で行なわれます、そして部門が付加と削除の前に行なわれます。
PRINT 10+2*5-8/4+5^2
評価順序は括弧の使用により明示的に指定できます。例えば、
PRINT (3+4)*5
記号 | 例 | 目的 |
---|---|---|
= | A=10 | 同等 |
<> | A<>100 | 等しくありません |
> | B>C | より大きい |
< | 5 | より小さい |
> = | X>=20 | より大きいあるいは同等 |
<= | X<=30 | より小さいあるいは同等 |
比較作用素式が本当に値を返します(-1)、あるいは偽(0)。
記号 | 例 | 目的 |
---|---|---|
NOT | NOT (X=15) | "否定" |
AND | A=1 AND B=12 | "And" |
OR | X=10 OR Y=0 | "論理和" |
XOR | A XOR B | "排他論理和" |
すべての演算子は数のために利用可能です。 関係型と足し算演算子は同じく文字列で有用です:
SUM=1+3 IF SUM<5 THEN PRINT "LESS THAN 5" NAME$="LOWRES NX" GREET$="HELLO "+NAME$+"!" IF NAME$>"LOWRES" THEN PRINT GREET$ IF SUM=4 AND NAME$<>"" THEN PRINT "OK"
REM 注釈文 ' 注釈文
あなたにあなたのプログラムにコメントを注ぐことを許します。 注釈文ラインが制作されません。 あなたはアポストロフィを使うことができる(「)単語注釈文の代わりに.
REM THIS IS A TEST PROGRAM REM WRITTEN BY TIMO KLOSS PRINT "HELLO" 'SHOW MORE TEXT... PRINT "BYE"IF...THEN...ELSE
IF 式 THEN コマンド [ELSE コマンド]
所定の式が本当か、あるいは偽りであるかどうか調べます。 もしそれが本当であるなら、コマンドはそれから、後で実行されます、さもなければ ELSE の後の(の・もの・人)。 ELSE 部品はオプションです。
INPUT "NUMBER A:";A INPUT "NUMBER B:";B PRINT "SAME? "; IF A=B THEN PRINT "YES" ELSE PRINT "NO" IF A<B THEN PRINT "A LESS THAN B" IF A>B THEN PRINT "A GREATER THAN B"
もしあなたが1以上のコマンドを実行します(あるいは長いラインを避ける)ことを望むなら、あなたは IF コマンドのブロックバージョンを使うことができます。
IF 式 THEN コマンド [ELSE IF 式 THEN] コマンド [ELSE] コマンド END IF
ブロックがこの例においてと同じように重ねられることができます:
PRINT "NUMBER OF PLAYERS" INPUT "1-4: ";N IF N<1 OR N>4 THEN PRINT "WRONG INPUT" PRINT "RESTART!" ELSE IF N=1 THEN PRINT "SINGLE-PLAYER" ELSE PRINT "MULTI-PLAYER" IF N=4 THEN PRINT "MAXIMUM" END IF END IF
GOTO ラベル
所定のラベルでジャンプして、そしてそこ(に・で)プログラム実行を続けます。
PRINT "START" GOTO GAMELEVEL GAMEOVER: PRINT "GAME OVER" END GAMELEVEL: PRINT "PLAYING" GOTO GAMEOVER
GOSUB label
スタックに現行プログラムの見解を加えて、そして所定のラベルに飛びつきます。 ラベルの後のプログラムは副ルーチンと呼ばれて、そして戻るを使って終了しているに違いありません。
FOR I=1 TO 5 GOSUB SHOWNUMBER NEXT I END SHOWNUMBER: PRINT "NUMBER",I RETURN
メモ:サブルーチンが主として歴史上の理由から存在します。 あなたはいっそう強力な、そしてより安全なサブプログラムの方を好むべきです。
RETURN
最後のポジションに戻るジャンプがスタックから GOSUB と削除についてそれを呼び出します。
RETURN ラベル
GOTO のように働きますが、スタック全体をクリアします。 もしあなたが他のどこか(に・で)あなたのプログラムを続けることを望むなら、副ルーチンから、これを終了するために使ってください。
FOR I=1 TO 5 GOSUB SHOWNUMBER NEXT I END SHOWNUMBER: IF I=4 THEN RETURN GAMEOVER PRINT "NUMBER",I RETURN GAMEOVER: PRINT "GAME OVER"
END
どんなポジションからでもプログラムを止めます。 プログラムはコードの最後のラインの後に自動的に同じく止められます。
PRINT "THIS HAPPENS" END PRINT "THIS DOESN'T"
WAIT VBL
次のフレームを待ちます。 これ (あるいは WAIT n) はアニメーションをして、そして/あるいはメインゲームのように、入力を処理するループがループにするすべてで最後のコマンドであるべきです。
DO PAL RND(3) TEXT RND(19),RND(15),"*" WAIT VBL LOOP
WAIT n
nが枠にはめる待ち(n / 60秒)、最小値がnから1歳であるところ。 割り込みから(VBL / ラスター、ミュージックで)走っている Subprograms がこの期間に定位として働き続けるでしょう。
待機1は待機 VBL と同じです、それでなぜ待機 VBL がありますか? なぜならそれはもっと冷たいそして nerdier に見えますから! 小さいガイドライン:もしあなたが実際にしばらく待つことを望むなら、滑らかなアニメーションと入力操作と待機nからループで待機 VBL を使ってください。
PRINT "INUTILIS" PRINT "PRESENTS..." WAIT 60 PRINT "THE WAIT PROGRAM!"
FOR var=a TO b [STEP s] コマンド NEXT 変数
1つの所定の回数1つのループで一連のコマンドを行ないます。 FOR コマンドは、 a. を値で始めて、変数 var を計数器として使います。 すべてのコマンドは、次になるまで、実行されます、それで計数器はs(あるいはもし製品モデルデータ交換標準がそうであるなら省略された1)によって増やされます。 検査が計数器が b. より今より大きいかどうか見るために実行されます。 もしそうでなければ、プロセスは繰り返されます。 もしそれがもっと素晴らしいなら、プログラムは NEXT の後にラインで続きます。
FOR I=1 TO 8 PRINT I NEXT I
FOR I=2 TO 16 STEP 2 PRINT I NEXT I
もし STEP の値 s が負数であるなら、ループは逆のより小さい項目値 b. まで実行されます。
FOR I=8 TO 1 STEP -1 PRINT I NEXT I
ループが他のものの内部で置かれることができます (ほかのステートメントの内側にループを記述できます):
FOR P=0 TO 3 PAL P FOR N=1 TO 4 PRINT N NEXT N NEXT P
DO コマンド LOOP
無限ループでコマンドを行ないます。 あなたは GoTo を使うか、あるいはそれを置き残すために終了することができます。
DO PAL RND(3) PRINT "FOREVER" LOOP
REPEAT コマンド UNTIL 式
所定の式が真 (true) になるまで、ループ (繰り返し) でコマンドを実行します。 ループは少なくとも一度実行されます。
REPEAT A=RND(9) PRINT A UNTIL A=0
WHILE 式 コマンド WEND
所定の式が本当である限り、ループでコマンドを実行します。
A=4 WHILE A<10 PRINT A A=A+1 WEND
EXIT
すぐに FOR...NEXT, REPEAT...UNTIL, WHILE...WEND, または DO...LOOP コマンドと共に作成されたループからの退場します。
DO INPUT "ENTER E TO EXIT:";A$ IF A$="E" THEN EXIT PRINT "GOING ON..." LOOP PRINT "END"
SUB 名前 [(パラメータリスト)] コマンド END SUB
名を持ったサブプログラムを定義します。 オプションのパラメータ並びの容器はエントリの2つの型を含みます:単純変数と配列変数(、そしてそれに続いて空しい小括弧ペアー)。 エントリはコンマで分割されています。 内部にすべて変数的なデフォルトによってサブプログラムは局部的です。
注意: GOTO あるいは GOSUB をサブプログラムからジャンプするために使わないでください!
CALL 名前 [(引数リスト)]
名を持ったサブプログラムを実行して、そして、それを終えた後で、ポジションを現在に返します。 引数リスト不可欠は潜水艦の定義のパラメータに匹敵します。 単純な変数、一人の配列要素と配列全体(、そしてそれに続いて空しい小括弧ペアー)がサブプログラムに参照によって引き渡されます。 他の表現が値によって引き渡されます。
CALL GREET("LOWRES NX",3) CALL GREET("YOU",1) CALL BYE SUB BYE PAL 1 PRINT "BYE" END SUB SUB GREET(N$,A) FOR I=1 TO A PAL RND(3) PRINT "HELLO",N$ NEXT I END SUB
EXIT SUB
END SUB が到達される前にサブプログラムを終了します。
GLOBAL 変数リスト
メインからの変数をすべてのサブプログラムにとって入手可能なプログラムにします。 並びは単純変数のみを含んでいることができます。 配列からあなたは薄暗いグローバルを使うべきです。 このコマンドはサブプログラムの中で使われることができません。
GLOBAL SCORE,TRIES TRIES=3 CALL WIN(10) CALL WIN(20) SUB WIN(N) SCORE=SCORE+N PRINT "SCORE:",SCORE,"TRIES:",TRIES END SUB
PRINT 式のリスト
現行ウィンドウにテキストを出力します。 式はコンマあるいはセミコロンで分割された文字列あるいは番号であり得ます。 読点が行送りと一緒の出力を切り離します、セミコロンが行送りがないアウトプットを切り離します。 カーソルを出力の終わりに保つために読点あるいはセミコロンで並びを終わらせてください、さもなければ復帰改行が始められます。
PRINT "HELLO WORLD" PRINT 42 PRINT 1+3 PRINT "SCORE:",100 PRINT "ONE "; PRINT "LINE"
INPUT ["プロンプト";]変数
ユーザにキーボードにテキストあるいは数を入力させて、そしてそれを変数 var にしまっておきます。 オプションとしてそれは前に迅速なテキストを示すことができる(変数であるはずがありません)。
入力が自動的にキーボードを可能にします。
INPUT "NAME:";N$ INPUT "AGE:";AGE PRINT "HELLO ";N$;"!" PRINT "SOON YOU ARE ";AGE+1
LOCATE cx,cy
現行ウィンドウと比較してテキスト・カーソルを印字位置 cx と穿孔段 cy に動かします。
LOCATE 2,4 PRINT "HELLO"
CURSOR.X CURSOR.Y
現在の印字位置(X)を返しますあるいはボートをこいでください(Y) テキストカーソル相対について現在にウィンドウ。
WINDOW cx,cy,w,h,b
サイズw縦列とh横列に領域ポジション cx 、 cy とセットに出力されたテキストにウィンドウを割り当てます。 テキストが背景b(0あるいは1)に書かれるでしょう。
WINDOW 6,4,8,4,0 PRINT "LONG TEXT IN A SMALL WINDOW"
CLW
スペースでウィンドウをクリアして、そしてテキスト・カーソルポジションをリセットします。
PRINT "HELLO" CLW PRINT "BYE"
GAMEPAD n
n人の(1 または 2)プレーヤーから gamepads を可能にします。 gamepad が使用可能である途端に、プログラムはもう入力をタッチスクリーン / マウスに変えることができません。
UP(p) DOWN(p) LEFT(p) RIGHT(p)
もし所定の指示がプレーヤーpの指示パッド(0/1)の上に現在報道されているなら、真を返します。
UP TAP(p) DOWN TAP(p) LEFT TAP(p) RIGHT TAP(p)
オプションの TAP キーワードで、この関数は真を返します、ただ最初のフレームからボタンは押されます。
GAMEPAD 1 DO IF UP(0) THEN PRINT "UP" IF DOWN(0) THEN PRINT "DOWN" IF LEFT TAP(0) THEN PRINT "TAP <" IF RIGHT TAP(0) THEN PRINT "TAP >" WAIT VBL LOOP
BUTTON(p[,n])
もしボタンA(n = 0)なら、真を返しますあるいはB(n = 1)が現在プレーヤーp(0/1)によって押されます。 もしパラメータnが除かれるなら、両方のボタン(AとB)がチェックされます。
BUTTON TAP(p[,n])
オプションの TAP キーワードで、この関数は真を返します、ただ最初のフレームからボタンは押されます。
GAMEPAD 1 DO IF BUTTON(0,0) THEN PRINT "A" IF BUTTON TAP(0,1) THEN PRINT "TAP B" WAIT VBL LOOP
PAUSE ON PAUSE OFF離れて一時停止に中断してください
自動ポーズ操作を可能にするか、あるいは停止させます。 それが可能にしたデフォルトによって、それでもしあなたが休止ボタンを押すなら、ボタンが再び押されるまで、プログラムストップとショーはスクリーンの上に「中断します」。
PAUSE
プログラムを中断して、そして、たとえ自動ポーズ操作が使用不能であるとしても、デフォルト「一時停止」スクリーンを見せます。
PAUSE
もし休止ボタンがプレスされていて、さもなければ偽であったなら、真を返します。 この関数を呼び出した後で、その値はクリアされます、それでそれはただ1度だけそれぞれのボタンタップを返します。 自動ポーズ操作はこの関数から障害を持っている必要があります。
GAMEPAD 1 PAUSE OFF DO IF PAUSE THEN PRINT "PAUSE PRESSED" WAIT VBL LOOP
あなたがそれが同じく計算機マウスと一緒によく機能するであろうと思う場合に限り、タッチスクリーンサポートを使ってください。 もしあなたがあなた自身のゲームボタンを作ることを望んで、それがそうしないであろうから、あなたのゲームが計算機の上に手が出せないかもしれないということを念頭におくならサポート、キーボード、あるいは本当の gamepad 。 常に標準的な gamepad 関数を使うことを考えてください。
TOUCHSCREEN
タッチスクリーン / マウスサポートを可能にします。 それが使用可能である途端に、プログラムはもう gamepad 入力に変わることができません。
TOUCH.X TOUCH.Y
ユーザがスクリーンに触れる、あるいはそれが最後のとき感動した現在のXあるいはYピクセルポジションを返します。
TOUCH
もしスクリーンが現在触れられるなら、真を返します。
TOUCHSCREEN DO IF TOUCH THEN PRINT TOUCH.X,TOUCH.Y WAIT VBL LOOP
TAP
もしスクリーンが現在感動して、そして触れられた最後のフレームではなかったなら、真を返します。
TOUCHSCREEN DO IF TAP THEN PRINT TOUCH.X,TOUCH.Y WAIT VBL LOOP
KEYBOARD ON KEYBOARD OFF
キーボードを可能にするか、あるいは使えなくします。 キーボードが使用可能である間に、 gamepads が機能しません。
KEYBOARD OPTIONAL
キーボードを可能にします、しかしタッチスクリーンデバイスの上にスクリーン上のキーボードを 見せないでしょう。 この様式を使っているプログラムは gamepad あるいは接触制御と共に完全に有用 であって、そして代わりの入力のみのためにキーボードを使うべきです。
INKEY$
文字列として最後の報道された保護かぎを返します。 もし保護かぎが押されなかった、それが空きを返すなら文字列(" ")。 この関数を呼び出した後で、その値はクリアされます、それでそれはただ1度だけ重要に押されてそれぞれを返します。 キーボードはこの関数から使用可能である必要があります。
KEYBOARD ON DO I$=INKEY$ IF I$<>"" THEN PRINT I$ WAIT VBL LOOP
LowRes NX でのすべてのパターン処理が文字に基づいています。 1文字は3つの色を持っている、プラストランスペアレントな 8x8 - ピクセルイメージです。 それは8つのプログラムできるカラー・パレットの1つで表示しました。
2がそうであるROM・入力からのすべての文字がビデオにコピーしたプログラムスタートに(彼・それ)らをすぐに有用にする読み書き可能メモリ。
ディスプレイは後ろから前への3つの層で構成されています:
それぞれのスプライトと背景領域が「優先度」と呼ばれる属性を持っています。 それをセットすることによって、領域あるいはスプライトがより高いディスプレイレイヤに現われるでしょう。 実際に後ろから前に、6つの層があります:
スプライトは独立したオブジェクトです、そしてそれは自由にスクリーンに感動し得ます。 (彼・それ)らは、いくつかの文字をまとめることによって、 8x8 ピクセル(1文字)あるいは最高 32x32 ピクセルの大きさを持っていることができます。 それぞれのスプライトが標準的な、そしてさらにそのサイズの文字属性(カラー・パレット、FLIPX / Y、優先度)を持ちます。
SPRITE n,[x],[y],[c]
スプライトn(0-63)の位置(x、y)と文字 (c) を達成します。 すべてのパラメータは(彼・それ)らの最新の設定値を保持するために省略されることができます。
SPRITE n [PAL pal] [FLIP fx,fy] ... [PRIO pri] [SIZE s]
スプライト n (0-63) の1つ以上の属性を設定します:
pal | パレット数 (0-7) |
fx | 水平にひっくり返ってください (0/1) |
fy | 垂直にひっくり返ってください (0/1) |
pri | 優先度 (0/1) |
s | サイズ (0-3): 0: 1 キャラクタ (8x8 px) 1: 2x2 キャラクタ (16x16 px) 2: 3x3 キャラクタ (24x24 px) 3: 4x4 キャラクタ (32x32 px) |
SPRITE 0,32,64,193 SPRITE 1,64,64,193 SPRITE 1 PAL 1 SIZE 3 FOR X=64 TO 128 SPRITE 1,X,, IF X=96 THEN SPRITE 1 FLIP 1,0 WAIT VBL NEXT X
SPRITE.A n,a
スプライトn(0-63)のすべての属性を一つの8ビットの値として設定します。 もっと多くの情報のために「スプライトレジスタ」を見てください。
それがより容易なメモ:がスプライトコマンドのこれらの属性シンタックスを持っている値を設定しました。
SPRITE OFF [n] SPRITE OFF a TO b
1つ以上のスプライトを隠します。 もしすべてのパラメータが省略されるなら、すべてのスプライト(0 - 63)は隠されます。 1つのパラメータでただ所定のスプライトだけが隠されます。 オプションが範囲でスプライトを隠すはずである最後 b. に.
SPRITE.X(n) SPRITE.Y(n)
スプライトnのポジションを返してください。
SPRITE.C(n)
スプライトnの文字を返します。
SPRITE.A(n)
8ビットの値としてスプライトnの属性を返します。 もっと多くの情報のために「スプライトレジスタ」を見てください。
SPRITE HIT(n[,a [TO b]])
もしスプライトnが(そのピクセルオーバラップを意味する)もう1つのスプライトに衝突するなら、真を返します。 もし(これ・それ)以上のパラメータが与えられないなら、それは他のすべての目に見えるスプライトに問い合わせるでしょう。 もしパラメータが加えられる、それはただそのスプライトで a. チェックするであろう. もしすべてのパラメータが与えられるなら、それは番号からすべてのスプライトに問い合わせるであろう b. に番号を付けること.
SPRITE 0,32,64,225 SPRITE 1,96,68,226 FOR X=32 TO 128 SPRITE 0,X,, IF SPRITE HIT(0,1) THEN SPRITE 0 PAL 1 ELSE SPRITE 0 PAL 0 END IF WAIT VBL NEXT X
HIT
打たれたスプライトの最後の要求のスプライトに衝突したスプライトの番号を返します。
背景はテキストとタイルベースのマップあるいはイメージのために使われる 32x32 文字セルの写像です。 それぞれの領域がそれがどの文字を含んでいるかの情報と追加の属性(カラー・パレット、FLIPX / Y、優先度)を持ちます。
1文字が 8x8 ピクセルの大きさを持つ(とき・から・につれて・ように)、結果として生じている背景大きさは 256x256 ピクセルです、そしてそれは実際のスクリーン(160x128)より大きいです。 背景のスクロールオフセットを変更することによって、目に見えるエリアは感動し得ます。
もし目に見えるエリアが背景の境界から引っ越すなら、ディスプレイは小口の周りを囲みます。 これは果てしないスクロールを達成するために使われることができます。
16x16 - ピクセルセルから様式があります。 活動的であるとき、それぞれの領域が大きいスプライトに類似している 2x2 キャラクタを上演するでしょう。 この様式は同じく背景大きさを 512x512 ピクセルに増やします。 セルの大きさコマンドをそれを可能にするために使ってください。
バックグラウンドにアクセスするコマンドと関数の大部分から(彼・それ)らの領域共同縦軸は背景大きさ(32x32)の外にあり得ます。 (彼・それ)らは小口の周りを巻くでしょう、それで例えば34、-2が実際に現われるであろうポジションで引き出された1文字が2,30を置きます。
CLS
文字0とリセット、現在、で両方の背景のためにデフォルトの(の・もの・人)へのウィンドウを片付けます。
CLS b
クリアが文字0でbをバックグラウンド処理します。
PAL p
領域とテキストコマンドからパレット数(0-7)属性を設定します。
PRINT "HELLO" PAL 1 PRINT "LOWRES NX!"
FLIP fx,fy
水平な(fx)から値(0あるいは1)を、そして領域とテキストコマンドから縦の(fy)フリップ属性をセットします。
PRINT "LOWRES NX" FLIP 0,1 PRINT "LOWRES NX" FLIP 1,0 PRINT "XN SERWOL"
PRIO p
領域とテキストコマンドから優先度(0あるいは1)属性を設定します。
ATTR a
領域とテキストコマンドからすべての属性を一つの8ビットの値として設定します。 もっと多くの情報のために「BG データ」を見てください。
注意:FLIPコマンドPALとPRIOを使うことはより容易です。
BG n
現在の背景(0あるいは1)を領域とテキストコマンドにセットします。
CELL cx,cy,c
ポジションで領域に cx 、現在の属性を使っている文字cへの現在の背景の cy を割り当てます。
PAL 2 CELL 1,1,225 CELL 2,1,226 PAL 1 CELL 3,1,227
CELL.C(cx,cy)
ポジション cx 、現在の背景の cy において領域の文字を返します。
CELL.A(cx,cy)
cx 、8ビットとしての現在の背景の cy が高く評価するポジションで領域の属性を返します。 もっと多くの情報のために「BG データ」を見てください。
BG FILL cx1,cy1 TO cx2,cy2 CHAR c
cx1 、 cy1 から cx2 、現在の背景の cy2 から現在の属性を使った文字cまでその区域のすべてのセルをセットします。
PAL 2 BG FILL 2,2 TO 17,13 CHAR 225 PAL 1 BG FILL 10,8 TO 17,13 CHAR 226
TINT cx,cy [PAL pal] ... [FLIP fx,fy] [PRIO pri]
ポジション cx 、現在の背景の cy において領域のパレットそして/あるいは他の属性を変えます。 領域の文字と除かれた属性は変化していない状態でいます。
BG FILL 2,2 TO 17,13 CHAR 225 TINT 10,8 PAL 1 FLIP 0,1
BG TINT cx1,cy1 TO cx2,cy2 ... [PAL pal] [FLIP fx,fy] [PRIO pri]
その区域のすべてのセルのパレットそして/あるいは他の属性を cx1 、 cy1 から cx2 、現在の背景の cy2 から変えます。 セルの文字と除かれた属性は変化していない状態でいます。
BG FILL 2,2 TO 17,13 CHAR 225 BG TINT 10,8 TO 15,11 PAL 1
BG SOURCE a[,w,h]
BG COPY コマンドから現在にソースを割り当てます。 2次元の(人たち・もの)がメモリアドレスにおいて始めを地図に表わす a, has wの幅とhセルの高度.
大きさパラメータなしで、 Gfx デザイナーの背景データの形は仮定されます:幅はアドレスから高さの + 2を読まれます、 + 3と実際の写像データが + 4で始まります。
デフォルトROM・入力によって3がソースとして使われます。
'USE A MAP FROM ROM ENTRY 4 BG SOURCE ROM(4) 'USE A MAP FROM WORKING RAM BG SOURCE $A000,32,32
BG COPY cx1,cy1,w,h TO cx2,cy2
現在の(人たち・もの)の2次元的な部分のために現在の背景へのソースをコピーします。
'SHOW SCREEN FROM GFX DESIGNER BG COPY 0,0,20,16 TO 0,0
BG SCROLL cx1,cy1 TO cx2,cy2 STEP dx,dy
その区域のすべてのセルの目次を cx1 、 cy1 から cx2 、水平に dx によってのそして垂直に dy セルによっての cy2 から動かします。
DO BG SCROLL 0,0 TO 19,15 STEP -1,0 CELL 18,RND(15),193+RND(62) WAIT 5 LOOP
MCELL.C(cx,cy)
MCELL.A(cx,cy)
CELL.C と CELL.A 関数のように働いてください、しかし現在の背景の代わりにソース写像(BG ソース)から領域を手に入れてください。 もし共同縦軸が写像上下限の外にあるなら、関数は-1を返します。
MCELL cx,cy,c
セルコマンドのように働きますが、現在の背景の代わりに領域をソース写像(BG ソース)で達成します。 ソースは作業用 RAMにあるに違いありません、さもなければあなたは「非合法のメモリアクセス」エラーを得るでしょう。
TEXT cx,cy,s$
現在の属性を使って cy にドルから現在が、 cx に、領域ポジションでバックグラウンド処理する文字列sを出力します。
PAL 3 TEXT 15,15,"HELLO"
NUMBER cx,cy,n,d
領域ポジション cx 、現在の属性を使った cy において現在の背景にナンバーnを出力します。 数は常にd桁を見せるために方式を決められます。 それが数を文字列に変換する必要がない(とき・から・につれて・ように)、このコマンドは TEXT に関して数を示すのをより好まれます。
NUMBER 15,0,321,5
FONT c
テキスト出力のために使われる現在の文字の範囲を達成します。 c はフォントが始まる文字(スペース)です。
もし利用可能であるなら、省略時値は、標準フォントを指し示す192です。
SCROLL b,x,y
背景のスクロールオフセット b (0/1) にピクセルの座標 x,y を設定します。
TEXT 0,7,"SCROLLING BACKGROUND" FOR I=0 TO 256 SCROLL 0,I,0 WAIT VBL NEXT I
SCROLL.X(b) SCROLL.Y(b)
背景 b のスクロールオフセットを返します。
SPRITE VIEW ON
SPRITE VIEW OFF
スプライトの設定値のいずれも変えないで完全なスプライトレイヤを見せるか、あるいは隠します。
BG VIEW ON n
BG VIEW OFF n
ショーあるいは皮がn(0あるいは1)をバックグラウンド処理します。
CELL SIZE b,s
セルの大きさを背景 b(0あるいは1)ために準備します、s があり得るところ:
0 | 1文字(8x8 ピクセル) |
1 | 2x2 キャラクタ(16x16 ピクセル) |
PALETTE n,[c0],[c1],[c2],[c3]
パレットn(0-7)のすべての4つの色を達成します。 カラー 0 がただパレット0のために使われて、そしてスクリーンの背景カラーであることを示されるだけです。 カラーパラメータは(彼・それ)らの最新の設定値を保持するために省略されることができます。 正当なカラー値は0-63であって、そしてこのように計算されることができます:
値 = 赤 * 16 + 緑 * 4 + 青
0から3までの値が赤くて、緑で、そして青いです。
すべてのパレットが読み取られるデフォルトによってのROM入力1。
PRINT "COLORS!" WAIT 30 PALETTE 0,48,63,63,0 WAIT 30 PALETTE 0,3,,, WAIT 30 PALETTE 0,12,,,8
COLOR(p,n)
パレットp(0-7)からカラーn(0-3)の値を返します。 あなたはこのような赤い、緑の、そして青い値を手に入れることができます:
赤 = INT(緑 / 16) 緑 = INT(緑 / 4) MOD 4 青 = 緑 MOD 4
ON RASTER CALL 名前
それが描かれる前に、すべてのスクリーンから実行されるサブプログラムにラインを割り当てます。 通常カラー・パレットあるいはスクロール差し引き計算を写実的な影響を達成するように変えるために使われる。 ラスターサブプログラムは背が低くあるべきです(「CPUサイクル」参照)。
ON RASTER OFF
現在のサブプログラムを取り除きます。
ON RASTER CALL RAINBOW PRINT "RAINBOW WRITER" INPUT A$ SUB RAINBOW PALETTE 0,(RASTER+TIMER) MOD 64,,, END SUB
RASTER
現在の画面行(y位置)を返します。 ラスターサブプログラムでこれを使ってください。
ON VBL CALL 名前
実行されるサブプログラムにそれぞれのフレームを割り当てます。 アニメーションあるいは音をアップデートするために使われることができます、たとえメインであるとしても、プログラムが待機あるいは入力によって阻止されます。 VBL サブプログラムは非常に長くあるべきではありません(「CPUサイクル」参照)。
ON VBL OFF
現在のサブプログラムを取り除きます。
ON VBL CALL BLINK PRINT "BLINK WRITER" INPUT A$ SUB BLINK PALETTE 0,TIMER MOD 64,,, END SUB
TIMER
LowRes NX が始められたときから、示されたフレーム毎の番号を返します。 5184000が達せられるとき、値は0にラップされます、そしてそれはおよそ24時間です。
LowRes NX は独立 4 チャンネルのサウンドジェネレータ (ボイス) があります。 それぞれがのこぎり歯、三角形、パルスとノイズ波形、をプレーすることができて、そして周波数、音量とパルス幅設定値を持っています。 さらにエンベロープ生成プログラムとLFOが声毎に複合音と道具を可能にします。
サウンドコンポーザー (または互換プログラム) のツールでミュージック、トラックとサウンドプリセットを作成できます。
MUSIC [p]
パターンpにおいて曲のプレイバックを始めます。 もしパラメータpが除かれるなら、それはパターン0で始まります。
TRACK n,v
演劇がかつて声vの上にnを追跡します。 それぞれの発言が独立してトラックをプレーすることができます、それで、ミュージックが演奏されている間にさえ、これはサウンドエフェクトのために使われることができます。
PLAY v,p[,len] [SOUND s]
サウンドをボイス v で演奏します。 p は音調です。
音符 | 音調 (オクターブ別) | |||||||
---|---|---|---|---|---|---|---|---|
C | 1 | 13 | 25 | 37 | 49 | 61 | 73 | 85 |
C# | 2 | 14 | 26 | 38 | 50 | 62 | 74 | 86 |
D | 3 | 15 | 27 | 39 | 51 | 63 | 75 | 87 |
D# | 4 | 16 | 28 | 40 | 52 | 64 | 76 | 88 |
E | 5 | 17 | 29 | 41 | 53 | 65 | 77 | 89 |
F | 6 | 18 | 30 | 42 | 54 | 66 | 78 | 90 |
F# | 7 | 19 | 31 | 43 | 55 | 67 | 79 | 91 |
G | 8 | 20 | 32 | 44 | 56 | 68 | 80 | 92 |
G# | 9 | 21 | 33 | 45 | 57 | 69 | 81 | 93 |
A | 10 | 22 | 34 | 46 | 58 | 70 | 82 | 94 |
A# | 11 | 23 | 35 | 47 | 59 | 71 | 83 | 95 |
B | 12 | 24 | 36 | 48 | 60 | 72 | 84 | 96 |
オプションのパラメータ len は1/60秒で長さです、最大値は255です。 0の手段、それ音は自動的に止まらないであろう. もしパラメータが省略されるなら、声の現在値は保持されます。
デフォルト、最新の音設定値、によって声について使われます。 サウンドコンポーザーツールからサウンド番号sを使うためにサウンドパラメータを加えてください。
PLAY 0,49,20 WAIT 30 PLAY 0,53,20 WAIT 30 PLAY 0,56,40 WAIT 60
STOP [v]
声vに関して最新の音とトラックを止めます。 もしパラメータが省略されるなら、すべての声、トラックとミュージックは止められます。 もし声のエンベロープが リリースタイム を持つなら、音はすぐに止まるが、次第に消えていかないでしょう。
VOLUME v,[vol],[mix]
声n(0-3)の音量を巻(0-15)にセットしますそして混ぜるべきその生産(0-3):
0 | 消音 |
1 | 左 |
2 | 右 |
3 | 左と右 (中央) |
すべてのパラメータは(彼・それ)らの最新の設定値を保持するために省略されることができます。
SOUND v,[w],[pw],[len]
声対(0-3)の基本的な音パラメータを設定します。
w は波形です。
0 | ノコギリ波 |
1 | 三角波 |
2 | パルス |
3 | ノイズ |
pw はパルスです、幅(0-15)、8の値が方形波をもたらします。 このパラメータはただパルス波形から効果を持つだけです。
len は1/60秒で完全な長さです、最大値は255です。 音が自動的に止めないであろう0の手段。 もし長さが設定されるなら、このコマンドを使って、再生の長さパラメータは省略されることができます。
すべてのパラメータは(彼・それ)らの最新の設定値を保持するために省略されることができます。
ENVELOPE v,[a],[d],[s],[r]
声対(0-3)の音量エンベロープ生成プログラムをセットします。
動作開始時間です、dは消滅時間です、そしてrは リリースタイム です. すべての時は非線形であって、そして0(2ミリセカンド)から15(12のs)まで及びます
sはサステインレベル(0-15)です、そしてそれは消滅時間の後にそして音が放たれる前に音量です。
すべてのパラメータは(彼・それ)らの最新の設定値を保持するために省略されることができます。
ENVELOPE 0,1,6,8,8 PLAY 0,49,20 WAIT 30 PLAY 0,53,20 WAIT 30 PLAY 0,56,40 WAIT 120
LFO v,[r],[fr],[vol],[pw]
声対(0-3)のLFO(低周波発振器)をセットします。
rはLFOレートであって、そして直線的でない方法で0(0.12ヘルツ)から15(18ヘルツ)まで及びます。
他の paramters は異なった音パラメータに対する影響の量を設定しました:周波数 / ピッチ、巻から音量と pw からパルス幅から fr してください。 これらの値は0から15まで及びます。
すべてのパラメータは(彼・それ)らの最新の設定値を保持するために省略されることができます。
LFO 0,12,4,0,0 PLAY 0,49,20 WAIT 30 PLAY 0,53,20 WAIT 30 PLAY 0,56,40 WAIT 120
LFO WAVE v,[w],[i],[e],[t]
オプションを声対(0-3)のLFO電波ために準備します。 すべてのパラメータは(彼・それ)らの最新の設定値を保持するために省略されることができます。
w | 波 (0-3): 0: 三角形 1: のこぎり歯 2: 正方形 3: ランダム |
i | 反転 (0/1) |
e | env モード動作可能 (0/1) |
t | トリガー動作可能 (0/1) |
LFOがその出力を加えるデフォルトによって標準的な(人たち・もの)はパラメータを奏でます。 もし反転が使用可能であるなら、それは引き算をします。 env 様式を可能にすることによって、1が回った後、LFOは止まります、それでそれはさらにエンベロープ生成プログラムとして使用されることができます。 もしトリガが使用可能であるなら、LFOのリスタートはそれぞれから音を与えました、さもなければそれは連続的に走ります。 トリガは暗黙的に env 様式で使用可能です。
SOUND SOURCE a
メモリアドレス a. に新しいデータソースを再生、ミュージックとトラックコマンドにセットします。 これはただこれらのコマンドへの次のコールに影響を与えるだけです、すでに始動させられたプレイバックがそれ自身のデータをソースにしておきます。 データはサウンドコンポーザーツールの様式であると考えられます。
デフォルトROM・入力によって15がソースとして使われます。
MUSIC(n)
ミュージックを演奏する状態を返します。 あなたが手に入れることを望む情報からnを指定してください:
0 | 現在のパターン |
1 | 現在の横列 |
2 | 現在のティック |
3 | 現在の速度 (0 = 停止) |
DATA 定数リスト
読まれたコマンドによってアクセスされる数の切り離された読点と文字列定数(値以外変数あるいは式がありません)をしまっておきません。 DATAコマンドが実行されなくて、そしてどこ(で・に)でもプログラムに置かれるかもしれません。
コマンドが、プログラムのトップから最下行まで、順にデータにアクセスすると書いてあるのを読んでください。 項目のすべての絶え間がない1がリストするコマンドが読まれるすべてのデータの定数。
READ 変数リスト
DATA コマンドから値を読み取って、そして var - 並びで読点に(彼・それ)らに切り離された変数を割り当てます。 プログラムは新しいデータ値に内部ポインタを持っています。 それぞれの値で読まれて、ポインタは値を次のDATAに動かすでしょう。
FOR I=0 TO 3 READ TYPE$,POWER PRINT TYPE$;":",POWER NEXT I DATA "LASER",10,"BLASTER",15 DATA "PLASMA",20,"FUSION",30
RESTORE [ラベル]
内部読まれたポインタをもう1つのポジションに変えます。 これは再読み取りデータにあるいは選り抜きの特定のデータに許します。 もしラベルパラメータが省略されるなら、相対ピクセル位置選定方式がプログラムのトップから再び始まるでしょう。 さもなければポインタは飛越しラベルに設定されるでしょう。
RESTORE SHIELDS FOR I=0 TO 1 READ TYPE$,POWER PRINT TYPE$;":",POWER NEXT I DATA "LASER",10,"BLASTER",15 SHIELDS: DATA "SIMPLE",30,"ADVANCED",60
LowRes NX はパターン処理、音と入出力装置、カートリッジROM、作業用 RAMと不揮発性 RAM からチップをシミュレートします。 すべてがそうなメモリマップが区分「ハードウェア参照」で記述した64KBでアクセス可能です。
PEEK(a)
メモリアドレス a. にバイト値(0-255)を返します。
TOUCHSCREEN PRINT "TOUCH!" DO IF PEEK($FF75) AND %10 THEN PRINT PEEK($FF72),PEEK($FF73) END IF WAIT VBL LOOP
POKE a,v
メモリをアドレスに設定するvを高く評価すること. vは数値的です、0から255までの式;この有効距離の外の数値式が 8 ビットに取り除かれます。
POKE $9000,232 POKE $9002,233
PEEKW(a)
メモリアドレス a. にツー - バイト値(- 32768から32767まで)を返します。
POKEW a,v
2のためにメモリアドレス a. においての - バイト値を書きます。 vは数値的です、 - 32768から32767までの式;この有効距離の外の数値式が 16 ビットに取り除かれます。
PEEKL(a)
メモリアドレス a. にフォー - バイト値(- 2147483648から2147483647まで)を返します。
POKEL a,v
4のためにメモリアドレス a. においての - バイト値を書きます。 vは数値的です、 - 2147483648から2147483647までの式;この有効距離の外の数値式が32ビットに取り除かれます。
'EXAMPLE USES PERSISTENT RAM HI=PEEKL($E000) PRINT "HIGHSCORE:" PRINT HI INPUT "SCORE:";SC IF SC>HI THEN POKEL $E000,SC PRINT "RESTART!"
COPY a,n TO d
メモリアドレスから始めてnバイトをコピーするdに対処すること. ソースと行先領域は重なり合うかもしれません。
'COPY CHARACTERS FROM ROM 'ENTRY 4 TO VIDEO RAM COPY ROM(4),SIZE(4) TO $8000
FILL a,n[,v]
nバイトをメモリアドレスからスタートさせる値v、あるいは0にもしパラメータが省略されるなら.
ROL a,n
アドレスにおいてバイトをとるそしてnつの場所によって残されたそのビットを回転させます.
ROR a,n
アドレスにおいてバイトをとるそしてnつの場所のそばのそのビット右を交替します.
ROM(n)
ROM・入力nのメモリアドレスを返します。
SIZE(n)
ROM・入力nのバイト数を返します。
ファイルコマンドはデータを最高16のファイルを含むことができる仮想ディスクにストアするために使われることができます。 その様式はプログラム・ファイルでROMエントリ部分と同じです。 これはそのデータをエディットするために直接どんな NX プログラムでも仮想ディスクとして使うことを可能にします。
仮想ディスクはただ、例えば、イメージだけの開発ツールのために使われて、そしてエディタあるいはミュージックプログラムをマップすることを意図されています。 ゲームがその代わりに不揮発性メモリを使うべきです。 標準的な LowRes NX 操作卓がディスク・ドライブを持っていないであろうと想像してください。
LOAD f,a[,n[,o]]
現在の仮想ディスクからアドレスにおいて a. 始めているメモリまでファイル番号fに積み込みます。
オプションとしてパラメータnはロードされるべきである最大バイト数のために使われることができます。 0が極限がないことを意味します。 オプションのパラメータoでファイルでのオフセットが設定されることができます。
読み込みはツールのみのために使われることを意図されています。 ゲームデータからROMエントリを、あるいはゲームステートのために不揮発性メモリを使ってください。
SAVE f,c$,a,n
メモリアドレスにびくっとしてnバイトをセーブする現在の仮想ディスクにファイル番号f(0-15)としてコメントc $ に(31文字まで).
もしこのファイルが前にロードされたなら、そのオリジナルの注釈を保持することを考えてください、あるいはユーザが、貯蓄する前に、それを編集することを可能にしてください。 もしファイルが新しいなら、注釈は少なくともデータ、例えば「文字」あるいは「ミュージック」のタイプを持っているべきです。
Save はツールのみのために使われることを意図されています。 不揮発性メモリをゲームステートをしまっておくために使ってください。
FILES
FILE$ で使用から現行ファイルディレクトリをロードします。
FILE$(f)
ファイルナンバー f の注釈文字列を返します。 前にファイルにアクセスしているファイルをディレクトリと呼んで、からその目次をアップデートするか、あるいはドルが直接後でロードするか、あるいはセーブするファイルを使ってください。
FILES FOR I=0 TO 15 PRINT I,FILE$(I) NEXT I
FSIZE(n)
ファイルナンバーnのバイト数を返します。 ファイルにアクセスする前に、要求がファイルします、その目次をアップデートするか、あるいは直接後で FSIZE を使うディレクトリがロードするか、あるいはセーブします。
PI
PI は円周率です: 3.1415926535...
SIN(x)
x ラジアンにある x の正弦。
COS(x)
x がラジアンにあるxのコサイン。
TAN(x)
x がラジアンにあるxのタンジェント。
ASIN(x)
x が+1に-1の範囲にあるに違いないxの逆サイン。 関数の有効距離は - (円周率 / 2) < = ASin (x) < = (円周率 / 2)です。
ACOS(x)
x が+1に-1の範囲にあるに違いないxのアークコサイン。 関数の有効距離は0の < = ACos (x) < = PIです。
ATAN(x)
ラジアンでのx のアークタンジェント、すなわちそのタンジェントがxである角度。 関数の有効距離は -(PI/2) <= ATAN(x) <= (PI/2) です。
HSIN(x)
x の双曲サイン。
HCOS(x)
x の双曲線コサイン。
HTAN(x)
x の双曲線タンジェント。
ABS(x)
x の絶対値です。
SGN(x)
x の標識:もしx < 0、0であるなら-1もしそしてもしx > 0であるならx = 0と+1。
INT(x)
x より大きくない最も大きい整数;例えばINT(1.3) = 1とINT(- 1.3) = -2。
EXP(x)
x 、すなわちパワーxに引き上げられた自然対数の口金の値(e = 2,71828...)の指数の(人たち・もの)。
LOG(x)
xの自然対数;xゼロであるより大きいに違いありません。
SQR(x)
x の負でない平方根; x は負でないに違いありません。
RND
乱数の並びでの次の数は一様に範囲で0 < = RND < 1を配布しました。
RND(n)
2番目のシンタックスはすべてを含んでいる0とnの間に任意の整数を作ります。
RANDOMIZE x
整数であるべきである乱数から x にシードに値を割り当てます。 1プログラムデフォルトによって前方一致が0を後押しをします、それで乱数の並びは常に同じです。
RANDOMIZE TIMER
もし、あなたがあなたのプログラムを行なうたびに、あなたが異なった乱数を欲するなら、あなたは始めにこのラインを挿入するべきです。
RANDOMIZE TIMER FOR I=1 TO 16 PRINT RND(1000) NEXT I
MIN(x,y)
MIN 関数は2つの表現の最小値を返します。
MAX(x,y)
MAX 関数は2つの表現の最大値を返します。
SWAP var1,var2
同一性のどんな2つの変数でもの間のデータを交換します。
A=10 B=40 SWAP A,B PRINT A PRINT B
INC var
変数の値を1つ増やします。 INC A が A=A+1 と同じものをしますが、より少ない CPUサイクルの費用がかかります。
DEC var
1時までに変数の値を減少させます。 12月のAがA = A-1と同じものをしますが、より少ない CPUサイクルの費用がかかります。
ADD var,x
x がポジティブあるいは論理否定を缶詰めにする変数に値 x 加えます。 Aを加えてください、XがA = A+ Xと同じものをしますが、より少ない CPUサイクルの費用がかかります。
ADD var,x,base TO top
ADDの2番目のシンタックスは繰り返すカウンターに役立ちます。
A=0 DO ADD A,2,0 TO 10 PRINT A LOOP
それは同じであるけれども :
A=0 DO A=A+2 IF A>10 THEN A=0 IF A<0 THEN A=10 PRINT A LOOP
けれども再びADDコマンドはより少ない CPUサイクルの費用がかかります。
LEFT$(s$,n)
最初の n 文字の s$ で新しい文字列を返します。
PRINT LEFT$("LOWRES NX",3)
LEFT$(s$,n)=a$
$ の最初のn文字で変数s $ で先頭文字に上書きします。
A$="FOORES NX" LEFT$(A$,3)="LOWER" PRINT A$
RIGHT$(s$,n)
最後のn文字のs $ で新しい文字列を返します。
RIGHT$(s$,n)=a$$ の最後のn文字で変数s $ で最後の文字に上書きします。
MID$(s$,p,n)
文字にpを始めて、n文字のs $ で新しい文字列を返します。 先頭文字は位置1を持っています。
PRINT MID$("LOWRES NX",4,3)
MID$(s$,p,n)=a$
テキスト範囲で所定の(人たち・もの)に上書きする変数 s$ 最初の n a$ の文字を持っている。
A$="LOWFOO NX" MID$(A$,4,3)="RESTAURANT" PRINT A$
INSTR(d$,s$[,p])
a$ の最初の n キャラクタで変数 s$ で所定のテキストの範囲に上書きします。
PRINT INSTR("LOWRES NX","RES")
CHR$(n)
ASCIIコードnで1文字を含んでいる文字列を返します。
FOR I=32 TO 90 PRINT CHR$(I) NEXT I
ASC(a$)
$ についてあなたに ASCII の先頭文字のコードを与えます。
PRINT ASC("L")
LEN(a$)
$ で文字の番号を返します。
VAL(a$)
書き加えられた数を数値に a$ 変換します。
STR$(n)
ナンバーnを文字列に変換します。
BIN$(n[,len])
少なくとも len 桁でナンバーnを 2進列に変換します。
HEX$(n[,len])
少なくとも len 桁でナンバーnを 16進数字列に変換します。
システムコマンドは仮想コンソールと LowRes NX アプリケーションの間に連結です。
TRACE 式のリスト
デバッギングウィンドウにテキストを出力します。 式はコンマで分割された文字列あるいは番号であり得ます。 もしデバッグモードであるなら、このコマンドはではない使用可能に無視されます。
'デバッグモードで実行 A=13 B$="GO" TRACE "TEST",A,B$
SYSTEM n,v
値にシステムステータスnにvを割り当てます。 現在たった1つの状態が利用可能です:
0 | 省エネモード: 0と異なったvと一緒の有効。 スクリーンがユーザがないときはいつでも非常に低いレートでリフレッシュするこの様式で入力。 それは仮想CPUに影響を与えません、コードは全速力でまだ走ります。 |
LowRes NX は CPUサイクルの単純化された模擬実験を持っています。 フレーム毎に1つのサイクルの固定極限があります。 これは同じプログラムを保証します、実行が、非常にもしあなたが順調に走るためにあなたのデバイスの上にあなたのプログラムを最適化するなら、すべてのデバイスでスピードを出すので、それは同じことを他のすべてのデバイス上で走らせるでしょう。
変数あるいは定数へのアクセスと同様、コマンドのそれぞれの実行、関数あるいは演算子、が1つのサイクルを数えます。 若干の演算が追加料金を持っています:
フレーム毎にサイクルを合計してください | 17556 |
VBL 割り込み毎にサイクル | 1140 |
ラスター割り込み毎にサイクル | 51 |
メインプログラムは限りなく多くのサイクルを使うかもしれません、しかし極限が待機 VBL あるいは待機コマンドの前に達せられるとき、実行は次のフレームで続きます。 もし割り込みが(彼・それ)らの極限を超えるなら、あなたはスクリーンで黒い scanlines を見るでしょう。
$0000 - カートリッジ ROM (32KB) $8000 - キャラクタデータ (4 KB) $9000 - BG0 データ (2 KB) $9800 - BG1 データ (2 KB) $A000 - ワーキング RAM (16 KB) $E000 - 不揮発性 RAM (4 KB) $FE00 - スプライトレジスタ (256 B) $FF00 - カラーレジスタ (32 B) $FF20 - ビデオレジスタ $FF40 - オーディオレジスタ $FF70 - I/O レジスタ
1文字はピクセル毎に2ビットで、16バイトの結果として生じている大きさを持って 8x8 - ピクセルイメージです。 読み書き可能メモリが256文字に行送りを持っているビデオ。
最初の8バイトの1文字はすべてのピクセルの上位ビットを含んでいるそのすべてのピクセル、そしてその後に、もう8バイトの下位ビットを含みます。
背景は 32x32 文字セルの写像です。 それぞれの領域が2バイトを占拠します:
- キャラクタ番号 - 属性: ビット 用途 0-2 パレット番号 3 X 方向の反転 4 Y 方向の反転 5 優先度 6-7 未使用
蓄電池がゲームカートリッジの上に読み書き可能メモリを和らげた(とき・から・につれて・ように)、それを想像してください。 ゲームポジションのようなデータあるいは高いスコアテーブルのためにそれを使ってください。 あなたがプログラムを終了するとき、不揮発性 RAM の目次は自動的にセーブされて、そして、あなたがそれを走らせるとき、ロードされるでしょう。 それぞれのプログラムが別にその不揮発性 RAM をセーブします。
利用可能な64のスプライトがあります、それぞれが4バイトを占拠します:
- Xポジション- Yの位置- 文字数- 属性: ビット目的 0-2 パレット番号 3 反転 X 4 反転 Y 5 優先順位 6-7 サイズ: 0: 1文字(8x8 px) 1: 2x2 キャラクタ(16x16 px) 2: 3x3 キャラクタ(24x24 px) 3: 4x4 キャラクタ(32x32 px)
メモ:XとYスプライト座席レジスタが32のオフセットを持っています、それで(彼・それ)らは負数を使わないでトップ / 左スクリーン境界から引っ越すことができます。 BASIC コマンドを使って、このオフセットは便利さから取り去られます。
それぞれ4つの色の8つのパレットがあります。 1つのカラーが1バイトです:
ビットコンポーネント0-1 青い2-3 緑の4-5 赤
$FF20 - 属性: ビット目的 0 可能にされたスプライト 1 BG0 動作可能 2 BG1 動作可能 3 BG0 セルの大きさ、 4 BG1 セルの大きさ: 0: 1文字(8x8 px) (BG 256x256 px) 1: 2x2 キャラクタ(16x16 px) (BG 512x512 px) $FF 21 - BG0 スクロールがXを埋め合わせました $FF 22 - BG0 スクロールがYを埋め合わせました $FF 23 - BG1 スクロールがXを埋め合わせました $FF 24 - BG1 スクロールがYを埋め合わせました $FF 25 - スクロールが大きいセルの大きさのみのために使われる最大有効ビット(たいていの有効ビット)を埋め合わせました: ビット 用途 0 背景 0 X+256 1 背景 0 Y+256 2 背景 1 X+256 3 背景 1 Y+256 $FF26 - ラスターライン
4つの声から記録があります:
$FF 40 - 声0 $FF 4C - 声1 $FF 58 - 声2 $FF 64 - 声3
それぞれの声が12バイトを占拠します:
- 周波数下位バイト- 周波数上位バイト- 0-3の第4巻が 人と交わる状況:ビット目的が5に 正しい6に イニット7 ゲートを混ぜさせました- (リードオンリーの)ピークの度数計- 属性:ビット目的0-3のパルス幅4-5の波:0:ぎざぎざの1:三角波2:3を振動させてください:ノイズ6 タイムアウト動作可能- 長さ(タイムアウト)- エンベロープバイト1:4-7が腐敗させる0-3が攻撃するビット目的- エンベロープバイト2:0-3のサステイン4-7がリリースするビット目的- LFO属性:ビット目的0-1の波:0:三角波1:ぎざぎざの2:3を自乗してください:ランダム2 反転3 Env 様式動作可能4 トリガ動作可能- LFO設定値バイト1:0-3のLFOが4-7周波数の量と評価するビット目的- LFO設定値バイト2:ビット目的の0-3巻の量4-7パルスである幅の量- 予約済み
メモ:、周波数、が16ビットの値である:f = ヘルツ * 16
$FF 70 - ゲームパッド0状態 $FF 71 - ゲームパッド1状態 ゲームパッド状態: ビット目的 0 上へ 1 ダウン 2 左 3 右 4 ボタン A 5 ボタン B $FF 72 - 最後のタッチXポジション $FF 73 - 最後のタッチYの位置 $FF 74 - 最後の報道された重要な(アスキーコード) $FF 75 - 状況: ビット目的 0 一時停止ボタン 1 タッチ $FF 76 - 属性: ビット目的 可能にされた0-1のゲームパッド: 0: 離れて 1: 1人のプレーヤー 2: 2人のプレーヤー 2 キーボード動作可能 3 タッチスクリーン動作可能
これは再生、ミュージックとトラックコマンドのために使われる様式です。 それはただサウンドプリセットだけをしまっておくために正当です、ない場合ミュージックあるいはトラックコマンドがこのデータで使われます。 もし(どれ・何・誰)かが追跡するならで利用可能です、すべてのパターンはしまっておかれなくてはなりません。 1がしまっておかれるために必要としない使われた最後の後にトラックを空にしてください。
オフセット - 内容0 - 16 音が128をあらかじめセットします - 384 - 64が追跡する64のパターン
あらかじめセットされたそれぞれの音が8バイトを占拠して、そして異口同音の、しかし最初なしで4バイトにオーディオレジスタの様式と一致します。
それぞれのパターンが4バイトを占めます:
- 0を声に出してください:ビット目的0-6がインデックス(64 = 声 unused)7 フラグを付けるループスタートを追跡します- 1を声に出してください: ビット目的 0-6がインデックスを追跡します (64 = 声未使用です) 7 フラグを付けるループの終わり- 2を声に出してください: ビット目的 0-6がインデックスを追跡します (64 = 声未使用です) 7 フラグを付ける曲停止- 3を声に出してください: ビット目的 0-6がインデックスを追跡します (64 = 声未使用です)
それぞれのトラックが96バイトを占拠して、そして32によって成立するそれぞれの3バイトを持っているエントリ:
- ピッチ(0 = 空き)を指摘してください- (もし注釈が0であるなら、無視された)データ: ビット目的 0-3巻 4-7 音- 制御: ビット目的 0-3 パラメータ 4-7 コマンド
これらのコマンド、関数とシンタックスはもう使われるべきでなくて、そして未来のバージョンで削除されるかもしれません。
SPRITE.A n、(pal 、 fx 、 fy 、 pri 、s)
その代わりにスプライト(新しいシンタックス)あるいは SPRITE.A (一つの値のみ)を使ってください。
ATTR (pal 、 fx 、 fy 、 pri 、s)[ m ]
ATTR 、 m
その代わりにPAL、反転、PRIOあるいは ATTR (一つの値のみ)を使ってください。 色合いと BG 色合いを属性マスクに取って代わるために使ってください。
DISPLAY (s,b0,b1,c0,c1)
DISPLAY aBG VIEW ON / OFF を使ってください、スプライトがその代わりに / で OFF とセルの大きさを見ます。
DISPLAYその代わりに PEEK($FF 20) を使ってください。
LFO.A v,(w,r,e,t)その代わりにLFO波を使ってください。
次のことは LowRes NX BASIC で使われる予約語の並びです。 もしあなたがこれらの単語を変数名、シンタックスとして使用するなら、エラーが生み出されるでしょう。
星印のマークが付いたキーワードが持っています、まだ、ただ 関数が未来のバージョンに限られません。
ABS, ACOS, ADD, AND, ANIM*, ASC, ASIN, ATAN, ATTR, BG, BIN$, BUTTON, CALL, CELL, CELL.A, CELL.C, CHAR, CHR$, CLOSE*, CLS, CLW, COLOR, COPY, COS, DATA, DEC, DECLARE*, DEF*, DIM, DISPLAY, DO, DOWN, ELSE, END, ENVELOPE, EXIT, EXP, FILE$, FILES, FILL, FLASH*, FLIP, FN*, FONT, FOR, FSIZE, FUNCTION*, GAMEPAD, GLOBAL, GOSUB, GOTO, HCOS, HEX$, HIT, HSIN, HTAN, IF, INC, INKEY$, INPUT, INSTR, INT, KEYBOARD, LBOUND*, LEFT$, LEFT, LEN, LET, LFO, LFO.A, LOAD, LOCATE, LOG, LOOP, MAX, MCELL, MCELL.A, MCELL.C, MID$, MIN, MOD, MUSIC, NEXT, NOT, NUMBER, OFF, ON, OPEN*, OPTIONAL, OR, OUTPUT*, PAL, PALETTE, PAUSE, PEEK, PEEKL, PEEKW, PI, PLAY, POKE, POKEL, POKEW, PRINT, PRIO, RANDOMIZE, RASTER, READ, REM, REPEAT, RESTORE, RETURN, RIGHT$, RIGHT, RND, ROL, ROM, ROR, SAVE, SCROLL, SCROLL.X, SCROLL.Y, SGN, SHARED*, SIN, SIZE, SOUND, SOURCE, SPRITE, SPRITE.A, SPRITE.C, SPRITE.X, SPRITE.Y, SQR, STATIC*, STEP, STOP, STR$, SUB, SWAP, SYSTEM, TAN, TAP, TEMPO*, TEXT, THEN, TIMER, TINT, TO, TOUCH, TOUCH.X, TOUCH.Y, TOUCHSCREEN, TRACE, TRACK, UBOUND, UNTIL, UP, VAL, VBL, VIEW, VOICE*, VOLUME, WAIT, WAVE, WEND, WHILE, WINDOW, WRITE*, XOR