Subject: | |
From: | |
Reply To: | |
Date: | Wed, 25 Jan 1995 17:20:31 GMT |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
Chris Bartram ([log in to unmask]) wrote:
: In Rich Trapp <[log in to unmask]> writes:
: > Greetings all!
: > We're trying to document what versions of MPE/iX have TCP/IP avaiable.
: > I know it's bundled with ARPA services on MPE/iX 5.0. From there my
: > knowledge takes quite the nose dive. What previous versions of MPE had
: > ARPA or at least TCP/IP available as a purchased product? And, if you
: > can remember, what's the product numbers?
: The TCP/IP stack (aka LanLink) has been available since early MPE/V days. We
: have it running on various MPE/V machines as well as MPE/iX. Don't recall
: the product numbers, and it's impossible (programatically) to determine if
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: it's (LanLink) present
^^^^^^^^^^^^^^^^^^^^^^
Maybe it's not that impossible. I haven't got a system without networking
available to me but if some of you have, you can test this out further.
They way to do it programmatically is to try dynamically either load or
resolve a reference to a procedure/function that resides in nl.pub.sys
and is only present when networking is installed. As said, I haven't got
a system without networking but a relatively good guess is the presence
or lack of for any of the tcp_... arp... net... procedures in nl.pub.sys.
Another one that I would be tempted to suggest (but cannot test) would be
the version procedure for ARPA transport (the transport is "subsystem 3"
of hp3000 datacomm subsystems) - there's a procedure "subsys3vers". I would
be tempted to believe that this gets installed with ARPA transport (but
please don't count on it without testing on a system without networking).
To see what procedures are in nl.pub.sys you can use a simple debug command
or linkeditor - I prefer debug - example below:
:debug
DEBUG/iX B.30.45
HPDEBUG Intrinsic at: a.0096281c hxdebug+$144
$1 ($130) nmdebug > procl net@ nl.pub.sys
a.1487898 net_dict_vers
a.14478c3 net_glbl_vers
a.1434cdb net_map_vers
a.144792b net_ip_vers
a.1447993 net_ni_vers
a.1437227 netstatus
a.1437eff net_pd_vers
....
$2 ($130) nmdebug > procl @vers@ nl.pub.sys
a.a0ced4 acd_get_version
a.a0ceb8 ?acd_get_version
a.379034 scsi_cio_virtual_traverse
...
etc....
Here's a sample program you can use to check for the presence of any of
the nl.pub.sys routines real simply from pascal. I'm not sure about
other languages but given that MPE/iX OS is written in pascal with
system programming extensions ("modified pascal" -> "modcal") - maybe
you can have this little program converted to a function with a boolean
true/false return in your own rl or xl you can call it from any language...
-----------start sample source-----------
program check_nl(output);
var proc_in_nl :boolean;
{ Here you'll have to temporarily switch the compiler to allow system }
{ programming extensions to accept the external procedure declaration }
{ below. Once done, you can switch back to lower level. If you switch }
{ back to standard_level 'hp_pascal' you'll get a warning at compile }
{ time for the "addr" call, however, it still works. Using 'hp_modcal' }
{ gets you rid of the warning. }
$standard_level 'os_features'$
procedure subsys3vers option unresolved; external;
$standard_level 'hp_modcal'$
begin
{ the next call will resolve the address of the external procedure and }
{ if it returns non-nil, the procedure is in nl.pub.sys... }
proc_in_nl := (addr(subsys3vers) <> NIL);
if proc_in_nl then
writeln('procedure IS in nl.pub.sys')
else
writeln('procedure not in nl.pub.sys');
end.
-----------end sample source-----------
:-) Eero Laurila - HP CSY Networking lab, NS services.
|
|
|