6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Oct 05, 2024 1:20 pm

All times are UTC




Post new topic Reply to topic  [ 102 posts ]  Go to page 1, 2, 3, 4, 5 ... 7  Next
Author Message
PostPosted: Wed Apr 04, 2007 3:02 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 9:02 pm
Posts: 1738
Location: Sacramento, CA
GARTHWILSON wrote:
Daryl, Mike, and others: We really ought to have available here on the forum this board or a similar one, with an LCD, minimal keypad, and piezoelectric beeper (like some greeting cards have), with some kind of easy-to-use monitor ROM for the board including routines to drive the LCD, read the keypad, and beep at various frequencies and durations, bundled with a free assembler and anything else needed on the PC, so newcomers can have a turnkey get-started-fast solution. In fact, we could fill an 8K ROM with utilities that would be useful to lots of people, like division, multiplication, even trig, log, and square-root functions, and other stuff in the source code repository. A lot of things we might not think are so complicated can be quite a hurdle for a beginner. Actually we probably should start another topic to discuss how to put together such a package.


OK, here it is. My first question is, can we all settle on a simple system, with few bells and whistles, and the OS?

The goal is to give newcomers a quick start-up solution, not to create a do-it-all complete PC.

I am willing to help with the board layout and schematic generation.

We could modify my SBC design to accomodate your suggestions. Alternatively, we could add a daughter board with the IO you suggested to a stock SBC-2.

We could also start over with an entirely new design. I would suggest the use of a PAL16V8 to handle the memory decoding vs. descrete logic, to save space, decrease decoder delay, and allow for future changes. We could make pre-programmed PAL's available to get started with.

As far as OS, I am open to suggestion. I would want to include my X-Modem transfer routines to allow program download from the Host PC.

My monitor included disassembler, memory view, memory modify, memory move, EEPROM self-program, mini-assembler, and X-modem transfer. This could be modified/stripped down/added as needed.

We could add Forth and/or Eh-BASIC along with the routines from the source code repository, as Garth suggested.

Well, let the "discussion" begin......


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Apr 04, 2007 9:53 pm 
Offline
User avatar

Joined: Tue Mar 02, 2004 8:55 am
Posts: 996
Location: Berkshire, UK
Quote:
We could also start over with an entirely new design. I would suggest the use of a PAL16V8 to handle the memory decoding vs. descrete logic, to save space, decrease decoder delay, and allow for future changes. We could make pre-programmed PAL's available to get started with.

