tiamc1 docs (nw)

This commit is contained in:
MetalliC 2016-07-23 13:52:30 +03:00
parent 95d4f4d4be
commit 42390411ef

View File

@ -118,9 +118,10 @@
*/
#define MASTER_CLOCK 15750000
#define CPU_CLOCK MASTER_CLOCK / 9
#define SND_CLOCK MASTER_CLOCK / 9
#define MASTER_CLOCK (15750000)
#define CPU_CLOCK (MASTER_CLOCK / 9)
#define SND_CLOCK (MASTER_CLOCK / 9)
#define PIXEL_CLOCK (MASTER_CLOCK / 3)
#include "emu.h"
#include "cpu/i8085/i8085.h"
@ -323,8 +324,6 @@ static MACHINE_CONFIG_START( tiamc1, tiamc1_state )
MCFG_CPU_PROGRAM_MAP(tiamc1_map)
MCFG_CPU_IO_MAP(tiamc1_io_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", tiamc1_state, irq1_line_hold)
MCFG_DEVICE_ADD("kr580vv55a", I8255A, 0) /* soviet clone of i8255 */
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
@ -333,10 +332,7 @@ static MACHINE_CONFIG_START( tiamc1, tiamc1_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1600))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 336, 0, 256, 312, 0, 256) // pixel clock and htotal comes from docs/schematics, the rest is guess (determined by undumped PROM)
MCFG_SCREEN_UPDATE_DRIVER(tiamc1_state, screen_update_tiamc1)
MCFG_SCREEN_PALETTE("palette")
@ -367,8 +363,7 @@ static MACHINE_CONFIG_DERIVED(kot, tiamc1)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_DEVICE_ADD("pit8253", PIT8253, 0)
MCFG_PIT8253_CLK0(SND_CLOCK) // guess
MCFG_PIT8253_CLK1(SND_CLOCK) // guess
MCFG_PIT8253_CLK0(PIXEL_CLOCK / 4)
MCFG_PIT8253_CLK2(SND_CLOCK) // guess
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(tiamc1_state, pit8253_2_w))
MACHINE_CONFIG_END
@ -435,6 +430,7 @@ ROM_START( koroleva )
ROM_END
// this game ROM board have only one 2KB main CPU RAM IC populated
ROM_START( bilyard )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "04.1g", 0x00000, 0x2000, CRC(a44f913d) SHA1(f01a0e931fb0f719bc7b3f1ca7802dd747c8a56f) )
@ -452,6 +448,7 @@ ROM_START( bilyard )
ROM_LOAD( "03.6a", 0x06000, 0x2000, CRC(8bfc0b15) SHA1(221efdce516274d3b1d9009d11dc9ed6cd67ef12) )
ROM_END
// this game ROM board have only one 2KB main CPU RAM IC populated
ROM_START( gorodki )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "70.1g", 0x00000, 0x2000, CRC(bd3eb624) SHA1(acfc7e7186daf399f858a0d0cf462b0eaabb3f9e) )
@ -477,7 +474,7 @@ ROM_END
Specs:
1x KR580VM80A (Russian: KP580BM80A. Soviet clone of i8080).
1x KR580VV55A (Russian: KP580BB55A. Soviet clone of i8255).
1x KR580VI53 (soviet clone of i8253) unlike original TIA-MC1 hardware only timer 2 used for sound generation
1x KR580VI53 (Soviet clone of i8253)
1x KR580VK28 (Russian: KP580BK28. Soviet clone of i8228: bus controllers/drivers).
1x K174YH7 (soviet clone of TBA810, 7W audio amplifier).
@ -490,8 +487,12 @@ ROM_END
Sometimes the code tries to write through a port that was
previously set as input. Not sure if it's a leftover, a bug,
or just some differences against the i8255. Needs more research.
*/
KR580VI53/i8253 timers usage:
0 - used to blank part of display in horisontal direction, apparently it's CLK0 is PIXEL_CLOCK/4, GATE0 is HBlank, OUT0 - blank video
1 - used to blank part of display in vertical direction, apparently it's CLK1 is HBlank or OUT0, GATE1 is VBlank, OUT1 - blank video
2 - sound generation
*/
ROM_START( kot )
ROM_REGION( 0xc000, "maincpu", ROMREGION_ERASE00)
ROM_LOAD( "854.6", 0x00000, 0x2000, CRC(44e5e8fc) SHA1(dafbace689f3834d5c6e952a2f6188fb190845e4) )