1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /***************************************************************************
- * File : dosdcc.h
- * Purpose : include file for files decompiled by dcc.
- * Copyright (c) Cristina Cifuentes - QUT - 1992
- **************************************************************************/
- /* Type definitions for intel 80x86 architecture */
- typedef unsigned int Word; /* 16 bits */
- typedef unsigned char Byte; /* 8 bits */
- typedef union {
- unsigned long dW;
- Word wL, wH; /* 2 words */
- } Dword; /* 32 bits */
- /* Structure to access high and low bits of a Byte or Word variable */
- typedef struct {
- /* low byte */
- Word lowBitWord : 1;
- Word filler1 : 6;
- Word highBitByte : 1;
- /* high byte */
- Word lowBitByte : 1;
- Word filler2 : 6;
- Word highBitWord : 1;
- } wordBits;
- /* Low and high bits of a Byte or Word variable */
- #define lowBit(a) ((wordBits)(a).lowBitWord)
- #define highBitByte(a) ((wordBits)(a).highBitByte)
- #define lowBitByte(a) ((wordBits)(a).lowBitByte)
- #define highBit(a) (sizeof(a) == sizeof(Word) ? \
- ((wordBits)(a).highBitWord):\
- ((wordBits)(a).highBitByte))
- /* Word register variables */
- #define ax regs.x.ax
- #define bx regs.x.bx
- #define cx regs.x.cx
- #define dx regs.x.dx
- #define cs regs.x.cs
- #define es regs.x.es
- #define ds regs.x.ds
- #define ss regs.x.ss
- #define si regs.x.si
- #define di regs.x.di
- #define bp regs.x.bp
- #define sp regs.x.sp
- /* getting rid of all flags */
- #define carry regs.x.cflags
- #define overF regs.x.flags /***** check *****/
- /* Byte register variables */
- #define ah regs.h.ah
- #define al regs.h.al
- #define bh regs.h.bh
- #define bl regs.h.bl
- #define ch regs.h.ch
- #define cl regs.h.cl
- #define dh regs.h.dh
- #define dl regs.h.dl
- /* High and low words of a Dword */
- #define highWord(w) (*((Word*)&(w) + 1))
- #define lowWord(w) ((Word)(w))
- #define MAXByte 0xFF
- #define MAXWord 0xFFFF
- #define MAXSignByte 0x7F
- #define MINSignByte 0x81
- #define MAXSignWord 0x7FFF
- #define MINSignWord 0x8001
|