Browse code

ported dvd animation

neauoire authored on 21/04/2021 19:00:31
Showing 6 changed files
... ...
@@ -32,7 +32,7 @@ else
32 32
 fi
33 33
 
34 34
 echo "Assembling.."
35
-./bin/assembler projects/examples/dev.file.usm bin/boot.rom
35
+./bin/assembler projects/examples/gui.animation.usm bin/boot.rom
36 36
 
37 37
 echo "Running.."
38 38
 if [ "${2}" = '--cli' ]; 
39 39
deleted file mode 100644
... ...
@@ -1,63 +0,0 @@
1
-( GUI Animation )
2
-
3
-;dvd { x 2 y 2 dx 1 dy 1 }
4
-
5
-|0100 ;System { vector 2 pad 6 r 2 g 2 b 2 }
6
-|0120 ;Screen { vector 2 width 2 height 2 pad 2 x 2 y 2 addr 2 color 1 }
7
-
8
-( program )
9
-
10
-|0200
11
-	
12
-	( theme ) #4cfd =System.r #4cf3 =System.g #dcf2 =System.b
13
-	( vectors ) ,on-frame =Screen.vector
14
-	( init ) ~Screen.width #0002 DIV2 =dvd.x
15
-	( init ) ~Screen.height #0002 DIV2 =dvd.y
16
-	
17
-BRK
18
-
19
-@on-frame ( -> )
20
-	
21
-	( clear ) #20 ,draw-dvd JSR2
22
-	( hit-right ) ~dvd.x ~Screen.width #0020 SUB2 EQU2
23
-	( hit-left ) ~dvd.x #0000 EQU2 
24
-	#0000 EQU2 ^$no-flipx JNZ 
25
-		~dvd.dx #00 EQU =dvd.dx $no-flipx
26
-	( hit-bottom ) ~dvd.y ~Screen.height #0010 SUB2 EQU2
27
-	( hit-top ) ~dvd.y #0000 EQU2 
28
-	#0000 EQU2 ^$no-flipy JNZ 
29
-		~dvd.dy #00 EQU =dvd.dy $no-flipy
30
-	( incr ) ~dvd.x #0001 #00 ~dvd.dx #00 EQU #fffe MUL2 ADD2 ADD2 =dvd.x 
31
-	( incr ) ~dvd.y #0001 #00 ~dvd.dy #00 EQU #fffe MUL2 ADD2 ADD2 =dvd.y 
32
-	( draw ) #21 ,draw-dvd JSR2
33
-
34
-BRK
35
-
36
-@draw-dvd ( color -- )
37
-	
38
-	( stash color ) STH 
39
-	,dvd_icn =Screen.addr
40
-	~dvd.y ~dvd.y #0010 ADD2
41
-	$ver
42
-		OVR2 =Screen.y
43
-		~dvd.x ~dvd.x #0020 ADD2
44
-		$hor
45
-			OVR2 =Screen.x
46
-			( draw ) DUPr STHr =Screen.color
47
-			( next ) ~Screen.addr #0008 ADD2 =Screen.addr
48
-			( incr ) SWP2 #0008 ADD2 SWP2
49
-			OVR2 OVR2 LTH2 ^$hor JNZ
50
-		POP2 POP2
51
-		( incr ) SWP2 #0008 ADD2 SWP2
52
-		OVR2 OVR2 LTH2 ^$ver JNZ
53
-	POP2 POP2
54
-	( destroy color ) POPr
55
-
56
-JMP2r
57
-
58
-@dvd_icn [
59
-	001f 3f38 3838 787f 00fe fe7e 7777 e3c3
60
-	000f 1f3b 7b77 e7c7 00fc fe8f 8707 0efc
61
-	7f00 000f ff7f 0700 0301 00ff f0f8 ff00
62
-	8700 00ff 7f7f ff00 f000 00e0 fcfc 8000
63
-]
64 0
\ No newline at end of file
65 1
new file mode 100644
... ...
@@ -0,0 +1,74 @@
1
+( GUI Animation )
2
+
3
+|00 @System     [ &vector $2 &pad    $6 &r      $2 &g     $2 &b      $2 ]
4
+|20 @Screen     [ &vector $2 &width  $2 &height $2 &pad   $2 &x      $2 &y $2 &addr $2 &color $1 ]
5
+
6
+|0100
7
+
8
+@dvd [ &x $2 &y $2 &dx $1 &dy $1 ]
9
+
10
+( program )
11
+
12
+|0100 ( -> )
13
+	
14
+	( theme ) 
15
+	#4cfd .System/r DEO2 
16
+	#4cf3 .System/g DEO2 
17
+	#dcf2 .System/b DEO2
18
+
19
+	( vectors )
20
+	;on-frame .Screen/vector DEO2
21
+
22
+	( starting position )
23
+	.Screen/width DEI2 #0002 DIV2 .dvd/x POK2
24
+	.Screen/height DEI2 #0002 DIV2 .dvd/y POK2
25
+
26
+	#21 ;draw-dvd JSR2
27
+	
28
+BRK
29
+
30
+@on-frame ( -> )
31
+
32
+	( clear ) #20 ;draw-dvd JSR2
33
+	( hit-right ) .dvd/x PEK2 .Screen/width DEI2 #0020 SUB2 EQU2
34
+	( hit-left ) .dvd/x PEK2 #0000 EQU2 
35
+	#0000 EQU2 ,&no-flipx JNZ 
36
+		.dvd/dx PEK #00 EQU .dvd/dx POK &no-flipx
37
+	( hit-bottom ) .dvd/y PEK2 .Screen/height DEI2 #0010 SUB2 EQU2
38
+	( hit-top ) .dvd/y PEK2 #0000 EQU2 
39
+	#0000 EQU2 ,&no-flipy JNZ 
40
+		.dvd/dy PEK #00 EQU .dvd/dy POK &no-flipy
41
+	( incr ) .dvd/x PEK2 #0001 #00 .dvd/dx PEK #00 EQU #fffe MUL2 ADD2 ADD2 .dvd/x POK2
42
+	( incr ) .dvd/y PEK2 #0001 #00 .dvd/dy PEK #00 EQU #fffe MUL2 ADD2 ADD2 .dvd/y POK2
43
+	( draw ) #21 ;draw-dvd JSR2
44
+
45
+BRK
46
+
47
+@draw-dvd ( color -- )
48
+	
49
+	( stash color ) STH 
50
+	;dvd_icn .Screen/addr DEO2
51
+	.dvd/y PEK2 .dvd/y PEK2 #0010 ADD2
52
+	&ver
53
+		OVR2 .Screen/y DEO2
54
+		.dvd/x PEK2 .dvd/x PEK2 #0020 ADD2
55
+		&hor
56
+			OVR2 .Screen/x DEO2
57
+			( draw ) DUPr STHr .Screen/color DEO
58
+			( next ) .Screen/addr DEI2 #0008 ADD2 .Screen/addr DEO2
59
+			( incr ) SWP2 #0008 ADD2 SWP2
60
+			OVR2 OVR2 LTH2 ,&hor JNZ
61
+		POP2 POP2
62
+		( incr ) SWP2 #0008 ADD2 SWP2
63
+		OVR2 OVR2 LTH2 ,&ver JNZ
64
+	POP2 POP2
65
+	( destroy color ) POPr
66
+
67
+JMP2r
68
+
69
+@dvd_icn [
70
+	001f 3f38 3838 787f 00fe fe7e 7777 e3c3
71
+	000f 1f3b 7b77 e7c7 00fc fe8f 8707 0efc
72
+	7f00 000f ff7f 0700 0301 00ff f0f8 ff00
73
+	8700 00ff 7f7f ff00 f000 00e0 fcfc 8000
74
+]
0 75
\ No newline at end of file
1 76
similarity index 100%
2 77
rename from projects/examples/dev.screen-old.usm
3 78
rename to projects/examples/old.dev.screen.usm
4 79
similarity index 100%
5 80
rename from projects/examples/dev.time-old.usm
6 81
rename to projects/examples/old.dev.time.usm
... ...
@@ -13,22 +13,22 @@ WITH REGARD TO THIS SOFTWARE.
13 13
 #include "ppu.h"
