X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_head.h;h=c05594386c52d0729d6c19725577317191e0c48b;hb=2d5a0b2cbf01a773c15a9331cabd697646bc27f6;hp=1c95d512bbb8d00df5616395bf872c12b0f66661;hpb=4b957f5e39b063de7e50121ce333b84413407820;p=16.git diff --git a/src/lib/16_head.h b/src/lib/16_head.h index 1c95d512..c0559438 100755 --- a/src/lib/16_head.h +++ b/src/lib/16_head.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2018 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -58,7 +58,6 @@ #include "src/lib/16_t.h" #include "src/lib/16_tdef.h" #include "src/lib/nyan/kitten.h" -#include "src/lib/16_dbg.h" #define VERSION __DATE__ " " __TIME__ @@ -162,8 +161,8 @@ extern int profilehandle,debughandle; //make it into game global #define nil ((void *)0) #ifdef __WATCOMC__ -//#define _FCORELEFT 0x90000UL+16UL -/*static union REGS CPURegs; +//----#define _FCORELEFT 0x90000UL+16UL +extern union REGS CPURegs; #define _AX CPURegs.x.ax #define _BX CPURegs.x.bx @@ -171,6 +170,7 @@ extern int profilehandle,debughandle; //make it into game global #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 @@ -181,7 +181,9 @@ extern int profilehandle,debughandle; //make it into game global #define _DH CPURegs.h.dh #define _DL CPURegs.h.dl -#define geninterrupt(n) int86(n,&CPURegs,&CPURegs);*/ +#define _CFLAG CPURegs.x.cflag + +#define geninterrupt(n) int86(n,&CPURegs,&CPURegs); typedef union REGPACK regs_t; @@ -197,6 +199,53 @@ void printmeminfoline(byte *strc, const byte *pee, size_t h_total, size_t h_used 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 WORD_TO_BINARY_PATTERN "%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c" +#define WORD_TO_BINARY(word) \ + (word & 0x8000 ? '1' : '0'), \ + (word & 0x4000 ? '1' : '0'), \ + (word & 0x2000 ? '1' : '0'), \ + (word & 0x1000 ? '1' : '0'), \ + (word & 0x0800 ? '1' : '0'), \ + (word & 0x0400 ? '1' : '0'), \ + (word & 0x0200 ? '1' : '0'), \ + (word & 0x0100 ? '1' : '0'), \ + (word & 0x0080 ? '1' : '0'), \ + (word & 0x0040 ? '1' : '0'), \ + (word & 0x0020 ? '1' : '0'), \ + (word & 0x0010 ? '1' : '0'), \ + (word & 0x0008 ? '1' : '0'), \ + (word & 0x0004 ? '1' : '0'), \ + (word & 0x0002 ? '1' : '0'), \ + (word & 0x0001 ? '1' : '0') + +#define NIBBLE_TO_BINARY_PATTERN "%c%c%c%c" +#define NIBBLE_TO_BINARY(nibble) \ + (nibble & 0x08 ? '1' : '0'), \ + (nibble & 0x04 ? '1' : '0'), \ + (nibble & 0x02 ? '1' : '0'), \ + (nibble & 0x01 ? '1' : '0') + +#define BOOLEAN_TO_BINARY_PATTERN "%c" +#define BOOLEAN_TO_BINARY(boolean) \ + (boolean & 0x01 ? '1' : '0') #define PRINT_OPAQUE_STRUCT(p) print_mem((p), sizeof(*(p)))