ORANGE-light リファレンスマニュアル

1.プログラム制御関連
代入文end文goto文if文for文while文break文continue文def文return文var文chain文reset文

2.表示関連
print文locate文cls文chr$関数hex$関数

3.キーボード関連
input文inkey関数

4.タイマー関連
clt文tickms関数pause文

5.メモリー配列関連
mpoke文mpokew文mptr文mdata文mdataw文mstr文mpeek関数mpeekw関数getmptr関数

6.I/O制御関連
out文pwm文in関数adc関数i2ci文i2cw関数i2cr関数button関数

7.グラフィックス関連
rgb関数pset文line文rect文gprint文gtitle文

8.スプライト関連
sprnew関数sprdsp文sprmov文sprget文sprhit関数

9.その他
beep文rnd関数debug関数


1.プログラム制御関連

代入文
書式 変数 = 式
説明 変数に式を評価した結果を代入します。
c = a + b cにa + bの値を代入します。
互換性   すべてのORANGE-insideで同じ動きになります。 

end文
書式 end
説明 プログラムを終了します。
if x = 1 then end xが1のときにプログラムを終了します。
互換性   すべてのORANGE-insideで同じ動きになります。 

goto文
書式 goto 名札名
説明 指定した名札の次に制御を移します。
loop:
  x = x + 1
  print x
  if x <= 10 then goto loop



x <= 10のときにloop:の次に制御を移します。
互換性   すべてのORANGE-insideで同じ動きになります。 

if文
書式 if 条件式 then 文1
if 条件式 then 文1 else 文2
説明 条件式が真ときは、文1を実行します。
条件式が偽ときは文2(elseがあるとき)または次の文(elseがないとき)に制御を移します。

条件式の真偽判定は次のように決まります。
真: 条件式を評価した結果が0以外のとき
偽: 条件式を評価した結果が0のとき

文1、文2には、複合文(文を「:」で区切ったもの)が使用できます。
if x < 10 then print "B"
if x = 10 then print "Y" else print "R"

if y = 0 then print "E": end else print "S"
x < 10のときはBを表示します。
x = 10のときはYを表示し、それ以外のときはRを表示します。

y = 0のときはEを表示し、プログラムを終了します。
それ以外のときはSを表示します。
互換性   すべてのORANGE-insideで同じ動きになります。 

for文
書式 for 制御変数 = 初期値 to 終値 文 next
for 制御変数 = 初期値 to 終値 step 増分値 文 next
説明 制御変数を初期値から終値まで、制御変数を変化させながら、forとnextの間の文を繰り返えし実行します。
制御変数はforとnextの間の文を実行するごとに増分値だけ変化します。
stepで増分値を指定しないときは、増分値は+1となります。
増分値には負数を指定することもできます。

繰り返し終了の判定は、以下の通りです。
・増分値が正のときは、制御変数の値が終値より大きくなったとき
・増分値が負のときは、制御変数の値が終値より小さくなったとき
for i = 1 to 10
  print i
next

for i = 1 to 9 step 2
  print i
next

for i = 9 to 1 step -2
  print i
next

for x = 2 to 9
  for y = 1 to 9
    print x;
    print " * ";
    print y
    print " = ";
    print x * y
  next
next
1から10までの整数を表示します。



1から9までの奇数を表示します。



9から1までの奇数を表示します。



掛け算九九の表を表示します。
互換性   すべてのORANGE-insideで同じ動きになります。 

while文
書式 while (条件式) 文 wend
説明 条件式が真のときは、whileとwendの間の文を繰り返し実行します。条件式が偽のときは、wendの次の文から実行します。

条件式の真偽判定は次のように決まります。
真: 条件式を評価した結果が0以外のとき
偽: 条件式を評価した結果が0のとき
i = 1
while i <= 10
  print i
wend
1から10までの整数を表示します。
互換性   すべてのORANGE-insideで同じ動きになります。 

break文
書式 break
説明 ループ(for~next、while~wend)から無条件に脱出します。
for i = 1 to 10
  if i = 7 then break
  print i;
next
123456を表示します。
互換性   すべてのORANGE-insideで同じ動きになります。 

continue文
書式 continue
説明 for~nextループ内ではnextまでスキップします。
while~wendループ内ではwendまでスキップします。
for i = 1 to 10
  if i = 3 then continue
  if i = 7 then break
  print i;
