Files
cctl/boot/start.asm
T

102 lines
2.1 KiB
NASM

.globl __start__stack
;--------------------------------------------------------
; Stack segment in internal ram
;--------------------------------------------------------
.area SSEG (DATA)
__start__stack:
.ds 1
;--------------------------------------------------------
; interrupt vector
;--------------------------------------------------------
.area VECTOR (CODE)
.globl __interrupt_vect
__interrupt_vect:
ljmp __sdcc_gsinit_startup
ljmp #(0x400+0x03)
.ds 5
ljmp #(0x400+0x0B)
.ds 5
ljmp uart0_isr_forward;
.ds 5
ljmp #(0x400+0x1B)
.ds 5
ljmp #(0x400+0x23)
.ds 5
ljmp #(0x400+0x2B)
.ds 5
ljmp #(0x400+0x33)
.ds 5
ljmp #(0x400+0x3B)
.ds 5
ljmp #(0x400+0x43)
.ds 5
ljmp #(0x400+0x4B)
.ds 5
ljmp #(0x400+0x53)
.ds 5
ljmp #(0x400+0x5B)
.ds 5
ljmp #(0x400+0x63)
.ds 5
ljmp #(0x400+0x6B)
.ds 5
ljmp #(0x400+0x73)
.ds 5
ljmp #(0x400+0x7B)
.ds 5
ljmp #(0x400+0x83)
.ds 5
ljmp #(0x400+0x8B)
.ds 5
uart0_isr_forward:
push psw
jnb psw.1, 00001$
pop psw
ljmp _uart0_isr
00001$:
pop psw
ljmp #(0x400+0x13)
;--------------------------------------------------------
; external initialized ram data
;--------------------------------------------------------
.area XISEG (XDATA)
.area HOME (CODE)
.area GSINIT0 (CODE)
.area GSINIT1 (CODE)
.area GSINIT2 (CODE)
.area GSINIT3 (CODE)
.area GSINIT4 (CODE)
.area GSINIT5 (CODE)
.area GSINIT (CODE)
.area GSFINAL (CODE)
.area CSEG (CODE)
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
.area GSINIT (CODE)
.globl __sdcc_gsinit_startup
.globl __sdcc_program_startup
.globl __start__stack
.globl __mcs51_genXINIT
.globl __mcs51_genXRAMCLEAR
.globl __mcs51_genRAMCLEAR
.area GSFINAL (CODE)
.globl __sdcc_program_startup
ljmp __sdcc_program_startup
;--------------------------------------------------------
; Home
;--------------------------------------------------------
.area HOME (CODE)
.area HOME (CODE)
__sdcc_program_startup:
lcall _bootloader_main
; return from main will lock up
sjmp .