> I'm using a QXL card with SMSQ/E and everything seems
> to work OK. As I'm fairly new to the QL scene, I just
> wondered if there is a way to make the display either
> larger or centered?
>
> What happens at the moment is that the display (group
> of 3 windows) appears in the top left of the screen.
>
> I think SMSQ/E supports 800x600 mode but it wasnt
> clear
> how to set that. WINDOW 800,600,0,0 etc dont seem to
> do anything?
>
> Thanks
>
> Ian.


There's more than one issue at play here.

Firstly, are we sure it's SMSQ/E and not the original non-pointer SMSQ 
for QXL?

If it's a non-pointer SMSQ there is no command to change the display 
size in early versions, you have to configure the SMSQ file itself to 
preset 512x256 (QL) or 640x350 (EGA) or 640x480 (VGA) or 800x600 
(SVGA). The QXL display doesn't do scaling with SMSQ, so if your PC is 
in SVGA 800x600 mode in Windows, 512x256 is only a part of this, so 
appears in the top left of the screen, unlike more recent software 
emulators which can make these modes fill the screen.

More recent versions (including all versions of SMSQ/E) have a command 
called DISP_SIZE, which you can use to set the display resolution. For 
example, DISP_SIZE 640,480 will set the display to VGA size and 
DISP_SIZE 800,600 to set SVGA resolution. The WINDOW command won't let 
you specify anything bigger than the current screen resolution, so if 
your system has the DISP_SIZE command (try it to find out, it will 
give an error message if it doesn't exist).

(At this point I confess I sold my QXL a long time ago, so all this is 
from memory only.)

Once you have set the resolution required, you can then experiment 
with the WINDOW commands to alter the size of your basic windows. 
Here's an article (from QL Today v11 issue 1) about a pair of little 
routines I use to set basic windows to fill the screen. It's a small 
basic procedure I add to my basic programs which lets me enter the 
command XTV or XMON to set WTV and WMON style windows to fill the 
screen.

Hope this helps.
-- 
Dilwyn Jones
==========================

XMON AND XTV

In his Start Here article in the April-June 2006 issue, Roy Wood
describes how the first screen appears as a small box somewhere on the
screen when you start up a system in a high resolution mode.

This inspired me to dig out a couple of old routines I use to add a
couple of procedures called XMON and XTV. These create windows like
those created by the WMON and WTV commands, but make use of the whole
screen. Window channels #2, #1 and #0 now make use of the whole
screen.

The procedures make use of the SCR_XLIM and SCR_YLIM functions to
return screen size details so that the windows can be scaled to fit
whatever screen resolution you use.

An OUTLN command is included in both procedures to ensure windows are
correctly outlined (to ensure menu extension etc works properly).

Entering the command XMON sets monitor-style windows (i.e. window
channels #1 and #2 side by side occupying half screen width each) and
XTV sets TV-style windows (i.e. window channels #1 and #2 overlap,
although unlike WTV the windows occupy the full width of the screen as
it's assumed if you are using high resolution you won't be using a TV
and won't suffer from edge cutoff).

30000 DEFine PROCedure Xtv
30010   OUTLN #0,SCR_XLIM,SCR_YLIM,0,0
30020   WINDOW SCR_XLIM,SCR_YLIM-52,0,0 : WINDOW
#2,SCR_XLIM,SCR_YLIM-52,0,0 : WINDOW #0,SCR_XLIM,52,0,SCR_YLIM-52
30030   BORDER #1,1,255 : BORDER #2,1,255 : BORDER #0,1,255
30040   CLS : CLS #2 : CLS #0
30050 END DEFine Xtv
30060 :
30070 DEFine PROCedure Xmon
30080   OUTLN #0,SCR_XLIM,SCR_YLIM,0,0
30090   WINDOW SCR_XLIM/2,SCR_YLIM-54,SCR_XLIM/2,0 : WINDOW
#2,SCR_XLIM/2,SCR_YLIM-54,0,0 : WINDOW #0,SCR_XLIM,52,0,SCR_YLIM-52
30100   BORDER #1,1,255 : BORDER #2,1,255 : BORDER #0,1,255
30110   CLS : CLS #2 : CLS #0
30120 END DEFine Xmon

WMON and WTV

These commands can do more than just reset SBASIC's windows to the
startup sizes in the top left corner of the high resolution screen. So
many old programs just sit int he top left of the screen, leaving a
lot of redundant space to the right and below. So the SBASIC WMON and
WTV commands can take extra parameters to specify where the top left
corner of SBASIC's windows will fall. There are two versions of each
command:

WMON mode_number,x and y co-ordinate

WMON mode_number,x co-ordinate,y co-ordinate

The co-ordinates are given in pixels across and down the screen. If
only one co-ordinate is given, the command assumes that both are the
same:

WMON 4,100

This command sets monitor windows in 4 colour screen mode, with the
top left corner 100 pixels across the screen and 100 pixels down.

WMON 8,50,100

This command sets monitor windows in 8 colour screen mode, with the
top left corner 50 pixels across and 100 pixels down. Replace WMON
with WTV for TV-style windows.

If you want to place the basic windows at the bottom right of the
screen to allow older fixed location programs the use of the top left
fo the screen, try using SCR_XLIM and SCR_YLIM to work out where to
put the windows. This assumes that the SBASIC windows are to use a
512x256 pixel area just like the standard QL screen:

WMON 4,SCR_XLIM-512,SCR_YLIM-256

The mode number can be left out unless you specifically want to set a
given mode. In fact, it's often better not to specify it since window
contents can be preserved. Simply leave the parameter before the first
comma blank:

WMON ,SCR_XLIM-512,SCR_YLIM-256

A useful possibility is to put these commands onto a hotkey as a
command, using HOT_CMD:

ERT HOT_CMD("w","wmon ,scr_xlim-512,scr_ylim-256")

Please note that this article is only applicable to SMSQ/E systems,
since QDOS does not support high resolution screens.

_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

Reply via email to