1
0
mirror of https://github.com/DoctorWkt/unix-jun72.git synced 2026-04-17 16:44:38 +00:00
Files
DoctorWkt.unix-jun72/pages/e11-01
2008-04-26 01:21:03 +00:00

57 lines
1.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/ sh —— command interpreter
mov sp,r5
mov r5.shel larg / save orig sp in shel larg
cdpb B(r5),$’— / was this sh calleZd by init or loginx~
bne 2f / no
sys intr; O / yes, turn off interrupts
sys quit; O
2:
sys getuid / who is user
tst r0 / is it superuser
bne 2f / no
movb $'#,at / yes, set new prompt symbol
2:
cmn (r5),$l / tty input?
ble newline / yes, call with -(or with no command
/ file name)
clr rO / no, set ttv
sys close / close it
mov 4(r5),0f / get new file name
sys open; O:..; 0 / open it
bec 1f / branch if no error
jsr r5,error / error in file name
/<Input not found\n\O>: .even
sys exit
1:
clr at / clear prompt character, if reading non-tty
/ input file
newline:
tst at / is there a prompt symbol
beq newcom / no
mov $1,rO / yes
sys write; at; 2. / print prompt
newcom:
mov shellarq,sp /
mov $parbuf,r3 / initialize command list area
mov $parp,r4 / initialize command list pointers
clr infile / initialize alternate input
clr outfile / initialize alternate output
clr glflag / initialize global flag
newarg:
jsr pc,blank / squeeze out leading blanks
jsr r5,delim / is new character a ; \n or &
br 2f / yes
mov r3,—(sp) I no, push arg pointer onto stack
cmp rO,$'< / new input file?
bne 1f / no
mov (sp).infile / yes, save arg pointer
clr (sp) / clear pointer
br 3f
1:
cmp r0,$> / new output file?
bne newchar / no
mov (sp),outfile / yes, save arg pointer
clr (sp) / clear pointer
br 3f