CpcAlive est un
environnement
de programmation
compatible
Amstrad CPC
pour création
d'animations
 graphiques.






Z80 opcodes et programmation

SmallAsm est un assembleur Z80
pour Dos


Les mots clés du basic Cpc

Les messages d'erreur du basic Cpc

La mémoire

La gestion des disquettes


Installateur CpcAlive pour
Windows & pour DosBox


Documentation CpcAlive






English

* Accès à la mémoire du Cpc depuis l'environnement X86 *
((CpcAlive for Dosbox)


L'ordinateur Cpc dispose de 128Ko de mémoire divisées en deux banques de 64Ko chacune appelées banque 0 et banque 1. La banque 0 est constituée des quatre blocs de 16Ko numérotés de 0 à 3. La banque 1 utilise les blocs numéros 4 à 7. L'émulateur complète ces deux banques avec 248 blocs supplémentaires disponibles numérotés donc de 8 à 255. L'accès à la mémoire du Cpc dépend de la taille du module. En effet, les modules sont chargés et exécutés au même emplacement que la mémoire du Cpc (segment Ems). La première adresse Cpc accessible est indiquée à l'adresse 0216h de la table d'installation du module. Dans le cas d'un module utilisant quatre blocs, la valeur 0 indique qu'aucune adresse n'est accessible.

Note: Le nombre de blocs utilisés par le dernier module chargé peut être obtenu à partir du basic de cette manière:
info$=string$(18,"X"):|INFO,@info$:NbrBlocs=val("&"+mid$(info$,17,2)):PRINT NbrBlocs


Il est possible de choisir la banque que l'on désire se connecter 
dans les blocs disponibles à la suite du module à travers l'octet d'offset 0215h de la table d'installation du module. La valeur -1 indique qu'il n'y a rien à connecter avec le module, la valeur 0 connecte la banque 0 du Cpc dans les blocs disponibles, la valeur 1 connecte la banque 1 du Cpc dans les blocs disponibles. Par exemple, si l'on désire connecter la banque 1 à la suite du module en mettant la valeur 1 dans l'octet d'offset 0215h de la table d'installation du module, et si la première adresse Cpc accessible indiquée est 08000h, les deux derniers blocs de la banque 1 seront connectés à la suite du module. Il est aussi possible de choisir le nombre de blocs à connecter du module en remplissant l'octet d'offset 0228h de la table d'installation du module. En remplissant par exemple ce champs avec la valeur 1, les trois derniers blocs de la banque choisie seront  connectés à la suite de la partie connectée du module. Les changements seront effectifs au prochain appel du module ou par un appel de la fonction 4 de l'interruption 018h (valeur 4 dans le registre AH).

La valeur 2 dans l'octet d'offset 0215h de la table d'installation du module connecte les banques à la suite du module en indiquant le numéro du premier bloc de la banque à connecter dans l'octet d'offset 0213h de la table d'installation. Par exemple si on met la valeur 3 dans l'octet d'offset 0213h de la table d'installation et si la première adresse Cpc accessible indiquée est 04000h, les blocs 3,4 et 5 des banques 0 et 1 seront connectées à la suite du module. La valeur 7 dans l'octet d'offset 0213h de la table d'installation connectera le dernier bloc de la banque 1 suivi des blocs 8 et 9 de la Ram additionnelle. Il est aussi possible comme précédemment d'utiliser l'octet d'offset 0228h de la table d'installation du module pour modifier la taille prise par le module. Les changements seront effectifs au prochain appel du module ou par un appel de la fonction 4 de l'interruption 018h .

La valeur -2 dans
l'octet d'offset 0215h de la table d'installation du module connecte les blocs d'un autre module. Les blocs supérieurs du module appelé seront alors connectés à la suite du module appelant. Il suffit pour cela d'indiquer le numéro du module à connecter à travers l'octet d'offset 0213h de la table d'installation.  Il est aussi possible comme précédemment d'utiliser l'octet d'offset 0228h de la table d'installation du module pour modifier la taille prise par le module appelant. Les changements seront effectifs au prochain appel du module ou par un appel de la fonction 4 de l'interruption 018h.

L'émulateur traite de manière particulière la banque 0 à cause entre autre de la gestion de l'écran Cpc. Il est donc préférable d'utiliser l'interruption 018H du système Dos reprogrammée à cet effet pour les accès en écriture. A travers cette interruption, les accès en lecture ainsi qu'en écriture sont accessibles dans la totalité de la mémoire, quelque soit la taille du module connecté.
Les valeurs de AH à transmettre pour accéder aux différentes fonctions de cette interruption sont détaillées ici.