 Note a l'attention des programmeurs de la carte CPCISA ------------ 1.Introduction --------------Avant de presenter les caracteristiques techniques de la carte CPCISA, je vais rappeler brievement la fonction de cette carte interface. La carte CPCISA permet de connecter au CPC une ou plusieurs cartes PC au standard ISA. Un PC est constitue d'une carte mere et de cartes interfaces qui permettent toutes les fonctions principales d'entree/sorties. Plusieurs standards existent mais, l'interet des cartes ISA est leur prix (tres faible), leur grand nombre et leur grande diversite. On peut citer a titre d'exemple les cartes Sound Blaster, modems, video, disques durs et disquettes, CD ROM, reseau, acquisitions diverses,... Avec la carte CPCISA, il est desormais possible de connecter sur la carte elle meme jusqu'a 3 cartes ISA. ---------------------------------- | ___________________ 3 cartes ISA verticales | ___________________ | | ___________________ | | |<- carte CPCISA | | | | ---------------------------------- |||||||||||<- connexion CPC2.Fonctionnement global -----------------------Le Z80 (microprocesseur du CPC) opere sur 8 bits. Le bus ISA d'un PC operant sur 16 bits, la CPCISA a pour but principal de faire de multiples conversions entre 8 et 16 bits. D'autre part, la carte adapte les adresses de ports entre le CPC et les cartes ISA. La carte gere egalement entre autres les interuptions IRQs provenant de cartes ISA. Enfin, de multiples options programmables par logiciel ou par jumpers autorisent des performances interessantes. La gestion des options est prise en charge par un registre de commande. Tous les ports ISA compris entre 0 et 3FF sont accessibles soit directement soit apres une petite programmation de la CPCISA. La carte CPCISA ne comporte pas d'element programmable (comme des EPROMs, des microcontroleurs) afin de garantir un maximum de performances en vitesse et en taux de transfert.2.1.Branchements ----------------Pour faire fonctionner correctement la CPCISA a l'arriere de votre CPC, il faut connecter une alimentation de type PC (2 connecteurs, les masses (noires) etant au milieu) et relier le CPC a la carte avec le connecteur prevu. Dans le cas d'un montage en tour, il faut enficher la carte mere du CPC dans le connecteur fixe de la CPCISA. Le cote composant de la carte mere du CPC doit etre dirige vers les 3 connecteurs du bus ISA. Dans une tour, toutes les cartes sont donc paralleles, composants vers le haut. Il faut aussi relier le (+5v/gnd) de la CPCISA (en bas a gauche) a la carte mere du CPC afin d'alimenter le CPC (ou CPC+) par la CPCISA.Le connecteur en bas a droite correspond au reset general (connecteur normalisé pour une tour PC). Les cavaliers sont indiqué au crayon. En haut a droite, de gauche a droite, il y a: ASIC (0/1), LSB (0/1), AEN. AEN doit posseder le cavalier sauf fonctionnement special. A14 se trouve a droite.La LED verte indique l'alimentation de la CPCISA.Il faut TOUJOURS allumer la CPCISA ** AVANT ** le CPC. Dans le cas d'une tour, l'alimentation du CPC doit etre faite par le connecteur en bas a gauche. La mise sous tension est alors simultanée.Le branchement d'une extension derriere la CPCISA se connecte A L'ENVERS (me consulter pour etre sur).3.Programmation generale ------------------------Le coeur de la carte regroupe 2 registres de 8 bits accessibles par le CPC. Un registre (appelé REGLOW) est connecte aux data LOW (D0-D7) du bus ISA et l'autre (REGHIGH) aux data HIGH (D8-D15).Suivant le type d'ecriture ou de lecture que l'on veut faire (8 bits ou 16 bits), l'operation diffère.3.1.Cas d'une opération 8 bits ------------------------------La lecture et l'ecriture se fait directement comme sur une extension CPC normale en 8 bits. L'ecriture sur un port externe envoie le mot de 8 bits sur le bus ISA et la lecture d'un port renvoie la valeur lue sur le bus ISA.3.2.Cas d'une opération 16 bits -------------------------------L'operation de transfert entre le CPC et une carte ISA comporte deux operations:3.2.1.Ecriture --------------a.Ecriture dans REGHIGH b.Ecriture dans REGLOWL'operation b ecrit automatiquement les 16 bits sur le bus ISA. 3.2.2.Lecture -------------a.Lecture de REGLOW b.Lecture de REGHIGH L'operation a inscrit automatiquement les 16 bits en provenance de la carte ISA dans les deux registres. 4.Gestion des adresses. -----------------------Le CPC ne peut adresser autant qu'un PC est capable de le faire. Il a ete necessaire de proceder a une petite astuce. La carte CPCISA occupe la plage des ports CPC suivants: FCxx, FDxx, FExx et FFxx (soit en binaire 1111 11xx xxxx xxxx) Les adresses ISA a gerer comportent 10 bits (Ai0 a Ai9). Pour etre compatible avec certaines normes (comme le Plug and Play par exemple), la CPCISA peut egalement gerer Ai10 et Ai11. Les bits de l'adressage CPC de la carte CPCISA se repartissent comme suit:A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 1 1 1 1 1 1 RT Ai8 Ai7 Ai6 Ai5 Ai4 Ai3 Ai2 Ai1 Ai0Le bit A9 est le bit RT correspondant a la selection du registre REGLOW ou REGHIGH. Les operations de lecture/ecriture dependent de ce bit RT. Les bits Ai9 a Ai11 doivent etre ecrits dans le registre de commande prealablement.Toutes les operations 8 bits se font avec RT=1 (selection de REGLOW).Les operations 16 bits doivent se faire en coordination avec RT.4.1.Ecriture (16 bits) ----------------------a.Ecriture sur REGHIGH: RT=0 b.Ecriture sur REGLOW: RT=14.2.Lecture (16bits) --------------------a.Lecture de REGLOW: RT=1 b.lecture de REGHIGH: RT=04.3.Schema de transfert ----------------------- CPC 6128 carte CPCISA carte ISA ---------- ----- ------- | -->| REG |<------>| ISA | | | | HIGH| | H | BUS 8 BITS |<-----| ----- | | | | ----- | | | | | REG |<------>| ISA | | -->| LOW | | L | ---------- ----- -------5.Gestion des options ---------------------La carte CPCISA possede de nombreuses options. Elles sont gerees par le registre de commande. Il n'est pas accessible en lecture. Deux LEDs sur la CPCISA indiquent l'etat du bit 7 et du bit 6 (allumée=0). Adresse du registre de commande: &X1111 100x 111x xxxx (ex:&F8FF) Structure du registre de commande:REGc7 REGc6 REGc5 REGc4 REGc3 REGc2 REGc1 REGc0 I D S O M2 Ai11 Ai10 Ai9 | | | | | | | | | | | | | | | +-----> Lignes | | | | | | | d'adresses | | | | | | +------------> du | | | | | | bus | | | | | +-------------------> ISA | | | | | | | | | +-----> Mode vectorisé: 1: inactif | | | | 0: autorisé | | | | | | | +-----> Controle de mode: 1:IN/OUT | | | 0:LD | | +-----> SBHE: 1:transfert 8 bits | | 0:transfert 16 bits | +-----> Controle des interruptions: 1: pas d'interruption | 0: Les interruptions sont autorisées +-----> Isolation: 1: isole (seul le registre de commande repond) 0: la CPCISA est activeApres la mise sous tension, la registre de commande contient &FF.5.1.Lignes d'adresses ---------------------Mettre dans le registre de controle, Ai9 a Ai11 correspondant au port ISA desiré. Souvent Ai10 et Ai11 valent 0. Seul Ai9 change (0 si le port est inferieur a 1FF, 1 s'il est superieur).5.2.Mode vectorisé (M2) -----------------------Ce bit ne doit etre activé QUE si l'on desire faire fonctionner la CPCISA avec un CPC en mode vectorisé (im3).Dans ce cas, la CPCISA presentera en temps voulu, la partie basse de l'adresse de saut sur le bus. Le mot de 8 bits indiquera alors quelle ligne d'interruption du bus ISA a ete activée selon l'ordre ci-dessous:REGv7 REGv6 REGv5 REGv4 REGv3 REGv2 REGv1 REGv0 IRQ15 IRQ14 IRQ3 IRQ4 ASIC IRQ5 IRQ6 LSBASIC est selectionnable sur la CPCISA par le cavalier ASIC et permet la compatibilite avec le CPC+. LSB est selectionnable sur la CPCISA par le cavalier LSB et permet la compatibilite avec les differents CPC.Les autres IRQ ne sont pas signalées par ce registre (REGv). Cependant, IRQ12, IRQ10 et IRQ7 sont signalées (en plus des 6 ci-dessus) par l'interruption externe generale.5.3.Controle de mode (O) ------------------------Comme vu precedemment, la plage d'adresses CPC occupee par la carte CPCISA s'etend de FC00 a FFFF et est geree par les instructions de port entrees / sorties du Z80 (IN et OUT). Ces instructions dedies aux ports exterieurs sont dans le cas du CPC tres lentes dues a la frequence d'horloge faible... L'option proposee sur la carte CPCISA permet de commander les cartes ISA par les instructions LD du Z80 beaucoup plus rapides. Le bit O selectionne le mode d'adressage. Dans le cas d'une gestion par LD, les transferts se font vers et a partir d'emplacements memoire de la meme facon qu'avec IN et OUT. Deux plages memoire peuvent etre selectionnées par cavalier sur la CPCISA:* 9800-9BFF * D800-DBFFLe cavalier se nomme A14. exemple: Ecriture du registre DE de 16 bits sur le port ISA 330
|