[C64] Saisie d'un code basic/ASM pour carte MAE8000

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Carl, Papy.G, fneck

cedric
Messages : 20
Enregistré le : 06 mars 2018 00:11

Re: [synthèse vocale] sur 8 bits ?

Message par cedric » 12 mars 2018 00:43

Alors voilà, j avais un peu de temps donc j'ai entré les données binaires de phonème 4.2 p260 avec le logiciel Speech
Ma démarche

adresse d entrée : 49152 (C000)
adresse sortie : 50760 (C648)
j' entre les codes du listing phonèmes 4.2 avec les sommes(tout se passe bien) ainsi que les codes binaire de la routine avec les sommes ($C600...jusqu'a $C630...)

et Paf à la saisie de l avant dernière ligne de la routine ($C630 de la routine) :Le logiciel me dit : Out of data error in 170

Donc je n' ai pas pu sauvegarder les phonèmes

damn

D' après vous que c' est il passé?
C' est quoi cette histoire d' adresse en page zéro (252 et 253)?
Est ce l' adresse d' entrée ou de sortie qui n' est pas bonne?

Je ne comprends pas.
Modifié en dernier par cedric le 12 mars 2018 01:40, modifié 1 fois.

Avatar du membre
Xavier_AL
Messages : 350
Enregistré le : 06 déc. 2017 20:30

Re: [synthèse vocale] sur 8 bits ?

Message par Xavier_AL » 12 mars 2018 01:37

Salut Cédric,
Bon, on avance...
Mais,
et j'ajoute a la suite la routine ($C600...
avant derniere ligne : Out of data error in 170
Ces DATAs sont le traitement des valeurs hexadécimales...
Si tu as cette erreur, c'est que le RESTORE n'a pas été pris en compte.
Mais, j'ai vérifié, aucun problème de ce type.
Peut-être un problème d'adressage qui t'a corrompu le programme basic... ça arrive parfois.


[EDIT] La saisie des codes Hexa n'est pas protégée par une vérification de caractère... donc, un "O" ou un "i" donne une erreur "Out of DATA", car il cherche les autres lettres... non listées.
Modifié en dernier par Xavier_AL le 12 mars 2018 01:52, modifié 1 fois.

cedric
Messages : 20
Enregistré le : 06 mars 2018 00:11

Re: [synthèse vocale] sur 8 bits ?

Message par cedric » 12 mars 2018 01:41

Ok merci,je vais essayer de le retaper sur un émulateur.

Avatar du membre
6502man
Messages : 9145
Enregistré le : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [synthèse vocale] sur 8 bits ?

Message par 6502man » 12 mars 2018 16:42

Oui il n'y a pas de control des caractères saisie donc il suffit d'une erreur de frappe pour que ca plante.

C' est quoi cette histoire d' adresse en page zéro (252 et 253)?
Ca permet d'utiliser les modes d'adressages indexés du 6502, car on à que des registres 8 bits à dispositions avec le 6502 :wink:

Un petit conseil tu devrait saisir le listing dans un fichier texte sur ton PC et le sauvegarder pour éviter d'avoir à le ressaisir à chaque erreur ;)
Et avec un émulateur tu utiliser la saisie virtuel du presse papier ;)
Sous winvice tu utilise la fonction Edit->paste du menu ;)

Et après il te reste plus qu'a le sauvegarder sur un support virtuel et le transférer sur le C64 :)
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

Avatar du membre
Xavier_AL
Messages : 350
Enregistré le : 06 déc. 2017 20:30

Re: [synthèse vocale] sur 8 bits ?

Message par Xavier_AL » 12 mars 2018 17:22

Merci Philippe,

Cédric, pour aider et ne pas trop passer de temps sur l'émulateur, je te propose de re-saisir le dictionnaire de phonèmes.

Le programme texte est déjà (presque!) tapé... il suffit de passer quelques heures pour la relecture/correction du listing.

Je te sauve le binaire, et tu pourra le réimplanter dans ton programme.
:wink:

Avatar du membre
Xavier_AL
Messages : 350
Enregistré le : 06 déc. 2017 20:30

Re: [synthèse vocale] sur 8 bits ?

