| CPC Rulez https://cpcrulez.fr/forum/ |
|
| Modifier l'emplacement du VBL avec un OUT https://cpcrulez.fr/forum/viewtopic.php?f=4&t=296 |
Page 1 sur 1 |
| Auteur : | dominique [ 22 Juin 2008, 15:40 ] |
| Sujet du message : | Modifier l'emplacement du VBL avec un OUT |
Normalement le VBL se déclanche en haut de l'écran. Les codeurs de démos sur CPC arrivent à modifier l'attente du raster où ils veulent. Je voudrais connaitre l'astuce de programmation avec un OUT et accompagné d'une explication. |
|
| Auteur : | Megachur [ 22 Juin 2008, 19:57 ] |
| Sujet du message : | Re: Modifier l'emplacement du VBL avec un OUT |
qu'est-ce que tu veux faire exactement ? en fait, il suffit de prendre la main en asm (sans les interruptions amsdos) et de créer un programme asm qui fait en sorte que l'écran ne soit plus synchronisé à 50hz... mais est-ce que c'est ce que tu veux exactement ? |
|
| Auteur : | cmp [ 25 Juil 2008, 00:51 ] |
| Sujet du message : | Re: Modifier l'emplacement du VBL avec un OUT |
euih c'est tout con frame ld b,#F5 in a,(c) rra jr nc,frame ; ;tu veux attendre 1 ligne apres la vbl ;facile ds 64,0 ;64 Nops jp frame apres tu fais tes rasters ou tu veux |
|
| Auteur : | BDCIron [ 25 Juil 2008, 01:52 ] |
| Sujet du message : | Re: Modifier l'emplacement du VBL avec un OUT |
Ca va bouger ton truc CMP en plus en fonction du CRTC tu ne sera pas au meme endroit... Et rien ne dit que tu as choppé le debut de la VBL... |
|
| Auteur : | markerror [ 25 Juil 2008, 07:41 ] |
| Sujet du message : | Re: Modifier l'emplacement du VBL avec un OUT |
Bonjour, Si je décrypte la question, l'idée n'est pas de modifier le début de la VBL, mais plutôt de savoir comment faire des changement de palettes et de mode. Le plus simple, c'est de récupérer un exemple de routine de rasters, si elle n'est pas pourrite, tout devrait s'éclairer La technique est assez simple en fait, si on veut changer une couleur à une ligne précise de l'écran, il faut : 1) Virer les interruptions avec un DI et détourner le vecteur &38 en lui pokant un EI RET (FB C9). Si on ne détourne pas ce vecteur, le "raster" ne sera pas parfaitement stable. 2) se synchroniser sur le début de la VBL (avec l'équivalent d'un CALL &BD19), la routine décrite au dessus par CMP 3) attendre... - soit en utilisant des commandes HALT (en n'oubliant alors pas de remettre les interruptions en ligne par un EI NOP) dont la fonction est en gros d'attendre 300ms (soit 1/6ème de la hauteur de l'écran). - soit avec une simple boucle qui incrémente un registre 16 bits. En général, on mélange plutôt les deux méthodés 4) modifier la couleur. C'est pas plus compliqué que cela ! T&J/GPA |
|
| Auteur : | cmp [ 25 Juil 2008, 08:04 ] |
| Sujet du message : | Re: Modifier l'emplacement du VBL avec un OUT |
voilà en gros ce que disais TOM ORG #1000 ; ENT $ ; ; DI LD hl,(#38) LD (INTER),hl LD hl,#c9fb LD (#38),hl ; ; EI main LD b,#F5 syn IN a,(c) RRA JR nc,syn ; HALT ;Les halts arrivent tous les 52lignes donc 52*6=312,5 HALT ; ld bc,#7F00 out (c),c ld a,#5C out (c),c ; HALT ld bc,#7F00 out (c),c ld a,#4C out (c),c ; HALT ld bc,#7F00 out (c),c ld a,#4E out (c),c ; HALT ld bc,#7F00 out (c),c ld a,#54 out (c),c ;test space LD bc,#F40E OUT (c),c LD bc,#F6C0 OUT (c),c XOR a OUT (c),a LD bc,#F792 OUT (c),c DEC b LD c,#45 OUT (c),c LD b,#F4 IN a,(c) LD bc,#F782 OUT (c),c DEC b LD c,#00 OUT (c),c AND #80 JP nz,main ; ; retour au systeme et restaure interruption z80 sys ; LD bc,#bc04 OUT (c),c INC b LD c,38 OUT (c),c ; LD bc,#bc02 OUT (c),c INC b LD c,46 OUT (c),c ; LD bc,#bc01 OUT (c),c INC b LD c,40 OUT (c),c ; LD bc,#bc07 OUT (c),c INC b LD c,30 OUT (c),c LD bc,#bc06 OUT (c),c INC b LD c,25 OUT (c),c ; LD bc,#bc0C OUT (c),c LD bc,#bd30 OUT (c),c LD bc,#bc0D OUT (c),c LD bc,#BD00 OUT (c),c ; ; LD hl,(INTER) LD (#38),HL EI ; RET INTER DW 0 |
|
| Auteur : | hERMOL [ 25 Juil 2008, 08:58 ] |
| Sujet du message : | Re: Modifier l'emplacement du VBL avec un OUT |
pour info des tonnes d'articles sur le sujet rasters sont à lire sur le site ... http://www.google.fr/search?hl=fr&sites ... cher&meta= https://cpcrulez.fr/coding.htm#CRTCA100 |
|
| Auteur : | BDCIron [ 25 Juil 2008, 11:27 ] |
| Sujet du message : | Re: Modifier l'emplacement du VBL avec un OUT |
Ta routine CMP ne marchera toujours pas de la même façon sur tous les CPC... Exemple sur CRTC 1, ton premier HALT choppera l'interruption qui a lieu en même temps que la VBL tandis que sur les autres tu seras sur la 2ème... Pour palier à cela, un petit LB B,32:DJNZ $ avant le premier HALT te permettra au moins d'éviter cela. |
|
| Auteur : | cmp [ 25 Juil 2008, 13:16 ] |
| Sujet du message : | Re: Modifier l'emplacement du VBL avec un OUT |
je le sais bien amaury le but etait d'écrire en code assembleur bien sur, je suis totalement d'accord avec ce que tu dis petite question pour la personne ayant posté : Cela te convient-il ? |
|
| Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|