diff options
author | B. Watson <yalhcru@gmail.com> | 2016-03-08 01:30:49 -0500 |
---|---|---|
committer | B. Watson <yalhcru@gmail.com> | 2016-03-08 01:30:49 -0500 |
commit | 742808e762c95c77b942b710431a55200f28b5b3 (patch) | |
tree | f98a5b225c8dcde8ac93cc826251a11d80cdd8ba | |
parent | 45d35f025d3ea5490569e46a4df2f773294a7729 (diff) | |
download | taipan-742808e762c95c77b942b710431a55200f28b5b3.tar.gz |
fix title screen breakage
-rw-r--r-- | bigfloat.s | 3 | ||||
-rw-r--r-- | checkmem.s | 6 | ||||
-rw-r--r-- | newtitle.s | 9 | ||||
-rw-r--r-- | taipan.c | 6 |
4 files changed, 16 insertions, 8 deletions
@@ -16,6 +16,8 @@ ; atari.inc also has a typo, PLD1P for FLD1P FLD1P = PLD1P + ;bfstart = * + .rodata BIG_64K: ; 65535 (2**16-1) in float format. .byte $42, $06, $55, $36, $00, $00 @@ -369,3 +371,4 @@ _big_cmp: tax ; sign extension, grr. rts + ;.out .sprintf("bigfloat.s code is %d bytes", *-bfstart) @@ -101,11 +101,11 @@ gr_0: ; save display list pointer where taipan.c's main() can find it. ; this is done ASAP after the CIO call, to avoid saving the DL ; after SpartaDOS's TDLINE has had a chance to modify it. - ; we use FR1 because the menu code in newtitle.s trashes FR0. + ; we use FRE because the menu code in newtitle.s trashes FR0 and FR1. lda SDLSTL - sta FR1 + sta FRE lda SDLSTH - sta FR1+1 + sta FRE+1 rts @@ -285,11 +285,16 @@ start: ; still needs to be done here for the cart. .ifdef CART_TARGET lda SDLSTL - sta FR1 + sta FRE lda SDLSTH - sta FR1+1 + sta FRE+1 .endif + ; helpshowing is FR1, it's being messed with by the checkmem + ; code so we need to initialize it. + lda #0 + sta helpshowing + ; setup our display list lda #<dlist sta SDLSTL @@ -3345,12 +3345,12 @@ hangx: goto hangx; int main(void) { char choice; - /* newtitle.s saves the OS's display list pointer in FR0, + /* newtitle.s saves the OS's display list pointer in FRE, sets up its own DL, and uses narrow playfield mode. First thing we do it put things back the way they were. FONT_ADDR is set on the command line (see the Makefile). */ - POKE(560, PEEK(0xe0)); // restore the - POKE(561, PEEK(0xe1)); // display list + POKE(560, PEEK(0xda)); // restore the + POKE(561, PEEK(0xdb)); // display list POKE(756, FONT_ADDR / 256); // use our custom font POKE(731, 1); // disable keyclick on XL/XE (does nothing on 400/800) POKE(559, 34); // turn on the screen (normal playfield) |