BigEd wrote:
You miss the point, I think. If we can use their rom as a boatloader then we have side stepped the problem of a newbie needing a programmed rom.
Exactly. It's self bootstrapping. Not only is it self bootstrapping, it's in production, and in stock at the typical internet retailers.
BigDumbDinosaur wrote:
Lessee...we have to attach an external ROM to have something other than whatever WDC ships in the unit. Pardon me for being dense, but I fail to see any value in such an arrangement.
You have to do that with a normal 6502. The difference is that you don't have to do that on day 1 just to get a light to blink.
Quote:
After configuring away the I/O and ROM what do you have left? An embedded microprocessor with no way to talk to the outside world. So then you're back to adding ROM and I/O using (gosh!) more chips. I can do the same thing with a 'C02 (or '816) a GAL, a ROM, a piece of SRAM and something to handle I/O. It'll be much more flexible and I can use any I/O I want with having to work around the limitations of a canned MPU sitting behind logic that I can't control. Incidentally, I challenge you to attach a SCSI controller like what I have with my POC unit to a '134 or '265.
As far as I can tell, all of the signals of the CPU are available externally. I asked what signals from the original chip were not available. So, while the CPU is embedded, it can be incrementally exposed until you've exposed it all to the outside, ready for whatever awaits it there (such as a SCSI connector).
I don't know how many I/O pins your SCSI connector needs, but even after exposing the internal CPU there's still 15 pins of I/O available, plus a UART on the 6502 version.
Quote:
I think you guys are not only missing the point but are going in the opposite direction of what a true 6502 SBC is all about. If you are intent on using a microcontroller there are much better choices.
Well, let's see.
With a single chip, you get an honest to goodness 6502, a serial interface, some RAM, a free Monitor that lets you download code, and I/O ports. So, with a single chip, power, and a serial cable, you can have 6502 code blinking an LED. That's pretty cool, and assembly can be done in an afternoon.
Then, add a 32K RAM chip, and a little bit of decode logic, and you get the same chip, but more RAM. So, now you've got a machine that can not only blink a light, or whatever, but you can download a BASIC, or Forth, or whatever, and work with it using your serial terminal and keyboard. From start to boot prompt, downloading and running BASIC or Forth is probably less than 10 seconds.
That's a cool little project right there, taking a working machine, and wiring up and adding the decode and RAM chip. At the end, you have an even more functional machine, but it's still a slave to the host for software.
Next, the user buys a PROM programmer, and you tweak the existing decode logic to add an EPROM of some kind. Now you can burn the BASIC in to the PROM, and it's a self contained SBC with a serial port, and some I/O. It even boots the BASIC, skipping the monitor completely. Blinky lights driven by BASIC. Another incremental step in circuit design and tooling for the user.
Next, you present how with minor work, some remapping of the decode logic, and setting of a configuration bit on the chip, you have now replaced the monitor ROM with your own. So now you have full access to the memory space, save for those parts that are using the (still configured) internal ports.
Next, you can perhaps redo the circuit design for the EEPROM to make it self programmable. Boot from the embedded monitor, download the programmer loader and the code to burn, and now you no longer need an external programmer. You could do this as the previous step, but it's arguably even more complex, so maybe it's not appropriate. But another incremental increase in functionality.
From there, you can add another UART, or another VIA, or whatever. You can also REPLACE the internal ones with the external ones.
And by the time the user gets to this point, the idea of swapping in a normal CPU rather than the micro controller is straightforward. They're already using all of the control signals, they have all the theory, they have a WORKING implementation of the support circuits and chips, etc. You might even be able to design a board that has room for both the 134 socket and the 6502 socket, and when they get to the end, they can swap them out.
What you get, is you get quick success, and quick turnaround, and continual improvement as you explain the new complexities introduced by each step.
Step 1, soldering the chip, oscillator, connectors, and perhaps some jumpers on to a board, gives them real success and results right away. It's low risk, and little to go wrong from bag of parts to a monitor prompt on their PC, and from there to some blinking LEDs. And none of what they're learning, about techniques, tools, architecture, and software is lost. It's ALL 6502, and remains so throughout the entire project.
And they get to take it as far as they want and find interest, yet rewards them all the way. With barely a need for a multimeter. That's the really awesome part of this, is that you basically never have to throw anything away. It becomes an instructional task of taking the capabilities of the micro controller and exposing them one by one, while it's still a running machine the entire time.
What doesn't this teach them that you want them to learn?