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

56 lines
1.8 KiB
Plaintext

cmpb cc+1,$20. / is character count for console tty greater
/ than 20
bhis 2f / yes; branch to put process to sleep
jsr r0,putc; 1 / find place in freelist to assign to console
/ tty and
br 2f / place character in list; if none available
/ branch to put process to sleep
jsr r0,startty / attempt to output character on tty
br wtty
2:
mov r1,-(sp) / place character on stack
jsr r0,sleep; 1 / put process to sleep
mov (sp)+,r1 / remove character from stack
br 1b / try again to place character in clist and output
wppt:
jsr r0,cpass / get next character from user buffer area,
/ if none return to writei's calling routine
jsr r0,pptoc / output character on ppt
br wppt
/wlpr:
/ jsr r0,cpass
/ cmp r0,$'a
/ blo 1f
/ cmp r1,$'z
/ bhi 1f
/ sub $40,r1
/1:
/ jsr r0,lptoc
/ br wlpr
wmem: / transfer characters from a user area of core to memory file
jsr r0,cpass / get next character from users area of core and
/ put it in r1
mov r1,-(sp) / put character on the stack
mov *u.fofp,r1 / save file offset in r1
inc *u.fofp / increment file offset to point to next available
/ location in file
movb (sp)+,(r1) / pop char off stack, put in memory loc assigned
/ to it
br wmem / continue
1:
jmp error / ?
dskw: / write routine for non-special files
mov (sp),r1 / get an i-node number from the stack into r1
jsr r0,iget / write i-node out (if modified), read i-node 'r1'
/ into i-node area of core
mov *u.fofp,r2 / put the file offset [(u.off) or the offset in
/ the fsp entry for this file] in r2
add u.count,r2 / no. of bytes to be written + file offset is
/ put in r2
cmp r2,i.size / is this greater than the present size of
/ the file?
blos 1f / no, branch