GEM VDI
La couche de dessin sous GEM : une API graphique indépendante du périphérique, bâtie sur des « stations de travail » pour l'écran, l'imprimante et la table traçante, gravée dans la ROM de l'Atari ST et héritée de GSX, l'extension CP/M de Digital Research.
Le Virtual Device Interface était la moitié de GEM qui dessinait, tandis que AES gérait fenêtres et menus. L'idée venait de GSX, l'extension graphique de Digital Research pour CP/M en 1982, et d'un projet de norme ANSI du même nom, devenu plus tard le standard CGI. Un programme ouvre une station de travail avec v_opnwk, ou une station virtuelle avec v_opnvwk lorsqu'il doit partager l'écran, et reçoit en retour un identifiant. Il trace ensuite lignes, formes pleines et texte par des appels comme v_pline, v_bar et v_gtext, soit en pixels propres au périphérique, soit en coordonnées normalisées de 0 à 32767 que le pilote met à l'échelle. La copie de trame vro_cpyfm était le blit sur lequel reposaient fenêtres et icônes. Les mêmes appels pouvaient viser l'écran, l'imprimante, la table traçante ou un métafichier sur disque, ce qui était tout l'intérêt.
Pilotes et polices étaient chargés par GDOS, livré avec GEM sur PC mais optionnel sur l'Atari ST, où le pilote d'écran résidait en ROM. GDOS est devenu une petite industrie : FONTGDOS d'Atari, G+Plus de CodeHead, SpeedoGDOS avec les polices vectorielles de Bitstream en 1993, et NVDI de Behne & Behne, qui remplaçait tout le VDI de la ROM par une version plus rapide, compatible TrueType. Les programmeurs de jeux ignoraient tout cela et écrivaient directement dans la mémoire écran via les trappes Line-A, ce qu'Atari déconseillait et que tout le monde faisait quand même.