home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / s7 / roff5.s < prev    next >
Encoding:
Text File  |  1975-07-17  |  2.9 KB  |  295 lines

  1. /
  2. /
  3.  
  4. / hyp1 -- driver
  5.  
  6. hyphen:
  7.     tst    hypedf
  8.     bne    3f
  9.     tst    hyf
  10.     beq    3f
  11.     inc    hypedf
  12.     mov    wordp,r0
  13.     clr    nhyph
  14. 1:
  15.     jsr    pc,punct
  16.     bne    1f
  17.     inc    r0
  18.     br    1b
  19. 1:
  20.     jsr    pc,alph
  21.     bne    3f
  22. 1:
  23.     inc    r0
  24.     jsr    pc,alph
  25.     beq    1b
  26.     dec    r0
  27.     mov    r0,hstart
  28. 1:
  29.     inc    r0
  30.     tstb    (r0)
  31.     beq    2f
  32.     jsr    pc,punct
  33.     bne    3f
  34.     br    1b
  35. 2:
  36.     jsr    r5,suffix
  37.     jsr    r5,digram
  38. 3:
  39.     rts    pc
  40.  
  41.  
  42. punct:
  43.     tst    old
  44.     bne 4f
  45.     cmpb    (r0),$010
  46.     beq    0f
  47.     movb    (r0),r2
  48.     jsr    pc,alph2
  49.     beq    0f
  50.     sez
  51.     rts     pc
  52. 0:
  53.     clz
  54.     rts    pc
  55. 4:
  56.     mov     $3f,r2
  57. 1:
  58.     cmpb    (r0),(r2)+
  59.     beq    2f
  60.     tstb    (r2)
  61.     bne    1b
  62.     clz
  63. 2:
  64.     rts    pc
  65. 3: < .,()"\'`\0>    /should be more
  66. .even
  67. maplow:
  68.     cmp    r2,$'a
  69.     bhis    1f
  70.     add    $'a-'A,r2
  71. 1:
  72.     rts    pc
  73.  
  74. vowel:
  75.     cmp    r2,$'a
  76.     beq    1f
  77.     cmp    r2,$'e
  78.     beq    1f
  79.     cmp    r2,$'i
  80.     beq    1f
  81.     cmp    r2,$'o
  82.     beq    1f
  83.     cmp    r2,$'u
  84.     beq    1f
  85.     cmp    r2,$'y
  86. 1:
  87.     rts    pc
  88.  
  89. checkvow:
  90.     mov    r0,-(sp)
  91. 1:
  92.     movb    -(r0),r2
  93.     jsr    pc,vowel
  94.     beq    1f
  95.     jsr    pc,alph
  96.     beq    1b
  97.     mov    (sp)+,r0
  98.     clz
  99.     rts    r5
  100. 1:
  101.     mov    (sp)+,r0
  102.     sez
  103.     rts    r5
  104.  
  105. / hyp2 -- suffix and digram
  106.  
  107. digram:
  108.     mov    hstart,r0
  109. 1:
  110.     jsr    pc,alph
  111.     bne    3f
  112.     jsr    pc,vowel
  113.     beq    1f
  114.     dec    r0
  115.     br    1b
  116. 1:
  117.     mov    r0,hstart
  118. 1:
  119.     movb    -(r0),r2
  120.     jsr    pc,alph2
  121.     bne    3f
  122.     jsr    pc,vowel
  123.     bne    1b
  124.     clr    maxdig
  125.     mov    r0,nhstart
  126. 1:
  127.     mov    $1,r3
  128.     movb    -1(r0),r2
  129.     jsr    pc,alph2
  130.     beq    2f
  131.     movb    (r0),r2
  132.     mov    $'a,r1
  133.     jsr    r5,dilook; bxh
  134.     br    4f
  135. 2:
  136.     movb    -2(r0),r2
  137.     mov    $xxh,0f
  138.     jsr    pc,alph2
  139.     beq    2f
  140.     mov    $bxxh,0f
  141. 2:
  142.     movb    -1(r0),r1
  143.     movb    (r0),r2
  144.     jsr    r5,dilook; 0:xxh
  145. 4:
  146.     movb    (r0)+,r1
  147.     movb    (r0),r2
  148.     jsr    r5,dilook; xhx
  149.     movb    (r0),r1
  150.     movb    1(r0),r2
  151.     jsr    r5,dilook; hxx
  152.     cmp    r3,maxdig
  153.     blos    2f
  154.     mov    r3,maxdig
  155.     mov    r0,maxloc
  156. 2:
  157.     cmp    r0,hstart
  158.     blo    1b
  159.     mov    nhstart,hstart
  160.     cmp    maxdig,thresh
  161.     blo    digram
  162.     bisb    $200,*maxloc
  163.     inc    nhyph
  164. /    mov    maxdig,*octbufp
  165. /    inc    octcnt
  166. /    add    $2,octbufp
  167.     br    digram
  168. 3:
  169.     rts    r5
  170.  
  171. dilook:
  172.     mov    r4,-(sp)
  173.     bic    $!177,r2
  174.     bic    $!177,r1
  175.     jsr    pc,maplow
  176.     sub    $'a,r2
  177.     cmp    r2,$'z-'a
  178.     bhi    3f
  179.     mov    r2,r4
  180.     mov    r1,r2
  181.     jsr    pc,maplow
  182.     sub    $'a,r2
  183.     cmp    r2,$'z-'a
  184.     bhi    3f
  185.     mov    r3,-(sp)
  186.     mov    r2,r3
  187.     mpy    $13.,r3
  188.     clr    r2
  189.     clc
  190.     ror    r4
  191.     adc    r2
  192.     add    r3,r4
  193.     add    (r5)+,r4
  194.     movb    (r4),r4
  195.     tst    r2
  196.     bne    1f
  197.     asr    r4
  198.     asr    r4
  199.     asr    r4
  200.     asr    r4
  201. 1:
  202.     bic    $!17,r4
  203.     mov    r4,r3
  204.     mpy    (sp)+,r3
  205.     br    4f
  206. 3:
  207.     clr    r3
  208.     tst    (r5)+
  209. 4:
  210.     mov    (sp)+,r4
  211.     rts    r5
  212.  
  213. suffix:
  214.     mov    hstart,r0
  215.     jsr    pc,alph
  216.     bne    4f
  217.     jsr    pc,maplow
  218.     sub    $'a,r2
  219.     asl    r2
  220.     mov    suftab(r2),-(sp)
  221.     bic    $!37777,(sp)
  222.     beq    3f
  223. 1:
  224.     mov    hstart,r0
  225.     mov    (sp),r1
  226.     jsr    pc,rdsuf
  227.     movb    (r1),r3
  228.     beq    3f
  229.     bic    $!17,r3
  230.     add    r3,(sp)
  231.     add    r1,r3
  232. 2:
  233.     movb    -(r3),r2
  234.     cmp    r3,r1
  235.     ble    2f
  236.     bic    $!177,r2
  237.     mov    r2,-(sp)
  238.     movb    -(r0),r2
  239.     jsr    pc,maplow
  240.     cmp    r2,(sp)+
  241.     bne    1b
  242.     br    2b
  243. 2:
  244.     mov    hstart,r0
  245.     tst    (sp)+
  246.     movb    (r1),r3
  247.     bic    $!17,r3
  248.     add    r1,r3
  249.     bitb    $200,(r1)+
  250.     bne    1f
  251. 2:
  252.     dec    r0
  253.     cmp    r3,r1
  254.     ble    2f
  255.     tstb    -(r3)
  256.     bpl    2b
  257. 1:
  258.     mov    r0,hstart
  259.     dec    hstart
  260.     bitb    $100,-1(r1)
  261.     bne    2b
  262.     jsr    r5,checkvow
  263.     bne    4f
  264.     bisb    $200,(r0)
  265.     br    2b
  266. 2:
  267.     bitb    $40,-(r1)
  268.     beq    suffix
  269.     br    4f
  270. 3:
  271.     tst    (sp)+
  272. 4:
  273.     rts    r5
  274.  
  275. rdsuf:
  276.     mov    r0,-(sp)
  277.     mov    suff,nfile
  278.     mov    4(sp),r1
  279.     jsr    pc,rdsufb
  280.     mov    $sufb,r2
  281.     movb    r0,(r2)+
  282.     mov    r0,r3
  283.     bic    $!17,r3
  284. 1:
  285.     dec    r3
  286.     blt    1f
  287.     inc    r1
  288.     jsr    pc,rdsufb
  289.     movb    r0,(r2)+
  290.     br    1b
  291. 1:
  292.     mov    $sufb,r1
  293.     mov    (sp)+,r0
  294.     rts    pc
  295.