GEM pages
Home -> GEM -> ViewMAX topics

ViewMAX: Some useful(?) information

Most of this information has been derived from examining ViewMAX/2 (supplied with DRDOS 6).

ViewMAX is a miniature version of GEM/3 designed to run only one application - the ViewMAX desktop. However, all the components of GEM are present, and some GEM tricks can be used (with varying degrees of success) on ViewMAX.

GEMVDI.EXE <--> VIEWMAX.EXE

This is the file that is run when you first start GEM or ViewMAX. If you supply a filename:

VIEWMAX myfile

then it will be run instead of the ViewMAX desktop. For example, if you have DR Doodle, you can type:

VIEWMAX d:\path\DOODLE.APP

and DR Doodle will start without needing GEM. However, because ViewMAX drivers don't supply all the services GEM does, DESKTOP.APP and DOODLE.APP are the only GEM programs I have seen which will work like this. Applications which tried to use Item Selectors tended to crash.

GEM.EXE <--> VIEWMAX.OVL

VIEWMAX.OVL holds the Application Environment Services - these deal with windowing functions and the like. ViewMAX/2 has one call which GEM/1 to GEM/3 and ViewMAX/1 lack - the call to set desktop colours.

The ViewMAX/2 AES draws buttons and scrollbars in 3D and highlights the currently focused control, whereas GEM and ViewMAX/1 use 2D buttons and scrollbars. This is done with extra object flags.

ViewMAX does not implement Item Selectors properly.

Note that the GEM and ViewMAX AES files are not interchangeable and will not run under the other system's VDI.

DESKTOP.APP <--> VIEWMAX

VIEWMAX is a completely normal GEM application, and if you rename it to VIEWMAX.APP it can be run by GEM (even GEM/1) in the normal way. Some "invalid function" alert messages will appear when the ViewMAX/2 desktop is run, as it tries to change the screen colour scheme, but ignore them and it will work normally. Remember that VIEWMAX.RSC and VIEWHELP.RSC need to be kept with the .APP part.

The ViewMAX/2 desktop has a number of enhanced features over the GEM/3 desktop; it automatically detects networked drives, and can display a tree view (like Windows File Manager). On the other hand, it runs GEM programs by simply executing the command GEM file.APP.

DESK*.ICN <--> VIEW*.ICN

The icon file formats are identical, and something like EDICON should be able to edit the icons.

*.ACC <--> VIEWMAX.ACC

ViewMAX can only use the calculator/clock accessory. It will not work with GEM's snapshot or print spooler accessories, but it will work with GROWBOX.ACC.

Drivers

The supplied ViewMAX drivers are subsets of GEM drivers. For example, they do not contain the full GEM font support. Because of this, BASIC2.APP refuses to run, while PAINT.APP cannot write text to the screen.

If you replace a ViewMAX driver with the equivalent GEM/3 driver (for example, replace UDUNI9.VGA by SDPSC9.VGA), then font support will be available, and the above apps will run, although they still won't be able to use Item Selectors.

One test for a ViewMAX driver is to make the vqt_attributes() call, and then check the number of integers returned. A full driver will return 6 integers; the ViewMAX VGA driver returns none.

The ViewMAX VGA driver omits the following calls:

It is possible to use the ViewMAX drivers in a GEM/2 system. However, the window controls will then have a different set of graphics on them, as the ViewMAX AES expects a different font from the GEM AES.

As mentioned above, it is also possible to use GEM/3 drivers in a ViewMAX system.

Extra system call

ViewMAX/2 contains a function (which I called xgrf_colour; I subsequently discovered its original DRI name was xgrf_color) to set the colours it uses to draw various objects. This is AES function 132; it takes five integer parameters:

The other 9 colour sets are not used by the ViewMAX AES or set up by the ViewMAX desktop.

Extra object flags

ViewMAX/2 uses at least five bits in an object's "ob_flags" word which are not used by GEM:

Bit 9
ESCAPE is a shortcut for this control.
Bit 10
Bitmap button - not implemented in the ViewMAX AES.
Bit 11
Object is used for scrolling.
Bit 12
is set if the object is to be drawn in 3D. Buttons are always drawn in 3D, whatever the setting of this bit.
Bit 13
is set if the object is to be drawn using one of the 16 colour sets. 3D objects are always drawn using one of these; buttons are always drawn using colour set 11. The object's "colour" setting becomes the colour set number.

Note: The ViewMAX "Panther" beta desktop uses bits 10 and 11 as "halfvshift" and "halfvsize" respectively for control alignment.

The version of RCS on my software page can set the extra object flag and state bits.


John Elliott 9-5-1999