mirror of https://github.com/rigreco/UniDisk.git
148 lines
19 KiB
Plaintext
148 lines
19 KiB
Plaintext
------+----------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
|
|
Line | # File Line | Line Type | MX | Reloc | Size | Address Object Code | Source Code
|
|
------+----------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
|
|
1 | 1 FPConv.asm 1 | Comment | 11 | | 0 | 00/8000 | * @com.wudsn.ide.asm.hardware=APPLE2
|
|
2 | 1 FPConv.asm 2 | Comment | 11 | | 0 | 00/8000 | ************************************
|
|
3 | 1 FPConv.asm 3 | Comment | 11 | | 0 | 00/8000 | * BASIC TO FAC TO FP1 *
|
|
4 | 1 FPConv.asm 4 | Comment | 11 | | 0 | 00/8000 | * X=NUMBER *
|
|
5 | 1 FPConv.asm 5 | Comment | 11 | | 0 | 00/8000 | * CALL 32768,X 768,X *
|
|
6 | 1 FPConv.asm 6 | Comment | 11 | | 0 | 00/8000 | ************************************
|
|
7 | 1 FPConv.asm 7 | Directive | 11 | | 0 | 00/8000 | org $8000
|
|
8 | 1 FPConv.asm 8 | Empty | 11 | | 0 | 00/8000 |
|
|
9 | 1 FPConv.asm 9 | Equivalence | 11 | | 0 | 00/8000 | CHKCOM equ $DEBE
|
|
10 | 1 FPConv.asm 10 | Equivalence | 11 | | 0 | 00/8000 | FRMNUM equ $DD67
|
|
11 | 1 FPConv.asm 11 | Equivalence | 11 | | 0 | 00/8000 | PTRGET equ $DFE3
|
|
12 | 1 FPConv.asm 12 | Equivalence | 11 | | 0 | 00/8000 | MOVMF equ $EB2B
|
|
13 | 1 FPConv.asm 13 | Equivalence | 11 | | 0 | 00/8000 | MOVFM equ $EAF9
|
|
14 | 1 FPConv.asm 14 | Empty | 11 | | 0 | 00/8000 |
|
|
15 | 1 FPConv.asm 15 | Comment | 11 | | 0 | 00/8000 | ** Woz FP Accumulator 4 Byte + 1 Byte Extra + 1 Byte SIGN**
|
|
16 | 1 FPConv.asm 16 | Equivalence | 11 | | 0 | 00/8000 | FP1 equ $FA ;Translate F8 --> FA
|
|
17 | 1 FPConv.asm 17 | Equivalence | 11 | | 0 | 00/8000 | E equ $FE ;Translate FC --> FE
|
|
18 | 1 FPConv.asm 18 | Equivalence | 11 | | 0 | 00/8000 | SIGN equ $EB
|
|
19 | 1 FPConv.asm 19 | Empty | 11 | | 0 | 00/8000 |
|
|
20 | 1 FPConv.asm 20 | Equivalence | 11 | | 0 | 00/8000 | FP2 equ $EC
|
|
21 | 1 FPConv.asm 21 | Empty | 11 | | 0 | 00/8000 |
|
|
22 | 1 FPConv.asm 22 | Comment | 11 | | 0 | 00/8000 | ** Applesoft FP Accumulator 5 Byte + 1 Byte Sign **
|
|
23 | 1 FPConv.asm 23 | Equivalence | 11 | | 0 | 00/8000 | FAC equ $9D
|
|
24 | 1 FPConv.asm 24 | Empty | 11 | | 0 | 00/8000 |
|
|
25 | 1 FPConv.asm 25 | Equivalence | 11 | | 0 | 00/8000 | RSLT equ $7000
|
|
26 | 1 FPConv.asm 26 | Empty | 11 | | 0 | 00/8000 |
|
|
27 | 1 FPConv.asm 27 | Comment | 11 | | 0 | 00/8000 | ***************************
|
|
28 | 1 FPConv.asm 28 | Empty | 11 | | 0 | 00/8000 |
|
|
29 | 1 FPConv.asm 29 | Code | 11 | | 3 | 00/8000 : 20 BE DE | ENTRY1 jsr {$DEBE}
|
|
30 | 1 FPConv.asm 30 | Code | 11 | | 3 | 00/8003 : 20 67 DD | jsr {$DD67} ;VARIABLE X ->FAC (6 Byte Unpacked)
|
|
31 | 1 FPConv.asm 31 | Empty | 11 | | 0 | 00/8006 |
|
|
32 | 1 FPConv.asm 32 | Comment | 11 | | 0 | 00/8006 | ** FPC to FP1 conversion **
|
|
33 | 1 FPConv.asm 33 | Empty | 11 | | 0 | 00/8006 |
|
|
34 | 1 FPConv.asm 34 | Code | 11 | | 2 | 00/8006 : A5 9D | lda {$9D}
|
|
35 | 1 FPConv.asm 35 | Code | 11 | | 1 | 00/8008 : 3A | dec A ; dec the EXP
|
|
36 | 1 FPConv.asm 36 | Code | 11 | | 2 | 00/8009 : 85 FA | sta {$FA}
|
|
37 | 1 FPConv.asm 37 | Code | 11 | | 2 | 00/800B : 85 EC | sta {$EC} ; Copy
|
|
38 | 1 FPConv.asm 38 | Empty | 11 | | 0 | 00/800D |
|
|
39 | 1 FPConv.asm 39 | Code | 11 | | 2 | 00/800D : A5 A2 | lda {$9D}+5
|
|
40 | 1 FPConv.asm 40 | Code | 11 | | 2 | 00/800F : 30 0D | bmi NEG ; chk the Hi bit of 1 byte Mantissa
|
|
41 | 1 FPConv.asm 41 | Empty | 11 | | 0 | 00/8011 |
|
|
42 | 1 FPConv.asm 42 | Code | 11 | | 1 | 00/8011 : 18 | POS clc ; Hi bit 0 for negative
|
|
43 | 1 FPConv.asm 43 | Code | 11 | | 2 | 00/8012 : A5 A2 | lda {$9D}+5
|
|
44 | 1 FPConv.asm 44 | Empty | 11 | | 0 | 00/8014 |
|
|
45 | 1 FPConv.asm 45 | Code | 11 | | 2 | 00/8014 : 09 80 | ora #$80 ; Set Hi Bit 1 byte Mantissa (change Sign only if is positive)
|
|
46 | 1 FPConv.asm 46 | Code | 11 | | 1 | 00/8016 : 6A | ror ; Didide for 2^1
|
|
47 | 1 FPConv.asm 47 | Empty | 11 | | 0 | 00/8017 |
|
|
48 | 1 FPConv.asm 48 | Code | 11 | | 2 | 00/8017 : 85 FB | sta {$FA}+1
|
|
49 | 1 FPConv.asm 49 | Code | 11 | | 2 | 00/8019 : 85 ED | sta {$EC}+1 ; Copy
|
|
50 | 1 FPConv.asm 50 | Empty | 11 | | 0 | 00/801B |
|
|
51 | 1 FPConv.asm 51 | Code | 11 | | 3 | 00/801B : 4C 2B 80 | jmp CONT
|
|
52 | 1 FPConv.asm 52 | Empty | 11 | | 0 | 00/801E |
|
|
53 | 1 FPConv.asm 53 | Code | 11 | | 1 | 00/801E : 18 | NEG clc ; Hi bit 1 for positive
|
|
54 | 1 FPConv.asm 54 | Code | 11 | | 2 | 00/801F : A5 A2 | lda {$9D}+5
|
|
55 | 1 FPConv.asm 55 | Empty | 11 | | 0 | 00/8021 |
|
|
56 | 1 FPConv.asm 56 | Code | 11 | | 1 | 00/8021 : 6A | ror ; Didide for 2^1
|
|
57 | 1 FPConv.asm 57 | Empty | 11 | | 0 | 00/8022 |
|
|
58 | 1 FPConv.asm 58 | Code | 11 | | 2 | 00/8022 : 49 FF | eor #$FF ; One's complement, NOT
|
|
59 | 1 FPConv.asm 59 | Code | 11 | | 1 | 00/8024 : 18 | clc
|
|
60 | 1 FPConv.asm 60 | Code | 11 | | 2 | 00/8025 : 69 01 | adc #01 ; Two's complement, +1
|
|
61 | 1 FPConv.asm 61 | Empty | 11 | | 0 | 00/8027 |
|
|
62 | 1 FPConv.asm 62 | Code | 11 | | 2 | 00/8027 : 85 FB | sta {$FA}+1
|
|
63 | 1 FPConv.asm 63 | Code | 11 | | 2 | 00/8029 : 85 ED | sta {$EC}+1 ; Copy
|
|
64 | 1 FPConv.asm 64 | Empty | 11 | | 0 | 00/802B |
|
|
65 | 1 FPConv.asm 65 | Code | 11 | | 2 | 00/802B : A5 9F | CONT lda {$9D}+2
|
|
66 | 1 FPConv.asm 66 | Code | 11 | | 1 | 00/802D : 6A | ror
|
|
67 | 1 FPConv.asm 67 | Code | 11 | | 2 | 00/802E : 85 FC | sta {$FA}+2
|
|
68 | 1 FPConv.asm 68 | Code | 11 | | 2 | 00/8030 : 85 EE | sta {$EC}+2 ; Copy
|
|
69 | 1 FPConv.asm 69 | Empty | 11 | | 0 | 00/8032 |
|
|
70 | 1 FPConv.asm 70 | Code | 11 | | 2 | 00/8032 : A5 A0 | lda {$9D}+3
|
|
71 | 1 FPConv.asm 71 | Code | 11 | | 1 | 00/8034 : 6A | ror
|
|
72 | 1 FPConv.asm 72 | Code | 11 | | 2 | 00/8035 : 85 FD | sta {$FA}+3
|
|
73 | 1 FPConv.asm 73 | Code | 11 | | 2 | 00/8037 : 85 EF | sta {$EC}+3 ; Copy FP2=FP1 X2=X1
|
|
74 | 1 FPConv.asm 74 | Empty | 11 | | 0 | 00/8039 |
|
|
75 | 1 FPConv.asm 75 | Code | 11 | | 2 | 00/8039 : A5 A1 | lda {$9D}+4
|
|
76 | 1 FPConv.asm 76 | Code | 11 | | 1 | 00/803B : 6A | ror
|
|
77 | 1 FPConv.asm 77 | Code | 11 | | 2 | 00/803C : 85 FE | sta {$FE}
|
|
78 | 1 FPConv.asm 78 | Empty | 11 | | 0 | 00/803E |
|
|
79 | 1 FPConv.asm 79 | Comment | 11 | | 0 | 00/803E | ;brk
|
|
80 | 1 FPConv.asm 80 | Code | 11 | | 1 | 00/803E : 60 | rts
|
|
81 | 1 FPConv.asm 81 | Empty | 11 | | 0 | 00/803F |
|
|
82 | 1 FPConv.asm 82 | Comment | 11 | | 0 | 00/803F | ************************************
|
|
83 | 1 FPConv.asm 83 | Comment | 11 | | 0 | 00/803F | * FP1 TO FAC TO BASIC *
|
|
84 | 1 FPConv.asm 84 | Comment | 11 | | 0 | 00/803F | * CALL 32831,Y 831,Y *
|
|
85 | 1 FPConv.asm 85 | Comment | 11 | | 0 | 00/803F | * PRINT Y *
|
|
86 | 1 FPConv.asm 86 | Comment | 11 | | 0 | 00/803F | ************************************
|
|
87 | 1 FPConv.asm 87 | Empty | 11 | | 0 | 00/803F |
|
|
88 | 1 FPConv.asm 88 | Comment | 11 | | 0 | 00/803F | *
|
|
89 | 1 FPConv.asm 89 | Comment | 11 | | 0 | 00/803F | ** FP1 to FAC conversion **
|
|
90 | 1 FPConv.asm 90 | Comment | 11 | | 0 | 00/803F | *
|
|
91 | 1 FPConv.asm 91 | Code | 11 | | 3 | 00/803F : AD 00 70 | ENTRY2 lda {$7000} ; X1 1 Byte --> 9D FAC
|
|
92 | 1 FPConv.asm 92 | Code | 11 | | 1 | 00/8042 : 1A | inc A ; 2^(FP1+1) inc EXP
|
|
93 | 1 FPConv.asm 93 | Code | 11 | | 2 | 00/8043 : 85 9D | sta {$9D}
|
|
94 | 1 FPConv.asm 94 | Empty | 11 | | 0 | 00/8045 |
|
|
95 | 1 FPConv.asm 95 | Code | 11 | | 3 | 00/8045 : AD 01 70 | lda {$7000}+1
|
|
96 | 1 FPConv.asm 96 | Code | 11 | | 2 | 00/8048 : 30 0C | bmi NEG2 ; chk the Hi bit of 1 byte Mantissa
|
|
97 | 1 FPConv.asm 97 | Empty | 11 | | 0 | 00/804A |
|
|
98 | 1 FPConv.asm 98 | Empty | 11 | | 0 | 00/804A |
|
|
99 | 1 FPConv.asm 99 | Code | 11 | | 1 | 00/804A : 18 | POS2 clc
|
|
100 | 1 FPConv.asm 100 | Code | 11 | | 3 | 00/804B : AD 01 70 | lda {$7000}+1 ; M1 Hi 2 Byte --> 9E FAC
|
|
101 | 1 FPConv.asm 101 | Code | 11 | | 1 | 00/804E : 2A | rol ; Multiply for 2^1
|
|
102 | 1 FPConv.asm 102 | Empty | 11 | | 0 | 00/804F |
|
|
103 | 1 FPConv.asm 103 | Code | 11 | | 2 | 00/804F : 09 80 | ora #$80 ; Set Hi Bit 1 byte Mantissa (change Sign only if is positive)
|
|
104 | 1 FPConv.asm 104 | Code | 11 | | 2 | 00/8051 : 85 9E | sta {$9D}+1 ; To 6^ Byte of FAC Unpacked
|
|
105 | 1 FPConv.asm 105 | Empty | 11 | | 0 | 00/8053 |
|
|
106 | 1 FPConv.asm 106 | Comment | 11 | | 0 | 00/8053 | ;sta FAC+5 ; To 1^ Byte Mantissa of FAC UnPacked
|
|
107 | 1 FPConv.asm 107 | Code | 11 | | 3 | 00/8053 : 4C 63 80 | jmp CONT2
|
|
108 | 1 FPConv.asm 108 | Empty | 11 | | 0 | 00/8056 |
|
|
109 | 1 FPConv.asm 109 | Code | 11 | | 3 | 00/8056 : AD 01 70 | NEG2 lda {$7000}+1
|
|
110 | 1 FPConv.asm 110 | Empty | 11 | | 0 | 00/8059 |
|
|
111 | 1 FPConv.asm 111 | Code | 11 | | 1 | 00/8059 : 38 | sec
|
|
112 | 1 FPConv.asm 112 | Code | 11 | | 2 | 00/805A : E9 01 | sbc #01 ; One's complement inv -1
|
|
113 | 1 FPConv.asm 113 | Code | 11 | | 2 | 00/805C : 49 FF | eor #$FF ; Two's complement inv NOT
|
|
114 | 1 FPConv.asm 114 | Empty | 11 | | 0 | 00/805E |
|
|
115 | 1 FPConv.asm 115 | Code | 11 | | 1 | 00/805E : 2A | rol ; Multiply for 2^1
|
|
116 | 1 FPConv.asm 116 | Empty | 11 | | 0 | 00/805F |
|
|
117 | 1 FPConv.asm 117 | Code | 11 | | 2 | 00/805F : 85 9E | sta {$9D}+1 ; To 1^ Byte Mantissa of FAC Packed
|
|
118 | 1 FPConv.asm 118 | Code | 11 | | 2 | 00/8061 : 85 A2 | sta {$9D}+5 ; To 6^ Byte of FAC Unpacked
|
|
119 | 1 FPConv.asm 119 | Empty | 11 | | 0 | 00/8063 |
|
|
120 | 1 FPConv.asm 120 | Empty | 11 | | 0 | 00/8063 |
|
|
121 | 1 FPConv.asm 121 | Code | 11 | | 3 | 00/8063 : AD 02 70 | CONT2 lda {$7000}+2 ; M1 3 Byte --> 9F FAC
|
|
122 | 1 FPConv.asm 122 | Code | 11 | | 1 | 00/8066 : 2A | rol
|
|
123 | 1 FPConv.asm 123 | Code | 11 | | 2 | 00/8067 : 85 9F | sta {$9D}+2
|
|
124 | 1 FPConv.asm 124 | Empty | 11 | | 0 | 00/8069 |
|
|
125 | 1 FPConv.asm 125 | Code | 11 | | 3 | 00/8069 : AD 03 70 | lda {$7000}+3 ; M1 Lo 4 Byte --> A0 FAC
|
|
126 | 1 FPConv.asm 126 | Code | 11 | | 1 | 00/806C : 2A | rol
|
|
127 | 1 FPConv.asm 127 | Code | 11 | | 2 | 00/806D : 85 A0 | sta {$9D}+3
|
|
128 | 1 FPConv.asm 128 | Empty | 11 | | 0 | 00/806F |
|
|
129 | 1 FPConv.asm 129 | Code | 11 | | 2 | 00/806F : A5 FE | lda {$FE} ; Extra 5 Byte --> A1 FAC
|
|
130 | 1 FPConv.asm 130 | Code | 11 | | 1 | 00/8071 : 2A | rol
|
|
131 | 1 FPConv.asm 131 | Code | 11 | | 2 | 00/8072 : 85 A1 | sta {$9D}+4
|
|
132 | 1 FPConv.asm 132 | Empty | 11 | | 0 | 00/8074 |
|
|
133 | 1 FPConv.asm 133 | Comment | 11 | | 0 | 00/8074 | ;brk
|
|
134 | 1 FPConv.asm 134 | Comment | 11 | | 0 | 00/8074 | ***************************
|
|
135 | 1 FPConv.asm 135 | Comment | 11 | | 0 | 00/8074 | *
|
|
136 | 1 FPConv.asm 136 | Code | 11 | | 3 | 00/8074 : 20 BE DE | jsr {$DEBE}
|
|
137 | 1 FPConv.asm 137 | Code | 11 | | 3 | 00/8077 : 20 E3 DF | jsr {$DFE3} ; Return the Y and A pointing to the specific variabile
|
|
138 | 1 FPConv.asm 138 | Code | 11 | | 1 | 00/807A : AA | tax
|
|
139 | 1 FPConv.asm 139 | Code | 11 | | 3 | 00/807B : 20 2B EB | jsr {$EB2B} ;FAC->VARIABLE Y (5 Bytes Packed)
|
|
140 | 1 FPConv.asm 140 | Empty | 11 | | 0 | 00/807E |
|
|
141 | 1 FPConv.asm 141 | Comment | 11 | | 0 | 00/807E | ;brk
|
|
142 | 1 FPConv.asm 142 | Code | 11 | | 1 | 00/807E : 60 | rts
|
|
143 | 1 FPConv.asm 143 | Data | 11 | | 1 | 00/807F : 00 | chk
|
|
------+----------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
|