そのまま使うとこの行↓で全角スペースが使われてるって怒られますね。
;intCは書き込む数値(0か1)
あとは大丈夫っぽいです。
#module
#deffunc test var varA,int intA,int intB,int intC,local locA
;varAは書き込む変数
;intAはバッファのインデックス(Byte単位)
;intBは何バイト目に書き込むか
;intCは書き込む数値(0か1)
;エラーがあるとstatに-1が変える
if intA<0:return -1
if intB<0:return -1
if intB>7:return -1
if intC>2:return -1
if intC<0:return -1
locA = peek(varA,intA)
if intC{
locA = locA | (1 << intB)
}else{
locA &= $FF ^ ( 1 << intB)
}
poke varA,intA,locA
return
#deffunc bitdisp int,int
mref bits,0
mref w,1
if (w<1)|(w>32) : w=32
s=""
repeat w
if bits&(1<<cnt) : s="1"+s : else : s="0"+s
loop
mes "0b"+s
return
#global
;テスト
ans = 0b00011111
bitdisp ans,8 ;表示
mes " 76543210"
test ans, 0,6,1
test ans, 0,1,0
bitdisp ans,8 ;表示
mes "--------"
dim atai,8
atai(0) = 0,0,0,0,0,0,0,0,0,0
repeat 8
test atai,4*cnt,cnt,1
loop
repeat 8
bitdisp atai(cnt),8 ;表示
loop
stop