home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
pascal
/
bp7os2
/
os2rtl
/
sys
/
f48h.asm
< prev
next >
Wrap
Assembly Source File
|
1993-08-16
|
1KB
|
128 lines
; *******************************************************
; * *
; * Turbo Pascal Run-time Library *
; * Real Support Routines *
; * *
; * Copyright (c) 1988,92 Borland International *
; * *
; *******************************************************
TITLE F48H
INCLUDE SE.ASM
CODE SEGMENT BYTE PUBLIC
ASSUME CS:CODE
; Externals
EXTRN RealAdd:NEAR,RealSub:NEAR,RealMul:NEAR,RealDiv:NEAR
EXTRN RealCmp:NEAR,RealFloat:NEAR,RealTrunc:NEAR
EXTRN HaltError:NEAR
; Publics
PUBLIC RAdd,RSub,RMul,RDiv,RCmp,RFloat,RTrunc
PUBLIC RRound,RSqr
; Add
RAdd:
CALL RealAdd
JC ROverflow
RETF
; Subtract
RSub:
CALL RealSub
JC ROverflow
RETF
; Square
RSqr:
MOV CX,AX
MOV SI,BX
MOV DI,DX
; Multiply
RMul:
CALL RealMul
JC ROverflow
RETF
; Divide
RDiv:
OR CL,CL
JZ RDivZero
CALL RealDiv
JC ROverflow
RETF
; Compare
RCmp:
CALL RealCmp
RETF
; Float
RFloat:
CALL RealFloat
RETF
; Trunc function
RTrunc:
MOV CH,0
CALL RealTrunc
JC RRangeError
RETF
; Round function
RRound:
MOV CH,1
CALL RealTrunc
JC RRangeError
RETF
; Trunc or Round range error
RRangeError:
MOV AX,207
JMP HaltError
; Overflow error
ROverflow:
MOV AX,205
JMP HaltError
; Divide by zero error
RDivZero:
MOV AX,200
JMP HaltError
CODE ENDS
END