HP3000-L Archives

April 1995, Week 2

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Stan Sieler <[log in to unmask]>
Reply To:
Stan Sieler <[log in to unmask]>
Date:
Sun, 9 Apr 1995 23:03:16 GMT
Content-Type:
text/plain
Parts/Attachments:
text/plain (95 lines)
Duane Percox ([log in to unmask]) wrote:
 
: 1. How does one know what AIF stuff is available?
 
Hmm... you could ask an HP Sales Rep. Ha!...no, seriously, you could
go to IPROF ... the AIF R&D team are always there (thanks HP!),
or ask the list (oops, you did :) ).
 
There are AIF "packages" for:
 
   1) OS info/control (AIF:OS)
 
   2) Measurement Interface (AIF:MI)
 
   3) Procedure Exits (AIF:PE)
 
The manual part# for AIF:OS is 36374-90001.  AIF:OS lets you access
and/or modify: system wide info, accounting info, file info (both
"global" and "local" (process-local)), job/session info, process info,
reply info, spooler info, system configuration info, and device info.
 
The AIF:PE lets you intercept intrinsics, and a number of interesting
routines within the operating system (including within the Command
Interpreter).
 
AIF:MI lets you silently eat 5 to 40% of your computer.  :)
(I've never used AIF:MI, but base my statements on *easily* reproducible
experiments that I've published over the last year or so.)
(BTW, it's not AIF:MI's fault, I think, but the MI itself.)
 
If I recall correctly, AIF:OS is inexpensive, AIF:MI is expensive,
and I don't remember about AIF:PE.
 
I highly recommend all the AIFs!
 
: 2. Are AIF instrinsics on every HP system so I can distribute
: an application to a target system without worry?
 
yes.  The intrinsic declaration files probably aren't...I believe
they come when you purchase the product ... but they aren't needed
at run time, just compile time.
 
Note: some older releases don't have all of the AIF:xxx procedures,
and (of course), really old releases don't have any of them.
Also, as with any code, bugs are fixed over time, and new bugs are
introduced at times.
 
: 3. Do I have to buy a developers kit to learn how to call these
: AIF routines?
 
no...you have to buy the AIF:xxx product, not a separate "developers
kit".    (or, yes: the "kit" is the AIF:xxx product)
 
(There isn't a separate "Developers Kit" that I know of for MPE/iX,
unlike HP-UX.)
 
: 4. Assuming 3 is yes, is it technically possible to call the
: AIF routines without having such a kit if you happened to know
: the calling parameters?
 
yes.
 
** Plug alert **
 
In the case of AIF:PE, even if you purchase everything from HP,
it would still be difficult to write a correct intercept for most
intrinsics...because the parameter location information (needed
to write an intercept) for the intrinsics is not fully documented
anywhere.
 
However, the CSEQ (Calling SEQuence) Nugget,  (available from us :) ),
produces this information quite easily.  For example, if you
want to intercept the ASCII intrinsic, here's what CSEQ would tell
you about its parameters:
 
Function ASCII (
   word         :        UInt16  ;        {PA-$0002}
                                          {PA-$0004, #bits = 16 FILLER}
   base         :        int16   ;        {PA-$0006}
                                          {PA-$0008, #bits = 16 FILLER}
   string       : anyvar record  )        {PA-$000c}
      := #chars : int16     {R28}
   {Bases: 10, 8, -10, and (MPE XL) base 16                            }
   {Note: bases 8 & 16 return wrong # of characters!                   }
   {Note: -10 moves backwards.                                         }
 
The "PA-..." comments are the key ones here: they tell you where the
ASCII parameters are located when you are in an ASCII-intercept routine.
(The AIF:PE passes your intercept routine an address called the
"parameter address", which points to the first byte AFTER the parameters
in memory, so you must add negative offsets to get to the actual
parameters.)
 
Stan Sieler

ATOM RSS1 RSS2