| ... | ... |
@@ -215,3 +215,15 @@ file_dei(Device *d, Uint8 port) |
| 215 | 215 |
} |
| 216 | 216 |
return d->dat[port]; |
| 217 | 217 |
} |
| 218 |
+ |
|
| 219 |
+/* Boot */ |
|
| 220 |
+ |
|
| 221 |
+int |
|
| 222 |
+load_rom(Uxn *u, char *filename) |
|
| 223 |
+{
|
|
| 224 |
+ int ret; |
|
| 225 |
+ file_init(uxn_file, filename, strlen(filename) + 1); |
|
| 226 |
+ ret = file_read(uxn_file, &u->ram[PAGE_PROGRAM], 0x10000 - PAGE_PROGRAM); |
|
| 227 |
+ reset(uxn_file); |
|
| 228 |
+ return ret; |
|
| 229 |
+} |
| ... | ... |
@@ -74,19 +74,6 @@ run(Uxn *u) |
| 74 | 74 |
} |
| 75 | 75 |
} |
| 76 | 76 |
|
| 77 |
-static int |
|
| 78 |
-load(Uxn *u, char *filepath) |
|
| 79 |
-{
|
|
| 80 |
- FILE *f; |
|
| 81 |
- int r; |
|
| 82 |
- if(!(f = fopen(filepath, "rb"))) return 0; |
|
| 83 |
- r = fread(u->ram + PAGE_PROGRAM, 1, 0x10000 - PAGE_PROGRAM, f); |
|
| 84 |
- fclose(f); |
|
| 85 |
- if(r < 1) return 0; |
|
| 86 |
- fprintf(stderr, "Loaded %s\n", filepath); |
|
| 87 |
- return 1; |
|
| 88 |
-} |
|
| 89 |
- |
|
| 90 | 77 |
int |
| 91 | 78 |
uxn_interrupt(void) |
| 92 | 79 |
{
|
| ... | ... |
@@ -126,8 +113,9 @@ main(int argc, char **argv) |
| 126 | 113 |
return error("Usage", "uxncli game.rom args");
|
| 127 | 114 |
if(!start(&u)) |
| 128 | 115 |
return error("Start", "Failed");
|
| 129 |
- if(!load(&u, argv[1])) |
|
| 116 |
+ if(!load_rom(&u, argv[1])) |
|
| 130 | 117 |
return error("Load", "Failed");
|
| 118 |
+ fprintf(stderr, "Loaded %s\n", argv[1]); |
|
| 131 | 119 |
if(!uxn_eval(&u, PAGE_PROGRAM)) |
| 132 | 120 |
return error("Init", "Failed");
|
| 133 | 121 |
for(i = 2; i < argc; i++) {
|