読者です 読者をやめる 読者になる 読者になる

SADOLOG

lonely and gloomy and lazy sado's blog

Sado's website is here DOSSADOSA!!!
御用の方は空白の記事

HSP/バイナリあれこれ

へっぽこプログラマーもどきもどきのサドです。
例によってあほクセェ備忘録です。


とりあえず掲示板とかかから拾ってきた奴。
変数のメモリサイズ?バッファサイズ?を取得する関数と、
数値、整数の循環を行う関数


#module
;バッファサイズ取得
#defcfunc bufsize var p1,local a
dupptr a,varptr(p1)-16,4,4
return a
;数値の循環
#defcfunc limitloop int p1,int min,int max
if min==max : return min
if min<=p1 & p1<=max : return p1
if p1max : return min+(p1-max-1)\(max-min+1)
return
#global
整数の循環はあれ、
シフト鍵暗号とかメニュー画面のカーソルで使える。


HSPだとNull文字をテキストデータ及びバイナリデータの
「最後」と認識するようで、mesやstr系がもろ影響受ける。
pokeで何byteかNull部分を飛ばして書き込もうとしても、
確かエラッたと思う。
そういう時は、memsetで$01か何かで予め上書きしなきゃいけない。


あとはアレかな、保存したいデータが4649byteあったとして、
str系やmesで利用したいのならば、
Null文字分も含めて4649+1byte確保しないと困ったことになるとか。
64byte未満は、HSPでは何があっても確保できないという制限も。