Files that got left out - initial commits
authorBernard Blackham <[email protected]>
Tue, 5 Aug 2003 15:47:04 +0000 (15:47 +0000)
committerBernard Blackham <[email protected]>
Tue, 5 Aug 2003 15:47:04 +0000 (15:47 +0000)
ROM2/main.c [new file with mode: 0644]
ROM2/memory.x [new file with mode: 0644]
ROM2/vectors.s [new file with mode: 0644]
ROM2/vend.h [new file with mode: 0644]

diff --git a/ROM2/main.c b/ROM2/main.c
new file mode 100644 (file)
index 0000000..3331548
--- /dev/null
@@ -0,0 +1,5 @@
+#include "vend.h"
+
+void _start() {
+}
+
diff --git a/ROM2/memory.x b/ROM2/memory.x
new file mode 100644 (file)
index 0000000..53ab87c
--- /dev/null
@@ -0,0 +1,32 @@
+/* memory.x -- Memory definition for a 68HC11 program in EEPROM (512 bytes)
+   Copyright 2001 Free Software Foundation, Inc.
+   Written by Stephane Carrez ([email protected])
+
+This file is part of GTAM.
+
+GTAM 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.
+
+GTAM 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 GTAM; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* Defines the memory layout for a bootstrap program.
+   Pretend there is no data section.  */
+MEMORY
+{
+  page0 (rwx) : ORIGIN = 0x0000, LENGTH = 0x00ff
+  text  (rx)  : ORIGIN = 0x8000, LENGTH = 0x7fff
+  data  (rw)  : ORIGIN = 0x0100, LENGTH = 0x0fff /* FIXME */
+}
+
+/* Setup the stack on the top of the data internal ram (not used).  */
+PROVIDE (_stack = 0x0100-1);
diff --git a/ROM2/vectors.s b/ROM2/vectors.s
new file mode 100644 (file)
index 0000000..642f6da
--- /dev/null
@@ -0,0 +1,88 @@
+/* M68HC11 Interrupt vectors table
+   Copyright (C) 1999 Free Software Foundation, Inc.
+   Written by Stephane Carrez ([email protected])   
+
+This file 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.
+
+In addition to the permissions in the GNU General Public License, the
+Free Software Foundation gives you unlimited permission to link the
+compiled version of this file with other programs, and to distribute
+those programs without any restriction coming from the use of this
+file.  (The General Public License restrictions do apply in other
+respects; for example, they cover modification of the file, and
+distribution when not linked into another program.)
+
+This file 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; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+       .sect .text
+       .globl _start
+
+;; Default interrupt handler.
+       .sect .text
+def:
+       rti
+
+       .globl _debug_user_vectors
+_debug_user_vectors = 0
+
+;; 
+;; Interrupt vectors are in a specific section that is
+;; mapped at 0xffc0. 
+;;
+       .sect .vectors
+       .globl vectors
+vectors:
+       .word def               ; ffc0
+       .word def               ; ffc2
+       .word def               ; ffc4
+       .word def               ; ffc6
+       .word def               ; ffc8
+       .word def               ; ffca
+       .word def               ; ffcc
+       .word def               ; ffce
+       .word def               ; ffd0
+       .word def               ; ffd2
+       .word def               ; ffd4
+
+       ;; SCI
+       .word def               ; ffd6
+
+       ;; SPI
+       .word def               ; ffd8
+       .word def               ; ffda (PAII)
+       .word def               ; ffdc (PAOVI)
+       .word def               ; ffde (TOI)
+
+       ;; Timer Output Compare
+       .word def               ; ffe0
+       .word def               ; ffe2
+       .word def               ; ffe4
+       .word def               ; ffe6
+       .word def               ; ffe8
+
+       ;; Timer Input compare
+       .word def               ; ffea
+       .word def               ; ffec
+       .word def               ; ffee
+
+       ;;  Misc
+       .word def               ; fff0 (RTII)
+       .word def       ; fff2 (IRQ)
+       .word def               ; fff4 (XIRQ)
+       .word def               ; fff6 (SWI)
+       .word def               ; fff8 (ILL)
+       .word def               ; fffa (COP Failure)
+       .word def               ; fffc (COP Clock monitor)
+       .word _start            ; fffe (reset)
+
diff --git a/ROM2/vend.h b/ROM2/vend.h
new file mode 100644 (file)
index 0000000..4584f5e
--- /dev/null
@@ -0,0 +1,51 @@
+#ifndef _VEND_H_
+#define _VEND_H_
+
+/* FIXME: are these typedefs right for m68hc11-gcc? */
+typedef unsigned char    u8;
+typedef signed char      s8;
+typedef unsigned short   u16;
+typedef signed short     s16;
+typedef unsigned long    u32;
+typedef signed long      s32;
+typedef u8               bool;
+typedef u16           addr_t;
+
+/******* from display.c *******/
+
+/* scrolling modes */
+#define WRAP_SCROLL_L  1  /* scroll to the left     */
+#define WRAP_SCROLL_R  1  /* scroll to the right    */
+#define WRAP_ALTERNATE 2  /* alternate between text */
+
+extern char current_message[1024];
+
+void set_msg(char* newmsg);
+void set_wrap_mode(u8 new_wrap_mode);
+void display_refresh();
+
+/******* from helpers.c *******/
+#define buffered_port_h(p) \
+       void outb_##p(u8 b); \
+       void bset_##p(u8 mask); \
+       void bclr_##p(u8 mask);
+
+void outb(u16 port, u8 byte);
+void bset(u16 addr, u8 mask);
+void bclr(u16 addr, u8 mask);
+
+buffered_port_h(3800);
+
+void delay(u16 ms);
+
+/******** Some IO Ports ******/
+#define PORTA             0x1000
+#define PORTA_DISP_RESET    0x80 /* active low */
+
+#define SPCR              0x1028 /* Serial Peripheral Control Register */
+#define SPCR_SPE            0x40 /* Serial Peripheral System Enable    */
+
+/* Address 3800 bits */
+#define A3800_DISPLAY_WRITE  0x04
+
+#endif /* _VEND_H_ */

UCC git Repository :: git.ucc.asn.au