Logicielsmoto.com

Nous sommes le 28 Mar 2024, 22:51

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 20 messages ]  Aller à la page Précédente  1, 2
Auteur Message
 Sujet du message: Re: Mode BM 16 + Double Buffer
MessagePosté: 16 Juil 2021, 13:37 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
Au début, j'ai utilisé la zone cartouche pour les pages 2 et 3 car plus simple "intellectuellement" par rapport à l'inversion des 8ko,
ça me permettait également d'avoir les 192 octets non utilisés de la page vidéo en $3F40-$3FFF contigus à la page 0 en $4000-$5FFF, ce qui faisait un espace continu de $3F40 à $5FFF, ce n'est pas grand chose mais ça peut aider dans certaines situations.

Maintenant j'utilise la zone données pour les pages 2 et 3, tout simplement pour pouvoir exécuter du code depuis des pages de RAM ou ROM montée dans le même espace (cartouche). Je te conseille plutôt de faire comme ça mais il n'y a pas de mauvaise solution.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Mode BM 16 + Double Buffer
MessagePosté: 16 Juil 2021, 17:46 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
L'espace cartouche non ? comme ça tu peux garder ton espace $A000 pour tes données ou autres choses !

par contre à valider, si tu utilise l'espace cartouche, du coup faut que le port cartouche soit libre (pas de cartouche insérée ) ?

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Mode BM 16 + Double Buffer
MessagePosté: 16 Juil 2021, 19:03 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
Qu’une cartouche soit insérée ou non ne change rien. Tu es libre de recouvrir l’espace cartouche par de la RAM.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Mode BM 16 + Double Buffer
MessagePosté: 03 Avr 2022, 21:10 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
fxrobin a écrit:
Bentoc a écrit:
Tu peux utiliser soit la zone données ($A000) soit la zone cartouche ($0000) pour monter les pages 2 ou 3, c'est au choix ...

Tu me conseilles quelle technique du coup ? plutôt la zone cartouche ?


Salut

J'ai lu vite fait sur le projet en double buffering..

Alors pour résumer, les banques ram physique 0 à 3 peuvent être choisies pour l'affichage écran (je ne reviens pas sur ce qu'a dit Sam dessus c'est très complet)... Mais ne pas oublier que la zone "logique "$4000-$5000" dite "RAM écran" est toujours utilisable. La banque RAM 0 (physqiue) correspond toujours à l'espace logique 4000-5FFF pour le CPU (6809), mais tu peux aussi l'adresser "en même temps" à l'espace RAM données.

Donc, sur les TO8, ty peux basculer n'importe laquelle des 32 banque RAM physique (de 16 kO) en espace logique RAM Donnée (A000-FFFF) ET utiliser une des 4 banques physiques (0-3) en affichage écran, SAUF la 1 (qui est la RAM système en espace Logique 6000-9FFF : Il vaut mieux éviter de la positionner en affichage écran) TOUT en sachant que la banque physique 0 est constamment dans l'espace Logique 4000-5FFF (et en 0000-3FFF pour les MO6).

Tu as donc
- 1 registre qui indique la banque physique pour l'affichage (0, 2 ou 3)
- 1 registre qui indique la banque physique (0 à 31) à positionner en RAM logique de données (A000-DFFF)
- L'espace RAM écran (4000-5FFF) qui pointe toujours dans la banque RAM physique 0
- L'espace RAM Système (6000-9FFF) qui pointe toujours vers la banque physique 1. Cet espace est là où tu écris normalement tes routines assembleurs (ça te donne jusqu'à 16 kO ya de quoi faire!)

Mon conseil est de se servir de cette zone RAM écran (4000-5FFF) comme "buffer fond d'écran". C'est à dire que tu recopie les partie d'écran pour chaque sprite vers la banque physique 2 quand c'est la 3 qui est affichée et vice versa.
Une fois que tu as entièrement écrit les datas de la banque 2, tu bascules l'affichage écran vers cette RAM là et tu balance la RAM 3 dans l'espace logique A000-DFFF.
Voilà comment on arrive à faire du double Buffer, c'est à dire sans voir les effacement de sprite ou les désalignement en cas de scrolling...

Pourquoi, aussi choisir l'espace logique RAM écran comme buffer ? Parce que tu as toutes les fonction assembleur de la ROM qui écrivent dedans (Cercles, box etc etc)...

Mais ces fonctions de la ROM fontionnent dans tous les modes Vidéo (et donc BM2, BM4 également) SAUF en BM16.
En BM16, tu n'as AUCUNE des fonctions de la ROM qui ne marche (J'ai testé les fonction BOXF, PRINT etc en BM16 essaye et tu verra!), même pas l'écriture de caractère (Thomson a du oublier de faire ça à l'époque alors qu'il a rajouter des truc comme le langage Logo)... Ca veut dire qu'il faut tout réécrire pour le mode BM 16 (ou se servir du travail d'autres thomsonistes, notamment pour l'affichage de caractères).

J'espère avoir été compréhensible dans ce que j'ai écrit... Le mieux est de voir le manuel technique des TO8/TO9 et TO9+ (P 120/121) pour comprendre le système des banques RAM sur ces ordinateurs.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Mode BM 16 + Double Buffer
MessagePosté: 04 Avr 2022, 09:27 
Hors ligne

Inscription: 12 Fév 2021, 15:54
Messages: 78
Localisation: Rennes
Oui merci c'est très clair, surtout que depuis j'avais bien avancé sur le sujet ;-)

_________________
Fan de Atari 2600, Thomson MO5, Thomson TO8, Atari STE.
Retro-Codeur à mes heures perdues. https://www.fxjavadevblog.fr


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 20 messages ]  Aller à la page Précédente  1, 2

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 44 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com