intellec4: implememnt PROM memory module

This commit is contained in:
Vas Crabb 2017-07-13 18:34:57 +10:00
parent 17790b2f5f
commit 641d0ac7a3
5 changed files with 14 additions and 6 deletions

View File

@ -869,6 +869,8 @@ if (BUSES["INTELLEC4"]~=null) then
files { files {
MAME_DIR .. "src/devices/bus/intellec4/intellec4.cpp", MAME_DIR .. "src/devices/bus/intellec4/intellec4.cpp",
MAME_DIR .. "src/devices/bus/intellec4/intellec4.h", MAME_DIR .. "src/devices/bus/intellec4/intellec4.h",
MAME_DIR .. "src/devices/bus/intellec4/prommemory.cpp",
MAME_DIR .. "src/devices/bus/intellec4/prommemory.h",
MAME_DIR .. "src/devices/bus/intellec4/tapereader.cpp", MAME_DIR .. "src/devices/bus/intellec4/tapereader.cpp",
MAME_DIR .. "src/devices/bus/intellec4/tapereader.h", MAME_DIR .. "src/devices/bus/intellec4/tapereader.h",
} }

View File

@ -248,8 +248,10 @@ void device_univ_card_interface::set_bus(univ_bus_device &bus)
#include "prommemory.h"
#include "tapereader.h" #include "tapereader.h"
SLOT_INTERFACE_START(intellec4_univ_cards) SLOT_INTERFACE_START(intellec4_univ_cards)
SLOT_INTERFACE("imm4_90", INTELLEC4_TAPE_READER) SLOT_INTERFACE("imm4_90", INTELLEC4_TAPE_READER)
SLOT_INTERFACE("imm6_26", INTELLEC4_PROM_MEMORY)
SLOT_INTERFACE_END SLOT_INTERFACE_END

View File

@ -5,7 +5,7 @@
#include "tapereader.h" #include "tapereader.h"
DEFINE_DEVICE_TYPE_NS(INTELLEC4_TAPE_READER, bus::intellec4, imm4_90_device, "imm4_90", "Intel imm4-90 High-Speed Paper Tape Reader") DEFINE_DEVICE_TYPE_NS(INTELLEC4_TAPE_READER, bus::intellec4, imm4_90_device, "intlc4_imm4_90", "Intel imm4-90 High-Speed Paper Tape Reader")
namespace bus { namespace intellec4 { namespace bus { namespace intellec4 {
@ -50,10 +50,10 @@ void imm4_90_device::device_start()
save_item(NAME(m_advance)); save_item(NAME(m_advance));
save_item(NAME(m_stepping)); save_item(NAME(m_stepping));
rom_ports_space().install_read_handler(0x0040U, 0x004fU, read8_delegate(FUNC(imm4_90_device::rom4_in), this)); rom_ports_space().install_read_handler(0x0040U, 0x004fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(FUNC(imm4_90_device::rom4_in), this));
rom_ports_space().install_read_handler(0x0060U, 0x006fU, read8_delegate(FUNC(imm4_90_device::rom6_in), this)); rom_ports_space().install_read_handler(0x0060U, 0x006fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(FUNC(imm4_90_device::rom6_in), this));
rom_ports_space().install_read_handler(0x0070U, 0x007fU, read8_delegate(FUNC(imm4_90_device::rom7_in), this)); rom_ports_space().install_read_handler(0x0070U, 0x007fU, 0x0000U, 0x1f00U, 0x0000, read8_delegate(FUNC(imm4_90_device::rom7_in), this));
rom_ports_space().install_write_handler(0x0040U, 0x004fU, write8_delegate(FUNC(imm4_90_device::rom4_out), this)); rom_ports_space().install_write_handler(0x0040U, 0x004fU, 0x0000U, 0x1f00U, 0x0000, write8_delegate(FUNC(imm4_90_device::rom4_out), this));
} }

View File

@ -7,6 +7,10 @@ The monitor PROM has support for loading BNPF or Intel HEX from this
device (use J command to select it), but it doesn't appear in any device (use J command to select it), but it doesn't appear in any
catalogues or manuals I've seen. Apparently it was announced in catalogues or manuals I've seen. Apparently it was announced in
Computerworld. Computerworld.
In practice you needed a GPIO card (e.g. an imm4-60) to talk to the
paper taper reader. To simplify configuration we emulate the I/O
interface and paper tape reader as a single device.
*/ */
#ifndef MAME_BUS_INTELLEC4_TAPEREADER_H #ifndef MAME_BUS_INTELLEC4_TAPEREADER_H
#define MAME_BUS_INTELLEC4_TAPEREADER_H #define MAME_BUS_INTELLEC4_TAPEREADER_H

View File

@ -328,7 +328,7 @@ MACHINE_CONFIG_START(intellec4)
MCFG_INTELLEC4_UNIV_BUS_RESET_4002_CB(WRITELINE(intellec4_state, bus_reset_4002)) MCFG_INTELLEC4_UNIV_BUS_RESET_4002_CB(WRITELINE(intellec4_state, bus_reset_4002))
MCFG_INTELLEC4_UNIV_BUS_USER_RESET_CB(WRITELINE(intellec4_state, bus_user_reset)) MCFG_INTELLEC4_UNIV_BUS_USER_RESET_CB(WRITELINE(intellec4_state, bus_user_reset))
MCFG_INTELLEC4_UNIV_SLOT_ADD("bus", "j7", 518000. / 7, intellec4_univ_cards, "imm4_90") MCFG_INTELLEC4_UNIV_SLOT_ADD("bus", "j7", 518000. / 7, intellec4_univ_cards, "imm4_90")
MCFG_INTELLEC4_UNIV_SLOT_ADD("bus", "j8", 518000. / 7, intellec4_univ_cards, nullptr) MCFG_INTELLEC4_UNIV_SLOT_ADD("bus", "j8", 518000. / 7, intellec4_univ_cards, "imm6_26")
MCFG_INTELLEC4_UNIV_SLOT_ADD("bus", "j9", 518000. / 7, intellec4_univ_cards, nullptr) MCFG_INTELLEC4_UNIV_SLOT_ADD("bus", "j9", 518000. / 7, intellec4_univ_cards, nullptr)
MCFG_INTELLEC4_UNIV_SLOT_ADD("bus", "j10", 518000. / 7, intellec4_univ_cards, nullptr) MCFG_INTELLEC4_UNIV_SLOT_ADD("bus", "j10", 518000. / 7, intellec4_univ_cards, nullptr)
MCFG_INTELLEC4_UNIV_SLOT_ADD("bus", "j11", 518000. / 7, intellec4_univ_cards, nullptr) MCFG_INTELLEC4_UNIV_SLOT_ADD("bus", "j11", 518000. / 7, intellec4_univ_cards, nullptr)