ポケコン PC-G850の解析とソフト集
[ハードウエア編] [I/O編] [ワークエリア編] [自作ソフト・周辺機器]
- ワークエリア編
- システムの動作にかかわってくるワークエリアの解説です。
- 高校時代にはかなりのアドレスを発見していましたが、資料が全て無くなってしまったため、ソフトウエア編にあるソフトのために調べたものがメインです。
Addr | 機能 | 内容 |
76FFH | 動的変数の最終アドレス | 動的変数(単純変数または配列変数)は76FFHを最終アドレスとしたメモリに確保されます。動的変数は常に2文字で記憶され、それ以上の文字数は無視されます。1文字の場合には2文字目がスペースになります。 変数のタイプは、変数名の1文字目に以下の数値を足したものになります。 00H=数値変数 40H=文字列変数 80H=数値変数配列 C0H=文字列配列変数 変数の構造体は以下のようになっています。
オフセット | 内容 |
00 | 変数名1文字目+変数タイプ識別子 |
01 | 変数名2文字目 |
02,03 | 次の変数までのオフセット(この数値はビッグエンディアン) 数値変数の場合は、00H,0BH固定。 文字列変数の場合は、00H,13H固定。 配列の場合は任意に変化。 |
04 | 1次元配列の場合は要素数。2次元配列の場合は引数2の値。その他は0固定。 |
05 | 2次元配列の場合は、引数1の値。その他は0固定。 |
06 | 2次元配列の場合は、引数3の値。その他は0固定。 |
07以降 | データ。 数値変数は8バイトデータ。 文字列変数は16バイト固定文字列。空き領域はヌルが入る。 1次元配列の場合は、(0)→(1)…の順番に並ぶ。 2次元配列の場合は、(0,0)→(1,0)…(0,1)→(1,1)…の順番に並ぶ。 |
|
7920H 7921H | 次に画面に表示される文字の位置 | LOCATEや;で指定される文字位置。 LOCATE指定された場合は、X=(7920H),Y=(7921H)で次の表示が始まる。 |
7922H 7923H | 最後に画面に表示された文字の位置 | 最後にPRINTで表示された文字位置。 X=(7922H) Y=(7923H) LOCATE指定されなかった場合は、X=0,Y+1で次の表示が始まる。 |
797DH | 表示コントロールフラグ | LOCATEで位置を指定した時と、PRINTの後に;が付いた時に1がセットされる。これを利用して7920H-7921Hか7922H-7923Hのどちらを使うかを決定する。 |
79FCH 79FDH | 動的変数の先頭アドレスポインタ | 動的変数を検索するには、ここで指定されたアドレスから76FFHに向かってメモリ上を検索します。検索は動的変数の2~3バイト目のオフセット値を利用して、変数名のヘッダ部分を計算していきます。 |
|