summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/kim1.cpp39
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 */