trunk/src/mame/drivers/seibuspi.c
| r23488 | r23489 | |
| 930 | 930 | // d3: watchdog? |
| 931 | 931 | } |
| 932 | 932 | |
| 933 | | WRITE8_MEMBER(seibuspi_state::sb_coin_w) |
| 933 | WRITE8_MEMBER(seibuspi_state::spi_coin_w) |
| 934 | 934 | { |
| 935 | coin_counter_w(machine(), 0, data & 1); |
| 936 | coin_counter_w(machine(), 1, data & 2); |
| 937 | |
| 938 | // coin latch used by single boards |
| 935 | 939 | if (data) |
| 936 | 940 | m_sb_coin_latch = 0xa0 | data; |
| 937 | 941 | else |
| r23488 | r23489 | |
| 942 | 946 | /********************************************************************/ |
| 943 | 947 | |
| 944 | 948 | static ADDRESS_MAP_START( spi_map, AS_PROGRAM, 32, seibuspi_state ) |
| 945 | | AM_RANGE(0x00000000, 0x00000417) AM_RAM |
| 949 | AM_RANGE(0x00000000, 0x000003ff) AM_RAM |
| 950 | AM_RANGE(0x00000414, 0x00000417) AM_WRITENOP // bg gfx decryption key, see machine/seibuspi.c |
| 946 | 951 | AM_RANGE(0x00000418, 0x0000041b) AM_READWRITE(spi_layer_bank_r, spi_layer_bank_w) |
| 947 | 952 | AM_RANGE(0x0000041c, 0x0000041f) AM_READNOP |
| 948 | 953 | AM_RANGE(0x0000041c, 0x0000041f) AM_WRITE(spi_layer_enable_w) |
| r23488 | r23489 | |
| 951 | 956 | AM_RANGE(0x00000484, 0x00000487) AM_WRITE(palette_dma_start_w) |
| 952 | 957 | AM_RANGE(0x00000490, 0x00000493) AM_WRITE(video_dma_length_w) |
| 953 | 958 | AM_RANGE(0x00000494, 0x00000497) AM_WRITE(video_dma_address_w) |
| 959 | AM_RANGE(0x00000498, 0x0000049b) AM_WRITENOP // ? |
| 954 | 960 | AM_RANGE(0x0000050c, 0x0000050f) AM_WRITE(sprite_dma_start_w) |
| 961 | AM_RANGE(0x00000524, 0x00000527) AM_WRITENOP // SEI252 sprite decryption key, see machine/spisprit.c |
| 962 | AM_RANGE(0x00000530, 0x00000533) AM_WRITENOP // SEI252 sprite decryption table key, see machine/spisprit.c |
| 963 | AM_RANGE(0x0000053c, 0x0000053f) AM_WRITENOP // SEI252 sprite decryption table index, see machine/spisprit.c |
| 964 | AM_RANGE(0x0000054c, 0x0000054f) AM_WRITENOP // RISE10/11 sprite decryption key, see machine/seibuspi.c |
| 955 | 965 | AM_RANGE(0x00000560, 0x00000563) AM_WRITE(sprite_dma_start_w) |
| 956 | | AM_RANGE(0x00000600, 0x00000603) AM_READ(spi_int_r) // Clear Interrupt |
| 957 | | AM_RANGE(0x00000600, 0x00000603) AM_WRITENOP // Unknown |
| 958 | | AM_RANGE(0x00000604, 0x00000607) AM_READ_PORT("INPUTS") // Player controls |
| 959 | | AM_RANGE(0x00000608, 0x0000060b) AM_READ(spi_nop_r) // Unknown |
| 960 | | AM_RANGE(0x0000060c, 0x0000060f) AM_READ_PORT("SYSTEM") // Player controls (start) |
| 966 | AM_RANGE(0x00000600, 0x00000603) AM_READ(spi_int_r) |
| 967 | AM_RANGE(0x00000600, 0x00000603) AM_WRITENOP // ? |
| 968 | AM_RANGE(0x00000604, 0x00000607) AM_READ_PORT("INPUTS") |
| 969 | AM_RANGE(0x00000608, 0x0000060b) AM_READ_PORT("UNKNOWN") |
| 970 | AM_RANGE(0x0000060c, 0x0000060f) AM_READ_PORT("SYSTEM") |
| 961 | 971 | AM_RANGE(0x00000680, 0x00000683) AM_DEVREAD8("soundfifo2", fifo7200_device, data_byte_r, 0x000000ff) |
| 962 | 972 | AM_RANGE(0x00000680, 0x00000683) AM_DEVWRITE8("soundfifo1", fifo7200_device, data_byte_w, 0x000000ff) |
| 963 | 973 | AM_RANGE(0x00000684, 0x00000687) AM_READ8(sound_fifo_status_r, 0x000000ff) |
| 964 | | AM_RANGE(0x00000684, 0x00000687) AM_WRITENOP // Unknown |
| 974 | AM_RANGE(0x00000684, 0x00000687) AM_WRITENOP // ? |
| 975 | AM_RANGE(0x00000688, 0x0000068b) AM_READNOP // ? |
| 965 | 976 | AM_RANGE(0x00000688, 0x0000068b) AM_WRITE8(z80_prg_transfer_w, 0x000000ff) |
| 966 | 977 | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITE8(z80_enable_w, 0x000000ff) |
| 967 | 978 | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITE8(spi_set_layer_banks_w, 0x00ff0000) |
| 979 | AM_RANGE(0x00000690, 0x00000693) AM_WRITENOP // ? |
| 968 | 980 | AM_RANGE(0x000006d0, 0x000006d3) AM_DEVWRITE8("ds2404", ds2404_device, ds2404_1w_reset_w, 0x000000ff) |
| 969 | 981 | AM_RANGE(0x000006d4, 0x000006d7) AM_DEVWRITE8("ds2404", ds2404_device, ds2404_data_w, 0x000000ff) |
| 970 | 982 | AM_RANGE(0x000006d8, 0x000006db) AM_DEVWRITE8("ds2404", ds2404_device, ds2404_clk_w, 0x000000ff) |
| r23488 | r23489 | |
| 978 | 990 | static ADDRESS_MAP_START( spisound_map, AS_PROGRAM, 8, seibuspi_state ) |
| 979 | 991 | AM_RANGE(0x0000, 0x1fff) AM_ROM |
| 980 | 992 | AM_RANGE(0x2000, 0x3fff) AM_RAM |
| 981 | | AM_RANGE(0x4002, 0x4002) AM_WRITENOP // Unknown |
| 982 | | AM_RANGE(0x4003, 0x4003) AM_WRITENOP // Unknown |
| 993 | AM_RANGE(0x4002, 0x4002) AM_WRITENOP // ? |
| 994 | AM_RANGE(0x4003, 0x4003) AM_WRITENOP // ? |
| 995 | AM_RANGE(0x4004, 0x4004) AM_WRITE(spi_coin_w) |
| 983 | 996 | AM_RANGE(0x4008, 0x4008) AM_DEVREAD("soundfifo1", fifo7200_device, data_byte_r) |
| 984 | 997 | AM_RANGE(0x4008, 0x4008) AM_DEVWRITE("soundfifo2", fifo7200_device, data_byte_w) |
| 985 | 998 | AM_RANGE(0x4009, 0x4009) AM_READ(z80_soundfifo_status_r) |
| 986 | 999 | AM_RANGE(0x400a, 0x400a) AM_READ_PORT("JP1") |
| 987 | | AM_RANGE(0x400b, 0x400b) AM_WRITENOP // Unknown |
| 1000 | AM_RANGE(0x400b, 0x400b) AM_WRITENOP // ? |
| 988 | 1001 | AM_RANGE(0x4013, 0x4013) AM_READ_PORT("COIN") |
| 989 | 1002 | AM_RANGE(0x401b, 0x401b) AM_WRITE(z80_bank_w) |
| 990 | 1003 | AM_RANGE(0x6000, 0x600f) AM_DEVREADWRITE("ymf", ymf271_device, read, write) |
| r23488 | r23489 | |
| 996 | 1009 | |
| 997 | 1010 | static ADDRESS_MAP_START( sxx2e_map, AS_PROGRAM, 32, seibuspi_state ) |
| 998 | 1011 | AM_RANGE(0x00000680, 0x00000683) AM_READ8(sb_coin_r, 0x000000ff) |
| 999 | | AM_RANGE(0x00000684, 0x00000687) AM_READ(spi_nop_r) // No soundfifo2 |
| 1000 | | AM_RANGE(0x00000688, 0x0000068b) AM_WRITENOP // No z80_prg_transfer |
| 1012 | AM_RANGE(0x00000684, 0x00000687) AM_READ(spi_nop_r) // no soundfifo2 |
| 1013 | AM_RANGE(0x00000688, 0x0000068b) AM_WRITENOP // no z80_prg_transfer |
| 1001 | 1014 | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITE8(spi_set_layer_banks_w, 0x00ff0000) |
| 1002 | | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITENOP // No z80_enable |
| 1015 | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITENOP // no z80_enable |
| 1003 | 1016 | AM_IMPORT_FROM( spi_map ) |
| 1004 | 1017 | ADDRESS_MAP_END |
| 1005 | 1018 | |
| r23488 | r23489 | |
| 1009 | 1022 | ADDRESS_MAP_END |
| 1010 | 1023 | |
| 1011 | 1024 | static ADDRESS_MAP_START( sbsound_map, AS_PROGRAM, 8, seibuspi_state ) |
| 1012 | | AM_RANGE(0x4004, 0x4004) AM_WRITE(sb_coin_w) |
| 1013 | | AM_RANGE(0x4008, 0x4008) AM_WRITENOP // No soundfifo2 |
| 1025 | AM_RANGE(0x4008, 0x4008) AM_WRITENOP // no soundfifo2 |
| 1014 | 1026 | AM_IMPORT_FROM( spisound_map ) |
| 1015 | 1027 | ADDRESS_MAP_END |
| 1016 | 1028 | |
| r23488 | r23489 | |
| 1018 | 1030 | /********************************************************************/ |
| 1019 | 1031 | |
| 1020 | 1032 | static ADDRESS_MAP_START( seibu386_map, AS_PROGRAM, 32, seibuspi_state ) |
| 1021 | | AM_RANGE(0x00000000, 0x00000417) AM_RAM |
| 1033 | AM_RANGE(0x00000000, 0x000003ff) AM_RAM |
| 1034 | AM_RANGE(0x00000414, 0x00000417) AM_WRITENOP |
| 1022 | 1035 | AM_RANGE(0x00000418, 0x0000041b) AM_READWRITE(spi_layer_bank_r, spi_layer_bank_w) |
| 1023 | 1036 | AM_RANGE(0x0000041c, 0x0000041f) AM_READNOP |
| 1024 | 1037 | AM_RANGE(0x0000041c, 0x0000041f) AM_WRITE(spi_layer_enable_w) |
| r23488 | r23489 | |
| 1027 | 1040 | AM_RANGE(0x00000484, 0x00000487) AM_WRITE(palette_dma_start_w) |
| 1028 | 1041 | AM_RANGE(0x00000490, 0x00000493) AM_WRITE(video_dma_length_w) |
| 1029 | 1042 | AM_RANGE(0x00000494, 0x00000497) AM_WRITE(video_dma_address_w) |
| 1043 | AM_RANGE(0x00000498, 0x0000049b) AM_WRITENOP // ? |
| 1044 | AM_RANGE(0x000004c0, 0x000004c3) AM_WRITENOP // ? |
| 1030 | 1045 | AM_RANGE(0x0000050c, 0x0000050f) AM_WRITE(sprite_dma_start_w) |
| 1046 | AM_RANGE(0x0000054c, 0x0000054f) AM_WRITENOP |
| 1031 | 1047 | AM_RANGE(0x00000560, 0x00000563) AM_WRITE(sprite_dma_start_w) |
| 1032 | | AM_RANGE(0x00000600, 0x00000603) AM_READ(spi_int_r) // Unknown |
| 1033 | | AM_RANGE(0x00000604, 0x00000607) AM_READ_PORT("INPUTS") // Player controls |
| 1034 | | AM_RANGE(0x00000608, 0x0000060b) AM_READ(spi_nop_r) |
| 1035 | | AM_RANGE(0x0000060c, 0x0000060f) AM_READ_PORT("SYSTEM") // Player controls (start) |
| 1048 | AM_RANGE(0x00000600, 0x00000603) AM_READ(spi_int_r) |
| 1049 | AM_RANGE(0x00000604, 0x00000607) AM_READ_PORT("INPUTS") |
| 1050 | AM_RANGE(0x00000608, 0x0000060b) AM_READ_PORT("UNKNOWN") |
| 1051 | AM_RANGE(0x0000060c, 0x0000060f) AM_READ_PORT("SYSTEM") |
| 1036 | 1052 | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITE8(spi_layerbanks_eeprom_w, 0x00ff0000) |
| 1037 | 1053 | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITE8(oki_bank_w, 0xff000000) |
| 1038 | 1054 | AM_RANGE(0x00000800, 0x0003ffff) AM_RAM AM_SHARE("mainram") |
| r23488 | r23489 | |
| 1047 | 1063 | |
| 1048 | 1064 | static ADDRESS_MAP_START( sys386f2_map, AS_PROGRAM, 32, seibuspi_state ) |
| 1049 | 1065 | AM_RANGE(0x00000000, 0x0000000f) AM_RAM |
| 1050 | | AM_RANGE(0x00000010, 0x00000013) AM_READ(spi_int_r) // Unknown |
| 1051 | | AM_RANGE(0x00000090, 0x00000097) AM_RAM // Unknown |
| 1066 | AM_RANGE(0x00000010, 0x00000013) AM_READ(spi_int_r) // ? |
| 1067 | AM_RANGE(0x00000090, 0x000003ff) AM_RAM |
| 1052 | 1068 | AM_RANGE(0x00000400, 0x00000403) AM_READNOP AM_WRITE(ejsakura_input_select_w) |
| 1053 | 1069 | AM_RANGE(0x00000404, 0x00000407) AM_WRITE8(eeprom_w, 0x000000ff) |
| 1054 | 1070 | AM_RANGE(0x00000408, 0x0000040f) AM_DEVWRITE8("ymz", ymz280b_device, write, 0x000000ff) |
| 1055 | 1071 | AM_RANGE(0x00000484, 0x00000487) AM_WRITE(palette_dma_start_w) |
| 1056 | 1072 | AM_RANGE(0x00000490, 0x00000493) AM_WRITE(video_dma_length_w) |
| 1057 | 1073 | AM_RANGE(0x00000494, 0x00000497) AM_WRITE(video_dma_address_w) |
| 1058 | | AM_RANGE(0x00000500, 0x0000050b) AM_RAM // Unknown |
| 1059 | 1074 | AM_RANGE(0x0000050c, 0x0000050f) AM_WRITE(sprite_dma_start_w) |
| 1060 | | AM_RANGE(0x00000510, 0x0000054f) AM_RAM // Unknown |
| 1061 | 1075 | AM_RANGE(0x00000560, 0x00000563) AM_WRITE(sprite_dma_start_w) |
| 1062 | 1076 | AM_RANGE(0x00000600, 0x00000607) AM_DEVREAD8("ymz", ymz280b_device, read, 0x000000ff) |
| 1063 | | AM_RANGE(0x00000608, 0x0000060b) AM_READ(spi_nop_r) |
| 1064 | | AM_RANGE(0x0000060c, 0x0000060f) AM_READ_PORT("INPUTS") // Player controls |
| 1077 | AM_RANGE(0x00000608, 0x0000060b) AM_READ_PORT("UNKNOWN") |
| 1078 | AM_RANGE(0x0000060c, 0x0000060f) AM_READ_PORT("INPUTS") |
| 1065 | 1079 | AM_RANGE(0x00000800, 0x0003ffff) AM_RAM AM_SHARE("mainram") |
| 1066 | 1080 | AM_RANGE(0x00200000, 0x003fffff) AM_ROM AM_SHARE("share1") |
| 1067 | 1081 | AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0) AM_SHARE("share1") // ROM location in real-mode |
| r23488 | r23489 | |
| 1123 | 1137 | PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_START1 ) |
| 1124 | 1138 | PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START2 ) |
| 1125 | 1139 | PORT_SERVICE_NO_TOGGLE( 0x00000004, IP_ACTIVE_LOW) /* Test Button */ |
| 1126 | | PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Coin") PORT_CODE(KEYCODE_7) |
| 1140 | PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_SERVICE ) |
| 1127 | 1141 | PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) |
| 1128 | 1142 | PORT_BIT( 0x000000b0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1129 | 1143 | PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1130 | 1144 | |
| 1145 | PORT_START("UNKNOWN") |
| 1146 | PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1147 | |
| 1131 | 1148 | PORT_START("JP1") |
| 1132 | 1149 | PORT_DIPNAME( 0x03, 0x03, "JP1" ) |
| 1133 | 1150 | PORT_DIPSETTING( 0x03, "Update" ) |
| r23488 | r23489 | |
| 1173 | 1190 | PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_START1 ) |
| 1174 | 1191 | PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_START2 ) |
| 1175 | 1192 | PORT_SERVICE_NO_TOGGLE( 0x00000004, IP_ACTIVE_LOW) /* Test Button */ |
| 1176 | | PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Coin") PORT_CODE(KEYCODE_7) |
| 1193 | PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_SERVICE ) |
| 1177 | 1194 | PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 1178 | 1195 | PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 1179 | 1196 | PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) |
| 1180 | 1197 | PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1181 | 1198 | PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1182 | 1199 | |
| 1200 | PORT_START("UNKNOWN") |
| 1201 | PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1202 | |
| 1183 | 1203 | PORT_START("JP1") |
| 1184 | 1204 | PORT_DIPNAME( 0x03, 0x03, "JP1" ) |
| 1185 | 1205 | PORT_DIPSETTING( 0x03, "Update" ) |
| r23488 | r23489 | |
| 1232 | 1252 | |
| 1233 | 1253 | PORT_START("SYSTEM") |
| 1234 | 1254 | PORT_SERVICE_NO_TOGGLE( 0x00000004, IP_ACTIVE_LOW ) |
| 1235 | | PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Coin") PORT_CODE(KEYCODE_7) |
| 1255 | PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_SERVICE ) |
| 1236 | 1256 | PORT_BIT( 0x000000f3, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1237 | 1257 | PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1238 | 1258 | |
| 1259 | PORT_START("UNKNOWN") |
| 1260 | PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1261 | |
| 1239 | 1262 | PORT_START("JP1") |
| 1240 | 1263 | PORT_DIPNAME( 0x03, 0x03, "JP1" ) |
| 1241 | 1264 | PORT_DIPSETTING( 0x03, "Update" ) |
| r23488 | r23489 | |
| 1349 | 1372 | PORT_BIT( 0x00004000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_device, read_bit) |
| 1350 | 1373 | PORT_BIT( 0xffffbf3f, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 1351 | 1374 | |
| 1375 | PORT_START("UNKNOWN") |
| 1376 | PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) |
| 1352 | 1377 | INPUT_PORTS_END |
| 1378 | |
| 1353 | 1379 | /********************************************************************/ |
| 1354 | 1380 | |
| 1381 | |
| 1355 | 1382 | #define PLANE_CHAR 0 |
| 1356 | 1383 | #define PLANE_TILE 0 |
| 1357 | 1384 | #define PLANE_SPRITE 0 |