#define WorldSize 30000 /* Max 2^16 = 65536 */ #define InstEmpty 0x80 #define InstReserved 0x81 #define InstLabel 0x00 #define InstNop1 0x01 #define InstInc 0x02 #define InstDec 0x03 #define InstStore 0x04 #define InstLoad 0x05 #define InstAdd 0x06 #define InstSub 0x07 #define InstJumpF 0x08 #define InstJumpB 0x09 #define InstFindF 0x0a #define InstFindB 0x0b #define InstCallF 0x0c #define InstCallB 0x0d #define InstReturn 0x0f #define InstCellDiv 0x1f #define InstSave 0x2f #define InstRestore 0x3f #define InstSkipZ 0x4f #define InstSkipC 0x5f #define InstAlloc 0x6f #define InstHalt 0x7f #define InstNoArg(x) (((x)&0x0f)==0x0f) #define InstLabelArg(x) ((x)>=InstJumpF) #define LabelStart 0x10 #define LabelEnd 0x20 #define RegAx 0x00 #define RegBx 0x10 #define RegCx 0x20 #define RegDx 0x30 #define MemAx 0x40 #define MemBx 0x50 #define MemCx 0x60 #define MemDx 0x70 #define ArgRegister(x) ((x)