uint32_t e100_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int x, y; int vramad; uint8_t *chardata; uint8_t charcode; LOGSCREEN("%s()\n", FUNCNAME); vramad = 0; for (int row = 0; row < 32 * 8; row += 8) { for (int col = 0; col < 32 * 8; col += 8) { /* look up the character data */ charcode = m_vram[vramad]; if (VERBOSE && charcode != 0x20 && charcode != 0) LOGSCREEN("\n %c at X=%d Y=%d: ", charcode, col, row); chardata = &m_char_ptr[(charcode * 8)]; /* plot the character */ for (y = 0; y < 8; y++) { if (VERBOSE && charcode != 0x20 && charcode != 0) LOGSCREEN("\n %02x: ", *chardata); for (x = 0; x < 8; x++) { if (VERBOSE && charcode != 0x20 && charcode != 0) LOGSCREEN(" %02x: ", *chardata); bitmap.pix16(row + y, col + x) = (*chardata & (1 << x)) ? 1 : 0; } chardata++; } vramad++; } if (VERBOSE && charcode != 0x20 && charcode != 0) LOGSCREEN("\n"); } return 0; }
INPUT_PORTS_END /* Video TODO: find and understand the char table within main rom */ uint32_t kron180_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int x, y; int vramad; uint8_t *chardata; uint8_t charcode; LOGSCREEN(("%s()\n", FUNCNAME)); vramad = 0; for (int row = 0; row < 25 * 8; row += 8) { for (int col = 0; col < 80 * 8; col += 8) { /* look up the character data */ charcode = m_vram[vramad]; if (VERBOSE && charcode != 0x20 && charcode != 0) LOGSCREEN(("\n %c at X=%d Y=%d: ", charcode, col, row)); chardata = &m_char_ptr[(charcode * 8) + 8]; /* plot the character */ for (y = 0; y < 8; y++) { chardata--; if (VERBOSE && charcode != 0x20 && charcode != 0) LOGSCREEN(("\n %02x: ", *chardata)); for (x = 0; x < 8; x++) { if (VERBOSE && charcode != 0x20 && charcode != 0) LOGSCREEN((" %02x: ", *chardata)); bitmap.pix16(row + (8 - y), col + (8 - x)) = (*chardata & (1 << x)) ? 1 : 0; } } vramad += 2; } if (VERBOSE && charcode != 0x20 && charcode != 0) LOGSCREEN(("\n")); vramad += 96; // Each row is aligned at a 128 byte boundary } return 0; }
uint32_t can09_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int x, y; #if 0 int vramad; UINT8 *chardata; UINT8 charcode; #endif LOGSCREEN("%s()\n", FUNCNAME); // vramad = 0; for (int row = 0; row < 72 * 8; row += 8) { for (int col = 0; col < 64 * 8; col += 8) { #if 0 /* look up the character data */ charcode = m_vram[vramad]; if (VERBOSE && charcode != 0x20 && charcode != 0) LOGSCREEN("\n %c at X=%d Y=%d: ", charcode, col, row); chardata = &m_char_ptr[(charcode * 8)]; #endif /* plot the character */ for (y = 0; y < 8; y++) { // if (VERBOSE && charcode != 0x20 && charcode != 0) LOGSCREEN("\n %02x: ", *chardata); for (x = 0; x < 8; x++) { // if (VERBOSE && charcode != 0x20 && charcode != 0) LOGSCREEN(" %02x: ", *chardata); bitmap.pix16(row + y, col + x) = x & 1; //(*chardata & (1 << x)) ? 1 : 0; } // chardata++; } // vramad++; } // if (VERBOSE && charcode != 0x20 && charcode != 0) LOGSCREEN("\n"); } return 0; }