Tip: 32 Lines per Screen

See all articles from QL_DOC n10
Author(s): François Lanciault
Publication: QL_DOC
Pub Details: QL_DOC n10 (Issue 10)
Date: June-July 1989
Pages: 8

In English: François Lanciault explains how to get 32 text lines on a QL with the JSU (American) ROM in monitor mode: poking 255 into the system variable SV.TVMOD at 163890 makes the QL use its 8-pixel TV-mode characters, CSIZE is set, and the variable is reset to 0. A short SuperBASIC example is given; the trick only works in SuperBASIC, and NEW or MODE resets it.

Printed title: TRUC: 32 lignes/écran. The article below is in French, as printed in QL_DOC n10 (June-July 1989).


Le nombre maximum de lignes que le QL peut supporter est de 25 en mode moniteur et de 24 en mode TV (ROM JSU). Cependant, il est possible d’avoir 32 lignes par écran en mode moniteur si l’on possède un QL avec la ROM JSU (QL américain). (NDLR: pour déterminer quelle est la version de votre ROM, taper la commande suivante: PRINT VER$ et la version devrait apparaître à l’écran.)

Une petite explication est nécessaire: chaque caractère sur le QL a 10 pixels de hauteur. Vu que l’on a 256 pixels verticalement en mode moniteur cela fait bien 25 lignes et des poussières. Le mode TV lui n’a que 192 pixels de hauteur ce qui normalement permetterait 19 lignes seulement. Comment ce fait-il qu’il y en a 24? La réponse est que en mode TV, le QL n’affiche que 8 pixels sur 10 pour chaque caractère. C’est la raison pour laquelle les caractères comme le ‘p’ ou le ‘q’ ont été redessinés pour qu’ils soient reconnaisable avec seulement 8 pixels.

Donc, le truc pour avoir 32 lignes est de faire croire à l’ordinateur que l’on est en mode TV tout en étant en mode moniteur. Le QL choisira donc des caractères de 8 pixels dans un écran de 256 pixels de hauteur ce qui fait bien 32 lignes! Pour ce faire nous utiliserons la variable système SV.TVMOD qui se trouve à l’adresse 163890. En mettant 255 à cette adresse, le QL croit que l’on est en mode TV. Nous choisissons la grandeur des caractères désirée avec la commande CSIZE, et pour finir, on remet la variable SV.TVMOD à zéro pour ramener le QL dans le bon mode.

Voici un exemple:

10 REMark 32 lignes dans la window #1
20 REMark par François Lanciault
30 :
40 WINDOW 256,256,256,0 :REMark la fenêtre occupe toute
la hauteur disponible
50 POKE 163890,255 :REMark fait croire à l'ordinateur
que l'on est en mode TV
60 CSIZE 0,0
70 POKE 163890,0 :REMark remet le QL en mode moniteur
80 CLS
90 FOR i=1 to 32:PRINT i
100 PAUSE

Il faut noter que ce truc ne s’applique vraiment qu’en SuperBasic, pas question de l’utiliser dans QUILL par exemple. Attention car la commande NEW ou MODE 4 ou 8 remet l’ordinateur en mode 25 lignes. J’espère que cette option pourra être utile pour vos applications.

François Lanciault, Montréal (Québec)

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.