特殊なメモリを変数に割り当てる
mref p1,p2
p1=変数名 : 割り当てられる変数名 p2=0~(0) : リソースID (割り当てるメモリ内容)
p1で指定された変数に、p2で指定したメモリ内容を割り当てます。 値 対応するリソース --------------------------------------------------------- 0~ 7 ローカルパラメータ#1~8(数値) 16 ローカルパラメータ#1(数値型変数) 17 ローカルパラメータ#2(数値型変数) 24 ローカルパラメータ#1(文字列型変数) 25 ローカルパラメータ#2(文字列型変数) 32 ローカルパラメータ#1(255文字以下の文字列) 33 ローカルパラメータ#2(255文字以下の文字列) 48 ローカルパラメータ#1(数値型配列変数) 49 ローカルパラメータ#2(数値型配列変数) 56 ローカルパラメータ#1(文字列型配列変数) 57 ローカルパラメータ#2(文字列型配列変数) 64 システム変数stat 65 システム変数refstr 66 ウインドゥ内画像データ(VRAM) 67 現在のウインドゥ情報(BMSCR構造体) 96~103 ウインドゥID0~7の情報(BMSCR構造体) 1024 ローカルパラメータ#1情報(PVAL構造体) 1025 ローカルパラメータ#2情報(PVAL構造体) ローカルパラメータは、ユーザー定義命令(#deffunc)で新規に 追加された命令のパラメータ内容が格納されています。 パラメータのタイプ(数値、変数、文字列)に従って取得することが 可能です。 リソースIDに「ローカルパラメータ」を指定した場合は、モジュール の呼び出し元(新規命令が実行された時)に指定されていた数値や 変数のクローンとなります。たとえば、「newfunc a」というよう に変数aがパラメータとして受け渡された時に、モジュール側で、 「mref i,16」を指定すると変数iが変数aと同等のものになります (dup命令と同様です)。 ローカルパラメータとして、変数をそのまま取得する場合は、 ユーザー定義命令(#deffunc)で指定されたパラメータタイプも 「変数」になっている必要があります。ローカルパラメータとして 取得した変数に値を代入すれば、もとの指定された変数の値も 変化することになります。また、ローカルパラメータに変数を 指定した場合は、指定した変数の型(文字列か数値か)に強制的に 変更されます。 リソースID48,49も、リソースID16,17と同様にローカルパラメータ 変数を取得しますが、こちらは配列の構造を含めた完全なクローン になります。たとえば、「newfunc a.1」というように配列変数の 一部をパラメータに指定した場合、「mref i,16」では変数iは、 変数a.1と同じになり、配列変数aとは異なるものになります。 これに対して、「mref i,48」の場合は変数iが配列変数aとまったく 同等のものになります。 リソースID64,65のシステム変数は、たとえば「mref i,64」とした 場合、変数aがシステム変数statと同等になり、値を代入することが できるようになります。 これにより、ユーザー定義命令内の計算結果などをシステム変数に 反映して、呼び出し元に返すことができます。 リソース66のウインドウ内画像データ(VRAMデータ)は、表示されて いる画像を内容とする配列変数になります。 これにより、poke,peek命令などで画像データに直接アクセスが 可能になります。 また、67以降も同様にHSPの内部データに直接アクセスできるように するものですが、通常は使う必要はありません。DLLへ渡すための パラメータ準備のためなど、ごく限られた用途のために用意されて いるもので、ほとんどの人は使うことはないはずです。
#deffunc | 新規命令を割り当てる |
バージョン | 2.61 |
作成日 | 2004/03/01 |
著作者 | onitama |
URL | http://www.onionsoft.net/ |
備考 | ver2.61標準命令 |
タイプ | 内蔵命令 |
グループ | 特殊代入命令 |
hs ファイル | hsphelp\i_val.HS |