Mercurial > hg > Members > kono > nitros9-code
annotate level1/cmds/deldir.asm @ 710:4b8f2de93c51
Added DS40 target
author | boisy |
---|---|
date | Sat, 04 Jan 2003 02:23:45 +0000 |
parents | ed3ad5db6af4 |
children | c6ebca55eed3 |
rev | line source |
---|---|
0 | 1 ******************************************************************** |
2 * Deldir - Delete a directory | |
3 * | |
4 * $Id$ | |
5 * | |
6 * Ed. Comments Who YY/MM/DD | |
7 * ------------------------------------------------------------------ | |
200
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
0
diff
changeset
|
8 * 3 From Tandy OS-9 Level Two VR 02.00.01 |
0 | 9 |
10 nam Deldir | |
11 ttl Delete a directory | |
12 | |
13 * Disassembled 98/09/10 23:18:11 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 3 | |
23 | |
24 mod eom,name,tylg,atrv,start,size | |
25 | |
686 | 26 parmptr rmb 2 |
27 fpath rmb 1 | |
28 what2do rmb 1 | |
29 stats rmb 24 | |
0 | 30 u001C rmb 4 |
31 u0020 rmb 4 | |
32 u0024 rmb 10 | |
33 u002E rmb 6 | |
34 u0034 rmb 15 | |
35 u0043 rmb 1 | |
36 u0044 rmb 1 | |
37 u0045 rmb 1 | |
38 u0046 rmb 2 | |
39 u0048 rmb 2 | |
686 | 40 buffer rmb 336 |
0 | 41 size equ . |
42 | |
43 name fcs /Deldir/ | |
44 fcb edition | |
45 | |
686 | 46 start bsr OpenPath |
47 bcs OpenErr | |
48 bsr GetOpts | |
0 | 49 bcc L002B |
686 | 50 lbsr PromptUser |
51 bcs OpenErr | |
0 | 52 lbsr L01C3 |
686 | 53 bcs OpenErr |
0 | 54 lbsr L0242 |
686 | 55 bcs OpenErr |
56 L002B lda <fpath | |
0 | 57 os9 I$Close |
58 bcs L004D | |
686 | 59 ldx <parmptr |
0 | 60 os9 I$Delete |
61 bcs L004D | |
62 lda ,x | |
63 cmpa #C$CR | |
64 bne start | |
65 clrb | |
66 bra L004D | |
686 | 67 OpenErr pshs b |
68 lda <fpath | |
0 | 69 os9 I$Close |
70 puls b | |
71 orcc #Carry | |
72 L004D os9 F$Exit | |
686 | 73 |
74 | |
75 OpenPath stx <parmptr save parameter pointer | |
0 | 76 lda #READ.+WRITE. |
77 os9 I$Open | |
78 bcs L005D | |
686 | 79 sta <fpath |
0 | 80 bra L0089 |
686 | 81 L005D ldx <parmptr |
0 | 82 lda #DIR.+READ. |
83 os9 I$Open | |
84 bcs L0090 | |
686 | 85 sta <fpath |
86 L0068 ldx <parmptr | |
0 | 87 os9 F$PrsNam |
88 clra | |
89 incb | |
90 std <u0046 | |
91 lda ,y | |
92 cmpa #PDELIM | |
93 bne L0089 | |
94 lda #C$CR | |
95 sta ,y+ | |
96 lda #READ.+WRITE. | |
686 | 97 ldx <parmptr |
0 | 98 os9 I$ChgDir |
99 bcs L0090 | |
686 | 100 sty <parmptr |
0 | 101 bra L0068 |
102 L0089 leax <-u001C,u | |
103 stx <u0044 | |
686 | 104 clr <what2do |
0 | 105 L0090 rts |
686 | 106 |
107 GetOpts lda <fpath | |
0 | 108 ldb #SS.OPT |
686 | 109 leax stats,u |
0 | 110 os9 I$GetStt |
111 bcs L00AB | |
112 ldx <u0044 | |
113 lda <$33,x | |
114 anda #$80 | |
115 beq L00AA | |
116 clrb | |
117 orcc #Carry | |
118 bra L00AB | |
119 L00AA clrb | |
120 L00AB rts | |
686 | 121 |
122 Prompt fcb C$LF | |
0 | 123 fcc "Deleting directory file. " |
124 fcb C$LF | |
125 fcc "List directory, delete directory, or quit ? (l/d/q) " | |
686 | 126 Cont fcb C$LF |
0 | 127 fcc "Continue? (y/n) " |
686 | 128 |
129 PromptUser | |
130 tstb | |
0 | 131 bne L013E |
132 lda #$01 | |
686 | 133 leax <Prompt,pcr |
134 ldy #79 | |
0 | 135 os9 I$WritLn |
136 L011B bcs L013E | |
686 | 137 bsr ReadKey |
0 | 138 bcs L013E |
686 | 139 ldb <what2do |
0 | 140 cmpb #$01 |
141 bne L012A | |
142 clrb | |
143 bra L013E | |
144 L012A bsr L0145 | |
145 L012C bcs L013E | |
686 | 146 leax <Cont,pcr |
0 | 147 ldy #$0011 |
148 lda #$01 | |
149 os9 I$WritLn | |
150 bcs L013E | |
686 | 151 bsr ReadKey |
0 | 152 L013E rts |
686 | 153 DIR fcc "DIR" |
0 | 154 fcb C$CR |
686 | 155 DIROPTS fcc "E " |
0 | 156 L0145 pshs u |
686 | 157 leau <buffer,u |
0 | 158 pshs u |
159 ldb #$02 | |
686 | 160 leax <DIROPTS,pcr |
0 | 161 lbsr L0270 |
686 | 162 ldx <parmptr |
0 | 163 ldd <u0046 |
164 decb | |
165 lbsr L0270 | |
166 lda #C$CR | |
167 L015E sta ,u+ | |
168 tfr u,d | |
169 subd ,s | |
170 tfr d,y | |
171 puls u | |
686 | 172 leax <DIR,pcr |
173 lda #Prgrm+Objct | |
0 | 174 clrb |
175 os9 F$Fork | |
176 puls u | |
177 bcs L013E | |
178 os9 F$Wait | |
179 L0178 rts | |
686 | 180 |
181 ReadKey leax <buffer,u | |
0 | 182 ldy #80 |
183 lda #$00 | |
184 os9 I$ReadLn | |
185 bcs L01B8 | |
186 L0187 lda ,x+ | |
686 | 187 cmpa #C$SPAC eat spaces |
0 | 188 beq L0187 |
686 | 189 eora #'Y |
0 | 190 anda #$DF |
686 | 191 beq L01AD branch if Y |
0 | 192 lda ,-x |
686 | 193 eora #'L branch if L |
0 | 194 anda #$DF |
195 beq L01A9 | |
196 lda ,x | |
686 | 197 eora #'D branch if D |
0 | 198 anda #$DF |
199 beq L01A5 | |
200 bra L01B4 | |
201 L01A5 ldb #$01 | |
202 bra L01AF | |
203 L01A9 ldb #$02 | |
204 bra L01AF | |
205 L01AD ldb #$04 | |
686 | 206 L01AF stb <what2do |
0 | 207 clrb |
208 bra L01B8 | |
209 L01B4 ldb #$01 | |
210 orcc #Carry | |
211 L01B8 rts | |
686 | 212 DelDir fcc "DELDIR" |
0 | 213 fcb C$CR |
686 | 214 DotDot fcc ".." |
0 | 215 fcb C$CR |
686 | 216 L01C3 ldb <what2do |
0 | 217 bitb #$05 |
218 beq L0210 | |
686 | 219 lda <fpath |
0 | 220 pshs u |
686 | 221 ldu #64 |
0 | 222 L01D0 ldx #$0000 |
223 os9 I$Seek | |
224 puls u | |
225 L01D8 bsr L0215 | |
226 bcs L0209 | |
686 | 227 ldx <parmptr |
0 | 228 lda #READ.+WRITE. |
229 os9 I$ChgDir | |
230 bcs L0214 | |
231 ldy <u0048 | |
232 clrb | |
686 | 233 lda #Prgrm+Objct |
0 | 234 pshs u |
235 leau <u0024,u | |
686 | 236 leax <DelDir,pcr |
0 | 237 os9 F$Fork |
238 puls u | |
239 bcs L0214 | |
240 os9 F$Wait | |
241 bcs L0214 | |
686 | 242 leax <DotDot,pcr |
0 | 243 lda #READ.+WRITE. |
244 os9 I$ChgDir | |
245 bcc L01D8 | |
246 L0209 cmpb #E$EOF | |
247 bne L0214 | |
248 clrb | |
249 bra L0214 | |
250 L0210 ldb #$01 | |
251 orcc #Carry | |
252 L0214 rts | |
686 | 253 L0215 lda <fpath |
0 | 254 leax <u0024,u |
255 ldy #$0020 | |
256 os9 I$Read | |
257 bcs L0238 | |
258 lda ,x | |
259 beq L0215 | |
260 os9 F$PrsNam | |
261 lda -$01,y | |
262 anda #$7F | |
263 sta -$01,y | |
264 lda #C$CR | |
265 sta ,y | |
266 clra | |
267 incb | |
268 std <u0048 | |
269 L0238 rts | |
686 | 270 ATTR fcc "ATTR" |
0 | 271 fcb C$CR |
686 | 272 ATTROPTS fcc " -d" |
0 | 273 fcb C$CR |
274 L0242 pshs u | |
686 | 275 leau <buffer,u |
0 | 276 pshs u |
277 ldd <u0046 | |
278 decb | |
686 | 279 ldx <parmptr |
0 | 280 bsr L0270 |
686 | 281 leax <ATTROPTS,pcr |
0 | 282 ldb #$04 |
283 bsr L0270 | |
284 tfr u,d | |
285 subd ,s | |
286 tfr d,y | |
287 puls u | |
686 | 288 leax <ATTR,pcr |
0 | 289 clrb |
686 | 290 lda #Prgrm+Objct |
0 | 291 os9 F$Fork |
292 bcs L026D | |
293 os9 F$Wait | |
294 L026D puls u | |
295 rts | |
296 L0270 decb | |
297 lda ,x+ | |
298 sta ,u+ | |
299 tstb | |
300 bne L0270 | |
301 rts | |
302 | |
303 emod | |
304 eom equ * | |
305 end | |
306 |