Figure 1

int       far StartTaskSwitcher(void);
void      far CloseAllTasks(void);
int       far OpenTask(int task_id, void far *function,
                      unsigned stack_size,
                      void far *stack_ptr, int task_att);
int       far CloseTask(int TaskID);
int       far SuspendTask(int TaskID);
int       far ResumeTask(int TaskID);
void      far ReleaseTask(void);
int       far CurrentTask(void);
int       far AvailTask(void);
int       far IsTaskOpen(int TaskID);
int       far IsTaskActive(int TaskID);
int       far TaskAttribute(int TaskID,
                            int Attribute);
int       far PostTaskMsg(int       TaskID,
                          void far *Message,
                          int       Operation);
void      far PendTaskMsg(int Operation);
int       far SemProtect(int        SemID,
                         void far  *Function,
                         semaphore  Sem);
int       far GetSemaphore(int SemID);
int       far ReleaseSemaphore(int SemID);
unsigned  far InKey(void);