Message par Xavier_AL » 12 mars 2018 18:45

Salut,
petit rectificatif pour le programme chargeur donné plus récemment dans le fil:
Edit: Codes dans les messages suivant à prendre en compte...
8)
Modifié en dernier par Xavier_AL le 12 mars 2018 22:23, modifié 1 fois.

cedric
Messages : 20
Enregistré le : 06 mars 2018 00:11

Re: [synthèse vocale] sur 8 bits ?

Message par cedric » 12 mars 2018 21:14

Message au moderateur,
Pouvez vous modifier l' emplacement des messages depuis ma première intervention dans ce sujet vers les tutos : "[C64] Saisie d'un code basic/ASM pour carte MAE8000."
merci

Avatar du membre
fneck
Site Admin
Messages : 12271
Enregistré le : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

[C64] Saisie d'un code basic/ASM pour carte MAE8000

Message par fneck » 12 mars 2018 21:22

Ok, mais je me demande si la catégorie "Tutos" est la bonne, je pense que ce serait plutôt du "développement actuel" ?
Voila c'est fait.

cedric
Messages : 20
Enregistré le : 06 mars 2018 00:11

Re: [C64] Saisie d'un code basic/ASM pour carte MAE8000

Message par cedric » 12 mars 2018 21:36

Au modérateur, merci.

Sinon concernant la saisie du code binaire phonème 4.2 + la routine a été effectué : fichier ph4.2speech créé
Suite du projet, saisie du programme PHONEM-64

Avatar du membre
Xavier_AL
Messages : 350
Enregistré le : 06 déc. 2017 20:30

Re: [C64] Saisie d'un code basic/ASM pour carte MAE8000

Message par Xavier_AL » 12 mars 2018 22:20

Salut Cédric,
Voilà, le dico est tapé.
Par contre, pour la sauvegarde binaire, il faut modifier la ligne 117.
Pas regardé sur le livre...
Et tu dois savoir faire...
:lol:

Code : Tout sélectionner

1 rem phonemes 4.2
10 ad=0:l=1001:o$="0123456789abcdef"
100 read a$:printa$:if a$="end" goto115
102 cs=0:for i=0 to 15:read d$:gosub 500
103 if d>255 then print ">255 : ";ad;"ligne";l:stop
106 if d<0 goto 112
107 poke ad+i+49152,d:cs=cs+d:next
108 read d:l=l+1
109 if d=cs then ad=ad+16:goto100
110 print "erreur data en ligne";l-1;" sum:";cs:stop
111 print "erreur adresse : ";ad;"ligne";l:stop
112 read d:if d<>cs goto110
115 print:print"data ok... sauvegarde (d) / (c) ?"
116 getr$:if r$="" goto116

117 open1,8,15,"io":close1:
poke43,1:
poke44,8:
poke45,112:
poke46,15:clr

