[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