;ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ;Program: File Library ;Platform: MS-DOS 2.x ;Programmer: Anti Resonance ; ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;Revision History: ; ; 1.0 ??.??.???? ; Copyright (C)2000 Alpha-II Productions ;ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ;ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ;Options ;Open options F_READ = 00h ;Open for read only F_WRITE = 01h ;Open for write only F_RW = 02h ;Open for read/write access ;Seek options F_START = 00h ;Seek from the beginning of the file F_CUR = 01h ;Seek from the current position F_END = 02h ;Seek from the end of the file ;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ CODEMAIN SEGMENT FileNew PROCDESC PASCAL NEAR FN:Word FileOpen PROCDESC PASCAL NEAR FN:Word,Opt:Word FileSeek PROCDESC PASCAL NEAR FH:Word,Pos:DWord,From:Word FileRead PROCDESC PASCAL NEAR FH:Word,Len:Word,Dest:Word FileReadF PROCDESC PASCAL NEAR FH:Word,Len:Word,Dest:Word,SegR:Word FileWrite PROCDESC PASCAL NEAR FH:Word,:Word,:Word FileWriteF PROCDESC PASCAL NEAR FH:Word,:Word,:Word,:Word FileClose PROCDESC PASCAL NEAR FH:Word FileDel PROCDESC PASCAL NEAR FN:Word ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;Create a new file/Truncate an old file ; ;In: ; FN -> ASCIIZ filename ;Out: ; AX = File handle ; CF = Error ;Destroys: ; nothing FNew MACRO FN:Req Call FileNew,FN ENDM ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;Open an existing file ; ;In: ; FN -> ASCIIZ filename ; Opt = Options (default is F_READ) ;Out: ; AX = DOS file handle ; CF = Error ;Destroys: ; nothing FOpen MACRO FN:Req,Opt IFB Call FileOpen,&FN,F_READ ELSE Call FileOpen,FN,Opt ENDIF ENDM ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;Seek to a position in a file ; ;In: ; FH = DOS file handle ; Pos = Position, in bytes, to seek to ; From = Relative position to seek from (default is F_START) ;Out: ; EAX = New position ; CF = Error ;Destroys: ; nothing FSeek MACRO FH:Req,Pos:Req,From IFB Call FileSeek,&FH,&Pos,F_START ELSE Call FileSeek,FH,Pos,From ENDIF ENDM ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;Read a block from an open file ; ;In: ; FH = DOS file handle ; Len = Number of bytes to read ; Dest-> Location to store block ; SegR = Segment to store block (default is DS) ;Out: ; CF = Set on error ; AX = Number of bytes actually read ; Error code ;Destroys: ; nothing FRead MACRO FH:Req,Len:Req,Dest:Req,SegR IFB Call FileRead,&FH,&Len,&Dest ELSE Call FileReadF,FH,Len,Dest,SegR ENDIF ENDM ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;Write a block to an open file ; ;In: ; FH = DOS file handle ; Len = Number of bytes to write ; Src -> Location of block ; SegR = Segment of block (default is DS) ;Out: ; CF = Set on error ; AX = Number of bytes actually written ;Destroys: ; nothing FWrite MACRO FH:Req,Len:Req,Src:Req,SegR IFB Call FileWrite,FH,Len,Src ELSE Call FileWriteF,FH,Len,Src,SegR ENDIF ENDM ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;Close an open file ; ;In: ; FH = DOS file handle ;Out: ; CF = Error ;Destroys: ; nothing FClose MACRO FH:Req Call FileClose,FH ENDM ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;Delete an existing file ; ;In: ; FN -> ASCIIZ filename ;Out: ; CF = Error ; AX = Error code ;Destroys: ; nothing FDel MACRO FN:Req Call FileDel,FN ENDM CODEMAIN ENDS