0
|
1 ********************************************************************
|
|
2 * Boot - WD1773 Boot module
|
|
3 *
|
|
4 * $Id$
|
|
5 *
|
|
6 * Ed. Comments Who YY/MM/DD
|
|
7 * ------------------------------------------------------------------
|
|
8 * 4 Original Tandy distribution version
|
|
9 * 6 Obtained from L2 Upgrade archive, has 6ms step BGP 98/10/12
|
|
10 * rate and disk timeout changes
|
|
11
|
|
12 nam Boot
|
|
13 ttl WD1773 Boot module
|
|
14
|
|
15 ifp1
|
|
16 use defsfile
|
|
17 endc
|
|
18
|
|
19 * Step Rate:
|
|
20 * $00 = 6ms
|
|
21 * $01 =
|
|
22 * $02 =
|
|
23 * $03 = 30ms
|
|
24 STEP equ $00
|
|
25
|
|
26 tylg set Systm+Objct
|
|
27 atrv set ReEnt+rev
|
|
28 rev set $01
|
|
29 edition set 6
|
|
30
|
|
31 mod eom,name,tylg,atrv,start,size
|
|
32
|
|
33 u0000 rmb 2
|
|
34 u0002 rmb 2
|
|
35 u0004 rmb 1
|
|
36 u0005 rmb 1
|
|
37 u0006 rmb 1
|
|
38 u0007 rmb 1
|
|
39 u0008 rmb 1
|
|
40 u0009 rmb 1
|
|
41 size equ .
|
|
42
|
|
43 name fcs /Boot/
|
|
44 fcb edition
|
|
45
|
|
46 start clra
|
382
|
47 ldb #size
|
0
|
48 L0015 pshs a
|
|
49 decb
|
|
50 bne L0015
|
|
51 tfr s,u
|
|
52 ldx #$FF48
|
|
53 lda #$D0
|
|
54 sta ,x
|
|
55 lbsr L01AA
|
|
56 lda ,x
|
|
57 lda #$FF
|
|
58 sta u0004,u
|
|
59 leax >NMIRtn,pcr
|
|
60 stx <D.NMI
|
|
61 lda #$09
|
|
62 sta >$FF40
|
|
63 ldd #$C350
|
382
|
64 ifne NitrOS9
|
|
65 nop
|
|
66 endc
|
0
|
67 L003A nop
|
|
68 nop
|
382
|
69 ifne NitrOS9
|
|
70 nop
|
|
71 nop
|
|
72 nop
|
|
73 endc
|
0
|
74 subd #$0001
|
|
75 bne L003A
|
|
76 pshs u,y,x,b,a
|
|
77 ldd #$0001
|
|
78 os9 F$SRqMem
|
|
79 bcs L00AA
|
|
80 tfr u,d
|
|
81 ldu $06,s
|
|
82 std u0002,u
|
|
83 clrb
|
|
84 ldx #$0000
|
|
85 bsr L00C7
|
|
86 bcs L00AA
|
|
87 ldd $01,y
|
|
88 std u0007,u
|
|
89 lda <$10,y
|
|
90 sta u0005,u
|
|
91 anda #$01
|
|
92 sta u0008,u
|
|
93 lda $03,y
|
|
94 sta u0006,u
|
|
95 ldd <$18,y
|
|
96 std ,s
|
|
97 ldx <$16,y
|
|
98 pshs x
|
|
99 ldd #256
|
|
100 ldu u0002,u
|
|
101 os9 F$SRtMem
|
|
102 ldd $02,s
|
|
103 os9 F$BtMem
|
|
104 puls x
|
|
105 bcs L00AA
|
|
106 stu $02,s
|
|
107 ldu $06,s
|
|
108 ldd $02,s
|
|
109 std u0002,u
|
|
110 ldd ,s
|
|
111 beq L00A3
|
|
112 L0091 pshs x,b,a
|
|
113 clrb
|
|
114 bsr L00C7
|
|
115 bcs L00A8
|
|
116 puls x,b,a
|
|
117 inc u0002,u
|
|
118 leax 1,x
|
|
119 subd #256
|
|
120 bhi L0091
|
|
121 L00A3 clrb
|
|
122 puls b,a
|
|
123 bra L00AC
|
|
124 L00A8 leas $04,s
|
|
125 L00AA leas $02,s
|
|
126 L00AC sta >$FFD9
|
|
127 puls u,y,x
|
|
128 leas $0A,s
|
|
129 clr >$FF40
|
|
130 rts
|
|
131 L00B7 lda #$29
|
|
132 sta ,u
|
|
133 clr u0004,u
|
|
134 lda #$05
|
|
135 lbsr L0170
|
|
136 ldb #STEP
|
|
137 lbra L0195
|
|
138 L00C7 lda #$91
|
|
139 cmpx #$0000
|
|
140 bne L00DF
|
|
141 bsr L00DF
|
|
142 bcs L00D6
|
|
143 ldy u0002,u
|
|
144 clrb
|
|
145 L00D6 rts
|
|
146 L00D7 bcc L00DF
|
|
147 pshs x,b,a
|
|
148 bsr L00B7
|
|
149 puls x,b,a
|
|
150 L00DF pshs x,b,a
|
|
151 bsr L00EA
|
|
152 puls x,b,a
|
|
153 bcc L00D6
|
|
154 lsra
|
|
155 bne L00D7
|
|
156 L00EA bsr L013C
|
|
157 bcs L00D6
|
|
158 ldx u0002,u
|
|
159 orcc #IntMasks
|
|
160 pshs y
|
|
161 ldy #$FFFF
|
|
162 ldb #$80
|
|
163 stb >$FF48
|
|
164 ldb ,u
|
|
165 orb #$30
|
|
166 tst u0009,u
|
|
167 beq L0107
|
|
168 orb #$40
|
|
169 L0107 stb >$FF40
|
|
170 lbsr L01AA
|
|
171 orb #$80
|
|
172 lda #$02
|
|
173 L0111 bita >$FF48
|
|
174 bne L0123
|
|
175 leay -$01,y
|
|
176 bne L0111
|
|
177 lda ,u
|
|
178 sta >$FF40
|
|
179 puls y
|
|
180 bra L0138
|
|
181 L0123 lda >$FF4B
|
|
182 sta ,x+
|
|
183 stb >$FF40
|
|
184 bra L0123
|
|
185
|
381
|
186 NMIRtn leas R$Size,s
|
0
|
187 puls y
|
|
188 ldb >$FF48
|
|
189 bitb #$04
|
|
190 beq L018F
|
|
191 L0138 comb
|
|
192 ldb #E$Read
|
|
193 rts
|
|
194 L013C lda #$09
|
|
195 sta ,u
|
|
196 clr u0009,u
|
|
197 tfr x,d
|
|
198 cmpd #$0000
|
|
199 beq L016C
|
|
200 clr ,-s
|
|
201 tst u0008,u
|
|
202 beq L0162
|
|
203 bra L0158
|
|
204 L0152 com u0009,u
|
|
205 bne L0158
|
|
206 inc ,s
|
|
207 L0158 subb u0006,u
|
|
208 sbca #$00
|
|
209 bcc L0152
|
|
210 bra L0168
|
|
211 L0160 inc ,s
|
|
212 L0162 subb u0006,u
|
|
213 sbca #$00
|
|
214 bcc L0160
|
|
215 L0168 addb #$12
|
|
216 puls a
|
|
217 L016C incb
|
|
218 stb >$FF4A
|
|
219 L0170 ldb u0004,u
|
|
220 stb >$FF49
|
|
221 cmpa u0004,u
|
|
222 beq L018D
|
|
223 sta u0004,u
|
|
224 sta >$FF4B
|
|
225 ldb #$10+STEP
|
|
226 bsr L0195
|
|
227 pshs x
|
|
228 ldx #$222E
|
|
229 L0187 leax -$01,x
|
|
230 bne L0187
|
|
231 puls x
|
|
232 L018D clrb
|
|
233 rts
|
|
234 L018F bitb #$98
|
|
235 bne L0138
|
|
236 clrb
|
|
237 rts
|
|
238 L0195 bsr L01A8
|
|
239 L0197 ldb >$FF48
|
|
240 bitb #$01
|
|
241 bne L0197
|
|
242 rts
|
|
243 L019F lda ,u
|
|
244 sta >$FF40
|
|
245 stb >$FF48
|
|
246 rts
|
382
|
247 L01A8
|
|
248 ifne NitrOS9
|
|
249 nop
|
|
250 endc
|
|
251 bsr L019F
|
|
252 L01AA
|
|
253 ifne NitrOS9
|
|
254 nop
|
|
255 nop
|
|
256 endc
|
|
257 lbsr L01AD
|
|
258 L01AD
|
|
259 ifne NitrOS9
|
|
260 nop
|
|
261 nop
|
|
262 endc
|
|
263 lbsr L01B0
|
|
264 L01B0
|
|
265 ifne NitrOS9
|
|
266 nop
|
|
267 endc
|
|
268 rts
|
0
|
269
|
|
270 * Filler to get $1D0
|
460
|
271 Filler fill $39,$1D0-3-*
|
0
|
272
|
|
273 emod
|
|
274 eom equ *
|
|
275 end
|