... | ... |
@@ -26,10 +26,20 @@ contexts: |
26 | 26 |
scope: variable.control |
27 | 27 |
pop: true |
28 | 28 |
# constants |
29 |
- # structs |
|
30 |
- |
|
31 |
- # Special |
|
32 | 29 |
|
30 |
+ # templated |
|
31 |
+ - match: '(\S+)\^\s?' |
|
32 |
+ scope: storage.type |
|
33 |
+ pop: true |
|
34 |
+ - match: '(\S+)\=\s?' |
|
35 |
+ scope: constant.numeric |
|
36 |
+ pop: true |
|
37 |
+ - match: '(\S+)\?\s?' |
|
38 |
+ scope: storage.type |
|
39 |
+ pop: true |
|
40 |
+ - match: '(\S+)\!\s?' |
|
41 |
+ scope: constant.numeric |
|
42 |
+ pop: true |
|
33 | 43 |
|
34 | 44 |
# Pushing to stack |
35 | 45 |
|
... | ... |
@@ -6,6 +6,11 @@ |
6 | 6 |
%-- { #0001 SUB2 } |
7 | 7 |
%ABS2 { DUP2 #000f SFT2 EQU #04 JNZ #ffff MUL2 } |
8 | 8 |
|
9 |
+( |
|
10 |
+%%^ { .% PEK } %%= { .% POK } |
|
11 |
+%%? { .% DEI } %%! { .% DEO } |
|
12 |
+) |
|
13 |
+ |
|
9 | 14 |
%%^ { .% PEK2 } %%= { .% POK2 } |
10 | 15 |
%%? { .% DEI2 } %%! { .% DEO2 } |
11 | 16 |
|
... | ... |
@@ -28,11 +33,12 @@ |
28 | 33 |
|0100 ( -> ) |
29 | 34 |
|
30 | 35 |
( theme ) |
31 |
- #f0fd System/r! |
|
32 |
- #f003 System/g! |
|
33 |
- #f002 System/b! |
|
36 |
+ #f0f0 System/r! |
|
37 |
+ #f00f System/g! |
|
38 |
+ #f000 System/b! |
|
34 | 39 |
|
35 |
- ( vectors ) ;on-mouse Mouse/vector! |
|
40 |
+ ( vectors ) |
|
41 |
+ ;on-mouse Mouse/vector! |
|
36 | 42 |
|
37 | 43 |
BRK |
38 | 44 |
|
... | ... |
@@ -41,13 +47,10 @@ BRK |
41 | 47 |
;draw-cursor JSR2 |
42 | 48 |
|
43 | 49 |
( on down ) |
44 |
- .Mouse/state DEI #00 NEQ |
|
45 |
- .pointer/state PEK #00 EQU |
|
46 |
- #0101 EQU2 ,on-mouse-down JNZ |
|
50 |
+ .Mouse/state DEI #00 NEQ .pointer/state PEK #00 EQU #0101 EQU2 ,on-mouse-down JNZ |
|
47 | 51 |
|
48 | 52 |
( on drag ) |
49 |
- .Mouse/state DEI |
|
50 |
- #00 NEQ ,on-mouse-drag JNZ |
|
53 |
+ .Mouse/state DEI #00 NEQ ,on-mouse-drag JNZ |
|
51 | 54 |
|
52 | 55 |
.Mouse/state DEI .pointer/state POK |
53 | 56 |
|
... | ... |
@@ -58,6 +61,7 @@ BRK |
58 | 61 |
( record start position ) |
59 | 62 |
Mouse/x? DUP2 pointer/x= pointer/lastx= |
60 | 63 |
Mouse/y? DUP2 pointer/y= pointer/lasty= |
64 |
+ |
|
61 | 65 |
.Mouse/state DEI .pointer/state POK |
62 | 66 |
|
63 | 67 |
BRK |
... | ... |
@@ -70,11 +74,12 @@ BRK |
70 | 74 |
pointer/x^ |
71 | 75 |
pointer/y^ |
72 | 76 |
#01 ( add mouse state ) [ .Mouse/state DEI #10 EQU #02 MUL ADD ] |
73 |
- ;hairline JSR2 |
|
77 |
+ ;draw-line JSR2 |
|
74 | 78 |
|
75 | 79 |
( record last position ) |
76 | 80 |
Mouse/x? pointer/lastx= |
77 | 81 |
Mouse/y? pointer/lasty= |
82 |
+ |
|
78 | 83 |
.Mouse/state DEI .pointer/state POK |
79 | 84 |
|
80 | 85 |
BRK |
... | ... |
@@ -102,7 +107,7 @@ BRK |
102 | 107 |
|
103 | 108 |
RTN |
104 | 109 |
|
105 |
-@hairline ( x1 y1 x2 y2 color -- ) |
|
110 |
+@draw-line ( x1 y1 x2 y2 color -- ) |
|
106 | 111 |
|
107 | 112 |
( load ) .color POK line/y0= line/x0= line/y= line/x= |
108 | 113 |
line/x0^ line/x^ SUB2 ABS2 line/dx= |
... | ... |
@@ -111,7 +116,11 @@ RTN |
111 | 116 |
#ffff #00 line/y^ line/y0^ LTS2 #0002 MUL2 ADD2 line/sy= |
112 | 117 |
line/dx^ line/dy^ ADD2 line/e1= |
113 | 118 |
&loop |
114 |
- line/x^ Screen/x! line/y^ Screen/y! .color PEK .Screen/color DEO |
|
119 |
+ ( draw ) |
|
120 |
+ line/x^ Screen/x! |
|
121 |
+ line/y^ Screen/y! |
|
122 |
+ .color PEK |
|
123 |
+ .Screen/color DEO |
|
115 | 124 |
line/x^ line/x0^ EQU2 line/y^ line/y0^ EQU2 #0101 EQU2 ,&end JNZ |
116 | 125 |
line/e1^ #0002 MUL2 line/e2= |
117 | 126 |
line/e2^ line/dy^ LTS2 ,&skipy JNZ |
... | ... |
@@ -112,8 +112,8 @@ drawdebugger(Ppu *p, Uint8 *stack, Uint8 ptr) |
112 | 112 |
Uint8 i, x, y, b; |
113 | 113 |
for(i = 0; i < 0x20; ++i) { /* memory */ |
114 | 114 |
x = ((i % 8) * 3 + 1) * 8, y = (i / 8 + 1) * 8, b = stack[i]; |
115 |
- puticn(p, p->bg, x, y, font[(b >> 4) & 0xf], 2 + (ptr == i)); |
|
116 |
- puticn(p, p->bg, x + 8, y, font[b & 0xf], 2 + (ptr == i)); |
|
115 |
+ puticn(p, p->bg, x, y, font[(b >> 4) & 0xf], 1 + (ptr == i) * 0x7); |
|
116 |
+ puticn(p, p->bg, x + 8, y, font[b & 0xf], 1 + (ptr == i) * 0x7); |
|
117 | 117 |
} |
118 | 118 |
for(x = 0; x < 0x20; ++x) { |
119 | 119 |
drawpixel(p, x, p->height / 2, 2); |