Hello everyone,
An anonymous user left me this e-mail which has some good points and ideas. Feel free to respond to them, he does monitor the forum. He's also suggested the first name for our printed circuit board project: "Iteration One".
(Here's his letter:)
PURPOSE OF AN SBC - MY OPINIONS
There is no way that an SBC board will EVER compete with the big guns like the INTEL and DEC boards. If this is true, and it is my opinion that it is, then why spend our valuable time designing, debugging, and putting into use, an SBC? The answer can't be money because an INTEL board can be purchased
for under $100.00! A home designed and built SBC will exceed that dollar amount with little effort! Even a BASIC STAMP or DOMINO series system will exceed $100.00 when all is added up! So, then, why an SBC?
As we design our SBC's should we try to emulate the big guns by incorporating memory managers with large memory arrays, sophisticated memory schemes, I/O processors, complex hard drive systems, and various other "resources"? If this is the case, perhaps we should just purchase an INTEL board to save our valuable time. Once again, I can not, nor do I want to,
compete with INTEL or MS systems!
There must be a deeper reason for an SBC!
It is my opinion that the answer is "CONTROL"!
I AM in control of my home built SBC. When it crashes it is MY fault and not an operating system "glitch". If my project requires sharing system resources, I AM in control of that sharing! If I WANT to hang some I/O at $A600, I WILL design the decoding to allow the I/O to appear at $A600. If I
want a speech synthesizer register at $8000, then I will put one there. If I want a second RS-232 port with full handshaking to communicate commands to ham radio repeater, then I will program one!
I have tried to do these things with an WINTEL system. I have found that I am held back by their design. These systems are not designed with the above in mind. Oh, sure, I can purchase a I/O board for my WINTEL system to assist in my designs, but if I do, I am once again at the mercy of the I/O board design. I have lost a certain amount of CONTROL!
I am not criticizing WINTEL systems! They are just not designed with the above in mind.
The question can be asked, "Where is the power of a computing system?" Some would answer "the CPU", and some would answer "the memory". It is true that these two units are NOTHING without the other! But the real power of a computing system comes from its "program". The more CONTROL I have of the
PROGRAM the better system I can design.
I can use a $3000.00 laptop to control my radio systems or I can use a $100.00 controller that was designed and tested using an SBC. For me, the answer is simple.
As for the design of the
www.6502.org "ITERATION ONE" 6502 SBC I would recommend the following.
1. 64K of on board memory directly accessible to the CPU. The first iteration should not contain bank swapping. Once the design is solid, bank swapping can be added, perhaps with ITERATION ONE as an option, but, then, maybe ITERATION TWO should contain this.
2. Address decoding down to the 2K level (32 lines). One 1K block decoded down to the 32 byte level. That sounds like a lot of decoding. But when one is controlling something you do not want to run out of decoding lines. These lines should be accessible on an applications connector.
3. No less than 32 lines of user I/O and be available on a user applications connector.
4. Hardware debugging that can be turn off and on via software and via hardware.
5. At least one and possibly two serial communications ports. Video out is not needed at this time. System communications can be via one of these ports to a terminal program on a WINTEL system. If one is savvy, serial communications need not require a chip but can be handled entirely in software. (versatile and easy to manipulate.)
6. Clock speed should be as fast as is feasible but not so fast as to compromise a simple design. Using a 1Mhz 6502 I can refresh an entire 80 character LCD display in 4ms. Is that too slow? (I am not recommending a 1Mhz system)
7. INPUT and OUTPUT should be vectored. This makes changing the I/O device simple.
These are just my opionins and are not cast in stone. I believe the goal is a simple and easy to use system, especially in ITERATION ONE. ITERATION TWO can get more complex as can ITERATION THREE...
(end)