SmileBASIC

スペック

『プチコンBIG』の基本仕様と制限事項です。

編集機能
エディタ 行単位のスクリーンエディタ。編集中に改行すると自動的に行番号が発生。
行番号の範囲 0〜999999
行番号の扱い 行番号に過去のBASICのような意味はなく、スクリーンエディタの行番号として扱う。GOTO等の分岐先は行番号ではなく「@ラベル」を使用する。
行の折り返し あり。オプションで切り替え可能。
1行文字数 文字数制限なし(空メモリーに依存)。
マルチプログラム スロット0〜スロット3の4スロットに、別個のプログラムを記憶・実行可能。
SMILEボタン 編集中のプログラムを残したまま別のプログラムを起動する。
標準では「SMILEツール」が登録されている。
OPTIONメニューからSMILEボタンに任意のプログラムを割り当てることができる。
入力装置
キーボード ソフトウェアキーボード(英字、カナ、欧州文字、記号など)
USBキーボード 別売のUSBキーボードを利用することで文字入力に対応(JP/US配置に対応)
ハードウェアボタン 十字ボタン、A、B、X、Y、L、R、ZL、ZRはプログラム中から利用可能
L-Rスティック 動かした方向、強さ、角度、移動量
タッチスクリーン タッチ状態、タッチ位置
モーションセンサー 3軸の加速度
ジャイロセンサー 3軸の角速度と角度
表示関係
表示要素
コンソール
文字(テキスト)を表示する画面
グラフィック
線や円などを表示する画面
SPRITE
アニメ表現可能な描画を行う画面
BG
固定サイズ画像を並べて描画する画面
表示優先順位 表示要素ごとのz座標を操作することで自由に設定可能。立体視の場合、z座標が奥行としても扱われる
出力画面 TV画面とGamePad画面に個別に表示可能。2画面を連続した1枚として扱うことも可能(XSCREEN 4)
グラフィックページ 各画面の表示画像を格納するメモリー領域。GRP0〜GRP5の6枚からなる
グラフィック解像度
XSCREEN 0〜3
TV画面 400×240ドット / GamePad画面 320×240ドット
XSCREEN4
320×480ドット
XSCREEN 5〜6
解像度による(最大854×480ドット)
奥行き z座標で設定(3DSの場合、立体視に影響)
1024(奥) 〜 0 〜 -256(手前)
コンソール文字数
XSCREEN 0〜3
TV画面 50×30 / GamePad画面 40×30
XSCREEN4
40×60
XSCREEN 5〜6
解像度設定による
コンソール文字色 透明色を含む16色から、文字色・背景色に1色ずつ使用可能
サウンド関係
同時発音数 BGMと効果音を合わせて24音
効果音 プリセット音134種類
周波数、音量、パンポットの変更
同時に8音まで再生
BGM用音源 128種類の楽器音
2種類のドラムセット
PSGとノイズ、ユーザー定義波形
波形定義 32種類の波形定義に対応(WAVSET)
BGM プリセット43曲
ユーザー定義128曲(BGMSET)
最大8曲同時に演奏が可能
音声合成 TALK命令で指定文字列の発音可能
エフェクター リバーブ(EFCSET)
プリセット3パターン、各種パラメータ指定可能
サンプリング マイクから音声を録音しBEEPやBGMの音色として再生可能
出力先 TV、GamePad、Wiiリモコン(別売)への出力切り替えが可能
基本要素
文字コード UNICODE
文字種類 数字、英字、ひらがな、カタカナ、キリル文字、ギリシャ文字、記号
データ型 # 倍精度実数型…変数名末尾が#(省略可能・標準の数値型)
データ型 $ 文字列型…変数名末尾が$
最大長2^31、空メモリーに依存
データ型 % 整数型…変数名末尾が%
32ビット符号あり
16進数表記 &H
2進数表記 &B
変数名 英字で始まる任意長の英数字列とアンダースコアを使用可能。 大文字小文字の区別はない。
予約語 変数名・ステートメント名として使えない予約語は次のとおり。
IF THEN ELSE ENDIF GOTO GOSUB RETURN ON FOR NEXT WHILE WEND REPEAT UNTIL BREAK CONTINUE DEF END VAR DIM AND OR XOR NOT DATA READ RESTORE PRINT INPUT LINPUT CALL TRUE FALSE SWAP OUT COMMON USE EXEC
暗黙の型変換 数値型間で値を交換する場合、すべて暗黙で値が変換される。文字と数値間では変換されない。
ラベル文字列 @で始まるラベル名が入った文字列変数
配列 4次元配列まで
添字用のかっこは[]のみ。()は未対応。最大要素数は2^31、空メモリーに依存
マルチステートメント :(コロン)で命令の間を区切る
サブルーチンとネスト 制限なし
プロジェクト ファイルを階層化して管理する単位。ルート直下に1階層だけフォルダが作られ、ファイルをまとめて管理できる。
ファイルの種別
TXT
テキスト文字列(プログラムも含む)
DAT
バイナリ型配列(数値、画像も同様)
演算子
算術演算子
加算(A+B)
- 減算(A-B)
* 乗算(A*B)
/ 除算(A/B)※0除算はエラー
MOD 剰余(A MOD B)※0除算はエラー
DIV 整数除算(A DIV B)
商の小数部を切り捨てる。※0除算はエラー

文字列変数は加算と乗算が利用できます。

(例)文字列の足し算
A$="ABC":B$="XYZ":PRINT A$+B$
結果→ABCXYZ
(例)文字列の掛け算(乗算)
A$="ABC"*4:PRINT A$
結果→ABCABCABCABC
比較演算子
> 左辺が右辺より大きい(A>B)
< 左辺が右辺より小さい(A<B)
>= 左辺が右辺より大きいか等しい(A>=B)※=>は使えません
<= 左辺が右辺より小さいか等しい(A<=B)※=<は使えません
== 両辺が等しい(A==B)
1文字の=は代入の意味として使用。
!= 両辺が等しくない(A!=B)※<>は使えません
ビット演算子
AND 論理積(A AND B…ビット同士の掛け算)
OR 論理和(A OR B…ビット同士の足し算)
XOR 排他的論理和(A XOR B)
NOT 否定(NOT A)
<< 算術シフト左
(A << 1 …左に1ビットシフト)
>> 算術シフト右
(A >> 3 …右に3ビットシフト)
論理演算子
&& かつ (IF A<3 && B==2 THEN ~)
¦¦ または (IF A>3 ¦¦ B>3 THEN ~)
! 論理反転記号
  • !TRUEは、FALSEと同じ
  • !FALSEは、TRUEと同じ
演算子優先順位
(高)① ()で囲まれた部分
- (単項)、NOT(1の補数)、!(論理反転)
*、/、DIV(整数除算)、MOD
+、-(2項)
<<、>> (シフト)
==、!=、<、<=、>、>= (比較演算)
AND、OR、XOR(ビット演算)
(低)⑧ &&、||(論理演算子。ショートカットあり)
ページトップへ