紹介

BASIC でレトロゲームをプログラム

仮想ゲーム機のあなた自身のレトロなゲームを作ってください。古典主義の 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 を主演させます

「私のプログラム」の上にソースを開く1プログラムスクリーン選択が編集プログラムをコードします。 それならそれを行なうために再生ボタンを軽くたたいてください。
フォルダ「プログラム」に例を見いだしてください。 LowRes NX アプリケーションを開いて、そしてそのウィンドウの中にどんな .nx ファイルでもドラッグ・アンド・ドロップしてください。 あなたは .nx ファイルから同じく LowRes NX をデフォルトアプリケーションとして選ぶことができます、それでプログラムがただ、(彼・それ)らをダブルクリックすることによって、始動させられることができます。

あなたが十分にプレーした途端に、あなたはあなたの最初の自身のプログラムを作ることができます。

「私のプログラム」スクリーンの上に、新しいプログラムを作るためにプラスボタンを軽くたたいてください。 それをソース・コード・エディタを開くよう選んでください。
どんなテキストエディタでも新しいファイルを作成するために使ってください。 Windows の上に、テキストエディタが Mac/Linux 行の終わりをサポートすることを確認してください。 さもなければあなたは1つの行のすべてを見てもよいです。

これらのラインをタイプしてください:

PRINT "WELCOME!"
PRINT "WHAT IS YOUR NAME?"
INPUT ">";N$
PRINT "HELLO ";N$;"!"
実用的な名前と拡張子 ".nx" であなたのプログラムファイルをセーブしてください。

今あなたのプログラムを行なってください。 こちらはキーボードを使っている小さい例です。 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 デザイナー」を選択してください。

あなたのプログラムを開いて、ツールボタンを利用し始めて、そしてツールを選択してください。
あなたのプログラムを走らせて、そして開発メニューを入力するためにエスケープキーを押してください。 それから編集点(ED)ボタンを押して、そしてツールを選択してください。 デフォルト、ツール、によってメニューは空です、それでウィンドウの中にプログラム「Gfx デザイナー」と「Sound Designer」をドラッグ、そしてドロップしてください。

文字 # 1として何かを引いてください(# 0を空に保ってください)、それから「ファイル」を軽くたたいて、そして2(「主人公」)をファイルとして保存してください。 今コード編集プログラムをソースに返してください、そうすればあなたはあなたのプログラムの下に若干の 16進データを見るでしょう。 これはあなたのイメージです! それを見るために、ラインを変えてください

SPRITE 0,X,Y,225

そうするために

SPRITE 0,X,Y,1

そしてあなたのプログラムを行なってください。 そこ(に・で)それはそうです!

あなたの現行プログラムを再ロードして、そして走らせるために LowRes NX アプリケーションで Ctrl + Rを押してください。 デベロッパーメニューでの実行ボタンは同じことをします。

ツールが自動的にセーブしないということを念頭においてください、それで決して、あなたが(彼・それ)らを終了する前に、貯蓄することを忘れないでください。

標準 ROM エントリ

容易な始めからあなたは次の表のROM・入力番号を使うべきです。 (彼・それ)らのデータは自動的に使用のために準備ができていさせられます。

#0デフォルトフォントから空の状態を保ってください
#1カラーパレット
#2キャラクタ (スプライト、タイル)
#3背景 (タイルマップ)
#15サウンドとミュージック

もしではないがプログラムによって使ったカートリッジROM・入力0であるなら、コンパイラはデフォルトフォントからキャラクタデータを加えます。 それは文字192-255を占拠して、そして自動的にビデオ RAM にプログラムスタートのコピーを送られます。 もしあなたがデフォルトフォントを使うことを望むなら、ROM・入力0を使われていないようにしておくことを確実にしてください。

Gfx デザイナー

Gfx デザイナーを文字(スプライト、タイル、フォント)を描いて、バックグラウンド(タイルマップ、スクリーンレイアウト)を設計して、そしてカラー・パレットをエディットするために使ってください。

右下の上にプログラムの異なったセクションから3タブがあります:文字エディタ、パレット編集プログラムと背景編集プログラム。 あなたは、 LowRes NX を計算機上で走らせるとき、(彼・それ)らを切り替えるために、2と3で keys 1を使うことができます。

Gfx デザイナーはメインパレット(ファイル1)、文字(ファイル2)、をロードする、そして起動で(ファイル3)をバックグラウンド処理してください、しかしそれが自動的にセーブしないということを念頭においてください。

文字エディタ

一番下の地域であなたは256文字が4ページに分けられるのを見ます。 そこ(に・で)あなたは編集から現在の(の・もの・人)を選択することができます。 もしあなたがデフォルトフォントを使うことを望むなら、最後のページ空きを引き留めてください。 同じく文字 # 0はクリーンな背景から空であるべきです。

最新の文字を描くことに対して、左上平方は選択されたカラーを使っています。

