Browse code

Merged blend example in screen

neauoire authored on 27/02/2021 16:18:57
Showing 4 changed files
... ...
@@ -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);
... ...
@@ -39,7 +39,7 @@ typedef struct Device {
39 39
 
40 40
 typedef struct {
41 41
 	Uint8 literal, status, devices;
42
-	Uint16 counter, devr, devw, vreset, vframe, verror;
42
+	Uint16 counter, vreset, vframe, verror;
43 43
 	Stack wst, rst;
44 44
 	Memory ram;
45 45
 	Device dev[8];