home *** CD-ROM | disk | FTP | other *** search
- .286
- ;================================================
- ; convert signed integer to a REAL10
- ;
- ;------------------------------------------------
- cseg segment word public 'code'
- assume cs:cseg,ss:cseg
- assume ds:cseg,es:cseg
-
- include math.inc
-
- itoft proc near uses ax si, real:NPR10, integer:SWORD
-
- mov si, real
-
- .IF (integer < 0)
- mov word ptr [si]+8, 8000h
- neg integer
- .ELSE
- mov word ptr [si]+8, 0
- .ENDIF
-
- invoke clrx, si, 4
- mov ax, integer
-
- .IF (ax)
- add word ptr [si]+8, (3fffh + 15)
- .WHILE (1)
- .BREAK .IF (ax & 8000h)
- dec word ptr [si]+8
- shl ax, 1
- .ENDW
- mov word ptr [si]+6, ax
- .ENDIF
-
- ret
- itoft endp
-
- cseg ends
- end