Operating System - OpenVMS
cancel
Showing results for 
Search instead for 
Did you mean: 

DEC TPU Graphics Within MESSAGE() Function

 
Robert Atkinson
Respected Contributor

DEC TPU Graphics Within MESSAGE() Function

Does anyone know how to output graphics within the TPU Message() function?

I've tried this, but I just get a backwards question mark :-

msg := FAO("!AS[7m Use the arrow keys to scroll and Enter to select an entry, or press 'Q' to quit",ASCII(27));
MESSAGE(msg);

Cheers, Rob.
11 REPLIES 11
Hoff
Honored Contributor

Re: DEC TPU Graphics Within MESSAGE() Function

Reverse video? I'd stick to the use of what TPU provides, rather than going around it with control sequences. (I really don't like going "around" a tool that's managing the screen.)

If you want more direct control, that sort of task typically uses SMG or curses. Or the (older) version of GTK that's kicking around, if you want some portability.

If you want full control and a more typical approach, then that's usually php or perl or python or Lua or such.

BTW, !AS is an ASCII string by descriptor. Off-hand, I'd not assume ASCII() gave me that as a parameter. Rather, try Or try message(ascii(27)+"[7M")

Robert Atkinson
Respected Contributor

Re: DEC TPU Graphics Within MESSAGE() Function

I'm actually trying to rewrite ZSCROLL (an SMG app) in TPU, and get it as accurate as possible.

Although the graphics aren't imperative, they would help to make things look better.

To crack the egg another way, is there any way I can get rid of the 'messages' buffer from the screen, so I have control of the whole screen?

Rob.
Hoff
Honored Contributor

Re: DEC TPU Graphics Within MESSAGE() Function

Going from SMG to TPU seems an odd choice. Certainly not the direction I'd tend to head. Not without some (as yet unstated) constraints.

Presuming this is not an internal tool, can you post up a pointer to whatever widget you're working on (I don't see an obvious zscoll with any SMG pieces around), and some background on what you're trying to achieve here, and with some details on what display hardware is involved?

>To crack the egg another way, is there any way I can get rid of the 'messages' buffer from the screen, so I have control of the whole screen?

Usually via the terminal or terminal emulator set-up or configuration or menu, and the associated setting. IIRC, there's a control sequence that can be tossed at the screen for this, too.
Robert Atkinson
Respected Contributor

Re: DEC TPU Graphics Within MESSAGE() Function

Hoff, my bad - the whole package is actually ZMENU, which contains ZSCROLL :-

http://vms.process.com/scripts/fileserv/fileserv.com?ZMENU

Because it hasn't been ported to IA64 and I'm running out of time, I decided to rewrite it. I don't have access to any programming languages as such, so the best option I could find that supported automatic scrolling/screen handling is TPU.

Not sure what your response about 'emulator configuration setting' means. It's the TPU message buffer I'm trying to supress?

Rob.
Hoff
Honored Contributor

Re: DEC TPU Graphics Within MESSAGE() Function

The message status line (at least in one interpretation of that phrase) is part of the VT terminal specification.

http://vt100.net/docs/vt320-uu/chapter4.html
Robert Atkinson
Respected Contributor

Re: DEC TPU Graphics Within MESSAGE() Function

Hoff, please see attached image showing the message buffer I'm talking about.

Rob.
Volker Halle
Honored Contributor

Re: DEC TPU Graphics Within MESSAGE() Function

Rob,

did you try to build ZMENU on OpenVMS I64 at all ? After a couple of edits, I can at least seem to get it to build. Lots of info and warning messages, but they also seem to show up in the Alpha build.

- I copied BUILD-AXP.COM to BUILD-I64.COM and replaced all occurences of '_AXP' with '_I64'

- had to edit ZMENU.FOR and change the name of the 2 common blocks: HELP -> HELPCOM and TIME to TIMECOM

Never having used ZMENU before, I can not really test it, so I can't tell anything about the runtime behaviour. Documentation does not seem to be too extensive ;-(

$ ZMENU dev:[dir]ZMENU.MENU seems to 'work' - it at least clears the screen and displays the menu...

Volker.
Hoff
Honored Contributor

Re: DEC TPU Graphics Within MESSAGE() Function

The root trigger here looks to be the mixture of !AS directive with the ASCII(27) character.

There's what the application can choose to do at the bottom lines of the "regular" terminal display, and there's the "25th line" SMG$PUT_STATUS_LINE status line that can be set as host-writable on the terminal. (The status line is usually now the bottom line of the display as currently drawn, and may not be the 25th line in "reality" as various terminals and terminal emulators can do more than 24 lines. But it has variously ended up known as the "25th line".)

Depending on the terminal or the terminal emulation, you can choose either of these two approaches. Which is appropriate is up to you. And what TPU does here, I don't know.

I do not suspect the emulator I'm using even supports the "25th line" status line as that was a VT220-level feature. And the emulator doesn't claim DECCRT2 or higher.

I might presume you don't have a programming language compiler here, either. (Based solely on inferences from the targeting of TPU here.) One approach you could consider here if your company lacks these software licenses and tools is a hobbyist license on an Alpha or Itanium box of your own, and use it (only!) for a zmenu port or other hobbyist purposes, and then release the zmenu port. While I'm not able to provide legal advice here (check with your corporate folks), I would suspect that such usage would be within the requirements of the OpenVMS hobbyist license program.

Wim Van den Wyngaert
Honored Contributor

Re: DEC TPU Graphics Within MESSAGE() Function

You can switch the whole message window with
set (video , message_window, reverse)

Wim
Wim
Robert Atkinson
Respected Contributor

Re: DEC TPU Graphics Within MESSAGE() Function

Volker - as I don't have the resources or skills to port ZMENU to IA64, simply recompiling and ignoring any errors is not an option. As we use this utility on a Production system, I'm already on shaky ground, as it's obviously largely unsupported code.

Hoff - as explained above, I really don't have the required skills to start writing C code.

Robert Atkinson
Respected Contributor

Re: DEC TPU Graphics Within MESSAGE() Function

I finally came up with the attached TPU code, which seems to be a fairly good replication of the ZMENU/SCROLL functionality, with the advantage of more flexibility on the source list.

I have found a privilege 'feature' with it, but I'll start a new thread on that.

Hopefully this is something I can release to the Freeware CD's, once I'm completely happy with it.

Rob.