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

Conference hydra::amiga_v1

Title:AMIGA NOTES
Notice:Join us in the *NEW* conference - HYDRA::AMIGA_V2
Moderator:HYDRA::MOORE
Created:Sat Apr 26 1986
Last Modified:Wed Feb 05 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:5378
Total number of notes:38326

1428.0. "Amiga$FIND_IMAGE_SYMBOL?" by YIPPEE::GOULNIK (OogaboogaBox type) Thu May 19 1988 08:54

	I intend to add an external call interface to XLISP, well, as
	soon as I receive my C compiler. Anyway, is there an Amiga
	equivalent to VMS LIB$FIND_IMAGE_SYMBOL, which allows access
	to a library routine on the fly, or do I have to build a jump
	table with hardwired offsets?
Iv
T.RTitleUserPersonal
Name
DateLines
1428.1Common Lisp small and massiveAITG::WISNERDisconnect before disconnecting connecting connectorsThu May 19 1988 16:3221
    HOORAY!!!!!!!!!!!!!!!!!!!!  If you do this I'll be your biggest
    fan.  Want help??? 
    
    I fairly sure you can access library routines with their symbol
    names.  I'll look it up in the docs tonight.
    
    "This summer I startup my attempt to port Kyoto Common Lisp to the
    amiga.  It's a full Common Lisp with a compiler.  It compiles lisp
    functions to C, then calls your C compiler and linker.  I have to
    give it the capability of loading executable code dynamically. 
    Yikes!  I have the code for this for many systems (SUNS, PYRAMID,
    VAX, etc).  There are about 4meg of source files.  Most are lisp.
     You build a base system in C then load in the Lisp files, compile
    them, and save the full version.  A hard disk and a C compiler will
    be required to use the system, and probably 2meg of ram.  This is
    alot of fun."
    
    I think XLISP is great.  I used it for all my projects in the A.I.
    course and some math courses too.  I was wishing for graphics. 
    
    -Paul Wisner
1428.2oh really?COOKIE::WECKEROfficial DEC HouseplantThu May 19 1988 22:0910
re:	.1

a.	Where did you get it?
b.	How much?
c.	What sort of license?
d.	Is it on the E-NET?
e.	Can I get my paws on it?

dave

1428.3AITG::WISNERDisconnect before disconnecting connecting connectorsFri May 20 1988 20:407
    Sorry to have lead this topic off the subject of accessing functions
    in amiga libraries.
    
    re: .2  more info about KCL in note 1432.
    
    Haven't been home since yesterday.  So I haven't looked up the answer
    to your question.
1428.4OpenLibrary is it (sort of)TLE::RMEYERSRandy MeyersSun May 22 1988 02:5414
Re: .0

Yes and No.

Yes: The Amiga OpenLibrary function is equivalent to LIB$FIND_IMAGE_SYMBOL
in that it binds a library of code to the program dynamically at runtime.

No: Unlike LIB$FIND_IMAGE_SYMBOL, OpenLibrary does not find the address
to use for an entry point.  Instead, offsets off the library vector
are coded into the program.  Like VMS, Amiga Libraries have a transfer
vector associated with them.

See pages A-2 to A-4 of "Amiga ROM Kernel Reference Manual: Libraries and
Devices."
1428.5entry point tables?AITG::WISNERDisconnect before disconnecting connecting connectorsMon May 23 1988 21:0817
    
    I looked for a way to access a library routine without hardcoding
    it's vector offset into your program.  I didn't find anything built
    into the exec.
    
    
    ALTERNATE APPROACH:
    AmigaBASIC has .FDL files associated with each library.  I suspect
    the these files contain the vector offset for each routine name.
    You could create similiar entry point/routine name tables for your
    programs libraries.  To calculate the routines vector:
    
    			LibBase - &Routine()
    
    There must be a better way....   anyone?