N'utilisez b1 que si vous êtes certain de ne pas dépasser 255. Sinon, utilisez une variable word , par exemple w1...b1 = time
time est une variable de type word, donc peut compter jusqu'à 65535 s.
N'utilisez b1 que si vous êtes certain de ne pas dépasser 255. Sinon, utilisez une variable word , par exemple w1...b1 = time
time est une variable de type word, donc peut compter jusqu'à 65535 s.
7 6 5 4 3 2 1 0 sans paire impaire
0 0 0 0 0 0 0 0 0 0 128
1 0 0 0 0 0 0 1 1 129 1
1 0 0 0 0 0 1 0 2 130 2
0 0 0 0 0 0 1 1 3 3 131
1 0 0 0 0 1 0 0 4 132 4
0 0 0 0 0 1 0 1 5 5 133
0 0 0 0 0 1 1 0 6 6 134
1 0 0 0 0 1 1 1 7 135 7
1 0 0 0 1 0 0 0 8 136 8
0 0 0 0 1 0 0 1 9 9 137
0 0 0 0 1 0 1 0 10 10 138
1 0 0 0 1 0 1 1 11 139 11
0 0 0 0 1 1 0 0 12 12 140
1 0 0 0 1 1 0 1 13 141 13
1 0 0 0 1 1 1 0 14 142 14
0 0 0 0 1 1 1 1 15 15 143
1 0 0 1 0 0 0 0 16 144 16
0 0 0 1 0 0 0 1 17 17 145
0 0 0 1 0 0 1 0 18 18 146
1 0 0 1 0 0 1 1 19 147 19
0 0 0 1 0 1 0 0 20 20 148
1 0 0 1 0 1 0 1 21 149 21
1 0 0 1 0 1 1 0 22 150 22
0 0 0 1 0 1 1 1 23 23 151
0 0 0 1 1 0 0 0 24 24 152
1 0 0 1 1 0 0 1 25 153 25
1 0 0 1 1 0 1 0 26 154 26
0 0 0 1 1 0 1 1 27 27 155
1 0 0 1 1 1 0 0 28 156 28
0 0 0 1 1 1 0 1 29 29 157
0 0 0 1 1 1 1 0 30 30 158
1 0 0 1 1 1 1 1 31 159 31
1 0 1 0 0 0 0 0 32 160 32
0 0 1 0 0 0 0 1 33 33 161
0 0 1 0 0 0 1 0 34 34 162
1 0 1 0 0 0 1 1 35 163 35
0 0 1 0 0 1 0 0 36 36 164
1 0 1 0 0 1 0 1 37 165 37
1 0 1 0 0 1 1 0 38 166 38
0 0 1 0 0 1 1 1 39 39 167
0 0 1 0 1 0 0 0 40 40 168
1 0 1 0 1 0 0 1 41 169 41
1 0 1 0 1 0 1 0 42 170 42
0 0 1 0 1 0 1 1 43 43 171
1 0 1 0 1 1 0 0 44 172 44
0 0 1 0 1 1 0 1 45 45 173
0 0 1 0 1 1 1 0 46 46 174
1 0 1 0 1 1 1 1 47 175 47
0 0 1 1 0 0 0 0 48 48 176
1 0 1 1 0 0 0 1 49 177 49
1 0 1 1 0 0 1 0 50 178 50
0 0 1 1 0 0 1 1 51 51 179
1 0 1 1 0 1 0 0 52 180 52
0 0 1 1 0 1 0 1 53 53 181
0 0 1 1 0 1 1 0 54 54 182
1 0 1 1 0 1 1 1 55 183 55
1 0 1 1 1 0 0 0 56 184 56
0 0 1 1 1 0 0 1 57 57 185
0 0 1 1 1 0 1 0 58 58 186
1 0 1 1 1 0 1 1 59 187 59
0 0 1 1 1 1 0 0 60 60 188
1 0 1 1 1 1 0 1 61 189 61
1 0 1 1 1 1 1 0 62 190 62
0 0 1 1 1 1 1 1 63 63 191
1 1 0 0 0 0 0 0 64 192 64
0 1 0 0 0 0 0 1 65 65 193
0 1 0 0 0 0 1 0 66 66 194
1 1 0 0 0 0 1 1 67 195 67
0 1 0 0 0 1 0 0 68 68 196
1 1 0 0 0 1 0 1 69 197 69
1 1 0 0 0 1 1 0 70 198 70
0 1 0 0 0 1 1 1 71 71 199
0 1 0 0 1 0 0 0 72 72 200
1 1 0 0 1 0 0 1 73 201 73
1 1 0 0 1 0 1 0 74 202 74
0 1 0 0 1 0 1 1 75 75 203
1 1 0 0 1 1 0 0 76 204 76
0 1 0 0 1 1 0 1 77 77 205
0 1 0 0 1 1 1 0 78 78 206
1 1 0 0 1 1 1 1 79 207 79
0 1 0 1 0 0 0 0 80 80 208
1 1 0 1 0 0 0 1 81 209 81
1 1 0 1 0 0 1 0 82 210 82
0 1 0 1 0 0 1 1 83 83 211
1 1 0 1 0 1 0 0 84 212 84
0 1 0 1 0 1 0 1 85 85 213
0 1 0 1 0 1 1 0 86 86 214
1 1 0 1 0 1 1 1 87 215 87
1 1 0 1 1 0 0 0 88 216 88
0 1 0 1 1 0 0 1 89 89 217
0 1 0 1 1 0 1 0 90 90 218
1 1 0 1 1 0 1 1 91 219 91
0 1 0 1 1 1 0 0 92 92 220
1 1 0 1 1 1 0 1 93 221 93
1 1 0 1 1 1 1 0 94 222 94
0 1 0 1 1 1 1 1 95 95 223
0 1 1 0 0 0 0 0 96 96 224
1 1 1 0 0 0 0 1 97 225 97
1 1 1 0 0 0 1 0 98 226 98
0 1 1 0 0 0 1 1 99 99 227
1 1 1 0 0 1 0 0 100 228 100
0 1 1 0 0 1 0 1 101 101 229
0 1 1 0 0 1 1 0 102 102 230
1 1 1 0 0 1 1 1 103 231 103
1 1 1 0 1 0 0 0 104 232 104
0 1 1 0 1 0 0 1 105 105 233
0 1 1 0 1 0 1 0 106 106 234
1 1 1 0 1 0 1 1 107 235 107
0 1 1 0 1 1 0 0 108 108 236
1 1 1 0 1 1 0 1 109 237 109
1 1 1 0 1 1 1 0 110 238 110
0 1 1 0 1 1 1 1 111 111 239
1 1 1 1 0 0 0 0 112 240 112
0 1 1 1 0 0 0 1 113 113 241
0 1 1 1 0 0 1 0 114 114 242
1 1 1 1 0 0 1 1 115 243 115
0 1 1 1 0 1 0 0 116 116 244
1 1 1 1 0 1 0 1 117 245 117
1 1 1 1 0 1 1 0 118 246 118
0 1 1 1 0 1 1 1 119 119 247
0 1 1 1 1 0 0 0 120 120 248
1 1 1 1 1 0 0 1 121 249 121
1 1 1 1 1 0 1 0 122 250 122
0 1 1 1 1 0 1 1 123 123 251
1 1 1 1 1 1 0 0 124 252 124
0 1 1 1 1 1 0 1 125 125 253
0 1 1 1 1 1 1 0 126 126 254
1 1 1 1 1 1 1 1 127 255 127
bit 7 (parité paire)=MOD(SOMME($B2:$H2),2)
Paire=$I2+128*$A2
Impair=$I2+128*(1-$A2)
Reste que je voudrais bien avoir les codes en hexa.
Je l' avais écrit : non je ne suis pas chi... mais feignant, il va falloir que je me tape le transcodage de 128 codes .............
.
ça m'arrive ... !Désolé : j'ai merdé en copiant mon tableau Excel...
Il suffit de réserver comme on a dit les byte b0 à b3 pour ça , ce qui permet de traiter 4 bytes à la fois, et écrire :je dois envoyer la séquence ASCII " $19,$42,$65 " avec la parité paire.
................
b0 = $19 : b1 = $42: b2 = $65 ; b3 = ....
gosub 8bitsto7bits
serout xx, T1200, b0,b1,b2,...
........
8bitsto7bits:
[INDENT]bit7=bit0+bit1+bit2+bit3+bit4+bit5+bit6
bit15=bit8+bit9+bit10+bit11+bit12+bit13+bit14
bit23=bit16+bit17+bit18+bit19+bit20+bit21+bit22
bit31=bit24+bit25+bit26+bit27+bit28+bit29+bit30[/INDENT]
return
.................
serin xx, T1200, b0,b1,b2,b3
gosub 7bitsto8bits
.................
7bitsto8bits:
[INDENT]bit7 = 0; bit 15 = 0; bit23 = 0; bit 31 = 0[/INDENT]
return
Ben si !! relisez les docs sur le sujet. sinon aucun sous programme n'est possible avec des gosub.il n' y a pas, semble-t-il, la notion de ' return ' ( plaçé en fin de sous routine en assembleur ) qui retourne au programme principal juste aprés le ' call ' qui a appelé la sous routine
Oui, sans pb.Pour les séquences de plus de 4 caractères vous pouvez dissocier , non ? par exemple envoyer N° ligne N° colonne avant d'envoyer le caractère...
Le basic du picaxe ne permettant pas le passage de variables lors de l'appel de sous routines par des gosub ( ou son pseudo call) on est soit obligé de faire des sous routines figées, soit de définir avant, les variables devant être traitées par la sous routine.En programmation, c' est bien connu, chacun a ses habitudes, ses astuces, ses manies.
Je préfère appeler des sous-routines dans le ' main ' ( ou ailleurs ).
Ma petite tête suit mieux la succession des opérations qui sont ' en clair ', affranchies des codes hexa.
Mais Ok, à chacun de voir ce qui lui convient .
Seul le résultat compte !
D'autant plus qu'il s'agit d'envoyer un code de toutes façons numérique, alors + 128 ou pas, ça ne fait guère de différence. Rien n'empêche d'utiliser des symbols pour rendre les choses plus lisibles sans changer la taille du programme.Dans le cas de commandes répétitive du style Home, ou Ligne suivante, il est certain que la routine figée est indiquée.
suggestions :call DeuxEspaces
serout ... ('mes mentors !')
!
Ce n'est pas ce que j'appelle un passage de variable !#176
#174
Je ne vois pas le pb ?
Le manuel2,page 70 ( tiens ! il l' a lu ? ) donne un exemple d' appel avec passage de variable.
est valable ?si au sein de la sous-routine square root, j' écris ( aprés calcul ) ' serout .... (b1) ' c'est bien 2 qui est émis ?
Si je l' appelle à nouveau avec b1=9, c' est bien 3 qui est émis ?
Mais je ne peux jamais récupérer ni 2 ni 3 dans le 'main' ?
Puisqu'il n'y a pas de variables locale, ça veut dire que si une variable est modifiée dans un sous-programme, elle est disponible dans tout le programme donc dans le "main"si au sein de la sous-routine square root, j' écris ( aprés calcul ) ' serout .... (b1) ' c'est bien 2 qui est émis ?
Si je l' appelle à nouveau avec b1=9, c' est bien 3 qui est émis ?
Mais je ne peux jamais récupérer ni 2 ni 3 dans le 'main' ?
Ce n' est peut-être pas votre domaine de prédilection mais comment forcer une entrée au niveau Un sans la fusiller.Anecdote : j' ai mis l' entrée C.3 d'un 08M2 au V+ à travers 1K.
Apparemment ça lui a pas plu ! ---> entrée HS, toujours lue en Zéro
On ne risque pas de détruire une entrée en la mettant à Vdd ou Vss , bien qu'il soit conseillé de mettre une résistance de 1k ou moins sur une entrée.C' est clair, merci.
Ce n' est peut-être pas votre domaine de prédilection mais comment forcer une entrée au niveau Un sans la fusiller.
Comme le temps d'interprétation d'une ligne varie assez peu en fonction de sa complexité, le fait de gagner des lignes permet assez souvent de gagner aussi en temps d'execution. (et je ne trouve pas ça vraiment moins lisibles... mais les gouts et les couleurs...)#176 On gagne des lignes mais...
Non. Comme indiqué #175, il s'agit de "symbols". Lorsque le PE rencontre un symbole, il le remplace par sa valeur avant de transmettre au Picaxe.Est-ce que ça veut dire que
serout ... (EffaceEcran,Home) appelle automatiquement des sous-routines ? ( EffaceEcran sans guillemets )
En gros, ce qui prends du temps, c'est d'interpréter le serout. Ensuite, passer 1 ou n caractères ne change pas beaucoup le problème. D'où l'intérêt de pouvoir mettre plusieurs caractères sur la même ligne.Comme le temps d'interprétation d'une ligne varie assez peu en fonction de sa complexité.
Concernant l' instruction ' pause 'Spécifications Techniques d' Utilisation du Minitel 1b
( ---> 08M2 à 4 MHz )Faut-il majorer outrageusement ? ( 08M2 basique )
Ce forum est totalement libre d'accès en lecture. Y compris pour des moteurs de recherche. Je ne vois pas le problème !Cela veut donc dire que les moteurs ' scrutateurs ' de Google viennent lire le contenu des forums !
S' agissant d' un Forum ( espace réservé à des membres inscrits ) il me semble qu'il y a là un abus de pouvoir.
Ok !Ce forum est totalement libre d'accès en lecture.
je m' interroge.le forum étant un espace réservé à des membres inscrits
Mais, quand je frappe le chiffre 7 ( $37 ) le Minitel devrait envoyer $B7 ( soit 7 + parité )
Or $B7 correspond à ç ( c cédille ) dans la table ascii !
Le picaxe ne décode-t-il que les 7 premiers bits de l' octet ? Ca m' étonne, 2ème pb
Bien sûr !Donc il faut simplement mettre le bit 7 à 0, à la réception...
L'erreur est que vous ne lisez pas ce qu'on vous écrit .Maintenant je poursuis :
bit15=0 ( suppression de la parité )
if b9="Q" then ; ' Q 'attendu
...............
Ca marche pas !
Trouvez l' erreur .....................!
L'accès aux bits individuels ne peut se faire que sur les premiers bytes à savoir b0, b1, b2, b3 pour des M2.Il suffit de réserver comme on a dit les bytes b0 à b3 pour ça , ce qui permet de traiter 4 bytes à la fois, et écrire :
Code:serin xx, T1200, b0,b1,b2,b3 gosub 7bitsto8bits ................. 7bitsto8bits: bit7 = 0; bit 15 = 0; bit23 = 0; bit 31 = 0 return