Emuforums.com

Go Back   Emuforums.com > General Discussion > Web development / Programming
Home Register Downloads FAQ Members List Calendar Arcade Mark Forums Read


Reply
 
LinkBack Thread Tools Display Modes
Old June 4th, 2009   #1 (permalink)
Emu author
 
blueshogun96's Avatar
 
Join Date: Jun 2004
Location: Unidentified
Posts: 2,475
Question IBM/x86 PC documentation.

Lately, I've been having computer problems (with my notebook), meaning I won't be able to work on some of my emulation projects for a while (because they use .net 2008 and I can't get that on my desktop) In the mean time, I think I'm going to take Shizzy's advice, try emulating an old x86 pc architecture (i.e. i8088, i8086, 186, 286, 386, Pentium MMX, etc.) until HP fixes my notebook (which may take a while). The idea of the emulator is to allow the user to choose what hardware he want to emulate (i.e. CPU, GPU, SPU, etc.). Something a little different than what most PC emulators implement.

So far I haven't been able to gather information on the hardware necisarry to emulate a PC, but I have gathered some documentation on certain hardware, but I don't know where to look for others (I've been at this for a while now). Here's a list of what I do/don't have:

Do:
- CPUs (i8088, i8086, i80186, Pentium)
- Memory map for i8088, and i8086 PCs
- VGA hardware
- Some 3D accelerators (Riva128 and Voodoo 1, Banshee, 2, and 3).
- 3D accelerator's BIOS for all the above except Voodoo 1 which has no BIOS.

Don't:
- CPUs (i286, i386, i486)
- Interrupt controller (PIC)
- Input devices (i.e. keyboard, mouse)
- Floppy disk drive
- CD Drive
- Hard Disk Drive
- BIOS details
- Sound hardware

Hopefully there isn't anything I've been missing here. Also, I don't expect this to be an easy task either, but I want to continue to keep up a good knowledge of x86 architecture emulation. The reason I got the information on the 3D accelerators was because I've never seen a PC emulator emulate any video cards other than a standard VGA card. I have full documentation on the 3Dfx Voodoo, but getting enough information on the NVIDIA Riva128 to actually emulate it was painfully hard, but I did it though.

Any links/ideas? Thanks.
__________________

[Sagat] Windows XP x64 Pro | AMD Athlon 3000+ (~2.0GHz) | NVIDIA GeForce 6600 PCI-E | Realtek AC97 Audio | 512MB Ram | NVIDIA NForce 4-4X chipset | Seagate HDD 160GB | LG 8614 DVD-ROM | HP DVD 1040d CD/DVD -/+ RW w/ LightScribe
[Raylene] HP dv2000 | Windows Vista Home Premium | Intel Core2 Duo @2.2GHz | NVIDIA GeForce 8400 GS 128Mb (Dedicated) + 1264Mb (Shared) | 3GB Ram | 220GB HDD


GeneralEmu - December 27, 2005 and beyond!
Shogun3D Interactive (I try to update it every day now)
Shogun's Cxbx Dev Blog
blueshogun96 is offline   Reply With Quote

Advertisement [Remove Advertisement]
Old June 4th, 2009   #2 (permalink)
Dax
ライチュウ
 
Dax's Avatar
 
Join Date: Nov 2006
Location: USA
Posts: 3,277
I don't know if this will help you in emulation, but a good site for x86 operating system dev is: OS Development which talks about some of those things in more detail. Does that help at all?

Edits:

Floppy Drive Controller: http://en.wikipedia.org/wiki/Floppy_disk_controller <- seems to have some interesting bits.
APIC: http://en.wikipedia.org/wiki/Intel_APIC_Architecture <- has some links to data sheets
Dax is offline   Reply With Quote
Old June 4th, 2009   #3 (permalink)
Emu author
 
Join Date: Apr 2001
Location: Cleveland OH, USA
Posts: 1,167
I second osdev.org, I used it years ago when writing a kernel. You might need more information for the floppy disk controller. There are tons of them, mostly compatible with the original NEC µPD765. When I was writing a floppy driver I used the manual for the Intel 82077AA as a reference. That is the chip used in the IBM PS/2. This was because I found the unofficial references to be inadequate, but the situation may have changed since then.

In fact, just about all of the components should have official data sheets and/or programming manuals available.

For starting out I would say forget emulating the BIOS and require an image.
Exophase is offline   Reply With Quote
Old June 4th, 2009   #4 (permalink)
Dax
ライチュウ
 
Dax's Avatar
 
Join Date: Nov 2006
Location: USA
Posts: 3,277
I wrote a really tiny [and crappy since I still don't get OS dev that well] kernel as well once. That took just about all the skill I could muster[I managed to get it to go into Protected mode, have the GDT and all that(sort of cheated by having GRUB set it up, then set it up myself to known values), but no memory management or tasking[not even single ].. @.@; Anyway, I'll keep posting up stuff as I come across it.
Dax is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT. The time now is 17:12.

© 2006 - 2008 Emu Forums | About Emu Forums | Legal | A member of the Crowdgather Forum Community


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 RC5