forked from chrisly42/Hamazing
74 lines
2.0 KiB
OpenEdge ABL
74 lines
2.0 KiB
OpenEdge ABL
|
MEMPF_READ = $0001
|
|||
|
MEMPF_WRITE = $0002
|
|||
|
MEMPF_DMAREAD = $0004
|
|||
|
MEMPF_DMAWRITE = $0008
|
|||
|
MEMPF_ALL = MEMPF_READ | MEMPF_WRITE | MEMPF_DMAREAD | MEMPF_DMAWRITE
|
|||
|
|
|||
|
IF NEWAGE_DEBUG
|
|||
|
|
|||
|
UAEExitWarp MACRO
|
|||
|
pea 1.w
|
|||
|
pea .ob\@(pc)
|
|||
|
clr.l -(sp)
|
|||
|
pea .wm\@(pc)
|
|||
|
pea -1.w
|
|||
|
pea 82.w
|
|||
|
jsr $f0ff60
|
|||
|
lea .bc\@(pc),a0
|
|||
|
move.l a0,8(sp)
|
|||
|
jsr $f0ff60
|
|||
|
lea 6*4(sp),sp
|
|||
|
bra.s .s\@
|
|||
|
.ob\@ dc.l 0
|
|||
|
.wm\@ dc.b "warp false",0
|
|||
|
.bc\@ dc.b "cycle_exact true",0
|
|||
|
cnop 0,2
|
|||
|
.s\@
|
|||
|
ENDM
|
|||
|
|
|||
|
UAEExit MACRO
|
|||
|
move.l #13,-(sp)
|
|||
|
jmp $f0ff60
|
|||
|
ENDM
|
|||
|
|
|||
|
; UAEMemProtect address,size,bits
|
|||
|
|
|||
|
UAEMemProtect MACRO
|
|||
|
move.l #\3,-(sp)
|
|||
|
move.l #\2,-(sp)
|
|||
|
pea \1
|
|||
|
jsr $f0ff54
|
|||
|
lea.l 12(sp),sp
|
|||
|
ENDM
|
|||
|
|
|||
|
WinUAEBreakpoint MACRO ;to stop here in WinUAE, enter "w 4 4 4 w" in the debugger window (shift+f12) to place the breakpoint, and enter "w 4" to remove it
|
|||
|
move.l 4.w,4.w
|
|||
|
ENDM
|
|||
|
|
|||
|
; The UAE debugger doesn‘t know about any symbols your program might have defined,
|
|||
|
; so setting a breakpoint to some address is no big help.
|
|||
|
; The trick is to use the fi (find instruction) command to break at a specific opcode.
|
|||
|
; You cannot use any common opcode, of course, otherwise the debugger will constantly
|
|||
|
; stop in all kinds of processes. Use an opcode which doesn‘t appear anywhere else and
|
|||
|
; which, preferably, has no effect. Something like EXG A7,A7 ($cf4f).
|
|||
|
|
|||
|
; Insert this opcode into your code at the position you want to start debugging.
|
|||
|
; Then enter fi cf4f into the debugger. Start your program and begin tracing your program flow.
|
|||
|
; t executes a single instruction, z executes code over subroutines, m does memory dumps.
|
|||
|
|
|||
|
ELSE
|
|||
|
|
|||
|
UAEExitWarp MACRO
|
|||
|
ENDM
|
|||
|
|
|||
|
UAEMemProtect MACRO
|
|||
|
ENDM
|
|||
|
|
|||
|
UAEExit MACRO
|
|||
|
ENDM
|
|||
|
|
|||
|
WinUAEBreakpoint MACRO
|
|||
|
ENDM
|
|||
|
|
|||
|
ENDC
|