Blame | Last modification | View Log | Download
;--------------------------------------------------------------------------; crt0.s - Generic crt0.s for a rabbit 2000; derived from "Generic crt0.s for a Z80";; Copyright (C) 2000, Michael Hope; Modified for rabbit by Leland Morrison 2011;; This library is free software; you can redistribute it and/or modify it; under the terms of the GNU General Public License as published by the; Free Software Foundation; either version 2, or (at your option) any; later version.;; This library is distributed in the hope that it will be useful,; but WITHOUT ANY WARRANTY; without even the implied warranty of; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the; GNU General Public License for more details.;; You should have received a copy of the GNU General Public License; along with this library; see the file COPYING. If not, write to the; Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,; MA 02110-1301, USA.;; As a special exception, if you link this library with other files,; some of which are compiled with SDCC, to produce an executable,; this library does not by itself cause the resulting executable to; be covered by the GNU General Public License. This exception does; not however invalidate any other reasons why the executable file; might be covered by the GNU General Public License.;--------------------------------------------------------------------------.module crt0.globl _main.area _HEADER (ABS);; Reset vector.org 0jp init.org 0x08reti.org 0x10reti.org 0x18reti.org 0x20reti.org 0x28reti.org 0x30reti.org 0x38reti.org 0x100init:;; Set stack pointer directly above top of memory.ld sp,#0x0000;; Initialise global variablescall gsinitcall _mainjp _exit;; Ordering of segments for the linker..area _HOME.area _CODE.area _INITIALIZER.area _GSINIT.area _GSFINAL.area _DATA.area _INITIALIZED.area _BSEG.area _BSS.area _HEAP.area _CODE__clock::ld a,#2rst #0x28ret_exit::;; Exit - special code to the emulatorld a,#0rst #0x281$:;halt ; opcode for halt used for 'altd' on rabbit processorsjr 1$.area _GSINITgsinit::ld bc, #l__INITIALIZERld a, bor a, cjr Z, gsinit_nextld de, #s__INITIALIZEDld hl, #s__INITIALIZERldirgsinit_next:.area _GSFINALret