MACROS.HSM
资源名称:ertos.rar [点击查看]
上传用户:sunrenlu
上传日期:2022-06-13
资源大小:1419k
文件大小:2k
源码类别:
操作系统开发
开发平台:
DOS
- IF FUNC_L
- @AB EQU 6
- @ab EQU 6
- ELSE
- @AB EQU 4
- @ab EQU 4
- ENDIF
- if FUNC_L
- %OUT <Far Functions>
- else
- %OUT <Near Functions>
- endif
- if PTR_L
- %OUT <Far Pointers>
- else
- %OUT <Near Pointers>
- endif
- cextrn macro WARG1
- if FUNC_L
- EXTRN _&WARG1&:FAR
- else
- EXTRN _&WARG1&:NEAR
- endif
- endm
- ccall macro WARG1
- if FUNC_L
- CALL FAR PTR _&WARG1&
- else
- CALL _&WARG1&
- endif
- endm
- cpublic macro WARG1
- public _&WARG1&
- if FUNC_L
- _&WARG1& PROC FAR
- else
- _&WARG1& PROC NEAR
- endif
- PUSH BP
- MOV BP,SP
- PUSH SI
- PUSH DI
- endm
- cproc macro WARG1
- public _&WARG1&
- if FUNC_L
- _&WARG1& PROC FAR
- else
- _&WARG1& PROC NEAR
- endif
- endm
- cendp macro WARG1
- _&WARG1& ENDP
- endm
- creturn macro WARG1
- POP DI
- POP SI
- MOV SP,BP
- POP BP
- if FUNC_L
- RET
- else
- RET
- endif
- _&WARG1& ENDP
- endm
- cstart macro WARG1,WARG2
- if FUNC_L
- &WARG1&_TEXT SEGMENT WARG2
- else
- _TEXT SEGMENT WARG2
- endif
- endm
- cend macro WARG1
- if FUNC_L
- &WARG1&_TEXT ENDS
- else
- _TEXT ENDS
- endif
- endm
- codedef macro WARG1,WARG2
- if FUNC_L
- &WARG1&_TEXT SEGMENT BYTE WARG2 PUBLIC 'CODE'
- &WARG1&_TEXT ENDS
- ASSUME CS: &WARG1&_TEXT
- else
- _TEXT SEGMENT BYTE WARG2 PUBLIC 'CODE'
- _TEXT ENDS
- ASSUME CS: _TEXT
- endif
- endm
- datadef macro WARG1
- _DATA SEGMENT WORD WARG1 PUBLIC 'DATA'
- _DATA ENDS
- _BSS SEGMENT WORD WARG1 PUBLIC 'BSS'
- _BSS ENDS
- DGROUP GROUP _BSS, _DATA
- ASSUME DS: DGROUP, SS: DGROUP, ES: DGROUP
- endm
- bssstart macro WARG1
- _BSS SEGMENT WARG1
- endm
- bssend macro
- _BSS ENDS
- endm
- farbssstart macro
- FAR_BSS SEGMENT
- endm
- farbssend macro
- FAR_BSS ENDS
- endm
- fardatastart macro
- FAR_DATA SEGMENT
- endm
- fardataend macro
- FAR_DATA ENDS
- endm
- datastart macro WARG1
- _DATA SEGMENT WARG1
- endm
- dataend macro
- _DATA ENDS
- endm
- conststart macro WARG1
- endm
- constend macro
- endm