★ APPLICATIONS ★ DISQUE ★ RéCUPéREZ VOS PROGRAMMES OU FICHIERS PROTéGéS (AMSTRAD MAGAZINE) ★ |
Récupérez vos programmes ou fichiers protégés (Amstrad Magazine) | Applications Disque |
Vous avez écrit un programme, puis l'avez enregistré sur une cassette ou une disquette en le protégeant. Après quoi, vous l'avez effacé de la mémoire de votre AMSTRAD. Malheureusement, dans votre précipitation de mettre à l'abri votre œuvre, vous avez oublié de conserver une copie non protégée de votre travail.Le programme proposé ici vous permettra de recopier vos fichiers de cassettes, ou disquette à cassette, ou disquette en supprimant le flag de protection mis en place par le soft du CPC. Il vous est fourni sous la forme d'un listing Assembleur et d'un listing Basic. Le listing Assembleur permettra à ceux qui le désirent d'améliorer ce programme. (Par exemple en y incluant un traitement des erreurs). Le listing Basic autorise tous les possesseurs de CPC à utiliser le programme et permet de choisir le type de support des fichiers entrée et sortie. Programme Assembleur Le programme Assembleur qui vous est présenté aurait pu être écrit par tout possesseur de la précieuse brochure AMSTRAD COMPLETE FIRMWARE SPECIFICATIONS.” Il permet, pour tout fichier enregistré en "FILE FORMAT" (c'est le cas des fichiers ou programme créés par la commande SAVE) de charger ce fichier en RAM, puis de la ré-enregistrer sur un support magnétique. Le fichier obtenu en sortie aura des spécifications strictement identiques au fichier fourni en entrée, mais il ne sera plus protégé. Cela signifie que, à l'exception du bit de protection, les différentes parties, utiles du header du fichier entrée (adresse des données, adresse du point d'entrée, longueur du fichier, zone utilisateur) auront les mêmes valeurs dans le header du fichier sortie. La routine AFFER1 est destinée à permettre le traitement des erreurs. Elle n'a pas été utilisée dans ce programme et se compose uniquement de deux instructions, mais vous pouvez éventuellement y inclure le traitement d'erreurs que vous désirez. Attention toutefois, dans ce cas, à modifier l'adresse de chargement du programme. Celle qui est donnée (&A4B5) a été calculée pour permettre aux possesseurs d'une unité de disquettes d'utiliser ce logiciel. Programme Basic Le programme BASIC permettra à ceux qui ne disposent pas d'un Assembleur-Editeur de mettre en œuvre ce programme. Il permet en outre à ceux qui disposent d'une unité de disquettes de choisir le support du fichier entrée et celui du fichier sortie. Pour pouvoir utiliser ce programme, les utilisateurs AMSTRAD qui ne possèdent pas d'unité de disquettes ne devront pas saisir les lignes 50, 60, 70, 100, 110, 130 et 140. Pennées et routines utilisées en Assembleur TYP-IN type de support du fichier entrée, sera à 0 pour une cassette, à 1 pour une disquette. TY-OU type de support du fichier en sortie, sera à 0 pour une cassette, à 1 pour une disquette. Ces deux zones sont renseignées par le programme Basic. Elles permettent de déterminer la longueur maximum du nom de fichier. — NOM-IN nom du fichier en entrée. — NOM-OU nom du fichier en sortie. — LNG-IN longueur du nom du fichier entrée. — LNG-OU longueur du nom du fichier sortie. — TYP-PG type du fichier entrée. — ADR-DE adresse de chargement du fichier. — ADR-EN adresse du point d'entrée. — LNG-PG longueur totale du fichier. — USR-ZO zone utilisateur du header. Les zones TYP-PG, ADR-DE, ADR-EN, LNG-PG, USR-ZO, sont renseignées par le header du fichier entrée. Les zones NOM-IN, NOM-OU, LNG-IN, LNG-OU sont renseignées par la demande de nom de fichier à l'écran. Principales routines utilisées Ces routines sont appelées par un CALL BC77 OPEN d'un fichier input. Cette routine retourne: + Dans le registre A le type du fichier, + Dans le double registre BC la longueur totale du fichier, + Dans le double registre DE l'adresse de chargement des données, + Dans le double registre HL l'adresse d'un buffer contenant le header du fichier. La zone utilisateur est contenue dans les octets 28 à 63 de ce buffer. + BC83 READ d'un fichier input. Cette routine retourne dans le double registre HL l'adresse du point d'entrée. BC8C OPEN d'un fichier sortie. Cette routine retourne dans le double registre HL l'adresse d'un buffer contenant le header. La zone utilisateur obtenue lors de l'OPEN du fichier entrée sera reconduite dans ce buffer. BC98 WRITE d'un fichier out put. BC0E Mise de l'écran dans le mode fourni dans le registre' A. BC32 affectation à l'INK dont le numéro est donné dans le registre A des couleurs dont les numéros sont donés dans les registres B et C. BB06 Lecture d'un caractère frappé au clavier. Le caractère est donné dans le registre A. BB5A Affichage à l'écran du caractère dont la valeur est dans le registre A. BB78 Retourne les positions horizontales du curseur dans les registres H et L. BB75 positionne le curseur aux positions données dans les registres H (Numéro de colonne) et L (numéro de ligne). Utilisation du programme En ce qui concerne le programme Basic, vous n'avez qu'à taper K pour une cassette ou D pour une disquette lors de la demande dy type de support. Lors de la copie de fichier, le programme vous demande le nom du fichier en entrée puis celui du fichier en sortie. Le nom que vous tapez alors doit obéir aux règles suivantes: Nom du fichier en entrée Il doit contenir au maximum 16 caractères pour une cassette et 12 (8 pour le nom et éventuellement 4 pour le type sous la forme. XXX). Le programme considère le nom, comme fourni lorsque vous avez atteint ce maximum ou appuyé sur ENTER. Ce nom est obligatoirement pour un fichier sur disquette, mais facultatif pour un fichier sur cassette. Si vous ne fournissez pas de nom, appuyez sur ENTER. Le programme chargera alors le premier fichier trouve sur la cassette. Si il s'agit d'une disquette, vous aurez le message ‘ ‘Bad com-mand” et le programme vous redemandera le nom du fichier. Nom du fichier en sortie Il doit obéir aux mêmes règles que le nom du fichier en entrée. Appuyez sur ENTER directement si vous voulez reconfuire le nom du fichier d'entrée sur le fichier de sortie. Toutefois, si vous n'avez pas fourni de nom de fichier d'entrée, le fichier sera écrit sans nom sur la cassette (Unnamed File), et sur disquette vous aurez le message d'erreur “Bad Command” puis à nouveau la demande de nom du fichier en sortie. Demande d'un autre fichier Après le traitement complet d'un fichier, le programme vous demandera: AUTRE FICHIER (O/N)? Si vous avez à traiter un autre fichier obéissant aux mêmes conditions de support, tapez O. Sinon, tapez N. Le programme effectue alors un RESET général (par RST 0). R.P. Spiegel ,AMSTRAD MAGAZINE n°3 (1985)
|