1 | * CC++ PAR MICHEL SAINT-BRIANT
|
---|
2 | * Pour copie de disquettes TO
|
---|
3 |
|
---|
4 | RETOUR EQU $6AF9 (=X% EN BASIC 512)
|
---|
5 | ORIGIN EQU $6ABA (=O% EN BASIC 512)
|
---|
6 | DESTIN EQU $6A6D (=D% EN BASIC 512)
|
---|
7 | PISTE EQU $6AC1 (=P% EN BASIC 512)
|
---|
8 |
|
---|
9 | ORG $8000
|
---|
10 |
|
---|
11 | *VERIFIER DISK-ORIGIN. PROTEGE
|
---|
12 | *un EXEC analyse la disquette dans le
|
---|
13 | *lecteur ORIGIN (O% sous BASIC512) et
|
---|
14 | *retourne dans la variable X% l'état du
|
---|
15 | *lecteur:
|
---|
16 | * X%=0 -> OK=disquette protégée
|
---|
17 | * X%=255 -> disquette non prot.
|
---|
18 | * X%=254 -> lecteur vide.
|
---|
19 |
|
---|
20 | VERPRO PSHS A,B,DP,CC,X,Y,U
|
---|
21 | CLR RETOUR
|
---|
22 | LDA ORIGIN
|
---|
23 | STA >$6049
|
---|
24 | JSR $E09D
|
---|
25 | JSR $E0A7
|
---|
26 | JSR $E452
|
---|
27 | BCS NOPRET
|
---|
28 | LDA 1,X
|
---|
29 | BITA #$04
|
---|
30 | BNE FINVER
|
---|
31 | BRA INCORR
|
---|
32 |
|
---|
33 | *VERIFIER DISK-DESTIN. NON PROTEGE
|
---|
34 | *un EXEC analyse la disquette dans le
|
---|
35 | *lecteur DESTIN (D% sous BASIC512) et
|
---|
36 | *retourne dans la variable X% l'état du
|
---|
37 | *lecteur:
|
---|
38 | * X%=0 -> OK=disq. non protégée
|
---|
39 | * X%=255 -> disquette protégée.
|
---|
40 | * X%=254 -> lecteur vide.
|
---|
41 |
|
---|
42 | VERNON PSHS A,B,DP,CC,X,Y,U
|
---|
43 | CLR RETOUR
|
---|
44 | LDA DESTIN
|
---|
45 | STA >$6049
|
---|
46 | JSR $E09D
|
---|
47 | JSR $E0A7
|
---|
48 | JSR $E452
|
---|
49 | BCS NOPRET
|
---|
50 | LDA 1,X
|
---|
51 | BITA #$04
|
---|
52 | BEQ FINVER
|
---|
53 | INCORR DEC RETOUR
|
---|
54 | FINVER LDA #$40
|
---|
55 | STA 2,X
|
---|
56 | CLR ,X
|
---|
57 | PULS A,B,DP,CC,X,Y,U,PC
|
---|
58 |
|
---|
59 | NOPRET LDA #254
|
---|
60 | STA RETOUR
|
---|
61 | BRA FINVER
|
---|
62 |
|
---|
63 | * COPIE D'UNE PISTE EN ABSOLUE FIDELITE
|
---|
64 | * Lit la piste P% du lecteur O% et
|
---|
65 | * stocke le résultat dans la banque
|
---|
66 | * courante depuis $A200 et restructure
|
---|
67 | * les signaux.
|
---|
68 |
|
---|
69 | AF PSHS A,B,DP,CC,X,Y,U
|
---|
70 | JSR $E09D
|
---|
71 | LDA #2
|
---|
72 | LDB ORIGIN
|
---|
73 | STD <$48
|
---|
74 | LDA PISTE PISTE=P (P%)
|
---|
75 | STA <$4B
|
---|
76 | JSR $E0A7
|
---|
77 | JSR $E452
|
---|
78 | JSR $E341
|
---|
79 | LDB #$1B
|
---|
80 | JSR $E394
|
---|
81 | LDD #$E718
|
---|
82 | TFR A,DP
|
---|
83 | STB <$D0
|
---|
84 | LDA >$6057
|
---|
85 | ORA #4
|
---|
86 | STA <$D2
|
---|
87 | LDX #$A000
|
---|
88 | LDU #$FFFF
|
---|
89 | LDA #0
|
---|
90 | PREPA STU ,X++
|
---|
91 | DECA
|
---|
92 | BNE PREPA
|
---|
93 | LDA #$40
|
---|
94 | ATTL0 BITA <$D1
|
---|
95 | BEQ ATTL0
|
---|
96 | ATTL1 BITA <$D1
|
---|
97 | BNE ATTL1
|
---|
98 | LDA <$D3
|
---|
99 | ATTL3 LDB <$D0
|
---|
100 | BPL ATTL3
|
---|
101 | LDA <$D3
|
---|
102 | ANDB #1
|
---|
103 | STD ,X++
|
---|
104 | LDA <$D1
|
---|
105 | BITA #$40
|
---|
106 | BEQ ATTL3
|
---|
107 | CLR <$D0
|
---|
108 | LDA #$40
|
---|
109 | STA <$D2
|
---|
110 | LDA #$FE
|
---|
111 | STA 1,X
|
---|
112 |
|
---|
113 | * ON MET A 4E LES PREMIERS OCTETS
|
---|
114 |
|
---|
115 | LDY #$A200
|
---|
116 | LDA #$4E
|
---|
117 | PREM1 LDB 1,Y
|
---|
118 | BNE POSE
|
---|
119 | STA ,Y++
|
---|
120 | BRA PREM1
|
---|
121 |
|
---|
122 | * ON POSE DES CODES FE POUR STOPPER
|
---|
123 |
|
---|
124 | POSE LDB #$FE
|
---|
125 | STB 1,X
|
---|
126 | LEAX 1,X
|
---|
127 | STOP LDA ,--X
|
---|
128 | BMI FINLIR
|
---|
129 | BEQ STOP
|
---|
130 | LEAX 1,X
|
---|
131 | STB 7,X
|
---|
132 | STB 9,X
|
---|
133 | STB 11,X
|
---|
134 | STB 13,X
|
---|
135 | STB 15,X
|
---|
136 |
|
---|
137 | * ON RESTITUE LES CODES A1 (+ LES 00) EN
|
---|
138 | * RECTIFIANT LE NOMBRE DE CODES A1 POUR
|
---|
139 | * LES SYNCHROS (3 POUR TO8/8D/9+ ET 2
|
---|
140 | * SEULEMENT POUR LES ATARI ST ET PC720K)
|
---|
141 |
|
---|
142 |
|
---|
143 | REST0 LEAX 1,X
|
---|
144 | REST1 LDA ,--X
|
---|
145 | BMI FINLIR
|
---|
146 | BEQ REST1
|
---|
147 | LEAX 1,X
|
---|
148 | LDA #3 <---- nombre de A1
|
---|
149 | LDU #$A10A
|
---|
150 | REST2 STU ,--X
|
---|
151 | DECA
|
---|
152 | BNE REST2
|
---|
153 | LDU #$0000
|
---|
154 | LDA #$0C
|
---|
155 | REST3 STU ,--X
|
---|
156 | DECA
|
---|
157 | BNE REST3
|
---|
158 | BRA REST0
|
---|
159 |
|
---|
160 | FINLIR PULS A,B,CC,DP,X,Y,U,PC
|
---|
161 |
|
---|
162 | * ON ECRIT LA PISTE RESTRUCTUREE
|
---|
163 | * sur piste P% du lecteur D% depuis la
|
---|
164 | * banque courante ($A200 ...)
|
---|
165 |
|
---|
166 | PSHS A,B,CC,DP,X,Y,U
|
---|
167 | JSR $E09D
|
---|
168 | LDA #$40
|
---|
169 | LDB DESTIN
|
---|
170 | STD <$48
|
---|
171 | LDA PISTE
|
---|
172 | STA <$4B
|
---|
173 | JSR $E004
|
---|
174 | CLR <$48
|
---|
175 | JSR $E0A7
|
---|
176 | JSR $E45A
|
---|
177 | LDB #$18
|
---|
178 | JSR $E394
|
---|
179 | JSR $E341
|
---|
180 | LDA #$E7
|
---|
181 | TFR A,DP
|
---|
182 | ATTI0 LDA <$D3
|
---|
183 | LDA <$D0
|
---|
184 | BPL ATTI0
|
---|
185 | ATTI1 LDA <$D0
|
---|
186 | BPL ATTI1
|
---|
187 | LDD #0
|
---|
188 | STD <$D3
|
---|
189 | LDD #$4004
|
---|
190 | STB <$D0
|
---|
191 | INDEX0 BITA <$D1
|
---|
192 | BEQ INDEX0
|
---|
193 | INDEX1 BITA <$D1
|
---|
194 | BNE INDEX1
|
---|
195 | LDX #$A200
|
---|
196 | ATTE0 LDA <$D3
|
---|
197 | LDA <$D0
|
---|
198 | BPL ATTE0
|
---|
199 | ATTE1 LDA <$D0
|
---|
200 | BPL ATTE1
|
---|
201 | LDD #$4EFF
|
---|
202 | STD <$D3
|
---|
203 | LDB #$04
|
---|
204 | STB <$D0
|
---|
205 | ATTE2 LDB <$D0
|
---|
206 | BPL ATTE2
|
---|
207 | LDD ,X++
|
---|
208 | TSTB
|
---|
209 | BMI FINI
|
---|
210 | BNE DEBSIG DEBUT DE SIGNAL
|
---|
211 | STA <$D3
|
---|
212 | BRA ATTE2
|
---|
213 | DEBSIG STD <$D3
|
---|
214 | ATTE3 LDB <$D0
|
---|
215 | BPL ATTE3
|
---|
216 | LDD ,X++
|
---|
217 | TSTB
|
---|
218 | BMI FINI
|
---|
219 | BEQ FINSIG
|
---|
220 | STA <$D3
|
---|
221 | BRA ATTE3
|
---|
222 | FINSIG LDB #$FF
|
---|
223 | STD <$D3
|
---|
224 | BRA ATTE2
|
---|
225 | FINI STA <$D3
|
---|
226 | ATTE4 LDD <$D0
|
---|
227 | BPL ATTE4
|
---|
228 | LDA ,X++
|
---|
229 | STA <$D3
|
---|
230 | BITB #$40
|
---|
231 | BEQ ATTE4
|
---|
232 | CLR <$D0
|
---|
233 | LDA #$40
|
---|
234 | STA <$D2
|
---|
235 | PULS A,B,DP,CC,X,Y,U,PC
|
---|
236 |
|
---|
237 | * COPIE D'UNE PISTE EN FIDELITE NORMALE
|
---|
238 | * copie du type BACKUP sans formatage.
|
---|
239 | * depuis lecteur O% vers lecteur D% pour
|
---|
240 | * la piste P% ;en retour on peut lire X%
|
---|
241 | * X%=0 Tout est OK
|
---|
242 | * X%=255 Lecture impossible
|
---|
243 | * X%=254 Ecriture impossible
|
---|
244 |
|
---|
245 | FN PSHS A,B,DP,CC,X,Y,U
|
---|
246 | CLR RETOUR
|
---|
247 | LDA #$60
|
---|
248 | TFR A,DP
|
---|
249 | LDA ORIGIN
|
---|
250 | STA <$49
|
---|
251 | LDA PISTE
|
---|
252 | STA <$4B
|
---|
253 | LDX #$A000
|
---|
254 | STX <$4F
|
---|
255 | C1010 LDA #1
|
---|
256 | STA <$4C
|
---|
257 | C1020 LDA #2 <-nbre de tentati-
|
---|
258 | STA FOIS \ves de lecture.
|
---|
259 | C1030 LDA #2
|
---|
260 | STA <$48
|
---|
261 | JSR $E004
|
---|
262 | BCC C1040
|
---|
263 | DEC FOIS
|
---|
264 | BNE C1030
|
---|
265 | COM RETOUR
|
---|
266 | BRA FINFN
|
---|
267 | C1040 INC <$4F
|
---|
268 | LDA <$4C
|
---|
269 | ADDA #5 <-un facteur de 5
|
---|
270 | CMPA #16 \pour un entre-
|
---|
271 | BLS C1050 lacement de 7.
|
---|
272 | SUBA #16
|
---|
273 | C1050 STA <$4C
|
---|
274 | CMPA #1
|
---|
275 | BNE C1020
|
---|
276 | LDA DESTIN
|
---|
277 | STA <$49
|
---|
278 | LDX #$A000
|
---|
279 | STX <$4F
|
---|
280 | C2010 LDA #1
|
---|
281 | STA <$4C
|
---|
282 | C2020 LDA #2 <-nbre de tentati-
|
---|
283 | STA FOIS \ves d'écriture
|
---|
284 | C2030 LDA #8
|
---|
285 | STA <$48
|
---|
286 | JSR $E004
|
---|
287 | BCC C2040
|
---|
288 | DEC FOIS
|
---|
289 | BNE C2030
|
---|
290 | LDA #254
|
---|
291 | STA RETOUR
|
---|
292 | BRA FINFN
|
---|
293 | C2040 INC <$4F
|
---|
294 | LDA <$4C
|
---|
295 | ADDA #5 <-facteur de 5
|
---|
296 | CMPA #16
|
---|
297 | BLS C2050
|
---|
298 | SUBA #16
|
---|
299 | C2050 STA <$4C
|
---|
300 | CMPA #1
|
---|
301 | BNE C2020
|
---|
302 | FINFN PULS A,B,DP,CC,X,Y,U,PC
|
---|
303 |
|
---|
304 | FOIS FCB 0
|
---|
305 |
|
---|
306 | END
|
---|