Un compilateur C dans PockEmul

Il y a quelques temps, j’ai commencé à intégrer dans PockEmul un compilateur C rudimentaire. J’ai traduit en C++ LittleC compiler développé par Simon (http://www.lehmayr.de/) en Delphi. C’est un compilateur assez simple qui m’a permis de mieux comprendre le principe de fonctionnement d’un tel module.
Le compilateur produit du code ASM qui est ensuite transformé en code machine par un Assembleur également développé par Simon.
J’ai donc ajouté un IDE avec la possibilité d’installer directement le code généré dans un pocket en cours d’émulation.
Afin que cela soit plus attrayant, j’ai également ajouté une librairie d’IO pour le Sharp PC-1350 permétant de faire un getc et putc et d’utiliser les fonctions graphiques:

Continue reading “Un compilateur C dans PockEmul”

un petit binaire pour ceux qui veulent jouer un peu

Je passe mon temps à ajouter de nouvelles fonctionnalités en repoussant toujours à plus tard la sortie d’une release. Avec tout cela, les derniers binaires publiés sont la 0.9.2.1 qui datent énormement.
Je vous propose donc en téléchargement la 0.9.3.0 courante pour Windows que je vais m’attacher à peaufiner.
Il y a plein de truc non documentés et pas trés intuitifs, alors n’hésitez pas à me demander des précisions.

Connexion directe entre deux Pockets (suite 2)

L’utilisation d’un timer à la nanoseconde afin de gérer la communication entre deux pocket n’est pas satisfaisante d’un point de vue performance. Je suis donc revenu à l’ancien système calé par tranche de 1ms.
J’ai un peu réfléchi et en fait la solution est assez simple. Tout en gardant un étalonnage de la vitesse toute les 1ms, je lance l’execution de chaque pocket pour un nombre de cycles correspondant à 1/8000ème de seconde. Cela fait que les Pockets sont suffisament synchronisés pour la fréquence de 4Khz utilisée pour le transfert K7.
Cela semble fonctionner mais je n’ai pas encore tout testé.

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.