~rabbits/uxn-playdate

c455a03ed77434e30322df435a4ceb579cdce17b — Devine Lu Linvega 12 days ago 6327979
Use macros from uxn.h in main.c
3 files changed, 11 insertions(+), 12 deletions(-)

M src/main.c
M src/uxn.c
M src/uxn.h
M src/main.c => src/main.c +0 -7
@@ 3,13 3,6 @@
#include "devices/apu.h"
#include "devices/ppu.h"

/* clang-format off */

#define POKE16(d, v) { (d)[0] = (v) >> 8; (d)[1] = (v); }
#define PEEK16(d) ((d)[0] << 8 | (d)[1])

/* clang-format on */

#define RAM_PAGES 0x10
#define POLYPHONY 4
#define BOOT_ROM_FILENAME "boot.rom"

M src/uxn.c => src/uxn.c +4 -5
@@ 27,8 27,7 @@ WITH REGARD TO THIS SOFTWARE.
#define POP(o) { if(m2) { POP16(o) } else { POP8(o) } }

#define POKE(x, y) { if(m2) { t = (y); u->ram[(x)] = t >> 8; u->ram[(x) + 1] = t; } else { u->ram[(x)] = (y); } }
#define PEEK16(o, x) { o = (u->ram[(x)] << 8) | u->ram[(x) + 1]; }
#define PEEK(o, x) { if(m2) PEEK16(o, x) else o = u->ram[(x)]; }
#define PEEK(o, x) { if(m2) { o = PEEK16(u->ram + x); } else o = u->ram[(x)]; }

#define DEVR(o, x) { o = u->dei(u, x); if(m2) o = (o << 8) | u->dei(u, (x) + 1); }
#define DEVW(x, y) { if(m2) { u->deo(u, (x), (y) >> 8); u->deo(u, (x) + 1, (y)); } else { u->deo(u, x, (y)); } }


@@ 55,12 54,12 @@ uxn_eval(Uxn *u, Uint16 pc)
		/* Immediate */
		case -0x0: /* BRK */ return 1;
		case -0x1: /* JCI */ POP8(b) if(!b) { pc += 2; break; }
		case -0x2: /* JMI */ PEEK16(a, pc) pc += a + 2; break;
		case -0x3: /* JSI */ s = u->rst; PUSH16(pc + 2) PEEK16(a, pc) pc += a + 2; break;
		case -0x2: /* JMI */ pc += PEEK16(u->ram + pc) + 2; break;
		case -0x3: /* JSI */ s = u->rst; PUSH16(pc + 2) pc += PEEK16(u->ram + pc) + 2; break;
		case -0x4: /* LIT */
		case -0x6: /* LITr */ a = u->ram[pc++]; PUSH8(a) break;
		case -0x5: /* LIT2 */
		case -0x7: /* LIT2r */ PEEK16(a, pc) PUSH16(a) pc += 2; break;
		case -0x7: /* LIT2r */ PUSH16(PEEK16(u->ram + pc)) pc += 2; break;
		/* ALU */
		case 0x01: /* INC */ POP(a) PUSH(a + 1) break;
		case 0x02: /* POP */ POP(a) break;

M src/uxn.h => src/uxn.h +7 -0
@@ 11,6 11,13 @@ WITH REGARD TO THIS SOFTWARE.

#define PAGE_PROGRAM 0x0100

/* clang-format off */

#define POKE16(d, v) { (d)[0] = (v) >> 8; (d)[1] = (v); }
#define PEEK16(d) ((d)[0] << 8 | (d)[1])

/* clang-format on */

typedef unsigned char Uint8;
typedef signed char Sint8;
typedef unsigned short Uint16;