Subject: Re: PMAGB-B Scrolling/Clearing
To: Greg A. Woods <woods@weird.com>
From: Chris G. Demetriou <cgd@sibyte.com>
List: port-pmax
Date: 07/21/2000 17:56:10
woods@weird.com (Greg A. Woods) writes:
> [ On , July 21, 2000 at 10:32:03 (-0700), Chris G. Demetriou wrote: ]
> > Subject: Re: PMAGB-B Scrolling/Clearing
> >
> > Uh, that's not a 'corresponding mechanism' by a long shot; it's
> > entirely different.  The sun console method does it via a an escape
> > code that can be issued to the terminal from software -- see the
> > source, or the manual pages from an old sun system (and maybe a
> > current one).
> 
> OK, so I'm still not sure what you're talking about here.  In a later
> message you clarify your memory of the "pixel-at-time" scroll mode,
> which is what I meant by scrolling "one scan line at a time".  Anyway
> let me blunder on here a bit....

Looks like the actual name of the sequence i was talking about is
SUNSCRL.  (I think i might have been calling it SUNWSCRL.)

Anyway, it's in the list you mention.



> There is an escape sequence on a standard original VT100 to enable (SM:
> ESC Ps;...;Ps h) or disable (RM: ESC [ Ps;...;Ps l) "smooth" scroll mode
> using the DECSCLM private mode (parameter value 4, with a "?" to trigger
> private mode interpretation), so "ESC ? 4 h" would turn on smooth
> scrolling and "ESC [ ? 4 l" would turn it off [no spaces]).

yup.  smooth scroll is different (though maybe it should be abused for
our purposes).


> The VT100 also supports the standard X3.64 method of setting of a
> scrolling region smaller than the total height of the display.  The
> region is only defined by start and stop lines, so entire lines are
> always scrolled.

this is different.


> Some point along the line various terminals started implementing
> multi-line scrolling.  This is standardised in ECMS-48 as "ESC [ Pn S"
> to scroll up and "ESC [ Pn T" to scroll down.  I don't know when/if any
> DEC terminals implemented these codes though.

as is this.


> The following document is pretty comprehensive and includes references:
> 
> ftp://ftp.chiark.greenend.org.uk/users/bjharris/all-escapes/all-escapes.txt

heh.  looks like this is 'our' (NetBSD/arm26) Ben Harris.



> Accelerated moves, or automatic "block scrolling" when data arrives
> faster than it can be scrolled, is definitely a "good idea".  This is
> indeed what the sun consoles do....  I'm pretty sure at least some newer
> DEC terminals do this too.  I'm not sure how you best implement it in a
> console driver -- perhaps by parsing the entire output buffer before
> drawing anything to see if its got lots of newlines or other scrolling
> sequences and if so to count them out and do one big scroll first.

I seem to recall that when i did the sun console emulation, I had a go
at doing 'block scroll' in that manner.  (the ability to do that is
also one of the reasons why i made the input rtns take multiple
characters, iirc.)

If i recall, it turned out to be ... more difficult than expected due
to the possibility of doing a 'block scroll' and possibly getting
kernel output which would potentially screw things up further.  (Also,
in order to do the parsing right, iirc, you've gotta run through all
of the characters and do escape checking ... you can't even just count
newlines.)



cgd