[comp.sys.ibm.pc] How to start an autobooting program without erasing memory?

hoang@rex.cs.tulane.edu (Dzung Hoang) (07/10/89)

    I have an AT compatible computer and need to run a program that auto-
boots from floppy.  The program runs too quickly to be useful.  I have some
TSR's that slow the computer to XT speeds, but they won't work if I reboot
with CTRL-ALT-DEL.  Is there a way to boot from floppy while keeping TSR's
in memory and active?  There must be some address in the BIOS that can be
jumped to to accomplish this.
    My AT compat is a CompuAdd Standard 286/10 with Phoenix BIOS.  And the
program I want to run is IKARI WARRIORS(TM).

Dzung Hoang
hoang@comus.cs.tulane.edu
tulane!comus!hoang

brown@astroatc.UUCP (Vidiot) (07/10/89)

In article <899@rex.cs.tulane.edu> hoang@rex.UUCP (Dzung Hoang) writes:
<
<    I have an AT compatible computer and need to run a program that auto-
<boots from floppy.  The program runs too quickly to be useful.  I have some
<TSR's that slow the computer to XT speeds, but they won't work if I reboot
<with CTRL-ALT-DEL.  Is there a way to boot from floppy while keeping TSR's
<in memory and active?  There must be some address in the BIOS that can be
<jumped to to accomplish this.
<    My AT compat is a CompuAdd Standard 286/10 with Phoenix BIOS.  And the
<program I want to run is IKARI WARRIORS(TM).

Sorry, can't be done.  COMMAND.COM needs to start up all the programs because
it sets aside pointers as to what memory is allocated for what.  Everything
has to start from scratch when booting.  That goes for any computer.

I would try to find out why the program wants to start the computer over again.
Sounds like copy protection schemes are in the works.  I would look into getting
the program to load from a machine that is already started.  Call the people
who make it and bitch them out, explaining the problem.  First make sure that
the program CAN'T be started from a machine already running.
-- 
	        harvard\     att!nicmad\
Vidiot            ucbvax!uwvax..........!astroatc!brown
	        rutgers/  decvax!nicmad/
	ARPA/INTERNET: brown%astroatc.UUCP@spool.cs.wisc.edu

jwright@atanasoff.cs.iastate.edu (Jim Wright) (07/10/89)

In article <2236@astroatc.UUCP> brown@astroatc.UUCP (Vidiot) writes:
| 
| Sorry, can't be done.  COMMAND.COM needs to start up all the programs because
| it sets aside pointers as to what memory is allocated for what.  Everything
| has to start from scratch when booting.  That goes for any computer.
							 ^^^
Wrong-o.  The Amiga supports a recoverable RAM drive.  Whether this is
possible under MSDOS, I don't know.  I haven't seen anything like it.
The most likely approach seems to me to try using extended/expanded memory.

-- 
Jim Wright
jwright@atanasoff.cs.iastate.edu

brown@astroatc.UUCP (Vidiot) (07/10/89)

In article <1186@atanasoff.cs.iastate.edu> jwright@atanasoff.cs.iastate.edu.UUCP (Jim Wright) writes:
<In article <2236@astroatc.UUCP> brown@astroatc.UUCP (Vidiot) writes:
<| 
<| Sorry, can't be done.  COMMAND.COM needs to start up all the programs because
<| it sets aside pointers as to what memory is allocated for what.  Everything
<| has to start from scratch when booting.  That goes for any computer.
<							 ^^^
<Wrong-o.  The Amiga supports a recoverable RAM drive.  Whether this is
<possible under MSDOS, I don't know.  I haven't seen anything like it.
<The most likely approach seems to me to try using extended/expanded memory.

Wrong-o.  Read the original posting again.  The user was talking about TSRs,
programs that reside in memory.  This is totally different than an area set
aside for a RAM drive, which could be recovered.  With TSRs, interrupt vectors
tend to be replaced and are lost when the system restarts and the COMMAND.COM
is reloaded.
-- 
	        harvard\     att!nicmad\
Vidiot            ucbvax!uwvax..........!astroatc!brown
	        rutgers/  decvax!nicmad/
	ARPA/INTERNET: brown%astroatc.UUCP@spool.cs.wisc.edu

Ralf.Brown@B.GP.CS.CMU.EDU (07/11/89)

