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:

Continue reading “Les instructions cachées du PC-1251 (suite)”

Les instructions cachées du PC-1251

Depuis les débuts du PC-1251, il est apparu que des instructions non documentées étaient présentes dans la ROM du PC-1251.
Ces instructions sont : INSTAT, OUTSTAT, SETCOM, KEY, ERROR et ROM
Avec Pockemul j’ai pu m’appercevoir que les instructions INSTAT , ROM et OUTSTAT 1 envoient des informations sur le connecteur 11 pins avec une ERROR 8.
Je n’ai pas encore testé les autres car elles necessitent des paramètres qui lorsqu’ils sont omis produisent une ERROR 1.
Continue reading “Les instructions cachées du PC-1251”