summaryrefslogtreecommitdiff
path: root/v4.0/src/MAPPER/FREESEG.ASM
diff options
context:
space:
mode:
authorGravatar Mark Zbikowski2024-04-25 21:24:10 +0100
committerGravatar Microsoft Open Source2024-04-25 22:32:27 +0000
commit2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch)
tree80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/MAPPER/FREESEG.ASM
parentMerge pull request #430 from jpbaltazar/typoptbr (diff)
downloadms-dos-main.tar.gz
ms-dos-main.tar.xz
ms-dos-main.zip
MZ is back!HEADmain
Diffstat (limited to 'v4.0/src/MAPPER/FREESEG.ASM')
-rw-r--r--v4.0/src/MAPPER/FREESEG.ASM65
1 files changed, 65 insertions, 0 deletions
diff --git a/v4.0/src/MAPPER/FREESEG.ASM b/v4.0/src/MAPPER/FREESEG.ASM
new file mode 100644
index 0000000..b3f2c1c
--- /dev/null
+++ b/v4.0/src/MAPPER/FREESEG.ASM
@@ -0,0 +1,65 @@
1;
2page 60,132
3;
4title CP/DOS DosFreeSeg mapper
5;
6dosxxx segment byte public 'dos'
7 assume cs:dosxxx,ds:nothing,es:nothing,ss:nothing
8;
9; ************************************************************************* *
10; *
11; * MODULE: DosFreeSeg
12; *
13; * FILE NAME: dos023.asm
14; *
15; * FUNCTION: This module deallocates a segment
16; *
17; *
18; * CALLING SEQUENCE:
19; *
20; * push selector ; selector of the segment
21; * call dosfreeseg
22; *
23; * RETURN SEQUENCE:
24; *
25; * MODULES CALLED: DOS int 21h, ah=49h
26; *
27; *************************************************************************
28
29 public dosfreeseg
30 .sall
31 .xlist
32 include macros.inc
33 .list
34
35invalid_selector equ 0006h
36
37
38str struc
39Old_bp dw ?
40Return dd ?
41Selector dw ? ; selector of the segment to be freed
42str ends
43
44dosfreeseg proc far
45 Enter dosfreeseg ; push registers
46
47 mov es,[bp].selector ; get selector in es
48
49 mov ah,49h
50 int 21h ; free memory segment
51 jc error ; jump if error
52
53 sub ax,ax ; zero return code
54 jmp exit ; go to exit
55
56error: mov ax,invalid_selector ; put in error code
57
58exit: Mexit ; pop registers
59 ret size str - 6 ; return
60
61dosfreeseg endp
62
63dosxxx ends
64
65 end