Home » RBC Forums » General Discussion » Chipset based IBM PC/XT compatible 8088 board
|
|
Re: Chipset based IBM PC/XT compatible 8088 board [message #3666 is a reply to message #3664] |
Wed, 25 October 2017 11:44 |
smbaker
Messages: 49 Registered: January 2017
|
Member |
|
|
will wrote on Wed, 25 October 2017 09:56Hmmm. I was going to suggest swapping PIC12F629 for PIC16F630, connecting the top 3 address bits of the ROM (and the reset line) to the PIC, and then send commands to the PIC over the keyboard interface for it to switch ROM banks.
I think it's always a challenge in retro projects how much modern technology we incorporate. Using a PIC to translate keyboard protocol from XT to AT doesn't seem like a big deal, but implementing memory management using a PIC, even if it's something as simple as flipping the bit on an address line, seems like a bigger leap to me.
So there is no RTC on the Micro 8088? If an RTC and associated address decode (74hct138, etc) was added, then perhaps a spare output on that address decode could also be used to trigger a flipflop that could then control A16. There's something to be said for keeping the board simple though. I like that it's small.
skiselevSounds like an idea for another project.... I've actually built something like this back in the day. As you can see PCB manufacturing services were not readily available that time
I remember seeing that on your website and thinking it was cool! It does sound like a fun project.
I have a "BOCA Start Card" that I tried using with my Xi 8088 for a while, perhaps even before I build the floppy controller board. Still had DOS installed in the flash and booted right up. There was something funky with writing to the flash chips though, not only did it take forever, but the card would eventually start timing out on writes and turn out corrupted.
Scott
|
|
|
|
Re: Chipset based IBM PC/XT compatible 8088 board [message #3676 is a reply to message #3667] |
Thu, 26 October 2017 11:58 |
Sergey
Messages: 236 Registered: October 2015 Location: Portland, OR
|
Senior Member |
|
|
More food for thought: I checked the /EPSL signal generated by the chipset, that is used as the chip select for ROM, and, apparently it is only activated for memory read cycles (not memory write).
Because of this, the idea of modifying EEPROM / Flash ROM for configuration changes or in-system BIOS upgrades won't work. Unless, the ROM chip select will be generated in some another way, for example using SPLD.
So, there are two options:
- Do not support writing EEPROM / Flash ROM in the system. In this case, the design can be left as is, or the /MEMW and /MEMR signals can be disconnected altogether, and ROM's /OE tied to /LOW, and /WE tied HIGH (so that /CS used to read the ROM).
- Provide a way to use SPLD to generate chip select for the ROM. The SPLD already has all the required address lines, so only one additional output pit would be used. A jumper would be provided to select either SPLD or chipset as the ROM chip select source (in case people don't want to use SPLD).
|
|
|
|
|
Re: Chipset based IBM PC/XT compatible 8088 board [message #3684 is a reply to message #3683] |
Fri, 27 October 2017 11:33 |
Sergey
Messages: 236 Registered: October 2015 Location: Portland, OR
|
Senior Member |
|
|
So far, the only necessary setting is going to be floppy drive types. There may be some optional settings, for example selecting the initial CPU clock frequency (normal, or one of two turbo frequencies).
The time keeping functionality is nice to have, but not really required. Back in 80's most of PC/XT's didn't have an RTC, and people lived happily without it
It is not really possible to add DS12885/7 in Xi 8088 compatible way, this is because its I/O address will conflict with the chipset. It is possible to use another address (somewhere in 0x200-0x3FF range), but that won't be compatible with Xi 8088 or AT any more and likely will require a clock driver for DOS. Given that, and the additional complications of the board design (adding another SPLD and RTC components), I am a bit reluctant to this change.
Going back to the immediate issue at hand - floppy drive types and number configuration:
1. It should be possible to auto-detect the number of floppy drives on boot (seek to some track / seek to track 0), check if it is successful.
2. The actual floppy type can be auto-detected. For 2.88 MB (ED) and 1.44 (HD) floppy drives BIOS already does that, basically trying to read floppy ID at different speeds: 1 Mbps for 2.88 MB, 500 kbps for 1.44 MB, 250 kbps for 720 KB /360 KB. Might be a bit more difficult for 1.2 MB drives... does any one care about them though?
For now, I think I'll stay with the current design. It should be fairly easy to mod to enable Flash ROM writes (cut the ROM CS trace, solder ROM CS to an available SPLD output, reprogram SPLD), in case people will want to do that.
[Updated on: Fri, 27 October 2017 11:51] Report message to a moderator
|
|
|
|
Re: Chipset based IBM PC/XT compatible 8088 board [message #3686 is a reply to message #3685] |
Fri, 27 October 2017 18:43 |
Sergey
Messages: 236 Registered: October 2015 Location: Portland, OR
|
Senior Member |
|
|
Need to verify that the chipset is fully decoding the addresses, and won't write the PPI for example (like it would do on an original XT, that only decodes A9-A5 for I/O ports, and ignores A4-A0).
Another potential issue is the DTR (direction) signal for data bus transceiver - U10 on the schematic. I am assuming that for I/O read operations from 0x00-0xFF port range the direction of that transceiver is going to be from the CPU/chipset to the ISA bus, while if using RTC (connected to the ISA bus), we'll want to have the opposite direction (from the ISA to the CPU/chipset). It might be that chipset designers were smart, and the chipset only changes the direction for the read operation for valid addresses, but I doubt that ;-)
I can try testing it all, but as I said before, I see a little benefit of implementing RTC but a lot of hassle.
|
|
|
|
|
|
|
|
|
|
|
Re: Chipset based IBM PC/XT compatible 8088 board [message #3831 is a reply to message #3721] |
Thu, 23 November 2017 15:26 |
Sergey
Messages: 236 Registered: October 2015 Location: Portland, OR
|
Senior Member |
|
|
I am pleased to announce that I've received Micro 8088 boards from the manufacturer and I am ready to distribute them. I also have several Faraday FE2010A ICs. Please see Board Inventory page for the ordering information.
Yesterday evening I've built and tested one board in a few different configurations:
- With and without the SPLD
- Using 14.31818 MHz and 28.63636 MHz crystals
- Intel P8088-2, Intersil CP80C88, NEC V20 CPUs, and Intel D8087-1 FPU. All work nicely at 9.54 MHz (4.77 MHz and 7.16 MHz works too)
- 512 KiB and 1 MiB SRAM (UMB configuration with SPLD)
- I tested the board using 74F-series buffers/latches/transceivers. And I will be testing other logic families as time allows.
The BIOS still needs a few improvements. But generally it works OK.
The Micro 8088 project information is currently hosted in this GitHub repository.
- Sergey
[Updated on: Thu, 23 November 2017 15:48] Report message to a moderator
|
|
|
|
|
|
|
|
Re: Chipset based IBM PC/XT compatible 8088 board [message #3857 is a reply to message #3856] |
Tue, 28 November 2017 09:04 |
Sergey
Messages: 236 Registered: October 2015 Location: Portland, OR
|
Senior Member |
|
|
smbaker wrote on Tue, 28 November 2017 08:26It's working with this morning's BIOS!
Cool! Thank you for testing
Quote:
1) Direct connecting a keyboard works fine, but my KVM-IP does not work. Unsure why, probably need to start by checking to make sure the KVM-IP is still working correctly and its cable is good.
I am unsure why this is happening. It might be some incompatibility between your KVM and AT2XT firmware. Perhaps worth checking and/or asking at the AT2XT thread here
Quote:
2) CTRL-ALT-DEL will cause it to fail to boot from compactflash.
I am aware of this issue. It looks that something in the BIOS data area does not get initialized on warm reset. This is the top item on my to do list
Quote:
3) I have a TSR that I run on startup that steals int 1c. It works fine on the xi 8088 but doesn't work right on the micro 8088, and causes other programs to not work right too. This could be my fault, when I get a chance I will figure out what part of the program is triggering the bad behavior.
The IRQ0 / INT 8 / INT 1C logic shouldn't have changed, or at least I don't remember changing anything there. Is it possible that your program misbehaves because of some another issue? (for example, the keyboard code changed quite a bit, and it is not near to be well debugged)
Quote:
How do I get it to run at speeds > 4.77 MHz? Do I need to write port 63h bits 6 or 7 myself?
Currently you'll need to do that manually, but it is the next item on the to do list
Run "debug", and use the following commands to change the CPU clock:
- To set normal/default 4.77 MHz CPU clock: "o 63 01" without FPU, or "o 63 03" with FPU
- To set 7.15 MHz CPU clock: "o 63 41" without FPU, or "o 63 43" with FPU
- To set 9.55 MHz CPU clock: "o 63 81" without FPU, or "o 63 83" with FPU
Alternatively, you can write a really short program to out these values to port 63h.
Thanks,
Sergey
[Updated on: Tue, 28 November 2017 09:05] Report message to a moderator
|
|
|
|
|
Re: Chipset based IBM PC/XT compatible 8088 board [message #3868 is a reply to message #3867] |
Tue, 28 November 2017 22:09 |
Sergey
Messages: 236 Registered: October 2015 Location: Portland, OR
|
Senior Member |
|
|
smbaker wrote on Tue, 28 November 2017 21:07
Question about power-on reset. It looks like the reference design in the FE2010A datasheet has a 470 ohm resistor from !REST to VCC, whereas the Micro 8088 instead has the 470 ohm resistor from !REST to the reset switch and header. Why? Isn't that RC combination necessary to generate power-on reset?
Both Micro 8088 and the FE2010A reference design have an RC reset circuit with 10 kohm resistor and 10 uF capacitor. The difference is that Micro 8088 adds a 470 ohm resistor between the reset switch and 10 uF capacitor. This resistor limits the current flowing through the reset switch when it is pressed to less than 10 mA, prolonging the life of that switch. Without the resistor, the switch basically short circuits the capacitor, resulting in momentary high current.
Meanwhile I did a few updates to the BIOS:
- I added turbo mode switch functionality, it uses Ctrl-Alt-Keypad{-|*|+} for 4.77 MHz, 7.16 MHz, and 9.55 MHz CPU frequency respectively
- I think I fixed the XT-IDE BIOS extension not working after Ctrl-Alt-Del issue. It is a fairly stupid problem: XT-IDE BIOS will not initialize if Ctrl button is pressed, and apparently keyboard was not reset and keyboard buffer was not flushed when system was rebooted using Ctrl-Alt-Del
I am planning to post the updated BIOS on GitHub later tonight.
|
|
|
|
|
|
|
|
|
Re: Chipset based IBM PC/XT compatible 8088 board [message #3997 is a reply to message #3684] |
Fri, 22 December 2017 15:18 |
smbaker
Messages: 49 Registered: January 2017
|
Member |
|
|
skiselev wrote on Fri, 27 October 2017 11:33It is not really possible to add DS12885/7 in Xi 8088 compatible way, this is because its I/O address will conflict with the chipset. It is possible to use another address (somewhere in 0x200-0x3FF range), but that won't be compatible with Xi 8088 or AT any more and likely will require a clock driver for DOS. Given that, and the additional complications of the board design (adding another SPLD and RTC components), I am a bit reluctant to this change.
For what it's worth, my add-an-RTC project was semi successful:
(picture attached below)
Only "semi-successful" because I made a mistake with respect to wiring RTC_RD which requires some on-board hacking, but it does appear that I can read from the IC when it's located at 70H/71H. I have my Nixie clock up and running on the Micro 8088.
Scott
-
Attachment: isaclock.jpg
(Size: 547.71KB, Downloaded 387 times)
[Updated on: Fri, 22 December 2017 15:19] Report message to a moderator
|
|
|
|
|
|
|
|
Current Time: Thu Mar 28 22:30:38 PDT 2024
Total time taken to generate the page: 0.01116 seconds
|