mirror of
https://github.com/rigreco/UniDisk.git
synced 2024-05-28 20:41:39 +00:00
Fix all absolute addressing
This commit is contained in:
parent
8cc85535b9
commit
84da2fe202
|
@ -87,23 +87,23 @@ Message asc 'NO PC OR NO DEVICE'
|
|||
** Set the Input Value first in Dynamic data **
|
||||
** 4 Byte N1 to FP1 **
|
||||
EXEC lda N1 ;X1
|
||||
sta $8111 ; Absolute addressing
|
||||
sta $8238 ; Absolute addressing
|
||||
lda N1+1 ;M1 (1)
|
||||
sta $8112
|
||||
sta $8239
|
||||
lda N1+2 ;M1 (2)
|
||||
sta
|
||||
sta $823A
|
||||
lda N1+2 ;M1 (3)
|
||||
sta
|
||||
sta $823B
|
||||
|
||||
** 4 Byte N2 to FP2 **
|
||||
lda N2 ;X2
|
||||
sta $80EB
|
||||
sta $823C
|
||||
lda N2+1 ;M2 (1)
|
||||
sta $80EC
|
||||
sta $823D
|
||||
lda N2+2 ;M2 (2)
|
||||
sta
|
||||
sta $823E
|
||||
lda N2+2 ;M2 (3)
|
||||
sta
|
||||
sta $823F
|
||||
|
||||
*** Download ***
|
||||
jsr Dispatch
|
||||
|
@ -143,7 +143,7 @@ READ jsr Dispatch
|
|||
jsr Dispatch
|
||||
dfb StatusCmd
|
||||
dw DParms
|
||||
bcs Error
|
||||
* bcs Error
|
||||
|
||||
* Second time execute only to read the latest Byte of FP1*
|
||||
lda UNIAcc_reg
|
||||
|
@ -283,16 +283,16 @@ HighPC_reg dfb $05
|
|||
CNTL_LIST3 equ *
|
||||
CountL_byte dfb $02
|
||||
CountH_byte dfb $00
|
||||
LByte_Addr dfb $05 ; Like ORG
|
||||
LByte_Addr dfb $00 ; ORG of Unidisk program
|
||||
HByte_Addr dfb $05
|
||||
*
|
||||
*** Download ***
|
||||
CNTL_LIST4 equ *
|
||||
LenghtL_byte dfb $4A ;<----- Lenght of Unidisk program Lo Byte
|
||||
LenghtH_byte dfb $00 ;<----- Lenght of Unidisk program Hi Byte
|
||||
LenghtL_byte dfb $38 ;<----- Lenght of Unidisk program Lo - Byte 312 byte
|
||||
LenghtH_byte dfb $01 ;<----- Lenght of Unidisk program Hi Byte
|
||||
*
|
||||
*** Start UNIDISK Program ***
|
||||
org $0505
|
||||
org $0500
|
||||
|
||||
SIGN EQU $C0 ;$EB ; $F3
|
||||
|
||||
|
|
546
AppleII/FP operations/Unidrive4_Output.txt
Normal file
546
AppleII/FP operations/Unidrive4_Output.txt
Normal file
|
@ -0,0 +1,546 @@
|
|||
------+-------------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
|
||||
Line | # File Line | Line Type | MX | Reloc | Size | Address Object Code | Source Code
|
||||
------+-------------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
|
||||
1 | 1 Unidrive4.asm 1 | Comment | 11 | | 0 | 00/8000 | *
|
||||
2 | 1 Unidrive4.asm 2 | Comment | 11 | | 0 | 00/8000 | * Unidisk 3.5 Driver <alfa>
|
||||
3 | 1 Unidrive4.asm 3 | Comment | 11 | | 0 | 00/8000 | *
|
||||
4 | 1 Unidrive4.asm 4 | Comment | 11 | | 0 | 00/8000 | * The target of this project is to use the Unidisk 3.5 drive to perform
|
||||
5 | 1 Unidrive4.asm 5 | Comment | 11 | | 0 | 00/8000 | * specific numerical routines (integers and floating point numbers)
|
||||
6 | 1 Unidrive4.asm 6 | Comment | 11 | | 0 | 00/8000 | * calculation in order to use it as a Apple II co-processor unit.
|
||||
7 | 1 Unidrive4.asm 7 | Comment | 11 | | 0 | 00/8000 | *
|
||||
8 | 1 Unidrive4.asm 8 | Comment | 11 | | 0 | 00/8000 | * Copyright (C) 2015 Riccardo Greco <rigreco.grc@gmail.com>.
|
||||
9 | 1 Unidrive4.asm 9 | Comment | 11 | | 0 | 00/8000 | *
|
||||
10 | 1 Unidrive4.asm 10 | Comment | 11 | | 0 | 00/8000 | * This program is free software: you can redistribute it and/or modify
|
||||
11 | 1 Unidrive4.asm 11 | Comment | 11 | | 0 | 00/8000 | * it under the terms of the GNU General Public License as published by
|
||||
12 | 1 Unidrive4.asm 12 | Comment | 11 | | 0 | 00/8000 | * the Free Software Foundation, either version 3 of the License, or
|
||||
13 | 1 Unidrive4.asm 13 | Comment | 11 | | 0 | 00/8000 | * (at your option) any later version.
|
||||
14 | 1 Unidrive4.asm 14 | Comment | 11 | | 0 | 00/8000 | * This program is distributed in the hope that it will be useful,
|
||||
15 | 1 Unidrive4.asm 15 | Comment | 11 | | 0 | 00/8000 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
16 | 1 Unidrive4.asm 16 | Comment | 11 | | 0 | 00/8000 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
17 | 1 Unidrive4.asm 17 | Comment | 11 | | 0 | 00/8000 | * GNU General Public License for more details.
|
||||
18 | 1 Unidrive4.asm 18 | Comment | 11 | | 0 | 00/8000 | * You should have received a copy of the GNU General Public License
|
||||
19 | 1 Unidrive4.asm 19 | Comment | 11 | | 0 | 00/8000 | * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
20 | 1 Unidrive4.asm 20 | Comment | 11 | | 0 | 00/8000 | *
|
||||
21 | 1 Unidrive4.asm 21 | Comment | 11 | | 0 | 00/8000 | *
|
||||
22 | 1 Unidrive4.asm 22 | Comment | 11 | | 0 | 00/8000 | * @com.wudsn.ide.asm.hardware=APPLE2
|
||||
23 | 1 Unidrive4.asm 23 | Comment | 11 | | 0 | 00/8000 | *
|
||||
24 | 1 Unidrive4.asm 24 | Comment | 11 | | 0 | 00/8000 | * Protocol Converter Call
|
||||
25 | 1 Unidrive4.asm 25 | Directive | 11 | | 0 | 00/8000 | XC
|
||||
26 | 1 Unidrive4.asm 26 | Equivalence | 11 | | 0 | 00/8000 | ZPTempL equ $0006 ;Temporary zero page storage
|
||||
27 | 1 Unidrive4.asm 27 | Equivalence | 11 | | 0 | 00/8000 | ZPTempH equ $0007
|
||||
28 | 1 Unidrive4.asm 28 | Comment | 11 | | 0 | 00/8000 | ** Zero page storage **
|
||||
29 | 1 Unidrive4.asm 29 | Equivalence | 11 | | 0 | 00/8000 | N1 equ $FA ;25 4 Byte FP FA--FD (FP1)
|
||||
30 | 1 Unidrive4.asm 30 | Equivalence | 11 | | 0 | 00/8000 | N2 equ $EC ;27 4 Byte FP EC--EF (FP2)
|
||||
31 | 1 Unidrive4.asm 31 | Comment | 11 | | 0 | 00/8000 | ; RSLT equ $1D ;29
|
||||
32 | 1 Unidrive4.asm 32 | Comment | 11 | | 0 | 00/8000 | *** Monitor routines ***
|
||||
33 | 1 Unidrive4.asm 33 | Equivalence | 11 | | 0 | 00/8000 | COut equ $FDED ;Console output ASCII
|
||||
34 | 1 Unidrive4.asm 34 | Equivalence | 11 | | 0 | 00/8000 | CROut equ $FD8E ;Carriage return
|
||||
35 | 1 Unidrive4.asm 35 | Comment | 11 | | 0 | 00/8000 | ** Command Code **
|
||||
36 | 1 Unidrive4.asm 36 | Equivalence | 11 | | 0 | 00/8000 | StatusCmd equ 0
|
||||
37 | 1 Unidrive4.asm 37 | Comment | 11 | | 0 | 00/8000 | ** Status Code **
|
||||
38 | 1 Unidrive4.asm 38 | Comment | 11 | | 0 | 00/8000 | * StatusDIB equ 3
|
||||
39 | 1 Unidrive4.asm 39 | Equivalence | 11 | | 0 | 00/8000 | StatusUNI equ 5
|
||||
40 | 1 Unidrive4.asm 40 | Comment | 11 | | 0 | 00/8000 | *
|
||||
41 | 1 Unidrive4.asm 41 | Equivalence | 11 | | 0 | 00/8000 | ControlCmd equ 4
|
||||
42 | 1 Unidrive4.asm 42 | Comment | 11 | | 0 | 00/8000 | ** Control Codes **
|
||||
43 | 1 Unidrive4.asm 43 | Equivalence | 11 | | 0 | 00/8000 | Eject equ 4
|
||||
44 | 1 Unidrive4.asm 44 | Equivalence | 11 | | 0 | 00/8000 | Run equ 5
|
||||
45 | 1 Unidrive4.asm 45 | Equivalence | 11 | | 0 | 00/8000 | SetDWLoad equ 6
|
||||
46 | 1 Unidrive4.asm 46 | Equivalence | 11 | | 0 | 00/8000 | DWLoad equ 7
|
||||
47 | 1 Unidrive4.asm 47 | Comment | 11 | | 0 | 00/8000 | *
|
||||
48 | 1 Unidrive4.asm 48 | Directive | 11 | | 0 | 00/8000 | org $8000
|
||||
49 | 1 Unidrive4.asm 49 | Comment | 11 | | 0 | 00/8000 | *****************************************************
|
||||
50 | 1 Unidrive4.asm 50 | Empty | 11 | | 0 | 00/8000 |
|
||||
51 | 1 Unidrive4.asm 51 | Comment | 11 | | 0 | 00/8000 | *
|
||||
52 | 1 Unidrive4.asm 52 | Comment | 11 | | 0 | 00/8000 | * Find a Protocol Converter in one of the slots.
|
||||
53 | 1 Unidrive4.asm 53 | Code | 11 | | 3 | 00/8000 : 20 9E 80 | START jsr {ozunid_4}
|
||||
54 | 1 Unidrive4.asm 54 | Code | 11 | | 2 | 00/8003 : B0 10 | bcs {ozunid_1}
|
||||
55 | 1 Unidrive4.asm 55 | Comment | 11 | | 0 | 00/8005 | *** Eject ***
|
||||
56 | 1 Unidrive4.asm 56 | Code | 11 | | 3 | 00/8005 : 20 D3 80 | jsr {ozunid_9}
|
||||
57 | 1 Unidrive4.asm 57 | Data | 11 | | 1 | 00/8008 : 04 | dfb {4}
|
||||
58 | 1 Unidrive4.asm 58 | Data | 11 | | 2 | 00/8009 : F2 80 | dw {ozunid_15}
|
||||
59 | 1 Unidrive4.asm 59 | Comment | 11 | | 0 | 00/800B | *** Set Address ***
|
||||
60 | 1 Unidrive4.asm 60 | Code | 11 | | 3 | 00/800B : 20 D3 80 | jsr {ozunid_9}
|
||||
61 | 1 Unidrive4.asm 61 | Data | 11 | | 1 | 00/800E : 04 | dfb {4}
|
||||
62 | 1 Unidrive4.asm 62 | Data | 11 | | 2 | 00/800F : E3 80 | dw {ozunid_12}
|
||||
63 | 1 Unidrive4.asm 63 | Comment | 11 | | 0 | 00/8011 | *
|
||||
64 | 1 Unidrive4.asm 64 | Code | 11 | | 3 | 00/8011 : 20 37 80 | jsr EXEC ; Jump the Error routine
|
||||
65 | 1 Unidrive4.asm 65 | Code | 11 | | 1 | 00/8014 : 60 | rts
|
||||
66 | 1 Unidrive4.asm 66 | Comment | 11 | | 0 | 00/8015 | *********************************************
|
||||
67 | 1 Unidrive4.asm 67 | Empty | 11 | | 0 | 00/8015 | ozunid_1
|
||||
68 | 1 Unidrive4.asm 67 | Equivalence | 11 | | 0 | 00/8015 | Error equ ozunid_1
|
||||
69 | 1 Unidrive4.asm 68 | Comment | 11 | | 0 | 00/8015 | *
|
||||
70 | 1 Unidrive4.asm 69 | Comment | 11 | | 0 | 00/8015 | * There is either no PC around, or there was no give message
|
||||
71 | 1 Unidrive4.asm 70 | Comment | 11 | | 0 | 00/8015 | *
|
||||
72 | 1 Unidrive4.asm 71 | Code | 11 | | 2 | 00/8015 : A2 00 | ldx #0
|
||||
73 | 1 Unidrive4.asm 72 | Empty | 11 | | 0 | 00/8017 | ozunid_2
|
||||
74 | 1 Unidrive4.asm 72 | Equivalence | 11 | | 0 | 00/8017 | err1 equ ozunid_2
|
||||
75 | 1 Unidrive4.asm 73 | Code | 11 | | 3 | 00/8017 : BD 23 80 | lda Message,x
|
||||
76 | 1 Unidrive4.asm 74 | Code | 11 | | 2 | 00/801A : F0 06 | beq {ozunid_3}
|
||||
77 | 1 Unidrive4.asm 75 | Code | 11 | | 3 | 00/801C : 20 ED FD | jsr {$FDED}
|
||||
78 | 1 Unidrive4.asm 76 | Code | 11 | | 1 | 00/801F : E8 | inx
|
||||
79 | 1 Unidrive4.asm 77 | Code | 11 | | 2 | 00/8020 : D0 F5 | bne {ozunid_2}
|
||||
80 | 1 Unidrive4.asm 78 | Comment | 11 | | 0 | 00/8022 | *
|
||||
81 | 1 Unidrive4.asm 79 | Empty | 11 | | 0 | 00/8022 | ozunid_3
|
||||
82 | 1 Unidrive4.asm 79 | Equivalence | 11 | | 0 | 00/8022 | errout equ ozunid_3
|
||||
83 | 1 Unidrive4.asm 80 | Code | 11 | | 1 | 00/8022 : 60 | rts
|
||||
84 | 1 Unidrive4.asm 81 | Comment | 11 | | 0 | 00/8023 | *
|
||||
85 | 1 Unidrive4.asm 82 | Data | 11 | | 18 | 00/8023 : 4E 4F 20 50 | Message asc 'NO PC OR NO DEVICE'
|
||||
| | | | | | 43 20 4F 52 |
|
||||
| | | | | | 20 4E 4F 20 |
|
||||
| | | | | | 44 45 56 49 |
|
||||
| | | | | | 43 45 |
|
||||
86 | 1 Unidrive4.asm 83 | Data | 11 | | 2 | 00/8035 : 8D 00 | dfb $8D,0
|
||||
87 | 1 Unidrive4.asm 84 | Comment | 11 | | 0 | 00/8037 | *********************************************
|
||||
88 | 1 Unidrive4.asm 85 | Comment | 11 | | 0 | 00/8037 | *
|
||||
89 | 1 Unidrive4.asm 86 | Empty | 11 | | 0 | 00/8037 |
|
||||
90 | 1 Unidrive4.asm 87 | Comment | 11 | | 0 | 00/8037 | ** Set the Input Value first in Dynamic data **
|
||||
91 | 1 Unidrive4.asm 88 | Comment | 11 | | 0 | 00/8037 | ** 4 Byte N1 to FP1 **
|
||||
92 | 1 Unidrive4.asm 89 | Code | 11 | | 2 | 00/8037 : A5 FA | EXEC lda {$FA} ;X1
|
||||
93 | 1 Unidrive4.asm 90 | Code | 11 | | 3 | 00/8039 : 8D 38 82 | sta $8238 ; Absolute addressing
|
||||
94 | 1 Unidrive4.asm 91 | Code | 11 | | 2 | 00/803C : A5 FB | lda {$FA}+1 ;M1 (1)
|
||||
95 | 1 Unidrive4.asm 92 | Code | 11 | | 3 | 00/803E : 8D 39 82 | sta $8239
|
||||
96 | 1 Unidrive4.asm 93 | Code | 11 | | 2 | 00/8041 : A5 FC | lda {$FA}+2 ;M1 (2)
|
||||
97 | 1 Unidrive4.asm 94 | Code | 11 | | 3 | 00/8043 : 8D 3A 82 | sta $823A
|
||||
98 | 1 Unidrive4.asm 95 | Code | 11 | | 2 | 00/8046 : A5 FC | lda {$FA}+2 ;M1 (3)
|
||||
99 | 1 Unidrive4.asm 96 | Code | 11 | | 3 | 00/8048 : 8D 3B 82 | sta $823B
|
||||
100 | 1 Unidrive4.asm 97 | Empty | 11 | | 0 | 00/804B |
|
||||
101 | 1 Unidrive4.asm 98 | Comment | 11 | | 0 | 00/804B | ** 4 Byte N2 to FP2 **
|
||||
102 | 1 Unidrive4.asm 99 | Code | 11 | | 2 | 00/804B : A5 EC | lda {$EC} ;X2
|
||||
103 | 1 Unidrive4.asm 100 | Code | 11 | | 3 | 00/804D : 8D 3C 82 | sta $823C
|
||||
104 | 1 Unidrive4.asm 101 | Code | 11 | | 2 | 00/8050 : A5 ED | lda {$EC}+1 ;M2 (1)
|
||||
105 | 1 Unidrive4.asm 102 | Code | 11 | | 3 | 00/8052 : 8D 3D 82 | sta $823D
|
||||
106 | 1 Unidrive4.asm 103 | Code | 11 | | 2 | 00/8055 : A5 EE | lda {$EC}+2 ;M2 (2)
|
||||
107 | 1 Unidrive4.asm 104 | Code | 11 | | 3 | 00/8057 : 8D 3E 82 | sta $823E
|
||||
108 | 1 Unidrive4.asm 105 | Code | 11 | | 2 | 00/805A : A5 EE | lda {$EC}+2 ;M2 (3)
|
||||
109 | 1 Unidrive4.asm 106 | Code | 11 | | 3 | 00/805C : 8D 3F 82 | sta $823F
|
||||
110 | 1 Unidrive4.asm 107 | Empty | 11 | | 0 | 00/805F |
|
||||
111 | 1 Unidrive4.asm 108 | Comment | 11 | | 0 | 00/805F | *** Download ***
|
||||
112 | 1 Unidrive4.asm 109 | Code | 11 | | 3 | 00/805F : 20 D3 80 | jsr {ozunid_9}
|
||||
113 | 1 Unidrive4.asm 110 | Data | 11 | | 1 | 00/8062 : 04 | dfb {4}
|
||||
114 | 1 Unidrive4.asm 111 | Data | 11 | | 2 | 00/8063 : E8 80 | dw {ozunid_13}
|
||||
115 | 1 Unidrive4.asm 112 | Comment | 11 | | 0 | 00/8065 | ** Set Unidisk Registers **
|
||||
116 | 1 Unidrive4.asm 113 | Code | 11 | | 2 | 00/8065 : A9 01 | lda #01 ;First time
|
||||
117 | 1 Unidrive4.asm 114 | Code | 11 | | 3 | 00/8067 : 8D DE 80 | sta UNIAcc_reg
|
||||
118 | 1 Unidrive4.asm 115 | Comment | 11 | | 0 | 00/806A | ** Execute **
|
||||
119 | 1 Unidrive4.asm 116 | Code | 11 | | 3 | 00/806A : 20 D3 80 | jsr {ozunid_9}
|
||||
120 | 1 Unidrive4.asm 117 | Data | 11 | | 1 | 00/806D : 04 | dfb {4}
|
||||
121 | 1 Unidrive4.asm 118 | Data | 11 | | 2 | 00/806E : ED 80 | dw {ozunid_14}
|
||||
122 | 1 Unidrive4.asm 119 | Comment | 11 | | 0 | 00/8070 | ** Read **
|
||||
123 | 1 Unidrive4.asm 120 | Code | 11 | | 3 | 00/8070 : 20 D3 80 | READ jsr {ozunid_9}
|
||||
124 | 1 Unidrive4.asm 121 | Data | 11 | | 1 | 00/8073 : 00 | dfb {0}
|
||||
125 | 1 Unidrive4.asm 122 | Data | 11 | | 2 | 00/8074 : D6 80 | dw {ozunid_10}
|
||||
126 | 1 Unidrive4.asm 123 | Code | 11 | | 2 | 00/8076 : B0 9D | bcs {ozunid_1}
|
||||
127 | 1 Unidrive4.asm 124 | Comment | 11 | | 0 | 00/8078 | *
|
||||
128 | 1 Unidrive4.asm 125 | Comment | 11 | | 0 | 00/8078 | **** Store Output results in //c ****
|
||||
129 | 1 Unidrive4.asm 126 | Empty | 11 | | 0 | 00/8078 |
|
||||
130 | 1 Unidrive4.asm 127 | Comment | 11 | | 0 | 00/8078 | * First time execute *
|
||||
131 | 1 Unidrive4.asm 128 | Code | 11 | | 3 | 00/8078 : AD DE 80 | lda UNIAcc_reg
|
||||
132 | 1 Unidrive4.asm 129 | Code | 11 | | 2 | 00/807B : 85 FA | sta {$FA}
|
||||
133 | 1 Unidrive4.asm 130 | Code | 11 | | 3 | 00/807D : AD DF 80 | lda UNIX_reg
|
||||
134 | 1 Unidrive4.asm 131 | Code | 11 | | 2 | 00/8080 : 85 FB | sta {$FA}+1 ; Store the result
|
||||
135 | 1 Unidrive4.asm 132 | Code | 11 | | 3 | 00/8082 : AD E0 80 | lda UNIY_reg
|
||||
136 | 1 Unidrive4.asm 133 | Code | 11 | | 2 | 00/8085 : 85 FC | sta {$FA}+2
|
||||
137 | 1 Unidrive4.asm 134 | Empty | 11 | | 0 | 00/8087 |
|
||||
138 | 1 Unidrive4.asm 135 | Comment | 11 | | 0 | 00/8087 | ** Second time execute **
|
||||
139 | 1 Unidrive4.asm 136 | Code | 11 | | 2 | 00/8087 : A9 02 | lda #02 ; Second time
|
||||
140 | 1 Unidrive4.asm 137 | Code | 11 | | 3 | 00/8089 : 8D DE 80 | sta UNIAcc_reg
|
||||
141 | 1 Unidrive4.asm 138 | Comment | 11 | | 0 | 00/808C | ** Execute **
|
||||
142 | 1 Unidrive4.asm 139 | Code | 11 | | 3 | 00/808C : 20 D3 80 | jsr {ozunid_9}
|
||||
143 | 1 Unidrive4.asm 140 | Data | 11 | | 1 | 00/808F : 04 | dfb {4}
|
||||
144 | 1 Unidrive4.asm 141 | Data | 11 | | 2 | 00/8090 : ED 80 | dw {ozunid_14}
|
||||
145 | 1 Unidrive4.asm 142 | Comment | 11 | | 0 | 00/8092 | ** Read **
|
||||
146 | 1 Unidrive4.asm 143 | Code | 11 | | 3 | 00/8092 : 20 D3 80 | jsr {ozunid_9}
|
||||
147 | 1 Unidrive4.asm 144 | Data | 11 | | 1 | 00/8095 : 00 | dfb {0}
|
||||
148 | 1 Unidrive4.asm 145 | Data | 11 | | 2 | 00/8096 : D6 80 | dw {ozunid_10}
|
||||
149 | 1 Unidrive4.asm 146 | Comment | 11 | | 0 | 00/8098 | * bcs Error
|
||||
150 | 1 Unidrive4.asm 147 | Empty | 11 | | 0 | 00/8098 |
|
||||
151 | 1 Unidrive4.asm 148 | Comment | 11 | | 0 | 00/8098 | * Second time execute only to read the latest Byte of FP1*
|
||||
152 | 1 Unidrive4.asm 149 | Code | 11 | | 3 | 00/8098 : AD DE 80 | lda UNIAcc_reg
|
||||
153 | 1 Unidrive4.asm 150 | Code | 11 | | 2 | 00/809B : 85 FC | sta {$FA}+2
|
||||
154 | 1 Unidrive4.asm 151 | Comment | 11 | | 0 | 00/809D | *
|
||||
155 | 1 Unidrive4.asm 152 | Code | 11 | | 1 | 00/809D : 60 | rts
|
||||
156 | 1 Unidrive4.asm 153 | Empty | 11 | | 0 | 00/809E |
|
||||
157 | 1 Unidrive4.asm 154 | Comment | 11 | | 0 | 00/809E | ******************************************************
|
||||
158 | 1 Unidrive4.asm 155 | Empty | 11 | | 0 | 00/809E | ozunid_4
|
||||
159 | 1 Unidrive4.asm 155 | Equivalence | 11 | | 0 | 00/809E | FindPC equ ozunid_4
|
||||
160 | 1 Unidrive4.asm 156 | Comment | 11 | | 0 | 00/809E | *
|
||||
161 | 1 Unidrive4.asm 157 | Comment | 11 | | 0 | 00/809E | * Search slot 7 to slot 1 looking for signature bytes
|
||||
162 | 1 Unidrive4.asm 158 | Comment | 11 | | 0 | 00/809E | *
|
||||
163 | 1 Unidrive4.asm 159 | Code | 11 | | 2 | 00/809E : A2 07 | ldx #7 ;Do for seven slots
|
||||
164 | 1 Unidrive4.asm 160 | Code | 11 | | 2 | 00/80A0 : A9 C7 | lda #$C7
|
||||
165 | 1 Unidrive4.asm 161 | Code | 11 | | 2 | 00/80A2 : 85 07 | sta {$0007}
|
||||
166 | 1 Unidrive4.asm 162 | Code | 11 | | 2 | 00/80A4 : A9 00 | lda #$00
|
||||
167 | 1 Unidrive4.asm 163 | Code | 11 | | 2 | 00/80A6 : 85 06 | sta {$0006}
|
||||
168 | 1 Unidrive4.asm 164 | Comment | 11 | | 0 | 00/80A8 | *
|
||||
169 | 1 Unidrive4.asm 165 | Empty | 11 | | 0 | 00/80A8 | ozunid_5
|
||||
170 | 1 Unidrive4.asm 165 | Equivalence | 11 | | 0 | 00/80A8 | newslot equ ozunid_5
|
||||
171 | 1 Unidrive4.asm 166 | Code | 11 | | 2 | 00/80A8 : A0 07 | ldy #7
|
||||
172 | 1 Unidrive4.asm 167 | Comment | 11 | | 0 | 00/80AA | *
|
||||
173 | 1 Unidrive4.asm 168 | Empty | 11 | | 0 | 00/80AA | ozunid_6
|
||||
174 | 1 Unidrive4.asm 168 | Equivalence | 11 | | 0 | 00/80AA | again equ ozunid_6
|
||||
175 | 1 Unidrive4.asm 169 | Code | 11 | | 2 | 00/80AA : B1 06 | lda ({$0006}),y
|
||||
176 | 1 Unidrive4.asm 170 | Code | 11 | | 3 | 00/80AC : D9 CB 80 | cmp sigtab,y ;One for byte signature
|
||||
177 | 1 Unidrive4.asm 171 | Code | 11 | | 2 | 00/80AF : F0 07 | beq {ozunid_7} ;Found one signature byte
|
||||
178 | 1 Unidrive4.asm 172 | Code | 11 | | 2 | 00/80B1 : C6 07 | dec {$0007}
|
||||
179 | 1 Unidrive4.asm 173 | Code | 11 | | 1 | 00/80B3 : CA | dex
|
||||
180 | 1 Unidrive4.asm 174 | Code | 11 | | 2 | 00/80B4 : D0 F2 | bne {ozunid_5}
|
||||
181 | 1 Unidrive4.asm 175 | Comment | 11 | | 0 | 00/80B6 | *
|
||||
182 | 1 Unidrive4.asm 176 | Comment | 11 | | 0 | 00/80B6 | * if we get here, no PC find
|
||||
183 | 1 Unidrive4.asm 177 | Code | 11 | | 1 | 00/80B6 : 38 | sec
|
||||
184 | 1 Unidrive4.asm 178 | Code | 11 | | 1 | 00/80B7 : 60 | rts
|
||||
185 | 1 Unidrive4.asm 179 | Comment | 11 | | 0 | 00/80B8 | *
|
||||
186 | 1 Unidrive4.asm 180 | Comment | 11 | | 0 | 00/80B8 | * if we get here, no byte find on PC
|
||||
187 | 1 Unidrive4.asm 181 | Empty | 11 | | 0 | 00/80B8 | ozunid_7
|
||||
188 | 1 Unidrive4.asm 181 | Equivalence | 11 | | 0 | 00/80B8 | maybe equ ozunid_7
|
||||
189 | 1 Unidrive4.asm 182 | Code | 11 | | 1 | 00/80B8 : 88 | dey
|
||||
190 | 1 Unidrive4.asm 183 | Code | 11 | | 1 | 00/80B9 : 88 | dey ;if N=1 then all sig bytes OK
|
||||
191 | 1 Unidrive4.asm 184 | Code | 11 | | 2 | 00/80BA : 10 EE | bpl {ozunid_6}
|
||||
192 | 1 Unidrive4.asm 185 | Comment | 11 | | 0 | 00/80BC | * Found PC interface. Set up call address.
|
||||
193 | 1 Unidrive4.asm 186 | Comment | 11 | | 0 | 00/80BC | * we already have high byte ($CN), we need low byte
|
||||
194 | 1 Unidrive4.asm 187 | Comment | 11 | | 0 | 00/80BC | *
|
||||
195 | 1 Unidrive4.asm 188 | Empty | 11 | | 0 | 00/80BC | ozunid_8
|
||||
196 | 1 Unidrive4.asm 188 | Equivalence | 11 | | 0 | 00/80BC | foundPC equ ozunid_8
|
||||
197 | 1 Unidrive4.asm 189 | Code | 11 | | 2 | 00/80BC : A9 FF | lda #$FF
|
||||
198 | 1 Unidrive4.asm 190 | Code | 11 | | 2 | 00/80BE : 85 06 | sta {$0006}
|
||||
199 | 1 Unidrive4.asm 191 | Code | 11 | | 2 | 00/80C0 : A0 00 | ldy #0 ;For indirect load
|
||||
200 | 1 Unidrive4.asm 192 | Code | 11 | | 2 | 00/80C2 : B1 06 | lda ({$0006}),y ;Get the byte
|
||||
201 | 1 Unidrive4.asm 193 | Comment | 11 | | 0 | 00/80C4 | *
|
||||
202 | 1 Unidrive4.asm 194 | Comment | 11 | | 0 | 00/80C4 | * Now the Acc has the low oreder ProDOS entry point.
|
||||
203 | 1 Unidrive4.asm 195 | Comment | 11 | | 0 | 00/80C4 | * The PC entry is three locations past this ...
|
||||
204 | 1 Unidrive4.asm 196 | Comment | 11 | | 0 | 00/80C4 | *
|
||||
205 | 1 Unidrive4.asm 197 | Code | 11 | | 1 | 00/80C4 : 18 | clc
|
||||
206 | 1 Unidrive4.asm 198 | Code | 11 | | 2 | 00/80C5 : 69 03 | adc #3
|
||||
207 | 1 Unidrive4.asm 199 | Code | 11 | | 2 | 00/80C7 : 85 06 | sta {$0006}
|
||||
208 | 1 Unidrive4.asm 200 | Comment | 11 | | 0 | 00/80C9 | *
|
||||
209 | 1 Unidrive4.asm 201 | Comment | 11 | | 0 | 00/80C9 | * Now ZPTempL has PC entry point.
|
||||
210 | 1 Unidrive4.asm 202 | Comment | 11 | | 0 | 00/80C9 | * Return with carry clear.
|
||||
211 | 1 Unidrive4.asm 203 | Comment | 11 | | 0 | 00/80C9 | *
|
||||
212 | 1 Unidrive4.asm 204 | Code | 11 | | 1 | 00/80C9 : 18 | clc
|
||||
213 | 1 Unidrive4.asm 205 | Code | 11 | | 1 | 00/80CA : 60 | rts
|
||||
214 | 1 Unidrive4.asm 206 | Comment | 11 | | 0 | 00/80CB | ***********************************************************
|
||||
215 | 1 Unidrive4.asm 207 | Comment | 11 | | 0 | 00/80CB | *
|
||||
216 | 1 Unidrive4.asm 208 | Comment | 11 | | 0 | 00/80CB | * There are the PC signature bytes in their relative order.
|
||||
217 | 1 Unidrive4.asm 209 | Comment | 11 | | 0 | 00/80CB | * The $FF bytes are filler bytes and are not compared.
|
||||
218 | 1 Unidrive4.asm 210 | Comment | 11 | | 0 | 00/80CB | *
|
||||
219 | 1 Unidrive4.asm 211 | Data | 11 | | 4 | 00/80CB : FF 20 FF 00 | sigtab dfb $FF,$20,$FF,$00
|
||||
220 | 1 Unidrive4.asm 212 | Data | 11 | | 4 | 00/80CF : FF 03 FF 00 | dfb $FF,$03,$FF,$00
|
||||
221 | 1 Unidrive4.asm 213 | Comment | 11 | | 0 | 00/80D3 | *
|
||||
222 | 1 Unidrive4.asm 214 | Empty | 11 | | 0 | 00/80D3 | ozunid_9
|
||||
223 | 1 Unidrive4.asm 214 | Equivalence | 11 | | 0 | 00/80D3 | Dispatch equ ozunid_9
|
||||
224 | 1 Unidrive4.asm 215 | Code | 11 | | 3 | 00/80D3 : 6C 06 00 | jmp ({$0006}) ;Simulate an indirect JSR to PC
|
||||
225 | 1 Unidrive4.asm 216 | Comment | 11 | | 0 | 00/80D6 | *
|
||||
226 | 1 Unidrive4.asm 217 | Comment | 11 | | 0 | 00/80D6 | *** Status Parameter Set for UNI ***
|
||||
227 | 1 Unidrive4.asm 218 | Empty | 11 | | 0 | 00/80D6 | ozunid_10
|
||||
228 | 1 Unidrive4.asm 218 | Equivalence | 11 | | 0 | 00/80D6 | DParms equ ozunid_10
|
||||
229 | 1 Unidrive4.asm 219 | Data | 11 | | 1 | 00/80D6 : 03 | DPParmsCt dfb 3 ;Status calls have three parameters
|
||||
230 | 1 Unidrive4.asm 220 | Data | 11 | | 1 | 00/80D7 : 01 | DPUnit dfb 1
|
||||
231 | 1 Unidrive4.asm 221 | Data | 11 | | 2 | 00/80D8 : DB 80 | DPBuffer dw {ozunid_11}
|
||||
232 | 1 Unidrive4.asm 222 | Data | 11 | | 1 | 00/80DA : 05 | DPStatCode dfb {5}
|
||||
233 | 1 Unidrive4.asm 223 | Comment | 11 | | 0 | 00/80DB | *
|
||||
234 | 1 Unidrive4.asm 224 | Comment | 11 | | 0 | 00/80DB | *
|
||||
235 | 1 Unidrive4.asm 225 | Comment | 11 | | 0 | 00/80DB | *
|
||||
236 | 1 Unidrive4.asm 226 | Comment | 11 | | 0 | 00/80DB | *** Status List UNI ***
|
||||
237 | 1 Unidrive4.asm 227 | Empty | 11 | | 0 | 00/80DB | ozunid_11
|
||||
238 | 1 Unidrive4.asm 227 | Equivalence | 11 | | 0 | 00/80DB | UNI equ ozunid_11
|
||||
239 | 1 Unidrive4.asm 228 | Data | 11 | | 1 | 00/80DB : 00 | dfb 0
|
||||
240 | 1 Unidrive4.asm 229 | Data | 11 | | 1 | 00/80DC : 00 | UNIError dfb 0
|
||||
241 | 1 Unidrive4.asm 230 | Data | 11 | | 1 | 00/80DD : 00 | UNIRetries dfb 0
|
||||
242 | 1 Unidrive4.asm 231 | Data | 11 | | 1 | 00/80DE : 00 | UNIAcc_reg dfb 0
|
||||
243 | 1 Unidrive4.asm 232 | Data | 11 | | 1 | 00/80DF : 00 | UNIX_reg dfb 0
|
||||
244 | 1 Unidrive4.asm 233 | Data | 11 | | 1 | 00/80E0 : 00 | UNIY_reg dfb 0
|
||||
245 | 1 Unidrive4.asm 234 | Data | 11 | | 1 | 00/80E1 : 00 | UNIP_val dfb 0
|
||||
246 | 1 Unidrive4.asm 235 | Data | 11 | | 1 | 00/80E2 : 00 | HHH dfb 0
|
||||
247 | 1 Unidrive4.asm 236 | Comment | 11 | | 0 | 00/80E3 | *
|
||||
248 | 1 Unidrive4.asm 237 | Comment | 11 | | 0 | 00/80E3 | *** Set Address ***
|
||||
249 | 1 Unidrive4.asm 238 | Empty | 11 | | 0 | 00/80E3 | ozunid_12
|
||||
250 | 1 Unidrive4.asm 238 | Equivalence | 11 | | 0 | 00/80E3 | SET_ADD equ ozunid_12
|
||||
251 | 1 Unidrive4.asm 239 | Data | 11 | | 1 | 00/80E3 : 03 | dfb 3
|
||||
252 | 1 Unidrive4.asm 240 | Data | 11 | | 1 | 00/80E4 : 01 | dfb 1
|
||||
253 | 1 Unidrive4.asm 241 | Data | 11 | | 2 | 00/80E5 : 01 81 | dw {ozunid_18}
|
||||
254 | 1 Unidrive4.asm 242 | Data | 11 | | 1 | 00/80E7 : 06 | dfb {6}
|
||||
255 | 1 Unidrive4.asm 243 | Comment | 11 | | 0 | 00/80E8 | *
|
||||
256 | 1 Unidrive4.asm 244 | Comment | 11 | | 0 | 00/80E8 | *** Download ***
|
||||
257 | 1 Unidrive4.asm 245 | Empty | 11 | | 0 | 00/80E8 | ozunid_13
|
||||
258 | 1 Unidrive4.asm 245 | Equivalence | 11 | | 0 | 00/80E8 | DOWNLOAD equ ozunid_13
|
||||
259 | 1 Unidrive4.asm 246 | Data | 11 | | 1 | 00/80E8 : 03 | dfb 3
|
||||
260 | 1 Unidrive4.asm 247 | Data | 11 | | 1 | 00/80E9 : 01 | dfb 1
|
||||
261 | 1 Unidrive4.asm 248 | Data | 11 | | 2 | 00/80EA : 05 81 | dw {ozunid_19}
|
||||
262 | 1 Unidrive4.asm 249 | Data | 11 | | 1 | 00/80EC : 07 | dfb {7}
|
||||
263 | 1 Unidrive4.asm 250 | Comment | 11 | | 0 | 00/80ED | *
|
||||
264 | 1 Unidrive4.asm 251 | Comment | 11 | | 0 | 00/80ED | *** Execute ***
|
||||
265 | 1 Unidrive4.asm 252 | Empty | 11 | | 0 | 00/80ED | ozunid_14
|
||||
266 | 1 Unidrive4.asm 252 | Equivalence | 11 | | 0 | 00/80ED | EXE equ ozunid_14
|
||||
267 | 1 Unidrive4.asm 253 | Data | 11 | | 1 | 00/80ED : 03 | dfb 3
|
||||
268 | 1 Unidrive4.asm 254 | Data | 11 | | 1 | 00/80EE : 01 | dfb 1
|
||||
269 | 1 Unidrive4.asm 255 | Data | 11 | | 2 | 00/80EF : F9 80 | dw {ozunid_17}
|
||||
270 | 1 Unidrive4.asm 256 | Data | 11 | | 1 | 00/80F1 : 05 | dfb {5}
|
||||
271 | 1 Unidrive4.asm 257 | Comment | 11 | | 0 | 00/80F2 | *** Eject ***
|
||||
272 | 1 Unidrive4.asm 258 | Empty | 11 | | 0 | 00/80F2 | ozunid_15
|
||||
273 | 1 Unidrive4.asm 258 | Equivalence | 11 | | 0 | 00/80F2 | E_JECT equ ozunid_15
|
||||
274 | 1 Unidrive4.asm 259 | Data | 11 | | 1 | 00/80F2 : 03 | dfb 3
|
||||
275 | 1 Unidrive4.asm 260 | Data | 11 | | 1 | 00/80F3 : 01 | dfb 1
|
||||
276 | 1 Unidrive4.asm 261 | Data | 11 | | 2 | 00/80F4 : F7 80 | dw {ozunid_16}
|
||||
277 | 1 Unidrive4.asm 262 | Data | 11 | | 1 | 00/80F6 : 04 | dfb {4}
|
||||
278 | 1 Unidrive4.asm 263 | Comment | 11 | | 0 | 00/80F7 | *
|
||||
279 | 1 Unidrive4.asm 264 | Comment | 11 | | 0 | 00/80F7 | ******** CONTROL LISTS ********
|
||||
280 | 1 Unidrive4.asm 265 | Comment | 11 | | 0 | 00/80F7 | *
|
||||
281 | 1 Unidrive4.asm 266 | Comment | 11 | | 0 | 00/80F7 | *
|
||||
282 | 1 Unidrive4.asm 267 | Comment | 11 | | 0 | 00/80F7 | *** Eject ***
|
||||
283 | 1 Unidrive4.asm 268 | Empty | 11 | | 0 | 00/80F7 | ozunid_16
|
||||
284 | 1 Unidrive4.asm 268 | Equivalence | 11 | | 0 | 00/80F7 | CNTL_LIST1 equ ozunid_16
|
||||
285 | 1 Unidrive4.asm 269 | Data | 11 | | 2 | 00/80F7 : 00 00 | dw $0000
|
||||
286 | 1 Unidrive4.asm 270 | Comment | 11 | | 0 | 00/80F9 | *
|
||||
287 | 1 Unidrive4.asm 271 | Comment | 11 | | 0 | 00/80F9 | *** Execute ***
|
||||
288 | 1 Unidrive4.asm 272 | Empty | 11 | | 0 | 00/80F9 | ozunid_17
|
||||
289 | 1 Unidrive4.asm 272 | Equivalence | 11 | | 0 | 00/80F9 | CNTL_LIST2 equ ozunid_17
|
||||
290 | 1 Unidrive4.asm 273 | Data | 11 | | 1 | 00/80F9 : 06 | Clow_byte dfb $06
|
||||
291 | 1 Unidrive4.asm 274 | Data | 11 | | 1 | 00/80FA : 00 | Chigh_byte dfb $00
|
||||
292 | 1 Unidrive4.asm 275 | Data | 11 | | 1 | 00/80FB : 00 | AccValue dfb $00 ; Input Value
|
||||
293 | 1 Unidrive4.asm 276 | Data | 11 | | 1 | 00/80FC : 00 | X_reg dfb $00 ; Input Value (N1)
|
||||
294 | 1 Unidrive4.asm 277 | Data | 11 | | 1 | 00/80FD : 00 | Y_reg dfb $00 ; Input Value (N2)
|
||||
295 | 1 Unidrive4.asm 278 | Data | 11 | | 1 | 00/80FE : 00 | ProStatus dfb $00 ; Input Value
|
||||
296 | 1 Unidrive4.asm 279 | Data | 11 | | 1 | 00/80FF : 05 | LowPC_reg dfb $05 ; Like ORG
|
||||
297 | 1 Unidrive4.asm 280 | Data | 11 | | 1 | 00/8100 : 05 | HighPC_reg dfb $05
|
||||
298 | 1 Unidrive4.asm 281 | Comment | 11 | | 0 | 00/8101 | *
|
||||
299 | 1 Unidrive4.asm 282 | Comment | 11 | | 0 | 00/8101 | *** Set Address ***
|
||||
300 | 1 Unidrive4.asm 283 | Empty | 11 | | 0 | 00/8101 | ozunid_18
|
||||
301 | 1 Unidrive4.asm 283 | Equivalence | 11 | | 0 | 00/8101 | CNTL_LIST3 equ ozunid_18
|
||||
302 | 1 Unidrive4.asm 284 | Data | 11 | | 1 | 00/8101 : 02 | CountL_byte dfb $02
|
||||
303 | 1 Unidrive4.asm 285 | Data | 11 | | 1 | 00/8102 : 00 | CountH_byte dfb $00
|
||||
304 | 1 Unidrive4.asm 286 | Data | 11 | | 1 | 00/8103 : 00 | LByte_Addr dfb $00 ; ORG of Unidisk program
|
||||
305 | 1 Unidrive4.asm 287 | Data | 11 | | 1 | 00/8104 : 05 | HByte_Addr dfb $05
|
||||
306 | 1 Unidrive4.asm 288 | Comment | 11 | | 0 | 00/8105 | *
|
||||
307 | 1 Unidrive4.asm 289 | Comment | 11 | | 0 | 00/8105 | *** Download ***
|
||||
308 | 1 Unidrive4.asm 290 | Empty | 11 | | 0 | 00/8105 | ozunid_19
|
||||
309 | 1 Unidrive4.asm 290 | Equivalence | 11 | | 0 | 00/8105 | CNTL_LIST4 equ ozunid_19
|
||||
310 | 1 Unidrive4.asm 291 | Data | 11 | | 1 | 00/8105 : 38 | LenghtL_byte dfb $38 ;<----- Lenght of Unidisk program Lo - Byte 312 byte
|
||||
311 | 1 Unidrive4.asm 292 | Data | 11 | | 1 | 00/8106 : 01 | LenghtH_byte dfb $01 ;<----- Lenght of Unidisk program Hi Byte
|
||||
312 | 1 Unidrive4.asm 293 | Comment | 11 | | 0 | 00/8107 | *
|
||||
313 | 1 Unidrive4.asm 294 | Comment | 11 | | 0 | 00/8107 | *** Start UNIDISK Program ***
|
||||
314 | 1 Unidrive4.asm 295 | Directive | 11 | | 0 | 00/8107 | org $0500
|
||||
315 | 1 Unidrive4.asm 296 | Empty | 11 | | 0 | 00/0500 |
|
||||
316 | 1 Unidrive4.asm 297 | Equivalence | 11 | | 0 | 00/0500 | SIGN EQU $C0 ;$EB ; $F3
|
||||
317 | 1 Unidrive4.asm 298 | Empty | 11 | | 0 | 00/0500 |
|
||||
318 | 1 Unidrive4.asm 299 | Comment | 11 | | 0 | 00/0500 | ** FP2 4 Bytes **
|
||||
319 | 1 Unidrive4.asm 300 | Equivalence | 11 | | 0 | 00/0500 | X2 EQU $C1 ;$EC ; $F4
|
||||
320 | 1 Unidrive4.asm 301 | Equivalence | 11 | | 0 | 00/0500 | M2 EQU $C2 ;$ED ; $F5 - $F7
|
||||
321 | 1 Unidrive4.asm 302 | Empty | 11 | | 0 | 00/0500 |
|
||||
322 | 1 Unidrive4.asm 303 | Comment | 11 | | 0 | 00/0500 | ** FP1 4 Bytes + E extension **
|
||||
323 | 1 Unidrive4.asm 304 | Equivalence | 11 | | 0 | 00/0500 | X1 EQU $C5 ;$FA ; $F8
|
||||
324 | 1 Unidrive4.asm 305 | Equivalence | 11 | | 0 | 00/0500 | M1 EQU $C6 ;$FB ; $F9 - $FB
|
||||
325 | 1 Unidrive4.asm 306 | Equivalence | 11 | | 0 | 00/0500 | E EQU $C9 ;$FE ; $FC
|
||||
326 | 1 Unidrive4.asm 307 | Empty | 11 | | 0 | 00/0500 |
|
||||
327 | 1 Unidrive4.asm 308 | Equivalence | 11 | | 0 | 00/0500 | OVLOC EQU $C10 ;$3F5 ;Overflow routine is not implemented at now)
|
||||
328 | 1 Unidrive4.asm 309 | Comment | 11 | | 0 | 00/0500 | *
|
||||
329 | 1 Unidrive4.asm 310 | Comment | 11 | | 0 | 00/0500 | ** Main program **
|
||||
330 | 1 Unidrive4.asm 311 | Comment | 11 | | 0 | 00/0500 | *
|
||||
331 | 1 Unidrive4.asm 312 | Comment | 11 | | 0 | 00/0500 | * CHK if is the second execution *
|
||||
332 | 1 Unidrive4.asm 313 | Empty | 11 | | 0 | 00/0500 |
|
||||
333 | 1 Unidrive4.asm 314 | Code | 11 | | 2 | 00/0500 : C9 02 | cmp #02
|
||||
334 | 1 Unidrive4.asm 315 | Code | 11 | | 2 | 00/0502 : F0 32 | beq SECOND
|
||||
335 | 1 Unidrive4.asm 316 | Empty | 11 | | 0 | 00/0504 |
|
||||
336 | 1 Unidrive4.asm 317 | Comment | 11 | | 0 | 00/0504 | ** Input data to Zero Page **
|
||||
337 | 1 Unidrive4.asm 318 | Empty | 11 | | 0 | 00/0504 |
|
||||
338 | 1 Unidrive4.asm 319 | Comment | 11 | | 0 | 00/0504 | ** FP1 **
|
||||
339 | 1 Unidrive4.asm 320 | Code | 11 | | 3 | 00/0504 : AD 31 06 | lda FP1
|
||||
340 | 1 Unidrive4.asm 321 | Code | 11 | | 2 | 00/0507 : 85 C5 | sta {$C5}
|
||||
341 | 1 Unidrive4.asm 322 | Empty | 11 | | 0 | 00/0509 |
|
||||
342 | 1 Unidrive4.asm 323 | Code | 11 | | 3 | 00/0509 : AD 32 06 | lda FP1+1
|
||||
343 | 1 Unidrive4.asm 324 | Code | 11 | | 2 | 00/050C : 85 C6 | sta {$C6}
|
||||
344 | 1 Unidrive4.asm 325 | Code | 11 | | 3 | 00/050E : AD 33 06 | lda FP1+2
|
||||
345 | 1 Unidrive4.asm 326 | Code | 11 | | 2 | 00/0511 : 85 C7 | sta {$C6}+1
|
||||
346 | 1 Unidrive4.asm 327 | Code | 11 | | 3 | 00/0513 : AD 34 06 | lda FP1+3
|
||||
347 | 1 Unidrive4.asm 328 | Code | 11 | | 2 | 00/0516 : 85 C8 | sta {$C6}+2
|
||||
348 | 1 Unidrive4.asm 329 | Empty | 11 | | 0 | 00/0518 |
|
||||
349 | 1 Unidrive4.asm 330 | Comment | 11 | | 0 | 00/0518 | ** FP2 **
|
||||
350 | 1 Unidrive4.asm 331 | Code | 11 | | 3 | 00/0518 : AD 35 06 | lda FP2
|
||||
351 | 1 Unidrive4.asm 332 | Code | 11 | | 2 | 00/051B : 85 C1 | sta {$C1}
|
||||
352 | 1 Unidrive4.asm 333 | Empty | 11 | | 0 | 00/051D |
|
||||
353 | 1 Unidrive4.asm 334 | Code | 11 | | 3 | 00/051D : AD 36 06 | lda FP2+1
|
||||
354 | 1 Unidrive4.asm 335 | Code | 11 | | 2 | 00/0520 : 85 C2 | sta {$C2}
|
||||
355 | 1 Unidrive4.asm 336 | Code | 11 | | 3 | 00/0522 : AD 37 06 | lda FP2+2
|
||||
356 | 1 Unidrive4.asm 337 | Code | 11 | | 2 | 00/0525 : 85 C3 | sta {$C2}+1
|
||||
357 | 1 Unidrive4.asm 338 | Code | 11 | | 3 | 00/0527 : AD 38 06 | lda FP2+3
|
||||
358 | 1 Unidrive4.asm 339 | Code | 11 | | 2 | 00/052A : 85 C4 | sta {$C2}+2
|
||||
359 | 1 Unidrive4.asm 340 | Empty | 11 | | 0 | 00/052C |
|
||||
360 | 1 Unidrive4.asm 341 | Comment | 11 | | 0 | 00/052C | *** Target Function ***
|
||||
361 | 1 Unidrive4.asm 342 | Comment | 11 | | 0 | 00/052C | * Y=N1+N2
|
||||
362 | 1 Unidrive4.asm 343 | Empty | 11 | | 0 | 00/052C |
|
||||
363 | 1 Unidrive4.asm 344 | Comment | 11 | | 0 | 00/052C | ** Simple ADD **
|
||||
364 | 1 Unidrive4.asm 345 | Code | 11 | | 3 | 00/052C : 20 82 05 | jsr FADD
|
||||
365 | 1 Unidrive4.asm 346 | Empty | 11 | | 0 | 00/052F |
|
||||
366 | 1 Unidrive4.asm 347 | Comment | 11 | | 0 | 00/052F | *** Output Data result FP1 to Unidisk registers First Time first 3 Byte***
|
||||
367 | 1 Unidrive4.asm 348 | Code | 11 | | 2 | 00/052F : A5 C5 | lda {$C5}
|
||||
368 | 1 Unidrive4.asm 349 | Code | 11 | | 2 | 00/0531 : A6 C6 | ldx {$C6}
|
||||
369 | 1 Unidrive4.asm 350 | Code | 11 | | 2 | 00/0533 : A4 C7 | ldy {$C6}+1
|
||||
370 | 1 Unidrive4.asm 351 | Empty | 11 | | 0 | 00/0535 |
|
||||
371 | 1 Unidrive4.asm 352 | Code | 11 | | 1 | 00/0535 : 60 | rts
|
||||
372 | 1 Unidrive4.asm 353 | Comment | 11 | | 0 | 00/0536 | *** Output Data result FP1 to Unidisk registers Second Time latest 1 Byte***
|
||||
373 | 1 Unidrive4.asm 354 | Code | 11 | | 2 | 00/0536 : A5 C8 | SECOND lda {$C6}+2
|
||||
374 | 1 Unidrive4.asm 355 | Empty | 11 | | 0 | 00/0538 |
|
||||
375 | 1 Unidrive4.asm 356 | Code | 11 | | 1 | 00/0538 : 60 | rts
|
||||
376 | 1 Unidrive4.asm 357 | Empty | 11 | | 0 | 00/0539 |
|
||||
377 | 1 Unidrive4.asm 358 | Comment | 11 | | 0 | 00/0539 | ** FP Routine **
|
||||
378 | 1 Unidrive4.asm 359 | Comment | 11 | | 0 | 00/0539 | *
|
||||
379 | 1 Unidrive4.asm 360 | Comment | 11 | | 0 | 00/0539 | ***********************
|
||||
380 | 1 Unidrive4.asm 361 | Comment | 11 | | 0 | 00/0539 | * *
|
||||
381 | 1 Unidrive4.asm 362 | Comment | 11 | | 0 | 00/0539 | * APPLE-II FLOATING *
|
||||
382 | 1 Unidrive4.asm 363 | Comment | 11 | | 0 | 00/0539 | * POINT ROUTINES *
|
||||
383 | 1 Unidrive4.asm 364 | Comment | 11 | | 0 | 00/0539 | * *
|
||||
384 | 1 Unidrive4.asm 365 | Comment | 11 | | 0 | 00/0539 | * COPYRIGHT 1977 BY *
|
||||
385 | 1 Unidrive4.asm 366 | Comment | 11 | | 0 | 00/0539 | * APPLE COMPUTER INC. *
|
||||
386 | 1 Unidrive4.asm 367 | Comment | 11 | | 0 | 00/0539 | * *
|
||||
387 | 1 Unidrive4.asm 368 | Comment | 11 | | 0 | 00/0539 | * ALL RIGHTS RESERVED *
|
||||
388 | 1 Unidrive4.asm 369 | Comment | 11 | | 0 | 00/0539 | * *
|
||||
389 | 1 Unidrive4.asm 370 | Comment | 11 | | 0 | 00/0539 | * S. WOZNIAK *
|
||||
390 | 1 Unidrive4.asm 371 | Comment | 11 | | 0 | 00/0539 | * *
|
||||
391 | 1 Unidrive4.asm 372 | Comment | 11 | | 0 | 00/0539 | ***********************
|
||||
392 | 1 Unidrive4.asm 373 | Comment | 11 | | 0 | 00/0539 | * TITLE "FLOATING POINT ROUTINES for Unidisk memory"
|
||||
393 | 1 Unidrive4.asm 374 | Comment | 11 | | 0 | 00/0539 | *
|
||||
394 | 1 Unidrive4.asm 375 | Empty | 11 | | 0 | 00/0539 |
|
||||
395 | 1 Unidrive4.asm 376 | Comment | 11 | | 0 | 00/0539 | * ORG $300
|
||||
396 | 1 Unidrive4.asm 377 | Empty | 11 | | 0 | 00/0539 |
|
||||
397 | 1 Unidrive4.asm 378 | Code | 11 | | 1 | 00/0539 : 18 | ADD CLC ;CLEAR CARRY
|
||||
398 | 1 Unidrive4.asm 379 | Code | 11 | | 2 | 00/053A : A2 02 | LDX #$2 ;INDEX FOR 3-BYTE ADD.
|
||||
399 | 1 Unidrive4.asm 380 | Code | 11 | | 2 | 00/053C : B5 C6 | ADD1 LDA {$C6},X
|
||||
400 | 1 Unidrive4.asm 381 | Code | 11 | | 2 | 00/053E : 75 C2 | ADC {$C2},X ;ADD A BYTE OF MANT2 TO MANT1
|
||||
401 | 1 Unidrive4.asm 382 | Code | 11 | | 2 | 00/0540 : 95 C6 | STA {$C6},X
|
||||
402 | 1 Unidrive4.asm 383 | Code | 11 | | 1 | 00/0542 : CA | DEX ;INDEX TO NEXT MORE SIGNIF. BYTE.
|
||||
403 | 1 Unidrive4.asm 384 | Code | 11 | | 2 | 00/0543 : 10 F7 | BPL ADD1 ;LOOP UNTIL DONE.
|
||||
404 | 1 Unidrive4.asm 385 | Code | 11 | | 1 | 00/0545 : 60 | RTS ;RETURN
|
||||
405 | 1 Unidrive4.asm 386 | Code | 11 | | 2 | 00/0546 : 06 C0 | MD1 ASL {$C0} ;CLEAR LSB OF SIGN.
|
||||
406 | 1 Unidrive4.asm 387 | Code | 11 | | 3 | 00/0548 : 20 4B 05 | JSR ABSWAP ;ABS VAL OF M1, THEN SWAP WITH M2
|
||||
407 | 1 Unidrive4.asm 388 | Code | 11 | | 2 | 00/054B : 24 C6 | ABSWAP BIT {$C6} ;MANT1 NEGATIVE?
|
||||
408 | 1 Unidrive4.asm 389 | Code | 11 | | 2 | 00/054D : 10 05 | BPL ABSWAP1 ;NO, SWAP WITH MANT2 AND RETURN.
|
||||
409 | 1 Unidrive4.asm 390 | Code | 11 | | 3 | 00/054F : 20 B8 05 | JSR FCOMPL ;YES, COMPLEMENT IT.
|
||||
410 | 1 Unidrive4.asm 391 | Code | 11 | | 2 | 00/0552 : E6 C0 | INC {$C0} ;INCR SIGN, COMPLEMENTING LSB.
|
||||
411 | 1 Unidrive4.asm 392 | Code | 11 | | 1 | 00/0554 : 38 | ABSWAP1 SEC ;SET CARRY FOR RETURN TO MUL/DIV.
|
||||
412 | 1 Unidrive4.asm 393 | Code | 11 | | 2 | 00/0555 : A2 04 | SWAP LDX #$4 ;INDEX FOR 4 BYTE SWAP.
|
||||
413 | 1 Unidrive4.asm 394 | Code | 11 | | 2 | 00/0557 : 94 C8 | SWAP1 STY {$C9}-1,X
|
||||
414 | 1 Unidrive4.asm 395 | Code | 11 | | 2 | 00/0559 : B5 C4 | LDA {$C5}-1,X ;SWAP A BYTE OF EXP/MANT1 WITH
|
||||
415 | 1 Unidrive4.asm 396 | Code | 11 | | 2 | 00/055B : B4 C0 | LDY {$C1}-1,X ;EXP/MANT2 AND LEAVE A COPY OF
|
||||
416 | 1 Unidrive4.asm 397 | Code | 11 | | 2 | 00/055D : 94 C4 | STY {$C5}-1,X ;MANT1 IN E (3 BYTES). E+3 USED
|
||||
417 | 1 Unidrive4.asm 398 | Code | 11 | | 2 | 00/055F : 95 C0 | STA {$C1}-1,X
|
||||
418 | 1 Unidrive4.asm 399 | Code | 11 | | 1 | 00/0561 : CA | DEX ;ADVANCE INDEX TO NEXT BYTE
|
||||
419 | 1 Unidrive4.asm 400 | Code | 11 | | 2 | 00/0562 : D0 F3 | BNE SWAP1 ;LOOP UNTIL DONE.
|
||||
420 | 1 Unidrive4.asm 401 | Code | 11 | | 1 | 00/0564 : 60 | RTS ;RETURN
|
||||
421 | 1 Unidrive4.asm 402 | Code | 11 | | 2 | 00/0565 : A9 8E | FLOAT LDA #$8E ;INIT EXP1 TO 14, <--------------- int to fp
|
||||
422 | 1 Unidrive4.asm 403 | Code | 11 | | 2 | 00/0567 : 85 C5 | STA {$C5} ;THEN NORMALIZE TO FLOAT.
|
||||
423 | 1 Unidrive4.asm 404 | Code | 11 | | 2 | 00/0569 : A5 C6 | NORM1 LDA {$C6} ;HIGH-ORDER MANT1 BYTE.
|
||||
424 | 1 Unidrive4.asm 405 | Code | 11 | | 2 | 00/056B : C9 C0 | CMP #$C0 ;UPPER TWO BITS UNEQUAL?
|
||||
425 | 1 Unidrive4.asm 406 | Code | 11 | | 2 | 00/056D : 30 0C | BMI RTS1 ;YES, RETURN WITH MANT1 NORMALIZED
|
||||
426 | 1 Unidrive4.asm 407 | Code | 11 | | 2 | 00/056F : C6 C5 | DEC {$C5} ;DECREMENT EXP1.
|
||||
427 | 1 Unidrive4.asm 408 | Code | 11 | | 2 | 00/0571 : 06 C8 | ASL {$C6}+2
|
||||
428 | 1 Unidrive4.asm 409 | Code | 11 | | 2 | 00/0573 : 26 C7 | ROL {$C6}+1 ;SHIFT MANT1 (3 BYTES) LEFT.
|
||||
429 | 1 Unidrive4.asm 410 | Code | 11 | | 2 | 00/0575 : 26 C6 | ROL {$C6}
|
||||
430 | 1 Unidrive4.asm 411 | Code | 11 | | 2 | 00/0577 : A5 C5 | NORM LDA {$C5} ;EXP1 ZERO?
|
||||
431 | 1 Unidrive4.asm 412 | Code | 11 | | 2 | 00/0579 : D0 EE | BNE NORM1 ;NO, CONTINUE NORMALIZING.
|
||||
432 | 1 Unidrive4.asm 413 | Code | 11 | | 1 | 00/057B : 60 | RTS1 RTS ;RETURN.
|
||||
433 | 1 Unidrive4.asm 414 | Code | 11 | | 3 | 00/057C : 20 B8 05 | FSUB JSR FCOMPL ;CMPL MANT1,CLEARS CARRY UNLESS 0 <---- sub
|
||||
434 | 1 Unidrive4.asm 415 | Code | 11 | | 3 | 00/057F : 20 8F 05 | SWPALGN JSR ALGNSWP ;RIGHT SHIFT MANT1 OR SWAP WITH
|
||||
435 | 1 Unidrive4.asm 416 | Code | 11 | | 2 | 00/0582 : A5 C1 | FADD LDA {$C1} ;<------------------------------------- add
|
||||
436 | 1 Unidrive4.asm 417 | Code | 11 | | 2 | 00/0584 : C5 C5 | CMP {$C5} ;COMPARE EXP1 WITH EXP2.
|
||||
437 | 1 Unidrive4.asm 418 | Code | 11 | | 2 | 00/0586 : D0 F7 | BNE SWPALGN ;IF #,SWAP ADDENDS OR ALIGN MANTS.
|
||||
438 | 1 Unidrive4.asm 419 | Code | 11 | | 3 | 00/0588 : 20 39 05 | JSR ADD ;ADD ALIGNED MANTISSAS.
|
||||
439 | 1 Unidrive4.asm 420 | Code | 11 | | 2 | 00/058B : 50 EA | ADDEND BVC NORM ;NO OVERFLOW, NORMALIZE RESULT.
|
||||
440 | 1 Unidrive4.asm 421 | Code | 11 | | 2 | 00/058D : 70 05 | BVS RTLOG ;OV: SHIFT M1 RIGHT, CARRY INTO SIGN
|
||||
441 | 1 Unidrive4.asm 422 | Code | 11 | | 2 | 00/058F : 90 C4 | ALGNSWP BCC SWAP ;SWAP IF CARRY CLEAR,
|
||||
442 | 1 Unidrive4.asm 423 | Comment | 11 | | 0 | 00/0591 | * ELSE SHIFT RIGHT ARITH.
|
||||
443 | 1 Unidrive4.asm 424 | Code | 11 | | 2 | 00/0591 : A5 C6 | RTAR LDA {$C6} ;SIGN OF MANT1 INTO CARRY FOR
|
||||
444 | 1 Unidrive4.asm 425 | Code | 11 | | 1 | 00/0593 : 0A | ASL ;RIGHT ARITH SHIFT.
|
||||
445 | 1 Unidrive4.asm 426 | Code | 11 | | 2 | 00/0594 : E6 C5 | RTLOG INC {$C5} ;INCR X1 TO ADJUST FOR RIGHT SHIFT
|
||||
446 | 1 Unidrive4.asm 427 | Code | 11 | | 2 | 00/0596 : F0 75 | BEQ OVFL ;EXP1 OUT OF RANGE.
|
||||
447 | 1 Unidrive4.asm 428 | Code | 11 | | 2 | 00/0598 : A2 FA | RTLOG1 LDX #$FA ;INDEX FOR 6:BYTE RIGHT SHIFT.
|
||||
448 | 1 Unidrive4.asm 429 | Code | 11 | | 2 | 00/059A : 76 CC | ROR1 ROR {$C9}+3,X
|
||||
449 | 1 Unidrive4.asm 430 | Code | 11 | | 1 | 00/059C : E8 | INX ;NEXT BYTE OF SHIFT.
|
||||
450 | 1 Unidrive4.asm 431 | Code | 11 | | 2 | 00/059D : D0 FB | BNE ROR1 ;LOOP UNTIL DONE.
|
||||
451 | 1 Unidrive4.asm 432 | Code | 11 | | 1 | 00/059F : 60 | RTS ;RETURN.
|
||||
452 | 1 Unidrive4.asm 433 | Code | 11 | | 3 | 00/05A0 : 20 46 05 | FMUL JSR MD1 ;ABS VAL OF MANT1, MANT2 <-------------- mul
|
||||
453 | 1 Unidrive4.asm 434 | Code | 11 | | 2 | 00/05A3 : 65 C5 | ADC {$C5} ;ADD EXP1 TO EXP2 FOR PRODUCT EXP
|
||||
454 | 1 Unidrive4.asm 435 | Code | 11 | | 3 | 00/05A5 : 20 F6 05 | JSR MD2 ;CHECK PROD. EXP AND PREP. FOR MUL
|
||||
455 | 1 Unidrive4.asm 436 | Code | 11 | | 1 | 00/05A8 : 18 | CLC ;CLEAR CARRY FOR FIRST BIT.
|
||||
456 | 1 Unidrive4.asm 437 | Code | 11 | | 3 | 00/05A9 : 20 98 05 | MUL1 JSR RTLOG1 ;M1 AND E RIGHT (PROD AND MPLIER)
|
||||
457 | 1 Unidrive4.asm 438 | Code | 11 | | 2 | 00/05AC : 90 03 | BCC MUL2 ;IF CARRY CLEAR, SKIP PARTIAL PROD
|
||||
458 | 1 Unidrive4.asm 439 | Code | 11 | | 3 | 00/05AE : 20 39 05 | JSR ADD ;ADD MULTIPLICAND TO PRODUCT.
|
||||
459 | 1 Unidrive4.asm 440 | Code | 11 | | 1 | 00/05B1 : 88 | MUL2 DEY ;NEXT MUL ITERATION.
|
||||
460 | 1 Unidrive4.asm 441 | Code | 11 | | 2 | 00/05B2 : 10 F5 | BPL MUL1 ;LOOP UNTIL DONE.
|
||||
461 | 1 Unidrive4.asm 442 | Code | 11 | | 2 | 00/05B4 : 46 C0 | MDEND LSR {$C0} ;TEST SIGN LSB.
|
||||
462 | 1 Unidrive4.asm 443 | Code | 11 | | 2 | 00/05B6 : 90 BF | NORMX BCC NORM ;IF EVEN,NORMALIZE PROD,ELSE COMP
|
||||
463 | 1 Unidrive4.asm 444 | Code | 11 | | 1 | 00/05B8 : 38 | FCOMPL SEC ;SET CARRY FOR SUBTRACT. <--------------- not
|
||||
464 | 1 Unidrive4.asm 445 | Code | 11 | | 2 | 00/05B9 : A2 03 | LDX #$3 ;INDEX FOR 3 BYTE SUBTRACT.
|
||||
465 | 1 Unidrive4.asm 446 | Code | 11 | | 2 | 00/05BB : A9 00 | COMPL1 LDA #$0 ;CLEAR A.
|
||||
466 | 1 Unidrive4.asm 447 | Code | 11 | | 2 | 00/05BD : F5 C5 | SBC {$C5},X ;SUBTRACT BYTE OF EXP1.
|
||||
467 | 1 Unidrive4.asm 448 | Code | 11 | | 2 | 00/05BF : 95 C5 | STA {$C5},X ;RESTORE IT.
|
||||
468 | 1 Unidrive4.asm 449 | Code | 11 | | 1 | 00/05C1 : CA | DEX ;NEXT MORE SIGNIFICANT BYTE.
|
||||
469 | 1 Unidrive4.asm 450 | Code | 11 | | 2 | 00/05C2 : D0 F7 | BNE COMPL1 ;LOOP UNTIL DONE.
|
||||
470 | 1 Unidrive4.asm 451 | Code | 11 | | 2 | 00/05C4 : F0 C5 | BEQ ADDEND ;NORMALIZE (OR SHIFT RT IF OVFL).
|
||||
471 | 1 Unidrive4.asm 452 | Code | 11 | | 3 | 00/05C6 : 20 46 05 | FDIV JSR MD1 ;TAKE ABS VAL OF MANT1, MANT2. <--------- div
|
||||
472 | 1 Unidrive4.asm 453 | Code | 11 | | 2 | 00/05C9 : E5 C5 | SBC {$C5} ;SUBTRACT EXP1 FROM EXP2.
|
||||
473 | 1 Unidrive4.asm 454 | Code | 11 | | 3 | 00/05CB : 20 F6 05 | JSR MD2 ;SAVE AS QUOTIENT EXP.
|
||||
474 | 1 Unidrive4.asm 455 | Code | 11 | | 1 | 00/05CE : 38 | DIV1 SEC ;SET CARRY FOR SUBTRACT.
|
||||
475 | 1 Unidrive4.asm 456 | Code | 11 | | 2 | 00/05CF : A2 02 | LDX #$2 ;INDEX FOR 3-BYTE SUBTRACTION.
|
||||
476 | 1 Unidrive4.asm 457 | Code | 11 | | 2 | 00/05D1 : B5 C2 | DIV2 LDA {$C2},X
|
||||
477 | 1 Unidrive4.asm 458 | Code | 11 | | 2 | 00/05D3 : F5 C9 | SBC {$C9},X ;SUBTRACT A BYTE OF E FROM MANT2.
|
||||
478 | 1 Unidrive4.asm 459 | Code | 11 | | 1 | 00/05D5 : 48 | PHA ;SAVE ON STACK.
|
||||
479 | 1 Unidrive4.asm 460 | Code | 11 | | 1 | 00/05D6 : CA | DEX ;NEXT MORE SIGNIFICANT BYTE.
|
||||
480 | 1 Unidrive4.asm 461 | Code | 11 | | 2 | 00/05D7 : 10 F8 | BPL DIV2 ;LOOP UNTIL DONE.
|
||||
481 | 1 Unidrive4.asm 462 | Code | 11 | | 2 | 00/05D9 : A2 FD | LDX #$FD ;INDEX FOR 3-BYTE CONDITIONAL MOVE
|
||||
482 | 1 Unidrive4.asm 463 | Code | 11 | | 1 | 00/05DB : 68 | DIV3 PLA ;PULL BYTE OF DIFFERENCE OFF STACK
|
||||
483 | 1 Unidrive4.asm 464 | Code | 11 | | 2 | 00/05DC : 90 02 | BCC DIV4 ;IF M2<E THEN DON'T RESTORE M2.
|
||||
484 | 1 Unidrive4.asm 465 | Code | 11 | | 2 | 00/05DE : 95 C5 | STA {$C2}+3,X
|
||||
485 | 1 Unidrive4.asm 466 | Code | 11 | | 1 | 00/05E0 : E8 | DIV4 INX ;NEXT LESS SIGNIFICANT BYTE.
|
||||
486 | 1 Unidrive4.asm 467 | Code | 11 | | 2 | 00/05E1 : D0 F8 | BNE DIV3 ;LOOP UNTIL DONE.
|
||||
487 | 1 Unidrive4.asm 468 | Code | 11 | | 2 | 00/05E3 : 26 C8 | ROL {$C6}+2
|
||||
488 | 1 Unidrive4.asm 469 | Code | 11 | | 2 | 00/05E5 : 26 C7 | ROL {$C6}+1 ;ROLL QUOTIENT LEFT, CARRY INTO LSB
|
||||
489 | 1 Unidrive4.asm 470 | Code | 11 | | 2 | 00/05E7 : 26 C6 | ROL {$C6}
|
||||
490 | 1 Unidrive4.asm 471 | Code | 11 | | 2 | 00/05E9 : 06 C4 | ASL {$C2}+2
|
||||
491 | 1 Unidrive4.asm 472 | Code | 11 | | 2 | 00/05EB : 26 C3 | ROL {$C2}+1 ;SHIFT DIVIDEND LEFT
|
||||
492 | 1 Unidrive4.asm 473 | Code | 11 | | 2 | 00/05ED : 26 C2 | ROL {$C2}
|
||||
493 | 1 Unidrive4.asm 474 | Code | 11 | | 2 | 00/05EF : B0 1C | BCS OVFL ;OVFL IS DUE TO UNNORMED DIVISOR
|
||||
494 | 1 Unidrive4.asm 475 | Code | 11 | | 1 | 00/05F1 : 88 | DEY ;NEXT DIVIDE ITERATION.
|
||||
495 | 1 Unidrive4.asm 476 | Code | 11 | | 2 | 00/05F2 : D0 DA | BNE DIV1 ;LOOP UNTIL DONE 23 ITERATIONS.
|
||||
496 | 1 Unidrive4.asm 477 | Code | 11 | | 2 | 00/05F4 : F0 BE | BEQ MDEND ;NORM. QUOTIENT AND CORRECT SIGN.
|
||||
497 | 1 Unidrive4.asm 478 | Code | 11 | | 2 | 00/05F6 : 86 C8 | MD2 STX {$C6}+2
|
||||
498 | 1 Unidrive4.asm 479 | Code | 11 | | 2 | 00/05F8 : 86 C7 | STX {$C6}+1 ;CLEAR MANT1 (3 BYTES) FOR MUL/DIV.
|
||||
499 | 1 Unidrive4.asm 480 | Code | 11 | | 2 | 00/05FA : 86 C6 | STX {$C6}
|
||||
500 | 1 Unidrive4.asm 481 | Code | 11 | | 2 | 00/05FC : B0 0D | BCS OVCHK ;IF CALC. SET CARRY,CHECK FOR OVFL
|
||||
501 | 1 Unidrive4.asm 482 | Code | 11 | | 2 | 00/05FE : 30 04 | BMI MD3 ;IF NEG THEN NO UNDERFLOW.
|
||||
502 | 1 Unidrive4.asm 483 | Code | 11 | | 1 | 00/0600 : 68 | PLA ;POP ONE RETURN LEVEL.
|
||||
503 | 1 Unidrive4.asm 484 | Code | 11 | | 1 | 00/0601 : 68 | PLA
|
||||
504 | 1 Unidrive4.asm 485 | Code | 11 | | 2 | 00/0602 : 90 B2 | BCC NORMX ;CLEAR X1 AND RETURN.
|
||||
505 | 1 Unidrive4.asm 486 | Code | 11 | | 2 | 00/0604 : 49 80 | MD3 EOR #$80 ;COMPLEMENT SIGN BIT OF EXPONENT.
|
||||
506 | 1 Unidrive4.asm 487 | Code | 11 | | 2 | 00/0606 : 85 C5 | STA {$C5} ;STORE IT.
|
||||
507 | 1 Unidrive4.asm 488 | Code | 11 | | 2 | 00/0608 : A0 17 | LDY #$17 ;COUNT 24 MUL/23 DIV ITERATIONS.
|
||||
508 | 1 Unidrive4.asm 489 | Code | 11 | | 1 | 00/060A : 60 | RTS ;RETURN.
|
||||
509 | 1 Unidrive4.asm 490 | Code | 11 | | 2 | 00/060B : 10 F7 | OVCHK BPL MD3 ;IF POSITIVE EXP THEN NO OVFL.
|
||||
510 | 1 Unidrive4.asm 491 | Code | 11 | | 3 | 00/060D : 4C 10 0C | OVFL JMP {$C10}
|
||||
511 | 1 Unidrive4.asm 492 | Comment | 11 | | 0 | 00/0610 | * ORG $F63D
|
||||
512 | 1 Unidrive4.asm 493 | Code | 11 | | 3 | 00/0610 : 20 91 05 | FIX1 JSR RTAR
|
||||
513 | 1 Unidrive4.asm 494 | Code | 11 | | 2 | 00/0613 : A5 C5 | FIX LDA {$C5} ; <------------------------------ fp to int
|
||||
514 | 1 Unidrive4.asm 495 | Code | 11 | | 2 | 00/0615 : 10 13 | BPL UNDFL
|
||||
515 | 1 Unidrive4.asm 496 | Code | 11 | | 2 | 00/0617 : C9 8E | CMP #$8E
|
||||
516 | 1 Unidrive4.asm 497 | Code | 11 | | 2 | 00/0619 : D0 F5 | BNE FIX1
|
||||
517 | 1 Unidrive4.asm 498 | Code | 11 | | 2 | 00/061B : 24 C6 | BIT {$C6}
|
||||
518 | 1 Unidrive4.asm 499 | Code | 11 | | 2 | 00/061D : 10 0A | BPL FIXRTS
|
||||
519 | 1 Unidrive4.asm 500 | Code | 11 | | 2 | 00/061F : A5 C8 | LDA {$C6}+2
|
||||
520 | 1 Unidrive4.asm 501 | Code | 11 | | 2 | 00/0621 : F0 06 | BEQ FIXRTS
|
||||
521 | 1 Unidrive4.asm 502 | Code | 11 | | 2 | 00/0623 : E6 C7 | INC {$C6}+1
|
||||
522 | 1 Unidrive4.asm 503 | Code | 11 | | 2 | 00/0625 : D0 02 | BNE FIXRTS
|
||||
523 | 1 Unidrive4.asm 504 | Code | 11 | | 2 | 00/0627 : E6 C6 | INC {$C6}
|
||||
524 | 1 Unidrive4.asm 505 | Code | 11 | | 1 | 00/0629 : 60 | FIXRTS RTS
|
||||
525 | 1 Unidrive4.asm 506 | Code | 11 | | 2 | 00/062A : A9 00 | UNDFL LDA #$0
|
||||
526 | 1 Unidrive4.asm 507 | Code | 11 | | 2 | 00/062C : 85 C6 | STA {$C6}
|
||||
527 | 1 Unidrive4.asm 508 | Code | 11 | | 2 | 00/062E : 85 C7 | STA {$C6}+1
|
||||
528 | 1 Unidrive4.asm 509 | Code | 11 | | 1 | 00/0630 : 60 | RTS
|
||||
529 | 1 Unidrive4.asm 510 | Comment | 11 | | 0 | 00/0631 | ** Input Dynamic Data append in the end of Unidisk routine **
|
||||
530 | 1 Unidrive4.asm 511 | Data | 11 | | 1 | 00/0631 : 00 | FP1 dfb $00
|
||||
531 | 1 Unidrive4.asm 512 | Data | 11 | | 1 | 00/0632 : 00 | dfb $00
|
||||
532 | 1 Unidrive4.asm 513 | Data | 11 | | 1 | 00/0633 : 00 | dfb $00
|
||||
533 | 1 Unidrive4.asm 514 | Data | 11 | | 1 | 00/0634 : 00 | dfb $00
|
||||
534 | 1 Unidrive4.asm 515 | Comment | 11 | | 0 | 00/0635 | *
|
||||
535 | 1 Unidrive4.asm 516 | Data | 11 | | 1 | 00/0635 : 00 | FP2 dfb $00
|
||||
536 | 1 Unidrive4.asm 517 | Data | 11 | | 1 | 00/0636 : 00 | dfb $00
|
||||
537 | 1 Unidrive4.asm 518 | Data | 11 | | 1 | 00/0637 : 00 | dfb $00
|
||||
538 | 1 Unidrive4.asm 519 | Data | 11 | | 1 | 00/0638 : 00 | dfb $00
|
||||
------+-------------------------+-------------+----+---------+------+-----------------------+-------------------------------------------------------------------
|
Loading…
Reference in New Issue
Block a user