Browse Source

+ implemented do_read for i8086-msdos

git-svn-id: branches/i8086@24045 -
nickysn 12 years ago
parent
commit
d8af51fdab
1 changed files with 14 additions and 0 deletions
  1. 14 0
      rtl/msdos/sysfile.inc

+ 14 - 0
rtl/msdos/sysfile.inc

@@ -52,7 +52,21 @@ end;
 
 
 
 
 function do_read(h:thandle;addr:pointer;len : longint) : longint;
 function do_read(h:thandle;addr:pointer;len : longint) : longint;
+var
+  regs: Registers;
 begin
 begin
+  regs.AH := $3F;
+  regs.BX := h;
+  regs.CX := len;
+  regs.DS := DSeg;
+  regs.DX := Word(addr);
+  MsDos(regs);
+  if (regs.Flags and FCarry) <> 0 then
+  begin
+    GetInOutRes(regs.AX);
+    exit(0);
+  end;
+  do_read := regs.AX;
 end;
 end;