Jump to content


Click the link below to see the new game I'm developing!


Photo
- - - - -

Obscure question from the distant past


7 replies to this topic

#1 Richard Bassett

Richard Bassett

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 707 posts
  • Gender:Not Telling
  • Location:Rural France

Posted 08 April 2010 - 05:55 PM

Once, long long ago, ProIV did not have "CRT display update optimization".. this optimization was introduced at some point so that characters on the screen that had in principle been overwritten but which had not actually changed did not have to be sent (repainted) when the screen was 'refreshed'..

Simple concrete example, you start ProIV and run a function called 'FUNCTION', ProIV will send the 8 characters 'FUNCTION' to the actual terminal (emulator), addressed to line 1 column 73, and they will appear in the top right corner of the screen. Now if you link to a function called 'GUMPTION', ProIV will only send the 4 characters 'GUMP' to line 1 column 73 because the 'TION' bit is already on the screen and doesn't need to change.

All good to reduce traffic in the last century when we had slow comms and real green-screen terminals. However, not so good when you're running background jobs on a server and this stuff is being sprayed into a logfile and you'd ideally like to easily see which functions are running..

So.. does anyone know if there is a way to turn this optimization off so that ProIV would paint the screen the simple way it did in version 1.5 or whatever..?
Nothing's as simple as you think

#2 Richard Bassett

Richard Bassett

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 707 posts
  • Gender:Not Telling
  • Location:Rural France

Posted 08 April 2010 - 05:58 PM

> ProIV will send the 8 characters 'FUNCTION' to the actual terminal (emulator), addressed to line 1 column 73, and they will appear in the top right corner of the screen

Uh.. OK.. probably it will only send 'FUNCTI' because the 'ON' is already there from the LOGON function.. but you get my point.
Way to pick a bad example.
Nothing's as simple as you think

#3 Chris Mackenzie

Chris Mackenzie

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 372 posts
  • Gender:Male
  • Location:Bristol, United Kingdom

Posted 08 April 2010 - 07:57 PM

Sorry I don't know.

But WTF? Maybe you could put your own specific log messages to your own logfile into your background jobs?
Or enable a minimal trace. Or something.



http://thedailywtf.com/
--
you'll have to excuse me it's late and I've been drinking
The content and views expressed in this message are those
of the poster and do not represent those of any organisation.

#4 Richard Bassett

Richard Bassett

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 707 posts
  • Gender:Not Telling
  • Location:Rural France

Posted 09 April 2010 - 07:02 AM

Yeah, all those things are done in places, but not universally and it's a large system. I was just looking for simple things I might be able to do restrospectively to improve matters universally.

Trace was something I was wondering about, what do you consider 'minimal trace'.

Edited by Richard Bassett, 09 April 2010 - 07:02 AM.

Nothing's as simple as you think

#5 Richard Bassett

Richard Bassett

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 707 posts
  • Gender:Not Telling
  • Location:Rural France

Posted 09 April 2010 - 01:16 PM

Sigh.

So, just for anyone who's following this obscure thread..

Minimal ProIV trace looks like it would be quite useful in this context. It can certainly show the function names that run. And you can just about get the trace written to the same file as the regular ProIV output (so you can correlate it with application messages etc.)

However, for some reason ProIV won't write its trace output to a pipe, only to a plain old file. So where the output has to be piped to a logging system for cleaning, filtering, raising alerts etc. it can't be made to work (as far as I can see).

I'd guess it might be a pretty trivial kernel change to fix that if anyone from ProIV is reading this :lol:
Nothing's as simple as you think

#6 Chris Mackenzie

Chris Mackenzie

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 372 posts
  • Gender:Male
  • Location:Bristol, United Kingdom

Posted 26 April 2010 - 07:33 AM

Isn't unix wonderful?

#!/bin/bash
tail -f p4trace.txt

#i hate windows
The content and views expressed in this message are those
of the poster and do not represent those of any organisation.

#7 Cleve Haynes

Cleve Haynes

    Expert

  • Members
  • PipPipPipPip
  • 172 posts
  • Gender:Male

Posted 03 May 2010 - 06:06 AM

Hi Richard

Yes, it is semi-possible & I'm surprised you didn't notice it when you were working with us... :lol:

By setting up a specific terminal type in PROIV, you can force the type of tracing you are talking about.

All our background jobs start with:

PROTERM=LOGCRT;export PROTERM

LOGCRT is defined in $CRT like this:

[codebox]
Change @PRO4S14
03/05/10 Terminal Characteristics Attributes Definition NTL/C43/PTS_145
CRT Id: LOGCRT Desc: Log PRO Session to ASCII file Page 1 of 3

Characteristics Cursor Control Control Characters
--------------- ------------------------- ------------------
CRT Length: 19 Cursor Address Type: 04 Clr CRT: 20
CRT Width: 50 Cursor Address1: 200A Clr Line: 20
Attach Prtr: Cursor Address2: 20 Bell: 20
Detach Prtr: Atr Type: 4 Clr Type: 4 Bckspc: 20
V I D E O A T T R I B U T E S Erase:
---Attributes--- --------------Colors--------------
Blink: Foreground Background
Underline: Black:
Reverse: Blue:
Bold: Green:
Hidden: Cyan:
Normal: Red:
Atr Prefix: Magenta:
Atr Postfix: Brown:
Merge Atr Codes?: White:
Atr Occupy Space?: Color Prefix: Color Postfix:
Background Colors?: N Next Screen?:
DESCRIPTION OF CRT (38 CHARS. MAX.)
[/codebox]

You end up with a few blank lines between function names, but it's better than nothing.

Cheers,

Cleve

#8 Richard Bassett

Richard Bassett

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 707 posts
  • Gender:Not Telling
  • Location:Rural France

Posted 03 May 2010 - 08:22 AM

Hey Cleve! Actually I never noticed that in KK but we're doing the same thing essentially:

[codebox]
04/08/10 Terminal Characteristics Attributes Definition WSS/WSS/PTS_TA
CRT ID: TELETYPE DESC: Minimal definition for plain text PAGE 1 OF 3
CHARACTERISTICS CURSOR CONTROL CONTROL CHARACTERS
--------------- ------------------------- ------------------
CRT LENGTH: 18 CURSOR ADDRESS TYPE: 03 CLR CRT: 0A4028434C5229
CRT WIDTH: 50 CURSOR ADDRESS1: 0A4028 CLR LINE: 20
ATTACH PRTR: CURSOR ADDRESS2: 2C29 BELL: 20
DETACH PRTR: ATR TYPE: CLR TYPE: BCKSPC: 20
[/codebox]

That gives output like this:

[codebox]
@(1,1)
@(CLR)
@(1,1)
@(1,75)LOGON
@(1,80)
@(1,80)
@(1,75)@MAI
@(1,80)
@(1,1)
@(CLR)
@(1,2)ENTER SELECTION:
@(1,75)@MAIN
@(2,2)04/08/10
@(2,33)PROIV MAIN MENU
[/codebox]

Unfortunately, this doesn't make any difference to the screen optimisation I'm actually asking about (ProIV doesn't know it's not still painting positionally on a character cell matrix hence the @MAI in the 7th line). So running a sequence of updates with similarities in their names, the function names are unusable for any kind of searching etc.
Nothing's as simple as you think



Reply to this topic



  


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Click the link below to see the new game I'm developing!