そのまま使うとこの行↓で全角スペースが使われてるって怒られますね。
;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