★ CODING ★ LA QUETE DES DIX SECRETS ★ |
Bidouilles ACPC n°29 - Le secret des disquettes |
Le secret des disquettes ...Voilà une chouette contrepéterie. Nous allons aborder un sujet dont tout les bidouilleurs parlent sans jamais dévoiler le face cachée et infernale de cette immonde interface. Utiliser le système se révèle simple et ergonomique, mais aussi lent et rigide que gourmand en mémoire. Vas-y Lipfy, faut que ça s'éloigne ... Comme vous le savez, le CPC dispose de l'Amsdos. Ams comme Amstrad, et Dos comme Disk Operating System, soit, en clair, le gestionnaire de disque d'Amstrad. Je tiens à crier haut et fort que ce système dérivé du CPM est un des plus beaux désastres informatiques parfaitement réussis qu'il m'ait été donné de voir dans ma longue vie de tirlipoteur de claviers. Même des petites machines ne méritant pas le nom de micro-ordinateur se sont vues dotées de gestionnaires mieux pensés. Bref, notre CPC n'est pas gâté à ce niveau, mais il reste tout de même notre micro préféré. Que voulez-vous, de très jolies filles peuvent aussi sentir mauvais des pieds, ce n'est pas pour cela qu'elles'vont seules au resto (Hé, Miss X. qu'est-ce que tu fous ce soir ?). Bref, nous allons tenter de pallier ce défaut du CPC en le forçant à travailler plus vite, surtout en ce qui concerne les accès disque. Sachez que s'il est possible de gagner du temps, cela sera, dans la plupart des cas, forcément aux dépens des capacités de stockage. M'enfin, nous verrons cela plus tard, car pour le moment, nous allons nous attaquer aux vecteurs. Il faut bien commencer ar quelque chose et c'est tout de même plus simple de travailler sur des bases existantes et conhues. Taille haut! QUOI DE NEUF Dit-il sarcastiquement au sortir d'un soupir agacé, une carotte dans la bouche et du persil dans... l'oreille. Deux types d'appel système existent. Le premier concerne les vecteurs situés dans la zone bien connue qui s'étend de &B000 à plus loin, et le second vise à appeler les RSX contenus par la ROM. En parlant de Rom, sachez que bien des chemins y mènent et que sur CPC, qu'il soit 464 ou 664, voire 6128, l'Amsdos se trouve toujours surIe slot numéro 7 de &C000 à &FFFF. Ce ship contenant 16 Ko à lecture seule est strictement le même quel que soit le CPC utilisé. Bref, pas de galère de compatibilité, tout baigne dans l'huile, on peut taper directement dans cette ROM sans se demander sur quelle machine on est, cela passe à tous les coups. En parlant d'huile et comme dirait Snake: "Ça sert de mettre de l'huile car quand on n'en met pas, ça serre !". Dis Miss X, tu viens au resto avec moi, ce soir? Dans un certain sens, les programmeurs de l'Amsdos ne se sont pas trop mal débrouillés, puisque tous les vecteurs existimts pour cassette ont étéfidèlement adaptés au gestionnaire de disque. Ce peut être un bel avantage pour ceux qui programmaient en assembleur sur cassette et qui ont pu passer au disque sans modifier la moindre ligne de code. Bref, chapeau pour ça, mais coup de pied au c... pour le reste. Aucun avantage majeur n'a été retiré de la nouvelle interface disque si ce n'est la vitesse de transfert et la fiabilité pourtant déjà correcte. Pas d'accès direct, pas de sécurité des données, pas de possibilité de marquage des zones défectueuses... Je préfère passer sur le reste de peur d'attraper des boutons. Trève de bavardage, et en avant les vecteurs. Ce qui suit est consacré à l'entrée. Nous verrons le plat de résistance plus tard. Voici les équivalents assembleur de l'OPENIN et du LOAD. Sésame, ouvre-toi: Avant tout, lorsqu'on parle de fichiers, il faut pouvoir les ouvrir. Un vecteur sert à cela. C'est l'adresse &BC77 qu'il faut appeler pour disposer du canal de lecture. Il arrive parfois (la vie n'est malheureusement pas toujours aussi rose et tendre que la peau satinée de Miss X), que l'ouverture ne fonctionne pas et génère une erreur. Dans ce cas, ce vecteur ne vous renvoie pas la carry. Le drapeau C vaut donc O. Si C vaut 0, il Y a des cheveux à se faire.
Voilà, vous mettez les bonnes valeurs dans les bons registres, puis vous appelez le bon vecteur. Là, le système, après avoir tirlipoté la disquette avec amour et la tête de lecture, vous renvoie des informations qu'il est bon de consulter avant d'aller plus en avant:
Vous voyez tout cela est très explicite. Pas besoin de longs discours là où des informations précises sont données. Nous allons maintenant voir ou analyser la structure de ces diverses comptes rendus du système. L'en-tête est composé d'une suite d'informations dont je vous livre le déplacement et la signification:
Comme vous pouvez le constater (en un mot), rien de plus de ce qui est renvoyé dans les registres. M'enfin, il vaut mieux que vous sachiez où se trouve est dans le cas d'un éventuel travail perdant les informations contenues dans les registres. Les valeurs données ci-dessus sont en décimal et indiquent des valeurs incluses. Nous avons tout saufIe type du fichier que l'on vient d'ouvrir. Il est tout de même important de savoir à quoi on a affaire. Voici la configuration binaire de l'octet si convoité. C'est parti pour la rencontre du troisième type. — Le bit 0 est le bit de protection. Si ce bit est à l, le fichier est protégé comme l'option SAVE"",P du Basic. Sauf que dans le mode de programmation en assembleur, cela fonctionne aussi pour le binaire. Il faut savoir que le renseignement sur ce type est d'une importance incommensurable au regard de ce qui suit. En effet, il faut absolument savoir à quel genre de fichier on a affaire. Il n'est pas possible de charger un fichier ASCII d'un seul coup d'un seul, alors que c'est parfaitement réalisable avec du binaire ou du Basic. Le vecteur à utiliser pour la lecture du fichier est directement et implicitement dicté par le type du fichier ouvert. Quoi qu'il en soit, on a ouvert ce fichier en lecture, il faut maiiltenant passer à l'acte. Deux cas se présentent donc. Le premier concerne l'Ascii, le second, le reste. Facile! PLACE ME MANQUE, Je vous propose ,un listing qui, je l'espère, vous permettra de patienter jusqu'au mois prochain. En attendant, que le plus fort lance son disque le plus loin. ; |
Page précédente : Bidouilles ACPC n°17 - Le catalogue AMSDOS |
|