[net.micro.atari16] Patches for the RAM disk program

braner@batcomputer.TN.CORNELL.EDU (braner) (11/02/86)

[]

If you want to use the RAM disk program I've posted as a drive other
than 'D', you have to patch it.  This patch is essential if you want to use
a hard disk together with the RAM disk.  Here is an old hint:

>From: jdg@elmgate.UUCP (Jeff Gortatowsky)
>	{allegra,seismo}!rochester!kodak!elmgate!jdg
>Subject: Reset survivable RAM disk and Atari HD problem fixed!
>Date: 3 Oct 86
>
>Well after a bit of digging and disassembly my brother (a sharp troop)
>found the correct combination to get the reset surviving RAM disk to play
>as drive F: in a HD system (Atari 20meg).   First, as was mentioned
>before on this news group you need to change the bit set in the 'drivebits'
>variable down in low memory.  The BSET #3,d0 needs to be BSET #5,d0 (for
>drive F:).  The other patch is applied to the compare instruction in the
>code that is executed when RWABS calls the RAM Disk.   The RAM disk checks
>the device number and if it's not the right number it passes control
>through a JMP instruction to the Hard disk vector the RAM disk saved at
>boot time.  The above patches imply that the RAM disk need be executed
>AFTER the hard disk driver is installed, so it may take over and save
>the hard disk vectors.

What I think was meant:  Change the bytes at the following
offsets from the beginning of the ".prg" file:

	  offset	old value(for drive D)	new value (for drive F)
	  ======	======================	=======================

	$145 (325)		03			05
	$173 (371)		03			05
	$181 (385)		03			05
	$193 (403)		03			05

The first one is the "BSET #3,D0" in the installation, the other three
are "CMP #3,x(A7)"s in handling calls to disk device drivers.

For drive C instead of F, use the value 02.

To change the default RAM disk size, change the byte at offset
$B3 (179): The value is the size in units of 64K, e.g. 03 for
a default size of 192K, 09 for 576K.

WARNING:  These are untested speculations!!!
If somebody tests this (with a hard disk, if possible), please tell us!
Jeff, if you're out there: please confirm &/or post the fix and the
disassembly!

- Moshe Braner

rbk@akguc.UUCP (rbk) (11/04/86)

<><><><><><><><>
> If you want to use the RAM disk program I've posted as a drive other
> than 'D', you have to patch it.  This patch is essential if you want to use
> a hard disk together with the RAM disk.  Here is an old hint:
>  ... (some lines deleted) ...
> What I think was meant:  Change the bytes at the following
> offsets from the beginning of the ".prg" file:
> 
> 	  offset	old value(for drive D)	new value (for drive F)
> 	  ======	======================	=======================
> 
> 	$145 (325)		03			05
> 	$173 (371)		03			05
> 	$181 (385)		03			05
> 	$193 (403)		03			05
> 
> The first one is the "BSET #3,D0" in the installation, the other three
> are "CMP #3,x(A7)"s in handling calls to disk device drivers.
> 
> For drive C instead of F, use the value 02.
> 
> To change the default RAM disk size, change the byte at offset
> $B3 (179): The value is the size in units of 64K, e.g. 03 for
> a default size of 192K, 09 for 576K.
> 
> WARNING:  These are untested speculations!!!
> If somebody tests this (with a hard disk, if possible), please tell us!
> Jeff, if you're out there: please confirm &/or post the fix and the
> disassembly!
> 
> - Moshe Braner

The patch works as advertised; thanks Moshe!

BTW, I changed the byte to "0C" for Drive "M" since
I already have a hard disk partition called "F".

	R. Brad Kummer	{ihnp4, seismo!akgua}!akguc!rbk
	AT&T Bell Labs	Atlanta, GA