Re: Super OS-9 REL volume: Question

From: gsteemso <48bitsorbust_at_gmail.com>
Date: Sat, 26 Sep 2020 16:01:22 -0700
Message-Id: <0B99C787-D97C-424F-BCD3-851483F75731_at_gmail.com>
Hi folks,

> On Sep 26, 2020, at 2:11 PM, Rhialto <rhialto_at_falu.nl> wrote:
> 
> On Sat 26 Sep 2020 at 13:50:16 -0500, vtgearhead wrote:
>> The SuperPET port of OS-9 mounts a Commodore REL file as its filesystem.  For
>> some reason, the REL record size is 129 bytes.  Does anyone know why such an
>> odd number was used?  I could understand 128 (2 records = one logical
>> sector), but 129 strikes me as an unusual choice.
> 
> Or 127 would make sense too: 2 records fit in a single sector.
> But 254 makes the most sense in Commodore disk context.

Well, sort of? CBM DOS uses 254-byte logical blocks (in 256-byte physical sectors), but REL files are treated a little differently. The record's position in the file, as a byte index, is 1st determined by taking (record number) times (record length, from directory entry). A block index is computed (in the disk drive, by actual long division by 254 -- stupidly inefficient!), and the (index)th entry in the side-sector tables is consulted to load that disk block directly.

The wrinkle here is that, as far as I know, the record separator (is it one byte long, or two bytes?) is not included in the record size. So, AFAIK, that 129-byte record becomes a 130- or 131-byte section of the file!

I'm now morbidly curious as to the specifics.

> UCSD Pascal uses 128 byte records.

Ah, yes... the joys of developing on a platform with a semi-sane disk-block size. :¬)

> I recently improved REL file support in VICE for the "filesystem
> device". That is where you're not using a disk image but access the
> host's file system. My improvements seem good enough for Pascal but
> maybe OS-9 does different things.

I don't own any of those, but I'm curious as to the results!

Gordon S.
Received on 2020-09-27 02:00:02

Archive generated by hypermail 2.3.0.