[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference noted::hackers_v1

Title:-={ H A C K E R S }=-
Notice:Write locked - see NOTED::HACKERS
Moderator:DIEHRD::MORRIS
Created:Thu Feb 20 1986
Last Modified:Mon Aug 03 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:680
Total number of notes:5456

598.0. "Are Multiple Sixel Sets possible on a VT220" by SMAUG::MENDEL (Pessimists Always Get Good News.) Fri Nov 13 1987 16:40

    I have a hacker's question about sixels.
    
    I am interested in keeping more than one sixel-set loaded into
    my VT220 at one time. 
    
    The only refs I have to go on is the VT220 Pocket Guide. Apparently,
    when you send the sequence to define the character set, you can
    specify a "DSCS", which I guess means downloadable software character
    set. You then specify the same dscs again in the Set character set sequence
    to invoke the character set. I am interpreting this to mean that
    multiple character sets can be defined, and then invoked individually.
    
    This doesn't seem to work for me. Am I just making a bad assumption?
    Or are there some tricks that I am missing?
                                            
    . . .
    
    For those of you who will inevitably ask for more specifics on what
    I did, 
    
    	I create one character set with dscs = "1".
    	My DCL prompt string invokes dscs "1" into G1, invokes G1 into
           GL, prints some characters, and restores G0 into GL.
    	Now my DCL prompt displays my created characters.
    
    	Then ...
    
    	I download a second character set with dscs = "I" 
    	I print some text by invoking dscs "I" into G2, and then 
            invoking G2 into GL, print some characters, and restore
            G0 into GL.
        The new sixel characters appear on my screen ok.
    	
    	But now my DCL prompt is trashed.
    
    
    Help?
    
    Thanx for any answers ...
    
    Kevin Mendel
                                
     
T.RTitleUserPersonal
Name
DateLines
598.1Only one active at a time (plus ascii)SNDCSL::SMITHWilliam P.N. (WOOKIE::) SmithFri Nov 13 1987 19:269
    You can have more than one DRCS in the terminal at one time, I beleive,
    but you can only have one at a time mapped into GR/GL.  That is
    to say, you can have one DRCS in GR and another in GL (I think),
    but then you have to figure out how to swap between them.  I'm not
    real clear on all this, you might want to try the real gurus in
    the terminals notes file.
    
    Willie
    
598.2RTFMCSSAUS::HUNTERMonkey with a diagnostic trackMon Nov 16 1987 00:0623
    From the VT220Z Programmers Reference Manual.
    
    Escape Sequence is:
    
    	DCS Pfn;Pcn;Pe;Pcms;Pw;Pt { Dscs Sxbp1;...Sxbpn ST
    
    Where:
    	DCS = (9/0) is the device control string introducer.
    	Pfn = Font Number
    	Pcn = Starting character number (from which character to start
    	      loading into)
    	Pe  = Erase Control. Selects which characters are erased before
    	      loading according to:
    		0 = erase all characters
    		1 = erase only the characters that are being reloaded
    		2 = erase all characters in all DRCS sets.
        ( I will bet that you have this parameter set to zero or ommitted
    	  and this is what is causing your trouble.)
    	.
    	.
    	.
    
    Warwick.
598.3clarificationSMAUG::MENDELPessimists Always Get Good News.Mon Nov 16 1987 14:5514
    You would lose the bet ... it's set to 1 (erase only those being
    loaded.) 
    
    Here is an analogy:
    
    DEC standard graphics characters (corners, T's, those things) can
    be printed on your terminal. When you swicth back to normal text,
    the graphics characters already on the screen are not changed. Any
    new characters are normal text, though.
                         
    
    How come when I swich to my_set#2, all characters from my_set#1
    *already*on*the*screen* are changed?
    
598.4It's supposed to work that way.SNDCSL::SMITHWilliam P.N. (WOOKIE::) SmithMon Nov 16 1987 21:3135
    I know the 'problem' you are having, and it's not something you
    can do anything about.  Take a look at P 56 in the VT-240 programmers
    reference manual if you have one handy. [Yes, I know you are talking
    about a VT-220, but it works the same way].
    
    You can only have 2 'invoked' character sets displayed on your terminal
    at one time, these are GL and GR (graphic left and right).  You can
    swap between them with SO and SI or setting the highbit of the
    character. 
    
    Each of these 2 'invoked' character sets can be mapped from a list
    of 'designated' character sets G0, G1, G2, G3.  Note that while
    you can have 4 'designated' character sets, you can still only display
    a maximum of two at one time.
    
    Each of the 'designated' character sets is in turn loaded from the
    'graphic repertory' of the terminal, including ROM fonts and downline
    loaded fonts.  Note that you can only have 4 of these mapped to
    'designated' character sets at any one time.
    
    For example:
    
    you have downloaded 2 soft fonts and 'designated' them into G1 and G2.
    G0 is still normal ASCII to give you text and such.  You 'invoke' soft
    font #1 [from G1] into GR and put some characters up on the screen. Now
    you want to display some characters on the screen from soft font #2, so
    you 'invoke' font #2 [from G2] into GR, _BUT_ as soon as you do, all
    the characters that are drawn from GR are changed, because G2 is
    now 'behind' GR and G1 is out of the picture.
    
    Does this help?  The terms in quotes ['designate','invoke', etc]
    are probably not the official DEC terms, but the manual is a bit
    unclear in this area, so I did what I could.
    
    Willie 
598.5Let's say it this way ...SMAUG::MENDELPessimists Always Get Good News.Tue Nov 17 1987 15:2725
    The problem is not with "invoking" sets - that I 'understand' (read
    as "know the magic sequences").
    
    It's keeping them on the screen afterwards that I cannot do.
    
    I can have, at one time, standard characters, graphics characters,
    and sixel characters, all displayed on my screen. _Simultaneously_.
    All were written there 'through' G0 and GL. 
    
    Because, when you change G0 or GL, things already on the screen
    don't (should not) change. 
    
    But when I add a second sixel set, the characeters of the first
    set (not the graphics or the standard characeters) already on the
    screen change. 
    
    I suspect that by defining the second sixel set, the first definition
    stored in the terminal's memory is wiped. 
    
    It's getting to be more of a problem talking about this stuff than
    anything else. Oh, well. 
    
    I'm still interested in any advice out there.
    
    Kevin
598.6VIDEO::LEICHTERJJerry LeichterTue Nov 24 1987 01:2815
Text terminals (and even graphics terminals, for text) don't store a bitmap
of the screen - they store each line as a series of encoded characters - more
or less as ASCII characters, though there are all sorts of extra bits to specify
things like character set, rendition, and so on.  To display a character, its
bitmap is located in the proper character set and sent to the screen.  This
happens each time the character is displayed - i.e., at every screen refresh,
or 60 times per second.

All the various "hard-wired" character sets are available all the time, indepen-
dent of whether they are designated or invoked.  There is ONE DRCS set:  A
character can be drawn from that one set, and whatever bitmap is currently in
character set will appear on the screen.  When you load a DRCS, you are changing
the actual bitmap.  The next time the screen is refreshed, the new bitmap will
become visible.
							-- Jerry
598.7Device Specific EffectSERPNT::GULDENSCHUHChuck GuldenschuhTue Nov 24 1987 11:2413
re .-1

I believe that the previous statement is true for the VTxxx series, but
it is a device dependency, not a requirement.  When I last looked at the
VSRM, it did not specify what happens to the screen when the DRCS is changed.
The PRO, for example, does NOT change the displayed characters, unless the
terminal subsystem needs to redisplay them (switching background from light
to dark, for example).

In short, don't depend upon one effect or the other.  You'll get burned
eventually.

/s/ Chuck
598.8SMAUG::MENDELPessimists Always Get Good News.Tue Nov 24 1987 14:5317
    Thanks, .6. That answers my question.
    
    Regardless of effect, I needed to know if two character sets can
    be loaded into a terminal at one time. They can't - the second
    over-rides the first. 
    
    Two questions, then: (just out of curiosity)
    
    1. What is the Font Number parameter (Pfn) in the down-load character
    set control sequence used for?
    
    2. What is the Dscs  parameter in the down-load character set and
    the Designating soft character set control sequences used for?
    
    Thanks, 
    
    Kevin
598.9CSSAUS::HUNTERMonkey with a diagnostic trackTue Nov 24 1987 19:3112
    From the VT220 programmers reference manual.
    
    Pfn		Font Number	Specifies the DRCS font buffer to be
    				loaded. The VT220 has only one DRCS
    				font buffer. This parameter has two
    				valid values: 0 and 1.
    
    Dscs defines the character set "name" for the soft font, and is
    used in the SCS (select character set) escape sequence.
    
    Warwick.