118 if r$<>"c" then save"@:dicdata",8:end
119 save"dicdata":end
500 h$=mid$(d$,1,1):l$=mid$(d$,2,1)
505 ford1=1to16:if mid$(o$,d1,1)<>h$ then nextd1
506 ford2=1to16:if mid$(o$,d2,1)<>l$ then nextd2
507 d=16*(d1-1)+d2-1:return
1001 data 0000,00,54,00,78,00,9c,00,c0,00,e4,01,08,01,2c,01,f8,1083
1002 data 0010,02,1c,01,50,01,74,01,98,01,bc,02,40,02,5c,02,78,852
1003 data 0020,02,9c,02,b0,02,c8,02,dc,02,f4,03,18,03,2c,03,44,1151
1004 data 0030,03,58,03,70,03,90,03,a4,03,c4,03,d8,03,f8,04,30,1241
1005 data 0040,04,70,04,b0,04,f0,05,30,05,5c,05,a0,05,80,05,8c,1133
1006 data 0050,ff,ff,ff,00,00,24,3c,3c,86,b3,cd,a0,86,b3,cd,a0,2277
1007 data 0060,86,b2,d6,a0,86,b2,d6,a0,96,b2,ce,a0,96,b2,ce,a0,2760
1008 data 0070,97,b1,cd,a0,97,b1,cd,a0,00,24,3c,3c,af,b3,85,20,2061
1009 data 0080,af,b3,85,20,ab,b3,7e,20,ab,b3,7e,20,ab,b3,86,20,2051
1010 data 0090,ab,b3,86,20,ff,b3,85,20,ff,b3,85,20,00,24,3c,3c,1870
1011 data 00a0,af,da,5d,20,af,da,5d,20,af,da,5e,20,af,da,5e,20,2074
1012 data 00b0,af,da,66,20,af,da,66,20,af,da,65,20,af,da,65,20,2106
1013 data 00c0,00,24,3c,3c,c7,ac,84,a0,c7,ac,84,a0,c6,ab,85,20,2016
1014 data 00d0,c6,ab,85,20,c6,ab,85,20,c6,ab,85,20,d6,ab,84,a0,2279
1015 data 00e0,d6,ab,84,a0,00,24,3c,3c,b7,b7,5d,20,b7,b7,5d,20,1815
1016 data 00f0,b7,b7,66,a0,b7,b7,66,a0,b7,b7,66,a0,b7,b7,66,a0,2512
1017 data 0100,b7,b7,5d,20,b7,b7,5d,20,00,24,3c,3c,a6,b6,b5,20,1699
1018 data 0110,a6,b6,b5,20,b6,b6,bf,20,b6,b6,bf,20,b6,b6,b7,20,2314
1019 data 0120,b6,b6,b7,20,fa,b7,a5,20,fa,b7,a5,20,00,24,3c,3c,1995
1020 data 0130,bb,b8,85,a0,bb,b8,85,a0,bb,b8,87,20,bb,b8,87,20,2404
1021 data 0140,bb,b8,87,20,bb,b8,87,20,fb,b8,85,a0,fb,b8,85,a0,2532
1022 data 0150,00,24,3c,3c,52,ca,bd,20,52,ca,bd,20,97,ca,bd,a0,1868
1023 data 0160,97,ca,bd,a0,97,ca,bd,a0,97,ca,bd,a0,83,ca,bd,20,2660
1024 data 0170,83,ca,bd,20,00,24,3c,3c,66,b4,bd,a0,66,b4,bd,a0,1972
1025 data 0180,66,b5,bf,20,66,b5,bf,20,65,b5,c7,20,65,b5,c7,20,2038
1026 data 0190,61,b5,d5,a0,61,b5,d5,a0,00,24,3c,3c,82,d1,a5,20,1994
1027 data 01a0,82,d1,a5,a0,83,cf,ae,a0,c3,ce,ae,a0,c3,d1,9e,a0,2793
1028 data 01b0,d2,d3,96,20,92,d2,95,20,92,d2,95,20,00,3c,3c,3c,1857
1029 data 01c0,5a,84,9c,20,5a,84,9c,20,5a,84,9d,20,5a,84,9d,20,1642
1030 data 01d0,5a,8a,b6,a0,5a,8a,b6,a0,87,ad,c6,a0,87,ad,c6,a0,2472
1031 data 01e0,47,b1,ce,a0,47,b1,ce,a0,97,b2,c6,20,97,b2,c6,20,2346
1032 data 01f0,9b,b1,c4,20,9b,b1,c4,20,00,24,3c,3c,d6,b3,6c,a0,1937
1033 data 0200,d6,b3,6d,20,fa,b4,66,20,fa,b4,66,20,fa,b4,66,20,2226
1034 data 0210,fa,b4,66,20,f6,b4,65,20,ea,b4,64,a0,00,24,3c,3c,1953
1035 data 0220,9b,ad,6c,a0,9b,ad,6c,a0,db,ae,6d,20,db,ae,6d,20,2260
1036 data 0230,db,ae,6d,20,db,ae,6d,20,9b,ae,6c,a0,9b,ae,6c,a0,2262
1037 data 0240,00,1c,3c,3c,80,d6,18,20,80,d6,1a,a0,90,b2,13,a0,1575
1038 data 0250,a4,b2,13,a0,a5,b1,24,a0,ea,91,76,20,00,1c,3c,3c,1736
1039 data 0260,80,b5,18,20,80,b5,1b,a0,10,d5,04,a0,a0,d5,0c,20,1671
1040 data 0270,40,d2,2c,a0,40,d9,5e,20,00,24,3c,3c,16,b7,fd,b0,1675
1041 data 0280,16,b7,fe,30,16,b7,fe,b0,16,b7,fe,b0,16,b7,fe,b0,2412
1042 data 0290,16,b7,fe,b0,16,b7,fe,30,16,b7,fd,b0,00,14,3c,3c,1916
1043 data 02a0,ff,97,60,20,ff,97,63,a0,fa,97,66,a0,a6,97,66,a0,2441
1044 data 02b0,00,18,3c,3c,1e,ba,7c,30,1e,ba,7d,a0,1e,ba,76,b0,1543
1045 data 02c0,1e,ba,76,a0,1e,ba,75,b0,00,14,3c,3c,09,97,88,30,1487
1046 data 02d0,0d,97,8f,b0,09,97,8e,b0,67,96,86,20,00,18,3c,3c,1524
1047 data 02e0,74,b5,55,20,74,b5,55,20,74,b6,2e,20,74,b6,2e,20,1580
1048 data 02f0,28,b5,55,20,00,24,3c,3c,4c,b4,5c,a0,4c,b4,5c,a0,1510
1049 data 0300,4c,b4,5d,20,4c,b4,5d,a0,4a,b4,5e,a0,4a,b4,5e,20,1778
1050 data 0310,4a,b4,5d,a0,4a,b4,5d,20,00,14,3c,3c,88,b4,55,20,1459
1051 data 0320,48,b4,5e,20,4c,b4,5f,20,4a,b4,5e,20,00,18,3c,3c,1285
1052 data 0330,c2,b9,38,30,c2,b9,38,30,11,b6,97,b0,16,b3,8e,30,1883
1053 data 0340,5b,b2,8d,a0,00,14,3c,3c,3a,b3,84,20,36,b3,8d,a0,1645
1054 data 0350,79,b2,96,20,97,b1,cd,20,00,18,3c,3c,f5,b0,a4,a0,1935
1055 data 0360,b5,8f,86,20,b5,8f,83,a0,54,b0,3c,a0,54,b0,3a,a0,2063
1056 data 0370,00,20,3c,3c,09,f3,bd,30,09,f3,bd,30,09,f3,bd,b0,1747
1057 data 0380,09,f3,8d,b0,09,f3,8d,b0,09,f3,8d,30,09,f3,8d,30,2020
1058 data 0390,00,14,3c,3c,b6,f6,90,30,b6,f6,94,30,b6,f6,96,30,2010
1059 data 03a0,9b,b4,8d,a0,00,20,3c,3c,6a,b2,84,a0,6a,b2,85,20,1813
1060 data 03b0,6a,b2,86,20,6a,b2,86,a0,6a,b2,86,b0,6a,b2,86,b0,2216
1061 data 03c0,6a,b2,86,30,00,14,3c,3c,12,f5,76,20,12,f5,76,a0,1560
1062 data 03d0,12,f5,77,30,aa,b4,76,a0,00,20,3c,3c,29,ba,8e,30,1627
1063 data 03e0,29,ba,8e,b0,29,ba,8e,b0,29,ba,8e,b0,29,ba,8e,b0,2180
1064 data 03f0,29,ba,8e,b0,29,ba,8e,30,00,38,3c,3c,98,d7,5d,a0,1758
1065 data 0400,98,d7,5d,a0,98,d7,5d,a0,99,d6,55,20,8e,d6,5c,20,2204
1066 data 0410,8f,d8,5e,20,8f,d8,5e,20,af,d8,56,a0,af,d8,56,a0,2244
1067 data 0420,af,d8,56,a0,7f,d8,5f,20,7f,d8,5f,20,6b,b7,6f,a0,2138
1068 data 0430,00,40,3c,3c,57,b3,dd,a0,46,b4,e7,a0,46,b4,df,a0,2105
1069 data 0440,ab,b4,cf,a0,ab,b4,cf,a0,ea,b5,c7,20,ea,b5,c7,20,2728
1070 data 0450,fa,b6,b6,a0,fa,b6,b6,a0,ba,b7,9e,20,ba,b7,9e,20,2666
1071 data 0460,ba,d8,7d,20,ba,d8,7d,20,fa,d8,73,20,fa,d8,73,20,2344
1072 data 0470,00,40,3c,3c,bb,b7,b6,20,bb,b7,b6,20,fb,b7,af,20,1993
1073 data 0480,fb,b7,af,20,fb,b7,af,a0,fb,b7,af,a0,bb,b7,9f,a0,2868
1074 data 0490,bb,b7,9f,a0,b6,b8,9f,20,ba,d8,8f,20,ba,d8,8f,20,2400
1075 data 04a0,ba,d8,7e,a0,ba,d8,7e,a0,fa,d8,75,a0,fa,d8,75,a0,2862
1076 data 04b0,00,40,3c,3c,eb,b3,ae,20,eb,b3,ae,20,97,b4,a7,20,1954
1077 data 04c0,97,b4,a7,20,97,b4,a7,a0,57,b4,a7,a0,67,b6,9f,20,2258
1078 data 04d0,67,b6,9f,20,77,b6,87,20,bb,b7,7e,a0,eb,b7,7e,a0,2304
1079 data 04e0,ab,b8,7e,20,ab,d8,76,20,6b,d8,76,20,ba,b7,8c,a0,2192
1080 data 04f0,00,40,3c,3c,7f,d8,6d,20,7f,d8,6e,a0,7f,d8,6e,a0,1894
1081 data 0500,bf,d7,87,20,fb,d7,8f,20,bb,d7,9f,a0,67,d6,bf,a0,2603
1082 data 0510,67,d6,bf,a0,67,d5,bf,20,67,d5,bf,20,61,d5,be,20,2278
1083 data 0520,61,d5,be,20,61,d5,be,20,61,d4,c5,20,61,d4,c5,20,2140
1084 data 0530,00,2c,3c,3c,86,94,bd,a0,86,94,be,a0,86,96,c7,20,1942
1085 data 0540,42,b4,d7,a0,53,b5,cf,a0,62,b5,c7,20,62,b5,c6,a0,2399
1086 data 0550,62,b5,c6,20,62,b5,c5,a0,62,b5,c5,20,00,24,3c,3c,1809
1087 data 0560,ad,af,a5,20,ad,af,a5,20,ad,af,a6,20,ad,af,a6,20,2182
1088 data 0570,ad,ad,96,20,ad,ad,96,20,f9,ad,8d,20,f9,ad,8d,20,2246
1089 data 0580,00,0c,3c,3c,ab,b3,80,20,ab,b3,80,20,00,14,3c,3c,1292
1090 data 0590,ab,b3,80,20,ab,b3,80,20,ab,b3,80,20,ab,b3,80,20,2040
1091 data 05a0,00,18,3c,3c,09,f3,bd,30,09,f3,bd,30,09,f3,8d,b0,1691
1092 data 05b0,09,f3,8d,30,09,f3,8d,30,75,30,69,b6,55,a0,ad,b7,1935
1093 data end
:roll:
Zut, tu l'as déjà fait...
Pas grave, tu as maintenant le modèle du chargeur avec les DATAs...
Plus rapide que la saisie caractère par caractère.
8)
ça va quand même vite!

