home *** CD-ROM | disk | FTP | other *** search
-
- * Math.asm (of PCQ Pascal runtime library)
- * Copyright (c) 1989 Patrick Quaid
-
- * This file has the stubs that implement floating point math. This
- * is yet another group of routines for which you don't need to open
- * your own library. The only trick here is that if the divisor in
- * SPDiv is zero, you'll get a run-time error. If you look at
- * the code for this you may get confused. It works because it turns
- * out that floating point zero and integer zero have the same
- * representation.
-
- XREF _p%MathBase
- XREF _p%ExitWithAddr
-
- SECTION MATH
-
- XDEF _SPFix
- _SPFix
- move.l 4(sp),d0
- move.l _p%MathBase,a6
- jsr _LVOSPFix(a6)
- rts
-
- XDEF _SPFloat
- _SPFloat
- move.l 4(sp),d0
- move.l _p%MathBase,a6
- jsr _LVOSPFlt(a6)
- rts
-
- XDEF _SPCmp
- _SPCmp
- move.l 8(sp),d0
- move.l 4(sp),d1
- move.l _p%MathBase,a6
- jsr _LVOSPCmp(a6)
- rts
-
- XDEF _SPTst
- _SPTst
- move.l 4(sp),d1
- move.l _p%MathBase,a6
- jsr _LVOSPTst(a6)
- rts
-
- XDEF _SPAbs
- _SPAbs
- move.l 4(sp),d0
- move.l _p%MathBase,a6
- jsr _LVOSPAbs(a6)
- rts
-
- XDEF _SPNeg
- _SPNeg
- move.l 4(sp),d0
- move.l _p%MathBase,a6
- jsr _LVOSPNeg(a6)
- rts
-
- XDEF _SPAdd
- _SPAdd
- move.l 8(sp),d0
- move.l 4(sp),d1
- move.l _p%MathBase,a6
- jsr _LVOSPAdd(a6)
- rts
-
- XDEF _SPSub
- _SPSub
- move.l 8(sp),d0
- move.l 4(sp),d1
- move.l _p%MathBase,a6
- jsr _LVOSPSub(a6)
- rts
-
- XDEF _SPMul
- _SPMul
- move.l 8(sp),d0
- move.l 4(sp),d1
- move.l _p%MathBase,a6
- jsr _LVOSPMul(a6)
- rts
-
- XDEF _SPDiv
- _SPDiv
- move.l 8(sp),d0
- move.l 4(sp),d1
- bne.s 1$
- move.l #51,d0
- jsr _p%ExitWithAddr
- 1$ move.l _p%MathBase,a6
- jsr _LVOSPDiv(a6)
- rts
-
- XDEF _SPFloor
- _SPFloor
- move.l 4(sp),d0
- move.l _p%MathBase,a6
- jmp _LVOSPFloor(a6)
-
- XDEF _SPCeil
- _SPCeil
- move.l 4(sp),d0
- move.l _p%MathBase,a6
- jmp _LVOSPCeil(a6)
-
- XREF _LVOSPFix
- XREF _LVOSPFlt
- XREF _LVOSPCmp
- XREF _LVOSPTst
- XREF _LVOSPAbs
- XREF _LVOSPNeg
- XREF _LVOSPAdd
- XREF _LVOSPSub
- XREF _LVOSPMul
- XREF _LVOSPDiv
- XREF _LVOSPFloor
- XREF _LVOSPCeil
-
- END
-