annotate 3rdparty/packages/basic09/basic09.real.div.63.asm @ 1885:3c25c93b186c

Changes so far
author boisy
date Tue, 11 Oct 2005 11:20:25 +0000
parents 7a5d3fcbe2d8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
477
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
1 * Did mods as per Chris Dekker's RUNB
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
2 L4234 comb Default to divide by 0 error
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
3 ldb #$2D
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
4 tst 2,y Is number to divide by 0?
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
5 beq L4233 Yes, return with error
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
6 tst 8,y Is dividend=0?
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
7 lbeq L40DD Yes, answer=0, return from there
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
8 lda 7,y Get exponent of # to dividend
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
9 suba 1,y Subtract exponent of divisor
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
10 lbvs L40EF
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
11 sta 7,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
12 lda #$21 ??? (count for exponent shifts?)
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
13 ldb 5,y Get sign byte of dividend
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
14 eorb $B,y Calculate which sign result will be
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
15 andb #1 Just keep sign bit
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
16 std ,y Save ??? & resulting sign
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
17 ldq 2,y Divide whole divisor mantissa by 2
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
18 lsrd /
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
19 rorw < these both eat sign bit and make mantissa a
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
20 stq 2,y \ 31 bit number
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
21 ldq 8,y Divide whole dividend by 2
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
22 lsrd
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
23 rorw
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
24 clr $B,y Clear last byte of dividend mantissa
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
25 L426F subw 4,y Subtract divisor from dividend
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
26 sbcd 2,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
27 beq L42AB
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
28 bmi L42A7
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
29 L427E orcc #1
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
30 L4280 dec ,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
31 beq L42F8
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
32 rol $B,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
33 rol $A,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
34 rol 9,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
35 rol 8,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
36 andcc #$fe
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
37 rolw
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
38 rold
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
39 bcc L426F
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
40 addw 4,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
41 adcd 2,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
42 beq L42AB
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
43 bpl L427E
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
44 L42A7 andcc #$FE
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
45 bra L4280
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
46
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
47 L42AB tstw
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
48 bne L427E
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
49 ldb ,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
50 decb
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
51 subb #$10
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
52 blt L42CD
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
53 subb #$08
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
54 blt L42C2
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
55 stb ,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
56 lda $B,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
57 ldb #$80
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
58 andcc #$fe
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
59 bra L42EB
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
60
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
61 L42C2 addb #$08
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
62 stb ,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
63 ldw #$8000
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
64 ldd $A,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
65 andcc #$fe
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
66 bra L42EB
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
67
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
68 L42CD addb #$08
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
69 blt L42DB
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
70 stb ,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
71 ldq 9,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
72 ldf #$80
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
73 andcc #$fe
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
74 bra L42EB
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
75
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
76 L42DB addb #$07
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
77 stb ,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
78 ldq 8,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
79 orcc #$01
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
80 L42E5 rolw
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
81 rold
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
82 L42EB dec ,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
83 bpl L42E5
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
84 tsta
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
85 bra L42FC
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
86
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
87 L42F8 ldq 8,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
88 L42FC bmi L430C
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
89 rolw
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
90 rold
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
91 dec 7,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
92 lbvs L40DD
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
93 L430C addw #1
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
94 adcd #0
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
95 bcc L4321
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
96 rora
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
97 inc 7,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
98 lbvs L40DD
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
99 L4321 std 8,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
100 tfr w,d
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
101 lsrb Shift out sign bit
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
102 lslb
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
103 orb 1,y Merge in result's sign
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
104 std $A,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
105 inc 7,y
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
106 lbvs L40EF
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
107 L4331 leay 6,y Eat temp var
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
108 rts & return
7a5d3fcbe2d8 Added Basic09 sources from Curtis Boyle
boisy
parents:
diff changeset
109