PDA

View Full Version : S-100 6502 CPU board



NobodyIsHere
April 8th, 2011, 03:29 AM
Hi! Rich, John, and I are working on a S-100 6502 CPU board. We have a basic prototype board designed and finishing up trace routing. I suspect we'll be getting some prototype boards in the near future for initial build and test. Normally that means getting the 5 PCBs for $150 from www.33each.com

If anyone is interested in S-100 6502 CPU board and would like to get in on the initial prototype build and test please let me know. Rich is the author (I think?) of the DOS/65 which is a version of CP/M for the 6502 CPU.

Yes, you read that right as hard to believe as that is, Rich wrote from scratch (I think) a CP/M compatible operating system for the 6502 CPU. We are currently running DOS/65 on the N8VEM 6x0x host processor system so this is a not as unlikely as it might sound.

So if you are interested please send me an email at LYNCHAJ@YAHOO.COM and sign up for a prototype board. They'll be $30 each as per the usual prototype board arrangement.

Thanks and have a nice day!

Andrew Lynch

glitch
August 31st, 2011, 06:13 PM
Whatever happened with this project? I'm getting into 6502 hardware/interfacing for an upcoming project with a friend, and was thinking of interfacing a 6502 to the S-100 bus to test out some of the ideas I have for the other project. Unsurprisingly, this was the first result for "S-100 6502" :D

NobodyIsHere
September 1st, 2011, 10:19 AM
Hi,

Actually, your timing is excellent. The S-100 6502 CPU board project is still puttering along but stalled out on the last step. We have 5 prototype PCBs of which 3 have been sent to builders for build and test verification. Unfortunately the main builder had an accident and is out of commission. Another has built his board and not quite done yet but getting close. The third is overwhelmed with other projects so it is on the back burner pending more availability.

I still have two prototype boards left and am seeking builders to finish the build and test phase. Basically, you'll need a solid knowledge of electronics, S-100 bus operations, and 6502 programming. Please see the N8VEM wiki for technical information.

http://n8vem-sbc.pbworks.com/w/browse#view=ViewFolder&param=S-100%206502%20CPU%20board

If you feel you are qualified to take on this project and can commit to finishing the build and test I will send you one of the remaining prototype boards (gratis). All I need in return is either an informal report & photos of the board running and/or a set of changes necessary to make the board work properly.

It will require a working S-100 bus system with boards for static RAM and serial port. You'll need to make adjustments to the notional ROM debug monitor to make it work with your system.

Since the design has already been prototyped with a wire-wrap board and the original designer is a highly competent builder I feel high confidence this board will work with few if any changes. However until we have an actual board verified working I can't release the PCB to the other builders.

Care to give it a try? This is a big commitment so please think it over carefully.

I certainly would appreciate the help though. Thanks and have a nice day!

Andrew Lynch

monahan_z
September 1st, 2011, 10:46 AM
It would be great if somebody else can get into this project. I have a board, but unfortunately I am bogged down doing an 8086, 80286 and VGA video board right now. On top of that I am doing an IBM-PB BIOS such that all our boards boot and run MS-DOS V4.01 unaltered with all our S-100 Boards (8086, IDE Board and ZFDC boards+).

It has grown into quite a load and consequently will not be able to get back to the 6502 (or 68K) boards for a few months.

glitch
September 1st, 2011, 03:05 PM
Well, I've looked over the documentation, and it looks like a lot of the design routes I'd planned for interfacing a memory-only CPU to a bus designed for separate I/O and memory space have been taken! I have a reasonably involved knowledge of S-100 systems, so I feel I can handle the electronics side just fine. I've been working on learning 6502 assembly ("Programming and Interfacing the 6502, with Experiments" by Marvin L. De Jong -- highly recommended so far!) and looking at the little test monitor, I'm pretty sure I can at least write enough code to spit out chars to a UART or the character display on my debug board.

I can't promise that I'll have a /lot/ of time to work on the 6502 board, but I'll certainly have time to get it built and tested by the end of the month. I believe I have all of the parts on hand, except maybe the 74xx682 (I need to order a pile of those for several other N8VEM boards...I use the 74LS688 for a bytewide comparator, so I don't have a large stock of 682s!). I plan on writing a ROM monitor for the Zilog 8530 SCC for the application I'd mentioned, so it'd be easy to prototype with the 6502 S100 board and the S100computers.com/N8VEM Serial IO board, which I already have tested/working.

