English Amiga Board Amiga Lore


Go Back   English Amiga Board > Support > support.Apps

 
 
Thread Tools
Old 18 December 2008, 22:53   #1
Supamax
Da Digger :)

Supamax's Avatar
 
Join Date: Nov 2008
Location: Monza, Italy
Posts: 2,479
RAWREAD - Advanced usage howto?

Hi,
some questions about the brilliant RAWREAD from Toni Wilen.
Since RAWREAD makes it possible to read not only full disks but even "tracks intervals" (using the -s and -e parameters), if I make two "partial" ADFs of the same disk how can I use the two ADFs in order to obtain a single one?
In case it's possible to group/merge 2+ ADFs, what if some are partially "overlapping" (have some tracks in common)?

Is there somewhere a little manual or .doc (apart from the enclosed .c file)?

Massimo
P.S. I know I can use, for example, X-Copy. I load it in WinUAE and I use it to copy some tracks from here and some tracks from there in order to obtain a final full disk. But in case of extended ADFs of protected games, X-Copy can't be useful for some heavily protected tracks.
An example: I used RAWREAD to dump my original disk of FOFT (Federation Of Free Traders). FOFT has the first tracks (0..78) easily copyable by a nibble copier, and the last track only copyable by Cyclone or Synchro Expert etc.
RAWREAD dumped the disk. I tried the extended adf in WinUAE and it freezed on track 9. I re-dumped it and copied track 9 from the second dump to the first dump (using X-Copy under WinUAE). Result: FOFT loaded correctly till track 39, then freezed. So I re-dumped the original again and copied track 39 from the third dump to the first dump. Result: FOFT loads! Yeahh!
The meaning of all this is: I was lucky with FOFT because it has only 1 "hard" track and I could cut&paste with X-Copy and different raw dumps. But it would be nice if I could raw dump parts of a protected disk and reassemble them with RAWREAD.

----------------------------------------------------------------------------------------------------------
I forgot:

is it generally better/more reliable to copy AMIGA protected disks with:
1) the -r parameter only
2) the -r and -x -1 parameteres

?

Rainbow Islands (original) dumped well with -r -x -1, but not with -r only...
The second time I tried, it didn't work with -r -x -1 anymore... my disk drive is not perfect anymore, I suppose

Thanks,
Massimo


----------------------------------------------------------------------------------------------------------
I see there was a similar request here:

http://eab.abime.net/showthread.php?t=20101

Last edited by Supamax; 24 January 2009 at 04:38. Reason: merged three posts into one
Supamax is offline  
AdSense AdSense  
Old 18 December 2008, 23:52   #2
Redwood
Registered User
 
Join Date: Jun 2008
Location: Sydney / Australia
Posts: 83
It is not easy to merge two rawread images. The RAW (or extended ADF) format begins with a 2004 byte header and looks something like this:

Code:
bytes        description
------------------------
0-7          Magic: "UAE-1ADF"
8-11         Number of tracks
12-15        Type of cylinder 0, side 1. (0 = DOS, 1 = RAW)
16-19        Number of bytes in cylinder 0, side 1
20-23        Number of bits in cylinder 0, side 1
24-27        Type of cylinder 0, side 2. (0 = DOS, 1 = RAW)
28-31        Number of bytes in cylinder 0, side 2
32-35        Number of bits in cylinder 0, side 2
36-39        Type of cylinder 1, side 1. (0 = DOS, 1 = RAW)
...
2004-?       Data for cylinder 0, side 1. (Length of data at 16-19)
?-?          Data for cylinder 0, side 2. (Length of data at 28-31)
...
Now, if you make a partial images, the first 2004 bytes of each image will still contain the full header, but the length field for the cylinders you skipped will be zero, and therefore the length of the data for that cylinder later in the file will also be zero.

So to merge partial RAW images, you'll have to read the header information from each partial image, merge it, then read the cylinder data from each partial image into a new image. If you have overlapping partial images, you'll have to be careful to write each cylinder only once.

I have some python code which makes this somewhat easier if anyone's interested.
Redwood is offline  
Old 19 December 2008, 19:16   #3
Supamax
Da Digger :)

Supamax's Avatar
 
Join Date: Nov 2008
Location: Monza, Italy
Posts: 2,479
Quote:
Originally Posted by Redwood View Post
It is not easy to merge two rawread images. The RAW (or extended ADF) format begins with a 2004 byte header and looks something like this:

Code:
bytes        description
------------------------
0-7          Magic: "UAE-1ADF"
8-11         Number of tracks
12-15        Type of cylinder 0, side 1. (0 = DOS, 1 = RAW)
16-19        Number of bytes in cylinder 0, side 1
20-23        Number of bits in cylinder 0, side 1
24-27        Type of cylinder 0, side 2. (0 = DOS, 1 = RAW)
28-31        Number of bytes in cylinder 0, side 2
32-35        Number of bits in cylinder 0, side 2
36-39        Type of cylinder 1, side 1. (0 = DOS, 1 = RAW)
...
2004-?       Data for cylinder 0, side 1. (Length of data at 16-19)
?-?          Data for cylinder 0, side 2. (Length of data at 28-31)
...
Now, if you make a partial images, the first 2004 bytes of each image will still contain the full header, but the length field for the cylinders you skipped will be zero, and therefore the length of the data for that cylinder later in the file will also be zero.

So to merge partial RAW images, you'll have to read the header information from each partial image, merge it, then read the cylinder data from each partial image into a new image. If you have overlapping partial images, you'll have to be careful to write each cylinder only once.

I have some python code which makes this somewhat easier if anyone's interested.
Yes, I would be interested... did you manage to understand how data is coded from position 2004 on?
Supamax is offline  
Old 20 December 2008, 03:20   #4
Redwood
Registered User
 
Join Date: Jun 2008
Location: Sydney / Australia
Posts: 83
The data from position 2004 on is simply the raw track data read from disk. The location within the file of the data for track n is simply 2004 + length of track 1 + length of track 2 + ... + length of track n-1. The length of data for track n can be found in the corresponding record within the header.

I've attached the python code.
Attached Files
File Type: zip rawadf.zip (2.2 KB, 126 views)
Redwood is offline  
AdSense AdSense  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
RawRead Feature saxabar support.Apps 14 15 January 2010 01:40
rawread: Making use of partial raw images andreas support.Apps 7 12 January 2010 14:51
Rawread ^^ dlfrsilver support.WinUAE 44 24 February 2009 02:58
MKick Howto? maxlock support.Other 2 12 June 2008 19:01

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 21:01.


Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Page generated in 0.12882 seconds with 12 queries