How about a 65816 design using a bigger PLD (e.g. ATF1504AS) to provide high address byte capture, RAM/ROM/IO decoding, chip level single stepping, etc. in single logic package? Using a microcontroller (PIC 18F) to control the main processor via the PLD, act as a low level debugger and bootstrap the OS into RAM (from its own EEPROM) with an RS232 interface for commands/OS configuration to a PC. A SPI/I2C/... interface for access to a USB2 Host Controller (like this http://www.vinculum.com/prd_vdip1.html) which would give access to memory sticks for file storage.

_________________
Andrew Jacobs
6502 & PIC Stuff - http://www.obelisk.me.uk/
Cross-Platform 6502/65C02/65816 Macro Assembler - http://www.obelisk.me.uk/dev65/
Open Source Projects - https://github.com/andrew-jacobs


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Apr 04, 2007 10:18 pm 
Offline

Joined: Tue Apr 12, 2005 3:24 am
Posts: 3
I like the idea of an easy development system quite a bit. I'm no expert on any of this, just a guy who spent a few summers of my childhood hacking an old VIC-20, and always wanted to build hardware. Some quick points:

1. OS - Contiki. It's tiny and ported to the 6502, has TCP/IP. We'd be tapping into the open-source work of a lot of developers, which would keep things easier on the software side. I'm guessing, everyone should correct me if I'm wrong.

2. 8BIT seems to be leaning towards simplicity, Bitwise strikes me as in a more modern camp. 8BIT's idea would be low-cost and likely easily assembled; Bitwises' seems far more ornate (Multiple processors with multiple ISA's doesn't seem beginner friendly to me) but both the 65816 & USB aspects are very appealing to me.

3. I use a Mac, so I'm not much able to participate in the fun and games around here - no paralell ports, most software doesn't run - but USB, TCP/IP and other standard, modern interfaces would allow users of just about anything perhaps get up and running.

Whatever is decided, I'm willing to be a guinea pig to see if beginners can actually get started with it.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Apr 04, 2007 11:55 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8521
Location: Southern California
Quote:
OK, here it is. My first question is, can we all settle on a simple system, with few bells and whistles, and the OS?

The goal is to give newcomers a quick start-up solution, not to create a do-it-all complete PC.

Agreed.

Quote:
I am willing to help with the board layout and schematic generation.

We could modify my SBC design to accomodate your suggestions. Alternatively, we could add a daughter board with the I/O you suggested to a stock SBC-2.

I would be in favor of keeping the SBC and the human I/O on separate boards. If they're stacked on connectors as you suggest, it takes less space, and if someone wants to buy the SBC for an application that does not require the human I/O (or they want to make their own human I/O different), it opens up that option. It also makes it easier to later offer perhaps a bigger LCD or some variation on the human I/O.

I can help with the code for initializing and feeding the common intelligent character LCDs, since I've done that a few times and there are some tricks to making sure the initialization is dependable. The LCD can be interfaced with as litte as six lines (4 data, plus RS and E), and some of those can double for the keypad as long as you don't press more than one key at a time in the set of keys that uses these lines. If you want to have more than one, like pressing a shift key while pressing something else, then such shift keys would need to add one or more lines. The LCD should go through a 6522, as it's not fast enough to connect directly to the bus unless you hold it down to 1MHz IIRC.

Quote:
We could also start over with an entirely new design. I would suggest the use of a PAL16V8 to handle the memory decoding vs. descrete logic, to save space, decrease decoder delay, and allow for future changes. We could make pre-programmed PAL's available to get started with.

I'm afraid a programmable logic IC would just add to the fog for a beginner. I'm going to sound like a broken record here, but the way to best accomplish these goals if 16K of ROM and 32K of RAM (or vice-versa) is enough is to do the whole thing with a single quad NAND gate like a 74ACT00, as I have on my workbench computer:
Image
You can replace that inverter on A15 with a section of the 74xx00 to get it all in one IC. I can't remember what I had planned for the other inverter, but you don't need it, so only 3 of the 4 in a 74xx00 are used.

Quote:
As far as OS, I am open to suggestion. I would want to include my X-Modem transfer routines to allow program download from the Host PC.

I recommend also having a routine that just takes in Intel Hex and puts it in memory so that the host computer can transfer straight text as if printing the Intel Hex file to a serial printer. The host can even do this from the user's preferred text editor, with no need for special software. It's a simple way to remove the requirement that the host computer be a Wintel machine. In fact, if you have a simple assembler that can go in the ROM, the host computer could even send source code text directly from its text editor without any other software. That even eliminates the need for the user to have an assembler on the host computer. As long as he has a text editor that can print blocks to an RS-232 port, he can be off and running. A beginner is not going to start with 10,000-line programs.

Quote:
My monitor included disassembler, memory view, memory modify, memory move, EEPROM self-program, mini-assembler, and X-modem transfer. This could be modified/stripped down/added as needed.

We could add Forth and/or Eh-BASIC along with the routines from the source code repository, as Garth suggested.

The languages might be best left for a separate EPROM. We won't get everything in 16K or even 32K unless it's so minimalistic so as not to be much good.

Quote:
How about a 65816 design using

I like the '816 idea, but again I think it might give the beginner more of that unsettling feeling of unfamiliarity that makes him procrastinate in getting down to business. Same goes for the other complexities. We don't want him to be discouraged. Perhaps a seperate "Level 2" board could be offered later if we want to go that far. The point again is to get the beginner over that initial hurdle. The more we add beyond the basics, the more the beginner will have the feeling of "I can't do this." I am a little concerned however that many modern PCs, I understand, don't have RS-232 ports. My inexpensive 2.4GHz PC I bought a little over a year ago does have one though, and there are external adapters available to go from USB to RS-232, including for Macs. If my understanding about the abscence of RS-232 ports is incorrect, I'd like to stay away from the complexity of USB. Even if it does not require the user to understand it to use it, I believe it will be most helpful to the newbie if he can feel like he really has a handle on his 6502 hardware & firmware, instead of being hopelessly doomed to be partly just an appliance operator.

Something that will be very important is a well-written manual. Manual-writing seems to be a lost art. Certainly it's a lot of work to do it well. I can contribute in this area. It would probably be good to offer it on paper (not just in electronic form) if the person wants to pay for the copy. At least it should be something the user can print out, perhaps in a single .pdf file.

Very important!
The whole project seems kind of big. Even by suggesting it, I feel like I've bit off more than I can chew, as I think about all the other projects I've started for 6502.org that I haven't finished. This brings me back to another comment I've made earlier in other topics, which is that the grander the ideas get, the less likely they are to ever get finished. I know this plenty well from experience. The key is to start with something rather simple that can quickly be made to work, but is open for expansion later on without having to start over.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Apr 05, 2007 2:24 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 9:02 pm
Posts: 1738
Location: Sacramento, CA
Does anyone have a good supply source for the 65C51's?

WDC is still only offering samples. If we want to include them in our design, we'll need a source. Also, we need to know the max speed that these can run. We know our 65C02 and 65C22's from WDC will go faster enough, but the 65C51 will slow us down.

Garth, I like your 1 chip memory decode... its simple and it works. I could live with using it vs the three chips I use on the SBC. I could rework that part of the board if we want to go that route. We could also leave it as is (it runs well up to 5MHZ... my 65C51's won't work at 6MHz). We'll need to decide on the RAM/ROM sizes if we use the one chip method.

Garth Wilson wrote:
I'm afraid a programmable logic IC would just add to the fog for a beginner

If we use a single 16V8 to emulate the 74HC138 style of decoding, we can include the equivalent schematic using discrete logic gates to eliminate any fog. This would give us back nearly 16K of RAM or ROM.

As far as a daughter board for human interface, we could go the LCD and keypad route. We would need a good supply source and a low parts count to keep cost down. Are you thinking of a hex keypad with a few special keys of something else? How big of an LCD are you thinking of?

We could also make one with my text video display and pc keyboard decoder. That would use approx 5 IC's - 65C22 for interface, ATMega8 - 74HC74 - 74HC165 for video, and ATTiny26 for keyboard. The ATTiny26 could be upgraded to a ATMega8 and we could get some RS-232 support from it as well (I have not developed that yet...but would be willing to do so) This option lets the SBC be a stand alone terminal. Add storage, and it would be very useful (but we my be getting too big again).

Ross Archer and I did a combo Intel Hex - X modem file transfer routine which could help with the file downloads from the host.

The tiny assembler in my OS does not use labels or complex operands, it does allow you to keystroke all the standard opcodes and hex operands. We may want to exclude it to save space for more useful routines.

I do agree, keep it simple, keep it small. If we start adding too much, we won't ever get it done.

Daryl


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Apr 05, 2007 5:47 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8521
Location: Southern California
Quote:
Does anyone have a good supply source for the 65C51's?

WDC is still only offering samples. If we want to include them in our design, we'll need a source. Also, we need to know the max speed that these can run. We know our 65C02 and 65C22's from WDC will go faster enough, but the 65C51 will slow us down.

I'll try to find out from WDC. If we can't get WDC's soon enough, we may have to design around one that's not 65-family-specific, whether that means connecting directly to the bus or going through a VIA for a serial interface like SPI.

Quote:
If we use a single 16V8...we can include the equivalent schematic using discrete logic gates to eliminate any fog.

That sounds good. Then the only drawback is if the newbie does something to fry it and can't get another one as easily as a standard 74-family part.

Quote:
As far as a daughter board for human interface, we could go the LCD and keypad route. We would need a good supply source and a low parts count to keep cost down. Are you thinking of a hex keypad with a few special keys of something else? How big of an LCD are you thinking of?

These LCDs are made by many different companies, and although their pinouts vary a little, the software protocol is the same on all of them. Probably the most common one is the 16-character, 1-line LCD like Jameco's cat. no. 644025. (There's one such LCD in the last picture in this post.) 40x2 is nice, but requires more space too. If the "customer" gets far enough to want a graphics LCD, he can do it himself.

