diff --git a/src/uxnemu.c b/src/uxnemu.c index 6f97095..6042ba0 100644 --- a/src/uxnemu.c +++ b/src/uxnemu.c @@ -294,15 +294,17 @@ screen_talk(Device *d, Uint8 b0, Uint8 w) if(w && b0 == 0xe) { Uint16 x = mempeek16(d->dat, 0x8); Uint16 y = mempeek16(d->dat, 0xa); - Uint8 *addr = &d->mem[mempeek16(d->dat, 0xc)]; Layer *layer = d->dat[0xe] >> 4 & 0x1 ? &ppu.fg : &ppu.bg; Uint8 mode = d->dat[0xe] >> 5; if(!mode) putpixel(&ppu, layer, x, y, d->dat[0xe] & 0x3); - else if(mode-- & 0x1) - puticn(&ppu, layer, x, y, addr, d->dat[0xe] & 0xf, mode & 0x2, mode & 0x4); - else - putchr(&ppu, layer, x, y, addr, d->dat[0xe] & 0xf, mode & 0x2, mode & 0x4); + else { + Uint8 *addr = &d->mem[mempeek16(d->dat, 0xc)]; + if(mode-- & 0x1) + puticn(&ppu, layer, x, y, addr, d->dat[0xe] & 0xf, mode & 0x2, mode & 0x4); + else + putchr(&ppu, layer, x, y, addr, d->dat[0xe] & 0xf, mode & 0x2, mode & 0x4); + } reqdraw = 1; } }