Megalextoria
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Digital Archaeology » Computer Arcana » Apple » Apple II » How does Appleworks know what part of expanded memory ...
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
How does Appleworks know what part of expanded memory ... [message #389496] Mon, 03 February 2020 16:09 Go to next message
gids.rs is currently offline  gids.rs
Messages: 1395
Registered: October 2012
Karma: 0
Senior Member
How does Appleworks know what part of expanded memory cannot be used for its desktop. Or does it just take over all available memory?

Say on a IIGS, I have /RAM5 set up, or on a IIe or IIc with an 800 kb Ram drive on a 1 Mb expansion memory.

Is there a standard that programs can check against to see what expanded memory is in use?
Re: How does Appleworks know what part of expanded memory ... [message #389497 is a reply to message #389496] Mon, 03 February 2020 17:13 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: MG

On 2020-02-03 21:09:12 +0000, I am Rob said:

> How does Appleworks know what part of expanded memory cannot be used
> for its desktop. Or does it just take over all available memory?
>
> Say on a IIGS, I have /RAM5 set up, or on a IIe or IIc with an 800 kb
> Ram drive on a 1 Mb expansion memory.
>
> Is there a standard that programs can check against to see what
> expanded memory is in use?

You have to patch Appleworks with something like AE's Ramworks Expander
in order to lock out banks, and do the same thing with the RAM disk
driver. One of them uses the upper banks, and the other uses the lower
banks.

MG
Re: How does Appleworks know what part of expanded memory ... [message #389498 is a reply to message #389497] Mon, 03 February 2020 17:33 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: MG

On 2020-02-03 22:13:46 +0000, MG said:

> On 2020-02-03 21:09:12 +0000, I am Rob said:
>
>> How does Appleworks know what part of expanded memory cannot be used
>> for its desktop. Or does it just take over all available memory?
>>
>> Say on a IIGS, I have /RAM5 set up, or on a IIe or IIc with an 800 kb
>> Ram drive on a 1 Mb expansion memory.
>>
>> Is there a standard that programs can check against to see what
>> expanded memory is in use?
>
> You have to patch Appleworks with something like AE's Ramworks Expander
> in order to lock out banks, and do the same thing with the RAM disk
> driver. One of them uses the upper banks, and the other uses the lower
> banks.


It turns out that newer versions of AE's AW Expander patches
automatically detect AE ProDrive 2.0 and will automatically not use the
banks in use by ProDrive (you still have to patch ProDrive to use fewer
banks).

https://archive.org/details/AW_3_Expander_Users_Manual_alt/p age/n19/mode/2up

MG
Re: How does Appleworks know what part of expanded memory ... [message #389499 is a reply to message #389498] Mon, 03 February 2020 19:57 Go to previous messageGo to next message
gids.rs is currently offline  gids.rs
Messages: 1395
Registered: October 2012
Karma: 0
Senior Member
That would mean my driver has to be Prodrive compatible then, correct?

Thanks, will take a look.
Re: How does Appleworks know what part of expanded memory ... [message #389500 is a reply to message #389496] Mon, 03 February 2020 22:12 Go to previous messageGo to next message
Hugh Hood is currently offline  Hugh Hood
Messages: 678
Registered: November 2012
Karma: 0
Senior Member
On 2/3/2020 3:09 PM, I am Rob wrote:
>
> How does Appleworks know what part of expanded memory cannot be used
> for its desktop. Or does it just take over all available memory?
>

Rob,

In my notes I show two (2) AppleWorks 5.1 locations where the parameters
are set for determining the amount of RAM AppleWorks uses for its
Desktop Memory.

They are:

AuxLockOut / $11B6 {$1B6 in APLWORKS.SYSTEM}
# of 64K Banks of Aux Slot memory card to reserve for a RAMdisk
[normally is $00 = use entire card for Desktop Memory
{generally 3 Meg Max without patching AppleWorks]

SlinkyDT / $11B7/B8 {$1B7/B8 in APLWORKS.SYSTEM}
# of Blocks (512 bytes) to use for SYS.DESKTOP file on Slinky RAMDisk
[normally is $0010 / 4096 Blocks = 2048K Desktop Memory]


These parameters can be set manually by patching 'APLWORKS.SYSTEM' or by
using the MEM.SYSTEM program that Quality Computers shipped with
AppleWorks 5.

Note that if you are limiting Aux Slot memory, you must also set up the
RAMdisk to be only a certain size.

As for IIGS memory, I'll guess that AppleWorks uses the Memory Manager
to determine how much it can take. I don't know specifics right off the
bat, though.




Hugh Hood
Re: How does Appleworks know what part of expanded memory ... [message #389501 is a reply to message #389500] Mon, 03 February 2020 23:33 Go to previous messageGo to next message
gids.rs is currently offline  gids.rs
Messages: 1395
Registered: October 2012
Karma: 0
Senior Member
Thanks for your reply Hugh.

Is there a range identifier to show which banks are either being used as a Ramdisk or Deskop?

I want to be able to have a pre-existing Ramdisk before entering Appleworks and not have it trash the Ramdisk.

is this possible?

On a side note, this is less about getting Appleworks to work with my Ramdisk and more about seeing if there can be a standard way to lock out banks that a number of different applications can check with and reserve Banks for its own use, but at the same time be able to use Appleworks without it trashing an external set-up.
Re: How does Appleworks know what part of expanded memory ... [message #389505 is a reply to message #389501] Wed, 05 February 2020 00:54 Go to previous messageGo to next message
Hugh Hood is currently offline  Hugh Hood
Messages: 678
Registered: November 2012
Karma: 0
Senior Member
Rob,

>
> I want to be able to have a pre-existing Ramdisk before entering
> Appleworks and not have it trash the Ramdisk.
>
> is this possible?
>

Absolutely. I used to do it when I ran IIe's with RamWorks cards and no
hard drive.

>
> Is there a range identifier to show which banks are either being used
> as a Ramdisk or Deskop?
>

Yes there is. Assuming we're speaking with reference to Aux Slot memory
(e.g. RamWorks), AppleWorks 5.1 builds a table of available aux slot
banks when it starts up, and after subtracting any banks specified as
locked out at $11B6, stores that table at $D0CA in Main Memory LC Bank $01.

When AppleWorks locks out banks, it locks out the *highest* numbered
valid banks, and uses the lower numbered banks for Desktop Memory.

Conversely, when you use AE's 'Partition' program to modify AE's
'Prodrive' program, it locks out (from use by the ram disk) the *lowest*
numbered banks, and uses the higher numbered banks for the ramdisk.

The trick is for the two bank lockout numbers to sum to the total # of
banks on the card. (otherwise banks are either wasted, or conflicted)

Obviously, the Prodrive must know which banks it is using.
Unfortunately, the RamWorks III manual that I have doesn't give the
memory locations for the bank listing for the ProDOS version of the
ramdisk (but does give them for the DOS 3.3 version, for some reason).

>
> On a side note, this is less about getting Appleworks to work with
> my Ramdisk and more about seeing if there can be a standard way to lock
> out banks that a number of different applications can check with and
> reserve Banks for its own use, but at the same time be able to use
> Appleworks without it trashing an external set-up.
>

I think this is doable. Just remember, AppleWorks will want to stomp on
the lower numbered banks. Provided to set the lock out byte at $11B6 to
something other than $00, you can leave some banks untouched anytime you
run AppleWorks.




Hugh Hood
Re: How does Appleworks know what part of expanded memory ... [message #389822 is a reply to message #389505] Sun, 09 February 2020 01:19 Go to previous messageGo to next message
Hugh Hood is currently offline  Hugh Hood
Messages: 678
Registered: November 2012
Karma: 0
Senior Member
On 2/4/2020 11:54 PM, Hugh Hood wrote:
>
> The trick is for the two bank lockout numbers to sum to the total # of
> banks on the card. (otherwise banks are either wasted, or conflicted)
>

Rob,

Let me correct that. The two bank lockout numbers need to sum to the
total # of banks on the RamWorks card, *minus one*.

The first bank of the RamWorks card is always considered to be used for
Auxmem, so that programs requiring 128K will co-exist with any auxslot
RamDisk.

For example, let's say we have a 1 MEG RamWorks, which contains 16 64K
banks.

In AppleWorks, let's lock out 6 banks for use as a RamDisk (384K nominal).

In AE's Partition (which configures the ProDrive), we'll lock out (16 -
1) - 6 banks, or 9 banks for use as *additional* Desktop space for
AppleWorks.

Finally, I used the word 'nominal', since as you know you don't get to
use all of the 64K in each bank for a RamDisk with the RamWorks.

Sorry for the confusion. It's been a very long time since I used that setup.




Hugh Hood
Re: How does Appleworks know what part of expanded memory ... [message #389823 is a reply to message #389822] Sun, 09 February 2020 15:30 Go to previous message
gids.rs is currently offline  gids.rs
Messages: 1395
Registered: October 2012
Karma: 0
Senior Member
Yes, I see that Prodrive installs a move routine in page 0 (ZP) and page 1 is the stack in every bank of the Ram drive. My driver doesn’t have that problem. Not only does it not use any zero-page locations, it also doesn’t affect the stack in any other bank than the one the driver is in. Lots of self modifying code.

My driver allows me to use all 64 kb in every bank. I put my driver in what is considered the boot block, or blocks 0 & 1 of the Ram drive.

My driver also links up to 4 drives all in slot 5 drive 2. Slot 3 Dr 2 still gets disabled by some 128 k software so can’t use it.

This allows me to have up to 4 volumes of different sizes. I like to have at least one volume size of each of 140k, 800k, and 2-4 Mb. Or multiple volumes of one size.

You might question why I need so many Ram drives. I have one Ram drive used for a Virtual String Array. Another just reserves space for a sorting routine in Auxmem. Another for a dictionary.

At least I hope the emulator’s Emulated Ram is in the computers real Ram and not a virtual memory on a hard drive. Which should mean less wear and tear on my modern computers hard drive.
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: A2SERVER setting TCP off within afpd.conf
Next Topic: VidHD - 80 column
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Mar 29 07:11:24 EDT 2024

Total time taken to generate the page: 0.02105 seconds