FILE文字ファイルにメニューに行ってください。
MOV最新の文字のピクセルを動かしてください。
16*1616x16 - ピクセル編集スクリーンのところまで行ってください。
FLIP水平に、あるいは垂直に最新の文字をひっくり返してください。
SPIN最新の文字を回転させてください。
CLR選択されたカラーで最新の文字をクリアしてください。
CUT最新の文字をコピーして、そしてクリアしてください。
COP現在の文字をコピーしてください。
PASコピー済キャラクタを貼ってください。
SEL選択肢のサイズの変化。

選択肢の大きさはこのスクリーンの上に、バックグラウンドで編集プログラムを描くことに加えてすべての編集ツールに影響を与えます。

パレットエディタ

一番下の部分は文字エディタとまったく同じです。

囲み線で左側にあなたは現在のカラー・パレットを選択します。

あなたが編集することができる右の上に赤緑青引戸を使っているカレントパレットのそれぞれのカラー。 最初のカラーは通常透明で、そして、パレット0の最初のカラー以外、使われていません、そしてそれはスクリーン背景カラーのために使用されます。

ファイルパレットファイルにメニューに行ってください。

背景エディタ

ここであなたは現在選択される文字とカラー・パレットを使って他のスクリーンの上にあなたの背景を描きます。

FILE背景ファイルのメニューへ移動します。
Pan目に見える写像エリアをドラッグしてください。
Draw現行モードで絵を描いてください。
Erase(彼・それ)らの属性を含めてセルを消去してください。
FLIPX / 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) をロードします、しかしそれが自動的にセーブしないということを念頭においてください。サウンドファイルがすべてのサウンドとミュージックデータを含みます。

構造

16 サウンド

音はすべての利用可能なサウンドパラメータ(波形、エンベロープ、LFO、など)を持っている事前設定です。 それは直接再生コマンドと共にあなたのプログラムあるいは測定器としてトラック / 曲で使われることができます。

64 トラック

トラックは一つの声から32ステップの並びです、そしてそこでそれぞれの階段が注釈を演ずるか、あるいは音を変化させることができます。 それはトラックコマンドと共にあなたのプログラムで複合音効果と短いメロディー(例えば "level up")のために使われることができます。 トラックが曲を作り出すために同じく使われます。

64 パターン

パターンはミュージックのブロックです、そしてそれは4つの声のそれぞれでどのトラックがプレーされるべきであるか定義します。 パターンが、次のケースから以外、次々に演奏されるでしょう:もし次のパターンが空であるなら、曲は止められます。 現在のパターンが終わって、そして「ループの終わり」が衰えるようにするとき、プレーヤーは「ループスタート」フラグで前のパターンに戻ってジャンプします。 パターンが終わって、そして「止まってください」フラグを持っているとき、プレーヤーはストップします。
もしあなたがゲームからミュージックを作り出すことを望み、そしてあなたが追加のサウンドエフェクトを使うことを計画するなら、あなたは少なくとも1つの声を空のままにしておくべきです。

64 パターンは1つの長い曲あるいはいくつかのより短い(の・もの・人)のために使われ得ます。 「ループしてください」、そして「止まってください」フラグを使うことによって、曲が切り離されることができます。 から再生の1に特定された曲、ただその最初のパターンにびくっとしてください。 あなたのプログラムで曲を演奏するために、ミュージックコマンドを使ってください。

エディタ

サウンドコンポーザーは異なったセクションから右上隅で3タブを持ちます:パターン編集プログラム、トラック編集プログラムとサウンド編集プログラム。 これは頭のてっぺんから足の先まで、左から右にではなく、予定表が行くことを意味する「追跡者」式のプログラムです。 それでトラックでのステップは同じく口論と呼ばれます。 たいていの値が範囲で0から15まで 16進形式で見せられます(0F)。

LowRes NX を計算機上で走らせるとき、若干のキーボードサポートがあります:矢印キーはカーソルを動かします、そしてキーの並びはメモを入力するために2つのオクターブでミュージックのキーボードをシミュレートします。 リターンキーは注釈停止に入ります、後退が現在の注釈をデリートします、そして行送りが再生の間を行ったり来たりします(パターン / トラック)、そして止まってください。

パターンエディタ

ここであなたはパターンを選択して、そのトラックをすべての声のために選んで、そして直接それぞれの選択されたトラックのメモを編集することができます。 「ループを作ってください」、そして「止まってください」旗から現在のパターンから、同じくトグル・ボタンがあります。 もしあなたがトラックなしで声でメモを設定するなら、それは自動的に無料のトラックを選択します。 もしあなたがトラックで注釈を止めて / 発表することを望むなら、ミュージックのキーボードから、スター記号を使ってください。

トラックエディタ

ここであなたは追加のパラメータで単一トラックを選択して、そして編集することができます:

音量
音コマンド
パラメータ

音エディタ

ここであなたのサウンドを定義して、そしてテストしてください。現在選択されたサウンドは他のエディタで新しい音符のために使われるでしょう。

音コマンド

これらのコマンドはあなたに、プレイバックである間に、動的にパラメータを変えることを許します。 トラック編集プログラムで(彼・それ)らを使ってください。

目的
コマンドはなしです
混ざってください(1 = 左、2 = 右、3歳 = 中心 / 両方とも)
動作開始時間
消滅時間
サステインレベル
リリースタイム
LFOレート
LFO周波数量
LFO音量量
LFOパルス幅量
幅を振動させてください
(E、わずか+16のような)遅い速度
スピードを出します(デフォルトで穿孔段、8歳毎にカチカチいいます)
トラック / パターンを壊してください
注意 / ボリューム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

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

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)
NOT 0
"否定"
AND A=1 AND B=12
170 AND 15
"And"
OR X=10 OR Y=0
128 OR 2
"論理和"
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 注釈文
' 注釈文

あなたにあなたのプログラムにコメントを注ぐことを許します。 注釈文ラインが制作されません。 あなたはアポストロフィを使うことができる(「)単語注釈文の代わりに.

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

GOTO ラベル

所定のラベルでジャンプして、そしてそこ(に・で)プログラム実行を続けます。

PRINT "START"
GOTO GAMELEVEL

GAMEOVER:
PRINT "GAME OVER"
END

GAMELEVEL:
PRINT "PLAYING"
GOTO GAMEOVER

GOSUB

GOSUB label

スタックに現行プログラムの見解を加えて、そして所定のラベルに飛びつきます。 ラベルの後のプログラムは副ルーチンと呼ばれて、そして戻るを使って終了しているに違いありません。

FOR I=1 TO 5
  GOSUB SHOWNUMBER
NEXT I
END

SHOWNUMBER:
PRINT "NUMBER",I
RETURN

メモ:サブルーチンが主として歴史上の理由から存在します。 あなたはいっそう強力な、そしてより安全なサブプログラムの方を好むべきです。

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

END

どんなポジションからでもプログラムを止めます。 プログラムはコードの最後のラインの後に自動的に同じく止められます。

PRINT "THIS HAPPENS"
END
PRINT "THIS DOESN'T"

WAIT VBL

WAIT VBL

次のフレームを待ちます。 これ (あるいは WAIT n) はアニメーションをして、そして/あるいはメインゲームのように、入力を処理するループがループにするすべてで最後のコマンドであるべきです。

DO
  PAL RND(3)
  TEXT RND(19),RND(15),"*"
  WAIT VBL
LOOP

WAIT

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...NEXT

FOR var=a TO b [STEP s]
  コマンド
NEXT 変数

