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

Conference bulova::decw_jan-89_to_nov-90

Title:DECWINDOWS 26-JAN-89 to 29-NOV-90
Notice:See 1639.0 for VMS V5.3 kit; 2043.0 for 5.4 IFT kit
Moderator:STAR::VATNE
Created:Mon Oct 30 1989
Last Modified:Mon Dec 31 1990
Last Successful Update:Fri Jun 06 1997
Number of topics:3726
Total number of notes:19516

166.0. "Sedt problem with DECterm" by BOHR::CASSONE (Dom Cassone MRO4-3/C17 DTN 297-3038) Thu Feb 09 1989 13:37

    	This is really Anker Berg-Sonne.
    
    	I have a serious problem with DECterm from Sedt. 
    
    	If it doesn't recognize the terminal type as provided by the VAX C 
    RTL it sends a CSI C sequence and then reads the response to figure out 
    what the terminal is.
    
    		The current VAC C RTL doesn't know about VT300 series so it
    returns unknown and I send the CSI c. The problem is that the QIO I
    Issue to read the response doesn't return unless a ^C is typed! Then
    everything works as it should. There is no problem when Sedt is started
    from a real VT320, so the problem has something to do with
    VMS/DECwindows/DECterm.
    
    Help!
    
    Thanks/Anker

T.RTitleUserPersonal
Name
DateLines
166.1KONING::KONINGNI1D @FN42eqThu Feb 09 1989 15:005
Sounds like a program bug.  Maybe the buffer is too short?  The reply
from CSI c is pretty long on a DECterm, but it's syntactically correct.

	paul

166.2Please show me what I have done wrong!CURIE::ANKERAnker Berg-SonneThu Feb 09 1989 16:46229
        Re:< Note 166.1 by KONING::KONING "NI1D @FN42eq" >

                The buffer  is LONG.  The following program works fine on
        VMS versions earlier than 5.1 and on real terminals, but hangs on
        DECterm.  The problem  is  that  the  QIO  doesn't  complete even
        though  the complete escape sequence  has  been  input.    What's
        really interesting is that shortening the  length  from  100 to 1
        doesn't change anything. It still hangs!
        
C program:

char C, T[100];

main()
{T$Init();
 T$Put("\033[c",3);
 T$Startone(T,100);
 T$Get();
 T$Cancel();
}

Print_Mess()
{
}

Macro Routines:
        
	.TITLE Terminal IO routines for SEDT

	$IODEF
	$SSDEF
	$TTDEF
	$TT2DEF
	$MSGDEF
	
	MBXBUFLEN = 1024
	
IN_DESC:
	.ASCID /SYS$INPUT/
IN_CHAN:
	.WORD 0
OUT_DESC:
	.ASCID /SYS$OUTPUT/
OUT_CHAN:
	.WORD 0
IN_BUF:
	.BLKB 20
IN_BUFLEN=.-IN_BUF
IN_STATUS:
	.WORD 0
	.WORD 0
IN_IOSB:
	.BLKQ 1
OLDMODES::
	.LONG 0
	.LONG 0
        .LONG 0
	OLDLINES=OLDMODES+2
	OLDCOLS=OLDMODES+7
NEWMODES::
	.LONG 0
	.LONG 0
	.LONG 0

ONEMASK::
	.LONG ONEBUF
ONEBUF:
	.LONG ^D32
	.LONG ONEBITS
ONEBITS:
	.LONG ^XFFFFFFFF
	.LONG ^XFFFFFFFF
	.LONG ^XFFFFFFFF
	.LONG ^XFFFFFFFF
	.LONG ^XFFFFFFFF
	.LONG ^XFFFFFFFF
	.LONG ^XFFFFFFFF
	.LONG ^XFFFFFFFF
MANYMASK::
	.LONG MANYBUF
MANYBUF:
	.LONG ^D32
	.LONG MANYBITS
MANYBITS:
	.LONG ^XFFFFFFFF
	.LONG ^X00000000
	.LONG ^X00000000
	.LONG ^X80000000
	.LONG ^XFFFFFFFF
	.LONG ^X00000000
	.LONG ^X00000000
	.LONG ^X00000000
GOT_CHAR::
	.LONG 0
COUNT_BUFFER::
	.WORD 0
	.WORD 0
	.LONG 0

