📄 db2.s
字号:
/ db2 -- debuggerlookupn: cmp symbol,$'. bne 1f mov dot,taddr rts pc1: tst error beq 1f rts pc1: mov r2,-(sp) mov namstrt,r1 mov namsiz,r2 jsr pc,1f mov (sp)+,r2 rts pc1: 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 pc2: tst (r1)+3: tst (r1)+4: tst (r1)+5: cmp (r1)+,(r1)+ cmp r1,r2 blo 1b inc error clr taddr rts pclookupv: mov r5,-(sp) mov $nambuf,r5 clr r2 mov $177777,r31: 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,r23: add $14,r5 br 1b4: mov (sp)+,r5 rts pcget: mov *(r5)+,r0 jsr r5,remap tst error bne 2f mov r0,0f mov curfin,r0 sys seek; 0:0; 0 bec 1f2: inc error rts r51: mov curfin,r0 sys read; temp; 2 bes 2b tst r0 beq 2b mov temp,r0 rts r5remap: mov dbfin,curfin cmp getoff,$1024. bne 1f cmp r0,txtsiz bhis 2f add $20,r0 mov symfin,curfin rts r52: cmp r0,rtxtsiz blo 3f sub rtxtsiz,r0 cmp r0,datsiz bhis 2f add $1024.,r0 rts r52: add rtxtsiz,r0 neg r0 cmp r0,stksiz bhi 3f neg r0 add datsiz,r0 add stksiz,r0 add $1024.,r0 rts r51: add getoff,r0 rts r53: inc error rts r5printo: mov $obuf+6,r1 clr r21: 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 pcmesg: movb (r5)+,r0 beq 1f jsr pc,putc br mesg1: inc r5 bic $1,r5 rts r5pnl: jsr r5,mesg; <\n\0> rts pcpsp: jsr r5,mesg; < \0> rts pcpstar: jsr r5,mesg; <*\0> rts pcplp: jsr r5,mesg; <(\0> rts pcprp: jsr r5,mesg; <)\0> rts pcpb: jsr r5,mesg; <b\0> rts pcpcom: jsr r5,mesg; <,\0> rts pcput: mov *(r5)+,r0 jsr r5,remap tst error bne 2f cmp curfin,dbfin bne 2f mov r0,0f mov dbfout,r0 bne 1f2: tst (r5)+3: inc error rts r51: 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 2f1: mov $2,0f+22: sys write; 0:0; 2 bes 3b rts r5decodadr: mov r0,r3 mov r3,-(sp) bic $!10,(sp) bic $!7,r0 cmp r0,$7 beq pcadr7: mov r3,r0 asr r0 asr r0 asr r0 bic $!6,r0 jmp *1f(r0)1: simp incr decr indxsimp: tst (sp) beq 1f jsr pc,plp1: jsr pc,preg tst (sp)+ beq 9f jsr pc,prp br 9fincr: tst (sp)+ beq 1f jsr pc,pstar1: jsr pc,plp jsr pc,preg jsr r5,mesg; <)+\0>; .even br 9fdecr: tst (sp)+ beq 1f jsr pc,pstar1: jsr r5,mesg; <-(\0>; .even jsr pc,preg jsr pc,prp br 9findx: tst (sp)+ beq 1f jsr pc,pstar1: jsr pc,get1 jsr pc,pname jsr pc,plp jsr pc,preg jsr pc,prp br 5fpcadr: mov r3,r0 bit $20,r3 beq 7b tst (sp)+ beq 1f jsr pc,pstar1: bit $40,r3 bne 6f jsr r5,mesg; <$\0> jsr pc,get1 jsr pc,pname br 5f6: jsr pc,get1 add $2,r0 add r1,r0 mov $3,r1 jsr pc,pname br 5f9: tst (r5)+ clr r0 rts r55: mov $2,r0 rts r5preg: mov r3,r0 bic $!7,r0 asl r0 mov regtab(r0),obuf mov $1,r0 sys write; obuf; 2 rts pcregtab: "r0 "r1 "r2 "r3 "r4 "r5 "sp "pcpname: mov r5,-(sp) mov r3,-(sp) mov r1,-(sp) jsr pc,lookupv tst r2 beq 5f cmp (sp),$1 bne 1f tst r3 bne 5f1: mov r2,r1 mov $8,-(sp) mov r0,r51: movb (r1)+,r0 beq 1f jsr pc,putc dec (sp) bne 1b1: tst (sp)+ cmp 12(r2),r5 beq 1f blt 2f jsr r5,mesg; <-\0> br 3f2: jsr r5,mesg; <+\0>3: mov r3,r05: jsr pc,printo1: tst (sp)+ mov (sp)+,r3 mov (sp)+,r5 rts pcget1: mov *(r5)+,r1 add $2,r1 mov r1,temp jsr r5,get; temp rts pc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -