44 lines
901 B
C++
44 lines
901 B
C++
|
/* Copyright (C) 1986-2001 by Digital Mars. $Revision: 1.1.1.1 $ */
|
||
|
#if __SC__ || __RCC__
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#ifndef __MACROS_H
|
||
|
#define __MACROS_H 1
|
||
|
|
||
|
extern void _far _pascal Dos3Call(void);
|
||
|
|
||
|
#define LPTR M_I86CM || M_I86LM || M_I86VM
|
||
|
#define SPTR M_I86SM || M_I86MM
|
||
|
|
||
|
#ifdef _WINDOWS
|
||
|
#define bdos __asm call Dos3Call
|
||
|
#else
|
||
|
#define bdos __asm int 21h
|
||
|
#endif
|
||
|
|
||
|
#define bdos1(fun) __asm mov ah,fun bdos
|
||
|
|
||
|
#if __INTSIZE == 4
|
||
|
#define errno_set __asm mov errno, EAX
|
||
|
#else
|
||
|
#define errno_set __asm mov errno, AX
|
||
|
#endif
|
||
|
|
||
|
#define errno_set1(value) __asm mov errno, value
|
||
|
|
||
|
#define clr1(reg1) __asm xor reg1, reg1
|
||
|
|
||
|
#define clr2( reg1, reg2 ) __asm xor reg1,reg1 clr1(reg2)
|
||
|
|
||
|
#define clr3( reg1, reg2, reg3) __asm xor reg1, reg1 clr2( reg2, reg3 )
|
||
|
|
||
|
#define _ifs(arg1,cond,arg2,lbl) __asm cmp arg1,arg2 __asm j##cond short lbl
|
||
|
|
||
|
#if __I386>=3 || (LPTR)
|
||
|
#define SIZEPTR 4
|
||
|
#else
|
||
|
#define SIZEPTR 2
|
||
|
#endif
|
||
|
#endif
|