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