include 'dzx0_standard.asm' ; contient une macro pour la routine de decrunch ZX0
org #4000
di
ld sp,#8000 ; impératif que la pile se situe TOUJOURS en mémoire étendue
ld hl,fullSet0 : ld de,#0000 : call unzx0
ld hl,fullSet3 : ld de,#C000 : call unzx0
ld bc,#7FC2 : out (c),c ; connecter toute la mémoire étendue pour sauter dans la bank logique 7 depuis la bank logique 4
jp #C000
unzx0 dzx0_standard (void)
fullSet0 incbin 'fullSet0.zx0'
fullSet3 incbin 'fullSet3.zx0'
SAVE 'bank5.bin',#4000,$-#4000,DSK,'color_cycling.dsk'
; -----------------------------
org #C000
ld bc,#7FC1 : out (c),c ; car ce code sera appelé depuis une bascule de type 2
; et qu'on a besoin de voir la mémoire centrale le temps de décruncher
ld sp,#0000 ; impératif que la pile se situe TOUJOURS en mémoire étendue
ld hl,fullSet1 : ld de,#4000 : call unzx0bis
ld hl,fullSet2 : ld de,#8000 : call unzx0bis
jp ColorCycling
unzx0bis dzx0_standard (void) ; la routine est deux fois en mémoire, il faut changer son nom pour avoir le droit de le faire
fullSet1 incbin 'fullSet1.zx0'
fullSet2 incbin 'fullSet2.zx0'
; ----------------------------
ColorCycling
ld bc,#BC01 : out (c),c : inc b : ld a,32 : out (c),a
ld bc,#BC02 : out (c),c : inc b : ld a,42 : out (c),a
ld bc,#BC06 : out (c),c : inc b : ld a,32 : out (c),a
ld bc,#BC07 : out (c),c : inc b : ld a,34 : out (c),a
ld bc,#BC00+12 : out (c),c
ld hl,#544B : ld de,#4B54
debut
call novbl : ld bc,#BD00 : out (c),c : call couleursPaires
call novbl : call couleursImpaires
call novbl : ld bc,#BD10 : out (c),c : call couleursPaires
call novbl : call couleursImpaires
call novbl : ld bc,#BD20 : out (c),c : call couleursPaires
call novbl : call couleursImpaires
call novbl : ld bc,#BD30 : out (c),c : call couleursPaires
call novbl : call couleursImpaires
ex hl,de
jr debut
couleursPaires
ld bc,#7F00 : out (c),c : ld a,h : out (c),a
ld bc,#7F01 : out (c),c : ld a,l : out (c),a
ld bc,#7F02 : out (c),c : ld a,h : out (c),a
ld bc,#7F03 : out (c),c : ld a,l : out (c),a
ret
couleursImpaires
ld bc,#7F00 : out (c),c : ld a,h : out (c),a
ld bc,#7F01 : out (c),c : ld a,h : out (c),a
ld bc,#7F02 : out (c),c : ld a,l : out (c),a
ld bc,#7F03 : out (c),c : ld a,l : out (c),a
ret
novbl ld b,#F5 : in a,(c) : rra : jr c,novbl
vbl ld b,#F5 : in a,(c) : rra : jr nc,vbl : ret
SAVE 'bank7.bin',#C000,$-#C000,DSK,'color_cycling.dsk'
|