★ CODING ★ Catalogue et heresie ★ |
Bidouilles ACPC n°30 - Catalogue et heresie |
Comme vous l'avez remarque, depuis quelque temps on vous apprend a piloter des formules 1 pour être dignes des plus grands de ce monde. Mais attention...Piloter oui, mais ne pas confondre la conduite avec la mécanique. En deux mots, pour l'instant on s'occupe des vecteurs système pour ensuite être capable de se débrouiller sans. Plus tard, nous verrons comment faire la cour aux circuits de votre bécane comme la lecture et écriture des secteurs, le tout sans aucun appel système (euh, dis p'tit Poum, ça fait un peu plus de deux mots, non ?). LE CATALOGUE On est toujours épate de voir a la teloche les sondages genre: "'3,24 % des Français mettent deux sucres dans leur café du matin." Si on considère que 34,65 % des Français ne prennent pas de café et que, pour le reste, 12,92 % n'aiment pas le sucre, on comprend facilement pourquoi les journaux informatiques ludiques consacres exclusivement aux CPC ayant des pages de bidouilles écrites par Sined et Poum marchent si fort (NDSepth : et l'age du capitaine, t'y as pensé à l'age du capitaine ?). Pour faire ce type de sondage, ceux de l'INSEE et autres boites envoient sur le terrain des agents pour voir qui a quoi dans le ventre. Sur CPC c'est pareil, on place une disquette dans la fente de notre bête préférée, on envoie ragent répondant au matricule BC9B, il va faire un tour du cote de chez Fred et revient avec plein d'informations. Mais pour ne pas rester dans l'abstrait, suivons de très près une journée de notre agent BC9B enquêteur de catalogues. TOUS LES MATINS... Au petit matin, après une bonne douche, l'agent BC9B saute dans son falzard et sans prendre son café (car il fait partie des 12,92 %) (NDSepth : avec combien de sucres ?) se rend au bureau. La secrétaire : Elle lui donne le planning de la journée: tu vas travailler sur la ville Face A dans le quartier User-Courant. N'oublie surtout pas, avant de partir, tu préviens monsieur DE de l'emplacement qu'il doit te réserver pour stocker tes informations, sinon il les mettra ou bon lui semble et, pour les retrouver, bonjour l'angoisse. Et voila notre héros sorti des sentiers battus a la recherche d'informations. Comme tout aventurier, il pourra rencontrer un paquet de problèmes, par exemple, une zone occupée par le Basic ou ses variables. Dans ce cas, la Carry sera a 0 et le flag Zéro a 1 (donc, si le buffer est occupe, JR NC ou JR Z Erreur). Comme vous le constatez, si vous voulez traiter les erreurs, de deux choses l'une, ou on tient compte de l'erreur rencontrée par remplacement d'un buffer occupe. Dans ce cas. on branche la routine d'erreur par un JR NC,ERR ; dans le cas contraire, on ne traite que les erreurs de lecture en se branchant par un petit JR Z,ERR. Tout ça c'est bien gentil, mais pour utiliser ce docteur il faut savoir encore quelques petits trucs que l'on ne trouve pas dans les livres, seulement dans les bidouilles du Cent Pour Cent (vous me direz, c'est pour ça que l'on nous paye si mal). Les données du catalogue sont stockées, si tout va bien. dans le buffer pointe par DE avant rappel du vecteur. L'organisation est légèrement différente de ce que l'on a l'habitude de voir avec des éditeurs de secteur comme Disco et compagnie. Le début du fichier est marque par un 255, sa longueur est de 11 dont 8 pour le nom et 3 pour l'extension (le point séparateur n'apparaît pas dans les noms des fichiers, OK?). Pour être encore plus complet, on peut également inhiber les messages d'erreur de l'Amsdos (Disc missing, Read fail, etc.) en passant par des vecteurs comme le BC6B qui ne marche absolument pas sur 6128 ou les RSX cachées du Dos qui, elles, par contre, marchent très bien. Mais c'est une autre histoire. L'AUTRE HISTOIRE DES RSX Il existe neuf RSX qui ne peuvent être appelées a partir du Zicba. Imaginez toute cette puissance inexploitable. Leur emploi est assez délicat mais loin être impossible. Tout est dans le passage de paramètre. Avant de voir comment elles fonctionnent, voici quelques explications. Avec ces commandes, vous pouvez autoriser ou interdire l'affichage des messages d'erreur (sympa pour réécrire la commande CAT), initialiser les paramètres du disque (sympa pour les accès super rapides), sélectionner un format particulier (sympa pour les copains), lire et écrire directement les secteurs en mémoire (sympa la grammaire), formater les pistes (sympa les scratchages), balader la tête de lecture sur les pistes (sympa comme boite a rythme), lire le statut du lecteur (sympa comme lecture) et enfin fournir le nombre d'essais pour les opérations de lecture, formatage et écriture (sympa tatrac). La première commande inhibe et autorise l'affichage des messages d'erreur, je dirais même plus, non seulement elle interdit l'affichage, mais elle ne lance même pas la routine des erreurs (en deux mots, rien a l'écran et pas de R, I ou C a faire, juste a gérer a sa manière). LA MAGIE DE L'AMSDOS Les RSX, moins connues sous le nom de Résident System eXtension, si notre mémoire ne nous fait pas défaut, sont des petits programmes uniquement en langage machine qu 'on appellera directement a partir du Basic par l'intermédiaire d'un mot clef dont l'initiale est '|' sur Qwerty et "ù" sur les claviers Azerty. Malheureusement, les RSX consacrées a ce sacre con de lecteur vont de 1 a 9. Comme la première lettre des tokens est aussi la dernière, donc la seule, il faut mettre son bit 7 a 1, soit ajouter 128 a son code ASCII (format des RSX oblige). De ce fait, les RSX sont difficilement implantables sous Basic. Même si leur installation était réalisable, le format des paramètres qu 'elles réclament n'est pas matériellement possible depuis ce langage dit évolue. Il est donc obligatoire de passer par une petite moulinette en langage machine permettant de récupérer les informations si précieuses au bon fonctionnement des routines. Si nous vous montrons comment appeler ces programmes résidant en ROM a partir du Basic, faire la petite moulinette si chère aux puristes du Basic sera pour vous un jeu d'enfant. Voici donc le problème soumis: Comment appeler une RSX a partir de son nom tout en sachant que nous aurons besoin de presque tous les registres, donc l'impossibilité de passer son adresse par run de ceux-ci. C'est ici que tout se corse. Heureusement que l'Amsdos contient un petit vecteur a l'adresse &18. Ce RST (ReStarT) permet de lancer une routine située sur une ROM de second plan. Pour cela, il suffit de le faire suivre par un mot contenant l'adresse d'un tampon contenant lui-même l'adresse de la routine (un mot), puis du numéro de ROM (un octet). Cela donne rembrouillamini infâme que nous avons utilise dans le source ci-joint. Par exemple, si nous parlons de lancer une routine imaginaire située en &CCCC sur la ROM 3, étant donne que ces données seront a l'adresse &4000, il nous suffit d'écrire: RST &18 |
Page précédente : Bidouilles ACPC n°29 - Le secret des disquettes |
|