Newer
Older
uBix-Retro / dump / oa-2.0.9 / arch / embedded / rom.a65
/****************************************************************************
   
    OS/A65 Version 2.0.0
    Multitasking Operating System for 6502 Computers

    Copyright (C) 1989-1998 Andre Fachat 

    This program 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 of the License, or
    (at your option) any later version.

    This program 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 program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

****************************************************************************/


/***************************************************************************/
/*			These defines control the ROM build		   */ 
/*									   */ 

#define   ROM

/* These are necessary for embedded kernel *********************************/

#define   NOMMU   
#define   NOSYSPORT
#undef 	  CLK2MHZ		/* we only have approx. 1 MHz ... */
#undef	  CMOSCPU		/* ... and CMOS cpu ? not if we keep save */
#define	  RAMTEST
#define	  NOMIRRORMEM

/* These are changeable ****************************************************/

#define	MIN_MEM		$04	/* minimum memory we need in system env. to 
				   work ok, in pages */

#define	RAMEND		$20	/* where the ROM starts (in pages) */

#define	MEMINIVAL	0	/* Clear memory to 0 on boot */

#undef	STACKCOPY		/* if defined, save stack area in memory
				   when context switching, otherwise divide
				   stack area and give each task a part.
				   It's faster without, but allows more
				   tasks with */

#undef NMIDEV			/* necessary for fast RS232 */
			
#define	NO_STREAMS		/* no stream handling code included */

#define	NO_FSM			/* no filesystem manager code included */

#define	NO_SEM			/* no semaphore code */

#define	NO_SEND			/* no SEND/RECEIVE/XRECEIVE calls */

#define	NO_DEVICE		/* no DEVICE handling */

#define	EOK_SEPARATE		/* include kernel/end.a65 separately */

#undef	EOK_NOFILL		/* don't fill ROM till $ffff */

/***************************************************************************/
/* 			You should include your application files below    */
/*									   */ 

#include  "config.i65"
#include  "kdefs.i65"

#include  "kernel.i65"

          .word $2000

.(

/*
 * This inverses the order in which the kernel is assembled.
 * This need not be but is working when EOK_SEPARATE is set.
 */

          
#include  "kernel/kernel.a65"

	  .dsb 64,0	; this is only to identify the kernel end in hexdump
			; and can be removed

/*
 * Here come the application files.
 */

ROMSTART  =*

#include  "devices/romdev.a65"

          .word -1

/*
 * This ends the kernel by filling till $fff* and putting the reset vectors
 */

#include  "kernel/end.a65"

.)