--- /dev/null
+#include "vend.h"
+
+void _start() {
+}
+
--- /dev/null
+/* memory.x -- Memory definition for a 68HC11 program in EEPROM (512 bytes)
+ Copyright 2001 Free Software Foundation, Inc.
+
+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);
--- /dev/null
+/* M68HC11 Interrupt vectors table
+ Copyright (C) 1999 Free Software Foundation, Inc.
+
+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)
+
--- /dev/null
+#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_ */