; *************************************************************** ; * Copyright (C) 2005, Embed Inc (http://www.embedinc.com) * ; * * ; * Permission to copy this file is granted as long as this * ; * copyright notice is included in its entirety at the * ; * beginning of the file, whether the file is copied in whole * ; * or in part and regardless of whether other information is * ; * added to the copy. * ; * * ; * The contents of this file may be used in any way, * ; * commercial or otherwise. This file is provided "as is", * ; * and Embed Inc makes no claims of suitability for a * ; * particular purpose nor assumes any liability resulting from * ; * its use. * ; *************************************************************** ; ; This module contains the main application routine that is run after the ; system is initialized. ; /include "qq2.ins.aspic" extern_flags ;declare global flag bits EXTERN ;******************************************************************************* ; ; Configuration constants. ; lbank equ 0 ;register bank for the local state of this module ; ; Derived constants. ; lbankadr equ bankadr(lbank) ;address within local state register bank ;******************************************************************************* ; ; Global state. All this state is assumed to be in the GBANK register bank by ; other modules. ; defram gbankadr ;******************************************************************************* ; ; Local state. ; defram lbankadr .main code ;******************************************************************************* ; ; Routine MAIN ; ; This entry point is jumped to from the INIT module, once system ; initialization is complete. ; glbent main ;********** ; ; Initialize the state managed by this module. ; ;********** ; ; Main application loop. Back here to look for something to do. Whenever ; something is found that needs handling, a handler routine is jumped to. All ; handler routines jump back to LOOP_MAIN when done. This means events are ; checked in priority order, with high priority events checked earlier. ; glbent loop_main gcall task_yield ;give all other tasks a chance to run ; ; Go back and check all events again. ; jump loop_main end