La fonction c1 te permet de loader ton prog en #c000, une fois le Out &7f00,&c0 mis les datas charges en c000 se retrouvent en #4000 Bank c7. Tu peux toujours utiliser la plage mémoire #c000 pour afficher ta video.
@Subaru Heu... élémentaire mon chère "Watt-Sonne"! Donc "A L'HEURE OU BLANCHIT LA COMPAGNE... (COURAGE, FUYONS !!!)" ? Super premier contact... j'assure grave !
AsT a écrit :
La fonction c1 te permet de loader ton prog en #c000, une fois le Out &7f00,&c0 mis les datas charges en c000 se retrouvent en #4000 Bank c7. Tu peux toujours utiliser la plage mémoire #c000 pour afficher ta video.
Je suis perdu dans ce Bonto d'adresses. Donc, on reprend le tableau de Demoniak...
C1 : 1C000-1FFFF C0 : Adresses CPU (on retrouve l'adressage écran) C7 : SWAP 1C000-1FFFF vers &4000...
C'est l'idée... effectivement. Mais je vais avoir besoin de plus de 2 banques... J'ai 10k de texte et Je sais pas trop de graphisme 40 images de 16x15 caractères (8x8)... Donc, ok pour un buffer graphique en &1C000, mais ... Autant utiliser la banque &1C000 directement avec le texte, et stocker un buffer graphique, qui sera accessible lors du traitement en ASM... Je chargerai les images à la demande en partie haute. Je vais voir si je peux faire des transfères de banque à banque en ASM...
[EDIT] Il faut jouer sur le C3<>C2 (j'en suis sûr!!!) [/EDIT]
Je comprends mieux les subtilités des banques mémoires... Surtout avec l'utilisation du basic. Il me maquait des bribes d'informations qui semblent trop évidentes lors de l'utilisation!
*La commutation de la banque est mémorisée en hard. *La Rom est activée en marge des banques par le hard (sûrement par le ROMcs et les Ram par le RAMcs). *La Rom Basic ne gère pas les banques.
Et cela change tout! En basic : OUT &7F00,&C1:LOAD "dispdat.bin",&C000:OUT &7F00,&C0: On doit réassigner la banque mémoire vidéo pour permettre le réfléchissement de l'écran.
En assembleur, même chose! print_char LD BC,&7FC0 OUT (C),C call &bb5a LD BC,&7FC1 OUT (C),C RET Sinon, c'est la banque &1C000-&1FFFF qui est modifiée!
Une banque mémoire avec un adressage inférieur au MEMORY (HIMEM), ne fonctionnera pas!
Donc, à la lumière de ces informations il est possible de stocker des informations dans les banques inferieur au MEMORY, mais il faut penser à rétablir les banques d'exécution Basic avec son retour d'exécution. Donc, merci pour toutes ces informations! J'ai récupéré 16k pour le Basic sur la banque h1C000... Et ça semble fonctionner. Merci. (Bravo pour toutes les informations techniques disponibles sur ce site! c'est un réel plaisir de (re)découvrir le CPC ! )
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 49 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