LEVEL-3 BASICワークエリア
アドレス(HEX) | 概要 | 内容 |
---|---|---|
0006 | 変数の型 | 最後に操作した変数の型。(2:整数型、3:文字列型、4:単精度実数型、8:倍精度実数型) |
001D ... 001E | BASIC領域開始アドレス | BASICプログラムはここで示したアドレス以降に格納される。 |
001F ... 0020 | 単純変数の開始アドレス | 単純変数の開始アドレス |
0021 ... 0022 | 配列変数の開始アドレス | 配列変数の開始アドレス |
0023 ... 0024 | 空きエリア開始アドレス | BASICが使用する空きエリアの開始アドレス |
0025 ... 0026 | 文字領域開始アドレス | 文字領域の開始アドレス。スタックポインタの基準アドレスにもなる。(CLEAR文) |
0027 ... 0028 | 文字領域空き終了アドレス | このアドレス以降に実際の文字列が格納されている。 |
0029 ... 002A | 現在使用している文字列 | 現在使用している文字列の末尾+1 |
002B ... 002C | BASIC領域終了アドレス | BASICが使用する領域の最終アドレス (CLEAR文) |
002D ... 002E | 現在実行中の行番号 | BASICプログラム実行中の行番号。初期化すると$FFFF。 |
002F ... 0030 | CONTで再開する行番号 | |
0033 ... 0034 | CONTで再開するアドレス | CONT文で実行再開する際のBASICプログラムがあるアドレス。 |
0035 ... 0036 | 現在実行中のアドレス | BASICプログラム実行中のBASICプログラムがあるアドレス。 |
003D | 変数名の長さ | 最後に操作した変数名。変数どうしの代入では代入元変数。 |
003E ... 003F | 変数の値格納先 | 最後に操作した変数の格納先アドレス。変数どうしの代入では代入元変数のアドレス。 |
0040 ... 0041 | 変数の値格納先 | 最後に操作した変数の格納先アドレス。変数どうしの代入では代入先変数のアドレス。 |
0056 ... 005E | 浮動小数点アキュムレータ(FAC) | 実数演算時に使用するほか、USR関数呼び出し時に引数が格納され、USR関数の戻り値にもなる。 |
008B | エラー番号 | エラー発生時のエラー番号 |
008C ... 008D | エラー行番号 | エラーが発生した行番号。プログラム未実行時は$FFFF。 |
008E ... 008F | スタックポインタ一時保存 | スタックポインタを一時保存する(エラー発生時にBASICコマンドラインに戻るためのスタックポインタ?) |
009E | ファイル番号 | $0 ~ $63 |
00A2 | 文字数 | 1行の文字数(WIDTH文) |
00A3 ... 00A4 | 画面開始アドレス | 表示ページ画面の開始アドレス |
00A5 ... 00A6 | 画面終了アドレス | 表示ページ画面の終了アドレス+1 |
00A7 | スクリーンモード | $00:40字ノーマル、$01:80字ノーマル、 $02:40字ハイレゾ、 $03:80字ハイレゾ |
00BC ... 00BD | 入力バッファポインタ | $0278 |
00FD | リセットフラグ | $55以外を指定すると、RESETボタン押下(RES割込み)でリセットがかかる。 $55を指定すると、RESETボタン押下(RES割込み)で'Abort'となる。 |
00FE ... 00FF | リセット割り込みベクタ | RESETボタン押下時(RES割込み)のジャンプ先を指定する。 なお、ジャンプ先の先頭データは$12でなければならない。 |
0100 ... 0102 | SWI3 HOOK | SWI3割り込み発生時にここにジャンプする。 |
0103 ... 0105 | SWI2 HOOK | SWI2割り込み発生時にここにジャンプする。 |
0106 ... 0108 | SWI HOOK | SWI割り込み発生時にここにジャンプする。 |
0109 ... 010B | NMI HOOK | NMI割り込み発生時にここにジャンプする。 |
010C ... 010E | IRQ HOOK | IRQ割り込み発生時にここにジャンプする。 |
010F ... 0111 | FIRQ HOOK | FIRQ割り込み発生時にここにジャンプする。 |
0112 | プリンタに送信しないコード | LPT0:に送信しないコード。デフォルトは復帰コード($0D) |
0113 | プリンタに送信しないコード | LPT1:に送信しないコード。デフォルトは復帰コード($0D) |
0114 | プリンタに送信しないコード | LPT2:に送信しないコード。デフォルトは復帰コード($0D) |
0115 | カーソル状態 | $00:ブリンクせず、$20:カーソル非表示、$40:高速ブリンク、$60:低速ブリンク(デフォルト)(LOCATE文) |
0116 | 文字色設定 | bit0~bit3:文字色、bit4=1ならグラフィック表示、bit5=1ならIGキャラクタ表示 (文字色についてはCOLOR文参照) |
0119 | カセット 中間GAPの長さ | 途中の「ぴー」の長さを指定。 $0A |
011A | カセット 初期GAPの長さ | 最初の「ぴー」の長さを指定。 600ボーの時 $5A 、1200ボーの時 $C0 を指定する。 |
011B | デフォルトデバイス | LOAD,SAVEなどでデバイス名を省略した時のデバイス番号($02:CAS, $80:フロッピーディスク) |
0120 | BASIC命令の数 | BASIC命令文の数 |
0121 ... 0122 | 命令文格納先アドレス | BASIC命令文の文字列が格納されている先頭アドレス($A078) |
0123 ... 0124 | 命令文実行アドレス | BASIC命令文のジャンプ先テーブル先頭アドレス($A281) |
0125 | BASIC関数の数 | BASIC関数の数 |
0126 ... 0127 | 関数名格納先アドレス | BASIC関数の文字列が格納されている先頭アドレス($A1D9) |
0128 ... 0129 | 関数名実行アドレス | BASIC関数のジャンプ先テーブル先頭アドレス($A000) |
012A | DISC BASIC命令の数 | DISC BASIC命令文の数(ROM BASIC時は$00) |
012B ... 012C | DISC BASIC命令文格納先アドレス | DISC BASIC命令文の文字列が格納されている先頭アドレス(ROM BASIC時は$0000) |
012D ... 012E | DISC BASIC命令実行アドレス | DISC BASIC命令文のジャンプ先テーブル先頭アドレス(ROM BASIC時は$A80F -> Syntax Error) |
012F | DISC BASIC関数の数 | DISC BASIC関数の数(ROM BASIC時は$00) |
0130 ... 0131 | DISC BASIC関数名格納先アドレス | DISC BASIC関数の文字列が格納されている先頭アドレス(ROM BASIC時は$0000) |
0132 ... 0133 | DISC BASIC関数実行アドレス | DISC BASIC命令文のジャンプ先テーブル先頭アドレス(ROM BASIC時は$A80F -> Syntax Error) |
0134 | 拡張BASIC命令の数 | ユーザが定義した拡張命令の数 |
0135 ... 0136 | 拡張BASIC命令文格納先アドレス | ユーザが定義した拡張命令の文字列が格納されている先頭アドレス |
0137 ... 0138 | 拡張BASIC命令文実行アドレス | ユーザが定義した拡張命令のジャンプ先テーブル先頭アドレス |
0139 | 拡張BASIC関数の数 | ユーザが定義した拡張関数の数 |
013A ... 013B | 拡張BASIC関数名格納先アドレス | ユーザが定義した拡張関数の文字列が格納されている先頭アドレス |
013C ... 013D | 拡張BASIC関数実行アドレス | ユーザが定義した拡張関数のジャンプ先テーブル先頭アドレス |
013E | 拡張BASIC命令2の数? | |
013F ... 0140 | 拡張BASIC命令2文格納先アドレス? | |
0141 ... 0142 | 拡張BASIC命令2文実行アドレス? | |
0143 | 拡張BASIC関数2の数? | |
0144 ... 0145 | 拡張BASIC関数2名格納先アドレス? | |
0146 ... 0147 | 拡張BASIC関数2実行アドレス? | |
0148 ... 0149 | EXEC文のジャンプ先アドレス | EXEC文でアドレスを省略した時はここで記されたアドレスにジャンプする。 |
014A ... 014B | USR0関数のジャンプ先アドレス | USR0関数呼び出し時のジャンプ先アドレス。(DEFUSR文) |
014C ... 014D | USR1関数のジャンプ先アドレス | USR1関数呼び出し時のジャンプ先アドレス。(DEFUSR文) |
014E ... 014F | USR2関数のジャンプ先アドレス | USR2関数呼び出し時のジャンプ先アドレス。(DEFUSR文) |
0150 ... 0151 | USR3関数のジャンプ先アドレス | USR3関数呼び出し時のジャンプ先アドレス。(DEFUSR文) |
0152 ... 0153 | USR4関数のジャンプ先アドレス | USR4関数呼び出し時のジャンプ先アドレス。(DEFUSR文) |
0154 ... 0155 | USR5関数のジャンプ先アドレス | USR5関数呼び出し時のジャンプ先アドレス。(DEFUSR文) |
0156 ... 0157 | USR6関数のジャンプ先アドレス | USR6関数呼び出し時のジャンプ先アドレス。(DEFUSR文) |
0158 ... 0159 | USR7関数のジャンプ先アドレス | USR7関数呼び出し時のジャンプ先アドレス。(DEFUSR文) |
015A ... 015B | USR8関数のジャンプ先アドレス | USR8関数呼び出し時のジャンプ先アドレス。(DEFUSR文) |
015C ... 015D | USR9関数のジャンプ先アドレス | USR9関数呼び出し時のジャンプ先アドレス。(DEFUSR文) |
01AF ... 01B1 | Abort(CTRL+D)フック | Abort(CTRL+D)チェック前にここにサブルーチンジャンプする。($ED94からジャンプ) |
01C8 ... 01C9 | VRAM終了アドレス | VRAM終了アドレス+1 |
01CA ... 01CB | キーボード用メモリ | キーボード用メモリの開始アドレス(通常、VRAM終了アドレス+1) |
01F7 | リモートフラグ | テープのリモートフラグ($FFD2と同じ) |
0206 | デバイス番号 | $00:KYBD、$01:SCRN、$02:CAS、$03:COM、$04:LPT |
0214 | 内蔵時計カウントフラグ | $00:$0215をカウントダウンする。 $FF:カウントダウンしない。RTCが実装されているときはこちらになる。 |
0215 | 1/60秒カウンタ | 内部時計用のカウンタ 60Hz |
0216 ... 0217 | 時 | 時 2桁 |
0218 ... 0219 | 分 | 分 2桁 |
021A ... 021B | 秒 | 秒 2桁 |
021C ... 021D | 年 | 年 2桁 |
021E ... 021F | 月 | 月 2桁 |
0220 ... 0221 | 日 | 日 2桁 |
0238 | カーソルX | カーソル位置のX座標 |
0239 | カーソルY | カーソル位置のY座標 |
023A | 総行数 | 画面の総行数 $19 |
023B | スクロール開始行 | CONSOLE文参照 |
023C | スクロール終了行 | CONSOLE文参照 |
023D | PFキー表示 | $00:非表示、$01:表示 |
023E | PFキーシフトキーフラグ | |
0244 | ブレークフラグ | $03: CTRL+C押下 $FF:BREAKキー押下 |
0245 | アボートフラグ | $04: CTRL+D押下 |
0246 | 画面出力停止? | CTRL+Sで画面出力を停止している != 0 |
0247 | インターレースモード? | $FFD6にセットした値。なお、インターレースモード時にここを0にするとカーソルが太る。ノンインターレース時にここを1にするとカーソルが消える。(SCREEN文) |
0248 | ディップスイッチの値 | 電源ON時のディップスイッチの状態 or NEW ONコマンドで指定した値。 |
0249 | 背景色など | $FFD0(MODE-SEL)に書き込む内容。 |
0251 ... 0252 | スタックポインタ退避用 | MONコマンド使用時にスタックポインタSの値を退避する。 |
0278 ... 0377 | 入力バッファ | |
03D8 ... 03D9 | RAM最終アドレス-1 | ここのアドレス+2以降がシステムで使用する領域となる。(ROM BASIC時 $9FFE) |
0400 ... VRAM_END | VRAMエリア | VRAM終了アドレス(VRAM_END)は、80字ハイレゾ時:$43FF、40字ハイレゾ時:$23FF、80字ノーマル時:$0BFF、40字ノーマル時:$07FF。 以降、VRAMは上記アドレス+1を表す(ワークエリア$01C8-$01C9を参照)。 |
VRAM+000 | キーイングパラメータ | 修飾キー状態 bit7:CAPS OFF bit6:SHIFTキー押下 bit5:ひらがな bit4:カタカナ bit3:CTRLキー押下 bit2:GRAPHキー押下 |
VRAM+001 | キーイング・スキャンコード | キー押下時のスキャンコード(IRQ内で処理) |
VRAM+003 | キーボード設定 | KBレジスタ($FFE0)に設定する値 |
VRAM+004 | キーイング・キュー長さ | キュー内にあるデータ数(最大10バイト) |
VRAM+005 ... +00E | キーイング・キュー1 | キー押下時のスキャンコードをキューイング(IRQ内で処理) |
VRAM+00F ... +018 | キーイング・キュー2 | キー押下時のキーリピートをキューイング(IRQ内で処理) |
VRAM+019 | キーボードバッファライト位置 | キーボードバッファに書き込まれた位置 |
VRAM+01A | キーボードバッファリード位置 | キーボードバッファから読まれた位置 |
VRAM+01B ... V03A | キーボードバッファ | リングバッファ(32バイト) |
VRAM+03B ... +0DA | PFキー1~10 文字列 | 16バイト x 10 |
◆関連ページ◆