Annotation of hatari/src/cpu/debug.h, revision 1.1.1.1

1.1       root        1:  /*
                      2:   * UAE - The Un*x Amiga Emulator
                      3:   *
                      4:   * Debugger
                      5:   *
                      6:   * (c) 1995 Bernd Schmidt
                      7:   *
                      8:   */
                      9: 
                     10: #ifdef DEBUGGER
                     11: 
                     12: #define        MAX_HIST 500
                     13: #define MAX_LINEWIDTH 100
                     14: 
                     15: extern int debugging;
                     16: extern int memwatch_enabled;
                     17: extern int exception_debugging;
                     18: extern int debug_copper;
                     19: extern int debug_dma;
                     20: extern int debug_sprite_mask;
                     21: extern int debug_bpl_mask, debug_bpl_mask_one;
                     22: extern int debugger_active;
                     23: extern int debug_illegal;
                     24: extern uae_u64 debug_illegal_mask;
                     25: 
                     26: extern void debug (void);
                     27: extern void debugger_change (int mode);
                     28: extern void activate_debugger (void);
                     29: extern void deactivate_debugger (void);
                     30: extern int notinrom (void);
                     31: extern const TCHAR *debuginfo (int);
                     32: extern void record_copper (uaecptr addr, uae_u16 word1, uae_u16 word2, int hpos, int vpos);
                     33: extern void record_copper_blitwait (uaecptr addr, int hpos, int vpos);
                     34: extern void record_copper_reset (void);
                     35: extern int mmu_init (int, uaecptr,uaecptr);
                     36: extern void mmu_do_hit (void);
                     37: extern void dump_aga_custom (void);
                     38: extern void memory_map_dump (void);
                     39: extern void debug_help (void);
                     40: extern uaecptr dumpmem2 (uaecptr addr, TCHAR *out, int osize);
                     41: extern void update_debug_info (void);
                     42: extern int instruction_breakpoint (TCHAR **c);
                     43: extern int debug_bankchange (int);
                     44: extern void log_dma_record (void);
                     45: extern void debug_parser (const TCHAR *cmd, TCHAR *out, uae_u32 outsize);
                     46: extern void mmu_disasm (uaecptr pc, int lines);
                     47: extern int debug_read_memory_16 (uaecptr addr);
                     48: extern int debug_peek_memory_16 (uaecptr addr);
                     49: extern int debug_read_memory_8 (uaecptr addr);
                     50: extern int debug_peek_memory_8 (uaecptr addr);
                     51: extern int debug_write_memory_16 (uaecptr addr, uae_u16 v);
                     52: extern int debug_write_memory_8 (uaecptr addr, uae_u8 v);
                     53: extern bool debug_enforcer(void);
                     54: 
                     55: #define BREAKPOINT_TOTAL 20
                     56: struct breakpoint_node {
                     57:     uaecptr addr;
                     58:     int enabled;
                     59: };
                     60: extern struct breakpoint_node bpnodes[BREAKPOINT_TOTAL];
                     61: 
                     62: #define MW_MASK_CPU                            0x00000001
                     63: #define MW_MASK_BLITTER_A              0x00000002
                     64: #define MW_MASK_BLITTER_B              0x00000004
                     65: #define MW_MASK_BLITTER_C              0x00000008
                     66: #define MW_MASK_BLITTER_D              0x00000010
                     67: #define MW_MASK_COPPER                 0x00000020
                     68: #define MW_MASK_DISK                   0x00000040
                     69: #define MW_MASK_AUDIO_0                        0x00000080
                     70: #define MW_MASK_AUDIO_1                        0x00000100
                     71: #define MW_MASK_AUDIO_2                        0x00000200
                     72: #define MW_MASK_AUDIO_3                        0x00000400
                     73: #define MW_MASK_BPL_0                  0x00000800
                     74: #define MW_MASK_BPL_1                  0x00001000
                     75: #define MW_MASK_BPL_2                  0x00002000
                     76: #define MW_MASK_BPL_3                  0x00004000
                     77: #define MW_MASK_BPL_4                  0x00008000
                     78: #define MW_MASK_BPL_5                  0x00010000
                     79: #define MW_MASK_BPL_6                  0x00020000
                     80: #define MW_MASK_BPL_7                  0x00040000
                     81: #define MW_MASK_SPR_0                  0x00080000
                     82: #define MW_MASK_SPR_1                  0x00100000
                     83: #define MW_MASK_SPR_2                  0x00200000
                     84: #define MW_MASK_SPR_3                  0x00400000
                     85: #define MW_MASK_SPR_4                  0x00800000
                     86: #define MW_MASK_SPR_5                  0x01000000
                     87: #define MW_MASK_SPR_6                  0x02000000
                     88: #define MW_MASK_SPR_7                  0x04000000
                     89: #define MW_MASK_ALL                            (0x08000000 - 1)
                     90: 
                     91: #define MEMWATCH_TOTAL 20
                     92: struct memwatch_node {
                     93:        uaecptr addr;
                     94:        int size;
                     95:        int rwi;
                     96:        uae_u32 val, val_mask, access_mask;
                     97:        int val_size, val_enabled;
                     98:        int mustchange;
                     99:        uae_u32 modval;
                    100:        int modval_written;
                    101:        int frozen;
                    102:        uae_u32 reg;
                    103:        uaecptr pc;
                    104: };
                    105: extern struct memwatch_node mwnodes[MEMWATCH_TOTAL];
                    106: 
                    107: extern void memwatch_dump2 (TCHAR *buf, int bufsize, int num);
                    108: 
                    109: uae_u16 debug_wgetpeekdma_chipram (uaecptr addr, uae_u32 v, uae_u32 mask, int reg);
                    110: uae_u16 debug_wputpeekdma_chipram (uaecptr addr, uae_u32 v, uae_u32 mask, int reg);
                    111: uae_u16 debug_wputpeekdma_chipset (uaecptr addr, uae_u32 v, uae_u32 mask, int reg);
                    112: void debug_lgetpeek (uaecptr addr, uae_u32 v);
                    113: void debug_wgetpeek (uaecptr addr, uae_u32 v);
                    114: void debug_bgetpeek (uaecptr addr, uae_u32 v);
                    115: void debug_bputpeek (uaecptr addr, uae_u32 v);
                    116: void debug_wputpeek (uaecptr addr, uae_u32 v);
                    117: void debug_lputpeek (uaecptr addr, uae_u32 v);
                    118: 
                    119: uae_u32 get_byte_debug (uaecptr addr);
                    120: uae_u32 get_word_debug (uaecptr addr);
                    121: uae_u32 get_long_debug (uaecptr addr);
                    122: uae_u32 get_ilong_debug (uaecptr addr);
                    123: uae_u32 get_iword_debug (uaecptr addr);
                    124: 
                    125: 
                    126: enum debugtest_item { DEBUGTEST_BLITTER, DEBUGTEST_KEYBOARD, DEBUGTEST_FLOPPY, DEBUGTEST_MAX };
                    127: void debugtest (enum debugtest_item, const TCHAR *, ...);
                    128: 
                    129: struct dma_rec
                    130: {
                    131:     uae_u16 reg;
                    132:     uae_u32 dat;
                    133:     uae_u32 addr;
                    134:     uae_u16 evt;
                    135:     int type;
                    136:        uae_s8 intlev;
                    137: };
                    138: 
                    139: #define DMA_EVENT_BLITIRQ 1
                    140: #define DMA_EVENT_BLITNASTY 2
                    141: #define DMA_EVENT_BLITSTARTFINISH 4
                    142: #define DMA_EVENT_BPLFETCHUPDATE 8
                    143: #define DMA_EVENT_COPPERWAKE 16
                    144: #define DMA_EVENT_CPUIRQ 32
                    145: #define DMA_EVENT_INTREQ 64
                    146: #define DMA_EVENT_COPPERWANTED 128
                    147: 
                    148: #define DMARECORD_REFRESH 1
                    149: #define DMARECORD_CPU 2
                    150: #define DMARECORD_COPPER 3
                    151: #define DMARECORD_AUDIO 4
                    152: #define DMARECORD_BLITTER 5
                    153: #define DMARECORD_BLITTER_FILL 6
                    154: #define DMARECORD_BLITTER_LINE 7
                    155: #define DMARECORD_BITPLANE 8
                    156: #define DMARECORD_SPRITE 9
                    157: #define DMARECORD_DISK 10
                    158: #define DMARECORD_MAX 11
                    159: 
                    160: extern struct dma_rec *record_dma (uae_u16 reg, uae_u16 dat, uae_u32 addr, int hpos, int vpos, int type);
                    161: extern void record_dma_reset (void);
                    162: extern void record_dma_event (int evt, int hpos, int vpos);
                    163: extern void debug_draw_cycles (uae_u8 *buf, int bpp, int line, int width, int height, uae_u32 *xredcolors, uae_u32 *xgreencolors, uae_u32 *xbluescolors);
                    164: 
                    165: #else
                    166: 
                    167: STATIC_INLINE void activate_debugger (void) { };
                    168: #ifdef WINUAE_FOR_HATARI
                    169: uae_u32 get_byte_debug (uaecptr addr);
                    170: uae_u32 get_word_debug (uaecptr addr);
                    171: uae_u32 get_long_debug (uaecptr addr);
                    172: uae_u32 get_ilong_debug (uaecptr addr);
                    173: uae_u32 get_iword_debug (uaecptr addr);
                    174: extern void mmu_do_hit (void);
                    175: #endif
                    176: 
                    177: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.