Browse code

(amiga.tal) Use call opcodes

Devine Lu Linvega authored on 24/01/2023 17:09:36
Showing 2 changed files
1 1
new file mode 100644
2 2
Binary files /dev/null and b/projects/examples/demos/amiga.rom.sym differ
... ...
@@ -9,14 +9,17 @@
9 9
 	@timer $1
10 10
 	@frame $1
11 11
 
12
+(
13
+@|vectors )
14
+
12 15
 |0100
13 16
 
14 17
 	( vectors )
15 18
 	;on-frame .Screen/vector DEO2
16 19
 	( theme )
17
-	#aff0 .System/r DEO2
20
+	#aff5 .System/r DEO2
18 21
 	#af00 .System/g DEO2
19
-	#af00 .System/b DEO2
22
+	#af05 .System/b DEO2
20 23
 	( screen size )
21 24
 	#0140 .Screen/width DEO2
22 25
 	#0100 .Screen/height DEO2
... ...
@@ -27,8 +30,8 @@
27 30
 	#0008 .ball/vx STZ2
28 31
 	#0000 .ball/vy STZ2
29 32
 	( once )
30
-	;make-shadow JSR2
31
-	;draw-background JSR2
33
+	make-shadow
34
+	draw-background
32 35
 
33 36
 BRK
34 37
 
... ...
@@ -40,14 +43,17 @@ BRK
40 43
 	#00 .timer STZ
41 44
 	( 12 frames animation )
42 45
 	.frame LDZ INC DUP #0c NEQ MUL .frame STZ
43
-	,move-ball JSR
46
+	move-ball
44 47
 
45 48
 BRK
46 49
 
50
+(
51
+@|core )
52
+
47 53
 @check-flip-vx ( x -- x )
48 54
 
49
-	( left ) DUP2 #0010 LTH2 ,&flip JCN 
50
-	( right ) DUP2 .Screen/width DEI2 #0050 SUB2 GTH2 ,&flip JCN ,&else JMP
55
+	( left ) DUP2 #0010 LTH2 ?&flip 
56
+	( right ) DUP2 .Screen/width DEI2 #0050 SUB2 GTH2 ?&flip ,&else JMP
51 57
 	&flip .ball/vx LDZ2k #ffff EOR2 ( INC2 ) ROT STZ2
52 58
 	&else
53 59
 
... ...
@@ -55,7 +61,7 @@ JMP2r
55 61
 
56 62
 @check-flip-vy ( y -- y )
57 63
 
58
-	( bottom ) DUP2 .Screen/height DEI2 #0050 SUB2 GTH2 ,&flip JCN ,&else JMP
64
+	( bottom ) DUP2 .Screen/height DEI2 #0050 SUB2 GTH2 ?&flip ,&else JMP
59 65
 	&flip .ball/vy LDZ2k #ffff EOR2 ( INC2 ) ROT STZ2
60 66
 	&else
61 67
 
... ...
@@ -70,13 +76,13 @@ JMP2r
70 76
 	#0800
71 77
 	&loop-bg
72 78
 		#40 .Screen/sprite DEO
73
-		INC GTHk ,&loop-bg JCN
79
+		INC GTHk ?&loop-bg
74 80
 	POP2
75 81
 
76 82
 	.ball/vx LDZ2k STH2k ROT STZ2
77
-	.ball/x LDZ2k STH2r ADD2 ,check-flip-vx JSR ROT STZ2
83
+	.ball/x LDZ2k STH2r ADD2 check-flip-vx ROT STZ2
78 84
 	.ball/vy LDZ2k INC2 STH2k ROT STZ2
79
-	.ball/y LDZ2k STH2r ADD2 ,check-flip-vy JSR ROT STZ2
85
+	.ball/y LDZ2k STH2r ADD2 check-flip-vy ROT STZ2
80 86
 
81 87
 @draw-ball ( -- )
82 88
 
... ...
@@ -88,7 +94,7 @@ JMP2r
88 94
 	#0700
89 95
 	&loop-shadow
90 96
 		#4f .Screen/sprite DEO
91
-		INC GTHk ,&loop-shadow JCN
97
+		INC GTHk ?&loop-shadow
92 98
 	POP2
93 99
 	.frame LDZ
94 100
 	( bg )
... ...
@@ -100,7 +106,7 @@ JMP2r
100 106
 	#0700
101 107
 	&loop-bg
102 108
 		STHkr .Screen/sprite DEO
103
-		INC GTHk ,&loop-bg JCN
109
+		INC GTHk ?&loop-bg
104 110
 	POP2
105 111
 	POPr
106 112
 	( fg )
... ...
@@ -112,7 +118,7 @@ JMP2r
112 118
 	#0700
113 119
 	&loop-fg
114 120
 		STHkr .Screen/sprite DEO
115
-		INC GTHk ,&loop-fg JCN
121
+		INC GTHk ?&loop-fg
116 122
 	POP2
117 123
 	POPr
118 124
 
... ...
@@ -130,9 +136,9 @@ JMP2r
130 136
 		.Screen/width DEI2 #03 SFT2 NIP #08 SUB #00
131 137
 		&horhor
132 138
 			#0f .Screen/sprite DEO
133
-			INC GTHk ,&horhor JCN
139
+			INC GTHk ?&horhor
134 140
 		POP2
135
-		INC GTHk ,&horver JCN
141
+		INC GTHk ?&horver
136 142
 	POP2
137 143
 	( ver lines )
138 144
 	#02 .Screen/auto DEO
... ...
@@ -144,20 +150,20 @@ JMP2r
144 150
 		.Screen/height DEI2 #03 SFT2 NIP #0a SUB #00
145 151
 		&verhor
146 152
 			#0f .Screen/sprite DEO
147
-			INC GTHk ,&verhor JCN
153
+			INC GTHk ?&verhor
148 154
 		POP2
149
-		INC GTHk ,&verver JCN
155
+		INC GTHk ?&verver
150 156
 	POP2
151 157
 
152 158
 JMP2r
153 159
 
154 160
 @make-shadow ( -- )
155 161
 
156
-	;bg ;shadow #0188 ;mcpy JSR2
162
+	;bg ;shadow #0188 mcpy
157 163
 	#0188 #0000
158 164
 	&loop
159 165
 		DUP2 ;shadow ADD2 LDA2k #aa55 AND2 SWP2 STA2
160
-		INC2 INC2 GTH2k ,&loop JCN
166
+		INC2 INC2 GTH2k ?&loop
161 167
 	POP2 POP2
162 168
 
163 169
 JMP2r
... ...
@@ -168,12 +174,15 @@ JMP2r
168 174
 	OVR2 ADD2 SWP2
169 175
 	&loop
170 176
 		LDAk STH2kr STA INC2r
171
-		INC2 GTH2k ,&loop JCN
177
+		INC2 GTH2k ?&loop
172 178
 	POP2 POP2
173 179
 	POP2r
174 180
 
175 181
 JMP2r
176 182
 
183
+(
184
+@|assets )
185
+
177 186
 @hor-icn
178 187
 	0000 0000 0000 00ff
179 188
 @ver-icn