; ; Programme d'exemple de mise en mouvement d'un raster avec un tableau ; De plus ce programme restitue des couleurs (@ modifier dans "Image") ; pour donner l'illusion qu'une image s'affiche sous le raster... ; En deux mots c'est pratiquement le meme programme que celui de l'intro ; du menu principal de Quasar. ; ; Note...vous remarquerez que le tableau est stocke a l'envers, ; etrange non ? ; Org &8000 Ent Nolist Long Equ 12 ; Long = nbre de lignes du raster + 1 ; ; Adieu les interruptions !!! ; di ; Tout ceci sert a installer un ld hl,(&38) ; EI, RET ld (inter),hl ; en &38 pour eviter d'utiliser des ld hl,&c9fb ; HALT et pouvoir donc se ld (&38),hl ; synchroniser sur les interruptions Prog ld b,&f5 ; Synchronisation verticale Synchro in a,(c) ; On attend le debut du rra ; video... jp nc,synchro ; puis on se barre ! ds 36 ; On attend le debut de la ligne ld hl,image ; suivante (synchro horizontale) ld bc,&7f00 ; On selectionne le papier out (c),c ; Et hop ! outi ; On envoie les couleurs de l'image inc b ; Encre 0 inc c ; Hop ! out (c),c ; Encre 1 outi ; Hop ! inc b ; C'est pas fini ! inc c ; Patience... out (c),c ; Encre 2 outi ; Hop ! inc b ; La fin approche... inc c ; Encre 3 out (c),c ; Hop la ! outi ; C'est fini... inc b ; On remet b comme il faut... ld hl,tableau ; On pointe sur la tableau Loop2 ld a,(hl) ; Hop ! cp 0 ; Si 0 Alors fin raster donc... jp z,suite ; On passe a la suite ! ld c,16 ; Selection du Border out (c),c ; Hop ! out (c),a ; Modif du border ld c,0 ; Selection de l'encre 0 out (c),c ; Modif de l'encre 0 out (c),a ; Hop ! inc hl ; On passe a la ligne suivante ds 32 ; Patience... jp loop2 ; C'est reparti pour un tour... Suite ld a,64+20 ; On remet tout a zero ld c,1 ; Encre 1 out (c),c ; Hop ! out (c),a ; Zero inc c ; Encre 2 out (c),c ; Hop ! out (c),a ; Zero inc c ; Encre 3 out (c),c ; Hop ! out (c),a ; Zero xor a ; On se prepare pour ld hl,(courant); reinitialiser le tableau ld b,long ; juste ou il le faut... Loop3 ld (hl),20+64 ; C'est tout bete dec hl ; Une petit boucle djnz loop3 ; s'occupe de tout ! ld hl,(courant); On passe a la ligne inc hl ; suivante... ld (courant),hl; On sauve pour savoir ou cp (hl) ; on en est au prochain coup ! jp z,fin ; Si fin tableau bye ! ld de,raster ; Sinon on y sauve le raster... ld b,long ; Ne me demandez pas pourquoi Loop1 ld a,(de) ; je n'ai pas fait avec LDDR ou ld (hl),a ; LDIR car se serais trop long a inc de ; expliquer... dec hl ; Vous comprendrez bien par djnz loop1 ; meme... jp prog ; On repart pour une VBL ! Fin ei ; Ici, pas de miracle ld hl,(inter) ; On restitue le systeme ld (&38),hl ; proprement avant de ret ; partir... ; ; Datas ; ; Couleurs de l'image a restituer (MODE 1) Image db 64+20,64+30,64+10,64+14 ; Raster a faire defiler...Attention ! ; Il doit commancer par zero et les ; couleurs doivent etre mise a l'envers ! Raster db 0 db 64+20,64+4,64+21,64+23,64+31,64+19 db 64+11,64+10,64+14,64+12,64+28 ; Le tableau ou l'on stockera le raster Tableau db 0 ds 310,64+20 db 0 ; Sauvegarde Interruptions Inter dw 0000 ; Pointeur du tableau Courant dw tableau+long-1 ; De plus ce programme restitue des couleurs (@ modif 1) Image db 64+20,64+30,64+10,64+14 ; Raster a faire defiler...Attention ! ; Il doit commancer par zero et les ; couleurs doivent etre mise a l'envers ! Raster db 0 db 64+20,64+4,64+21,64+23,64+31,64+19 db 64+11,64+10,64+14,64+- ƒ:²£ƒ ƒž²Q£ƒ ++²ƒƒ+£Až’ Œ“ùŒC‡ +ÞN7AžIŒŒCÁ ƒ'3+!K+QA­Œ 3€+Ï„„Ï7“…Œ#ŒF F 0-Žc/0iJFF$#@‡ŽB o²Œ+ Œ“‡$HA NŒB¬ ‚% H·iIŒN?+Ï ?“ŒAŒ È  %¬Œ' i“  È!ŒHÈ  Œ ŒÈHHNŒsŽsŒ„÷€C