[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: More thoughts about Lode Runner & other multiload games...



On Fri, 28 Sep 2012, Hot Rod wrote:

OK, so in taking a quick peek at LoGo's version of LR, it looks like the high score table is on track $0C, sector $0F. And that this is stored in memory at $1F00, and is either read or written via the routine at $6359. You can see where it's called with the A-reg set to either a #$01 (for reads) or #$02 (for writes) and then stores that operation code first, followed by setting up the track, sector, and buffer address (i.e. track $0C, sector $0F, buffer $1F00) as part of the IOB, before calling RWTS with the address of the IOB ($B7E8) loaded in A and Y regs. This routine at $6359 is called from a few different places though, and I didn't explore them all. It might be worth first confirming that this is the high score table you're after (track $0C, sector $0F).

Good to have a guru around. XD

Where I enter the code is at 6008, because I skipped some code that did stuff (and apparently broke if I called it directly without the disk). That code was:

seg000:6000                 JSR     sub_0_87A2
seg000:6003                 LDA     #1
seg000:6005                 JSR     sub_0_6359

Which calls, well, the exact function you pointed out.  XD

I never seemed to make note of this function, though it does seem to be a vector into RWTS.

I don't see any code (but it just might be I haven't analyzed it yet) to actually *set* those values, so perhaps that code *only* handles the high score table? I'll test that.

*a few seconds later*

No, this is actually the main read-write code! All the 3 functions I was looking for vector through 6359.

-uso.