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:

  1. a) Si GBASIC n'est pas chargé exécuter CMD"GBASIC"
  2. 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é.

  1. a) Tracer avec HPLOT un trait vertical et un trait horizontal en principe de même

Longueur, Mesurer ces traits. En déduire F.

  1. b) Exécuter le programme  BASIC suivant:
  • 10 OR I=0 TO 255:POKE &HFA10+I,INT(I/F):NEXT
  1. C) Contrôler (HCIRCLE) l'efficacité de l'opération.
  1. 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.

Tableau Gbasic

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.

Tableau des couleurs

 

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.

Cercle

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.