Browse code

Completed images examples

neauoire authored on 25/02/2021 18:34:57
Showing 1 changed files
... ...
@@ -6,26 +6,36 @@
6 6
 &Point { x 1 y 1 }
7 7
 
8 8
 &Point2d { x 2 y 2 }
9
+
9 10
 &Picture2d { x 2 y 2 width 1 height 1 color 1 addr 2 }
10 11
 
12
+;mouse Point2d
11 13
 ;pict Picture2d ;pictpt Point
14
+( drawing ) ;color 1 ;x1 2 ;x2 2 ;y1 2 ;y2 2 ;i 2
15
+;state 1
12 16
 
13 17
 |0100 @RESET 
14 18
 	
15
-	#05 =dev/r ( set dev/read mouse )
16 19
 	#02 =dev/w ( set dev/write to sprite ) 
17 20
 
18
-	#0030 #0042 #04 #04 #01 ,graphic ,draw-picture JSR
19
-	#0040 #0052 #04 #04 #02 ,graphic ,draw-picture JSR
20
-	#0050 #0062 #04 #04 #03 ,graphic ,draw-picture JSR
21
+	#0010 #0020 #04 #04 #01 ,graphic1 ,draw-picture JSR
22
+	#0020 #0030 #10 #10 #04 ,graphic2 ,draw-picture JSR
23
+	#0088 #0020 #10 #10 #08 ,graphic2 ,draw-picture JSR
21 24
 
22
-	#0058 #0042 #04 #04 #05 ,graphic ,draw-picture JSR
23
-	#0068 #0052 #04 #04 #06 ,graphic ,draw-picture JSR
24
-	#0078 #0062 #04 #04 #07 ,graphic ,draw-picture JSR
25
+	#05 =dev/r ( set dev/read mouse )
25 26
 
26
-	#0080 #0042 #04 #04 #0a ,graphic ,draw-picture JSR
27
-	#0090 #0052 #04 #04 #0c ,graphic ,draw-picture JSR
28
-	#00a0 #0062 #04 #04 #0e ,graphic ,draw-picture JSR
27
+BRK
28
+
29
+|c000 @FRAME
30
+
31
+	( clear last cursor )
32
+	#10 ,clear_icn ~mouse.x ~mouse.y ,draw-sprite JSR
33
+	( record mouse positions )
34
+	#00 IOR2 =mouse.x #02 IOR2 =mouse.y
35
+	( record mouse state )
36
+	#04 IOR #11 ADD =state
37
+	( draw mouse )
38
+	~state ,cursor_icn ~mouse.x ~mouse.y ,draw-sprite JSR
29 39
 
30 40
 BRK
31 41
 
... ...
@@ -49,7 +59,27 @@ BRK
49 59
 			~pictpt.x ~pict.width LTH ,draw-picture-col ROT JMP? POP2
50 60
 		( incr y ) ~pictpt.y #01 ADD =pictpt.y
51 61
 		~pictpt.y ~pict.height LTH ,draw-picture-row ROT JMP? POP2
52
-		
62
+
63
+	#01 =dev/w ( set dev/write to sprite ) 
64
+	#03 =color
65
+	~pict.x #0001 SUB2 ~pict.y #0001 SUB2 ~pict.x #0008 #00 ~pict.width MUL2 ADD2 ~pict.y #0008 #00 ~pict.height MUL2 ADD2 ,line-rect JSR
66
+	#02 =dev/w ( set dev/write to sprite ) 
67
+
68
+RTS
69
+
70
+@line-rect ( x1 y1 x2 y2 )
71
+	=y2 =x2 ( stash x1 y1 ) DUP2 WSR2 =y1 DUP2 WSR2 =x1
72
+	@line-rect-hor
73
+		( draw ) ~x1 ~y1 IOW2 IOW2 ~color IOW
74
+		( draw ) ~x1 ~y2 IOW2 IOW2 ~color IOW
75
+		( incr ) ~x1 #0001 ADD2 DUP2 =x1  
76
+		~x2 #0001 ADD2 LTH2 ,line-rect-hor ROT JMP? POP2
77
+	( restore x1 y1 ) RSW2 =x1 RSW2 =y1
78
+	@line-rect-ver
79
+		( incr ) ~y1 #0001 ADD2 DUP2 =y1  
80
+		( draw ) ~x1 ~y1 IOW2 IOW2 ~color IOW
81
+		( draw ) ~x2 ~y1 IOW2 IOW2 ~color IOW
82
+		~y2 #0001 SUB2 LTH2 ,line-rect-ver ROT JMP? POP2
53 83
 RTS
