home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 April / Chip_1997-04_cd.bin / prezent / cb / data.z / OPENTEXT.ASM < prev    next >
Assembly Source File  |  1997-01-16  |  1KB  |  104 lines

  1.  
  2. ; *******************************************************
  3. ; *                            *
  4. ; *     Delphi Runtime Library                          *
  5. ; *                            *
  6. ; *    Copyright (c) 1996 Borland International    *
  7. ; *                            *
  8. ; *******************************************************
  9.  
  10.     INCLUDE    SE.ASM
  11.     INCLUDE    FILEIO.ASM
  12.  
  13.     .386
  14.     .MODEL    FLAT
  15.  
  16.     EXTRN    _Close:NEAR, SetInOutRes:NEAR
  17.  
  18.     PUBLIC    _ResetText, _RewritText, _Append
  19.  
  20.  
  21.     .CODE
  22.  
  23. ;    PROCEDURE OpenText( VAR t: Text; Mode: Word);
  24.  
  25. OpenText PROC
  26.  
  27. ; ->    EAX    Pointer to text record
  28. ; ->    EDX    Mode    (fmInput, fmOutput, fmInOut)
  29.  
  30.     PUSH    EBX
  31.     PUSH    ESI
  32.     MOV    ESI,EAX
  33.     MOV    EBX,EDX
  34.  
  35.     MOV    EDX,[ESI].Mode
  36.     SUB    EDX,fmClosed
  37.     JE    @@alreadyClosed
  38.  
  39.     CMP    EDX,fmInOut-fmClosed
  40.     JA    @@notAssignedError
  41.  
  42.     CALL    _Close
  43.  
  44. @@alreadyClosed:
  45.  
  46.     MOV    EAX,ESI
  47.     MOV    [ESI].Mode,EBX
  48.     CALL    [ESI].OpenFunc
  49.     TEST    EAX,EAX
  50.     JE    @@exit
  51.         CALL    SetInOutRes
  52.  
  53. @@exit:
  54.  
  55.     POP    ESI
  56.     POP    EBX
  57.     RET
  58.  
  59. @@notAssignedError:
  60.  
  61.     MOV    EAX,102
  62.         CALL    SetInOutRes
  63.     JMP    @@exit
  64.  
  65. OpenText ENDP
  66.  
  67.  
  68. ;    PROCEDURE _ResetText( VAR t: Text );
  69.  
  70. _ResetText PROC
  71.  
  72. ; ->    EAX    Pointer to text record
  73.  
  74.     MOV    EDX,fmInput
  75.     JMP    OpenText
  76.  
  77. _ResetText ENDP
  78.  
  79.  
  80. ;    PROCEDURE _RewriteText( VAR t: Text );
  81.  
  82. _RewritText PROC
  83.  
  84. ; ->    EAX    Pointer to text record
  85.  
  86.     MOV    EDX,fmOutput
  87.     JMP    OpenText
  88.  
  89. _RewritText ENDP
  90.  
  91.  
  92. ;    PROCEDURE _Append( VAR t: Text );
  93.  
  94. _Append    PROC
  95.  
  96. ; ->    EAX    Pointer to text record
  97.  
  98.     MOV    EDX,fmInOut
  99.     JMP    OpenText
  100.  
  101. _Append    ENDP
  102.  
  103.     END
  104.