Work on file usr/source/s1/fed1.s
Co-Authored-By: Dennis Ritchie <dmr@research.uucp>
Synthesized-from: v6
--- /dev/null
+signal = 48.
+testing = 0
+/
+/ command interpreter for form letter editor
+/
+/
+/
+command:
+ sys signal; 2; inter
+ jsr pc,initl
+ mov sp,spi
+loop:
+ mov spi,sp
+ mov $buffer,r2
+ clr r4
+ clr iflag
+1:
+ jsr pc,tfiget
+ cmpb $' ,r0
+ beq 1f
+ cmpb $'\n,r0
+ bne 2f
+ clrb (r2)
+ br 4f
+2:
+ movb r0,(r2)+
+ br 1b
+1:
+ clrb (r2)
+ mov $argc,r3
+3:
+ mov $arg,r2
+2:
+ jsr pc,tfiget
+ cmpb $' ,r0
+ beq 1f
+ cmpb $'\n,r0
+ beq 1f
+ movb r0,(r2)+
+ br 2b
+1:
+ clrb (r2)+
+ inc r4
+1:
+ movb -(r2),sv
+ cmp r2,$arg
+ blos 1f
+ movb -(r2),-(sp)
+ movb sv,1(sp)
+ cmp r2,$arg
+ bhi 1b
+ mov sp,(r3)+
+ br 2f
+1:
+ clrb -(sp)
+ movb sv,1(sp)
+ mov sp,(r3)
+ add $1,(r3)+
+2:
+ cmpb r0,$'\n
+ bne 3b
+1:
+ mov -(r3),-(sp)
+ cmp r3,$argc
+ bhi 1b
+4:
+ mov r4,-(sp)
+3:
+ clr r0
+ mov $tabl,r4
+2:
+ mov (r4)+,r1
+ cmp r4,$tend
+ bhi error
+ add $2,r0
+ mov $buffer,r2
+1:
+ cmpb (r1)+,(r2)+
+ bne 2b
+ tstb (r1)
+ bne 1b
+ tstb (r2)
+ bne 2b
+ sub $2,r0
+ add $jtable,r0
+ clr vflag
+ clr qflag
+ jmp *(r0)
+/
+error:
+ mov $1,r0
+ sys write; err; 2
+ br loop
+/
+/
+tabl: c1; c2; c3; c4; c5; c6; c7; c8;
+tend: 0
+c1: <n\0>
+c2: <p\0>
+c3: <e\0>
+c4: <d\0>
+c5: <m\0>
+c6: <fin\0>
+c7: <q\0>
+c8: <c\0>
+err: <?\n>
+endt: .even
+jtable: list; listf; ed; remove; rename; fin; q; memck;
+spi: .=.+2
+sv: .=.+2