'文字列使うの面倒で遅いのでBIT,CHAR,SHORTを0,1,2に変える
'引数の%や#,$,[]は意味を為さないので省略
COMMON DEF DAT_EXT DAT,TYPE,LEBE OUT B1,B2,B3,B4
ON TYPE GoTO @BIT,@CHAR,@SHORT
@BIT
B1=DAT AND 1<<LEBE-1
B2=DAT AND 1<<LEBE
B3=DAT AND 1<<LEBE+1
B4=DAT AND 1<<LEBE+2
RETURN '読みやすさなんて知らない
@CHAR
'SWAP面倒で遅いのでダイレクトに
'RGBREAD B4,B3,B2,B1でも可
B1=BIT AND 255
B2=(BIT AND 255<<8)>>8
B3=(BIT AND 255<<16)>>16
B4=(BIT AND 255<<24)>>24
RETURN
@SHORT
'B*&H100よりB<<8方が遥かに速い
'こちらもダイレクトに
B1=DAT AND &HFFFF<<16
B2=(DAT AND 255<<16)>>16
B3=DAT AND &HFFFF
B4=DAT AND 255
END
'よく見たらそこまで短くなってない