case 0xc0: /* I/O port A and B */
d = ~((PicoIn.pad[0] & 0x3f) | (PicoIn.pad[1] << 6));
+ if (Pico.ms.io_ctl & 0x01) d &= ~0x20;
break;
case 0xc1: /* I/O port B and miscellaneous */
d = (Pico.ms.io_ctl & 0x80) | ((Pico.ms.io_ctl << 1) & 0x40) | 0x30;
d |= ~(PicoIn.pad[1] >> 2) & 0x0f;
+ if (Pico.ms.io_ctl & 0x08) d &= ~0x80;
+ if (Pico.ms.io_ctl & 0x04) d &= ~0x08;
+ if (Pico.ms.io_ctl & 0x02) d &= ~0x40;
break;
}
}
// reset memory mapping
PicoMemSetupMS();
+
+ // BIOS values for VDP initialisation
+ Pico.video.reg[0] = 0x36;
+ Pico.video.reg[1] = 0xa0;
+ Pico.video.reg[2] = 0xff;
+ Pico.video.reg[3] = 0xff;
+ Pico.video.reg[4] = 0xff;
+ Pico.video.reg[5] = 0xff;
+ Pico.video.reg[6] = 0xfb;
+ Pico.video.reg[7] = 0x00;
+ Pico.video.reg[8] = 0x00;
+ Pico.video.reg[9] = 0x00;
+ Pico.video.reg[10] = 0xff;
}
void PicoPowerMS(void)