[Spectrum] ZMakeBas 1.1 et codes C++.

Couvre tous les domaines de l'émulation ou de la virtualisation ainsi que les discussions sur les divers outils associés.

Modérateurs : Papy.G, fneck, Carl

Xavier

[Spectrum] ZMakeBas 1.1 et codes C++.

Message par Xavier »

Salut ,
J'ai pris l'habitude de taper tous les programmes Spectrum en mode texte, pour éviter de perdre du temps avec le clavier sous émulateur!
J'ai donc modifié la version 1.1 du programme de conversion du mode texte en TAP... avec des ajouts bien pratiques!

Mais, dernièrement, j'ai trouvé un disfonctionnement du code source en C++ sur l'original et ma version!

Lors de la conversion, le caractère graphique [\ '] (petit carré en haut à gauche) est répété deux fois dans le code compilé!
Tous les autres codes graphiques fonctionnent...
Donc, un :
10 PRINT"\ '"
Donne
10 PRINT"\ '\ '" dans l'émulateur!

soit:

Code : Tout sélectionner

 Offset      0  1  2  3  4  5  6  7   8  9 10 11 12 13 14 15
00000000   5A 58 54 61 70 65 21 1A  01 0D 30 1B 22 22 20 63   ZXTape!...0."" c
00000016   72 65 61 74 65 64 20 62  79 20 5A 6D 61 6B 65 42   reated by ZmakeB
00000032   61 73 20 31 2E 31 64 10  B8 0B 13 00 00 00 20 20   as 1.1d.¸.....  
00000048   20 20 20 20 20 20 20 20  D7 01 00 80 D7 01 80 10           ×..€×.€.
00000064   B8 0B D9 01 FF 00 0A 06  00[F5 22 81 81 22]0D 00   ¸.Ù.ÿ....õ""..
00000080   0B 05 00 F5 22 85 22 0D  00 0C 05 00 F5 22 82 22   ...õ"…".....õ"‚"
00000096   0D 00 1E 11 00 F5 22 8B  8A 87 8D 8D 81 81 83 83   .....õ"‹Š‡ƒƒ
Où [F5 22 81 81 22] = PRINT "\ '\ '"
Donc, le caractère h81 / 129 est redondant! ça patine seulement sur ce couple de caractère... et encore, c'est le bon!

Question: l'utilisation du caractère ['] peut-il poser problème en compilation windows GCC ?

Resources:
ma version: http://zx81.ordi5.free.fr/tools/zmakebas-1.1.zip
version originale: https://github.com/catseye/zmakebas

Nota: peut-être avec un bidouillage, on peut éviter ce déjà-vu ?
Xavier

Re: [Spectrum] ZMakeBas 1.1 et codes C++.

Message par Xavier »

Texte test:

Code : Tout sélectionner

210 PRINT"\::\::\::\''\''\''\''\''\''\''\':";
220 PRINT"\::\ '\ :\''\':\ :\''\''\ '\''\::";
230 PRINT"\:'\ :\''\ :\ '\''\ :\':\''\' \::";
240 PRINT"\::\ '\ :\':\.:\ '\''\ :\' \''\':";
250 PRINT"\:'\ :\ .\ .\ '\''\:'\''\':\' \':";
260 PRINT"\::\ '\''\:'\ '\''\:'\ :\ '\''\ :";
270 PRINT"\::\''\ :\''\''\::\''\':\''\ '\::";
280 PRINT"\::\':\ '\: \: \..\.:\ '\''\' \':";
290 PRINT"\:'\ '\' \''\:.\ '\ .\.:\ '\''\':";
2100 PRINT"\::\''\':\ .\..\ :\..\..\.:\''\ :";
2110 PRINT"\:.\.:\..\..\.:\..\..\.:\..\.:\::";
4001 PRINT"\  \ '\' \''\ .\ :\'.\':\. \.'\: \:'\..\.:\:.\::"
Xavier

Re: [Spectrum] ZMakeBas 1.1 et codes C++.

Message par Xavier »

Bien,
Traçages, débogage et tout et tout...
Beaucoup de boulot!
Pour m'apercevoir que le fichier texte été corrompu pas des caractères graphiques masqués...

Code : Tout sélectionner

Offset      0  1  2  3  4  5  6  7   8  9 10 11 12 13 14 15
00000000   31 20 50 52 49 4E 54 20  3B 22 5C 3A 3A 5C 3A 3A   1 PRINT ;"\::\::
00000016   5C 27 27 5C 3A 3A 8F 8F  8F 5C 27 27 5C 27 27 5C   \''\::\''\''\
00000032   27 27 5C 27 27 5C 27 27  5C 27 27 5C 27 3A 22 20   ''\''\''\''\':" 
00000048   0D 0A 32 20 52 45 4D 0D  0A                        ..2 REM..
Donc, impossible à voir avec une police de caractère classique!
Le h8F est le code ascii du Spectrum... donc, affiché en tant que caractère graphiques.
Bon, tout fonctionne bien maintenant...
Donc, j'ai pu terminer le projet sur Spectrum...
Cool!
Répondre