[comp.os.vms] Discussion of SMG routines

RALPH@UHHEPG.BITNET (07/23/87)

Date: 22-JUL-1987 15:46:15.70
From: Ralph Becker-Szendy RALPH AT UHHEPG
To:   GATEWAY::"info-vax@kl.sri.com",RALPH
Subj: Discussion of SMG routines
I've been hearing a lot about the SMG routines here lately.
They are definitely difficult to use; but doing complicated applications
with several windows on the screen without them would be much worse.
The nicest feature is its hardware-independence: you don't have to care
whether the screen is a VT1xx or VT2xx. Unfortunately it can't be tailored
for non-DEC VT220 compatibles (it would be nice and efficient if i could
teach it to use all the possible escape-sequences of my Falco 5220).

The real bad thing: they are NOT BUG FREE ! My little contribution to the
recently mentioned bugs: when you have a large window (window being shorthand
for virtual display), paste a smaller window over it, and move the small
window around a lot (not unpaste and repaste it, but move it). Sometimes the
small window should also extend over the pasteboard and get clipped. After
moving it for 30 or 40 times, SMG gets confused, and does not repaint the
large window the right way. Continuing to cruise around with the small window
will eventually lead to complete confusion all over the screen. I haven't
wasted any time on stuidying the cause in detail (my big window was in reverse,
and the small one had a borderline), i just started working on other things,
and put the windowing stuff on hold. I'll just wait for VMS 4.6 to be
installed here (we are still at 4.2). If my program doesn't run then, i'll
submit a SPR.

Ralph Becker-Szendy
University of Hawaii / High Energy Physics Group

Disclaimer: The views expressed here are probably not endorsed by my
employer. I hardly ever actually speak to my employer. Even our system manager
stops smiling when i come by.

m1b@rayssd.RAY.COM (M. Joseph Barone) (08/18/87)

In article <8707230859.AA20058@ucbvax.Berkeley.EDU> RALPH@UHHEPG.BITNET writes:
> The nicest feature is its hardware-independence: you don't have to care
> whether the screen is a VT1xx or VT2xx. Unfortunately it can't be tailored
> for non-DEC VT220 compatibles (it would be nice and efficient if i could
> teach it to use all the possible escape-sequences of my Falco 5220).

	SMG routines support any Non-Digital terminal in the world,
provided that it has an entry in TERMTABLE.EXE.  DEC supplies you with
a source file SMGTERMS.TXT which has entries for many (if not all) of
their terminals.  We have an additional file, called NONDECTERMS.TXT,
which includes entries for the more prevalent terminal devices at our
site.  TERMTABLE.TXT is processed by the SMGBLDTRM.EXE program to create
an image file called TERMTABLE.EXE.  Our TERMTABLE.TXT looks like this:

REQUIRE 'SYS$SYSTEM:SMGTERMS'	! contains definitions for DEC terminals
REQUIRE 'NONDECTERMS'		! contains definitions for Non DEC terminals

	This is all documented in Vol 8B, System Routines, starting on
page 3-27.  (This is true for VMS V4.X documentation set.)

	In order to write your own terminal definitions, all you need
is the terminal manual, the above reference manual, and some time.

	Another nice feature of TERMTABLE is that there is the capability
to define 10 private strings to use as you wish using the SMG routine,
SMG$GET_TERM_DATA.

	If anyone is interested, I have terminal entries for Zenith
Z19s, Z29s, and Z39s in both ZDS and ANSI modes and entries for HDS
(Human Design Systems) in 80 and 132 column modes.  With these entries,
any program using SMG routines works fine.

	As a side note, I found it quite humorous that the SWING source
uses SMG routines and then checks to see if the terminal is in ANSI
mode!  My first modification to SWING was to remove this check.

PS:  Sorry for the late followup!

Joe Barone ---------------------------> m1b@rayssd.RAY.COM
{cbosgd, gatech, ihnp4, linus, mirror, uiucdcs}!rayssd!m1b
Heroes have an infinite capacity for stupidity.  Thus are legends born!