MB-6892

LEVEL-3 BASICワークエリア

S1 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

◆関連ページ◆

システムI/O

LEVEL-3 BASIC ROMサブルーチン

S1 BASIC ワークエリア

 

技術資料

 

TOP PAGE