~rabbits/uxn-playdate

e08423f74bb0c135daee60e7c186e5d3ae22a1e8 — Devine Lu Linvega 12 days ago 09ad42a
Removed GETVEC macro
2 files changed, 10 insertions(+), 16 deletions(-)

M src/main.c
M src/uxn.h
M src/main.c => src/main.c +10 -9
@@ 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;
}


M src/uxn.h => src/uxn.h +0 -7
@@ 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;