Bonjour,
J'ai finalement fait l'exercice. J'ai pu écrire la chaine "Hello World!" sur l'écran depuis un programme assembleur.
Ça ne fera pas l'objet d'une bibliothèque, car il y a un OS, et ce serait dommage de se priver d'appeler des fonctions qui existent déjà, et qui sont certainement plus performantes et plus efficaces.
Voici les règles que je me suis fixées pour cet exercice:
Le principal choix qui a été fait est qu'on gère soi-même l'affichage.
C'est-à-dire qu'on décide de tout.
Ça veut également dire que cette procédure permet l'affichage d'une ligne, ou une partie de ligne, de texte à des coordonnées indiquées.
La chaine de caractères à afficher se trouve au label "texte"
Les coordonnées d'affichage (ligne, colonne) se trouvent au label "pos".
les couleurs des caractères se trouvent au label "colors" (arrière plan, caractère)
Le format des couleurs est un codage sur 16 bits en hexadécimal.
L'écran fait 24 lignes de 40 caractères.
Chaque caractère est dessiné dans une matrice de 10 lignes et 8 colonnes (pixels)
On accède au caractère à afficher dans la table des caractères par son code ascii.
Parmi les choix retenus:
- si une ligne dépasse la limite des 40 caractères, il y a troncature. Pas de retour à la ligne.
- si on dépasse les 24 lignes, il n'y a pas de scrolling
- seuls les caractères imprimables sont pris en compte. Les caractères de contrôle (CR, LF...) ne le sont pas.
- il n'y a pas de mise en forme (gras, italique, barré...)
Je mets le code source et le tns en PJ, pour le cas où ça intéresserait quelqu'un.
J'espère qu'il n'y a pas d'erreurs sur la police de caractères, je l'ai saisie manuellement pixel par pixel.
Voici ce que ça donne:





You do not have the required permissions to view the files attached to this post.