; C STARTUP FOR MC68HC12 ; WITH AUTOMATIC DATA INITIALISATION ; Copyright (c) 2000 by COSMIC Software ; xdef _exit, __stext xref f_main, __sbss, __memory, __idesc__, __stack ; PEAR: equ $000A MODE: equ $000B EBICTL: equ $000E INITRM: equ $0010 INITRG: equ $0011 INITEE: equ $0012 MISC: equ $0013 IRQCR: equ $001E PPAGE: equ $0030 CRGINT: equ $0038 CLKSEL: equ $0039 PLLCTL: equ $003A __stext: clra staa CRGINT ; disable Real Time IRQ staa CLKSEL ; system clock from OSCCLK staa PLLCTL ; Clock Monitor disabled, PLL off sei ; disable interrupts ldaa #$E1 ; Normal Expanded Wide chip mode, no visibility to external bus ; emulation for port E, no emulation for port K staa MODE ; ldaa #$8C ; Enable EBI, NOACCE=1, LSTRE=1, RDWE=1, NECLK=0 staa PEAR ; ldaa #$01 ; Enable Stretch Clock, ESTR=1 staa EBICTL ldaa #$09 ; RAM starts at $1000 staa INITRM ; ldaa #$00 ; Registers starts at $0000 staa INITRG ; ldaa #$00 ; EEPROM starts at $0000 staa INITEE ; ldaa #$09 ; Flash starts at $4000, 2 ECLK stretches staa MISC ; ldaa #$02 ; Set Flash Page to 2, $8000-$BFFF external Memory (MFR4310) staa PPAGE ldx #__sbss ; start of bss