In article <2245@astroatc.UUCP>, brown@astroatc.UUCP (Vidiot) writes:
}In article <1186@atanasoff.cs.iastate.edu> jwright@atanasoff.cs.iastate.edu.UUCP (Jim Wright) writes:
}<In article <2236@astroatc.UUCP> brown@astroatc.UUCP (Vidiot) writes:
}<| Sorry, can't be done.  COMMAND.COM needs to start up all the programs because
}<| it sets aside pointers as to what memory is allocated for what.  Everything
}<| has to start from scratch when booting.  That goes for any computer.
}<                                                        ^^^
}<Wrong-o.  The Amiga supports a recoverable RAM drive.  Whether this is
}
}Wrong-o.  Read the original posting again.  The user was talking about TSRs,
}programs that reside in memory.  This is totally different than an area set
}aside for a RAM drive, which could be recovered.  With TSRs, interrupt vectors
}tend to be replaced and are lost when the system restarts and the COMMAND.COM
}is reloaded.

It is possible to write TSRs that can survive a reboot initiated by themselves,
but it would be hairy.  First, the TSR can't hook ANY interrupt vector used by
DOS itself, only BIOS and user vectors (it also has to make sure that those
vectors weren't hooked by DOS or another TSR which will disappear on rebooting--
that would really cause problems).  Second, it has to load itself at the top of
memory and modify the BIOS memory size word to make the memory it uses
unavailable to DOS.  Third, it has to reboot the system and load the boot
sector itself--doing a reset by jumping to F000:FFF0 will reset interrupt
vectors, and using the INT 19h reboot may also reset vectors (most likely
depends on the BIOS whether it does).

--
UUCP: {ucbvax,harvard}!cs.cmu.edu!ralf -=-=-=- Voice: (412) 268-3053 (school)
ARPA: ralf@cs.cmu.edu  BIT: ralf%cs.cmu.edu@CMUCCVMA  FIDO: Ralf Brown 1:129/46
			Disclaimer? I claimed something?
"When things start going your way, it's usually because you stopped going the
 wrong way down a one-way street."

craigb@hp-sdd.hp.com (Craig Bosworth) (07/11/89)

Hate to muddle things up here, but it is possible to install a TSR,
reboot, and still use the TSR.  IBM sold a 3270 emulation package
c. 1986 which does this.  The installation procedure is as follows:

  - Boot DOS
  - Run the install utility
  - The install utility loads the emulator, then reloads DOS.    
  - The reloaded DOS runs as an extension to the emulator, instead
    of the emulator running as an extension of DOS.

I don't know how they mapped everything to avoid hardcoded addresses in
DOS, but it worked.

I used this program very briefly, but soon switched to an internal 
package that did the emulation with a more traditional TSR.

So it is possible to install some kind of background program then reload
the system.

So there.

BOS

Craig Bosworth  (619) 592-8609           16399 West Bernardo Drive
Hewlett-Packard, San Diego Division      San Diego, CA  92127-1899
UUCP     : {hplabs|nosc|hpfcla|ucsd}!hp-sdd!craigb
Internet : craigb%hp-sdd@hp-sde.sde.hp.com (or @nosc.mil, @ucsd.edu)
-- 
Craig Bosworth  (619) 592-8609           16399 West Bernardo Drive
Hewlett-Packard, San Diego Division      San Diego, CA  92127-1899
UUCP     : {hplabs|nosc|hpfcla|ucsd}!hp-sdd!craigb
Internet : craigb%hp-sdd@hp-sde.sde.hp.com (or @nosc.mil, @ucsd.edu)

jwright@atanasoff.cs.iastate.edu (Jim Wright) (07/12/89)

Actually, there are TSRs which survive a reboot.  They're called
viruses.  So such a thing can be done.  However, it would be a *lot*
easier if the BIOS gave you a little help.  Then you could (easily?)
have recoverable RAM drives (in "conventional" or "extended/expanded"
memory) as well as persistent TSRs.  Are there any useful examples
of such things around?

-- 
Jim Wright
jwright@atanasoff.cs.iastate.edu

gwang@berlioz (George Wang) (07/12/89)

Yes, it *IS* possible to reboot DOS with a TSR....

Quaid Software makes several MS-DOS utilities.... Quaid's
Disk Analyzer allows you to reboot DOS with itself
hidden in memory as a TSR.... A program called Soloboot.com
from quaid allows the rebooting of Pro-lock self-booters (bypasses
the copy protection routine)....

