| ... | ... |
@@ -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(); |