| ... | ... |
@@ -1,8 +1,9 @@ |
| 1 | 1 |
( dev/screen ) |
| 2 | 2 |
|
| 3 | 3 |
&Screen { width 2 height 2 pad 4 x 2 y 2 color 1 }
|
| 4 |
+&Sprite { pad 8 x 2 y 2 addr 2 color 1 }
|
|
| 4 | 5 |
|
| 5 |
-;centerx 2 ;centery 2 ;i 2 |
|
| 6 |
+;centerx 2 ;centery 2 ;i 2 ;j 1 |
|
| 6 | 7 |
|
| 7 | 8 |
|0100 @RESET |
| 8 | 9 |
|
| ... | ... |
@@ -26,15 +27,31 @@ |
| 26 | 27 |
~i #0002 ADD2 =i ( increment ) |
| 27 | 28 |
~i ~dev/screen.width LTH2 ,draw-ver ROT JMP? POP2 |
| 28 | 29 |
|
| 30 |
+ ( draw blending modes ) |
|
| 31 |
+ @draw-blends |
|
| 32 |
+ ~j ,icon #00 ~j #0008 MUL2 ~dev/screen.height #0010 SUB2 ,draw-sprite JSR |
|
| 33 |
+ ~j #01 ADD =j |
|
| 34 |
+ ~j #10 LTH ,draw-blends ROT JMP? POP2 |
|
| 35 |
+ |
|
| 29 | 36 |
( draw pixel in the middle ) |
| 30 | 37 |
#01 ~centerx ~centery =dev/screen.y =dev/screen.x =dev/screen.color |
| 31 | 38 |
|
| 32 | 39 |
BRK |
| 33 | 40 |
|
| 41 |
+@draw-sprite |
|
| 42 |
+ =dev/sprite.y |
|
| 43 |
+ =dev/sprite.x |
|
| 44 |
+ =dev/sprite.addr |
|
| 45 |
+ =dev/sprite.color |
|
| 46 |
+ RTS |
|
| 47 |
+ |
|
| 48 |
+@icon [ 3c7e e7c3 c3e7 7e3c ] |
|
| 49 |
+ |
|
| 34 | 50 |
|c000 @FRAME BRK |
| 35 | 51 |
|d000 @ERROR BRK |
| 36 | 52 |
|
| 37 | 53 |
|FF10 ;dev/screen Screen |
| 54 |
+|FF20 ;dev/sprite Sprite |
|
| 38 | 55 |
|
| 39 | 56 |
|FFF0 [ f0ac f0bb f053 ] ( palette ) |
| 40 | 57 |
|FFFA .RESET .FRAME .ERROR ( vectors ) |
| 41 | 58 |
deleted file mode 100644 |
| ... | ... |
@@ -1,40 +0,0 @@ |
| 1 |
-( desktop ) |
|
| 2 |
- |
|
| 3 |
-:dev/w fff9 ( const write port ) |
|
| 4 |
- |
|
| 5 |
-|0100 @RESET |
|
| 6 |
- |
|
| 7 |
- #02 =dev/w |
|
| 8 |
- #00 ,icon #0040 #0040 ,draw-sprite JSR |
|
| 9 |
- #01 ,icon #0048 #0040 ,draw-sprite JSR |
|
| 10 |
- #02 ,icon #0050 #0040 ,draw-sprite JSR |
|
| 11 |
- #03 ,icon #0058 #0040 ,draw-sprite JSR |
|
| 12 |
- #04 ,icon #0040 #0048 ,draw-sprite JSR |
|
| 13 |
- #05 ,icon #0048 #0048 ,draw-sprite JSR |
|
| 14 |
- #06 ,icon #0050 #0048 ,draw-sprite JSR |
|
| 15 |
- #07 ,icon #0058 #0048 ,draw-sprite JSR |
|
| 16 |
- #08 ,icon #0040 #0050 ,draw-sprite JSR |
|
| 17 |
- #09 ,icon #0048 #0050 ,draw-sprite JSR |
|
| 18 |
- #0a ,icon #0050 #0050 ,draw-sprite JSR |
|
| 19 |
- #0b ,icon #0058 #0050 ,draw-sprite JSR |
|
| 20 |
- #0c ,icon #0040 #0058 ,draw-sprite JSR |
|
| 21 |
- #0d ,icon #0048 #0058 ,draw-sprite JSR |
|
| 22 |
- #0e ,icon #0050 #0058 ,draw-sprite JSR |
|
| 23 |
- #0f ,icon #0058 #0058 ,draw-sprite JSR |
|
| 24 |
- |
|
| 25 |
-BRK |
|
| 26 |
- |
|
| 27 |
-@icon [ 3c7e e7c3 c3e7 7e3c ] |
|
| 28 |
- |
|
| 29 |
-@draw-sprite |
|
| 30 |
- IOW2 ( y byte ) |
|
| 31 |
- IOW2 ( x byte ) |
|
| 32 |
- IOW2 ( sprite address ) |
|
| 33 |
- IOW ( layer-color ) |
|
| 34 |
- RTS |
|
| 35 |
- |
|
| 36 |
-|c000 @FRAME |
|
| 37 |
-|d000 @ERROR |
|
| 38 |
- |
|
| 39 |
-|FFF0 [ f3f0 f30b f30a ] ( palette ) |
|
| 40 |
-|FFFA .RESET .FRAME .ERROR |
|
| 41 | 0 |
\ No newline at end of file |
| ... | ... |
@@ -114,6 +114,8 @@ Uint8 opr[][2] = {
|
| 114 | 114 |
|
| 115 | 115 |
/* clang-format on */ |
| 116 | 116 |
|
| 117 |
+#pragma mark - Core |
|
| 118 |
+ |
|
| 117 | 119 |
int |
| 118 | 120 |
haltuxn(Uxn *u, char *name, int id) |
| 119 | 121 |
{
|
| ... | ... |
@@ -191,8 +193,6 @@ loaduxn(Uxn *u, char *filepath) |
| 191 | 193 |
if(!(f = fopen(filepath, "rb"))) |
| 192 | 194 |
return haltuxn(u, "Missing input rom.", 0); |
| 193 | 195 |
fread(u->ram.dat, sizeof(u->ram.dat), 1, f); |
| 194 |
- u->devr = 0xfff8; |
|
| 195 |
- u->devw = 0xfff9; |
|
| 196 | 196 |
u->vreset = mempeek16(u, 0xfffa); |
| 197 | 197 |
u->vframe = mempeek16(u, 0xfffc); |
| 198 | 198 |
u->verror = mempeek16(u, 0xfffe); |