Atari Eiffel 3 Interface PS/2
EIFFEL, une interface PS/2 libre clavier et souris pour Atari
Licence: Ce produit est libre, GPL appliqué au matériel.
Vous êtes libre de le fabriquer et l'utiliser sans restrictions.
Cette interface prend en charge tous les claviers et souris PS/2:
![]() |
![]() |
![]() |
![]() |
Archive | Version | Taille | Ordinateur | |
---|---|---|---|---|
Eiffel 1.10 | eiffel.lzh | 1.10 6 Mar 2005 | 524 Ko | Atari ST(E) / Falcon / TT, pour les cartes de Laurent et de Lyndon
![]() |
Eiffel 1.0.9 | eiffel109.lzh | 1.0.9 24 Oct 2004 | 355 Ko | Atari ST(E) / Falcon / TT, pour les cartes de Laurent et de Lyndon |
Eiffel 1.0.6 | eiffel106.lzh | 1.0.6 31 Mai 2004 | 167 Ko | Atari ST(E) / Falcon / TT |
Firmware spécial 1.0.6 | firmware.zip | 1.0.6 13 Juin 2004 | 7 Ko | Atari ST(E) / Falcon / TT, Debug enlevé (RB4/5) pour les cartes de Lyndon |
Cette version possède les caractéristiques suivantes:
Cette version possède les caractéristiques suivantes:
Cette version possède les caractéristiques suivantes:
Cette version possède les caractéristiques suivantes:
Cette version possède les caractéristiques suivantes:
Cette version possède les caractéristiques suivantes:
Cette version possède les caractéristiques suivantes:
Cette version possède les caractéristiques suivantes:
Eiffel utilise un assez puissant micro-controlleur, un PIC16F876. Vous pouvez trouver une
documentation complète sur le site de microchip.
Un programme tout spécialement écrit pour ce dernier, permet de prendre en charge
à la fois le clavier et la souris PS/2, c'est à dire généralement
avec une prise mini DIN 6 points. Principalement, le logiciel converti le protocole série
synchrone PS/2 vers le protocole asynchrone en vigueur sur Atari, traduit tout les scan-codes
du clavier PS/2 vers des scan-codes Atari équivalents; et enfin converti les trames de
la souris PS/2 en paquets d'octets au format Atari voir avec un supplément pour la ou
les molettes et boutons 3, 4 et 5.
Toutes les touches PS/2 sont mappées sur un scan-code équivalent Atari.
De plus comme ces claviers disposent de touches supplémentaires comme Win Gauche, Droit,
Touche Application , etc... de nouveaux scan-codes laissés sans affectation par Atari
ont été utilisés.
A l'inverse, certaines touches n'existent que sur Atari, il a donc fallu les affecter sur d'autres touches PS/2.
Cela est le cas pour HELP et UNDO:
L'adaptateur est aussi responsable de l'allumage des LEDs, comme allumer et éteindre la LED CAPS LOCK, d'allumer la LED VERR. NUM. qui désormais a la signification de témoin de mise sous tension. La touche VERR NUM bien que n'allumant plus la LED correspondante, est néanmoins utilisable et reconnue du coté Atari comme toutes les autres touches.
Depuis la version 1.0.7, Eiffel n'a plus besoin de pilote pour simuler des scan-codes
differents pour chaque touche. Il peut affecter directement par des tables utilisateur
(des .inf) suivant chaque pays, les caractères suivant l'état Shift, Alternate
et Normal.
Par exemple pour obtenir le caractère "{" sur Atari vous effectuez la combinaison
SHIFT+ALT+"{", mais sur votre nouveau clavier PS/2, ce même caractère n'est
pas du tout accessible comme cela mais sur la touche ALT+"4"...
La souris fonctione immédiatement avec Eiffel, et ce quelque soit la souris. L'interface est capable de gérer les souris PS/2 standard, à 2 et 3 boutons, et IntelliMouse à une ou deux molettes et avec 3 à 5 boutons. Les deux boutons de même géographie que sur la souris Atari conservent les mêmes fonctions tandis que les boutons 3 à 5 sont complètement nouveaux.
Pour profiter des nouveaux organes de ces souris, se trouve pour les mouvements Haut/Bas et gauche/Droite des molettes quatres scan-codes claviers précédement libres et pour les trois boutons supplémentaires ègalement de nouveaux scan-codes. Cela est par défaut, ces codes sont programmables avec le programme EIFFELCF.APP.
Table des nouveaux scan-codes:
Voici la liste exhaustive des nouveaux scan-codes utilisés par Eiffel et leur affectation.
De cette manière vous pouvez les utiliser dans vos programmes et tirer profit de nouvelles
touches ou molette souris ou bien écrire un driver...
Touches jeu 2 (AT) et jeu 3 (PS/2) | Atari scan-code firmware v1.0.3 et + | Atari scan-code firmware v1.0.8 et + |
ALT GR | ALT par défaut, programmable | ALT par défaut, programmable |
F11 | HELP par défaut, programmable | HELP par défaut, programmable |
F12 | UNDO par défaut, programmable | UNDO par défaut, programmable |
SCROLL LOCK | $4C par défaut, programmable | $4C par défaut, programmable |
PAGE UP | $45 par défaut, programmable | $45 par défaut, programmable |
PAGE DOWN | $46 par défaut, programmable | $46 par défaut, programmable |
PRINT SCREEN | $49 par défaut, programmable | $49 par défaut, programmable |
PAUSE | $4F par défaut, programmable | $4F par défaut, programmable |
VERR NUM | $54 (F11 Atari) par défaut, programmable |
Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $54 |
END | $55 (F12 Atari) par défaut, programmable |
Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $55 |
LEFT WIN | $56 (F13 Atari) par défaut, programmable |
Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $56 |
RIGHT WIN | $57 (F14 Atari) par défaut, programmable |
Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $57 |
WIN APP | $58 (F15 Atari) par défaut, programmable |
Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $58 |
Touche <²> à coté du <1> (Russe "ë") | $5B (F18 Atari) par défaut, programmable |
Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $5B |
Touches jeu 2 (AT) | Atari scan-code firmware 1.0.0 jusqu'à 1.0.4 | Atari scan-code firmware 1.0.5 et 1.0.8 |
POWER | - | $73 (CTRL <- dans le TOS) Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $73 |
SLEEP | - | $74 (CTRL -> dans le TOS) Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $74 |
WAKE | - | $75 Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $75 |
NEXT TRACK | - | $F6 $05 $00 $00 $00 $00 $00 $4D |
PREVIOUS TRACK | - | $F6 $05 $00 $00 $00 $00 $00 $15 |
STOP | - | $F6 $05 $00 $00 $00 $00 $00 $3B |
PLAY/PAUSE | - | $F6 $05 $00 $00 $00 $00 $00 $34 |
MUTE | - | $F6 $05 $00 $00 $00 $00 $00 $23 |
VOLUME UP | - | $F6 $05 $00 $00 $00 $00 $00 $32 |
VOLUME DOWN | - | $F6 $05 $00 $00 $00 $00 $00 $21 |
MEDIA SELECT | - | $F6 $05 $00 $00 $00 $00 $00 $50 |
- | $F6 $05 $00 $00 $00 $00 $00 $48 | |
CALCULATOR | - | $F6 $05 $00 $00 $00 $00 $00 $2B |
MY COMPUTER | - | $F6 $05 $00 $00 $00 $00 $00 $40 |
WWW SEARCH | - | $F6 $05 $00 $00 $00 $00 $00 $10 |
WWW HOME | - | $F6 $05 $00 $00 $00 $00 $00 $3A |
WWW BACK | - | $F6 $05 $00 $00 $00 $00 $00 $38 |
WWW FORWARD | - | $F6 $05 $00 $00 $00 $00 $00 $30 |
WWW STOP | - | $F6 $05 $00 $00 $00 $00 $00 $28 |
WWW REFRESH | - | $F6 $05 $00 $00 $00 $00 $00 $20 |
WWW FAVORITES | - | $F6 $05 $00 $00 $00 $00 $00 $18 |
Eléments souris | Atari scan-code firmware v1.0.3 et + | Atari scan-code firmware v1.0.8 et + |
Roulette verticale UP | $59 (F16 Atari) par défaut, programmable |
Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $59 |
Roulette verticale DOWN | $5A (F17 Atari) par défaut, programmable |
Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $5A |
Roulette horizontale LEFT | $5C (F19 Atari) par défaut, programmable |
Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $5C |
Roulete horizontale RIGHT | $5D (F20 Atari) par défaut, programmable |
Utilisation possible de la trame de status $F6 $05 $00 $00 $00 $00 $00 $5D |
Bouton 3 (Milieu) | $37 par défaut, programmable | $37 par défaut, programmable |
Bouton 4 | $5E par défaut, programmable | $5E par défaut, programmable |
Bouton 5 | $5F par défaut, programmable | $5F par défaut, programmable |
Commande | Format | Action sur Eiffel | Version |
GETTEMP | <$03> | Retourne la température de la sonde | 1.0.4 |
PROGTEMP | <$04><index><code> | Programme la température | 1.0.4 |
PROGKB | <$05><index><code> | Programme un scan-code clavier Si index est à $FF, code est le jeu 2 ou 3 |
1.0.3 1.0.5 |
PROGMS | <$06><index><code> | Programme un scan-code souris | 1.0.3 |
LCD | <$23><len><data(s)> | Envoi une commande ou des données au LCD Len est à $00: Data est une commande, verrouille le LCD Len est à $FF: Déverrouille le LCD pour Eiffel Len est $01-$FE: envoi de données |
1.10 |
Commande | Format | Action spéciale sur Eiffel | Version |
IKBD_SET_MOUSE_BUTTON_ACTION | <$07><00000mss> | - | 1.0.4 |
IKBD_REL_MOUSE_POS_REPORT | <$08> | - | 1.0.4 |
IKBD_ABS_MOUSE_POSITIONING | <$09> <XMSB><XLSB> <YMSB><YLSB> |
- | 1.0.4 |
IKBD_SET_MOUSE_KEYCODE_CODE | <$0A><deltax><deltay> | - | 1.0.4 |
IKBD_SET_MOUSE_THRESHOLD | <$0B>><X><Y> | - | Pas supportée |
IKBD_SET_MOUSE_SCALE | <$0C>><X><Y> | - | 1.0.4 |
IKBD_INTERROGATE_MOUSE_POS | <$0D> | - | 1.0.4 |
IKBD_LOAD_MOUSE_POS | <$0E><$00> <XMSB><XLSB> <YMSB><YLSB> |
- | 1.0.4 |
IKBD_SET_Y0_AT_BOTTOM | <$0F> | - | 1.0.4 |
IKBD_SET_Y0_AT_TOP | <$10> | - | 1.0.4 |
IKDB_RESUME | <$11> | - | 1.0.4 |
IKDB_DISABLE_MOUSE | <$12> | - | 1.0.4 |
IKDB_PAUSE_OUTPUT | <$13> | - | 1.0.4 |
IKBD_SET_JOY_EVNT_REPORT | <$14> | - | 1.0.4 |
IKBD_SET_JOY_INTERROG_MODE | <$15> | - | 1.0.4 |
IKBD_JOY_INTERROG | <$16> | - | 1.0.4 |
IKBD_SET_JOY_MONITOR | <$17><rate> | - | 1.0.4 |
IKBD_SET_FIRE_BUTTON_MONITOR | <$18> | - | Pas supportée |
IKBD_SET_JOY_KEYCODE_MODE | <$19> <RX><RY> <TX><TY> <VX><VY> |
- | 1.0.4 |
IKDB_DISABLE_JOYSTICKS | <$1A> | - | 1.0.4 |
IKBD_TIME_OF_DAY_CLOCK_SET | <$1B> <YY><MM><DD> <hh><mm><ss> |
- | 1.0.4 |
IKBD_INTERROG_TIME_OF_DAY | <$1C> | - | 1.0.4 |
IKBD_MEMORY_LOAD | <$20> <ADRMSB><ADRLSB> <NUM> |
$0000 à $01FF: RAM $0000 $00: FLASH (firmware) |
1.0.4 |
IKBD_MEMORY_READ | <$21> <ADRMSB><ADRLSB> |
$0000 à $01FF: RAM $2100 à $20FF: EEPROM $8000 à $FFFF: FLASH (0-$1FFF) |
1.0.4 |
IKBD_CONTROLLER_EXECUTE | <$22> <ADRMSB><ADRLSB> |
- | Pas supportée |
IKBD_RESET | <$80><$01> | - | 1.0.2 |
IKBD_STATUS_MOUSE_BUT_ACTION | <$87> | - | 1.0.4 |
IKBD_STATUS_MOUSE_MODE_R | <$88> | - | 1.0.4 |
IKBD_STATUS_MOUSE_MODE_A | <$89> | - | 1.0.4 |
IKBD_STATUS_MOUSE_MODE_K | <$8A> | - | 1.0.4 |
IKBD_STATUS_MOUSE_THRESHOLD | <$8B> | - | 1.0.4 |
IKBD_STATUS_MOUSE_SCALE | <$8C> | - | 1.0.4 |
IKBD_STATUS_MOUSE_Y0_AT_B | <$8F> | - | 1.0.4 |
IKBD_STATUS_MOUSE_Y0_AT_T | <$90> | - | 1.0.4 |
IKDB_STATUS_DISABLE_MOUSE | <$92> | - | 1.0.4 |
IKBD_STATUS_JOY_MODE_E | <$94> | - | 1.0.4 |
IKBD_STATUS_JOY_MODE_I | <$95> | - | 1.0.4 |
IKBD_STATUS_JOY_MODE_K | <$99> | - | 1.0.4 |
IKDB_STATUS_DISABLE_JOY | <$9A> | - | 1.0.4 |
Pour programmer le composant PIC, téléchargez ici le fichier HEX de Eiffel (format Intel).
Vous pouvez utiliser un très bon logiciel de programmation sur votre Atari: Prog84 / Gputils / Sdcc.