;=====================================================
InitEcran
;=====================================================
; IX = structure buffer
; HL = position de départ dans la tileMap
; A = poids fort de la page vidéo
ld (ix+multi.nextBuffer),de
ld hl,depx : ld (hl),0
ld hl,depy : ld (hl),0
ld hl,tileMap
ld (ix+multi.mapOffset),hl
ld hl,0
ld (ix+multi.HSSR),h
ld (ix+multi.VSSR),h
ld (ix+multi.colonne),h
ld (ix+multi.ligne),h
ld (ix+multi.crtcHL),hl
ld h,a : ld (ix+multi.adresseDebut),hl
rrca : rrca : ld (ix+multi.crtc12),a
; Afficher les tuiles sur tout l'écran
ld de,(ix+multi.adresseDebut)
; on n'utilise plus la structure IX à partir de là
pop ix ; on récupère l'info de la position dans la tileMap
ld yh,256/ENGINE_TILE_HEIGHT ; 8 tuiles en hauteur de 32 lignes de haut
afficheLigne
ld yl,ENGINE_NBTILE_WIDTH ; nombre de tuiles en largeur octet (8x8=64)
push de ; sauvegarder l'adresse de début de ligne de l'écran
afficheTuile
push de ; sauvegarder l'adresse du début de la première tuile à l'écran à gauche
ld h,hi(tuiles_index) : ld l,(ix+0) : inc xl : ld a,(hl) : inc h : ld h,(hl) : ld l,a ; HL=tile start
ld bc,((ENGINE_TILE_HEIGHT+1)<<8)|ENGINE_TILE_WIDTH-1 ; ajuster C au maximum pour contrôler l'effet de bord des LDI (compatible tilesize==256)
afficheLigneTuile
ldi ENGINE_TILE_WIDTH
ld a,l : sub ENGINE_TILE_WIDTH : ld l,a : inc h ; note : calcul faux sur la dernière ligne si tilesize==256, mais le résultat ne sera pas utilisé
NextLineDE_width
ld a,e : sub ENGINE_TILE_WIDTH : ld e,a
ld a,d : sbc #F8 : ld d,a : and #38 : jr nz,_+
ld a,64 : add e : ld e,a
ld a,#C0 : adc d : ld d,a
res 3,d
_
djnz,afficheLigneTuile
pop hl : ld bc,ENGINE_TILE_WIDTH : add hl,bc : ex hl,de ; se placer juste à côté de la tuile précédente
dec yl
jr nz,afficheTuile
ld bc,ENGINE_MAP_WIDTH-ENGINE_NBTILE_WIDTH : add ix,bc ; revenir à la ligne de tuile (map de 128x128 et 8 tuiles en largeur)
pop hl : ld bc,64*ENGINE_TILE_HEIGHT/8 : add hl,bc : ex hl,de ; se placer sous les tuiles à gauche DE est nouvelle adresse
dec yh : jr nz,afficheLigne
ret
|