* system calls - file 8

 name Syscals8

 text

 ext _errno,ret3,ret3a,ret5,ret5a

 lib sysdef

* SYNC()

  global _sync
_sync sys update
  ldd #0
  rts

* TIME(ptime)

  global _time
_time sys time,tbuf2
 ldx 2,s
 beq 1f
 ldd tbuf2
 std 0,x
 ldd tbuf2+2
 std 2,x
1 ldx #tbuf2
  rts
  bss
tbuf2 rmb 8
  text

* TIMES(ptimes)

  global _times
_times sys ttime,tmsbuf
  ldx 2,s
  clr 0,x
  ldd tmsbuf
  std 1,x
  ldb tmsbuf+2
  stb 3,x
  clr 4,x
  ldd tmsbuf+3
  std 5,x
  ldb tmsbuf+5
  stb 7,x
  ldd tmsbuf+6
  std 8,x
  ldd tmsbuf+8
  std 10,x
  ldd tmsbuf+10
  std 12,x
  ldd tmsbuf+12
  std 14,x
  ldd #0
  rts
  bss
tmsbuf rmb 14
  text

* TTYSLOT()

  global _ttyslot
_ttyslot sys ttynum
  rts

* UMASK(perms)

  global _umask
_umask ldd 2,s
  pshs d
  ldb #defacc
  pshs b
  leax 0,s
  sys indx
  leas 3,s
  ldd #0
  rts


* UREC(fildes)

  global _urec
_urec  ldd 2,s
  sys urec
  bec 1f
  std _errno
  ldd #-1
  rts
1 ldd #0
  rts

* WAIT(ptaskid)

  global _wait
_wait sys wait
  bec 1f
  std _errno
  ldd #-1
  rts
1 pshs d,u
  ldu 6,s
  beq 2f
  tfr x,d
  exg a,b
  std 0,u
2 puls d,u,pc

