# Category : Assembly Language Source Code

Archive : ASM_SUBR.ZIP

Filename : FPTMUL

; from BLUEBOOK OF ASSEMBLY ROUTINES FOR IBM PC & XT.

; page : 85

;

; NAME FPTMUL

; ROUTINE FOR MULTPLICATION OF TEMPORARY FLOATING POINT NUMBER BY 10

;

; FUNCTION: This routine multiplies a temporary binary floating point

; number by 10. The result is not normalized.

;

; INPUT: Upon entry DS:DI points to a temporary binary floating point

; number.

;

; OUTPUT: Upon exit DS:DI points to a temporary binary floating

; point number. This number is not normalized.

;

; REGISTERS USED: AX, CX, DX and DI are modified. DI must point to

; the input.

;

; SEGMENTS REFERENCED: The data segment must contain the temporary

; floating point number.

;

; ROUTINES CALLED: None

; SPECIAL NOTES: This is a near procedure needed by FPIN.

;

; ROUTINE TO MULTIPLY TEMP FLOATING POINT NUMBER BY 10

;

fptmul proc near

;

mov cx,5 ; for a count of five

mov dx,0 ; carry of zero

;

fptmul1:

push cx ; save count

mov ax,dx ; previous carry

xchg ax,[di] ; switch with 16-bit digit

mov cx,10 ; multiplier of 10

mul cx ; multiply

add [di],ax ; add into carry in place

add di,2 ; next 16-bit digit

pop cx ; restore count

loop fptmul1

;

ret ; return

;

fptmul endp

;-------------------------fptmul routine ends---------------------------+

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

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

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/