CODING ★ Fonctionnement FDC ★

Fdc - 01 - Fonctionnement Fdc (SOS Programmeurs)
ETUDE DU FDC 1ére partie
Chapitre 1.1 : Généralités

Le Floppy Disc Controller est un petit animal parallélépipédique pourvu de nombreuses pattes et vivant dans une jungle de circuits divers . Prenez toute suite note qu'il obéit à des lois très strictes . Il est à même de perturber gravement son habitat si il se trouve contrarié ! Ses moeurs particulières lui interdisent toute cohabitation avec le BASIC . Les instructions d'Entrée - Sortie (E/S) , rédigées en assembleur sont le seul mode de communication envisageable avec ce spécimen de l'électronique CPC .

Chapitre 1.2 : E/S

Définition d'une E/S : Tout d'abord , il faut savoir ou l'envoyer si il s'agit d'un sortie (OUT) et ou l'attendre si c'est une entrée (IN) . La source ou la destination d'une E/S se nomme un PORT . Ce dernier permet d'acheminer ou prélever une information en un point précis d'un circuit déterminé . C'est la valeur 16 bits précédant OUT ou IN qui opère cette sélection . Elle est contenue dans le registre BC . En conséquence , les instructions Z80 du type OTIR qui modifient le registre B sont difficilement utilisables . La transmission d'un octet par OUT ressemble à l'opération consistant à ouvrir ou fermer un maximum de 8 interrupteurs . Un bit mis correspond à un contact fermé , un bit à 0 et le courant ne passe plus (En réalité il est dérivé vers la masse) . Une simple conversion (PRINT BIN$(valeur,8) vous permet de visualiser la valeur d'une E/S de façon plus claire (Voir DETBANK dans la partie réponses) .

Chapitre 1.3 : Les ports E/S du FDC

On dispose de 3 possibilités selon la nature du port :
1 - On peut envoyer une donnée sur le port : C'est une sortie .
2 - On peur recevoir une donnée sur le port : C'est une entrée .
3 - On peut faire les 2 .

Adresse du port ! Fonction sortie ! Fonction entrée ! Rôle
&FA7E ;! OUI ! NON ! Mise en route moteur
&FB7E ;! NON ! OUI ! Information état FDC
&FB7F ;! OUI ! OUI ! Transmission données

A / Le port moteur &FA7E : Ici rien de plus simple . Envoyer une valeur non nulle met le moteur en route , envoyer une valeur nulle le stoppe . Vous pouvez même le faire à partir du BASIC : OUT &FA7E,1 , le moteur se met en route . OUT &FA7E,0 : Il s'arrête . Mais si on veut lire ou écrire des données sur le disque , ce n'est plus aussi simple . Il faudra attendre que le moteur tourne à plein régime ! La vitesse de transmission des données de la tête de lecture au FDC est en effet constante et suppose un temps de révolution déterminé du disque . Une rotation trop rapide , et le début de l'information se trouve lu une seconde fois . Un peu trop lent et une partie des données est omise .

B / Le port &FB7E également nommé registre d'état : Ce registre ne peut être que lu . Il vous permettra de connaître à tout moment le bilan de santé du FDC .

C / Le port &FB7F ou registre de données : On peut lire ou écrire sur ce registre . En écriture , il sert à transmettre les ordres au FDC ou à envoyer les données à écrire sur la disquette . Employé en lecture , il lit la zone spécifiée de la disquette ou le résultat d'une opération .

Les commandes du FDC
Chapitre 2.1 : Généralités

Il est temps de voir ce qu'il faut transmettre au FDC pour en tirer quelque chose . Chaque commande est constituée d'un octet soit 8 Bits . Elle doit souvent être suivie d'autres octets donnés en paramètres . Dans ce qui suit certains bits seront annotés : Toujours à 1 ou toujours à 0 pour AMSDOS. Entendez par la que la modification de ce bit n'est pas impossible mais totalement hors des normes AMSDOS 3,1/4 . Dans l'immédiat , toute modification serait susceptible de produire un crash spectaculaire faute des précautions idoines .
Il ne suffit pas d'envoyer un ordre au FDC pour obtenir un résultat . Plusieurs octets doivent souvnet être transmis en phase instruction . De plus la plupart des commandes travaillent en plusieurs phases . On distingue :

LA PHASE INSTRUCTION : On envoie une série d'octets au FDC pour l'informer de l'opération à accomplir ainsi que du drive , piste , secteur , etc ... Concernés