MBX_NAME:
	.ASCID /SEDT$TT_MBX/
MBX_CHAN:
	.WORD 0
MBXBUF::.BLKB 20
MBXMSGLEN::
	.BLKW
MBXMSG::
	.BLKB MBXBUFLEN-22
MBX_IOSB:
	.BLKQ 1

T$INIT::

;Assign the terminal channel, read the terminal modes and clear half duplex
;	and line wrap

	.WORD 0
	$CREMBX_S	CHAN=MBX_CHAN,LOGNAM=MBX_NAME,MAXMSG=#MBXBUFLEN,-
			BUFQUO=#<MBXBUFLEN*10>
	$ASSIGN_S	DEVNAM=IN_DESC,CHAN=IN_CHAN,MBXNAM=MBX_NAME
	$QIO_S		CHAN=MBX_CHAN,ASTADR=MESSAGEAST,-
			FUNC=#IO$_READVBLK,-
			IOSB=MBX_IOSB,P1=MBXBUF,P2=#MBXBUFLEN
	$ASSIGN_S	DEVNAM=OUT_DESC,CHAN=OUT_CHAN
	$QIOW_S		CHAN=OUT_CHAN,FUNC=#IO$_SENSEMODE,P1=OLDMODES,P2=#12
	MOVQ OLDMODES,NEWMODES
	MOVL OLDMODES+8,NEWMODES+8
	BICL		#<TT$M_HALFDUP!TT$M_WRAP>,4+NEWMODES
	BISL		#<TT$M_EIGHTBIT!TT$M_NOBRDCST>,4+NEWMODES
        BICL 		#<TT2$M_EDITING>,8+NEWMODES
	BISL		#<TT2$M_BRDCSTMBX>,8+NEWMODES
 	$QIOW_S		CHAN=OUT_CHAN,FUNC=#IO$_SETMODE,P1=NEWMODES,P2=#12
	RET

MESSAGEAST::
	.WORD	0
	blbc		mbx_iosb,20$		;read error, abort
	cmpw		mbxbuf,#msg$_trmbrdcst	;requeue if not broadcast
	bneq		10$
	movzwl		mbxmsglen,r0
	clrb		L^mbxmsg(r0)		;terminate message with null
;
;	call processing routine here
;		short int mbxmsglen contians length of message
;		char mbxmsg contains text of message
;
	CALLS		#0,g^PRINT_MESS
10$:	$QIO_S		CHAN=MBX_CHAN,FUNC=#IO$_READVBLK,astadr=messageast,-
			IOSB=MBX_IOSB,P1=MBXBUF,P2=#MBXBUFLEN
20$:	RET
	
MBXMSGADR::
	.WORD	0
	movl		#MBXMSG,R0
	RET

T$APPLICATION::

;Return 1 if the VMS application mode is on

        .WORD 0
        BITL #TT2$M_APP_KEYPAD,8+OLDMODES
        BNEQ MODEON
        MOVL #0,R0
        RET
MODEON: MOVL #1,R0
        RET
	
T$GETSIZE::
	.WORD 0
	MOVW	OLDLINES,@8(AP)
	MOVB	OLDCOLS,@4(AP)
	RET
        
T$STARTONE::

;Start an input QIO for a single character or escape sequence

	.WORD 0
	MOVB #0,Got_Char
	$CLREF_S	EFN=#3
	$QIO_S		CHAN=IN_CHAN,EFN=#3,ASTADR=READAST,-
			FUNC=#IO$_READVBLK!IO$M_TRMNOECHO!IO$M_NOFILTR!IO$M_ESCAPE,-
			IOSB=IN_STATUS,P1=@4(AP),P2=8(AP),P4=ONEMASK
	RET

READAST::

;AST for read completed. Set the flag so that the application knows

	.WORD 0
	MOVB #1,Got_Char
	RET

T$GET::

;Get the number of characters read in the last input

	.WORD ^M<R2>
	$WAITFR_S	EFN=#3
	MOVZWL		IN_STATUS+2,R0
	TSTB		IN_STATUS+6
	BEQL		$1
	ADDW		IN_STATUS+6,R0
$1:	RET

T$CANCEL::

