On regroupe ici les fonctions d'écran :
- détermination des zones du curseur, du Buffer local, ...
- affichage du contenu d'une fenêtre de Buffer.
On utilise les variables globales suivantes :
- log : curseur logique (représentation symbolique),
- phy : curseur physique (représentation symbolique),
- curdeb : début de curseur (représentation par une liste),
- curfin : fin de curseur (représentation par une liste).
- loghol : holophraste logique,
- reghol : holophraste physique (holophraste du Buffer local),
- bufhol : holophraste minimal du Buffer (initialement 1).
- reginfo-lst : liste des liens du Buffer local,
- bufinfo-lst : liste des liens du Buffer courant,
- ficinfo-lst : liste des liens du Buffer de la fenêtre.
(note : le Buffer courant peut être plus petit que le Buffer de la fenêtre si l'on a appelé récursivement l'éditeur par la commande ESC-r
Note : en dehors des variables log et phy les données sont calculées d'après la liste des liens reginfo-lst, bufinfo-lst et ficinfo-lst. L'appel récursif sur le Buffer local courant est donc réalisé par empilement de la seule variable bufhol.
On utilise dans la suite la terminologie suivante :
- données du curseur logique : log et loghol,
- données du curseur physique : phy,
- données du curseur : curdeb et curfin,
- données du Buffer local : reghol et reginfo-lst,
- données du Buffer : bufhol et bufinfo-lst,
- données de la page : beg et end.
détermination des zones
log>reg : calcule les données du Buffer local, du curseur, du curseur physique d'après celles du curseur logique.
log>cur : calcule les données du curseur, du curseur physique d'après celles du curseur logique.
log>phy : calcule les données du curseur physique d'après celles du curseur logique.
log>fen : calcule les données de la page d'après celles du curseur logique.
fen>log : calcule les données du curseur logique d'après celles de la page.
affichage de la page
aff>ecr : affiche la page.
aff>ecr-part ‹beg› ‹end› ‹pge› : affiche la page entre les lignes ‹beg› et ‹end› du Buffer – ‹pge› est le numéro de ligne du Buffer de la première ligne de la fenêtre.
eff>ecr-part ‹beg› ‹end› ‹num› : efface les ‹num› dernières lignes de la page ‹beg› ‹end›.
re-aff>ecr : réaffiche la page.
aff>cur : affiche le curseur.
eff>cur : efface le curseur.
re-aff>cur : réaffiche le curseur.
aff>zon : affiche la zone sélectionnée en mode sélection.
sel-eff>ecr : efface la zone affichée en sortie de mode sélection.
affichage interne
Les fonctions ont toutes la visibilité des variables :
- zondeb, zonfin : la zone à afficher,
- zontab : l'abscisse du début de ligne du Buffer courant.
aff>ecr-zone ‹beg› ‹end› ‹tab› ‹pge› : afficher la zone :
- entre ‹beg› et ‹end›,
- avec l'abscisse ‹tab› du début de ligne du Buffer local,
- la première ligne d'écran ayant le numéro ‹pge› dans le Buffer.
eff>ecr-zone ‹beg› ‹end› ‹tab› ‹pge› : idem, effacer la zone.
aff>zon-zone ‹beg› ‹end› ‹deb› ‹fin› ‹tab› ‹pge› : idem, afficher la portion du curseur ‹deb› ‹fin› contenue dans la page ‹beg› ‹end›.
eff>zon-zone ‹beg› ‹end› ‹deb› ‹fin› ‹tab› ‹pge› : idem, effacer le portion.
aff>tab-zone ‹beg› ‹end› ‹deb› ‹fin› ‹tab› ‹pge› : idem, afficher les points hors de la zone d'accès.
eff>tab-zone ‹beg› ‹end› ‹deb› ‹fin› ‹tab› ‹pge› : idem, effacer les points.
aff>ecr-init : initialiser les variables zon...
aff> ‹beg› ‹end› ‹tab› ‹pge› : afficher de ‹beg› à ‹end› en inverse Vidéo.
eff> ‹beg› ‹end› ‹tab› ‹pge› : idem, en standard.
aff>tab ‹beg› ‹end› ‹tab1› ‹tab2› ‹pge› : afficher de ‹beg› à ‹end› en inverse Vidéo entre les abscisse ‹tab1› et ‹tab2›.
eff>tab ‹beg› ‹end› ‹tab1› ‹tab2› ‹pge› : idem, en standard.