static char RCSId[] = "$Id: kernel.c,v 1.2 1993/07/04 04:04:21 root Exp root $"; static char Copyright[] = "Copyright Robert J. Amstadt, 1993"; #include <stdio.h> #include <stdlib.h> #include "prototypes.h" extern unsigned short *Stack16Frame; /********************************************************************** * KERNEL_LockSegment */ int KERNEL_LockSegment(int segment) { if (segment == -1) segment = *(Stack16Frame + 6); #ifdef RELAY_DEBUG printf("LockSegment: segment %x\n", segment); #endif return segment; } /********************************************************************** * KERNEL_UnlockSegment */ int KERNEL_UnlockSegment(int segment) { if (segment == -1) segment = *(Stack16Frame + 6); #ifdef RELAY_DEBUG printf("UnlockSegment: segment %x\n", segment); #endif return segment; } /********************************************************************** * KERNEL_WaitEvent */ int KERNEL_WaitEvent(int task) { #ifdef RELAY_DEBUG printf("WaitEvent: task %d\n", task); #endif return 0; } /********************************************************************** * KERNEL_GetModuleFileName */ int KERNEL_GetModuleFileName(int module, char *filename, int bytes) { #ifdef RELAY_DEBUG printf("GetModuleFileName: module %d, filename %x, bytes %d\n", module, filename, bytes); #endif strcpy(filename, "TEST.EXE"); return strlen(filename); } /********************************************************************** * KERNEL_DOS3Call */ int KERNEL_DOS3Call(int ax, int cx, int dx, int bx, int sp, int bp, int si, int di, int ds, int es) { switch ((ax >> 8) & 0xff) { case 0x30: return 0x0303; case 0x25: case 0x35: return 0; case 0x4c: exit(ax & 0xff); default: fprintf(stderr, "DOS: AX %04x, BX %04x, CX %04x, DX %04x\n", ax, bx, cx, dx); fprintf(stderr, " SP %04x, BP %04x, SI %04x, DI %04x\n", sp, bp, si, di); fprintf(stderr, " DS %04x, ES %04x\n", ds, es); } return 0; }