BUILDSNA : BANKSET 0
ORG #100 : RUN #100
ld sp,#100
ld ix,tileMap
ld de,#C000
ld yh,12 ; nombre de tuiles en hauteur (ça tombe pas pile dans notre exemple avec un écran de 200 lignes)
afficheLigne
ld yl,10 ; nombre de tuiles en largeur
push de ; sauvegarder l'adresse de début de ligne de l'écran
afficheTuile
push de ; sauvegarder l'adresse du début de la tuile à l'écran
ld h,(ix+0) : inc ix : ld l,0 : srl hl ; x256/2 c'est la taille de nos tuiles
ld bc,tuiles : add hl,bc ; on a l'adresse de la tile
ld a,16
afficheLigneTuile
push de : ldi 8 : pop de
ld bc,#800 : ex hl,de : add hl,bc : jr nc,.novf : ld bc,80-#4000 : add hl,bc : .novf ex hl,de
dec a : jr nz,afficheLigneTuile
pop hl : ld bc,8 : add hl,bc : ex hl,de ; se placer juste à côté de la tuile précédente
dec yl : jr nz,afficheTuile
pop hl : ld bc,160 : add hl,bc : ex hl,de ; se placer sous les tuiles à gauche
dec yh : jr nz,afficheLigne
jr $
tileMap
defb 0,0,1,0,0,0,1,1,0,0
defb 0,1,0,1,0,1,0,0,0,0
defb 0,1,1,1,0,0,1,0,0,0
defb 0,1,0,1,0,0,0,1,0,0
defb 0,1,0,1,0,1,1,0,0,0
defb 0,0,0,0,0,0,0,0,0,0
defb 0,0,1,0,0,0,1,0,0,0
defb 0,0,1,1,0,1,1,0,0,0
defb 0,0,1,0,1,0,1,0,0,0
defb 0,0,1,0,0,0,1,0,0,0
defb 0,0,1,0,0,0,1,0,0,0
defb 0,0,0,0,0,0,0,0,0,0
tuiles
; deux tuiles unicolores arbitraires
tuile0 defs 8*16,%11110000
tuile1 defs 8*16,%00001111
|