Initial Commit
This commit is contained in:
16
move_sprite/Makefile
Normal file
16
move_sprite/Makefile
Normal file
@@ -0,0 +1,16 @@
|
||||
AS = lcc -c
|
||||
CC = lcc -Wa-l -Wl-m
|
||||
|
||||
BIN = move_sprite.gb
|
||||
OBJS = move_sprite.o
|
||||
|
||||
all: $(BIN)
|
||||
|
||||
$.s: %.ms
|
||||
maccer -o $@ $<
|
||||
|
||||
$(BIN): $(OBJS)
|
||||
$(CC) -o $(BIN) $(OBJS)
|
||||
|
||||
clean:
|
||||
rm -rf $(BIN) $(OBJS) *~
|
36
move_sprite/move_sprite.c
Normal file
36
move_sprite/move_sprite.c
Normal file
@@ -0,0 +1,36 @@
|
||||
#include <gb/gb.h>
|
||||
#include "ufo.c"
|
||||
|
||||
void main() {
|
||||
int x = 55;
|
||||
int y = 75;
|
||||
|
||||
SPRITES_8x8;
|
||||
set_sprite_data(0, 0, ufo);
|
||||
set_sprite_tile(0, 0);
|
||||
move_sprite(0, x, y);
|
||||
SHOW_SPRITES;
|
||||
|
||||
while(1) {
|
||||
if(joypad() & J_RIGHT) {
|
||||
x++;
|
||||
move_sprite(0, x, y);
|
||||
delay(10);
|
||||
}
|
||||
if(joypad() & J_LEFT) {
|
||||
x--;
|
||||
move_sprite(0, x, y);
|
||||
delay(10);
|
||||
}
|
||||
if(joypad() & J_UP) {
|
||||
y--;
|
||||
move_sprite(0, x, y);
|
||||
delay(10);
|
||||
}
|
||||
if(joypad() & J_DOWN) {
|
||||
y++;
|
||||
move_sprite(0, x, y);
|
||||
delay(10);
|
||||
}
|
||||
}
|
||||
}
|
BIN
move_sprite/move_sprite.gb
Normal file
BIN
move_sprite/move_sprite.gb
Normal file
Binary file not shown.
443
move_sprite/move_sprite.lst
Normal file
443
move_sprite/move_sprite.lst
Normal file
@@ -0,0 +1,443 @@
|
||||
1 ;--------------------------------------------------------
|
||||
2 ; File Created by SDCC : FreeWare ANSI-C Compiler
|
||||
3 ; Version 2.3.1 Wed Jul 8 08:42:08 2020
|
||||
4
|
||||
5 ;--------------------------------------------------------
|
||||
6 .module lcc2241580
|
||||
7
|
||||
8 ;--------------------------------------------------------
|
||||
9 ; Public variables in this module
|
||||
10 ;--------------------------------------------------------
|
||||
11 .globl _main
|
||||
12 .globl _ufo
|
||||
13 ;--------------------------------------------------------
|
||||
14 ; special function registers
|
||||
15 ;--------------------------------------------------------
|
||||
16 ;--------------------------------------------------------
|
||||
17 ; special function bits
|
||||
18 ;--------------------------------------------------------
|
||||
19 ;--------------------------------------------------------
|
||||
20 ; internal ram data
|
||||
21 ;--------------------------------------------------------
|
||||
22 .area _DATA
|
||||
0000 23 _ufo::
|
||||
0000 24 .ds 16
|
||||
25 ;--------------------------------------------------------
|
||||
26 ; overlayable items in internal ram
|
||||
27 ;--------------------------------------------------------
|
||||
28 .area _OVERLAY
|
||||
29 ;--------------------------------------------------------
|
||||
30 ; indirectly addressable internal ram data
|
||||
31 ;--------------------------------------------------------
|
||||
32 .area _ISEG
|
||||
33 ;--------------------------------------------------------
|
||||
34 ; bit data
|
||||
35 ;--------------------------------------------------------
|
||||
36 .area _BSEG
|
||||
37 ;--------------------------------------------------------
|
||||
38 ; external ram data
|
||||
39 ;--------------------------------------------------------
|
||||
40 .area _XSEG
|
||||
41 ;--------------------------------------------------------
|
||||
42 ; global & static initialisations
|
||||
43 ;--------------------------------------------------------
|
||||
44 .area _GSINIT
|
||||
45 .area _GSFINAL
|
||||
46 .area _GSINIT
|
||||
47 ; move_sprite.c 1
|
||||
48 ; move_sprite.c 37
|
||||
49 ; genArrayInit
|
||||
50 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
0000 21 00 00 51 ld hl,#_ufo
|
||||
0003 CD 00 00 52 call __initrleblock
|
||||
0006 10 53 .db 16
|
||||
0007 5A 3C E3 42 7C 99 54 .db 0x5A, 0x3C, 0xE3, 0x42, 0x7C, 0x99, 0xEB, 0xA5
|
||||
EB A5
|
||||
000F FB A5 66 99 E7 42 55 .db 0xFB, 0xA5, 0x66, 0x99, 0xE7, 0x42, 0x5A, 0x3C
|
||||
5A 3C
|
||||
0017 00 56 .db 0
|
||||
57 ;--------------------------------------------------------
|
||||
58 ; Home
|
||||
59 ;--------------------------------------------------------
|
||||
60 .area _HOME
|
||||
61 .area _CODE
|
||||
62 ;--------------------------------------------------------
|
||||
63 ; code
|
||||
64 ;--------------------------------------------------------
|
||||
65 .area _CODE
|
||||
66 ; move_sprite.c 4
|
||||
67 ; genLabel
|
||||
68 ; genFunction
|
||||
69 ; ---------------------------------
|
||||
70 ; Function main
|
||||
71 ; ---------------------------------
|
||||
0000 72 ___main_start:
|
||||
0000 73 _main:
|
||||
0000 E8 F9 74 lda sp,-7(sp)
|
||||
75 ; move_sprite.c 5
|
||||
76 ; genAssign
|
||||
77 ; AOP_STK for _main_x_1_1
|
||||
0002 F8 05 78 lda hl,5(sp)
|
||||
0004 36 37 79 ld (hl),#0x37
|
||||
0006 23 80 inc hl
|
||||
0007 36 00 81 ld (hl),#0x00
|
||||
82 ; move_sprite.c 6
|
||||
83 ; genAssign
|
||||
84 ; AOP_STK for _main_y_1_1
|
||||
0009 F8 03 85 lda hl,3(sp)
|
||||
000B 36 4B 86 ld (hl),#0x4B
|
||||
000D 23 87 inc hl
|
||||
000E 36 00 88 ld (hl),#0x00
|
||||
89 ; move_sprite.c 8
|
||||
90 ; genAssign
|
||||
0010 01 40 FF 91 ld bc,#0xFF40
|
||||
92 ; genAssign
|
||||
93 ; AOP_STK for _main_sloc0_1_0
|
||||
0013 F8 01 94 lda hl,1(sp)
|
||||
0015 36 40 95 ld (hl),#0x40
|
||||
0017 23 96 inc hl
|
||||
0018 36 FF 97 ld (hl),#0xFF
|
||||
98 ; genPointerGet
|
||||
99 ; AOP_STK for _main_sloc0_1_0
|
||||
100 ; AOP_STK for _main_sloc1_1_0
|
||||
001A 2B 101 dec hl
|
||||
001B 5E 102 ld e,(hl)
|
||||
001C 23 103 inc hl
|
||||
001D 56 104 ld d,(hl)
|
||||
001E 1A 105 ld a,(de)
|
||||
001F 2B 106 dec hl
|
||||
0020 2B 107 dec hl
|
||||
108 ; genAnd
|
||||
109 ; AOP_STK for _main_sloc1_1_0
|
||||
0021 77 110 ld (hl),a
|
||||
0022 7F 111 ld a,a
|
||||
0023 E6 FB 112 and a,#0xFB
|
||||
113 ; genAssign (pointer)
|
||||
0025 02 114 ld (bc),a
|
||||
115 ; move_sprite.c 9
|
||||
116 ; genIpush
|
||||
117 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
0026 21 00 00 118 ld hl,#_ufo
|
||||
0029 E5 119 push hl
|
||||
120 ; genIpush
|
||||
002A 21 00 00 121 ld hl,#0x0000
|
||||
002D E5 122 push hl
|
||||
123 ; genCall
|
||||
002E CD 00 00 124 call _set_sprite_data
|
||||
0031 E8 04 125 lda sp,4(sp)
|
||||
126 ; move_sprite.c 10
|
||||
127 ; genIpush
|
||||
128 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
0033 21 00 00 129 ld hl,#0x0000
|
||||
0036 E5 130 push hl
|
||||
131 ; genCall
|
||||
0037 CD 00 00 132 call _set_sprite_tile
|
||||
003A E8 02 133 lda sp,2(sp)
|
||||
134 ; move_sprite.c 11
|
||||
135 ; genIpush
|
||||
136 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
003C 21 37 4B 137 ld hl,#0x4B37
|
||||
003F E5 138 push hl
|
||||
139 ; genIpush
|
||||
0040 3E 00 140 ld a,#0x00
|
||||
0042 F5 141 push af
|
||||
0043 33 142 inc sp
|
||||
143 ; genCall
|
||||
0044 CD 00 00 144 call _move_sprite
|
||||
0047 E8 03 145 lda sp,3(sp)
|
||||
146 ; move_sprite.c 12
|
||||
147 ; genAssign
|
||||
0049 01 40 FF 148 ld bc,#0xFF40
|
||||
149 ; genAssign
|
||||
150 ; AOP_STK for _main_sloc0_1_0
|
||||
004C F8 01 151 lda hl,1(sp)
|
||||
004E 36 40 152 ld (hl),#0x40
|
||||
0050 23 153 inc hl
|
||||
0051 36 FF 154 ld (hl),#0xFF
|
||||
155 ; genPointerGet
|
||||
156 ; AOP_STK for _main_sloc0_1_0
|
||||
157 ; AOP_STK for _main_sloc1_1_0
|
||||
0053 2B 158 dec hl
|
||||
0054 5E 159 ld e,(hl)
|
||||
0055 23 160 inc hl
|
||||
0056 56 161 ld d,(hl)
|
||||
0057 1A 162 ld a,(de)
|
||||
0058 2B 163 dec hl
|
||||
0059 2B 164 dec hl
|
||||
165 ; genOr
|
||||
166 ; AOP_STK for _main_sloc1_1_0
|
||||
005A 77 167 ld (hl),a
|
||||
005B 7F 168 ld a,a
|
||||
005C F6 02 169 or a,#0x02
|
||||
170 ; genAssign (pointer)
|
||||
005E 02 171 ld (bc),a
|
||||
172 ; move_sprite.c 14
|
||||
173 ; genLabel
|
||||
005F 174 00110$:
|
||||
175 ; move_sprite.c 15
|
||||
176 ; genCall
|
||||
177 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
005F CD 00 00 178 call _joypad
|
||||
0062 4B 179 ld c,e
|
||||
180 ; genAnd
|
||||
0063 79 181 ld a,c
|
||||
0064 E6 01 182 and a,#0x01
|
||||
0066 20 03 183 jr nz,00119$
|
||||
0068 C3 90 00 184 jp 00102$
|
||||
006B 185 00119$:
|
||||
186 ; move_sprite.c 16
|
||||
187 ; genPlus
|
||||
188 ; AOP_STK for _main_x_1_1
|
||||
189 ; genPlusIncr
|
||||
006B F8 05 190 lda hl,5(sp)
|
||||
006D 34 191 inc (hl)
|
||||
006E 20 02 192 jr nz,00120$
|
||||
0070 23 193 inc hl
|
||||
0071 34 194 inc (hl)
|
||||
0072 195 00120$:
|
||||
196 ; move_sprite.c 17
|
||||
197 ; genCast
|
||||
198 ; AOP_STK for _main_y_1_1
|
||||
0072 F8 03 199 lda hl,3(sp)
|
||||
0074 4E 200 ld c,(hl)
|
||||
201 ; genCast
|
||||
202 ; AOP_STK for _main_x_1_1
|
||||
0075 23 203 inc hl
|
||||
0076 23 204 inc hl
|
||||
0077 46 205 ld b,(hl)
|
||||
206 ; genIpush
|
||||
207 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
0078 79 208 ld a,c
|
||||
0079 F5 209 push af
|
||||
007A 33 210 inc sp
|
||||
211 ; genIpush
|
||||
007B 78 212 ld a,b
|
||||
007C F5 213 push af
|
||||
007D 33 214 inc sp
|
||||
215 ; genIpush
|
||||
007E 3E 00 216 ld a,#0x00
|
||||
0080 F5 217 push af
|
||||
0081 33 218 inc sp
|
||||
219 ; genCall
|
||||
0082 CD 00 00 220 call _move_sprite
|
||||
0085 E8 03 221 lda sp,3(sp)
|
||||
222 ; move_sprite.c 18
|
||||
223 ; genIpush
|
||||
224 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
0087 21 0A 00 225 ld hl,#0x000A
|
||||
008A E5 226 push hl
|
||||
227 ; genCall
|
||||
008B CD 00 00 228 call _delay
|
||||
008E E8 02 229 lda sp,2(sp)
|
||||
230 ; genLabel
|
||||
0090 231 00102$:
|
||||
232 ; move_sprite.c 20
|
||||
233 ; genCall
|
||||
234 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
0090 CD 00 00 235 call _joypad
|
||||
0093 4B 236 ld c,e
|
||||
237 ; genAnd
|
||||
0094 79 238 ld a,c
|
||||
0095 E6 02 239 and a,#0x02
|
||||
0097 20 03 240 jr nz,00121$
|
||||
0099 C3 C4 00 241 jp 00104$
|
||||
009C 242 00121$:
|
||||
243 ; move_sprite.c 21
|
||||
244 ; genMinus
|
||||
245 ; AOP_STK for _main_x_1_1
|
||||
009C F8 05 246 lda hl,5(sp)
|
||||
009E 5E 247 ld e,(hl)
|
||||
009F 23 248 inc hl
|
||||
00A0 56 249 ld d,(hl)
|
||||
00A1 1B 250 dec de
|
||||
00A2 2B 251 dec hl
|
||||
00A3 73 252 ld (hl),e
|
||||
00A4 23 253 inc hl
|
||||
00A5 72 254 ld (hl),d
|
||||
255 ; move_sprite.c 22
|
||||
256 ; genCast
|
||||
257 ; AOP_STK for _main_y_1_1
|
||||
00A6 F8 03 258 lda hl,3(sp)
|
||||
00A8 4E 259 ld c,(hl)
|
||||
260 ; genCast
|
||||
261 ; AOP_STK for _main_x_1_1
|
||||
00A9 23 262 inc hl
|
||||
00AA 23 263 inc hl
|
||||
00AB 46 264 ld b,(hl)
|
||||
265 ; genIpush
|
||||
266 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
00AC 79 267 ld a,c
|
||||
00AD F5 268 push af
|
||||
00AE 33 269 inc sp
|
||||
270 ; genIpush
|
||||
00AF 78 271 ld a,b
|
||||
00B0 F5 272 push af
|
||||
00B1 33 273 inc sp
|
||||
274 ; genIpush
|
||||
00B2 3E 00 275 ld a,#0x00
|
||||
00B4 F5 276 push af
|
||||
00B5 33 277 inc sp
|
||||
278 ; genCall
|
||||
00B6 CD 00 00 279 call _move_sprite
|
||||
00B9 E8 03 280 lda sp,3(sp)
|
||||
281 ; move_sprite.c 23
|
||||
282 ; genIpush
|
||||
283 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
00BB 21 0A 00 284 ld hl,#0x000A
|
||||
00BE E5 285 push hl
|
||||
286 ; genCall
|
||||
00BF CD 00 00 287 call _delay
|
||||
00C2 E8 02 288 lda sp,2(sp)
|
||||
289 ; genLabel
|
||||
00C4 290 00104$:
|
||||
291 ; move_sprite.c 25
|
||||
292 ; genCall
|
||||
293 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
00C4 CD 00 00 294 call _joypad
|
||||
00C7 4B 295 ld c,e
|
||||
296 ; genAnd
|
||||
00C8 79 297 ld a,c
|
||||
00C9 E6 04 298 and a,#0x04
|
||||
00CB 20 03 299 jr nz,00122$
|
||||
00CD C3 F7 00 300 jp 00106$
|
||||
00D0 301 00122$:
|
||||
302 ; move_sprite.c 26
|
||||
303 ; genMinus
|
||||
304 ; AOP_STK for _main_y_1_1
|
||||
00D0 F8 03 305 lda hl,3(sp)
|
||||
00D2 5E 306 ld e,(hl)
|
||||
00D3 23 307 inc hl
|
||||
00D4 56 308 ld d,(hl)
|
||||
00D5 1B 309 dec de
|
||||
00D6 2B 310 dec hl
|
||||
00D7 73 311 ld (hl),e
|
||||
00D8 23 312 inc hl
|
||||
00D9 72 313 ld (hl),d
|
||||
314 ; move_sprite.c 27
|
||||
315 ; genCast
|
||||
316 ; AOP_STK for _main_y_1_1
|
||||
00DA 2B 317 dec hl
|
||||
00DB 4E 318 ld c,(hl)
|
||||
319 ; genCast
|
||||
320 ; AOP_STK for _main_x_1_1
|
||||
00DC 23 321 inc hl
|
||||
00DD 23 322 inc hl
|
||||
00DE 46 323 ld b,(hl)
|
||||
324 ; genIpush
|
||||
325 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
00DF 79 326 ld a,c
|
||||
00E0 F5 327 push af
|
||||
00E1 33 328 inc sp
|
||||
329 ; genIpush
|
||||
00E2 78 330 ld a,b
|
||||
00E3 F5 331 push af
|
||||
00E4 33 332 inc sp
|
||||
333 ; genIpush
|
||||
00E5 3E 00 334 ld a,#0x00
|
||||
00E7 F5 335 push af
|
||||
00E8 33 336 inc sp
|
||||
337 ; genCall
|
||||
00E9 CD 00 00 338 call _move_sprite
|
||||
00EC E8 03 339 lda sp,3(sp)
|
||||
340 ; move_sprite.c 28
|
||||
341 ; genIpush
|
||||
342 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
00EE 21 0A 00 343 ld hl,#0x000A
|
||||
00F1 E5 344 push hl
|
||||
345 ; genCall
|
||||
00F2 CD 00 00 346 call _delay
|
||||
00F5 E8 02 347 lda sp,2(sp)
|
||||
348 ; genLabel
|
||||
00F7 349 00106$:
|
||||
350 ; move_sprite.c 30
|
||||
351 ; genCall
|
||||
352 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
00F7 CD 00 00 353 call _joypad
|
||||
00FA 4B 354 ld c,e
|
||||
355 ; genAnd
|
||||
00FB 79 356 ld a,c
|
||||
00FC E6 08 357 and a,#0x08
|
||||
00FE 20 03 358 jr nz,00123$
|
||||
0100 C3 5F 00 359 jp 00110$
|
||||
0103 360 00123$:
|
||||
361 ; move_sprite.c 31
|
||||
362 ; genPlus
|
||||
363 ; AOP_STK for _main_y_1_1
|
||||
364 ; genPlusIncr
|
||||
0103 F8 03 365 lda hl,3(sp)
|
||||
0105 34 366 inc (hl)
|
||||
0106 20 02 367 jr nz,00124$
|
||||
0108 23 368 inc hl
|
||||
0109 34 369 inc (hl)
|
||||
010A 370 00124$:
|
||||
371 ; move_sprite.c 32
|
||||
372 ; genCast
|
||||
373 ; AOP_STK for _main_y_1_1
|
||||
010A F8 03 374 lda hl,3(sp)
|
||||
010C 4E 375 ld c,(hl)
|
||||
376 ; genCast
|
||||
377 ; AOP_STK for _main_x_1_1
|
||||
010D 23 378 inc hl
|
||||
010E 23 379 inc hl
|
||||
010F 46 380 ld b,(hl)
|
||||
381 ; genIpush
|
||||
382 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
0110 79 383 ld a,c
|
||||
0111 F5 384 push af
|
||||
0112 33 385 inc sp
|
||||
386 ; genIpush
|
||||
0113 78 387 ld a,b
|
||||
0114 F5 388 push af
|
||||
0115 33 389 inc sp
|
||||
390 ; genIpush
|
||||
0116 3E 00 391 ld a,#0x00
|
||||
0118 F5 392 push af
|
||||
0119 33 393 inc sp
|
||||
394 ; genCall
|
||||
011A CD 00 00 395 call _move_sprite
|
||||
011D E8 03 396 lda sp,3(sp)
|
||||
397 ; move_sprite.c 33
|
||||
398 ; genIpush
|
||||
399 ; _saveRegsForCall: sendSetSize: 0 deInUse: 0 bcInUse: 0 deSending: 0
|
||||
011F 21 0A 00 400 ld hl,#0x000A
|
||||
0122 E5 401 push hl
|
||||
402 ; genCall
|
||||
0123 CD 00 00 403 call _delay
|
||||
0126 E8 02 404 lda sp,2(sp)
|
||||
405 ; genGoto
|
||||
0128 C3 5F 00 406 jp 00110$
|
||||
407 ; genLabel
|
||||
012B 408 00112$:
|
||||
409 ; genEndFunction
|
||||
012B E8 07 410 lda sp,7(sp)
|
||||
012D C9 411 ret
|
||||
012E 412 ___main_end:
|
||||
413 .area _CODE
|
||||
ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 1.
|
||||
|
||||
Symbol Table
|
||||
|
||||
0 ___main_end 012E R
|
||||
0 ___main_start 0000 R
|
||||
__initrleblock **** GX
|
||||
_delay **** GX
|
||||
_joypad **** GX
|
||||
0 _main 0000 GR
|
||||
_move_sprite **** GX
|
||||
_set_sprite_data **** GX
|
||||
_set_sprite_tile **** GX
|
||||
1 _ufo 0000 GR
|
||||
|
||||
ASxxxx Assembler V01.75 (GameBoy Z80-like CPU), page 2.
|
||||
|
||||
Area Table
|
||||
|
||||
0 _CODE size 12E flags 0
|
||||
1 _DATA size 10 flags 0
|
||||
2 _OVERLAY size 0 flags 0
|
||||
3 _ISEG size 0 flags 0
|
||||
4 _BSEG size 0 flags 0
|
||||
5 _XSEG size 0 flags 0
|
||||
6 _GSINIT size 18 flags 0
|
||||
7 _GSFINAL size 0 flags 0
|
||||
8 _HOME size 0 flags 0
|
5
move_sprite/ufo.c
Normal file
5
move_sprite/ufo.c
Normal file
@@ -0,0 +1,5 @@
|
||||
unsigned char ufo[] =
|
||||
{
|
||||
0x5A,0x3C,0xE3,0x42,0x7C,0x99,0xEB,0xA5,
|
||||
0xFB,0xA5,0x66,0x99,0xE7,0x42,0x5A,0x3C
|
||||
};
|
Reference in New Issue
Block a user