ファミリーベーシック 言語仕様・文字コード一覧|整数16bit・カナ文字を実機で確かめた辞典
ファミリーベーシック(Family BASIC)は、現代の感覚で書くと細かいところでつまずきます。整数は16bit止まりで実数(小数)が無い、変数名は2文字まで、英字は大文字のみ、真は -1・偽は 0…といった「言語そのものの前提」が、いまの BASIC や他言語とは違うからです。本ページは、その前提となる言語仕様と、画面に出せる文字コードを一覧にした辞典です。
ポイントは、AI(LLM)に Family BASIC を書かせると、まさにこの前提のところで間違えること。print "hello" と小文字で書いたり、SCORE のような3文字以上の変数を使ったり、A=3.14 と小数を入れたり——どれも実機では通りません。命令そのもの(ステートメントや関数)を引く前に、ここで「言語の地雷」を先に潰しておくのが本ページの役割です。下表から各項目へ飛んでください。
辞典シリーズ:この辞典は命令カテゴリごとに分かれています。総目次は ファミリーベーシック 命令・コマンド完全リファレンス(hub)から。
対応バージョンと凡例
言語仕様・文字コードは基本的に Family BASIC V2.0A / V2.1 / V3 で共通です(RAM 容量など一部はバージョン差があり、その都度注記します)。本ページの「実機確認」は V2.0A(HVC-BS 相当)で観察した結果です。各エントリの先頭にマークを付けています。
- ✅ 実機確認 … エミュレータで実際に挙動を確認したもの
- 📖 規格 … マニュアル記載の仕様。本ページは前提情報が中心のため、大半が 📖 です
- 🔵 V3 … V3固有の予約語・仕様に関する注記(大半は未実機検証の規格記載)
このページは「命令を打つ前に知っておくべき前提」を集めているため、画面出力をともなう観察ブロックは少なめです。値が載っているコード表は、すべてマニュアルの規格値です。
言語仕様
AI が他言語 BASIC の感覚で間違える5点(先に知っておきたい)
この辞典で一番効くのがこの5点です。AI にコードを書かせると、ここで的を外します。
- 実数(小数)が無い — 数値は 16bit 符号付き整数のみ。
A=3.14のような小数は扱えません(整数の範囲)。 - 変数名は2文字まで —
SCOREは使えず、3文字目以降は無視されます。SCのように2文字へ。 - 英字は大文字のみ — 小文字キーが存在せず、
print "hello"はPRINT "HELLO"に直す必要があります(使える文字種)。 - 真は -1・偽は 0 — 関係式の結果は 0/1 ではなく 0/-1。論理演算とビットの扱いがこれに従います(全演算子の優先順位)。
- 文字列は31文字まで — 連結や
LEFT$/MID$の結果が31文字を超えると扱えません(文字列の長さ)。
言語仕様 早見表
| 項目 | 要点 | 詳細 |
|---|---|---|
| 使える文字種 | 数字・英大文字・カナ・記号(小文字/ひらがな/漢字なし) | → |
| 整数の範囲(16bit) | -32768〜+32767。実数なし | → |
| 文字列の長さ | 0〜31文字 | → |
| マルチステートメント | : で1行に複数文 |
→ |
| サブルーチン・ネスト | 固定上限なし(メモリ次第) | → |
| エディタ | スクリーンエディタ | → |
| 画面モード | BG/スプライト/バックドロップの3層 | → |
| 画面解像度 | テキスト28×24 / ドット256×240 / 1字8×8 | → |
| 発色 | 52色のマスタパレット | → |
| サウンド | 同時3音+効果音 | → |
| コントローラ | 十字キー+トリガー(STICK/STRIG) | → |
| ファイル入出力 | カセットテープ(1200ボー) | → |
| 命令数 | 基本74命令 | → |
| アニメキャラ | 内蔵16種類から選ぶ | → |
| 予約語索引 | 全命令の分類+略号一覧 | → |
| 算術演算子の優先順位 | * / > MOD > + - |
→ |
| 全演算子の優先順位 | 算術>関係>論理の10段階 | → |
| 命令解説の表記規則 | [ ] ( ) 《》 等の読み方 |
→ |
| 同梱ソフト | BASIC/計算/伝言/作曲の4ボード | → |
| ROM構成 | プログラム32KB+CHR 8KB | → |
| RAM構成 | 本体2KB/カセット8KB | → |
| 文字表示能力 | 28×24=672文字 | → |
| スプライト表示能力 | 16×16単位/256×240 | → |
| サウンド詳細 | 3重音+効果音の内訳 | → |
| キーボード配列 | HVC-007(ASCII+JISかな) | → |
| 外部インタフェース | テープ用ピンジャック | → |
| メモリバックアップ | カセット内RAMを一定期間保持 | → |
| 外形・重量 | キーボード/カセットの寸法 | → |
| カラーチャート | パレット参照表(4×4×2系統) | → |
各仕様の詳細
使える文字種
📖 規格
使えるのは 数字・英文字・カナ・記号 です。
- 漢字・ひらがなは扱えません(カナ=カタカナのみ)。
- 英文字は大文字のみ。小文字は存在しません(キーボードに小文字キーが無く、キャラクタコード表 B も A-Z のみで a-z は欠番)。
- AI が
print "hello"のように小文字で書いた場合、PRINT "HELLO"に補正する必要があります。
整数の範囲(16bit)
📖 規格
整数の表現範囲は 16ビット符号付き(-32768〜+32767) です。
- 16進表記では
&H0000〜&HFFFF。 - 実数(浮動小数点)はサポートしません — 整数型のみです。
- この範囲を超える演算結果は保証されません(乗算での桁あふれ挙動はエラーコード辞典の ?OV 参照)。
文字列の長さ(31文字)
📖 規格
文字列の長さは 0〜31文字 です。
- 31文字を超える文字列は扱えません。
- 文字列連結や
LEFT$/RIGHT$/MID$の結果が31を超えないよう注意します(超過は?STエラー)。
マルチステートメント
📖 規格
:(コロン)で区切れば、1行に複数の文を書けます。
- 例:
10 A=1:B=2:PRINT A,B
サブルーチン・ネスト
📖 規格
GOSUB のネスト数に固定上限はなく、メモリの範囲内で制限なしです。FOR〜NEXT のネストも同様です。
エディタ
📖 規格
編集はスクリーンエディタ方式です。画面上でカーソルを動かして直接編集します。LIST で表示してからカーソルを戻して再編集するのが基本の流儀です。
画面モード
📖 規格
画面は BG GRAPHIC 面・スプライト面・バックドロップ面の3層です。重ね合わせ表示で、BG GRAPHIC が背景、スプライトが手前、バックドロップが背景色になります。
画面解像度
📖 規格
- テキスト座標は 28列 × 24行(
LOCATEで指定する範囲)。 - ドット単位の座標は 256 × 240(
XPOS/YPOS、SPRITE 系)。 - 1キャラクタは 8×8ドット固定です。
発色
📖 規格
カラーゼネレータは 52色を発色します。同時表示は別途パレット制約があります(PALET 文、カラーチャート参照)。
サウンド
📖 規格
音色・テンポ・3重音・効果音を扱えます。同時発音は3音(3重音)。BEEP / PLAY 文で制御します。
コントローラ
📖 規格
左右コントローラ+トリガースイッチの入力が可能です。読み取りは STICK / STRIG 関数で行います。
ファイル入出力
📖 規格
補助記憶はカセットテープのみ(1200ボー)です。SAVE / LOAD でテキスト・BG GRAPHIC を保存します。
🔵 V3:V3マニュアルには SAVES / LOADS という拡張命令名の記載がありますが、本辞典では未実機検証(規格記載のみ)です。
命令数
📖 規格
命令数は 基本74。全予約語は予約語索引を参照してください。
🔵 V3:V3マニュアルに「V3カセットで新しく追加された」と明記されている予約語は27(AUTO/BACKUP/BGGET/BGPUT/BGTOOL/CAN/CLICK/CRASH/DELETE/ERL/ERR/ERROR/FILTER/FIND/GAME/INSTR/ON ERROR GOTO/RENUM/RESUME/SAVES/LOADS/SCREEN/TRON/TROFF/VCT/VIEW/CVIEW)。うち本辞典で実機観察できたのは FILTER・TRON/TROFF・ON ERROR GOTO・ERR・ERL・RESUME・CAN・CRASH・VCT・INSTR の11語、残りは即値モード操作やBG編集系でマニュアル記載の規格情報のみです(詳細は予約語索引)。
アニメキャラクタ(内蔵16種類)
📖 規格
DEF SPRITE / DEF MOVE で使うアニメキャラクタは、本体内蔵の16種類から選んで使います(任意のドット絵を作って登録するわけではありません)。DEF MOVE の引数 A=0〜15 の順は次のとおりです。
| A | キャラクタ | A | キャラクタ |
|---|---|---|---|
| 0 | マリオ | 8 | スターキラー |
| 1 | レディ | 9 | スターシップ |
| 2 | ファイターフライ(ハエさん) | 10 | 爆発 |
| 3 | アキレス | 11 | ニタニタ |
| 4 | ペンペン(ペンギンさん) | 12 | レーザー(8×8単タイル) |
| 5 | ファイアーボール | 13 | シェルクリーパー(カメさん) |
| 6 | 車 | 14 | サイドステッパー(カニさん) |
| 7 | スピナー | 15 | ニットピッカー(トリさん) |
視覚的な絵柄はキャラクタテーブルA、完全な CHR$ マッピングはスプライト全マップを参照。ユーザがオリジナルキャラを描く方法は CGSET(表示する絵柄セットの切替え)/ BG GRAPHIC(背景)エディタ経由で、こちらは「アニメキャラクタ」とは別系統です。
予約語索引
📖 規格
全予約語を機能別に分類した索引です。各命令の略号は . で終端して省略入力できます(例: PRINT → P.)。
システムコマンド(実行制御)
CLEAR(CLE.) NEW LIST(L.) RUN(R.) CONT(C.) LOAD(LO.) SAVE(SA.) LOAD?(LO.? / LO.P.)
一般ステートメント
代入 PRINT(?, P.) INPUT(I.) LINPUT(LIN.) CLEAR(CLE.) DIM(DI.) GOTO(G.) GOSUB(GOS.) RETURN(RE.) IF~THEN(IF~T.) FOR~TO~STEP(F.~TO~ST.) NEXT(N.) ON~(O.) STOP(STO.) END(E.) SWAP(SW.) REM(略号 ')READ(REA.) DATA(D.) RESTORE(RES.) CALL(CA.) POKE(PO.)
画面制御ステートメント
LOCATE(LOC.) COLOR(COL.) CGEN(CGE.) CLS(CL.) CGSET(CG.) PALET(PAL.B, PAL.S)
MOVE コマンド(スプライトの自動移動)
DEF MOVE(DE.M.) MOVE(M.) CUT(CU.) ERA(ER.) POSITION(POS.) XPOS(XP.) YPOS(YP.) MOVE(n)(M.(n))
特殊ステートメント
KEY(K.) KEYLIST(K.L.) PAUSE(PA.) SYSTEM(S.) VIEW(V.)
サウンド制御
BEEP(B.) PLAY(PL.)
数値関数
ABS(AB.) SGN(SG.) RND(RN.)
文字関数
ASC(AS.) CHR$(CH.) VAL(VA.) STR$(STR.) HEX$(H.) LEFT$(LEF.) RIGHT$(RI.) MID$(MI.) LEN(LE.)
特殊関数
PEEK(PE.) POS FRE(FR.) STICK(STI.) STRIG(STRI.) CSRLIN(CS.) SCR$(SC.)
入出力用文字関数
INKEY$(INK.)
スプライト制御ステートメント
DEF SPRITE(DE.SP.) SPRITE(SP.) SPRITE ON(SP.O.) SPRITE OFF(SP.OF.)
🔵 V3 専用予約語(V2系では未定義)
FILTER(色強調)TRON/TROFF(実行トレース)ON ERROR GOTO/ERL/ERR/RESUME/ERROR(エラートラップ)CAN(スプライト動作取消)CRASH(当たり判定)VCT(移動方向取得)INSTR(文字列検索位置)AUTO/DELETE(DEL.)/RENUM(REN.)/FIND(即値モード編集)CLICK(キークリック音)GAME(内蔵プログラム呼出)BACKUP/SAVES/LOADS(拡張ファイル入出力)BGGET/BGPUT/BGTOOL/VIEW/CVIEW/SCREEN(BG編集系)
算術演算子の優先順位
📖 規格
算術演算子の優先度は高い順に次のとおりです。
*/(乗算・除算)MOD(剰余)+-(加減算)
同じ優先度が並んだら左から順に評価します。順序を変えたいときは ( ) で囲みます。
全演算子の優先順位
📖 規格
全演算子の優先順位は次の10段階です。同じレベルなら左から評価します。
( )— 括弧内- 関数(ABS, RND, ASC, …)
*,/— 乗算・除算MOD— 剰余-,+— 加減算(単項マイナスも可)=,<>,>,<,>=,<=— 関係演算子NOT— 否定AND— 論理積OR— 論理和XOR— 排他的論理和
算術 > 関係 > 論理 の階層なので、IF X > 0 AND X < 10 THEN のような自然な書き方ができます(関係が先に評価される)。なお関係式の結果は真が -1、偽が 0 である点に注意してください。
命令解説の表記規則
📖 規格
本リファレンスの各命令解説は、以下の6ブロックで構成しています。
- 番号(色) … 命令の番号と分類カテゴリ
- 文法 … 引数形式
- 省略形 … 短縮入力形(例:
PRINT→P.) - 説明 … 動作の解説
- サンプルプログラム … 実行例
- デフォルト値 … 引数省略時の値
構文表記の記号:
[ ]… 省略可能( )… 演算優先や引数の括弧,...… 繰り返し可能( | )… 区切られた選択肢《》… メタ要素(型・パラメタの意味)
GAME BASIC モード起動直後の状態(引数省略時の基準): CGEN2(CGEN=表示する絵柄セットの切替え) / SPRITE OFF / POSITION n, 120, 120 / PLAY "O3V15T4M0"(音程の長さ5)/ パレットは BG・SPRITE 用とも配色1。
同梱ソフト(4ボード)
📖 規格
ファミリーベーシック ROM カートリッジには、以下4つの「ボード」が同梱されています。
- BASIC(BG GRAPHIC を含む)— GAME BASIC モード
- カリキュレータボード(CALC) — 関数電卓
- メッセージボード — 伝言板/グラフィック編集
- ミュージックボード — 作曲機能
AI がコードを書くのは主に (1) の GAME BASIC モードです。(2)-(4) は対話的 UI モードで、BASIC コードからの直接呼出は限定的です。
ROM構成
📖 規格
ROM は合計 24KB(仕様欄表記)。
| 領域 | サイズ |
|---|---|
| プログラム用 ROM | 8ビット × 16K × 2 |
| キャラクタジェネレータ ROM | 8ビット × 8K(=8KB) |
仕様欄の「8ビット ×16K×2」は連結表現の可能性があります。実物 ROM ファイル(Family BASIC.nes)は通常32KBなので、プログラム部 32KB + CHR 8KB の慣用解釈で整合します。
RAM構成
📖 規格
RAM は本体内蔵とカセット内蔵に分かれます。
| 領域 | サイズ |
|---|---|
| ワーキングメモリ用バックアップ RAM(カセット側) | 8ビット × 8K(=8KB) |
| 本体内蔵 S-RAM | 8ビット × 2K(=2KB) |
本体2KBは &H0000–&H07FF、カセット8KBは &H7000–&H7FFF 範囲を含みます(全部がユーザ領域ではありません)。
「ファミベは2KBしか使えない」は本体 RAM を指す慣用表現で、実際にプログラムが入るのは BASIC カセット側 RAM の &H7040–&H77FF です。🔵 V3:V3 は RAM 容量が異なるとされますが、本辞典では未実機検証(伝聞)のため具体的な数値は明言しません。
✅ 実機確認(2026-09-08):カセット側RAMは &H7000–&H7FFF より手前にも実在します。BGGET/BGPUT(ステートメント一覧参照)が使うBG面バックアップ用ワークRAMは &H6C00–&H6FFF(1024バイト)にあることを、BGGET前後のメモリ差分比較で確認しました。カセット側の実際の可搬RAM窓は &H6000–&H7FFF(8KB、規格の「8ビット×8K」と一致)で、&H7040–&H77FF(BASICプログラム領域)と &H6C00–&H6FFF(BG面バックアップ領域)はこの8KB窓の中の別々の用途に割り当てられている、という位置づけです。
文字表示能力
📖 規格
- 8×8ドットマトリックス × 28文字 × 24行
- 表示文字種: 英文字+カタカナ+数字+記号+特殊記号(アイコン)+キャラクタ
- 28列 × 24行 = 画面672文字
スプライト表示能力
📖 規格
- 8×8ドット(ただし1スプライトは 16×16ドット=8×8を4枚)
- 256 × 240ドット(BASIC 画面)
- スプライト ON 時の上限・色制約は別エントリで詳細
サウンド詳細
📖 規格
- 2個の効果音(システム的に予約されている可能性)
- 1個の効果音(BEEP 用)
- 同時3重音はサウンドと整合
キーボード配列(HVC-007)
📖 規格
- 配列: ASCII 配列(英、カタカナ50音配列)準拠
- ASCII 配列 + JIS かなのハイブリッド
- キーの種類: 文字キー、ファンクションキー(F1-F8)、カーソルキー
外部インタフェース
📖 規格
- カセットテープ用ピンインタフェース — 1200ボー
- 3.5φ プラグで READ・WRITE 接続可
- これが
SAVE/LOADで使うピンジャック
メモリバックアップ
📖 規格
電源を切っても、BASIC カセット内 RAM の内容を一定期間保持します(バックアップスイッチ)。
外形・重量
📖 規格
- キーボード(HVC-007): 368(W) × 163(D) × 54(H) mm
- カセット(HVC-FB): 110(W) × 110(D) × 17(H) mm
- 重量: キーボード 956g/カセット 95g(電池含まず)
- 電源/環境: 使用湿度 35〜75% など
カラーチャート
📖 規格
CGSET 文や DEF SPRITE / DEF MOVE で指定するカラーコードの参照表です。
- スプライト用パレット: 4つのパレットセット × 各4色
- バックグラウンド用パレット: 4つのパレットセット × 各4色
- 各パレットは色番号で指定し、
PALET文で切り替えます。
各パレットの色番号は 52色のマスタパレットから選びます。同時表示できる色はスプライト16色+BG16色程度。透明色(背景色=パレット0)はスプライト用と BG 用で共通です。
文字コード
ここからは、画面に出せる文字・スプライトのコード表です。PRINT / CHR$()(文字コードから文字や絵柄を得る関数)/ ASC() で使うテキストコードと、DEF SPRITE / DEF MOVE で使うスプライトコードに分かれます。AI が見落としやすいのは コード92が \ ではなく ¥(円記号) という JIS の慣例です。
文字コード 早見表
| 項目 | 要点 | 詳細 |
|---|---|---|
| スプライト用コード表A | 0-255、キャラごとにポーズ可変 | → |
| BG/キーボード用コード | PRINT/CHR$/ASC で使うテキスト体系 | → |
| キャラクタテーブルB(視覚) | BG GRAPHIC 用の元画像格子 | → |
| キャラクタテーブルA(視覚) | スプライト絵柄の一覧 | → |
| 8×8単タイルスプライト | レーザー208-213、弾丸向き | → |
| スプライト全マップ | キャラ×ポーズ×CHR$の網羅 | → |
| BGグラフィック領域(視覚) | CHR$176-255の絵柄格子・配色スワッチ | → |
カンマ , |
オペランド区切り/PRINT のタブ揃え | → |
コロン : |
マルチステートメント区切り | → |
セミコロン ; |
PRINT の密着連結 | → |
クエスチョン ? |
PRINT の代用 | → |
&H 接頭辞 |
16進数リテラル | → |
| CTRL コード表 | CTR+キーの制御コード一覧 | → |
各文字コードの詳細
スプライト用コード表A(0-255)
📖 規格
DEF SPRITE / SPRITE 文で n として指定するスプライトキャラクタの ID です。各 ID にプリセットの絵柄が割り当てられています。キャラごとにポーズ数は可変(2〜7)で、32コード均等ではありません。確定マップはスプライト全マップを参照。
| コード範囲 | キャラクタ | ポーズ数 |
|---|---|---|
| 0-27 | マリオ | 7 |
| 28-55 | レディ | 7 |
| 56-63 | ファイターフライ(ハエさん) | 2 |
| 64-87 | アキレス | 6 |
| 88-95 | ニタニタ | 2 |
| 96-111 | ペンペン(ペンギンさん) | 4 |
| 112-119 | ファイアーボール | 2 |
| 120-143 | 車 | 6 |
| 144-151 | スピナー | 2 |
| 152-163 | スターキラー | 3 |
| 164-175 | スターシップ | 3 |
| 176-183 | 爆発 | 2 |
| 184-191 | シェルクリーパー(カメさん) | 2 |
| 192-199 | サイドステッパー(カニさん) | 2 |
| 200-207 | ニットピッカー(トリさん) | 2 |
| 208-213 | レーザー(8×8単タイル) | 6 |
AI 向け注意(CGSET の永続レジスタ罠): CGSET b,s は電源投入直後の状態を含めて値が保持され続ける永続ハードウェアレジスタです。プログラム中で明示的に CGSET b,s を呼ばない限り、直前に実行した別の処理が残した値をそのまま引き継ぎます。「絵柄・配色が意図と違う」ときは、まず CGSET を明示しているか確認してください。同様に COLOR x,y,n は指定したそのセル1つだけを塗り替える命令で、CGSET のように「以降ぜんぶに効く既定の配色」にはなりません。
BGグラフィック領域(CHR$176-255・視覚版)
📖 規格
CHR$(176)〜CHR$(255) の80コードに割り当てられた BG グラフィック(ブロック・罫線・アイテム風の絵柄)を、実機(nesemu-vibe)キャプチャで検証した一覧です。キャラクタテーブルB(BG GRAPHIC・CGEN1、コード0-31相当)とは別領域なので混同しないでください。
各セル上段がそのコードの絵柄(既定配色)、下段が CGSET b,s の b(0〜1、上段/下段)× COLOR x,y,n の配色番号(0〜3、左〜右)の組み合わせ2×4=8通りすべてのスワッチです。電源投入直後・CGSET/COLOR 未指定の既定状態は実機検証で CGSET 0,1(b=1)・配色0と完全一致しました(CGSET 0,0 の b=0側は CGSET を明示的に呼んだときのみ出現する別配色で、こちらを既定と誤認しないよう注意してください)。
| コード | 絵柄 | コード | 絵柄 |
|---|---|---|---|
| 176 | 枠(空の四角) | 177 | 小さな四角 |
| 178 | [ 記号 | 179 | ] 記号 |
| 180 | ©記号 | 181 | ×記号 |
| 182 | ÷記号 | 183 | ファ(音符名・ミュージックボード) |
| 184 | 短い横線 | 185 | 山形(鳥の翼風) |
| 186 | 縦縞(柵・草) | 187 | 角の切込み |
| 188 | 二重横線(レンガ) | 189 | 横線(太) |
| 190 | 不明(要確認) | 191 | L字コーナー |
| 192 | ブロック | 193 | ブロックの亜種 |
| 194 | 氷 | 195 | レンガ |
| 196 | カプセル/魚雷(左) | 197 | カプセル/魚雷(中) |
| 198 | カプセル/魚雷(右) | 199 | 旗(ポール付き) |
| 200 | 岩山の斜面(1) | 201 | 岩山の斜面(2) |
| 202 | 岩山の斜面(3) | 203 | 岩山の斜面(4) |
| 204 | 地面 | 205 | 星空 |
| 206 | 星空(要確認) | 207 | ボール(ハイライト付き) |
| 208 | リフト(1) | 209 | リフト(2) |
| 210 | はしご | 211 | 鎖 |
| 212 | ツタ | 213 | 木(縦) |
| 214 | 木(横) | 215 | りんご |
| 216 | 島(雲でも可) | 217 | 島(雲でも可) |
| 218 | 島(雲でも可) | 219 | 島(雲でも可) |
| 220 | 島の台座 | 221 | 罫線(中抜き) |
| 222 | 罫線(中抜き) | 223 | 罫線(中抜き・横二重) |
| 224 | 罫線(中抜き・曲げ角) | 225 | 罫線(中抜き・曲げ角) |
| 226 | 罫線(中抜き・縦二重) | 227 | 罫線(中抜き・横三重) |
| 228 | 罫線(中抜き・角) | 229 | 罫線(中抜き・角) |
| 230 | 罫線(中抜き・丸角、要確認) | 231 | 罫線(中抜き・十字) |
| 232 | 罫線・T字 | 233 | 罫線・T字 |
| 234 | 罫線・T字 | 235 | 罫線・T字/クレーン型 |
| 236 | 罫線・十字 | 237 | 罫線・縦 |
| 238 | 罫線・斜め(要確認) | 239 | 罫線・斜め(要確認) |
| 240 | 罫線・斜め(小) | 241 | 罫線・曲げ |
| 242 | 罫線・角 | 243 | 額縁(角) |
| 244 | 額縁(辺) | 245 | 額縁(角) |
| 246 | 額縁(辺・ベタ) | 247 | 額縁(角バリエーション、要確認) |
| 248 | 額縁(角バリエーション) | 249 | インク壺の部品(1) |
| 250 | インク壺の部品(2)(要確認) | 251 | インク壺の部品(3)(要確認) |
| 252 | インク壺の部品(4)(要確認) | 253 | ベタ塗りブロック(白) |
| 254 | ベタ塗りブロック(水色) | 255 | ベタ塗りブロック(紺) |
「要確認」を付けたコード(190, 206, 230, 238, 239, 247, 250, 251, 252)は、画像上で絵柄自体は確認できていますが、実機での名称・用途の確定はユーザーの実地知識待ちです。
BG/キーボード用キャラクタコード(PRINT 用)
📖 規格
BASIC 上で扱う「テキスト」のコード体系です。PRINT、CHR$()、ASC() を使うときの参照になります。
コード 0-31: グラフィック領域(CGEN1)
各コードに (A0)〜(D7) のような CGEN ID(絵柄セット内での絵柄の位置を表す識別子)が割り当てられた小キャラクタ。コード値は ASCII 制御コード位置と重なりますが、CGSET で割り当てられたグラフィックパターンとして表示されます。
コード 32-95: ASCII 互換領域
下表のコード番号に併記した ($20) などは、そのコードを16進数で表したものです。
| コード | 文字 | コード | 文字 |
|---|---|---|---|
| 32 ($20) | (空白) | 64 ($40) | @ |
| 33 ($21) | ! | 65 ($41) | A |
| 34 ($22) | “ | 66-90 | B-Z(連続) |
| 35 ($23) | # | 91 ($5B) | [ |
| 36 ($24) | $ | 92 ($5C) | ¥(円記号) |
| 37 ($25) | % | 93 ($5D) | ] |
| 38 ($26) | & | 94 ($5E) | ^ |
| 39 ($27) | ‘ | 95 ($5F) | _ |
| 40-47 ($28-$2F) | ( ) * + , – . / | ||
| 48-57 ($30-$39) | 0-9 | ||
| 58-63 ($3A-$3F) | : ; < = > ? |
コード 96-127: カタカナ領域(JIS X 0201 半角カタカナ相当)
| コード | 文字 | コード | 文字 | コード | 文字 | コード | 文字 |
|---|---|---|---|---|---|---|---|
| 96 ($60) | ア | 104 ($68) | ケ | 112 ($70) | チ | 120 ($78) | ノ |
| 97 ($61) | イ | 105 ($69) | コ | 113 ($71) | ツ | 121 ($79) | ハ |
| 98 ($62) | ウ | 106 ($6A) | サ | 114 ($72) | テ | 122 ($7A) | ヒ |
| 99 ($63) | エ | 107 ($6B) | シ | 115 ($73) | ト | 123 ($7B) | フ |
| 100 ($64) | オ | 108 ($6C) | ス | 116 ($74) | ナ | 124 ($7C) | ヘ |
| 101 ($65) | カ | 109 ($6D) | セ | 117 ($75) | ニ | 125 ($7D) | ホ |
| 102 ($66) | キ | 110 ($6E) | ソ | 118 ($76) | ヌ | 126 ($7E) | マ |
| 103 ($67) | ク | 111 ($6F) | タ | 119 ($77) | ネ | 127 ($7F) | ミ |
AI 向け重要事項
- コード92は
\(バックスラッシュ)ではなく¥(円記号) — JIS の慣例です。 - 漢字・ひらがなは扱えません(カタカナのみ)。
PRINTで英数字を出すときは ASCII 互換でほぼ問題ありません。PRINTで日本語を出すときは半角カタカナのみ。文字列は"アイウ"のように直接書きます。- 0-31 のグラフィックは
CHR$(0)等で直接出力するか、CGEN/CGSET 経由で扱います。
キャラクタテーブルB(BG GRAPHIC・視覚版)
📖 規格
13行(A〜M)× 16列(0〜F)の格子で、各セルに BG GRAPHIC 用の 8×8ドットグラフィックパターンが描かれています。
- BG GRAPHIC モード / CGSELECT(表示する絵柄セットの選択)で表示・選択する元画像です。
- 各セルの位置「行アルファベット+列16進数」が CGEN1 ID(例: A0, A1, …, M9)になります。
- 例: ロボット風キャラを描くなら、テーブルBの特定セル群を選んで配置します。
キャラクタテーブルA(スプライト・視覚版)
📖 規格
スプライトとして使えるアニメキャラクタの絵柄一覧(見開き1ページ)。各キャラごとにポーズ数は可変で、8×8単タイルのレーザーまで含めて合計256コードです。主要キャラクタ(DEF MOVE の A 引数)はアニメキャラクタの表と同じ並びです。詳細マップはスプライト全マップ(16×16)と8×8レーザー(8×8)を参照。
各行の画像は実機(nesemu-vibe)キャプチャです。上段がそのキャラの全ポーズ、下段が CGSET b,s の s(0〜2、行)× DEF SPRITE の配色番号(0〜3、列)の組み合わせ3×4=12通りすべてです。スプライト用パレットは BG 用パレットとは別に、s(色グループ)ごとに4つずつ独立して存在します。
| 画像 | コード範囲 | キャラクタ | ポーズ数 | 見た目の特徴 | 向いているジャンル・用途 | 備考 |
|---|---|---|---|---|---|---|
| 0-27 | マリオ | 7 | 青いオーバーオール+赤い帽子の人型。WALK1〜3・JUMP・スリップ・はしご・DOWNの7ポーズを完備。 | アクション/プラットフォーマーの主人公 | 歩行アニメはWALK1→2→3→1の順。向き変えは左右反転(D=1)で可能。 | |
| 28-55 | レディ | 7 | マリオと同一シルエット・同一7ポーズ構成(色/パレット違いで差別化)。 | ヒロイン/2人目のプレイヤーキャラ、パートナーNPC | CHR$配置はマリオと完全並行(28ずつオフセット)。 | |
| 56-63 | ファイターフライ(ハエさん) | 2 | 左右に大きく広がる羽を持つ昆虫型。羽の開閉2ポーズ。 | 左右移動する小型の飛行雑魚敵 | 左右反転だけで向き変え可能。 | |
| 64-87 | アキレス | 6 | 丸っこい甲羅と触角を持つ生物。左向き2種・左上向き2種・上向き2種。 | 斜め方向にも動く徘徊敵、ボス系の雑魚 | 方向ごとに別範囲を使う必要があり、反転だけでは上向き/斜めは作れない。 | |
| 88-95 | ニタニタ | 2 | 縞模様の丸いボール状の生物。口の開閉2ポーズ。 | シンプルな雑魚敵、コロコロ転がる障害物 | 左右反転で向き変え可。 | |
| 96-111 | ペンペン(ペンギンさん) | 4 | 白黒のペンギン。左歩き2種+正面+後ろ姿。 | 愛嬌のある雑魚敵、ほのぼの系NPC | 正面・後ろ姿があるため上下移動の表現にも使える。 | |
| 112-119 | ファイアーボール | 2 | 火の粉を纏った弾状の物体。火の粉あり/なしの2ポーズ。 | 飛び道具、敵の攻撃弾、炎属性エフェクト | 左右反転で進行方向に合わせる。 | |
| 120-143 | 車 | 6 | 小型車を斜め上から見た視点。左向き2種・左上向き2種・上向き2種。 | 見下ろし型レース/ドライブゲーム、道路を走る背景キャラ | アキレスと同様、方向ごとに別範囲。 | |
| 144-151 | スピナー | 2 | 十字(+)型と×型が交互に切り替わる、回転する物体。 | 回転する障害物・トラップ | 反転しても見た目はほぼ同じ。 | |
| 152-163 | スターキラー | 3 | とげとげした機雷/ロボットのような形。左・左上・上の3方向。 | シューティングの敵キャラ、機雷トラップ | 方向ごとに別範囲(左右反転だけでは全方向を作れない)。 | |
| 164-175 | スターシップ | 3 | 左・左上・上向きの宇宙船。上向き(172-175)はロケット/UFOのような縦長シルエット。 | 縦シューティングの自機・僚機 | 縦シューティングの自機を上向きにするなら172-175を使う。164-167をそのまま使うと横向きのまま表示される。 | |
| 176-183 | 爆発 | 2 | 小爆発→大爆発のエフェクト。 | 着弾・撃破エフェクト全般 | — | |
| 184-191 | シェルクリーパー(カメさん) | 2 | 甲羅を持つカメ型。口の開閉2ポーズ。 | 徘徊する雑魚敵 | 左右反転で向き変え。 | |
| 192-199 | サイドステッパー(カニさん) | 2 | 横歩きするカニ型。 | 左右に素早く動く雑魚敵 | 左右反転で向き変え。 | |
| 200-207 | ニットピッカー(トリさん) | 2 | 小鳥型。口の開閉2ポーズ。 | 飛行する雑魚敵 | 左右反転で向き変え。 | |
| 208-213 | レーザー(8×8単タイル) | 6(よこ2/ななめ2/たて2) | 短い光条。よこ・ななめ・たての3方向×2バリエーション。 | 弾丸・銃弾・ミサイル表現に最適(全方向シューティングの弾) | 唯一8×8単タイル。DEF SPRITEのB=0+CHR$1つで定義(16×16用の4連結とは異なる)。縦シューティングなら210/211、横シューティングなら208/209を使う。上下左右反転(D,E)で8方向に拡張可。詳細は8×8レーザーを参照。 |
8×8単タイルスプライト(レーザー 208-213)
📖 規格
コード表Aの末尾(208〜213 の6個)は 8×8ドット単タイルのスプライトです。レーザーの向き × バリエーションで構成されています。画像はキャラクタテーブルAのレーザー行を参照してください。
| コード | 内容 | コード | 内容 |
|---|---|---|---|
| 208 | レーザー(よこ1) | 211 | レーザー(ななめ2) |
| 209 | レーザー(よこ2) | 212 | レーザー(たて1) |
| 210 | レーザー(ななめ1) | 213 | レーザー(たて2) |
(向き3種 × バリエーション2)。上下左右反転を組み合わせると8方向に拡張できます。
使い方:8×8単タイルなので DEF SPRITE の B 引数 = 0 + CHR$ 1つで定義します(16×16用の4連結とは異なる)。
- 既設キャラとしては「レーザー」ですが、弾丸/銃弾/ミサイルの表現に最適(8×8=1タイルで軽い)。
- 4タイル組合せが不要なので、AI が単純に1つの CHR$ コードを指定するだけで完成します。「ボールが画面を跳ね返る」のような課題で弾代わりに使うのが正解です。
- 縦シューティングなら 210/211(たて)、横シューティングなら 208/209(よこ)を使い分けます。
注意点:16×16スプライト(マリオ等)と混在可能(DEF SPRITE で B=0/B=1 を指定)。同時表示は8個まで(n = 0-7、16×16と8×8の合計)。8×8には X 反転(D=1)・Y 反転(E=1)も指定でき、4タイル並び替えは不要です(単純にビット反転)。
スプライト全マップ(キャラ × ポーズ × CHR$)
📖 規格
コード表Aの全16種類について、CHR$ コードとポーズの対応を網羅したマップです。キャラごとにポーズ数は可変(2〜7)で、32コード均等ではありません。8×8単タイルのレーザー(208-213)は8×8レーザーを参照。
全体マップ(キャラ → コード範囲)
| コード範囲 | キャラクタ | ポーズ数 | DEF MOVE A |
|---|---|---|---|
| 0-27 | マリオ | 7 | 0 |
| 28-55 | レディ | 7 | 1 |
| 56-63 | ファイターフライ(ハエさん) | 2 | 2 |
| 64-87 | アキレス | 6 | 3 |
| 88-95 | ニタニタ | 2 | 11 |
| 96-111 | ペンペン(ペンギンさん) | 4 | 4 |
| 112-119 | ファイアーボール | 2 | 5 |
| 120-143 | 車 | 6 | 6 |
| 144-151 | スピナー | 2 | 7 |
| 152-163 | スターキラー | 3 | 8 |
| 164-175 | スターシップ | 3 | 9 |
| 176-183 | 爆発 | 2 | 10 |
| 184-191 | シェルクリーパー(カメさん) | 2 | 13 |
| 192-199 | サイドステッパー(カニさん) | 2 | 14 |
| 200-207 | ニットピッカー(トリさん) | 2 | 15 |
| 208-213 | レーザー(8×8単タイル、別エントリ参照) | 6 | 12 |
マリオ(7ポーズ、コード0-27)の CHR$ 並びは次のとおりです。全ポーズの元向きは左向きで、右向きは L/R 列入れ替え+X 反転フラグで作ります(合成規則は別エントリ)。
| ポーズ | CHR$ 並び | 備考 |
|---|---|---|
| WALK1 | CHR$(0)+CHR$(1)+CHR$(2)+CHR$(3) |
立ち |
| WALK2 | CHR$(4)+CHR$(5)+CHR$(6)+CHR$(7) |
歩き1 |
| WALK3 | CHR$(8)+CHR$(9)+CHR$(10)+CHR$(11) |
歩き2 |
| JUMP | CHR$(12)+CHR$(13)+CHR$(14)+CHR$(15) |
ジャンプ |
| スリップ | CHR$(16)+CHR$(17)+CHR$(18)+CHR$(19) |
転倒/滑り |
| はしご | CHR$(20)+CHR$(21)+CHR$(22)+CHR$(23) |
右手が上 |
| DOWN | CHR$(24)+CHR$(25)+CHR$(26)+CHR$(27) |
下向き |
歩行アニメは WALK1→WALK2→WALK3→WALK1 の順。他キャラも同様に、コード範囲の先頭から4コードずつ(8×8を4枚)で1ポーズを構成しますが、「向き変え=左右反転」が成り立つのは2ポーズ系のキャラだけです。スターシップ・スターキラーのような3ポーズ系、アキレス・車のような6ポーズ系は、方向(左/左上/上)ごとに別々のCHR$範囲を使う必要があり、左右反転だけでは上向き・斜め向きは作れません(反転で作れるのは残り5方向)。以下、全16キャラの内訳です。
レディ(7ポーズ、コード28-55) — マリオと同じ構成
| ポーズ | CHR$ 並び |
|---|---|
| WALK1 | CHR$(28)+CHR$(29)+CHR$(30)+CHR$(31) |
| WALK2 | CHR$(32)+CHR$(33)+CHR$(34)+CHR$(35) |
| WALK3 | CHR$(36)+CHR$(37)+CHR$(38)+CHR$(39) |
| JUMP | CHR$(40)+CHR$(41)+CHR$(42)+CHR$(43) |
| スリップ | CHR$(44)+CHR$(45)+CHR$(46)+CHR$(47) |
| はしご | CHR$(48)+CHR$(49)+CHR$(50)+CHR$(51) |
| DOWN | CHR$(52)+CHR$(53)+CHR$(54)+CHR$(55) |
ファイターフライ/ハエさん(2ポーズ、コード56-63) — 左右反転で向き変え可
| ポーズ | CHR$ 並び | 備考 |
|---|---|---|
| (1) 羽が開 | CHR$(56)+CHR$(57)+CHR$(58)+CHR$(59) |
左向き |
| (2) 羽が閉 | CHR$(60)+CHR$(61)+CHR$(62)+CHR$(63) |
左向き |
アキレス(6ポーズ、コード64-87) — 方向ごとに別範囲、左右反転だけでは上向き・斜めは作れない
| ポーズ | CHR$ 並び | 備考 |
|---|---|---|
| (左1) | CHR$(64)+CHR$(65)+CHR$(66)+CHR$(67) |
左向き |
| (左2) | CHR$(68)+CHR$(69)+CHR$(70)+CHR$(71) |
左向き |
| (左上1) | CHR$(72)+CHR$(73)+CHR$(74)+CHR$(75) |
左上向き |
| (左上2) | CHR$(76)+CHR$(77)+CHR$(78)+CHR$(79) |
左上向き |
| (上1) | CHR$(80)+CHR$(81)+CHR$(82)+CHR$(83) |
上向き |
| (上2) | CHR$(84)+CHR$(85)+CHR$(86)+CHR$(87) |
上向き |
ニタニタ(2ポーズ、コード88-95) — 左右反転で向き変え可
| ポーズ | CHR$ 並び | 備考 |
|---|---|---|
| (1) 口が開 | CHR$(88)+CHR$(89)+CHR$(90)+CHR$(91) |
|
| (2) 口が閉 | CHR$(92)+CHR$(93)+CHR$(94)+CHR$(95) |
ペンペン/ペンギンさん(4ポーズ、コード96-111)
| ポーズ | CHR$ 並び | 備考 |
|---|---|---|
| (左歩1) 足下げ | CHR$(96)+CHR$(97)+CHR$(98)+CHR$(99) |
左向き |
| (左歩2) 足上げ | CHR$(100)+CHR$(101)+CHR$(102)+CHR$(103) |
左向き |
| (正面) | CHR$(104)+CHR$(105)+CHR$(106)+CHR$(107) |
正面 |
| (後ろ) | CHR$(108)+CHR$(109)+CHR$(110)+CHR$(111) |
後ろ |
ファイアーボール(2ポーズ、コード112-119) — 左右反転で進行方向に合わせる
| ポーズ | CHR$ 並び | 備考 |
|---|---|---|
| (1) 火の粉あり | CHR$(112)+CHR$(113)+CHR$(114)+CHR$(115) |
左向き |
| (2) 火の粉なし | CHR$(116)+CHR$(117)+CHR$(118)+CHR$(119) |
左向き |
車(6ポーズ、コード120-143) — 方向ごとに別範囲
| ポーズ | CHR$ 並び | 備考 |
|---|---|---|
| (左1) | CHR$(120)+CHR$(121)+CHR$(122)+CHR$(123) |
左向き |
| (左2) | CHR$(124)+CHR$(125)+CHR$(126)+CHR$(127) |
左向き |
| (左上1) | CHR$(128)+CHR$(129)+CHR$(130)+CHR$(131) |
左上向き |
| (左上2) | CHR$(132)+CHR$(133)+CHR$(134)+CHR$(135) |
左上向き |
| (上1) | CHR$(136)+CHR$(137)+CHR$(138)+CHR$(139) |
上向き |
| (上2) | CHR$(140)+CHR$(141)+CHR$(142)+CHR$(143) |
上向き |
スピナー(2ポーズ、コード144-151) — 反転しても見た目はほぼ同じ
| ポーズ | CHR$ 並び | 備考 |
|---|---|---|
| (1) +型 | CHR$(144)+CHR$(145)+CHR$(146)+CHR$(147) |
クロス |
| (2) ×型 | CHR$(148)+CHR$(149)+CHR$(150)+CHR$(151) |
バツ |
スターキラー(3ポーズ、コード152-163) — 方向ごとに別範囲
| ポーズ | CHR$ 並び |
|---|---|
| (1) 左 | CHR$(152)+CHR$(153)+CHR$(154)+CHR$(155) |
| (2) 左上 | CHR$(156)+CHR$(157)+CHR$(158)+CHR$(159) |
| (3) 上 | CHR$(160)+CHR$(161)+CHR$(162)+CHR$(163) |
スターシップ(3ポーズ、コード164-175) — 方向ごとに別範囲。縦シューティングの自機を上向きにするなら(3)の172-175を使う((1)左向き164-167を単純に使うと横向きのまま表示される)
| ポーズ | CHR$ 並び |
|---|---|
| (1) 左 | CHR$(164)+CHR$(165)+CHR$(166)+CHR$(167) |
| (2) 左上 | CHR$(168)+CHR$(169)+CHR$(170)+CHR$(171) |
| (3) 上 | CHR$(172)+CHR$(173)+CHR$(174)+CHR$(175) |
爆発(2ポーズ、コード176-183)
| ポーズ | CHR$ 並び | 備考 |
|---|---|---|
| (1) 小 | CHR$(176)+CHR$(177)+CHR$(178)+CHR$(179) |
小爆発 |
| (2) 大 | CHR$(180)+CHR$(181)+CHR$(182)+CHR$(183) |
大爆発 |
シェルクリーパー/カメさん(2ポーズ、コード184-191) — 左右反転で向き変え
| ポーズ | CHR$ 並び | 備考 |
|---|---|---|
| (1) 口が開 | CHR$(184)+CHR$(185)+CHR$(186)+CHR$(187) |
左向き |
| (2) 口が閉 | CHR$(188)+CHR$(189)+CHR$(190)+CHR$(191) |
左向き |
サイドステッパー/カニさん(2ポーズ、コード192-199) — 左右反転で向き変え
| ポーズ | CHR$ 並び | 備考 |
|---|---|---|
| (1) | CHR$(192)+CHR$(193)+CHR$(194)+CHR$(195) |
左向き |
| (2) | CHR$(196)+CHR$(197)+CHR$(198)+CHR$(199) |
左向き |
ニットピッカー/トリさん(2ポーズ、コード200-207) — 左右反転で向き変え
| ポーズ | CHR$ 並び | 備考 |
|---|---|---|
| (1) 口が閉 | CHR$(200)+CHR$(201)+CHR$(202)+CHR$(203) |
左向き |
| (2) 口が開 | CHR$(204)+CHR$(205)+CHR$(206)+CHR$(207) |
左向き |
8×8単タイルのレーザー(208-213)は8×8レーザーを参照。
カンマ,
📖 規格
カンマ , でオペランドを区切ります。
PRINT,INPUT,DATA等で複数値を区切ります。PRINTで,を使うと次の出力ブロックの先頭に揃えて出力されます(画面幅28文字を 8+8+8+4 の4ブロックに分割、先頭は 0, 8, 16, 24)。DATA文では値の区切りです。
コロン:
📖 規格
コロン : でマルチステートメントを区切ります。
- 1行内で複数文を並べるときに使います。
- 条件分岐内のブロック相当の代用になります。
- 1行255桁の制限内で詰め込む手段です。
セミコロン;
📖 規格
セミコロン ; で PRINT の出力を密着連結します。
PRINT文で値を密着して出力します(タブ揃えしない)。- 末尾
;で改行を抑制します。 INPUT文ではプロンプト文字列と入力欄の区切りになります。
クエスチョンマーク?
📖 規格
クエスチョンマーク ? は PRINT の代用です。
?単独でPRINTとして機能します。- キー入力短縮の常套手段です。
LISTするとPRINTに展開されて表示されます。
&H接頭辞(16進数)
📖 規格
&H 接頭辞で16進数リテラルを表します。
&Hで始まる数値リテラルは16進数です。- それ以外は10進数として解釈されます。
- 範囲は
&H0000〜&HFFFF(16ビット符号なしと等価)。 - メモリアドレス、ビットマスク等で頻用します。
CTRL コード表
📖 規格
CTR + X(INS キーを押しながら X キー)の制御コード一覧です。プログラム中で CHR$() で送出できる場合もあります(要確認)。
| キー | 機能 | キー | 機能 |
|---|---|---|---|
| CTR+A | INS モード ON/OFF | CTR+K | カーソル上(↑)と同じ |
| CTR+C | BREAK(実行中の中断) | CTR+L | 画面クリア |
| CTR+D | 起動設定: CGEN2, SPRITE OFF | CTR+M | 1行入力(キャリッジリターン) |
| CTR+E | カラーパレットをリセット | CTR+R | INS と同じ |
| CTR+F | カーソル位置1行分の消去 | CTR+S | カナキーロック |
| CTR+G | BEEP 音を出す | CTR+W | 英・数字を制御 |
| CTR+H | DEL と同じ | CTR+Z | カーソル位置以降画面下までクリア |
| CTR+I | ラインフィード(TAB 相当) |
どうやって確かめたか
このページは命令の前提となる「言語仕様」と「文字コード」が中心のため、大半はマニュアル記載の規格値です。そのうち実機で挙動を確認できたもの(変数名の3文字無視、演算子前後のスペース要否)は、Family BASIC のエミュレータにコードを流し込み、RUN 後の画面表示をそのまま記録しています。検証の詳細は連載で扱っています。
関連
- 辞典の総目次:ファミリーベーシック 命令辞典
- 制作の物語(hub):命令・コマンド完全リファレンス
- 他カテゴリ:ステートメント/関数/演算子・記法/エラーコード/システム・メモリ/仕様・文字コード
