--- /dev/null
+/* MJob.h MMURTL Job Management prototypes ****/\r
+\r
+/* MMURTL Operating System Source Code\r
+ Copyright 1991,1992,1993, Richard A. Burgess\r
+ ALL RIGHTS RESERVED\r
+ Version x0.8\r
+*/\r
+\r
+\r
+#define ErcBadJobNum 70 /* Bad job number was specified in OS call */\r
+#define ErcInvalidJCB 71 /* Specified an unassigned JCB */\r
+#define ErcBadRunFile 74 /* Run file you specified is NOT a run file */\r
+#define ErcBadJobParam 76 /* Bad length in parameter to JCB call */\r
+\r
+struct JCBRec {\r
+ long JobNum;\r
+ char sbJobName[14]; /* 13 bytes. First byte is length */\r
+ char *pJcbPD; /* Linear add of Job's PD (0=unused) */\r
+\r
+ char *pJcbCode; /* User Address of code segment */\r
+ unsigned long sJcbCode; /* Size of user code segment */\r
+ char *pJcbData; /* User Adresss of data segment */\r
+ unsigned long sJcbData; /* Size of user data segment */\r
+ char *pJcbStack; /* User Addrees of first stack */\r
+ unsigned long sJcbStack; /* Size of user first stack */\r
+\r
+ char sbUserName[30]; /* User Name for Job - LString */\r
+ char sbPath[70]; /* path name (prefix) - LString */\r
+ char JcbExitRF[80]; /* Exit Run file (if any) - LString */\r
+ char JcbCmdLine[80]; /* Command Line string - LString */\r
+ char JcbSysIn[50]; /* Standard input - LString */\r
+ char JcbSysOut[50]; /* Standard output - LString */\r
+\r
+ long ExitError; /* Error Set by ExitJob */\r
+ char *pVidMem; /* pointer to crnt video buffer */\r
+ char *pVirtVid; /* Virtual Video Buffer Address */\r
+ long CrntX; /* Current cursor position */\r
+ long CrntY;\r
+ long nCols; /* Virtual Screen Size */\r
+ long nLines;\r
+ long VidMode; /* 0 = 80x25 VGA color text */\r
+ long NormVid; /* 7 = WhiteOnBlack */\r
+\r
+ char fCursOn; /* FLAG 1 = Cursor is visible */\r
+ char fCursType; /* FLAG (0=UL, 1 = Block) */\r
+ unsigned char ScrlCnt; /* Count since last pause */\r
+ char fVidPause; /* Full screen pause (Text mode) */\r
+ long NextJCB; /* OS Uses to allocate JCBs */\r
+ char JcbRsvd1[512-22-24-360-36-8] /* Padded to 512 */\r
+ };\r
+\r
+extern far long GetpJCB(long dJobNum, char *pJCBRet);\r
+extern far long GetJobNum(long *pJobNumRet);\r
+extern far long LoadNewJob(char *pFileName, long cbFileName, long *pJobNumRet);\r
+extern far long Chain(char *pFileName, long cbFileName, long dExitError);\r
+extern far void ExitJob(long dError);\r
+extern far void KillJob(long JubNum);\r
+\r
+extern far long SetUserName(char *pUser, long dcbUser);\r
+extern far long GetUserName(char *pUserRet, long *pdcbUserRet);\r
+\r
+extern far long SetCmdLine(char *pCmd, long dcbCmd);\r
+extern far long GetCmdLine(char *pCmdRet, long *pdcbCmdRet);\r
+\r
+extern far long SetPath(char *pPath, long dcbPath);\r
+extern far long GetPath(long JobNum, char *pPathRet, long *pdcbPathRet);\r
+\r
+extern far long SetExitJob(char *pRunFile, long dcbRunFile);\r
+extern far long GetExitJob(char *pRunRet, long *pdcbRunRet);\r
+\r
+extern far long SetSysIn(char *pFile, long dcbFile);\r
+extern far long GetSysIn(char *pFileRet, long *pdcbFileRet);\r
+\r
+extern far long SetSysOut(char *pFile, long dcbFile);\r
+extern far long GetSysOut(char *pFileRet, long *pdcbFileRet);\r
+\r
+extern far long SetJobName(char *pName, long dcbName);\r
+\r
+extern far long RegisterSvc(char *pName, unsigned long Exch);\r
+\r
+extern far long UnRegisterSvc(char *pName);\r
+\r
+extern far long GetSystemDisk(unsigned char *pDiskRet);\r
+\r
+/****** End of Job.h *******/\r