diff options
-rw-r--r-- | src/mame/drivers/kim1.cpp | 39 |
1 files changed, 7 insertions, 32 deletions
diff --git a/src/mame/drivers/kim1.cpp b/src/mame/drivers/kim1.cpp index 83fd5eb4fab..7883e0ff698 100644 --- a/src/mame/drivers/kim1.cpp +++ b/src/mame/drivers/kim1.cpp @@ -27,36 +27,11 @@ 1873 press GO to load tape NOTE: save end address is next address from program end -The cassette interface -====================== -The KIM-1 stores data on cassette using 2 frequencies: ~3700Hz (high) and ~2400Hz -(low). A high tone is output for 9 cycles and a low tone for 6 cycles. A logic bit -is encoded using 3 sequences of high and low tones. It always starts with a high -tone and ends with a low tone. The middle tone is high for a logic 0 and low for -0 logic 1. - -These high and low tone signals are fed to a circuit containing a LM565 PLL and -a 311 comparator. For a high tone a 1 is passed to DB7 of 6530-U2 for a low tone -a 0 is passed. The KIM-1 software measures the time it takes for the signal to -change from 1 to 0. - -Keyboard and Display logic -========================== -PA0-PA6 of 6530-U2 are connected to the columns of the keyboard matrix. These -columns are also connected to segments A-G of the LEDs. PB1-PB3 of 6530-U2 are -connected to a 74145 BCD which connects outputs 0-2 to the rows of the keyboard -matrix. Outputs 4-9 of the 74145 are connected to LEDs U18-U23 - -When a key is pressed the corresponding input to PA0-PA6 is set low and the KIM-1 -software reads this signal. The KIM-1 software sends an output signal to PA0-PA6 -and the corresponding segments of an LED are illuminated. - TODO: - LEDs should be dark at startup (RS key to activate) - hook up Single Step dip switch - slots for expansion & application ports - add TTY support -- move functions to machine folder ******************************************************************************/ #include "includes/kim1.h" @@ -135,7 +110,7 @@ static INPUT_PORTS_START( kim1 ) PORT_BIT( 0x01, 0x00, IPT_UNUSED ) INPUT_PORTS_END -// Keyboard input +// Read from keyboard READ8_MEMBER( kim1_state::kim1_u2_read_a ) { UINT8 data = 0xff; @@ -155,7 +130,7 @@ READ8_MEMBER( kim1_state::kim1_u2_read_a ) return data; } -// Display 7-Segment LEDs +// Write to 7-Segment LEDs WRITE8_MEMBER( kim1_state::kim1_u2_write_a ) { UINT8 idx = ( m_u2_port_b >> 1 ) & 0x0f; @@ -246,20 +221,20 @@ void kim1_state::machine_reset() //************************************************************************** static MACHINE_CONFIG_START( kim1, kim1_state ) - /* basic machine hardware */ + // basic machine hardware MCFG_CPU_ADD("maincpu", M6502, 1000000) /* 1 MHz */ MCFG_CPU_PROGRAM_MAP(kim1_map) MCFG_QUANTUM_TIME(attotime::from_hz(60)) - /* video hardware */ + // video hardware MCFG_DEFAULT_LAYOUT( layout_kim1 ) - /* sound hardware */ + // sound hardware MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("dac", DAC, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - /* devices */ + // devices MCFG_DEVICE_ADD("miot_u2", MOS6530, 1000000) MCFG_MOS6530_IN_PA_CB(READ8(kim1_state, kim1_u2_read_a)) MCFG_MOS6530_OUT_PA_CB(WRITE8(kim1_state, kim1_u2_write_a)) @@ -293,7 +268,7 @@ ROM_START(kim1) ROM_END //************************************************************************** -// GAME DRIVERS +// SYSTEM DRIVERS //************************************************************************** /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ |