[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Questions on EDASM reloc ($FE) files
In article <s4ednRYy3tldxqTZRVn-tA@comcast.com>,
"Michael J. Mahon" <mjmahon@aol.com> wrote:
> David Wilson wrote:
> > Oliver Schmidt wrote:
> >
> >> My
> >>current thinking is that $FE is more of an intermediate file format
> >>used solely by programmers using the EDASM toolkit - and thus they are
> >>not existent on non-programmes machines.
> >
> >
> > I have just had a quick read of Chapter 5 "The Relocating Loader" in
> > the ProDOS Assembler Tools manual.
> > Relocatable files are able to be run from BASIC programs using the
> > RBOOT and RLOAD routines so are not an intermediate file and will be
> > found on non-programmer's machines.
>
> I seldom have any disagreement with David'd posts, but in this case
> I don't think there is a strong enough argument not to re-purpose
> the REL filetype under Contiki.
>
> RBOOT and RLOAD are very seldom-used under DOS 3.3 and virtually
> unused under ProDOS (along with EDASM).
I seldom have any disagreement with Michael's posts, but I use EDASM all
the time to maintain ProFORTH under ProDOS! OK, I don't use RLOAD at
all:-)
> Further, since ProDOS
> supports a hierachical file system, and Contiki programs are very
> likely to be concentrated in a directory apart from any EDASM REL
> files, the potential for confusion is so small as to be negligible.
This is very likely to be the case. A REL type file on a distribution
disk (e.g. the Hires ToolKit) would be loaded by name using the USR(0)
function set up by RBOOT. The RLOAD binary checks the type ($FE) of the
named file; it uses the auxiliary type for the ORG of the first
relocatable segment.
It looks like $FE (REL) is an EDASM relocatable code file, while $EE
(R16) is an EDASM 816 relocatable code file. This suggests that it
wouldn't be a GS/OS conflict.
Would it be reasonable for Contiki to use a suitable auxiliary type to
disambiguate the usage? For example, type $E0 (LBR) is an library
archive file: auxiliary type $0000 is an ALU file, while $8002 is a
ShrinkIt file.
> In any case, it would be prudent to include a validity check into
> any routines accessing REL files, to provide some assurance that
> they are what is expected prior to processing. (I realize that this
> is an unlikely addition for any EDASM REL file-processing programs,
> but should be quite easy for Contiki-related programs.)
Contiki could check the auxiliary type for validity, while existing
EDASM RLOAD wouldn't need to do anything different. I would advocate
choosing an auxiliary type that would be an unlikely ORG of a
relocatable segment: e.g. $FFFF.
> -michael
[...]
--
John
jmatthews at wright dot edu
www dot wright dot edu/~john.matthews/