Articles
Dots tunnel
- Dots tunnel : le principe, expliqué en JavaScript
Construire un dots tunnel une idée à la fois, en JavaScript, sur un écran de CPC simulé : de la projection d'un cercle aux tables d'octets que le Z80 attend.
- Dots tunnel : des tables au premier tunnel en Z80
Comment le CPC range ses pixels en mémoire, les tables du dots tunnel calculées en Locomotive BASIC puis par RASM, octet pour octet, et une première version du tunnel en Z80, lente, dont on mesure le temps image par image.
- Dots tunnel : deux écrans, et n'effacer que les points
La v1 du dots tunnel efface 16 Ko par image pour au plus 256 octets allumés, et son image clignote. Deux versions en Z80 règlent le clignotement, puis l'effacement, et on mesure ce que chacune rapporte.
- Dots tunnel : la pile, les registres et le déroulage
Où passent les NOPs d'un point du dots tunnel, instruction par instruction, et combien peut-on en retirer avec la pile du Z80, ses registres et le déroulage, sans changer une seule image ?
- Dots tunnel : un écran de 256 × 256 et 400 points
Et si l'écran du CPC changeait de forme pour que l'adresse d'un point se calcule plus vite ? Le dots tunnel passe sur un écran carré, puis convertit le temps gagné en points.
TDD sur CPC
- TDD sur CPC : trouver le plus petit octet d'un tableau
Écrire les tests d'une routine Z80 avant la routine, sur Amstrad CPC : préparer les registres et la mémoire, appeler la routine, vérifier le résultat, jusqu'à un budget en NOPs.
- TDD sur CPC : le tri par sélection, et ce qu'il coûte
Trier un tableau en Z80 sur Amstrad CPC, test après test, avec z80-tdd : de la complexité en O(n²) à une formule exacte en NOPs.
- TDD sur CPC : le tri par insertion, quatre versions au NOP près
Le tri par insertion en Z80 sur Amstrad CPC, test après test, avec z80-tdd : quatre façons de décaler les octets, mesurées au NOP, puis un duel avec le tri par sélection.
- TDD sur CPC : le tri à bulles, le drapeau ou la borne de Knuth
Le tri à bulles en Z80 sur Amstrad CPC, test après test, avec z80-tdd : un test de budget départage le drapeau classique et la borne de Knuth, puis le match des trois tris.
- TDD sur CPC : le tri par comptage, 256 compteurs et pas une comparaison
Le tri par comptage en Z80 sur Amstrad CPC, test après test, avec z80-tdd : une table de 256 compteurs, un parcours qui partait de travers, une table rendue propre, puis les quatre tris face à face.
- TDD sur CPC : le radix sort, deux comptages pour des clés de 16 bits
Le radix sort en Z80 sur Amstrad CPC, test après test, avec z80-tdd : un comptage stable qui déplace les clés, deux passes réunies en une routine par un échange d'octets, puis son budget en NOPs.
- TDD sur CPC : strcmp, comparer deux chaînes à bit 7 final
Une comparaison de chaînes en Z80 sur Amstrad CPC, test après test, avec z80-tdd : des chaînes au format du firmware, une réponse dans les drapeaux comme CP, le piège du bit 7, puis un budget pour chaque chemin.
- TDD sur CPC : trier des pointeurs vers des chaînes
Un tri par insertion en Z80 sur Amstrad CPC, test après test, avec z80-tdd : les pointeurs bougent, les chaînes restent en place, strcmp compare, la stabilité se voit enfin, et le budget dépend de n et des préfixes.