;; ;; mur.sat ;; ;; Somewhen in the year 2011, mur.at will have a nano satellite launched ;; into a low earth orbit (310 km above the surface of our planet). The ;; satellite itself is a TubeSat personal satellite kit, developed and ;; launched by interorbital systems. mur.sat is a joint venture of mur.at, ;; ESC im Labor and realraum. ;; ;; Please visit the project hompage at sat.mur.at for further information. ;; ;; ;; Copyright (C) 2011 Christian Pointner ;; ;; This file is part of mur.sat. ;; ;; mur.sat 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 3 of the License, or ;; any later version. ;; ;; mur.sat 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 mur.sat. If not, see . ;; ;; ------------------------------------- ;; PREAMBLE LIST p=16F887 include "p16f887.inc" ;; TODO: set correct configuration bits __config _FCMEN_OFF & _IESO_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT ;; ------------------------------------- ;; DEFINES ;; TODO: find right address for context save registers W_TEMP EQU H'007E' STATUS_TEMP EQU H'007F' ;; ------------------------------------- ;; Reset Vector org 0 goto init ;; ------------------------------------- ;; Interrupt Vector org 4 ;; save context movwf W_TEMP swapf STATUS,W movwf STATUS_TEMP ;; TODO: implement interrupt service routines interrupt_end ;; restore context swapf STATUS_TEMP,W movwf STATUS swapf W_TEMP,F swapf W_TEMP,W retfie ;; ------------------------------------- ;; INIT init ;; bank 1 ;; TODO: do init stuff goto main ;; ------------------------------------- ;; TABLES ;; TODO: add lookup tables if needed ;; ------------------------------------- ;; SUBROUTINES ;; TODO: add subroutines ;; ------------------------------------- ;; MAINLOOP main ;; TODO: add main code powerdown sleep goto main ;; ------------------------------------- ;; END end