Mercurial > repos > blastem
comparison vdp.c @ 475:50e0cb475294
Don't allow register writes to regs above when in Mode 4
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 15 Sep 2013 23:40:18 -0700 |
parents | e128e55710bd |
children | 5d7bc113653b |
comparison
equal
deleted
inserted
replaced
474:e128e55710bd | 475:50e0cb475294 |
---|---|
1475 } | 1475 } |
1476 } else { | 1476 } else { |
1477 if ((value & 0xC000) == 0x8000) { | 1477 if ((value & 0xC000) == 0x8000) { |
1478 //Register write | 1478 //Register write |
1479 uint8_t reg = (value >> 8) & 0x1F; | 1479 uint8_t reg = (value >> 8) & 0x1F; |
1480 if (reg < VDP_REGS) { | 1480 if (reg < (context->regs[REG_MODE_2] & BIT_MODE_5 ? VDP_REGS : 0xA)) { |
1481 //printf("register %d set to %X\n", reg, value & 0xFF); | 1481 //printf("register %d set to %X\n", reg, value & 0xFF); |
1482 context->regs[reg] = value; | 1482 context->regs[reg] = value; |
1483 if (reg == REG_MODE_2) { | 1483 if (reg == REG_MODE_2) { |
1484 //printf("Display is now %s\n", (context->regs[REG_MODE_2] & DISPLAY_ENABLE) ? "enabled" : "disabled"); | 1484 //printf("Display is now %s\n", (context->regs[REG_MODE_2] & DISPLAY_ENABLE) ? "enabled" : "disabled"); |
1485 } | 1485 } |