... | ... |
@@ -2,7 +2,6 @@ |
2 | 2 |
|
3 | 3 |
;center { x 2 y 2 } |
4 | 4 |
;timer { byte 1 } |
5 |
-;i { byte 1 } |
|
6 | 5 |
|
7 | 6 |
|0100 @RESET |
8 | 7 |
|
... | ... |
@@ -12,26 +11,31 @@ |
12 | 11 |
|
13 | 12 |
( draw hor line ) |
14 | 13 |
#0000 =Screen.x ~center.y =Screen.y |
15 |
- $draw-hor |
|
14 |
+ #0000 ~Screen.width ( from/to ) |
|
15 |
+ $draw-hor NOP |
|
16 | 16 |
( draw ) #01 =Screen.color |
17 |
- ( incr ) ~Screen.x #0002 ADD2 =Screen.x |
|
18 |
- ,$draw-hor ~Screen.x ~Screen.width LTH2 JMP2? POP2 |
|
17 |
+ ( incr ) SWP2 #0002 ADD2 DUP2 =Screen.x SWP2 |
|
18 |
+ OVR2 OVR2 LTH2 ^$draw-hor SWP JMPS? POP |
|
19 |
+ POP2 POP2 |
|
19 | 20 |
|
20 | 21 |
( draw ver line ) |
21 | 22 |
~center.x =Screen.x #0000 =Screen.y |
22 |
- $draw-ver |
|
23 |
+ #0000 ~Screen.height ( from/to ) |
|
24 |
+ $draw-ver NOP |
|
23 | 25 |
( draw ) #02 =Screen.color |
24 |
- ( incr ) ~Screen.y #0002 ADD2 =Screen.y |
|
25 |
- ,$draw-ver ~Screen.y ~Screen.height LTH2 JMP2? POP2 |
|
26 |
+ ( incr ) SWP2 #0002 ADD2 DUP2 =Screen.y SWP2 |
|
27 |
+ OVR2 OVR2 LTH2 ^$draw-ver SWP JMPS? POP |
|
28 |
+ POP2 POP2 |
|
26 | 29 |
|
27 | 30 |
( draw blending modes ) |
28 |
- #00 =i |
|
29 | 31 |
#0020 =Sprite.x #0020 =Sprite.y ,icon =Sprite.addr |
30 |
- $draw-blends |
|
31 |
- ( draw ) #00 ~i ADD =Sprite.color |
|
32 |
- ( incr ) ~Sprite.x #0008 ADD2 =Sprite.x |
|
33 |
- ( incr ) ~i #01 ADD =i |
|
34 |
- ,$draw-blends ~i #10 LTH JMP2? POP2 |
|
32 |
+ #00 #10 |
|
33 |
+ $draw-blends NOP |
|
34 |
+ ( move ) OVR #00 SWP #0008 MUL2 #0020 ADD2 =Sprite.x |
|
35 |
+ ( draw ) OVR =Sprite.color |
|
36 |
+ ( incr ) SWP #01 ADD SWP |
|
37 |
+ DUP2 LTH ^$draw-blends SWP JMPS? POP |
|
38 |
+ POP POP |
|
35 | 39 |
|
36 | 40 |
BRK |
37 | 41 |
|
... | ... |
@@ -4,38 +4,60 @@ |
4 | 4 |
|
5 | 5 |
|0100 @RESET |
6 | 6 |
|
7 |
- ,type1 JSR2 |
|
8 |
- ,type2 JSR2 |
|
9 |
- ,type3 JSR2 |
|
7 |
+ ,slow-muljmp JSR2 |
|
8 |
+ ,slow-jmppop JSR2 |
|
9 |
+ ,slow-jmppop-rel JSR2 |
|
10 |
+ ,fast-byte JSR2 |
|
11 |
+ ,fast-short JSR2 |
|
10 | 12 |
|
11 | 13 |
BRK |
12 | 14 |
|
13 |
-@type1 ( type: padded muljmp ) |
|
15 |
+|0200 @slow-muljmp ( type: padded muljmp ) |
|
14 | 16 |
|
15 | 17 |
$loop NOP |
16 | 18 |
~a #01 ADD =a |
17 | 19 |
~a #d0 LTH ^$loop MUL JMPS |
18 | 20 |
~a =Console.byte |
19 | 21 |
|
20 |
-RTS |
|
22 |
+RTN |
|
21 | 23 |
|
22 |
-@type2 ( type: jmppop ) |
|
24 |
+|0300 @slow-jmppop ( type: jmppop ) |
|
23 | 25 |
|
24 | 26 |
$loop |
25 | 27 |
~b #01 ADD =b |
26 | 28 |
,$loop ~b #d0 LTH JMP2? POP2 |
27 | 29 |
~b =Console.byte |
28 | 30 |
|
29 |
-RTS |
|
31 |
+RTN |
|
30 | 32 |
|
31 |
-@type3 ( type: padded jmppop ) |
|
33 |
+|0400 @slow-jmppop-rel ( type: padded jmppop ) |
|
32 | 34 |
|
33 | 35 |
$loop NOP |
34 | 36 |
~c #01 ADD =c |
35 | 37 |
~c #d0 LTH ^$loop SWP JMPS? POP |
36 | 38 |
~c =Console.byte |
37 | 39 |
|
38 |
-RTS |
|
40 |
+RTN |
|
41 |
+ |
|
42 |
+|0500 @fast-byte ( fast byte ) |
|
43 |
+ |
|
44 |
+ #00 #d0 |
|
45 |
+ $loop NOP |
|
46 |
+ ( incr ) SWP #01 ADD SWP |
|
47 |
+ DUP2 LTH ^$loop SWP JMPS? POP |
|
48 |
+ POP =Console.byte |
|
49 |
+ |
|
50 |
+RTN |
|
51 |
+ |
|
52 |
+|0600 @fast-short ( fast short ) |
|
53 |
+ |
|
54 |
+ #0000 #0d00 |
|
55 |
+ $loop NOP |
|
56 |
+ ( incr ) SWP2 #0001 ADD2 SWP2 |
|
57 |
+ OVR2 OVR2 LTH2 ^$loop SWP JMPS? POP |
|
58 |
+ POP2 =Console.short |
|
59 |
+ |
|
60 |
+RTN |
|
39 | 61 |
|
40 | 62 |
|c000 @FRAME |
41 | 63 |
|d000 @ERROR |