by jean-baptiste boric » 19 Mar 2022, 17:43
La lenteur de l'affichage des calculatrices NumWorks est due à sa conception. Le contrôleur LCD est déporté et n'est accessible qu'à travers un bus externe lent. De plus, ce bus n'expose qu'un jeu de registres de contrôle, l'accès au framebuffer du contrôleur ne peut se faire qu'indirectement via des commandes. Pour des raisons d'usage de RAM, le firmware epsilon ne garde pas une copie de l'écran et toutes les commandes de dessin sont traités directement, hors le coût de mise en place d'une opération de mise à jour d'un rectangle de pixels n'est pas négligeable. Enfin, pour les opérations avec de l'alpha blending le firmware doit lire les pixels du framebuffer déporté avant d'écrire les nouvelles valeurs, ce qui est particulièrement lent.
Les calculatrices concurrentes tendent à avoir des contrôleurs LCD en interne dans leur microcontrôleur, où la mise à jour d'un pixel se résume à écrire des octets en mémoire car le framebuffer est directement mappé dans le bus de mémoire, ce qui est beaucoup plus rapide que la machine à gaz sur les calculatrices NumWorks pour faire une opération analogue.