rich keyboard

This commit is contained in:
Mwa
2026-03-16 01:48:39 +01:00
parent 8cb41c61cd
commit 2d50702acc
4 changed files with 81 additions and 34 deletions

View File

@@ -28,7 +28,11 @@ syntaxe supplémentaire supportée:
- depuis le sous dossier simu
`cargo run --release fichierentre`
Pour rajouter le support de multiplication/division: rajouter --features=div_mul
## Features
rajouter --features=[liste séparé par des virgules]
- div_mul: Support des instruction de multiplication / division
- rgba: Écran au format RGBA plutot que 0BGR
- rich_keyboard: rajoute trois champs de mmio pour le clavier. Voir MMIO
### instruction spéciale:
halt (jump 0) met le programme en pause, mais on peut se reveiller par des interuptions
@@ -45,6 +49,13 @@ Passage au format RGBA (a pour alpha) avec la feature rgba
- 0x01200010 : Position verticale de la souris (en pixels, -1 si hors de l'écran) (lecture seule)
- 0x01201000 : Activation des Interupts de MMIO. Remis a zero par `dint`. Attention, Écrire ici sans activer les interruptions va bloquer les intéruptions et l'affichage (écriture seule)
Si la feature rich_keyboard est active, tout en lecture seule:
- 0x01200000 - 12 : Clavier : Representation ascii multichar de la touche pressé, modifié par Alt, Ctrl ... (eg ascii(a), ascii(A), ascii(^)<<8 | ascii(a))
- 0x01200000 - 8 : Clavier Representation ascii multichar non modifié (eg ascii(a), ascii(\)<<8 | ascii(r))
- 0x01200000 - 4: Clavier (press | repeat << 1) press: 1 si appuis, 0 si relache. repeat: 1 si l'appuis vient d'une répétition due a l'OS
- 0x01200000 : Clavier (scancode, comme précédement) (lecture seule)
## Interuptions:
Si les interruptions sont activées (avec eint), qu'il y a une raison de faire une interruption,
et qu'on n'est pas déjà dans une routine d'interruption de priorité >=,