... | ... |
@@ -36,14 +36,13 @@ |
36 | 36 |
|
37 | 37 |
@center |
38 | 38 |
&x $2 &y $2 |
39 |
- |
|
40 | 39 |
@modal |
41 | 40 |
&x $2 &y $2 |
42 | 41 |
|
43 | 42 |
( init ) |
44 | 43 |
|
45 | 44 |
|0100 ( -> ) |
46 |
- |
|
45 |
+ |
|
47 | 46 |
.Screen/width DEI2 2// |
48 | 47 |
DUP2 .center/x STZ2 |
49 | 48 |
MODALW #31 SFT2 -- .modal/x STZ2 |
... | ... |
@@ -51,11 +50,17 @@ |
51 | 50 |
DUP2 .center/y STZ2 |
52 | 51 |
MODALH #31 SFT2 -- .modal/y STZ2 |
53 | 52 |
|
53 |
+ ( vectors ) |
|
54 |
+ ;on-error .System/vector DEO2 |
|
55 |
+ ;on-frame .Screen/vector DEO2 |
|
56 |
+ |
|
57 |
+BRK |
|
58 |
+ |
|
59 |
+@on-frame ( -> ) |
|
60 |
+ |
|
54 | 61 |
;draw-cross JSR2 |
55 | 62 |
;draw-stacks JSR2 |
56 | 63 |
|
57 |
- EADDR LDA2 #0000 !! ;on-error JCN2 |
|
58 |
- |
|
59 | 64 |
BRK |
60 | 65 |
|
61 | 66 |
@on-error ( -> ) |
... | ... |
@@ -31,7 +31,7 @@ uxn_halt(Uxn *u, Uint8 error, Uint16 addr) |
31 | 31 |
Uint16 vec = d->vector; |
32 | 32 |
DEVPOKE16(0x4, addr); |
33 | 33 |
d->dat[0x6] = error; |
34 |
- uxn_eval(&supervisor, PAGE_PROGRAM); |
|
34 |
+ uxn_eval(&supervisor, supervisor.dev[0].vector); |
|
35 | 35 |
if(vec) { |
36 | 36 |
d->vector = 0; /* need to rearm to run System/vector again */ |
37 | 37 |
if(error != 2) /* working stack overflow has special treatment */ |
... | ... |
@@ -309,6 +309,8 @@ start(Uxn *u, char *rom) |
309 | 309 |
uxn_port(&supervisor, 0x1, nil_dei, console_deo); |
310 | 310 |
uxn_port(&supervisor, 0x2, screen_dei, screen_deo); |
311 | 311 |
|
312 |
+ uxn_eval(&supervisor, PAGE_PROGRAM); |
|
313 |
+ |
|
312 | 314 |
if(!uxn_eval(u, PAGE_PROGRAM)) |
313 | 315 |
return error("Boot", "Failed to start rom."); |
314 | 316 |
|
... | ... |
@@ -485,7 +487,7 @@ run(Uxn *u) |
485 | 487 |
console_input(u, event.cbutton.button); |
486 | 488 |
} |
487 | 489 |
if(devsystem->dat[0xe]) |
488 |
- uxn_eval(&supervisor, PAGE_PROGRAM); |
|
490 |
+ uxn_eval(&supervisor, supervisor.dev[2].vector); |
|
489 | 491 |
uxn_eval(u, devscreen->vector); |
490 | 492 |
if(uxn_screen.fg.changed || uxn_screen.bg.changed || devsystem->dat[0xe]) |
491 | 493 |
redraw(); |