Olivetti M19's video adapter has control register on port 3DBh instead of 3DEh, fixes #4739.
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
|
||||
typedef struct ogc_t {
|
||||
cga_t cga;
|
||||
uint16_t ctrl_addr;
|
||||
/* unused in OGC, required for M19 video card structure idiom */
|
||||
uint8_t ctrl_3dd;
|
||||
uint8_t ctrl_3de;
|
||||
|
@@ -2038,6 +2038,8 @@ m19_vid_init(m19_vid_t *vid)
|
||||
vid->ogc.mono_display = 0;
|
||||
else
|
||||
vid->ogc.mono_display = 1;
|
||||
|
||||
vid->ogc.ctrl_addr = 0x3db;
|
||||
/* OGC emulation part end */
|
||||
|
||||
/* Plantronics emulation part begin*/
|
||||
|
@@ -97,11 +97,14 @@ ogc_out(uint16_t addr, uint8_t val, void *priv)
|
||||
cga_out(addr, val, &ogc->cga);
|
||||
break;
|
||||
|
||||
case 0x3db:
|
||||
case 0x3de:
|
||||
/* set control register */
|
||||
ogc->ctrl_3de = val;
|
||||
/* select 1st or 2nd 16k vram block to be used */
|
||||
ogc->base = (val & 0x08) ? 0x4000 : 0;
|
||||
if (addr == ogc->ctrl_addr) {
|
||||
/* set control register */
|
||||
ogc->ctrl_3de = val;
|
||||
/* select 1st or 2nd 16k vram block to be used */
|
||||
ogc->base = (val & 0x08) ? 0x4000 : 0;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -622,6 +625,8 @@ ogc_init(UNUSED(const device_t *info))
|
||||
else
|
||||
ogc->mono_display = 1;
|
||||
|
||||
ogc->ctrl_addr = 0x3de;
|
||||
|
||||
return ogc;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user