Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.os.msdos.programmer > #1373

Re: detecting emulation or console windows

From "James Harris" <james.harris.1@gmail.com>
Newsgroups alt.os.development, comp.os.msdos.programmer, alt.lang.asm
Subject Re: detecting emulation or console windows
Date 2014-06-01 20:57 +0100
Organization A noiseless patient Spider
Message-ID <lmg0if$jno$1@dont-email.me> (permalink)
References <op.xgqwuvss6zenlw@localhost> <lmeilj$5v8$1@dont-email.me> <op.xgrpmsas6zenlw@localhost>

Cross-posted to 3 groups.

Show all headers | View raw


"Rod Pemberton" <dont_use_email@xnothavet.cqm> wrote in message 
news:op.xgrpmsas6zenlw@localhost...
> On Sun, 01 Jun 2014 02:53:39 -0400, James Harris 
> <james.harris.1@gmail.com> wrote:
>
>> Just to check on what the requirement is, if there was an emulator under
>> which your code would work successfully would you still want your code to
>> exit [...] ?
>
> Yes, I would prefer that it exit cleanly under all emulation.  I may 
> simply
> be hoping for too much ...

Logically, since the emulator provides everything that your program is able 
to see about the world, including the timing, a perfect emulator may be 
impossible to detect. Detecting *imperfect* emulations would be possible and 
none of the emulators would be perfect but the tests may differ because the 
imperfections differ.

I suppose where you are now is looking for a small set of imperfections that 
would detect all current emulators or, alternatively, a way to detect real 
hardware. Either is definitely challenging because even hardware differs.

> If it runs correctly under emulation, it's not a detriment.

You may need to accept the compromise of running under emulation. How about 
thinking of the following categories of target for your code?

1. Real hardware. One spec but many variations to adapt to. Even some real 
machines don't match the spec.

2. Full emulators. These could be seen as just more variations to adapt to. 
Things like VirtualBox, VMWare, QEMU and others.

3. Incomplete emulations, ones where a change to some hardware may cause a 
crash. These would be things like a Windows command prompt where changes to 
hardware would be ignored or would break Windows.

Essentially, categories 1 and 2 would be ones you could work with if you 
wanted to. You may need to do a lot of debugging to allow your code to work 
with the differences but it should be feasible and the differences would 
make your code more robust. I think Ross is making a similar point.

That would leave you only needing to detect category 3.

> Currently, it
> exits with a crash under tested emulation ...  I think it conflicts, or is
> likely to conflict, with a host, any host.  It's a new project, so it's 
> not
> complete, yet.  Yup, yet another project...  Think of it as an OS, but not
> a pure OS, perhaps pseudo-OS that runs on top of DOS.  I understand that 
> it
> may not be possible in all cases to exit cleanly, but the majority would 
> be
> nice.

Do you know which actions cause it to crash?

Here's a thought. After altering each hardware setting is there some way you 
could check that the setting has taken effect? If it hasn't then you know 
not to continue and you are probably running in an imperfect emulation.

> I've found a few more ways to detect DOSBox and some more for dosemu,
> e.g., wrong values for required BIOS vectors, BIOS reboot code not 
> correctly
> implemented, etc, but nothing consistent between the two.  So, nothing yet
> to lead me to believe that something would work for QEMU, VMWare, Bochs, 
> etc.
> I should probably just go ahead and install QEMU and Bochs, perhaps MESS 
> too.
> That would likely be the majority of emulators one could expect, I'd 
> hope.  Yes?
> I could probably install FreeDOS on USB as a cross-check to make sure 
> whatever
> I find is not MS-DOS specific.

Something up with your line wrapping?

> Is VMWare available for Linux?
>
> What other "major" emulators are out there?
> (Ignore different versions of Windows.)

I don't know. I always use Oracle VirtualBox. Some are listed here:

  http://wiki.osdev.org/Emulators

James

Back to comp.os.msdos.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-31 18:31 -0400
  Re: detecting emulation or console windows Ross Ridge <rridge@csclub.uwaterloo.ca> - 2014-05-31 19:59 -0400
    Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-31 20:54 -0400
      Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-31 21:43 -0400
        Re: detecting emulation or console windows "James Harris" <james.harris.1@gmail.com> - 2014-06-01 22:48 +0100
          Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-02 00:46 -0400
            Re: detecting emulation or console windows "James Harris" <james.harris.1@gmail.com> - 2014-06-02 06:15 +0100
              Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-02 03:21 -0400
                Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-02 03:32 -0400
                Re: detecting emulation or console windows "James Harris" <james.harris.1@gmail.com> - 2014-06-02 09:51 +0100
                Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-02 09:27 -0400
                Re: detecting emulation or console windows "James Harris" <james.harris.1@gmail.com> - 2014-06-02 17:05 +0100
                Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-02 19:25 -0400
                Re: detecting emulation or console windows "James Harris" <james.harris.1@gmail.com> - 2014-06-04 07:55 +0100
                Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-04 03:20 -0400
      Re: detecting emulation or console windows Ross Ridge <rridge@csclub.uwaterloo.ca> - 2014-06-01 14:03 -0400
        Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-02 00:53 -0400
          Re: detecting emulation or console windows Ross Ridge <rridge@csclub.uwaterloo.ca> - 2014-06-02 15:55 -0400
            Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-02 19:27 -0400
              Re: detecting emulation or console windows Ross Ridge <rridge@csclub.uwaterloo.ca> - 2014-06-03 17:00 -0400
  Re: detecting emulation or console windows Sjouke Burry <burrynulnulfour@ppllaanneett.nnll> - 2014-06-01 06:25 +0200
    Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-01 02:50 -0400
  Re: detecting emulation or console windows "James Harris" <james.harris.1@gmail.com> - 2014-06-01 07:53 +0100
    Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-01 04:53 -0400
      Re: detecting emulation or console windows "James Harris" <james.harris.1@gmail.com> - 2014-06-01 20:57 +0100
        Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-02 00:48 -0400
      Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-02 03:20 -0400
  Re: detecting emulation or console windows JJ <duh@nah.meh> - 2014-06-02 03:43 +0700
    Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-02 00:34 -0400
    Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-03 07:06 -0400
      Re: detecting emulation or console windows JJ <duh@nah.meh> - 2014-06-03 20:25 +0700
  Re: detecting emulation or console windows "wolfgang kern" <nowhere@never.at> - 2014-06-03 20:52 +0200
  Re: detecting emulation or console windows "James Harris" <james.harris.1@gmail.com> - 2014-06-03 22:59 +0100
    Re: detecting emulation or console windows CN <qmbmnp3799@pacbell.net> - 2014-06-03 18:39 -0700
      Re: detecting emulation or console windows "James Harris" <james.harris.1@gmail.com> - 2014-06-04 07:06 +0100
        Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-04 03:07 -0400
          Re: detecting emulation or console windows "James Harris" <james.harris.1@gmail.com> - 2014-06-04 09:16 +0100
  Re: detecting emulation or console windows "James Harris" <james.harris.1@gmail.com> - 2014-06-03 23:00 +0100
  Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-06-10 17:37 -0400
    Re: detecting emulation or console windows Wildman <best_lay@yahoo.com> - 2014-06-11 00:37 +0000
      Re: detecting emulation or console windows "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-07-27 12:11 -0400

csiph-web