[atari7800] Desert Falcon DLIs

Hi there,

When I first looked at the DF source I thought it was a big mess. I just
couldn't follow it. I took another look at it today to better understand
DLIs and I like what they did. They basically emulated multilple DLIs
similar to the way the A8 handles it.

When I first looked at it I was looking for the subroutine HANDLER. I
couldn't find it anywhere. Then when I opened sint.s I saw they were
writing to HANDLER. At first I was thinking how are they writing to ROM.
Then it hit me like a ton of bricks...HANDLER is RAM.

So I looked at the RAM definitions and there it was at the top of ZP with
the DLIPtr defined under it :-) They used this to jump to multiple DLIs in
the game. In other words HANDLER would hold the jmp opcode $4C so when
they manipulated the values of the DLI pointer, the DLI would jump to the
new DLI.

Funny how I was thinking this morning that the 7800 was kind of crippled
in comparison to the A8 because the vector for DLI was in ROM. How ironic
that I happen to look at this and see it today. Pretty neat stuff.

Take care,
Dennis


Other related posts: