-.if DRZ80_FOR_PICODRIVE\r
-\r
-pico_z80_read8: @ addr\r
- cmp r0,#0x2000 @ Z80 RAM\r
- ldrlt r1,[cpucontext,#z80sp_base]\r
- ldrltb r0,[r1,r0]\r
- bxlt lr\r
-\r
- cmp r0,#0x8000 @ 68k bank\r
- blt 1f\r
- ldr r2,=(Pico+0x22212)\r
- ldrh r1,[r2]\r
- bic r0,r0,#0x3f8000\r
- orr r0,r0,r1,lsl #15\r
- ldr r1,[r2,#-0xe] @ ROM size\r
- cmp r0,r1\r
- ldrlt r1,[r2,#-0x12] @ ROM\r
- eorlt r0,r0,#1 @ our ROM is byteswapped\r
- ldrltb r0,[r1,r0]\r
- bxlt lr\r
- stmfd sp!,{r3,r12,lr}\r
- bl PicoRead8\r
- ldmfd sp!,{r3,r12,pc}\r
-1:\r
- mov r1,r0,lsr #13\r
- cmp r1,#2 @ YM2612 (0x4000-0x5fff)\r
- bne 0f\r
- and r0,r0,#3\r
- stmfd sp!,{r3,r12,lr}\r
+.if DRZ80_XMAP\r
+\r
+z80_xmap_read8: @ addr\r
+ ldr r1,[cpucontext,#z80_read8]\r
+ mov r2,r0,lsr #Z80_MEM_SHIFT\r
+ ldr r1,[r1,r2,lsl #2]\r
+ movs r1,r1,lsl #1\r
+ ldrccb r0,[r1,r0]\r
+ bxcc lr\r
+\r
+z80_xmap_read8_handler: @ addr, func\r