📄 nroff5.s
字号:
/// hyp1 -- driverhyphen: tst hypedf bne 3f tst hyf beq 3f inc hypedf mov wordp,r0 clr nhyph1: jsr pc,punct bne 1f inc r0 br 1b1: jsr pc,alph bne 3f mov r0,wordstart1: inc r0 jsr pc,alph beq 1b dec r0 mov r0,hstart1: inc r0 tstb (r0) beq 2f jsr pc,punct bne 3f br 1b2: mov hstart,wordend jsr pc,exword beq 0f jsr r5,suffix tst exf bne 0f jsr r5,digram0: bit $4,hyf beq 0f mov wordend,r0 bicb $!177,-1(r0)0: mov wordstart,r0 bicb $!177,1(r0) bit $10,hyf beq 3f bicb $!177,2(r0)3: rts pccasehw: jsr pc,skipcont bne 2f mov nexth,r1 cmp r1,$ehbuf-2 bhis 3f1: jsr pc,getchar bmi 1f cmpb r0,$' / beq 4f cmpb r0,$012 beq 1f movb r0,(r1)+ cmp r1,$ehbuf-2 blo 1b br 3f1: clrb (r1)+ mov r1,nexth clrb (r1)+2: rts pc3: jsr r5,string;hmess clrb *nexth br 2b4: jsr pc,1b br casehwhmess: <Exception word space full.\n\0>.evenexword: clr exf clr -(sp) mov r1,-(sp) mov r2,-(sp) mov r3,-(sp) mov r4,-(sp) mov $hbuf,r2 mov hstart,r0 cmpb (r0)+,(r0)+0: mov r2,8(sp) mov wordstart,r1 tstb (r2) beq 4f1: movb (r2)+,r4 cmpb r4,$'- beq 1b movb (r1)+,r3/ tstb r3/ bne 2f cmp r1,r0 blo 2f tstb r4 beq 3f2: tstb r4 bne 2f/ tstb (r1) tstb -1(r0) bne 2f cmpb r3,$'s beq 3f2: tstb r4 beq 0b/ tstb r3/ beq 2f cmp r1,r0 bhis 2f cmpb r4,r3 beq 1b2: tstb (r2)+ bne 2b br 0b3: mov wordstart,r1 mov 8(sp),r2 clr 8(sp) inc exf1: tstb (r1)+ cmpb (r2)+,$'- bne 0f bisb $200,-1(r1) tstb (r2)+0: tstb (r2) bne 1b4: mov (sp)+,r4 mov (sp)+,r3 mov (sp)+,r2 mov (sp)+,r1 tst (sp)+ rts pcpunct: tst old bne 4f cmpb (r0),$010 beq 0f movb (r0),r2 jsr pc,alph2 beq 0f sez rts pc0: clz rts pc4: mov $3f,r21: cmpb (r0),(r2)+ beq 2f tstb (r2) bne 1b clz2: rts pc3: < .,()"\'`\0> /should be more.evenmaplow: cmp r2,$'a bhis 1f add $'a-'A,r21: rts pcvowel: cmpb r2,$'a beq 1f cmpb r2,$'e beq 1f cmpb r2,$'i beq 1f cmpb r2,$'o beq 1f cmpb r2,$'u beq 1f cmpb r2,$'y beq 1f cmpb r2,$'A beq 1f cmpb r2,$'E beq 1f cmpb r2,$'I beq 1f cmpb r2,$'O beq 1f cmpb r2,$'U beq 1f cmpb r2,$'Y1: rts pccheckvow: mov r0,-(sp)1: movb -(r0),r2 jsr pc,vowel beq 1f jsr pc,alph beq 1b mov (sp)+,r0 clz rts r51: mov (sp)+,r0 sez rts r5/ hyp2 -- suffix and digramdigram: mov hstart,r01: jsr pc,alph bne 3f jsr pc,vowel beq 1f dec r0 br 1b1: mov r0,hstart1: movb -(r0),r2 jsr pc,alph2 bne 3f jsr pc,vowel bne 1b clr maxdig mov r0,nhstart1: mov $1,r3 movb -1(r0),r2 jsr pc,alph2 beq 2f movb (r0),r2 mov $'a,r1 jsr r5,dilook; bxh br 4f2: movb -2(r0),r2 mov $xxh,0f jsr pc,alph2 beq 2f mov $bxxh,0f2: movb -1(r0),r1 movb (r0),r2 jmp 7f.data7: jsr r5,dilook; 0:xxh jmp 8f.text8:4: movb (r0)+,r1 movb (r0),r2 jsr r5,dilook; xhx movb (r0),r1 movb 1(r0),r2 jsr r5,dilook; hxx cmp r3,maxdig blos 2f mov r3,maxdig mov r0,maxloc2: cmp r0,hstart blo 1b mov nhstart,hstart cmp maxdig,thresh blo digram bisb $200,*maxloc inc nhyph/ mov maxdig,*octbufp/ inc octcnt/ add $2,octbufp br digram3: rts r5dilook: mov r4,-(sp) bic $!177,r2 bic $!177,r1 jsr pc,maplow sub $'a,r2 cmp r2,$'z-'a bhi 3f mov r2,r4 mov r1,r2 jsr pc,maplow sub $'a,r2 cmp r2,$'z-'a bhi 3f mov r3,-(sp) mov r2,r3 mpy $13.,r3 clr r2 clc ror r4 adc r2 add r3,r4 add (r5)+,r4 movb (r4),r4 tst r2 bne 1f asr r4 asr r4 asr r4 asr r41: bic $!17,r4 mov r4,r3 mpy (sp)+,r3 br 4f3: clr r3 tst (r5)+4: mov (sp)+,r4 rts r5suffix: mov hstart,r0 jsr pc,alph bne 4f jsr pc,maplow sub $'a,r2 asl r2 mov suftab(r2),-(sp) bic $!37777,(sp) beq 3f1: mov hstart,r0 mov (sp),r1 jsr pc,rdsuf movb (r1),r3 beq 3f bic $!17,r3 add r3,(sp) add r1,r32: movb -(r3),r2 cmp r3,r1 ble 2f bic $!177,r2 mov r2,-(sp) movb -(r0),r2 jsr pc,maplow cmp r2,(sp)+ bne 1b br 2b2: mov hstart,r0 tst (sp)+ movb (r1),r3 bic $!17,r3 add r1,r3 bitb $200,(r1)+ bne 1f2: dec r0 cmp r3,r1 ble 2f tstb -(r3) bpl 2b1: mov r0,hstart dec hstart bitb $100,-1(r1) bne 2b jsr r5,checkvow bne 4f bisb $200,(r0) br 2b2: bitb $40,-(r1) bne 4f jsr pc,exword bne suffix br 4f/ beq suffix/ br 4f3: tst (sp)+4: rts r5rdsuf: mov r0,-(sp) mov suff,nfile mov 4(sp),r1 jsr pc,rdsufb mov $sufb,r2 movb r0,(r2)+ mov r0,r3 bic $!17,r31: dec r3 blt 1f inc r1 jsr pc,rdsufb movb r0,(r2)+ br 1b1: mov $sufb,r1 mov (sp)+,r0 rts pc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -