【HSP】big endianの数値をメモリに読み書きできるようにする【モジュール】
【HSP】big endianの数値をメモリに読み書きできるようにする【モジュール】
#module "kerupani_memory"
#defcfunc wnumcnv int _p1
return (_p1>>8&0xFF)|((_p1&0x7F)<<8)|((_p1>>7&0x01)*0x1FFFF<<15)
#defcfunc wnumcnv2 int _p1
return (_p1>>8&0x7F)|((_p1&0xFF)<<8)|((_p1>>24)&0x80)
#defcfunc lnumcnv int _p1
return (_p1>>24&0xFF)|((_p1>>16&0xFF)<<8)|((_p1>>8&0xFF)<<16)|((_p1&0xFF)<<24)
; Big Endian用wpeek (符号付き 16bit 整数) ※本家と違って -32768 ~ 32767 の価が返ります
#defcfunc wpeek2 var _p1,int _p2
return wnumcnv(wpeek(_p1,_p2))
; Big Endian用wpoke (符号付き 16bit 整数)
#deffunc wpoke2 var _p1,int _p2,int _p3
wpoke _p1,_p2,wnumcnv2(_p3)
return
; Big Endian用lpeek (符号付き 32bit 整数)
#defcfunc lpeek2 var _p1,int _p2
return lnumcnv(lpeek(_p1,_p2))
; Big Endian用lpoke (符号付き 32bit 整数)
#deffunc lpoke2 var _p1,int _p2,int _p3
lpoke _p1,_p2,lnumcnv(_p3)
return
#global