Sommaire
Entrées-Sorties
Bitmap Display
Activer Tool>Bitmap Display et le configurer avec
- Unit width: 16
- Unit height: 16
- Display width: 512
- Display hwight: 256
- Base address: 0x10010000 (static data)
La résolution est donc 32x16 (avec des gros pixels)
Routine plot
Implémentez un routine plot avec l’ABI suivante:
a0: couleur du pixel (RVB 24bits)a1: abscisse (x) du pointa2: ordonnée (y) du point- Note: l’origine (0,0) est en haut à gauche
Dessin de carrée
Implémentez une routine square qui désigne un carrée
a0: couleur du carrée (RVB 24bits)a1: abscisse (x) du coin en haut à gauchea2: ordonnée (y) du coin en haut à gauchea3: longueur du coté (positif)
Notes:
rectappelleplot.- Il est possible de dessiner les 4 cotés avec une seule boucle.
Testez:
# un carré blanc en 5x2 de taille 3
li a0, 0xFFFFFF # blanc
li a1, 5
li a2, 2
li a3, 3
jal square
Dessin d’une maison
Implémentez une routine house qui dessine une maison
a0: couleur des murs (RVB 24bits)a1: abscisse (x) du coint en haut à gauchea2: ordonnée (y) du coint en haut à gauchea3: longueur du coté (positif)a4: couleur du toit (RVB 24bits)
Note:
- C’est juste un carré avec deux segments à 45° dessus :)
testez:
# une maison rouge en 10x8 de coté 7 avec un toit vert
li a0, 0xFF0000 # rouge
li a1, 10
li a2, 8
li a3, 7
li a4, 0x00FF00 # vert
jal house
# une maison grise en 20x6 de coté 4 avec un toit cyan
li a0, 0x808080 # gris
li a1, 20
li a2, 6
li a3, 4
li a4, 0x00FFFF # cyan
jal house
Dessin final

Jeu du Serpent (extra)
Progression graphique
En utilisant le Tools>Bitmap Display et Tools>Timer Tool
- Dessinez un pixel blanc aux coordonnées 16x8
- Toutes les secondes, décrémentez l’ordonnée et affichez le pixel. Ceci qui dessine graduellement une ligne blanche: 16x8, puis 16x7, puis 16x6, etc.
- Quand le pixel dépasse le haut (16x-1), il est téléporté en bas (16x15): le monde wrappe (c’est un topologiquement un tore).
Interactions avec le clavier
En utilisant le Tools>Keyboard and Display MMIO Simulator
- Surveillez activement les touches du clavier virtuel.
- Quand les touche
w,a,soudsont pressés changez la direction du pixel respectivement vers le haut, la gauche, le bas et la droite. - La touche
qtermine le programme, les autres touches sont ignorées. - Le pixel garde sa direction et avance toutes les seconde en dessinant une trace.
Le reste de la chouette
- Finissez d’implémenter le jeu Snake. Lisez l’article Wikipédia pour les détails :)