summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author MooglyGuy <therealmogminer@gmail.com>2020-01-02 12:13:43 +0100
committer MooglyGuy <therealmogminer@gmail.com>2020-01-02 12:13:57 +0100
commit0a29cbef31992f15b4f5ade8d85bb097a7cf382f (patch)
tree184c37d08b54996ddbba2f5006b4240094728c5e
parent5fb8cc18ad354fbdf8e852249571985a95fb7ce6 (diff)
-psion5.cpp: Added logging for SoC peripheral accesses based on WindEmu. [Ninji, Ryan Holtz]
-rw-r--r--src/mame/drivers/psion5.cpp490
1 files changed, 490 insertions, 0 deletions
diff --git a/src/mame/drivers/psion5.cpp b/src/mame/drivers/psion5.cpp
index 1addef2930e..15884f76400 100644
--- a/src/mame/drivers/psion5.cpp
+++ b/src/mame/drivers/psion5.cpp
@@ -36,6 +36,85 @@ protected:
virtual void machine_reset() override;
private:
+ DECLARE_READ32_MEMBER(periphs_r);
+ DECLARE_WRITE32_MEMBER(periphs_w);
+
+ enum
+ {
+ REG_MEMCFG1 = 0x0000,
+ REG_MEMCFG2 = 0x0004,
+
+ REG_DRAMCFG = 0x0100,
+
+ REG_LCDCTL = 0x0200,
+ REG_LCDST = 0x0204,
+ REG_LCD_DBAR1 = 0x0210,
+ REG_LCDT0 = 0x0220,
+ REG_LCDT1 = 0x0224,
+ REG_LCDT2 = 0x0228,
+
+ REG_PWRSR = 0x0400,
+ REG_PWRCNT = 0x0404,
+ REG_HALT = 0x0408,
+ REG_STBY = 0x040c,
+ REG_BLEOI = 0x0410,
+ REG_MCEOI = 0x0414,
+ REG_TEOI = 0x0418,
+ REG_STFCLR = 0x041c,
+ REG_E2EOI = 0x0420,
+
+ REG_INTSR = 0x0500,
+ REG_INTRSR = 0x0504,
+ REG_INTENS = 0x0508,
+ REG_INTENC = 0x050c,
+ REG_INTTEST1 = 0x0514,
+ REG_INTTEST2 = 0x0518,
+
+ REG_PUMPCON = 0x0900,
+
+ REG_CODR = 0x0a00,
+ REG_CONFG = 0x0a04,
+ REG_COLFG = 0x0a08,
+ REG_COEOI = 0x0a0c,
+ REG_COTEST = 0x0a10,
+
+ REG_SSCR0 = 0x0b00,
+ REG_SSCR1 = 0x0b04,
+ REG_SSDR = 0x0b0c,
+ REG_SSSR = 0x0b14,
+
+ REG_TC1LOAD = 0x0c00,
+ REG_TC1VAL = 0x0c04,
+ REG_TC1CTRL = 0x0c08,
+ REG_TC1EOI = 0x0c0c,
+ REG_TC2LOAD = 0x0c20,
+ REG_TC2VAL = 0x0c24,
+ REG_TC2CTRL = 0x0c28,
+ REG_TC2EOI = 0x0c2c,
+
+ REG_BZCONT = 0x0c40,
+
+ REG_RTCDRL = 0x0d00,
+ REG_RTCDRU = 0x0d04,
+ REG_RTCMRL = 0x0d08,
+ REG_RTCMRU = 0x0d0c,
+ REG_RTCEOI = 0x0d10,
+
+ REG_PADR = 0x0e00,
+ REG_PBDR = 0x0e04,
+ REG_PCDR = 0x0e08,
+ REG_PDDR = 0x0e0c,
+ REG_PADDR = 0x0e10,
+ REG_PBDDR = 0x0e14,
+ REG_PCDDR = 0x0e18,
+ REG_PDDDR = 0x0e1c,
+ REG_PEDR = 0x0e20,
+ REG_PEDDR = 0x0e24,
+
+ REG_KSCAN = 0x0e28,
+ REG_LCDMUX = 0x0e2c
+ };
+
void main_map(address_map &map);
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -51,9 +130,420 @@ void psion5_state::machine_reset()
{
}
+READ32_MEMBER(psion5_state::periphs_r)
+{
+ const uint32_t reg = offset << 2;
+ uint32_t data = 0;
+ switch (reg)
+ {
+ case REG_MEMCFG1:
+ logerror("%s: peripheral read, MEMCFG1 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_MEMCFG2:
+ logerror("%s: peripheral read, MEMCFG2 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_DRAMCFG:
+ logerror("%s: peripheral read, DRAMCFG = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_LCDCTL:
+ logerror("%s: peripheral read, LCDCTL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_LCDST:
+ logerror("%s: peripheral read, LCDST = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_LCD_DBAR1:
+ logerror("%s: peripheral read, LCD_DBAR1 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_LCDT0:
+ logerror("%s: peripheral read, LCDT0 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_LCDT1:
+ logerror("%s: peripheral read, LCDT1 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_LCDT2:
+ logerror("%s: peripheral read, LCDT2 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_PWRSR:
+ logerror("%s: peripheral read, PWRSR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PWRCNT:
+ logerror("%s: peripheral read, PWRCNT = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_HALT:
+ logerror("%s: peripheral read, HALT = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_STBY:
+ logerror("%s: peripheral read, STBY = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_BLEOI:
+ logerror("%s: peripheral read, BLEOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_MCEOI:
+ logerror("%s: peripheral read, MCEOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TEOI:
+ logerror("%s: peripheral read, TEOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_STFCLR:
+ logerror("%s: peripheral read, STFCLR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_E2EOI:
+ logerror("%s: peripheral read, E2EOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_INTSR:
+ logerror("%s: peripheral read, INTSR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_INTRSR:
+ logerror("%s: peripheral read, INTRSR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_INTENS:
+ logerror("%s: peripheral read, INTENS = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_INTENC:
+ logerror("%s: peripheral read, INTENC = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_INTTEST1:
+ logerror("%s: peripheral read, INTTEST1 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_INTTEST2:
+ logerror("%s: peripheral read, INTTEST2 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_PUMPCON:
+ logerror("%s: peripheral read, PUMPCON = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_CODR:
+ logerror("%s: peripheral read, CODR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_CONFG:
+ logerror("%s: peripheral read, CONFG = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_COLFG:
+ logerror("%s: peripheral read, COLFG = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_COEOI:
+ logerror("%s: peripheral read, COEOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_COTEST:
+ logerror("%s: peripheral read, COTEST = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_SSCR0:
+ logerror("%s: peripheral read, SSCR0 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_SSCR1:
+ logerror("%s: peripheral read, SSCR1 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_SSDR:
+ logerror("%s: peripheral read, SSDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_SSSR:
+ logerror("%s: peripheral read, SSSR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_TC1LOAD:
+ logerror("%s: peripheral read, TC1LOAD = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC1VAL:
+ logerror("%s: peripheral read, TC1VAL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC1CTRL:
+ logerror("%s: peripheral read, TC1CTRL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC1EOI:
+ logerror("%s: peripheral read, TC1EOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC2LOAD:
+ logerror("%s: peripheral read, TC2LOAD = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC2VAL:
+ logerror("%s: peripheral read, TC2VAL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC2CTRL:
+ logerror("%s: peripheral read, TC2CTRL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC2EOI:
+ logerror("%s: peripheral read, TC2EOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_BZCONT:
+ logerror("%s: peripheral read, BZCONT = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_RTCDRL:
+ logerror("%s: peripheral read, RTCDRL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_RTCDRU:
+ logerror("%s: peripheral read, RTCDRU = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_RTCMRL:
+ logerror("%s: peripheral read, RTCMRL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_RTCMRU:
+ logerror("%s: peripheral read, RTCMRU = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_RTCEOI:
+ logerror("%s: peripheral read, RTCEOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_PADR:
+ logerror("%s: peripheral read, PADR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PBDR:
+ logerror("%s: peripheral read, PBDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PCDR:
+ logerror("%s: peripheral read, PCDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PDDR:
+ logerror("%s: peripheral read, PDDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PADDR:
+ logerror("%s: peripheral read, PADDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PBDDR:
+ logerror("%s: peripheral read, PBDDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PCDDR:
+ logerror("%s: peripheral read, PCDDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PDDDR:
+ logerror("%s: peripheral read, PDDDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PEDR:
+ logerror("%s: peripheral read, PEDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PEDDR:
+ logerror("%s: peripheral read, PEDDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_KSCAN:
+ logerror("%s: peripheral read, KSCAN = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_LCDMUX:
+ logerror("%s: peripheral read, LCDMUX = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ default:
+ logerror("%s: peripheral read, Unknown = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ }
+ return 0;
+}
+
+WRITE32_MEMBER(psion5_state::periphs_w)
+{
+ const uint32_t reg = offset << 2;
+ switch (reg)
+ {
+ case REG_MEMCFG1:
+ logerror("%s: peripheral write, MEMCFG1 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_MEMCFG2:
+ logerror("%s: peripheral write, MEMCFG2 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_DRAMCFG:
+ logerror("%s: peripheral write, DRAMCFG = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_LCDCTL:
+ logerror("%s: peripheral write, LCDCTL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_LCDST:
+ logerror("%s: peripheral write, LCDST = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_LCD_DBAR1:
+ logerror("%s: peripheral write, LCD_DBAR1 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_LCDT0:
+ logerror("%s: peripheral write, LCDT0 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_LCDT1:
+ logerror("%s: peripheral write, LCDT1 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_LCDT2:
+ logerror("%s: peripheral write, LCDT2 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_PWRSR:
+ logerror("%s: peripheral write, PWRSR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PWRCNT:
+ logerror("%s: peripheral write, PWRCNT = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_HALT:
+ logerror("%s: peripheral write, HALT = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_STBY:
+ logerror("%s: peripheral write, STBY = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_BLEOI:
+ logerror("%s: peripheral write, BLEOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_MCEOI:
+ logerror("%s: peripheral write, MCEOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TEOI:
+ logerror("%s: peripheral write, TEOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_STFCLR:
+ logerror("%s: peripheral write, STFCLR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_E2EOI:
+ logerror("%s: peripheral write, E2EOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_INTSR:
+ logerror("%s: peripheral write, INTSR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_INTRSR:
+ logerror("%s: peripheral write, INTRSR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_INTENS:
+ logerror("%s: peripheral write, INTENS = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_INTENC:
+ logerror("%s: peripheral write, INTENC = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_INTTEST1:
+ logerror("%s: peripheral write, INTTEST1 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_INTTEST2:
+ logerror("%s: peripheral write, INTTEST2 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_PUMPCON:
+ logerror("%s: peripheral write, PUMPCON = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_CODR:
+ logerror("%s: peripheral write, CODR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_CONFG:
+ logerror("%s: peripheral write, CONFG = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_COLFG:
+ logerror("%s: peripheral write, COLFG = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_COEOI:
+ logerror("%s: peripheral write, COEOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_COTEST:
+ logerror("%s: peripheral write, COTEST = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_SSCR0:
+ logerror("%s: peripheral write, SSCR0 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_SSCR1:
+ logerror("%s: peripheral write, SSCR1 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_SSDR:
+ logerror("%s: peripheral write, SSDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_SSSR:
+ logerror("%s: peripheral write, SSSR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_TC1LOAD:
+ logerror("%s: peripheral write, TC1LOAD = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC1VAL:
+ logerror("%s: peripheral write, TC1VAL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC1CTRL:
+ logerror("%s: peripheral write, TC1CTRL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC1EOI:
+ logerror("%s: peripheral write, TC1EOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC2LOAD:
+ logerror("%s: peripheral write, TC2LOAD = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC2VAL:
+ logerror("%s: peripheral write, TC2VAL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC2CTRL:
+ logerror("%s: peripheral write, TC2CTRL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_TC2EOI:
+ logerror("%s: peripheral write, TC2EOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_BZCONT:
+ logerror("%s: peripheral write, BZCONT = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_RTCDRL:
+ logerror("%s: peripheral write, RTCDRL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_RTCDRU:
+ logerror("%s: peripheral write, RTCDRU = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_RTCMRL:
+ logerror("%s: peripheral write, RTCMRL = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_RTCMRU:
+ logerror("%s: peripheral write, RTCMRU = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_RTCEOI:
+ logerror("%s: peripheral write, RTCEOI = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_PADR:
+ logerror("%s: peripheral write, PADR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PBDR:
+ logerror("%s: peripheral write, PBDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PCDR:
+ logerror("%s: peripheral write, PCDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PDDR:
+ logerror("%s: peripheral write, PDDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PADDR:
+ logerror("%s: peripheral write, PADDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PBDDR:
+ logerror("%s: peripheral write, PBDDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PCDDR:
+ logerror("%s: peripheral write, PCDDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PDDDR:
+ logerror("%s: peripheral write, PDDDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PEDR:
+ logerror("%s: peripheral write, PEDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_PEDDR:
+ logerror("%s: peripheral write, PEDDR = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ case REG_KSCAN:
+ logerror("%s: peripheral write, KSCAN = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ case REG_LCDMUX:
+ logerror("%s: peripheral write, LCDMUX = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+
+ default:
+ logerror("%s: peripheral write, Unknown = %08x & %08x\n", machine().describe_context(), data, mem_mask);
+ break;
+ }
+}
+
void psion5_state::main_map(address_map &map)
{
map(0x00000000, 0x009fffff).rom().region("maincpu", 0);
+ map(0x80000000, 0x80000fff).rw(FUNC(psion5_state::periphs_r), FUNC(psion5_state::periphs_w));
map(0xc0000000, 0xc03fffff).ram().mirror(0x1fc00000);
}