Inscription : 13 Jan 2010, 14:25 Message(s) : 2270
Citer :
Je mets l'interruption à la ligne 255 et j'ajoute une temporisation (nops) dans le handler d'interruption qui permet d'attendre le début de la ligne 0. A partir de là, le raster commence, et le résultat est nickel !
Contant que la théorie fonctionne ! Evidemment ça n'a rien d'optimal, mais ça a le mérite de fonctionner.
Voici un exemple que je viens juste de tester sur Winape... Tu devras peut-être réadapter sur Cpc Plus car Winape ne gère pas correctement l'emulation Raster du Cpc+...
En effet, sur Cpc Plus les rasters demarrent avec un nop de décalage par rapport au cpc old. L'emulation Cpc Plus de Winape fait la même chose que les cpc old et a donc un nop de retard par rapport à un vrai Cpc Plus.
Je ne sais pas si je me fais bien comprendre. Si ce n'est pas le cas, n'hésites pas à revenir vers moi.
Voici l'exemple :
Code :
org #8000 run $ pri equ #6800 start DI LD HL,#C9FB LD (#38),HL ; ld bc,#bc01 ld de,#3032 out (c),c:inc b:out (c),d:dec b:inc c out (c),c:inc b:out (c),e:dec b ld de,#0723 out (c),d:inc b:out (c),e ; Delock LD E,17 LD HL,ASIC LD BC,#BC00 Loop LD A,(HL) OUT (C),A dec e INC HL JR NZ,Loop ei ; main ld b,#f5 vsync in a,(c) rra jr nc,vsync ; ld bc,#7fb8:out (c),c ; Asic On ld hl,#f00:ld (#6400),hl ; Ink 0 -> White ; Premiere couleur pri=0 ld a,1:ld (pri),a halt defs 22,0 call raster ;
ld b,8 ; Number of colours Rastloop ld a,(de) ld (hl),a inc l inc de ld a,(de) ld (hl),a inc de dec l defs 64-18,0 djnz Rastloop ret ; tbrast defw #000,#fff,#000,#fff defw #000,#fff,#000,#000
Inscription : 28 Mai 2010, 11:34 Message(s) : 99 Localisation : Eteauville, France
salut !
Tout d'abord, merci d'avoir pris le temps de me répondre ! J'ai testé ton code et la première ligne du raster se trouve en ligne 3 (je crois) et non en ligne 0 avec winape. De toute façon, étant donné que le minimum que l'on puisse mettre dans le registre PRI est 1 et que l'interruption se déclenche à la fin de la ligne (donc fin de ligne 1), le raster ne peut donc pas se placer avant la ligne 2.
Donc cette méthode ne me permet pas de placer le raster en ligne 0 comme je voulais. L'autre méthode que j'ai trouvé consiste à déclencher l'interruption à la dernière ligne visible et temporiser pour permettre un affichage réel en ligne 0. Le problème c'est que c'est couillon de perdre autant de cycles cpu avec une temporisation pour un simple raster...
Si c'est juste pour un raster simple et pas un split raster je ne vois pas ou est le problème... Ou alors j'ai mal compris ce que tu veux et il s'agit de splits...
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 68 invité(s)
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum