mirror of
https://github.com/elliotnunn/supermario.git
synced 2025-02-18 12:30:31 +00:00
109 lines
3.6 KiB
Plaintext
109 lines
3.6 KiB
Plaintext
;
|
||
; File: FixMath.a
|
||
;
|
||
; Contains: xxx put contents here xxx
|
||
;
|
||
; Written by: xxx put writers here xxx
|
||
;
|
||
; Copyright: © 1991-1992 by Apple Computer, Inc., all rights reserved.
|
||
;
|
||
; Change History (most recent first):
|
||
;
|
||
; <8> 2/11/92 MH Move conditional assembly directive to immediately following
|
||
; copyright notice. This matches the public interface, and reduces
|
||
; assembler overhead in case the file is included more than once.
|
||
; <7> 1/30/91 gbm sab, #38: Change the ‘already including this file’ variable to
|
||
; all uppercase (for security reasons)
|
||
;
|
||
; To Do:
|
||
;
|
||
|
||
; Version: 2.94
|
||
; Created: Friday, October 20, 1989 at 9:16:04 PM
|
||
|
||
; File: FixMath.a
|
||
;
|
||
; Copyright Apple Computer, Inc. 1984-1988
|
||
; All Rights Reserved
|
||
;
|
||
; 1.0 CCH 11/ 9/1988 Adding to EASE.
|
||
; END EASE MODIFICATION HISTORY
|
||
;•1.1 CCH 9/14/1988 Updated EASE with the current rev of this file.
|
||
|
||
|
||
IF &TYPE('__INCLUDINGFIXMATH__') = 'UNDEFINED' THEN
|
||
__INCLUDINGFIXMATH__ SET 1
|
||
|
||
; These calls support three types of fixed point numbers, each 32 bits long.
|
||
; The bits are interpreted as shown. The '-' represents the sign bit.
|
||
;
|
||
; Type <---------Integer Portion--------> <-------Fractional Portion------>
|
||
;LongInt -xxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx.
|
||
;Fixed -xxxxxxx xxxxxxxx.xxxxxxxx xxxxxxxx
|
||
;Fract -x.xxxxxxxx xxxxxxxx xxxxxxxx xxxxxx
|
||
;
|
||
; Type LongInt can represent integers between +/-2147483647. Type Fixed can
|
||
; represent fractional quantities between +/-32768, with about 5 digits of
|
||
; accuracy. Type Fract can represent fractional quantities between +/-2 with
|
||
; about 9 digits of accuracy. These numeric representations are useful for
|
||
; applications that do not require the accuracy of the floating point routines,
|
||
; and which need to run as fast as possible. The Graf3D three dimensional
|
||
; graphics package resides on top of these routines. Although FixMul is in the
|
||
; file ToolTraps, it is shown below to show how it handles different types.
|
||
; Additional fixed point routines are described in the Inside Macintosh chapter,
|
||
; “Toolbox Utilities.”
|
||
|
||
; FUNCTION FixMul(x, y: Fixed): Fixed;
|
||
; FixMul returns x * y. Note that FixMul effects "type * Fixed --> type":
|
||
; Fixed * Fixed --> Fixed
|
||
; LONGINT * Fixed --> LONGINT
|
||
; Fixed * LONGINT --> LONGINT
|
||
; Fract * Fixed --> Fract
|
||
; Fixed * Fract --> Fract
|
||
|
||
; FUNCTION FracMul(x, y: Fract): Fract;
|
||
; FracMul returns x * y. Note that FracMul effects "type * Fract --> type":
|
||
; Fract * Fract --> Fract
|
||
; LONGINT * Fract --> LONGINT
|
||
; Fract * LONGINT --> LONGINT
|
||
; Fixed * Fract --> Fixed
|
||
; Fract * Fixed --> Fixed
|
||
|
||
; FUNCTION FixDiv(x, y: Fixed): Fixed;
|
||
; FixDiv returns x / y. Note that FixDiv effects "type / type --> Fixed":
|
||
; Fixed / Fixed --> Fixed
|
||
; LONGINT / LONGINT --> Fixed
|
||
; Fract / Fract --> Fixed
|
||
; LONGINT / Fixed --> LONGINT
|
||
; Fract / Fixed --> Fract
|
||
|
||
; FUNCTION FracDiv(x, y: Fract): Fract;
|
||
; FracDiv returns x / y. Note that FracDiv effects "type / type --> Fract":
|
||
; Fract / Fract --> Fract
|
||
; LONGINT / LONGINT --> Fract
|
||
; Fixed / Fixed --> Fract
|
||
; LONGINT / Fract --> LONGINT
|
||
; Fixed / Fract --> Fixed
|
||
|
||
; FUNCTION FracSqrt(x: Fract): Fract;
|
||
; FracSqrt returns the square root of x. Both argument and result are regarded
|
||
; as unsigned.
|
||
|
||
; FUNCTION FracCos(x: Fixed): Fract;
|
||
; FUNCTION FracSin(x: Fixed): Fract;
|
||
; FracCos and FracSin return the cosine and sine, respectively, given the
|
||
; argument x in radians.
|
||
|
||
;The following routines are accessed via the glue code
|
||
;which will call the trap on a 128K ROM machine
|
||
|
||
|
||
_FracCos OPWORD $A847
|
||
_FracSin OPWORD $A848
|
||
_FracSqrt OPWORD $A849
|
||
_FracMul OPWORD $A84A
|
||
_FracDiv OPWORD $A84B
|
||
_FixDiv OPWORD $A84D
|
||
|
||
ENDIF ; ...already included
|