Holiday 2025/26 Project Thread

For discussing the 65xx hardware itself or electronics projects.
Post Reply
Paganini
Posts: 516
Joined: 18 Mar 2022

Holiday 2025/26 Project Thread

Post by Paganini »

Greetings 6502 land!

Since unpacking my electronics gear into my new workshop last year I've had very little chance to do anything interesting thanks to Life, the Universe, and Other Problems. Over the holidays I had some free time to get back to my projects. Feeling pretty rusty, (and having plenty of spare parts) I thought it might be a good idea to build another whole computer from scratch to remind myself how things work. This one doesn't have a colorful name, but I called the KiCAD project 'Fiat6502,' as in "let it be."
Fiat6502.pdf
(243.6 KiB) Downloaded 32 times
Some of my previous projects have had a lot of moving parts - relocatable I/O windows, clock stretchers, RAM/ROM banking, and so on. Fiat6502 is different - the point of this project is just to be a simple baseline system that I can build from and use for testing other things. And also to be finished! I even soldered the oscillators in place this time!
Main board:<br />CPU / RAM / ROM, reset button
Main board:
CPU / RAM / ROM, reset button
As you can see, there's nothing too excitingly new from my previous projects in terms of construction. One thing I did differently for this one is I used luxuriously tall header pins, so I no longer have to be careful about limiting myself to two wraps per pin. Another difference is that I swapped out the `688 comparator I usually use for I/O decoding for an `HC30.

Code: Select all

Memory Map

0000..7EFF	System RAM

7F00..7FFF	I/O Page
 (7F00..7F7F)	Undecoded
 (7F80..7F8F)	VIA 1
 (7F90..7F9F)	VIA 2
 (7FA0..7FAF)	ACIA
 (7FB0..7FEF)	4 unused I/O decodes
 (7FF0..7FFF)	CF IDE

8000..FFFF	System ROM
I/O devices are located on a second storey board. One new thing from previous projects is that this board has a panic button on NMI controlled by a DS1813 EconoReset. Another new thing is that VIA2 is also connected to NMI for use as a RTC so I can finally get around to starting another one of my long-term projects, which is to do cool OS-dev stuff like porting XINU.
I/O board:<br />VIA1, VIA2, ACIA, PANIC! button
I/O board:
VIA1, VIA2, ACIA, PANIC! button
On the software side of things, for a while I've been meaning to update my Ben Eater-based ACIA code. I've noticed that when using WOZMON if I paste code into my serial terminal, the first line works fine, but subsequent lines are stepped on and mangled unless I set the line delay on my terminal to 50ms or so. I hypothesize that the reason for this is that, while input is interrupt driven and buffered, output is not! After each line of input WOZMON sends a response back to the serial terminal using the polled output routine. It's been on my to-do list for a while to swap out those routines for fully buffered and interrupt driven routines like the ones in Kevin's (floobydust's) "Micromon." I did that this week, and indeed it fixed the problem pasting into WOZMON!
PXL_20260112_231016459.jpg
One thing I've wanted for a while is some kind of mass storage. Although I'm not at all interested in FAT32 (I'm planning to use something UNIXy, like the XINU filesystem, or maybe the MINIX filesystem) I've been following Neil (barnacle's) filesystem thread with interest; particularly the first page. With the help of some of the resources he posted I built this 3rd storey board:
It's a &quot;hard drive&quot; :D
It's a "hard drive" :D
I had a CF/IDE adapter leftover from a long time ago when I was trying to revitalize an old ThinkPad by replacing its horrendously slow microdrive with a CF card. Unfortunately, the pitch on the adapter's pins is quite small compared to my protoboard. While watching a topical YouTube video I saw that 2.5/3.5 IDE adapter and though "hey, I think I have one of those!" So I dug it out of an old motherboard box, got an old IDE cable out of cable storage (i.e., the Hefty bag under the bed in the guest room) and chained them all together. Amazingly, that monstrosity actually works! At least, so far as I've gotten, which is reading the info block. Still, I was pretty pleased and astonished when I dumped the disk buffer and saw my CF card's ident information (in Big Endian LOL!)
PXL_20260112_231655172.jpg
I went ahead and ordered a different CF/IDE adapter that has the right size connector so I can just plug it into the header on my board. When it gets delivered that will hopefully make things much tidier.

One thing I decided *not* to do is transfer my VGA circuit off of breadboards. It would be cool to have a screen running off of my own design, but that design has 14 ICs, plus a really big PLCC adapter for the dual-port RAM. I couldn't find a way to make it all fit on any of the solderable breadboards I have. I figure I can save the VGA board for when/if I eventually learn how to make actual PCBs. Meanwhile, I ordered an ASCII Video Terminal from Legacy Pixels to use instead. It's not here yet, but I'm looking forward to finally being able to use my 1983 Model M keyboard with a retrocomputer again. I haven't been able to do that since the rickety I/O board I made for Blue April.
"The key is not to let the hardware sense any fear." - Radical Brad
barnacle
Posts: 1831
Joined: 19 Jan 2004
Location: Potsdam, DE
Contact:

Re: Holiday 2025/26 Project Thread

Post by barnacle »

Excellent, and _real_ RS232, too. Any particular reason to use that and not a logic level implementation? The existing terminal, I suppose.

I'm curious as to why you use the wire-wrap connections on the top of the board, rather than using wire-wrap sockets with the connections underneath. Though one idea is that (a) they're getting harder to find and (b) they're bloody expensive. I've built 6502 projects with wire-wrap sockets that ran without issue from the mid eighties until 2010 or thereabouts, when they became redundant, so it's a robust solution.

Keep us updated, please!

Neil
Paganini
Posts: 516
Joined: 18 Mar 2022

Re: Holiday 2025/26 Project Thread

Post by Paganini »

Hi Neil,

I do have a few wire wrap sockets. As you say, they were *expensive* and getting hard to find (although PECONNECTORS still stocks them). Somehow they trigger my "mental accounting," so that I feel like, since they are limited in supply and costly, I should save them for some Extra Cool Special project.

The particular protoboard I'm using has busses laid out like a breadboard, so if I just solder a row of pins next to the socket it's like having a wire-wrap socket that's folded back on itself, if you see what I mean. (It also has busses laid out as power rails, which simplifies power distribution to soldering on a few jumper wires.)

As far as the RS-232 goes, I just happened to learn to do it the real way, I guess. Lee Davison's article here on 6502.org uses a MAX232, and so does Ben Eater in his videos. It is nice to have the option of connecting to a real vintage terminal, should I ever get ahold of one! Also, my workshop computer is an old ThinkPad with an oldschool 9 pin DOS COM port style serial connector that you have to enable in the BIOS. I never actually checked to see, but the Internet tells me that it doesn't support TTL level serial signals.
"The key is not to let the hardware sense any fear." - Radical Brad
barnacle
Posts: 1831
Joined: 19 Jan 2004
Location: Potsdam, DE
Contact:

Re: Holiday 2025/26 Project Thread

Post by barnacle »

A standard COM port won't accept TTL serial; it's inverted wrt RS232 and obviously the levels are incorrect.

I've used those boards in the past, successfully, but usually with Roadrunner type wiring and plastic combs. You do need a soldering iron with a sufficiently large tip and sufficient power to melt the heat-sensitive enamel on the wire.

https://roadrunnerelectronics.com/produ ... e-rrp-103/ and /press-strips-51mm-rrs-p-102/

Neil
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Holiday 2025/26 Project Thread

Post by BigDumbDinosaur »

Paganini wrote:
As far as the RS-232 goes, I just happened to learn to do it the real way, I guess.  Lee Davison's article here on 6502.org uses a MAX232, and so does Ben Eater in his videos.
The Lee Davison schematic appears to show 10 µF charge pump capacitors.  The correct value is 1 µF, plus a 1 µF decoupling capacitor, optionally paralleled with a low-ESR electrolytic (recommended).

According to Maxim, use of a larger-than-specified charge pump capacitor may eventually cause device failure due to excessive inrush current flow at power-on.  Aside from that, a larger value offers no operational benefit.

The charge pump and decoupling capacitors can be tantalums or MLCCs—I use the latter, Kemet part number C315C105K3R5TA.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
Paganini
Posts: 516
Joined: 18 Mar 2022

Re: Holiday 2025/26 Project Thread

Post by Paganini »

BigDumbDinosaur wrote:
The Lee Davison schematic appears to show 10 µF charge pump capacitors.  The correct value is 1 µF, plus a 1 µF decoupling capacitor, optionally paralleled with a low-ESR electrolytic (recommended).
Wow 10µF. I never noticed that, but if you look at the photo in the article he does indeed seem to have several bigass electrolytics scrunched up against his MAX232. Mine are just regular nonpolarized 1µF monolithic ceramic caps.
"The key is not to let the hardware sense any fear." - Radical Brad
Paganini
Posts: 516
Joined: 18 Mar 2022

Re: Holiday 2025/26 Project Thread

Post by Paganini »

New adapter was delivered! Much tidier, and everything seems to be working...
PXL_20260114_155513796.jpg
PXL_20260114_155546714.jpg
"The key is not to let the hardware sense any fear." - Radical Brad
Paganini
Posts: 516
Joined: 18 Mar 2022

Re: Holiday 2025/26 Project Thread

Post by Paganini »

My Legacy Pixels ASCII Terminal was delivered a few days ago. It's pretty slick!
PXL_20260121_164852042.jpg
PXL_20260121_164859955.jpg
I've added Woz's disassembler (lots of info on this page) to my ROM.
PXL_20260121_164917257.jpg
This is neat, but only knows about NMOS instructions. I'm wondering if it's worth trying to add the C02 instructions to it, or if the design is too... "clever" to be easily modified.
"The key is not to let the hardware sense any fear." - Radical Brad
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: Holiday 2025/26 Project Thread

Post by BigDumbDinosaur »

Paganini wrote:
I've added Woz's disassembler...only knows about NMOS instructions. I'm wondering if it's worth trying to add the C02 instructions to it, or if the design is too... "clever" to be easily modified.
Years ago, I tried enhancing Wozniak’s disassembler to support the C02.  I ended up scrapping that idea once it became apparent he was going for minimum possible code size, not extensibility.  Mostly, I consumed too much time trying to work around his kludges.  Complicating things was the irregular syntax of the Rockwell extensions, as well as irregularity in the opcode table caused by the addition of the new instructions, which don’t all follow the pattern of the NMOS ISA.

You will likely be better off writing a new disassembler that uses a table methodology to convert opcodes into mnemonics and appropriate addressing-mode symbols.  That’s what I did in writing Supermon 816, especially since the 65C816 has no undefined opcodes.  The 65C02 version should be simpler, since support only for the defined opcodes needs to be in the tables.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
Post Reply