Newer
Older
uBix-Retro / dump / oa-2.0.9 / lib6502 / libdef.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.

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

/* as LT_ENV is $fc, initializing only 256 bytes to 0 will also set
 * two bytes in LT_ENV to zero, clearing the env list.
 * If LT_ENV increases, this will be bugged in taskinit (libglob.a65)
 */
#define	NUMOFSIG	5	/* number of handled signals */
#define	PATHLEN		64	/* 64 byte max path len, incl drive byte */
#define	MAXFILES	16	/* number of open files */
#define	CMDLEN		128	/* maximum length of command line saved */
#define	ENVLEN		192	/* size of env var list (max 256 byte) */


#define	LT_SIGADDR	0			/* signal addresses */
#define	LT_NTHREADS	0+(NUMOFSIG*2)		/* number of active threads */
#define	LT_INISTACK	1+LT_NTHREADS		/* number of active threads */
#define	LT_FTAB		2+LT_NTHREADS		/* table with file modes */
#define	LT_FSTRR	0+(LT_FTAB+MAXFILES)	/* table with read streams */
#define	LT_FSTRW	0+(LT_FTAB+2*MAXFILES)	/* table with write streams */
#define	LT_PATH		0+(LT_FTAB+3*MAXFILES)	/* PATHLEN byte path */
#define	LT_CMDPARS	0+LT_PATH+PATHLEN	/* command line parameter */
#define	LT_ENV		0+(LT_CMDPARS+CMDLEN)	/* environment var list */
#define	LT_SLEN		LT_ENV+ENVLEN		/* length of struct */

zta	= TASKSAVE
zth	= THREADSAVE
zen	= ENVSAVE

#define	LSEM_MEM	%00000001	/* semaphore for mem subsystem */
#define	LSEM_FILE	%00000010	/* semaphore for file subsystem */
#define	LSEM_LOAD	%00000100	/* semaphore for o65 loader */
#define	LSEM_EXEC	%00001000	/* semaphore for exec */
#define	LSEM_ENV	%00010000	/* semaphore for env handling */

#define	PATH_DRV	0
#define	PATH_NAME	1