init work
This commit is contained in:
parent
9ab9d8ba79
commit
213ef1dc5f
|
@ -40,29 +40,15 @@ __program_root_section:
|
||||||
txs ; set stack
|
txs ; set stack
|
||||||
lda ##_DirectPageStart
|
lda ##_DirectPageStart
|
||||||
tcd ; set direct page
|
tcd ; set direct page
|
||||||
#ifdef __CALYPSI_DATA_MODEL_SMALL__
|
|
||||||
lda ##0
|
|
||||||
#else
|
|
||||||
lda ##.word2 _NearBaseAddress
|
lda ##.word2 _NearBaseAddress
|
||||||
#endif
|
|
||||||
stz dp:.tiny(_Vfp+2)
|
stz dp:.tiny(_Vfp+2)
|
||||||
xba ; A upper half = data bank
|
xba ; A upper half = data bank
|
||||||
pha
|
pha
|
||||||
plb ; pop 8 dummy
|
plb ; pop 8 dummy
|
||||||
plb ; set data bank
|
plb ; set data bank
|
||||||
|
|
||||||
#ifdef __CALYPSI_CODE_MODEL_COMPACT__
|
|
||||||
jmp long:_Trampoline_program_start
|
|
||||||
.section compactcode, noreorder
|
|
||||||
_Trampoline_program_start:
|
|
||||||
#define CODE compactcode
|
|
||||||
#else
|
|
||||||
#define CODE code
|
|
||||||
#endif
|
|
||||||
call __low_level_init
|
|
||||||
|
|
||||||
;;; **** Initialize data sections if needed.
|
;;; **** Initialize data sections if needed.
|
||||||
.section CODE, noroot, noreorder
|
.section code, noroot, noreorder
|
||||||
.pubweak __data_initialization_needed
|
.pubweak __data_initialization_needed
|
||||||
.extern __initialize_sections
|
.extern __initialize_sections
|
||||||
__data_initialization_needed:
|
__data_initialization_needed:
|
||||||
|
@ -77,24 +63,17 @@ __data_initialization_needed:
|
||||||
call __initialize_sections
|
call __initialize_sections
|
||||||
|
|
||||||
;;; **** Initialize streams if needed.
|
;;; **** Initialize streams if needed.
|
||||||
.section CODE, noroot, noreorder
|
.section code, noroot, noreorder
|
||||||
.pubweak __call_initialize_global_streams
|
.pubweak __call_initialize_global_streams
|
||||||
.extern __initialize_global_streams
|
.extern __initialize_global_streams
|
||||||
__call_initialize_global_streams:
|
__call_initialize_global_streams:
|
||||||
call __initialize_global_streams
|
call __initialize_global_streams
|
||||||
|
|
||||||
;;; **** Initialize heap if needed.
|
;;; **** Initialize heap if needed.
|
||||||
.section CODE, noroot, noreorder
|
.section code, noroot, noreorder
|
||||||
.pubweak __call_heap_initialize
|
.pubweak __call_heap_initialize
|
||||||
.extern __heap_initialize, __default_heap
|
.extern __heap_initialize, __default_heap
|
||||||
__call_heap_initialize:
|
__call_heap_initialize:
|
||||||
#ifdef __CALYPSI_DATA_MODEL_SMALL__
|
|
||||||
lda ##.sectionSize heap
|
|
||||||
sta dp:.tiny(_Dp+2)
|
|
||||||
lda ##.sectionStart heap
|
|
||||||
sta dp:.tiny(_Dp+0)
|
|
||||||
lda ##__default_heap
|
|
||||||
#else
|
|
||||||
lda ##.word2 (.sectionStart heap)
|
lda ##.word2 (.sectionStart heap)
|
||||||
sta dp:.tiny(_Dp+6)
|
sta dp:.tiny(_Dp+6)
|
||||||
lda ##.word0 (.sectionStart heap)
|
lda ##.word0 (.sectionStart heap)
|
||||||
|
@ -105,24 +84,9 @@ __call_heap_initialize:
|
||||||
sta dp:.tiny(_Dp+0)
|
sta dp:.tiny(_Dp+0)
|
||||||
ldx ##.word2 (.sectionSize heap)
|
ldx ##.word2 (.sectionSize heap)
|
||||||
lda ##.word0 (.sectionSize heap)
|
lda ##.word0 (.sectionSize heap)
|
||||||
#endif
|
|
||||||
call __heap_initialize
|
call __heap_initialize
|
||||||
|
|
||||||
.section CODE, root, noreorder
|
.section code, root, noreorder
|
||||||
lda ##0 ; argc = 0
|
lda ##0 ; argc = 0
|
||||||
call main
|
jsl long:main
|
||||||
jump exit
|
jump exit
|
||||||
|
|
||||||
;;; ***************************************************************************
|
|
||||||
;;;
|
|
||||||
;;; __low_level_init - custom low level initialization
|
|
||||||
;;;
|
|
||||||
;;; This default routine just returns doing nothing. You can provide your own
|
|
||||||
;;; routine, either in C or assembly for doing custom low leve initialization.
|
|
||||||
;;;
|
|
||||||
;;; ***************************************************************************
|
|
||||||
|
|
||||||
.section libcode
|
|
||||||
.pubweak __low_level_init
|
|
||||||
__low_level_init:
|
|
||||||
return
|
|
||||||
|
|
Loading…
Reference in New Issue