From 0c50cc1c673545843830334fe8d277c79e4b33cb Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Thu, 11 Feb 2016 05:41:58 -0500 Subject: add another text brightness level, make cartridge display list comply with Atari standards --- DOSes.txt | 6 ++++-- newtitle.s | 19 ++++++++++++++----- titlecompression.txt | 7 ++++--- 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 -- cgit v1.2.3