Release 940614
[wine/multimedia.git] / miscemu / int26.c
blob0308d376973ad01b133c92373d3bdac8cf04d7ce
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include "msdos.h"
4 #include "wine.h"
6 int do_int26(struct sigcontext_struct *context)
8 BYTE *dataptr = pointer(DS, BX);
9 DWORD begin, length;
11 if( (ECX & 0xffff) == 0xffff)
13 begin = getdword(dataptr);
14 length = getword(&dataptr[4]);
15 dataptr = (BYTE *) getdword(&dataptr[6]);
17 } else {
18 begin = EDX & 0xffff;
19 length = ECX & 0xffff;
22 fprintf(stderr,"int26: abs diskwrite, drive %d, sector %d, count %d,"
23 " buffer %d\n", EAX & 0xff, begin, length, (int) dataptr);
25 ResetCflag;
27 /* push flags on stack */
28 SP -= sizeof(WORD);
29 setword(pointer(SS,SP), (WORD) EFL);
31 return 1;