Sysop: | Amessyroom |
---|---|
Location: | Fayetteville, NC |
Users: | 43 |
Nodes: | 6 (0 / 6) |
Uptime: | 107:25:48 |
Calls: | 290 |
Files: | 905 |
Messages: | 76,676 |
On 12/27/2024 11:12 AM, Craig A. Berry wrote:
On 12/27/24 9:17 AM, Arne Vajhøj wrote:
Because SMG$ are supporting Pascal/Basic/Cobol/Fortran then
many arguments are pass by descriptor and you will need to setup
those in C, so some familiarity with descriptors will be required.
This has been discussed previously here:
https://groups.google.com/g/comp.os.vms/c/ufBEqvGdglU
That discussion has pointers to various examples,
In general VMS Pascal/VMS Basic code should be maybe 25% shorter
than equivalent C code. But with a descriptor centric API like
SMG$ then it may be more like 40% shorter.
One could make a nice wrapper in C++ encapsulating the context
and convert between stl::string / C char array and descriptors.
On 28/12/2024 00:32, Arne Vajhøj wrote:
On 12/27/2024 3:54 PM, Single Stage to Orbit wrote:In the mid naughties I used SMG to provide a better UI for HHTs on the shop floor - using a terminal emulator on the HHTs
On Fri, 2024-12-27 at 14:34 -0500, Arne Vajhøj wrote:
This has been discussed previously here:
https://groups.google.com/g/comp.os.vms/c/ufBEqvGdglU
That discussion has pointers to various examples,
In general VMS Pascal/VMS Basic code should be maybe 25% shorter
than equivalent C code. But with a descriptor centric API like
SMG$ then it may be more like 40% shorter.
One could make a nice wrapper in C++ encapsulating the context
and convert between stl::string / C char array and descriptors.
But then a full screen VT UI is a concept that has been obsolete
for 30 years, so maybe there is little point.
People are still writing apps using the console.
There is still a need to write command line tools. Mostly
for system administrators and developers, but still there.
But full screen VT UI applications? I doubt many of those
get written today. Whether custom code using SMG$ or one
of TDMS/FMS/DECForms. The end users expectations for UI
has changed. GUI or Web.
Arne
Far better than the earlier implementation.
This was in Basic, where I wrote a couple of functions to front end it, then called the SMG routines.
Went down well on the shop floor
On 12/27/2024 8:10 PM, Chris Townley wrote:
On 28/12/2024 00:32, Arne Vajhøj wrote:
On 12/27/2024 3:54 PM, Single Stage to Orbit wrote:In the mid naughties I used SMG to provide a better UI for HHTs on the
On Fri, 2024-12-27 at 14:34 -0500, Arne Vajhøj wrote:
This has been discussed previously here:
https://groups.google.com/g/comp.os.vms/c/ufBEqvGdglU
That discussion has pointers to various examples,
In general VMS Pascal/VMS Basic code should be maybe 25% shorter
than equivalent C code. But with a descriptor centric API like
SMG$ then it may be more like 40% shorter.
One could make a nice wrapper in C++ encapsulating the context
and convert between stl::string / C char array and descriptors.
But then a full screen VT UI is a concept that has been obsolete
for 30 years, so maybe there is little point.
People are still writing apps using the console.
There is still a need to write command line tools. Mostly
for system administrators and developers, but still there.
But full screen VT UI applications? I doubt many of those
get written today. Whether custom code using SMG$ or one
of TDMS/FMS/DECForms. The end users expectations for UI
has changed. GUI or Web.
Arne
shop
floor - using a terminal emulator on the HHTs
Far better than the earlier implementation.
This was in Basic, where I wrote a couple of functions to front end
it, then
called the SMG routines.
Went down well on the shop floor
And let me guess, a WEENDOZE GUI might not work so well on the shop floor?
On 12/27/2024 2:34 PM, Arne Vajhøj wrote:
On 12/27/2024 11:12 AM, Craig A. Berry wrote:
On 12/27/24 9:17 AM, Arne Vajhøj wrote:
Because SMG$ are supporting Pascal/Basic/Cobol/Fortran then
many arguments are pass by descriptor and you will need to setup
those in C, so some familiarity with descriptors will be required.
This has been discussed previously here:
https://groups.google.com/g/comp.os.vms/c/ufBEqvGdglU
That discussion has pointers to various examples,
In general VMS Pascal/VMS Basic code should be maybe 25% shorter
than equivalent C code. But with a descriptor centric API like
SMG$ then it may be more like 40% shorter.
One could make a nice wrapper in C++ encapsulating the context
and convert between stl::string / C char array and descriptors.
If anyone want to try, then I suggest:
$ CXX/POINTER=32 ...
or you will regret it.
On Mon, 30 Dec 2024 21:31:41 -0500, Arne Vajhøj wrote:
while(smg.GetKey() != SMG$K_TRM_PF1);
Is it possible to hook this kind of thing into an event loop? Some
equivalent of select/poll?
That would make it easier to do things like handle multiple terminals at once.
while(smg.GetKey() != SMG$K_TRM_PF1);
One could create a loop around smg$read_keystroke, replace all smg$read_string call with lots of application code,
open multiple virtual keyboards to multiple terminals (input device is
an argument), use smg$read_keystroke with a timeout and try multiple
virtual keyboards.
On 12/27/2024 6:06 PM, Lawrence D'Oliveiro wrote:
On Fri, 27 Dec 2024 14:34:12 -0500, Arne Vajh°j wrote:
But then a full screen VT UI is a concept that has been obsolete for 30
years
*cough* emacs -nw *cough*
Still useful over remote SSH.
OK. Editors are a type of application where full screen VT UI
can still make sense.
If I want to do screen management in a C program on OpenVMS, is it
better to use one of the curses packages in the C run-time library, or
the SMG$ run-time library? If the latter, is there any documentation on
how to call SMG$ routines from C?
On 12/27/2024 9:24 AM, David Meyer wrote:
If I want to do screen management in a C program on OpenVMS, is it
better to use one of the curses packages in the C run-time library, or
the SMG$ run-time library? If the latter, is there any documentation on
how to call SMG$ routines from C?
If you do not have any existing code using curses or personal
experience with curses, then I would suggest SMG$.
There is an entire manual about SMG$:
https://docs.vmssoftware.com/vsi-openvms-rtl-screen-management-smg-manual/
There is a C header file with prototypes:
#include <smg$routines.h>
Because SMG$ are supporting Pascal/Basic/Cobol/Fortran then
many arguments are pass by descriptor and you will need to setup
those in C, so some familiarity with descriptors will be required.
On 12/27/24 9:17 AM, Arne Vajhøj wrote:
On 12/27/2024 9:24 AM, David Meyer wrote:
If I want to do screen management in a C program on OpenVMS, is it
better to use one of the curses packages in the C run-time library, or
the SMG$ run-time library? If the latter, is there any documentation on
how to call SMG$ routines from C?
If you do not have any existing code using curses or personal
experience with curses, then I would suggest SMG$.
There is an entire manual about SMG$:
https://docs.vmssoftware.com/vsi-openvms-rtl-screen-management-smg-
manual/
There is a C header file with prototypes:
#include <smg$routines.h>
Because SMG$ are supporting Pascal/Basic/Cobol/Fortran then
many arguments are pass by descriptor and you will need to setup
those in C, so some familiarity with descriptors will be required.
This has been discussed previously here:
https://groups.google.com/g/comp.os.vms/c/ufBEqvGdglU
That discussion has pointers to various examples,
This has been discussed previously here:
https://groups.google.com/g/comp.os.vms/c/ufBEqvGdglU
That discussion has pointers to various examples,
In general VMS Pascal/VMS Basic code should be maybe 25% shorter
than equivalent C code. But with a descriptor centric API like
SMG$ then it may be more like 40% shorter.
One could make a nice wrapper in C++ encapsulating the context
and convert between stl::string / C char array and descriptors.
But then a full screen VT UI is a concept that has been obsolete
for 30 years, so maybe there is little point.
But then a full screen VT UI is a concept that has been obsolete for 30
years
On Fri, 2024-12-27 at 14:34 -0500, Arne Vajhøj wrote:
This has been discussed previously here:
https://groups.google.com/g/comp.os.vms/c/ufBEqvGdglU
That discussion has pointers to various examples,
In general VMS Pascal/VMS Basic code should be maybe 25% shorter
than equivalent C code. But with a descriptor centric API like
SMG$ then it may be more like 40% shorter.
One could make a nice wrapper in C++ encapsulating the context
and convert between stl::string / C char array and descriptors.
But then a full screen VT UI is a concept that has been obsolete
for 30 years, so maybe there is little point.
People are still writing apps using the console.
On Fri, 27 Dec 2024 14:34:12 -0500, Arne Vajhøj wrote:
But then a full screen VT UI is a concept that has been obsolete for 30
years
*cough* emacs -nw *cough*
Still useful over remote SSH.
On 28/12/2024 00:32, Arne Vajhøj wrote:
On 12/27/2024 3:54 PM, Single Stage to Orbit wrote:In the mid naughties I used SMG to provide a better UI for HHTs on the
On Fri, 2024-12-27 at 14:34 -0500, Arne Vajhøj wrote:
But then a full screen VT UI is a concept that has been obsolete
for 30 years, so maybe there is little point.
People are still writing apps using the console.
There is still a need to write command line tools. Mostly
for system administrators and developers, but still there.
But full screen VT UI applications? I doubt many of those
get written today. Whether custom code using SMG$ or one
of TDMS/FMS/DECForms. The end users expectations for UI
has changed. GUI or Web.
shop floor - using a terminal emulator on the HHTs
Far better than the earlier implementation.
This was in Basic, where I wrote a couple of functions to front end it,
then called the SMG routines.
Went down well on the shop floor
On 12/27/2024 3:54 PM, Single Stage to Orbit wrote:
On Fri, 2024-12-27 at 14:34 -0500, Arne Vajhøj wrote:
This has been discussed previously here:
https://groups.google.com/g/comp.os.vms/c/ufBEqvGdglU
That discussion has pointers to various examples,
In general VMS Pascal/VMS Basic code should be maybe 25% shorter
than equivalent C code. But with a descriptor centric API like
SMG$ then it may be more like 40% shorter.
One could make a nice wrapper in C++ encapsulating the context
and convert between stl::string / C char array and descriptors.
But then a full screen VT UI is a concept that has been obsolete
for 30 years, so maybe there is little point.
People are still writing apps using the console.
There is still a need to write command line tools. Mostly
for system administrators and developers, but still there.
But full screen VT UI applications? I doubt many of those
get written today. Whether custom code using SMG$ or one
of TDMS/FMS/DECForms. The end users expectations for UI
has changed. GUI or Web.
Arne
On 12/27/2024 6:06 PM, Lawrence D'Oliveiro wrote:
On Fri, 27 Dec 2024 14:34:12 -0500, Arne Vajhøj wrote:
But then a full screen VT UI is a concept that has been obsolete for
30 years
*cough* emacs -nw *cough*
Still useful over remote SSH.
OK. Editors are a type of application where full screen VT UI can still
make sense.
If I want to do screen management in a C program on OpenVMS, is it
better to use one of the curses packages in the C run-time library, or
the SMG$ run-time library? If the latter, is there any documentation on
how to call SMG$ routines from C?