Subversion Repositories SvarDOS

Rev

Rev 478 | Rev 537 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 478 Rev 479
Line 26... Line 26...
26
#include <string.h>
26
#include <string.h>
27
 
27
 
28
#include "env.h"
28
#include "env.h"
29
#include "helpers.h"
29
#include "helpers.h"
30
 
30
 
31
#include "rmodcore.h"
-
 
32
 
-
 
33
#include "rmodinit.h"
31
#include "rmodinit.h"
34
 
32
 
35
 
33
 
36
/* returns far pointer to rmod's settings block on success */
34
/* returns far pointer to rmod's settings block on success */
37
struct rmod_props far *rmod_install(unsigned short envsize) {
35
struct rmod_props far *rmod_install(unsigned short envsize, unsigned char *rmodcore, unsigned short rmodcore_len) {
38
  char far *myptr, far *mcb;
36
  char far *myptr, far *mcb;
39
  unsigned short far *owner;
37
  unsigned short far *owner;
40
  const unsigned short sizeof_rmodandprops_paras = (0x100 + rmodcore_len + sizeof(struct rmod_props) + 15) / 16;
38
  const unsigned short sizeof_rmodandprops_paras = (0x100 + rmodcore_len + sizeof(struct rmod_props) + 15) / 16;
41
  unsigned short rmodseg = 0xffff;
39
  unsigned short rmodseg = 0xffff;
42
  unsigned short envseg, origenvseg;
40
  unsigned short envseg, origenvseg;
Line 182... Line 180...
182
}
180
}
183
 
181
 
184
 
182
 
185
/* look up my parent: if it's rmod then return a ptr to its props struct,
183
/* look up my parent: if it's rmod then return a ptr to its props struct,
186
 * otherwise return NULL */
184
 * otherwise return NULL */
187
struct rmod_props far *rmod_find(void) {
185
struct rmod_props far *rmod_find(unsigned short rmodcore_len) {
188
  unsigned short *parent = (void *)0x0C; /* parent's seg in PSP[Ch] ("prev. int22 handler") */
186
  unsigned short *parent = (void *)0x0C; /* parent's seg in PSP[Ch] ("prev. int22 handler") */
189
  unsigned short far *ptr;
187
  unsigned short far *ptr;
190
  const unsigned short sig[] = {0x1983, 0x1985, 0x2017, 0x2019};
188
  const unsigned short sig[] = {0x1983, 0x1985, 0x2017, 0x2019};
191
  unsigned char *cmdtail = (void *)0x80;
189
  unsigned char *cmdtail = (void *)0x80;
192
  unsigned char i;
190
  unsigned char i;