Actuellement sur l'étude d'un périphérique pour ZX81 de transfère au protocole Centronics...
Je suis tombé sur un mystère mystérieux difficilement explicâble (pas électrique).
J'explique donc ce que je n'ai pas compris...
La carte comporte un micro-programme assembleur qui contrôle la carte en ROM...
Aucunes informations ne sont envoyés à la carte (adresse réservée ou IRQ).
Voilà la routine d’envoie:
Code : Tout sélectionner
PUSH HL
LD A,$0A
CALL Lb2935 ; [10549] send chr$(10)
POP HL
(...)
Lb2935:
PUSH AF
Lb2936:
IN A,($3F) ; Reset Centronics card.
RRCA
JR C, Lb2936 ; [$2936:10550]
POP AF
IN A,($2F) ; Send the ASCII char ?
RET ; ==========================
Mais, seuls les cinq dernières ligne ont attiré mon attention !
On a des IN pas de OUT, et le registre A(f) semble envoyé avec le "IN A,($2F)".
Sans connaitre le matériel, on ne peut pas savoir (j'ai pas la carte, seulement la ROM)...
Mais, en gros, la lecture " IN A,($3F) ; Reset Centronics card." test le compteur binaire du buffer d'envoi.
"10000000"= Bit 0 envoyé.
"01000000"= Bit 1 envoyé.
(...)
"00000001"= Bit 7 envoyé.
Donc, une rotation RRCA (rotation du registre A vers la droite), remet à zéro le train d'impulsion de 8 bits pour la validation de l'information, au cas où la carte se serai arrêter en chemin.
Donc, le Buffer de validation est à "00000000".
Après, c'est plutôt délirant !
" LD A,$0A"
"IN A,($2F)" ! (On efface la valeur à envoyer ... et A est ... perdu.)
Donc, comme tout se passe en interne, la carte peut envoyer un train de 8 bits comme une grande...
Mais, cette valeur de "A", n'est jamais envoyée à la carte!
Et c'est l'objet de mon trouble...
Oui, je sais, il y a plus grave dans la vie, mais je voulais partager la cause de mes insomnies actuelles.
C'est méchant, et je m'en excuse.
Enfin, pour le moment, je me dis que c'est magique, et qu'il n'y a pas d'explications.
Donc, pas de buffer à une adresse fixe pour faire un miroir de A.
Pas de "OUT" de A, seulement une requête d'information de ?validation? non utilisée!
Le \ACK ou le \error de l'imprimante aurai pu attendre pour l'envoie de l'information... mais, bon.
Comme vous le voyez mes préoccupations sont futiles et simplistes.
Mais, j'avoue que c'est le seul de mes problèmes en ce moment, ça et ma pelouse.
Vive le temps libre des RTTs et mes nuits!