1. In a multi-tasking computer system comprising a central processing unit (CPU) and a system memory operating in a Windows enhanced mode operating system environment, a method for sharing code between more than one virtual machine (VM) operating in said multi-tasking computer system, said method comprising the steps of: loading into said system memory at least one calling virtual machine (VM) comprising a calling process and a target virtual machine (VM) comprising a shared code routine; loading into said system memory a shared code virtual device driver (VxD) capable of being called from both said calling VM and said target VM; executing said calling process in said multi-tasking computer system; transferring control of said multi-tasking computer system from said calling process in said calling VM to said shared code VxD when access to said shared code routine is desired; storing information to identify said calling VM and said target VM including storing a handle to a semaphore to identify said calling VM to said Windows enhanced mode operating system; scheduling said target VM with said Windows enhanced mode operating system; transferring control of said multi-tasking computer system from said shared code VxD to said target VM when said Windows enhanced mode operating system selects said target VM as an active task; blocking on said calling VM based on said handle to said semaphore such that said Windows enhanced mode operating system does not select said calling VM as an active task; calling said shared code routine in said target VM; executing said shared code routine; calling said shared code VxD from said target VM; unblocking said calling VM such that said Windows enhanced mode operating system may select said calling VM as an active task; and transferring control from said target VM to said Windows enhanced mode operating system such that selection of said calling VM by said Windows enhanced mode operating system as an active process results in resuming execution in said calling VM.