--- uae/src/include/custom.h 2018/04/24 16:38:39 1.1 +++ uae/src/include/custom.h 2018/04/24 16:39:29 1.1.1.2 @@ -18,12 +18,14 @@ extern int bogusframe; extern UWORD dmacon; extern UWORD intena,intreq; + +extern int current_hpos (void); + static __inline__ int dmaen(UWORD dmamask) { return (dmamask & dmacon) && (dmacon & 0x200); } -#define SPCFLAG_BLIT 1 #define SPCFLAG_STOP 2 #define SPCFLAG_DISK 4 #define SPCFLAG_INT 8 @@ -35,23 +37,28 @@ static __inline__ int dmaen(UWORD dmamas #define SPCFLAG_BLTNASTY 512 #define SPCFLAG_EXEC 1024 #define SPCFLAG_EMULTRAP 2048 +#define SPCFLAG_TIMER 4096 +#define SPCFLAG_MODE_CHANGE 8192 -#define PRESERVED_FLAGS (SPCFLAG_DISK|SPCFLAG_BLIT|SPCFLAG_BLTNASTY) +#define PRESERVED_FLAGS (SPCFLAG_DISK|SPCFLAG_BLTNASTY|SPCFLAG_TIMER) extern int dskdmaen; extern UWORD adkcon; -extern int max_diwstop, prev_max_diwstop; - extern UWORD joy0dir; extern int joy0button; extern void INTREQ(UWORD); extern UWORD INTREQR(void); +extern UWORD DMACONR(void); #define maxhpos 227 #define maxvpos 312 -#define minfirstline 29 +/* 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) #define DMA_AUD0 0x0001 @@ -64,19 +71,6 @@ extern UWORD INTREQR(void); #define DMA_COPPER 0x0080 #define DMA_BITPLANE 0x0100 #define DMA_BLITPRI 0x0400 -/* -struct bltinfo { - int blitzero; - UWORD blitpreva,blitprevb,blitashift,blitbshift; - UWORD bltadat,bltbdat,bltcdat,bltddat,bltafwm,bltalwm; - UWORD vblitsize,hblitsize; - WORD bltamod,bltbmod,bltcmod,bltdmod; -}; - -extern void do_blitter(void); - -typedef void blitter_func(UWORD *, UWORD *, UWORD *, UWORD *, struct bltinfo *); - -extern blitter_func *blitfunc_dofast[256]; -extern blitter_func *blitfunc_dofast_desc[256]; -*/ + +extern unsigned long frametime, timeframes; +