Files
executor/src/include/SANE.h

287 lines
11 KiB
C

#if !defined(__SANE__)
#define __SANE__
/*
* Copyright 1990, 1991 by Abacus Research and Development, Inc.
* All rights reserved.
*
* $Id: SANE.h 63 2004-12-24 18:19:43Z ctm $
*/
/* Big-endian 64 bit "comp" data type. Note that this has a NaN value! */
typedef union {
struct {
ULONGINT hi PACKED;
ULONGINT lo PACKED;
} hilo LPACKED;
signed long long val PACKED;
} comp_t;
/* Now we have a version of this in "native" byte order. */
#if defined (LITTLEENDIAN)
typedef union {
struct {
ULONGINT lo PACKED;
ULONGINT hi PACKED;
} hilo LPACKED;
signed long long val PACKED;
} native_comp_t;
#else /* Not LITTLEENDIAN */
typedef comp_t native_comp_t;
#endif /* Not LITTLEENDIAN */
/* "Packed" IEEE 80 bit FP representation (zero field omitted). */
typedef struct {
/* Sign and exponent. */
union {
#if !defined (LITTLEENDIAN)
struct { /* Here for added efficiency when BIGENDIAN. */
unsigned short sgn:1;
unsigned short exp:15;
} s PACKED;
#endif
unsigned short sgn_and_exp PACKED;
} se LPACKED;
/* Mantissa. */
union {
struct {
ULONGINT man_hi PACKED;
ULONGINT man_lo PACKED;
} hilo LPACKED;
unsigned long long man PACKED;
} man LPACKED;
} x80_t;
/* For backwards compatibility with old stuff. */
typedef x80_t extended80;
typedef comp_t comp;
/* Begin old stuff: */
/* This only makes sense on the 68k. */
#if defined (mc68000)
typedef struct {
INTEGER exp PACKED;
INTEGER zero PACKED;
INTEGER man[4] PACKED;
} extended96;
#endif
#define SIGDIGLEN 20
typedef struct {
unsigned char sgn LPACKED;
unsigned char unused_filler LPACKED;
INTEGER exp PACKED;
unsigned char sig[SIGDIGLEN] LPACKED;
} Decimal;
typedef enum { FloatDecimal, FixedDecimal = 256 } toobigdecformstyle_t;
typedef INTEGER DecFormStyle;
#define DECIMALTYPEMASK 0x0100
typedef enum {SNaN = 1, QNaN, Infinite, ZeroNum, NormalNum, DenormalNum}
NumClass;
typedef struct {
DecFormStyle style PACKED;
INTEGER digits PACKED;
} DecForm;
#define Decstr char *
#define FX_OPERAND 0x0000
#define FD_OPERAND 0x0800
#define FS_OPERAND 0x1000
#define FC_OPERAND 0x3000
#define FI_OPERAND 0x2000
#define FL_OPERAND 0x2800
#define Fx2X_OPCODE 0x000E
#define FI2X (FI_OPERAND + Fx2X_OPCODE)
#define FCMP_RETURN_TYPE void
/* DO NOT DELETE THIS LINE */
#if !defined (__STDC__)
extern pascal void ROMlib_Fcomp2X();
extern void ROMlib_Fsetenv();
extern void ROMlib_Fgetenv();
extern void ROMlib_Fprocentry();
extern void ROMlib_Fprocexit();
extern void ROMlib_Ftestxcp();
extern void ROMlib_FsqrtX();
extern void ROMlib_FscalbX();
extern void ROMlib_FlogbX();
extern void ROMlib_FabsX();
extern void ROMlib_FnegX();
extern void ROMlib_FrintX();
extern void ROMlib_FtintX();
extern void ROMlib_Fcpysgnx();
extern void ROMlib_Faddx();
extern void ROMlib_Fsubx();
extern void ROMlib_Fmulx();
extern void ROMlib_Fdivx();
extern void ROMlib_Fremx();
extern FCMP_RETURN_TYPE ROMlib_Fcmpx();
extern FCMP_RETURN_TYPE ROMlib_FcpXx();
extern void ROMlib_FX2x();
extern void ROMlib_Fx2X();
extern void ROMlib_Fx2dec();
extern void ROMlib_Fdec2x();
extern void ROMlib_Fclassx();
extern void ROMlib_FlnX();
extern void ROMlib_Flog2X();
extern void ROMlib_Fln1X();
extern void ROMlib_Flog21X();
extern void ROMlib_FexpX();
extern void ROMlib_Fexp2X();
extern void ROMlib_Fexp1X();
extern void ROMlib_Fexp21X();
extern void ROMlib_Fxpwri();
extern void ROMlib_Fxpwry();
extern void ROMlib_Fcompound();
extern void ROMlib_Fannuity();
extern void ROMlib_FsinX();
extern void ROMlib_FcosX();
extern void ROMlib_FtanX();
extern void ROMlib_FatanX();
extern void ROMlib_FrandX();
extern void ROMlib_Fdec2str();
extern void ROMlib_Fxstr2dec();
extern void ROMlib_Fcstr2dec();
extern void ROMlib_Fpstr2dec();
#else /* __STDC__ */
extern pascal void C_ROMlib_Fcomp2X( comp sp, extended80 *
dp ); extern pascal void P_ROMlib_Fcomp2X( comp sp, extended80 *
dp );
extern pascal trap void C_ROMlib_Fsetenv( INTEGER *dp,
INTEGER sel ); extern pascal trap void P_ROMlib_Fsetenv( INTEGER *dp,
INTEGER sel );
extern pascal trap void C_ROMlib_Fgetenv( INTEGER *dp,
INTEGER sel ); extern pascal trap void P_ROMlib_Fgetenv( INTEGER *dp,
INTEGER sel );
extern pascal trap void C_ROMlib_Fprocentry( INTEGER *dp,
INTEGER sel ); extern pascal trap void P_ROMlib_Fprocentry( INTEGER *dp,
INTEGER sel );
extern pascal trap void C_ROMlib_Fprocexit( INTEGER *dp,
INTEGER sel ); extern pascal trap void P_ROMlib_Fprocexit( INTEGER *dp,
INTEGER sel );
extern pascal trap void C_ROMlib_Ftestxcp( INTEGER *dp,
INTEGER sel ); extern pascal trap void P_ROMlib_Ftestxcp( INTEGER *dp,
INTEGER sel );
extern pascal trap void C_ROMlib_FsqrtX( extended80 *dp,
unsigned short sel ); extern pascal trap void P_ROMlib_FsqrtX( extended80 *dp,
unsigned short sel );
extern pascal trap void C_ROMlib_FscalbX( INTEGER *sp,
extended80 *dp, unsigned short sel ); extern pascal trap void P_ROMlib_FscalbX( INTEGER *sp,
extended80 *dp, unsigned short sel );
extern pascal trap void C_ROMlib_FlogbX( extended80 *dp,
unsigned short sel ); extern pascal trap void P_ROMlib_FlogbX( extended80 *dp,
unsigned short sel );
extern pascal trap void C_ROMlib_FabsX( extended80 *dp,
unsigned short sel ); extern pascal trap void P_ROMlib_FabsX( extended80 *dp,
unsigned short sel );
extern pascal trap void C_ROMlib_FnegX( extended80 *dp,
unsigned short sel ); extern pascal trap void P_ROMlib_FnegX( extended80 *dp,
unsigned short sel );
extern pascal trap void C_ROMlib_FrintX( extended80 *dp,
unsigned short sel ); extern pascal trap void P_ROMlib_FrintX( extended80 *dp,
unsigned short sel );
extern pascal trap void C_ROMlib_FtintX( extended80 *dp,
unsigned short sel ); extern pascal trap void P_ROMlib_FtintX( extended80 *dp,
unsigned short sel );
extern pascal trap void C_ROMlib_Fcpysgnx( x80_t *sp,
x80_t *dp, unsigned short sel ); extern pascal trap void P_ROMlib_Fcpysgnx( x80_t *sp,
x80_t *dp, unsigned short sel );
extern pascal trap void C_ROMlib_Faddx( void *sp, extended80 *
dp, unsigned short sel ); extern pascal trap void P_ROMlib_Faddx( void *sp, extended80 *
dp, unsigned short sel );
extern pascal trap void C_ROMlib_Fsubx( void *sp, extended80 *
dp, unsigned short sel ); extern pascal trap void P_ROMlib_Fsubx( void *sp, extended80 *
dp, unsigned short sel );
extern pascal trap void C_ROMlib_Fmulx( void *sp, extended80 *
dp, unsigned short sel ); extern pascal trap void P_ROMlib_Fmulx( void *sp, extended80 *
dp, unsigned short sel );
extern pascal trap void C_ROMlib_Fdivx( void *sp, extended80 *
dp, unsigned short sel ); extern pascal trap void P_ROMlib_Fdivx( void *sp, extended80 *
dp, unsigned short sel );
extern pascal trap void C_ROMlib_Fremx( void *sp,
extended80 *dp, unsigned short sel ); extern pascal trap void P_ROMlib_Fremx( void *sp,
extended80 *dp, unsigned short sel );
extern pascal trap FCMP_RETURN_TYPE C_ROMlib_Fcmpx( void *sp, extended80 *
dp, unsigned short sel ); extern pascal trap void P_ROMlib_Fcmpx( void *sp, extended80 *
dp, unsigned short sel );
extern pascal trap FCMP_RETURN_TYPE C_ROMlib_FcpXx( void *sp, extended80 *
dp, unsigned short sel ); extern pascal trap void P_ROMlib_FcpXx( void *sp, extended80 *
dp, unsigned short sel );
extern pascal trap void C_ROMlib_FX2x( extended80 *sp, void *
dp, unsigned short sel ); extern pascal trap void P_ROMlib_FX2x( extended80 *sp, void *
dp, unsigned short sel );
extern pascal trap void C_ROMlib_Fx2X( void *sp, extended80 *
dp, unsigned short sel ); extern pascal trap void P_ROMlib_Fx2X( void *sp, extended80 *
dp, unsigned short sel );
extern pascal trap void C_ROMlib_Fx2dec( DecForm *sp2, void *
sp, Decimal *dp, unsigned short sel ); extern pascal trap void P_ROMlib_Fx2dec( DecForm *sp2, void *
sp, Decimal *dp, unsigned short sel );
extern pascal trap void C_ROMlib_Fdec2x( Decimal *sp, void *
dp, unsigned short sel ); extern pascal trap void P_ROMlib_Fdec2x( Decimal *sp, void *
dp, unsigned short sel );
extern pascal trap void C_ROMlib_Fclassx( void *sp, INTEGER *
dp, unsigned short sel ); extern pascal trap void P_ROMlib_Fclassx( void *sp, INTEGER *
dp, unsigned short sel );
extern pascal trap void C_ROMlib_FlnX( extended80 *dp ); extern pascal trap void P_ROMlib_FlnX( extended80 *dp);
extern pascal trap void C_ROMlib_Flog2X( extended80 *dp ); extern pascal trap void P_ROMlib_Flog2X( extended80 *dp);
extern pascal trap void C_ROMlib_Fln1X( extended80 *dp ); extern pascal trap void P_ROMlib_Fln1X( extended80 *dp);
extern pascal trap void C_ROMlib_Flog21X( extended80 *dp ); extern pascal trap void P_ROMlib_Flog21X( extended80 *dp);
extern pascal trap void C_ROMlib_FexpX( extended80 *dp ); extern pascal trap void P_ROMlib_FexpX( extended80 *dp);
extern pascal trap void C_ROMlib_Fexp2X( extended80 *dp ); extern pascal trap void P_ROMlib_Fexp2X( extended80 *dp);
extern pascal trap void C_ROMlib_Fexp1X( extended80 *dp ); extern pascal trap void P_ROMlib_Fexp1X( extended80 *dp);
extern pascal trap void C_ROMlib_Fexp21X( extended80 *dp ); extern pascal trap void P_ROMlib_Fexp21X( extended80 *dp);
extern pascal trap void C_ROMlib_Fxpwri( INTEGER *sp,
extended80 *dp ); extern pascal trap void P_ROMlib_Fxpwri( INTEGER *sp,
extended80 *dp );
extern pascal trap void C_ROMlib_Fxpwry( extended80 *sp,
extended80 *dp ); extern pascal trap void P_ROMlib_Fxpwry( extended80 *sp,
extended80 *dp );
extern pascal trap void C_ROMlib_Fcompound( extended80 *sp2,
extended80 *sp, extended80 *dp ); extern pascal trap void P_ROMlib_Fcompound( extended80 *sp2,
extended80 *sp, extended80 *dp );
extern pascal trap void C_ROMlib_Fannuity( extended80 *sp2,
extended80 *sp, extended80 *dp ); extern pascal trap void P_ROMlib_Fannuity( extended80 *sp2,
extended80 *sp, extended80 *dp );
extern pascal trap void C_ROMlib_FsinX( extended80 *dp ); extern pascal trap void P_ROMlib_FsinX( extended80 *dp);
extern pascal trap void C_ROMlib_FcosX( extended80 *dp ); extern pascal trap void P_ROMlib_FcosX( extended80 *dp);
extern pascal trap void C_ROMlib_FtanX( extended80 *dp ); extern pascal trap void P_ROMlib_FtanX( extended80 *dp);
extern pascal trap void C_ROMlib_FatanX( extended80 *dp ); extern pascal trap void P_ROMlib_FatanX( extended80 *dp);
extern pascal trap void C_ROMlib_FrandX( extended80 *dp ); extern pascal trap void P_ROMlib_FrandX( extended80 *dp);
extern pascal trap void C_ROMlib_Fdec2str( DecForm *sp2,
Decimal *sp, Decstr dp ); extern pascal trap void P_ROMlib_Fdec2str( DecForm *sp2,
Decimal *sp, Decstr dp );
extern pascal trap void C_ROMlib_Fxstr2dec( Decstr sp2,
INTEGER *sp, Decimal *dp2, Byte *dp,
INTEGER lastchar ); extern pascal trap void P_ROMlib_Fxstr2dec( Decstr sp2,
INTEGER *sp, Decimal *dp2, Byte *dp,
INTEGER lastchar );
extern pascal trap void C_ROMlib_Fcstr2dec( Decstr sp2,
INTEGER *sp, Decimal *dp2, Byte *dp ); extern pascal trap void P_ROMlib_Fcstr2dec( Decstr sp2,
INTEGER *sp, Decimal *dp2, Byte *dp );
extern pascal trap void C_ROMlib_Fpstr2dec( Decstr sp2,
INTEGER *sp, Decimal *dp2, Byte *dp ); extern pascal trap void P_ROMlib_Fpstr2dec( Decstr sp2,
INTEGER *sp, Decimal *dp2, Byte *dp );
extern pascal trap void C_ROMlib_Fsethv( LONGINT * hvp, unsigned short sel );
extern pascal trap void C_ROMlib_Fgethv( LONGINT * hvp, unsigned short sel );
extern pascal trap void C_ROMlib_FnextX (uint8 *x, uint8 *y,
unsigned short sel);
#endif /* __STDC__ */
#endif