If ~1 month assembly / full test time is acceptable, then I'd certainly be willing to assemble and document one of the 6502 boards! There will most likely be a ROM monitor for the 6502 + Serial IO boards, which would probably be pretty helpful to future builders.

ohiomil
September 2nd, 2011, 10:10 AM
THE CHALLENGE


Care to give it a try? This is a big commitment so please think it over carefully.

CHALLENGE ACCEPTED


I'd certainly be willing to assemble and document one of the 6502 boards!

:toast:

glitch
September 2nd, 2011, 03:14 PM
Indeed!

Chuck(G)
September 2nd, 2011, 09:12 PM
Something has been itching at the back of my mind and maybe someone remembers it. Back around 1976, there was an S100 board produced with a 6502 on it. I remember a friend picking one up, but can't recall who made it. For a time I thought it might have been SSM, but on reflection, I don't think so.

Anyone have any idea?

glitch
September 3rd, 2011, 05:27 AM
Something has been itching at the back of my mind and maybe someone remembers it. Back around 1976, there was an S100 board produced with a 6502 on it. I remember a friend picking one up, but can't recall who made it. For a time I thought it might have been SSM, but on reflection, I don't think so.

Anyone have any idea?

California Computer Systems seems to have made one:

http://www.s100computers.com/Hardware%20Folder/CCS/Other%20Boards/Other%20Boards.htm

Chuck(G)
September 3rd, 2011, 09:33 AM
This one appears to be too late--CCS was started in 1979 and I was at another job long before then, so I wouldn't have known about the 6502 board. The guy who had it was an ardent member of Homebrew and passed up the "special" price offered to club members for the Apple I ("normal" price was $666.66) and went with an S100 board, which he thought had more potential.

monahan_z
September 3rd, 2011, 10:16 AM
Anybody got the docs/schematic on the board?

MidnightCommando
September 4th, 2011, 02:14 AM
Anybody got the docs/schematic on the board?

