CODING ★ BIDOUILLES ★

Bidouilles ACPC n°08 - RSX editeur de secteurs
Alors que Robby était en train de se confectionner un RSX d'écriture en double hauteur (pour maculer les écrans de sa phrase favorite : "Robby est le plus beau"), il me posa la question suivante : que fais-tu dans ce numéro pour nos lecteurs préférés ? Je me posai alors la question suivante : est-ce que tous les lecteurs de notre revue possèdent Disco ?

Disco or not Disco. that's the question. A quoi cela sert-il que Robby se décarcasse, passe des nuits blanches, des week-ends en maison de repos, des journées a frapper sur le clavier de son CPC. des heures entières à quaire pattes sous son bureau à chercher un soft datant de la période antédéluvienne, si le petit lecteur assidu perdu au fond de sa campagne natale ne possède- pat, le logiciel dont tout le monde parle à voix basse : Disco. Prenant mon courage à deux mains, mes bouquins sous les bras, je me dirigeai vers mon antre, où tout rédacteur épuisé aime à venir se reposer. Là. las. lalala, je commençais mes investigations et écrivais mon premier petit idéogramme. Mais que de mots pour dire sf peu de choses, en fait, simplement pour amener le sujet de ce mois : les lectures et écritures de secteurs.

Dis, monsieur, c'est quoi un secteur ? Eh bien mon petit, il faut avant tout savoir qu'une disquette contient deux faces. Sur chaque face, environ quarante pistes sont disposées de façon concentrique. Sur chacune des ces pistes, environ neuf secteurs sont placés de manière régulière. Ce sont en fait des morceaux de piste, de taille égale, contenant chacun 512 octets. Entre ces secteurs viennent des identificateurs, mais cela dépasse quelque peu le cadre de ce petit article.

Donc, dans le format Data utilisé sur CPC sous AmsDos. nous savons que nous pouvons loger, sans perdre de fiabilité, quarante-deux pistes, notées de 0 à 41, contenant chacune neuf secteurs notés de &C1 à &C9, renfermant chacun. encore, 512 octets. Petit calcul : 40 * 9 * 512 = 184 320 octets disponibles. Comment cela ? Si on divise cette valeur par 1 024, ce qui est le nombre d'octets par ko, on s'aperçoit que le nombre d'octets enregistrables sur un tel support est 180 ko. Pourquoi le nombre de ko libres après formatage est-il alors seulement de 178 ko ? 2 048 octets sont partis faire un petit tour aux fraises '.' Pas cool ! Mais non, ces deux ko sont simplement utilisés par l'AmsDos pour gérer les entrées de la Directorie. Soixante-quatre points d'entrée de 32 octets son! donc pris, sans nous demander notre avis, pour que le système sache où et comment sont disposés les fichiers sur la disquette. Nous verrons aussi plus tard à quoi correspondent les valeurs stockées dans cet endroit crucial d'une disquette AmsDos. Pour l'instant, ce qui nous intéresse, ce sont les RSX que l'on vous a préparés et gardés au chaud pendant quelque temps.

MOUILLONS-NOUS AVEC LOADSEC ET SAVESEC

