[net.micro.atari16] Accessories

SOFPJF@UOGUELPH.BITNET (Peter Jaspers-Fayer) (09/10/86)

In Message-Id: <8609091627.AA21723@ames-nas.ARPA>
on 09 Sep 86 09:27:35 PDT (Tue), fouts@AMES-NAS.ARPA writes:
> There also appears to be no way to unload a loaded desk accessory,
> other than changing the .ACC to something and rebooting.

This has been a sore point with me for some time.  ExcUuUse me, but
WHY NOT!?  It seems to me that someone asked this several months ago
and the reply was something like "it's too difficult" or something.

How about it gang, is it feasible to write an accessory loader/unloader?
Has it been done?  Could anyone upload it if they have written it?  Huh,
With such a beast, desk accessories could even become useful!

FISCHER-MICHAEL@YALE.ARPA (09/12/86)

    This has been a sore point with me for some time.  ExcUuUse me, but
    WHY NOT!?  It seems to me that someone asked this several months ago
    and the reply was something like "it's too difficult" or something.

Yes, there's something called "memory fragmentation".  There shouldn't
in principle be any difficulty in zapping an accessory, but what is the
point except to recover the memory it was occupying?  But that memory is
a little block somewhere that is most likely not contiguous with the
rest of free memory since there are likely other desk accessories in the
way.  To make effective use of that memory, you either need address
mapping hardware (which the ST does not have) or you need a memory
allocation strategy that is able to make use of fragmented memory or you
need a way to move active processes so that you can coalesce the unused
blocks of memory.  Moving processes is dangerous, for they might have a
copy of their own or other processes' base page address tucked away in
storage somewhere.  One MIGHT be able to get DOS to know about the block
of memory freed up by a removed desk accessory so that at least Malloc
could use it, but that probably would not help most programs.  Your best
bet would be to load another smaller desk accessory into the same slot.

--Mike Fischer
  <fischer@yale.arpa>
-------

demillo@uwmacc.UUCP (Rob DeMillo) (09/12/86)

In article <8609120244.AA12469@ucbvax.Berkeley.EDU> <FISCHER-MICHAEL@YALE.ARPA> writes:
>
>Yes, there's something called "memory fragmentation".  There shouldn't
>in principle be any difficulty in zapping an accessory, but what is the
>point except to recover the memory it was occupying?  
>
>--Mike Fischer
>  <fischer@yale.arpa>

Although I don't have the program, it was my understanding that 
THUNDER! from Batteries Included does exactly this. It is loaded
as a desk accessory, and as such takes up 100K. However, it can, at
any time, be "released" --- and the 100K that it took up is returned
to you...without rebooting.

There seem to be ways to do everything...awhile back there was a 
discussion about whether or not it was possible to successfully
switch resolutions from within a program. Most netters said there was
not a chance that this could be done, or, at best, that it caused 
severe side effects...It can, however, be done...there are many programs
on the market that do just that: switch from one resolution to another...
and I have never observed any bad side effects. On the other side of the
coin, I have not been able to do this without side effects - but just because
I can't do something doesn't mean it can't be done...


-- 
                           --- Rob DeMillo 
                               Madison Academic Computer Center

	usenet: {ihnp4,harvard,seismo,topaz,decvax}!uwvax!uwmacc!demillo
	ARPA:   demillo@unix.macc.wisc.edu    (now isn't that easier?)

		----------------------------------------
	"I am not so sure
	 what you want me for!			'War Games'
	 Either your machine is a 		   - Crosby, Stills and Nash
	 fool, or me..."

robt@molihp.UUCP (Robert L Thurlow) (09/15/86)

In article <8609101512.AA12173@ucbvax.Berkeley.EDU> SOFPJF@UOGUELPH.BITNET (Peter Jaspers-Fayer) writes:
>
>In Message-Id: <8609091627.AA21723@ames-nas.ARPA>
>on 09 Sep 86 09:27:35 PDT (Tue), fouts@AMES-NAS.ARPA writes:
>> There also appears to be no way to unload a loaded desk accessory,
>> other than changing the .ACC to something and rebooting.
>
>This has been a sore point with me for some time.  ExcUuUse me, but
>WHY NOT!?  It seems to me that someone asked this several months ago
>and the reply was something like "it's too difficult" or something.

  The  difficulties  ARE great.  Code on the ST is  relocatable  at load
time, not  position-independant.  Most  reasonably  long  jumps  will be
expressed  as  absolute  jumps  once  the  code  has  been  loaded,  and
accessories have also had a chance to run once until their 'event_multi'
call, and here they are free to look at their  location in memory and do
other rude stuff.  So sure you can boot out  accessories,  but you can't
move and pack the  others  to use the  memory  for very  much.  The best
solution  is one which can reset the  memory  pointers,  clear  the menu
register,  and  then  allow  you  to  selectively  re-install  the  desk
accessories  you  want.  This is just  short of a reboot,  and it may be
very awkward to not go the whole way.  I'm not sure how I would go about
the  re-install at all, since the best way would be to read the BIOS and
GEM  source  code and be able to mimic  what  happens  on a reboot  with
accessories, and *that* information is likely proprietary.

#   UUCP : ...!ubc_vision!molihp!robt		Robert Thurlow		#
#   My thoughts are my own, and are void where prohibited by law.	#
#   "There was something fishy about the butler.  I think he was a	#
#    Pisces, probably working for scale."	-Nick Danger, 3rd Eye	#

braner@batcomputer.TN.CORNELL.EDU (braner) (09/20/86)

[]

How about calling your accessories xxx.ac2, so they won't boot, and have ONE
accessory that lets you install those by name.  That way you can install
them one by one as the session proceeds and you know what you actually
need, and you never have to deal with the problem of reclaiming memory!

- Moshe Braner