Jameco has a couple of nice 16-key keypads, including
Image
with up and down cursor keys, ENTER, HELP, CLEAR, and 2nd, but they don't have the A-F hex digits. The one shown here is $15, and the 2x8 layout is $17. I like the Grayhill 87 series because they're more compact (1/2" square per key) and you can put your own labels under the clear keycaps, which is what I did in this automated test-equipment setup:
Image
These keys are also about a dollar each. The Grayhill modular keypads .pdf is at http://lgrws01.grayhill.com/web/images/ ... eypads.pdf


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Apr 05, 2007 7:28 am 
Offline

Joined: Mon Oct 16, 2006 8:28 am
Posts: 106
Something else that you could use for the display, if you want to have something a bit fancier than a text LCD, is the Multilabs ezVGA. It's a PLCC84 chip that, coupled with a 128KB SRAM, a crystal and some passives, gives one 320x240, 64 color VGA. It only takes up two bytes of address space and seems 65xx/68xx friendly.

http://www.multilabs.net/ezVGA.html

(I don't work for these guys, I just ran across their website when looking for a similarly-named part...)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Apr 05, 2007 9:41 am 
Offline

Joined: Tue Jul 05, 2005 7:08 pm
Posts: 1041
Location: near Heidelberg, Germany
Quote:
I like the '816 idea, but again I think it might give the beginner more of that unsettling feeling of unfamiliarity that makes him procrastinate in getting down to business. Same goes for the other complexities. We don't want him to be discouraged. Perhaps a seperate "Level 2" board could be offered later if we want to go that far. The point again is to get the beginner over that initial hurdle. The more we add beyond the basics, the more the beginner will have the feeling of "I can't do this." I am a little concerned however that many modern PCs, I understand, don't have RS-232 ports. My inexpensive 2.4GHz PC I bought a little over a year ago does have one though, and there are external adapters available to go from USB to RS-232, including for Macs. If my understanding about the abscence of RS-232 ports is incorrect, I'd like to stay away from the complexity of USB. Even if it does not require the user to understand it to use it, I believe it will be most helpful to the newbie if he can feel like he really has a handle on his 6502 hardware & firmware, instead of being hopelessly doomed to be partly just an appliance operator.


What is the target audience we want to have for this little machine? If we're going for the beginner, we should make it easy and simple - and understandable. It should, however, be extendable to the point that it can be actually used and not just be a toy (like e.g. multiple inputs/outputs to control robots digital and analog and/or interface with SD-cards for memory - for example the "RoboKing" competition allows 8-bit CPUs only to control a robot for a specific task, as was shown on CeBIT)

If we want to make a full featured system with what's possible today, we could as well go for the '816 and GALs etc. I wonder what would we actually gain from this approach that is not already possible by the smaller approach? More memory I guess.

Personally I would stay on the simple side. Have a small system with RAM, ROM, basic I/O (RS232) and a 6522 for a small keypad, LCD and maybe SD-Card to quickly transfer files from the PC to the system. Although this is already getting hard to fit into a Euro-board space, I tried something like this with my Gecko boards, but then I needed place for my addressing logic which could be made simpler.

Add daughterboards for more functionality. So we need a bus spec. Using the CPU bus restricts CPU speed, other busses are less flexible. CPU bus is probably needed for stuff like USB or disk drives, but A/D or D/A or I/O ports could probably be done via SPI or I2C.

So maybe there should be a CPU bus available, but the I/O daughterboards should mainly use the serial busses.

One thing I would like to have is something like a "simulate ROM" feature - the user should be able to test new operating systems (SoC) programs, completely replacing the builtin ROM. I'd probably go for 16k ROM, 32k RAM, of which 16k could be used to replace the ROM - but maybe that's too complicated.

The "OS" should be a very small monitor program, that handles keypad, LCD with a hex monitor, and allows to load programs into RAM, as well as reprogram the ROM code from RS232. This "raw" mode will be the one to start with, but when the ROM is programmed the monitor would go out of the way after boot to start the ROM (except when some debug keys are pressed). Kind of hypervisisor I guess ;-) The monitor should protect itself from overwriting

Quote:
This brings me back to another comment I've made earlier in other topics, which is that the grander the ideas get, the less likely they are to ever get finished. I know this plenty well from experience. The key is to start with something rather simple that can quickly be made to work, but is open for expansion later on without having to start over.


+1

Just my uncoordinated thoughts...

André


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Apr 05, 2007 4:57 pm 
Offline

Joined: Mon Oct 16, 2006 8:28 am
Posts: 106
Speaking as a newbie who's currently elbow deep in heavily annotated printouts of timing diagrams (I have a *lot* more respect for you hardware guys now...), I would agree that I'd prefer to have something more complex than a KIM-1 as my first selfbuilt computer. Not a lot more complex, but I agree with Andre that if all it has is a 6502, ROM and some blinkenlights it hardly seems worth the hassle and expense - I grew up with a C64 darn it, I have high standards! ;)

