... | ... |
@@ -4,11 +4,10 @@ |
4 | 4 |
and has non-zero length, this function does not return, because the new ROM |
5 | 5 |
is executing in its place. |
6 | 6 |
|
7 |
- Both stacks are cleared and all the device vectors are written to zero as a |
|
8 |
- convenience, but the screen is not cleared. All ROMs that use the screen |
|
9 |
- define the palette (usually in the reset vector) so that should clear the |
|
10 |
- screen anyway. All other device bytes are left untouched, so they could |
|
11 |
- introduce a device state to the next ROM that it's not expecting. |
|
7 |
+ The screen and both stacks are cleared and all the device vectors are |
|
8 |
+ written to zero as a convenience. All other device bytes are left |
|
9 |
+ untouched, so they could introduce a device state to the next ROM that |
|
10 |
+ it's not expecting. |
|
12 | 11 |
) |
13 | 12 |
|
14 | 13 |
.File/name DEO2 |
... | ... |
@@ -32,6 +31,31 @@ |
32 | 31 |
POPr |
33 | 32 |
.System/rst DEI ,&rst-loop JCN |
34 | 33 |
|
34 |
+ ( clear screen ) |
|
35 |
+ #01 .Screen/auto DEO |
|
36 |
+ #0000 .Screen/y DEO2 |
|
37 |
+ .Screen/width DEI2 #0007 ADD2 #03 SFT2 #ffff MUL2 STH2 |
|
38 |
+ &screen-yloop |
|
39 |
+ #0000 .Screen/x DEO2 |
|
40 |
+ STH2kr |
|
41 |
+ &screen-xloop-bg |
|
42 |
+ #00 .Screen/sprite DEO |
|
43 |
+ INC2 |
|
44 |
+ ORAk ,&screen-xloop-bg JCN |
|
45 |
+ POP2 |
|
46 |
+ #0000 .Screen/x DEO2 |
|
47 |
+ STH2kr |
|
48 |
+ &screen-xloop-fg |
|
49 |
+ #40 .Screen/sprite DEO |
|
50 |
+ INC2 |
|
51 |
+ ORAk ,&screen-xloop-fg JCN |
|
52 |
+ POP2 |
|
53 |
+ .Screen/y DEI2 #0008 ADD2 |
|
54 |
+ DUP2 .Screen/y DEO2 |
|
55 |
+ .Screen/height DEI2 LTH2 ,&screen-yloop JCN |
|
56 |
+ POP2r |
|
57 |
+ #00 .Screen/auto DEO |
|
58 |
+ |
|
35 | 59 |
( reset device vectors ) |
36 | 60 |
LIT2r 0000 #00 |
37 | 61 |
&device-vector-loop |
... | ... |
@@ -19,7 +19,7 @@ |
19 | 19 |
|
20 | 20 |
|00 @System [ &vector $2 &wst $1 &rst $1 &pad $4 &r $2 &g $2 &b $2 &debug $1 &halt $1 ] |
21 | 21 |
|10 @Console [ &vector $2 &read $1 &pad $5 &write $1 &error $1 ] |
22 |
-|20 @Screen &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |
|
22 |
+|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |
|
23 | 23 |
|80 @Controller [ &vector $2 &button $1 &key $1 ] |
24 | 24 |
|90 @Mouse [ &vector $2 &x $2 &y $2 &state $1 &wheel $1 ] |
25 | 25 |
|a0 @File &vector $2 &success $2 &offset-hs $2 &offset-ls $2 &name $2 &length $2 &load $2 &save $2 |