1
0
mirror of https://github.com/DoctorWkt/unix-jun72.git synced 2026-02-13 19:44:53 +00:00
Files
DoctorWkt.unix-jun72/pages/e12-02
2008-05-04 23:04:27 +00:00

57 lines
1.4 KiB
Plaintext

bne 2b / not this one
/ take name out of utmp
sub $4, r1 / process is found, point x' to 'x
/ for it
mov r1,-(sp) / save address on stack
mov (r1),r1 / move 'x to r1
sub $'0,r1 / remove zone bits from character
asl r1 / generate proper
asl r1 / offset
asl r1 / for
asl r1 / seek
mov r1,0f / move it to offset loc for seek
mov $zero,r1
2:
clr (r1)+ / ccear-
cmp r1,$zero+16. / output buffer
blo 2b / area
sys open; utmp; 1 / open file for writing
bes 2f / if can't open, create user anyway
mov r0,r1 / save file desc
sys seek; 0:..; 0 / move to proper pointer position
mov r1,r0 / not required
sys write; zero; 16. / zero this position in
mov r1,r0 / restore file descriptor
sys close / close file
/ re-create user process
2:
mov (sp)+,r1 / restore 'x to r1
mov (r1)+,r0 / move it to r0
movb r0,ttyx+8 / get correct ttyx
movb r0,zero+8 / move identifier to output buffer
jsr pc,wtmprec / go to write accting into
jsr pc,dfork / fork
mov r0,(r1)+ / save id of child
br 1b / go to wait for next process end
dfork:
mov r1,r2
sub $itab+2,r2 / left over
asl r2 / from previous
asl r2 / version of code
mov r2,offset
sys fork
br 1f / to new copy of init
bes dfork / try again
rts pc / return
1 :
sys quit; 0 / new init turns off
sys intr; 0 / interrupts
sys chown; ttyx; 0 / change owner to super user
sys chmod; ttyx; 15 / changemode to read/write owner,
/ write non-owner