--- uae/src/include/custom.h 2018/04/24 16:45:16 1.1.1.5 +++ uae/src/include/custom.h 2018/04/24 16:55:18 1.1.1.12 @@ -6,12 +6,19 @@ * (c) 1995 Bernd Schmidt */ +/* These are the masks that are ORed together in the chipset_mask option. + * If CSMASK_AGA is set, the ECS bits are guaranteed to be set as well. */ +#define CSMASK_ECS_AGNUS 1 +#define CSMASK_ECS_DENISE 2 +#define CSMASK_AGA 4 + extern void custom_init (void); extern void customreset (void); extern int intlev (void); extern void dumpcustom (void); extern void do_disk (void); +extern void do_copper (void); extern void notice_new_xcolors (void); extern void notice_screen_contents_lost (void); @@ -30,15 +37,17 @@ extern uae_u16 intena,intreq; extern int current_hpos (void); extern int vpos; -static __inline__ int dmaen (unsigned int dmamask) +extern int n_frames; + +STATIC_INLINE int dmaen (unsigned int dmamask) { return (dmamask & dmacon) && (dmacon & 0x200); } #define SPCFLAG_STOP 2 -#define SPCFLAG_DISK 4 -#define SPCFLAG_INT 8 -#define SPCFLAG_BRK 16 +#define SPCFLAG_COPPER 4 +#define SPCFLAG_INT 8 +#define SPCFLAG_BRK 16 #define SPCFLAG_EXTRA_CYCLES 32 #define SPCFLAG_TRACE 64 #define SPCFLAG_DOTRACE 128 @@ -47,24 +56,39 @@ static __inline__ int dmaen (unsigned in #define SPCFLAG_EXEC 1024 #define SPCFLAG_MODE_CHANGE 8192 -extern int dskdmaen; extern uae_u16 adkcon; extern unsigned int joy0dir, joy1dir; extern int joy0button, joy1button; -extern uae_u32 mousehack_helper (void); extern void INTREQ (uae_u16); extern uae_u16 INTREQR (void); -#define maxhpos 227 -#define maxvpos 312 +/* maximums for statically allocated tables */ + +#define MAXHPOS 227 +#define MAXVPOS 312 + +/* PAL/NTSC values */ + /* The HRM says: The vertical blanking area (PAL) ranges from line 0 to line 29, * and no data can be displayed there. Nevertheless, we lose some overscan data - * if this is set to 29. */ -#define minfirstline 21 -#define vblank_endline 29 -#define numscrlines (maxvpos+1-minfirstline+1) + * if minfirstline is set to 29. */ + +#define MAXHPOS_PAL 227 +#define MAXHPOS_NTSC 227 +#define MAXVPOS_PAL 312 +#define MAXVPOS_NTSC 262 +#define MINFIRSTLINE_PAL 21 +#define MINFIRSTLINE_NTSC 18 +#define VBLANK_ENDLINE_PAL 29 +#define VBLANK_ENDLINE_NTSC 24 +#define VBLANK_HZ_PAL 50 +#define VBLANK_HZ_NTSC 60 + +extern int maxhpos, maxvpos, minfirstline, vblank_endline, numscrlines, vblank_hz; +extern unsigned long syncbase; +#define NUMSCRLINES (maxvpos+1-minfirstline+1) #define DMA_AUD0 0x0001 #define DMA_AUD1 0x0002 @@ -75,12 +99,13 @@ extern uae_u16 INTREQR (void); #define DMA_BLITTER 0x0040 #define DMA_COPPER 0x0080 #define DMA_BITPLANE 0x0100 +#define DMA_MASTER 0x0200 #define DMA_BLITPRI 0x0400 extern unsigned long frametime, timeframes; /* 50 words give you 800 horizontal pixels. An A500 can't do that, so it ought - * to be enough. */ + * to be enough. Don't forget to update the definition in genp2c.c as well. */ #define MAX_WORDS_PER_LINE 50 extern uae_u32 hirestab_h[256][2]; @@ -88,3 +113,6 @@ extern uae_u32 lorestab_h[256][4]; extern uae_u32 hirestab_l[256][1]; extern uae_u32 lorestab_l[256][2]; + +/* AGA mode color lookup tables */ +extern unsigned int xredcolors[256], xgreencolors[256], xbluecolors[256];