Date : Mon, 31 Jul 2000 18:18:25 +0100
From : "Rich Talbot-Watkins" <Richard_Watkins@...>
Subject: Re: How does tape filing system handle addresses?
[Apologies if this arrives twice]
Mark de Weger wrote:
> As Robert pointed out, the reason that his copy of Hampstead won't run on an
> emu (or a disc-based Beeb with an E00 DFS) is the weird load and exec
> addresses. However, according to Dave, the sane copy works fine on in
> UEF-format (tape).
>
> Therefore, I assume that the tape filing system handles load and exec
> addresses different than the DFS. Anybody got a clue how?
>
> Thanx,
> Mark.
>
> P.S. The first program that won't run, HAMPST1, is loaded by a Basic program
> with the command */
and Robert Schmidt wrote:
> The version on TBL! is tape based and uses longer filenames than DFS
> supports. I've managed to hack the filenames, but it still doesn't load
> correctly. Could the weird load addresses be a problem, even when using
> a E00 DFS?
>
> $.HAMPST1 d9cd ffff 3c5
> $.HAMPST2 400 67e 5700
One reason that this won't work on a disc system is that it's attempting to
load HAMPST2 straight over the DFS NMI workspace between &D00 and &D9F - and
since this is rather crucial to the disc system, it's not surprising it
doesn't work when it gets corrupted.
The solution to this would be to load HAMPST2 at &1400 and then relocate the
code and run it using this little code snippet:
P%=&380:[OPT2:LDX#&57:LDY#0:.loop LDA&1400,Y:STA&400,Y:INY:BNEloop:
INCloop+2:INCloop+5:DEX:BNEloop:JMP&67E:]
CALL&380
As for HAMPST1, I'm rather baffled - I can't really believe that those are the
correct load/exec addresses. It's trying to load into the area occupied by
the OS (which is obviously not writable) and then supposedly execute from FFFF
which makes little sense either.
Hmmmm.... any more info?
Rich Talbot-Watkins
Sony Computer Entertainment Europe, Cambridge.
Richard_Watkins@...