足りないトコあったら書き足しもしくはわかりやすいように変更お願いします。
まずは  †
HSPは先頭行から下へ順に実行する言語です。
スクリプトはアルファベットの大文字・小文字を区別しないので、どちらでもOKです。
基本を知らないと後々効率が悪いです。
行中でコメント後は無視されます。
- コメント一覧
- 「;」セミコロン
 
- 「//」ダブルスラッシュ
 
- 「/*」から「*/」までの間をコメント化
 
 
| -2147483647〜2147483647 | 10進整数 | 
| $0〜$FFFFFFFF | 16進整数(0xでも可) | 
| %0〜%111111... | 2進整数(0bでも可) | 
| 'A' | 文字コード(1バイト) | 
| +,-,*,/ | 加算,減算,乗算,除算 | 
| &,|,^ | 論理演算(and,or,xor) | 
| \ | 割り算の余り | 
| =,<,>,! | 条件式(同じ,小さい,大きい,同じでない) | 
| ==,<=,>=,!= | 条件式2(同じ,以下,以上,同じでない) | 
| <<,>> | 左、右方向にビットシフト | 
 
- 数式は左から順に行われ、乗除算の優先はありません。
 
- カッコは、8重までネスティングすることが可能です。
 
- 「\」
- 「\n」改行
 
- 「\t」TAB
 
- 「\r」リターン(0x0d)
 
- 「\"」(")ダブルクォート
 
- 「\\」ただの「\」
- "C:\WINDOWS\SYSTEM"  などの文字列は、
"C:\\WINDOWS\\SYSTEM"  と記述しないと認識されません。 
 
 
- 「{"」から「"}」までの間はすべて文字列として解釈されます。
 
  1
  2
  3
  4
  | -
|
|
!
  | mes {"
	ここには、1行まるまる直接メッセージを
	書いてもいいです。
"}
  | 
 
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
  |  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  | x=100            y=200            pos x,y            x="strings"            mes x            a=a+10            a+=10            a=a+1            a++            int a            str b            
  | 
 
- 変数に日本語を使用する事も出来ます。(一般的ではない)//追記--kz3
 
  1
  2
  3
  4
  |  
 
 
 
  |     変数=1
    mes 変数        mes "変数"      stop
  | 
 
一つの変数に番号をつけ、複数の数値・文字列を管理することができます。
- 要素に数式を扱うことはできません。
- 数式を扱いたい場合、あらかじめ変数に代入してからとなります。
 
 
  1
  2
  3
  4
  5
  6
  7
  8
  9
  |  
 
 
 
 
 
 
 
 
  | x.0=1            x.1=2
x=1,2            dim a,20            sdim a,32,5             
  | 
 
hsp3では以下のようになります。
  1
  2
  3
  |  
 
 
  | x(0)=1            x(1)=2
x(1+b)=3            
  | 
 
プログラム上の位置を示すためにラベルとして名前をつけることができます。 ラベルは*(アスタリスク)の後に続く59文字(半角)以下の文字列で示します。
  1
  2
  3
  |  
 
 
  |  *label
    mes "Wait.":wait 100
    goto *label            
  | 
 
ラベル名は日本語でもできる(一般的ではない)
  1
  2
  3
  4
  |  
 
 
 
  | onclick goto *ラベル
stop
*ラベル
    mes "OK"
  | 
 
  1
  2
  3
  4
  5
  6
  7
  8
  9
  |  
 
 
 
 
 
 
 
 
  |     mes "GO!"
 *@
    mes "A="+a
    a+
    if a=5 : goto *@forward            if a<5 : goto *@back         *@
    mes "STOP"
    stop
  |