Annotation of hatari/src/cpu/debug.h, revision 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.