aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2016-02-11 05:41:58 -0500
committerB. Watson <yalhcru@gmail.com>2016-02-11 05:41:58 -0500
commit0c50cc1c673545843830334fe8d277c79e4b33cb (patch)
treec1e7e8e57d3b471b7cf45479e9ad0748369f44d9
parentc7b877bb5f504fe33d23c4283a4df45a405c4171 (diff)
downloadtaipan-0c50cc1c673545843830334fe8d277c79e4b33cb.tar.gz
add another text brightness level, make cartridge display list comply with Atari standards
-rw-r--r--DOSes.txt6
-rw-r--r--newtitle.s19
-rw-r--r--titlecompression.txt7
3 files changed, 22 insertions, 10 deletions
diff --git a/DOSes.txt b/DOSes.txt
index c0b5026..160f715 100644
--- a/DOSes.txt
+++ b/DOSes.txt
@@ -41,11 +41,13 @@ Tested on actual hardware:
- SIDE2: success (older Taipan build though, need to get results for latest)
- APE loader: success
- DOS XL 2.30: success
-- SpartaDOS 3.2dx: fails to load. This is 3.2d patched for the XF551 drive.
-- SpartaDOS 3.2g/3.2gx with MIO: failure.
- Micro SpartaDOS 2.2 and 4.6: success.
- RealDOS build 0032: success (even with MIO active and TDLINE running!)
- Atarimax flash cart EXE loader: success
+- SpartaDOS 3.2dx: success when loading from floppy, hard disk, or
+ MIO RAMdisk. Fails when attempting to load from APE
+ emulated drive under this DOS (which I suspect isn't
+ Taipan's fault).
Tested on emulators:
diff --git a/newtitle.s b/newtitle.s
index 5fdf37e..acce7c2 100644
--- a/newtitle.s
+++ b/newtitle.s
@@ -69,7 +69,7 @@ colorchoices:
.byte $c0,$10,$00
colorcount = (*-colorchoices)-1
textchoices:
- .byte $0c,$0e,$0a
+ .byte $08,$0a,$0c,$0e
textcount = (*-textchoices)-1
wait1jiffy:
@@ -120,11 +120,19 @@ bottomscanlines = (totalscanlines - topscanlines)
.word arg
.endmacro
- ; display list here
+ ; display list here. slightly different display for the xex and
+ ; cart versions: the cart has an extra blank scanline just before the
+ ; menu GR.0 line, but one less blank at the top (so it comes out the same).
+ ; this is really nitpicking, but why not?
+
dlist:
dlbyte $70 ; 24 scanlines of blanks
dlbyte $70
+ .ifdef CART_TARGET
+ dlbyte $60
+ .else
dlbyte $70
+ .endif
dl3byte $0f | $40, screendata ; LMS, BASIC mode 8
.repeat topscanlines - 1
@@ -138,14 +146,15 @@ dlist:
.ifdef CART_TARGET
dl3byte $01, dl_ram ; DL is mainly in ROM, jump to RAM (extra scanline)
.else
+ ;dlbyte $00 ; extra blank scanline, to match the cart version (removed by request)
dl3byte $02 | $40, version ; LMS, 1 line of GR.0 for the version
help_lms = * - 2
dl3byte $41, dlist ; JVB, jump & wait for vblank
.endif
- .out .sprintf("dl start $%x, end $%x, size %d", dlist, *, (* - dlist) + 1)
+ .out .sprintf("dl start $%x, end $%x, size %d", dlist, *-1, (* - dlist) + 1)
- .out .sprintf("C code can load at $%x", * + 1)
+ .out .sprintf("C code can load at $%x", *)
helpshowing = FR1
@@ -276,7 +285,7 @@ start:
sta CH
ldx #0 ; X = index into bg color choices
- ldy #0 ; Y = index into text color choices
+ ldy #textcount ; Y = index into text color choices
; wait for user to press a key
wait4key:
diff --git a/titlecompression.txt b/titlecompression.txt
index 456ddf2..6a17f56 100644
--- a/titlecompression.txt
+++ b/titlecompression.txt
@@ -1,6 +1,7 @@
-The title screen uses a crude form of compression, which I'll call ZRLE
-(zero-run length encoding). It's a special-purpose compression scheme
-I came up with, to meet the following requirements:
+For the .xex build (but not the cartridge), the title screen uses
+a crude form of compression, which I'll call ZRLE (zero-run length
+encoding). It's a special-purpose compression scheme I came up with,
+to meet the following requirements:
- Must be able to compress the Taipan title screen by at least 33%
(66% compression ratio, where the decompress code is counted as part