;Cancel the QIO on the terminal channel

	.WORD 0
	$CANCEL_S	CHAN=IN_CHAN
	$QIOW_S		CHAN=IN_CHAN,FUNC=#IO$_SETMODE,P1=OLDMODES,P2=#12
	$DASSGN_S	CHAN=IN_CHAN
	$CANCEL_S	CHAN=MBX_CHAN
	$DASSGN_S	CHAN=MBX_CHAN
	RET

T$PUT::

;Write output to the terminal

	.WORD 0
	$QIOW_S		CHAN=OUT_CHAN,FUNC=#IO$_WRITEVBLK!IO$M_NOFORMAT,-
			P1=@4(AP),P2=8(AP)
	RET

.END

166.3Gimme a name!CURIE::ANKERAnker Berg-SonneFri Feb 10 1989 11:269
        Re:< Note 166.2 by CURIE::ANKER "Anker Berg-Sonne" >

                Please tell  me  who  to work this issue with.  There are
        literally thousands of  users  of Sedt inside and outside DEC who
        eventually will be affected by  this problem.  At the moment I am
        stuck and can't get any further.
        
        Anker

166.4So much for asking for helpCURIE::ANKERAnker Berg-SonneFri Feb 10 1989 17:2519
                Well, thank  you  SO  much  for  all the help I have been
        given.
        
                Now that I  have  found  the  bug, which indeed is in VMS
        V5.1, AND which is  not  isolated  to  DECterm,  I'll  be just as
        helpful to you and tell you zippo.
        
                I am really disappointed.  I  know  a  bunch  of  VMS and
        DECwindows gurus track this notesfile and not one of you made any
        attempt to help.  In all the other  conferences  that  I  track a
        request for help is answered immediatly.
        
                I guess there's a lot of truth to what I hear.
        
        Thank  you and don't bother to reply to this  note,  because  I'm
        deleting it from my conference.
        
        Anker

166.5Just my 2 cents worth....CURIUM::GABRIELCMP/ISV DECwindows Tech SupportFri Feb 10 1989 21:2539
    
    RE: -1
    
    If you're not gonna read this, then I guess it's OK to flame at
    you.
    
    SET FLAME/ON
    
    First of all, it seems as though your problem was in DECterm and
    not in DECwindows in general.  I would have posted the questions
    to the DECterm notesfile as posted in note 2.*.
    
    Secondly, I don't think your previous note was really called for.
    Did it ever strike you that maybe NOBODY had even seen this type
    of problem before, hence the lack of replies ??? As it turned out,
    DECwindows was not at fault (according to your reply) and it was
    in fact VMS.  I am sure that conference is more active because VMS
    is, right now, used/recognized by more people.  I am sure that is
    going to change as DECwindows becomes more "popular".  
    
    Thirdly, it is not the scope of this confernce to fix/report bugs.
     There is a QAR system for that and this conference is for
    informational purpose, mostly.  It may answer/solvee known bugs,
    but the correct way to report a bug is by filing a QAR.
    
    
	SET FLAME/OFF
    
    I have used this conference numerous times to solved problems/issues
    that I have had and find it a   And with one less person monitoring
    this conference, it makes it that much easier to access it :-)
    
    
   +Joe_who_is_surprised_that_no_one_else_has_responded_yet+
        
    and would be lost without it.
    
    

166.6LESLIE::LESLIEPhase what?Fri Feb 10 1989 21:3612
    re :-1
    
    Its awful when you are tired and desperate and rying to discover what
    the matter is. Sometimes you get so fed up you overreact.
    
    So, I think your flame is a trifle inappropriate. Two wrongs don't make
    a right.
    
    Pax, eh?
    
    Andy

166.7MU::PORTERExiled in CyberiaSun Feb 12 1989 20:289
    But don't you think that having a screaming fit about "being ignored"
    is a little inappropriate when only 18 hours has elapsed since your
    last "help me" note?   (That's an anonymous "you", not directed at Andy
    Leslie).  In fact the time between help and scream was only 4 hours
    when measured in East-Coast-USA prime time.  People like to help, but
    it doesn't do anyone any good when you throw a little temper tantrum if
    those that know the answer happen to be busy that day, or off-site,
    or (heresy!) didn't read the notesfile that day?

166.8LESLIE::LESLIEPhase what?Mon Feb 13 1989 06:405
    I'm not about to defend the indefensible, but I was pointing out
    mitigating circumstances....
    
    Andy