ZxBasic Pré-compiler

-Version 1.03-















Tutoriel ZxBasic et compilation d'un programme.



Introduction:



ZxBasic permet d'utiliser le compilateur ZxText2P de Chris Cowley avec une plus grande facilité qu'avec les fonctionnalités DOS.

Il ajoute une interface de création à cet utilitaire.

Description :

1) Zone de texte pour l'édition.

2) Aide à la frape. (rappel des codes Basic, Ascii, et ajout de fonctions)

3) Menu d'options. ( pour les différentes commandes de fichiers et d'édition)

4) Barre de caractères spéciaux en complément du clavier et outils de vérification/conversion hexadécimale.








Saisie pour les claviers « AZERTY » ou « QWERTY »:

- En règle générale, vous tapez le programme Basic en toutes lettres et en majuscule.

Passer en majuscule avec shift ou à l'aide de « caps-lock » et taper le programme.

- Les minuscules sont réservées au caractères alphabétiques en vidéo inversés.

Exemple: « A »=A et « a »=A

Les caractères du ZX81 sont tous disponibles grâce au clavier, hormis les caractères graphiques, disponible dans la barre de boutons n°4 en bas de l'écran.

Pour les caractères en vidéo inversée (autre qu'alphabétiques), la touche « contrôle » pressée simultanément permet de les obtenir.

Exemple: « < »=< et «Ctrl+< »=<

de même pour l'espace : Ctrl+«  »= «  »

Pour les claviers QWERTY anglais, le principe est le même avec une disposition différente.





Caractères ZxText2P :

Commentaires : (!)  pour des commentaires non compilés (#).

Retours à la ligne:  [<-]  pour les coupures de lignes (\). Pour les « print » par exemple.

Label/indexes:   pour les noms de labels (@).

( Bien sûre, ces caractères ne sont pas disponibles dans la police réel du ZX81, voir « Ascii ZX »)





La fonctionnalité « Ajout »




Cette fonction permet d'ajouter un morceau de code fréquemment utilisé comme un copier/coller.

La liste se situe dans le répertoire « plug-in » de ZxBasic.

Pour Créer un Ajout, il suffit de sauvegarder un programme en format texte ou un morceau de code dans ce répertoire.

Il sera lu automatiquement, de même pour le commentaire si sa première ligne n'est pas vide.

Exemple: My_Tag.txt

(i) MON TAG PERSO

1 REM --- XAVSNAP 2006 ---

CTRL+S : Enregistrer le texte ( répertoire \plug_in de ZxBasic )

Pour récupérer ce code sans ouvrir et copier/coller, il suffit de cliquer sur le nom my_tag.txt dans l'onglet « Ajout ».





Un petit exemple:

(!)  EXEMPLE DE PROGRAMME.

10 REM --- MON PERMIER PROGRAMME ---

15 REM ---PROGRAMME DE XAVSNAP 2006---

20 FOR A=1 TO 21

30 PRINT AT A,A; « Bonjour... »

40 NEXT A

Le programme est tapé ?

Pour les futés qui ont fait un copier/collé :

La question ne ce pose pas! Mais vous devez changer le « (!) » en « # » , les parenthèses par des « '' » et vous avez perdu la police de caractère ZX !!! (texte formaté en HTML)). Dans ce cas là, il fallait ouvrir « Note-Pad » puis coller, enregistrer, fermer et ouvrir le fichier en format texte avec ZxBasic!

Ou Mieux Coller dans un nouveau fichier dans ZxBasic, enregistrer le texte, fermer et ouvrir le même texte dans ZxBasic!

Là ! C'est beaucoup plus futé...

( Attention : Lors d'un copier/coller certains caractères non disponibles dans la police Zx81 peuvent ne pas apparaître! Méfiance donc lors des copier/coller à partir de textes formatés ( riched , html, .doc ...) exemples: parenthèses .)

Pour les autres : Aucune difficulté Hormis le B en vidéo inversé « b » en minuscules.

Astuces et conseils : Pas de REM et (i) compliquées !

Dans les lignes REM, ne JAMAIS placer de lettres en vidéo inversée ou de caractères spéciaux. Le compilateur refusera obstinément de compiler votre programme, aussi simple qu'il soit!





Vous pouvez sauvegarder votre programme sous deux formats !

- Le format « TXT », format de travail pouvant être rappeler par ZxBasic.

CTRL-S ou : Fichier / Enregistrer le texte

- Le format « P » compilé, Format traité par le compilateur ZxText2P et exécutable avec un émulateur pour ZX81.

CTRL-M ou : Fichier / Compiler en fichier « P »

Nota: Pour les puristes, un fichier temporaire (ZxDraw\zxtext2p\tmp.bas) est créer avant chaque compilation et peut être renommé. Ce fichier est la traduction de votre programme Basic en fichier ASCII, compatibles avec « ZxText2P.exe » .

Astuces et conseils : Faites des sauvegardes en mode texte.

Le texte que vous sauvegardez peut contenir de commentaires « (!) », des retours à la ligne « [<-] » ou les indexes de sauts de lignes « @ », pour les conserver, sauvegardez le fichier en format texte ... le format « P », pourra bien sûre être rappeler, mais la version compilée n'indiquera pas toutes ces informations de programmation.





La compilation ! CTRL-M

Donnez le nom du fichier : c:\P_files\program_1.P par exemple. (nom court Dos si possible)

Cliquer sur la validation de « paramètre de l 'émulateur » pour paramétrer l 'émulateur qui vous avez installé. Puis, cliquer sur le dossier afin de choisir l'émulateur.

On peut choisir :

1/ De compiler les labels de saut de ligne : les «@» ou « @ ».

Exemple : (programme sans numérotation)

@nokeys

a$=inkey$

if a$=«» then goto @nokeys

Compilé, cela donne :

10 A$=inkey$

20 if A$=«» then goto 10

 2/ Renumérotation des labels (indexes de saut de lignes)

à Partir de 100 et incrémenté de 5

100 A$=inkey$

105 if A$=«» then goto 100

Puis appuyer sur Compiler !

Le résultat de compilation va apparaître au bout de quelques secondes!

Si la compilation réussie ... vous pouvez l'exécuter en appuyant sur « Lancer le programme! »

et Annuler pour revenir à l'éditeur.

Astuces et conseils : Compilez fréquemment votre programme!

Si la compilation échoue, il est plus facile de retrouver le problème!





Problèmes de compilation : Les Limites de ZxTEXT2P.

Comme vous allez le remarquer, ce compilateur sous Dos est quelque peu capricieux !

Car il a été créé en C et non en C++, avec des librairies maintenant obsolètes mais compatibles avec les systèmes actuels.

A faire !

1) Vérifier la syntaxe Basic en rafraîchissant les couleurs de contrôle de fonctions, grâce à l'icône verte dans la barre de boutons en bas (icône recyclage). Pas de fonctions en vidéo inversée!

2) Vérifier les labels et les numéros de ligne (si deux sont identiques).

3) Numérotation supérieur à 9999 ! (avec ou sans labels : 10000 RETURN ou renumérotation de 9999 avec une incrémentation de 10)

