summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/NLSFUNC/DOESMAC.INC
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/CMD/NLSFUNC/DOESMAC.INC')
-rw-r--r--v4.0/src/CMD/NLSFUNC/DOESMAC.INC40
1 files changed, 40 insertions, 0 deletions
diff --git a/v4.0/src/CMD/NLSFUNC/DOESMAC.INC b/v4.0/src/CMD/NLSFUNC/DOESMAC.INC
new file mode 100644
index 0000000..0d98ade
--- /dev/null
+++ b/v4.0/src/CMD/NLSFUNC/DOESMAC.INC
@@ -0,0 +1,40 @@
1CallInstall MACRO name,mpx,fn,save,restore
2BREAK MACRO subtitle
3 SUBTTL subtitle
4 PAGE
5ENDM
6.xcref break
7IF Installed
8 IFNB <save>
9 SaveReg <save>
10 ENDIF
11 MOV AX,(mpx SHL 8) + fn
12 INT 2Fh
13 IFNB <restore>
14 RestoreReg <restore>
15 ENDIF
16ELSE
17 Invoke name
18ENDIF
19ENDM
20
21BREAK <SaveReg - save a set of registers>
22
23SaveReg MACRO reglist ;; push those registers
24IRP reg,<reglist>
25 ?stackdepth = ?stackdepth + 1
26 PUSH reg
27ENDM
28ENDM
29.xcref SaveReg
30
31BREAK <RestoreReg - unsave some registers>
32
33RestoreReg MACRO reglist ;; pop those registers
34IRP reg,<reglist>
35 ?stackdepth = ?stackdepth - 1
36 POP reg
37ENDM
38ENDM
39.xcref RestoreReg
40 \ No newline at end of file