Derniers sujets
» Bonnes fêtes
remplissage de l'écran Hires EmptyDim 19 Jan 2020 - 19:36 par retroric

» rs
remplissage de l'écran Hires EmptyDim 19 Jan 2020 - 10:18 par Symoon

» Ca se frite sur eBay ! :-)
remplissage de l'écran Hires EmptyMer 15 Jan 2020 - 10:36 par Oric1-Atmos

» Cartouche telestrat
remplissage de l'écran Hires EmptySam 11 Jan 2020 - 22:59 par 6502man

» Contrôleur microdisc (mini)
remplissage de l'écran Hires EmptyMer 8 Jan 2020 - 12:11 par Oric1-Atmos

» Abonnement
remplissage de l'écran Hires EmptyMar 7 Jan 2020 - 3:50 par didierv

» ROM 1.22?
remplissage de l'écran Hires EmptyLun 6 Jan 2020 - 19:33 par froggy

» Oricutron - Problème touche clavier
remplissage de l'écran Hires EmptyDim 5 Jan 2020 - 9:16 par jbperin

» Telestrat a Vendre
remplissage de l'écran Hires EmptyVen 3 Jan 2020 - 22:30 par didierv

» Nouveau site ceo.oric.org
remplissage de l'écran Hires EmptyMar 31 Déc 2019 - 0:17 par didierv

» jeu Rain Panic
remplissage de l'écran Hires EmptyLun 30 Déc 2019 - 22:27 par jbperin

» Bocco's adventures - nouveau jeu pour Oric
remplissage de l'écran Hires EmptyVen 27 Déc 2019 - 10:12 par Admin

» Branchement alimentation péritel [Résolu]
remplissage de l'écran Hires EmptyJeu 26 Déc 2019 - 19:41 par jbperin

» Chuck Peddle
remplissage de l'écran Hires EmptyLun 23 Déc 2019 - 20:38 par jbperin

» Une découverte probablement majeure pour la 3D sur Oric !!
remplissage de l'écran Hires EmptyLun 23 Déc 2019 - 12:15 par jbperin

Qui est en ligne ?
Il y a en tout 2 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 2 Invités

Aucun

Le record du nombre d'utilisateurs en ligne est de 29 le Mer 25 Fév 2015 - 14:01
Connexion

Récupérer mon mot de passe

Statistiques
Nous avons 205 membres enregistrés
L'utilisateur enregistré le plus récent est TOOR

Nos membres ont posté un total de 8466 messages dans 734 sujets
Portail ORIC




remplissage de l'écran Hires

Aller en bas

remplissage de l'écran Hires Empty remplissage de l'écran Hires

Message par goyo le Jeu 28 Mar 2019 - 16:31

J'aimerais savoir s'il existe algo significativement plus rapide que celui-ci pour effacer l'écran ???

Code:

_fillscr
 
 ldy #199
 suite
 lda ScreenAdressLow,y
 sta write_f+1
 lda ScreenAdressHigh,y
 sta write_f+2
 clc
 ldx #40
 lda #64
 suite_x
write_f
 sta $1234,x
 dex
 bne suite_x
 
 dey
 bne suite
rts
goyo
goyo

Messages : 182
Date d'inscription : 02/05/2014
Age : 48
Localisation : Massy

Revenir en haut Aller en bas

remplissage de l'écran Hires Empty Re: remplissage de l'écran Hires

Message par Dbug le Jeu 28 Mar 2019 - 21:23

Oui Smile

_________________

Dbug
Dbug

Messages : 240
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

remplissage de l'écran Hires Empty Re: remplissage de l'écran Hires

Message par Dbug le Jeu 28 Mar 2019 - 21:32

En gros ton code coute pour chaque octet écrit le cout de:
- 1 sta absolu indexé
- 1 dex
- 1 bne
et par dessus ca, vu que tu fais ca que par blocs de 40 (lignes), tu payes en plus 200 fois
- 2 lda absolu indexé
- 2 sta absolus
- 1 clc
- 1 ldx immediat
- 1 lda immediat
- 1 dey
- 1 branchement

alors après tout dépend de tes paramètres, mais déja au lieu de tracer par blocs de 40, tu pourrais tracer 4 lignes a la fois (160 octets) ca te ferais 4 fois moins d'appels a la boucle extérieure.

