home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / SOUND / CRYS270.ZIP / CRYSFILE.ASM < prev    next >
Encoding:
Assembly Source File  |  1995-06-26  |  1.8 KB  |  98 lines

  1. ;****************************************************************************
  2. ;*    Module contenant des fonctions DOS de base pour lire un fichier
  3. ;*    ATTENTION toutes ces fonctions sont de type NEAR
  4. ;*
  5. ;* Programmé par Sébastien Granjoux
  6. ;* Commencé le 20/12/94
  7. ;* Modification le 01/02/95
  8.  
  9. IDEAL
  10.  
  11. INCLUDE "CRYSLOAD.INC"
  12.  
  13. PUBLIC    USEFILE
  14.  
  15. SEGMENT CSEG PARA PUBLIC USE16 'CODE'
  16.  
  17. ASSUME    cs:CSEG
  18.  
  19. UseFile:
  20.     FILESYS <OFFSET openfile,OFFSET closefile,OFFSET seekfile,OFFSET readfile>
  21.  
  22. Handle    DW    -1
  23.  
  24. ;***************************************************************************
  25. ;*    Ouvre un fichier en mode lecture, ATTENTION il ne peut y avoir
  26. ;*    qu'un seul fichier ouvert en même temps
  27. ;*
  28. ;* Entrée:
  29. ;*    DS:DX    nom du fichier
  30. ;*
  31. ;* Sortie:
  32. ;*    AX    erreur si C=1
  33.  
  34. PROC    openfile
  35.  
  36.     mov    ax,3D00h
  37.     int    21h
  38.     jc    @@error
  39.     mov    [cs:Handle],ax
  40. @@error:
  41.     ret
  42. ENDP
  43.  
  44. ;***************************************************************************
  45. ;*    Lit un block d'octet dans un fichier précédament ouvert
  46. ;*
  47. ;* Entrée:
  48. ;*    CX    nombre d'octet à lire
  49. ;*    DS:DX    adresse du buffer recevant les données
  50. ;*
  51. ;* Sortie:
  52. ;*    AX    erreur si C=1
  53.  
  54. PROC    readfile
  55.  
  56.     mov    bx,[cs:Handle]
  57.     mov    ah,3Fh
  58.     int    21h
  59.     ret
  60.  
  61. ENDP
  62.  
  63. ;***************************************************************************
  64. ;*    Se déplace dans le fichier par rapport à la position courante
  65. ;*
  66. ;* Entrée:
  67. ;*      CX:DX    nouvelle position dans le fichier
  68. ;*
  69. ;* Sortie:
  70. ;*    AX    erreur si C=1
  71.  
  72. PROC    seekfile
  73.  
  74.     mov    ax,4201h
  75.     mov    bx,[cs:Handle]
  76.     int    21h
  77.     ret
  78.  
  79. ENDP
  80.  
  81. ;***************************************************************************
  82. ;*    Ferme le fichier ouvert précédament
  83. ;*
  84. ;* Sortie:
  85. ;*    AX    erreur si C=1
  86.  
  87. PROC    closefile
  88.  
  89.     mov    ah,3eh
  90.     mov    bx,[cs:Handle]
  91.     int    21h
  92.     ret
  93.  
  94. ENDP
  95.  
  96. ENDS
  97.  
  98. END