mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-29 05:49:19 +00:00
265 lines
7.0 KiB
OpenEdge ABL
265 lines
7.0 KiB
OpenEdge ABL
|
|
{
|
|
Created: Friday, September 15, 1989 at 5:01 PM
|
|
SANE.p
|
|
Pascal Interface to the Macintosh Libraries
|
|
|
|
Copyright Apple Computer, Inc. 1985-1991
|
|
All rights reserved
|
|
This file is used in these builds: ROM System
|
|
|
|
|
|
Change History (most recent first):
|
|
|
|
<3> 2/17/92 MH Move def on Extended80 to types.p, and include types.p
|
|
<2> 8/8/91 JL Updated Copyright.
|
|
|
|
To Do:
|
|
}
|
|
|
|
|
|
{$IFC UNDEFINED UsingIncludes}
|
|
{$SETC UsingIncludes := 0}
|
|
{$ENDC}
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
UNIT SANE;
|
|
INTERFACE
|
|
{$ENDC}
|
|
|
|
{$IFC UNDEFINED UsingSANE}
|
|
{$SETC UsingSANE := 1}
|
|
|
|
{$I+}
|
|
{$SETC SANEIncludes := UsingIncludes}
|
|
{$SETC UsingIncludes := 1}
|
|
{$IFC UNDEFINED UsingTypes}
|
|
{$I $$Shell(PInterfaces)Types.p}
|
|
{$ENDC}
|
|
{$SETC UsingIncludes := SANEIncludes}
|
|
|
|
{ Elems881 mode set by -d Elems881=true on Pascal command line }
|
|
|
|
{$IFC UNDEFINED Elems881}
|
|
{$SETC Elems881 = FALSE}
|
|
{$ENDC}
|
|
|
|
|
|
CONST
|
|
{$IFC OPTION(MC68881)}
|
|
|
|
{*======================================================================*
|
|
* The interface specific to the MC68881 SANE library *
|
|
*======================================================================*}
|
|
|
|
Inexact = 8;
|
|
DivByZero = 16;
|
|
Underflow = 32;
|
|
Overflow = 64;
|
|
Invalid = 128;
|
|
CurInex1 = 256;
|
|
CurInex2 = 512;
|
|
CurDivByZero = 1024;
|
|
CurUnderflow = 2048;
|
|
CurOverflow = 4096;
|
|
CurOpError = 8192;
|
|
CurSigNaN = 16384;
|
|
CurBSonUnor = 32768;
|
|
|
|
|
|
{$ELSEC}
|
|
|
|
{*======================================================================*
|
|
* The interface specific to the software SANE library *
|
|
*======================================================================*}
|
|
|
|
Invalid = 1;
|
|
Underflow = 2;
|
|
Overflow = 4;
|
|
DivByZero = 8;
|
|
Inexact = 16;
|
|
IEEEDefaultEnv = 0; {IEEE-default floating-point environment constant}
|
|
|
|
|
|
{$ENDC}
|
|
|
|
{*======================================================================*
|
|
* The common interface for the SANE library *
|
|
*======================================================================*}
|
|
|
|
DecStrLen = 255;
|
|
SigDigLen = 20; {for 68K; use 28 in 6502 SANE}
|
|
|
|
|
|
TYPE
|
|
|
|
RelOp = (GreaterThan,LessThan,EqualTo,Unordered);
|
|
|
|
NumClass = (SNaN,QNaN,Infinite,ZeroNum,NormalNum,DenormalNum);
|
|
|
|
RoundDir = (ToNearest,Upward,Downward,TowardZero);
|
|
|
|
RoundPre = (ExtPrecision,DblPrecision,RealPrecision);
|
|
|
|
DecimalKind = (FloatDecimal,FixedDecimal);
|
|
|
|
{$IFC OPTION(MC68881)}
|
|
|
|
{*======================================================================*
|
|
* The interface specific to the MC68881 SANE library *
|
|
*======================================================================*}
|
|
Exception = LONGINT;
|
|
|
|
Environment = RECORD
|
|
FPCR: LONGINT;
|
|
FPSR: LONGINT;
|
|
END;
|
|
|
|
TrapVector = RECORD
|
|
Unordered: LONGINT;
|
|
Inexact: LONGINT;
|
|
DivByZero: LONGINT;
|
|
Underflow: LONGINT;
|
|
OpError: LONGINT;
|
|
Overflow: LONGINT;
|
|
SigNaN: LONGINT;
|
|
END;
|
|
|
|
{$ELSEC}
|
|
|
|
{*======================================================================*
|
|
* The interface specific to the software SANE library *
|
|
*======================================================================*}
|
|
|
|
Exception = INTEGER;
|
|
|
|
Environment = INTEGER;
|
|
|
|
Extended96 = ARRAY [0..5] OF INTEGER;
|
|
|
|
MiscHaltInfo = RECORD
|
|
HaltExceptions: INTEGER;
|
|
PendingCCR: INTEGER;
|
|
PendingD0: LONGINT;
|
|
END;
|
|
|
|
{$ENDC}
|
|
|
|
{*======================================================================*
|
|
* The common interface for the SANE library *
|
|
*======================================================================*}
|
|
|
|
DecStr = STRING[DecStrLen];
|
|
|
|
DecForm = RECORD
|
|
style: DecimalKind;
|
|
digits: INTEGER;
|
|
END;
|
|
|
|
Decimal = RECORD
|
|
sgn: 0..1;
|
|
exp: INTEGER;
|
|
sig: STRING[SigDigLen];
|
|
END;
|
|
|
|
CStrPtr = ^CHAR;
|
|
|
|
|
|
|
|
{$IFC OPTION(MC68881)}
|
|
|
|
{ return IEEE default environment }
|
|
FUNCTION IEEEDefaultEnv: environment;
|
|
PROCEDURE SetTrapVector(Traps: trapvector);
|
|
PROCEDURE GetTrapVector(VAR Traps: trapvector);
|
|
FUNCTION X96toX80(x: Extended): extended80;
|
|
FUNCTION X80toX96(x: extended80): Extended;
|
|
{$IFC Elems881 = false}
|
|
|
|
{ sine }FUNCTION Sin(x: Extended): Extended;
|
|
FUNCTION Cos(x: Extended): Extended;
|
|
FUNCTION ArcTan(x: Extended): Extended;
|
|
FUNCTION Exp(x: Extended): Extended;
|
|
FUNCTION Ln(x: Extended): Extended;
|
|
FUNCTION Log2(x: Extended): Extended;
|
|
FUNCTION Ln1(x: Extended): Extended;
|
|
FUNCTION Exp2(x: Extended): Extended;
|
|
FUNCTION Exp1(x: Extended): Extended;
|
|
FUNCTION Tan(x: Extended): Extended;
|
|
{$ENDC}
|
|
|
|
{$ELSEC}
|
|
|
|
{ return halt vector }FUNCTION GetHaltVector: LONGINT;
|
|
PROCEDURE SetHaltVector(v: LONGINT);
|
|
FUNCTION X96toX80(x: Extended96): Extended;
|
|
FUNCTION X80toX96(x: Extended): Extended96;
|
|
FUNCTION Log2(x: Extended): Extended;
|
|
FUNCTION Ln1(x: Extended): Extended;
|
|
FUNCTION Exp2(x: Extended): Extended;
|
|
FUNCTION Exp1(x: Extended): Extended;
|
|
FUNCTION Tan(x: Extended): Extended;
|
|
{$ENDC}
|
|
|
|
|
|
{*======================================================================*
|
|
* The common interface for the SANE library *
|
|
*======================================================================*}
|
|
|
|
{---------------------------------------------------
|
|
* Conversions between numeric binary types.
|
|
---------------------------------------------------}
|
|
|
|
FUNCTION Num2Integer(x: Extended): INTEGER;
|
|
FUNCTION Num2Longint(x: Extended): LONGINT;
|
|
FUNCTION Num2Real(x: Extended): real;
|
|
FUNCTION Num2Double(x: Extended): DOUBLE;
|
|
FUNCTION Num2Extended(x: Extended): Extended;
|
|
FUNCTION Num2Comp(x: Extended): Comp;
|
|
PROCEDURE Num2Dec(f: decform;x: Extended;VAR d: decimal);
|
|
FUNCTION Dec2Num(d: decimal): Extended;
|
|
PROCEDURE Num2Str(f: decform;x: Extended;VAR s: DecStr);
|
|
FUNCTION Str2Num(s: DecStr): Extended;
|
|
PROCEDURE Str2Dec(s: DecStr;VAR Index: INTEGER;VAR d: decimal;VAR ValidPrefix: BOOLEAN);
|
|
PROCEDURE CStr2Dec(s: CStrPtr;VAR Index: INTEGER;VAR d: decimal;VAR ValidPrefix: BOOLEAN);
|
|
PROCEDURE Dec2Str(f: decform;d: decimal;VAR s: DecStr);
|
|
FUNCTION Remainder(x: Extended;y: Extended;VAR quo: INTEGER): Extended;
|
|
FUNCTION Rint(x: Extended): Extended;
|
|
FUNCTION Scalb(n: INTEGER;x: Extended): Extended;
|
|
FUNCTION Logb(x: Extended): Extended;
|
|
FUNCTION CopySign(x: Extended;y: Extended): Extended;
|
|
FUNCTION NextReal(x: real;y: real): real;
|
|
FUNCTION NextDouble(x: DOUBLE;y: DOUBLE): DOUBLE;
|
|
FUNCTION NextExtended(x: Extended;y: Extended): Extended;
|
|
FUNCTION XpwrI(x: Extended;i: INTEGER): Extended;
|
|
FUNCTION XpwrY(x: Extended;y: Extended): Extended;
|
|
FUNCTION Compound(r: Extended;n: Extended): Extended;
|
|
FUNCTION Annuity(r: Extended;n: Extended): Extended;
|
|
FUNCTION RandomX(VAR x: Extended): Extended;
|
|
FUNCTION ClassReal(x: real): NumClass;
|
|
FUNCTION ClassDouble(x: DOUBLE): NumClass;
|
|
FUNCTION ClassComp(x: Comp): NumClass;
|
|
FUNCTION ClassExtended(x: Extended): NumClass;
|
|
FUNCTION SignNum(x: Extended): INTEGER;
|
|
FUNCTION NAN(i: INTEGER): Extended;
|
|
PROCEDURE SetException(e: Exception;b: BOOLEAN);
|
|
FUNCTION TestException(e: Exception): BOOLEAN;
|
|
PROCEDURE SetHalt(e: Exception;b: BOOLEAN);
|
|
FUNCTION TestHalt(e: Exception): BOOLEAN;
|
|
PROCEDURE SetRound(r: RoundDir);
|
|
FUNCTION GetRound: RoundDir;
|
|
PROCEDURE SetPrecision(p: RoundPre);
|
|
FUNCTION GetPrecision: RoundPre;
|
|
PROCEDURE SetEnvironment(e: environment);
|
|
PROCEDURE GetEnvironment(VAR e: environment);
|
|
PROCEDURE ProcEntry(VAR e: environment);
|
|
PROCEDURE ProcExit(e: environment);
|
|
FUNCTION Relation(x: Extended;y: Extended): RelOp;
|
|
|
|
{$ENDC} { UsingSANE }
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
END.
|
|
{$ENDC}
|
|
|