マガジンのカバー画像

HSP関連

4
運営しているクリエイター

記事一覧

charをintにする

HSPで、peek()で取得したcharなどをint表現にする。

peek()の返り値は実質的にsigned intとしてHSPの整数型に変換されるので、そのまま表示すると0~255の範囲になってしまう。
char型(signed char)は-128~127の範囲の値であるので、そうなるように修正する必要がある。

if 0 {
// @return (-128 <= value <= 127

もっとみる

モジュールリポジトリは無い

HSPにはRubyのgemやPerlのCPANやPythonのPyPIやNode.jsのnpmのようなパッケージ集積場所がないので、いたるところで車輪の再発明が行なわれて誰もが同じような、命令名がちょっと違うだけのようなモジュールを量産せざるを得ない。最近の公式の掲示板でモジュール投稿所ができているが、カテゴリ分けされておらず、見つけにくいのであまり利便性は期待できない。

追記) 私は全部自分で

もっとみる

[HSP]#​defineマクロの初期値に式を書けない

HSPのプリプロセッサの現在の仕様では、#​defineマクロの初期値に単一の値は書けるが、式を書くとエラーになる。

例:

#​define test(%1=12) mes %1
これはOK。

#​define test(%1=10+2) mes %1
これは `10+2` が式(+記号が入っている)なので、コンパイルエラー(bad macro parameter expression)にな

もっとみる

if 0 { }

HSPでちょこっとしたプログラムを書くときに、グローバルで命令・関数を定義したいことが時々ある。

わざわざモジュール空間を作らなくても良い場合や、テストで適当な処理を関数化したい時、グローバルの変数を参照したい時という場合が多い。
そのときに、以前はラベルを作って関数定義部分をスキップしていた。このやり方は昔どこかで見て覚えた方法である。

goto *skip
# deffunc func
 

もっとみる