Subversion Repositories SvarDOS

Rev

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

Rev 2066 Rev 2068
Line 148... Line 148...
148
  unsigned short serial1;
148
  unsigned short serial1;
149
  char label[11];
149
  char label[11];
150
  short fstype[8];
150
  short fstype[8];
151
} glob_drv_info;
151
} glob_drv_info;
152
 
152
 
-
 
153
 
153
/* drv is 1-based (A=1, B=2, ...) */
154
/* drv is 1-based (A=1, B=2, ...) */
154
static void getdrvserial(unsigned char drv);
155
static void getdrvserial(unsigned char drv) {
155
#pragma aux getdrvserial = \
156
  unsigned short drvinfo_seg = FP_SEG(&glob_drv_info);
-
 
157
 
-
 
158
  _asm {
-
 
159
    push ax
-
 
160
    push bx
156
"push ds" \
161
    push dx
-
 
162
 
-
 
163
    mov ax, 0x6900
157
"xor bh, bh" \
164
    xor bh, bh
158
"mov dx, offset glob_drv_info" \
165
    mov bl, drv
159
"mov ax, seg glob_drv_info" \
166
    mov dx, offset glob_drv_info
160
"mov ds, ax" \
167
    push ds
161
"mov ax, 0x6900" \
168
    mov ds, drvinfo_seg
162
"int 0x21" \
169
    int 0x21
163
"pop ds" \
170
    pop ds
-
 
171
 
164
parm [bl] \
172
    pop dx
165
modify [ax bx dx]
173
    pop bx
-
 
174
    pop ax
-
 
175
  }
-
 
176
}
166
 
177
 
167
 
178
 
168
static int truename(char *path, const char *origpath) {
179
static int truename(char *path, const char *origpath) {
169
  unsigned short origpath_seg = FP_SEG(origpath);
180
  unsigned short origpath_seg = FP_SEG(origpath);
170
  unsigned short origpath_off = FP_OFF(origpath);
181
  unsigned short origpath_off = FP_OFF(origpath);