MiniUnix/usr/source/s1/db3.s
/ db3 -- debugger
psym:
mov $2,incdot
jsr pc,prints
jsr pc,pnl
rts pc
prints:
mov r0,-(sp)
mov $optab,r1
1:
mov (sp),r0
bic (r1)+,r0
cmp (r1)+,r0
bne 2f
mov (r1)+,-(sp)
jsr pc,string
jmp *(sp)+
2:
add $8.,r1
br 1b
optab:
107777; 010000; double; <mov\0\0\0>
107777; 020000; double; <cmp\0\0\0>
107777; 030000; double; <bit\0\0\0>
107777; 040000; double; <bic\0\0\0>
107777; 050000; double; <bis\0\0\0>
007777; 060000; double; <add\0\0\0>
007777; 160000; double; <su\0\0\0\0>
100077; 005000; single; <clr\0\0\0>
100077; 005100; single; <com\0\0\0>
100077; 005200; single; <inc\0\0\0>
100077; 005300; single; <dec\0\0\0>
100077; 005400; single; <neg\0\0\0>
100077; 005500; single; <adc\0\0\0>
100077; 005600; single; <sbc\0\0\0>
100077; 005700; single; <tst\0\0\0>
100077; 006000; single; <ror\0\0\0>
100077; 006100; single; <rol\0\0\0>
100077; 006200; single; <asr\0\0\0>
100077; 006300; single; <asl\0\0\0>
000077; 000100; single; <jmp\0\0\0>
000077; 000300; single; <swab\0\0>
000077; 170100; singlw; <ldfps\0>
000077; 170200; singlw; <stfps\0>
000077; 170300; singlw; <stst\0\0>
000077; 170400; singlw; <clrf\0\0>
000077; 170500; singlw; <tstf\0\0>
000077; 170600; singlw; <absf\0\0>
000077; 170700; singlw; <negf\0\0>
000077; 006700; singlw; <sxt\0\0\0>
000077; 006600; singlw; <mtpi\0\0>
000077; 106600; singlw; <mtpd\0\0>
000077; 006500; singlw; <mfpi\0\0>
000077; 106500; singlw; <mfpd\0\0>
000777; 070000; muldiv; <mul\0\0\0>
000777; 071000; muldiv; <div\0\0\0>
000777; 072000; muldiv; <ash\0\0\0>
000777; 073000; muldiv; <ashc\0\0>
000377; 000400; branch; <br\0\0\0\0>
000377; 001000; branch; <bne\0\0\0>
000377; 001400; branch; <beq\0\0\0>
000377; 002000; branch; <bge\0\0\0>
000377; 002400; branch; <blt\0\0\0>
000377; 003000; branch; <bgt\0\0\0>
000377; 003400; branch; <ble\0\0\0>
000377; 100000; branch; <bpl\0\0\0>
000377; 100400; branch; <bmi\0\0\0>
000377; 101000; branch; <bhi\0\0\0>
000377; 101400; branch; <blos\0\0>
000377; 102000; branch; <bvc\0\0\0>
000377; 102400; branch; <bvs\0\0\0>
000377; 103000; branch; <bhis\0\0>
000377; 103400; branch; <blo\0\0\0>
000000; 000000; noaddr; <halt\0\0>
000000; 000001; noaddr; <wait\0\0>
000000; 000002; noaddr; <rti\0\0\0>
000000; 000004; noaddr; <iot\0\0\0>
000000; 000005; noaddr; <reset\0>
000377; 171000; fltrev; <mulf\0\0>
000377; 171400; fltrev; <modf\0\0>
000377; 172000; fltrev; <addf\0\0>
000377; 172400; fltrev; <movf\0\0>
000377; 173000; fltrev; <subf\0\0>
000377; 173400; fltrev; <cmpf\0\0>
000377; 174000; fltnor; <movf\0\0>
000377; 174400; fltrev; <divf\0\0>
000377; 175000; fltnor; <movei\0>
000377; 175400; fltnor; <movfi\0>
000377; 176000; fltnor; <movfo\0>
000377; 176400; fltrev; <movie\0>
000377; 177000; fltrev; <movif\0>
000377; 177400; fltrev; <movof\0>
000000; 170000; noaddr; <cfcc\0\0>
000000; 170001; noaddr; <setf\0\0>
000000; 170002; noaddr; <seti\0\0>
000000; 170011; noaddr; <setd\0\0>
000000; 170012; noaddr; <setl\0\0>
000777; 004000; specl1; <jsr\0\0\0>
000777; 074000; specl1; <xor\0\0\0>
000007; 000200; specl2; <rts\0\0\0>
000017; 000240; specl3; <cflg\0\0>
000017; 000260; specl3; <sflg\0\0>
000377; 104000; specl4; <emt\0\0\0>
000377; 104400; specl5; <sys\0\0\0>
000077; 006400; specl7; <mark\0\0>
000777; 077000; specl8; <sob\0\0\0>
000007; 000230; specl9; <spl\0\0\0>
177777; 000000; specl6; <oct\0\0\0>
fltrev:
bic $!377,(sp)
muldiv:
jsr pc,psp
mov (sp)+,r0
asl r0
asl r0
swab r0
aslb r0
aslb r0
aslb r0
aslb r0
asr r0
asr r0
asr r0
asr r0
bic $!7707,r0
mov r0,-(sp)
br fltnor1
fltnor:
bic $!377,(sp)
br 1f
double:
tst (sp)
bge 1f
jsr pc,pb
1:
jsr pc,psp
mov (sp),r0
fltnor1:
als $-6,r0
jsr r5,decodadr; dot
add r0,incdot
add dot,r0
mov r0,temp
jsr pc,pcom
mov (sp)+,r0
jsr r5,decodadr; temp
add r0,incdot
rts pc
single:
tst (sp)
bge singlw
jsr pc,pb
singlw:
jsr pc,psp
mov (sp)+,r0
jsr r5,decodadr; dot
add r0,incdot
rts pc
specl8: / sob
jsr pc,psp
mov (sp),r3
als $-6,r3
jsr pc,preg
jsr pc,pcom
mov (sp)+,r0
bic $!77,r0
neg r0
br 1f
branch:
jsr pc,psp
mov (sp)+,r0
bic $!377,r0
bit $200,r0
beq 1f
bis $177400,r0
1:
inc r0
asl r0
add dot,r0
jsr pc,pname
rts pc
noaddr:
tst (sp)+
rts pc
specl1: / jsr
jsr pc,psp
mov (sp),r3
als $-6,r3
jsr pc,preg
jsr pc,pcom
mov (sp)+,r0
jsr r5,decodadr; dot
add r0,incdot
rts pc
specl2: / rts
jsr pc,psp
mov (sp)+,r3
jsr pc,preg
rts pc
specl3: / opr
jsr pc,psp
mov (sp)+,r2
mov $3f,r1
1:
bit $17,r2
beq 1f
bit $10,r2
beq 2f
movb (r1),r0
jsr pc,putc
2:
inc r1
asl r2
br 1b
1:
rts pc
3:
<nzvc>
specl7: / mark
bic $!77,(sp)
br specl4
specl9: / spl
bic $!7,(sp)
br specl4
specl4: / emt
jsr pc,psp
mov (sp)+,r0
bic $!377,r0
8:
jsr pc,printo
rts pc
specl5: / sys
jsr pc,psp
mov (sp)+,r2
bic $!377,r2
mov r2,r0
asl r2
asl r2
cmp r2,$esystab-systab
bhis 8b
mov systab(r2),r1
jsr pc,string
mov systab+2(r2),-(sp)
mov dot,temp1
1:
dec (sp)
bge 2f
tst (sp)+
rts pc
2:
jsr r5,mesg; <;\0>
add $2,temp1
add $2,incdot
jsr r5,get; temp1
jsr pc,pname
br 1b
systab:
1f; 0; .data; 1:<rele\0>; .text
1f; 0; .data; 1:<exit\0>; .text
1f; 0; .data; 1:<fork\0>; .text
1f; 2; .data; 1:<read\0>; .text
1f; 2; .data; 1:<write\0>; .text
1f; 2; .data; 1:<open\0>; .text
1f; 0; .data; 1:<close\0>; .text
1f; 0; .data; 1:<wait\0>; .text
1f; 2; .data; 1:<creat\0>; .text
1f; 2; .data; 1:<link\0>; .text
1f; 1; .data; 1:<unlink\0>; .text
1f; 2; .data; 1:<exec\0>; .text
1f; 1; .data; 1:<chdir\0>; .text
1f; 0; .data; 1:<time\0>; .text
1f; 1; .data; 1:<makdir\0>; .text
1f; 2; .data; 1:<chmod\0>; .text
1f; 2; .data; 1:<chown\0>; .text
1f; 1; .data; 1:<break\0>; .text
1f; 2; .data; 1:<stat\0>; .text
1f; 2; .data; 1:<seek\0>; .text
1f; 2; .data; 1:<tell\0>; .text
1f; 2; .data; 1:<mount\0>; .text
1f; 1; .data; 1:<umount\0>; .text
1f; 0; .data; 1:<setuid\0>; .text
1f; 0; .data; 1:<getuid\0>; .text
1f; 0; .data; 1:<stime\0>; .text
1f; 1; .data; 1:<quit\0>; .text
1f; 1; .data; 1:<intr\0>; .text
1f; 1; .data; 1:<fstat\0>; .text
1f; 1; .data; 1:<emt\0>; .text
1f; 1; .data; 1:<smdate\0>; .text
1f; 1; .data; 1:<stty\0>; .text
1f; 1; .data; 1:<gtty\0>; .text
1f; 1; .data; 1:<ilgins\0>; .text
1f; 0; .data; 1:<hog\0>; .text
1f; 0; .data; 1:<sleep\0>; .text
1f; 0; .data; 1:<sync\0>; .text
1f; 0; .data; 1:<kill\0>; .text
1f; 0; .data; 1:<switches\0>; .text
1f; 0; .data; 1:<boot\0>; .text
esystab:
.data
.even
.text
specl6: / unknown
jsr pc,psp
mov (sp)+,r0
jsr pc,printo
rts pc