Subversion Repositories SvarDOS

Rev

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

Rev 359 Rev 366
Line 101... Line 101...
101
 
101
 
102
  /* write env segment to rmod buffer */
102
  /* write env segment to rmod buffer */
103
  owner = MK_FP(rmodseg, RMOD_OFFSET_ENVSEG);
103
  owner = MK_FP(rmodseg, RMOD_OFFSET_ENVSEG);
104
  *owner = envseg;
104
  *owner = envseg;
105
 
105
 
-
 
106
  /* write boot drive to rmod bootdrive field */
-
 
107
  _asm {
-
 
108
    push ax
-
 
109
    push bx
-
 
110
    push dx
-
 
111
    push ds
-
 
112
    mov ax, 0x3305 /* DOS 4.0+ - GET BOOT DRIVE */
-
 
113
    int 0x21 /* boot drive is in DL now (1=A:, 2=B:, etc) */
-
 
114
    add dl, 'A'-1 /* convert to a proper ASCII letter */
-
 
115
    /* set DS to rmodseg */
-
 
116
    mov ax, rmodseg
-
 
117
    mov ds, ax
-
 
118
    /* write boot drive to rmod bootdrive field */
-
 
119
    mov bx, RMOD_OFFSET_BOOTDRIVE
-
 
120
    mov [bx], dl
-
 
121
    pop ds
-
 
122
    pop dx
-
 
123
    pop bx
-
 
124
    pop ax
-
 
125
  }
-
 
126
 
106
  /* set the int22 handler in my PSP to rmod so DOS jumps to rmod after I terminate */
127
  /* set the int22 handler in my PSP to rmod so DOS jumps to rmod after I terminate */
107
  _asm {
128
  _asm {
-
 
129
    push ax
-
 
130
    push bx
108
    mov bx, 0x0a                   /* int22 handler is at 0x0A of the PSP */
131
    mov bx, 0x0a                   /* int22 handler is at 0x0A of the PSP */
109
    mov ax, RMOD_OFFSET_ROUTINE
132
    mov ax, RMOD_OFFSET_ROUTINE
110
    mov [bx], ax                   /* int handler offset */
133
    mov [bx], ax                   /* int handler offset */
111
    mov ax, rmodseg
134
    mov ax, rmodseg
112
    mov [bx+2], ax                 /* int handler segment */
135
    mov [bx+2], ax                 /* int handler segment */
-
 
136
    pop bx
-
 
137
    pop ax
113
  }
138
  }
114
 
139
 
115
  return(rmodseg);
140
  return(rmodseg);
116
}
141
}
117
 
142