Re: Limit to length of REL file?

From: Jim Brain (brain_at_jbrain.com)
Date: 2009-01-25 23:30:50

Ruud@baltissen.org wrote:
> Hallo Marko,
>
>
>   
>   
> Bingo, it seems you know something I didn't. How did you know this ie. 
> where did you find this info? Maybe I can get more info on that place for 
> the following idea: why is the number of side sectors limited to six? If 
> this number is hard coded, why cannot I expand it to 15, or better, 255?
> TIA!
>   
http://www.zimmers.net/anonftp/pub/cbm/manuals/drives/1541-manual.txt.gz, 
Section 7:

"The DOS keeps track of the tracks and blocks used, and even allows
records to overlap from one block to the next.  It is able to do this
because it establishes side sectors, a series of pointers for the
beginning of each record.  Each side sector can point to up to 120
records, and there may be 6 side sectors in a file.  There can be up
to 720 records in a file, and each record can be up to 254 characters,
so the file could be as large as the entire diskette."

Why is the number limited to 6:

 +---------------------------------------------------------------+
 | SIDE SECTOR BLOCK                                             |
 +--------+------------------------------------------------------+
 | BYTE   | DEFINITION                                           |
 +--------+------------------------------------------------------+
 | 0,1    | Track and block of next side sector block.           |
 +--------+------------------------------------------------------+
 | 2      | Side sector number. (0-5)                            |
 +--------+------------------------------------------------------+
 | 3      | Record length.                                       |
 +--------+------------------------------------------------------+
 | 4,5    | Track and block of first side sector (number 0)      |
 +--------+------------------------------------------------------+
 | 6,7    | Track and block of second side sector (number 1)     |
 +--------+------------------------------------------------------+
 | 8,9    | Track and block of third side sector (number 2)      |
 +--------+------------------------------------------------------+
 | 10,11  | Track and block of fourth side sector (number 3)     |
 +--------+------------------------------------------------------+
 | 12,13  | Track and block of fifth side sector (number 4)      |
 +--------+------------------------------------------------------+
 | 14,15  | Track and block of sixth side sector (number 5)      |
 +--------+------------------------------------------------------+
 | 16-256 | Track and block pointers to 120 data blocks.         |
 +--------+------------------------------------------------------+

Now, you can expand beyond 6, but you'd need to (as Marko points out) 
pull the "super side sector" code from the 1581 or the IEEE drives.

Howver, if you're adding this to a list of things to do, I would put it 
*way* down on the priority list.  Few folks use REL files, and almost no 
apps would need > 720 records (they handle the limit by creating 
multiple REL files, if needed), so I think there are better ways to 
spend your free moments.  I implemented REL file support on uIEC *just* 
to shut the "Hah!  It doesn't even support REL files" crowd up, not 
because I had a bunch of folks who genuinely cared. (At work, I call 
these "checkoff items".  The folks use the lack of a feature as an easy 
way to yank the product from consideration, not because they actually 
need the feature).

Now, I temper that with the fact that I just got in the mail a 1581 disk 
from a gentleman in Arkansas who is 80 and uses his Commodore to manage 
books for area school libraries (as I understand it).  He called (no 
email) noting that his CMD HD had bitten the dust, his FD is acting 
flaky, and he's worried about his 1581, and he was wondering if uIEC 
would handle his small book management app (BASIC) that uses REL files.  
Thus, for him, I'm glad I labored to add support, and I asked him to 
send me the app so I could test it.

Jim


Jim




       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.