... | ... |
@@ -48,12 +48,15 @@ |
48 | 48 |
|0140 ;Keys { key 1 } |
49 | 49 |
|0150 ;Mouse { x 2 y 2 state 1 chord 1 } |
50 | 50 |
|0160 ;File { pad 8 name 2 length 2 load 2 save 2 } |
51 |
-|01F0 .RESET .FRAME .ERROR ( vectors ) |
|
52 | 51 |
|01F8 [ ed0f 3d0f 3d0f ] ( palette ) |
53 | 52 |
|
53 |
+|0200 ,RESET JMP2 |
|
54 |
+|0204 ,ERROR JMP2 |
|
55 |
+|0208 ,FRAME JMP2 |
|
56 |
+ |
|
54 | 57 |
( program ) |
55 | 58 |
|
56 |
-|0200 @RESET |
|
59 |
+@RESET |
|
57 | 60 |
|
58 | 61 |
( load file ) |
59 | 62 |
,filepath ,load-file JSR2 |
... | ... |
@@ -37,12 +37,15 @@ |
37 | 37 |
|0140 ;Keys { key 1 } |
38 | 38 |
|0150 ;Mouse { x 2 y 2 state 1 chord 1 change 1 } |
39 | 39 |
|0160 ;File { pad 8 name 2 length 2 load 2 save 2 } |
40 |
-|01F0 .RESET .FRAME .ERROR ( vectors ) |
|
41 | 40 |
|01F8 [ e0fc 30cc 30ac ] ( palette ) |
42 | 41 |
|
42 |
+|0200 ,RESET JMP2 |
|
43 |
+|0204 ,ERROR JMP2 |
|
44 |
+|0208 ,FRAME JMP2 |
|
45 |
+ |
|
43 | 46 |
( program ) |
44 | 47 |
|
45 |
-|0200 @RESET |
|
48 |
+@RESET |
|
46 | 49 |
|
47 | 50 |
~Screen.width 2/ #008a SUB2 =bankview.x |
48 | 51 |
~Screen.height 2/ #003f SUB2 =bankview.y |
... | ... |
@@ -15,10 +15,13 @@ |
15 | 15 |
|0110 ;Screen { width 2 height 2 pad 4 x 2 y 2 color 1 } |
16 | 16 |
|0120 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } |
17 | 17 |
|0190 ;DateTime { year 2 month 1 day 1 hour 1 minute 1 second 1 dow 1 doy 2 isdst 1 pad 4 get 1 } |
18 |
-|01F0 .RESET .FRAME .ERROR ( vectors ) |
|
19 | 18 |
|01F8 [ 13fd 1ef3 1bf2 ] ( palette ) |
20 | 19 |
|
21 |
-|0200 @RESET |
|
20 |
+|0200 ,RESET JMP2 |
|
21 |
+|0204 ,ERROR JMP2 |
|
22 |
+|0208 ,FRAME JMP2 |
|
23 |
+ |
|
24 |
+@RESET |
|
22 | 25 |
#01 =fps.current |
23 | 26 |
|
24 | 27 |
#000c |
... | ... |
@@ -56,12 +56,15 @@ |
56 | 56 |
|0140 ;Keys { key 1 } |
57 | 57 |
|0150 ;Mouse { x 2 y 2 state 1 chord 1 } |
58 | 58 |
|0160 ;File { pad 8 name 2 length 2 load 2 save 2 } |
59 |
-|01F0 .RESET .FRAME .ERROR ( vectors ) |
|
60 | 59 |
|01F8 [ e0fd 30fd 30fd ] ( palette ) |
61 | 60 |
|
61 |
+|0200 ,RESET JMP2 |
|
62 |
+|0204 ,ERROR JMP2 |
|
63 |
+|0208 ,FRAME JMP2 |
|
64 |
+ |
|
62 | 65 |
( program ) |
63 | 66 |
|
64 |
-|0200 @RESET |
|
67 |
+@RESET |
|
65 | 68 |
|
66 | 69 |
( default canvas ) |
67 | 70 |
#002a =canvas.w #001a =canvas.h |
... | ... |
@@ -93,11 +93,11 @@ int |
93 | 93 |
start(Uxn *u) |
94 | 94 |
{ |
95 | 95 |
printf("RESET --------\n"); |
96 |
- if(!evaluxn(u, u->vreset)) |
|
96 |
+ if(!evaluxn(u, PAGE_VECTORS)) |
|
97 | 97 |
return error("Reset", "Failed"); |
98 | 98 |
printstack(&u->wst); |
99 | 99 |
printf("FRAME --------\n"); |
100 |
- if(!evaluxn(u, u->vframe)) |
|
100 |
+ if(!evaluxn(u, PAGE_VECTORS + 0x08)) |
|
101 | 101 |
return error("Frame", "Failed"); |
102 | 102 |
printstack(&u->wst); |
103 | 103 |
return 1; |
... | ... |
@@ -424,6 +424,7 @@ datetime_poke(Uxn *u, Uint16 ptr, Uint8 b0, Uint8 b1) |
424 | 424 |
Uint8 *m = u->ram.dat; |
425 | 425 |
time_t seconds = time(NULL); |
426 | 426 |
struct tm *t = localtime(&seconds); |
427 |
+ (void)b0; |
|
427 | 428 |
t->tm_year += 1900; |
428 | 429 |
m[ptr + 0] = (t->tm_year & 0xff00) >> 8; |
429 | 430 |
m[ptr + 1] = t->tm_year & 0xff; |
... | ... |
@@ -465,7 +466,7 @@ int |
465 | 466 |
start(Uxn *u) |
466 | 467 |
{ |
467 | 468 |
int ticknext = 0; |
468 |
- evaluxn(u, u->vreset); |
|
469 |
+ evaluxn(u, PAGE_VECTORS); |
|
469 | 470 |
loadtheme(u->ram.dat + PAGE_DEVICE + 0x00f8); |
470 | 471 |
if(screen.reqdraw) |
471 | 472 |
redraw(pixels, u); |
... | ... |
@@ -490,7 +491,7 @@ start(Uxn *u) |
490 | 491 |
break; |
491 | 492 |
} |
492 | 493 |
} |
493 |
- evaluxn(u, u->vframe); |
|
494 |
+ evaluxn(u, PAGE_VECTORS + 0x08); |
|
494 | 495 |
if(screen.reqdraw) |
495 | 496 |
redraw(pixels, u); |
496 | 497 |
} |
... | ... |
@@ -188,14 +188,7 @@ loaduxn(Uxn *u, char *filepath) |
188 | 188 |
if(!(f = fopen(filepath, "rb"))) |
189 | 189 |
return haltuxn(u, "Missing input rom.", 0); |
190 | 190 |
fread(u->ram.dat, sizeof(u->ram.dat), 1, f); |
191 |
- u->vreset = mempeek16(u, PAGE_DEVICE + 0x00f0); |
|
192 |
- u->vframe = mempeek16(u, PAGE_DEVICE + 0x00f2); |
|
193 |
- u->verror = mempeek16(u, PAGE_DEVICE + 0x00f4); |
|
194 |
- printf("Uxn loaded[%s] vrst:%04x vfrm:%04x verr:%04x.\n", |
|
195 |
- filepath, |
|
196 |
- u->vreset, |
|
197 |
- u->vframe, |
|
198 |
- u->verror); |
|
191 |
+ printf("Uxn loaded[%s].\n", filepath); |
|
199 | 192 |
return 1; |
200 | 193 |
} |
201 | 194 |
|
... | ... |
@@ -19,6 +19,7 @@ typedef signed short Sint16; |
19 | 19 |
#define FLAG_HALT 0x01 |
20 | 20 |
#define FLAG_RETURN 0x04 |
21 | 21 |
#define PAGE_DEVICE 0x0100 |
22 |
+#define PAGE_VECTORS 0x0200 |
|
22 | 23 |
|
23 | 24 |
typedef struct { |
24 | 25 |
Uint8 ptr, error; |
... | ... |
@@ -39,7 +40,7 @@ typedef struct Device { |
39 | 40 |
|
40 | 41 |
typedef struct Uxn { |
41 | 42 |
Uint8 literal, status, devices; |
42 |
- Uint16 counter, vreset, vframe, verror; |
|
43 |
+ Uint16 counter; |
|
43 | 44 |
Stack wst, rst, *src, *dst; |
44 | 45 |
Memory ram; |
45 | 46 |
Device dev[16]; |