Image Map Image Map
Page 1 of 10 12345 ... LastLast
Results 1 to 10 of 93

Thread: Modern XT compatible PC on FPGA with real 8088

  1. #1

    Default Modern XT compatible PC on FPGA with real 8088

    Hi everyone !

    At spare time I'm trying to create something VERY compatible with PC XT. The design is using modern FPGA (currently Altera Cyclone IV on DE2-115 development board, but it doesn't really matter) with real 8088, 8284 and 8288 chips.

    At the moment I have almost 100% CGA-compatible video adapter (on register level) with output to VGA monitor (using 640x400 mode - every CGA pixel takes 2x2 of VGA pixels), so I'm using original XT BIOS almost for everything, except FDD and HDD.

    I'm using my own int 13h BIOS handler to emulate HDD on SD card, and everything is working quite well. Tried more than 20 old classic games, they work quite well (including MS Flight Simulator and Lotus 1-2-3 that were used as a compatibility test for early IBM-compatible PCs).

    Actually, I have one related question - does anyone aware of something like virtual FDD for DOS ? I wasn't planning to emulate FDD for now, but discovered that a lot of old software does exist on FDD images only and would not run from HDD. Quick search did not find anything for DOS - for Windows only... I can try to make my own emulator, but right now have too many other things to do...

    And just for fun, a few pictures:

    22.jpg

    HDDtest2.jpg

    IMG_0383.jpg
    Last edited by newold86; February 19th, 2015 at 08:29 PM.

  2. #2
    Join Date
    Jan 2014
    Location
    Melbourne, Australia
    Posts
    407

    Default

    That's pretty cool. Following this thread!!

  3. #3
    Join Date
    Mar 2011
    Location
    Norway/Japan
    Posts
    817

    Default

    Interesting. Assuming the 8088 is being the actual CPU, is the FPGA used to emulate the rest of an XT system?

    -Tor

  4. #4

    Default

    Quote Originally Posted by Tor View Post
    Interesting. Assuming the 8088 is being the actual CPU, is the FPGA used to emulate the rest of an XT system?
    Yep, except "the heart", everything else is in FPGA. Just wanted to have completely accurate starting point to build everything around.

    Right now still need to work a bit more on 8259 and (especially) 8253 - they behave properly most of the time, but some games use them in really weird way.

    Another problem - keyboard. Can't make it 100% accurate, because it's not realistic (or reasonable) to find original XT keyboard. So have to use PS/2 (PS/2 is not computer, just connector type) relatively modern keyboard and emulate, when possible, the behaviour of XT keyboard.
    Learned a lot about XT in a last couple weeks

  5. #5

    Default

    Very cool! May be it is possible to have all (including 8088/8086 + 8087,...) in one FPGA? I mean only with IDE/SD Card Interface, PS2 Keyboard & Mouse and VGA? One little circuit board with 1x VGA, 2x PS2 and one SD card holder and only this one FPGA? That would be very nice

  6. #6

    Default

    Awesome stuff. What is the clock speed? Does your CGA have wait states like the original IBM CGA does, or will it run as fast as the 8088's bus will allow?

  7. #7
    Join Date
    Dec 2014
    Location
    The Netherlands
    Posts
    1,596

    Default

    The CGA-to-VGA output is interesting. Is there a way to make this work on real CGA/RGBI hardware as well? Ideally by just plugging an FPGA-based device into the 9-pin output... but if not, perhaps it could somehow piggy-back on the 6845 or something?
    Even nicer would be an FPGA that can take in RGBI, and then does simulation of NTSC composite colour too, then outputs to VGA.
    Being able to simulate NTSC composite would be a nice addition for your project anyway, I guess, since quite a bit of 8088/CGA-oriented software has 16-colour composite support.

  8. #8

    Default

    Quote Originally Posted by reenigne View Post
    Awesome stuff. What is the clock speed? Does your CGA have wait states like the original IBM CGA does, or will it run as fast as the 8088's bus will allow?
    Right now I'm concentrating on maximum compatibility with the original XT, so CPU is working on 4.78MHz, but don't see any problem to introduce any turbo mode up to max frequency for the actual chip (I'm using Intersil with 10Mhz max speed).

    Don't think original CGA has any wait states - the CPU has a priority, so you have to watch timing to avoid "snow" on a screen. I use on-chip two-port memory for the video memory, so the memory is transparent from both sides - CPU and CGA, no "snow" issues. Anyway, I emulate the proper status register to allow software to check if it's proper time to write into video memory - most of CGA-oriented programs use this register.

  9. #9

    Default

    Quote Originally Posted by Scali View Post
    The CGA-to-VGA output is interesting. Is there a way to make this work on real CGA/RGBI hardware as well?
    This will require some relatively minor VHDL coding and a bit of hardware to create proper electrical interface to actual CGA monitor (don't think there are any FPGA development boards with this interface), but it's nothing major...

    Quote Originally Posted by Scali View Post
    Even nicer would be an FPGA that can take in RGBI, and then does simulation of NTSC composite colour too, then outputs to VGA.
    I'm confused - don't understand why does someone may need to do this 2-step converter ??? If it's just to simulate proper NTSC colors on VGA, it can be easily done right now with my project - tweaking color palettes, they are adjustable.

  10. #10

    Default

    Getting straight CGA-to-VGA is relatively simple; it'd be a ladder DAC similar to the one in a CGA monitor, and a line doubler so that a modern VGA screen won't scream when you hook it up. I know a few people on eBay sell converter boards that ostensibly convert a whole bunch of old digital and analog standard to VGA, but can't vouch for their quality because I haven't bought one yet.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •