Browse code

Set Console/type after memory is initialized

Devine Lu Linvega authored on 22/04/2023 21:56:12
Showing 2 changed files
... ...
@@ -52,7 +52,7 @@ main(int argc, char **argv)
52 52
 		return system_error("Boot", "Failed");
53 53
 	if(!system_load(&u, argv[i++]))
54 54
 		return system_error("Load", "Failed");
55
-	u.dev[0x17] = i != argc;
55
+	u.dev[0x17] = argc - i;
56 56
 	if(!uxn_eval(&u, PAGE_PROGRAM))
57 57
 		return u.dev[0x0f] & 0x7f;
58 58
 	for(; i < argc; i++) {
... ...
@@ -244,13 +244,14 @@ init(void)
244 244
 /* Boot */
245 245
 
246 246
 static int
247
-start(Uxn *u, char *rom)
247
+start(Uxn *u, char *rom, int queue)
248 248
 {
249 249
 	free(u->ram);
250 250
 	if(!uxn_boot(u, (Uint8 *)calloc(0x10000 * RAM_PAGES, sizeof(Uint8))))
251 251
 		return system_error("Boot", "Failed to start uxn.");
252 252
 	if(!system_load(u, rom))
253 253
 		return system_error("Boot", "Failed to load rom.");
254
+	u->dev[0x17] = queue;
254 255
 	exec_deadline = SDL_GetPerformanceCounter() + deadline_interval;
255 256
 	if(!uxn_eval(u, PAGE_PROGRAM))
256 257
 		return system_error("Boot", "Failed to eval rom.");
... ...
@@ -287,8 +288,8 @@ static void
287 288
 restart(Uxn *u)
288 289
 {
289 290
 	screen_resize(&uxn_screen, WIDTH, HEIGHT);
290
-	if(!start(u, "launcher.rom"))
291
-		start(u, rom_path);
291
+	if(!start(u, "launcher.rom", 0))
292
+		start(u, rom_path, 0);
292 293
 }
293 294
 
294 295
 static Uint8
... ...
@@ -364,7 +365,7 @@ handle_events(Uxn *u)
364 365
 			redraw();
365 366
 		else if(event.type == SDL_DROPFILE) {
366 367
 			screen_resize(&uxn_screen, WIDTH, HEIGHT);
367
-			start(u, event.drop.file);
368
+			start(u, event.drop.file, 0);
368 369
 			SDL_free(event.drop.file);
369 370
 		}
370 371
 		/* Audio */
... ...
@@ -495,8 +496,8 @@ main(int argc, char **argv)
495 496
 	/* load rom */
496 497
 	if(i == argc)
497 498
 		return system_error("usage", "uxnemu [-2x][-3x] file.rom");
498
-	u.dev[0x17] = i != argc - 1;
499
-	if(!start(&u, argv[i]))
499
+	printf("%d/%d -> %d\n", i, argc, argc - i);
500
+	if(!start(&u, argv[i], argc - i))
500 501
 		return system_error("Start", "Failed");
501 502
 	rom_path = argv[i++];
502 503
 	/* read arguments */