From: Aric.Caley@ofa123.fidonet.org
Newsgroups: comp.sys.amiga.programmer
Subject: Re: ASL and GadTools und
X-Sender: newtout 0.02 Nov 17 1992
Date: 29 Dec 92  00:48:04

> Organization: W. J. Vermillion - Winter Park, FL
> From: alex@bilver.uucp (Alex Matulich)
> Message-ID: <1992Dec28.032315.6457@bilver.uucp>
> Newsgroups: comp.sys.amiga.programmer
>
> Hello.  I have an idea about how it might be possible to write software
> for AmigaDOS 2.04, that uses 2.0-specific features, and yet still runs
> under 1.3, with the same features!.  Someone please tell me if this will
> work.  (I'm new to 2.0).
>
> Specifically, my application must use many gadgets, of different kinds.
> The task of writing this program in a 1.3-compatible way is much too
> daunting for me, and I would MUCH rather use the gadtools.library.  I will
> also be using the ASL library for a file requester.
>
> Neither of these libraries are available under 1.3.  BUT... tell me if
> these workarounds will actually work.
>
> ASL.library
> -!---------
> This is actually disk-based, so I assume that by merely having the
> asl.library file in the LIBS: directory, a 1.3 user can use this library.
> The only problem is that I suspect the ASL library makes calls into the
> gadtools library....

asl.library wont work under 1.3, as it does call 2.0 functions.

However,  you can use ReqTools.library instead which has some very fine (if
not  better)  requesters,  and  has  versions both for 1.3 and 2.0.  Highly
recomended.

> gadtools.library
> -!--------------
> This is in ROM.  My proposal is to link this library at compile time.
> I notice that if I use the pragma include files, the linker (SAS 5.10b)
> will NEVER link amiga.lib.  If I leave out the pragmas, it gets linked in.
> Upon using OML to list the contents of amiga.lib, I notice that it
> contains all Amiga functions, including the gadtools.library functions!
>
> This would imply that amiga.lib contains duplicates of the 2.0 ROM
> functions, and linking it with my software would make my software bigger,
> but the extra baggage would be all the 2.0 stuff it needs to run in a 1.3
> environment.  I would, of course, provide in my package a "real" 2.0
> program without the baggage; the fat prongram would be for 1.3 only.

No.   Those  functions  are  "stubs"  or "glue routines" - they serve as an
interface  between  C  and the actual OS functions.  Basicly, they take the
C-style arguments off the stack and stick them in registers.  SAS/C doesn't
need  to use these stubs, because the pragmas tell the compiler to generate
"inline"  calls  to  Amiga  library functions - thus making things smaller,
faster,  and more easily optimizable.  The point is, those arent the actual
functions, so your idea wouldn't work - unfortunately..

> Will this work?  My 1.3 beta testers are clamoring to keep my software
> compatible with 1.3.  But I dearly want to use GadToolsBox to design my
> user interface, which works only in 2.0.

The  only  solution  I  see is to create a gadtools-like library (linkable,
and/or  system  shared  library)  that  works under 1.3.  This is what I am
doing,  right  now.   I  have  looked at gadtools examples, and studied the
functions  -  and  I  don't like gadtools very much, except that its really
easy to use.  Not to brag, but, I intend for my routines to be much better.
I've  already  got  the menu creation routines down (had those written many
years  ago,  in fact), and am now working on other standard objects (scroll
lists,  and  scrollable  bitmaps  [which  gadtools doesnt have..] are first
priority).   This  project  (dubbed  "IntuiTools" - hope nobody's used that
name  :)  is an offshoot of my main project - an interface builder, which I
dare  say is much better than anything I have yet seen (except that it does
not use 2.0 goodies... yet).

> Thanks in advance for any replies.  PLEASE shoot down my suggestions, and
> make your own!  This has got to be possible somehow.
>
> --
> _ |__  Alex Matulich    alex.matulich@oau.org
> /(+__>  Unicorn Research Corp, 4621 N Landmark Dr, Orlando, FL 32817
> //| \     UUCP:  alex@bilver.uucp   {peora|ge-dab|uunet!tous}!bilver!alex
> ///__)     Internet:  alex@bilver.oau.org | alex%bilver@peora.sdc.ccur.com

 -Dances With Coyotes - World's slowest programer-Given that God is infinate-
 -AKA Dances V2.0, Coyote, Critter, Magnet, Major-and  that  the universe is-
 -- Former Net-Lurker - YES, an AMIGA godammit! --also  infinate,  would you-
 --- Still limping along with AmigaOS 1.3  :(  ---like a toasted  tea  cake?-


--- Maximus 2.01wb