Article View: comp.sys.amiga.tech
Article #11779CBM, Why did you make it so hard?
From: Glen Fullmer
Date: Mon, 13 Mar 1989 14:13
Date: Mon, 13 Mar 1989 14:13
45 lines
2666 bytes
2666 bytes
I have a friend that has ported a generic graphics package to the Amiga.
He is uses the Aztec C compiler, and I use the Lattice compiler. This means
that I cannot link my graphics program to his Aztec C graphics object library.
So he thought he would fix that and create a graphics Amiga-shared library
that anyone can call at run time. That was fine. After a number of weeks
trying to track down all that has been written about Amiga-shared libraries
(which is precious little) and "ripping off" as much public-domain code that
he could find, has written a single-user-at-a-time graphics library. I,
being as helpful as usual, suggested that a single-user-at-a-time graphics
library is not very useful, especially if one wants to write a generic
widowing system with his library (which I do). I suggested that he rewrite
his graphics library so that it is re-executable and reentrant (being the
helpful person that I am). Given that history, we have a number of questions:
1. Why didn't the developers of the C compilers agree on a common linkable
format?
2. How does one make a generic package, like his graphics package, both
reexecutable and reentrant? Does it require specific register allocation
via assembler programming? Or is there an easier way? A different
global hook that can be used to hang environments on?
3. How does one restore the environment, for example, after an interrupt?
4. Is making a package that must retain context both over the life of a
call and the life of the session different than "pure" residentable
code? If so, how are they different, and what are the coding
differences?
5. How did CBM do this for their libraries?
6. Why isn't it simpler?
Granted, a lot of this is probably very naive for some of you guys, but
where does one learn it? References?
Thanks, in advance, for your support.
--
_____ _ "For a successful technology, reality must take precedence"
{____/ // "over public relations, for Nature cannot be fooled."
\ // _ __Richard P. Feynman, Appendix F of Shuttle Disaster Report
{____/ </_</_/ / <_ {sun!sunburn | cadillac} !dover!fullmer
Technical Details
Message-ID:
<913@dover.uucp>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!oakhill!dover!fullmerShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!oakhill!dover!fullmer
From: fullmer@dover.uucp (Glen Fullmer)
Newsgroups: comp.sys.amiga.tech
Subject: CBM, Why did you make it so hard?
Keywords: Graphics Libraries, reentrancy
Message-ID: <913@dover.uucp>
Date: 13 Mar 89 14:13:56 GMT
Reply-To: fullmer@dover.UUCP (Glen Fullmer)
Organization: Motorola CAD Mesa, AZ {dover}
Lines: 45