[Coco] format memory (was) Gotek floppy emulator

Tormod Volden lists.tormod at gmail.com
Tue Feb 16 15:25:53 EST 2016


On Tue, Feb 16, 2016 at 1:25 PM, Gene Heskett wrote:
> On Monday 15 February 2016 20:29:02 Bill Pierce via Coco wrote:
>
>>  Gene, on both my emulator and real Coco, smap shows 11k free. As I
>> said, I can format from the cmd line, but not from within something
>> else like the boot script from the ditro disks.
>>
>> One thing I've noticed is that 3.3.0 does not like older drivers. It
>> fares better with drivers built from the same build. Are all your
>> drivers in the 3.3.0 boot current? Or did you use some of your older
>> custom drivers? I even formatted my 4 gig partions on my Glenside IDE
>> with with my current boot.
>
> I did go down & play. I also have 11k free but its fragmented.

Dear OS-9 experts, please bear with me and my lack of deep Level2
understanding, I am in the need for a long Q&A session on this. I have
read the "OS-9 system programmer's manual" from Microware which is the
best piece on OS-9 internals that I have found. Are there other good
texts, apart from reading the "source" code? "Source" in quotes,
because a lot of it is half-commented disassembly of binaries :p

OK, so you have 11k free. I suppose this is system memory (limited to
64KB), whereas programs can use their own 64KB user memory mapped in
from the big pool (512KB to 2MB).

>
> Format needs $2b70 worth of memory for its data, or 11,120 bytes.

Format needs 11120 bytes of user memory, right? This is the data
segment pointed to by U upon execution of the module, in the process'
own memory space.

I can well imagine that formatting a disk requires some system memory
as well (for buffers etc used during system call) - and this is maybe
the reason it goes south for you - but the 11120 bytes for format and
the 11k free system RAM cannot be directly compared, right?

I would be interested in knowing why format needs 11120 bytes (user
memory) for doing what it does, and whether this can be reduced. But
that is probably not very useful, since we can assume people should
have that much of free /user/ memory when doing such tasks.

The more interesting question is whether format can be made to consume
less system memory. There is no F$ system memory requests in the
source, only innocent I/O calls from what I can see.

Off-topic question: Why is allocation bit map routines (F$AllBit and
friends) system calls at all? They only operate on user memory, right?

BTW, I just tried out format on my Level1 Dragon formatting a
DriveWire drive, and it worked fine. It is the exact same binary as on
Level2 systems (6809 and 6309 versions are identical too, CRC 0ABD19
in 3.3.0).

Regards,
Tormod


More information about the Coco mailing list