1つの所定の回数1つのループで一連のコマンドを行ないます。 FOR コマンドは、 a. を値で始めて、変数 var を計数器として使います。 すべてのコマンドは、次になるまで、実行されます、それで計数器は(あるいはもし製品モデルデータ交換標準がそうであるなら省略された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

DO
  コマンド
LOOP

無限ループでコマンドを行ないます。 あなたは GoTo を使うか、あるいはそれを置き残すために終了することができます。

DO
  PAL RND(3)
  PRINT "FOREVER"
LOOP

REPEAT...UNTIL

REPEAT
  コマンド
UNTIL 式

所定の式が真 (true) になるまで、ループ (繰り返し) でコマンドを実行します。 ループは少なくとも一度実行されます。

REPEAT
  A=RND(9)
  PRINT A
UNTIL A=0

WHILE...WEND

WHILE 式
  コマンド
WEND

所定の式が本当である限り、ループでコマンドを実行します。

A=4
WHILE A<10
  PRINT A
  A=A+1
WEND

EXIT

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

SUB 名前 [(パラメータリスト)]
  コマンド
END SUB

名を持ったサブプログラムを定義します。 オプションのパラメータ並びの容器はエントリの2つの型を含みます:単純変数と配列変数(、そしてそれに続いて空しい小括弧ペアー)。 エントリはコンマで分割されています。 内部にすべて変数的なデフォルトによってサブプログラムは局部的です。

注意: GOTO あるいは GOSUB をサブプログラムからジャンプするために使わないでください!

CALL

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

EXIT SUB

END SUB が到達される前にサブプログラムを終了します。

GLOBAL

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 式のリスト

現行ウィンドウにテキストを出力します。 式はコンマあるいはセミコロンで分割された文字列あるいは番号であり得ます。 読点が行送りと一緒の出力を切り離します、セミコロンが行送りがないアウトプットを切り離します。 カーソルを出力の終わりに保つために読点あるいはセミコロンで並びを終わらせてください、さもなければ復帰改行が始められます。

PRINT "HELLO WORLD"
PRINT 42
PRINT 1+3
PRINT "SCORE:",100
PRINT "ONE ";
PRINT "LINE"

INPUT

INPUT ["プロンプト";]変数

ユーザにキーボードにテキストあるいは数を入力させて、そしてそれを変数 var にしまっておきます。 オプションとしてそれは前に迅速なテキストを示すことができる(変数であるはずがありません)。

入力が自動的にキーボードを可能にします。

INPUT "NAME:";N$
INPUT "AGE:";AGE
PRINT "HELLO ";N$;"!"
PRINT "SOON YOU ARE ";AGE+1

LOCATE

LOCATE cx,cy

現行ウィンドウと比較してテキスト・カーソルを印字位置 cx と穿孔段 cy に動かします。

LOCATE 2,4
PRINT "HELLO"

=CURSOR.X/Y

CURSOR.X
CURSOR.Y

現在の印字位置(X)を返しますあるいはボートをこいでください(Y) テキストカーソル相対について現在にウィンドウ。

WINDOW

WINDOW cx,cy,w,h,b

サイズ縦列と横列に領域ポジション cx 、 cy とセットに出力されたテキストにウィンドウを割り当てます。 テキストが背景b(0あるいは1)に書かれるでしょう。

WINDOW 6,4,8,4,0
PRINT "LONG TEXT IN A SMALL WINDOW"

CLW

CLW 

スペースでウィンドウをクリアして、そしてテキスト・カーソルポジションをリセットします。

PRINT "HELLO"
CLW
PRINT "BYE"

ユーザ入力

ゲームパッド

GAMEPAD

GAMEPAD n

n人の(1 または 2)プレーヤーから gamepads を可能にします。 gamepad が使用可能である途端に、プログラムはもう入力をタッチスクリーン / マウスに変えることができません。

=UP/DOWN/LEFT/RIGHT

UP(p)
DOWN(p)
LEFT(p)
RIGHT(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

BUTTON(p[,n])

もしボタンA(n = 0)なら、真を返しますあるいはB(n = 1)が現在プレーヤー(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/OFF

PAUSE ON
PAUSE OFF
離れて一時停止に中断してください

自動ポーズ操作を可能にするか、あるいは停止させます。 それが可能にしたデフォルトによって、それでもしあなたが休止ボタンを押すなら、ボタンが再び押されるまで、プログラムストップとショーはスクリーンの上に「中断します」。

PAUSE

PAUSE

プログラムを中断して、そして、たとえ自動ポーズ操作が使用不能であるとしても、デフォルト「一時停止」スクリーンを見せます。

=PAUSE

PAUSE

もし休止ボタンがプレスされていて、さもなければ偽であったなら、真を返します。 この関数を呼び出した後で、その値はクリアされます、それでそれはただ1度だけそれぞれのボタンタップを返します。 自動ポーズ操作はこの関数から障害を持っている必要があります。

GAMEPAD 1
PAUSE OFF
DO
  IF PAUSE THEN PRINT "PAUSE PRESSED"
  WAIT VBL
LOOP

タッチスクリーン / マウス

あなたがそれが同じく計算機マウスと一緒によく機能するであろうと思う場合に限り、タッチスクリーンサポートを使ってください。 もしあなたがあなた自身のゲームボタンを作ることを望んで、それがそうしないであろうから、あなたのゲームが計算機の上に手が出せないかもしれないということを念頭におくならサポート、キーボード、あるいは本当の gamepad 。 常に標準的な gamepad 関数を使うことを考えてください。

TOUCHSCREEN

TOUCHSCREEN

タッチスクリーン / マウスサポートを可能にします。 それが使用可能である途端に、プログラムはもう gamepad 入力に変わることができません。

=TOUCH.X/Y

TOUCH.X
TOUCH.Y

ユーザがスクリーンに触れる、あるいはそれが最後のとき感動した現在のXあるいはYピクセルポジションを返します。

=TOUCH

TOUCH

もしスクリーンが現在触れられるなら、真を返します。

TOUCHSCREEN
DO
  IF TOUCH THEN PRINT TOUCH.X,TOUCH.Y
  WAIT VBL
LOOP

=TAP

TAP

もしスクリーンが現在感動して、そして触れられた最後のフレームではなかったなら、真を返します。

TOUCHSCREEN
DO
  IF TAP THEN PRINT TOUCH.X,TOUCH.Y
  WAIT VBL
LOOP

キーボード

KEYBOARD ON/OFF/OPTIONAL

KEYBOARD ON
KEYBOARD OFF

キーボードを可能にするか、あるいは使えなくします。 キーボードが使用可能である間に、 gamepads が機能しません。

KEYBOARD OPTIONAL

キーボードを可能にします、しかしタッチスクリーンデバイスの上にスクリーン上のキーボードを 見せないでしょう。 この様式を使っているプログラムは gamepad あるいは接触制御と共に完全に有用 であって、そして代わりの入力のみのためにキーボードを使うべきです。

=INKEY$

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

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

SPRITE.A n,a

スプライトn(0-63)のすべての属性を一つの8ビットの値として設定します。 もっと多くの情報のために「スプライトレジスタ」を見てください。

それがより容易なメモ:がスプライトコマンドのこれらの属性シンタックスを持っている値を設定しました。

SPRITE OFF

SPRITE OFF [n]
SPRITE OFF a TO b

1つ以上のスプライトを隠します。 もしすべてのパラメータが省略されるなら、すべてのスプライト(0 - 63)は隠されます。 1つのパラメータでただ所定のスプライトだけが隠されます。 オプションが範囲でスプライトを隠すはずである最後 b. に.

=SPRITE.X/Y

SPRITE.X(n)
SPRITE.Y(n)

スプライトnのポジションを返してください。

=SPRITE.C

SPRITE.C(n)

スプライトnの文字を返します。

=SPRITE.A

SPRITE.A(n)

8ビットの値としてスプライトnの属性を返します。 もっと多くの情報のために「スプライトレジスタ」を見てください。

=SPRITE HIT

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

HIT

打たれたスプライトの最後の要求のスプライトに衝突したスプライトの番号を返します。

背景

背景はテキストとタイルベースのマップあるいはイメージのために使われる 32x32 文字セルの写像です。 それぞれの領域がそれがどの文字を含んでいるかの情報と追加の属性(カラー・パレット、FLIPX / Y、優先度)を持ちます。

1文字が 8x8 ピクセルの大きさを持つ(とき・から・につれて・ように)、結果として生じている背景大きさは 256x256 ピクセルです、そしてそれは実際のスクリーン(160x128)より大きいです。 背景のスクロールオフセットを変更することによって、目に見えるエリアは感動し得ます。

もし目に見えるエリアが背景の境界から引っ越すなら、ディスプレイは小口の周りを囲みます。 これは果てしないスクロールを達成するために使われることができます。

16x16 - ピクセルセルから様式があります。 活動的であるとき、それぞれの領域が大きいスプライトに類似している 2x2 キャラクタを上演するでしょう。 この様式は同じく背景大きさを 512x512 ピクセルに増やします。 セルの大きさコマンドをそれを可能にするために使ってください。

バックグラウンドにアクセスするコマンドと関数の大部分から(彼・それ)らの領域共同縦軸は背景大きさ(32x32)の外にあり得ます。 (彼・それ)らは小口の周りを巻くでしょう、それで例えば34、-2が実際に現われるであろうポジションで引き出された1文字が2,30を置きます。

CLS

CLS

文字0とリセット、現在、で両方の背景のためにデフォルトの(の・もの・人)へのウィンドウを片付けます。

CLS b

クリアが文字0でbをバックグラウンド処理します。

PAL

PAL p

領域とテキストコマンドからパレット数(0-7)属性を設定します。

PRINT "HELLO"
PAL 1
PRINT "LOWRES NX!"

FLIP

FLIP fx,fy

水平な(fx)から値(0あるいは1)を、そして領域とテキストコマンドから縦の(fy)フリップ属性をセットします。

PRINT "LOWRES NX"
FLIP 0,1
PRINT "LOWRES NX"
FLIP 1,0
PRINT "XN SERWOL"

PRIO

PRIO p

領域とテキストコマンドから優先度(0あるいは1)属性を設定します。

ATTR

ATTR a

領域とテキストコマンドからすべての属性を一つの8ビットの値として設定します。 もっと多くの情報のために「BG データ」を見てください。

注意:FLIPコマンドPALPRIOを使うことはより容易です。

BG

BG n

現在の背景(0あるいは1)を領域とテキストコマンドにセットします。

CELL

CELL cx,cy,c

ポジションで領域に cx 、現在の属性を使っている文字への現在の背景の cy を割り当てます。

PAL 2
CELL 1,1,225
CELL 2,1,226
PAL 1
CELL 3,1,227

=CELL.C

CELL.C(cx,cy)

ポジション cx 、現在の背景の cy において領域の文字を返します。

=CELL.A

CELL.A(cx,cy)

cx 、8ビットとしての現在の背景の cy が高く評価するポジションで領域の属性を返します。 もっと多くの情報のために「BG データ」を見てください。

BG FILL

BG FILL cx1,cy1 TO cx2,cy2 CHAR c

cx1 、 cy1 から cx2 、現在の背景の cy2 から現在の属性を使った文字までその区域のすべてのセルをセットします。

PAL 2
BG FILL 2,2 TO 17,13 CHAR 225
PAL 1
BG FILL 10,8 TO 17,13 CHAR 226

TINT

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

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

BG SOURCE a[,w,h]

BG COPY コマンドから現在にソースを割り当てます。 2次元の(人たち・もの)がメモリアドレスにおいて始めを地図に表わす a, has の幅とセルの高度.

大きさパラメータなしで、 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

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

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/A

MCELL.C(cx,cy)
MCELL.A(cx,cy)

CELL.C と CELL.A 関数のように働いてください、しかし現在の背景の代わりにソース写像(BG ソース)から領域を手に入れてください。 もし共同縦軸が写像上下限の外にあるなら、関数は-1を返します。

MCELL

MCELL cx,cy,c

セルコマンドのように働きますが、現在の背景の代わりに領域をソース写像(BG ソース)で達成します。 ソースは作業用 RAMにあるに違いありません、さもなければあなたは「非合法のメモリアクセス」エラーを得るでしょう。

TEXT

TEXT cx,cy,s$

現在の属性を使って cy にドルから現在が、 cx に、領域ポジションでバックグラウンド処理する文字列sを出力します。

PAL 3
TEXT 15,15,"HELLO"

NUMBER

NUMBER cx,cy,n,d

領域ポジション cx 、現在の属性を使った cy において現在の背景にナンバーnを出力します。 数は常に桁を見せるために方式を決められます。 それが数を文字列に変換する必要がない(とき・から・につれて・ように)、このコマンドは TEXT に関して数を示すのをより好まれます。

NUMBER 15,0,321,5

FONT

FONT c

テキスト出力のために使われる現在の文字の範囲を達成します。 c はフォントが始まる文字(スペース)です。

もし利用可能であるなら、省略時値は、標準フォントを指し示す192です。

SCROLL

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/Y

SCROLL.X(b)
SCROLL.Y(b)

背景 b のスクロールオフセットを返します。

ディスプレイ設定

SPRITE VIEW ON/OFF

SPRITE VIEW ON
SPRITE VIEW OFF

スプライトの設定値のいずれも変えないで完全なスプライトレイヤを見せるか、あるいは隠します。

BG VIEW ON/OFF

BG VIEW ON n
BG VIEW OFF n

ショーあるいは皮がn(0あるいは1)をバックグラウンド処理します。

CELL SIZE

CELL SIZE b,s

セルの大きさを背景 b(0あるいは1)ために準備します、s があり得るところ:

0 1文字(8x8 ピクセル)
1 2x2 キャラクタ(16x16 ピクセル)

PALETTE

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

COLOR(p,n)

パレット(0-7)からカラーn(0-3)の値を返します。 あなたはこのような赤い、緑の、そして青い値を手に入れることができます:

赤 = INT(緑 / 16)
緑 = INT(緑 / 4) MOD 4
青 = 緑 MOD 4

ON RASTER CALL/OFF

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

RASTER

現在の画面行(y位置)を返します。 ラスターサブプログラムでこれを使ってください。

ON VBL CALL/OFF

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

TIMER

LowRes NX が始められたときから、示されたフレーム毎の番号を返します。 5184000が達せられるとき、値は0にラップされます、そしてそれはおよそ24時間です。

サウンド

LowRes NX は独立 4 チャンネルのサウンドジェネレータ (ボイス) があります。 それぞれがのこぎり歯、三角形、パルスとノイズ波形、をプレーすることができて、そして周波数、音量とパルス幅設定値を持っています。 さらにエンベロープ生成プログラムとLFOが声毎に複合音と道具を可能にします。

サウンドコンポーザー (または互換プログラム) のツールでミュージック、トラックとサウンドプリセットを作成できます。

MUSIC

MUSIC [p]

パターンにおいて曲のプレイバックを始めます。 もしパラメータpが除かれるなら、それはパターン0で始まります。

TRACK

TRACK n,v

演劇がかつて声vの上にnを追跡します。 それぞれの発言が独立してトラックをプレーすることができます、それで、ミュージックが演奏されている間にさえ、これはサウンドエフェクトのために使われることができます。

PLAY

PLAY v,p[,len] [SOUND s]

サウンドをボイス v で演奏します。 p は音調です。

音符音調 (オクターブ別)
C113253749617385
C#214263850627486
D315273951637587
D#416284052647688
E517294153657789
F618304254667890
F#719314355677991
G820324456688092
G#921334557698193
A1022344658708294
A#1123354759718395
B1224364860728496

オプションのパラメータ 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

STOP [v]

に関して最新の音とトラックを止めます。 もしパラメータが省略されるなら、すべての声、トラックとミュージックは止められます。 もし声のエンベロープが リリースタイム を持つなら、音はすぐに止まるが、次第に消えていかないでしょう。

VOLUME

VOLUME v,[vol],[mix]

n(0-3)の音量を(0-15)にセットしますそして混ぜるべきその生産(0-3):

0消音
1
2
3左と右 (中央)

すべてのパラメータは(彼・それ)らの最新の設定値を保持するために省略されることができます。

SOUND

SOUND v,[w],[pw],[len]

(0-3)の基本的な音パラメータを設定します。

w は波形です。

0ノコギリ波
1三角波
2パルス
3ノイズ

pw はパルスです、幅(0-15)、8の値が方形波をもたらします。 このパラメータはただパルス波形から効果を持つだけです。

len は1/60秒で完全な長さです、最大値は255です。 音が自動的に止めないであろう0の手段。 もし長さが設定されるなら、このコマンドを使って、再生の長さパラメータは省略されることができます。

すべてのパラメータは(彼・それ)らの最新の設定値を保持するために省略されることができます。

ENVELOPE

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

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

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

SOUND SOURCE a

メモリアドレス a. に新しいデータソースを再生、ミュージックとトラックコマンドにセットします。 これはただこれらのコマンドへの次のコールに影響を与えるだけです、すでに始動させられたプレイバックがそれ自身のデータをソースにしておきます。 データはサウンドコンポーザーツールの様式であると考えられます。

デフォルトROM・入力によって15がソースとして使われます。

=MUSIC

MUSIC(n)

ミュージックを演奏する状態を返します。 あなたが手に入れることを望む情報からnを指定してください:

0現在のパターン
1現在の横列
2現在のティック
3現在の速度 (0 = 停止)

データ

DATA

DATA 定数リスト

読まれたコマンドによってアクセスされる数の切り離された読点と文字列定数(値以外変数あるいは式がありません)をしまっておきません。 DATAコマンドが実行されなくて、そしてどこ(で・に)でもプログラムに置かれるかもしれません。

コマンドが、プログラムのトップから最下行まで、順にデータにアクセスすると書いてあるのを読んでください。 項目のすべての絶え間がない1がリストするコマンドが読まれるすべてのデータの定数。

READ

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

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

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

POKE a,v

メモリをアドレスに設定するvを高く評価すること. vは数値的です、0から255までの式;この有効距離の外の数値式が 8 ビットに取り除かれます。

POKE $9000,232
POKE $9002,233

=PEEKW

PEEKW(a)

メモリアドレス a. にツー - バイト値(- 32768から32767まで)を返します。

POKEW

POKEW a,v

2のためにメモリアドレス a. においての - バイト値を書きます。 vは数値的です、 - 32768から32767までの式;この有効距離の外の数値式が 16 ビットに取り除かれます。

=PEEKL

PEEKL(a)

メモリアドレス a. にフォー - バイト値(- 2147483648から2147483647まで)を返します。

POKEL

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

COPY a,n TO d

メモリアドレスから始めてnバイトをコピーするdに対処すること. ソースと行先領域は重なり合うかもしれません。

'COPY CHARACTERS FROM ROM
'ENTRY 4 TO VIDEO RAM
COPY ROM(4),SIZE(4) TO $8000

FILL

FILL a,n[,v]

nバイトをメモリアドレスからスタートさせる値、あるいは0にもしパラメータが省略されるなら.

ROL

ROL a,n

アドレスにおいてバイトをとるそしてnつの場所によって残されたそのビットを回転させます.

ROR

ROR a,n

アドレスにおいてバイトをとるそしてnつの場所のそばのそのビット右を交替します.

=ROM

ROM(n)

ROM・入力nのメモリアドレスを返します。

=SIZE

SIZE(n)

ROM・入力nのバイト数を返します。

ファイル

ファイルコマンドはデータを最高16のファイルを含むことができる仮想ディスクにストアするために使われることができます。 その様式はプログラム・ファイルでROMエントリ部分と同じです。 これはそのデータをエディットするために直接どんな NX プログラムでも仮想ディスクとして使うことを可能にします。

仮想ディスクはただ、例えば、イメージだけの開発ツールのために使われて、そしてエディタあるいはミュージックプログラムをマップすることを意図されています。 ゲームがその代わりに不揮発性メモリを使うべきです。 標準的な LowRes NX 操作卓がディスク・ドライブを持っていないであろうと想像してください。

LOAD

LOAD f,a[,n[,o]]

現在の仮想ディスクからアドレスにおいて a. 始めているメモリまでファイル番号fに積み込みます。

オプションとしてパラメータnはロードされるべきである最大バイト数のために使われることができます。 0が極限がないことを意味します。 オプションのパラメータでファイルでのオフセットが設定されることができます。

読み込みはツールのみのために使われることを意図されています。 ゲームデータからROMエントリを、あるいはゲームステートのために不揮発性メモリを使ってください。

SAVE

SAVE f,c$,a,n

メモリアドレスにびくっとしてnバイトをセーブする現在の仮想ディスクにファイル番号(0-15)としてコメントc $ に(31文字まで).

もしこのファイルが前にロードされたなら、そのオリジナルの注釈を保持することを考えてください、あるいはユーザが、貯蓄する前に、それを編集することを可能にしてください。 もしファイルが新しいなら、注釈は少なくともデータ、例えば「文字」あるいは「ミュージック」のタイプを持っているべきです。

Save はツールのみのために使われることを意図されています。 不揮発性メモリをゲームステートをしまっておくために使ってください。

FILES

FILES

FILE$ で使用から現行ファイルディレクトリをロードします。

=FILE$

FILE$(f)

ファイルナンバー f の注釈文字列を返します。 前にファイルにアクセスしているファイルをディレクトリと呼んで、からその目次をアップデートするか、あるいはドルが直接後でロードするか、あるいはセーブするファイルを使ってください。

FILES
FOR I=0 TO 15
  PRINT I,FILE$(I)
NEXT I

=FSIZE

FSIZE(n)

ファイルナンバーnのバイト数を返します。 ファイルにアクセスする前に、要求がファイルします、その目次をアップデートするか、あるいは直接後で FSIZE を使うディレクトリがロードするか、あるいはセーブします。

算術関数

三角関数

=PI

PI

PI は円周率です: 3.1415926535...

=SIN

SIN(x)

x ラジアンにある x の正弦。

=COS

COS(x)

x がラジアンにあるxのコサイン。

=TAN

TAN(x)

x がラジアンにあるxのタンジェント。

=ASIN

ASIN(x)

x が+1に-1の範囲にあるに違いないxの逆サイン。 関数の有効距離は - (円周率 / 2) < = ASin (x) < = (円周率 / 2)です。

=ACOS

ACOS(x)

x が+1に-1の範囲にあるに違いないxのアークコサイン。 関数の有効距離は0の < = ACos (x) < = PIです。

=ATAN

ATAN(x)

ラジアンでのx のアークタンジェント、すなわちそのタンジェントがxである角度。 関数の有効距離は -(PI/2) <= ATAN(x) <= (PI/2) です。

=HSIN

HSIN(x)

x の双曲サイン。

=HCOS

HCOS(x)

x の双曲線コサイン。

=HTAN

HTAN(x)

x の双曲線タンジェント。

標準算術関数

=ABS

ABS(x)

x の絶対値です。

=SGN

SGN(x)

x の標識:もしx < 0、0であるなら-1もしそしてもしx > 0であるならx = 0と+1。

=INT

INT(x)

x より大きくない最も大きい整数;例えばINT(1.3) = 1とINT(- 1.3) = -2。

=EXP

EXP(x)

、すなわちパワーxに引き上げられた自然対数の口金の値(e = 2,71828...)の指数の(人たち・もの)。

=LOG

LOG(x)

xの自然対数;xゼロであるより大きいに違いありません。

=SQR

SQR(x)

x の負でない平方根; x は負でないに違いありません。

乱数列

=RND

RND

乱数の並びでの次の数は一様に範囲で0 < = RND < 1を配布しました。

RND(n)

2番目のシンタックスはすべてを含んでいる0とnの間に任意の整数を作ります。

RANDOMIZE

RANDOMIZE x

整数であるべきである乱数から x にシードに値を割り当てます。 1プログラムデフォルトによって前方一致が0を後押しをします、それで乱数の並びは常に同じです。

RANDOMIZE TIMER

もし、あなたがあなたのプログラムを行なうたびに、あなたが異なった乱数を欲するなら、あなたは始めにこのラインを挿入するべきです。

RANDOMIZE TIMER
FOR I=1 TO 16
  PRINT RND(1000)
NEXT I

数値操作

=MIN

MIN(x,y)

MIN 関数は2つの表現の最小値を返します。

=MAX

MAX(x,y)

MAX 関数は2つの表現の最大値を返します。

SWAP

SWAP var1,var2

同一性のどんな2つの変数でもの間のデータを交換します。

A=10
B=40
SWAP A,B
PRINT A
PRINT B

INC

INC var

変数の値を1つ増やします。 INC A が A=A+1 と同じものをしますが、より少ない CPUサイクルの費用がかかります。

DEC

DEC var

1時までに変数の値を減少させます。 12月のAがA = A-1と同じものをしますが、より少ない CPUサイクルの費用がかかります。

ADD

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$=

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$=

RIGHT$(s$,n)

最後のn文字のs $ で新しい文字列を返します。

RIGHT$(s$,n)=a$
$ の最後のn文字で変数s $ で最後の文字に上書きします。

=MID$=

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

INSTR(d$,s$[,p])

a$ の最初の n キャラクタで変数 s$ で所定のテキストの範囲に上書きします。

PRINT INSTR("LOWRES NX","RES")

=CHR$

CHR$(n)

ASCIIコードnで1文字を含んでいる文字列を返します。

FOR I=32 TO 90
  PRINT CHR$(I)
NEXT I

=ASC

ASC(a$)

$ についてあなたに ASCII の先頭文字のコードを与えます。

PRINT ASC("L")

=LEN

LEN(a$)

$ で文字の番号を返します。

=VAL

VAL(a$)

書き加えられた数を数値に a$ 変換します。

=STR$

STR$(n)

ナンバーnを文字列に変換します。

=BIN$

BIN$(n[,len])

少なくとも len 桁でナンバーnを 2進列に変換します。

=HEX$

HEX$(n[,len])

少なくとも len 桁でナンバーnを 16進数字列に変換します。

システム

システムコマンドは仮想コンソールと LowRes NX アプリケーションの間に連結です。

TRACE

TRACE 式のリスト

デバッギングウィンドウにテキストを出力します。 式はコンマで分割された文字列あるいは番号であり得ます。 もしデバッグモードであるなら、このコマンドはではない使用可能に無視されます。

'デバッグモードで実行
A=13
B$="GO"
TRACE "TEST",A,B$

SYSTEM

SYSTEM n,v

値にシステムステータスnにvを割り当てます。 現在たった1つの状態が利用可能です:

0 省エネモード:
0と異なったvと一緒の有効。 スクリーンがユーザがないときはいつでも非常に低いレートでリフレッシュするこの様式で入力。 それは仮想CPUに影響を与えません、コードは全速力でまだ走ります。

技術情報

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 の目次は自動的にセーブされて、そして、あなたがそれを走らせるとき、ロードされるでしょう。 それぞれのプログラムが別にその不揮発性 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 a
BG 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