One thing I would ask for, which should keep the design newbie-friendly, is to use a 65C816 with less than 64KB of memory. That way the hardware is kept simple (as far as I can tell, the timings should be the same as a 65C02 if you don't use banks) and you get to use the very nice software features of the '816.

Quote:
The "OS" should be a very small monitor program, that handles keypad, LCD with a hex monitor, and allows to load programs into RAM, as well as reprogram the ROM code from RS232. This "raw" mode will be the one to start with, but when the ROM is programmed the monitor would go out of the way after boot to start the ROM (except when some debug keys are pressed). Kind of hypervisisor I guess ;-)

Isn't that what we used to call a BIOS back in the day? :)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Apr 05, 2007 5:03 pm 
Offline

Joined: Sat Jan 04, 2003 10:03 pm
Posts: 1706
http://www.falvotech.com/content/kestrel/1p3

Description

Total cost in parts: under $25 as memory serves me correctly. The PCB for it would easily dominate price.

My Kestrel-1 is a ROM-less design; it used 5 74ACT595 shift registers to allow my desktop PC to download "ROM" images into RAM (note that 32K of RAM exists from $8000-$FFFF. Thankfully, the 65816 lets me re-route direct page to $8000 and stack to $81FF effortlessly on boot-up).

The Kestrel-1 supports 32K of RAM and 16 bytes of I/O, as documented on my website. The only reason it's that small is because I went super cheap (the goal was to be the cheapest possible 65xx computer one can build -- and it is). Quite literally, the entirety of the computer's address decoder is a sole 74AC00. With additional 7400s or maybe a 74138, you could address more I/O devices. As long as RAM sits at $8000-$FFFF, it won't care.

