dosdcc.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /***************************************************************************
  2. * File : dosdcc.h
  3. * Purpose : include file for files decompiled by dcc.
  4. * Copyright (c) Cristina Cifuentes - QUT - 1992
  5. **************************************************************************/
  6. /* Type definitions for intel 80x86 architecture */
  7. typedef unsigned int Word; /* 16 bits */
  8. typedef unsigned char Byte; /* 8 bits */
  9. typedef union {
  10. unsigned long dW;
  11. Word wL, wH; /* 2 words */
  12. } Dword; /* 32 bits */
  13. /* Structure to access high and low bits of a Byte or Word variable */
  14. typedef struct {
  15. /* low byte */
  16. Word lowBitWord : 1;
  17. Word filler1 : 6;
  18. Word highBitByte : 1;
  19. /* high byte */
  20. Word lowBitByte : 1;
  21. Word filler2 : 6;
  22. Word highBitWord : 1;
  23. } wordBits;
  24. /* Low and high bits of a Byte or Word variable */
  25. #define lowBit(a) ((wordBits)(a).lowBitWord)
  26. #define highBitByte(a) ((wordBits)(a).highBitByte)
  27. #define lowBitByte(a) ((wordBits)(a).lowBitByte)
  28. #define highBit(a) (sizeof(a) == sizeof(Word) ? \
  29. ((wordBits)(a).highBitWord):\
  30. ((wordBits)(a).highBitByte))
  31. /* Word register variables */
  32. #define ax regs.x.ax
  33. #define bx regs.x.bx
  34. #define cx regs.x.cx
  35. #define dx regs.x.dx
  36. #define cs regs.x.cs
  37. #define es regs.x.es
  38. #define ds regs.x.ds
  39. #define ss regs.x.ss
  40. #define si regs.x.si
  41. #define di regs.x.di
  42. #define bp regs.x.bp
  43. #define sp regs.x.sp
  44. /* getting rid of all flags */
  45. #define carry regs.x.cflags
  46. #define overF regs.x.flags /***** check *****/
  47. /* Byte register variables */
  48. #define ah regs.h.ah
  49. #define al regs.h.al
  50. #define bh regs.h.bh
  51. #define bl regs.h.bl
  52. #define ch regs.h.ch
  53. #define cl regs.h.cl
  54. #define dh regs.h.dh
  55. #define dl regs.h.dl
  56. /* High and low words of a Dword */
  57. #define highWord(w) (*((Word*)&(w) + 1))
  58. #define lowWord(w) ((Word)(w))
  59. #define MAXByte 0xFF
  60. #define MAXWord 0xFFFF
  61. #define MAXSignByte 0x7F
  62. #define MINSignByte 0x81
  63. #define MAXSignWord 0x7FFF
  64. #define MINSignWord 0x8001