]> pd.if.org Git - mmurtl/blob - ossource/mjob.h
autocommit for file dated 2003-12-29 17:36:54
[mmurtl] / ossource / mjob.h
1 /* MJob.h    MMURTL Job Management prototypes ****/\r
2 \r
3 /* MMURTL Operating System Source Code\r
4    Copyright 1991,1992,1993, Richard A. Burgess\r
5    ALL RIGHTS RESERVED\r
6    Version x0.8\r
7 */\r
8 \r
9 \r
10 #define ErcBadJobNum    70      /* Bad job number was specified in OS call */\r
11 #define ErcInvalidJCB   71      /* Specified an unassigned JCB */\r
12 #define ErcBadRunFile   74      /* Run file you specified is NOT a run file */\r
13 #define ErcBadJobParam  76      /* Bad length in parameter to JCB call */\r
14 \r
15 struct JCBRec {\r
16         long                    JobNum;\r
17         char                    sbJobName[14];          /* 13 bytes. First byte is length */\r
18         char                    *pJcbPD;                        /* Linear add of Job's PD (0=unused) */\r
19 \r
20         char                    *pJcbCode;                      /* User Address of code segment */\r
21         unsigned long   sJcbCode;                       /* Size of user code segment */\r
22         char                    *pJcbData;                      /* User Adresss of data segment */\r
23         unsigned long   sJcbData;                       /* Size of user data segment */\r
24         char                    *pJcbStack;                     /* User Addrees of first stack */\r
25         unsigned long   sJcbStack;                      /* Size of user first stack */\r
26 \r
27         char                    sbUserName[30];         /* User Name for Job - LString */\r
28         char                    sbPath[70];                     /* path name (prefix) - LString */\r
29         char                    JcbExitRF[80];          /* Exit Run file (if any) - LString */\r
30         char                    JcbCmdLine[80];         /* Command Line string - LString */\r
31         char                    JcbSysIn[50];           /* Standard input  - LString */\r
32         char                    JcbSysOut[50];          /* Standard output - LString */\r
33 \r
34         long                    ExitError;                      /* Error Set by ExitJob */\r
35         char                    *pVidMem;                       /* pointer to crnt video buffer */\r
36         char                    *pVirtVid;                      /* Virtual Video Buffer Address */\r
37         long                    CrntX;                          /* Current cursor position */\r
38         long                    CrntY;\r
39         long                    nCols;                          /* Virtual Screen Size */\r
40         long                    nLines;\r
41         long                    VidMode;                        /* 0 = 80x25 VGA color text */\r
42         long                    NormVid;                        /* 7 = WhiteOnBlack */\r
43 \r
44         char                    fCursOn;                        /* FLAG 1 = Cursor is visible */\r
45         char                    fCursType;                      /* FLAG (0=UL, 1 = Block) */\r
46         unsigned char   ScrlCnt;                        /* Count since last pause  */\r
47         char                    fVidPause;                      /* Full screen pause (Text mode) */\r
48         long                    NextJCB;                        /* OS Uses to allocate JCBs */\r
49         char JcbRsvd1[512-22-24-360-36-8]       /* Padded to 512 */\r
50         };\r
51 \r
52 extern far long GetpJCB(long dJobNum, char *pJCBRet);\r
53 extern far long GetJobNum(long *pJobNumRet);\r
54 extern far long LoadNewJob(char *pFileName, long cbFileName, long *pJobNumRet);\r
55 extern far long Chain(char *pFileName, long cbFileName, long dExitError);\r
56 extern far void ExitJob(long dError);\r
57 extern far void KillJob(long JubNum);\r
58 \r
59 extern far long SetUserName(char *pUser, long dcbUser);\r
60 extern far long GetUserName(char *pUserRet, long *pdcbUserRet);\r
61 \r
62 extern far long SetCmdLine(char *pCmd, long dcbCmd);\r
63 extern far long GetCmdLine(char *pCmdRet, long *pdcbCmdRet);\r
64 \r
65 extern far long SetPath(char *pPath, long dcbPath);\r
66 extern far long GetPath(long JobNum, char *pPathRet, long *pdcbPathRet);\r
67 \r
68 extern far long SetExitJob(char *pRunFile, long dcbRunFile);\r
69 extern far long GetExitJob(char *pRunRet, long *pdcbRunRet);\r
70 \r
71 extern far long SetSysIn(char *pFile, long dcbFile);\r
72 extern far long GetSysIn(char *pFileRet, long *pdcbFileRet);\r
73 \r
74 extern far long SetSysOut(char *pFile, long dcbFile);\r
75 extern far long GetSysOut(char *pFileRet, long *pdcbFileRet);\r
76 \r
77 extern far long SetJobName(char *pName, long dcbName);\r
78 \r
79 extern far long RegisterSvc(char *pName, unsigned long Exch);\r
80 \r
81 extern far long UnRegisterSvc(char *pName);\r
82 \r
83 extern far long GetSystemDisk(unsigned char *pDiskRet);\r
84 \r
85 /****** End of Job.h *******/\r