* system calls - file 2

 name Syscals2

 text

 ext _errno,ret3,ret3a,ret5,ret5a

 lib sysdef

* CHTIM(path, time)

  global _chtim
_chtim ldd 2,s
  pshs d
  ldb #filtim
  pshs b
  ldd 6,s
  ldx 8,s
  jmp ret3a


* DUP(fildes)

  global _dup
_dup  ldd 2,s
  sys dup
  bec 2f
  std _errno
  ldd #-1
2 leas 2,s
  rts

* DUP2(src, dest)

  global _dup2
_dup2 ldx 4,s
  ldd 2,s
  sys dups
  bec 2f
  std _errno
  ldd #-1
2 rts


* FTIME(bufaddr)

  global _ftime
_ftime sys time,tbuf
  ldx 2,s
  pshs u
  ldu #tbuf
  ldd 0,u
  std 0,x
  ldd 2,u
  std 2,x
  ldb 4,u
  stb 4,x
  ldb 7,u
  stb 5,x
  ldd 5,u
  std 6,x
  ldd #0
  puls u,pc

  bss
tbuf rmb 8
  text


* MKNOD(path, desc, devnum)

  global _mknod
_mknod  ldd 8,s
  pshs d
  ldd 8,s
  pshs d
  ldd 8,s
  pshs d
  ldb #crtsd
  pshs b
  leax 0,s
  sys indx
  bec 1f
  std _errno
  ldd #-1
  bra 2f
1 ldd #0
2 leas 7,s
  rts

* MOUNT(spcnam, dirnam, rwflag)

  global _mount
_mount ldd 8,s
  pshs d
  ldd 8,s
  pshs d
  ldd 8,s
  pshs d
  ldb #mount
  pshs b
  leax 0,s
  sys indx
  bec 1f
  std _errno
  ldd #-1
  bra 2f
1 ldd #0
2 leas 7,s
  rts


* SET_FTM(pathnam, ptime)

  global _set_ftm
_set_ftm ldx 4,s
  ldd 2,s
  pshs d
  ldb #filtim
  pshs b
  ldd 2,x
  ldx 0,x
  jmp ret3a


* UMOUNT(pathnam)

  global _umount
_umount ldd 2,s
  pshs d
  ldb #unmnt
  jmp ret3


* UTIME(pathnam, ptime)

  global _utime
_utime equ _set_ftm

