megadrive_test2
diff src/vdp.h @ 1:2560a8be8cb8
hblank interrupt test
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 14 Mar 2017 09:02:43 +0200 |
parents | ce1b05082ac4 |
children | 72ab63f262bf |
line diff
1.1 --- a/src/vdp.h Tue Mar 14 05:59:33 2017 +0200 1.2 +++ b/src/vdp.h Tue Mar 14 09:02:43 2017 +0200 1.3 @@ -20,7 +20,7 @@ 1.4 VDP_REG_NAMETAB_B = 4, 1.5 VDP_REG_SPRITE_TAB = 5, 1.6 VDP_REG_BGCOL = 7, 1.7 - VDP_REG_INTR = 10, 1.8 + VDP_REG_HINTR = 10, 1.9 VDP_REG_MODE3 = 11, 1.10 VDP_REG_MODE4 = 12, 1.11 VDP_REG_SCROLL_TAB = 13, 1.12 @@ -120,7 +120,7 @@ 1.13 1.14 static inline void vdp_setreg(int reg, uint8_t value) 1.15 { 1.16 - /*vdp_reg_shadow[reg] = value;*/ 1.17 + vdp_reg_shadow[reg] = value; 1.18 VDP_PORT_CTL = (uint16_t)value | (reg << 8) | (uint16_t)0x8000; 1.19 } 1.20 1.21 @@ -152,6 +152,27 @@ 1.22 VDP_PORT_DATA = VDP_PACK_RGB(r, g, b); 1.23 } 1.24 1.25 +static inline void vdp_enable_vintr(void) 1.26 +{ 1.27 + vdp_setreg(VDP_REG_MODE2, vdp_getreg(VDP_REG_MODE2) | VDP_MODE2_VINTR); 1.28 +} 1.29 + 1.30 +static inline void vdp_disable_vintr(void) 1.31 +{ 1.32 + vdp_setreg(VDP_REG_MODE2, vdp_getreg(VDP_REG_MODE2) & ~VDP_MODE2_VINTR); 1.33 +} 1.34 + 1.35 +static inline void vdp_enable_hintr(int counter) 1.36 +{ 1.37 + vdp_setreg(VDP_REG_HINTR, counter); 1.38 + vdp_setreg(VDP_REG_MODE1, vdp_getreg(VDP_REG_MODE1) | VDP_MODE1_HINTR); 1.39 +} 1.40 + 1.41 +static inline void vdp_disable_hintr(void) 1.42 +{ 1.43 + vdp_setreg(VDP_REG_MODE1, vdp_getreg(VDP_REG_MODE1) & ~VDP_MODE1_HINTR); 1.44 +} 1.45 + 1.46 void vdp_init(void); 1.47 1.48 #endif /* VDP_H_ */