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