4) Changer le nom du fichier et choisissez un nom plus court (système de fichier DOS)...

(Attention aux caractères interdit sous DOS ! Pas de « é,è,ç... » et de nom de répertoires à rallonge sur l'ensemble des répertoires et sous répertoires)

5) Les lignes de type REM sont traitées différemment ! Pas de caractères spéciaux, ni de vidéo inversé!

(Pour les « PRINT » par contre, aucun problème)

6) Couper les lignes supérieurs à 991 caractères, même avec des retours de lignes du type « [<-] ».

(Les affichage d'écran complet 32x24 seront divisés en deux ou 3 PRINT suivant sa complexité. Les lignes REM aussi ... pour les programmes en langage machine, on pourra joindre les lignes en modifiant la taille de la premiére ligne en « pokant » la nouvelle taille sous émulateur.)

REM en langage machine: Il est limité au niveau de la longueur des lignes à compiler (991 caractères) :

Donc des lignes REM de 1024 octets à proscrire ou à fractionnées en blocs de 500 caractères. Le nombre maximum de caractères dans une ligne est de 991 caractères ... Sinon, le compilateur ne fonctionnera pas!





ZxBasic et l'OCR: Dur , Dur !

Virtuellement, ZxBasic est capable d'éditer des fichiers scannés et les récupérer sur OCR, puisqu'il accepte tous types de fichiers texte !

En pratique, différents essais ont été fait mais n'ont pas été concluant : mauvaise qualité d'impression, caractères baveux et incomplets ... la frape s'est avérée plus rapide car trop de corrections, des caractères à la place d'autres et la vidéo inversée qui faite tâche!

Pour les codes assembleur, sans support de dictionnaire (« PRINT »...) le résultat est désastreux!

A vous de comparer vous scanners ... et surtout la qualité de votre OCR qui retrouvera un QI de 0 face à ce challenge!

A vous de voir ... ( Contactez-moi en cas de succès ou renseignements complémentaires! )



XavSnap. ( Fevrier 2006)