... | ... |
@@ -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++) { |