next
12456を表示します。
互換性   すべてのORANGE-insideで同じ動きになります。 

def文
書式 def 関数名(引数) { 文 }
説明 関数を定義します。
defの後に関数名を書き、「(」と「)」の間に引数を書きます。引数が複数あるときは、「,」で区切ります。
「{」と「}」の間に文を書きます。文は複数個書けます。return文または「}」に達すると、関数の呼び出し元に戻ります。
print min(1, 10)
print min(10, 10)
print min(100, 10)
end

def min(x, y) {
  if x < y then return x else return y
}
1を表示します。
10を表示します。
10を表示します。


xとyの小さい方を返す関数を定義します。
互換性   すべてのORANGE-insideで同じ動きになります。 

return文
書式 return
return 式
説明 呼び出したユーザー関数の次に制御が戻ります。.
returnの後に式が書いた場合は、式を評価した値を呼び出し元に返します。
func1(10)
func1(0)
print func2(10)
print func2(0)
end

def func1(x) {
  if x = 0 then return
  print 100 / x
}

def func2(x) {
  if x = 0 then return 0
  return 100 / x
}
10を表示します。
何も表示しません。
10を表示します。
0を表示します。


値を返さない関数です。




値を返す関数です。
互換性   すべてのORANGE-insideで同じ動きになります。 

