home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
files
/
telecomm
/
nhclb120
/
regs.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-09-26
|
1KB
|
54 lines
struct WORDREGS {
unsigned int ax, bx, cx, dx, si, di, cflag, flags;
};
struct BYTEREGS {
unsigned char al, ah, bl, bh, cl, ch, dl, dh;
};
union REGS {
struct WORDREGS x;
struct BYTEREGS h;
};
struct SREGS {
unsigned int es;
unsigned int cs;
unsigned int ss;
unsigned int ds;
};
struct regs {
union REGS regs;
struct SREGS sregs;
};
#ifndef AZTEC
#define sysint(intno, iregs, oregs) (int86x(intno, iregs.regs, iregs.regs, iregs.sregs), *iregs.regs.x.flags)
#endif
/* Macros to simulate Turbo-C style register pseudovariables */
#define _AX regs.regs.x.ax
#define _AL regs.regs.h.al
#define _AH regs.regs.h.ah
#define _BX regs.regs.x.bx
#define _BL regs.regs.h.bl
#define _BH regs.regs.h.bh
#define _CX regs.regs.x.cx
#define _CL regs.regs.h.cl
#define _CH regs.regs.h.ch
#define _DX regs.regs.x.dx
#define _DL regs.regs.h.dl
#define _DH regs.regs.h.dh
#define _DI regs.regs.x.di
#define _SI regs.regs.x.si
#define _DS regs.sregs.ds
#define _ES regs.sregs.es
/* Segment number of pointer */
#define FP_SEG(x) (sizeof(x) == 4 ? ((long)(x) >> 16) : getds())
/* Offset of pointer */
#define FP_OFF(x) ((unsigned short)((long)(x) & 0xffff))
#define FLAG_CARRY (1 << 0) /* Carry flag */