Dear SN74HC688

A project log for Discrete YASEP

a 16-bits YASEP computer (mostly) made of DIP/SOIC chips like in the 70s and 80s... with 2010's twists!

yann-guidon-ygdesYann Guidon / YGDES 10/25/2015 at 06:166 Comments

Dear SN74HC688,

I've known you since the days I decided to build an interface card for the ISA bus of my first PC. You're the circuit that selects the address where my circuits would hopefully, one day, read their commands (0x300 in the I/O region but I can change this with DIL switches).

You were hard to get, back in the days, pretty expensive for my teen purse. So when I grew up, I made sure to ask for samples (I can't thank you enough TI) so I could at least compare two bytes for equality. You never know.

As I dig through layers of "archives", I find that small tray of typical 20-pins DIP chips. I think "well no, I won't decode addresses with this project". Five minutes later it strikes me that I was wrong.

Yes I need you, again, as ever, and even more, four of you to be exact.

Now I realise that I have forgotten a few things in the main interface.


I'll be reasonable and there will be 2 programmable 16-bits comparators (the value is entered from the keypad). One comparator for the PC (or NPC) to trap on a specific address, and one to trap on a value of the result bus. Maybe another to "trap on write/read register" or a condition. Or something like that.

A "more flexible" system would have the 2 comparators fed from a multiplexer because there are so many signals to spy on. The P1B display board scans the bus to refresh the LEDs but it's too slow and many instructions can be executed during one pass (at about 900Hz) so most conditions will be missed.

For now, you will sit on P1A, close to the 16-bits bus of the FIFO, that will send you the data to compare. I count on you to raise a signal when you see the same on the main bus! If you're not sure yet where you'll fit, look at this updated map:

In the beginning, I'll ask some TIL311 to keep you company, until I find less power-hungry hexadecimal displays. I hope you'll stand the heat. They will be turned off when you guys are not on duty.

Anyway, thank you again for being here, just at the right time, as I design the general system. Seeing you reminded me how useful you are. You still have a place on my PCBs. You are not needed often but nobody can replace you. I hope you'll like teaming up with your ubiquitous friends, 74HC574 and 74HC273 because DIP switches would be too unpractical.



PS: @esot.eric made me realise (in the comments) that there was an incredibly better circuit for matching breakpoints. SRAMs are much more versatile and marginally larger, and even smaller because they don't need an additionnal '574 latch to store the match address.


Jason Westervelt wrote 12/30/2015 at 07:18 point

I have tubes full of UM61512AK-15 SRAM... those are 64KB parts which have a 16bit address bus and 8bit data bus...  I just found a seller online who has them listed for $4 each.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 12/30/2015 at 08:03 point

4$ is still expensive :D unless it's 4$/tube ?

These are 5V parts I think...
I have even cheaper 3.3V parts with a 16-bits data bus for the Discrete YASEP project :)

  Are you sure? yes | no

Jason Westervelt wrote 12/30/2015 at 09:38 point

Ah... gotcha. I'm kinda a 5V fan myself. I find it a pain to deal with level shifting buffers... plus finding 3.3V regulators locally is nearly impossible. Everyone seems to carry 5/9/12V... and of course the variable ones like the LM317... meh.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 12/30/2015 at 13:09 point

I see your point, I have had the same troubles for a long time... Now, with all those online stores and brokers, it's not a roadblock anymore. The old parisian stores don't have much 3.3V parts but they are everywhere online :) And no need of level translation when everything is the same voltage.

  Are you sure? yes | no

Eric Hertz wrote 12/29/2015 at 21:55 point

Was just looking around for 688's today, in fact... have an idea for 'em that could be useful. Thanks for this "Dear 688" post :) Also came across the entire 684, 686, 688 (682?) family in the 688 data-sheet, and also just came across the 520 and 521 (there may be others?). So, excellent info for future reference! Also came across some 4-bitters, but that'd be a lot more work ;)

And something that may be a bit more difficult with the SRAM idea (besides finding SRAM with 16-bits of addressing!) is that some of these comparators also do '>' testing, so two of these and a couple gates could do testing for *ranges.*

Don't give up on your friend the 688 just 'cause you found something else that'd serve some purposes [plausibly] better ;)

  Are you sure? yes | no

Yann Guidon / YGDES wrote 12/30/2015 at 06:05 point


  Are you sure? yes | no