Apple ii Battery Charger User Manual


 
396 *
397 1F9D 20 0D 1F FDIV JSR MD1 TAKE ABS VAL OF MANT1, MANT2
398 1FA0 E5 08 SBC X1 SUBTRACT EXP1 FROM EXP2
399 1FA2 20 CD 1F JSR MD2 SAVE AS QUOTIENT EXP
400 1FA5 38 DIV1 SEC SET CARRY FOR SUBTRACT
401 1FA6 A2 02 LDX =$02 INDEX FOR 3-BYTE INSTRUCTION
402 1FA8 B5 05 DIV2 LDA M2,X
403 1FAA F5 0C SBC E,X SUBTRACT A BYTE OF E FROM MANT2
404 1FAC 48 PHA SAVE ON STACK
405 1FAD CA DEX NEXT MORE SIGNIF BYTE
406 1FAE 10 F8 BPL DIV2 LOOP UNTIL DONE
407 1FB0 A2 FD LDX =$FD INDEX FOR 3-BYTE CONDITIONAL MOVE
408 1FB2 68 DIV3 PLA PULL A BYTE OF DIFFERENCE OFF STACK
409 1FB3 90 02 BCC DIV4 IF MANT2<E THEN DONT RESTORE MANT2
410 1FB5 95 08 STA M2+3,X
411 1FB7 E8 DIV4 INX NEXT LESS SIGNIF BYTE
412 1FB8 D0 F8 BNE DIV3 LOOP UNTIL DONE
413 1FBA 26 0B ROL M1+2
414 1FBC 26 0A ROL M1+1 ROLL QUOTIENT LEFT, CARRY INTO LSB
415 1FBE 26 09 ROL M1
416 1FC0 06 07 ASL M2+2
417 1FC2 26 06 ROL M2+1 SHIFT DIVIDEND LEFT
418 1FC4 26 05 ROL M2
419 1FC6 B0 1C BCS OVFL OVERFLOW IS DUE TO UNNORMALIZED DIVISOR
420 1FC8 88 DEY NEXT DIVIDE ITERATION
421 1FC9 D0 DA BNE DIV1 LOOP UNTIL DONE 23 ITERATIONS
422 1FCB F0 BE BEQ MDEND NORMALIZE QUOTIENT AND CORRECT SIGN
423 1FCD 86 0B MD2 STX M1+2
424 1FCF 86 0A STX M1+1 CLR MANT1 (3 BYTES) FOR MUL/DIV
425 1FD1 86 09 STX M1
426 1FD3 B0 0D BCS OVCHK IF EXP CALC SET CARRY, CHECK FOR OVFL
427 1FD5 30 04 BMI MD3 IF NEG NO UNDERFLOW
428 1FD7 68 PLA POP ONE
429 1FD8 68 PLA RETURN LEVEL
430 1FD9 90 B2 BCC NORMX CLEAR X1 AND RETURN
431 1FDB 49 80 MD3 EOR =$80 COMPLIMENT SIGN BIT OF EXP
432 1FDD 85 08 STA X1 STORE IT
433 1FDF A0 17 LDY =$17 COUNT FOR 24 MUL OR 23 DIV ITERATIONS
434 1FE1 60 RTS RETURN
435 1FE2 10 F7 OVCHK BPL MD3 IF POS EXP THEN NO OVERFLOW
436 1FE4 00 OVFL BRK
437 *
438 *
439 * CONVERT EXP/MANT1 TO INTEGER IN M1 (HIGH) AND M1+1(LOW)
440 * EXP/MANT2 UNEFFECTED
441 *
442 1FE5 20 5F 1F JSR RTAR SHIFT MANT1 RT AND INCREMENT EXPNT
443 1FE8 A5 08 FIX LDA X1 CHECK EXPONENT
444 1FEA C9 8E CMP =$8E IS EXPONENT 14?
445 1FEC D0 F7 BNE FIX-3 NO, SHIFT
446 1FEE 60 RTRN RTS RETURN
447 END
OBJECT CODE DUMP
1D00 A5 09 F0 02 10 01 00 20 1C 1F A2 00 A5 04 A0 80
1D10 84 04 49 80 85 0A 10 01 CA 86 09 20 2C 1F A2 03
1D20 B5 04 95 10 B5 08 95 18 BD D4 1D 95 08 CA 10 F0
1D30 20 4A 1F A2 03 B5 08 95 14 B5 10 95 08 BD D4 1D
1D40 95 04 CA 10 F0 20 50 1F A2 03 B5 14 95 04 CA 10
1D50 F9 20 9D 1F A2 03 B5 08 95 14 95 04 CA 10 F7 20