Maximum clock speed is approximately 5MHz with the parts I've selected. I only tested it up to 4MHz though.

Programming

As documented on my website, the Kestrel-1 is designed to operate from a parallel port. This allows the host PC to download software into the RAM. Note that there is no ROM in the design. I use 74ACT595 serial in to parallel out shift registers to control the bus of the computer. (Consequently, the computer cannot, as documented on the web, support DMA, since it would interfere with the IPL circuitry).

Modernizing the design to support USB would be an excellent project, I think. Getting software into the computer via USB will be more complex, but I don't think it'd be substantially so. It'd involve a microcontroller and an FT245M module to interface USB to the microcontroller (unless the microcontroller has native support for USB built-in, like some of the 8051-class devices). The reason I prefer the FT245M is because it comes with USB port already soldered on, with electronics and all that jazz needed. It's costly at $25 a pop, but you get a lot of bang for the buck.

The FT245M looks like an RS-232 device to the host PC. Drivers for it are included with every Linux kernel (you may need to recompile the kernel to get ahold of the kernel module though; but if you're using Linux, you probably already know how to do this). Drivers for Windows are freely downloadable. I believe Mac sees it correctly out of the box.

You'll need to invent a download protocol for use over the USB port. This could be something as simple as X-Modem, but it would be nice if it were more generic, and capable of bidirectional flow of data. This would allow the USB chip to be used for implementing a VNC server, for example, allowing for remote instrumentation and visualization or, if you've the bandwidth, even simple games.

I/O

The sole VIA chip it has is plenty sufficient to implement the serial interface bus that Garth and I designed recently on this forum. This serial interface bus is substantially faster than Commodore's serial bus, even when bit-banging. This is because it's a fully synchronous protocol, always transfers two bits at a time (one to, and one from, the addressed peripheral), and has explicit packet framing via select pins (versus "soft-addressing" via IEEE's approach).

Therefore, it is easy to expand the Kestrel-1 with other peripherals, provided you have a suitable BIOS or OS to interface the bus with. NOTE -- because I'm spending more of my time designing the Kestrel-2 firmware, I haven't had the opportunity to research the software protocols for this interface. However, it's designed to be operable without this; because the bus is a superset of the SPI bus, any valid SPI peripheral is usable via the bus interface. Therefore, the protocol you'd use is that of the SPI peripheral you're addressing.

For the purposes of developing the OS for it, I can create a Kestrel-1 emulator if desired, at least for Linux, using my lib65816 package.

Newbie Friendly

I do not believe that the 6502 is any more newbie friendly than the 65816. In fact, in some respects, I think it's more user hostile, because of the need to explicitly handle multi-byte quantities manually. The 65816 at least is able to handle 16-bit quantities natively.

Using the 65816's more advanced features is of course optional while teaching someone how to use the system. In fact, since the Kestrel-1 disregards the bank address byte all-together, it is not possible to profitably use the extended addressing modes, since it is confined to a 64K address space, just like the 6502.


Last edited by kc5tja on Thu Apr 05, 2007 5:18 pm, edited 3 times in total.

Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Apr 05, 2007 5:08 pm 
Offline

Joined: Sat Jan 04, 2003 10:03 pm
Posts: 1706
Quote:
The "OS" should be a very small monitor program, that handles keypad, LCD with a hex monitor, and allows to load programs into RAM, as well as reprogram the ROM code from RS232. This "raw" mode will be the one to start with, but when the ROM is programmed the monitor would go out of the way after boot to start the ROM (except when some debug keys are pressed). Kind of hypervisisor I guess ;-)

Isn't that what we used to call a BIOS back in the day? :)[/quote]

No.

A BIOS is a library for handling I/O -- think of it as something like the C standard library, where it provides raw (and hardware independent) I/O functions. It is not an OS unto itself.

A monitor will sit on top of a BIOS (even if no BIOS is explicitly exposed to the programmer). A monitor is a software emulation of a real, hardware monitor -- something that is approximately the level of capability as Supermon64 or DOS DEBUG.COM. It lets you load programs into memory, if you're willing to type in hex byte listings (remember those BASIC programs in Commodore Magazine or COMPUTE!? Stuff like that, only even more primitive). It lets you execute programs by invoking these hex listings as subroutines (via the G command, usually). Etc.

An OS is a full-blown system that lets the user administer his computer. It not only includes a "kernel," but also all the commands that ships with it, all dynamically or statically linkable libraries, etc.

Strictly speaking, the term "OS", as used above, is more likely closer to "API" (Application Programmer Interface). Calling it "the OS" is technically incorrect.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Apr 05, 2007 8:40 pm 
Offline

Joined: Tue Jul 05, 2005 7:08 pm
Posts: 1041
Location: near Heidelberg, Germany
faybs wrote:
Quote:
The "OS" should be a very small monitor program, that handles keypad, LCD with a hex monitor, and allows to load programs into RAM, as well as reprogram the ROM code from RS232. This "raw" mode will be the one to start with, but when the ROM is programmed the monitor would go out of the way after boot to start the ROM (except when some debug keys are pressed). Kind of hypervisisor I guess ;-)

