type
Node_t=unknown14,
List_t=unknown14,

Task_t=struct{
Node_ttc_Node;
bytetc_Flags;
bytetc_State;
shorttc_IDNestCnt;
shorttc_TDNestCnt;
ulongtc_SigAlloc;
ulongtc_SigWait;
ulongtc_SigRecvd;
ulongtc_SigExcept;
uinttc_TrapAlloc;
uinttc_TrapAble;
*bytetc_ExceptData;
*bytetc_ExceptCode;
*bytetc_TrapData;
*bytetc_TrapCode;
*bytetc_SPReg;
*bytetc_SPLower;
*bytetc_SPUpper;
proc()voidtc_Switch;
proc()voidtc_Launch;
List_ttc_MemEntry;
*bytetc_UserData;
};

byte
TB_PROCTIME=0,
TB_STACKCHK=4,
TB_EXCEPT=5,
TB_SWITCH=6,
TB_LAUNCH=7,

TF_PROCTIME=(1<<0),
TF_STACKCHK=(1<<4),
TF_EXCEPT=(1<<5),
TF_SWITCH=(1<<6),
TF_LAUNCH=(1<<7),

TS_INVALID=0,
TS_ADDED=1,
TS_RUN=2,
TS_READY=3,
TS_WAIT=4,
TS_EXCEPT=5,
TS_REMOVED=6,

SIGB_ABORT=0,
SIGB_CHILD=1,
SIGB_BLIT=4,
SIGB_SINGLE=4,
SIGB_DOS=8,

SIGF_ABORT=(1<<0),
SIGF_CHILD=(1<<1),
SIGF_BLIT=(1<<4),
SIGF_SINGLE=(1<<4),
SIGF_DOS=(1<<8);

extern
AddTask(*Task_ttask;*byteinitialPC,finalPC)void,
AllocSignal(ulongsignalNum)ulong,
AllocTrap(ulongtrapNum)ulong,
CreateTask(*charname;shortpri;*byteinitPC;ulongstackSize)*Task_t,
DeleteTask(*Task_ttask)void,
Disable()void,
Enable()void,
FindTask(*charname)*Task_t,
Forbid()void,
FreeSignal(ulongsigNum)void,
FreeTrap(ulongtrapNum)void,
getCC()uint,
Permit()void,
RemTask(*Task_tt)void,
SetExcept(ulongnewSignals,signalMask)ulong,
SetSignal(ulongnewSignals,signalMask)ulong,
SetSR(ulongnewSR,mask)uint,
SetTaskPri(*Task_tt;longpriority)short,
Signal(*Task_tt;ulongsignals)void,
SuperState()*byte,
UserState(*bytesysStack)void,
Wait(ulongsignalSet)ulong;
