⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mjob.h

📁 MMURTL(tm) Computer Operating System Ver x0.8, source code.
💻 H
字号:
/* MJob.h    MMURTL Job Management prototypes ****/

/* MMURTL Operating System Source Code
   Copyright 1991,1992,1993, Richard A. Burgess
   ALL RIGHTS RESERVED
   Version x0.8
*/


#define ErcBadJobNum	70	/* Bad job number was specified in OS call */
#define ErcInvalidJCB	71	/* Specified an unassigned JCB */
#define ErcBadRunFile	74	/* Run file you specified is NOT a run file */
#define ErcBadJobParam	76	/* Bad length in parameter to JCB call */

struct JCBRec {
	long 			JobNum;
	char 			sbJobName[14];		/* 13 bytes. First byte is length */
	char			*pJcbPD;			/* Linear add of Job's PD */

	char 			*pJcbCode;			/* User Address of code segment */
	unsigned long	sJcbCode;			/* Size of user code segment */
	char			*pJcbData;			/* User Adresss of data segment */
	unsigned long 	sJcbData;			/* Size of user data segment */
	char 			*pJcbStack;			/* User Addrees of first stack */
	unsigned long	sJcbStack;			/* Size of user first stack */

	char 			sbUserName[30];		/* User Name for Job - LString */
	char 			sbPath[70];			/* path name (prefix) - LString */
	char 			JcbExitRF[80];		/* Exit Run file (if any) - LString */
	char 			JcbCmdLine[80];		/* Command Line string - LString */
	char 			JcbSysIn[50];		/* Standard input  - LString */
	char 			JcbSysOut[50];		/* Standard output - LString */

	long  			ExitError;			/* Error Set by ExitJob */
	char 			*pVidMem;			/* pointer to crnt video buffer */
	char 			*pVirtVid;			/* Virtual Video Buffer Address */
	long 			CrntX;				/* Current cursor position */
	long 			CrntY;
	long 			nCols;				/* Virtual Screen Size */
	long 			nLines;
	long 			VidMode;			/* 0 = 80x25 VGA color text */
	long 			NormVid;			/* 7 = WhiteOnBlack */

	char 			fCursOn;			/* FLAG 1 = Cursor is visible */
	char 			fCursType;			/* FLAG	(0=UL, 1 = Block) */
	unsigned char 	ScrlCnt;			/* Count since last pause  */
	char 			fVidPause;			/* Full screen pause (Text mode) */
	long 			NextJCB;			/* OS Uses to allocate JCBs */
	char JcbRsvd1[512-22-24-360-36-8]	/* Padded to 512 */
	};

extern far long GetpJCB(long dJobNum, char *pJCBRet);
extern far long GetJobNum(long *pJobNumRet);
extern far long LoadNewJob(char *pFileName, long cbFileName, long *pJobNumRet);
extern far long Chain(char *pFileName, long cbFileName, long dExitError);
extern far void ExitJob(long dError);

extern far long SetUserName(char *pUser, long dcbUser);
extern far long GetUserName(char *pUserRet, long *pdcbUserRet);

extern far long SetCmdLine(char *pCmd, long dcbCmd);
extern far long GetCmdLine(char *pCmdRet, long *pdcbCmdRet);

extern far long SetPath(char *pPath, long dcbPath);
extern far long GetPath(long JobNum, char *pPathRet, long *pdcbPathRet);

extern far long SetExitJob(char *pRunFile, long dcbRunFile);
extern far long GetExitJob(char *pRunRet, long *pdcbRunRet);

extern far long SetSysIn(char *pFile, long dcbFile);
extern far long GetSysIn(char *pFileRet, long *pdcbFileRet);

extern far long SetSysOut(char *pFile, long dcbFile);
extern far long GetSysOut(char *pFileRet, long *pdcbFileRet);

extern far long RegisterSvc(char *pName, unsigned long Exch);

/****** End of Job.h *******/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -