mref

特殊なメモリを変数に割り当てる

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)のエイリアス機能を使用することを推奨しています。

関連項目

dupクローン変数を作成
dupptrポインタからクローン変数を作成
#deffunc新規命令を登録する

サンプル逆引き (11)

(HSP3) sample10 [HSPサンプルのブロック崩しをMP4で出力].hsp
(HSP3) sample10 [HSPサンプルのブロック崩しをMP4で出力]_x64.hsp
(HSP3) sample8 [Webカメラ版 バーコード・QRコード読み取り].hsp
(HSP3) sample8 [Webカメラ版 バーコード・QRコード読み取り]_x64.hsp
(HSP3) sample9 [ファイル読み込み版 バーコード・QRコード読み取り].hsp
(HSP3) sample9 [ファイル読み込み版 バーコード・QRコード読み取り]_x64.hsp
06_libptr64.hsp
d3m.hsp
libptr.hsp
multimon.hsp
sample_03_vram_blob.hsp

情報

バージョン3.6
作成日2009/08/01
著作者onitama
URLhttp://hsp.tv/
備考ver3.6標準命令
タイプ内蔵命令
グループ特殊代入命令
対応環境
  • Windows 版 HSP
  • コマンドライン版 HSP
  • HSPLet
移植のヒントHSPLet時、stat/refstr のみ使用可能です。
関数の引数には使用できませんので、3.0 形式の受け取り方をしてください。
hs ファイルhsphelp\i_mem.hs