cedric
Messages : 20
Enregistré le : 06 mars 2018 00:11

Re: [C64] Saisie d'un code basic/ASM pour carte MAE8000

Message par cedric » 14 mars 2018 00:05

Bonjour, j' ai tapé le logiciel phonem-64
je le lance, il s' affiche à l' ecran le programme
mais quand je tape ma phrase a énoncer et tape return
il m' indique : error in 240 pourtant j' ai verifier il n' y a pas d' erreur de saisie
je ne comprends pas à quoi celà correspond, si quelqu'un a une idée????
la carte du mea electronique ou simplement logiciel??

je dois vous dire que pour la saisie des phonèmes en binaire avec le logiciel speech, il y avait plus d' adresses que de ligne de codes, car a la fin de ma saisie: liste phoneme + routine , il me demandait encore des codes, j' ai juste appuyé sur return plusieurs fois sans rien saisir jusqu' a la fin (une huitaine de fois) puis il m' a proposé d' enregistrer le fichier. Ai je bien fait?

Fool-DupleX
Messages : 1035
Enregistré le : 06 avr. 2009 12:07

Re: [C64] Saisie d'un code basic/ASM pour carte MAE8000

Message par Fool-DupleX » 14 mars 2018 13:48

Il s'agit forcément de fautes de frappes. Certaines sont parfois très subtiles. Je me permets de donner cet avis car j'ai moi-même tapé/OCRisé tous les programmes de ce livre pour Thomson, et ce fut un calvaire. Mais au final, c'était toujours moi qui avait tort. Le coup des DATA manquant est un classique, certaines virgules ont dû sauter dans la transcription. Y'a aussi les 0 qui se transforment en O, etc. Typiquement avec l'OCR, deux data se retrouvent concaténées avec la virgule en moins. Moi j'ai vérifié chaque listing en le réimprimant et en vérifiant une fois ligne par ligne et une fois colonne par colonne. On est content quand c'est fini. :shock:. On peut voir ton listing ?