Schematics are here. :) (http://n8vem-sbc.pbworks.com/w/file/38322533/Printing%20S100_6502-sch.pdf)

monahan_z
September 4th, 2011, 10:09 AM
Sorry Andrew I meant a schematic/manual for teh CCS Board

glitch
September 5th, 2011, 08:11 AM
I've been going over the schematic a bit more since I'll actually be assembling one of these shortly (thanks Andrew!). It looks like the /PHANTOM line isn't being utilized...just pulled high through a 1K3 resistor. I'll probably rework my board to include /PHANTOM assertion when the I/O space mapper is active as well as the onboard boot ROM. That way, you can just plug in a 64K RAM board and let the /PHANTOM line take care of switching the RAM out for the onboard ROM/IO space. Perhaps add a flip-flop to turn off the ROM after boot, too. Looks like there's plenty of proto area on the board!

monahan_z
September 5th, 2011, 09:29 AM
That's a good possibility Glitch. However one of the reasons for the prototype patch area is to allow that board to be setup as a S-100 Bus Slave or Master. This takes quite a few chips. See the 8086 board for example
http://s100computers.com/My%20System%20Pages/8086%20Board/8086%20CPU%20Board.htm

That way you could for example boot CPM. Load files etc and then switch over to the 6502.....

I had in mind to do this, but I'm so backed up with the 80286, 80386 and XVGA video S100 board projects It will be some time before I could help on that project.

glitch
September 13th, 2011, 09:16 PM
There was a manilla bubble mailer waiting on my desk when I came home for lunch today! It of course contained the 6502 S-100 board, which looks like this:

6717

The only difference from production N8VEM boards seems to be the lack of gold plating on the edge connector. A nice looking board! I had some time this evening to pull parts and see what I was missing. Turns out I have nearly everything required for the board:

6716

That's all of the sockets, passives, jumper headers, hardware (heatsink and ejector), the LEDs, a diode, an oscillator, CPU, ROM, and switches. I'm short a few 74LS541s and the 74LS682, along with a 7805 (I always seem to need one...time to order 25). I do have two of the 74LS541s, and it looks like a 74LS245 may work in place of at least one of them. Assembly will likely begin tomorrow night!

I'm missing a 2 MHz oscillator as well, but I may use part of the prototype area to reduce the 4 MHz clock to 2 MHz using a flip-flop. That will depend on what Jameco/Mouser will sell a single 2 MHz oscillator for.

NobodyIsHere
September 14th, 2011, 04:24 AM
Hi, Thanks Glitch!

Latest builder photos and progress report

http://n8vem-sbc.pbworks.com/w/browse/#view=ViewFolder&param=Neil%20Breeden

http://n8vem-sbc.pbworks.com/w/browse/#view=ViewFolder&param=S-100%206502%20CPU%20board

It's good to see this project coming together. The board appears to be fully functional with Neil's corrections.

Thanks!

Andrew Lynch

glitch
September 15th, 2011, 08:59 PM
Update time! Last night, I desoldered the 7805 and the six 74LS541s I needed (thanks to Bill Degnan -- those old 68000 comms boards you gave me were the donors!) and completed my parts list. Then I stuffed the board with sockets and non-IC components:

67216722

I substituted 2K resistor packs for the 1.3K packs on the silkscreen. I populated the board with all of the ICs and was done before 11:00 PM. Having a freshly populated board in front of me meant it was impossible to resist the urge to power it up, so I grabbed my Lambda triple-voltage supply and Morrow/Thinker Toys 8-slot Wunderbuss backplane. I burned the simple test monitor to a 2732A, inserted it in the board, and powered up. My first discovery was that the LEDs were installed backwards! After reversing them and applying Neil's fix to the WAIT one-shot, the I/O LED lit with the ROM in place and stayed out without it. Time to add the S-100 Debug Board (http://www.glitchwrks.com/vintage/s100/debugboard.html)!

Unfortunately, there was no love from the DL-2416. The HALT lamp stays illuminated, but that's because the 6502 board doesn't do anything with the HALT line. A quick check of the debug board's OUT STB showed it was usually low with high pulses, which is a normal state for it. The address lines were strobing as well. Time to take a look at what was actually being written to the DL-2416. I strapped the debug board's output port (an 8212) to I/O address 0x01 and plugged in a small board with 8 LEDs connected to its outputs through 301 Ohm resistors:

6723

The picture above is a later picture. What I saw was a binary representation of 0xF8. What?! Well, incidentally, that's the upper byte of the I/O mapping address set on the 6502 board's DIP switches. So what was happening?

I took a look at Neil's picture of his 6502 CPU card and noticed there was a jumper connecting pin 11 of the 74LS373 to pin 11 of the U8 74LS04. That connection would be from R//W to C. The 74LS373 is responsible for latching the 8-bit data out bus, and its clock pin was being strobed with the wrong polarity. It seems Neil fixed this by lifting pin 11 of the 74LS373 and soldering a jumper to pin 11 of U8. I reproduced the fix by cutting the trace on the back of the board between the 74LS373 pin 11 and the via above it (this won't disconnect anything else) and soldering the fix on the back of the board. After the fix, the DL-2416 displayed a "3" on reset, and "N" when I grounded the /NMI line of the S-100 bus (pin 12)!

To recap: You need to apply Neil's fix to the WAIT one-shot, and fix the 74LS373 Clock (pin 11) signal polarity. You can do the latter by lifting the pin of the 74LS373 and soldering a wire from the lifted pin to pin 11 of U8, or by cutting the trace between the 74LS373 pin 11 and the via about 1/2 inch above it and soldering the wire on the back of the board.

glitch
September 15th, 2011, 09:13 PM
After getting the data bus issue sorted out, I wanted to try and access external memory from the 6502. To do this, I added in my homebrew 8K memory card, which works with either a 6264 SRAM or a 2764/2864 EPROM/EEPROM. This brought the board stack up to three boards, drawing around 1A from the Lambda's first output, set at 7V.

I wrote and assembled the following code, and burned it to a 2764 EPROM:


