5138
UTILITY -> Floppy disc and tape tooltypeins
© CPC Infos (1991)
 
 
 
Transfert De Fichiers
Transfil v1
cpc
 
 

Last Update : Saturday 29 August 2015 at 17 h 21

Manual n° 1

Real size : 1200 * 1726 px = 293.93 Ko

Manual n° 2

Real size : 2400 * 1693 px = 633.98 Ko

Manual n° 3

Real size : 2400 * 1693 px = 583.99 Ko

Manual n° 4

Real size : 2400 * 1694 px = 591.06 Ko

Manual n° 5

Real size : 2400 * 1695 px = 458.74 Ko

Manual n° 6

Real size : 2400 * 1693 px = 373.87 Ko

Manual n° 7

Real size : 2400 * 1693 px = 391.95 Ko

Manual n° 8

Real size : 2400 * 1691 px = 441.04 Ko

Manual n° 9

TRANSFERT DE FICHIERS ENTRE DES DISQUETTES A FORMATAGE STANDARD OU SPECIAL Yannick GOUR Valable pour CPC 664 - 6128 Le programme propose permet de transferer des fichiers BASIC, binaires ou ASCII entre des disquettes de formatage quelconque, que ce soit sur un lecteur A, ou B, ou entre les deux. PREAMBULE ********* L'utilitaire propose est donc un transfereur de fichiers. Il est certes moins pratique d'utilisation que certains utilitaires CP/M ou que DISCOLOGY, mais il est beaucoup plus performant car il peut travailler avec toutes sortes de formatages (ce que ne savent pas faire DISCOLOGY et d'autres). Cet utilitaire, baptise TRANSFIL, fait suite a FORMAT+, utilitaire de formatage dans le format de son choix, et a la serie de programmes proposes pour l'exploitation de disquettes a formatage special. La lecture de l'article concernant ces derniers est fortement conseillee pour comprendre comment sont determines les formatages sur les CPCs. CHOIX DES FORMATAGES ******************** 1) Mise en route de TRANSFIL ---------------------------- Apres avoir remis a zero le CPC, lancez TRANSFIL.BAS. Suit une attente de 3 ou 4 secondes pendant laquelle le magnifique ecran de choix est cree. NB : je parlerai de blanc ou de noir pour les couleurs, ce qui sera evident pour le possesseur d'un ecran couleur; le possesseur d'un ecran monochrome traduira aisement cela en clair ou obscur. Le possesseur de moniteur couleur, generalement beaucoup moins net en haute resolution qu'un monochrome, modifiera a sa convenance les couleurs en ligne 250. 2) Choix des formatages ----------------------- La partie interessante est le tableau central ou apparaissent dans une ligne et dans une colonne les differents formatages connus de TRANSFIL (pour l'adaptation a ses formatages personnels, voir le chapitre Personnalisation de TRANSFIL). Les noms sont blancs sur fond noir, sauf pour les 2 "DATAS", noirs sur fond blanc et pour la case a l'intersection de leurs lignes et colonne. Dans cette version de TRANSFIL, on a le choix entre DATA (format de donnees standard), VENDOR (format systeme standard), DATA+ (extrapole de DATA en ajoutant un secteur &CA et en utilisant les pistes 40 et 41, ce qui donne 208ko de capacite), DB1-198ko (meme formatage par piste que pour DATA+, mais restreint aux pistes 00-39) et DB2-198ko (meme chose que DB1-198ko sauf qu'il s'applique entre les pistes 40 et 79 ; ce format n'a donc d'utilite que sur un lecteur 80 pistes. Avec DB1-198ko, il permet de partager une disquette 80 pistes en deux disquettes virtuelles de 40 pistes, avec tout le profit que l'on peut en tirer, surtout si on a lu mon article sur les trucs pour l'exploitation de disquettes a formatage special en lecteur A ou B. Comme indique sur la ligne sous le tableau, on change de selection au moyen des touches curseur. Un coup a droite et on passe a DATA+ sur la ligne, un coup en haut et on passe a VENDOR (le tableau est defini circulairement; on saute d'un bord a l'autre, ce qui est plus agreable). La case du tableau a l'intersection des ligne et colonne des formatages selectionnes est toujours "allumee". Pas besoin d'etre Einstein donc pour comprendre comment choisir deux formatages. 3) Validation du choix ---------------------- Comme ecrit a l'ecran. Il suffit de taper "ENTER" ou "RETURN". L'ecran s'efface alors et on doit patienter 3 ou 4 secondes avant que l'ecran de transfert n'apparaisse. TRANSFERT DE FICHIERS ********************* 1) Description de l'ecran ------------------------- L'ecran est compose de 4 parties qui sont, de haut en bas : a) Le bandeau superieur avec le nom, le numero de version et le copyright a gauche et des informations beaucoup plus interessantes a droite, a savoir : les formatages choisis, les lecteurs et users actuellement actifs ainsi que le sens de transfert. Par exemple, on lira : A(0):DATA "--"" B(A):DATA+ Cela signifie qu'on transfert du lecteur A/User 0 en format DATA vers le lecteur B:/User 10 en format DATA+. b) La fenetre source, surmontee d'une ligne en gris avec "SOURCE" inscrit dessus. C'est ici que s'afficheront le catalogue ou le directory de la disquette source. c) La fenetre source, surmontee d'une ligne en gris avec "DESTINATION" inscrit dessus. C'est ici que s'afficheront le catalogue ou le directory de la disquette destination. d) La fenetre du menu principal ou des messages pour les transferts ou effacements. Le menu principal est en fait le seul qui soit. Il indique les commandes de modification des parametres de transfert, de copie et d'effacement. On va sans plus tarder les decrire. 2) Modification des parametres de transfert ------------------------------------------- "TAB" : Inversion du sens de copie. Bien evidemment, la fleche designe le formatage de la disquette destination. Ceci explique que le choix dans le tableau au debut se fait sans indication de sens. En prenant DATA en ligne et VENDOR et colonne, ils se retrouvent seulement places dans le bandeau superieur respectivement a gauche et a droite. A l'origine, le transfert se fait donc dans le sens DATA -" VENDOR mais une pression de la touche "TAB" suffit a l'inverser. "Fleche vers la gauche" : Permutation du lecteur source, qui passe de A a B, et vice versa. "Fleche vers la droite" : Permutation du lecteur destination, qui passe de A a B, et vice versa. "Fleche vers le haut" : Incrementation du User source. Il y a retour apres 15 a 0. Le numero est exprime en hexadecimal (chiffres 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F). "Fleche vers le bas" : Incrementation du user destination. Meme remarque que pour le user source. 3) Catalogue ou directory ------------------------- "F1" (touche du pave numerique ou bien touche "1" du clavier !) : Permet de cataloguer la disquette source. La fenetre source est effacee et un message invite a inserer le disc source, avant de presser une touche pour lancer le catalogue. Le catalogue apparait ensuite. Une remarque d'ordre general : les messages d'erreur eventuels dus a l'AMSDOS ne sont pas detournes et sont ceux sous BASIC. Il ne devrait donc pas y avoir de difficulte pour y reagir. On peut interrompre cette operation lors de l'attente de touche en pressant la touche "ESC", auquel cas s'affiche dans la fenetre de catalogue "*Abandon*". Il y a retour alors au menu. "F4" (touche du pave numerique ou bien touche "4" du clavier !) : Permet de faire le Directory (fichiers sans indication de taille) de la disquette source. Meme processus que pour "F1". "F2" : Fonction similaire a "F1", mais pour le disc destination. "F5" : Fonction similaire a "F4", mais pour le disc destination. 4) Effacage de fichiers ----------------------- Il suffit de presser la touche "DEL". Le menu en bas s'efface, remplace par une phrase invitant a inserer le disc source dans le lecteur adequat et a taper le nom du fichier a effacer. A noter que cette operation n'est faisable que sur le disc source. Si par exemple, on vient de transferer par erreur un fichier, il suffit d'inverser le sens de la copie pour pouvoir l'effacer. Le nom de fichier est saisi sur la deuxieme ligne. Les minuscules sont automatiquement converties en majuscules. Les caracteres admis sont entre l'espace et le Z, ce qui comprend tous les caracteres autorises par l'AMSDOS. On ne put pas entrer plus de 12 caracteres. La touche "DEL" permet d'effacer le dernier caractere entre. Une pression de la touche "ESC" interrompt le processus et il y a retour au menu. Les jokers ("?" et "*") sont autorises; c'est en fait comme sous BASIC. Une pression de la touche "ENTER" (ou "RETURN", selon le CPC) valide pour l'effacage le nom entre (si un nom a bien ete entre, sans quoi c'est inoperant). Puis s'affiche en dessus "efface... ". Il y a enfin retour au menu apres execution de la routine d'effacage. 5) Transfert de fichiers ------------------------ Presser la touche "ENTER" ou "RETURN". Inserer le Disc source dans le lecteur adequat puis entrer le nom du fichier a transferer. Toutes les remarques pour la saisie du nom de fichier a effacer sont valables ici, hormis celle pour les jokers. On transfere les fichiers un par un et il ne peut y avoir d'ambiguite sur le nom. Une fois le nom valide, un message sur la troisieme ligne, "lit...", indique l'operation de lecture. Si le fichier est introuvable, il y a retour immediat a la saisie d'un nom de fichier. Si une erreur de lecture apparait, alors la copie est interrompue. Il y a affichage sous "lit..." de "* Abandon *" et attente d'une pression de touche pour saisir un nouveau nom. Ceci peut se produire "aisement" si on tente de lire, par exemple, une disquette formatee en DATA comme si elle etait en DATA+. Cela arrive aussi des le debut si un fichier BASIC ou binaire est trop long ou en cours de lecture si un fichier ASCII l'est (cf remarque no 1). La lecture achevee, il est demande d'inserer le disque destination dans le lecteur adequat, puis de presser une touche pour lancer l'ecriture. On peut ici aussi interrompre le processus en pressant "ESC", pour retourner aussitot a la saisie de nom. Le processus d'ecriture est signale par le message "ecrit...". Un probleme lors de cette operation se traduit comme pour la lecture par un messsage d'abandon. Lorsque l'ecriture est finie, il y a retour a une nouvelle saisie de nom. Remarques : 1) Les fichiers sont copies en une seule fois. Aussi sont-ils 'limites' en taille pour les fichiers BASIC et BINAIRE a environ 42ko et des poussieres et pour les fichiers ASCII a environ 40ko. Autant dire que 99,99% des fichiers existant sur CPC seront transferables. 2) bien attendre lors d'une ecriture l'apparition du message de saisie d'un fichier a transferer avant de changer de disquette, meme si l'on croit que c'est termine. En effet, apres la sauvegarde, le fichier est rapidement reouvert (sur le disque destination) pour en modifier l'en- tete et y inscrire les valeurs originelles (et non resultant de la sauvegarde). Les specialistes du langage machine trouveront plus de details au dernier chapitre. Resume des commandes - Touches curseur et "TAB" pour selectionner les lecteurs et Users de source et destination, et pour changer le sens de copie. - Touches du pave numerique ou du clavier "1","4" et "2","5" pour faire les catalogues/directory des disques sources et destination. - Touche "DEL" pour efacer un (ou des) fichier(s) sur le disque source dans une syntaxe similaire a celle de la commande RSX ├╣ERA. - Touche "ENTER" ou "RETURN" pour transferer un fichier. - Touche "ESC" pour interrompre les operations de catalogue/directory, effacage ou transfert avec retour au niveau precddent (au menu de la saisie de nom de fichier a transferer). 6) Personnalisation de Transfil ------------------------------- Comme son precedesseur FORMAT+, TRANSFIL a ete concu dans un souci de simplicite, d'emploi et de modification. De meme que pour FORMAT+, la personnalisation porte sur les formatages utilises. Comme on va le voir, l'adaptation est enfantine, pour peu que l'on sache ce qu'est un DPB. Mais encore une fois je renvoie pour cela a mon article sur l'exploitation des disquettes a formatage special. Les lignes de donnees de formatage, dans la version de TRANSFIL proposee, vont de 870 a 1090. Chaque formatage est compose de trois lignes. Voyons-les par l'exemple : 930 DATA "DATA+" 940 DATA 028,03,07,00,00D1,003F,00C0,0010,0000 950 DATA C1,0A,18,24,E5,02,04,00,00,FF Sur la premiere ligne, on trouve le nom du format. Sur la deuxieme ligne, on trouve les 9 premiers parametres du DPB, exprimes en hexadecimal sur un ou deux octets (parametres SPT a OFF). Sur la troisieme ligne sont les parametres FDC, de FSC au flag LOGIN. On a donc tout simplement le nom du formatage (entre guillemets pour eviter au Basic des confusions), suivi du DPB exprime en hexadecimal. Ce n'est que pour des raisons de facilite de lecture que l'on a mis cela en trois lignes et aussi separa les formatages les uns des autres. On n'a donc qu'a modifier ces lignes selon ses besoins personnels. On peut mettre aussi le nombre de formatages que l'on desire, (en ajouter mais attention au remplissage de l'ecran, ou en supprimer ) : le programme s'occupe de tout le reste et gere toute la mise en page. Il ne faut pas oublier apres le dernier DPB le DATA "FIN". OCCUPATION DE LA MEMOIRE PAR TRANSFIL (partie binaire) ****************************************************** Ce chapitre interessera surtout ceux connaissant le langage machine. Quant aux autres, ils pourront ameliorer leur connaissances de la RAM du CPC. Comme TRANSFIL travaille par chargement de fichier entier en memoire, un souci constant a ete de reserver le maximum de memoire (en continu) comme buffer I/O. D'ou l'utilisation de zones peu orthodoxes pour caser des routines ou des donnees, comme le montre la pagination memoire ci- apres. En deuxieme lieu, il me semble interessant d'expliquer comment il est procede au transfert de tous les fichiers, dans les limites du BUFFER, independamment de toute adresse de chargement. 1) Pagination sous TRANSFIL binaire * 0000 Routine d'affichage d'un texte qui s'acheve par un zero 0006 * 0007 Type du fichier en transfert * 0008 Sauts standards en RAM ROM 002F * 0030 TXT OUTPUT (copie du vecteur en BB5A) 0032 * 0030 RAM standard * 003F * 0040 Programme principal de gestion des commabdes de transfert et d'effacage avec les messages 02FF * 0300 BUFFER I/O ABFF * ABFC 4 octets requis par l'AMSDOS ABFF * AC00 debut de la RAM du DOS (RAMDOS) * AD64 buffer pour les vecteurs cassette utilise ici pour stocker les LOC, LEN, EXEC, nom et longueur des fichiers + chiffres hexa AD8A * B0FF Fin de la RAMDOS * B100 RAM necessaire au systeme d'exploitation B8FF * B900 Vecteurs du systeme d'exploitation BBB9 * BBBA Vecteurs des packs GRA, SCR et CAS remplaces par routines de BC67 saisie de nom, chargmeent, sauvegarde, verification, arret. * BC68 Vecteurs du systeme d'exploitation BD37 * BD38 Vecteur JP RESTORE + vecteur BASIC remplaces par routines de BDCC parametrage, gestion de fenetres, activation de lecteur, DPB... * BDCD Indirections du systeme d'exploitation BDF0 * BDF1 Adresse pour FAR CALL des RSXs de lecture/ecriture de secteur, BDFF recherche de piste, DIR et ERA. * BE00 DPB numero 1 et DPB numero 2 BE31 * BE32 Parametres pour determination des lecteur et user source et BE3F destination et pour le sens de copie. * BE40 RAM strictement reservee a l'AMSDOS (pas touche). BE7F * BE80 Texte du menu BF41 * BF42 RAM affectable par la pile BFFF * C000 RAM Video FFFF COmme on peut le voir, on s'est servi de deux restarts : le numero 0, qui ne sert qu'a remettre a zero le CPC et le numero 6 (RST 30H), qui n'est utilise qu'a l'initialisation avan d'etre inhibe. On peut donc les employer dans tout programme pour loger de tres courtes routines ou des sauts a des routines. Dans la RAM reservee a l'AMSDOS, il y a un buffer de stockage des vecteurs cassette detournes par le DOS. Comme on n'aura pas besoin de ces vecteurs avec TRANSFIL, cette zone sert pour le stockage de donnees. Les vecteurs auxquels on peut toucher sans risque, si on n'utilise pas le BASIC, sont justement ceux dedies au BASIC, de BD3A a NDCC. Comme de plus ici il n'est aucunement fait appel a des routines graphiques, tous les vecteurs du Pack graphique ont pu etre recouverts par des routines. De meme ceux du pack "ecran" (SCR), qui est certes utilise par le Pack Texte, mais directement en ROM. Enfin, les 6 premiers vecteurs du Pack Cassette etant exclusivement destines au travail sur cassette, on peut eux aussi utiliser leur place a loisir. En BDF1, on empiete sur un vecteur d'indirection lie a l'impression, qui n'est pas mise a profit dans TRANSFIL. Donc aucun risque. A la suite, la RAM libre jusqu'a BE3F est pleinement employee. Enfin, l'occupation de la RAM par TRANSFIL s'acheve par le texte du menu, loge en BE80 et s'etendant jusqu'a environ BF40. Apres, il vaut mieux laisser trop de place a la pile du processeur que pas assez. 2) Procede de transfert Pour un fichier ASCII, il n'y a pas d'en-tete et pas d'adresse de chargement donc, ce qui est assez logique. Les octets sont simplement lus un par un et ecrits un par un. Pour un fichier BASIC ou BINAIRE, on procede a la sauvegarde de son adresse de chargement, de sa longueur et de son type apres son ouverture et a la sauvegarde de son adresse d'execution apres son chargement. Cependant, il est toujours charge a une adresse constante, 0300H dans la version presentee de TRANSFIL. Il est donc sauvegarde avec cette adresse de chargement, les autres valeurs etant elles cependant egales aux originales. Le fichier est ensuite normalement ferme avant d'etre aussitot simplement ouvert. Cette ouerture permet en effet d'obtenir a l'adresse RAMDOS+19H, soit ici AC19, le numero du premier bloc du fichier sauvegarge, bloc qui debute par l'en-tete du fichier. Par calcul, on fonction du formatage employe, on determine les pistes et secteurs correspondants. On lit ce secteur. On remplace l'adresse de chargement 0300H en position 15H par la veritable que l'on avait stockee. Ensuite, on calcule la nouvelle somme de controle ou CHECKSUM. Cette valeur est la somme des 67 premiers octets du header et elle est ecrite en position 67. Si oui, il s'agit d'un fichier a en-tete, sinon, c'est interprete comme un fichier ASCII. Bref, le nouveau CHECKSUM est calcule et sa valeur ecrite la ou il faut. Enfin, le secteur ainsi modifie est ecrit sur la disquette. Ceci explique pour les experts du suivi a l'oeil des operations du lecteur de disquette qu'il se passe "quelque chose" apres la sauvegarde normale, ce 'quelque chose" etant donc l'ecriture de la vraie adresse de chargement du fichier. CONCLUSION ********** Ce programme TRANSFIL et cet article concluent ma serie d'articles et programmes sur l'utilisation des formatages speciaux de disquettes. Avec FORMAT+, je vous ai offert la possibilite de formater selon votre fantaisie des disquettes (mais je me permet de preconiser le format DATA+). Grace a TRANSFIL vous pouvez transferer d'une disquette a une autre, du moment que vous en connaissiez les formatages, tous les fichiers de toutes sortes (ou au moins 99,99%). Enfin, avec l'ensemble des routines proposees dans mon premier article maintes fois cite, vous pourrez adapter les programmes transferes pour qu'ils les reconnaissent sans modification, selon vos competences en BASIC et langage machine. Ces articles et programmes sont le fruit d'une tres longue experience dans ce domaine des formatages speciaux de disquette sur CPC. J'ai ainsi pu utiliser pleinement les possibilites d'un lecteur B a 80 pistes, avec autant de souplesse qu'un lecteur A. De surcroit, je dispose de 792ko par disquette (5.1/4 a quelques francs l'unite). Je ne peux donc que souhaiter a tous autant de profit dans l'utilisation de leur systeme de disque sur CPC, qui est un des plus souples qui soient ou qui aient ete, grace a la compatibilite CP/M. Vive l'Amsdos !


Goto Top
CPC-POWER/CPCSOFTS, programming by Kukulcan © 2007-2019 all rights reserved.
Reproduction forbidden without any express authorization. All the game titles used belong to their respective owners.