/ Dump ROMs at 773000-773776 and halt = 0 nop = 240 br4 = 200 br5 = 240 br6 = 300 br7 = 340 conregs = 177560 rcsr = 0 rbuf = 2 tcsr = 4 tbuf = 6 stack = 700 . = 1000^. test: mov $stack, sp mov $crlf, r1 jsr pc, prints mov $crlf, r1 jsr pc, prints mov $173000, r5 mov $173776, r4 jsr pc, prblk mov $crlf, r1 jsr pc, prints mov $165000, r5 mov $165776, r4 jsr pc, prblk mov $crlf, r1 jsr pc, prints halt prblk: mov r5, r1 jsr pc, printo mov $spcr, r1 jsr pc, prints clr r3 / line counter in R3 1: mov (r5)+, r1 jsr pc, printo cmp r5, r4 bhi 1f mov $' , r1 jsr pc, printc inc r3 cmp r3, $8 blo 1b mov $crlf, r1 jsr pc, prints 2: inc r3 tst r3 bne 2b br prblk 1: rts pc / 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 spcr: <: \0> crlf: <\n\r\0> .even