54 84
 
55 85
 @draw-sprite
... ...
@@ -62,7 +92,7 @@ RTS
62 92
 @clear_icn   [ 0000 0000 0000 0000 ]
63 93
 @cursor_icn  [ 80c0 e0f0 f8e0 1000 ]
64 94
 
65
-@graphic [
95
+@graphic1 [
66 96
 	ff80 8080 8080 8088
67 97
 	ffff fffc f8f9 f1f4
68 98
 	ffff 0010 c721 2120
... ...
@@ -81,7 +111,265 @@ RTS
81 111
 	ffff ffff ffff ffff
82 112
 ]
83 113
 
84
-|c000 @FRAME BRK
114
+@graphic2 [
115
+	ffff ffff ffff ffff 
116
+	ffff ffff ffff ffff 
117
+	ffff ffff ffff ffff 
118
+	ffff ffff ffff ffff 
119
+	ffff ffff ffff fffe 
120
+	ffff ffff fef0 8000 
121
+	ffff ffd0 0000 0000 
122
+	ffff ff02 0000 0000 
123
+	ffff ffff 1f03 0000 
124
+	ffff ffff ffff ff1f 
125
+	ffff ffff ffff ffff 
126
+	ffff ffff ffff ffff 
127
+	ffff ffff ffff ffff 
128
+	ffff ffff ffff ffff 
129
+	ffff ffff ffff ffff 
130
+	ffff ffff ffff ffff 
131
+	ffff ffff ffff ffff 
132
+	ffff ffff ffff ffff 
133
+	ffff ffff ffff ffff 
134
+	ffff ffff fef8 f8e0 
135
+	f8e0 c000 0003 0c30 
136
+	0000 0738 c000 0000 
137
+	17d0 0404 0404 0404 
138
+	fd00 0000 0000 0000 
139
+	40be 0100 0000 0000 
140
+	0300 e01c 0300 0000 
141
+	ff2f 0300 802d 0000 
142
+	ffff ff3f 0f07 a101 
143
+	ffff ffff ffff ffff 
144
+	ffff ffff ffff ffff 
145
+	ffff ffff ffff ffff 
146
+	ffff ffff ffff ffff 
147
+	ffff ffff ffff ffff 
148
+	ffff ffff ffff ffff 
149
+	ffff fefc f0e0 c081 
150
+	a081 060c 3060 8000 
151
+	c080 0000 0000 0000 
152
+	0000 0000 0000 0000 
153
+	0604 0406 0206 0202 
154
+	0000 0000 0000 0000 
155
+	0000 0000 0000 0000 
156
+	0000 0000 0000 0000 
157
+	0000 0000 0000 0000 
158
+	0000 0000 0100 0101 
159
+	ffff ffff ffff ffff 
160
+	ffff ffff ffff ffff 
161
+	ffff ffff ffff ffff 
162
+	ffff ffff ffff ffff 
163
+	ffff ffff ffff ffff 
164
+	fffe ffd0 e0e0 e0e0 
165
+	16f8 0000 0000 0000 
166
+	0000 0000 0000 0000 
167
+	0000 0000 0000 0000 
168
+	0000 0000 0000 0000 
169
+	0202 0202 0300 02ba 
170
+	0000 0000 0000 12c8 
171
+	0000 0000 0000 4893 
172
+	0000 0000 0000 00f4 
173
+	0000 0000 0000 0000 
174
+	0103 0303 0703 0707 
175
+	ffff ffff ffff ffff 
176
+	ffff ffff ffff ffff 
177
+	ffff ffff ffff ffff 
178
+	ffff ffff ffff ffff 
179
+	ffff ffff ffff ffff 
180
+	e0e0 e0f0 f0f8 f8fc 
181
+	0000 0000 0000 0000 
182
+	0000 0000 0001 020a 
183
+	0000 0314 7040 8000 
184
+	0b74 8000 0000 0000 
185
+	4001 0105 0703 0200 
186
+	0000 80c0 c080 4000 
187
+	0000 0000 0000 0000 
188
+	0700 0000 0000 0000 
189
+	8028 0000 0000 0000 
190
+	0f0f 0f1f 1f1f 1f1f 
191
+	ffff ffff ffff ffff 
192
+	ffff ffff ffff ffff 
193
+	ffff ffff ffff ffff 
194
+	ffff ffff ffff ffff 
195
+	ffff ffff ffff ffff 
196
+	fcfe feff ffff ffff 
197
+	0000 0003 82cc c0e0 
198
+	1060 8000 0000 0000 
199
+	0000 0000 0000 0b34 
200
+	0000 0000 17f8 0000 
201
+	0000 005f ff3f fe68 
202
+	0000 aff8 e0fc a100 
203
+	0000 5a00 0092 4000 
204
+	0000 b217 0080 9000 
205
+	0000 0040 5801 0101 
206
+	0f1f 0f1f 0f1f 4f2f 
207
+	ffff ffff ffff ffff 
208
+	ffff ffff ffff ffff 
209
+	ffff ffff ffff ffff 
210
+	ffff ffff ffff ffff 
211
+	ffff ffff ffff ffff 
212
+	ffff ffff ffff ffff 
213
+	e0f0 f0f0 f0f1 f1ed 
214
+	0105 0a30 4000 0000 
215
+	c000 0000 0000 0000 
216
+	0000 0000 0000 0000 
217
+	071f 1f3f 1fbf 3fbf 
218
+	8080 a0d0 84e4 f0f0 
219
+	0000 0000 0000 0000 
220
+	0000 0000 0000 0000 
221
+	0000 0302 040a 062b 
222
+	af0f 0f1f 0f0f 1f9f 
223
+	ffff ffff ffff ffff 
224
+	ffff ffff ffff ffff 
225
+	ffff ffff ffff ffff 
226
+	ffff ffff ffff ffff 
227
+	ffff ffff ffff ffff 
228
+	ffff ffff ffff ffff 
229
+	e5e5 eaf0 f2f8 eeff 
230
+	8000 0000 0200 001e 
231
+	0000 0000 4500 00aa 
232
+	0000 0055 0200 01ff 
233
+	3fbf 28f7 0f14 57ff 
234
+	f059 80d0 c02f fde5 
235
+	2840 0008 f795 474f 
236
+	0100 16eb 5fff ffff 
237
+	54df 1f87 ffff ffff 
238
+	1f3f 291e bf7b fdfb 
239
+	ffff ffff ffff ffff 
240
+	ffff ffff ffff ffff 
241
+	ffff ffff ffff ffff 
242
+	ffff ffff ffff ffff 
243
+	ffff ffff ffff ffff 
244
+	ffff ffff ffff ffff 
245
+	fbfd fef5 fdff ffff 
246
+	8789 c64f af87 6fe7 
247
+	f76d 8e56 deed edef 
248
+	55ff 00fe 896d ffff 
249
+	5fe1 c9d7 7b77 bb7b 
250
+	5a5f ffff ff7f 7fff 
251
+	dffc f8f2 c7ea fd9f 
252
+	0100 8496 619f ffff 
253
+	6f1f 7f7f ffff ffff 
254
+	3ffb 7fdf 776f 7777 
255
+	ffff ffff ffff ffff 
256
+	ffff ffff ffff ffff 
257
+	ffff ffff ffff ffff 
258
+	ffff ffff ffff ffff 
259
+	ffff ffff ffff ffff 
260
+	ffff ffff ffff ffff 
261
+	fcff ffff ffff ffff 
262
+	d7b7 7ff7 bbd7 f3fb 
263
+	edee edfe e2eb d5d6 
264
+	edff ffe9 22aa dd56 
265
+	bf7b bb35 75f2 a7ff 
266
+	ffff f7ff 5fd1 2efa 
267
+	efff ffff ff7f 95ee 
268
+	ffff ffff ffff 779a 
269
+	feff feff fefe ffa1 
270
+	df7f dfbf bfff ffff 
271
+	ffff ffff ffff ffff 
272
+	ffff ffff ffff ffff 
273
+	ffff ffff ffff ffff 
274
+	ffff ffff ffff ffff 
275
+	ffff ffff ffff ffff 
276
+	ffff ffff ffff ffff 
277
+	ffff ffff ffff ffff 
278
+	f9ff f5fa fcfc fcff 
279
+	af5f 7fbf 7fff 7fff 
280
+	ffff ffff ffff ffff 
281
+	ffff ffff ffff ffff 
282
+	ffff ffff ffff ffff 
283
+	52ff ffff ffff ffff 
284
+	aef5 ffff ffff ffff 
285
+	ddeb fffd fdff fbf9 
286
+	ffff ffff ffff ff7f 
287
+	ffff ffff ffff ffff 
288
+	ffff ffff ffff ffff 
289
+	ffff ffff ffff ffff 
290
+	ffff ffff ffff ffff 
291
+	ffff ffff ffff ffff 
292
+	ffff ffff ffff ffff 
293
+	ffff ffff ffde fef0 
294
+	fbf8 f7ed d1a3 21c1 
295
+	bfff 3f9f 0f0f 0787 
296
+	ffff ffff ffff ffff 
297
+	ffff ffff ffff ffff 
298
+	ffff afd2 fdff ea80 
299
+	ffbf 5fff ffff 1f07 
300
+	ffff ffff ffff ffff 
301
+	f9f0 f0e0 e8c8 cc94 
302
+	5fe3 1c0f 0100 0000 
303
+	ffff bf85 fa3f 0f03 
304
+	ffff ffff 7f83 fcff 
305
+	ffff ffff ffff 5fa5 
306
+	ffff ffff ffff fffb 
307
+	ffff ffff ffff fcf3 
308
+	fffe faeb ac58 f0c0 
309
+	d9a3 a206 0c18 3830 
310
+	0402 0404 0404 0404 
311
+	8381 8040 4000 4000 
312
+	ffff ff6f 3f1f 0f07 
313
+	fefe fefe fffe ffdf 
314
+	8037 00e4 390f 8087 
315
+	03a3 13f7 47a7 cf1f 
316
+	fef7 fffe fefc f8f8 
317
+	94a4 2420 4440 4480 
318
+	0000 0000 0000 0000 
319
+	0101 0303 060c 0c08 
320
+	9f86 0001 0303 060c 
321
+	fabf 7dc0 8000 0000 
322
+	2fd3 fc07 0100 0000 
323
+	cfbf 7ff1 c080 0000 
324
+	8080 8000 8080 8080 
325
+	6020 6060 2060 6020 
326
+	0404 040c 0404 0404 
327
+	1000 0008 0002 0000 
328
+	0101 0000 0000 0080 
329
+	ffff 7f1f 0f03 0000 
330
+	e0fd ffff fffe fe1e 
331
+	3fff ff57 4faf a6f4 
332
+	f0e0 e182 8200 0000 
333
+	8080 0000 0000 0000 
334
+	0000 0000 0000 0000 
335
+	1810 3020 60c0 80c0 
336
+	0c18 1030 2040 40c0 
337
+	0000 0000 0000 0000 
338
+	0001 0307 0f0f 1f3f 
339
+	0000 0000 0000 0000 
340
+	4040 4040 2020 2030 
341
+	6030 6030 2030 2030 
342
+	0804 0408 0404 0404 
343
+	0000 0000 0000 0000 
344
+	0028 0802 0100 0000 
345
+	0000 0000 8061 171f 
346
+	0000 000a 7fff fffe 
347
+	b0b8 995b 8fa9 b4bc 
348
+	0001 7ffe fea0 0000 
349
+	0040 e080 0000 0000 
350
+	0101 0301 0206 0404 
351
+	8000 0100 0101 0301 
352
+	8080 8080 0000 0000 
353
+	0000 0001 0103 0707 
354
+	7e7c f8f0 e0c0 c080 
355
+	0000 0000 80c0 6070 
356
+	1010 1008 0808 0808 
357
+	2030 1020 3000 3010 
358
+	0404 0406 0202 0403 
359
+	0000 0001 0b3f 7fff 
360
+	0003 1f7f ffff ffff 
361
+	7fff ffff ffff ffff 
362
+	faf9 f7fd fcff ffff 
363
+	b6da dc9a 5d4d ee6e 
364
+	0000 0000 00fa ffff 
365
+	0000 0000 0080 fcf8 
366
+	0404 0000 0000 0000 
367
+	0302 0301 0202 0202 
368
+	0000 0000 0000 0000 
369
+	0f1f 1e3c 7c78 f0e0 
370
+	0000 0000 0000 0001 
371
+]
372
+
85 373
 |d000 @ERROR BRK 
86 374
 |FFF0 [ f0ac f0bb f053 ] ( palette )
87 375
 |FFFA .RESET .FRAME .ERROR ( vectors )