La lecture d'un secteur n'est pas dangereuse, sauf si on s'amuse à aller chercher le deux cent cinquantième secteur de la deux mille quarante-troisième piste. A ce niveau, le lecteur se prendra pour une auto-mitrailleuse en manque de délires dévastateurs. Si on reste dans le domaine du logique et du convenable, tout se passera sans problèmes, et le lecteur se sentira fier de collaborer à l'analyse du support magnétique rais en cause. Par contre. pour ce qui concerne la sauvegarde de secteurs, il faut faire très attention. Ce genre de manœuvre peut en effet réduire à néant bon nombre d'heures de travail. Si. par exemple, vous sauvez n'importe quoi dans le secteur &C1 de la piste 0. vous écrasez la Directorie, et il devient alors difficile, voire impossible, de récupérer les fichiers perdus. C'est pour cela que je ne conseillerai jamais assez de faire des copies de disquettes, avant de faire une quelconque opération sur l'original ( il est d'ailleurs préférable de faire des modifications sur la copie ). Bon. cela dit, jetons-nous à l'eau, mouillons-nous, et utilisons le mini-éditeur de secteur de ce mois.

LISTING BASIC SECTEDIT 0.1

Comme vous pouvez le voir, cet éditeur de secteurs n'est pas très long. Il contient deux RSX dont le listing assembleur est fourni, et qui sonl aussi simples que possible LOADSEC permet de lire un secteur, et SAVESEC permet de l'écrire. Ces routines font malheureusement appel à l'AmsDos. Peut-être que si vous êtes sages, vous aurez la même version sans passer par les routines systèmes, avec les petits In et Out que tout le monde connaît maintenant. Pour le moment, nous devrons nous contenter de cela. Voici la syntaxe de ces instructions : LOADSEC, n° de piste, n° de secteur, adresse en mémoire où seront logées les données (512 octets). SAVESEC s'utilise de la même manière. Il faut aussi savoir que le numéro du premier secteur n'est pas 1. mais &C1 pour une disquette au format Data, et &41 pou r une disquette au format CPM. Le choix du type de support est donc laissé à l'ulilisateur, selon le type de format utilisé. De plus, les disquettes possèdent normalement quarante pistes, numérotées de 0 à 39. Nous avons décidé d'accorder jusqu'à quarante-quatre pistes, valeur que certains lecteurs de disquette arrivent à gérer. Pour les commandes de l'éditeur, rien de bien sorcier :

  • S(ecteur) ; permet de modifier le numéro de secteur en cours.
  • P(iste) : fait de même pour le numéro de piste.
  • W(rite) : sauve les données contenues dans le buffer dans le secteur et la piste prédéfinie avec les commandes précédentes.
  • L(oad) : lit le secteur de la pisie prédéfinie avec les commandes S et P.
  • E(nd) : interrompt le programme.
  • V(aleur à changer) permet de modifier les données du buffer, ceci par saisie d'une adresse et d'une valeur à poker.
  • U(ndo) ; offre la possibilité, si une fausse manœuvre de sauvegarde a été commise, de remettre le secteur écrasé dans son état initial.
  • La barre d'espace change de page, car seule la moitié d'un secteur peut être affichée à l'écran, pour des raisons d'encombrement.
Ce petit éditeur est plus puissant qu'il n'y parait, car il est possible de déplacer un secteur, en procédant, par exemple, de la manière suivante :
  • SC4, pour lire le secteur 4 de la piste 0.
  • P12. pour passer en piste 11
  • SC9, pour sélectionner le neuvième secteur de la piste 12
  • W, pour écrire le buffer sur disquette.
Pour lire un secteur précis, il faut le sélectionner par S, forcer la piste avec P. puis ordonner le chargement avec L. Comme vous pouvez le voir, il est simple de se promener sur une disquette et de visualiser son contenu, de façon lente, bien entendu, car c'est tout de même écrit en Basic ; mais c'est assez fiable et cela permet de s'amuser un peu. Au passage, nous vous donnerons un petit conseil ; pour vos premiers assais de cette routine, utilisez une copie, et non un original, le temps de vous familiariser avec les commandes disponibles. Bien entendu, ce logiciel est du friouaire et n'est soumis à aucun kopirailleteu, ce qui vous laisse tous les droits de modification, destruction, amélioration, etc. Vive Amstrad Cent pour Cent.

CONCOURS PAS LONG

Alors que nous étions descendus boire un grand chocolat chaud (véridique) au café du coin, Robby me dit dans le creux de l'oreille, fort jolie au demeurant : hé. si on demandait aux lecteurs bidouilleurs de nous faire des démos graphiques et sonores d'enfer comme y "en a sur ST ? Cette phrase me fit m'éjecter de ma chaise, quelques heures plus tard, le temps de digérer le chocolat pour écrire ces quelques lignes. Donc, avis aux super-programmeurs. Si vous êtes capables de faire des super-animations, avec de la musique à se faire péter les tympans. sautez sur vos claviers et envoyez-nous vos. méga-démos. Nous serons heureux. nous les amoureux du CPC vivant de montrer à tous ces fous du ST ce qu'un petit micro-ordinateur peut faire. On va pas se laisser emm... non quand même !

SILLOUNAIXTEMONSE

C'est le Cœur triste que je vous abandonne à vos élucubrations capillo-tractées, et que je vous souhaite de passer de bons moments sur notre bécane de course préférée. Alors, paix et prospérité, et au mois prochain.

Sined en navet , A100% n°8 p56-57

Page précédente : Bidouilles ACPC n 05 - Le PSG (2/2)

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

Lien(s):
» Coding » Assembleur ACPC n°39 - L'addition s'il vous plait
» Coding » Assembleur ACPC n°08 - Initiation : Les CALL / JR
» Coding » Assembleur ACPC n°34
» Coding » Assembleur ACPC n°22 - Le CLS le plus rapide sur CPC - Part II
» Coding » Assembleur ACPC n°33
» Coding » Bidouilles ACPC n°39 - Gestion directe du FDC 765
Je participe au site:

» 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.732-desktop/c
Page créée en 202 millisecondes et consultée 2297 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.