14 14
 
15 15
 static Uint8 font[][8] = {
16
-	{0x00, 0x3c, 0x46, 0x4a, 0x52, 0x62, 0x3c, 0x00},
17
-	{0x00, 0x18, 0x28, 0x08, 0x08, 0x08, 0x3e, 0x00},
18
-	{0x00, 0x3c, 0x42, 0x02, 0x3c, 0x40, 0x7e, 0x00},
19
-	{0x00, 0x3c, 0x42, 0x1c, 0x02, 0x42, 0x3c, 0x00},
20
-	{0x00, 0x08, 0x18, 0x28, 0x48, 0x7e, 0x08, 0x00},
21
-	{0x00, 0x7e, 0x40, 0x7c, 0x02, 0x42, 0x3c, 0x00},
22
-	{0x00, 0x3c, 0x40, 0x7c, 0x42, 0x42, 0x3c, 0x00},
23
-	{0x00, 0x7e, 0x02, 0x04, 0x08, 0x10, 0x10, 0x00},
24
-	{0x00, 0x3c, 0x42, 0x3c, 0x42, 0x42, 0x3c, 0x00},
25
-	{0x00, 0x3c, 0x42, 0x42, 0x3e, 0x02, 0x3c, 0x00},
26
-	{0x00, 0x3c, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x00},
27
-	{0x00, 0x7c, 0x42, 0x7c, 0x42, 0x42, 0x7c, 0x00},
28
-	{0x00, 0x3c, 0x42, 0x40, 0x40, 0x42, 0x3c, 0x00},
29
-	{0x00, 0x78, 0x44, 0x42, 0x42, 0x44, 0x78, 0x00},
30
-	{0x00, 0x7e, 0x40, 0x7c, 0x40, 0x40, 0x7e, 0x00},
31
-	{0x00, 0x7e, 0x40, 0x40, 0x7c, 0x40, 0x40, 0x00}};
16
+	{0x00, 0x7c, 0x82, 0x82, 0x82, 0x82, 0x82, 0x7c},
17
+	{0x00, 0x30, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10},
18
+	{0x00, 0x7c, 0x82, 0x02, 0x7c, 0x80, 0x80, 0xfe},
19
+	{0x00, 0x7c, 0x82, 0x02, 0x1c, 0x02, 0x82, 0x7c},
20
+	{0x00, 0x0c, 0x14, 0x24, 0x44, 0x84, 0xfe, 0x04},
21
+	{0x00, 0xfe, 0x80, 0x80, 0x7c, 0x02, 0x82, 0x7c},
22
+	{0x00, 0x7c, 0x82, 0x80, 0xfc, 0x82, 0x82, 0x7c},
23
+	{0x00, 0x7c, 0x82, 0x02, 0x1e, 0x02, 0x02, 0x02},
24
+	{0x00, 0x7c, 0x82, 0x82, 0x7c, 0x82, 0x82, 0x7c},
25
+	{0x00, 0x7c, 0x82, 0x82, 0x7e, 0x02, 0x82, 0x7c},
26
+	{0x00, 0x7c, 0x82, 0x02, 0x7e, 0x82, 0x82, 0x7e},
27
+	{0x00, 0xfc, 0x82, 0x82, 0xfc, 0x82, 0x82, 0xfc},
28
+	{0x00, 0x7c, 0x82, 0x80, 0x80, 0x80, 0x82, 0x7c},
29
+	{0x00, 0xfc, 0x82, 0x82, 0x82, 0x82, 0x82, 0xfc},
30
+	{0x00, 0x7c, 0x82, 0x80, 0xf0, 0x80, 0x82, 0x7c},
31
+	{0x00, 0x7c, 0x82, 0x80, 0xf0, 0x80, 0x80, 0x80}};
32 32
 
33 33
 void
34 34
 clear(Ppu *p)