restore compact memory map
This commit is contained in:
parent
f5a7d26718
commit
434a17f134
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue