blob: 0d98ade1438cbc62bc306f2a130960688c1c994b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
CallInstall MACRO name,mpx,fn,save,restore
BREAK MACRO subtitle
SUBTTL subtitle
PAGE
ENDM
.xcref break
IF Installed
IFNB <save>
SaveReg <save>
ENDIF
MOV AX,(mpx SHL 8) + fn
INT 2Fh
IFNB <restore>
RestoreReg <restore>
ENDIF
ELSE
Invoke name
ENDIF
ENDM
BREAK <SaveReg - save a set of registers>
SaveReg MACRO reglist ;; push those registers
IRP reg,<reglist>
?stackdepth = ?stackdepth + 1
PUSH reg
ENDM
ENDM
.xcref SaveReg
BREAK <RestoreReg - unsave some registers>
RestoreReg MACRO reglist ;; pop those registers
IRP reg,<reglist>
?stackdepth = ?stackdepth - 1
POP reg
ENDM
ENDM
.xcref RestoreReg
|