|
|
1.1.1.3 root 1: /*
1.1 root 2: * UAE - The Un*x Amiga Emulator
1.1.1.3 root 3: *
1.1 root 4: * custom chip support
5: *
6: * (c) 1995 Bernd Schmidt
7: */
8:
1.1.1.7 root 9: /* These are the masks that are ORed together in the chipset_mask option.
10: * If CSMASK_AGA is set, the ECS bits are guaranteed to be set as well. */
11: #define CSMASK_ECS_AGNUS 1
12: #define CSMASK_ECS_DENISE 2
13: #define CSMASK_AGA 4
14:
1.1.1.5 root 15: extern void custom_init (void);
16: extern void customreset (void);
17: extern int intlev (void);
18: extern void dumpcustom (void);
1.1 root 19:
1.1.1.5 root 20: extern void do_disk (void);
1.1.1.9 root 21: extern void do_copper (void);
1.1 root 22:
1.1.1.3 root 23: extern void notice_new_xcolors (void);
24: extern void notice_screen_contents_lost (void);
1.1.1.5 root 25: extern void init_row_map (void);
1.1.1.3 root 26:
27: extern int picasso_requested_on;
28: extern int picasso_on;
29:
30: /* Set to 1 to leave out the current frame in average frame time calculation.
31: * Useful if the debugger was active. */
1.1 root 32: extern int bogusframe;
33:
1.1.1.3 root 34: extern uae_u16 dmacon;
35: extern uae_u16 intena,intreq;
1.1.1.2 root 36:
37: extern int current_hpos (void);
1.1.1.3 root 38: extern int vpos;
1.1.1.2 root 39:
1.1.1.8 root 40: STATIC_INLINE int dmaen (unsigned int dmamask)
1.1 root 41: {
42: return (dmamask & dmacon) && (dmacon & 0x200);
43: }
44:
45: #define SPCFLAG_STOP 2
1.1.1.9 root 46: #define SPCFLAG_COPPER 4
47: #define SPCFLAG_INT 8
48: #define SPCFLAG_BRK 16
1.1 root 49: #define SPCFLAG_EXTRA_CYCLES 32
50: #define SPCFLAG_TRACE 64
51: #define SPCFLAG_DOTRACE 128
52: #define SPCFLAG_DOINT 256
53: #define SPCFLAG_BLTNASTY 512
54: #define SPCFLAG_EXEC 1024
1.1.1.2 root 55: #define SPCFLAG_MODE_CHANGE 8192
1.1 root 56:
57: extern int dskdmaen;
1.1.1.3 root 58: extern uae_u16 adkcon;
1.1 root 59:
1.1.1.3 root 60: extern unsigned int joy0dir, joy1dir;
61: extern int joy0button, joy1button;
62:
1.1.1.4 root 63: extern void INTREQ (uae_u16);
64: extern uae_u16 INTREQR (void);
1.1 root 65:
1.1.1.7 root 66: /* maximums for statically allocated tables */
67:
68: #define MAXHPOS 227
69: #define MAXVPOS 312
70:
71: /* PAL/NTSC values */
72:
1.1.1.2 root 73: /* The HRM says: The vertical blanking area (PAL) ranges from line 0 to line 29,
74: * and no data can be displayed there. Nevertheless, we lose some overscan data
1.1.1.7 root 75: * if minfirstline is set to 29. */
76:
77: #define MAXHPOS_PAL 227
78: #define MAXHPOS_NTSC 227
79: #define MAXVPOS_PAL 312
80: #define MAXVPOS_NTSC 262
81: #define MINFIRSTLINE_PAL 21
82: #define MINFIRSTLINE_NTSC 18
83: #define VBLANK_ENDLINE_PAL 29
84: #define VBLANK_ENDLINE_NTSC 24
85: #define VBLANK_HZ_PAL 50
86: #define VBLANK_HZ_NTSC 60
87:
88: extern int maxhpos, maxvpos, minfirstline, vblank_endline, numscrlines, vblank_hz;
89: extern unsigned long syncbase;
90: #define NUMSCRLINES (maxvpos+1-minfirstline+1)
1.1 root 91:
92: #define DMA_AUD0 0x0001
93: #define DMA_AUD1 0x0002
94: #define DMA_AUD2 0x0004
95: #define DMA_AUD3 0x0008
96: #define DMA_DISK 0x0010
97: #define DMA_SPRITE 0x0020
98: #define DMA_BLITTER 0x0040
99: #define DMA_COPPER 0x0080
100: #define DMA_BITPLANE 0x0100
1.1.1.10! root 101: #define DMA_MASTER 0x0200
1.1 root 102: #define DMA_BLITPRI 0x0400
1.1.1.2 root 103:
104: extern unsigned long frametime, timeframes;
105:
1.1.1.3 root 106: /* 50 words give you 800 horizontal pixels. An A500 can't do that, so it ought
1.1.1.6 root 107: * to be enough. Don't forget to update the definition in genp2c.c as well. */
1.1.1.3 root 108: #define MAX_WORDS_PER_LINE 50
109:
110: extern uae_u32 hirestab_h[256][2];
111: extern uae_u32 lorestab_h[256][4];
112:
113: extern uae_u32 hirestab_l[256][1];
114: extern uae_u32 lorestab_l[256][2];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.