I don't know how it's done but there exists a way...

George
Gwang@logic.nsc.com

keithe@tekgvs.LABS.TEK.COM (Keith Ericson) (07/12/89)

In article <2236@astroatc.UUCP> brown@astroatc.UUCP (Vidiot) writes:
|In article <899@rex.cs.tulane.edu> hoang@rex.UUCP (Dzung Hoang) writes:
|<
|<    I have an AT compatible computer and need to run a program that auto-
|<boots from floppy.  The program runs too quickly to be useful.  I have some
|<TSR's that slow the computer to XT speeds, but they won't work if I reboot
|<with CTRL-ALT-DEL.  Is there a way to boot from floppy while keeping TSR's
|<in memory and active?  There must be some address in the BIOS that can be
|<jumped to to accomplish this.
|
|Sorry, can't be done.  COMMAND.COM needs to start up all the programs because
|it sets aside pointers as to what memory is allocated for what.  Everything
|has to start from scratch when booting.  That goes for any computer.

Well, actually, yes, it CAN be done...

I have seen, but not used, programs delivered with EGA (and VGA?) controllers
that permit the display to be set to CGA mode, for example, and then execute
a warm (cool?) reboot, from the floppy disk if present, to allow a CGA-based
game to be played on the CGA-compatible display.

|
|I would try to find out why the program wants to start the computer over again.
|Sounds like copy protection schemes are in the works.
             ^^^^^^^^^^^^^^^^^^^^^^

You got it!  I think he's trying to play a game that thinks it's running on
a 4.77 MHz PC instead of his 10 MHz ATClone.

|I would look into getting
|the program to load from a machine that is already started.  Call the people
|who make it and bitch them out, explaining the problem.

You think that people who copy protect their software care about end users?!!??

|First make sure that
|the program CAN'T be started from a machine already running.

kEITHe

hoang@rex.cs.tulane.edu (Dzung Hoang) (07/13/89)

In article <2226@hp-sdd.hp.com> craigb@hpsdl134.UUCP (Craig Bosworth) writes:
>Hate to muddle things up here, but it is possible to install a TSR,
>reboot, and still use the TSR.  IBM sold a 3270 emulation package
>c. 1986 which does this.  The installation procedure is as follows:
>
>  - Boot DOS
>  - Run the install utility
>  - The install utility loads the emulator, then reloads DOS.
>  - The reloaded DOS runs as an extension to the emulator, instead
>    of the emulator running as an extension of DOS.
>
>I don't know how they mapped everything to avoid hardcoded addresses in
>DOS, but it worked.
>
>I used this program very briefly, but soon switched to an internal
>package that did the emulation with a more traditional TSR.
>
>So it is possible to install some kind of background program then reload
>the system.
>
>So there.
>
>BOS
>

    I am the original poster.

    Craig message reminded me of a CGA emulation program that allows auto-
booting programs to work under emulation mode.  The program came with the
hercules clone graphics card that came with my system.  The name is COLOR.

    From the replies I've received, it seems that my best shot is to see
how COLOR handles the rebooting and whether I can do the same to slow down
the computer.

    If results are positive, I'll post a message and if there is a demand,
I'll post the specifics.

Dzung Hoang
tulane!comus!hoang
hoang@comus.cs.tulane.edu
Newsgroups: comp.sys.ibm.pc
Subject: Re: How to start an autobooting program without erasing memory?
Summary:
Expires:
References: <899@rex.cs.tulane.edu> <2236@astroatc.UUCP> <1186@atanasoff.cs.iastate.edu> <2245@astroatc.UUCP> <2226@hp-sdd.hp.com>
Sender:
Reply-To: hoang@rex.UUCP (Dzung Hoang)
Followup-To:
Distribution: na
Organization: Computer Science Dept., Tulane Univ., New Orleans, LA
Keywords:

mvolo@ecsvax.UUCP (Michael R. Volow) (07/14/89)

Regarding ramdisks which survive rebooting, Tall Tree Systems' JRAM
boards and software contain EMS ramdisks which can survive reboot
if desired. Self-booting disks (often games) are sometimes non-DOS
and might not access such TSRs. 

M Volow, VA Medical Center, Durham, NC 27705
mvolo@ecsvax.UUCP           919 286 0411