mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
(nw) z9001 : kc87_10/11/20/21 enabled Basic. Type BASIC.
This commit is contained in:
parent
0af7225409
commit
64e44e0e5b
@ -1,14 +1,19 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Miodrag Milanovic , Robbbert
|
||||
/***************************************************************************
|
||||
/*************************************************************************************
|
||||
|
||||
Robotron Z9001 (KC85/1)
|
||||
Robotron Z9001 (KC85/1)
|
||||
|
||||
12/05/2009 Skeleton driver.
|
||||
13/07/2011 Notes added. You can enter text via terminal input.
|
||||
Colour and flashing added.
|
||||
2009-05-12 Skeleton driver.
|
||||
2011-07-13 Notes added. You can enter text via terminal input.
|
||||
Colour and flashing added.
|
||||
2019-06-13 Basic enabled
|
||||
|
||||
The only kind of acceptable input is a filename that is in 8.3 format and
|
||||
All input should be in UPPER case.
|
||||
|
||||
For KC87_10/11/20/21, type BASIC to start Basic.
|
||||
|
||||
The only other kind of acceptable input is a filename that is in 8.3 format and
|
||||
begins with a letter. It will say 'start tape'. You can press ^C here to
|
||||
escape, or any key to continue.
|
||||
|
||||
@ -21,11 +26,14 @@ Some other control keys:
|
||||
|
||||
|
||||
ToDo:
|
||||
- cassette in
|
||||
- proper keyboard
|
||||
- cassette in - interrupt-driven via PIO1
|
||||
via astb should cause interrupt but nothing happens.
|
||||
- proper keyboard - interrupt-driven via PIO2
|
||||
pressing any key should program ctc/2 to a debounce delay and this then causes
|
||||
another interrupt which reads keyboard and places ascii character at 0x0025.
|
||||
- get rid of temporary code
|
||||
|
||||
****************************************************************************/
|
||||
**************************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
@ -87,6 +95,7 @@ void z9001_state::z9001_mem(address_map &map)
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0xe7ff).ram();
|
||||
map(0xe800, 0xebff).ram().share("colorram");
|
||||
map(0xc000, 0xe7ff).rom();
|
||||
map(0xec00, 0xefff).ram().share("videoram");
|
||||
map(0xf000, 0xffff).rom();
|
||||
}
|
||||
@ -95,9 +104,9 @@ void z9001_state::z9001_io(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map.global_mask(0xff);
|
||||
map(0x80, 0x83).mirror(4).rw("z80ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
|
||||
map(0x88, 0x8B).mirror(4).rw("z80pio1", FUNC(z80pio_device::read), FUNC(z80pio_device::write));
|
||||
map(0x90, 0x93).mirror(4).rw("z80pio2", FUNC(z80pio_device::read), FUNC(z80pio_device::write));
|
||||
map(0x80, 0x83).mirror(4).rw("ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
|
||||
map(0x88, 0x8B).mirror(4).rw("pio1", FUNC(z80pio_device::read), FUNC(z80pio_device::write));
|
||||
map(0x90, 0x93).mirror(4).rw("pio2", FUNC(z80pio_device::read), FUNC(z80pio_device::write));
|
||||
}
|
||||
|
||||
/* Input ports */
|
||||
@ -106,9 +115,9 @@ INPUT_PORTS_END
|
||||
|
||||
static const z80_daisy_config z9001_daisy_chain[] =
|
||||
{
|
||||
{ "z80pio2" },
|
||||
{ "z80pio1" },
|
||||
{ "z80ctc" },
|
||||
{ "pio2" },
|
||||
{ "pio1" },
|
||||
{ "ctc" },
|
||||
{ nullptr }
|
||||
};
|
||||
|
||||
@ -236,17 +245,17 @@ void z9001_state::z9001(machine_config &config)
|
||||
keyboard.set_keyboard_callback(FUNC(z9001_state::kbd_put));
|
||||
TIMER(config, "z9001_timer").configure_periodic(FUNC(z9001_state::timer_callback), attotime::from_msec(10));
|
||||
|
||||
z80pio_device& pio1(Z80PIO(config, "z80pio1", XTAL(9'830'400) / 4));
|
||||
z80pio_device& pio1(Z80PIO(config, "pio1", XTAL(9'830'400) / 4));
|
||||
pio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
pio1.out_pa_callback().set(FUNC(z9001_state::port88_w));
|
||||
|
||||
z80pio_device& pio2(Z80PIO(config, "z80pio2", XTAL(9'830'400) / 4)); // keyboard PIO
|
||||
z80pio_device& pio2(Z80PIO(config, "pio2", XTAL(9'830'400) / 4)); // keyboard PIO
|
||||
pio2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
|
||||
z80ctc_device& ctc(Z80CTC(config, "z80ctc", XTAL(9'830'400) / 4));
|
||||
z80ctc_device& ctc(Z80CTC(config, "ctc", XTAL(9'830'400) / 4));
|
||||
ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
ctc.zc_callback<0>().set(FUNC(z9001_state::cass_w));
|
||||
ctc.zc_callback<2>().set("z80ctc", FUNC(z80ctc_device::trg3));
|
||||
ctc.zc_callback<2>().set("ctc", FUNC(z80ctc_device::trg3));
|
||||
|
||||
CASSETTE(config, m_cass);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user