Isn't that what we used to call a BIOS back in the day? :)


Well, maybe today. But "back in the day" the BIOS was actually used by DOS, so it did not get completely out of the way :-)

André


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Apr 05, 2007 10:46 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8521
Location: Southern California
This is already showing signs of degenerating into another lofty-dreams discussion like so many earlier ones which did not result in working hardware.  Remember that a few years ago after a bunch of these, Daryl wisely bypassed the system and quickly made up his own SBC-2 board on his own and told everyone here, "I have it available.  You want one?" and got a lot of orders and shipped actual boards.

I totally agree that the '816 makes programming easier; but Samuel and I and others here seem to have had a hard time convincing people, so I suggested staying with the '02.  I don't want to scare off the newbie, and the mention of "816" seems to do exactly that.  It's easy to put a few jumpers on the board to give the choice of processors, as most of the pinout is the same.  The '816 can be initially used by the newbie as an '02, yet he may be thinking, "Where's it gonna bite me just because I don't know the subtle differences?"

Most of the things already mentioned can be done with parts interfaced through two or three 6522's on the board.  It's unfortunate that µP trainers have generated the erroneous idea that a general-purpose I/O port IC like the 6522 is only for "blinkenlights."  There's very little that should be connected to the processor's own buses; and beyond that, everything else goes through the 6522's (and maybe 6551's).  As Samuel pointed out, our serial bus implemented through a 6522 opens up the use of literally thousands of different SPI and Microwire ICs, including large flash memories and USB interfaces.  A couple more bits of the 6522 can be used for an I²C interface for additional possibilities.  Fast A/D & D/A converters are probably best put on the 6522s' parallel ports, and the ones that don't need as much speed can go on SPI or I²C.

Again, simple to start, but expandable for when the user is ready to move up.  To avoid having boards spread out around his workbench with ribbon cables joining them, a board-stacking method through pin headers and sockets might be appropriate.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Apr 05, 2007 11:30 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 9:02 pm
Posts: 1738
Location: Sacramento, CA
I have no preference between 65C02 and 65C816. We will most likely have only 64k of address space.

My thoughts:

If we are talking about keeping the clock at 4-5MHz, it would seem simpler to use (E)EPROM vs. the IPL. We could use three 32kx8 memory chips, use 1 or 2 RAM and 1 ROM. The second RAM could shadow the ROM and the ROM could be switched out (via switch for simplicity, or via logic if desired). This would keep the chip count down and provide a method for placing user programs into the upper address space. The second RAM would be optional, to save cost for those who don't want the feature.

Since the 65C51 is questionable, I suggest our main SBC have the CPU, RAM, ROM, and 2 or 3 65C22's, decoder and support logic.

If we agree to use a 65C22 as the interface to the User IO daughter board, then I think we could skip the bus interface design specifications.... we could just write board specific IO routines for each type of daughter board created.

IO is passed through one 65C22 to a daughter board connector. You could daisy-chain multiple daugher boards through this one connector if needed. We could have RS-232 terminal access, keyboard/video, or USB options for the daugher boards.

The other 1 or 2 65C22's can be used for experimentation.

Would we would want to provide an expansion bus with the CPU's address & data bus, R/W, Clk2, RES, etc.; or keep is simple with this format? We are already looking at 7 devices on the address bus and 6 on the data bus.

Daryl


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Apr 05, 2007 11:48 pm 
Offline

Joined: Sat Jan 04, 2003 10:03 pm
Posts: 1706
Of course ROM is preferable to an IPL circuit -- it certainly is more reliable. However, I do not have an (E)EPROM programmer, nor did I want to build one for a circuit so simple and cheap. I mean, it literally cost me about $20 total for all the parts. An EEPROM programmer would have doubled that figure easily. Then you have to find a programmer driver for it, or write your own (in which case you'd have to find the algorithm used to program it with, which isn't always documented clearly, and can be quite complex).

How are you planning on using the 6522 to talk to the I/O devices? PA0-PA7 for a data bus, with some pins from PB to serve as R/W, PH3 (I can't think of a better name :) ), and A0-A3? Or will it be more like an IEEE-488 bus?


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 102 posts ]  Go to page 1, 2, 3, 4, 5 ... 7  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 34 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: