dimanche 26 octobre 2014

CHIPcon partie 5, clavier et émulateur PC

Cette partie documente le module keypad constitué des 2 fichiers keypad.h et keypad.h.

Agencement du clavier

La mojorité des jeux CHIP-8/SCHIP que j'ai trouvé dans l'internet ont été écris pour fonctionner dans des émulateurs tournant sous Windows. Donc la disposition du clavier est différente. Certains émulateurs sont configurés en pensant à l'utilisation du pavé numérique d'autres utilisent certaines lettres du pavé alphanumérique. Par exemple l'émulateur Fish'n chip utilise les touches à gauche du clavier alphanumérique. La correspondance avec le clavier COSMAC VIP est représenté en caractères gras.

clavier QWERTY
1 12 23 34 C
Q 4W 5E 6R D
A 7S 8D 9F E
Z AX 0C BV F

CHIPcon utilise un clavier Grayhill 96BB2-056-R représenté ici à côté du clavier COSCMAC VIP. On voie donc que la disposition est différente. Pour CHIPcon [*] correspond à [E] et [#] correspond à [F]. Donc lorsqu'on télécharge un jeux pour l'utiliser avec CHIPcon on doit tenir compte de ces différences.

interface keypad

  • void keypad_init()
    Initialisation matérielle du clavier.
  • uint8_t keypad_read()
    Lecture d'une touche avec anti-rebond.
  • uint8_t wait_key()
    Attend qu'une touche soit enfoncée et retourne sa valeur. Lecture avec anti-rebond.
  • void prompt_key()
    Affiche le message "any key..." et attend une touche.
  • uint8_t keypad_break()
    Vérifie si les touches [*] et [#] sont enfoncées en même temps. Retourne vrai si c'est le cas. Utilisé pour sortir de la fonction schip() lorsqu'un programme est bloqué dans une bouche infinie.
  • uint8_t key_down(uint8_t key)
    Vérifie si la touche key est enfoncée. Il n'y a pas d'anti-rebond, le programme SCHIP doit gérer lui-même l'anti-rebond.

Outils de développement

Dans le répertoire tools du projets il y a 2 utilitaires.

cvt-chip est utilisé pour convertir un fichier binaire SCHIP en fichiers source *.c et *.h dans le but d'intégrer un jeux dans la mémoire flash de CHIPcon. Voici un exemple pour sokoban.sc.

commande pour convertir le fichier binaire.


cvt-chip.exe sokoban.sc
Gènère les fichiers sokoban.h

sokoban.c

Le texte


"Sokoban by Hap\n"
"keys:\n"
"5 up\n"
"8 down\n"
"7 left\n"
"9 right\n"
"A select\n"
Doit-être ajouter manuellement. Ce texte défile à l'écran avant le démarrage du jeux.

Un autre utilitaire est chip-dasm qui est un dé-assembleur. A partir d'un fichier binaire SCHIP il génère un fichier lisible par l'humain ou chaque instruction est représenté par un mnémonique. Voici ce que ça donne avec le fichier field.ch8

D'autres utilitaires sont disponibles en téléchargement sur http://www.chip.com. En autre MegaCHIP devkit 1.0. Ainsi que l'émulateur fish'n chip


liens

CHIPcon partie 1, présentation du projet.
chipcon partie 2, machine virtuelle
CHIPcon partie 3, module SRAM
CHIPcon partie 4, tvout
dépot githup du projet. mise à jour le 2014-10-24, utilitaire chip-dasm (schip dé-assembleur).
page www.chip.com rassemblant beauceaup d'information sur CHIP-8/SCHIP/MegaCHIP
article de wikipedia sur CHIP-8

Aucun commentaire:

Enregistrer un commentaire