view 3rdparty/packages/cc/sources/access.a @ 1558:4a4ff4d844ef

ccdisk.asm: this is "newdisk" found on google, replaces old ccdisk which had severe reliability problems. rbfdefs: since "newdisk" uses the same step codes as cc3disk, rbfdefs was modified to reflect this. sysgo.asm: Date changed to May 14, 2004 to reflect updated 03.02.01 release. ChangeLogs: reflect updated version info.
author boisy
date Thu, 13 May 2004 14:19:49 +0000
parents 0198655f2552
children
line wrap: on
line source

*
* File access system calls
*

pmode equ $0b r/w for owner, r for others

 ifp1
 use ..../defs/os9defs.a
 endc
 psect access_a,0,0,2,0,0

* access(name,mode)
access: ldx 2,s
 lda 5,s

 os9 I$OPEN

 bcs access10
 os9 I$CLOSE
access10 lbra _sysret

* open(name,mode)
open: ldx 2,s
 lda 5,s

 os9 I$OPEN
 lbcs _os9err

 tfr a,b
 clra
 rts

* close(fd)
close: lda 3,s
 os9 I$CLOSE
 lbra _sysret

* mknod(name,mode)
mknod: ldx 2,s
 ldb 5,s
 os9 I$MAKDIR
 lbra _sysret

* creat(fname,mode)
creat: ldx 2,s
 lda 5,s
 tfr a,b proto attr
 andb #%00100100 save exec bits
 orb #pmode default modes
 os9 I$CREATE
 bcs creat10
crret tfr a,b
 clra
 rts

creat10 cmpb #E$CEF already there?
 lbne _os9err no - can't cope

 lda 5,s get the mode
 bita #$80 trying to create a directory?
 lbne _os9err yes, forget it

 anda #7 access mode bits
 ldx 2,s get the name again
 os9 I$OPEN try to open it
 lbcs _os9err

 pshs a,u
 ldx #0
 leau ,x
 ldb #2
 os9 I$SETSTT set the file size to zero
 puls a,u
 bcc crret

 pshs b
 os9 I$CLOSE
 puls b
 lbra _os9err

* unlink(fname)
unlink: ldx 2,s
 os9 I$DELETE
 lbra _sysret

* dup(fildes)
dup: lda 3,s
 os9 I$DUP
 lbcs _os9err
 tfr a,b
 clra
 rts
 endsect