|
|
|
|
|
|
| ROM BOARD |
|
|
|
| |
ROM BOARD de ANDROMEDA INC.
Cette carte accepte aussi bien
de la RAM (2K type 4802 cf. ci contre)
que des PROM (2K type 2716 ou 4K type 2732).
|
|
| Documentation |
|
Plan de la documentation
Introduction
ROM board technical detail chip types
Memory address
4K switchs
Reading the switchs
la configuration de la carte est des plus simple :
les jumpers XYZ sont positionnés selon le type de RAM ou ROM insérées.
Chaque groupe XYZ concerne le circuit qui se situe sous lui.
Les switchs sont utilisés uniquement lorsque sont insérées des PROM 2732 afin de sélectionner le banc bas ou haut.
En effet cette carte ne considère que 2K de RAM ou de ROM.
|
|
| Disquettes |
| |
|
Pas de disquette la carte se gère d'elle-même... avec vos programmes! |
| | |
| Publicités d'époque |
|
Les publicités ....
|
| Trucs et astuces |
| |
Inutile de garnir l'ensemble des XYZ avec des jumpers !!!
Comprennez bien que les switchs haut/bas :
ne servent QUE SI IL Y A DES PROMS 2732,
que chaque bank de mémoire de 2K est alors vu
dans la zone $C800 à $CFFF.
qu'ils peuvent être manipulés sans arrêter l'ordinateur.
|
| |
|
PETITE ASSISTANCE A LA PROGRAMMATION... |
| |
Dès lors que vos jumpers sont placés pour correspondre à vos circuits, vous pouvez alors accèder au contenu de ceux ci.
Très classiquement les entrées sorties se font dans la zone mémoire C000 à CFFF.
Rappelons qu'à chaque slot "x" correspond la zone mémoire Cx00 à CxFF.
Ainsi pour le slot 1 ce sera C100 à C1FF, pour le slot 2 ce sera C200 à C2FF, et ainsi de suite...
Vous allez dire "C'est un marrant il n'y a que 256 octets dans ces zones! on est loin de mes 2K (2048 octets)!!"
Evidement la zone des 256 octets ne sert en fait qu'à faire des sélections sur la carte...
les 2K se trouvent en fait aux adresses $C800 à $CFFF
Donc pour accèder à la carte soit vous utilisez les indexations par X pour rester indépendant des slots, soit
vous utilisez les adresses spécifiques à chaque slot comme ci-dessous (valeurs utiles en fait qu'en basic) :
|
|
Sélection des bancs mémoire... |
| |
| |
| SLOT |
ACTIVE LES 2K |
|
SELECTION SOCKET DE DROITE |
SELECTION SOCKET DE GAUCHE |
| |
| 1 |
$C090 -16240 |
|
$C091 -16239 |
$C092 -16238 |
| 2 |
$C0A0 -16224 |
|
$C0A1 -16223 |
$C0A2 -16222 |
| 3 |
$C0B0 -16208 |
|
$C0B1 -16207 |
$C0B2 -16206 |
| 4 |
$C0C0 -16192 |
|
$C0C1 -16191 |
$C0C2 -16190 |
| 5 |
$C0D0 -16176 |
|
$C0D1 -16175 |
$C0D2 -16174 |
| 6 |
$C0E0 -16160 |
|
$C0E1 -16159 |
$C0E2 -16158 |
| 7 |
$C0F0 -16144 |
|
$C0F1 -16143 |
$C0F2 -16142 |
| |
|
Exemple assembleur par indexation... |
| |
En assembleur, il est tout de même préférable d'utiliser une indexation par X
qui contiendra le numéro de slot*16 et les adresses :
$C080 POUR ACTIVER LES 2K
$C082 POUR SELECTIONNER LE SOCKET DE DROITE
$C082 POUR SELECTIONNER LE SOCKET DE GAUCHE
|
Supposons que votre carte se trouve en slot 2, pour activer les 2K de ROM vous faites :
|
| LDA SLOT | ; la variable SLOT contient le numéro de slot de 1 à 7,
ce n'est pas original ça ? |
| ASL |
| ASL |
| ASL |
| ASL | ; on a multiplié par 16 |
| TAX | ; on met dans l'indexation |
| LDA $C080,X | ; activation et vos 2K sont
lisibles de $C800 à $CFFF, de plus on récupère la position des switchs (voir plus bas) |
| |
|
Reset de l'ensemble des cartes utilisant la zone commune... |
| |
MAIS ATTENTION...vous pourriez avoir dans votre APPLE d'autres cartes qui utilisent aussi cet espace !
Donc avant d'activer quoique ce soit il faut désactiver l'ensemble des cartes
Ce qui se fait en lisant l'adresse $CFFF !!! donc attention à la programmation de vos PROM.
En effet dès que cette adresse est activée les PROM en $C800 de toutes les cartes sont désactivées.
|
| |
|
Lecture de la position des switchs... |
| |
Pour savoir quelle est la positions des switchs il faut lire l'adresse $C080,X
ou la valeur de l'adresse indiquée en face de chaque slot plus haut dans la colonne "activer la ROM".
La valeur lue permet de connaître la position des switchs en fonction de la valeur de ses bits 7 et 0
|
| SWITCH DU HAUT |
SWITCH DU BAS |
|
MSB (bit 7) |
LSB (bit 0) |
| HAUT |
HAUT |
|
0 |
0 |
| BAS |
HAUT |
|
0 |
1 |
| HAUT |
BAS |
|
1 |
0 |
| BAS |
BAS |
|
1 |
1 |