| ... | ... |
@@ -17,6 +17,7 @@ clang-format -i uxn.c |
| 17 | 17 |
clang-format -i emulator.c |
| 18 | 18 |
rm -f ./bin/emulator |
| 19 | 19 |
cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined uxn.c emulator.c -L/usr/local/lib -lSDL2 -o bin/emulator |
| 20 |
+cc -std=c89 -DNO_SDL -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined uxn.c emulator.c -L/usr/local/lib -lSDL2 -o bin/emulator-nosdl |
|
| 20 | 21 |
# cc uxn.c emulator.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -o bin/emulator |
| 21 | 22 |
|
| 22 | 23 |
# run |
| ... | ... |
@@ -238,6 +238,7 @@ quit(void) |
| 238 | 238 |
int |
| 239 | 239 |
init(void) |
| 240 | 240 |
{
|
| 241 |
+#ifndef NO_SDL |
|
| 241 | 242 |
if(SDL_Init(SDL_INIT_VIDEO) < 0) |
| 242 | 243 |
return error("Init", SDL_GetError());
|
| 243 | 244 |
gWindow = SDL_CreateWindow("Uxn", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WIDTH * ZOOM, HEIGHT * ZOOM, SDL_WINDOW_SHOWN);
|
| ... | ... |
@@ -254,6 +255,7 @@ init(void) |
| 254 | 255 |
clear(pixels); |
| 255 | 256 |
SDL_StartTextInput(); |
| 256 | 257 |
SDL_ShowCursor(SDL_DISABLE); |
| 258 |
+#endif |
|
| 257 | 259 |
screen.bounds.x1 = PAD * 8; |
| 258 | 260 |
screen.bounds.x2 = WIDTH - PAD * 8 - 1; |
| 259 | 261 |
screen.bounds.y1 = PAD * 8; |
| ... | ... |
@@ -429,12 +431,17 @@ ppnil(Uint8 *m, Uint16 ptr, Uint8 b0, Uint8 b1) |
| 429 | 431 |
int |
| 430 | 432 |
start(Uxn *u) |
| 431 | 433 |
{
|
| 434 |
+#ifndef NO_SDL |
|
| 432 | 435 |
int ticknext = 0; |
| 436 |
+#endif |
|
| 433 | 437 |
evaluxn(u, u->vreset); |
| 434 | 438 |
loadtheme(u->ram.dat + PAGE_DEVICE + 0x00f8); |
| 439 |
+#ifndef NO_SDL |
|
| 435 | 440 |
if(screen.reqdraw) |
| 436 | 441 |
redraw(pixels, u); |
| 442 |
+#endif |
|
| 437 | 443 |
while(1) {
|
| 444 |
+#ifndef NO_SDL |
|
| 438 | 445 |
int tick = SDL_GetTicks(); |
| 439 | 446 |
SDL_Event event; |
| 440 | 447 |
if(tick < ticknext) |
| ... | ... |
@@ -455,9 +462,12 @@ start(Uxn *u) |
| 455 | 462 |
break; |
| 456 | 463 |
} |
| 457 | 464 |
} |
| 465 |
+#endif |
|
| 458 | 466 |
evaluxn(u, u->vframe); |
| 467 |
+#ifndef NO_SDL |
|
| 459 | 468 |
if(screen.reqdraw) |
| 460 | 469 |
redraw(pixels, u); |
| 470 |
+#endif |
|
| 461 | 471 |
} |
| 462 | 472 |
} |
| 463 | 473 |
|
| 464 | 474 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,13 @@ |
| 1 |
+#!/bin/bash |
|
| 2 |
+set -e |
|
| 3 |
+EMULATOR=./bin/emulator |
|
| 4 |
+if [ "${1}" = '--no-sdl' ]; then
|
|
| 5 |
+ EMULATOR=./bin/emulator-nosdl |
|
| 6 |
+ shift |
|
| 7 |
+fi |
|
| 8 |
+if [ -z "${1}" ]; then
|
|
| 9 |
+ printf 'usage: %s [--no-sdl] USM_FILE\n' "${0}" >&2
|
|
| 10 |
+ exit 2 |
|
| 11 |
+fi |
|
| 12 |
+./bin/assembler "${1}" bin/boot.rom
|
|
| 13 |
+"${EMULATOR}" bin/boot.rom
|