; ; HSP help manager用 HELPソースファイル ; (先頭が「;」の行はコメントとして処理されます) ; %type 内蔵命令 %ver 2.61 %note ver2.61標準命令 %date 2004/03/01 %author onitama %url http://www.onionsoft.net/ %index alloc バッファを確保 %group メモリ管理命令 %prm p1,p2 p1=変数 : バッファを割り当てる変数名 p2=64〜 : バッファのサイズ(Byte単位) %inst メモリ上にバッファを作成して配列変数に割り当てます。 ^ HSP ver2.4g以降では、alloc命令によるメモリ確保はdim命令、sdim命令と 変わりありません。 alloc命令は、過去の互換性のために残された命令です。 通常は、dim命令、sdim命令でメモリバッファの確保を行なうことが望ましいです。 %index dim 配列変数を作成 %group メモリ管理命令 %prm p1,p2... p1=変数 : 配列を割り当てる変数名 p2=0〜 : 要素の最大 %inst 任意の要素を持つ配列変数を作成します。 ^p 例: dim a,20 ^p 上の例では、変数aの要素を20個、つまり「a.0」〜 「a.19」までを使えることになります。 ^ パラメータを増やすことで多次元配列を作成すること も可能です。 ^p 例: dim a,10,5 ; 変数aは2次元配列 a.0.0=1 ; 要素(0,0)に1を代入 a.1.0=2 ; 要素(1,0)に2を代入 a.0.1=3 ; 要素(0,1)に3を代入 ^p 上の例では、a.0.0から、a.9.4までを使用できるように なります。 ^ dim,sdim命令はスクリプト内のどこででも定義・再定義することが可能です。 また、配列変数を作成すると内容はすべて0にクリアされます。 %href sdim %index peek バッファから1byte読み出し %group メモリ管理命令 %prm p1,p2,p3 p1=変数 : 内容を読み出す先の変数名 p2=変数 : バッファを割り当てた変数名 p3=0〜 : バッファのインデックス(Byte単位) %inst メモリ上のバッファの任意の場所にある内容を変数に読み出します。 p1で指定した変数が数値型ならば、0〜255までの値が、 文字列型ならば文字列が読み出されます。 %href wpeek %index poke バッファに1byte書き込み %group メモリ管理命令 %prm p1,p2,p3 p1=変数 : バッファを割り当てた変数名 p2=0〜 : バッファのインデックス(Byte単位) p3=0〜255 : バッファに書き込む値 または 文字列(Byte単位) %inst メモリ上のバッファの任意の場所に値を書き込みます。 ^ p1で指定した変数のバッファ上で、p2で指定したインデックスの場所に p3の値を書き込みます。 ^ 値は0〜255までの1バイト値になります。 p3で文字列または、文字列型変数を指定した場合には、 文字列の内容がすべてバッファに書き込まれます。 %href wpoke %index sdim 配列文字列型変数を作成 %group メモリ管理命令 %prm p1,p2,p3... p1=変数 : 配列を割り当てる変数名 p2=1〜 : 1つの要素あたりの最大文字数 p3=0〜 : 要素の最大 %inst 文字列型の配列変数を作成します。dim命令との違いは、 p2のパラメータは「文字列の最大文字数」、 p3のパラメータ以降に実際の配列要素の最大数を入れる ところです。 ^p 例: sdim a,64,5 ; 変数aは1次元の文字列型配列変数 ^p 上の例では、変数aは64文字までのa.0〜a.4が使用可能に なります。 ^ dim,sdim命令はスクリプト内のどこででも定義・再定義することが可能です。 また、配列変数を作成すると内容はすべて0にクリアされます。 %href dim %index wpeek バッファから1word読み出し %group メモリ管理命令 %prm p1,p2,p3 p1=変数 : 内容を読み出す先の変数名 p2=変数 : バッファを割り当てた変数名 p3=0〜 : バッファのインデックス(Byte単位) %inst メモリ上のバッファの任意の場所にある内容を変数に読み出します。 peek命令と同じですが、読み出される値は2byte(16bit)になります。 p1で指定した変数が数値型ならば、0〜65535までの値が、 文字列型ならば文字列が読み出されます。 %href peek %index wpoke バッファに1word書き込み %group メモリ管理命令 %prm p1,p2,p3 p1=変数 : バッファを割り当てた変数名 p2=0〜 : バッファのインデックス(Byte単位) p3=0〜65535: バッファに書き込む値 または 文字列(Word単位) %inst メモリ上のバッファの任意の場所に値を書き込みます。 ^ p1で指定した変数のバッファ上で、p2で指定したインデックスの場所に p3の値を書き込みます。 値は0〜65535までの2バイト値になります。 p3で文字列または、文字列型変数を指定した場合には、 文字列の内容がすべてバッファに書き込まれます。 %href poke %index memcpy メモリブロックのコピー %group メモリ管理命令 %prm p1,p2,p3,p4,p5 p1 : コピー先の変数 p2 : コピー元の変数 p3 : コピーするサイズ(1byte単位) p4 : コピー先の変数メモリオフセット(省略時=0) p5 : コピー元の変数メモリオフセット(省略時=0) %inst p1で指定された変数に割り当てられているメモリ領域に、 p2で指定された変数に割り当てられているメモリの内容をコピーします。 コピーするサイズ(1byte単位)は、p3で指定します。 大きな領域を変数に割り当てている場合などに高速なメモリコピーを 行なうことができます。 p4,p5で、コピー先、コピー元の開始位置を1byte単位で調整することができます。 %href memset %index memset メモリブロックのクリア %group メモリ管理命令 %prm p1,p2,p3,p4 p1 : 書き込み先の変数 p2 : クリアする値(1byte) p3 : クリアするサイズ(1byte単位) p4 : 書き込み先の変数メモリオフセット(省略時=0) %inst 1byteの固定値でメモリブロックを埋めます。 p1で指定された変数に割り当てられているメモリ領域に、 p2で指定された値を、p3のサイズだけ書き込みます。 大きな領域に同じ値を書き込みたい時に有効です。 p4で、メモリ開始位置を1byte単位で調整することができます。 %href memcpy