Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!gatech!gitpyr!kpk From: kpk@gitpyr.gatech.EDU (Kevin P. Kleinfelter) Newsgroups: comp.sys.ibm.pc Subject: Secondary command processor w/Turbo Message-ID: <3509@gitpyr.gatech.EDU> Date: Tue, 28-Apr-87 21:31:01 EDT Article-I.D.: gitpyr.3509 Posted: Tue Apr 28 21:31:01 1987 Date-Received: Thu, 30-Apr-87 04:14:23 EDT Distribution: na Organization: Georgia Institute of Technology Lines: 16 Keywords: Tough The problem with invoking a secondary command processor under Turbo is that Turbo places code at low memory and data (heap or stack) in high memory. Thus you can't really release the memory to do an EXEC call. The solution I created was to write a little "Job Control" program which installed itself into an interrupt vector and then called a Turbo program. The Turbo program could post requests to the Job Control via registers (via inline code) and interrupt calls. Capabilities of the Job Control included "terminate me and run the next program", "add this program to the Job Queue", etc. To simulate a program call, I wrote a parameter file, terminated and ran the next program, and when it was complete I reran the original program (which skipped forward to the point of the call, based on the parameter file). This took me about a month, and I'm pretty good at low-level programming. Good Luck.