Category : Assembly Language Source Code
Archive   : ASM_SUBR.ZIP
Filename : SFP2TFP

 
Output of file : SFP2TFP contained in archive : ASM_SUBR.ZIP
;-------------------------sfp2tfp routine begins--------------------------+
; ROUTINE FOR CONVERSION FROM SINGLE PRECISION TO TEMPORARY FLOATING POINT
;
; from BLUEBOOK OF ASSEMBLY ROUTINES FOR IBM PC & XT.
; page : 93
;
; NAME SFP2TFP
;
; FUNCTION: This routine converts from single precision binary floating point
; to temporary binary floating point.
;
; INPUT: Upon entry a number is stored in single precision binary floating
; point form in SFPBUFF. The single precision binary floating point number
; has a 24-bit binary mantissa, a sign bit, and an 8-bit exponent biased by
; 128 (See fig 5-3).
;
; OUTPUT: Upon exit a temporary binary floating point number is stored in
; FPTEMP1. The temporary binary floating point number has a 72-bit binary
; mantissa with 8 bits to the left of those for internal use, a sign byte,
; and an 16-bit two's complement exponent (See fig 5-2).
;
; REGISTERS USED: AX is modified.
;
; SEGMENTS REFERENCED: Upon entry the data segment must contain the
; storage for the temporary binary floating point number FPTEMP1 and the
; temporary binary floating point number SFPBUFF.
;
; ROUTINES CALLED: None
;
; SPECIAL NOTES: Equates are used to shorten address fields. This is a
; near procedure needed by FPOUT. Include the file FPCEQU_S at assembly.
;
; ROUTINE TO CONVERT FROM SINGLE PRECISION FLOATING POINT TO
; TEMP FLOATING POINT
;
sfp2tfp proc near
;
; clear lower part of mantissa
mov fptemp1w0,0 ; clear word
mov fptemp1w2,0 ; clear word
mov fptemp1w4,0 ; clear word
;
; move rest of mantissa
mov ax,sfpbuffw0 ; low two bytes
mov fptemp1w6,ax ; put in place
;
mov ax,sfpbuffw2 ; 7 hi bits
and ax,07Fh ; remove sign
or ax,0080h ; restore msb
mov fptemp1w8,ax ; put in place
;
; move sign
mov al,sfpbuffb2 ; in upper byte
and al,80h ; just sign bit
mov fptemp1b10,al ; byte 10 of fptemp1
;
;
; move exponent
mov al,sfpbuffb3 ; byte three of sfp
mov ah,0 ; make into a word
sub ax,80h ; remove bias
mov fptemp1w11,ax ; it's 16-bit 2's complement
;
ret ; return
;
sfp2tfp endp
;-------------------------sfp2tfp routine ends---------------------------+



  3 Responses to “Category : Assembly Language Source Code
Archive   : ASM_SUBR.ZIP
Filename : SFP2TFP

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/