/ db2 -- debugger lookupn: cmp symbol,$'. bne 1f mov dot,taddr rts pc 1: tst error beq 1f rts pc 1: mov r2,-(sp) mov namstrt,r1 mov namsiz,r2 jsr pc,1f mov (sp)+,r2 rts pc 1: mov $symbol,r0 cmp (r0)+,(r1)+ bne 2f cmp (r0)+,(r1)+ bne 3f cmp (r0)+,(r1)+ bne 4f cmp (r0)+,(r1)+ bne 5f tst (r1)+ mov (r1)+,taddr rts pc 2: tst (r1)+ 3: tst (r1)+ 4: tst (r1)+ 5: cmp (r1)+,(r1)+ cmp r1,r2 blo 1b inc error clr taddr rts pc lookupv: mov r5,-(sp) mov $nambuf,r5 clr r2 mov $177777,r3 1: cmp r5,namsiz bhis 4f mov 12(r5),r1 sub r0,r1 neg r1 blt 3f cmp r1,r3 bhi 3f cmp r1,$4000 bhis 3f cmp r2,r5 bhi 3f mov r1,r3 mov r5,r2 3: add $14,r5 br 1b 4: mov (sp)+,r5 rts pc get: mov *(r5)+,r0 jsr r5,remap tst error bne 2f mov r0,0f mov curfin,r0 sys seek; 0:0; 0 bec 1f 2: inc error rts r5 1: mov curfin,r0 sys read; temp; 2 bes 2b tst r0 beq 2b mov temp,r0 rts r5 remap: mov dbfin,curfin cmp getoff,$1024. bne 1f cmp r0,txtsiz bhis 2f add $20,r0 mov symfin,curfin rts r5 2: cmp r0,rtxtsiz blo 3f sub rtxtsiz,r0 cmp r0,datsiz bhis 2f add $1024.,r0 rts r5 2: add rtxtsiz,r0 neg r0 cmp r0,stksiz bhi 3f neg r0 add datsiz,r0 add stksiz,r0 add $1024.,r0 rts r5 1: add getoff,r0 rts r5 3: inc error rts r5 printo: mov $obuf+6,r1 clr r2 1: inc r2 movb r0,-(r1) bicb $!7,(r1) bisb $'0,(r1) clc ror r0 asr r0 asr r0 bne 1b mov r2,0f+2 mov r1,0f mov $1,r0 sys write; 0:obuf; 6 rts pc mesg: movb (r5)+,r0 beq 1f jsr pc,putc br mesg 1: inc r5 bic $1,r5 rts r5 pnl: jsr r5,mesg; <\n\0> rts pc psp: jsr r5,mesg; < \0> rts pc pstar: jsr r5,mesg; <*\0> rts pc plp: jsr r5,mesg; <(\0> rts pc prp: jsr r5,mesg; <)\0> rts pc pb: jsr r5,mesg; rts pc pcom: jsr r5,mesg; <,\0> rts pc put: mov *(r5)+,r0 jsr r5,remap tst error bne 2f cmp curfin,dbfin bne 2f mov r0,0f mov dbfout,r0 bne 1f 2: tst (r5)+ 3: inc error rts r5 1: tst error bne 3b sys seek; 0:0; 0 bes 2b mov (r5)+,0f mov dbfout,r0 tst bytemod beq 1f mov $1,0f+2 br 2f 1: mov $2,0f+2 2: sys write; 0:0; 2 bes 3b rts r5 decodadr: mov r0,r3 mov r3,-(sp) bic $!10,(sp) bic $!7,r0 cmp r0,$7 beq pcadr 7: mov r3,r0 asr r0 asr r0 asr r0 bic $!6,r0 jmp *1f(r0) 1: simp incr decr indx simp: tst (sp) beq 1f jsr pc,plp 1: jsr pc,preg tst (sp)+ beq 9f jsr pc,prp br 9f incr: tst (sp)+ beq 1f jsr pc,pstar 1: jsr pc,plp jsr pc,preg jsr r5,mesg; <)+\0>; .even br 9f decr: tst (sp)+ beq 1f jsr pc,pstar 1: jsr r5,mesg; <-(\0>; .even jsr pc,preg jsr pc,prp br 9f indx: tst (sp)+ beq 1f jsr pc,pstar 1: jsr pc,get1 jsr pc,pname jsr pc,plp jsr pc,preg jsr pc,prp br 5f pcadr: mov r3,r0 bit $20,r3 beq 7b tst (sp)+ beq 1f jsr pc,pstar 1: bit $40,r3 bne 6f jsr r5,mesg; <$\0> jsr pc,get1 jsr pc,pname br 5f 6: jsr pc,get1 add $2,r0 add r1,r0 mov $3,r1 jsr pc,pname br 5f 9: tst (r5)+ clr r0 rts r5 5: mov $2,r0 rts r5 preg: mov r3,r0 bic $!7,r0 asl r0 mov regtab(r0),obuf mov $1,r0 sys write; obuf; 2 rts pc regtab: "r0 "r1 "r2 "r3 "r4 "r5 "sp "pc pname: mov r5,-(sp) mov r3,-(sp) mov r1,-(sp) jsr pc,lookupv tst r2 beq 5f cmp (sp),$1 bne 1f tst r3 bne 5f 1: mov r2,r1 mov $8,-(sp) mov r0,r5 1: movb (r1)+,r0 beq 1f jsr pc,putc dec (sp) bne 1b 1: tst (sp)+ cmp 12(r2),r5 beq 1f blt 2f jsr r5,mesg; <-\0> br 3f 2: jsr r5,mesg; <+\0> 3: mov r3,r0 5: jsr pc,printo 1: tst (sp)+ mov (sp)+,r3 mov (sp)+,r5 rts pc get1: mov *(r5)+,r1 add $2,r1 mov r1,temp jsr r5,get; temp rts pc