Switch void context increments from pre to post

This commit is contained in:
Andrew Alderwick 2022-01-04 02:04:09 +00:00
parent 1ce8b9bc27
commit 2a825de2fd
7 changed files with 24 additions and 24 deletions

View File

@ -90,7 +90,7 @@ audio_get_vu(UxnAudio *c)
int i; int i;
Sint32 sum[2] = {0, 0}; Sint32 sum[2] = {0, 0};
if(!c->advance || !c->period) return 0; if(!c->advance || !c->period) return 0;
for(i = 0; i < 2; ++i) { for(i = 0; i < 2; i++) {
if(!c->volume[i]) continue; if(!c->volume[i]) continue;
sum[i] = 1 + envelope(c, c->age) * c->volume[i] / 0x800; sum[i] = 1 + envelope(c, c->age) * c->volume[i] / 0x800;
if(sum[i] > 0xf) sum[i] = 0xf; if(sum[i] > 0xf) sum[i] = 0xf;

View File

@ -127,7 +127,7 @@ file_stat(void *dest, Uint16 len)
{ {
char *basename = strrchr(current_filename, '/'); char *basename = strrchr(current_filename, '/');
if(basename != NULL) if(basename != NULL)
++basename; basename++;
else else
basename = current_filename; basename = current_filename;
return get_entry(dest, len, current_filename, basename, 0); return get_entry(dest, len, current_filename, basename, 0);

View File

@ -56,7 +56,7 @@ static void
screen_blit(UxnScreen *p, Layer *layer, Uint16 x, Uint16 y, Uint8 *sprite, Uint8 color, Uint8 flipx, Uint8 flipy, Uint8 twobpp) screen_blit(UxnScreen *p, Layer *layer, Uint16 x, Uint16 y, Uint8 *sprite, Uint8 color, Uint8 flipx, Uint8 flipy, Uint8 twobpp)
{ {
int v, h, opaque = blending[4][color]; int v, h, opaque = blending[4][color];
for(v = 0; v < 8; ++v) { for(v = 0; v < 8; v++) {
Uint16 c = sprite[v] | (twobpp ? sprite[v + 8] : 0) << 8; Uint16 c = sprite[v] | (twobpp ? sprite[v + 8] : 0) << 8;
for(h = 7; h >= 0; --h, c >>= 1) { for(h = 7; h >= 0; --h, c >>= 1) {
Uint8 ch = (c & 1) | ((c >> 7) & 2); Uint8 ch = (c & 1) | ((c >> 7) & 2);
@ -109,7 +109,7 @@ void
screen_clear(UxnScreen *p, Layer *layer) screen_clear(UxnScreen *p, Layer *layer)
{ {
Uint32 i, size = p->width * p->height; Uint32 i, size = p->width * p->height;
for(i = 0; i < size; ++i) for(i = 0; i < size; i++)
layer->pixels[i] = 0x00; layer->pixels[i] = 0x00;
layer->changed = 1; layer->changed = 1;
} }
@ -118,9 +118,9 @@ void
screen_redraw(UxnScreen *p, Uint32 *pixels) screen_redraw(UxnScreen *p, Uint32 *pixels)
{ {
Uint32 i, size = p->width * p->height, palette[16]; Uint32 i, size = p->width * p->height, palette[16];
for(i = 0; i < 16; ++i) for(i = 0; i < 16; i++)
palette[i] = p->palette[(i >> 2) ? (i >> 2) : (i & 3)]; palette[i] = p->palette[(i >> 2) ? (i >> 2) : (i & 3)];
for(i = 0; i < size; ++i) for(i = 0; i < size; i++)
pixels[i] = palette[p->fg.pixels[i] << 2 | p->bg.pixels[i]]; pixels[i] = palette[p->fg.pixels[i] << 2 | p->bg.pixels[i]];
p->fg.changed = p->bg.changed = 0; p->fg.changed = p->bg.changed = 0;
} }
@ -129,7 +129,7 @@ void
screen_debug(UxnScreen *p, Uint8 *stack, Uint8 wptr, Uint8 rptr, Uint8 *memory) screen_debug(UxnScreen *p, Uint8 *stack, Uint8 wptr, Uint8 rptr, Uint8 *memory)
{ {
Uint8 i, x, y, b; Uint8 i, x, y, b;
for(i = 0; i < 0x20; ++i) { for(i = 0; i < 0x20; i++) {
x = ((i % 8) * 3 + 1) * 8, y = (i / 8 + 1) * 8, b = stack[i]; x = ((i % 8) * 3 + 1) * 8, y = (i / 8 + 1) * 8, b = stack[i];
/* working stack */ /* working stack */
screen_blit(p, &p->fg, x, y, font[(b >> 4) & 0xf], 1 + (wptr == i) * 0x7, 0, 0, 0); screen_blit(p, &p->fg, x, y, font[(b >> 4) & 0xf], 1 + (wptr == i) * 0x7, 0, 0, 0);
@ -144,7 +144,7 @@ screen_debug(UxnScreen *p, Uint8 *stack, Uint8 wptr, Uint8 rptr, Uint8 *memory)
screen_blit(p, &p->fg, 0x8, y + 0x10, font[(rptr >> 4) & 0xf], 0x2, 0, 0, 0); screen_blit(p, &p->fg, 0x8, y + 0x10, font[(rptr >> 4) & 0xf], 0x2, 0, 0, 0);
screen_blit(p, &p->fg, 0x10, y + 0x10, font[rptr & 0xf], 0x2, 0, 0, 0); screen_blit(p, &p->fg, 0x10, y + 0x10, font[rptr & 0xf], 0x2, 0, 0, 0);
/* guides */ /* guides */
for(x = 0; x < 0x10; ++x) { for(x = 0; x < 0x10; x++) {
screen_write(p, &p->fg, x, p->height / 2, 2); screen_write(p, &p->fg, x, p->height / 2, 2);
screen_write(p, &p->fg, p->width - x, p->height / 2, 2); screen_write(p, &p->fg, p->width - x, p->height / 2, 2);
screen_write(p, &p->fg, p->width / 2, p->height - x, 2); screen_write(p, &p->fg, p->width / 2, p->height - x, 2);

View File

@ -60,7 +60,7 @@ uxn_eval(Uxn *u, Uint16 pc)
switch(instr & 0x1f) { switch(instr & 0x1f) {
/* Stack */ /* Stack */
case 0x00: /* LIT */ if(bs) { PEEK16(a, pc) PUSH16(src, a) pc += 2; } case 0x00: /* LIT */ if(bs) { PEEK16(a, pc) PUSH16(src, a) pc += 2; }
else { a = u->ram[pc]; PUSH8(src, a) ++pc; } break; else { a = u->ram[pc]; PUSH8(src, a) pc++; } break;
case 0x01: /* INC */ POP(a) PUSH(src, a + 1) break; case 0x01: /* INC */ POP(a) PUSH(src, a + 1) break;
case 0x02: /* POP */ POP(a) break; case 0x02: /* POP */ POP(a) break;
case 0x03: /* DUP */ POP(a) PUSH(src, a) PUSH(src, a) break; case 0x03: /* DUP */ POP(a) PUSH(src, a) PUSH(src, a) break;
@ -110,7 +110,7 @@ uxn_boot(Uxn *u, Uint8 *memory)
{ {
Uint32 i; Uint32 i;
char *cptr = (char *)u; char *cptr = (char *)u;
for(i = 0; i < sizeof(*u); ++i) for(i = 0; i < sizeof(*u); i++)
cptr[i] = 0x00; cptr[i] = 0x00;
u->ram = memory; u->ram = memory;
return 1; return 1;

View File

@ -57,8 +57,8 @@ static char ops[][4] = {
static int scmp(char *a, char *b, int len) { int i = 0; while(a[i] == b[i]) if(!a[i] || ++i >= len) return 1; return 0; } /* string compare */ static int scmp(char *a, char *b, int len) { int i = 0; while(a[i] == b[i]) if(!a[i] || ++i >= len) return 1; return 0; } /* string compare */
static int sihx(char *s) { int i = 0; char c; while((c = s[i++])) if(!(c >= '0' && c <= '9') && !(c >= 'a' && c <= 'f')) return 0; return i > 1; } /* string is hexadecimal */ static int sihx(char *s) { int i = 0; char c; while((c = s[i++])) if(!(c >= '0' && c <= '9') && !(c >= 'a' && c <= 'f')) return 0; return i > 1; } /* string is hexadecimal */
static int shex(char *s) { int n = 0, i = 0; char c; while((c = s[i++])) if(c >= '0' && c <= '9') n = n * 16 + (c - '0'); else if(c >= 'a' && c <= 'f') n = n * 16 + 10 + (c - 'a'); return n; } /* string to num */ static int shex(char *s) { int n = 0, i = 0; char c; while((c = s[i++])) if(c >= '0' && c <= '9') n = n * 16 + (c - '0'); else if(c >= 'a' && c <= 'f') n = n * 16 + 10 + (c - 'a'); return n; } /* string to num */
static int slen(char *s) { int i = 0; while(s[i]) ++i; return i; } /* string length */ static int slen(char *s) { int i = 0; while(s[i]) i++; return i; } /* string length */
static char *scpy(char *src, char *dst, int len) { int i = 0; while((dst[i] = src[i]) && i < len - 2) ++i; dst[i + 1] = '\0'; return dst; } /* string copy */ static char *scpy(char *src, char *dst, int len) { int i = 0; while((dst[i] = src[i]) && i < len - 2) i++; dst[i + 1] = '\0'; return dst; } /* string copy */
static char *scat(char *dst, const char *src) { char *ptr = dst + slen(dst); while(*src) *ptr++ = *src++; *ptr = '\0'; return dst; } /* string cat */ static char *scat(char *dst, const char *src) { char *ptr = dst + slen(dst); while(*src) *ptr++ = *src++; *ptr = '\0'; return dst; } /* string cat */
/* clang-format on */ /* clang-format on */
@ -82,7 +82,7 @@ static Macro *
findmacro(char *name) findmacro(char *name)
{ {
int i; int i;
for(i = 0; i < p.mlen; ++i) for(i = 0; i < p.mlen; i++)
if(scmp(p.macros[i].name, name, 64)) if(scmp(p.macros[i].name, name, 64))
return &p.macros[i]; return &p.macros[i];
return NULL; return NULL;
@ -92,7 +92,7 @@ static Label *
findlabel(char *name) findlabel(char *name)
{ {
int i; int i;
for(i = 0; i < p.llen; ++i) for(i = 0; i < p.llen; i++)
if(scmp(p.labels[i].name, name, 64)) if(scmp(p.labels[i].name, name, 64))
return &p.labels[i]; return &p.labels[i];
return NULL; return NULL;
@ -102,7 +102,7 @@ static Uint8
findopcode(char *s) findopcode(char *s)
{ {
int i; int i;
for(i = 0; i < 0x20; ++i) { for(i = 0; i < 0x20; i++) {
int m = 0; int m = 0;
if(!scmp(ops[i], s, 3)) if(!scmp(ops[i], s, 3))
continue; continue;
@ -116,7 +116,7 @@ findopcode(char *s)
i |= (1 << 7); /* mode: keep */ i |= (1 << 7); /* mode: keep */
else else
return 0; /* failed to match */ return 0; /* failed to match */
++m; m++;
} }
return i; return i;
} }
@ -331,7 +331,7 @@ parse(char *w, FILE *f)
writeshort(shex(w), 0); writeshort(shex(w), 0);
/* macro */ /* macro */
else if((m = findmacro(w))) { else if((m = findmacro(w))) {
for(i = 0; i < m->len; ++i) for(i = 0; i < m->len; i++)
if(!parse(m->items[i], f)) if(!parse(m->items[i], f))
return 0; return 0;
return 1; return 1;
@ -346,7 +346,7 @@ resolve(void)
{ {
Label *l; Label *l;
int i; int i;
for(i = 0; i < p.rlen; ++i) { for(i = 0; i < p.rlen; i++) {
Reference *r = &p.refs[i]; Reference *r = &p.refs[i];
switch(r->rune) { switch(r->rune) {
case '.': case '.':
@ -399,7 +399,7 @@ static void
review(char *filename) review(char *filename)
{ {
int i; int i;
for(i = 0; i < p.llen; ++i) for(i = 0; i < p.llen; i++)
if(p.labels[i].name[0] >= 'A' && p.labels[i].name[0] <= 'Z') if(p.labels[i].name[0] >= 'A' && p.labels[i].name[0] <= 'Z')
continue; /* Ignore capitalized labels(devices) */ continue; /* Ignore capitalized labels(devices) */
else if(!p.labels[i].refs) else if(!p.labels[i].refs)

View File

@ -32,8 +32,8 @@ inspect(Stack *s, char *name)
{ {
Uint8 x, y; Uint8 x, y;
fprintf(stderr, "\n%s\n", name); fprintf(stderr, "\n%s\n", name);
for(y = 0; y < 0x04; ++y) { for(y = 0; y < 0x04; y++) {
for(x = 0; x < 0x08; ++x) { for(x = 0; x < 0x08; x++) {
Uint8 p = y * 0x08 + x; Uint8 p = y * 0x08 + x;
fprintf(stderr, fprintf(stderr,
p == s->ptr ? "[%02x]" : " %02x ", p == s->ptr ? "[%02x]" : " %02x ",
@ -181,7 +181,7 @@ main(int argc, char **argv)
/* empty */ uxn_port(&u, 0xe, nil_dei, nil_deo); /* empty */ uxn_port(&u, 0xe, nil_dei, nil_deo);
/* empty */ uxn_port(&u, 0xf, nil_dei, nil_deo); /* empty */ uxn_port(&u, 0xf, nil_dei, nil_deo);
for(i = 1; i < argc; ++i) { for(i = 1; i < argc; i++) {
if(!loaded++) { if(!loaded++) {
if(!load(&u, argv[i])) if(!load(&u, argv[i]))
return error("Load", "Failed"); return error("Load", "Failed");

View File

@ -65,7 +65,7 @@ audio_callback(void *u, Uint8 *stream, int len)
int i, running = 0; int i, running = 0;
Sint16 *samples = (Sint16 *)stream; Sint16 *samples = (Sint16 *)stream;
SDL_memset(stream, 0, len); SDL_memset(stream, 0, len);
for(i = 0; i < POLYPHONY; ++i) for(i = 0; i < POLYPHONY; i++)
running += audio_render(&uxn_audio[i], samples, samples + len / 2); running += audio_render(&uxn_audio[i], samples, samples + len / 2);
if(!running) if(!running)
SDL_PauseAudioDevice(audio_id, 1); SDL_PauseAudioDevice(audio_id, 1);
@ -520,7 +520,7 @@ main(int argc, char **argv)
/* set default zoom */ /* set default zoom */
if(SDL_GetCurrentDisplayMode(0, &DM) == 0) if(SDL_GetCurrentDisplayMode(0, &DM) == 0)
set_zoom(DM.w / 1280); set_zoom(DM.w / 1280);
for(i = 1; i < argc; ++i) { for(i = 1; i < argc; i++) {
/* get default zoom from flags */ /* get default zoom from flags */
if(strcmp(argv[i], "-s") == 0) { if(strcmp(argv[i], "-s") == 0) {
if(i < argc - 1) if(i < argc - 1)