/ Simple console tty output routines halt = 0 nop = 240 br4 = 200 br5 = 240 br6 = 300 br7 = 340 conregs = 177560 rcsr = 0 rbuf = 2 tcsr = 4 tbuf = 6 rint = 100 tint = 100 stack = 700 / . = 60^. / conr; br4 / 1020 200 . = 1000^. test: mov $stack, sp / 12706 700 mov $'\n, r2 / 12702 12 mov $'x, r1 / 12701 170 jsr pc, printc / 4767 204 mov r2, r1 / 10201 jsr pc, printc / 4767 176 mov $tsts, r1 / 12701 1244 jsr pc, prints / 4767 140 mov r2, r1 / 10201 jsr pc, printc / 4767 160 clr r1 / 5001 jsr pc, printo / 4767 44 mov r2, r1 / 10201 jsr pc, printc / 4767 144 mov $123456, r1 / 12701 123456 jsr pc, printo / 4767 26 mov r2, r1 / 10201 jsr pc, printc / 4767 126 mov $177777, r1 / 12701 177777 jsr pc, printo / 4767 10 mov r2, r1 / 10201 4767 jsr pc, printc / 4767 110 halt / 0 / print octal number - called with number in r1 printo: mov r2, -(sp) / 10246 mov r1, r2 / 10102 jsr pc, 1f / 4767 4 mov (sp)+, r2 / 12602 rts pc / 207 1: mov r2, r1 / 10201 bic $177770, r1 / 42701 177770 add $'0, r1 / 62701 60 asr r2 / 6202 asr r2 / 6202 asr r2 / 6202 bic $160000, r2 / 42702 160000 beq 1f / 1404 mov r1, -(sp) / 10146 jsr pc, 1b / 4767 177744 mov (sp)+, r1 / 12601 1: jsr pc, printc / 4767 30 rts pc / 207 / print string - called with zero-terminated string pointer in r1 prints: mov r2, -(sp) / 10246 mov r1, r2 / 10102 1: movb *r2, r1 / 111201 tstb r1 / 105701 beq 1f / 1404 jsr pc, printc / 4767 10 inc r2 / 5202 br 1b / 771 1: mov (sp)+, r2 / 12602 rts pc / 207 / print character - called with char in r1, bashes r0 printc: mov $conregs, r0 / 12700 177560 1: tstb tcsr(r0) / 105760 4 bpl 1b / 100375 movb r1, tbuf(r0) / 110160 6 rts pc / 207 tsts: .even