From 2d04cacc5322951f187bb17e017c12920ac8ebe2 Mon Sep 17 00:00:00 2001 From: Mark Zbikowski Date: Thu, 25 Apr 2024 21:24:10 +0100 Subject: MZ is back! --- v4.0/src/MAPPER/SFILEMOD.ASM | 61 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 v4.0/src/MAPPER/SFILEMOD.ASM (limited to 'v4.0/src/MAPPER/SFILEMOD.ASM') diff --git a/v4.0/src/MAPPER/SFILEMOD.ASM b/v4.0/src/MAPPER/SFILEMOD.ASM new file mode 100644 index 0000000..ecc3009 --- /dev/null +++ b/v4.0/src/MAPPER/SFILEMOD.ASM @@ -0,0 +1,61 @@ +;0 +page 80,132 + +title CP/DOS DosSetFileMode mapper + +dosxxx segment byte public 'dos' + assume cs:dosxxx,ds:nothing,es:nothing,ss:nothing + +;********************************************************************** +;* +;* MODULE: dossetfilemode +;* +;* FUNCTION: Set file mode +;* +;* CALLING SEQUENCE: +;* +;* push@ asciiz file path name +;* push word new attribute +;* push dword reserved +;* call dossetfilemode +;* +;* MODULES CALLED: PC-DOS Int 21h, ah=43h, change file mode +;* +;********************************************************************* + + public dossetfilemode + .sall + .xlist + include macros.inc + .list + + +str struc +old_bp dw ? +return dd ? +Rsrvd dd ? ; reserved +Attrib dw ? ; file attribute +Path dd ? ; path name pointer pointer +str ends + +dossetfilemode proc far + Enter dossetfilemode ; push registers + + lds dx,[bp].path ; set pointer to path + mov cx,[bp].attrib + + mov ax,4301h + int 21h ; change file mode + jc exit ; jump if error, return DOS error in ax + + xor ax,ax ; set good return code + jmp short exit ; return + +exit: mexit ; pop registers + ret size str - 6 ; return + +dossetfilemode endp + +dosxxx ends + + end -- cgit v1.2.3