; ; File: FPHW.a ; ; Contains: HW Floating Point FP68K ("PACK 4") that calls MC68881/882 or uses MC68040 FPU ; ; Written by: Apple Numerics Group, DSG ; ; Copyright: © 1985-1992 by Apple Computer, Inc. All rights reserved. ; ; Change History (most recent first): ; ; 10/29/92 SWC Changed ToolEqu.a->ToolUtils.a. ; <2> 10/28/91 SAM/KSM Added a default definition for BACKPATCH of true. ; <1> 10/24/91 SAM/KSM Rolled in Regatta file. ; ; Terror Change History: ; ; <2> 1/9/91 BG Removed the PROC040 -IF- directive. FPHW.a will now build with ; MACHINE MC68040 set so that all the FPU instructions will be ; assembled the same as if there was an MC68881 directive, but ; this will also allow the use of 040 cache manipulation ; instructions (CPUSH). ; <1> 01/06/90 BG Added to TERROR/BBS for the time. ; ——————————————————————————————————————————————————————————————————————————————————————— ; Pre-TERROR ROM comments begin here. ; ——————————————————————————————————————————————————————————————————————————————————————— ; 12/17/90 JPO Added conditional equate for PROC040. ; 12/6/90 JPO Modified for MC68040 platform. ; 9/30/90 SM Goes final for Terror alpha. ; 9/7/90 SM Goes beta for Tim. Updated version number. ; 5/22/90 SM Goes alpha for waimea. Copyright updated. ; 12/18/89 SM Complete rewrite begins. ; 1/23/87 SM MC68881 directive moved here from file fp881arith.a. ; 1/16/87 SM Added INCLUDE TRAPS.A for _SysError call in fp881ctrl.a. ; 1/15/87 SM Changed copyright notice. ; 1/15/87 SM Deleted INCLUDE SYSEQU.A. ; Rev28 1/16/85 moved to MPW. ; Rev27 12/19/85 CVT routines fixed and shortened. ; Rev26 12/5/85 NextAfter OK. ; Rev14 8/28/85 (Debugging Coonen Bin-Dec routines). ; Rev9 6/17/85 ; MAIN BLANKS ON STRING ASIS DATA MAIN ORG -$100 CODE PRINT ON FPASSEMBLER EQU 1 ;------------------------------------------------------------------------------- thru next ; ; NOTE - The MACHINE MC68040 directive "should" create the same instructions as ; ; MACHINE MC68020 ; MC68881 ; ; ... but allows you to also use the 040 special cache-flushing instructions ; as well. As far as I know, there's only one place where this could be an ; issue (FLUSHCACHE), which uses a CPUSHL bc,(Ax) to push the appropriate ; cache line in the backpatching install code on an 040, whereas it does a ; MOVEC D0,CACR to set the "flush I-Cache" bit on 020/030s. This should ; still work, since the MOVEC Dx,CACR instruction creates the same instruction ; in both the 020/030 and 040. ;------------------------------------------------------------------------------- MACHINE MC68040 ; MACHINE MC68020 ; MC68881 ; INCLUDE 'FPHWEqus.a' INCLUDE 'ToolUtils.a' INCLUDE 'Traps.a' ; This is not a standard definition in the System Equates, so it is included here IF &TYPE('BACKPATCH') = 'UNDEFINED' THEN ; <2> BACKPATCH: EQU 1 ENDIF If &TYPE('_SysBreak') = 'UNDEFINED' Then ; Arg!! MACRO ; _SysBreak ; MOVE.W #-490, D0 ; _SysError ; ENDM ; ENDIF ; INCLUDE 'SANEMacs.a' CPUFlag EQU $12F ; So this builds! cpu68040 EQU 4 ;INCLUDE 'SysEqu.a' ; for CPUFlag definition EXPORT FP68K FP68K INCLUDE 'FPHWCtrl.a' INCLUDE 'FPHWArith.a' INCLUDE 'FPHWNonArith.a' INCLUDE 'FPHWB2DC.a' OMEGA881END: END