APPLICATIONSDIVERS ★ "REM-OFF" OU LA SUPPRESSION DES COMMENTAIRES ★

Disque virtuel pour Amstrad CPC 6128 sous CPM 2.2Applications Divers
Lors de l'utilisation du CP/M 2.2 sur le CPC 6128, seuls 64 Ko sont employés sur les 128 Ko disponibles. Ce programme astucieux permet d'utiliser les 64 Ko restant à la création d'un deuxième disque (virtuel) à accès quasiment instantané. Les programmes nécessitant de nombreux accès disques seront grandement accélérés. Telle la compilation avec Turbo-Pascal d'un long programme segmenté en plusieurs fichiers.

La méthode utilisée consiste à détourner quelques vecteurs de la table du Bios (Basic I/O System), qui sert d'intermédiaire entre le CP/M et la machine en ce qui concerne toutes les entrées/sorties.

En premier lieu, c'est le vecteur SELDSK, dont la fonction est de sélectionner le drive et de retourner l'adresse du DPH (Disk Para-meters Header), qui est détourné vers une nouvelle routine NEWSELDSK.

Par la suite, lors de la sélection du drive, c'est la nouvelle routine qui sera appelée et qui va effectuer un filtrage en fonction du drive demandé.

Si le drive M est appelé, alors les vecteurs READ et WRITE (lecture et écriture d'un secteur de 128 octets), du Bios sont détournés à leur tour vers de nouvelles routines NEWREAD et NEW-WRITE.

Sinon, les vecteurs READ et WRITE sont initialisés et c'est la vraie routine SELDSK qui est appelée.

La part la plus importante du travail est effectuée par les routines NEWREAD et NEWWRITE, qui doivent calculer la banque (bloc mémoire de 16 Ko) à commuter à partir de l'adresse ± 4000, et la position du secteur dans cette banque, en fonction du numéro de secteur et du numéro de piste sélectionnés auparavant.

Rappel : avant tout accès disque à la lecture ou à l'écriture, les routines SETTRK, SETSEC, SETDMA sont utilisées pour sélectionner respectivement la piste, le secteur, et la position mémoire à utiliser pour lire ou écrire un secteur.

Les transferts de données du disque virtuel à ia mémoire doivent s'effectuer à travers un tampon, de façon à ce que l'écriture ou la lecture en mémoire se produisent une fois la banque désactivée, afin de pouvoir accéder à la zone mémoire où sont commutées les banques.

L'inconvénient de cette méthode est le suivant.

Après chaque warm-boot, c'est-à-dire après un CTRL-C ou à la sortie d'une commande non résidente, les vecteurs des Bios sont initialisés, et il faut à nouveau dérouter le vecteur SELDSK pour utiliser le disque virtuel. Il existe quelques exceptions à cette règle : les commandes STAT et DUMP.

Cependant, l'initialisation du disque virtuel est une opération qui prend très peu de temps et cette contrainte est vite oubliée à côté des nombreux services que peut rendre celui-ci.

Réalisation

La commande RD (listing 1) commence par placer en mémoire les trois nouvelles routines NEWSELDSK, NEWREAD, NEWWRITE à partir de l'adresse #BE80.

Puis le vecteur SELDSK est détourné vers NEWSELDSK, et 2 octets du DPH B sont modifiés pour fixer la taille mémoire disponible et supprimer les pistes systèmes du disque virtuel.

La commande FRD (listing 2) a pour fonction de formater le disque virtuel, c'est-à-dire que toutes les banques sont remplies avec l'octet #ES.

Cette commande a été prévue pour une extension mémoire de 256 Ko, mais elle fonctionne aussi bien avec une extension de 64 Ko.

Remarques :

  • Etant donné que le logiciel du lecteur de disquette ne supporte que 2 drives, c'est le DPH du drive B qui est utilisé pour le disque virtuel. En conséquence, il ne faut pas utiliser d'unité supplémentaire avec le disque virtuel.
  • Certaines commandes CP/M spécifiques à l'Amstrad utilisent des vecteurs placés à partir de l'adresses #BE80. Ainsi, FILECOPY et KISCKITZ ne doivent pas être utilisés lorsque le disque virtuel a été activé une fois depuis le démarrage du CP/M.
  • Lors d'un retour sous Basic par la commande AMSDOS ou par un « reset » utilisateur (CTRL + SHIFT + ESC), le contenu du disque virtuel n'est pas modifié : il est possible de le réutiliser en démarrant le CP/M 2.2 et sans le reformater.
Utilisation

Ce programme fonctionne sur CPC 6128 ou CPC 464/664 doté d'une extension mémoire.
Dans le cas d'une extension de 64 Ko (ou CPC 6128), on obtient 62 Ko disponibles pour le disque virtuel et 198 Ko avec une extension de 256 Ko.

Utilisez au moins une fois FRD pour initialiser le contenu du nouveau disque.

Puis la commande RD devra être lancée pour activer le disque virtuel qui sera disponible jusqu'au prochain warm-boot, après lequel il sera nécessaire de l'employer à nouveau avant de réutiliser l'unité virtuelle.

Lorsqu'il est activé, le disque virtuel (M) s'utilise de la même façon que les autres disques.

Des fichiers pourront être échangés avec le disque virtuel grâce à la commande PIP, tandis que STAT M:DSK: indiquera les caractéristiques du nouveau disque.

MS

★ PUBLISHER: Micro-Systemes
★ ANNÉES: 1986 , 1987
★ CONFIG: CP/M 2.2 + ( 128K ou 256K)
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: Jean-Louis SEIGNE

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
  » Disque  virtuel  pour  Amstrad  CPC  6128  sous  CPM  2.2    (Micro  Systemes)    FRENCH    LISTINGDATE: 2024-12-31
DL: 26
TYPE: PDF
SiZE: 2237Ko
NOTE: 2 pages/PDFlib v1.6

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

Lien(s):
» Applications » Modification et Listage des Secteurs d'Une Disquette (Cahier de l'Amstrad)
» Applications » Dump de Secteurs de Disquette (Amstrad Magazine)
» Applications » Fichier de disques / Kartei für Schallplatten
» Applications » Editeur de disques (Catdisk)
» Applications » Moniteur de Disquette (CPC Revue)
» Applications » Deconnect Lecteur de Disquette
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» 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.73-desktop/c
Page créée en 169 millisecondes et consultée 75 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.