z8001: Expand address space to 23 bits (nw)

z8001, z8002: Document pinout (nw)
This commit is contained in:
AJR 2020-04-19 17:43:24 -04:00
parent dcd6560b3e
commit 928b8f61d2
3 changed files with 40 additions and 9 deletions

View File

@ -49,7 +49,7 @@ z8002_device::z8002_device(const machine_config &mconfig, device_type type, cons
z8001_device::z8001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: z8002_device(mconfig, Z8001, tag, owner, clock, 20, 2)
: z8002_device(mconfig, Z8001, tag, owner, clock, 23, 2)
{
}
@ -492,7 +492,7 @@ void z8002_device::clear_internal_state()
void z8002_device::register_debug_state()
{
state_add( Z8000_PC, "PC", m_pc ).formatstr("%08X");
state_add( Z8000_PC, "PC", m_pc ).mask(m_program->addrmask());
state_add( Z8000_NSPOFF, "NSPOFF", m_nspoff ).formatstr("%04X");
state_add( Z8000_NSPSEG, "NSPSEG", m_nspseg ).formatstr("%04X");
state_add( Z8000_FCW, "FCW", m_fcw ).formatstr("%04X");

View File

@ -1,5 +1,34 @@
// license:BSD-3-Clause
// copyright-holders:Juergen Buchmueller,Ernesto Corvi
/**********************************************************************
____ ____
AD0 1 |* \_/ | 48 AD8
AD9 2 | | 47 SN6 ____ ____
AD10 3 | | 46 SN5 AD9 1 |* \_/ | 40 AD0
AD11 4 | | 45 AD7 AD10 2 | | 39 AD8
AD12 5 | | 44 AD6 AD11 3 | | 38 AD7
AD13 6 | | 43 AD4 AD12 4 | | 37 AD6
_STOP 7 | | 42 SN4 AD13 5 | | 36 AD4
_Mi 8 | | 41 AD5 _STOP 6 | | 35 AD5
AD15 9 | | 40 AD3 _Mi 7 | | 34 AD3
AD14 10 | | 39 AD2 AD15 8 | | 33 AD2
+5V 11 | | 38 AD1 AD14 9 | | 32 AD1
_VI 12 | | 37 SN2 +5V 10 | | 31 GND
_NVI 13 | Z8001 | 36 GND _VI 11 | Z8002 | 30 CLOCK
_SEGT 14 | | 35 CLOCK _NVI 12 | | 29 _AS
_NMI 15 | | 34 _AS _NMI 13 | | 28 RSVD
_RESET 16 | | 33 RSVD _RESET 14 | | 27 B/_W
_Mo 17 | | 32 B/_W _Mo 15 | | 26 N/_S
_MREQ 18 | | 31 N/_S _MREQ 16 | | 25 R/_W
_DS 19 | | 30 R/_W _DS 17 | | 24 _BUSACK
ST3 20 | | 29 _BUSACK ST3 18 | | 23 _WAIT
ST2 21 | | 28 _WAIT ST2 19 | | 22 _BUSREQ
ST1 22 | | 27 _BUSREQ ST1 20 |___________| 21 ST0
ST0 23 | | 26 SN0
SN3 24 |___________| 25 SN1
**********************************************************************/
#ifndef MAME_CPU_Z8000_Z8000_H
#define MAME_CPU_Z8000_Z8000_H

View File

@ -42,19 +42,21 @@ const tiny_rom_entry *m24_z8000_device::device_rom_region() const
void m24_z8000_device::z8000_prog(address_map &map)
{
map(0x00000, 0xfffff).rw(FUNC(m24_z8000_device::pmem_r), FUNC(m24_z8000_device::pmem_w));
map(0x000000, 0x0fffff).rw(FUNC(m24_z8000_device::pmem_r), FUNC(m24_z8000_device::pmem_w));
map(0x40000, 0x43fff).rom().region("z8000", 0);
map(0x50000, 0x53fff).rom().region("z8000", 0);
map(0x70000, 0x73fff).rom().region("z8000", 0);
map(0x040000, 0x043fff).rom().region("z8000", 0);
map(0x050000, 0x053fff).rom().region("z8000", 0);
map(0x070000, 0x073fff).rom().region("z8000", 0);
// TODO: segments 0x10 and higher are trapped
}
void m24_z8000_device::z8000_data(address_map &map)
{
map(0x00000, 0xfffff).rw(FUNC(m24_z8000_device::dmem_r), FUNC(m24_z8000_device::dmem_w));
map(0x000000, 0x0fffff).rw(FUNC(m24_z8000_device::dmem_r), FUNC(m24_z8000_device::dmem_w));
map(0x40000, 0x43fff).rom().region("z8000", 0);
map(0x70000, 0x73fff).rom().region("z8000", 0);
map(0x040000, 0x043fff).rom().region("z8000", 0);
map(0x070000, 0x073fff).rom().region("z8000", 0);
// TODO: segments 0x10 and higher are trapped
}
void m24_z8000_device::z8000_io(address_map &map)