0000 SEI 78
0001 LDX #$FF A2 FF
0003 TXS 9A
0004 LDA #$36 A9 36
0006 STA $F803 8D 03 F8
0009 LDA #$35 A9 35
000B STA $F802 8D 02 F8
000E LDA #$30 A9 30
0010 STA $F801 8D 01 F8
0013 LDA #$32 A9 32
0015 STA $F800 8D 00 F8
0018 JMP $0000 4C 00 00
001B SEI 78
001C LDX #$FF A2 FF
001E TXS 9A
001F LDA #$41 A9 41
0021 STA $F803 8D 03 F8
0024 LDA #$2D A9 2D
0026 STA $F802 8D 02 F8
0029 LDA #$4F A9 4F
002B STA $F801 8D 01 F8
002E LDA #$4B A9 4B
0030 STA $F800 8D 00 F8
0033 JMP $001B 4C 1B 00

This code has two main sections. The first, starting at 0x0000 and ending at 0x001A, outputs "6502" to the DL-2416 and loops back to its start. The second outputs "A-OK" and loops to its start. I then burned a new 2732 EPROM:


1B 00
00 00
00 00

This sets the reset and IRQ vectors to 0x0000, our first block of code, and the NMI vector to 0x001B, our second block of code. Here's a picture of the whole setup to this point:

6724

Here you can see the debug board on the front, displaying "6502," with the LED readout board on port 0x01 displaying 0x30 (ASCII zero). Behind that is my homebrew 8K memory board with 2764 EPROM, build on a Vector 8800V S-100 wire wrap protoboard. Behind that is, of course, the 6502 CPU board. As you can see from the display, the first block of the external ROM was being executed, and since the I/O LED on the 6502 board was staying lit, it appeared to be looping:

6725

Time to test the jump to the second block by grounding /NMI (line 12 of the S-100 bus). I did so with a long flying lead from the Lambda power supply. The result:

6726

Success! Looks like the 6502 board is alive and fully functional! The next step will be to store data in RAM and retrieve it. For that step, I'll probably wait until I can purchase more 74LS682s and add my S100Computers/N8VEM Serial IO board to the stack. Then I can start writing a monitor for the combination!

A note to all those thinking about helping in first-round prototype debugging: you don't need fancy tools for this. Every tool I used, with the exception of my desktop computer and the EPROM burner, is pictured in the view of the running board stack. With the debug board, a logic probe, and my Simpson 160 multimeter, I was able to diagnose the latch polarity problem and correct it. No oscilloscope or logic analyzer required!

NobodyIsHere
September 16th, 2011, 03:31 AM
Hi,
Thanks! Your board is looking great!

Neil made at least three changes and was able to get his front panel to work. I think you've already found the RW* issue and the WAIT LED. There was another issue with the 74LS682 regarding P=Q and P<Q. The inputs had to be reversed for the latter to work properly.

Later tonight I'll post the changes. They are pretty simple but necessary. Thanks!

Andrew Lynch

glitch
September 25th, 2011, 02:15 PM
Neil made at least three changes and was able to get his front panel to work. I think you've already found the RW* issue and the WAIT LED. There was another issue with the 74LS682 regarding P=Q and P<Q. The inputs had to be reversed for the latter to work properly.

Later tonight I'll post the changes. They are pretty simple but necessary. Thanks!

Has a complete list of the necessary changes been assembled? I've been trying to get the 6502 board to play nice with the serial port on my Morrow SwitchBoard (WD 1602 UART, no initialization required, not in software anyway). I'm getting a continuous stream of blank and/or unprintable characters from the SwitchBoard with the 6502 running the same software loop demonstrated above. It works fine with four different Z80/8085 CPU boards.

The SwitchBoard doesn't use the system clock(s) since it has its own BRG crystal, so I'm pretty sure my lack of 2 MHz oscillator on the 6502 board is OK. Perhaps it's a result of the 6502 hammering bytes into the UART as fast as it can, whereas my 8080 test code only outputs one byte and halts the processor.

NobodyIsHere
September 25th, 2011, 02:41 PM
Hi, yes all the changes are listed in the wiki. I uploaded them a few days ago and haven't heard of any other changes since.

Neil got his board working with his RAM/video card and also some IO devices so I think we are good to go.

Hopefully you can replicate Neil's results. Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
October 9th, 2011, 08:59 AM
Hi! Neil posted an update including a neat YouTube video of the S-100 6502 CPU board prototype in action.

