From 4ad4d0b026ec5cd35b103502fda7bc27e1c9369d Mon Sep 17 00:00:00 2001 From: Ken Thompson Date: Wed, 10 Jan 1979 15:03:48 -0500 Subject: [PATCH] Research V7 development Work on file usr/src/cmd/roff/roff1.s Work on file usr/src/cmd/roff/roff3.s Work on file usr/src/cmd/roff/roff2.s Work on file usr/src/cmd/roff/roff4.s Work on file usr/src/cmd/roff/roff5.s Work on file usr/src/cmd/roff/roff7.s Work on file usr/src/cmd/roff/roff8.s Synthesized-from: v7 --- usr/src/cmd/roff/roff1.s | 570 +++++++++++++++++++++++++++++++++++++++ usr/src/cmd/roff/roff2.s | 406 ++++++++++++++++++++++++++++ usr/src/cmd/roff/roff3.s | 485 +++++++++++++++++++++++++++++++++ usr/src/cmd/roff/roff4.s | 516 +++++++++++++++++++++++++++++++++++ usr/src/cmd/roff/roff5.s | 294 ++++++++++++++++++++ usr/src/cmd/roff/roff7.s | 121 +++++++++ usr/src/cmd/roff/roff8.s | 128 +++++++++ 7 files changed, 2520 insertions(+) create mode 100644 usr/src/cmd/roff/roff1.s create mode 100644 usr/src/cmd/roff/roff2.s create mode 100644 usr/src/cmd/roff/roff3.s create mode 100644 usr/src/cmd/roff/roff4.s create mode 100644 usr/src/cmd/roff/roff5.s create mode 100644 usr/src/cmd/roff/roff7.s create mode 100644 usr/src/cmd/roff/roff8.s diff --git a/usr/src/cmd/roff/roff1.s b/usr/src/cmd/roff/roff1.s new file mode 100644 index 0000000000..05e12af452 --- /dev/null +++ b/usr/src/cmd/roff/roff1.s @@ -0,0 +1,570 @@ +/ +/ + +/ roff1 -- text formatter + + .globl _ttyname + nop = 000240 + signal = 48. + +ibuf: /init code in ibuf+obuf + cmp sp,$end + bhi 1f + jsr r5,string; emes1 + sys exit +1: + clr r0 + jsr pc,mesg + sys signal; 1; place + sys signal; 2; place + jsr pc,makebf + sys open; suffil; 0 + bes 1f + mov r0,suff + sys lseek; 0;20; 0 /actually lseek + bes 1f + mov suff,r0 + sys read; suftab; 2*26. +1: + clr r0 + mov (sp)+,argc + dec argc + bne 1f + jmp place +1: + tst (sp)+ + mov (sp),r4 + cmpb (r4)+,$'+ + bne 2f + jsr r5,pnum; pfrom + br 3f +2: + cmpb -1(r4),$'- + bne 2f + cmpb (r4),$'s + bne 0f + inc stop + br 3f +0: + cmpb (r4),$'h + bne 0f + clr slow + br 3f +0: + jsr r5,pnum; pto +3: + dec argc + bgt 1b +2: + mov $nop,get1a + mov $ibuf,ibufp + mov $ibuf,eibuf + mov sp,argp + jsr pc,topbot + clr r0 +1: + movb r0,trtab(r0) + inc r0 + cmp r0,$128. + bne 1b + jsr pc,rbreak + jsr pc,istop + jmp loop +makebf: + sys stat; bfn; stbuf + bec 2f + sys creat; bfn; 400 + bec 1f +2: + incb bfn+8 + cmpb bfn+8,$'z + blos makebf + jmp place +1: + mov r0,ibf + sys write; sufbuf;128. + sys open; bfn;0 + mov r0,ibf1 + rts pc + +string: + mov (r5)+,r1 + mov r1,r2 + mov r1,0f +1: + tstb (r1)+ + bne 1b + sub r2,r1 + mov r1,1f + mov $1,r0 + sys write; 0:..; 1:.. + rts r5 + +emes1: +xxx: +.even +obuf=ibuf+512. +.=ibuf+1024. +loop: + clr nlflg + jsr pc,getchar + cmpb r0,cc + beq 2f + movb r0,ch + jsr pc,text + br loop +2: + jsr pc,control + jsr pc,flushi + br loop + +mesg: + tst r0 + bne setsame + clr -(sp) + jsr pc,_ttyname + tst (sp)+ + mov r0,9f + mov r0,8f + mov r0,7f + sys stat; 9:..; stbuf + mov stbuf+4,0f + mov 0f,1f + bic $22,0f + sys chmod; 8:..; 0:.. + rts pc +setsame: + sys chmod; 7:..; 1:.. + rts pc + +pnum: + mov r4,ibufp + mov $37777,eibuf + jsr r5,number1; 0 + mov r0,*(r5)+ + clr ch + rts r5 + +flushi: + clr ch + tst nlflg + bne 1f + jsr pc,getchar + br flushi +1: + rts pc + +gettchar: + tst ul + ble getchar + tst ulstate + beq 3f + tst bsc + bgt 1f + tst ulc + bgt 2f + clr ulstate + br 3f +1: + dec bsc + mov $010,r0 + rts pc +2: + dec ulc + mov $'_,r0 + rts pc +3: + jsr pc,getchar + cmp r0,$'0 + blt 1f + cmp r0,$'9 + ble 2f + cmp r0,$'A + blt 1f + cmp r0,$'Z + ble 2f + cmp r0,$'a + blt 1f + cmp r0,$'z + ble 2f +1: + tst ulc + bgt 3f + rts pc +3: + mov $1,ulstate + mov r0,ch + br gettchar +2: + inc bsc + inc ulc + rts pc + +getchar: + mov ch,r0 + beq 1f + clr ch + rts pc +1: + tst nlflg + beq 1f + mov $'\n,r0 + rts pc +1: + jsr pc,get1 + cmp r0,$'\\ + bne 2f + jsr pc,get1 + jsr r5,switch; esctab + br 3f +2: + cmp r0,$033 /prefix + bne 3f + jsr pc,get1 + jsr r5,switch; pfxtab +3: + cmp r0,$'\n + bne 3f + inc nlflg + clr column +3: + mov r1,-(sp) + jsr pc,width + add r1,column + mov (sp)+,r1 + rts pc + +esctab: + .byte 'd, 032 /hlf (down) + .byte 'u, 035 /hlr (up) + .byte 'r, 036 /flr (reverse) + .byte 'x, 016 /SO (extra chars) + .byte 'y, 017 /SI (normal characters) + .byte 'l, 0177 /delete + .byte 't, 011 /hor tab + .byte 'a, 0100 /at sign + .byte 'n, 043 /number sign + .byte '\\, 134 /backslash + .byte 0, 0 + +pfxtab: + .byte '7, 036 /flr + .byte '8, 035 /hlr + .byte '9, 032 /hlf + .byte '4, 030 /brs + .byte '3, 031 /rrs + .byte '1, 026 /set hor tabs + .byte '2, 027 /clr hor tabs + .byte 0,0 +pfxtab1: + +switch: + mov r1,-(sp) + mov (r5)+,r1 +1: + cmpb (r1)+,r0 + beq 1f + tstb (r1)+ + bne 1b + cmp r1,$pfxtab + ble 0f + cmp r1,$pfxtab1 + bgt 0f + mov $037,r0 +0: + mov (sp)+,r1 + rts r5 +1: + movb (r1)+,r0 + mov (sp)+,r1 + rts r5 + +get1: + tst nspace + ble 1f + dec nspace + mov tabc,r0 + rts pc +1: + mov r1,-(sp) +4: + tst ip + beq 5f + jsr pc,rbf + br 6f +5: + tst nx + bne 0f + mov ibufp,r1 + cmp r1,eibuf + bne 3f +0: + mov ifile,r0 + bne 2f +1: + jsr pc,nextfile +2: + clr nx + sys read; ibuf; 512. + bes done + tst r0 + beq 1b + mov $ibuf,r1 + add r1,r0 + mov r0,eibuf +3: + movb (r1)+,r0 + mov r1,ibufp +1: + cmp r0,$011 /tab + bne 6f + mov (sp)+,r1 + mov $tabtab,r0 + inc nspace +1: + tstb (r0) + beq get1 + cmpb column,(r0)+ + bge 1b + movb -(r0),nspace + sub column,nspace + br get1 +6: +get1a: br 7f + tst r0 + beq 4b +7: + mov (sp)+,r1 + rts pc + +nextfile: + mov ifile,r0 + beq 1f + sys close +1: + tst nx + beq 2f + mov $nextf,0f + br 3f +2: + dec argc + blt done + mov *argp,0f + add $2,argp +3: + sys open; 0:..; 0 + bes done + mov r0,ifile + rts pc + +done: + jsr pc,rbreak + jsr pc,eject + jsr pc,flush +place: + sys signal; 2; 1 + mov $1,r0 + jsr pc,mesg + sys unlink; bfn + sys exit + + rts pc + +putchar: + cmp pn,pfrom + blt 2f + clr pfrom + bic $!177,r0 + beq 2f + movb trtab(r0),r0 + cmp r0,$' + bne 1f + inc nsp +2: + rts pc +1: + cmp r0,$'\n + bne 1f + clr nsp + clr ocol + br 2f +1: + tst nsp + beq 2f + tst slow + bne 4f + jsr pc,dsp + cmp nsp,r1 + blt 4f + mov $011,3f+2 + cmp r1,$1 + bgt 8f + mov $040,3f+2 + dec nsp + br 9f +8: + sub r1,nsp +9: + mov r0,-(sp) +3: + mov $011,r0 + jsr pc,pchar1 + mov (sp)+,r0 + br 1b +4: + mov r0,-(sp) + mov $' ,r0 + jsr pc,pchar1 + mov (sp)+,r0 + dec nsp + bne 4b +2: + cmp r0,$026 + blt 2f + cmp r0,$037 + beq 3f + bgt 2f + mov r0,-(sp) + jsr r5, switch; unpfx + cmp (sp)+,r0 + beq 2f + mov r0,-(sp) + mov $033,r0 /prefix + jsr pc,pchar1 + dec ocol + mov (sp)+,r0 +2: +pchar1: + cmp r0,$011 + bne 1f + jsr pc,dsp + br 2f +1: + jsr pc,width +2: + add r1,ocol + movb r0,*obufp + inc obufp + cmp obufp,$obuf+128. + beq flush +3: + rts pc + +dsp: + clr r1 +1: + add $8.,r1 + cmp ocol,r1 + bgt 1b + sub ocol,r1 + bne 2f + mov $8.,r1 +2: + rts pc + + +unpfx: + .byte 032, '9 + .byte 035, '8 + .byte 036, '7 + .byte 031, '3 + .byte 030, '4 + .byte 026, '1 + .byte 027, '2 + .byte 0,0 + +flush: + mov obufp,r0 + sub $obuf,r0 + mov r0,0f + mov $1,r0 + sys write; obuf; 0:0 + mov $obuf,obufp + rts pc + +control: + jsr pc,getchar + mov r0,-(sp) + jsr pc,getchar + swab r0 + bis (sp),r0 + mov $contab,r1 +1: + mov (r1)+,(sp) + bic $100000,(sp) + cmp r0,(sp) + bne 4f + mov (r1),(sp) + tst -(r1) + bpl 3f + jsr pc,flushi + cmp ilistp,$iliste + bgt 5f + mov ip,*ilistp + add $2,ilistp + mov (sp),ip + br 5f +3: + jmp *(sp)+ +4: + cmp (r1)+,$-1 + bne 1b +5: + tst (sp)+ + rts pc + +contab: + ; casead + ; casebp +
; casebr + ; casecc + ; casece + ; caseds + ; casefi + ; casein + ; caseix +
  • ; caseli + ; casell + ; casels + ; casena + ; casene + ; casenf + ; casepa + ; casebl + ; casepl + ; casesk + ; casesp + ; casess + ; caseta + ; caseti + ; casetr +
      ; caseul + ; caseun + ; casehe + ; casehx + ; casefo + ; caseeh + ; caseoh + ; caseef + ; caseof + ; casem1 + ; casem2 + ; casem3 + ; casem4 + ; casehc + ; casehy + ; casen1 + ; casen2 + ; casenn + ; caseni + ; casejo + ; casear + ; casero + ; casenx + ; casepo + ; casede + ; caseig + ; casetc + ; casemk +bnames: .=.+100. + -1; -1 diff --git a/usr/src/cmd/roff/roff2.s b/usr/src/cmd/roff/roff2.s new file mode 100644 index 0000000000..3823c86469 --- /dev/null +++ b/usr/src/cmd/roff/roff2.s @@ -0,0 +1,406 @@ +/ +/ + +/ roff2 -- runoff + +casead: + jsr pc,rbreak + inc ad + rts pc + + rts pc + +casebr: + jsr pc,rbreak + rts pc + +casecc: + jsr pc,skipcont + jsr pc,getchar + cmp r0,$'\n + beq 1f + movb r0,cc +1: + mov r0,ch + rts pc + +casece: + jsr pc,rbreak + jsr r5,number; 0 + jsr pc,min + mov r0,ce + jsr pc,need + rts pc + +caseds: + jsr pc,rbreak + mov $2,ls + rts pc + +casefi: + jsr pc,rbreak + inc fi + rts pc + +casein: + jsr pc,rbreak + jsr r5,number; in + jsr pc,min + mov r0,in + mov r0,un + rts pc + +caseix: + jsr r5,number; in + jsr pc,min + mov r0,in + rts pc + +caseli: + jsr r5,number; 0 + mov r0,-(sp) +1: + dec (sp) + blt 1f + jsr pc,flushi + clr nlflg + jsr pc,text + br 1b +1: + tst (sp)+ + rts pc + +casell: + jsr r5,number; ll + jsr pc,min + mov r0,ll + rts pc + +casels: + jsr pc,rbreak + jsr pc,skipcont + jsr pc,getchar + cmp r0,$'\n + bne 1f + mov ls1,ls + rts pc +1: + mov r0,ch + jsr r5,number1; ls + dec r0 + jsr pc,min + inc r0 + mov r0,ls + mov r0,ls1 + rts pc + +casena: + jsr pc,rbreak + clr ad + rts pc + +casene: + jsr r5,number; 0 + jsr pc,min + jsr pc,need + rts pc + +casenf: + jsr pc,rbreak + clr fi + rts pc + +casepa: +casebp: + jsr pc,rbreak + jsr pc,eject + jsr pc,skipcont + tst nlflg + bne 1f + jsr r5,number; pn + jsr pc,min + mov r0,pn +1: + rts pc + +casebl: + jsr pc,rbreak + jsr r5,number; 0 + jsr pc,min + mov r0,-(sp) + jsr pc,need2 +1: + dec (sp) + blt 1f + mov $' ,r0 + jsr pc,storeline + jsr pc,rbreak + br 1b +1: + tst (sp)+ + rts pc + +casepl: + jsr r5,number; pl + mov r0,pl + jsr pc,topbot + rts pc + +casesk: + jsr r5,number; 0 + jsr pc,min + mov r0,skip + rts pc + +casesp: + jsr pc,rbreak + jsr r5,number; 0 + jsr r5,nlines; nline + rts pc + +casess: + jsr pc,rbreak + mov $1,ls + rts pc + +casetr: + jsr pc,skipcont +1: + jsr pc,getchar + cmp r0,$'\n + beq 1f + mov r0,r1 + jsr pc,getchar + cmp r0,$'\n + bne 2f + mov $' ,r0 +2: + movb r0,trtab(r1) + br 1b +1: + rts pc + +caseta: + mov $tabtab,r1 +1: + cmp r1,$etabtab + bhis 1f + jsr r5,number; 0 + jsr pc,min + dec r0 + ble 1f + movb r0,(r1)+ + br 1b +1: + clrb (r1) + rts pc + +caseti: + jsr pc,rbreak + jsr r5,number; in + jsr pc,min + mov r0,un + rts pc + +caseul: + jsr r5,number; 0 + jsr pc,min + mov r0,ul + rts pc + +caseun: + jsr r5,number; 0 + sub in,r0 + neg r0 + jsr pc,min + mov r0,un + rts pc + +casehx: + tst hx + beq 1f + clr hx + br 2f +1: + inc hx +2: + jsr pc,topbot + rts pc + +casehe: + jsr r5,headin; ehead + mov ehead,ohead + rts pc +casefo: + jsr r5,headin; efoot + mov efoot,ofoot + rts pc + +caseeh: + jsr r5,headin; ehead + rts pc + +caseoh: + jsr r5,headin; ohead + rts pc + +caseef: + jsr r5,headin; efoot + rts pc + +caseof: + jsr r5,headin; ofoot + rts pc + +casem1: + jsr r5,number; ma1 + jsr pc,min + mov r0,ma1 + br 1f + +casem2: + jsr r5,number; ma2 + jsr pc,min + mov r0,ma2 + br 1f + +casem3: + jsr r5,number; ma3 + jsr pc,min + mov r0,ma3 + br 1f + +casem4: + jsr r5,number; ma4 + jsr pc,min + mov r0,ma4 +1: + jsr pc,topbot + rts pc + +casehc: + jsr pc,skipcont + jsr pc,getchar + cmp r0,$'\n + bne 1f + movb $200,r0 +1: + mov r0,ohc + rts pc + +casetc: + jsr pc,skipcont + jsr pc,getchar + cmp r0,$'\n + bne 1f + mov $' ,r0 +1: + mov r0,tabc + rts pc + +casehy: + jsr r5,number; 0 + mov r0,hyf + rts pc + +casen1: + jsr pc,rbreak + mov $1,numbmod + br 1f +casen2: + jsr pc,rbreak + mov $2,numbmod +1: + clr nn + jsr r5,number; 0 + tst r0 + ble 1f + mov r0,lnumber + rts pc +1: + clr numbmod + rts pc + +casenn: + jsr r5,number; 0 + jsr pc,min + mov r0,nn + rts pc + +caseni: + jsr r5,number; ni + jsr pc,min + mov r0,ni + rts pc + +casejo: + jsr r5,number; 0 + mov r0,jfomod + rts pc + +casear: + clr ro + rts pc + +casero: + inc ro + rts pc + +casenx: + jsr pc,skipcont + jsr r5,getname; nextf + inc nx + jsr pc,nextfile + inc nlflg + clr ip + mov $ilist,ilistp + rts pc + +casepo: + jsr pc,rbreak + jsr r5,number; po + jsr pc,min + mov r0,po + rts pc + +casede: + tst ip + bne 5f + jsr pc,skipcont + jsr r5,getname; bname + clr skp + mov $contab,r1 + clr -(sp) +1: + mov (r1)+,(sp) + beq 2f + bic $100000,(sp) + cmp bname,(sp) + bne 3f +2: + bis $100000,bname + mov nextb,(r1) + mov bname,-(r1) + br 4f +3: + cmp (r1)+,$-1 + bne 1b + inc skp +4: + tst (r1)+ + jsr pc,copyb + tst (sp)+ +5: + rts pc + +caseig: + inc skp + jsr pc,copyb + rts pc + +casemk: + jsr pc,rbreak + mov $002,r0 /stx + jsr pc,putchar + rts pc + diff --git a/usr/src/cmd/roff/roff3.s b/usr/src/cmd/roff/roff3.s new file mode 100644 index 0000000000..aeed5959c3 --- /dev/null +++ b/usr/src/cmd/roff/roff3.s @@ -0,0 +1,485 @@ +/ +/ + +/roff3 -- runoff + +skipcont: + jsr pc,getchar + mov r0,r2 + jsr pc,alph2 + beq skipcont +1: + cmp $' ,r0 + bne 1f + jsr pc,getchar + br 1b +1: + mov r0,ch + rts pc + +rbreak: + tst nc + ble 4f + clrb *linep + inc totout + mov ls,r0 + dec r0 + jsr r5,nlines; nline + tst pl + beq 4f + cmp nl,bl + bne 1f +3: + jsr pc,eject +1: + tst nl + bne 3f + mov ma1,r0 + jsr r5,nlines; newline + bit $1,pn + bne 1f + jsr r5,headout; ehead + br 2f +1: + jsr r5,headout; ohead +2: + mov ma2,r0 + jsr r5,nlines; newline + dec skip + bge 3b +3: + mov po,r0 + jsr pc,space + jsr pc,donum + mov un,r0 + jsr pc,space + jsr pc,jfo + mov $line,r2 +1: + movb (r2)+,r0 + cmp $' ,r0 + bne 2f + jsr pc,fill + tst nc + bne 1b + br 3f +2: + jsr pc,putchar + dec nc + bgt 1b +3: + jsr pc,newline + clr nwd + clr ne + mov in,un +4: + jsr pc,setnel + rts pc + +jfo: + tst jfomod + beq 1f + mov fac,r0 + add fmq,r0 + beq 1f + clr fac + clr fmq + mov nel,r0 + cmp jfomod,$1 + bne 2f + asr r0 +2: + jsr pc,space +1: + rts pc + +donum: + tst numbmod + beq 2f + dec nn + blt 1f + mov $5,r0 + add ni,r0 + jsr pc,space + rts pc +1: + clr r0 + cmp lnumber,$100. + bge 1f + inc r0 + cmp lnumber,$10. + bge 1f + inc r0 +1: + add ni,r0 + jsr pc,space + mov lnumber,r0 + jsr r5,decimal; putchar + mov $2,r0 + jsr pc,space + inc lnumber +2: + rts pc + + +newline: + mov $'\n,r0 + jsr pc,putchar + inc nl + rts pc + +nline: + mov nl,r0 + beq 1f + cmp r0,bl + beq 1f + jsr pc,newline +1: + rts pc + +number: + jsr pc,skipcont +number1: + mov r1,-(sp) + mov r3,-(sp) + clr r3 + clr -(sp) + clr -(sp) +1: + jsr pc,getchar + cmp r0,$'+ + beq 2f + cmp r0,$'- + beq 2f + sub $'0,r0 + cmp r0,$9. + bhi 3f + inc (sp) + mpy $10.,r3 + add r0,r3 + br 1b +2: + mov r0,2(sp) + br 1b +3: + add $'0,r0 + mov r0,ch + mov (sp)+,r0 + bne 1f + mov $1,r3 + mov r3,r0 +1: + mov (r5)+,r0 + beq 1f + mov (r0),r0 +1: + mov (sp)+,r1 + cmp r1,$'- + bne 1f + sub r3,r0 + br 2f +1: + cmp r1,$'+ + bne 1f + add r3,r0 + br 2f +1: + mov r3,r0 +2: + mov (sp)+,r3 + mov (sp)+,r1 + rts r5 + +eject: + tst pl + beq 1f + tst nl + beq 1f + mov pl,r0 + sub nl,r0 + sub ma4,r0 + sub hx,r0 + jsr r5,nlines; newline + bit $1,pn + bne 2f + jsr r5,headout; efoot + br 3f +2: + jsr r5,headout; ofoot +3: + cmp numbmod,$1 + bne 3f + mov $1,lnumber +3: + mov ma4,r0 + jsr r5,nlines; newline + clr nl + inc pn +1: + cmp pn,pto + ble 1f + jsr pc,flush + jmp place +1: +istop: + tst stop + beq 2f + cmp pn,pfrom + blo 2f + jsr pc,flush +/ mov sp,r1 +/ sys signal; 2; 1f + clr r0 + sys read; garb; 1 +1: +/ mov r1,sp +/ sys signal; 2; place +2: + rts pc + + +storeline: + cmp linep,$line+linsiz + bhis 1f + movb r0,*linep + inc linep + jsr pc,width + add r1,ne + sub r1,nel + inc nc +1: + rts pc + +getword: + mov $word,r2 + clr wne + clr wch + clr nhyph + clr hypedf + mov $word,wordp + clr -(sp) +1: + jsr pc,gettchar + cmp r0,$'\n + beq 3f + cmp r0,ohc + bne 2f + inc hypedf + br 1b +2: + cmp $' ,r0 + bne 2f + jsr pc,storeword + br 1b +2: + mov r0,-(sp) + mov $' ,r0 + jsr pc,storeword + tst spaceflg + beq 2f + jsr pc,storeword + clr spaceflg +2: + mov (sp)+,r0 +2: + jsr pc,storeword + bisb (sp),-1(r2) /add in hyphen + clr (sp) + jsr pc,gettchar + cmp r0,ohc + bne 1f + inc hypedf + jsr pc,gettchar + mov $200,(sp) +1: + cmp $' ,r0 + beq 1f + cmp $'\n,r0 + bne 2b + cmpb -1(r2),$'. + bne 1f + inc spaceflg +1: + add $2,2(sp) +1: + clrb (r2)+ +3: + tst (sp)+ + mov $word,wordp + tst nc + bne 1f + jsr pc,setnel +1: + rts pc + +setnel: + mov $line,linep + mov ll,nel + sub un,nel + clr ne + clr fac + clr fmq + rts pc + +storeword: + jsr pc,width + add r1,wne + inc wch + movb r0,(r2)+ + rts pc + +need: + mov r0,r3 + mpy ls,r3 + mov r3,r0 +need2: + add nl,r0 + cmp r0,bl + ble 1f + jsr pc,eject +1: + rts pc + +min: + tst r0 + bge 1f + clr r0 +1: + rts pc + +getname: + mov r1,-(sp) + mov r2,-(sp) + mov (r5)+,r1 + mov $18.,r2 +1: + jsr pc,getchar + cmp r0,$041 + blt 2f + cmp r0,$0176 + ble 4f +2: + mov r0,ch +3: + clrb (r1)+ + mov (sp)+,r2 + mov (sp)+,r1 + rts r5 +4: + movb r0,(r1)+ + dec r2 + beq 3b + br 1b + +copyb: + mov (r1),r1 + jsr pc,flushi + clr nlflg + mov $1,-(sp) +1: + jsr pc,getchar + cmp r0,$'\n + bne 2f + mov $1,(sp) + clr nlflg + br 4f +2: + cmp r0,$'. + bne 9f + cmp (sp),$1 + bgt 3f + blt 9f + inc (sp) + br 4f +3: + dec r1 + clr r0 + inc (sp) + br 4f +9: + clr (sp) +4: + tst skp + bne 5f + jsr pc,wbf +5: + cmp (sp),$3 + bne 1b + tst (sp)+ + tst skp + bne 6f + mov r1,nextb +6: + rts pc + +popi: + cmp ilistp,$ilist + beq 1f + sub $2,ilistp + mov *ilistp,ip +1: + rts pc + +wbf: + mov r0,char + mov r1,offb + mov ibf,r0 + sys lseek;0; offb:..;0 /actually lseek + mov ibf,r0 + sys write; char;1 + inc r1 + cmp ibf1,ofile + bne 1f + mov $-1,ofile +1: + rts pc +rbf: + mov ip,r1 + mov ibf1,nfile + jsr pc,rdsufb + tstb r0 + bne 2f + jsr pc,popi + rts pc +2: + inc ip + rts pc + +alph: + movb (r0),r2 +alph2: + cmp r2,$'A + blo 1f + cmp r2,$'Z + blos 2f + cmp r2,$'a + blo 1f + cmp r2,$'z + bhi 1f +2: + sez + rts pc +1: + clz + rts pc + +rdsufb: + mov r1,-(sp) + bic $77,r1 + cmp r1,sufoff + bne 1f + cmp nfile,ofile + beq 2f +1: + mov r1,sufoff + mov nfile,ofile + mov nfile,r0 + sys lseek;0; sufoff: -1; 0 /actually lseek + mov nfile,r0 + sys read; sufbuf; 512. +2: + mov (sp),r0 + bic $!77,r0 + movb sufbuf(r0),r0 + mov (sp)+,r1 + rts pc diff --git a/usr/src/cmd/roff/roff4.s b/usr/src/cmd/roff/roff4.s new file mode 100644 index 0000000000..2972597752 --- /dev/null +++ b/usr/src/cmd/roff/roff4.s @@ -0,0 +1,516 @@ +/ +/ + +/ roff4 -- runoff + +text: +/ inc tottext + clr ulstate + clr wch + clr wne + tst ce + bne nofill + tst fi + beq nofill + jsr pc,getchar +2: + mov r0,ch + cmp $' ,r0 + bne 2f + jsr pc,rbreak +1: + jsr pc,getchar + cmp $' ,r0 + bne 2b + inc un + br 1b +2: + cmp r0,$'\n + bne 2f + jsr pc,rbreak + clr ch + jsr pc,nline + br 4f +2: + tst wch + bne 3f + jsr pc,getword + br 4f +3: + jsr pc,movword + bne 2b + jsr pc,adjust + br 2b +4: + dec ul + bge 1f + clr ul +1: + rts pc + +nofill: + jsr pc,rbreak +1: + jsr pc,gettchar + cmp r0,$'\n + beq 1f + jsr pc,width + add r1,ne + jsr pc,storeline + br 1b +1: + tst ce + ble 2f + dec ce + mov nel,r0 + asr r0 + bpl 1f + clr r0 +1: + add r0,un + tst numbmod + beq 2f + add $2,un +2: + clr fac + clr fmq + mov $1000,nwd + mov $' ,r0 + jsr pc,storeline + jsr pc,rbreak + dec ul + bpl 2f + clr ul +2: + rts pc + +adjust: + mov r2,-(sp) + mov r3,-(sp) + clr r2 + clr r3 + tst ad + beq 1f + mov nwd,r0 + dec r0 + ble 1f + mov nel,r3 + ble 1f + dvd r0,r2 +1: + mov r3,fac + mov r2,fmq + mov (sp)+,r3 + mov (sp)+,r2 + jsr pc,rbreak + rts pc + +fill: + mov fmq,r0 +1: + inc r0 + dec nc + cmpb (r2)+,$' + beq 1b + dec r2 + bit $1,totout + beq 2f + inc fac + cmp fac,nwd + blt 1f + inc r0 + br 1f +2: + dec fac + bmi 1f + inc r0 +1: + jsr pc,space + movb (r2),r0 + rts pc + +movword: + mov wch,wordend + mov wordp,r4 + add r4,wordend + tst nwd + bne 2f +1: + movb (r4)+,r0 + cmp r0,$' + bne 1f + dec wch + jsr pc,width + sub r1,wne + br 1b +1: + dec r4 +2: + cmp wne,nel + ble 1f + cmp nel,$4 + ble 1f + mov ls,r0 + add nl,r0 + cmp r0,bl + bgt 2f + mov ls,r0 + asl r0 + add nl,r0 + cmp r0,bl + bgt 1f +2: + jsr pc,hyphen +1: + clr nhyph + mov wch,-(sp) +1: + movb (r4)+,r0 + cmp r0,$'- + bne 2f + movb (r4),r2 + jsr pc,alph2 + bne 2f + bisb $200,(r4) +2: + tst r0 + bpl 2f + bic $!177,r0 + mov r4,r3 + sub $4,r3 + cmp r3,$word + blo 2f + movb (r3),r2 + bic $!177,r2 + jsr pc,alph2 + beq 3f + cmp nel,$2 + ble 2f +3: + mov r0,-(sp) + clr r0 + jsr pc,storeline + mov (sp)+,r0 + inc nhyph +2: + jsr pc,width + sub r1,wne + jsr pc,storeline + dec wch + bne 1b + tst nel + blt 1f + inc nwd + tst (sp)+ + clz + rts pc +1: + mov linep,r3 +1: + tst nhyph + bne 2f + tst nwd + beq 3f + cmp wch,(sp) + beq 4f +2: + movb -(r3),r0 + bne 2f + dec nhyph + bne 5f + tst nwd + beq 6f +5: + tst nel + ble 2f +6: + cmpb -1(r3),$'- + beq 3f + movb $'-,(r3) + dec nel + inc ne + br 3f +2: + dec nc + tstb (r3) + beq 1b + jsr pc,width + sub r1,ne + add r1,nel + inc wch + dec r4 + add r1,wne + br 1b +3: + inc nwd +4: + mov r4,wordp + bicb $!177,(r4) + cmp r4,$word + bge 4f + 4 +4: + tst (sp)+ + sez + rts pc + +topbot: + mov pl,r0 + bne 1f + clr bl + rts pc +1: + sub ma3,r0 + sub ma4,r0 + sub hx,r0 + mov r0,bl + mov ma1,r0 + add ma2,r0 + add hx,r0 + cmp r0,bl + blt 1f + mov $2,r0 + mov r0,ma1 + mov r0,ma2 + mov r0,ma3 + mov r0,ma4 + mov $66.,pl + br topbot +1: + cmp nl,bl + ble 1f + mov bl,nl +1: + rts pc + +width: + cmp r0,ohc + beq 2f + tst r0 + beq 2f + cmp r0,$0177 + beq 2f + cmp r0,$010 + bne 1f + mov $-1,r1 + rts pc +1: + cmp $' ,r0 + bgt 2f + mov $1,r1 + rts pc +2: + clr r1 + rts pc + +headin: + jsr pc,skipcont + mov nextb,r1 + mov r1,*(r5)+ + jsr pc,gettchar + cmp r0,$'\n + beq 2f + mov r0,r2 +1: + jsr pc,gettchar + cmp r0,$'\n + beq 2f + cmp r0,r2 + bne 3f + clr r0 +3: + jsr pc,wbf + br 1b +2: + clr r0 + jsr pc,wbf + mov r1,nextb + mov ll,llh + rts r5 + +headout: + tst hx + bne 0f + tst (r5)+ + rts r5 +0: + clr -(sp) + mov *(r5),r2 + mov ibf1,nfile + jsr r5,headseg; width + mov r0,-(sp) + jsr r5,headseg; width + mov r0,-(sp) + jsr r5,headseg; width + mov r0,-(sp) + mov po,r0 + jsr pc,space + tst numbmod + beq 1f + mov $5,r0 + add ni,r0 + mov r0,6(sp) +1: + mov *(r5)+,r2 + jsr r5,headseg; putchar + mov llh,r0 + add 6(sp),r0 + sub 2(sp),r0 + asr r0 + sub 4(sp),r0 + bge 1f + clr r0 +1: + mov r0,-(sp) + jsr pc,space + jsr r5,headseg; putchar + mov llh,r0 + sub (sp)+,r0 + sub (sp)+,r0 + sub (sp)+,r0 + sub (sp)+,r0 + add (sp)+,r0 + jsr pc,space + jsr r5,headseg; putchar + jsr pc,newline + rts r5 + +headseg: + clr -(sp) +1: + mov r1,-(sp) + mov r2,r1 + inc r2 + jsr pc,rdsufb + mov (sp)+,r1 + tstb r0 + beq 1f + cmp r0,$'% + beq 2f + jsr pc,*(r5) + add r1,(sp) + br 1b +2: + mov pn,r0 + clr r1 + tst ro + beq 2f + mov $ones,onesp + mov $fives,fivesp + jsr pc,roman + add r1,(sp) + br 1b +2: + jsr pc,decml + add r1,(sp) + br 1b +1: + mov (sp)+,r0 + tst (r5)+ + rts r5 + +space: + jsr r5,nlines; putchar + rts pc + +nlines: + mov r0,-(sp) +1: + dec (sp) + blt 1f + mov $' ,r0 + jsr pc,*(r5) + br 1b +1: + cmp (r5)+,(sp)+ + rts r5 + +decimal: + jsr pc,decml + tst (r5)+ + rts r5 + +decml: + mov r2,-(sp) + mov r3,-(sp) + jsr pc,decml1 + mov (sp)+,r3 + mov (sp)+,r2 + rts pc + +decml1: + mov r1,-(sp) + clr r2 + mov r0,r3 + dvd $10.,r2 + mov r3,-(sp) + mov r2,r0 + beq 1f + jsr pc,decml + mov r1,2(sp) +1: + mov (sp)+,r0 + add $'0,r0 + jsr pc,*(r5) + add (sp)+,r1 + rts pc + +roman: + mov r2,-(sp) + mov r3,-(sp) + jsr pc,roman1 + mov (sp)+,r3 + mov (sp)+,r2 + rts pc +roman1: + clr r2 + mov r0,r3 + bne .+4 + rts pc + mov r1,-(sp) + dvd $10.,r2 + mov r3,-(sp) + mov r2,r0 + inc onesp + inc fivesp + jsr pc,roman + mov r1,2(sp) + dec onesp + dec fivesp + clr r2 + mov (sp)+,r3 + dvd $5.,r2 + cmp r3,$4 + bne 1f + movb *onesp,r0 + jsr pc,*(r5) + add r1,(sp) + tst r2 + beq 2f + inc onesp + movb *onesp,r0 + dec onesp + br 3f +2: + movb *fivesp,r0 +3: + jsr pc,*(r5) + add (sp)+,r1 + rts pc +1: + tst r2 + beq 2f + movb *fivesp,r0 + jsr pc,*(r5) + add r1,(sp) +2: + dec r3 + blt 1f + movb *onesp,r0 + jsr pc,*(r5) + add r1,(sp) + br 2b +1: + mov (sp)+,r1 + rts pc + diff --git a/usr/src/cmd/roff/roff5.s b/usr/src/cmd/roff/roff5.s new file mode 100644 index 0000000000..790a990ef9 --- /dev/null +++ b/usr/src/cmd/roff/roff5.s @@ -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 diff --git a/usr/src/cmd/roff/roff7.s b/usr/src/cmd/roff/roff7.s new file mode 100644 index 0000000000..8b52a04cc9 --- /dev/null +++ b/usr/src/cmd/roff/roff7.s @@ -0,0 +1,121 @@ +/ +/ + +/ hyp4 -- digram tables + +bxh: +.byte 060,000,040,000,040,000,000,040,000,000,040,000,040 + +hxx: +.byte 006,042,041,123,021,024,063,042,002,043,021,001,022 +.byte 140,000,200,003,260,006,000,160,007,000,140,000,320 +.byte 220,000,160,005,240,010,000,100,006,000,200,000,320 +.byte 240,000,120,003,140,000,000,240,010,000,220,000,160 +.byte 042,023,041,040,040,022,043,041,030,064,021,000,041 +.byte 100,000,140,000,220,006,000,140,003,000,200,000,000 +.byte 200,000,120,002,220,010,000,160,006,000,140,000,320 +.byte 020,000,020,000,020,000,000,020,000,000,020,000,000 +.byte 043,163,065,044,022,043,104,042,061,146,061,000,007 +.byte 100,000,140,000,040,000,000,100,000,000,120,000,000 +.byte 140,000,040,011,060,004,001,120,003,000,140,000,040 +.byte 200,000,100,000,140,000,000,140,000,000,140,000,240 +.byte 200,000,140,000,160,000,000,220,000,000,140,000,240 +.byte 200,000,140,000,160,000,000,220,000,000,060,000,240 +.byte 021,043,041,121,040,023,042,003,142,042,061,001,022 +.byte 120,000,140,010,140,010,000,140,002,000,120,000,120 +.byte 000,000,000,000,360,000,000,000,000,000,160,000,000 +.byte 100,000,040,005,120,000,000,100,000,000,060,000,140 +.byte 140,040,100,001,240,041,000,242,000,002,140,000,100 +.byte 240,000,120,002,200,000,000,320,007,000,240,000,340 +.byte 101,021,041,020,040,005,042,121,002,021,201,000,020 +.byte 160,000,100,000,140,000,000,160,006,000,220,000,140 +.byte 140,000,020,001,020,000,000,100,001,000,300,000,000 +.byte 000,000,000,000,000,000,000,000,000,000,000,000,000 +.byte 106,041,040,147,040,000,063,041,001,102,160,002,002 +.byte 300,000,040,017,140,017,000,240,000,000,140,000,120 + +bxxh: +.byte 005,150,153,062,062,246,152,127,146,203,310,017,206 +.byte 100,000,120,000,140,000,000,100,000,000,120,000,060 +.byte 100,000,040,000,060,000,000,060,000,000,220,000,040 +.byte 100,000,120,000,200,000,000,100,000,000,140,000,060 +.byte 043,142,046,140,062,147,210,131,046,106,246,017,111 +.byte 060,000,020,000,060,000,000,040,000,000,100,000,000 +.byte 060,000,040,000,040,000,000,040,000,000,100,000,040 +.byte 100,000,100,000,100,000,000,040,000,000,100,000,140 +.byte 066,045,145,140,000,070,377,030,130,103,003,017,006 +.byte 040,000,040,000,020,000,000,040,000,000,100,000,000 +.byte 200,000,020,000,140,000,000,120,000,000,120,000,040 +.byte 120,000,040,000,060,000,000,060,000,000,160,000,040 +.byte 120,000,040,000,120,000,000,040,000,000,160,000,040 +.byte 120,000,020,000,140,000,000,120,000,000,140,000,040 +.byte 051,126,150,140,060,210,146,006,006,165,003,017,244 +.byte 120,000,040,000,160,000,000,140,000,000,060,000,140 +.byte 000,000,000,000,000,000,000,000,000,000,000,000,000 +.byte 140,000,140,000,060,000,000,100,000,000,140,000,020 +.byte 120,000,020,000,060,000,000,060,000,000,060,000,040 +.byte 140,000,020,000,100,000,000,140,000,000,140,000,020 +.byte 070,125,051,162,120,105,126,104,006,044,000,017,052 +.byte 140,000,020,000,140,000,000,060,000,000,060,000,040 +.byte 020,000,000,000,020,000,000,000,000,000,000,000,060 +.byte 140,000,160,000,200,000,000,140,000,000,000,000,240 +.byte 065,042,060,200,000,210,222,146,006,204,220,012,003 +.byte 240,000,020,000,120,000,000,200,000,000,200,000,240 + +xhx: +.byte 032,146,042,107,076,102,042,146,202,050,006,000,051 +.byte 036,377,057,013,057,366,377,057,001,377,057,000,040 +.byte 037,377,020,000,100,022,377,057,362,116,100,000,017 +.byte 057,377,057,031,137,363,377,037,362,270,077,000,117 +.byte 074,142,012,236,076,125,063,165,341,046,047,000,024 +.byte 020,017,075,377,040,001,377,017,001,204,020,000,040 +.byte 057,017,057,340,140,362,314,117,003,302,100,000,057 +.byte 057,357,077,017,100,366,314,057,342,346,037,000,060 +.byte 252,145,072,157,377,165,063,066,164,050,363,000,362 +.byte 000,000,020,000,020,000,000,017,000,000,020,000,000 +.byte 117,017,237,377,200,354,125,110,004,257,000,000,300 +.byte 057,367,054,357,157,216,314,114,217,353,053,000,057 +.byte 077,213,077,077,177,317,377,114,377,352,077,000,076 +.byte 077,213,077,077,157,177,377,054,377,352,117,000,075 +.byte 125,230,065,216,057,066,063,047,345,126,011,000,033 +.byte 057,377,051,360,120,361,273,056,001,256,057,000,060 +.byte 000,000,000,000,000,000,000,000,000,000,000,000,000 +.byte 076,310,056,310,137,174,273,055,335,266,033,000,155 +.byte 077,157,057,360,057,063,042,024,077,206,020,000,040 +.byte 057,037,077,360,100,365,377,037,362,176,050,000,026 +.byte 167,146,042,112,077,110,062,254,366,052,377,000,163 +.byte 060,000,040,000,120,000,377,060,012,000,037,000,257 +.byte 037,232,157,361,040,003,125,010,001,256,000,000,340 +.byte 377,377,377,377,377,377,377,377,377,377,377,017,277 +.byte 253,315,257,216,377,206,146,306,371,126,232,000,004 +.byte 057,012,100,360,160,360,000,040,000,017,157,000,176 + +xxh: +.byte 045,150,154,162,042,246,210,147,152,103,230,017,206 +.byte 100,000,040,000,140,000,000,100,000,021,120,017,060 +.byte 100,000,040,002,140,320,000,060,000,001,220,017,040 +.byte 100,001,120,001,241,000,000,100,000,020,140,017,060 +.byte 023,162,046,142,022,207,210,131,052,106,250,017,110 +.byte 060,000,042,000,160,000,000,040,000,212,100,017,000 +.byte 140,000,040,002,140,000,000,120,000,040,120,017,040 +.byte 100,000,100,000,140,001,021,140,000,046,100,017,140 +.byte 066,045,025,201,020,130,146,030,130,103,025,017,006 +.byte 100,000,040,000,020,000,000,040,000,000,200,017,000 +.byte 200,000,020,001,140,000,000,140,000,000,120,017,040 +.byte 120,026,042,020,140,161,042,143,000,022,162,017,040 +.byte 121,042,060,020,140,200,000,123,000,021,220,017,041 +.byte 121,042,060,120,140,200,000,123,000,021,160,017,041 +.byte 051,126,150,141,060,210,146,066,026,165,026,017,247 +.byte 120,000,040,003,160,000,000,140,000,021,100,017,140 +.byte 000,000,000,000,200,000,000,000,000,000,000,017,000 +.byte 141,023,122,040,160,143,042,142,000,047,143,017,020 +.byte 120,000,040,006,140,060,000,141,000,026,100,017,040 +.byte 140,000,020,007,100,000,000,140,000,001,140,017,020 +.byte 110,125,051,162,120,125,127,104,006,104,000,017,052 +.byte 140,000,040,000,160,000,000,140,000,000,060,017,000 +.byte 040,005,020,000,040,313,231,030,000,140,000,017,056 +.byte 140,000,160,000,200,000,000,140,000,000,000,017,240 +.byte 065,042,060,040,000,206,231,146,006,224,220,017,004 +.byte 240,000,020,000,140,000,000,220,000,000,200,017,141 + +.even diff --git a/usr/src/cmd/roff/roff8.s b/usr/src/cmd/roff/roff8.s new file mode 100644 index 0000000000..0a94bdd3bf --- /dev/null +++ b/usr/src/cmd/roff/roff8.s @@ -0,0 +1,128 @@ +/ +/ + +/ roff5 -- runoff + +slow: 1 +pto: 9999. +po: 0 +ls: 1 +ls1: 1 +pn: 1 +ma1: 2 +ma2: 2 +ma3: 1 +ma4: 3 +ll: 65. +llh: 65. +hx: 1 +pl: 66. +ad: 1 +fi: 1 +cc: '. +ohc: 200 +hyf: 1 +hypedf: 0 +obufp: obuf +thresh: 240 +tabc: ' +tabtab: + .byte 8.,16.,24.,32.,40.,48.,56.,64.,72.,80. + .byte 88.,96.,104.,112.,120.,128.,136.,144.,152.,160. + .byte 0,0,0,0,0,0,0,0,0,0 +etabtab: 0 +suffil: + +ones: + +fives: + +bfn: + .even +ofile: -1 +nextb: 4 +ilistp: ilist + +.bss +old: .=.+2 +stop: .=.+2 +garb: .=.+2 +bname: +nextf: .=.+20. +nx: .=.+2 +ibf: .=.+2 +ibf1: .=.+2 +skp: .=.+2 +ip: .=.+2 +ilist: .=.+8. +iliste: .=.+2 +column: .=.+2 +ocol: .=.+2 +nspace: .=.+2 +fac: .=.+2 +fmq: .=.+2 +nhl: .=.+2 +nel: .=.+2 +jfomod: .=.+2 +wordp: .=.+2 +nlflg: .=.+2 +/tottext: .=.+2 +/totcon: .=.+2 +spaceflg: .=.+2 +ch: .=.+2 +linep: .=.+2 +undflg: .=.+2 +wordend: .=.+2 +maxdig: .=.+2 +maxloc: .=.+2 +totout: .=.+2 +hstart: .=.+2 +nhstart: .=.+2 +nhyph: .=.+2 +argc: .=.+2 +argp: .=.+2 +ibufp: .=.+2 +eibuf: .=.+2 +wne: .=.+2 +nl: .=.+2 +bl: .=.+2 +nc: .=.+2 +ne: .=.+2 +lnumber: .=.+2 +numbmod: .=.+2 +skip: .=.+2 +nwd: .=.+2 +ulstate: .=.+2 +ulc: .=.+2 +bsc: .=.+2 +nsp: .=.+2 +nn: .=.+2 +ro: .=.+2 +pfrom: .=.+2 +ni: .=.+2 +onesp: .=.+2 +fivesp: .=.+2 +ul: .=.+2 +ce: .=.+2 +in: .=.+2 +un: .=.+2 +wch: .=.+2 +suff: .=.+2 +sufb: .=.+20. +sufbuf: .=.+512. +suftab: .=.+[2*26.] +ifile: .=.+2 +char: .=.+2 +nfile: .=.+2 +ehead: .=.+2 +ohead: .=.+2 +efoot: .=.+2 +ofoot: .=.+2 +trtab: .=.+128. +word: .=.+200. + +stbuf: +linsiz = 500. +line: .=.+linsiz +end: + -- 2.20.1