Research V6 development
authorKen Thompson <ken@research.uucp>
Wed, 14 May 1975 00:49:31 +0000 (19:49 -0500)
committerKen Thompson <ken@research.uucp>
Wed, 14 May 1975 00:49:31 +0000 (19:49 -0500)
Work on file usr/source/s1/fed1.s

Co-Authored-By: Dennis Ritchie <dmr@research.uucp>
Synthesized-from: v6

usr/source/s1/fed1.s [new file with mode: 0644]

diff --git a/usr/source/s1/fed1.s b/usr/source/s1/fed1.s
new file mode 100644 (file)
index 0000000..47f57a3
--- /dev/null
@@ -0,0 +1,110 @@
+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