mirror of
https://github.com/holub/mame
synced 2025-07-06 02:18:09 +03:00
kaypro.cpp: Add RTC to '84-type systems
This commit is contained in:
parent
dff3955a3a
commit
6d8e386281
@ -8,6 +8,8 @@
|
|||||||
telephone cord, complete with modular plug on each end. The keyboard carries
|
telephone cord, complete with modular plug on each end. The keyboard carries
|
||||||
its own Intel 87C51 processor and is an intelligent device.
|
its own Intel 87C51 processor and is an intelligent device.
|
||||||
|
|
||||||
|
Non-Linear Systems changed its name to Kaypro Corporation in July 1983.
|
||||||
|
|
||||||
Kaypro 5 notes:
|
Kaypro 5 notes:
|
||||||
The Kaycomp Kay Pro V / Non-Linear Systems Kaypro 5: https://retrocmp.de/kaypro/kay-p1_vers.htm#kay-5,
|
The Kaycomp Kay Pro V / Non-Linear Systems Kaypro 5: https://retrocmp.de/kaypro/kay-p1_vers.htm#kay-5,
|
||||||
a version of the Kaypro II, but with a 5MB harddisk instead of one of the floppy drives, was announced
|
a version of the Kaypro II, but with a 5MB harddisk instead of one of the floppy drives, was announced
|
||||||
@ -40,7 +42,7 @@
|
|||||||
- Hard Disk not emulated.
|
- Hard Disk not emulated.
|
||||||
The controller is a WD1002-HD0 (original version, for Winchester drives), HD is 10MB, e.g. Shugart 712
|
The controller is a WD1002-HD0 (original version, for Winchester drives), HD is 10MB, e.g. Shugart 712
|
||||||
|
|
||||||
- RTC type MM58167A to be added. Modem chips TMS99531, TMS99532 to be developed.
|
- Modem chips TMS99531, TMS99532 to be developed.
|
||||||
|
|
||||||
- Once everything works, sort out parent and compat relationships.
|
- Once everything works, sort out parent and compat relationships.
|
||||||
|
|
||||||
@ -87,7 +89,7 @@ void kaypro_state::kayproii_io(address_map &map)
|
|||||||
map(0x1c, 0x1f).rw(m_pio_s, FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
|
map(0x1c, 0x1f).rw(m_pio_s, FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
|
||||||
}
|
}
|
||||||
|
|
||||||
void kaypro_state::kaypro484_io(address_map &map)
|
void kaypro_state::kaypro10_io(address_map &map)
|
||||||
{
|
{
|
||||||
map.global_mask(0xff);
|
map.global_mask(0xff);
|
||||||
map.unmap_value_high();
|
map.unmap_value_high();
|
||||||
@ -103,9 +105,7 @@ void kaypro_state::kaypro484_io(address_map &map)
|
|||||||
map(0x1f, 0x1f).rw(FUNC(kaypro_state::kaypro484_videoram_r), FUNC(kaypro_state::kaypro484_videoram_w));
|
map(0x1f, 0x1f).rw(FUNC(kaypro_state::kaypro484_videoram_r), FUNC(kaypro_state::kaypro484_videoram_w));
|
||||||
|
|
||||||
/* The below are not emulated */
|
/* The below are not emulated */
|
||||||
/* map(0x20, 0x23).rw("z80pio", FUNC(z80pio_device::kaypro484_pio_r), FUNC(z80pio_device::kaypro484_pio_w)) - for RTC and Modem
|
/* map(0x80, 0x80) Hard drive controller card I/O port - 10MB hard drive only fitted to the Kaypro 10
|
||||||
map(0x24, 0x27) communicate with MM58167A RTC. Modem uses TMS99531 and TMS99532 chips.
|
|
||||||
map(0x80, 0x80) Hard drive controller card I/O port - 10MB hard drive only fitted to the Kaypro 10
|
|
||||||
map(0x81, 0x81) Hard Drive READ error register, WRITE precomp
|
map(0x81, 0x81) Hard Drive READ error register, WRITE precomp
|
||||||
map(0x82, 0x82) Hard Drive Sector register count I/O
|
map(0x82, 0x82) Hard Drive Sector register count I/O
|
||||||
map(0x83, 0x83) Hard Drive Sector register number I/O
|
map(0x83, 0x83) Hard Drive Sector register number I/O
|
||||||
@ -117,6 +117,13 @@ void kaypro_state::kaypro484_io(address_map &map)
|
|||||||
map(0x87, 0x87).r(FUNC(kaypro_state::kaypro484_87_r));
|
map(0x87, 0x87).r(FUNC(kaypro_state::kaypro484_87_r));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void kaypro_state::kaypro484_io(address_map &map)
|
||||||
|
{
|
||||||
|
kaypro10_io(map);
|
||||||
|
map(0x20, 0x23).rw("z80pio", FUNC(z80pio_device::read), FUNC(z80pio_device::write));
|
||||||
|
map(0x24, 0x24).mirror(3).rw(FUNC(kaypro_state::rtc_r), FUNC(kaypro_state::rtc_w));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static INPUT_PORTS_START(kaypro)
|
static INPUT_PORTS_START(kaypro)
|
||||||
// everything comes from the keyboard device
|
// everything comes from the keyboard device
|
||||||
@ -176,8 +183,16 @@ static const z80_daisy_config kayproii_daisy_chain[] =
|
|||||||
{ nullptr }
|
{ nullptr }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const z80_daisy_config kaypro10_daisy_chain[] =
|
||||||
|
{
|
||||||
|
{ "sio_1" }, /* sio for RS232C and keyboard */
|
||||||
|
{ "sio_2" }, /* sio for serial printer and inbuilt modem */
|
||||||
|
{ nullptr }
|
||||||
|
};
|
||||||
|
|
||||||
static const z80_daisy_config kaypro484_daisy_chain[] =
|
static const z80_daisy_config kaypro484_daisy_chain[] =
|
||||||
{
|
{
|
||||||
|
{ "z80pio" },
|
||||||
{ "sio_1" }, /* sio for RS232C and keyboard */
|
{ "sio_1" }, /* sio for RS232C and keyboard */
|
||||||
{ "sio_2" }, /* sio for serial printer and inbuilt modem */
|
{ "sio_2" }, /* sio for serial printer and inbuilt modem */
|
||||||
{ nullptr }
|
{ nullptr }
|
||||||
@ -247,7 +262,7 @@ void kaypro_state::kayproii(machine_config &config)
|
|||||||
serial.cts_handler().set("sio", FUNC(z80sio_device::ctsa_w));
|
serial.cts_handler().set("sio", FUNC(z80sio_device::ctsa_w));
|
||||||
serial.dcd_handler().set("sio", FUNC(z80sio_device::dcda_w));
|
serial.dcd_handler().set("sio", FUNC(z80sio_device::dcda_w));
|
||||||
|
|
||||||
com8116_device &brg(COM8116(config, "brg", XTAL(5'068'800))); // WD1943, SMC8116
|
com8116_device &brg(COM8116(config, "brg", 5.0688_MHz_XTAL)); // WD1943, SMC8116
|
||||||
brg.ft_handler().set("sio", FUNC(z80sio_device::rxca_w));
|
brg.ft_handler().set("sio", FUNC(z80sio_device::rxca_w));
|
||||||
brg.ft_handler().append("sio", FUNC(z80sio_device::txca_w));
|
brg.ft_handler().append("sio", FUNC(z80sio_device::txca_w));
|
||||||
brg.fr_handler().set("sio", FUNC(z80sio_device::rxtxcb_w));
|
brg.fr_handler().set("sio", FUNC(z80sio_device::rxtxcb_w));
|
||||||
@ -359,7 +374,7 @@ void kaypro_state::kaypro484(machine_config &config)
|
|||||||
sio_2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // FIXME: use a combiner
|
sio_2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // FIXME: use a combiner
|
||||||
sio_2.out_txda_callback().set("serprn", FUNC(rs232_port_device::write_txd));
|
sio_2.out_txda_callback().set("serprn", FUNC(rs232_port_device::write_txd));
|
||||||
|
|
||||||
com8116_device &brg(COM8116(config, "brg", XTAL(5'068'800))); // WD1943, SMC8116
|
com8116_device &brg(COM8116(config, "brg", 5.0688_MHz_XTAL)); // WD1943, SMC8116
|
||||||
brg.fr_handler().set("sio_1", FUNC(z80sio_device::rxca_w));
|
brg.fr_handler().set("sio_1", FUNC(z80sio_device::rxca_w));
|
||||||
brg.fr_handler().append("sio_1", FUNC(z80sio_device::txca_w));
|
brg.fr_handler().append("sio_1", FUNC(z80sio_device::txca_w));
|
||||||
brg.ft_handler().set("sio_2", FUNC(z80sio_device::rxca_w));
|
brg.ft_handler().set("sio_2", FUNC(z80sio_device::rxca_w));
|
||||||
@ -372,11 +387,20 @@ void kaypro_state::kaypro484(machine_config &config)
|
|||||||
FLOPPY_CONNECTOR(config, "fdc:0", kaypro_floppies, "525dd", kaypro_state::floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, "fdc:0", kaypro_floppies, "525dd", kaypro_state::floppy_formats).enable_sound(true);
|
||||||
FLOPPY_CONNECTOR(config, "fdc:1", kaypro_floppies, "525dd", kaypro_state::floppy_formats).enable_sound(true);
|
FLOPPY_CONNECTOR(config, "fdc:1", kaypro_floppies, "525dd", kaypro_state::floppy_formats).enable_sound(true);
|
||||||
SOFTWARE_LIST(config, "flop_list").set_original("kaypro").set_filter("C");
|
SOFTWARE_LIST(config, "flop_list").set_original("kaypro").set_filter("C");
|
||||||
|
|
||||||
|
z80pio_device &pio(Z80PIO(config, "z80pio", 16_MHz_XTAL / 4));
|
||||||
|
pio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||||
|
pio.out_pa_callback().set(FUNC(kaypro_state::rtc_address_w));
|
||||||
|
|
||||||
|
MM58167(config, m_rtc, 32.768_kHz_XTAL);
|
||||||
|
m_rtc->irq().set("z80pio", FUNC(z80pio_device::pa6_w));
|
||||||
}
|
}
|
||||||
|
|
||||||
void kaypro_state::kaypro4x(machine_config &config)
|
void kaypro_state::kaypro4x(machine_config &config)
|
||||||
{
|
{
|
||||||
kaypro484(config);
|
kaypro484(config);
|
||||||
|
m_fdc->set_clock(16_MHz_XTAL / 8);
|
||||||
|
m_fdc->set_force_ready(false);
|
||||||
SOFTWARE_LIST(config.replace(), "flop_list").set_original("kaypro").set_filter("F");
|
SOFTWARE_LIST(config.replace(), "flop_list").set_original("kaypro").set_filter("F");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -387,6 +411,18 @@ void kaypro_state::kaypro1(machine_config &config)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void kaypro_state::kaypro10(machine_config &config)
|
void kaypro_state::kaypro10(machine_config &config)
|
||||||
|
{
|
||||||
|
kaypro484(config);
|
||||||
|
m_maincpu->set_addrmap(AS_IO, &kaypro_state::kaypro10_io);
|
||||||
|
m_maincpu->set_daisy_config(kaypro10_daisy_chain);
|
||||||
|
config.device_remove("z80pio");
|
||||||
|
config.device_remove("rtc");
|
||||||
|
config.device_remove("fdc:1"); // only has 1 floppy drive
|
||||||
|
// need to add hard drive & controller
|
||||||
|
SOFTWARE_LIST(config.replace(), "flop_list").set_original("kaypro").set_filter("E");
|
||||||
|
}
|
||||||
|
|
||||||
|
void kaypro_state::kaypro1084(machine_config &config)
|
||||||
{
|
{
|
||||||
kaypro484(config);
|
kaypro484(config);
|
||||||
config.device_remove("fdc:1"); // only has 1 floppy drive
|
config.device_remove("fdc:1"); // only has 1 floppy drive
|
||||||
@ -671,18 +707,18 @@ ROM_END
|
|||||||
|
|
||||||
|
|
||||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
|
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
|
||||||
COMP( 1982, kayproii, 0, 0, kayproii, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro II - 2/83", MACHINE_SUPPORTS_SAVE )
|
COMP( 1982, kayproii, 0, 0, kayproii, kaypro, kaypro_state, init_kaypro, "Non-Linear Systems", "Kaypro II - 2/83", MACHINE_SUPPORTS_SAVE )
|
||||||
COMP( 1983, kayproiv, kayproii, 0, kayproiv, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro IV - 4/83", MACHINE_SUPPORTS_SAVE ) // model 81-004
|
COMP( 1983, kayproiv, kayproii, 0, kayproiv, kaypro, kaypro_state, init_kaypro, "Non-Linear Systems", "Kaypro IV - 4/83", MACHINE_SUPPORTS_SAVE ) // model 81-004
|
||||||
COMP( 1983, kaypro10, 0, 0, kaypro10, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro 10 - 1983", MACHINE_SUPPORTS_SAVE )
|
COMP( 1983, kaypro10, 0, 0, kaypro10, kaypro, kaypro_state, init_kaypro, "Non-Linear Systems", "Kaypro 10 - 1983", MACHINE_SUPPORTS_SAVE )
|
||||||
COMP( 1983, kayproiip88, kayproii, 0, kayproii, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro 4 plus88 - 4/83" , MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // model 81-004 with an added 8088 daughterboard and rom
|
COMP( 1983, kayproiip88, kayproii, 0, kayproii, kaypro, kaypro_state, init_kaypro, "Kaypro Corporation", "Kaypro 4 plus88 - 4/83" , MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // model 81-004 with an added 8088 daughterboard and rom
|
||||||
COMP( 1984, kaypro484, 0, 0, kaypro484, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro 4/84", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // model 81-015
|
COMP( 1984, kaypro484, 0, 0, kaypro484, kaypro, kaypro_state, init_kaypro, "Kaypro Corporation", "Kaypro 4/84", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // model 81-015
|
||||||
COMP( 1984, kaypro284, kaypro484, 0, kaypro284, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro 2/84", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // model 81-015
|
COMP( 1984, kaypro284, kaypro484, 0, kaypro284, kaypro, kaypro_state, init_kaypro, "Kaypro Corporation", "Kaypro 2/84", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // model 81-015
|
||||||
COMP( 1984, kaypro484p88, kaypro484, 0, kaypro484, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro 4/84 plus88", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // model 81-015 with an added 8088 daughterboard and rom
|
COMP( 1984, kaypro484p88, kaypro484, 0, kaypro484, kaypro, kaypro_state, init_kaypro, "Kaypro Corporation", "Kaypro 4/84 plus88", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // model 81-015 with an added 8088 daughterboard and rom
|
||||||
COMP( 1984, kaypro1084, kaypro10, 0, kaypro10, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro 10", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // model 81-005
|
COMP( 1984, kaypro1084, kaypro10, 0, kaypro1084, kaypro, kaypro_state, init_kaypro, "Kaypro Corporation", "Kaypro 10", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // model 81-005
|
||||||
COMP( 1984, robie, 0, 0, kaypro4x, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro Robie", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
COMP( 1984, robie, 0, 0, kaypro4x, kaypro, kaypro_state, init_kaypro, "Kaypro Corporation", "Kaypro Robie", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||||
COMP( 1985, kaypro2x, kaypro484, 0, kaypro484, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro 2x", MACHINE_SUPPORTS_SAVE ) // model 81-025
|
COMP( 1985, kaypro2x, kaypro484, 0, kaypro484, kaypro, kaypro_state, init_kaypro, "Kaypro Corporation", "Kaypro 2x", MACHINE_SUPPORTS_SAVE ) // model 81-025
|
||||||
COMP( 1985, kaypronew2, 0, 0, kaypronew2, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro New 2", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
COMP( 1985, kaypronew2, 0, 0, kaypronew2, kaypro, kaypro_state, init_kaypro, "Kaypro Corporation", "Kaypro New 2", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||||
COMP( 1985, kaypro4x, robie, 0, kaypro4x, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro 4x", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
COMP( 1985, kaypro4x, robie, 0, kaypro4x, kaypro, kaypro_state, init_kaypro, "Kaypro Corporation", "Kaypro 4x", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||||
COMP( 1986, kaypro1, kaypro484, 0, kaypro1, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Kaypro 1", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
COMP( 1986, kaypro1, kaypro484, 0, kaypro1, kaypro, kaypro_state, init_kaypro, "Kaypro Corporation", "Kaypro 1", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||||
COMP( 198?, omni2, kayproii, 0, omni2, kaypro, kaypro_state, init_kaypro, "Non Linear Systems", "Omni II Logic Analyzer", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
COMP( 198?, omni2, kayproii, 0, omni2, kaypro, kaypro_state, init_kaypro, "Kaypro Corporation", "Omni II Logic Analyzer", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||||
COMP( 198?, omni4, kaypro484, 0, kaypro1, kaypro, kaypro_state, init_kaypro, "Omni Logic Inc.", "Omni 4 Logic Analyzer", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
COMP( 198?, omni4, kaypro484, 0, kaypro1, kaypro, kaypro_state, init_kaypro, "Omni Logic Inc.", "Omni 4 Logic Analyzer", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include "imagedev/snapquik.h"
|
#include "imagedev/snapquik.h"
|
||||||
#include "sound/beep.h"
|
#include "sound/beep.h"
|
||||||
#include "video/mc6845.h"
|
#include "video/mc6845.h"
|
||||||
|
#include "machine/mm58167.h"
|
||||||
#include "machine/wd_fdc.h"
|
#include "machine/wd_fdc.h"
|
||||||
#include "machine/timer.h"
|
#include "machine/timer.h"
|
||||||
#include "emupal.h"
|
#include "emupal.h"
|
||||||
@ -35,6 +36,7 @@ public:
|
|||||||
, m_floppy1(*this, "fdc:1")
|
, m_floppy1(*this, "fdc:1")
|
||||||
, m_crtc(*this, "crtc")
|
, m_crtc(*this, "crtc")
|
||||||
, m_beep(*this, "beeper")
|
, m_beep(*this, "beeper")
|
||||||
|
, m_rtc(*this, "rtc")
|
||||||
, m_bankr(*this, "bankr")
|
, m_bankr(*this, "bankr")
|
||||||
, m_bankw(*this, "bankw")
|
, m_bankw(*this, "bankw")
|
||||||
, m_bank3(*this, "bank3")
|
, m_bank3(*this, "bank3")
|
||||||
@ -48,6 +50,7 @@ public:
|
|||||||
void kaypronew2(machine_config &config);
|
void kaypronew2(machine_config &config);
|
||||||
void kaypro484(machine_config &config);
|
void kaypro484(machine_config &config);
|
||||||
void kaypro10(machine_config &config);
|
void kaypro10(machine_config &config);
|
||||||
|
void kaypro1084(machine_config &config);
|
||||||
void kaypro284(machine_config &config);
|
void kaypro284(machine_config &config);
|
||||||
void kaypro4x(machine_config &config);
|
void kaypro4x(machine_config &config);
|
||||||
void kaypro1(machine_config &config);
|
void kaypro1(machine_config &config);
|
||||||
@ -59,6 +62,7 @@ protected:
|
|||||||
virtual void machine_reset() override;
|
virtual void machine_reset() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void kaypro10_io(address_map &map);
|
||||||
void kaypro484_io(address_map &map);
|
void kaypro484_io(address_map &map);
|
||||||
void kaypro_map(address_map &map);
|
void kaypro_map(address_map &map);
|
||||||
void kayproii_io(address_map &map);
|
void kayproii_io(address_map &map);
|
||||||
@ -78,6 +82,9 @@ private:
|
|||||||
void kayproiv_pio_system_w(u8 data);
|
void kayproiv_pio_system_w(u8 data);
|
||||||
DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
|
DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
|
||||||
DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
|
DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
|
||||||
|
void rtc_address_w(u8 data);
|
||||||
|
u8 rtc_r();
|
||||||
|
void rtc_w(u8 data);
|
||||||
u8 kaypro_videoram_r(offs_t offset);
|
u8 kaypro_videoram_r(offs_t offset);
|
||||||
void kaypro_videoram_w(offs_t offset, u8 data);
|
void kaypro_videoram_w(offs_t offset, u8 data);
|
||||||
static void floppy_formats(format_registration &fr);
|
static void floppy_formats(format_registration &fr);
|
||||||
@ -103,6 +110,7 @@ private:
|
|||||||
u8 m_system_port = 0U;
|
u8 m_system_port = 0U;
|
||||||
u16 m_mc6845_video_address = 0U;
|
u16 m_mc6845_video_address = 0U;
|
||||||
floppy_image_device *m_floppy = nullptr;
|
floppy_image_device *m_floppy = nullptr;
|
||||||
|
u8 m_rtc_address = 0U;
|
||||||
|
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
required_device<screen_device> m_screen;
|
required_device<screen_device> m_screen;
|
||||||
@ -116,6 +124,7 @@ private:
|
|||||||
optional_device<floppy_connector> m_floppy1;
|
optional_device<floppy_connector> m_floppy1;
|
||||||
optional_device<mc6845_device> m_crtc;
|
optional_device<mc6845_device> m_crtc;
|
||||||
required_device<beep_device> m_beep;
|
required_device<beep_device> m_beep;
|
||||||
|
optional_device<mm58167_device> m_rtc;
|
||||||
required_memory_bank m_bankr;
|
required_memory_bank m_bankr;
|
||||||
required_memory_bank m_bankw;
|
required_memory_bank m_bankw;
|
||||||
required_memory_bank m_bank3;
|
required_memory_bank m_bank3;
|
||||||
|
@ -213,6 +213,22 @@ WRITE_LINE_MEMBER( kaypro_state::fdc_drq_w )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void kaypro_state::rtc_address_w(u8 data)
|
||||||
|
{
|
||||||
|
m_rtc_address = data & 0x1f;
|
||||||
|
}
|
||||||
|
|
||||||
|
u8 kaypro_state::rtc_r()
|
||||||
|
{
|
||||||
|
return m_rtc->read(m_rtc_address);
|
||||||
|
}
|
||||||
|
|
||||||
|
void kaypro_state::rtc_w(u8 data)
|
||||||
|
{
|
||||||
|
m_rtc->write(m_rtc_address, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************
|
/***********************************************************
|
||||||
|
|
||||||
Machine
|
Machine
|
||||||
@ -237,6 +253,9 @@ void kaypro_state::machine_start()
|
|||||||
save_item(NAME(m_system_port));
|
save_item(NAME(m_system_port));
|
||||||
save_item(NAME(m_mc6845_video_address));
|
save_item(NAME(m_mc6845_video_address));
|
||||||
|
|
||||||
|
if (m_rtc.found())
|
||||||
|
save_item(NAME(m_rtc_address));
|
||||||
|
|
||||||
m_framecnt = 0;
|
m_framecnt = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user