[Coco] Fwd: failure notice
gheskett at wdtv.com
Tue May 12 19:42:48 EDT 2015
On Tuesday 12 May 2015 19:19:11 Greg Law wrote:
> 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 ...
That is considerably more complex than I recall from 15 years ago. Not
saying you are wrong, just that I don't remember it & never had to dig
that deep. My fault IOW.
Cheers, Gene Heskett
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>
More information about the Coco