Your explanation shows your experience Brian. It took me quite some time to figure that
out. The SMG$ manual is a far cry from a tutorial.
I managed to write games like mastermind and a word guessing game called Lingo with the
aid of SMG$ routines.
I like Pascal because it is a descendant of Algol, the first language I learned at school.
Dijkstra was a professor there which explains Algol and Burroughs.
The Pascal VMS Compilers never failed me though the RTL bindings with all those attributes
in brackets felt strange and somewhat like a kludge. When I installed the compiler for the
first time on one of my own systems I learned that the .pen files were part of the kit.
Before I had written my own and that probably explains the problems to make SMG$ work :)
Van: Brian Schenkenberger, VAXman-
Verzonden: dinsdag 1 oktober 2013 19:46
Aan: hecnet at Update.UU.SE
Beantwoorden: hecnet at Update.UU.SE
Onderwerp: Re: [HECnet] FMS, SMG$, Windowing/Forms on a Text Terminal
Hans Vlems <hvlems at zonnet.nl> writes:
That's the way I read it too and I happen to agree
with that point of view :)
Until you understand things like pasteboards and displays SMG$ is pretty
awesome. Calling it from Pascal doesn't make it easier I can tell you.
The pasteboard is the terminal screen. Not a difficult concept. You can,
normally, only create one pasteboard per terminal. With the aid of a VMS
pseudo-terminal, you can circumvent this restriction.
Displays are "virtual terminals" of any size you declare them to be. You
then position these on the pasteboard with SMG$PASTE_VIRTUAL_DISPLAY giving
the coordinates of where you want the display pasted. Most other SMG$ APIs
work upon the virtual display(s).
As for DEC Pascal, I know not. Despite Mr. Reagan's affection for it and
his claims that it's one of the better VMS compilers, I've never used it.
For SMG$, all you really need is a way to pass by reference (pointer) and
the ability to define string descriptors. I thought that Pascal created
string descriptors by default for its character strings. I prefer to use
Macro when I call SMG$. C can also be used but you need to roll your own
descriptors. Fortran, as I recall, also had native descriptor creation in
its compiler.
--
VAXman- A Bored Certified VMS Kernel Mode Hacker VAXman(at)TMESIS(dot)ORG
Well I speak to machines with the voice of humanity.