1
0
mirror of https://github.com/DoctorWkt/unix-jun72.git synced 2026-01-11 23:53:34 +00:00
2008-05-02 17:50:21 +00:00

58 lines
1.8 KiB
Plaintext

2: / check open write access
neg r1 / make inode number positive
jsr r0,access; 1 / get inode in 0 core
bit $40000,i.flgs / is it a directory?
bne 2f / yes, transfer (error)
cmp r1,$40. / no, is it a special file?
bgt 3f / no, return
mov r1,-(sp) / yes
asl r1
jmp *1f-2(r1) / figure out which special file it is
/ and transfer
1:
otty / tty
leadr / ppt
sret / mem
sret / rf0
sret / rk0
sret / tap0
sret / tap1
sret / tap2
sret / tap3
sret / tap4
sret / tap5
sret / tap6
sret / tap7
ocvt / tty0
ocvt / tty1
ocvt / tty2
ocvt / tty3
ocvt / tty4
ocvt / tty5
ocvt / tty6
ocvt / tty7
/ ejec / lpr
otty: / open console tty for reading or writing
mov $100,*$tks / set interrupt enable bit (zero others) in
/ reader status reg
mov $100,*$tps / set interrupt enable bit (zero others) in
/ punch status reg
mov tty+[ntty*8]-8+6,r5 / r5 points to the header of the
/ console tty buffer
incb (r5) / increment the count of processes that opened the
/ console tty
tst u.ttyp / is there a process control tty (i.e., has a tty
/ buffer header
bne sret / address been loaded into u.ttyp yet)? yes, branch
mov r5,u.ttyp / no, make the console tty the process control
/ tty
br sret / ?
sret:
clr *$ps / set processor priority to zero
mov (sp)+,r1 / pop stack to r1
3:
rts r0