エラー・定数・システム変数

↑目次に戻る

エラー表

実行時に発生するエラーの一覧

エラー用システム変数

エラーが発生すると、システム変数に情報が残ります。

システム変数名 情報
ERRNUM エラー番号
ERRLINE 発生した行番号

主なエラーの内容

1 Internal Error 内部エラー:通常は発生しない
2 Illegal Instruction 内部エラー:通常は発生しない
3 Syntax error 文法が間違っている
4 Illegal function call 命令や関数の引数の数が違う
5 Stack overflow スタックがあふれた
6 Stack underflow スタックが不足した
7 Divide by zero 0による除算をした
8 Type mismatch 変数の型が一致しない
9 Overflow 演算結果が許容範囲を超えた
10 Out of range 範囲外の数値を指定した
11 Out of memory メモリー不足
12 Out of code memory コード領域のメモリー不足
13 Out of DATA READできるDATAが不足
14 Undefined label 指定されたラベルが存在しない
15 Undefined variable 指定された変数が存在しない
16 Undefined function 指定された命令・関数が存在しない
17 Duplicate label ラベルが二重定義されている
18 Duplicate variable 変数が二重定義されている
19 Duplicate function 命令・関数が二重定義されている
20 FOR without NEXT NEXTが無いFORがある
21 NEXT without FOR FORが無いNEXTがある
22 REPEAT without UNTIL UNTILが無いREPEATがある
23 UNTIL without REPEAT REPEATが無いUNTILがある
24 WHILE without WEND WENDが無いWHILEがある
25 WEND without WHILE WHILEが無いWENDがある
26 THEN without ENDIF ENDIFが無いTHENがある
27 ELSE without ENDIF ENDIFが無いELSEがある
28 ENDIF without IF IFが無いENDIFがある
29 DEF without END ENDが無いDEFがある
30 RETURN without GOSUB GOSUBがないRETURNがある
31 Subscript out of range 配列添字が範囲外
32 Nested DEF DEF内でDEFを定義した
33 Can't continue CONTでプログラムを再開できない
34 Illegal symbol string ラベル文字列の記述方法が間違っている
35 Illegal file format SMILEBASICでは扱えないファイル形式
36 Use PRGEDIT before any PRG function PRGEDITせずにPRG系の命令を使った
37 Animation is too long アニメーション定義が長すぎる
38 Illegal animation data 不正なアニメーションデータ
39 String too long 文字列が長すぎる
40 Can't use from direct mode ダイレクトモードでは使えない命令
41 Can't use in program プログラム内では使えない命令
42 Can't use in tool program ツールプログラム内からは使えない命令
43 Load failed ファイル読み込みに失敗
44 Uninitialized variable used 未初期化変数を参照しようとした
45 END without CALL ユーザー定義命令を呼び出していないのにユーザー定義末尾のENDに遭遇した
46 Too many arguments 命令・関数の引数が多すぎる

定数

