/**************************************************************************** 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