mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-28 01:29:20 +00:00
5b0f0cc134
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included. The Tools directory, containing mostly junk, is also excluded.
1597 lines
29 KiB
Plaintext
1597 lines
29 KiB
Plaintext
;
|
|
; File: SANEMacs.a
|
|
;
|
|
; Contains: xxx put contents here xxx
|
|
;
|
|
; Written by: xxx put writers here xxx
|
|
;
|
|
; Copyright: © 1991 by Apple Computer, Inc., all rights reserved.
|
|
;
|
|
; Change History (most recent first):
|
|
;
|
|
; <6> 3/13/91 JL Checking in MPW version. Removed precision code masks
|
|
; <5> 1/30/91 gbm sab, #38: Change the Ôalready including this fileÕ variable to
|
|
; all uppercase (for security reasons)
|
|
;
|
|
; To Do:
|
|
;
|
|
|
|
; Version: 1.02
|
|
; Created: Tuesday, August 2, 1988 at 9:48:22 PM
|
|
; File: SANEMacs.a
|
|
;
|
|
; Copyright Apple Computer, Inc. 1984, 1985, 1986, 1987, 1989, 1990, 1991
|
|
; All Rights Reserved
|
|
;
|
|
; SANE Numerics -- This file defines the assembly language
|
|
; access to the 68K floating-point arithmetic routines. It is
|
|
; documented in the Apple Numerics Manual.
|
|
;
|
|
;************************************************************
|
|
; CHANGE LOG (relative to MPW 3.1 release)
|
|
;
|
|
; 16 Nov 89 JPO Added macros for operations involving
|
|
; 96-bit extended format (½ SANE)
|
|
; 27 Mar 90 JPO Changed 96-bit extended opcodes for PACK 4
|
|
; routines (bit 5 set instead of bit 7)
|
|
; 29 Mar 90 JPO Added macro FCLASSC (classify comp)
|
|
;************************************************************
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Operation code masks.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
FOADD EQU $0000 ; add
|
|
FOSUB EQU $0002 ; subtract
|
|
FOMUL EQU $0004 ; multiply
|
|
FODIV EQU $0006 ; divide
|
|
FOCMP EQU $0008 ; compare, no exception from unordered
|
|
FOCPX EQU $000A ; compare, signal invalid if unordered
|
|
FOREM EQU $000C ; remainder
|
|
FOZ2X EQU $000E ; convert to extended
|
|
FOX2Z EQU $0010 ; convert from extended
|
|
FOSQRT EQU $0012 ; square root
|
|
FORTI EQU $0014 ; round to integral value
|
|
FOTTI EQU $0016 ; truncate to integral value
|
|
FOSCALB EQU $0018 ; binary scale
|
|
FOLOGB EQU $001A ; binary log
|
|
FOCLASS EQU $001C ; classify
|
|
; UNDEFINED EQU $001E
|
|
|
|
FOSETENV EQU $0001 ; set environment
|
|
FOGETENV EQU $0003 ; get environment
|
|
FOSETHV EQU $0005 ; set halt vector
|
|
FOGETHV EQU $0007 ; get halt vector
|
|
FOD2B EQU $0009 ; convert decimal to binary
|
|
FOB2D EQU $000B ; convert binary to decimal
|
|
FONEG EQU $000D ; negate
|
|
FOABS EQU $000F ; absolute
|
|
FOCPYSGN EQU $0011 ; copy sign
|
|
FONEXT EQU $0013 ; next-after
|
|
FOSETXCP EQU $0015 ; set exception
|
|
FOPROCENTRY EQU $0017 ; procedure entry
|
|
FOPROCEXIT EQU $0019 ; procedure exit
|
|
FOTESTXCP EQU $001B ; test exception
|
|
; UNDEFINED EQU $001D
|
|
; UNDEFINED EQU $001F
|
|
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Operand format masks.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
FFEXT EQU $0000 ; extended -- 80-bit float
|
|
FFEXT96 EQU $0020 ; extended -- 96-bit float
|
|
FFDBL EQU $0800 ; double -- 64-bit float
|
|
FFSGL EQU $1000 ; single -- 32-bit float
|
|
FFINT EQU $2000 ; integer -- 16-bit integer
|
|
FFLNG EQU $2800 ; long int -- 32-bit integer
|
|
FFCOMP EQU $3000 ; comp -- 64-bit integer
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Operations: operand addresses should already be on
|
|
; the stack, with the destination address on top. The
|
|
; suffix X, D, S, C, I, or L determines the format of the
|
|
; source operand -- extended, double, single, comp,
|
|
; integer, or long integer, respectively; the destination
|
|
; operand is always extended.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Addition.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FADDX
|
|
MOVE.W #FFEXT+FOADD,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FADDD
|
|
MOVE.W #FFDBL+FOADD,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FADDS
|
|
MOVE.W #FFSGL+FOADD,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FADDC
|
|
MOVE.W #FFCOMP+FOADD,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FADDI
|
|
MOVE.W #FFINT+FOADD,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FADDL
|
|
MOVE.W #FFLNG+FOADD,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FADDX96
|
|
MOVE.W #FFEXT96+FOADD,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FADDD96
|
|
MOVE.W #FFDBL+FFEXT96+FOADD,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FADDS96
|
|
MOVE.W #FFSGL+FFEXT96+FOADD,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FADDC96
|
|
MOVE.W #FFCOMP+FFEXT96+FOADD,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FADDI96
|
|
MOVE.W #FFINT+FFEXT96+FOADD,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FADDL96
|
|
MOVE.W #FFLNG+FFEXT96+FOADD,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Subtraction.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FSUBX
|
|
MOVE.W #FFEXT+FOSUB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSUBD
|
|
MOVE.W #FFDBL+FOSUB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSUBS
|
|
MOVE.W #FFSGL+FOSUB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSUBC
|
|
MOVE.W #FFCOMP+FOSUB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSUBI
|
|
MOVE.W #FFINT+FOSUB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSUBL
|
|
MOVE.W #FFLNG+FOSUB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FSUBX96
|
|
MOVE.W #FFEXT96+FOSUB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSUBD96
|
|
MOVE.W #FFDBL+FFEXT96+FOSUB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSUBS96
|
|
MOVE.W #FFSGL+FFEXT96+FOSUB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSUBC96
|
|
MOVE.W #FFCOMP+FFEXT96+FOSUB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSUBI96
|
|
MOVE.W #FFINT+FFEXT96+FOSUB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSUBL96
|
|
MOVE.W #FFLNG+FFEXT96+FOSUB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Multiplication.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FMULX
|
|
MOVE.W #FFEXT+FOMUL,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FMULD
|
|
MOVE.W #FFDBL+FOMUL,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FMULS
|
|
MOVE.W #FFSGL+FOMUL,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FMULC
|
|
MOVE.W #FFCOMP+FOMUL,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FMULI
|
|
MOVE.W #FFINT+FOMUL,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FMULL
|
|
MOVE.W #FFLNG+FOMUL,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FMULX96
|
|
MOVE.W #FFEXT96+FOMUL,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FMULD96
|
|
MOVE.W #FFDBL+FFEXT96+FOMUL,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FMULS96
|
|
MOVE.W #FFSGL+FFEXT96+FOMUL,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FMULC96
|
|
MOVE.W #FFCOMP+FFEXT96+FOMUL,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FMULI96
|
|
MOVE.W #FFINT+FFEXT96+FOMUL,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FMULL96
|
|
MOVE.W #FFLNG+FFEXT96+FOMUL,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Division.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FDIVX
|
|
MOVE.W #FFEXT+FODIV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDIVD
|
|
MOVE.W #FFDBL+FODIV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDIVS
|
|
MOVE.W #FFSGL+FODIV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDIVC
|
|
MOVE.W #FFCOMP+FODIV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDIVI
|
|
MOVE.W #FFINT+FODIV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDIVL
|
|
MOVE.W #FFLNG+FODIV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FDIVX96
|
|
MOVE.W #FFEXT96+FODIV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDIVD96
|
|
MOVE.W #FFDBL+FFEXT96+FODIV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDIVS96
|
|
MOVE.W #FFSGL+FFEXT96+FODIV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDIVC96
|
|
MOVE.W #FFCOMP+FFEXT96+FODIV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDIVI96
|
|
MOVE.W #FFINT+FFEXT96+FODIV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDIVL96
|
|
MOVE.W #FFLNG+FFEXT96+FODIV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Square root.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FSQRTX
|
|
MOVE.W #FOSQRT,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FSQRTX96
|
|
MOVE.W #FFEXT96+FOSQRT,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Round to integer, according to the current rounding mode.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FRINTX
|
|
MOVE.W #FORTI,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FRINTX96
|
|
MOVE.W #FFEXT96+FORTI,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Truncate to integer, using round toward zero.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FTINTX
|
|
MOVE.W #FOTTI,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FTINTX96
|
|
MOVE.W #FFEXT96+FOTTI,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Remainder.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FREMX
|
|
MOVE.W #FFEXT+FOREM,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FREMD
|
|
MOVE.W #FFDBL+FOREM,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FREMS
|
|
MOVE.W #FFSGL+FOREM,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FREMC
|
|
MOVE.W #FFCOMP+FOREM,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FREMI
|
|
MOVE.W #FFINT+FOREM,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FREML
|
|
MOVE.W #FFLNG+FOREM,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FREMX96
|
|
MOVE.W #FFEXT96+FOREM,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FREMD96
|
|
MOVE.W #FFDBL+FFEXT96+FOREM,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FREMS96
|
|
MOVE.W #FFSGL+FFEXT96+FOREM,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FREMC96
|
|
MOVE.W #FFCOMP+FFEXT96+FOREM,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FREMI96
|
|
MOVE.W #FFINT+FFEXT96+FOREM,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FREML96
|
|
MOVE.W #FFLNG+FFEXT96+FOREM,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Logb.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FLOGBX
|
|
MOVE.W #FOLOGB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FLOGBX96
|
|
MOVE.W #FFEXT96+FOLOGB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Scalb.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FSCALBX
|
|
MOVE.W #FFINT+FOSCALB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FSCALBX96
|
|
MOVE.W #FFINT+FFEXT96+FOSCALB,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Copy-sign.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FCPYSGNX
|
|
MOVE.W #FOCPYSGN,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FCPYSGNX96
|
|
MOVE.W #FFEXT96+FOCPYSGN,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Negate.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FNEGX
|
|
MOVE.W #FONEG,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FNEGX96
|
|
MOVE.W #FFEXT96+FONEG,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Absolute value.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FABSX
|
|
MOVE.W #FOABS,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FABSX96
|
|
MOVE.W #FFEXT96+FOABS,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Next-after. NOTE: both operands are of the same
|
|
; format, as specified by the usual suffix.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
MACRO
|
|
FNEXTS
|
|
MOVE.W #FFSGL+FONEXT,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FNEXTD
|
|
MOVE.W #FFDBL+FONEXT,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 80-bit extended format
|
|
MACRO
|
|
FNEXTX
|
|
MOVE.W #FFEXT+FONEXT,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FNEXTX96
|
|
MOVE.W #FFEXT96+FONEXT,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Conversion to 80-bit extended.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
MACRO
|
|
FX2X
|
|
MOVE.W #FFEXT+FOZ2X,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FD2X
|
|
MOVE.W #FFDBL+FOZ2X,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FS2X
|
|
MOVE.W #FFSGL+FOZ2X,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FI2X
|
|
MOVE.W #FFINT+FOZ2X,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FL2X
|
|
MOVE.W #FFLNG+FOZ2X,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FC2X
|
|
MOVE.W #FFCOMP+FOZ2X,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Conversion to 96-bit extended.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
MACRO
|
|
FX2X96
|
|
MOVE.W #FFEXT96+FOZ2X,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FD2X96
|
|
MOVE.W #FFDBL+FFEXT96+FOZ2X,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FS2X96
|
|
MOVE.W #FFSGL+FFEXT96+FOZ2X,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FI2X96
|
|
MOVE.W #FFINT+FFEXT96+FOZ2X,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FL2X96
|
|
MOVE.W #FFLNG+FFEXT96+FOZ2X,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FC2X96
|
|
MOVE.W #FFCOMP+FFEXT96+FOZ2X,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Conversion from 80-bit extended.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
MACRO
|
|
FX2D
|
|
MOVE.W #FFDBL+FOX2Z,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FX2S
|
|
MOVE.W #FFSGL+FOX2Z,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FX2I
|
|
MOVE.W #FFINT+FOX2Z,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FX2L
|
|
MOVE.W #FFLNG+FOX2Z,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FX2C
|
|
MOVE.W #FFCOMP+FOX2Z,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Conversion from 96-bit extended.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
MACRO
|
|
FX2D96
|
|
MOVE.W #FFDBL+FFEXT96+FOX2Z,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FX2S96
|
|
MOVE.W #FFSGL+FFEXT96+FOX2Z,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FX2I96
|
|
MOVE.W #FFINT+FFEXT96+FOX2Z,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FX2L96
|
|
MOVE.W #FFLNG+FFEXT96+FOX2Z,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FX2C96
|
|
MOVE.W #FFCOMP+FFEXT96+FOX2Z,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Binary to decimal conversion.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FX2DEC
|
|
MOVE.W #FFEXT+FOB2D,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FX2DEC96
|
|
MOVE.W #FFEXT96+FOB2D,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FD2DEC
|
|
MOVE.W #FFDBL+FOB2D,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FS2DEC
|
|
MOVE.W #FFSGL+FOB2D,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FC2DEC
|
|
MOVE.W #FFCOMP+FOB2D,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FI2DEC
|
|
MOVE.W #FFINT+FOB2D,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FL2DEC
|
|
MOVE.W #FFLNG+FOB2D,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Decimal to binary conversion.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FDEC2X
|
|
MOVE.W #FFEXT+FOD2B,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FDEC2X96
|
|
MOVE.W #FFEXT96+FOD2B,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDEC2D
|
|
MOVE.W #FFDBL+FOD2B,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDEC2S
|
|
MOVE.W #FFSGL+FOD2B,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDEC2C
|
|
MOVE.W #FFCOMP+FOD2B,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDEC2I
|
|
MOVE.W #FFINT+FOD2B,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FDEC2L
|
|
MOVE.W #FFLNG+FOD2B,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Compare, not signaling invalid on unordered.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FCMPX
|
|
MOVE.W #FFEXT+FOCMP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCMPD
|
|
MOVE.W #FFDBL+FOCMP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCMPS
|
|
MOVE.W #FFSGL+FOCMP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCMPC
|
|
MOVE.W #FFCOMP+FOCMP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCMPI
|
|
MOVE.W #FFINT+FOCMP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCMPL
|
|
MOVE.W #FFLNG+FOCMP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FCMPX96
|
|
MOVE.W #FFEXT96+FOCMP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCMPD96
|
|
MOVE.W #FFDBL+FFEXT96+FOCMP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCMPS96
|
|
MOVE.W #FFSGL+FFEXT96+FOCMP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCMPC96
|
|
MOVE.W #FFCOMP+FFEXT96+FOCMP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCMPI96
|
|
MOVE.W #FFINT+FFEXT96+FOCMP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCMPL96
|
|
MOVE.W #FFLNG+FFEXT96+FOCMP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Compare, signaling invalid on unordered.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FCPXX
|
|
MOVE.W #FFEXT+FOCPX,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCPXD
|
|
MOVE.W #FFDBL+FOCPX,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCPXS
|
|
MOVE.W #FFSGL+FOCPX,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCPXC
|
|
MOVE.W #FFCOMP+FOCPX,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCPXI
|
|
MOVE.W #FFINT+FOCPX,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCPXL
|
|
MOVE.W #FFLNG+FOCPX,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FCPXX96
|
|
MOVE.W #FFEXT96+FOCPX,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCPXD96
|
|
MOVE.W #FFDBL+FFEXT96+FOCPX,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCPXS96
|
|
MOVE.W #FFSGL+FFEXT96+FOCPX,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCPXC96
|
|
MOVE.W #FFCOMP+FFEXT96+FOCPX,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCPXI96
|
|
MOVE.W #FFINT+FFEXT96+FOCPX,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCPXL96
|
|
MOVE.W #FFLNG+FFEXT96+FOCPX,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; The following defines a set of so-called floating
|
|
; branches. They presume that an appropriate compare
|
|
; operation, FCMPz, FCMPz96, FCPXz or FCPXz96, precedes.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
MACRO
|
|
FBEQL
|
|
BEQ &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBLTL
|
|
BCS &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBLEL
|
|
BLS &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBGTL
|
|
BGT &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBGEL
|
|
BGE &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBULTL
|
|
BLT &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBULEL
|
|
BLE &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBUGTL
|
|
BHI &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBUGEL
|
|
BCC &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBUL
|
|
BVS &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBOL
|
|
BVC &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBNEL
|
|
BNE &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBUEL
|
|
BEQ &SYSLIST[1]
|
|
BVS &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBLGL
|
|
BCS &SYSLIST[1]
|
|
BGT &SYSLIST[1]
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Short branch versions.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
MACRO
|
|
FBEQS
|
|
BEQ.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBLTS
|
|
BCS.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBLES
|
|
BLS.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBGTS
|
|
BGT.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBGES
|
|
BGE.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBULTS
|
|
BLT.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBULES
|
|
BLE.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBUGTS
|
|
BHI.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBUGES
|
|
BCC.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBUS
|
|
BVS.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBOS
|
|
BVC.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBNES
|
|
BNE.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBUES
|
|
BEQ.S &SYSLIST[1]
|
|
BVS.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
MACRO
|
|
FBLGS
|
|
BCS.S &SYSLIST[1]
|
|
BGT.S &SYSLIST[1]
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Class and sign inquiries.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
FCSNAN EQU 1 ; signaling NAN
|
|
FCQNAN EQU 2 ; quiet NAN
|
|
FCINF EQU 3 ; infinity
|
|
FCZERO EQU 4 ; zero
|
|
FCNORM EQU 5 ; normal number
|
|
FCDENORM EQU 6 ; denormal number
|
|
|
|
MACRO
|
|
FCLASSC
|
|
MOVE.W #FFCOMP+FOCLASS,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCLASSS
|
|
MOVE.W #FFSGL+FOCLASS,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCLASSD
|
|
MOVE.W #FFDBL+FOCLASS,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 80-bit extended format
|
|
MACRO
|
|
FCLASSX
|
|
MOVE.W #FFEXT+FOCLASS,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FCLASSX96
|
|
MOVE.W #FFEXT96+FOCLASS,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Bit indexes for bytes of floating point environment word.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
FBINVALID EQU 0 ; invalid operation
|
|
FBUFLOW EQU 1 ; underflow
|
|
FBOFLOW EQU 2 ; overflow
|
|
FBDIVZER EQU 3 ; division by zero
|
|
FBINEXACT EQU 4 ; inexact
|
|
FBRNDLO EQU 5 ; low bit of rounding mode
|
|
FBRNDHI EQU 6 ; high bit of rounding mode
|
|
FBLSTRND EQU 7 ; last round result bit
|
|
FBDBL EQU 5 ; double precision control
|
|
FBSGL EQU 6 ; single precision control
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Get and set environment.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
MACRO
|
|
FGETENV
|
|
MOVE.W #FOGETENV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSETENV
|
|
MOVE.W #FOSETENV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Test and set exception.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
MACRO
|
|
FTESTXCP
|
|
MOVE.W #FOTESTXCP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSETXCP
|
|
MOVE.W #FOSETXCP,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Procedure entry and exit.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
MACRO
|
|
FPROCENTRY
|
|
MOVE.W #FOPROCENTRY,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FPROCEXIT
|
|
MOVE.W #FOPROCEXIT,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Get and set halt vector.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
MACRO
|
|
FGETHV
|
|
MOVE.W #FOGETHV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSETHV
|
|
MOVE.W #FOSETHV,-(SP)
|
|
_FP68K
|
|
ENDM
|
|
|
|
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Elementary function operation code masks.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
ELEXT96 EQU $0080 ; 96-bit extended format
|
|
FOLNX EQU $0000 ; base-e log
|
|
FOLOG2X EQU $0002 ; base-2 log
|
|
FOLN1X EQU $0004 ; ln (1 + x)
|
|
FOLOG21X EQU $0006 ; log2 (1 + x)
|
|
FOEXPX EQU $0008 ; base-e exponential
|
|
FOEXP2X EQU $000A ; base-2 exponential
|
|
FOEXP1X EQU $000C ; exp (x) - 1
|
|
FOEXP21X EQU $000E ; exp2 (x) - 1
|
|
FOXPWRI EQU $8010 ; integer exponentiation
|
|
FOXPWRY EQU $8012 ; general exponentiation
|
|
FOCOMPOUND EQU $C014 ; compound
|
|
FOANNUITY EQU $C016 ; annuity
|
|
FOSINX EQU $0018 ; sine
|
|
FOCOSX EQU $001A ; cosine
|
|
FOTANX EQU $001C ; tangent
|
|
FOATANX EQU $001E ; arctangent
|
|
FORANDX EQU $0020 ; random
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Elementary functions.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; 80-bit extended format
|
|
MACRO
|
|
FLNX ; base-e log
|
|
MOVE.W #FOLNX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FLOG2X ; base-2 log
|
|
MOVE.W #FOLOG2X,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FLN1X ; ln (1 + x)
|
|
MOVE.W #FOLN1X,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FLOG21X ; log2 (1 + x)
|
|
MOVE.W #FOLOG21X,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FEXPX ; base-e exponential
|
|
MOVE.W #FOEXPX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FEXP2X ; base-2 exponential
|
|
MOVE.W #FOEXP2X,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FEXP1X ; exp (x) - 1
|
|
MOVE.W #FOEXP1X,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FEXP21X ; exp2 (x) - 1
|
|
MOVE.W #FOEXP21X,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FXPWRI ; integer exponential
|
|
MOVE.W #FOXPWRI,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FXPWRY ; general exponential
|
|
MOVE.W #FOXPWRY,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCOMPOUND ; compound
|
|
MOVE.W #FOCOMPOUND,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FANNUITY ; annuity
|
|
MOVE.W #FOANNUITY,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSINX ; sine
|
|
MOVE.W #FOSINX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCOSX ; cosine
|
|
MOVE.W #FOCOSX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FTANX ; tangent
|
|
MOVE.W #FOTANX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FATANX ; arctangent
|
|
MOVE.W #FOATANX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FRANDX ; random number generator
|
|
MOVE.W #FORANDX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
; 96-bit extended format
|
|
MACRO
|
|
FLNX96 ; base-e log
|
|
MOVE.W #ELEXT96+FOLNX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FLOG2X96 ; base-2 log
|
|
MOVE.W #ELEXT96+FOLOG2X,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FLN1X96 ; ln (1 + x)
|
|
MOVE.W #ELEXT96+FOLN1X,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FLOG21X96 ; log2 (1 + x)
|
|
MOVE.W #ELEXT96+FOLOG21X,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FEXPX96 ; base-e exponential
|
|
MOVE.W #ELEXT96+FOEXPX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FEXP2X96 ; base-2 exponential
|
|
MOVE.W #ELEXT96+FOEXP2X,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FEXP1X96 ; exp (x) - 1
|
|
MOVE.W #ELEXT96+FOEXP1X,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FEXP21X96 ; exp2 (x) - 1
|
|
MOVE.W #ELEXT96+FOEXP21X,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FXPWRI96 ; integer exponential
|
|
MOVE.W #ELEXT96+FOXPWRI,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FXPWRY96 ; general exponential
|
|
MOVE.W #ELEXT96+FOXPWRY,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCOMPOUND96 ; compound
|
|
MOVE.W #ELEXT96+FOCOMPOUND,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FANNUITY96 ; annuity
|
|
MOVE.W #ELEXT96+FOANNUITY,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FSINX96 ; sine
|
|
MOVE.W #ELEXT96+FOSINX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FCOSX96 ; cosine
|
|
MOVE.W #ELEXT96+FOCOSX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FTANX96 ; tangent
|
|
MOVE.W #ELEXT96+FOTANX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FATANX96 ; arctangent
|
|
MOVE.W #ELEXT96+FOATANX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
MACRO
|
|
FRANDX96 ; random number generator
|
|
MOVE.W #ELEXT96+FORANDX,-(SP)
|
|
_ELEMS68K
|
|
ENDM
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Scanner and formatter operation code masks
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
|
|
FOPSTR2DEC EQU $0002 ;Pascal string to decimal record
|
|
FOCSTR2DEC EQU $0004 ;C string to decimal record
|
|
FODEC2STR EQU $0003 ;decimal record to Pascal string
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; Scanner and formatter functions
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
|
|
;Pascal string to decimal record
|
|
|
|
MACRO
|
|
FPSTR2DEC
|
|
MOVE.W #FOPSTR2DEC, -(SP)
|
|
_DecStr68K
|
|
ENDM
|
|
|
|
;C string to decimal record
|
|
|
|
MACRO
|
|
FCSTR2DEC
|
|
MOVE.W #FOCSTR2DEC, -(SP)
|
|
_DecStr68K
|
|
ENDM
|
|
|
|
;decimal record to Pascal string
|
|
|
|
MACRO
|
|
FDEC2STR
|
|
MOVE.W #FODEC2STR, -(SP)
|
|
_DecStr68K
|
|
ENDM
|
|
|
|
|
|
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
; NaN codes.
|
|
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
|
|
NANSQRT EQU 1 ; Invalid square root such as sqrt(-1).
|
|
NANADD EQU 2 ; Invalid addition such as +INF - +INF.
|
|
NANDIV EQU 4 ; Invalid division such as 0/0.
|
|
NANMUL EQU 8 ; Invalid multiply such as 0 * INF.
|
|
NANREM EQU 9 ; Invalid remainder or mod such as x REM 0.
|
|
NANASCBIN EQU 17 ; Attempt to convert invalid ASCII string.
|
|
NANCOMP EQU 20 ; Result of converting comp NaN to floating.
|
|
NANZERO EQU 21 ; Attempt to create a NaN with a zero code.
|
|
NANTRIG EQU 33 ; Invalid argument to trig routine.
|
|
NANINVTRIG EQU 34 ; Invalid argument to inverse trig routine.
|
|
NANLOG EQU 36 ; Invalid argument to log routine.
|
|
NANPOWER EQU 37 ; Invalid argument to x^i or x^y routine.
|
|
NANFINAN EQU 38 ; Invalid argument to financial function.
|
|
NANINIT EQU 255 ; Uninitialized storage.
|