Mercurial > hg > Members > kono > os9 > sbc09
comparison os9/level2/vrbf.asm @ 47:15f1e1b49928
open dir worked ?
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 20 Jul 2018 17:04:49 +0900 |
parents | ec9f494497e1 |
children | ea1b17311bf3 |
comparison
equal
deleted
inserted
replaced
46:ec9f494497e1 | 47:15f1e1b49928 |
---|---|
93 * | 93 * |
94 Open pshs y,u,cc | 94 Open pshs y,u,cc |
95 orcc #IntMasks | 95 orcc #IntMasks |
96 bsr setuppd | 96 bsr setuppd |
97 ldb #$d2 | 97 ldb #$d2 |
98 stb ,u | 98 stb ,x |
99 ldb ,u | 99 ldb ,x |
100 cmpb #0 | 100 cmpb #0 |
101 beq ok00 | 101 beq ok00 |
102 bra er00 | 102 bra er00 |
103 | 103 |
104 * u user stack | 104 * u user stack |
108 * PD.RGS,y caller's rega = u | 108 * PD.RGS,y caller's rega = u |
109 * PD.DEV,y device table | 109 * PD.DEV,y device table |
110 * PD.DRV,y drive number | 110 * PD.DRV,y drive number |
111 | 111 |
112 setuppd ldx #$FFc0 vdisk port | 112 setuppd ldx #$FFc0 vdisk port |
113 sty 7,x path descriptor | |
113 stu 5,x caller stack | 114 stu 5,x caller stack |
114 lda <PD.DRV,y | 115 lda <PD.DRV,y |
115 sta 1,x | 116 sta 1,x |
116 clra | 117 clra |
117 ldx <D.Proc get process pointer | 118 ldy <D.Proc get process pointer |
118 cmpx <D.SysPrc | 119 cmpy <D.SysPrc |
119 beq sysmode | 120 beq sysmode |
120 lda #1 | 121 lda #1 |
121 sysmode sta 2,x | 122 sysmode sta 2,x |
122 lda R$A,u | 123 lda R$A,u |
123 bita #EXEC. | 124 bita #EXEC. |
124 bne usechx | 125 bne usechx |
125 ldd P$DIO+4,x get curwdir #pdnumber | 126 ldd P$DIO+4,y get curwdir #pdnumber |
126 bra s1 | 127 bra s1 |
127 usechx ldd P$DIO+10,x get curxdir #pdnumber | 128 usechx ldd P$DIO+10,y get curxdir #pdnumber |
128 s1 | 129 s1 |
129 ldu #$FFc0 | 130 std 3,x |
130 std 3,u | |
131 rts | 131 rts |
132 | 132 |
133 er00 puls y,u,cc | 133 er00 puls y,u,cc |
134 orcc #Carry | 134 orcc #Carry |
135 rts | 135 rts |
147 * | 147 * |
148 MakDir pshs y,u,cc | 148 MakDir pshs y,u,cc |
149 orcc #IntMasks | 149 orcc #IntMasks |
150 bsr setuppd | 150 bsr setuppd |
151 ldb #$d3 | 151 ldb #$d3 |
152 stb ,u | 152 stb ,x |
153 ldb ,u | 153 ldb ,x |
154 cmpb #0 | 154 cmpb #0 |
155 beq ok00 | 155 beq ok00 |
156 bra er00 | 156 bra er00 |
157 | 157 |
158 * | 158 * |
167 * | 167 * |
168 Close pshs y,u,cc | 168 Close pshs y,u,cc |
169 orcc #IntMasks | 169 orcc #IntMasks |
170 bsr setuppd | 170 bsr setuppd |
171 ldb #$db | 171 ldb #$db |
172 stb ,u | 172 stb ,x |
173 ldb ,u | 173 ldb ,x |
174 cmpb #0 | 174 cmpb #0 |
175 beq ok00 | 175 beq ok00 |
176 bra er00 | 176 bra er00 |
177 | 177 |
178 * | 178 * |
187 * | 187 * |
188 ChgDir pshs y,u,cc | 188 ChgDir pshs y,u,cc |
189 orcc #IntMasks | 189 orcc #IntMasks |
190 bsr setuppd | 190 bsr setuppd |
191 ldb #$d4 | 191 ldb #$d4 |
192 stb ,u | 192 stb ,x |
193 ldb ,u | 193 ldb ,x |
194 ldy 1,s | |
195 ldx <D.Proc get process pointer | |
194 ldu PD.RGS,y | 196 ldu PD.RGS,y |
195 lda R$A,u | 197 lda R$A,u |
196 ldb PD.MOD,y get current file mode | 198 ldb PD.MOD,y get current file mode |
197 bitb #UPDAT. read or write mode? | 199 bitb #UPDAT. read or write mode? |
198 beq CD30D no, skip ahead | 200 beq CD30D no, skip ahead |
219 * | 221 * |
220 Delete pshs y,u,cc | 222 Delete pshs y,u,cc |
221 orcc #IntMasks | 223 orcc #IntMasks |
222 lbsr setuppd | 224 lbsr setuppd |
223 ldb #$d5 | 225 ldb #$d5 |
224 stb ,u | 226 stb ,x |
225 ldb ,u | 227 ldb ,x |
226 cmpb #0 | 228 cmpb #0 |
227 beq ok01 | 229 beq ok01 |
228 bra er01 | 230 bra er01 |
229 | 231 |
230 * | 232 * |
239 * | 241 * |
240 Seek pshs y,u,cc | 242 Seek pshs y,u,cc |
241 orcc #IntMasks | 243 orcc #IntMasks |
242 lbsr setuppd | 244 lbsr setuppd |
243 ldb #$d6 | 245 ldb #$d6 |
244 stb ,u | 246 stb ,x |
245 ldb ,u | 247 ldb ,x |
246 cmpb #0 | 248 cmpb #0 |
247 beq ok01 | 249 beq ok01 |
248 bra er01 | 250 bra er01 |
249 | 251 |
250 * | 252 * |
259 * | 261 * |
260 ReadLn pshs y,u,cc | 262 ReadLn pshs y,u,cc |
261 orcc #IntMasks | 263 orcc #IntMasks |
262 lbsr setuppd | 264 lbsr setuppd |
263 ldb #$d7 | 265 ldb #$d7 |
264 stb ,u | 266 stb ,x |
265 ldb ,u | 267 ldb ,x |
266 beq ok01 | 268 beq ok01 |
267 bra er01 | 269 bra er01 |
268 | 270 |
269 * | 271 * |
270 * I$Read Entry Point | 272 * I$Read Entry Point |
278 * | 280 * |
279 Read pshs y,u,cc | 281 Read pshs y,u,cc |
280 orcc #IntMasks | 282 orcc #IntMasks |
281 lbsr setuppd | 283 lbsr setuppd |
282 ldb #$d8 | 284 ldb #$d8 |
283 stb ,u | 285 stb ,x |
284 ldb ,u | 286 ldb ,x |
285 beq ok01 | 287 beq ok01 |
286 bra er01 | 288 bra er01 |
287 | 289 |
288 | 290 |
289 * | 291 * |
298 * | 300 * |
299 WriteLn pshs y,u,cc | 301 WriteLn pshs y,u,cc |
300 orcc #IntMasks | 302 orcc #IntMasks |
301 lbsr setuppd | 303 lbsr setuppd |
302 ldb #$d9 | 304 ldb #$d9 |
303 stb ,u | 305 stb ,x |
304 ldb ,u | 306 ldb ,x |
305 beq ok01 | 307 beq ok01 |
306 bra er01 | 308 bra er01 |
307 | 309 |
308 * | 310 * |
309 * I$Write Entry Point | 311 * I$Write Entry Point |
317 * | 319 * |
318 Write pshs y,u,cc | 320 Write pshs y,u,cc |
319 orcc #IntMasks | 321 orcc #IntMasks |
320 lbsr setuppd | 322 lbsr setuppd |
321 ldb #$da | 323 ldb #$da |
322 stb ,u | 324 stb ,x |
323 ldb ,u | 325 ldb ,x |
324 beq ok01 | 326 beq ok01 |
325 er01 puls y,u,cc | 327 er01 puls y,u,cc |
326 orcc #Carry | 328 orcc #Carry |
327 rts | 329 rts |
328 ok01 puls y,u,cc,pc | 330 ok01 puls y,u,cc,pc |
340 GetStat pshs y,u,cc | 342 GetStat pshs y,u,cc |
341 orcc #IntMasks | 343 orcc #IntMasks |
342 ldb R$B,u get function code | 344 ldb R$B,u get function code |
343 lbsr setuppd | 345 lbsr setuppd |
344 ldb #$dc | 346 ldb #$dc |
345 stb ,u | 347 stb ,x |
346 ldb ,u | 348 ldb ,x |
347 beq ok01 | 349 beq ok01 |
348 bra er01 | 350 bra er01 |
349 | 351 |
350 | 352 |
351 * | 353 * |
361 SetStat pshs y,u,cc | 363 SetStat pshs y,u,cc |
362 orcc #IntMasks | 364 orcc #IntMasks |
363 ldb R$B,u get function code | 365 ldb R$B,u get function code |
364 lbsr setuppd | 366 lbsr setuppd |
365 ldb #$dd | 367 ldb #$dd |
366 stb ,u | 368 stb ,x |
367 ldb ,u | 369 ldb ,x |
368 beq ok01 | 370 beq ok01 |
369 bra er01 | 371 bra er01 |
370 | 372 |
371 | 373 |
372 emod | 374 emod |