; File: VMTUTIL.INC ;Copyright (c) 1991 By Borland International, Inc. ;********** VMT Utilities ************* ; Setup area for the VMT segments if (@CodeSize eq 0) ;*** Handle VMT utilities for small code model programs. vmtseg macro ; Macro to switch to where the VMT's are stored .code endm @vmtseg = @code LoadVMTSeg macro reg,tempreg push cs pop es endm mptr equ else ;*** Handle VMT utilities for large and huge code models ; Declare a separate segment for the VMT's vmt_seg segment public vmt_seg ends vmtseg macro vmt_seg segment endm @vmtseg = vmt_seg LoadVMTSeg_ macro reg,tempreg ifidni , mov reg,@vmtseg else mov tempreg,@vmtseg mov reg,tempreg endif endm LoadVMTSeg macro reg,tempreg ifb push bx ; Use BX as the temp since it is destroyed during the call! LoadVMTSeg_ reg,bx pop bx else LoadVMTSeg_ reg,tempreg endif endm mptr equ endif MAKE_VMT macro vmtseg TBLINST ; Create the virtual table for the memory_block ends .code endm