restore compact memory map

This commit is contained in:
4am 2022-01-16 01:11:28 -05:00
parent f5a7d26718
commit 434a17f134
3 changed files with 14 additions and 18 deletions

View File

@ -14,11 +14,10 @@
; 2000..3FFF - hi-res page
; 4000+ - program code (relocated to here at startup)
; ...unused...
; 7900..79FF - target words formatted array
; 7A00..7DFF - ProDOS file buffer for PROGRESS file
; 7E10..7F37 - progress of puzzles in current world
; 7F38..7FFF - address lookup table for puzzles within following world data
; 8000..BEB3 - world data (read from disk)
; 8A00..8DFF - ProDOS file buffer for PROGRESS file
; 8E10..8F37 - progress of puzzles in current world
; 8F38..8FFF - address lookup table for puzzles within following world data
; 9000..BEB3 - world data (read from disk)
; BEB4..BEFF - (de)acceleration function
;------------------------------------------------------------------------------
@ -71,11 +70,11 @@ HGRHI = $1B00 ; 0x00C0 bytes
WORLDFILEBUFFER = $1C00 ; 0x0400 bytes
PREFSFILEBUFFER = $1C00 ; 0x0400 bytes (note: same as WORLDFILEBUFFER)
PROGRESSFILEBUFFER = $7A00; 0x0400 bytes
PACKEDPROGRESS = $7E10 ; 0x00C0 bytes
PROGRESS = $7ED0 ; 0x0068 bytes
PUZZLELO = $7F38 ; 0x0064 bytes
PUZZLEHI = $7F9C ; 0x0064 bytes
WORLDDATA = $8000 ; 0x3F00 bytes max
PROGRESSFILEBUFFER = $8A00; 0x0400 bytes
PACKEDPROGRESS = $8E10 ; 0x00C0 bytes
PROGRESS = $8ED0 ; 0x0068 bytes
PUZZLELO = $8F38 ; 0x0064 bytes
PUZZLEHI = $8F9C ; 0x0064 bytes
WORLDDATA = $9000 ; 0x3F00 bytes max
DisableAccelerator = $BEB4
EnableAccelerator = DisableAccelerator+3

View File

@ -35,10 +35,10 @@ puzzle_data6 = $033A ; [0x08 bytes]
puzzle_data7 = $0342 ; [0x08 bytes]
puzzle_data8 = $034A ; [0x08 bytes]
target_word_count = $0352 ; [0x01 byte ] number of records in <target_words>
target_words = $7900 ; [0x100 bytes]
target_words = $0353 ; [0x80 bytes]
; each 8-byte record is a <puzzle_logical_width>-length word, no prefix
; extra bytes in each record are guaranteed to be 0x00
; max 32 words per puzzle
; max 16 words per puzzle
;------------------------------------------------------------------------------
; InitPuzzleStorage
@ -52,14 +52,11 @@ target_words = $7900 ; [0x100 bytes]
;------------------------------------------------------------------------------
InitPuzzleStorage
sta puzzle_logical_width
ldx #$52
ldx #$CF
lda #0
- sta puzzle_logical_width, x
dex
bne -
- sta target_words, x
inx
bne -
rts
;------------------------------------------------------------------------------

View File

@ -57,7 +57,7 @@ MaybeLoadWorldFromDisk
jsr LoadFile1Shot
!word @filename ; address of filename
!word WORLDDATA ; load address
!word $3F00 ; maximum length
!word $2F00 ; maximum length
!word WORLDFILEBUFFER ; address of ProDOS file buffer
bcs @failure
jsr PreParseWorldData