Написать программу умножения и деления десятичный чисел с плавающей запятой — QBasic(Бейсик)

Исходные числа и результат должны иметь следующую форму: «0.nnnnn*10^mmm» (исходные данные вводятся с клавиатуры).

CLS
PRINT "Enter first number :";
INPUT a$
PRINT "Enter second number:";
INPUT b$
PRINT "Enter 'm' for multiplicaion or 'd' for division:";
INPUT action$
 
i = 2
DO WHILE i > 0
        SWAP a!, b!: SWAP ja, jb
        j = 3
        DO WHILE MID$(b$, j, 1) <> "*"
                j = j + 1
        LOOP
        ja = j
        a! = VAL("0." + MID$(b$, 3, j - 3))
        SWAP a$, b$
        i = i - 1
LOOP
i = 2
a% = VAL(MID$(a$, ja + 4, LEN(a$) - ja - 3))
b% = VAL(MID$(b$, jb + 4, LEN(b$) - jb - 3))
 
IF LCASE$(action$) = "m" THEN
        r! = a! * b!
        r% = a% + b%
END IF
 
IF LCASE$(action$) = "d" THEN
        r! = a! / b!
        r% = a% - b%
        IF r! >= 1 THEN
                DO WHILE INT(r!) <> 0
                        p = p + 1
                        r! = r! / 10
                LOOP
        END IF
END IF
 
IF r% + p > 0 THEN
        r$ = "0" + LTRIM$(STR$(r!)) + "*10^" + LTRIM$(STR$(r% + p))
ELSE
        r$ = "0" + LTRIM$(STR$(r!))
END IF
PRINT "Result: "; r$