| ... | ... |
@@ -94,6 +94,16 @@ fi |
| 94 | 94 |
|
| 95 | 95 |
if [ $norun = 1 ]; then exit; fi |
| 96 | 96 |
|
| 97 |
+# Test usage |
|
| 98 |
+ |
|
| 99 |
+./bin/uxncli |
|
| 100 |
+./bin/uxnemu |
|
| 101 |
+ |
|
| 102 |
+# Test version |
|
| 103 |
+ |
|
| 104 |
+./bin/uxncli -v |
|
| 105 |
+./bin/uxnemu -v |
|
| 106 |
+ |
|
| 97 | 107 |
./bin/uxnasm projects/software/piano.tal bin/piano.rom |
| 98 | 108 |
|
| 99 | 109 |
./bin/uxnemu -2x bin/piano.rom |
| ... | ... |
@@ -83,11 +83,11 @@ system_connect(Uint8 device, Uint8 ver, Uint16 dei, Uint16 deo) |
| 83 | 83 |
} |
| 84 | 84 |
|
| 85 | 85 |
int |
| 86 |
-system_version(void) |
|
| 86 |
+system_version(char *name, char *date) |
|
| 87 | 87 |
{
|
| 88 | 88 |
int i; |
| 89 |
- printf("Varvara Emulator 1.0\n");
|
|
| 90 |
- printf("Device Version Dei Deo\n", i, dev_vers[i], dei_mask[i], deo_mask[i]);
|
|
| 89 |
+ printf("%s, %s.\n", name, date);
|
|
| 90 |
+ printf("Device Version Dei Deo\n");
|
|
| 91 | 91 |
for(i = 0; i < 0x10; i++) |
| 92 | 92 |
if(dev_vers[i]) |
| 93 | 93 |
printf("%6x %7d %04x %04x\n", i, dev_vers[i], dei_mask[i], deo_mask[i]);
|
| ... | ... |
@@ -16,7 +16,7 @@ WITH REGARD TO THIS SOFTWARE. |
| 16 | 16 |
#define RAM_PAGES 0x10 |
| 17 | 17 |
|
| 18 | 18 |
void system_connect(Uint8 device, Uint8 ver, Uint16 dei, Uint16 deo); |
| 19 |
-int system_version(void); |
|
| 19 |
+int system_version(char *emulator, char *date); |
|
| 20 | 20 |
int system_load(Uxn *u, char *filename); |
| 21 | 21 |
void system_inspect(Uxn *u); |
| 22 | 22 |
int system_error(char *msg, const char *err); |
| ... | ... |
@@ -48,17 +48,18 @@ main(int argc, char **argv) |
| 48 | 48 |
int i = 1; |
| 49 | 49 |
if(i == argc) |
| 50 | 50 |
return system_error("usage", "uxncli [-v] file.rom [args..]");
|
| 51 |
- /* Boot Varvara */ |
|
| 51 |
+ /* Connect Varvara */ |
|
| 52 | 52 |
system_connect(0x0, SYSTEM_VERSION, SYSTEM_DEIMASK, SYSTEM_DEOMASK); |
| 53 | 53 |
system_connect(0x1, CONSOLE_VERSION, CONSOLE_DEIMASK, CONSOLE_DEOMASK); |
| 54 | 54 |
system_connect(0xa, FILE_VERSION, FILE_DEIMASK, FILE_DEOMASK); |
| 55 | 55 |
system_connect(0xb, FILE_VERSION, FILE_DEIMASK, FILE_DEOMASK); |
| 56 | 56 |
system_connect(0xc, DATETIME_VERSION, DATETIME_DEIMASK, DATETIME_DEOMASK); |
| 57 |
- if(!uxn_boot(&u, (Uint8 *)calloc(0x10000 * RAM_PAGES, sizeof(Uint8)))) |
|
| 58 |
- return system_error("Boot", "Failed");
|
|
| 59 | 57 |
/* Read flags */ |
| 60 | 58 |
if(argv[i][0] == '-' && argv[i][1] == 'v') |
| 61 |
- return system_version(); |
|
| 59 |
+ return system_version("Uxncli - Console Varvara Emulator", "8 Aug 2023");
|
|
| 60 |
+ /* Continue.. */ |
|
| 61 |
+ if(!uxn_boot(&u, (Uint8 *)calloc(0x10000 * RAM_PAGES, sizeof(Uint8)))) |
|
| 62 |
+ return system_error("Boot", "Failed");
|
|
| 62 | 63 |
/* Load rom */ |
| 63 | 64 |
if(!system_load(&u, argv[i++])) |
| 64 | 65 |
return system_error("Load", "Failed");
|
| ... | ... |
@@ -251,19 +251,6 @@ emu_init(void) |
| 251 | 251 |
SDL_SetRenderDrawColor(emu_renderer, 0x00, 0x00, 0x00, 0xff); |
| 252 | 252 |
ms_interval = SDL_GetPerformanceFrequency() / 1000; |
| 253 | 253 |
deadline_interval = ms_interval * TIMEOUT_MS; |
| 254 |
- /* connect devices */ |
|
| 255 |
- system_connect(0x0, SYSTEM_VERSION, SYSTEM_DEIMASK, SYSTEM_DEOMASK); |
|
| 256 |
- system_connect(0x1, CONSOLE_VERSION, CONSOLE_DEIMASK, CONSOLE_DEOMASK); |
|
| 257 |
- system_connect(0x2, SCREEN_VERSION, SCREEN_DEIMASK, SCREEN_DEOMASK); |
|
| 258 |
- system_connect(0x3, AUDIO_VERSION, AUDIO_DEIMASK, AUDIO_DEOMASK); |
|
| 259 |
- system_connect(0x4, AUDIO_VERSION, AUDIO_DEIMASK, AUDIO_DEOMASK); |
|
| 260 |
- system_connect(0x5, AUDIO_VERSION, AUDIO_DEIMASK, AUDIO_DEOMASK); |
|
| 261 |
- system_connect(0x6, AUDIO_VERSION, AUDIO_DEIMASK, AUDIO_DEOMASK); |
|
| 262 |
- system_connect(0x8, CONTROL_VERSION, CONTROL_DEIMASK, CONTROL_DEOMASK); |
|
| 263 |
- system_connect(0x9, MOUSE_VERSION, MOUSE_DEIMASK, MOUSE_DEOMASK); |
|
| 264 |
- system_connect(0xa, FILE_VERSION, FILE_DEIMASK, FILE_DEOMASK); |
|
| 265 |
- system_connect(0xb, FILE_VERSION, FILE_DEIMASK, FILE_DEOMASK); |
|
| 266 |
- system_connect(0xc, DATETIME_VERSION, DATETIME_DEIMASK, DATETIME_DEOMASK); |
|
| 267 | 254 |
return 1; |
| 268 | 255 |
} |
| 269 | 256 |
|
| ... | ... |
@@ -517,13 +504,31 @@ main(int argc, char **argv) |
| 517 | 504 |
{
|
| 518 | 505 |
Uxn u = {0};
|
| 519 | 506 |
int i = 1; |
| 507 |
+ if(i == argc) |
|
| 508 |
+ return system_error("usage", "uxnemu [-v][-2x][-3x] file.rom [args...]");
|
|
| 509 |
+ /* Connect Varvara */ |
|
| 510 |
+ system_connect(0x0, SYSTEM_VERSION, SYSTEM_DEIMASK, SYSTEM_DEOMASK); |
|
| 511 |
+ system_connect(0x1, CONSOLE_VERSION, CONSOLE_DEIMASK, CONSOLE_DEOMASK); |
|
| 512 |
+ system_connect(0x2, SCREEN_VERSION, SCREEN_DEIMASK, SCREEN_DEOMASK); |
|
| 513 |
+ system_connect(0x3, AUDIO_VERSION, AUDIO_DEIMASK, AUDIO_DEOMASK); |
|
| 514 |
+ system_connect(0x4, AUDIO_VERSION, AUDIO_DEIMASK, AUDIO_DEOMASK); |
|
| 515 |
+ system_connect(0x5, AUDIO_VERSION, AUDIO_DEIMASK, AUDIO_DEOMASK); |
|
| 516 |
+ system_connect(0x6, AUDIO_VERSION, AUDIO_DEIMASK, AUDIO_DEOMASK); |
|
| 517 |
+ system_connect(0x8, CONTROL_VERSION, CONTROL_DEIMASK, CONTROL_DEOMASK); |
|
| 518 |
+ system_connect(0x9, MOUSE_VERSION, MOUSE_DEIMASK, MOUSE_DEOMASK); |
|
| 519 |
+ system_connect(0xa, FILE_VERSION, FILE_DEIMASK, FILE_DEOMASK); |
|
| 520 |
+ system_connect(0xb, FILE_VERSION, FILE_DEIMASK, FILE_DEOMASK); |
|
| 521 |
+ system_connect(0xc, DATETIME_VERSION, DATETIME_DEIMASK, DATETIME_DEOMASK); |
|
| 522 |
+ /* Read flags */ |
|
| 523 |
+ if(argv[i][0] == '-' && argv[i][1] == 'v') |
|
| 524 |
+ return system_version("Uxnemu - Graphical Varvara Emulator", "8 Aug 2023");
|
|
| 525 |
+ if(strcmp(argv[i], "-2x") == 0 || strcmp(argv[i], "-3x") == 0) |
|
| 526 |
+ set_zoom(argv[i++][1] - '0', 0); |
|
| 527 |
+ /* Continue.. */ |
|
| 520 | 528 |
if(!emu_init()) |
| 521 | 529 |
return system_error("Init", "Failed to initialize emulator.");
|
| 522 | 530 |
/* default zoom */ |
| 523 |
- if(argc < 2) |
|
| 524 |
- return system_error("usage", "uxnemu [-2x][-3x] file.rom [args...]");
|
|
| 525 |
- if(strcmp(argv[i], "-2x") == 0 || strcmp(argv[i], "-3x") == 0) |
|
| 526 |
- set_zoom(argv[i++][1] - '0', 0); |
|
| 531 |
+ |
|
| 527 | 532 |
/* load rom */ |
| 528 | 533 |
rom_path = argv[i++]; |
| 529 | 534 |
if(!emu_start(&u, rom_path, argc - i)) |