@@ 3,6 3,7 @@
#include "devices/apu.h"
#include "devices/ppu.h"
+#define POKE16(d, v) { (d)[0] = (v) >> 8; (d)[1] = (v); }
#define PEEK16(d) ((d)[0] << 8 | (d)[1])
#define RAM_PAGES 0x10
#define POLYPHONY 4
@@ 109,8 110,8 @@ screen_deo(Uint8 *d, Uint8 port)
Uint16 x = PEEK16(d + 0x8), y = PEEK16(d + 0xa);
Uint8 fg = !!(d[0xe] & 0x40);
ppu_pixel(&ppu, fg, x, y, d[0xe] & 0x3);
- if(d[0x6] & 0x01) POKDEV(0x8, x + 1); /* auto x+1 */
- if(d[0x6] & 0x02) POKDEV(0xa, y + 1); /* auto y+1 */
+ if(d[0x6] & 0x01) POKE16(d+0x8, x + 1); /* auto x+1 */
+ if(d[0x6] & 0x02) POKE16(d+0xa, y + 1); /* auto y+1 */
pd->graphics->markUpdatedRows(y, y);
break;
}
@@ 129,9 130,9 @@ screen_deo(Uint8 *d, Uint8 port)
screen_blit(&ppu, fg, x + dy * i, y + dx * i, &u.ram[addr], d[0xf] & 0xf, d[0xf] & 0x10, d[0xf] & 0x20, twobpp);
addr += (d[0x6] & 0x04) << (1 + twobpp);
}
- POKDEV(0xc, addr); /* auto addr+length */
- POKDEV(0x8, x + dx); /* auto x+8 */
- POKDEV(0xa, y + dy); /* auto y+8 */
+ POKE16(d+0xc, addr); /* auto addr+length */
+ POKE16(d+0x8, x + dx); /* auto x+8 */
+ POKE16(d+0xa, y + dy); /* auto y+8 */
pd->graphics->markUpdatedRows(y, y + 7 + n * 8);
break;
}
@@ 258,13 259,13 @@ update_controller(lua_State *L)
state |= !!(current & 0x01) << 0x6;
state |= !!(current & 0x02) << 0x7;
u.dev[0x82] = state;
- uxn_eval(&u, GETVEC(&u.dev[0x80]));
+ uxn_eval(&u, PEEK16(&u.dev[0x80]));
}
// Crank
unsigned char crank = pd->system->getCrankChange();
if(crank) {
u.dev[0x9d] = crank;
- uxn_eval(&u, GETVEC(&u.dev[0x90]));
+ uxn_eval(&u, PEEK16(&u.dev[0x90]));
u.dev[0x9d] = 0x00;
}
return 0;
@@ 275,14 276,14 @@ update_mouse(lua_State *L)
int i;
for(i = 0; i < 5; ++i)
u.dev[0x92 + i] = pd->lua->getArgInt(i + 1);
- uxn_eval(&u, GETVEC(&u.dev[0x90]));
+ uxn_eval(&u, PEEK16(&u.dev[0x90]));
return 0;
}
static int
update_screen(lua_State *L)
{
- uxn_eval(&u, GETVEC(&u.dev[0x20]));
+ uxn_eval(&u, PEEK16(&u.dev[0x20]));
return 0;
}
@@ 17,13 17,6 @@ typedef unsigned int Uint32;
#define PAGE_PROGRAM 0x0100
-/* clang-format off */
-
-#define GETVEC(d) ((d)[0] << 8 | (d)[1])
-#define POKDEV(x, y) { d[(x)] = (y) >> 8; d[(x) + 1] = (y); }
-
-/* clang-format on */
-
typedef struct {
Uint8 dat[255], ptr;
} Stack;