I think I own you an explanation for this thread:
My first computer was a Commodore 64. But my first job was in a shop were we assembled PCs, mainly XT compatibles in the beginning, and I started to like them to. This resulted after years into that I decided to design two XT boards, one suitable for the original IBM 5160 and mini-AT cases and one for the still available ATX case:
Schematic:
http://www.baltissen.org/images/ATX-sch.pngBoard:
http://www.baltissen.org/images/ATX-brd.pngFYI: the design is made in Eagle 7.7.0 and is free. And I think what I will have for Christmas
This design inspired me to to create an ATX board but then either powered by a 6502 / MMU combination or a 65816. I like the elegance of the MMU and I am still thinking of a third option, combining the 65816 with the MMU.
The MMU I have in mind, the 74LS612 is a twelve bitter. Using it in 8-bits mode only enables me to address 1 MB in chunks of 4 KB each. The 816 can address 16 MB and having an ATX board in mind with at least two 16 bits ISA slots, I think I will choose for the 65816.
The above XT has 1 MB of SRAM of which only 960 KB can be used. It has 128 KB of EEPROM of which only 64 KB can be seen at a moment but the both halves can be switched.
A 65816 starts up in 6502 mode and that means we must have access to the I/O and IMHO there should also be RAM available. In case of the 6502/MMU combination I was thinking of 64 KB of ROM but with an write through option to set the MMU so RAM etc. can be made available imediatly after a reset.
Storage: the ISA slots enable me to use PC cards and I know how to deal with IDE HDD. Here I have the choice of using real IDE HDDs but with 8 bits only, thus loosing half of their capacity (which I don't mind) or using Compact Flash cards that can be used in 8 bits mode as well. I use them as so in my XT computers. FYI: there is also the IDEXT card that enables a XT to use 16-bits IDE drives. So no problem here IMHO.
Using floppy drives should be possible as well. I have been inspired by this peripheral:
http://news.ide64.org/2018/11/floppy-drive-tib-plc-dd-001-drive-2001.html. The IC on this card is 8272/765 (or whatever these numbers are exactly) compatible and even used on some clone FDC cards.
DMA: things could be loaded more quickly (how much? no idea) I think. The only thing that comes to my mind is copying the DMA circuit from the XT.
Interrupt controller: I think we can forget about using a 8259. Yesterday I found an old thread about combing a 8259 with a 6502 and here I found my own solution: read the various INT lines using a buffer, for example a 74541, invert them all, AND all the inverted signals and feed the results to the IRQ input of the 65xxx.
Video: In the past I built an interface that enabled me to attach ISA cards to my C64. MDA and CGA worked without any problem then so should do so with this design. But MDA and CGA are out of date and it should be at least VGA IMHO. But PC cards can not be used, at least I think. These cards need to be initialized and that is different for each brand. An EPROM on board of the card should be started up by the PC and that takes care of the initialization. Unfortunately a 65xxx cannot run 8ox86 binary and either some one has to find how it can be done (which most probably is different for each type of card) or we have to invent our own VGA some how.
Regarding the last I found two things:
- the Gigatron, a TTL CPU capable of VGA:
https://gigatron.io/- the TTL VGA Terminal:
http://debuginnovations.com/TTL_Terminal/home.htmlKeyboard: I have at least two options in my mind:
- using the the keyboard interface of the XT. Adding an 8-pins PIC enables me to connect a PS/2 keyboard. Advantage: known stuff plus some free I/O pins from the 8255. Disadvantage: bigger than the next option.
- using the 8042 keyboard interface from the IBM AT or equivalent. Disadvantage: never used. Advantage: it looks as simple as just adding a 6522 or other I/O IC. The newer HT6542 or JetKey can handle a PS/2 mouse as well. It is smaller than the XT circuit and has still a few free I/O bits.
RTC: on board.
I/O: IMHO for any other I/O we can use PC cards. If you have a special wish, not on the board but create a new card!
Timer: having no 6522 or equivalent on board so far means we have no timer. My first idea was to use a 8253 or 8254 but then, why not using a 6522 at all? It also means we have some I/O pins available for what ever. In most weird case four of them could serve as the extra needed four bits for the MMU, meaning, the 6502/MMU can handle 16 MB as well.
Frequency: I have no idea at what speed it will run. But I don't mind if it only runs at 4 MHz. (I found this thread, "Techniques for reliable high-speed digital circuits", but haven't found the time yet to read it)
Please shoot, give your comments, ideas, criticism or what ever and let's have fun with it. If things go fine, I know what my second Christmas present will be
_________________
Code:
___
/ __|__
/ / |_/ Groetjes, Ruud
\ \__|_\
\___| URL: www.baltissen.org