Add original unix v6
This commit is contained in:
@@ -0,0 +1,294 @@
|
||||
/
|
||||
/
|
||||
|
||||
/ hyp1 -- driver
|
||||
|
||||
hyphen:
|
||||
tst hypedf
|
||||
bne 3f
|
||||
tst hyf
|
||||
beq 3f
|
||||
inc hypedf
|
||||
mov wordp,r0
|
||||
clr nhyph
|
||||
1:
|
||||
jsr pc,punct
|
||||
bne 1f
|
||||
inc r0
|
||||
br 1b
|
||||
1:
|
||||
jsr pc,alph
|
||||
bne 3f
|
||||
1:
|
||||
inc r0
|
||||
jsr pc,alph
|
||||
beq 1b
|
||||
dec r0
|
||||
mov r0,hstart
|
||||
1:
|
||||
inc r0
|
||||
tstb (r0)
|
||||
beq 2f
|
||||
jsr pc,punct
|
||||
bne 3f
|
||||
br 1b
|
||||
2:
|
||||
jsr r5,suffix
|
||||
jsr r5,digram
|
||||
3:
|
||||
rts pc
|
||||
|
||||
|
||||
punct:
|
||||
tst old
|
||||
bne 4f
|
||||
cmpb (r0),$010
|
||||
beq 0f
|
||||
movb (r0),r2
|
||||
jsr pc,alph2
|
||||
beq 0f
|
||||
sez
|
||||
rts pc
|
||||
0:
|
||||
clz
|
||||
rts pc
|
||||
4:
|
||||
mov $3f,r2
|
||||
1:
|
||||
cmpb (r0),(r2)+
|
||||
beq 2f
|
||||
tstb (r2)
|
||||
bne 1b
|
||||
clz
|
||||
2:
|
||||
rts pc
|
||||
3: < .,()"\'`\0> /should be more
|
||||
.even
|
||||
maplow:
|
||||
cmp r2,$'a
|
||||
bhis 1f
|
||||
add $'a-'A,r2
|
||||
1:
|
||||
rts pc
|
||||
|
||||
vowel:
|
||||
cmp r2,$'a
|
||||
beq 1f
|
||||
cmp r2,$'e
|
||||
beq 1f
|
||||
cmp r2,$'i
|
||||
beq 1f
|
||||
cmp r2,$'o
|
||||
beq 1f
|
||||
cmp r2,$'u
|
||||
beq 1f
|
||||
cmp r2,$'y
|
||||
1:
|
||||
rts pc
|
||||
|
||||
checkvow:
|
||||
mov r0,-(sp)
|
||||
1:
|
||||
movb -(r0),r2
|
||||
jsr pc,vowel
|
||||
beq 1f
|
||||
jsr pc,alph
|
||||
beq 1b
|
||||
mov (sp)+,r0
|
||||
clz
|
||||
rts r5
|
||||
1:
|
||||
mov (sp)+,r0
|
||||
sez
|
||||
rts r5
|
||||
|
||||
/ hyp2 -- suffix and digram
|
||||
|
||||
digram:
|
||||
mov hstart,r0
|
||||
1:
|
||||
jsr pc,alph
|
||||
bne 3f
|
||||
jsr pc,vowel
|
||||
beq 1f
|
||||
dec r0
|
||||
br 1b
|
||||
1:
|
||||
mov r0,hstart
|
||||
1:
|
||||
movb -(r0),r2
|
||||
jsr pc,alph2
|
||||
bne 3f
|
||||
jsr pc,vowel
|
||||
bne 1b
|
||||
clr maxdig
|
||||
mov r0,nhstart
|
||||
1:
|
||||
mov $1,r3
|
||||
movb -1(r0),r2
|
||||
jsr pc,alph2
|
||||
beq 2f
|
||||
movb (r0),r2
|
||||
mov $'a,r1
|
||||
jsr r5,dilook; bxh
|
||||
br 4f
|
||||
2:
|
||||
movb -2(r0),r2
|
||||
mov $xxh,0f
|
||||
jsr pc,alph2
|
||||
beq 2f
|
||||
mov $bxxh,0f
|
||||
2:
|
||||
movb -1(r0),r1
|
||||
movb (r0),r2
|
||||
jsr r5,dilook; 0:xxh
|
||||
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,maxloc
|
||||
2:
|
||||
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 digram
|
||||
3:
|
||||
rts r5
|
||||
|
||||
dilook:
|
||||
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 r4
|
||||
1:
|
||||
bic $!17,r4
|
||||
mov r4,r3
|
||||
mpy (sp)+,r3
|
||||
br 4f
|
||||
3:
|
||||
clr r3
|
||||
tst (r5)+
|
||||
4:
|
||||
mov (sp)+,r4
|
||||
rts r5
|
||||
|
||||
suffix:
|
||||
mov hstart,r0
|
||||
jsr pc,alph
|
||||
bne 4f
|
||||
jsr pc,maplow
|
||||
sub $'a,r2
|
||||
asl r2
|
||||
mov suftab(r2),-(sp)
|
||||
bic $!37777,(sp)
|
||||
beq 3f
|
||||
1:
|
||||
mov hstart,r0
|
||||
mov (sp),r1
|
||||
jsr pc,rdsuf
|
||||
movb (r1),r3
|
||||
beq 3f
|
||||
bic $!17,r3
|
||||
add r3,(sp)
|
||||
add r1,r3
|
||||
2:
|
||||
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 2b
|
||||
2:
|
||||
mov hstart,r0
|
||||
tst (sp)+
|
||||
movb (r1),r3
|
||||
bic $!17,r3
|
||||
add r1,r3
|
||||
bitb $200,(r1)+
|
||||
bne 1f
|
||||
2:
|
||||
dec r0
|
||||
cmp r3,r1
|
||||
ble 2f
|
||||
tstb -(r3)
|
||||
bpl 2b
|
||||
1:
|
||||
mov r0,hstart
|
||||
dec hstart
|
||||
bitb $100,-1(r1)
|
||||
bne 2b
|
||||
jsr r5,checkvow
|
||||
bne 4f
|
||||
bisb $200,(r0)
|
||||
br 2b
|
||||
2:
|
||||
bitb $40,-(r1)
|
||||
beq suffix
|
||||
br 4f
|
||||
3:
|
||||
tst (sp)+
|
||||
4:
|
||||
rts r5
|
||||
|
||||
rdsuf:
|
||||
mov r0,-(sp)
|
||||
mov suff,nfile
|
||||
mov 4(sp),r1
|
||||
jsr pc,rdsufb
|
||||
mov $sufb,r2
|
||||
movb r0,(r2)+
|
||||
mov r0,r3
|
||||
bic $!17,r3
|
||||
1:
|
||||
dec r3
|
||||
blt 1f
|
||||
inc r1
|
||||
jsr pc,rdsufb
|
||||
movb r0,(r2)+
|
||||
br 1b
|
||||
1:
|
||||
mov $sufb,r1
|
||||
mov (sp)+,r0
|
||||
rts pc
|
||||
Reference in New Issue
Block a user