Microsoft Virtual PC

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
KieranFoot

Microsoft Virtual PC

Post by KieranFoot »

Hi guys, iv just got my hands on a copy of Microsoft's Virtual PC.

I would just like to know what you guys think about the use of this software, maybe you know of some issues or should i stay with bochs???
hendric

Re:Microsoft Virtual PC

Post by hendric »

I suggest that you'd better stay with bochs as you guy can never use an original disk image within VPC.You know ,sometimes an original disk image is more convinent.
Rob

Re:Microsoft Virtual PC

Post by Rob »

Actually you can use an original image, but only as a 720 kb floppy or 1.44 mb. Another option is a (virtual) CD. I have Daemon Tool installed and I can mount a CD image which Virtual PC can boot from.

Personally the more stuff I can test on the better. I'm currently playing around with QEMU, VirtualPC and two actual computers. If I start doing some serious work I'll add Bochs and VMWare.

Most virtual machines offer different levels of hardware they emulate or support. For example, I'm playing with QEMU since it can emulate a 64-bit CPU and multiple CPU's. VirtualPC on the other end has support for ACPI and a Plug & Play BIOS which QEMU is lacking.
Kim

Re:Microsoft Virtual PC

Post by Kim »

MS Virtual PC is able to open a ISO file.

"Capture a image file..." or something like that, just click on it under cdrom drives and select your os cd image.
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Re:Microsoft Virtual PC

Post by Colonel Kernel »

I found that Virtual PC didn't emulate 90x60 text mode VGA properly, so I didn't bother testing with it further. :P
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
Rob

Re:Microsoft Virtual PC

Post by Rob »

You probably already know, but 90 x 60 is not a standard textmode. So it may not work properly on real hardware either.

If you switch to 640 x 480 x 16 graphics and use the BIOS' font tables you can get 80 x 60 (although that might look a bit cramped). That is supported on every vga card though.
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Re:Microsoft Virtual PC

Post by Colonel Kernel »

What does it mean to be a "standard" mode? I set 90x60 by programming the VGA registers and loading my own font data directly. It works fine on every real machine I've tested it on.

My code is based on what I found here:

http://my.execpc.com/~geezer/software/90x60.asm
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
oswizard

Re:Microsoft Virtual PC

Post by oswizard »

It also has an odd problem where the invlpg instruction seems to be ignored on the fourth time it is used. Sounds really odd, but I don't think its due to anything I'm doing wrong, because Bochs and all real PCs I've tested it on work fine. To work around it, just reload CR3.

I'm sure it was designed to implement a bare minimum of features to allow Windows to run.

So in short, it _should_ work, but there are definitely better emulators out there. Besides, with Bochs you get the log file... try debugging a triple fault on virtual pc!

Mike
Rob

Re:Microsoft Virtual PC

Post by Rob »

Colonel, the asm says "should work with VGA video board and VGA monitor", notice the *should*. Basically if it cannot be set through normal or VESA BIOS extensions, like the 80 x 50 is, then I would not consider it a "normal mode".

It works since the source basically retimes your vga card, which I guess is fine if you know exactly which card your working on and what the limits are (like a specific driver would know).

Personally for "production" code I like to stick to something normal or VESA bios can set.

Mike: I would re-check that, I found a list and it seems to run a lot of operating systems (don't know if they use invlpg or not, of course) so it does seem a bit unlikely:

http://vpc.visualwin.com/

Again I like to have as many different test setups as possible. A resetting computer is definitely not something you want to debug under that. But it's a great way to test some ACPI / PnP code.
JAAman

Re:Microsoft Virtual PC

Post by JAAman »

Mike wrote: I'm sure it was designed to implement a bare minimum of features to allow Windows to run.
no this is not true -- VPC was not even written by MS -- it was written to work with all OSs -- not just windows (officially, MS only offers tech support for windows, though i have heard that they don't actually enforce that) and it does work with all major OSs (including all forms of linux, BSD, solaris, windows, etc)
Post Reply