mirror of
https://github.com/holub/mame
synced 2025-05-07 14:54:35 +03:00
(MESS) kaypro : various
This commit is contained in:
parent
4043a83974
commit
6abd129bf8
@ -9,24 +9,16 @@
|
||||
|
||||
Things that need doing:
|
||||
|
||||
- MAME's z80sio implementation is unusable at this time. Needs proper callback
|
||||
mechanism for both channels, and interface to modern standards.
|
||||
- See about getting keyboard to work as a serial device.
|
||||
- Need dump of 87C51 cpu in the keyboard.
|
||||
|
||||
- When z80sio gets updated, then see about getting keyboard to work as a serial device.
|
||||
|
||||
- Kaypro2x/4a are not booting.
|
||||
- Only kayproii boots up, the remainder have floppy-disk problems.
|
||||
|
||||
- Hard Disk not emulated.
|
||||
The controller is a WD1002 (original version, for Winchester drives).
|
||||
|
||||
- Kaypro 4 plus 88 does work as a normal Kaypro, but the extra processor needs
|
||||
to be worked out.
|
||||
|
||||
- RTC type MM58167A to be added. Modem chips TMS99531, TMS99532 to be developed.
|
||||
|
||||
- Regression all models: Cannot read the floppy disk any more since someone modified the
|
||||
WD controller.
|
||||
|
||||
**************************************************************************************************/
|
||||
|
||||
#include "includes/kaypro.h"
|
||||
@ -42,8 +34,8 @@ READ8_MEMBER( kaypro_state::kaypro2x_87_r ) { return 0x7f; } /* to bypass une
|
||||
************************************************************/
|
||||
|
||||
static ADDRESS_MAP_START( kaypro_map, AS_PROGRAM, 8, kaypro_state )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("maincpu", 0x0000)
|
||||
AM_RANGE(0x3000, 0x3fff) AM_RAM AM_REGION("maincpu", 0x3000) AM_SHARE("p_videoram")
|
||||
AM_RANGE(0x0000, 0x2fff) AM_READ_BANK("bankr0") AM_WRITE_BANK("bankw0")
|
||||
AM_RANGE(0x3000, 0x3fff) AM_RAMBANK("bank3")
|
||||
AM_RANGE(0x4000, 0xffff) AM_RAM AM_REGION("rambank", 0x4000)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -200,7 +192,7 @@ static MACHINE_CONFIG_START( kayproii, kaypro_state )
|
||||
MCFG_CPU_CONFIG(kayproii_daisy_chain)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(kaypro_state, kayproii )
|
||||
MCFG_MACHINE_RESET_OVERRIDE(kaypro_state, kayproii )
|
||||
MCFG_MACHINE_RESET_OVERRIDE(kaypro_state, kaypro )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -220,7 +212,7 @@ static MACHINE_CONFIG_START( kayproii, kaypro_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
||||
|
||||
/* devices */
|
||||
MCFG_QUICKLOAD_ADD("quickload", kaypro_state, kayproii, "com,cpm", 3)
|
||||
MCFG_QUICKLOAD_ADD("quickload", kaypro_state, kaypro, "com,cpm", 3)
|
||||
MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics)
|
||||
MCFG_COM8116_ADD("brg", XTAL_5_0688MHz, NULL, NULL, NULL) // WD1943, SMC8116
|
||||
MCFG_Z80PIO_ADD( "z80pio_g", 2500000, kayproii_pio_g_intf )
|
||||
@ -247,7 +239,7 @@ static MACHINE_CONFIG_START( kaypro2x, kaypro_state )
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", kaypro_state, kay_kbd_interrupt)
|
||||
MCFG_CPU_CONFIG(kaypro2x_daisy_chain)
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(kaypro_state, kaypro2x )
|
||||
MCFG_MACHINE_RESET_OVERRIDE(kaypro_state, kaypro )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -268,7 +260,7 @@ static MACHINE_CONFIG_START( kaypro2x, kaypro_state )
|
||||
|
||||
/* devices */
|
||||
MCFG_MC6845_ADD("crtc", MC6845, "screen", 2000000, kaypro2x_crtc) /* comes out of ULA - needs to be measured */
|
||||
MCFG_QUICKLOAD_ADD("quickload", kaypro_state, kaypro2x, "com,cpm", 3)
|
||||
MCFG_QUICKLOAD_ADD("quickload", kaypro_state, kaypro, "com,cpm", 3)
|
||||
MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics)
|
||||
MCFG_COM8116_ADD("brg", XTAL_5_0688MHz, NULL, NULL, NULL) // WD1943, SMC8116
|
||||
MCFG_Z80SIO_ADD( "z80sio", 4800, kaypro_sio_intf )
|
||||
@ -288,6 +280,15 @@ DRIVER_INIT_MEMBER( kaypro_state, kaypro )
|
||||
{
|
||||
m_fdc->setup_intrq_cb(fd1793_t::line_cb(FUNC(kaypro_state::fdc_intrq_w), this));
|
||||
m_fdc->setup_drq_cb(fd1793_t::line_cb(FUNC(kaypro_state::fdc_drq_w), this));
|
||||
|
||||
UINT8 *main = memregion("maincpu")->base();
|
||||
UINT8 *ram = memregion("rambank")->base();
|
||||
|
||||
membank("bankr0")->configure_entry(1, &main[0x0000]);
|
||||
membank("bankr0")->configure_entry(0, &ram[0x0000]);
|
||||
membank("bank3")->configure_entry(1, &main[0x3000]);
|
||||
membank("bank3")->configure_entry(0, &ram[0x3000]);
|
||||
membank("bankw0")->configure_entry(0, &ram[0x0000]);
|
||||
}
|
||||
|
||||
|
||||
@ -304,8 +305,7 @@ ROM_START(kayproii)
|
||||
ROM_REGION(0x4000, "maincpu",0)
|
||||
ROM_LOAD("81-149.u47", 0x0000, 0x0800, CRC(28264bc1) SHA1(a12afb11a538fc0217e569bc29633d5270dfa51b) )
|
||||
|
||||
ROM_REGION(0x10000, "rambank",0)
|
||||
ROM_FILL( 0, 0x10000, 0xff)
|
||||
ROM_REGION(0x10000, "rambank", ROMREGION_ERASEFF)
|
||||
|
||||
ROM_REGION(0x0800, "chargen", ROMREGION_INVERT)
|
||||
ROM_LOAD("81-146.u43", 0x0000, 0x0800, CRC(4cc7d206) SHA1(5cb880083b94bd8220aac1f87d537db7cfeb9013) )
|
||||
@ -315,8 +315,7 @@ ROM_START(kaypro4)
|
||||
ROM_REGION(0x4000, "maincpu",0)
|
||||
ROM_LOAD("81-232.u47", 0x0000, 0x1000, CRC(4918fb91) SHA1(cd9f45cc3546bcaad7254b92c5d501c40e2ef0b2) )
|
||||
|
||||
ROM_REGION(0x10000, "rambank",0)
|
||||
ROM_FILL( 0, 0x10000, 0xff)
|
||||
ROM_REGION(0x10000, "rambank", ROMREGION_ERASEFF)
|
||||
|
||||
ROM_REGION(0x0800, "chargen", ROMREGION_INVERT)
|
||||
ROM_LOAD("81-146.u43", 0x0000, 0x0800, CRC(4cc7d206) SHA1(5cb880083b94bd8220aac1f87d537db7cfeb9013) )
|
||||
@ -326,8 +325,7 @@ ROM_START(kaypro4p88) // "KAYPRO-88" board has 128k or 256k of its own ram on it
|
||||
ROM_REGION(0x4000, "maincpu",0)
|
||||
ROM_LOAD("81-232.u47", 0x0000, 0x1000, CRC(4918fb91) SHA1(cd9f45cc3546bcaad7254b92c5d501c40e2ef0b2) )
|
||||
|
||||
ROM_REGION(0x10000, "rambank",0)
|
||||
ROM_FILL( 0, 0x10000, 0xff)
|
||||
ROM_REGION(0x10000, "rambank", ROMREGION_ERASEFF)
|
||||
|
||||
ROM_REGION(0x0800, "chargen", ROMREGION_INVERT)
|
||||
ROM_LOAD("81-146.u43", 0x0000, 0x0800, CRC(4cc7d206) SHA1(5cb880083b94bd8220aac1f87d537db7cfeb9013) )
|
||||
@ -340,8 +338,7 @@ ROM_START(omni2)
|
||||
ROM_REGION(0x4000, "maincpu",0)
|
||||
ROM_LOAD("omni2.u47", 0x0000, 0x1000, CRC(2883f9e0) SHA1(d98c784e62853582d298bf7ca84c75872847ac9b) )
|
||||
|
||||
ROM_REGION(0x10000, "rambank",0)
|
||||
ROM_FILL( 0, 0x10000, 0xff)
|
||||
ROM_REGION(0x10000, "rambank", ROMREGION_ERASEFF)
|
||||
|
||||
ROM_REGION(0x0800, "chargen", ROMREGION_INVERT)
|
||||
ROM_LOAD("omni2.u43", 0x0000, 0x0800, CRC(049b3381) SHA1(46f1d4f038747ba9048b075dc617361be088f82a) )
|
||||
@ -351,40 +348,47 @@ ROM_START(kaypro2x)
|
||||
ROM_REGION(0x4000, "maincpu",0)
|
||||
ROM_LOAD("81-292.u34", 0x0000, 0x2000, CRC(5eb69aec) SHA1(525f955ca002976e2e30ac7ee37e4a54f279fe96) )
|
||||
|
||||
ROM_REGION(0x10000, "rambank",0)
|
||||
ROM_FILL( 0, 0x10000, 0xff)
|
||||
ROM_REGION(0x10000, "rambank", ROMREGION_ERASEFF)
|
||||
|
||||
ROM_REGION(0x1000, "chargen",0)
|
||||
ROM_LOAD("81-817.u9", 0x0000, 0x1000, CRC(5f72da5b) SHA1(8a597000cce1a7e184abfb7bebcb564c6bf24fb7) )
|
||||
ROM_LOAD("81-235.u9", 0x0000, 0x1000, CRC(5f72da5b) SHA1(8a597000cce1a7e184abfb7bebcb564c6bf24fb7) )
|
||||
ROM_END
|
||||
|
||||
ROM_START(kaypro4a) // same as kaypro2x ??
|
||||
ROM_REGION(0x4000, "maincpu",0)
|
||||
ROM_LOAD("81-292.u34", 0x0000, 0x2000, CRC(5eb69aec) SHA1(525f955ca002976e2e30ac7ee37e4a54f279fe96) )
|
||||
|
||||
ROM_REGION(0x10000, "rambank",0)
|
||||
ROM_FILL( 0, 0x10000, 0xff)
|
||||
ROM_REGION(0x10000, "rambank", ROMREGION_ERASEFF)
|
||||
|
||||
ROM_REGION(0x1000, "chargen",0)
|
||||
ROM_LOAD("81-817.u9", 0x0000, 0x1000, CRC(5f72da5b) SHA1(8a597000cce1a7e184abfb7bebcb564c6bf24fb7) )
|
||||
ROM_LOAD("81-235.u9", 0x0000, 0x1000, CRC(5f72da5b) SHA1(8a597000cce1a7e184abfb7bebcb564c6bf24fb7) )
|
||||
ROM_END
|
||||
|
||||
ROM_START(kaypro10)
|
||||
ROM_REGION(0x4000, "maincpu",0)
|
||||
ROM_LOAD("81-302.u42", 0x0000, 0x1000, CRC(3f9bee20) SHA1(b29114a199e70afe46511119b77a662e97b093a0) )
|
||||
//Note: the older rom 81-187 is also allowed here for kaypro 10, but we don't have a dump of it yet.
|
||||
ROM_REGION(0x10000, "rambank",0)
|
||||
ROM_FILL( 0, 0x10000, 0xff)
|
||||
|
||||
ROM_REGION(0x10000, "rambank", ROMREGION_ERASEFF)
|
||||
|
||||
ROM_REGION(0x1000, "chargen",0)
|
||||
ROM_LOAD("81-817.u31", 0x0000, 0x1000, CRC(5f72da5b) SHA1(8a597000cce1a7e184abfb7bebcb564c6bf24fb7) )
|
||||
ROM_LOAD("81-187.u31", 0x0000, 0x1000, CRC(5f72da5b) SHA1(8a597000cce1a7e184abfb7bebcb564c6bf24fb7) )
|
||||
ROM_END
|
||||
|
||||
//ROM_START(robie)
|
||||
// ROM_REGION(0x4000, "maincpu",0)
|
||||
// ROM_LOAD("81-326.u34", 0x0000, 0x2000, NO_DUMP )
|
||||
//
|
||||
// ROM_REGION(0x10000, "rambank", ROMREGION_ERASEFF)
|
||||
//
|
||||
// ROM_REGION(0x1000, "chargen",0)
|
||||
// ROM_LOAD("81-235.u9", 0x0000, 0x1000, NO_DUMP )
|
||||
//ROM_END
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
|
||||
COMP( 1982, kayproii, 0, 0, kayproii, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro II - 2/83" , 0 )
|
||||
COMP( 1983, kaypro4, kayproii, 0, kaypro4, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 4 - 4/83" , 0 ) // model 81-004
|
||||
COMP( 1983, kaypro4, kayproii, 0, kaypro4, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 4 - 4/83" , GAME_NOT_WORKING ) // model 81-004
|
||||
COMP( 1983, kaypro4p88, kayproii, 0, kaypro4, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 4 plus88 - 4/83" , GAME_NOT_WORKING ) // model 81-004 with an added 8088 daughterboard and rom
|
||||
COMP( 198?, omni2, kayproii, 0, omni2, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Omni II" , 0 )
|
||||
COMP( 198?, omni2, kayproii, 0, omni2, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Omni II" , GAME_NOT_WORKING )
|
||||
COMP( 1984, kaypro2x, 0, 0, kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 2x" , GAME_NOT_WORKING ) // model 81-025
|
||||
COMP( 1984, kaypro4a, kaypro2x, 0, kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 4 - 4/84" , GAME_NOT_WORKING ) // model 81-015
|
||||
// Kaypro 4/84 plus 88 goes here, model 81-015 with an added 8088 daughterboard and rom
|
||||
|
@ -22,7 +22,6 @@ public:
|
||||
|
||||
kaypro_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_p_videoram(*this, "p_videoram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_pio_g(*this, "z80pio_g"),
|
||||
m_pio_s(*this, "z80pio_s"),
|
||||
@ -53,9 +52,8 @@ public:
|
||||
DECLARE_READ8_MEMBER(kaypro_videoram_r);
|
||||
DECLARE_WRITE8_MEMBER(kaypro_videoram_w);
|
||||
DECLARE_MACHINE_START(kayproii);
|
||||
DECLARE_MACHINE_RESET(kayproii);
|
||||
DECLARE_MACHINE_RESET(kaypro);
|
||||
DECLARE_VIDEO_START(kaypro);
|
||||
DECLARE_MACHINE_RESET(kaypro2x);
|
||||
DECLARE_PALETTE_INIT(kaypro);
|
||||
DECLARE_MACHINE_RESET(kay_kbd);
|
||||
DECLARE_DRIVER_INIT(kaypro);
|
||||
@ -68,8 +66,7 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER(kaypro_interrupt);
|
||||
DECLARE_READ8_MEMBER(kaypro_sio_r);
|
||||
DECLARE_WRITE8_MEMBER(kaypro_sio_w);
|
||||
DECLARE_QUICKLOAD_LOAD_MEMBER(kayproii);
|
||||
DECLARE_QUICKLOAD_LOAD_MEMBER(kaypro2x);
|
||||
DECLARE_QUICKLOAD_LOAD_MEMBER(kaypro);
|
||||
const UINT8 *m_p_chargen;
|
||||
UINT8 m_mc6845_cursor[16];
|
||||
UINT8 m_mc6845_reg[32];
|
||||
@ -78,7 +75,7 @@ public:
|
||||
UINT8 m_flash;
|
||||
UINT8 m_framecnt;
|
||||
UINT16 m_cursor;
|
||||
required_shared_ptr<UINT8> m_p_videoram;
|
||||
UINT8 *m_p_videoram;
|
||||
kay_kbd_t *m_kbd;
|
||||
|
||||
protected:
|
||||
|
@ -31,7 +31,7 @@ READ8_MEMBER( kaypro_state::pio_system_r )
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( kaypro_state::common_pio_system_w )
|
||||
WRITE8_MEMBER( kaypro_state::kayproii_pio_system_w )
|
||||
{
|
||||
/* d7 bank select
|
||||
d6 disk drive motors - (0=on)
|
||||
@ -41,24 +41,8 @@ WRITE8_MEMBER( kaypro_state::common_pio_system_w )
|
||||
d1 drive B
|
||||
d0 drive A */
|
||||
|
||||
/* get address space */
|
||||
address_space &mem = m_maincpu->space(AS_PROGRAM);
|
||||
|
||||
if (data & 0x80)
|
||||
{
|
||||
mem.unmap_readwrite (0x0000, 0x3fff);
|
||||
mem.install_read_bank (0x0000, 0x0fff, "bank1");
|
||||
membank("bank1")->set_base(memregion("maincpu")->base());
|
||||
mem.install_readwrite_handler (0x3000, 0x3fff, read8_delegate(FUNC(kaypro_state::kaypro_videoram_r), this), write8_delegate(FUNC(kaypro_state::kaypro_videoram_w), this));
|
||||
}
|
||||
else
|
||||
{
|
||||
mem.unmap_readwrite(0x0000, 0x3fff);
|
||||
mem.install_read_bank (0x0000, 0x3fff, "bank2");
|
||||
mem.install_write_bank (0x0000, 0x3fff, "bank3");
|
||||
membank("bank2")->set_base(memregion("rambank")->base());
|
||||
membank("bank3")->set_base(memregion("rambank")->base());
|
||||
}
|
||||
membank("bankr0")->set_entry(BIT(data, 7));
|
||||
membank("bank3")->set_entry(BIT(data, 7));
|
||||
|
||||
m_floppy = NULL;
|
||||
if (BIT(data, 0))
|
||||
@ -83,17 +67,9 @@ WRITE8_MEMBER( kaypro_state::common_pio_system_w )
|
||||
m_system_port = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( kaypro_state::kayproii_pio_system_w )
|
||||
{
|
||||
common_pio_system_w(space, offset, data);
|
||||
|
||||
/* side select */
|
||||
m_floppy->ss_w(!BIT(data, 2));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( kaypro_state::kaypro4_pio_system_w )
|
||||
{
|
||||
common_pio_system_w(space, offset, data);
|
||||
kayproii_pio_system_w(space, offset, data);
|
||||
|
||||
/* side select */
|
||||
m_floppy->ss_w(BIT(data, 2));
|
||||
@ -157,38 +133,23 @@ WRITE8_MEMBER( kaypro_state::kaypro2x_system_port_w )
|
||||
d1 drive B
|
||||
d0 drive A */
|
||||
|
||||
/* get address space */
|
||||
address_space &mem = m_maincpu->space(AS_PROGRAM);
|
||||
|
||||
if (BIT(data, 7))
|
||||
{
|
||||
mem.unmap_readwrite (0x0000, 0x3fff);
|
||||
mem.install_read_bank (0x0000, 0x1fff, "bank1");
|
||||
membank("bank1")->set_base(memregion("maincpu")->base());
|
||||
}
|
||||
else
|
||||
{
|
||||
mem.unmap_readwrite (0x0000, 0x3fff);
|
||||
mem.install_read_bank (0x0000, 0x3fff, "bank2");
|
||||
mem.install_write_bank (0x0000, 0x3fff, "bank3");
|
||||
membank("bank2")->set_base(memregion("rambank")->base());
|
||||
membank("bank3")->set_base(memregion("rambank")->base());
|
||||
}
|
||||
membank("bankr0")->set_entry(BIT(data, 7));
|
||||
membank("bank3")->set_entry(BIT(data, 7));
|
||||
|
||||
m_floppy = NULL;
|
||||
if (BIT(data, 0))
|
||||
if (!BIT(data, 0))
|
||||
m_floppy = m_floppy0->get_device();
|
||||
else
|
||||
if (BIT(data, 1))
|
||||
if (!BIT(data, 1))
|
||||
m_floppy = m_floppy1->get_device();
|
||||
|
||||
m_fdc->set_floppy(m_floppy);
|
||||
m_fdc->dden_w(BIT(data, 5));
|
||||
//m_fdc->dden_w(BIT(data, 5)); // not connected
|
||||
|
||||
if (m_floppy)
|
||||
{
|
||||
m_floppy->mon_w(BIT(data, 6) ? 0 : 1); // motor on
|
||||
m_floppy->ss_w(BIT(data, 2));
|
||||
m_floppy->mon_w(!BIT(data, 4)); // motor on
|
||||
m_floppy->ss_w(!BIT(data, 2));
|
||||
}
|
||||
|
||||
output_set_value("ledA", BIT(data, 0)); /* LEDs in artwork */
|
||||
@ -321,22 +282,21 @@ void kaypro_state::fdc_drq_w (bool state)
|
||||
Machine
|
||||
|
||||
************************************************************/
|
||||
MACHINE_START_MEMBER(kaypro_state,kayproii)
|
||||
MACHINE_START_MEMBER( kaypro_state,kayproii )
|
||||
{
|
||||
m_pio_s->strobe_a(0);
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(kaypro_state,kayproii)
|
||||
MACHINE_RESET_MEMBER( kaypro_state,kaypro )
|
||||
{
|
||||
MACHINE_RESET_CALL_MEMBER(kay_kbd);
|
||||
membank("bankr0")->set_entry(1); // point at rom
|
||||
membank("bankw0")->set_entry(0); // always write to ram
|
||||
membank("bank3")->set_entry(1); // point at video ram
|
||||
m_system_port = 0x80;
|
||||
m_maincpu->reset();
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(kaypro_state,kaypro2x)
|
||||
{
|
||||
address_space &space = m_maincpu->space(AS_PROGRAM);
|
||||
kaypro2x_system_port_w(space, 0, 0x80);
|
||||
MACHINE_RESET_CALL_MEMBER(kay_kbd);
|
||||
}
|
||||
|
||||
/***********************************************************
|
||||
|
||||
@ -349,9 +309,8 @@ MACHINE_RESET_MEMBER(kaypro_state,kaypro2x)
|
||||
|
||||
************************************************************/
|
||||
|
||||
QUICKLOAD_LOAD_MEMBER( kaypro_state, kayproii )
|
||||
QUICKLOAD_LOAD_MEMBER( kaypro_state, kaypro )
|
||||
{
|
||||
address_space &space = m_maincpu->space(AS_PROGRAM);
|
||||
UINT8 *RAM = memregion("rambank")->base();
|
||||
UINT16 i;
|
||||
UINT8 data;
|
||||
@ -364,30 +323,10 @@ QUICKLOAD_LOAD_MEMBER( kaypro_state, kayproii )
|
||||
RAM[i+0x100] = data;
|
||||
}
|
||||
|
||||
common_pio_system_w(space, 0, m_system_port & 0x7f); // switch TPA in
|
||||
membank("bankr0")->set_entry(0);
|
||||
membank("bank3")->set_entry(0);
|
||||
RAM[0x80]=0; // clear out command tail
|
||||
RAM[0x81]=0;
|
||||
m_maincpu->set_pc(0x100); // start program
|
||||
return IMAGE_INIT_PASS;
|
||||
}
|
||||
|
||||
QUICKLOAD_LOAD_MEMBER( kaypro_state, kaypro2x )
|
||||
{
|
||||
address_space &space = m_maincpu->space(AS_PROGRAM);
|
||||
UINT8 *RAM = memregion("rambank")->base();
|
||||
UINT16 i;
|
||||
UINT8 data;
|
||||
|
||||
for (i = 0; i < quickload_size; i++)
|
||||
{
|
||||
if (image.fread( &data, 1) != 1) return IMAGE_INIT_FAIL;
|
||||
|
||||
RAM[i+0x100] = data;
|
||||
}
|
||||
|
||||
kaypro2x_system_port_w(space, 0, m_system_port & 0x7f);
|
||||
RAM[0x80]=0;
|
||||
RAM[0x81]=0;
|
||||
m_maincpu->set_pc(0x100);
|
||||
return IMAGE_INIT_PASS;
|
||||
}
|
||||
|
@ -313,4 +313,5 @@ WRITE8_MEMBER( kaypro_state::kaypro2x_videoram_w )
|
||||
VIDEO_START_MEMBER(kaypro_state,kaypro)
|
||||
{
|
||||
m_p_chargen = memregion("chargen")->base();
|
||||
m_p_videoram = memregion("maincpu")->base()+0x3000;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user