・システムに用意された32bit数値の定義
・色の指定やボタンを扱う時に数値代わりに利用
汎用
#ON 1
#OFF 0
#YES 1
#NO 0
#TRUE 1
#FALSE 0
RGB(グラフィック用)
#AQUA &HFF00F8F8
#BLACK &HFF000000
#BLUE &HFF0000FF
#CYAN &HFF0000F8
#FUCHSIA &HFFF800F8
#GRAY &HFF808080
#GREEN &HFF008000
#LIME &HFF00F800
#MAGENTA &HFFF800F8
#MAROON &HFF800000
#NAVY &HFF000080
#OLIVE &HFF808000
#PURPLE &HFF800080
#RED &HFFF80000
#SILVER &HFFC0C0C0
#TEAL &HFF008080
#WHITE &HFFF8F8F8
#YELLOW &HFFF8F800
ATTR
#TROT0 &H00 回転なし
#TROT90 &H01 回転90度
#TROT180 &H02 回転180度
#TROT270 &H03 回転270度
#TREVH &H04 左右反転
#TREVV &H08 上下反転
SPSET/SPCHR ATTR
#SPSHOW &H01 表示
#SPROT0 &H00 回転なし
#SPROT90 &H02 回転90度
#SPROT180 &H04 回転180度
#SPROT270 &H06 回転270度
#SPREVH &H08 左右反転
#SPREVV &H10 上下反転
#SPADD &H20 加算合成
SPCHK
#CHKXY &H01 XY座標
#CHKZ &H02 Z座標
#CHKUV &H04 画像位置
#CHKI &H08 DEF定義
#CHKR &H10 回転
#CHKS &H20 スケール
#CHKC &H40
#CHKV &H80 内部変数
EMUBKST
#EMUIO_NONE 0 何も無かった
#EMUIO_PCBREAK 1 PCブレークに引っかかった
#EMUIO_READBREAK 2 READブレークに引っかかった
#EMUIO_WRITEBREAK 3 WRITEブレークに引っかかった
#EMUIO_STEP 4 ステップ実行完了
#EMUIO_TRACE 5 トレース実行完了
EMUZ80
#Z80_AF 0 AFレジスタ
#Z80_BC 1 BCレジスタ
#Z80_DE 2 DEレジスタ
#Z80_HL 3 HLレジスタ
#Z80_PC 4 プログラムカウンタ
#Z80_SP 5 スタックポインタ
#Z80_IX 6 IXレジスタ
#Z80_IY 7 IYレジスタ
#Z80_AFS 8 裏AFレジスタ
#Z80_BCS 9 裏BCレジスタ
#Z80_DES 10 裏DEレジスタ
#Z80_HLS 11 裏HLレジスタ
#Z80_A 12 Aレジスタ
#Z80_F 13 Fレジスタ
#Z80_B 14 Bレジスタ
#Z80_C 15 Cレジスタ
#Z80_D 16 Dレジスタ
#Z80_E 17 Eレジスタ
#Z80_H 18 Hレジスタ
#Z80_L 19 Lレジスタ
#Z80_AS 20 裏Aレジスタ
#Z80_FS 21 裏Fレジスタ
#Z80_BS 22 裏Bレジスタ
#Z80_CS 23 裏Cレジスタ
#Z80_DS 24 裏Dレジスタ
#Z80_ES 25 裏Eレジスタ
#Z80_HS 26 裏Hレジスタ
#Z80_LS 27 裏Lレジスタ
#Z80_I 28 Iレジスタ
#Z80_R 29 Rレジスタ
#Z80_IXH 30 IX上位レジスタ
#Z80_IXL 31 IX下位レジスタ
#Z80_IYH 32 IY上位レジスタ
#Z80_IYL 33 IY下位レジスタ
EMUJOYPAD
#EMUJOY_UP 0
#EMUJOY_DOWN 1
#EMUJOY_LEFT 2
#EMUJOY_RIGHT 3
#EMUJOY_1 4 ボタン1
#EMUJOY_2 5 ボタン2
#EMUJOY_3 6 ボタン3
#EMUJOY_4 7 ボタン4
#EMUJOY_5 8 ボタン5
#EMUJOY_6 9 ボタン6
#EMUJOY_7 10 ボタン7
#EMUJOY_8 11 ボタン8
#EMUJOY_9 12 ボタン9
#EMUJOY_10 13 ボタン10
#EMUJOY_11 14 ボタン11
#EMUJOY_12 15 ボタン12
GPIOモード
#GPIOMODE_IN 0 デジタル入力
#GPIOMODE_OUT 1 デジタル出力
#GPIOMODE_PWM 2 PWM出力
#GPIOMODE_CLOCK 3 CLOCK出力
#GPIOMODE_SOFT_PWM 4 ソフトウェアPWM出力
#GPIOMODE_SOFT_TONE 5 ソフトウェアTONE出力
#GPIOMODE_ALT0 16
#GPIOMODE_ALT1 17
#GPIOMODE_ALT2 18
#GPIOMODE_ALT3 18
#GPIOMODE_ALT4 20
#GPIOMODE_ALT5 21
GPIOポート 物理ピン番号
#GPIO0 27
#GPIO1 28
#GPIO2 3 SDA
#GPIO3 5 SCL
#GPIO4 7 D7,CLOCK
#GPIO5 29
#GPIO6 31
#GPIO7 26
#GPIO8 24 CE0
#GPIO9 21 MOSO
#GPIO10 19 MOSI
#GPIO11 23 SCLK
#GPIO12 32 PWM0
#GPIO13 33 PWM1
#GPIO14 8
#GPIO15 10
#GPIO16 36
#GPIO17 11 D0
#GPIO18 12 D1,PWM0
#GPIO19 35 PWM1
#GPIO20 38
#GPIO21 40
#GPIO22 15 D3
#GPIO23 16 D4
#GPIO24 18 D5
#GPIO25 22 D6
#GPIO26 37
#GPIO27 13 D2
スティック軸 論理スティックID
#STICK_LX 0
#STICK_LY 1
#STICK_RX 2
#STICK_RY 3

システム変数

SmileBASICが管理しているシステムで予約された変数(基本読み取り専用、一部代入可能)

CSRX

現在のカーソル位置(横方向)

CSRY

現在のカーソル位置(縦方向)

FREEMEM

残りユーザー用のメモリー容量(バイト単位)

VERSION

システムのバージョン番号(Ver XX.YY.ZZZZの場合、16進で&HXXYYZZZZとなる)

TABSTEP ※書き込み可能

PRINT命令の「,」による基準幅

PRINT TABSTEP
TABSTEP=4

SYSBEEP ※書き込み可能

システム効果音の有無(TRUE=あり、FALSE=なし)

PRINT SYSBEEP
SYSBEEP=FALSE

ERRNUM

エラーが発生した時のエラー番号

ERRLINE

エラーが発生した時の行番号

ERRPRG

エラーが発生した時のプログラムSLOT

PRGSLOT

プログラム操作命令(PRGEDIT等)のカレントプログラムSLOT
プログラム実行中のみ値が変化

RESULT

ファイルへの読み書き一覧取得などの命令を実行した際の処理結果
・TRUE=成功、FALSE=失敗、-1=中断

MAINCNT

SmileBASIC起動時からのフレームカウント数

MILLISEC

SmileBASIC起動時からのミリセカンド値

TRUE

論理値の「真」(TRUEの値は常に1)
例えばA=0の時、B=(A==0)の結果BにはTRUE(=1)が入る

FALSE

論理値の「偽」(FALSEの値は常に0)
例えばA=0の時、B=(A!=0)の結果BにはFALSE(=0)が入る

TIME$

現在の時刻文字列( 書式:"HH:MM:SS"、7時41分5秒の時、"07:41:05" )

DATE$

現在の日付文字列( 書式:"YYYY/MM/DD"、 2014年9月15日の時、"2014/09/15" )

CALLIDX

SPFUNCで呼び出された番号(0~511)

SOFTKBD ※書き込み可能

ソフトウェアキーボードの使用禁止/許可(TRUE=許可、FALSE=禁止)

PRINT SOFTKBD
SOFTKBD=FALSE

↑目次に戻る