Skip to content

Commit 3c38bbb

Browse files
committed
Create SPRITES.BAS
1 parent 8dad7a7 commit 3c38bbb

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
10 ' SPRITE SHEET DEMO - ASM MEMCOPY
2+
20 SCREEN 1: CLS: KEY OFF
3+
30 STRIDE% = 34: SBYTES% = 68
4+
40 DIM BIG%(169): DIM SPR%(33): DIM MC%(19)
5+
50 ' Pre-allocate all variables
6+
60 MEMCOPY=0: SRC%=0: DST%=0: CNT%=0
7+
70 N%=0: X%=0: A$=""
8+
80 DEF SEG
9+
90 BLOAD "MEMCOPY.BSV",VARPTR(MC%(0))
10+
100 MEMCOPY = VARPTR(MC%(0))
11+
110 ' Draw 5 sprites side by side
12+
120 LINE (0,0)-(15,15), 1, BF
13+
130 CIRCLE (27,7), 7, 2: PAINT (27,7), 2
14+
140 LINE (40,0)-(55,15), 3: LINE (55,0)-(40,15), 3
15+
150 LINE (67,0)-(75,7),1: LINE (75,7)-(67,15),1
16+
160 LINE (67,15)-(60,7),1: LINE (60,7)-(67,0),1
17+
170 PAINT (67,7), 1
18+
180 LINE (87,0)-(80,15), 2
19+
190 LINE (80,15)-(95,15), 2
20+
200 LINE (95,15)-(87,0), 2: PAINT (87,10), 2
21+
210 LOCATE 5,1: PRINT "Sprites drawn. Press key..."
22+
220 A$ = INPUT$(1)
23+
230 ' GET each into SPR%, copy to BIG%
24+
240 CNT% = SBYTES%
25+
250 FOR N% = 0 TO 4
26+
260 X% = N% * 20
27+
270 GET (X%,0)-(X%+15,15), SPR%
28+
280 SRC% = VARPTR(SPR%(0))
29+
290 DST% = VARPTR(BIG%(0)) + N% * SBYTES%
30+
300 CALL MEMCOPY(SRC%, DST%, CNT%)
31+
310 NEXT
32+
320 ' Clear and display from BIG%
33+
330 CLS
34+
340 LOCATE 2,1: PRINT "From BIG%:"
35+
350 FOR N% = 0 TO 4
36+
360 SRC% = VARPTR(BIG%(0)) + N% * SBYTES%
37+
370 DST% = VARPTR(SPR%(0))
38+
380 CALL MEMCOPY(SRC%, DST%, CNT%)
39+
390 PUT (20 + N% * 55, 30), SPR%
40+
400 NEXT
41+
410 LOCATE 10,1: PRINT "Reversed:"
42+
420 FOR N% = 4 TO 0 STEP -1
43+
430 SRC% = VARPTR(BIG%(0)) + N% * SBYTES%
44+
440 DST% = VARPTR(SPR%(0))
45+
450 CALL MEMCOPY(SRC%, DST%, CNT%)
46+
460 PUT (20 + (4-N%) * 55, 90), SPR%
47+
470 NEXT
48+
480 LOCATE 23,1: PRINT "Done! Press key..."
49+
490 A$ = INPUT$(1)
50+
500 SCREEN 0: WIDTH 80: END

0 commit comments

Comments
 (0)