CGA-class cards mirror CRTC between ports 3d0 and 3d7. Fixes scrolling

in Prohibition.
This commit is contained in:
SarahW 2021-05-21 22:15:21 +01:00
commit c82cd208c1
4 changed files with 8 additions and 8 deletions

View file

@ -28,10 +28,10 @@ void cga_out(uint16_t addr, uint8_t val, void *p)
// pclog("CGA_OUT %04X %02X\n", addr, val);
switch (addr)
{
case 0x3D4:
case 0x3d0: case 0x3d2: case 0x3d4: case 0x3d6:
cga->crtcreg = val & 31;
return;
case 0x3D5:
case 0x3d1: case 0x3d3: case 0x3d5: case 0x3d7:
old = cga->crtc[cga->crtcreg];
cga->crtc[cga->crtcreg] = val & crtcmask[cga->crtcreg];
if (old != val)

View file

@ -58,10 +58,10 @@ static void pc1512_out(uint16_t addr, uint8_t val, void *p)
// pclog("PC1512 out %04X %02X %04X:%04X\n",addr,val,CS,pc);
switch (addr)
{
case 0x3d4:
case 0x3d0: case 0x3d2: case 0x3d4: case 0x3d6:
pc1512->crtcreg = val & 31;
return;
case 0x3d5:
case 0x3d1: case 0x3d3: case 0x3d5: case 0x3d7:
old = pc1512->crtc[pc1512->crtcreg];
pc1512->crtc[pc1512->crtcreg] = val & crtcmask[pc1512->crtcreg];
if (old != val)

View file

@ -60,10 +60,10 @@ void tandy_out(uint16_t addr, uint8_t val, void *p)
// pclog("Tandy OUT %04X %02X\n",addr,val);
switch (addr)
{
case 0x3d4:
case 0x3d0: case 0x3d2: case 0x3d4: case 0x3d6:
tandy->crtcreg = val & 0x1f;
return;
case 0x3d5:
case 0x3d1: case 0x3d3: case 0x3d5: case 0x3d7:
old = tandy->crtc[tandy->crtcreg];
tandy->crtc[tandy->crtcreg] = val & crtcmask[tandy->crtcreg];
if (old != val)

View file

@ -60,10 +60,10 @@ static void tandysl_out(uint16_t addr, uint8_t val, void *p)
// pclog("TandySL OUT %04X %02X\n",addr,val);
switch (addr)
{
case 0x3d4:
case 0x3d0: case 0x3d2: case 0x3d4: case 0x3d6:
tandy->crtcreg = val & 0x1f;
return;
case 0x3d5:
case 0x3d1: case 0x3d3: case 0x3d5: case 0x3d7:
// pclog("Write CRTC R%02x %02x ",tandy->crtcreg, val);
old = tandy->crtc[tandy->crtcreg];
tandy->crtc[tandy->crtcreg] = val & crtcmask[tandy->crtcreg];