特殊なメモリを変数に割り当てる
mref p1,p2
p1=変数名 : 割り当てられる変数名 p2=0~(0) : リソースID (割り当てるメモリ内容)
p1で指定された変数に、p2で指定したメモリ内容を割り当てます。
値 : 対応するリソース
--------------------------------------------------
0~ 7 : ローカルパラメータ#1~8(数値)
64 : システム変数stat
65 : システム変数refstr
66 : ウィンドウ内画像データ(VRAM)
67 : 現在のウィンドウ情報(BMSCR構造体)
68 : HSPのシステム情報(HSPCTX構造体)
69 : パレット情報
96~ : ウィンドウID0~の情報(BMSCR構造体)
リソースID64,65のシステム変数は、たとえば「mref a,64」とした場合、変数aがシステム変数 statと同等になり、値を代入することができるようになります。これにより、ユーザー定義命令内の計算結果などをシステム変数に反映して、呼び出し元に返すことができます。
リソース66のウインドウ内画像データ(VRAMデータ)は、表示されている画像を内容とする配列変数になります。
これにより、 poke,peek命令などで画像データに直接アクセスが可能になります。
リソース67以降も同様に HSPの内部データに直接アクセスできるようにするものですが、通常は使う必要はありません。 DLLへ渡すためのパラメータ準備のためなど、ごく限られた用途のために用意されているもので、ほとんどの人は使うことはないはずです。
ローカルパラメータは、ユーザー定義命令(#deffunc)で新規に追加された命令のパラメータ内容を取得するためのものです。
パラメータのタイプ(数値、変数、文字列)に従って取得することが可能です。
ローカルパラメータ取得は、HSP2.xまでのパラメーター取得方法との互換のために用意されています。(一部のリソースタイプには互換性がありません。)
HSP3.0以降では、ユーザー定義命令(#deffunc)のエイリアス機能を使用することを推奨しています。
| バージョン | 3.6 |
| 作成日 | 2009/08/01 |
| 著作者 | onitama |
| URL | http://hsp.tv/ |
| 備考 | ver3.6標準命令 |
| タイプ | 内蔵命令 |
| グループ | 特殊代入命令 |
| 対応環境 |
|
| 移植のヒント | HSPLet時、stat/refstr のみ使用可能です。
関数の引数には使用できませんので、3.0 形式の受け取り方をしてください。 |
| hs ファイル | hsphelp\i_mem.hs |