Subversion Repositories SvarDOS

Rev

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

Rev 1573 Rev 1574
Line 55... Line 55...
55
 
55
 
56
  return(res);
56
  return(res);
57
}
57
}
58
 
58
 
59
 
59
 
60
unsigned short mdr_dos_read(unsigned short handle, void far *buf, unsigned short count, unsigned short *bytes) {
-
 
61
  unsigned short res = 0;
-
 
62
  unsigned short resax = 0;
-
 
63
  unsigned short buf_off = FP_OFF(buf);
-
 
64
  unsigned short buf_seg = FP_SEG(buf);
-
 
65
 
-
 
66
  _asm {
-
 
67
    push bx,
-
 
68
    push cx
-
 
69
    push dx
-
 
70
 
-
 
71
    mov ah, 0x3f
-
 
72
    mov bx, handle
-
 
73
    mov cx, count
-
 
74
    mov dx, buf_off
-
 
75
    push ds
-
 
76
    mov ds, buf_seg
-
 
77
    int 0x21
-
 
78
    pop ds
-
 
79
 
-
 
80
    jnc done
-
 
81
    mov res, ax
-
 
82
 
-
 
83
    done:
-
 
84
    mov resax, ax
-
 
85
 
-
 
86
    pop dx
-
 
87
    pop cx
-
 
88
    pop bx
-
 
89
  }
-
 
90
 
-
 
91
  *bytes = resax;
-
 
92
  return(res);
-
 
93
}
-
 
94
 
-
 
95
 
-
 
96
unsigned short mdr_dos_write(unsigned short handle, const void far *buf, unsigned short count, unsigned short *bytes) {
60
unsigned short mdr_dos_write(unsigned short handle, const void far *buf, unsigned short count, unsigned short *bytes) {
97
  unsigned short res = 0;
61
  unsigned short res = 0;
98
  unsigned short resax = 0;
62
  unsigned short resax = 0;
99
  unsigned short buf_seg = FP_SEG(buf);
63
  unsigned short buf_seg = FP_SEG(buf);
100
  unsigned short buf_off = FP_OFF(buf);
64
  unsigned short buf_off = FP_OFF(buf);