diff options
Diffstat (limited to 'src/mame/drivers/falcots.cpp')
-rw-r--r-- | src/mame/drivers/falcots.cpp | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/src/mame/drivers/falcots.cpp b/src/mame/drivers/falcots.cpp index 36abff69e2d..50271b33efb 100644 --- a/src/mame/drivers/falcots.cpp +++ b/src/mame/drivers/falcots.cpp @@ -28,6 +28,7 @@ public: { } + void ts1(machine_config &config); void ts2624(machine_config &config); protected: @@ -45,9 +46,10 @@ private: void mem_map(address_map &map); void io_map(address_map &map); + void ts1_io_map(address_map &map); required_device<z80_device> m_maincpu; - optional_device<mc6845_device> m_crtc; + required_device<mc6845_device> m_crtc; required_shared_ptr<u8> m_vram; required_region_ptr<u8> m_chargen; required_ioport_array<12> m_keys; @@ -100,6 +102,15 @@ void falcots_state::mem_map(address_map &map) map(0xc000, 0xffff).ram().share("vram"); // 8x AM9016EPC (4116) } +void falcots_state::ts1_io_map(address_map &map) +{ + map.global_mask(0xff); + map(0xe1, 0xe1).w(FUNC(falcots_state::key_scan_w)); + map(0xe8, 0xe8).r(FUNC(falcots_state::key_status_r)); + map(0xf0, 0xf0).w(m_crtc, FUNC(mc6845_device::address_w)); + map(0xf1, 0xf1).w(m_crtc, FUNC(mc6845_device::register_w)); +} + void falcots_state::io_map(address_map &map) { map.global_mask(0xff); @@ -215,8 +226,8 @@ static INPUT_PORTS_START(ts2624) PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) PORT_CODE(KEYCODE_0_PAD) PORT_START("KEYA") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xe2\x86\x90 Prev Page") PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xe2\x86\x91 Scroll Up") PORT_CHAR(UCHAR_MAMEKEY(UP)) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xe2\x86\x90 Prev Page") PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_CODE(KEYCODE_LEFT) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xe2\x86\x91 Scroll Up") PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_CODE(KEYCODE_UP) PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 8 \xe2\x86\x91 (Brite)") PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) PORT_CODE(KEYCODE_8_PAD) PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 5 Home") PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) PORT_CODE(KEYCODE_5_PAD) PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 2 \xe2\x86\x93 (Dim)") PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) PORT_CODE(KEYCODE_2_PAD) @@ -225,8 +236,8 @@ static INPUT_PORTS_START(ts2624) PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_CODE(KEYCODE_DEL_PAD) PORT_START("KEYB") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xe2\x86\x93 Scroll Down") PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xe2\x86\x92 Next Page") PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xe2\x86\x93 Scroll Down") PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_CODE(KEYCODE_DOWN) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xe2\x86\x92 Next Page") PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_CODE(KEYCODE_RIGHT) PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) PORT_CODE(KEYCODE_MINUS_PAD) PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) PORT_CODE(KEYCODE_9_PAD) PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 6 \xe2\x86\x92") PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) PORT_CODE(KEYCODE_6_PAD) @@ -274,6 +285,28 @@ void falcots_state::ts2624(machine_config &config) m_crtc->set_update_row_callback(FUNC(falcots_state::update_row), this); } +void falcots_state::ts1(machine_config &config) +{ + ts2624(config); + + m_maincpu->set_addrmap(AS_IO, &falcots_state::ts1_io_map); + + m_crtc->set_clock(15'206'400 / 8); + m_crtc->set_char_width(8); + + screen_device &screen(*subdevice<screen_device>("screen")); + screen.set_raw(15'206'400, 792, 0, 640, 320, 0, 300); +} + +ROM_START(ts1) + ROM_REGION(0x8000, "maincpu", ROMREGION_ERASEFF) + ROM_LOAD("v2_13_x.d9", 0x0000, 0x1000, CRC(420e1ecd) SHA1(748e3733858ba813b9d72dfe018ba4f918d8c0db)) // Chip Type: 2732 + ROM_LOAD("v2_13_0.d10", 0x1000, 0x1000, CRC(228e7321) SHA1(43e0d04c58ee7c71f5603222bf0aaaf7979d67a3)) // Chip Type: 2732 + + ROM_REGION(0x2000, "chargen", ROMREGION_ERASEFF) + ROM_LOAD("crom003.f4", 0x0000, 0x0800, CRC(557c8e0b) SHA1(b028f526bd92f957ee6242a7e0e6e0f16b0880a8)) // Chip Type: EA8316E517 +ROM_END + ROM_START(ts2624) ROM_REGION(0x8000, "maincpu", 0) ROM_LOAD("1.bin", 0x0000, 0x2000, CRC(14fb80aa) SHA1(93bf0d39f3e4bf092b6cd850f95ee6cbd322ad13)) @@ -290,4 +323,5 @@ ROM_START(ts2624) ROM_LOAD("prom.12f", 0x20, 0x20, NO_DUMP) // 74S288 or equivalent ROM_END +COMP(1980, ts1, 0, 0, ts1, ts2624, falcots_state, empty_init, "Falco Data Products", "TS-1 (v2.13.0)", MACHINE_IS_SKELETON) COMP(1982, ts2624, 0, 0, ts2624, ts2624, falcots_state, empty_init, "Falco Data Products", "TS-2624", MACHINE_IS_SKELETON) |