9740
UTILITAIRE -> Outils pour disquettes et cassettes
© _Public_Domain_ (2004)
 
 
 
CATaclysme 1.0
cpc
 
 

NOTICE / MANUAL

TXT (2)

NOTICE TEXTE n° 1 (13.65 Ko)

CATaclysme 1.0 Une production GPA (c) 2004 revision du 02/11/2004 Introduction 1) Principe de fonctionnement du logiciel 2) Syntaxe du listing Basic 3) Limites de CATaclysme 4) Pour aller plus loin... Structure d'une entree de catalogue detournee Les restrictions liees a l'affichage du catalogue Credits et remerciements *************************** CATaclysme est un logiciel qui permet de creer des "catalogues detournes" avec un minimum d'efforts et des connaissances minimalistes en Basic. Qu'est-ce qu'un catalogue detourne ? C'est un catalogue particulier, evidemment stocke sur disquette, qui, au lieu d'afficher des noms de fichiers, execute des commandes ! Concretement, quand vous tapez la commande CAT, l'ecran s'efface, les couleurs et le mode graphique changent, et un beau message s'affiche ! Cette technique a tres souvent ete utilisee par les editeurs de jeux (Ere informatique, Chip, U.s.Gold) et les demo-makers (Voyage 93, The Demo, Face Hugger Megademo). Comment ce petit miracle est-il possible ? Nous le devons au vecteur &BB5A du CPC. Cette routine, utilisee par le CPC pour afficher le catalogue, interprete comme des commandes les caracteres dont la valeur ASCII est inferieure a 32. Pour plus d'informations, lisez "Le guide de l'utilisateur", chapitre 7 page 3 (pour un CPC 6128). Temperons nos ardeurs, il n'est malheureusement pas possible de faire tout et n'importe quoi avec ces caracteres de commandes. Certains sont tout bonnement inexploitables dans un catalogue (25, 23). Il faut egalement tenir compte des nombreuses contraintes liees au fait que le CPC essaie d'afficher un catalogue de disquette, informations que nous aborderons par la suite. Apres cette succinte introduction, voyons comment fonctionne CATaclysme. 1) Principe de fonctionnement du logiciel ------------------------------------------- CATaclysme se compose de deux modules distincts : 1) un interpreteur de fichier ASCII Ce programme lit un fichier Basic sauvegarde en ASCII, analyse son contenu, et transforme les commandes reconnues en codes ASCII correspondants. 2) Un module de generation du catalogue Il lit les donnees creees en memoire par l'interpreteur et cree une structure de type catalogue en memoire. Une fois cette structure cree, le programme l'enregistre sur les quatre secteurs qu'occupe un catalogue standard. Pour generer un catalogue detourne, il vous faut, avant d'utiliser CATaclysme creer un fichier Basic particulier qui "execute" votre presentation. Un exemple ? 100 MODE 1 110 INK 0,0 120 INK 1,24 130 PAPER 0 140 PEN 1 150 LOCATE 13,12 160 PRINT "CECI EST UN TEST" 170 LOCATE 1,24 Une fois le listing au point, il faut le sauvegarder en ASCII (SAVE "PRESENT.TXT",A). Lancez ensuite le programme -CATA.BAS. Le premier module vous demandera, en plus du nom du fichier source, deux informations : * Correction de l'alignement vertical (-2 a 1) : Permet de modifier l'alignement vertical de la presentation. La valeur saisie concerne les commandes LOCATE et WINDOW. * Mode LOCATE (Y/N) : Permet de creer une presentation generique, affichee correctement quel que soit le mode graphique. Ce mode implique de se limiter a des affichages simples de textes, car on ne sait pas normalement dans quel ordre le CPC va traiter les commandes. Une exception a cette regle d'or : la premiere entree du catalogue est toujours affichee en premier ! Il faut donc dans cette ligne placer la commande effacant l'ecran. Si le mode LOCATE n'est pas actif, le programme considere que le MODE 1 est le mode implicite lorsque vous tapez la commande CAT. Si le MODE reel est different, la presentation ne sera pas affichee dans l'ordre pre-determinee par CATaclysme, ce qui se traduira la plupart du temps par des effets etranges et illisibles a l'ecran ! Le programme travaille tranquillement (vive le Basic !) puis vous propose d'ecrire le catalogue detourne. Une fois le catalogue cree, tapez simplement la commande CAT ! Sur l'archive, vous trouverez trois exemples de presentations illustrant les possibilites de CATaclysme. MODE0.TXT : presentation en MODE 0 (pas en mode LOCATE), utilisant l'instruction CHR$(x) pour afficher des bandes de couleurs. MODE1.TXT : presentation en MODE 1 (pas en mode LOCATE) avec un beau logo fait avec des commandes WINDOW. MODE2.TXT : presentation en MODE 2 (mode LOCATE) qui fonctionne correctement quel que soit le mode graphique courant avant de saisir la commande CAT. Une fois que votre presentation est faite, peut-etre aimeriez vous copier des fichiers sur votre disquette. C'est tout a fait possible ! Il faut juste faire en sorte que ces fichiers ne soient pas affiches par le catalogue, en les masquant. Tout bon utilitaire de gestion de fichier est capable de ce genre de prouesse :-). 2) Syntaxe du listing BASIC --------------------------- Pour etre correctement interprete par CATaclysme, le listing Basic doit obeir aux regles suivante : * une seule commande par ligne * pas d'utilisation de variables * les valeurs numeriques doivent etre saisie en decimal Le programme reconnait les instructions suivantes : REM ou ' Afficher une remarque dans le listing. La ligne est bien evidemment non interpretee. MODE a Mode graphique PEN a Selection de la couleur du texte PAPER a Selection de la couleur du fond INK a,b,c Definition d'une encre BORDER a,b Definition de la couleur de la bordure de l'icran WINDOW a,b,c,d Definition de la fenetre texte courante PRINT Affichage d'un texte (Attention, la commande se comporte comme un PRINT ""; PRINT CHR$(x) Affichage d'un ou d'une serie de caracteres. La encore, la commande correspond a un PRINT CHR$(x); CLS Effacement de la fenetre courante LOCATE x,y Positionnement du curseur texte en colonne x ligne y Certaines commandes sont plus restrictives qu'en "pur" Basic : * On ne peut pas afficher des caracteres superieurs a 127. La commande sera correctement interpretee, mais c'est le caractere (char-128) qui sera affiche. Blamez la routine systeme de traitement du catalogue, qui fait disparaitre le bit 7 de tous les octets affiches. * En mode LOCATE, a moins de savoir exactement ce que vous faites, il est peu conseille d'utiliser la commande WINDOW. La commande MODE doit etre la premiere utilisee dans le listing Basic. Il n'est pas non plus evident de changer la meme couleur plusieurs fois de suite, ni d'utiliser le mode transparent car vous ne savez pas quand les commandes sont executees. 3) Limites liees a CATaclysme ----------------------------- Vous ne pouvez pas utiliser le caractere " dans vos textes (il sert de separateur en Basic). Remplacez-le par un ' et jouez de l'editeur de secteurs si vous souhaitez absolument utiliser des guillemets... CATaclysme n'a pas du tout ete prevu pour gerer l'affichage d'un catalogue detourne avec la commande ùDIR. Cela n'a de reelle incidence qu'en MODE 2, ou le catalogue est alors affiche sur cinq colonnes. Voir a ce sujet le chapitre suivant. De toute maniere, personne n'utilise ùDIR, alors bon... 4) Pour aller plus loin... -------------------------- Structure d'une entree catalogue detournee : ******************************************** En mode standard : ------------------ 00 id 06 dd dd dd dd dd 17 dd dd 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 = autoriser l'affichage. 15 = interdire l'affichage : utile car le catalogue affichage des blancs et la taille du fichier entre chaque nom. 17 = commande ne faisant rien, mais necessitant un parametre. Elle permet de masquer le point que le systeme affiche habituellement entre le nom et l'extension du fichier. id = numero d'index : permet d'ordonner de facon sequentielle les entrees. dd = donnee En mode Locate : ---------------- Entree si la commande PRINT est utilisee : 00 06 1F xx yy dd dd dd 17 dd dd 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 = autoriser l'affichage. 15 = interdire l'affichage : utile car le catalogue affichage des blancs et la taille du fichier entre chaque nom. 17 = commande ne faisant rien, mais necessitant un parametre. Elle permet de masquer le point que le systeme affiche habituellement entre le nom et l'extension du fichier. 1F = code ASCII de la commande LOCATE xx & yy : parametres de la commande LOCATE Entree si la commande PRINT n'est pas utilisee 00 06 dd dd dd dd dd dd 17 dd dd 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Il est evidement possible d'optimiser cette structure en fonction des commandes utilisees, CATaclysme ne pretend pas etre l'ultime generateur de catalogue detournes ! Les restrictions liees a l'affichage du catalogue ************************************************* * En fonction du mode graphique en cours au moment ou vous lancez la commande CAT, le catalogue de la disquette sera affichee sur une colonne (MODE 0), deux colonnes (MODE 1) ou quatre colonnes (MODE 2). Le CPC effectue un tri alphabetique des fichiers, puis les affiche par colonne ! Cette facon de proceder explique pourquoi le CPC n'affiche pas de facon sequentielle les entrees du catalogue, et qu'une presentation prevue pour fonctionner dans un mode graphique ne fonctionne pas dans un autre MODE. CATaclysme essaie de resoudre cette equation de deux manieres differentes : - Il utilise un octet d'indexation pour chaque entree du catalogue, ce qui permet de determiner quand le CPC traitera les commandes chaque entree. Cela ne permet pas de resoudre le probleme du MODE de depart, mais evite d'avoir a se triturer les meninges pour savoir si le CPC va executer telle commande avant telle autre. - Le curseur est systematiquement positionne a un endroit precis de l'ecran au debut de chaque entree. C'est le mode LOCATE, qui s'affranchit lui de toute notion d'indexation. Revers de la medaille, il offre fatalement moins de possibilites que le mode indexe. * La routine d'affichage du catalogue insere un point entre le nom et l'extension du fichier. Elle rajoute a la fin du fichier sa taille. Ces informations parasites doivent etre "effaces" ou inhibees afin que l'affichage ne soit pas perturbe. Il existe plusieurs methodes pour supprimer le point. La plus simple consiste a desactiver/reactiver l'affichage, mais cela "prend" deux octets. On peut se servir de la commande CHR$(8), mais il faut alors etre sur qu'un caractere sera affiche apres le CHR$(8). La methode la plus elegante, trouvee par Sylvestre, consiste a utiliser la commande CHR$(23). Pour l'affichage du catalogue, elle n'a aucun effet mais necessite un parametre ! Place juste a la fin du nom du fichier, elle empeche dont le point de s'afficher ! Pour eviter l'affichage de la taille du fichier, le plus simple est de se servir des commandes pour desactiver l'affichage ( CHR$(21) ) puis le reactiver lorsque le besoin s'en fait sentir ( CHR$(6) ). En pratique, il est fortement conseille d'activer l'affichage au debut de chaque entree, car toutes les commandes manipulant la position du curseur texte en ont besoin (LOCATE, etc...). * Le systeme ne permet pas d'afficher des caracteres ASCII superieurs a 127. Aucun moyen de contourner cette limitation. Maigre consolation, on peut afficher les caracteres 0 a 31. Ils ne sont pas grandioses, mais bon... * Les commandes ne peuvent pas etre a cheval sur deux entrees catalogue. Si votre commande "deborde" d'une ligne, elle ira chercher les parametres dont elle a besoin dans les caracteres affiches par le CPC a la suite du nom de fichier ! Ceci peut s'averer un moyen tordu d'optimisation (n'est ce pas, Sylvestre !). CATaclysme ne gere pas ce genre de bidouille, et remplit avec des 00 les zones trop petites pour contenir des commandes. * Les commandes SYMBOL (CHR$(&19)), CHR$(&5), CHR$(17) ne sont pas utilisables. - CHR$(&5) et CHR$(&17) car le mode graphique ne peut pas etre active - SYMBOL pour de multiples raisons : table des caracteres initialisee par defaut pas le CPC en SYMBOL AFTER 240, parametres de la commande ne tenant pas sur une entree catalogue, impossibilite d'utiliser des valeurs superieures a 127, etc... Credits et remerciements ------------------------ CATaclysme a ete programme par Tom et Jerry / GPA. Ce logiciel a ete developpe en un temps assez court (environ un mois), ce qui explique son interface deplorable et ses capacites limitees :-). Un grand merci a Super Sylvestre, qui m'a encourage fortemment (harcele ?) a creer ce programme. Cette idee m'avait deja ete suggeree par Iron lors de l'Amstrad Expo 2004, mais a l'epoque, j'avais juge le sujet sans reel interet apres avoir teste un generateur de catalogues en assembleur assez minable. C'est grace a Super Sylvestre que je me suis apercu que finalement, cet aspect etrange du CPC s'avere digne de consideration. Salutation a tous les survivants du CPC, en particulier a mes collegues d'infortunes Tronic et Tenebros, qui eux aussi, dans leurs antres, nous concoctent surement des programmes d'enfer :-)).
 

