[Coco] Fwd: failure notice

Greg Law glaw at live.com
Tue May 12 19:19:11 EDT 2015


From: Gene Heskett

> Does the linker use the module length, and is this module length correct
> such the the extra $0000 int is detectable, and fixable by a quick
> assembly program that would copy only the valid bytes, piping that into
> the merge command that makes the library?

Well, no because ROF doesn't have a concept of length per se and herein lies 
the issue. RLink and RDump read the entries in the library file one entry at 
a time sequentially with the assumption that the next entry begins 
immediately after the end of the previous entry. This is because the entries 
are just serial streams of data that must be read in the entirety to 
determine the length.

> Its a problem I never had a decade and change ago.  Have you asked
> Willard, who did a more recent c.prep, if he has encountered this?
> If not, get the crc's of what he is using so you can tell when you've
> found the ones that work.

> Worse comes to worse, ded might be able to fix it by reducing the module
> size by 2 bytes, do this in the raw ROF's FD sector. How difficult this
> is depends on how many modules there are to fix.  Keep in mind that
> would probably need a v for verify to fix the files crc for the new,
> shorter data length too.  I think this would have to be a 2 copies of
> ded running project, one to edit the FD.sector, and one to load the file
> to verify that it has been fixed.

Don't use verify on ROF/library files because these aren't standard OS-9 
modules and they don’t have a CRC. These are in Relocatable Object Format in 
which the header includes a linked list of external code refs, external data 
refs, internal code refs, and internal data refs. The format is something 
like this:

0x62CD2387 header sync
RMB 2 Type/Language
RMB 1 Valid
RMB 5 Date
RMB 1 Edition
RMB 1 Spare
RMB 2 Uninitialized Data Size
RMB 2 Uninitialized DP Data Size
RMB 2 Initialized Data Size
RMB 2 Initialized DP Data Size
RMB 2 Code Size
RMB 2 Stack Size
RMB 2 Entry Point
FCC Name
FCB $00 terminates name
RMB 2 Global Count
... Global References ...
... Code ...
... Initialized DP Data ...
... Initialized Data ...
RMB 2 External Reference Count
... External References ...
RMB 2 Local Reference Count
... Local References ...



More information about the Coco mailing list