[Info-vax] Reverse telnet to a terminal emulator?

Snowshoe no at spam.please
Tue Jul 19 21:12:42 EDT 2011


On 7/19/2011 8:05 PM, VAXman- @SendSpamHere.ORG wrote:
> In article<j050dd$fh5$1 at speranza.aioe.org>, Snowshoe<no at spam.please>  writes:
>> On 7/19/2011 5:08 PM, VAXman- @SendSpamHere.ORG wrote:
>>> In article<j04nl8$q39$1 at speranza.aioe.org>, Snowshoe<no at spam.please>   writes:
>>>> I have done this in the past, sort of. (swiped
>>>> SYS$EXAMPLES:ALPHA_LOGGER.C and changed the non-pseudoterminal portion)
>>>>    The pseudoterminal part is actually strange code if you have to tamper
>>>> with it, but I didn't.
>>>
>>> What's so strange about it?
>>
>> [snip code]
>>
>> The buffers must be in that specially allocated memory which must be
>> page aligned, your data can't be just anywhere. (I got bit by this when
>> one of my changes meant the PTD side tried to access memory outside its
>> special area, and it failed. I had to add an extra copy of my data to
>> its special area)
>
> It does not need to be page aligned.  Your buffers must come from the
> memory allocated and assigned to the pseudo-terminal in the PTD$CREATE.

I recall it being required to be page aligned in the VAX days.  Maybe 
that changed.  With $QIO, my buffers can be anywhere I want.

> I'd just divvy up the allocated region and put chunks on a queue that
> you can allocate and deallocate buffers from.  A piece of cake with a
> INSQxx and REMQxx in Macro.
>
>
>> I/O to a device that doesn't use $QIO. That's kind of weird for VMS.
>
> Your code will issue $QIOs to the FTAx device.  That's not that weird
> for VMS.

I meant for the non-terminal end.  If you'll recall with the TW/PY pair, 
the TW end was a normal terminal which used normal terminal driver 
$QIOs, and you issued $QIOs to get the data to/from the emulator end 
(PYxx: ).  The program writes to its TW terminal, you do a $QIO read 
from the corresponding PYxx: to get the data.
With the FT driver, you have this odd set of parallel services to do the 
emulator.

> The PTD$READ is really simple.  You get handed the data that was seen
> at the FTAx device in an AST.  Read the buffer.  Simple.

As simple as $QIO READVBLK on PYxx:, except the funky buffer.

>> I've also tinkered with the TW/PY pseudoterminal pair, long long ago.
>> The PY end used standard QIOs. Want to see what the application just
>> wrote to the terminal? Just $QIO READVBLK to the PY device.
>
> As did I.  The TW/PY pseudo-terminal worked but was much more effort.

I found TW/PY easier.

>> Not super-strange, just not what I expect from VMS.
>
> You don't expect ASTs?

I expect to be able to put my buffers where I want.

I don't expect a set of parallel routines:

PTD$READ instead of $QIO READVBLK
PTD$WRITE instead of $QIO WRITEVBLK
PTD$CANCEL instead of SYS$CANCEL
PTD$SET_EVENT_AST instead of $QIO SETMODE or something.
etc.

None of these are earth-shattering, it's just not what I'm used to 
seeing coming from VMS Engineering.

The example code in SYS$EXAMPLES (and your code) calls the PTD handle a 
"channel". It's a short int, like a real VMS channel. I'll have to poke 
around in SDA to see if it really is a standard VMS channel (and if so, 
to what).




More information about the Info-vax mailing list