GBASIC V2.2 HIFI Color
GBASIC est un complément de l'interpréteur BASIC du PROF-80 ou du TRS-80 modèle 1. Il a pour but de faciliter l'usage de la carte HIFI Color. Les fonctions graphiques implémentées et la syntaxe sont décrites plus loin.
IMPLANTATION
GBASIC n'est pas relogeable. Il est par suite implanté en fond de mémoire entre F550h et FFFFh. Il doit impérativement être protégé.
Dans le cas d'une utilisation avec DOSPLUS 3.5 et le Driver spécial DRVCOLR, il est nécessaire de charger GBASIC en premier.
La configuration mémoire obtenue peut être sauvée par:
SYSTEM INIT:0 (HIGHT=nnnn-1). Interroger le SED (DOS) par SYSTEM pour connaitre nnnn
ACTIVATION
Pour fonctionner GBASIC doit être activé postérieurement au chargement de BASIC. Pour provoquer cette activation plusieurs méthodes sont possibles:
- a) Si GBASIC n'est pas chargé exécuter CMD"GBASIC"
- b) SI GBASIC est en mémoire exécuter DEFUSR0=&HF550
Puis PRINTUSR(0)
Ou SYSTEM
Et répondre /62800
GBASIC retourne alors sur le moniteur relié à la carte couleur le message:
GBASIC V 2.2
Fonctions graphiques actives.
FORME DE L'IMAGE VIDEO
Le circuit 9366 utilise un balayage non entrelacé et les pixels sont deux fois plus haut que larges. On doit donc obtenir une image carrée avec un moniteur parfaitement réglé.
Ce n'est généralement pas le cas et les images obtenues sont déformées. Pour pallier cet inconvénient certaines routines de GBASIC effectuent une affinité de coefficient F.
L’accès au SP d'affinité étant très fréquent on a choisi l'accés à une table plutôt que l'exécution d'une division.
Les valeurs de cette table doivent être corrigées en fonction du moniteur utilisé.
- a) Tracer avec HPLOT un trait vertical et un trait horizontal en principe de même
Longueur, Mesurer ces traits. En déduire F.
- b) Exécuter le programme BASIC suivant:
- 10 OR I=0 TO 255:POKE &HFA10+I,INT(I/F):NEXT
- C) Contrôler (HCIRCLE) l'efficacité de l'opération.
- D) Sauver la nouvelle version de GBASIC par un DUMP
Il est nécessaire pour éliminer les déformations d'effectuer dans les programmes la correction des ordonnées par la relation
Y=INT(Y/F). (F est voisin de 2)
PLUME OU GOMME
Selon l'état du registre CTRL1 il est possible d'écrire ou d’effacer avec le même ordre de GBASIC. En utilisant cette possibilité, il est possible de tracer des encadrements, des anneaux circulaires....
NE PAS OMETTRE de REMETTRE après un effacement le PROCESSEUR GRAPHIQUE en MODE ÉCRITURE;
TABLE DES CARACTÈRES SPÉCIAUX.
Les caractères sont rangés dans une table située entre FC06H et FD85H. Chaque caractère est codé sur 8 octets dans une matrice 6x8 (1 octet par ligne). Seuls les 6 bits de poids faible sont utilisés. Dans la mesure du possible, la colonne de droite est laissée vide (espacement intercalaire)
QUELQUES PARTICULARITÉS
* Chaque ligne étant adressable séparément, la fonction HPRINT permet l'affichage en deux passes des indices ou exposants.
Passe 1: HPRINT0,180"Y=SIN X"
Passe 2: HPRINT34,184"3"
Les Fonctions HPRINT et HSIZE sont entièrement compatibles. Les caractères normaux sont sensibles à l'action du registre CTRL2 (3702H), par contre les caractères spéciaux ne peuvent être affichés qu'en écriture droite et horizontale.
* Pour la fonction HAXE si le produit p x n entraine une écriture hors de la fenêtre, des affichages incohérents peuvent se produire.
* Pour la fonction HCIRCLE le centre du cercle peut être situé hors de la fenêtre d'écriture. En particulier les valeurs négatives de x et y sont interprétées correctement.
* La fonction &Cx,y qui détermine la couleur du pixel (x,y) est l'analogue de la fonction POINT . Cette fonction peut être utilisée dans les PRINT multiples, les IF...THEN ...etc
* La fonction HPAINT est prévue pour le coloriage de domaines CONVEXES limités par une frontière CONTINUE et MONOCHROME (la couleur de la frontière doit être celle de l'ordre HPAINT ).
Certains domaines concaves peuvent être colorés entièrement mais il faut en général les décomposer en une somme de domaines convexes.
Une routine de contrôle d'erreur (FC error) à été incorporée à HPAINT . Elle entre en action si le point testé est situé hors de la fenêtre d'écriture. Ceci se produit en général si le point de départ est situé hors du domaine ou si la frontière du domaine n'est pas continue.
FONCTIONS DE GBASIC V2.2 (HIFI Color)
HCLSn Efface l'écran et détermine la couleur du fond.
n=0...7
HCLS Efface l'écran. La couleur du fond est celle choisie par l'ordre HCLSn
précédant.
HCOLORn Choix de la couleur d'écriture.
n=0...7
HPLOTx,y Allume le pixel (x,y).
x=0...511 y=0...255
HPLOTx,y TO t,z Allume la droite d'origine (x,y) et d'extrémité (tz)
x,t=0...511
y,z=0...255
HPLOT@ TO t,z Allume la droite dont l'origine est l'extrémité de la droite précédente.
t=0...511 z=0...255 L'extrémité est (t,z).
HPLOTx,y TO t,z,B Trace le contour du rectangle dont une diagonale est (x,y) (t,z).
HPLOTx,y TO t,z,BF Trace le rectangle de diagonale (x,y) (t,z).
HCIRCLEx,y,r,o Trace le cercle de centre (x,y) de rayon r.
x,y entiers o=codage des octants à allumer.
r=0...255 Cercle complet 0=255
o=0...255 Demi cercle supérieur o=15
Demi cercle inférieur o=240
Le Centre peut être situé hors de la fenêtre.
HCIRCLEx,y,r,o,F Trace les octants du DISQUE
HPRINTx,y"Message" Affiche à partir de (x,y) le message situé
x=0...512 entre les " ". Les codes spéciaux sont choisis
z=0...47 par la séquence $z, z=numéro du caractère
Cette fonction supporte CSIZE
Voir table pour les caractères spéciaux
HAXEp,n,X ou Y Trace un axe horizontal ou vertical
L'origine doit être fixée par HPLOTx,y
Le facteur d'affinité intervient pour cette routine.
p indique le pas et n le nombre de graduations.