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.
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.
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.
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
.
The icon file formats are identical, and something like EDICON should be able to edit the icons.
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.
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:
vqt_attributes()
v_contourfill()
v_get_pixel()
vqt_extent()
vqt_width()
vst_load_fonts()
vst_unload_fonts()
vqt_name()
vqt_font_info()
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.
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.
ViewMAX/2 uses at least five bits in an object's "ob_flags" word which are not used by GEM:
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.