var文
書式 var ローカル変数
説明 def文の「{」と「}」の間で有効なローカル変数を定義します。
グローバル変数(通常の変数と同じ名前のローカル変数を参照するときは、ローカル変数が優先されます。
x = 1: y = 2: z = 3
print x
print y
print z
print add(100, 200)
print x
print y
print z
end

def add(x, y) {
  var z
  z = x + y
  print x
  print y
  print z
  return z
}

1を表示します。
2を表示します。
3を表示します。
300を表示します。
1を表示します。
2を表示します。
3を表示します。



ローカル変数zを定義します。
ローカル変数zに引数の和を代入します。
100を表示します。
200を表示します。
300を表示します。
300を返します。
互換性   すべてのORANGE-insideで同じ動きになります。 

chain文
書式 chain 式または文字列
説明 ページ番号またはファイル名で指定したプログラムに制御を移します。制御の移行に失敗した場合はプログラムを終了します。
chain 3

chain "circle"
ページ番号3のプログラムに制御を移します。

"circle"という名前のプログラムに制御を移します。
互換性   ORANGE-studioでは未実装です。(デバッグ用にchain文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

reset文
書式 reset
説明 システムをリセットします。
reset
リセットします。
互換性   ORANGE-studioでは未実装です。(コンソールに"reset"と表示してプログラムを終了します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

2.表示関連

print文
書式 print 式または文字列
print 「;」で区切った複数の式または文字列
print
説明 式または文字列をコンソールに表示します。(表示後、改行します。)
式または文字列を「;」で区切って、複数の式または文字列を表示します。(「;」があると改行しないで、
次の式または文字列を表示します。)
print文単独では改行のみを行います。
print 10
a = 10: b = 20
print
print a + b
print "abcdef"
print "abc"; "def"
print "a + b = "; a +b
10を表示します。

改行のみを行います。
30を表示します。
abcdefを表示します。
abcdefを表示します。
a + b = 30を表示します。
互換性   ORANGE-studio内ではコンソールウインドウに出力します。
ターゲットボード上では、ORANGE-insideの実装に依存します。(CRTやLCD、シリアルコンソール等に出力されます。) 
LPC1114版   実装済みです。 シリアルコンソールに出力します。

locate文
書式 locate x座標, y座標
説明 指定した座標にカーソルを移動します。
locate 10, 10
(10, 10)にカーソルを移動します。
互換性   ORANGE-studioでは未実装です。(デバッグ用にlocate文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 シリアルコンソールにVT100の該当エスケープシーケンスを出力します。

cls文
書式 cls
cls 式
説明 コンソールをクリアします。
式を指定した場合の振る舞いは、ORANGE-insideの実装に依存します。
cls
コンソールをクリアします。
互換性   ORANGE-studio内ではコンソールウインドウ内の文字を全消去します。
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 
cls 1 : シリアルコンソールにVT100の該当エスケープシーケンスを出力します。
cls 2 : グラフィックス画面(LCD)をクリアします。
clsまたはcls 3 : cls 1とcls 2の両方の処理を行います。

chr$関数
書式 chr$(式)
説明 式で指定されたコードに対応する文字を返します。
print chr$(61)
aを表示します。
互換性   すべてのORANGE-insideで同じ動きになります。 

hex$関数
書式 hex$(式)
説明 式で指定された値に対応する16進文字列を返します。
print hex$(60)
3Cを表示します。
互換性   すべてのORANGE-insideで同じ動きになります。 

3.キーボード関連

input文
書式 input 変数
input プロンプト文字列, 変数
説明 プロンプト文字列(指定しない場合は「?」)を表示し、入力を要求します。入力が完了すると、入力された値をは変数に代入されます。
input count
input "count = ? ", count
「?」をコンソールに表示し、入力ダイアログで入力した数値をcountに代入します。
「count = ? 」をコンソールに表示し、入力ダイアログで入力した数値をcountに代入します。
互換性   ORANGE-studio内では以下の動作になります。
プロンプト文字列をコンソールに表示します。(プロンプト文字列を指定しない場合は、コンソールに「?」を表示します。)
入力ダイアログを出します。
入力ダイアログを閉じると、入力された数値を指定した変数に代入し、コンソールにも表示します。
ダイアログを取消ボタンで閉じたり、数値に変換できない場合には0を指定した変数に代入し、コンソールにも表示します。

ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。シリアルコンソールから入力します。 

inkey関数
書式 inkey()
説明 押されたキーのキーコードを返します。押されていないときは-1を返します。
keyCode = inkey()
押されたキーのキーコードをkeyCodeに代入します。
互換性   ORANGE-studioでは未実装です。(常に-1を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。シリアルコンソールから入力を返します。 

4.タイマー関連

clt文
書式 clt
説明 タイマーをクリアします。クリアした瞬間はtickms()の返す値が0になります。
clt
pause 100
print tickms()
タイマーをクリアします。
100ms待ちます。
100に近い値を表示します。
互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

tickms関数
書式 tickms()
説明 clt文を実行したときからの時間をミリ秒単位で返します。
clt
pause 100
print tickms()
タイマーをクリアします。
100ms待ちます。
100に近い値を表示します。
互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

pause文
書式 pause 式
説明 式で指定したミリ秒単位の時間だけ何もしないで待ちます。
clt
pause 100
print tickms()
タイマーをクリアします。
100ms待ちます。
100に近い値を表示します。
互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。

5.メモリー配列関連

mpoke文
書式 mpoke 式1, 式2
説明 式1で指定した番地(バイト)に式2で指定した値(バイト)を書き込みます。
mpoke 10, 100
メモリー配列の10バイト目の位置に100を書き込みます。
互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。

mpokew文
書式 mpokew 式1, 式2
説明 式1で指定した番地(ワード)に式2で指定した値(ワード)を書き込みます(ビッグエンディアン)。
mpokew 5, 1000
メモリー配列の5ワード目の位置に1000を書き込みます。
互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

mptr文
書式 mptr 式
説明 メモリーポインターに式で指定した値を設定します。メモリーポインターはmdata文、mdataw文、mstr文で参照されます。
mptr 16
メモリーポインターに16を設定します。
互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

mdata文
書式 mdata 整数1, 整数2, 整数3...,整数n
説明 メモリポインターが指し示す番地(バイト)から順に、整数1~整数nの値をバイト単位でメモリー配列に書き込みます。書き込んだ数だけメモリーポインターの値が増加します。
mptr 0x0010
mdata 1, 2, 3, 4, 5
mdata 6, 7, 8, 9, 10
メモリーポインターに0x0010(バイト)を設定します。
0x0010番地(バイト)から順に1, 2, 3, 4, 5を書き込みます。
0x0015番地(バイト)から順に6, 7, 8, 9, 10を書き込みます。

互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。

mdataw文
書式 mdataw 整数1, 整数2, 整数3, ..., 整数n
説明 メモリーポインターが指し示す番地(ワード)から順に、整数1~式nの値をワード単位でメモリー配列に書き込みます(ビッグエンディアン)。書き込んだ数だけメモリーポインターの値が増加します。
mptr文は、バイト単位でカウントした番地を設定しますので、mdataw文で使用するときは、2倍した値を設定します。
mptr 0x0010 * 2
mdataw 1, 2, 3, 4, 5
mdataw 6, 7, 8, 9, 10
メモリーポインターに0x0010(ワード)を設定します。
0x0010番地(ワード)から順に1, 2, 3, 4, 5を書き込みます。
0x0015番地(ワード)から順に6, 7, 8, 9, 10を書き込みます。

互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。

mstr文
書式 mstr 文字列
説明 メモリーポインターが指し示す番地から順に指定した文字列を書き込みます。書込み後は、書き込んだ文字数だけメモリーポインターの値が増加します。
mptr 0x0010
mstr "ABC"

mstr
"DE"
メモリーポインターに0x0010(バイト)を設定します。
0x0010番地から”ABC"を書き込みます。
(0x0010番地に0x41、0x0011番地に0x43、0x0012番地に0x43)

0x0013番地から”DE"を書き込みます。
(0x0013番地に0x44、0x0014番地に0x45)
互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

mpeek関数
書式 mpeek(式)
説明 式で指定した番地(バイト)の内容を返します。
mptr 0x0010
mstr "ABC"

print mpeek(0x0010)
メモリーポインターに0x0010(バイト)を設定します。
0x0010番地から”ABC"を書き込みます。
(0x0010番地に0x41、0x0011番地に0x43、0x0012番地に0x43)
65(=0x41)を表示します。
互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

mpeekw関数
書式 mpeek(式)
説明 式で指定した番地(ワード)の内容を返します(ビッグエンディアン)。
mpokew 5, 1000
print
mpeekw(5)
メモリー配列の5ワード目の位置に1000を書き込みます。
1000を表示します。
互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

getmptr関数
書式 getmptr()
説明 現在のメモリーポインターの値を取得します。
mptr 0x0000
mstr "ABC"

print
getmptr()
メモリーポインターに0x0000(バイト)を設定します。
0x0000番地から”ABC"を書き込みます。
(0x0000番地に0x41、0x0001番地に0x43、0x0002番地に0x43)
3を表示します。
互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

6.I/O制御関連

out文
書式 out 式1, 式2
説明 式1で指定したポート番号に対して、式2で指定した出力指示を実行します。

出力指示の指定は以下の通りです。
0:Low
1:High
out 2, 1
ポート2をHighにします。
互換性   ORANGE-studioではデジタル出力パネルの状態を更新します。
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 ポート番号とピン番号の対応は以下の通りです。
ポート番号 ピン番号
1 9
10
11 
12 
18
17 
14 
9 4
10  5
11  6
12 1
13  2
14  13
15  28 
16  27 
17  26
18  25 
19  24 
20  23 
21  16 
22 15 

pwm文
書式 pwm 式1, 式2, 式3
説明 式1で指定したポート番号に対して、式2(周波数)、式3(デューティ比)で指定した矩形波を出力します。
周波数の単位はHzです。デューティ比は0~1000で指定します。1を指定すると0.1%、1000を指定すると100%になります。
デューティ比に0を指定するとPWM出力を停止します。
pwm 2, 100, 500
ポート2に周波数100Hz、デューティ比50%の矩形波を出力します。
互換性   ORANGE-studioでは未実装です。(デバッグ用にpwm文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 ポート番号とピン番号の対応は以下の通りです。
ポート番号 ピン番号
2 10
3 11
4 12
5 18

in関数
書式 in(式)
説明 式で指定したポート番号の状態を返します。
指定したポートがHighのときに1、Lowのときに0が返ります。
print in(1) ポート1の状態を表示します。
互換性   ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 ポート番号とピン番号(ボタン)の対応は以下の通りです。
ポート番号 ピン番号 ボタン
1 3  
4  
5 SELECT
6  
9 UP
10 RIGHT
11 LEFT
12  DOWN
9 13 START
10  18 B
11  17 A
12  
13  2  
14  14  
15  28   
16  27   
17  26   
18  25   
19  24   
20  23   
21  16   
22  15   

adc関数
書式 adc(式)
説明 式で指定したポートの電圧に応じて値を返します。
電圧と値の関係はターゲットボード上のORANGE-insideの実装に依存します。
print adc(1) ポート1の電圧を表示します。
互換性   ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 0~1023の値を返します。ポート番号とピン番号の対応は以下の通りです。
ポート番号 ピン番号
2 4
9
10
7 11
8 12
9 13

i2ci文
書式 i2ci 式1, 式2
説明 式1で指定したチャネルのI2Cバスを式2で指定したクロックレートで初期化します。
チャネルは1から始まる番号です。
クロックレートの単位はkHzです。
i2ci 1, 400 I2C1バスを400kHzで初期化します。
互換性   ORANGE-studioでは未実装です。(デバッグ用にi2ci文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

i2cw関数
書式 i2cw(式1, 式2, 式3, 式4, 式5)
説明 式1で指定したチャネルのI2Cバスにデータを書き込みます。
式2でスレーブアドレスを7ビットで指定します。(R/Wフラグは0が付加されます。)
式3で書き込むデータが格納されているメモリー配列の番地(バイト)を指定します。
式4で書き込むデータの長さ(バイト数)を指定します。
式5でストップ指示を指定します。ストップ指示は1でストップコンディションを送出し、0でリピーテッドスタートコンディションを送出します。

成功すると0を返します。失敗すると以下のエラーコードが返ります。
-1 : 他のデバイスに使用されている
-2 : デバイスが見つからない
buf = getmptr()
mdata 0x00, 0x01
rc = i2cw(1, 0x50, buf, 2, 1)


スレーブアドレス0x50に0x00, 0x01を送信します。
互換性   ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 式1の値は無視されます。(使用できるI2Cバスは1チャンネルのみです。)

i2cr関数
書式 i2cr(式1, 式2, 式3, 式4, 式5)
説明 式1で指定したチャネルのI2Cバスからデータを読み込みます。
式2でスレーブアドレスを7ビットで指定します。(R/Wフラグは1が付加されます。)
式3で読み込んだデータを格納するメモリー配列の番地(バイト)を指定します。
式4で読み込むデータの長さ(バイト数)を指定します。
式5でストップ指示を指定します。ストップ指示は1でストップコンディションを送出し、0でリピーテッドスタートコンディションを送出します。

成功すると0を返します。失敗すると以下のエラーコードが返ります。
-1 : 他のデバイスに使用されている
-2 : デバイスが見つからない
     
buf = getmptr()
rc = i2cr(1, 0x68, buf, 7, 1)

スレーブアドレス0x68から7バイト受信します。
互換性   ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 式1の値は無視されます。(使用できるI2Cバスは1チャンネルのみです。)

button関数
書式 button()
説明 ボタンの押下状態を返します。
ボタンが押されているビットが1になります。ボタンとビットの関係は以下の通りです。
ビット 15  14  13 12  11   10  2  1  0
 ボタン         SELECT START       B A RIGHT LEFT  DOWN  UP
 CPUのピン番号         5 番ピン  13番ピン       18番ピン  17番ピン  10番ピン  11番ピン  12番ピン 9番ピン 
keys = button() ボタンの押下状態を取得します。
互換性   ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   未実装です。 (常に0を返します。)
in関数を使用してください。

7.グラフィックス関連

rgb関数
書式 rgb(式1, 式2, 式3)
説明 式1(RED値)、式2(GREEN値)、式3(BLUE値)で指定した16ビットのカラー値を返します。
RED値、GREEN値、BLUE値には、それぞれ0~255の値を指定します。
line 0, 0 , 100, 100, rgb(0, 255, 0) 緑色の直線を描きます。
互換性   ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

pset文
書式 pset 式1, 式2, 式3
説明 式1(x座標)、式2(y座標)で指定した位置に式3(16ビットのカラー値)で指定した点を描きます。
pset 100, 100, rgb(0, 255, 0) 座標(100, 100)に緑色の点を描きます。
互換性   ORANGE-studioでは未実装です。(デバッグ用にpset文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

line文
書式 line 式1, 式2, 式3, 式4, 式5
説明 式1(x座標)、式2(y座標)で指定した始点と式3(x座標)、式4(y座標)で指定した終点を結ぶ直線を式5(16ビットのカラー値)で指定した直線を描きます。
line 0, 0, 100, 100, rgb(0, 255, 0) 始点(0, 0)と終点(100, 100)を結ぶ直線を描きます。
互換性   ORANGE-studioでは未実装です。(デバッグ用にline文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

rect文
書式 rect 式1, 式2, 式3, 式4, 式5, 式6
説明 式1(始点のx座標)、式2(始点のy座標)、式3(幅)、式4(高さ)、式5(16ビットのカラー値)で指定する長方形を描きます。
式6の値が0のときは長方形の枠のみを描き、1のときは長方形の内部を塗りつぶします。
rect 0, 0, 100, 100, rgb(0, 255, 0), 1 始点(0, 0)、幅100、高さ100の長方形を描きます。
内部は塗りつぶします。
互換性   ORANGE-studioでは未実装です。(デバッグ用にrect文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

gprint文
書式 gprint 式1, 式2, 式3, 式4, 式5
gprint 式1, 式2, 文字列, 式4, 式5
説明 式1(x座標)、式2(y座標)で指定した始点から式3の値を文字列として描きます。
式3のところに文字列を指定すれば、その文字列を描きます。
式4で文字列の前景色を指定します。
式5で文字列の背景色を指定します。背景色は省略可能で、省略すると黒になります。
gprint 120, 100, x, rgb(0, 255, 0), 0
gprint 120, 100, "TEST", rgb(0, 255, 0), 0
(120, 100)から変数xの値を表示します。
(120, 100)から文字列TESTを表示します。
互換性   ORANGE-studioでは未実装です。(デバッグ用にgprint文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 半角文字は内蔵の8x8フォントで表示します。全角文字は表示できません。

gtitle文
書式 gtitle 式1, 式2, 文字列, 式4, 式5
説明 式1(x座標)、式2(y座標)で指定した始点から文字列を表示します。半角文字は8x16フォントで、全角文字は16x16フォントで表示します。
式4で文字列の前景色を指定します。
式5で文字列の背景色を指定します。背景色は省略可能で、省略すると黒になります。
gtilte 10, 10, "日本語表示", rgb(0, 255, 0), 0
(10, 10)から文字列TESTを表示します。
互換性   ORANGE-studioでは未実装です。(デバッグ用にgtitle文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。コンパイル時にはORANGE-pro.jarと同じ場所にフォントファイル(Font16x16.bdfとFont8x16.bdf)を格納しておいてください。
コンパイル結果にフォントパターンが含まれますので、実機側のメモリーを圧迫します。

8.スプライト関連

sprnew関数
書式 sprnew(式1, 式2, 式3, 式4, 式5, 式6, 式7, 式8)
説明 ★1ピクセルごとに16ビットのカラー値で指定したスプライトを作成する場合

式1でスプライト番号(0~)を指定します。
式2~式5で、それぞれ、スプライトを表現する矩形の始点x座標、矩形の始点y座標、矩形の幅、矩形の高さを指定します。
式6で矩形のイメージが格納されているメモリー配列の番地(バイト)を指定します。イメージの1ピクセルは16ビットのカラー値で指定します。
式7および式8の両方に0を指定します。.

スプライトの作成に成功すると、スプライト番号が返ります。失敗すると-1が返ります。

★前景色と背景色を指定したスプライトを作成する場合

式1でスプライト番号(0~)を指定します。
式2~式5で、それぞれ、スプライトを表現する矩形の始点x座標、矩形の始点y座標、矩形の幅、矩形の高さを指定します。矩形の幅は8の倍数である必要があります。
式6で矩形のイメージが格納されているメモリー配列の番地(バイト)を指定します。
イメージの1ピクセルは1ビットで指定します。ビットが立っている部分が前景色、そうでない部分が背景色になります。
式7で前景色を指定します。
式8で背景色を指定します。

スプライトの作成に成功すると、スプライト番号が返ります。失敗すると-1が返ります。
IMAGE0 = getmptr()
mdataw 2016, 2016, 2016
mdataw 2016, 2016, 2016
sprite0 = sprnew(0, X, Y, 3, 2, IMAGE0, 0, 0)
sprdsp sprite0, 1
★1ピクセルごとに16ビットのカラー値で指定したスプライトを作成する場合
1ライン目(3ピクセル)
2ライン目(3ピクセル)
IMAGE1 = getmptr()
mdata 0xff, 0xff, 0xff
mdata 0xff, 0xff, 0xff
mdata 0xff, 0xff, 0xff
sprite1 = sprnew(1, X, Y + 10, 24, 3, IMAGE1, rgb(255, 0, 0), 0)
sprdsp sprite1, 1
  ★前景色と背景色を指定したスプライトを作成する場合
1ライン目(24ピクセル)

2ライン目(24ピクセル)
3ライン目(24ピクセル)
互換性   ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 スプライト番号は0~9まで使用できます。

sprdsp文
書式 sprdsp 式1, 式2
説明 式1で指定したスプライト番号のスプライトをを可視/不可視にします。
式2で1を指定すると可視、0を指定すると不可視になります。
sprdsp 2, 0
sprdsp
3, 1
スプライト番号2のスプライトを不可視にします。
スプライト番号3のスプライトを可視にします。
互換性   ORANGE-studioでは未実装です。(デバッグ用にsprdsp文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

sprmov文
書式 sprmov 式1, 式2, 式3
説明 式1で指定したスプライト番号のスプライトを移動します。
式2でx座標、式3でY座標を指定します。
sprmov 2, 100, 100 スプライト番号2のスプライトを(100, 100)に移動します。
互換性   ORANGE-studioでは未実装です。(デバッグ用にsprmov文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

sprget文
書式 sprget 式1, 式2
説明 式1で指定したスプライト番号のスプライトの情報を読み出し、式2で指定したメモリー配列の番地の先頭から以下のように10バイト分格納します。
また、格納する番地は偶数である必要があります。(読出し後、mpeekw関数で情報を取得するため)
指定した番地(ワード) : 矩形の始点のx座標
指定した番地(ワード) + 1 : 矩形の始点の y座標
指定した番地(ワード) + 2 : 矩形の幅
指定した番地(ワード) + 3 : 矩形の高さ
指定した番地(ワード) + 4 : 可視(0x0001)/不可視(0x0000)
work = getmptr()
if work % 2 = 1 then work = work + 1
sprget 1, work
address = work / 2
print mpeekw(address)
print mpeekw(address + 1)
print mpeekw(address + 2)
print mpeekw(address + 3)
print mpeekw(address + 4)
現在のメモリーポインターを取得します。
奇数番地のときは偶数番地に補正します。
スプライト番号1の情報を取得します。
ワード番地に変換します。
矩形の始点のx座標を表示します。
矩形の始点のy座標を表示します。
スプライトの幅を表示します。
スプライトの高さを表示します。
スプライトの可視/不可視情報を表示します。
互換性   ORANGE-studioでは未実装です。(デバッグ用にpget文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

sprhit関数
書式 sprhit(式1, 式2)
説明 式1で指定したスプライト番号の矩形と式2で指定したスプライト番号の矩形が重なっているときは1を返します。
二つ矩形に重なり部分がないときは0を返します。
if sprhit(1, 2) then sprmov 1, 0, 0 スプライト1スプライト2が重なっているときはスプライト1を(0,0)に移動します。
互換性   ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

9.その他

beep文
書式 beep 式1, 式2
beep 式1
beep
説明 式1で指定した音階を式2で指定した時間だけビープ音を鳴らします。
音階は21でA音440Hzです。1増やすと半音上がり、減らすと半音下がります。
時間の単位はmsです。
式1と式2は省略できます。省略したときの値はそれぞれ、21と200です。
beep
beep 33, 1000
音階21(A音440Hz)で200msのビープ音を鳴らします。
音階33(A音880Hz)で1000msのビープ音を鳴らします。
互換性   ORANGE-studioでは式1、式2は無視され、OSに設定されたビープ音を出します。
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。25番ピンとGNDの間に圧電スピーカーを接続します。

rnd関数
書式 rnd(式)
説明 0~式 - 1 までの乱数を返します。
print rnd(6) + 1 1~6のいずれかの値を表示します。
互換性   ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。 

debug関数
書式 rnd(式)
説明 式の値を表示し、その値を返します。
debug(10) 10を表示します。
互換性   ORANGE-studioでは「L行番号 = 式の値」を表示します。
ターゲットボード上では、ORANGE-insideの実装に依存します。
LPC1114版   実装済みです。「DEBUG = 式の値」を表示します。