Avatar du membre
Xavier_AL
Messages : 350
Enregistré le : 06 déc. 2017 20:30

Re: [C64] Saisie d'un code basic/ASM pour carte MAE8000

Message par Xavier_AL » 14 mars 2018 17:24

Salut,
Comme le dit FoolDuplex, l'OCR réserve de nombreuses surprises...
Pas forcement dans le contenu (valeurs) mais parfois dans la forme!
La recherche peut durée des heures, et en cinq minutes c'est résolu.

Donc, il faut vérifier: (par ordre d'importance!)

-La numérotation des lignes, car avec un "paste" les lignes sont déplacées et effacent les autres.
-L'orthographe de "DATA", car un "DATR" ne provoque pas d'erreurs, mais n'est pas lue avec un read.
Pour vérifier ce genre de problème, il faut faire un RUN sur le premier DATA, car il fera un "syntaxe error" sur la ligne!
Mais généralement, le DATA est hors programme, et non scruté par le basic.
-La césure et les séparation des valeurs... pas d'espaces, de points et points-virgules à la place des virgules.
-Les valeurs manquantes, souvent les valeurs en retour à la ligne à l'extrême gauche du listing... prises parfois pour des numéros de ligne, ou renvoyées en fin de fichiers converti de l'OCR!

Et c'est après ces vérifications que l'on peut faire une relecture des DATA...
par décalage: taille identique au listing, et décalage de caractères de ligne en ligne.
, puis ligne par ligne... valeur par valeur.

Nota: Si un "RESTORE" n'est pas présent, mieux vaut l'ajouter en début de programme ou en fin de lecture! Cela facilitera le débogage avec des GOTOs (pour éviter de se taper la présentation à chaque fois!)

L'exemple des DATAs est particulier car non lu directement par le Basic...
Les autres erreurs sont plus facile à localiser grâce à un "Syntaxe error" classique.
Pour les caractères graphiques, il faut... improviser au grès des listings... et du rendu graphique désiré.

Mais dans tous les cas, vérifier la continuité des lignes Basic!
C'est la cause de nombreuses erreurs difficiles à corriger, NEXT sans FOR, RETURN sans GOSUB... et j'en passe!

Et croyez moi, ces vérifications fond gagner beaucoup de temps en débogage sur émulateur...

Avatar du membre
6502man
Messages : 9145
Enregistré le : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [C64] Saisie d'un code basic/ASM pour carte MAE8000

Message par 6502man » 16 mars 2018 09:51

@Cedric: si tu veux de l'aide n’hésite pas à fournir le fichier TXT de ce que tu as saisi, avec plusieurs paires d’yeux on vérifie toujours mieux :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

Daniel
Messages : 10890
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [C64] Saisie d'un code basic/ASM pour carte MAE8000

Message par Daniel » 16 mars 2018 11:15

cedric a écrit :
14 mars 2018 00:05
il m' indique : error in 240 pourtant j' ai verifier il n' y a pas d' erreur de saisie
Rien n'est moins sûr. Montre ton listing, nous t'aiderons à corriger les erreurs de saisie.
Daniel
L'obstacle augmente mon ardeur.

Répondre