http://groups.google.com/group/n8vem/browse_thread/thread/9f02290a7c4c6328/f4d8821dc4b869a9#f4d8821dc4b869a9

Thanks and have a nice day!

Andrew Lynch

TMorita
November 3rd, 2011, 03:08 PM
Something has been itching at the back of my mind and maybe someone remembers it. Back around 1976, there was an S100 board produced with a 6502 on it. I remember a friend picking one up, but can't recall who made it. For a time I thought it might have been SSM, but on reflection, I don't think so.

Anyone have any idea?

CGRS Microtech.

http://archive.6502.org/publications/micro/micro_1_oct_1977.pdf See page 10 top left corner, CGRS Microtech advertisement
http://www.dvq.com/docs/s100/cgrs_mpu.pdf Documentation for board

Toshi

NobodyIsHere
November 21st, 2011, 09:50 AM
Hi,
The S-100 6502 CPU boards are basically done and shown working. There were a couple of fixes identified in the prototype build and test phase which are easily enough added into the final version.

However, the board does not have the ability to allow S-100/IEEE-696 "Temporary Master Interface" which allows multiple CPU bus masters. Basically the S-100 6502 CPU board can only be the bus master and not part of a multiple CPU S-100 system. That really needs to be part of the initial design in my opinion although the board could go forward without it.

Also the original designer of the S-100 6502 CPU board would like to expand the design to include SRAM and some IO like serial ports, parallel ports, timers, etc. Not quite sure if this is necessary for a "final" version board although it would certainly be nice to include it.

The project is currently in a "hold mode" pending progress on the S-100 8086 CPU board ("production" board shipping imminently), the S-100 68K CPU board (third prototype in work), and S-100 80286 CPU board (second prototype board almost ready).

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
November 25th, 2011, 12:53 PM
Hi
If you are interested in a S-100 6502 CPU board please contact me. This will be a V1 of the board which is a fully functional corrected version of the present board. It will not have TMI, SRAM, or IO circuitry. Those features may be included in the V2 version.

If there are 20 builders requesting boards, I will make a PCB manufacturing order. Presently there are 4.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
December 14th, 2011, 04:51 AM
Hi! The good news is we are up to 17 builders for the S-100 6502 CPU V1 board.

Still need three more to get the PCB manufacturing order though.

Please send me an email if interested.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
August 9th, 2013, 10:47 AM
Hi

We've updated the S-100 6502 CPU board and are now ready to produce a "S-100 6502 CPU V2" board.

http://www.s100computers.com/My%20System%20Pages/6502%20Board/6502%20CPU%20Board.htm

The updates include minor fixes to the V1 board plus full TMAx multiple CPU compatibility for Master/Slave CPU operation.

I am raising funds for a small production lot and as soon as there are enough to warrant I will place a production order.

If you want to reserve one or more of these boards please send a PayPal for $20 plus shipping to LYNCHAJ@YAHOO.COM

There 15 boards reserved for builders at the moment and there has to be another 5 or so boards minimum.

Please put “S-100 6502 CPU V2” in the PayPal subject line so I know which ones are for the PCB manufacturing order.

Shipping in the US is $3 for a single PCB and $2 for each additional PCB. Shipping internationally is $10 for a single PCB and $3 for each additional PCB. This is for the bare basics USPS first class postage with no tracking or insurance. The builder assumes all risk of delivery as per usual arrangement.

I will get enough boards to fill all the orders and any remaining will get dropped on VCGM and eBay like a hot rock. Hopefully this plan will move the PCBs along quickly enough so they don’t pile up and cause problems.

Thanks and have a nice day!

Andrew Lynch

billdeg
August 9th, 2013, 03:20 PM
http://vintagecomputer.net/6502%5Fhomebrew/thm_kens_number_cruncher.jpg
I mailed a surprise 6502-based S-100 system to Jack Rubin a few years ago.
http://vintagecomputer.net/6502_homebrew/

NobodyIsHere
August 9th, 2013, 04:14 PM
Hi
Nice! Wow! That was a lot of work!

Now you can build your own S-100 6502 monster for just a fraction of the effort!

Thanks and have a nice day!

Andrew Lynch