8 !THIS FILE CONTAINS THE SYSTEM CALLS FOR PMDS-II AS SUBROUTINES FOR THE
9 !EM-INTERPRETER. a5 CONTAINS A POINTER TO THE RETURN AREA . EACH SUBROUTINE
10 !EXPECTS ITS DATA IN THE FORM EM PRODUCES AND GIVES ITS RESULTS AS EM
12 !THE PMDS-II REQUIRES THE ARGUMENTS ON THE STACK AS 4 BYTE INTEGERS OR
13 !POINTERS , AND USES THE C-CALLING CONVENTION. THE 2 BYTE WORDS 4 BYTE
14 !POINTERS VERSION HAS TO DO SOME CONVERSION FIRST .
16 _Xexit: move.l (sp)+,.retaddr
22 _Xfork: move.l (sp)+,.retaddr
28 mov d1,-(sp) !PID OF PARENT IN d1
29 mov #1,-(sp) !(PID OF CHILD IN D0),FLAG 1 IN CHILD
31 1: mov d0,-(sp) !PID OF CHILD IN d0
32 cl -(sp) !FLAG 0 IN PARENT
42 _Xread: move.l (sp)+,.retaddr
59 _Xwrite: move.l (sp)+,.retaddr
66 _Xopen: move.l (sp)+,.retaddr
83 _Xclose: move.l (sp)+,.retaddr
99 _Xwait: move.l (sp)+,.retaddr
120 2: move.l .retaddr,a0
123 _Xcreat: move.l (sp)+,.retaddr
130 _Xlink: move.l (sp)+,.retaddr
135 _Xunlink: move.l (sp)+,.retaddr
139 _Xchdir: move.l (sp)+,.retaddr
143 _Xmknod: move.l (sp)+,.retaddr
151 _Xchmod: move.l (sp)+,.retaddr
159 _Xchown: move.l (sp)+,.retaddr
167 _Xbreak: move.l (sp)+,.retaddr
178 2: move.l .retaddr,a0
185 _Xstat: move.l (sp)+,.retaddr
190 _Xlseek: move.l (sp)+,.retaddr
204 2: move.l .retaddr,a0
207 _Xgetpid: move.l (sp)+,.retaddr
213 _Xmount: move.l (sp)+,.retaddr
221 _Xumount: move.l (sp)+,.retaddr
225 _Xsetuid: move.l (sp)+,.retaddr
232 _Xgetuid: move.l (sp)+,.retaddr
239 _Xstime: move.l (sp)+,.retaddr
243 _Xptrace: move.l (sp)+,.retaddr
251 _Xalarm: move.l (sp)+,.retaddr
262 _Xfstat: move.l (sp)+,.retaddr
273 _Xutime: move.l (sp)+,.retaddr
278 _Xaccess: move.l (sp)+,.retaddr
286 _Xnice: move.l (sp)+,.retaddr
294 _Xftime: move.l (sp)+,.retaddr
301 _Xkill: move.l (sp)+,.retaddr
309 _Xdup: move.l (sp)+,.retaddr
316 _Xpipe: move.l (sp)+,.retaddr
322 _Xtimes: move.l (sp)+,.retaddr
328 _Xprofil: move.l (sp)+,.retaddr
334 _Xsetgid: move.l (sp)+,.retaddr
341 _Xgetgid: move.l (sp)+,.retaddr
345 _Xsignal: move.l (sp)+,.retaddr
350 lea 8(sp),sp !remove arguments
364 _Xacct: move.l (sp)+,.retaddr
367 !_Xlock: move.l (sp)+,.retaddr
374 _Xioctl: move.l (sp)+,.retaddr
379 ! only support TIOCGETP and TIOCSETP
381 cmp.l #0x7408,d0 ! TIOCGETP
389 cmp.l #0x7409,d0 ! TIOCSETP
400 .data4 0x7408,0x40067408 ! TIOCGETP
401 .data4 0x7409,0x80067409 ! TIOCSETP
402 .data4 0x740a,0x8006740a ! TIOCSETN
403 .data4 0x740d,0x2000740d ! TIOCEXCL
404 .data4 0x740e,0x2000740e ! TIOCNXCL
405 .data4 0x7402,0x20007402 ! TIOCHPCL
406 .data4 0x7412,0x40067412 ! TIOCGETC
407 .data4 0x7411,0x40067411 ! TIOCSETC
428 !_Xmpxcall: move.l (sp)+,.retaddr
437 _Xexece: move.l (sp)+,.retaddr
442 _Xumask: move.l (sp)+,.retaddr
452 _Xchroot: move.l (sp)+,.retaddr
457 !----------------------------------------------------------------------------
458 ! STACK ADJUSTMENT FOR THE TWO BYTE INTERPRETER
459 !-----------------------------------------------------------------------------
477 st244: move.l (sp),-(sp)
487 st245: move.l (sp),-(sp)
520 st248: move.l (sp),-(sp)