207
|
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
|