| ... | ... |
@@ -147,11 +147,14 @@ domouse(SDL_Event *event) |
| 147 | 147 |
{
|
| 148 | 148 |
int x = event->motion.x / ZOOM - PAD * 8; |
| 149 | 149 |
int y = event->motion.y / ZOOM - PAD * 8; |
| 150 |
+ |
|
| 151 |
+ devmouse->mem[0] = x; |
|
| 152 |
+ devmouse->mem[1] = y; |
|
| 150 | 153 |
switch(event->type) {
|
| 151 | 154 |
case SDL_MOUSEBUTTONUP: |
| 155 |
+ devmouse->mem[2] = 0; |
|
| 156 |
+ break; |
|
| 152 | 157 |
case SDL_MOUSEBUTTONDOWN: |
| 153 |
- devmouse->mem[0] = x; |
|
| 154 |
- devmouse->mem[1] = y; |
|
| 155 | 158 |
devmouse->mem[2] = event->button.button == SDL_BUTTON_LEFT; |
| 156 | 159 |
} |
| 157 | 160 |
} |
| ... | ... |
@@ -10,9 +10,20 @@ |
| 10 | 10 |
BRK |
| 11 | 11 |
|
| 12 | 12 |
|c000 @FRAME |
| 13 |
- ,01 ,01 ( redraw color ) |
|
| 14 |
- ,00 ,01 ,02 IOR ( grab y ) |
|
| 15 |
- ,00 ,00 ,02 IOR ( grab x ) |
|
| 13 |
+ |
|
| 14 |
+ ( get mouse button, or break ) |
|
| 15 |
+ ,02 ,02 IOR |
|
| 16 |
+ ,01 NEQ |
|
| 17 |
+ BRK? |
|
| 18 |
+ |
|
| 19 |
+ ( print A to console on click ) |
|
| 20 |
+ ,02 ,02 IOR |
|
| 21 |
+ ,41 ADD |
|
| 22 |
+ ,putbyte JSR |
|
| 23 |
+ |
|
| 24 |
+ ( paint a white pixel ) |
|
| 25 |
+ ,01 ,01 |
|
| 26 |
+ ,getmouse JSR |
|
| 16 | 27 |
,putpixel JSR |
| 17 | 28 |
BRK |
| 18 | 29 |
|
| ... | ... |
@@ -23,5 +34,13 @@ BRK |
| 23 | 34 |
,01 IOW ( redraw ) |
| 24 | 35 |
RTS |
| 25 | 36 |
|
| 37 |
+@getmouse ( push y,x to stack ) |
|
| 38 |
+ ,00 ,01 ,02 IOR ( grab y ) |
|
| 39 |
+ ,00 ,00 ,02 IOR ( grab x ) |
|
| 40 |
+ RTS |
|
| 41 |
+ |
|
| 42 |
+@putbyte ( print to console ) |
|
| 43 |
+ ,00 IOW RTS |
|
| 44 |
+ |
|
| 26 | 45 |
|d000 @ERROR BRK |
| 27 | 46 |
|FFFA .RESET .FRAME .ERROR |