Well from scratch, let's say you suspect a bad ROM on your Kickman. Check the schematic, it shows:
Note the 74ls138 which is a 3-to-8 decoder (
here). Its inputs are {A14, A13, A12} and enabled when A15 is low. So for every combination A15=0 and:
A14=0 A13=0 A12=0 -- selects pin 15, connected to rom0 (B3)
A14=0 A13=0 A12=1 -- selects pin 14, connected to rom1 (B4)
A14=0 A13=1 A12=0 -- selects pin 13, connected to rom2 (B5)
A14=0 A13=1 A12=1 -- selects pin 12, connected to rom3 (D4)
A14=1 A13=0 A12=0 -- selects pin 11, connected to rom4 (D5)
A14=1 A13=0 A12=1 -- selects pin 10, connected to rom5 (D6)
A14=1 A13=1 A12=0 -- selects pin 9, connected to rom6 (D7)
A14=1 A13=1 A12=1 -- selects pin 7, connected to sel7 (jumps to nvram)
To make it more obvious, work out the address bits:
Code:
chip address (binary) address range (hex)
rom0 b0000xxxxxxxxxxxx = 0x0000-0x0fff
rom1 b0001xxxxxxxxxxxx = 0x1000-0x1fff
rom2 b0010xxxxxxxxxxxx = 0x2000-0x2fff
rom3 b0011xxxxxxxxxxxx = 0x3000-0x3fff
rom4 b0100xxxxxxxxxxxx = 0x4000-0x4fff
rom5 b0101xxxxxxxxxxxx = 0x5000-0x5fff
rom6 b0110xxxxxxxxxxxx = 0x6000-0x6fff
Now that you've worked it out manually, compare against the info you get online:
Quarter Arcade (
here) go down to "Rom Regions" and see the memory ranges, the names of the corresponding MAME ROMs. This is great because it also shows the expected CRC as calculated by the Fluke ROM test.
Mame mcr.c source (
here) usually has some info in the comments at the top of the file, but you can go down in the code where this is defined:
Code:
ROM_START( kickman )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "1200-a-ur.b3", 0x0000, 0x1000, CRC(d8cd9f0f) SHA1(a55f4423d57510256fb9b20b1bded06636c7bd05) )
ROM_LOAD( "1300-b-ur.b4", 0x1000, 0x1000, CRC(4dee27bb) SHA1(b411d0c05339ae92732c89a4d0b7038d6b360475) )
ROM_LOAD( "1400-c-ur.b5", 0x2000, 0x1000, CRC(06f070c9) SHA1(02eb19296e6c32544041ab5bf3dbb5a4f20c8ace) )
ROM_LOAD( "1500-d-ur.d4", 0x3000, 0x1000, CRC(8d95b740) SHA1(93287324b599ec50dd84cc2dc70e82ccd8314a8a) )
ROM_LOAD( "1600-e-ur.d5", 0x4000, 0x1000, CRC(f24bc0d7) SHA1(31dc996898c01f3427403e396a47444732904674) )
ROM_LOAD( "1700-f-ur.d6", 0x5000, 0x1000, CRC(672361fc) SHA1(010029460c25935f2156eb64c9109c26ce40b752) )
...and so on
To see it in action you can try reading memory locations, put your oscilloscope probe on the chip enable line, and see it toggle with each read.