.org $c000
_Header:
.db $FE
.dw start,end,start
start:
; the address of our program
ld a,$02; screen mode 2
call $005F
ld b,$c2; sprite 16x16
ld c,$01; register 1
call $0047
_debut:
ld hl,$1B00
ld (_tas),hl
ld hl,$3800
ld (_pixel),hl
ld bc,_message
_mainLoop:
ld a,(bc);stock
ld hl, (_pixel); 1 octet
call $004d
ld hl,(_pixel)
inc hl
ld (_pixel),hl; build sprite1ld a, (bc)
cp 2 ; repere pour fin de construction des sprites
jp z,_move
call $00a2
inc bc
jp _mainLoop;sprite 1
_message:
.db 255,255,128,128+64,128+64+32,128+64+32+16,128+64+32+16+8,128+64+32+16+8+4,128+64+32+16+8+4+2,128+64+32+16+8+4+2+1
.db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
.db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
.db $ff,$ff,$ff,$ff,$ff,$ff,$FF,$ff
;sprite 2
.db $ff,$81,$81,$81,$81,$81,$81,$ff
.db $ff,$81,$81,$81,$81,$81,$81,$ff
.db $ff,$81,$81,$81,$81,$81,$81,$ff
.db $ff,$81,$81,$81,$81,$81,$81,$ff
;sprite 3
.db 128,128+64,128+64+32,128+64+32+16,128+64+32+16+8,128+64+32+16+8+4,128+64+32+16+8+4+2,128+64+32+16+8+4+2+1
.db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
.db 0,0,0,0,0,0,0,0
.db 128,128+64,128+64+32,128+64+32+16,128+64+32+16+8,128+64+32+16+8+4,128+64+32+16+8+4+2,128+64+32+16+8+4+2+1
.db 1
db 2; fin de construction des sprites
_move:
ld hl,$1B00
ld (_tas),hl;-----------sprite 1----------
;1 er sprite
ld a,(_y)
ld hl,(_tas) ; locate y sprite 1
call $004d
inc hl
ld (_tas),hl
ld a,(_x)
inc a
ld (_x),a
ld hl,(_tas) ; locate x sprite 1
call $004d
inc hl
ld (_tas),hl
ld a,0; nuber of sprite 1
ld hl,(_tas) ; tgs sprite 1
call $004d
inc hl
ld (_tas),hl
ld a,$57
ld hl,(_tas) ; color sprite 1
call $004d
inc hl
ld (_tas),hl
;-----------sprite 2----------
;
ld a,(_y2)
ld hl,(_tas) ; locate y sprite 2
call $004d
inc hl
ld (_tas),hl
ld a,(_x2)
inc a
ld (_x2),a
ld hl,(_tas) ; locate x sprite 2
call $004d
inc hl
ld (_tas),hl
ld a,4; nuber of sprite 2
ld hl,(_tas) ; tgs sprite 2
call $004d
inc hl
ld (_tas),hl
ld a,$89
ld hl,(_tas) ; color sprite 2
call $004d
inc hl
ld (_tas),hl
;-----------sprite 3----------
;
ld a,(_y3)
ld hl,(_tas) ; locate y sprite 3
call $004d
inc hl
ld (_tas),hl
ld a,(_x3)
inc a
ld (_x3),a
ld hl,(_tas) ; locate x sprite 3
call $004d
inc hl
ld (_tas),hl
ld a,8; number of sprite 3
ld hl,(_tas) ; tgs
call $004d
inc hl
ld (_tas),hl
ld a,$AB
ld hl,(_tas) ; color sprite 3
call $004d
inc hl
ld (_tas),hl; timerld de,(_counter)
_boucle:
inc de
ld (_counter),de
ld a,d
or e
cp 255
jp z,_suite
jr _boucle
_suite:
ld de,0
ld (counter),de
ld de,(counter2)
continue2:
inc de
ld (counter2),de
ld a,d
or e
cp 25
jp z,_continue
jr boucle
_continue:
ld de,0
ld (_counter2),de
jp _move_counter:
.dw $0000
_counter2:
.dw $0000
.dw $0000
_tas:
.dw $0000
_pixel:
.dw $0000
_y:
.db 0
_x:
.db 255-15
_y2:
.db 16
_x2:
.db 16
_x3:
.db 16
_y3:
.db 32
end:
; use the label "start" as the entry point