filename | src/aica/aica.c |
changeset | 929:fd8cb0c82f5f |
prev | 829:517425d04f1b |
next | 934:3acd3b3ee6d1 |
author | nkeynes |
date | Tue Dec 23 05:48:05 2008 +0000 (15 years ago) |
branch | lxdream-mem |
permissions | -rw-r--r-- |
last change | More refactoring and general cleanup. Most things should be working again now. Split off cache and start real implementation, breaking save states in the process |
file | annotate | diff | log | raw |
1.1 --- a/src/aica/aica.c Mon Aug 25 09:16:44 2008 +00001.2 +++ b/src/aica/aica.c Tue Dec 23 05:48:05 2008 +00001.3 @@ -194,16 +194,18 @@1.4 */1.6 /* Write to channels 0-31 */1.7 -void mmio_region_AICA0_write( uint32_t reg, uint32_t val )1.8 +MMIO_REGION_WRITE_FN( AICA0, reg, val )1.9 {1.10 + reg &= 0xFFF;1.11 MMIO_WRITE( AICA0, reg, val );1.12 aica_write_channel( reg >> 7, reg % 128, val );1.13 // DEBUG( "AICA0 Write %08X => %08X", val, reg );1.14 }1.16 /* Write to channels 32-64 */1.17 -void mmio_region_AICA1_write( uint32_t reg, uint32_t val )1.18 +MMIO_REGION_WRITE_FN( AICA1, reg, val )1.19 {1.20 + reg &= 0xFFF;1.21 MMIO_WRITE( AICA1, reg, val );1.22 aica_write_channel( (reg >> 7) + 32, reg % 128, val );1.23 // DEBUG( "AICA1 Write %08X => %08X", val, reg );1.24 @@ -212,10 +214,11 @@1.25 /**1.26 * AICA control registers1.27 */1.28 -void mmio_region_AICA2_write( uint32_t reg, uint32_t val )1.29 +MMIO_REGION_WRITE_FN( AICA2, reg, val )1.30 {1.31 uint32_t tmp;1.32 -1.33 + reg &= 0xFFF;1.34 +1.35 switch( reg ) {1.36 case AICA_RESET:1.37 tmp = MMIO_READ( AICA2, AICA_RESET );1.38 @@ -241,11 +244,12 @@1.39 }1.40 }1.42 -int32_t mmio_region_AICA2_read( uint32_t reg )1.43 +MMIO_REGION_READ_FN( AICA2, reg )1.44 {1.45 audio_channel_t channel;1.46 uint32_t channo;1.47 int32_t val;1.48 + reg &= 0xFFF;1.49 switch( reg ) {1.50 case AICA_CHANSTATE:1.51 channo = (MMIO_READ( AICA2, AICA_CHANSEL ) >> 8) & 0x3F;1.52 @@ -266,9 +270,10 @@1.53 }1.54 }1.56 -int32_t mmio_region_AICARTC_read( uint32_t reg )1.57 +MMIO_REGION_READ_FN( AICARTC, reg )1.58 {1.59 int32_t rv = 0;1.60 + reg &= 0xFFF;1.61 switch( reg ) {1.62 case AICA_RTCHI:1.63 rv = (aica_state.time_of_day >> 16) & 0xFFFF;1.64 @@ -281,9 +286,9 @@1.65 return rv;1.66 }1.68 -1.69 -void mmio_region_AICARTC_write( uint32_t reg, uint32_t val )1.70 +MMIO_REGION_WRITE_FN( AICARTC, reg, val )1.71 {1.72 + reg &= 0xFFF;1.73 switch( reg ) {1.74 case AICA_RTCEN:1.75 MMIO_WRITE( AICARTC, reg, val&0x01 );
.