LA PHASE EXECUTION : Indispensable pour lire ou écrire des données sur la disquette . Inutile pour les autres commandes .

LA PHASE RESULTAT : Ou on lit une série d'octets transmis par le FDC et notament les registres d'état . Indispensable pour toutes les opérations . Dans le chapitre suivant la signification et le rôle des registres d'état .

Chapitre 2.2 : Les 15 commandes du FDC

La phase commande s'adresse systématiquement au port &FB7F en mode écriture :

LD BC,&FB7F
OUT (C),octet dans registre A

Etudions d'abord l'état et le role des bits spécifiques AMSDOS . (Les 8 bits d'un octet se comptent de 7 à 0 & de gauche a droite) .

BIT 7 : Utilisé pour sélectionner le système multi piste sur les lecteurs à 2 têtes : 1 si mode multipistes . 0 Sinon . Pour AMSDOS toujours 0 .

BIT 6 : 1 : le FDC travaille en double densité . 0 : simple densité .
Pour AMSDOS toujours 1 .

BIT 5 : Mis à 1 , les secteurs "effacés" seront ignorés , 0 ils seront lus . Toujours 0 sous AMSDOS . La notion de secteurs "effacés" sera expliquée plus loin .

Ceci nous donne la base suivante :

Bits 7 6 5 4 3 2 1 0
0 1 0 X X X X X

Les bits marqués d'un croix recevront le code de l'opération à effectuer.
Bien que ces opérations soient au nombre de 15 , 5 bits sont nécéssaires pour certains codes . Ce sera le premier octet à transmettre au FDC . Dans tous les exemples et tableau de commandes , il figurera sous le nom de "COMMANDE".
Presque toutes les commandes demandent d'autre informations , il faudra donc envoyer d'autres octets au FDC . Le second sera composé de :
BIT 2 : Utilisé par les lecteurs à double tête . Mis à 1 on lit l'autre face de la disquette . Toujours 0 Pour AMSDOS .
BITS 0 & 1 Sélection du numéro de drive de 0 à 4 . 00=Drive A , 01=Drive B , 10=Drive C , 11=Drive D .

Ceci nous donne la base suivante :

Bits 7 6 5 4 3 2 1 0
- - - - - 0 D D

Les bits marqués d'un trait doivent rester à 0 . Ce second code sera nommé DRIVE dans tout ce qui suit . Viendront ensuite d'autres octets qui peuvent varier selon l'instruction employée . Les commandes décrites ci-dessous sont classées par nombre de phases nécéssaires . La valeur donnée comme octet COMMANDE est donnée avec les bits 7-6-5 aux normes AMSDOS .

1 - PHASE COMMANDE SEULE :

Seule 1 instruction répond à cette condition . Elle transmet au FDC les données spécifiques au lecteur de disquette connecté et n'est utile que si le lecteur employé n'est pas un 3,1/4 . Il y-à assez à faire avec les autres instructions . Restons en 3,1/4 pour l'instant .

2 - PHASE COMMANDE SUIVIE DE PHASE RESULTAT :

A - INTERROGER ETAT D'INTERRUPTION : Cette commande se contente de lire le registre d'état 0 afin de déterminer les causes d'une interruption de fonctionnement du FDC . La cause de l'interruption peut être la fin normale d'une phase d'instruction ou une erreur quelconque .

INSTRUCTION : 1 octet
1 COMMANDE : &8 - %00001000
--------------------------------------
RESULTAT : 2 octets
1 Registre d'état 0
2 Numéro de piste ou se trouve la tête

B - INTERROGER L'ETAT DES LECTEURS : C'est la seule commande qui permet de lire le registre ET3 . ET3 vous dira (presque) tout sur l'état de vos drives (Connecté ou non , disque manquant , protégé écriture etc) . Si le lecteur est connecté mais éteint , le résultat se plante .

INSTRUCTION : 2 octets
1 COMMANDE : &4 - %00000100
2 DRIVE : De 0 à 3 pour A à D
---------------------------------
RESULTAT : 1 octet
1 Registre d'état 3

NOTE : Dans ces deux commandes , les bits 7-6-5 ne sont pas employés . La lecture des registres d'état n'a pas besoin de connaître la densité ni le mode d'écriture !

3 PHASE COMMANDE - EXECUTION - RESULTAT

Les deux commandes qui suivent sont particulières . Elles ont une phase instruction qui n'éxige pas une transmission de données et ne donnent pas de phase résultat . Il faudra cependant lire l'état d'interruption (Commande &8) pour 2 raisons : 1 - Vérifier que la tête se trouve bien sur la piste demandée car ce n'est pas sur ! 2 - Tant que ET0 n'a pas été lu , le FDC refuse d'écrire ou de lire sur la disquette ! Quant on vous dit que la bêbête est capricieuse ...

A - SE PLACER SUR LA PISTE NP : L'AMSDOS n'est plus la pour le faire à votre place . Vous devez donc dire au FDC où mettre la tête . Soyez très prudent . Un numéro de piste supérieur à 41 risque de provoquer une nette vibration du drive indiquant que la tête de lecture veut quitter le boitier . Un conseil : Si ceci se produit jetez vous sur l'interrupteur du CPC avant qu'elle y parvienne ! L'expérience à prouvé qu'un drive peu survivre un bref instant à ce genre d'avanie mais sans plus ...

INSTRUCTION : 3 octets
1 COMMANDE : &F - %00001111
2 DRIVE : De 0 à 3 pour A à D
3 Numéro de piste voulu
---------------------------------
EXECUTION : RIEN Essaye de positionner la tête

B - RECALIBRER SUR LA PISTE 0 : Si l'instruction précédente refuse de donner le résultat voulu après plusieurs tentatives , il est possible que la tête patauge entre 2 pistes . Utilisez alors RECALIBRER et recommencez . Si cela ne fonctionne toujours pas , jetez un regard haineux sur votre drive et signifiez lui son congé !

INSTRUCTION : 2 octets
1 COMMANDE : &7 - %00000111
2 DRIVE : De 0 à 3 pour A à D
---------------------------------
EXECUTION : RIEN Va en piste 0

NOTE : Ces deux instructions n'ont pas non plus besoin de connaître la densité ou le mode d'écriture . Elles vont en piste N et c'est tout !

C - FORMATER UNE PISTE : Cette instruction permet de formater une piste en secteurs dont la taille (fonction du nombre) peut varier de 128 à 4096 octets . Positionner réalablement la tête sur la piste à formater .

INSTRUCTION : 6 octets
1 COMMANDE ;: &4D - %01001101
2 DRIVE ; : De 0 à 3 pour A à D
3 Taille secteur : De 0 à 5 . 2 pour AMSDOS
4 Nombre secteurs : De 1 à 32 . 9 pour AMSDOS
5 Gap de formatage : &52 pour AMSDOS
6 Octet de remplissage : &E5 pour AMSDOS
--------------------------------------------------------
EXECUTION : 4 octets * par nombre de secteurs à formater
--------------------------------------------------------
RESULTAT : 7 octets
1 Registre état 0
2 Registre etat 1
3 Registre etat 2
4 Numéro de piste
5 Adresse de tête (0 pour AMSDOS)
6 Numéro du secteur
7 Taille du secteur

Ceci mérite quelques explications ! Ecartons pour l'instant la notion de taille secteur et de gap et voyons le reste . En phase instruction , après la commande et le numéro de drive (Dont le bit 2 à 0 pour AMSDOS indique aussi le numéro de face) on indique au FDC , les paramètres du secteur .
Les 4 octets transmis en phase exécution sont ce que l'on nomme l'ID (identification secteur) . Chaque secteur doit être précédé de son ID qui contient :

1 - Le numéro de piste
2 - Le numéro de tête
3 - Le numéro de secteur (De &C1 à &C9 pour DATA ou &41 à &49 pour CPM)
4 - La taille du secteur

Or , 2 de ces données (Numéro de tête et taille ont déja été transmises)
D'autre part , avant de formater une piste , il convient de positionner la tête à l'emplacement voulu ! 3 des informations ID font donc double emploi .
En réalité , le formatage se fait selon les paramètres fournis dans la phase instruction . Les valeurs fournies dans l'ID n'ont qu'un rôle d'information destiné aux opérations de lecture et écriture . On peut parfaitement placer la tête en piste 0 , formater 9 secteurs de taille 2 et écrire dans l'ID : Piste 20 et taille des secteurs 1 . Dans ce cas , les valeurs rendues dans la phase résultat auront peu de signification et il sera fort difficile voire impossible de lire ou écrire sur cette piste ...

D - LIRE LES ID D'UNE PISTE : Positionner la tête sur la piste à tester .

INSTRUCTION : 2 octets
1 COMMANDE : &4A - %01001010
1 DRIVE : De 0 à 3 pour A à D
------------------------------------------------
EXECUTION : Variable! Lit le 1er ID disponible
------------------------------------------------
RESULTAT : 7 octets
1 Registre état 0
2 Registre etat 1
3 Registre etat 2
4 Numéro de piste
5 Adresse de tête (0 pour AMSDOS)
6 Numéro du secteur
7 Taille du secteur

Comme on sait d'office sur quelle piste on se trouve , une modification de numéro de piste dans l'ID sera instantanément détectée . Par contre pour une éventuelle modification de taille de secteur , il conviendra de vérifier par une boucle de lecture de secteur testant toutes les tailles possibles . L'exécution présente quelques particularités dont on reparlera .

E - LIRE UN SECTEUR : Placer la tête de lecture sur la piste concernée .

Si les IDs ont été bricolés , de nombreux problèmes peuvent se poser .

INSTRUCTION : 9 octets
1 COMMANDE : &46 - %01000101
2 DRIVE : De 0 à 3 pour A à D
3 Numéro de piste (Selon ID)
4 Adresse de tête (Selon ID)
5 Numéro du 1er secteur (Selon ID)
6 Taille du secteur (Selon ID)
7 Numéro du dernier secteur à lire
8 GAP d'écriture (Ne pas confondre avec GAP format)
9 Longueur secteur : En principe toujours &FF
-----------------------------------------------
EXECUTION : Lire autant d'octets que nécéssaire
-----------------------------------------------
RESULTAT : 7 octets! Registre état 0
1 Registre état 1
2 Registre etat 2
3 Numéro de piste
4 Adresse de tête
5 Numéro du secteur
6 Taille du secteur

Les commandes qui suivent ne varient que par le code de commande et la nature de la phase exécution . Tous les autres octets de la phase instruction et l'ensemble de la phase résultat sont identiques à l'instruction ci dessus.

F - LIRE UNE PISTE : COMMANDE &42 - %01000010

EXECUTION : Lire les octets envoyés par le FDC . Cette instruction lit la totalité des octets de données du début à la fin de la piste .

G - ECRIRE UN SECTEUR : COMMANDE &45 - %01000101

PHASE EXECUTION : Transmettre les octets à écrire au FDC

H - ECRIRE UN SECTEUR EFFACE : COMMANDE &49 - %01001001

Comme pour écrire les données normales . Une marque (Data Adress Mark) , interdit la lecture de ces secteurs par la commande &46

I - LIRE UN SECTEUR EFFACE : COMMANDE &4C - %01001100

Puisqu'on l'a écrit il faut bien le relire ...

J - TESTER EGALITE - COMMANDE : &51 - %01010001

K - TESTER SI PLUS PETIT OU EGAL : &59 - %01011001

L - TESTER SI PLUS GRAND OU EGAL : &5D - %01011101

Ces 3 commandes ne nous concernent pas dans l'immédiat la phase d'exécution effectue une comparaison entre les données écrites sur la disquette et celles résidant en RAM .

FDC THEORIE 2éme PARTIE
Chapitre 3.1 : Signification des registres d'état

NOTE : Lisez essentiellement les en-tête de chapitre . La signification des bits de registres d'état ne prendra tout son sens qu'au moment de la pratique . Dans l'immédiat une étude prolongée serait fort indigeste . Chaque exemple pratique vous dira quels bits de quel registre sont à considérer . Vous pourrez alors revenir sur ces points spécifiques . Le dernier chapitre doit par contre être lu avec la plus grande attention .

Il y-a 5 registres d'état . Chacun d'eux se compose d'un octet

LE REGISTRE D'ETAT PRINCIPAL

Il se lit par une instruction IN sur le port &FB7E : 'LD BC,#FB7E - IN A,(C)' . C'est le seul registre qui peut (et doit !) être lu à tout moment d'une phase quelconque . Il informe notament de l'opération en cours et de l'aptitude du FDC à recevoir ou non une commande .

BIT 7 : Si ce BIT est à 1 , le FDC est disponible sinon il traite une instruction quelconque . 1 = La ligne est libre , 0 = La ligne est occupée .

BIT 6 : Si le bit précédent indique une disponibilité du FDC , le BIT 6 indique la direction dans laquelle doit aller l'octet de donnée . BIT = 1 =
La donnée va du FDC vers le CPC (lecture ou résultat) . BIT = 0 = La donnée va du CPC vers le FDC (Commande ou écriture) .

BIT 5 : En lecture , il permet de différencier les octets lus sur la disquette et les octets transmis par la phase résultat . Ce BIT est mis dès le début de la phase exécution et enlevé en fin d'exécution . Donc : 1 = Les octets lus sont ceux du disque . 0 = Les octets lus sont ceux du résultat .

BIT 4 : Il est mis à la réception du 1er octet de commande et reste à 1 tant que le FDC est en train d'accomplir une opération de lecture ou écriture . Il n'est remis à 0 qu'après la transmission du dernier octet de la phase résultat . En bref : BIT = 1 = Je bosse allez vous faire voir ! BIT = 0 = Je suis à votre disposition maître ...

BIT 3 au BIT 0 : Ces 4 bits correspondent à 4 lecteurs possibles . Sitôt qu'une instruction de positionnement sur une piste est lancée , le bit correspondant est mis . Aucune instruction de lecture ou écriture ne peut être envoyée tant que l'un d'eux est à 1 . Par contre , une autre instruction de recherche de piste peut être lancée sur un autre drive . Un autre de ces bits sera alors mis à 1 . Le seul moyen de les remettre à 0 est de lire l'état d'interruption du FDC , ceci explique le petit problème évoqué dans les instructions 'Positionner piste' .

2 - LE REGISTRE D'ETAT 0

On le trouve en 1er octet de la phase résultat . On peut aussi le consulter isolément par l'instruction 'Lire état d'interruption' .

BIT 7 & 6 : Ces deux bits fonctionnent conjointement et peuvent fournir 4 informations :

* 7=0 6=0 : L'opération en cours à réussi .

* 7=0 6=1 : Ou l'exécution à échoué ou une opération de lecture - écriture vient de se terminer . Ambigu et peu utilisable ...

* 7=1 6=0 : Instruction illégale ! Ne nourrissez pas votre FDC avec n'importe quoi ! Ce bit est aussi mis si :
A - On essaye de lire un état d'interruption alors que celle-ci n'a pas eu lieu
B - Une instruction est envoyée vers un drive branché mais éteint .
Dans ces 2 cas tous les autres bits seront à 0 . ET0 = &80 .

* 7=1 6=1 : Il faut enlever la disquette ou éteindre le drive pendant une opération pour obtenir cette combinaison . Etes vous pervers à ce point

BIT 5 : Se met à 1 dès la fin d'une instruction .

BIT 4 : Mis à un si l'électronique du lecteur de disquette en cours signale une erreur .

BIT 3 : BIT = 1 Si le lecteur de disquette est déconnecté , la disquette absente ou que vous vouliez faire croire au FDC que votre DD1 a 2 têtes de lecture .

BIT 2 : Numéro de la tête sélectionnée lors de la phase instruction . Restera toujours à 0 sauf si vous voulez plaisanter ...

BIT 1-0 : Combinaison de 0 à 3 qui vous indique quel drive était actif au moment de l'interruption .

3 - LE REGISTRE D'ETAT 1

C'est le 2éme octet du résultat . Il ne peut être lu séparément .

BIT 7 : Mis à 1 sitôt la fin de la piste rencontrée .

BIT 6 : Inutilisé , n'est même pas décoratif .

BIT 5 : DATA ERROR . Lors d'une opération d'écriture , une valeur de contrôle est sauvegardée avec chaque secteur (CRC) . En lecture , cette valeur est reconstituée . Si la valeur reconstituée est différente de celle lue , il y-à un problème et ce bit est mis à 1 . De même si les 4 valeurs d'ID transmises lors d'une commande de lecture ne correspondent pas à celles présentes sur la disquette .

BIT 4 : BIT mis si le temps de transmission des données est incorrect .
Respectez la valeur standard de 26 Ms et n'oubliez pas d'interdire les interruptions et vous n'aurez pas à vous en soucier .

BIT 3 : Comme BIT 6

BIT 2 : Est mis à 1 si une opération quelconque de lecture - écriture ne trouve pas le secteur spécifié .

BIT 1 : Mis si on veut écrire sur une disquette protégée .

BIT 0 : Se met à 1 si un ID secteur ne peut être trouvé ou si la Data Adress Mark est absente .

LE REGISTRE D'ETAT 2

C'est le 3ème octet du résultat il complète les informations fournies par ET2 et ne peut être lu séparément .

BIT 7 : Inutilisé

BIT 6 : Mis à 1 si un secteur 'effacé' est rencontré au cours d'une opération de lecture écriture .

BIT 5 : Est mis lors d'une erreur lecture écriture comme le bit 5 de ET1 mais ne concerne que la zone de données .

BIT 4 : Mis à 1 si le FDC constate une différence entre la piste ou se trouve la tête et la piste mentionnée dans l'ID secteur .

BIT 3 : Mis à 1 si une des 3 instruction de comparaison à réussi .

BIT 2 : Mis à 1 si une des 3 instruction de comparaison à échoué .

BIT 1 : Comme BIT 4 .

BIT 0 : Mis si la Data Adress Mark ne peut être trouvée .

LE REGISTRE D'ETAT 3

Ce registre ne peut être lu que par l'instruction 'Tester état des drives'

BIT 7 : N'est pris en compte que pour certains drives , à ignorer .

BIT 6 : Si ce bit est mis , la disquette est protégée en écriture .

BIT 5 : Si ce bit reste à 0 , il n'y-a pas de disquette dans le lecteur .

BIT 4 : Il est à 1 si la tête est positionnée en piste 0 .

BIT 3 : Si vous avez un lecteur à double tête ce bit sera à 0 sinon à 1.

BIT 2 : Contient le numéro de tête sélectionné si 2 têtes .

BIT 1 - 0 : Unité de drive actuellement prise en compte par le FDC .

NOTIONS GENERALES DE PROGRAMMATION

Une lecture attentive de ce qui suit vous évitera bien des erreurs lors de vos tentatives personnelles . Un ordre impératif est à respecter lors de la création de vos programmes .

1 - Avant toute commande :
A - Initialiser les paramètres nécéssaires à la commande envisagée .

B - Mettre le moteur en route !

C - Attendre qu'il tourne à plein régime .

D - Lire le registre d'état 0 :
Lors d'un accès disque , l'AMSDOS lit ce registre AVANT exécution de l'instruction et revient au BASIC sans l'avoir relu ! Comme la lecture de ET0 est indispensable avant de pouvoir accomplir une opération de lecture écriture , le non respect de cette règle pourrait bloquer votre programme dès le commencement !

E - Placer la tête sur la piste voulue et vérifier qu'elle s'y trouve

F - Envoyer l'instruction .

G - Lire ou écrire les octets de données si l'instruction l'exige .

H - Lire la phase résultat .

I - Réagir en fonction du résultat (Là tout est possible) .

J - Stopper le moteur .

L'ordre des instructions de D à H est IMPERATIF ! Pour le reste , on peut se permettre quelques fantaisies comme de mettre le moteur en route et le laisser tourner en permanence ...

2 - Le FDC ne peut travailler sous interruption . Toute séries d'instructions E/S adressées au FDC doit commencer par DI (Interdire les interruptions) et finir par EI (Rétablir les interruptions) .

3 - Les délais de temporisation doivent être respectés . Il n'est pas interdit de les modifier mais dans la plupart des cas cela posera des problèmes de fonctionnement .

4 - Certaines routines de la ROM AMSDOS pourraient être utilisées (Lire ET0 , chercher piste , recalibrate , Etc...) . Dans le cas présent , cela nuirait à la pédagogie du sujet . Autrement vous pouvez les utiliser pour économiser de la RAM mais attention ! Certaines d'entre elles transmettent des données dans la zone paramètres de drive utilisée par le BASIC . Si cette zone se trouve modifiée avec des valeurs hors AMSDOS vous pourriez avoir quelque surprises de retour au BASIC .

5 - Si votre drive émet un son anormal , ETEIGNEZ IMMEDIATEMENT LE CPC !

SOS Programmeurs n°1

★ ANNÉE: ???
★ AUTEUR: MICHEL MAIGROT

★ AMSTRAD CPC ★ DOWNLOAD ★

Dump disquette:
» SOS  Programmeurs  1    FRENCHDATE: 2011-05-26
DL: 996
TYPE: ZIP
SiZE: 95Ko
NOTE: 40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » Fdc - 13 - Edition du Buffer (SOS Programmeurs)
» Coding » Fdc - 11 - la Routine de Lecture Tous Secteurs (SOS Programmeurs)
» Coding » Fdc - 04 - Test Drive (SOS Programmeurs)
» Coding » Fdc - 25 - Formatage et Ecriture Piste (SOS Programmeurs)
» Coding » Fdc - 05 - Deplacement Tete (SOS Programmeurs)
» Coding » Fdc - 08 - Test Interrupt (SOS Programmeurs)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 105 millisecondes et consultée 3633 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.