home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Meeting Pearls 3
/
Meeting_Pearls_III.iso
/
Pearls
/
comm
/
Networking
/
ProNET
/
source.lzx
/
OSdebugging.s
< prev
next >
Wrap
Text File
|
1997-09-30
|
3KB
|
182 lines
;---------------------------------------------------------------------
; DEBUG-Stuff
;
even
dinit movem.l d0-d7/a0-a6,-(sp)
move.l 4.w,a6
move.l 276(a6),a1
moveq #0,d0
jsr -300(a6) ;Priorität auf 0, sonst klappt nix!
lea ddosname(pc),a1
jsr -408(a6)
move.l d0,ddosbase
move.l d0,a6
clr.l doutput
move.l #debugprocname,d1
moveq #19,d2
move.l #debugprocess-4,d3
lsr.l #2,d3
move.l #4096,d4
jsr -138(a6)
move.l d0,debugprocessid
movem.l (sp)+,d0-d7/a0-a6
rts
cnop 0,4
debugprocess move.l ddosbase(pc),a6
move.l #dconname,d1
move.l #1005,d2
jsr -30(a6)
move.l d0,dconwindow
.waitloop moveq #1,d1
jsr -198(a6) ;Delay
tst.w dquitflag
bne.s .quit
move.l doutput(pc),d2
beq.s .waitloop
move.l dconwindow(pc),d1
move.l d2,a0
moveq #-1,d3
.1 tst.b (a0)+
dbeq d3,.1
neg.l d3
subq.l #1,d3
jsr -48(a6)
clr.l doutput
bra.s .waitloop
.quit move.l dconwindow(pc),d1
jsr -36(a6)
clr.w dquitflag
rts
dexit movem.l d0-d7/a0-a6,-(sp)
st dquitflag
move.l ddosbase(pc),a6
.1 moveq #1,d1
jsr -198(a6)
tst.w dquitflag
bne.s .1
move.l 4.w,a6
move.l ddosbase(pc),a1
jsr -414(a6)
movem.l (sp)+,d0-d7/a0-a6
rts
dtype movem.l d0-d7/a0-a6,-(sp) ;Text in a0 ausgeben
move.l a0,doutput
move.l ddosbase(pc),a6
.1 ;moveq #1,d1
;jsr -198(a6)
tst.l doutput
bne.s .1
movem.l (sp)+,d0-d7/a0-a6
rts
dtypeb movem.l d0-d7/a0-a6,-(sp) ;BSTR ausgeben
; a0 BPTR auf BCPL-String
add.l a0,a0
add.l a0,a0
lea dconvbuf(pc),a1
moveq #0,d0
move.b (a0)+,d0
subq.w #1,d0
bmi.s .ende
.11 move.b (a0)+,(a1)+
dbra d0,.11
clr.b (a1)+
lea dconvbuf(pc),a0
bsr dtype
.ende movem.l (sp)+,d0-d7/a0-a6
rts
dspc move.l a0,-(sp) ;Space drucken
lea dspct(pc),a0
bsr dtype
move.l (sp)+,a0
rts
dcr move.l a0,-(sp) ;Linefeed drucken
lea dcrt(pc),a0
bsr dtype
move.l (sp)+,a0
rts
dtypehex ;ULONG in d0 als HEX-Zahl ausgeben
movem.l d0-d7/a0-a6,-(sp)
lea dconvbuf(pc),a0
bsr dlong2hex
move.b #32,(a0)+
clr.b (a0)+
lea dconvbuf(pc),a0
bsr dtype
movem.l (sp)+,d0-d7/a0-a6
rts
dtypedec ;ULONG in d0 als DEC-Zahl ausgeben
movem.l d0-d7/a0-a6,-(sp)
lea dconvbuf(pc),a0
bsr dlong2dec
move.b #32,(a0)+
clr.b (a0)+
lea dconvbuf(pc),a0
bsr dtype
movem.l (sp)+,d0-d7/a0-a6
rts
dlong2hex ;konvertiert LONG in d0 in HEX-String nach (a0)+
moveq #7,d1
.1 rol.l #4,d0
move.b d0,d2
and.b #$f,d2
add.b #48,d2
cmp.b #58,d2
bcs.s .2
addq.b #7,d2
.2 move.b d2,(a0)+
dbra d1,.1
rts
dlong2dec ;Converts Long in d0 to Dec-String in (a0)+
tst.l d0
bne.s .0
move.b #"0",(a0)+
rts
.0 lea dlong2asciitab(pc),a1
moveq #9,d1
moveq #0,d6
.1 move.l (a1)+,d2
move.l d0,d3
moveq #-1,d4
.2 move.l d3,d5
sub.l d2,d3
cmp.l d5,d3
dbhi d4,.2
add.l d2,d3
move.l d3,d0
not.w d4
bne.s .3
tst.w d6
beq.s .4
.3 st d6
add.b #"0",d4
move.b d4,(a0)+
.4 dbra d1,.1
rts
dlong2asciitab dc.l 1000000000,100000000,10000000,1000000,100000
dc.l 10000,1000,100,10,1
dconvbuf ds.b 200
ddosbase dc.l 0
dconwindow dc.l 0
doutput dc.l 0
dquitflag dc.w 0
debugprocessid dc.l 0
dconname dc.b "CON:0/150/640/106/DEBUG messages..",0
ddosname dc.b "dos.library",0
debugprocname dc.b "rSt-debug!",0
dspct dc.b 32,0
dcrt dc.b 10,0
cnop 0,4