/      jsr     r0,setisp
/      jsr     r0,starlpt
/      br      retisp
ppto: / paper tape output interrupt routine
       jsr r0,setisp / save registers
       jsr r0,starppt / get next character from clist, and output
       / if possible
       br retisp / pop register values from stack

/ starlpt:
/       cmpb   cc+5.,$100.
/       bhi    1f
/       jsr    r0,wakeup; runq+2; 5
/1:
/       tstb   *$lps
/       bge    1f
/       jsr    r0,getc; 5
/              br 1f
/       mov    r1,*$lpb
/       br     starlpt
/1:
/       rts    r0

startty: / start or restart console tty output
       cmpb    cc+1,$5.
       bhi     1f / branch to 1f when character count on tty (? input,
                  / output) list is greater than 5.
       jsr     r0,wakeup; runq+2; 1
1:
       tstb    *$tps / test console output ready bit
       bge     2f / branch if ready bit is clear
       tstb    toutt+0 / is toutt for console a zero
       bne     2f / if not; branch to 2f
       movb    ttyoch,r1 / put character to be output in r1
       bne     1f
       jsr     r0,getc; 1 / if char is nul, get a char from console
                          / output list
               br 2f / if console output list is empty, branch to 2f
1:
       clrb    ttyoch
       mov     r1,*$tpb / put character in console output register
       cmp     r1,$12 / is char a line feed
       bne     1f
       movb    $15,ttyoch / put a cr in ttyoch
1:
       cmp     r1,$11 / char = ht
       bne     1f
       movb    $15.,toutt+0 / set time out to 15 clock tics
1:
       cmp     r1,$15 / char = cr
       bne     2f
       movb    $15.,toutt+0 / set time out to 15 clock ticks
2:
       rts     r0
