X-Git-Url: http://4ch.mooo.com/gitweb/?p=16.git;a=blobdiff_plain;f=src%2Flib%2F16_head.h;h=0a71c965a040b9a467d81f3b1023f977f19220bc;hp=274722303b73d393709ee8d71f358669ad9034f4;hb=d48c3f2da3fb828320dc2817d5ab0e5848d07905;hpb=1aeca2e3583a583d35c0f3c5877fc7c607091c3b diff --git a/src/lib/16_head.h b/src/lib/16_head.h index 27472230..0a71c965 100755 --- a/src/lib/16_head.h +++ b/src/lib/16_head.h @@ -170,6 +170,7 @@ extern union REGS CPURegs; #define _DX CPURegs.x.dx #define _SI CPURegs.x.si +#define _DI CPURegs.x.di #define _AH CPURegs.h.ah #define _AL CPURegs.h.al @@ -180,6 +181,8 @@ extern union REGS CPURegs; #define _DH CPURegs.h.dh #define _DL CPURegs.h.dl +#define _CFLAG CPURegs.x.cflag + #define geninterrupt(n) int86(n,&CPURegs,&CPURegs); @@ -197,6 +200,22 @@ int US_CheckParm(char *parm,char **strings); byte dirchar(byte in); void print_mem(void const *vp, size_t n); void hres (void); +void regidump(); + +//from https://stackoverflow.com/questions/111928/is-there-a-printf-converter-to-print-in-binary-format +//printf("Leading text "BYTE_TO_BINARY_PATTERN, BYTE_TO_BINARY(byte)); +//For multi-byte types +//printf("m: "BYTE_TO_BINARY_PATTERN" "BYTE_TO_BINARY_PATTERN"\n", BYTE_TO_BINARY(m>>8), BYTE_TO_BINARY(m)); +#define BYTE_TO_BINARY_PATTERN "%c%c%c%c%c%c%c%c" +#define BYTE_TO_BINARY(byte) \ + (byte & 0x80 ? '1' : '0'), \ + (byte & 0x40 ? '1' : '0'), \ + (byte & 0x20 ? '1' : '0'), \ + (byte & 0x10 ? '1' : '0'), \ + (byte & 0x08 ? '1' : '0'), \ + (byte & 0x04 ? '1' : '0'), \ + (byte & 0x02 ? '1' : '0'), \ + (byte & 0x01 ? '1' : '0') #define PRINT_OPAQUE_STRUCT(p) print_mem((p), sizeof(*(p)))