Après la vrai facon d'augmenter la vitesse c'est de dérouler le code, style 8000 instructions STA:
- STA $a000  / STA $a001 / ... / STA $a000+7999

Et a l'intermédiaire, juste 32 STA donnent un bon compromis de vitesse: 8000/256=31.25

Code:
 lda #40
  ldx #255
loop
  sta $a000+256*0,x
  sta $a000+256*1,x
  sta $a000+256*2,x
  (...)
  sta $a000+256*31,x
  sta $a000+7999-256,x   ; cas spécial pour le dernier
  dex
  bpl loop

_________________

Dbug
Dbug

Messages : 240
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

remplissage de l'écran Hires Empty Re: remplissage de l'écran Hires

Message par goyo le Sam 30 Mar 2019 - 14:53

Dbug a écrit:En gros ton code coute pour chaque octet écrit le cout de:
- 1 sta absolu indexé
- 1 dex
- 1 bne
et par dessus ca, vu que tu fais ca que par blocs de 40 (lignes), tu payes en plus 200 fois
- 2 lda absolu indexé
- 2 sta absolus
- 1 clc
- 1 ldx immediat
- 1 lda immediat
- 1 dey
- 1 branchement

alors après tout dépend de tes paramètres, mais déja au lieu de tracer par blocs de 40, tu pourrais tracer 4 lignes a la fois (160 octets) ca te ferais 4 fois moins d'appels a la boucle extérieure.

Après la vrai facon d'augmenter la vitesse c'est de dérouler le code, style 8000 instructions STA:
- STA $a000  / STA $a001 / ... / STA $a000+7999

Et a l'intermédiaire, juste 32 STA donnent un bon compromis de vitesse: 8000/256=31.25

Code:
 lda #40
  ldx #255
loop
  sta $a000+256*0,x
  sta $a000+256*1,x
  sta $a000+256*2,x
  (...)
  sta $a000+256*31,x
  sta $a000+7999-256,x   ; cas spécial pour le dernier
  dex
  bpl loop

Merci Dbug de toutes ces précisions, je vois l'oeil de l'expert !, cool je vais donc faire 160 au lieu de 40.
j'ai un autre question: est ce toi qui a développé la routine Mike8() pour tracer rapidement des droites ?
Je trouve que c'est génial comme routine pour faire de la 3D comme dans le jeu 1337, surtout celle avec clipping
goyo
goyo

Messages : 182
Date d'inscription : 02/05/2014
Age : 48
Localisation : Massy

Revenir en haut Aller en bas

remplissage de l'écran Hires Empty Re: remplissage de l'écran Hires

Message par Dbug le Dim 31 Mar 2019 - 11:56

goyo a écrit:j'ai un autre question: est ce toi qui a développé la routine Mike8() pour tracer rapidement des droites ?
Je trouve que c'est génial comme routine pour faire de la 3D comme dans le jeu 1337, surtout celle avec clipping
Voici ce que dit SVN:
remplissage de l'écran Hires Line810

Et le thread de discussion originel:
http://forum.defence-force.org/viewtopic.php?f=4&t=386&hilit=line+drawing

_________________

Dbug
Dbug

Messages : 240
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

remplissage de l'écran Hires Empty Re: remplissage de l'écran Hires

Message par goyo le Lun 1 Avr 2019 - 11:11

Dbug a écrit:
goyo a écrit:j'ai un autre question: est ce toi qui a développé la routine Mike8() pour tracer rapidement des droites ?
Je trouve que c'est génial comme routine pour faire de la 3D comme dans le jeu 1337, surtout celle avec clipping
Voici ce que dit SVN:
remplissage de l'écran Hires Line810

Et le thread de discussion originel:
http://forum.defence-force.org/viewtopic.php?f=4&t=386&hilit=line+drawing
c'est top, bravo!
rien n'est impossible à celui qui .... a ce niveau en programmation!
goyo
goyo

Messages : 182
Date d'inscription : 02/05/2014
Age : 48
Localisation : Massy

Revenir en haut Aller en bas

remplissage de l'écran Hires Empty Re: remplissage de l'écran Hires

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum