So I was day dreaming with Misty about connecting a VGA card to my Atom.
A decent card from BITD can display 1024 x 768 pixels in 256 colours. Wouldn't it be great to run BBC Basic programs with that real resolution? But how on earth can I address 1MB of video ram in an Atom?
A PC also uses bank switching techniques for accessing such an amount of video ram. But that are banks of 64kB which is still the complete memory size of our 6502. So we have to split these 64kB banks in smaller chunks, 1 kB, 512 bytes, 256 bytes, 1 byte? That can be an option: write a video memory address into two latches and then write your data. Make an auto-increment of the address latches and then the Atom can write (or read) a block of bytes into the VGA video memory. There can be some tricks implemented to not increment the address after a write or read. It's possible but a lot of work because all the VGA driver software has to be written. I don't think this is the easiest way to achieve my goal.
While talking to Misty - she seemed not understand what I was talking about, nor did I - I came up with the idea to connect the VGA card not directly to the Atom but place a 80286 processor between them. Make the Atom talk to the 80286 and tell it to print a character, plot a line or a circle. 80286 are quite easy to get and there are a few other advantages:
- We have a 16 bit I/O interface to the VGA card (8 bit cards are hard to find)
- We can use the VGA BIOS for many operations
- There is already a bunch of software for the Atom to give graphics commands to the 80286 (my Atom-in-PC project)
- The 6502 doesn't have to spend any time at drawing pixels, parallel processing in optima forma
The only thing to be written is a simple BIOS program that initializes the VGA card and starts communicating with the Atom.
I don't know if things are as easy as they seem in my day dreams. Lots of investments have to be done. But I have real good documentation.
What do you think, is it worth to give it a try or do you say "Keep on dreaming, Roland...." ?
Edit: note to myself: this could be a starting point: http://www.intel-assembler.it/portale/5 ... source.asp