[net.micro.pc] Question for Microsoft

rcs@abstl.UUCP (06/20/86)

I have a friend who has developed software on an IBM XT using:

    IBM Basic Compiler version 2.00
    PC-DOS version 2.1

His programs have been successfully tested on XTs, ATs and a Kaypro 16.  When
the software is run on a Zenith Z-150 (MS-DOS version 2.11, IO.SYS 1.05) the
following message appears:

    CANNOT EXECUTE AS A CHILD OF BASIC

Can anyone provide some insight to the meaning of this error and / or any
ideas for a workaround?

Thanks in advance for you help!

Bob Stuckmeyer			..!ihnp4!we53!abstl!rcs
Anheuser-Busch Companies	314/577-4149
One Busch Place, Bldg. 202-7
St. Louis, MO  63118

brown@nicmad.UUCP (06/25/86)

In article <556@abstl.UUCP> rcs@abstl.UUCP writes:
>
>
>I have a friend who has developed software on an IBM XT using:
>
>    IBM Basic Compiler version 2.00
>    PC-DOS version 2.1
>
>His programs have been successfully tested on XTs, ATs and a Kaypro 16.  When
>the software is run on a Zenith Z-150 (MS-DOS version 2.11, IO.SYS 1.05) the
>following message appears:
>
>    CANNOT EXECUTE AS A CHILD OF BASIC
>
>Can anyone provide some insight to the meaning of this error and / or any
>ideas for a workaround?

I'll put in my 2 cents, just to get things started here.  

On my PC-XT I can get that error while trying to run another Basic compiled
program from within another Basic program.  So, for some reason, the compiled
program 'thinks' that another Basic program is already running.  I know this
doesn't help you any, but the clue must be in the memory mapping of the Z-150.
What you need is the information from the Z-150 that tells you how Basic uses
the memory map and the IBM Basic memory map, then you can compare and see
what IBM is looking for and then see what the Z-150 operating system is doing
to the map.  It is a clue, no matter how small of a clue.

Hopefully someone else has run across this and has already figured out the
difference between the two machines.
-- 

              ihnp4------\
            harvard-\     \
Mr. Video      seismo!uwvax!nicmad!brown
              topaz-/     /
             decvax------/

sandersr@ecn-pc.UUCP (Robert C Sanders) (06/27/86)

In article <556@abstl.UUCP> rcs@abstl.UUCP writes:
>
>I have a friend who has developed software on an IBM XT using:
>    IBM Basic Compiler version 2.00
>    PC-DOS version 2.1
>His programs have been successfully tested on XTs, ATs and a Kaypro 16.  When
>the software is run on a Zenith Z-150 (MS-DOS version 2.11, IO.SYS 1.05) the
>following message appears:
>
>    CANNOT EXECUTE AS A CHILD OF BASIC
>
>Can anyone provide some insight to the meaning of this error and / or any
>ideas for a workaround?

I have an H-151 (a Z-150 PC), and I too got that message both, when I tried
   running Zenith's GW BASIC on an IBM XT, and when I tried to run some
   basic programs under GW BASIC on my H-150.  The problem stems from any
   terminate and stay resident program that may be in memory.  I found that
   if I removed my RAMDISK program, SIDEKICK, or the like the problem
   generally cleared up.  Another fix, is to run the NODEBUG program
   provided by Zenith just for problems similar to this.  Try this first.

Microsoft is unable to help you with questions concerning the Zenith.  You
   should call Zenith at 616-982-3860 for their port of MS-DOS 2.11.  They
   are the ones responcible for it, and know exactly what is in it -- they
   ordered it that way.  This is a common problem, and they have several
   fixes for it.

I now operate under MS-DOS 3.10, and for $75 upgrade, have not had any
   problems like this occur under it.  I hope that this helps.

				- bob
-- 
------------
Continuing Engineering Education Telecommunications
Purdue University

"Time is a mouse that requires constant feeding..." -- me

	...!ihnp4!pur-ee!pc-ecn!sandersr

jso@edison.UUCP (07/08/86)

In article <742@nicmad.UUCP>, brown@nicmad.UUCP writes:
> In article <556@abstl.UUCP> rcs@abstl.UUCP writes:
> >
> >    CANNOT EXECUTE AS A CHILD OF BASIC
> >
> >Can anyone provide some insight to the meaning of this error and / or any
> >ideas for a workaround?
> 
> On my PC-XT I can get that error while trying to run another Basic compiled
> program from within another Basic program.  So, for some reason, the compiled
> program 'thinks' that another Basic program is already running.

You got it!  GW-BASIC 2.0 or greater, and therefore most BASICS that
derive from it, use a flag referred to as CHLDPR, located at 0:50F, to
indicate whether or not BASIC is already running.  They rely on this
to be cleared at boot or exit, and set when BASIC starts.  If the byte
is non-zero, it will print that message and fail.

This all happens in the "OEM-dependent" portion of the BASIC
implementation, so if someone were to make a version for your Z-150
system, they would/should take care of making this work (the 0:50F is
IBM-specific).  Since you're trying to run an IBM version of BASIC,
then either your DOS isn't exactly compatible with PC-DOS in this
area, or something else is clobbering that byte.  In any case, you
should be able to use debug to look at that flag, or search for the
reference to the 050F address in the interpreter/runtime package and
change it to someplace safe.

Hope this is of use-

	John Owens @ General Electric Company	(+1 804 978 5726)
	edison!jso%virginia@CSNet-Relay.ARPA		[old arpa]
	edison!jso@virginia.EDU				[w/ nameservers]
	jso@edison.UUCP					[w/ uucp domains]
	{cbosgd allegra ncsu xanth}!uvacs!edison!jso	[roll your own]