NOTICE TEXTE n° 2 (11.66 Ko)

CATaclysme 1.0 A GPA production (c) 2004 Last update : 11/02/2004 Introduction 1) How to use the software 2) Basic's syntax of the listing 3) Cataclysme's limits 4) A deeper approach... Structure of a directory entry Restrictions due to the catalog print routine Credits and acknowledgments *************************** Sorry to all Shakespeare' lovers, once again this is "french computing" english. CATaclysme is a little tool that allow you to create easily "catalog intros" with a minimum knowledges of Basic (yes !). What is a "catalog intro" ? It is a kind of catalog that executes commands instead of printing on screen filenames ! Basically, when you type the CAT command, the screen clears, colours and graphic mode change, then a nice message appears ! This strange technic has been usually used by software houses (Ere informatique, Chip, U.s.Gold) and of course demo-makers (Voyage 93, The Demo, Face Hugger Megademo). How this little miracle is possible ? You can thanks the &BB5A system vector. This routine, used by the CPC to print the directory, executes commands when the ASCII code value to print is lower than 32. For further informations, you should try to read the CPC user book, chapter 7 page 3 (for a french CPC 6128 book !). Do no be too optimistic, it is not possible to do whatever you want with these nice command characters. Some are useless (&1B, &17). We must consider too the numerous limits due to the fact the CPC try to display a catalog, not simply texts. After this short introduction, let's see what CATaclysme can do. 1) How to use the software -------------------------- Cataclysme is divided in two parts : 1) an ASCII file interpreter The program reads a Basic file saved in ASCII, parses it and make a conversion of the known commands in ASCII ones. 2) a catalog generator module It reads the data in memory generated by the first program and creates a directory structure in memory. After that, it saves it onto the first four sectors of a diskette. To create a "Catalog Intro", before to launch CATaclysme, you must create a Basic file that "executes" your presentation. Let's see an example ! 100 MODE 1 110 INK 0,0 120 INK 1,24 130 PAPER 0 140 PEN 1 150 LOCATE 13,12 160 PRINT "THIS IS A TEST !" 170 LOCATE 1,24 When your listing is ready, save it in ASCII format (SAVE "PRESENT.TXT",A) then launch -CATA.BAS. The first part will ask you the filename to load plus two important informations : * Vertical position update (-2 to 1) : Add or remove value from the vertical axys position in the LOCATE and WINDOW commands. Usefull when or presentation is not well lined up. * LOCATE mode (Y/N) Allows you to create a generic presentation, correctly printed whatever the starting graphic mode is. In this mode, you cannot know the order where the catalog will be displayed. So, it is sadly logical to limitate your creations to simple texts. One exception, the first entry of the directory is always the first printed. So, you must put the MODE command in the beginning of your presentation. If the LOCATE mode is inactive, CATaclysm considers that the 'beginning' mode is MODE 1. So, if the "real" mode is not the good one, the presentation will not be displayed in the right order, and does not do what you want ! After these boring questions, the program takes its time to do his job. Then, it awaits you for writing the catalog intro. To view the final result, just type the CAT command and enjoy ! On the archive, there are three examples in mode 0, 1 and 2. The last one is a "generic" one but only displays texts. It is possible to do better things if you know exactly how works a intro catalog. MODE0.TXT : presentation in MODE 0 (no LOCATE mode). It uses CHR$(x) instruction to display nice color bars. MODE1.TXT : presentation in MODE 1 (no LOCATE mode) with big letters done with WINDOW commands. MODE2.TXT : presentation in MODE 2 (LOCATE mode). It runs ok even if the active MODE before you type the CAT command is not MODE 2. When you have finished your intro catalog, I suppose you would be interested in copying on the diskette some files. Fortunately, it is possible. The only thing you must do is to protect the files from been displayed by the directory command. This is really easy, just activate the flag "System" of the files (every good filemanager can do that). 2) Basic's syntax of the listing -------------------------------- To be properly understood by CATaclysm, the Basic listing must obey some rules : * only one command per line * no variable ! * all values must be in decimal (no hexadecimal) CATaclysme recognizes the following instructions : REM or ' Displays REMak in the listing, of course, not converted into commands ! MODE a Graphical MODE PEN a Selects pen ink PAPER a Selects paper ink INK a,b,c Defines colors of an ink BORDER a,b Defines BORDER colors WINDOW a,b,c,d Defines a WINDOW PRINT Displays text (Warning, it acts as PRINT "";) PRINT CHR$(x) Displays character ( = PRINT CHR$(x); ) CLS Clears the screen LOCATE x,y Moves text cursor to position X, Y Some commands are not exactly the same as in "real" Basic : * It is impossible to display characters whose value is higher than 127. CATaclysm won't blame you, but it will be the character char-128 that will be displayed ! Let's thank the system CAT routine, that make disapear the seventh bit of every byte printed. * In LOCATE mode, excepted for the first entry, unlike you now exactly what you do, you should not use WINDOW command, try to change an ink several times, and use the transparent mode. Why, because you don't know when these commands will be activated ! 3) CATaclysme limits... ----------------------- You cannot use the character " in your text (Basic text separator... ). Replace it by an ', and after having generated you intro catalog, play with a sector editor you you want absolutly having inverted commas... CATaclysme is NOT designed to display intro catalog with the ùDIR command. It only creates problems in MODE 2, because the catalog is displayed with five columns. See chapter 5 for more informations. Anyway, who still uses this forgotten instruction :-) 4) A deeper approach... ----------------------- Structure of a directory entry ****************************** Classical mode : ---------------- 00 id 06 dd dd dd dd dd 17 dd dd 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 = allows text display. 15 = lock text display : obligatory because the CPC add blanks and filelength after its name. 17 = Does nothing, but needs a parameter. Nice trick to mask the dot between the filename and its extension. id = index number : force the CPC to display the entries in a defined order. Another nice idea, in fact... dd = data LOCATE mode : -------------- Entry if the PRINT command is used : 00 06 1F xx yy dd dd dd 17 dd dd 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 = allows text display. 15 = lock text display : obligatory because the CPC add blanks and file's length after its name. 17 = Does nothing, but needs a parameter. Nice trick to mask the dot between the filename and its extension. 1F = ASCII code of the LOCATE command xx & yy : LOCATE parameters. Entry if the PRINT command is not used : 00 06 dd dd dd dd dd dd 17 dd dd 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Well, it is obviously possible to do better in some circunstances. CATaclysme does not pretend to be the ultimate intro Catalog generator ! Restrictions due to the catalog print routine ********************************************* * When you type the CAT command, the CPC reads the MODE value to know how to display files. It orders alphabetically the files and send it to the screen in one (MODE 0), two (MODE 1) or four columns (MODE 2). Note that the files are ordered by column ! This strange way of doing this job explains why a presentation designed to be display in MODE 1 does not work properly in other resolutions. CATaclysme try to solve this equation using two ways : - it uses an index byte for every directory entry, so it can know the order where the CPC will sort the file entries. So, it is possible to create easly complex effects. Huge limit, CATaclysm considers that the "departure mode" is MODE 1. If it is not so, the introduction will be badly displayed... Fortunately, when you reset you CPC, MODE 1 is activated ! - On every directory entry, the text cursor position is obligatory defined with a LOCATE command. This is the LOCATE mode. On one hand, you can create a generic presentation, without index byte, in the other hand, it cannot allow you to make complex things easily. * Directory printing routine inserts a dot between the filename and its extension, followed by filelength. These unwanted informations must be "hidden" so the presentation runs correctly. There are several ways to kill the dot ! The first one is to lock/unlock display, but it costs two bytes (&15 &06). We can use the CHR$(8) char (moves cursor one char back) but we must be sure to display after it another character. The better way in my mind, found by the illustrous Sylvestre, is to use the CHR$(&17). It does absolutely nothing, but, as it needs a parameter, it reserves the dot ! To avoid the file length printing, the easy way is to lock/unlock the text display. I advice you to unlock the printing at the beginning of an entry, because all commands that have consequences on the text cursor position needs it ! * The CPC does not allow us to display ASCII values upper than 127. No way to cheat the machine. Sad comfort, you can print chars 0 to 31. They are not terrific, but that is better than nothing... * Commands CAN NOT overflow an entry to another. If you command "overflows", it will not take parameters it needs on the next entry, but in the chars usually displayed by the catalog (filelength) ! This can sometimes be a way to optimise an intro, most of the time, it does horrible things on screen... CATaclysme DOES NOT deal with this kind of trick, and fill with 00 unused areas. * Commands SYMBOL (CHR$(&19)), CHR$(&5), CHR$(&17) are not functionnal. - CHR$(&5) and CHR$(&17) because the graphical MODE can't be activated. - SYMBOL for two reasons : default init of the SYMBOL array at 240, command too long (9 bytes). Credits and acknowledgments --------------------------- CATaclysme has been programmed by Tom et Jerry / GPA. This little tool has been coded in a short time (about a month), it does explains why its looking is to poor and its capabilities so limited :-). A big hello to Super Sylveste, who has supported me to create such an utility. To be honest, during the Amstrad Expo 2004, Iron asked me for a tool like this one, but, at the moment, I found the subject uninteresting. Thanks to Super Sylvestre, I have opened my eyes : finaly, this strange particularity of the CPC is amazing ! Greetings to all CPC survivors. Hi to my unfortunate roomates, Tronic and Tenebros, who may, in their caverns, try to create evil CPC programs :-)
 



Goto Top
CPC-POWER/CPCSOFTS, programmation par Kukulcan © 2007-2024 tous droits réservés.
Reproduction sans autorisation interdite. Tous les titres utilisés appartiennent à leurs propriétaires respectifs.
Hébergement Web, Mail et serveurs de jeux haute performance