Connexion directe entre deux Pockets (suite)

J’ai changé le système permettant le calibrage de la vitesse d’émulation dans PockEmul.
La version beta de Qt 4.8 permet de mesurer le temps en descendant à la nanoseconde, ce qui me faisait espérer pouvoir gérer les fréquences de 2 et 4Khz utilisées pour le transfert sur K7 en ayant une émulation de la vitesse régulière et non plus saccadée par tranche de 1ms.
Bref, mon premier essai entre un pc-1251 et un pc-1262 est un succés malgrés les deux fréquences de fonctionnement différentes des Pockets. Il me reste plus qu’à tester cela sur Mac, car je ne sais pas si le timer nanoseconde est vraiment multiplateforme.

Connexion directe entre deux Pocket

Depuis les premiers pas de PockEmul dans la multi-émulation, je rêvais de faire fonctionner le câble EA-128C permettant de relier directement deux pocket pour un CSAVE/CLOAD sans stockage K7 intermédiaire. La synchronistion m’a toujours posé problème mais j’ai tout de même fait un essai avec un petit succés:

Le premier coup, j’ai eu une ERROR 8 et au second essai c’est passé. Chose bizarre, il y a eu le dernier caractère qui n’est pas conforme. Je pensais qu’il y avait un checksum évitant les erreurs de transmission… Il faut que je regarde ça plus en détail.
De toute façon, j’avais une chance de faire marcher ce transfert car les deux pockets sont à la même fréquence d’horloge, mais avec un 576Khz d’un côté et un 768Khz de l’autre il n’y a aucune chance pour que cela marche en l’état…

Le chaînage des périphériques

Bonjour à tous,
J’ai maintenant le CE-140F qui est quasi complètement émulé et en faisant mes tests, je me suis aperçu que le système de gestion des connecteurs entre pocket et périphériques était trop limité pour pouvoir supporter le chaînage de plusieurs périphériques sur le même port. J’ai donc remis un peu à plat cette gestion et mes premiers essais sont concluant.

Je vais maintenant faire l’expérience avec une ce-126P branchée sur le ce-140F… mais sans la ce-120p…
Edit: Eh bien ça marche aussi 🙂

Détail de l’instruction ROM du PC-1251

L’instruction ROM permet de charger directement en mémoire à l’adresse &B831 un programme BASIC ou Langage Machine.
Le système de communication est un simple échange série sur les broches D_IN et D_OUT, régulé par les broches ACK et BUSY.
Le Pocket envoie le code &7C et charge les données qui suivent. Les datas doivent être envoyés par paquet de 8 Bytes, chaque paquet étant suivi d’un Checksum. Le Checksum se calcule de la manière suivante :
On additionne les 4bits de poids fort puis les 4 bits de poids faible. S’il y a un Carry suite à l’addition des poids faibles on ajoute 1.
Si le dernier bloc de 8 Bytes commence par &75 alors les 7 bytes suivants du bloc correspondent au password.
Pour ce qui est du LM, il suffit de coder un prog BASIC du genre :
10 CALL &B841 suivi des codes machine,
et donc envoyer les codes : E0 10 C9 1F 52 48 44 40 00 FF xx xx xx xx xx xx ….. 37 (xx correspondant aux codes du prog LM).
La commande ROM se charge de mettre correctement à jours les pointeurs de début et fin de prog.
voilà, je suis un peu déçu qu’il n’y ai pas d’autorun … ou alors je ne l’ai pas encore trouvé.

Les instructions cachées du PC-1251 (suite)

Je viens de rajouter un truc super sympa dans PockEmul, et en plus ça n’a pas été très complexe à faire.
Je viens de créer un nouveau périphérique sur port 11 pins pouvant être paramétré en live par du javascript. On a ainsi la possibilité de rapidement faire des essais.
C’est ainsi que pour l’instruction SETCOM j’ai pu faire réagir le pocket:



En se qui concerne ROM , j’ai ce résultat avec tout de suite un plantage du Pocket. Il semble attendre l’envois d’un module ROM comme nous le pensions …

et enfin “OUTSTAT &41” me donne :


On n’est pas loin d’avoir un port série opérationnel sur le pc-1251… 🙂
Rémy