mirror of
https://codeberg.org/hkzlab/TK2048.git
synced 2026-01-01 17:49:19 +11:00
Restore ZP saving, add initialization of ZP, remove BASIC stub
This commit is contained in:
parent
9983fd8bcd
commit
3bbaae64d5
5 changed files with 32 additions and 11 deletions
|
|
@ -11,6 +11,7 @@
|
|||
#include "game_graphics.h"
|
||||
#include "monitor_subroutines.h"
|
||||
|
||||
#pragma require __preserve_zp
|
||||
// Make sure the loading screen is included
|
||||
#pragma require __loading_screen
|
||||
|
||||
|
|
|
|||
12
src/preserve_zero_pages.s
Normal file
12
src/preserve_zero_pages.s
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
.rtmodel version, "1"
|
||||
.rtmodel core, "*"
|
||||
|
||||
;; External declarations
|
||||
.section registers ; pseudo registers in zero page
|
||||
|
||||
.section zpsave, noinit
|
||||
.pubweak __preserve_zp
|
||||
__preserve_zp: ; This symbol meant to be required
|
||||
.space 256
|
||||
.require __preserve_zp_needed
|
||||
.require __restore_zp_needed
|
||||
|
|
@ -7,6 +7,7 @@
|
|||
.section heap
|
||||
.section data_init_table
|
||||
.section registers ; pseudo registers in zero page
|
||||
.section zpsave ; this is where pseudo registers are saved
|
||||
|
||||
.extern main, exit, __low_level_init
|
||||
.extern _Zp, _Vsp, _Vfp
|
||||
|
|
@ -19,14 +20,23 @@ call: .macro dest
|
|||
|
||||
.section programStart, root
|
||||
__program_root_section:
|
||||
.word nextLine
|
||||
.byte 0x0a, 0x00 ; 10
|
||||
.byte 0x8c, 0x32, 0x30, 0x36, 0x32, 0x00 ; CALL 2062
|
||||
nextLine: .byte 0x00, 0x00 ; end of program
|
||||
|
||||
jmp __program_start
|
||||
.section startup, root, noreorder
|
||||
__program_start:
|
||||
.section startup, noreorder
|
||||
.pubweak __preserve_zp_needed
|
||||
__preserve_zp_needed:
|
||||
ldx #.sectionSize registers - 1
|
||||
- lda zp:.sectionStart registers,x
|
||||
sta .sectionStart zpsave,x
|
||||
dex
|
||||
bpl -
|
||||
|
||||
.section startup, root, noreorder
|
||||
lda #.byte0(.sectionEnd cstack)
|
||||
sta zp:_Vsp
|
||||
lda #.byte1(.sectionEnd cstack)
|
||||
sta zp:_Vsp+1
|
||||
jsr __low_level_init
|
||||
|
||||
;;; Initialize data sections if needed.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue