]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_head.h
last time i will start wolf3d core port after exam on thursday
[16.git] / src / lib / 16_head.h
index 0d86cd248c111d00e2e199e698e7b9e7db389316..c05594386c52d0729d6c19725577317191e0c48b 100755 (executable)
@@ -1,5 +1,5 @@
 /* Project 16 Source Code~\r
- * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
+ * Copyright (C) 2012-2018 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
  *\r
  * This file is part of Project 16.\r
  *\r
@@ -58,7 +58,6 @@
 #include "src/lib/16_t.h"\r
 #include "src/lib/16_tdef.h"\r
 #include "src/lib/nyan/kitten.h"\r
-#include "src/lib/16_dbg.h"\r
 \r
 #define VERSION __DATE__ " " __TIME__\r
 \r
@@ -162,7 +161,8 @@ extern      int                     profilehandle,debughandle;      //make it into game global
 #define        nil     ((void *)0)\r
 \r
 #ifdef __WATCOMC__\r
-/*static union REGS CPURegs;\r
+//----#define _FCORELEFT 0x90000UL+16UL\r
+extern union REGS CPURegs;\r
 \r
 #define _AX CPURegs.x.ax\r
 #define _BX CPURegs.x.bx\r
@@ -170,6 +170,7 @@ extern      int                     profilehandle,debughandle;      //make it into game global
 #define _DX CPURegs.x.dx\r
 \r
 #define _SI CPURegs.x.si\r
+#define _DI CPURegs.x.di\r
 \r
 #define _AH CPURegs.h.ah\r
 #define _AL CPURegs.h.al\r
@@ -180,7 +181,9 @@ extern      int                     profilehandle,debughandle;      //make it into game global
 #define _DH CPURegs.h.dh\r
 #define _DL CPURegs.h.dl\r
 \r
-#define geninterrupt(n) int86(n,&CPURegs,&CPURegs);*/\r
+#define _CFLAG CPURegs.x.cflag\r
+\r
+#define geninterrupt(n) int86(n,&CPURegs,&CPURegs);\r
 \r
 \r
 typedef union REGPACK  regs_t;\r
@@ -196,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);\r
 byte dirchar(byte in);\r
 void print_mem(void const *vp, size_t n);\r
+void hres (void);\r
+void regidump();\r
+\r
+//from https://stackoverflow.com/questions/111928/is-there-a-printf-converter-to-print-in-binary-format\r
+//printf("Leading text "BYTE_TO_BINARY_PATTERN, BYTE_TO_BINARY(byte));\r
+//For multi-byte types\r
+//printf("m: "BYTE_TO_BINARY_PATTERN" "BYTE_TO_BINARY_PATTERN"\n",             BYTE_TO_BINARY(m>>8), BYTE_TO_BINARY(m));\r
+#define BYTE_TO_BINARY_PATTERN "%c%c%c%c%c%c%c%c"\r
+#define BYTE_TO_BINARY(byte)   \\r
+       (byte & 0x80 ? '1' : '0'),      \\r
+       (byte & 0x40 ? '1' : '0'),      \\r
+       (byte & 0x20 ? '1' : '0'),      \\r
+       (byte & 0x10 ? '1' : '0'),      \\r
+       (byte & 0x08 ? '1' : '0'),      \\r
+       (byte & 0x04 ? '1' : '0'),      \\r
+       (byte & 0x02 ? '1' : '0'),      \\r
+       (byte & 0x01 ? '1' : '0')\r
+\r
+#define WORD_TO_BINARY_PATTERN "%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"\r
+#define WORD_TO_BINARY(word)   \\r
+       (word & 0x8000 ? '1' : '0'),    \\r
+       (word & 0x4000 ? '1' : '0'),    \\r
+       (word & 0x2000 ? '1' : '0'),    \\r
+       (word & 0x1000 ? '1' : '0'),    \\r
+       (word & 0x0800 ? '1' : '0'),    \\r
+       (word & 0x0400 ? '1' : '0'),    \\r
+       (word & 0x0200 ? '1' : '0'),    \\r
+       (word & 0x0100 ? '1' : '0'),    \\r
+       (word & 0x0080 ? '1' : '0'),    \\r
+       (word & 0x0040 ? '1' : '0'),    \\r
+       (word & 0x0020 ? '1' : '0'),    \\r
+       (word & 0x0010 ? '1' : '0'),    \\r
+       (word & 0x0008 ? '1' : '0'),    \\r
+       (word & 0x0004 ? '1' : '0'),    \\r
+       (word & 0x0002 ? '1' : '0'),    \\r
+       (word & 0x0001 ? '1' : '0')\r
+\r
+#define NIBBLE_TO_BINARY_PATTERN "%c%c%c%c"\r
+#define NIBBLE_TO_BINARY(nibble)       \\r
+       (nibble & 0x08 ? '1' : '0'),    \\r
+       (nibble & 0x04 ? '1' : '0'),    \\r
+       (nibble & 0x02 ? '1' : '0'),    \\r
+       (nibble & 0x01 ? '1' : '0')\r
+\r
+#define BOOLEAN_TO_BINARY_PATTERN "%c"\r
+#define BOOLEAN_TO_BINARY(boolean)     \\r
+       (boolean & 0x01 ? '1' : '0')\r
 \r
 #define PRINT_OPAQUE_STRUCT(p)  print_mem((p), sizeof(*(p)))\r
 \r