comparison 3rdparty/drivers/sdisk/bootfix.asm @ 207:347828fbd427

Added additional programs that came with SDisk + Bootfix
author boisy
date Mon, 15 Jul 2002 12:28:44 +0000
parents
children
comparison
equal deleted inserted replaced
206:a4bb7f96b6b7 207:347828fbd427
1 ********************************************************************
2 * BootFix - D.P. Johnson boot track fix
3 *
4 * $Id$
5 *
6 * Ed. Comments Who YY/MM/DD
7 * ------------------------------------------------------------------
8 * 4 D.P. Johnson original version
9
10 nam bootfix
11 ttl D.P. Johnson boot track fix
12
13 * Disassembled 02/07/15 07:16:24 by Disasm v1.6 (C) 1988 by RML
14
15 ifp1
16 use defsfile
17 endc
18
19 tylg set Prgrm+Objct
20 atrv set ReEnt+rev
21 rev set $01
22 edition set 4
23
24 mod eom,name,tylg,atrv,start,size
25
26 u0000 rmb 2
27 u0002 rmb 1
28 u0003 rmb 2
29 u0005 rmb 2
30 u0007 rmb 2
31 u0009 rmb 2
32 u000B rmb 2
33 u000D rmb 32
34 u002D rmb 4
35 u0031 rmb 18
36 u0043 rmb 1
37 u0044 rmb 1
38 u0045 rmb 232
39 u012D rmb 512
40 u032D rmb 16
41 u033D rmb 240
42 u042D rmb 24826
43 size equ .
44
45 name fcs /bootfix/
46 fcb edition
47
48 fcc "(c) Copyright 1983 D.P.Johnson"
49
50 start stu <u0000
51 leay u000D,u
52 L0037 lda ,x+
53 cmpa #C$SPAC
54 beq L0037
55 cmpa #PDELIM
56 beq L0046
57 ldb #E$BPNam
58 os9 F$Exit
59 L0046 sta ,y+
60 lda ,x+
61 cmpa #C$CR
62 beq L0052
63 cmpa #C$SPAC
64 bne L0046
65 L0052 lda #PENTIR
66 ldb #C$SPAC
67 std ,y
68 leax u000D,u
69 lda #UPDAT.
70 os9 I$Open
71 bcc L0064
72 L0061 os9 F$Exit
73 L0064 sta <u0002
74 leax <u002D,u
75 ldy #256
76 os9 I$Read
77 bcs L0061
78 lda <DD.FMT,x
79 anda #$03
80 cmpa #$03
81 bne L0089
82 ldd DD.BIT,x
83 cmpd #$0001
84 bne L0089
85 lda DD.TKS,x
86 cmpa #18
87 beq L008F
88 L0089 comb
89 ldb #E$BTyp
90 os9 F$Exit
91 L008F lda DD.MAP,x
92 leax >u012D,u
93 inca
94 clrb
95 tfr d,y
96 lda <u0002
97 os9 I$Read
98 bcs L0061
99 lda <u0002
100 ldx #$0002
101 ldu #(34*18*256)
102 os9 I$Seek
103 ldu <u0000
104 bcs L0061
105 leax >u042D,u
106 ldy #$0F00
107 os9 I$Read
108 bcs L0061
109 leax >u012D,u
110 ldd #34*18
111 ldy #$000F
112 os9 F$DelBit
113 bcs L0061
114 ldd #$04C8
115 os9 F$AllBit
116 bcs L0061
117 lda <u0002
118 ldx #$0004
119 ldu #$C800
120 os9 I$Seek
121 ldu <u0000
122 bcs L0115
123 leax >u042D,u
124 ldy #$0F00
125 os9 I$Write
126 bcs L0115
127 leax <u002D,u
128 lda <$17,x
129 deca
130 clrb
131 tfr d,u
132 ldx #$0000
133 lda <u0002
134 os9 I$Seek
135 ldu <u0000
136 bcs L0115
137 ldd <u0045,u
138 addd #$00FF
139 clrb
140 cmpd #$6000
141 bls L0118
142 ldb #E$MemFul
143 L0115 os9 F$Exit
144 L0118 addd #$0100
145 leax >u032D,u
146 tfr d,y
147 lda <u0002
148 os9 I$Read
149 bcs L0115
150 ldd <u0043,u
151 std <u0005
152 ldd <u0045,u
153 std <u0007
154 inc <u0007
155 ldd #18
156 std <u0009
157 leay >u033D,u
158 L013D sty <u000B
159 ldd <u0005
160 clr ,y
161 std $01,y
162 ldd <u0009
163 subd <u0005
164 cmpb <u0007
165 bls L0150
166 ldb <u0007
167 L0150 std $03,y
168 pshs b,a
169 ldb <u0007
170 subd $01,s
171 puls y
172 ldd <u0005
173 leax >u012D,u
174 os9 F$AllBit
175 pshs y
176 addd ,s++
177 ldy #18
178 os9 F$DelBit
179 ldy <u000B
180 ldd $03,y
181 addd <u0005
182 addd #18
183 std <u0005
184 ldb <u0007
185 subb $04,y
186 stb <u0007
187 beq L018D
188 ldd <u0009
189 addd #$0024
190 std <u0009
191 leay $05,y
192 bra L013D
193 L018D lda <u0002
194 ldx #$0000
195 ldu #$0100
196 os9 I$Seek
197 ldu <u0000
198 bcc L019F
199 L019C os9 F$Exit
200 L019F lda <u0031,u
201 inca
202 clrb
203 tfr d,y
204 leax >u012D,u
205 lda <u0002
206 os9 I$Write
207 bcs L019C
208 lda <u0044,u
209 deca
210 clrb
211 tfr d,u
212 ldx #$0000
213 lda <u0002
214 os9 I$Seek
215 ldu <u0000
216 bcs L019C
217 ldy #$0100
218 leax >u032D,u
219 os9 I$Write
220 bcs L019C
221 leax >u042D,u
222 stx <u0003
223 leay >u033D,u
224 L01DB lda $02,y
225 clrb
226 tfr d,u
227 ldx #$0000
228 lda <u0002
229 os9 I$Seek
230 ldu <u0000
231 bcs L019C
232 ldx <u0003
233 lda $04,y
234 clrb
235 pshs y,x,b,a
236 tfr d,y
237 lda <u0002
238 os9 I$Write
239 bcs L019C
240 puls y,x,b,a
241 leax d,x
242 stx <u0003
243 leay $05,y
244 tst $04,y
245 bne L01DB
246 clrb
247 os9 F$Exit
248 fcb $01
249 fcb $E9 i
250
251 emod
252 eom equ *
253 end