[atari7800] Desert Falcon DLIs
- From: "Dennis Debro" <dennis@xxxxxxxxxxxxxxx>
- To: atari7800@xxxxxxxxxxxxx
- Date: Mon, 21 Feb 2005 14:45:36 -0800 (PST)
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:
- » [atari7800] Desert Falcon DLIs