亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? mdosio.pas

?? 一個(gè)不錯(cuò)的用C寫(xiě)的解壓縮源代碼 想要學(xué)習(xí)或者想要交老師作業(yè)的 那就快快下吧,
?? PAS
字號(hào):

(*
 * Copyright 1987, 1989 Samuel H. Smith;  All rights reserved
 *
 * This is a component of the ProDoor System.
 * Do not distribute modified versions without my permission.
 * Do not remove or alter this notice or any other copyright notice.
 * If you use this in your own program you must distribute source code.
 * Do not use any of this in a commercial product.
 *
 *)

(*
 * mdosio - Mini library for interface to DOS v3 file access functions
 *
 *)

{$i prodef.inc}

unit MDosIO;

interface

   uses Dos;

   type
      dos_filename = string[64];
      dos_handle   = word;

      long_integer = record
         lsw: word;
         msw: word;
      end;

      seek_modes = (seek_start {0},
                    seek_cur   {1},
                    seek_end   {2});

      open_modes = (open_read  {h40},     {deny_nothing, allow_read}
                    open_write {h41},     {deny_nothing, allow_write}
                    open_update{h42});    {deny_nothing, allow_read+write}

      dos_time_functions = (time_get,
                            time_set);

   const
      dos_error    = $FFFF; {file handle after an error}

   var
      dos_regs:     registers;
      dos_name:     dos_filename;


   procedure dos_call;

   function dos_open(name:      dos_filename;
                     mode:      open_modes):  dos_handle;

   function dos_create(name:    dos_filename): dos_handle;

   function dos_read( handle:   dos_handle;
                      var       buffer;
                      bytes:    word): word;

   procedure dos_write(handle:  dos_handle;
                       var      buffer;
                       bytes:   word);

   function dos_write_failed:   boolean;

   procedure dos_lseek(handle:  dos_handle;
                       offset:  longint;
                       method:  seek_modes);

   procedure dos_rseek(handle:  dos_handle;
                       recnum:  word;
                       recsiz:  word;
                       method:  seek_modes);

   function dos_tell: longint;

   procedure dos_find_eof(fd:   dos_handle);

   procedure dos_close(handle:  dos_handle);

   procedure dos_unlink(name:   dos_filename);

   procedure dos_file_times(fd:       dos_handle;
                            func:     dos_time_functions;
                            var time: word;
                            var date: word);

   function dos_jdate(time,date: word): longint;

   function dos_exists(name: dos_filename): boolean;


implementation

(* -------------------------------------------------------- *)
procedure dos_call;
var
   msg:  string;
begin
   msdos(dos_regs);

   if (dos_regs.flags and Fcarry) <> 0 then
   begin
      case dos_regs.ax of
         2:   msg := 'file not found';
         3:   msg := 'dir not found';
         4:   msg := 'too many open files';
         5:   msg := 'access denied';
         else str(dos_regs.ax,msg);
      end;
{$I-}
      writeln(' DOS error [',msg,'] on file [',dos_name,'] ');
{$i+}
      dos_regs.ax := dos_error;
   end;
end;


(* -------------------------------------------------------- *)
procedure prepare_dos_name(name: dos_filename);
begin
   while (name <> '') and (name[length(name)] <= ' ') do
      dec(name[0]);
   if name = '' then
      name := 'Nul';
   dos_name := name;
   dos_name[length(dos_name)+1] := #0;
   dos_regs.ds := seg(dos_name);
   dos_regs.dx := ofs(dos_name)+1;
end;


(* -------------------------------------------------------- *)
function dos_open(name:    dos_filename;
                  mode:    open_modes):  dos_handle;
var
   try: integer;
const
   retry_count = 3;

begin
   for try := 1 to retry_count do
   begin
      dos_regs.ax := $3d40 + ord(mode);
      prepare_dos_name(name);
      msdos(dos_regs);

      if (dos_regs.flags and Fcarry) = 0 then
      begin
         dos_open := dos_regs.ax;
         exit;
      end;
   end;

   dos_open := dos_error;
end;


(* -------------------------------------------------------- *)
function dos_create(name:    dos_filename): dos_handle;
begin
   dos_regs.ax := $3c00;
   prepare_dos_name(name);
   dos_regs.cx := 0;   {attrib}
   dos_call;
   dos_create := dos_regs.ax;
end;


(* -------------------------------------------------------- *)
function dos_read( handle:  dos_handle;
                   var      buffer;
                   bytes:   word): word;
begin
   dos_regs.ax := $3f00;
   dos_regs.bx := handle;
   dos_regs.cx := bytes;
   dos_regs.ds := seg(buffer);
   dos_regs.dx := ofs(buffer);
   dos_call;
   dos_read := dos_regs.ax;
end;


(* -------------------------------------------------------- *)
procedure dos_write(handle:  dos_handle;
                    var      buffer;
                    bytes:   word);
begin
   dos_regs.ax := $4000;
   dos_regs.bx := handle;
   dos_regs.cx := bytes;
   dos_regs.ds := seg(buffer);
   dos_regs.dx := ofs(buffer);
   dos_call;
   dos_regs.cx := bytes;
end;

function dos_write_failed: boolean;
begin
   dos_write_failed := dos_regs.ax <> dos_regs.cx;
end;


(* -------------------------------------------------------- *)
procedure dos_lseek(handle:  dos_handle;
                    offset:  longint;
                    method:  seek_modes);
var
   pos:  long_integer absolute offset;

begin
   dos_regs.ax := $4200 + ord(method);
   dos_regs.bx := handle;
   dos_regs.cx := pos.msw;
   dos_regs.dx := pos.lsw;
   dos_call;
end;


(* -------------------------------------------------------- *)
procedure dos_rseek(handle:  dos_handle;
                    recnum:  word;
                    recsiz:  word;
                    method:  seek_modes);
var
   offset: longint;
   pos:    long_integer absolute offset;

begin
   offset := longint(recnum) * longint(recsiz);
   dos_regs.ax := $4200 + ord(method);
   dos_regs.bx := handle;
   dos_regs.cx := pos.msw;
   dos_regs.dx := pos.lsw;
   dos_call;
end;


(* -------------------------------------------------------- *)
function dos_tell: longint;
  {call immediately after dos_lseek or dos_rseek}
var
   pos:  long_integer;
   li:   longint absolute pos;
begin
   pos.lsw := dos_regs.ax;
   pos.msw := dos_regs.dx;
   dos_tell := li;
end;


(* -------------------------------------------------------- *)
procedure dos_find_eof(fd: dos_handle);
   {find end of file, skip backward over ^Z eof markers}
var
   b: char;
   n: word;
   i: word;
   p: longint;
   temp: array[1..128] of char;

begin
   dos_lseek(fd,0,seek_end);
   p := dos_tell-1;
   if p < 0 then
      exit;

   p := p and $FFFF80;   {round to last 'sector'}
   {search forward for the eof marker}
   dos_lseek(fd,p,seek_start);
   n := dos_read(fd,temp,sizeof(temp));
   i := 1;

   while (i <= n) and (temp[i] <> ^Z) do
   begin
      inc(i);
      inc(p);
   end;

   {backup to overwrite the eof marker}
   dos_lseek(fd,p,seek_start);
end;


(* -------------------------------------------------------- *)
procedure dos_close(handle:  dos_handle);
begin
   dos_regs.ax := $3e00;
   dos_regs.bx := handle;
   msdos(dos_regs);  {dos_call;}
end;


(* -------------------------------------------------------- *)
procedure dos_unlink(name:    dos_filename);
   {delete a file, no error message if file doesn't exist}
begin
   dos_regs.ax := $4100;
   prepare_dos_name(name);
   msdos(dos_regs);
end;


(* -------------------------------------------------------- *)
procedure dos_file_times(fd:       dos_handle;
                         func:     dos_time_functions;
                         var time: word;
                         var date: word);
begin
   dos_regs.ax := $5700 + ord(func);
   dos_regs.bx := fd;
   dos_regs.cx := time;
   dos_regs.dx := date;
   dos_call;
   time := dos_regs.cx;
   date := dos_regs.dx;
end;


(* -------------------------------------------------------- *)
function dos_jdate(time,date: word): longint;
begin

(***
     write(' d=',date:5,' t=',time:5,' ');
     write('8',   (date shr 9) and 127:1); {year}
     write('/',   (date shr 5) and  15:2); {month}
     write('/',   (date      ) and  31:2); {day}
     write(' ',   (time shr 11) and 31:2); {hour}
     write(':',   (time shr  5) and 63:2); {minute}
     write(':',   (time shl  1) and 63:2); {second}
     writeln(' j=', (longint(date) shl 16) + longint(time));
 ***)

   dos_jdate := (longint(date) shl 16) + longint(time);
end;


(* -------------------------------------------------------- *)
function dos_exists(name: dos_filename): boolean;
var
   DirInfo:     SearchRec;

begin
   prepare_dos_name(name);
   FindFirst(dos_name,$21,DirInfo);
   if (DosError <> 0) then
      dos_exists := false
   else
      dos_exists := true;
end;

end.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区不卡| 国产性做久久久久久| 欧美色手机在线观看| 一区二区三区在线看| 日韩无一区二区| 色悠悠亚洲一区二区| 日本vs亚洲vs韩国一区三区二区 | 国产精品综合视频| 亚洲综合色丁香婷婷六月图片| 欧美裸体一区二区三区| 成人免费看视频| 麻豆91在线观看| 亚洲六月丁香色婷婷综合久久| 欧美一二三区精品| 色综合久久88色综合天天免费| 国产精品99久久久久久似苏梦涵| 五月激情综合网| 亚洲精品免费在线| 中文字幕欧美国产| 久久亚洲一区二区三区四区| 欧美精品在线视频| 欧美性高清videossexo| 91天堂素人约啪| 国产超碰在线一区| 国产一区二区三区最好精华液 | 风间由美中文字幕在线看视频国产欧美| 亚洲综合一区二区| 亚洲欧洲综合另类| 久久久电影一区二区三区| 日韩欧美精品三级| 欧美一级黄色大片| 7777女厕盗摄久久久| 色偷偷久久人人79超碰人人澡| 成人国产精品免费观看| 国产成人精品免费视频网站| 国产一区二区主播在线| 麻豆一区二区在线| 免费人成精品欧美精品| 免费观看30秒视频久久| 日韩精品1区2区3区| 日韩电影在线观看网站| 免费成人小视频| 麻豆精品一区二区av白丝在线| 免费观看成人av| 久久草av在线| 国产在线精品不卡| 国产福利一区二区| 处破女av一区二区| 91蝌蚪porny| 欧美艳星brazzers| 欧美日韩综合色| 538在线一区二区精品国产| 欧美日韩精品欧美日韩精品| 国产aⅴ综合色| 麻豆久久久久久久| 狠狠狠色丁香婷婷综合久久五月| 美女网站一区二区| 久久国内精品视频| 国内精品免费在线观看| 国产乱国产乱300精品| 国产精品影视天天线| 午夜精品久久久久影视| 亚洲一区二区影院| 亚洲第一电影网| 午夜精品福利一区二区蜜股av| 亚洲一卡二卡三卡四卡无卡久久 | 免播放器亚洲一区| 欧美aaaaa成人免费观看视频| 日本欧美在线看| 麻豆精品国产传媒mv男同| 久久精品国产免费| 国产精品白丝jk白祙喷水网站| 国产白丝精品91爽爽久久 | 欧美日韩一区视频| 日韩色在线观看| 日本一二三四高清不卡| 亚洲欧洲国产日本综合| 亚洲精品成人在线| 日本在线观看不卡视频| 国产揄拍国内精品对白| 成人黄色国产精品网站大全在线免费观看 | 亚洲成人av一区| 色噜噜偷拍精品综合在线| 国产99久久久国产精品潘金网站| 成人久久视频在线观看| 色94色欧美sute亚洲13| 欧美bbbbb| 美国欧美日韩国产在线播放| 成人黄色小视频在线观看| 日韩欧美你懂的| 亚洲国产日韩一级| 欧美一区二区三区在线| 精品国产三级电影在线观看| 日韩电影免费一区| 91精品国产乱码| 成人夜色视频网站在线观看| 亚洲三级电影网站| 欧美丰满少妇xxxxx高潮对白| 蜜臀av国产精品久久久久| 国产日韩欧美一区二区三区乱码 | 午夜精彩视频在线观看不卡| 蜜桃视频一区二区| 99re亚洲国产精品| 国产亚洲欧美一区在线观看| 日本一区中文字幕| 91麻豆精品国产91久久久 | 成人国产精品免费网站| 国产一区不卡在线| 99v久久综合狠狠综合久久| 欧美精品日韩一区| 国产精品久久久久永久免费观看 | 中文字幕综合网| 日本强好片久久久久久aaa| 成人黄色一级视频| 色综合天天性综合| 精品国产成人系列| 亚洲精选视频在线| 国产米奇在线777精品观看| 日本道精品一区二区三区| 26uuu国产电影一区二区| 亚洲成人自拍一区| 91国产视频在线观看| 中文字幕一区二区三区精华液| 日本不卡视频在线观看| 色综合天天综合狠狠| 国产欧美一区二区三区沐欲| 日韩高清一区在线| 在线观看av一区二区| 久久久亚洲欧洲日产国码αv| 日本中文在线一区| 欧美色电影在线| 日韩理论片网站| 成人精品国产免费网站| 精品国产一区二区三区四区四| 无码av免费一区二区三区试看| 91在线观看免费视频| 国产色婷婷亚洲99精品小说| 国内一区二区视频| 精品区一区二区| 麻豆一区二区三| 9191久久久久久久久久久| 一区二区三区在线看| 日本韩国欧美三级| 亚洲免费观看在线视频| 成人黄色网址在线观看| 欧美极品xxx| 成人中文字幕合集| 中文字幕av资源一区| 国产精品一区在线观看乱码| 久久免费午夜影院| 国产精品一区二区三区99| 久久综合久久综合亚洲| 石原莉奈在线亚洲三区| 成人精品电影在线观看| 中文av一区二区| 97精品国产97久久久久久久久久久久| 亚洲国产高清在线| av网站一区二区三区| 中文字幕五月欧美| 色婷婷国产精品久久包臀| 亚洲欧美偷拍三级| 欧美色视频一区| 午夜精品久久久久久| 欧美一级高清片| 久久精品国产精品亚洲综合| 欧美精品一区二区三区久久久 | 国产一区二区三区观看| 久久影院午夜片一区| 成人禁用看黄a在线| 亚洲美女少妇撒尿| 在线视频中文字幕一区二区| 一区二区三区不卡视频| 欧美三级视频在线播放| 七七婷婷婷婷精品国产| 久久久青草青青国产亚洲免观| 豆国产96在线|亚洲| 亚洲欧美成人一区二区三区| 欧美色欧美亚洲另类二区| 青青草精品视频| 国产亚洲精久久久久久| 91色乱码一区二区三区| 午夜精品久久久久久久久久| 欧美亚洲国产一卡| 亚洲精品成人在线| 精品久久免费看| 99久久久精品免费观看国产蜜| 一区二区日韩av| 欧美成人一级视频| 99免费精品视频| 视频在线观看一区二区三区| 久久久99精品免费观看不卡| 色视频一区二区| 麻豆成人在线观看| 中文字幕一区二区日韩精品绯色| 在线视频一区二区免费| 天天综合色天天| 国产精品久久久久婷婷| 91麻豆精品国产91久久久久久久久| 国产精品一区二区黑丝| 亚洲一区二区三区影院|