C'est une vieille technologie là-bas, mais il semble que Gibson a mis à jour son interface utilisateur un peu . Je me souviens de son spinner étant les caractères/\ | - Mais je m'égare. :)
Ceci est en mode texte et très probablement fait en accrochant l'interruption de la minuterie dans DOS et en tirant chaque tick de la minuterie.
Une minuterie DOS standard cochée à peu près toutes les 55 millisecondes.
Vous pouvez dessiner directement à l'écran sous DOS sur un X86 en écrivant au pointeur 0xA0000 en utilisant le jeu de caractères DOS étendu goofy. (Notez que cela provient de la vieille mémoire, cela fait 15 ans et plus depuis que j'ai fait l'une de ces choses :) En d'autres termes, pour dessiner la lettre «A» à la première ligne/colonne de l'écran , vous feriez ce qui suit.Avec ce qui précède à l'esprit
char *screen = 0xA0000;
*screen = 'A';
Pour obtenir un peu plus avancé, (pas d'erreur ou de vérification de limites.)
#define COLUMNS 80
#define ROWS 25
#define VIDMEM_BASE 0xA0000
// Row and column are 1 based
// Note that in a real implementation you would make sure row/column are within the screen bounds
// and if you were on the last row, you might scroll the screen up etc.
void writeScreen(char theChar, size_t row, size_t column)
{
char *screenBase = VIDMEM_BASE;
screenBase += ((row - 1) * COLUMNS) + column - 1;
*screenBase = theChar;
}
, vous devez comprendre comment ça fonctionne sur votre ARM système et le répliquer. En regardant un port de ncurses ou Borlands conio system pour l'ARM vous donnerait probablement une bonne longueur d'avance. Je sais qu'il y avait un portage de la bibliothèque Turbo Vision de Borland vers Linux, mais je ne suis pas sûr qu'il ait jamais été porté sur ARM. Voici un link à la page sourceforge si vous êtes intéressé. Turbo Vision était une interface graphique en mode texte en son temps, pour ce que ça vaut.
Espérons que cela aide.