In a heterogeneous computer system having at least two CPUs and a common memory completely accessible by at least one of said CPUs and being disposed for storing at least two operating systems that actively run simultaneously and concurrently control resources of said heterogeneous computer system, a method for performing function calls from a Client Program operating under control of a first of said operating systems to a Server Program operating under control of a second of said operating systems and back again to said Client Program, said method comprising the steps of:
- a. said Client Program calling a first procedure for initializing said Server Program via a CPU-to-CPU signal bus between said at least two CPUs;
- b. said Client Program calling via said CPU-to-CPU signal bus a second procedure representing a desired first external function to be executed by said Server Program;
- c. said Client Program storing parameters in a Client program stack stored within a portion of said common memory;
- d. said second procedure fetching said parameters directly from said Client program stack and causing said desired first external function to be executed by said Server Program;
- e. said desired first external function then calling a third procedure representing a second desired external function to be executed by said Client Program;
- f. said first desired external function storing any necessary parameters in a Server program stack within a portion of said common memory;
- g. said third procedure fetching said parameters from said Server program stack;
- h. said third procedure causing said desired second external function to be executed by said Client Program;
- i. said second external function storing in said Server program stack any results via said third procedure;
- j. said Server Program continuing to execute said first external function to completion and storing in said Client program stack any results, via said second procedure;
- k. said Client program fetching said results.sub.-- from said Client program stack;
- and,
- l. said Client and Server Programs repeating steps b through k for each function called by said Client Program.