home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / A86V402.ZIP / MSDOS.8 < prev    next >
Text File  |  1995-03-03  |  3KB  |  97 lines

  1. ~^
  2. #ERROR messages will be removed if you leave these first two lines in     @@@@#
  3. ;---------------
  4. ;   MSDOS      library module, NOT a standalone program
  5. ;---------------
  6.  
  7. ; This module contains the file-access routines specific to the MSDOS operating
  8. ;   system.
  9.  
  10. ; MCREAT creates a file whose path name is pointed to by DS:DX, giving the file
  11. ;   a standard set of permissions.  Return Carry if there was an error in
  12. ;   creating the file, with AX set to an error number.  Return NoCarry if
  13. ;   successful, with AX set to the open-file number.
  14.  
  15. MCREAT:
  16. ~      ^
  17. #ERROR 40: Conflicting Multiple Definition Not Allowed                    @@@@#
  18.   PUSH CX           ; preserve register across call
  19.   MOV CX,0          ; 0-code provides the standard access
  20.   MOV AH,03CH       ; MSDOS function number for CREAT
  21.   INT 33            ; call MSDOS to do the creation
  22.   POP CX            ; restore clobbered register
  23.   MOV BX,AX         ; copy file handle to BX, for convenience
  24.   RET
  25.  
  26.  
  27. ; MREAD reads from the open-file numbered BX, to the CX bytes at DX.  Return
  28. ;   with AX set to the number of bytes actually read.
  29.  
  30. MREAD:
  31. ~     ^
  32. #ERROR 40: Conflicting Multiple Definition Not Allowed                    @@@@#
  33.   MOV AH,03FH       ; MSDOS function number for READ
  34. MSDOS:
  35.   INT 33            ; all MSDOS calls go through this interrupt
  36.   RET
  37.  
  38.  
  39. ; MOPEN opens the file whose name is pointed to by DS:DX, with the open-mode
  40. ;   given by the value of AL: 0 for reading, 1 for writing, 2 for both.  Return
  41. ;   Carry if the open failed. Return NoCarry if successful; with AX set to the
  42. ;   open-file number.
  43.  
  44. MOPEN_READ:
  45. ~          ^
  46. #ERROR 40: Conflicting Multiple Definition Not Allowed                    @@@@#
  47.   MOV AL,0
  48. MOPEN:
  49. ~     ^
  50. #ERROR 40: Conflicting Multiple Definition Not Allowed                    @@@@#
  51.   MOV AH,03DH       ; MSDOS function number for MOPEN
  52.   INT 33            ; all MSDOS calls go through this interrupt
  53.   MOV BX,AX         ; copy file handle to BX, for convenience
  54.   RET
  55.  
  56.  
  57. ; MCLOSE closes the open-file numbered BX.
  58.  
  59. MCLOSE:
  60. ~      ^
  61. #ERROR 40: Conflicting Multiple Definition Not Allowed                    @@@@#
  62.   MOV AH,03EH       ; MSDOS function number for CLOSE
  63.   JMP MSDOS         ; jump to call the operating system
  64.  
  65.  
  66. ; MWRITE writes SI bytes from CX to the open-file numbered BX.  Return Carry if
  67. ;   the write failed, with AX set to an error number.
  68.  
  69. OWRITE:             ; alternate entry point for standard output
  70. ~      ^
  71. #ERROR 40: Conflicting Multiple Definition Not Allowed                    @@@@#
  72.   MOV BX,1
  73. MWRITE:
  74. ~      ^
  75. #ERROR 40: Conflicting Multiple Definition Not Allowed                    @@@@#
  76.   MOV AH,040H       ; MSDOS function number for WRITE
  77.   JMP MSDOS         ; jump to call the operating system
  78.  
  79. EWRITE:             ; alternate entry point for error-console output
  80. ~      ^
  81. #ERROR 40: Conflicting Multiple Definition Not Allowed                    @@@@#
  82.   MOV BX,2
  83.   JMP MWRITE
  84.  
  85.  
  86. ; EXIT exits the program back to the invoking process, with a status of AL.
  87.  
  88. GOOD_EXIT:
  89. ~         ^
  90. #ERROR 40: Conflicting Multiple Definition Not Allowed                    @@@@#
  91.   MOV AL,0          ; zero value indicates successful program execution
  92. EXIT:
  93. ~    ^
  94. #ERROR 40: Conflicting Multiple Definition Not Allowed                    @@@@#
  95.   MOV AH,04CH       ; MSDOS function number for EXIT
  96.   JMP MSDOS         ; jump to call the operating system
  97.