home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / s1 / fed1.s < prev    next >
Encoding:
Text File  |  1975-05-13  |  1.2 KB  |  111 lines

  1. signal = 48.
  2. testing = 0
  3. /
  4. /    command interpreter for form letter editor
  5. /
  6. /
  7. /
  8. command:
  9.     sys    signal; 2; inter
  10.     jsr    pc,initl
  11.     mov    sp,spi
  12. loop:
  13.     mov    spi,sp
  14.     mov    $buffer,r2
  15.     clr    r4
  16.     clr    iflag
  17. 1:
  18.     jsr    pc,tfiget
  19.     cmpb    $' ,r0
  20.     beq    1f
  21.     cmpb    $'\n,r0
  22.     bne    2f
  23.     clrb    (r2)
  24.     br    4f
  25. 2:
  26.     movb    r0,(r2)+
  27.     br    1b
  28. 1:
  29.     clrb    (r2)
  30.     mov    $argc,r3
  31. 3:
  32.     mov    $arg,r2
  33. 2:
  34.     jsr    pc,tfiget
  35.     cmpb    $' ,r0
  36.     beq    1f
  37.     cmpb    $'\n,r0
  38.     beq    1f
  39.     movb    r0,(r2)+
  40.     br    2b
  41. 1:
  42.     clrb    (r2)+
  43.     inc    r4
  44. 1:
  45.     movb    -(r2),sv
  46.     cmp    r2,$arg
  47.     blos    1f
  48.     movb    -(r2),-(sp)
  49.     movb    sv,1(sp)
  50.     cmp    r2,$arg
  51.     bhi    1b
  52.     mov    sp,(r3)+
  53.     br    2f
  54. 1:
  55.     clrb    -(sp)
  56.     movb    sv,1(sp)
  57.     mov    sp,(r3)
  58.     add    $1,(r3)+
  59. 2:
  60.     cmpb    r0,$'\n
  61.     bne    3b
  62. 1:
  63.     mov    -(r3),-(sp)
  64.     cmp    r3,$argc
  65.     bhi    1b
  66. 4:
  67.     mov    r4,-(sp)
  68. 3:
  69.     clr    r0
  70.     mov    $tabl,r4
  71. 2:
  72.     mov    (r4)+,r1
  73.     cmp    r4,$tend
  74.     bhi    error
  75.     add    $2,r0
  76.     mov    $buffer,r2
  77. 1:
  78.     cmpb    (r1)+,(r2)+
  79.     bne    2b
  80.     tstb    (r1)
  81.     bne    1b
  82.     tstb    (r2)
  83.     bne    2b
  84.     sub    $2,r0
  85.     add    $jtable,r0
  86.     clr    vflag
  87.     clr    qflag
  88.     jmp    *(r0)
  89. /
  90. error:
  91.     mov    $1,r0
  92.     sys    write; err; 2
  93.     br    loop
  94. /
  95. /
  96. tabl: c1; c2; c3; c4; c5; c6; c7; c8; 
  97. tend:    0
  98. c1:    <n\0>
  99. c2:    <p\0>
  100. c3:    <e\0>
  101. c4:    <d\0>
  102. c5:    <m\0>
  103. c6:    <fin\0>
  104. c7:    <q\0>
  105. c8:    <c\0>
  106. err:    <?\n>
  107. endt:    .even
  108. jtable: list; listf; ed; remove; rename;  fin; q; memck;
  109. spi:    .=.+2
  110. sv:    .=.+2
  111.