Experimenting with TTL Cpu, 74LS chips, old vs New? Retro style switches? - Page 1
Forum section: electronics / projects

author: rwgast_lowlevellogicdesin
author_rank: Frequent Contributor
timestamp: June 02, 2020, 07:40:28 pm
content: I am interested in building Ben Eaters8 bit TTL breadboard computer, I have never actually used 74 series logic for anything, with the functionality of all the chips out there these days and rarity of parallel buses these days, i have just never had a need. I have always been in to computer design and over the years I have wanted to build an old school style computer with a blinken lights and switch panel, along with a punch card reader and serial terminal. I decided to go TTL instead of z80 or 65c02, is because for some reason I am a real bottom up type of learner. A lot of this project is also about writing a ground up software stack too.I plan to start out just following ben's design (and reading Petzolds "Code:Hidden language of computer hardare and software") and soldering through hole on veriboard, instead highly capacitive breadboard design. But once i know what im doing i would like to take it in the direction of theMagic-1, and make it do something useful while learning more. At that point I would probably want to use a proper PCB and surface mount 74AHC components to get a better clock speed.Right now im on digikey making an order for parts and I have realized I have about 90% of the parts on theprojects BOM. A while back I got a box full of 74 and 4000 series logic chips, But being fairly uneducated about the 74LS series im wondering if there speed/rise time difference between 74LS from the 70s & 80s compared to the newer TI ones sold on digikey today? If there is a difference what effect would having chips with different rise/propagation times have? I'm thinking I should just order all new chips but if it is just a waste on 30 bucks that wont give any better speeds/noise/power consumption then I would probably be wise to just use what I have sitting around in case I need it one day. Lastly what are the names of the type of switches used on PDP an IMASI8080 front panels? If its possible I would like to pick up the "duck bill" style switches on digi key as well.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: June 03, 2020, 02:45:00 am
content: Y'mean comparing new 74LS? Wouldn't think there's a difference...74HC and HCT are compatible, HCT being fully compatible and HC being HC-output to TTL-input compatible (and TTL-output to HC-input compatible with a pull-up resistor, if you don't mind it being slow; but HCT is better to just drop in). HC and HCT have identical outputs.Also 74F, 74AC(T) and 74ABT are faster, if you start running out of propagation delays in critical paths. Mind the signal quality, and provide good grounding and bypassing!Tim

author: jfiresto
author_rank: Frequent Contributor
timestamp: June 03, 2020, 03:35:50 am
content: I always feel some cognitive dissonance when people refer to 7HC... parts as TTL, but I have been a CMOS fan for the last 45 years. Could that misnaming be an issue?

author: greenpossum
author_rank: Frequent Contributor
timestamp: June 03, 2020, 03:51:21 am
content: Quote from: jfiresto on June 03, 2020, 03:35:50 amWell strictly speaking CMOS also uses transistors, they don't have to be BJT. And TTL is used to distinguish from RTL, DTL, ECL (which really would have to be renamed if ever there could be a CMOS equivalent), etc. But I understand your feeling of dissonance.

author: David Hess
author_rank: Super Contributor
timestamp: June 03, 2020, 03:05:26 pm
content: Quote from: rwgast_lowlevellogicdesin on June 02, 2020, 07:40:28 pmThere is no difference; new low power schottky has the same performance as old low power schottky.QuoteNewer logic families like ALS, AS, or FAST will provide an improvement in speed or power consumption but the selection of logic functions is more limited than with LS. The same applies when moving from HCT to AHCT or ACT except static CMOS power consumption is practically zero.QuoteThey are just another form of toggle switch but they will not be cheap. They were not cheap in the past either.Quote from: greenpossum on June 03, 2020, 03:51:21 amIt does not help that the later generations of TTL use DTL input structures in place of the multiple emitter inputs usually associated with TTL. And then some replace the input diodes with PNP emitter followers.CMOS ECL should be SCL (source coupled logic) and that term is sometimes used but more commonly it is referred to as CML (current mode logic).

author: rwgast_lowlevellogicdesin
author_rank: Frequent Contributor
timestamp: June 04, 2020, 12:29:31 am
content: So would I gain anything from leaving all the 70s 74LS chips in the drawerer and ordering all the parts in HC/HCT format? As far as moving to the 74Axx series I have no plans to do that at the moment, a lot of this is a learning project in hardware logic and cpu design, so while building and designing the thing i'm not looking to the problems 74Axx chips will bring with them when point to point wiring without a ground plane.As far as the switches go maybe ill look around at some of the retro PDP kits and see if I can figure out where they source those kind of switches. I was under the impression the were SPDT "duckbill" switches but that term doesn't really seem to be helping me. I dont mind paying a bit for them, I was just hoping I could easily source switches like that on digikey or something.

author: duak
author_rank: Super Contributor
timestamp: June 04, 2020, 02:27:50 am
content: Regarding the switches, I have a C & K sample kit and one switch looks like the one in the attached image. I think these switches are called "Bat Handle". Their website doesn't show it and my sample doesn't have a number so I think it's obsolete. If you go tohttp://www.surplussales.com/switches/swtoggle-1.htmlyou should see a few that migh be useable.Having worked with a couple of PDP-11 minis I think I can say that their switches are a bit wider and longer than the switch I refer to above. I also assembled and used an Altair 8800 micro for my high school in the 70s that used subminiature toggle switches. I remember keying in the bootstrap loader and other small programs using these switches. It would have been nicer to have slightly longer and wider toggles instead of the little cylindrical ones they used. I see that some manufacturers have slip-on handles - look in Digikey under switch accessories.Most logic families, even LSTTL, will require a ground plane (or at least a mesh) when you get to more than a few chips or the signal length gets over a few inches. It's a function of edge rates, loop areas, and current spiking on signal transitions. The old 74STTL was probably the worst and could require heroic layouts trying to create a ground plane and bypassing when using simple two sided boards.

author: jfiresto
author_rank: Frequent Contributor
timestamp: June 04, 2020, 05:22:06 am
content: Quote from: duak on June 04, 2020, 02:27:50 amI think in the U.S. that they are more commonly called paddle switches: good old American bats being round. I am sorry that they have gone out of style as I always liked their feel.

author: jfiresto
author_rank: Frequent Contributor
timestamp: June 04, 2020, 05:37:27 am
content: Quote from: duak on June 04, 2020, 02:27:50 amThe old 4000-series CMOS wasa loteasier to work with. I think I would use that if I were building a discrete logic computer. It would be a little slow, but you could probably power it off bits of paper towel, lemon juice and some spare change.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: June 04, 2020, 05:49:01 am
content: Quote from: jfiresto on June 04, 2020, 05:37:27 amJust about SFA at 5V, yup. Plus you can overclock it to a massive 15, 18 volts even. Hold onto your hats we're cranking this baby up to TWO MEGAHERTZ!Aside from power consumption (who cares?) and a little more freedom from signal quality issues (it's not THAT hard), I don't know that it'd be all that worthwhile; if it ends up clocked at 100kHz or something, there's simply fewer things you can use it for; being able to compute something at all is one thing, but being able to compute something in real time is a real challenge.Tim

author: jfiresto
author_rank: Frequent Contributor
timestamp: June 04, 2020, 06:08:07 am
content: Quote from: T3sl4co1l on June 04, 2020, 05:49:01 amYou could probably manage around 6 mhz at those voltages and be perhaps four times slower than the LSTTL equivalent. These days, I bet you could trounce a computer made with either, simulated in Python on a Raspberry Pi.

author: rwgast_lowlevellogicdesin
author_rank: Frequent Contributor
timestamp: June 04, 2020, 06:29:38 am
content: @duak, Thanks a lot for that surplus link, the (SWT) 8V10128 model a quarter way down the page is exactly the kind of thing i was looking for and is WAY cheaper than a expected, but now looking at that page im wondering if the toggle switches with rollers on the end would be a cooler idea!I have seen plenty of people breadboard pretty big 74LS projects with out any issues, most of the stuff I do is pretty low noise RF mixed with digital and hi power, so im pretty use to figuring out noise issue's, dealing with ringing etc. The thing is I don't want to deal with any of that crap while learning, hence why im not starting with the fastest logic chips I can. I would assume from some of the messy TTL projects I have seen that a good star grounding and decoupling rules of thumb like a .1uF on every chip along with a 1uf and 10uf for every 5 or 10 chips should be fine.Still not sure if dumping the on hand 74LS and ordering everything in 74HC is worth the $50 bucks it will cost.

author: jfiresto
author_rank: Frequent Contributor
timestamp: June 04, 2020, 06:50:55 am
content: QuoteWith 74LS, youmighthave to think about fanout, but beyond that, I bet you can tend to everything else with a little thought and little fuss.

author: tggzzz
author_rank: Super Contributor
timestamp: June 04, 2020, 08:31:17 am
content: Quote from: rwgast_lowlevellogicdesin on June 04, 2020, 06:29:38 am"Ringing" isn't an appropriate concept, since that is associated with second (and higher) order filters.If you are used to RF, you will know about transmission lines. Improper termination causes problems. The maximum wire length for which you can ignore transmission line effects depends solely on the transition time. For a quick intro, one place to start ishttps://www.edn.com/category/blog/bogatins-rules-of-thumb/Power supply decoupling is required to deal with current transients due to changing voltage across capacitors and (with TTL, HTTL, STTL, LSTTL, FTTL) inputs consuming different current in the high and low state.Decouplers need to have very short leads; you used to be able to buy flat capacitors that fitted under ICs and sockets with a built in capacitor under the IC.Ideally you would have a solid ground plane and Vcc plane. On a two-sided board that would only be possible if you hand-wire all the signal connections.For LSTTL an acceptable alternative is to have wide Vcc/GNd traces running under a row of ICs on the topside, and these should both be connected at both ends (don't have two interlocking fingers, one from each end). Put the 100nF decouplers on those traces by each IC. Add occasional "extra" grid grounds between the rows of ICs, to approximate a ground plane.Wirewrap is OK for LSTTL but you have to be careful with faster families, and it fails for modern logic.IDC is better than wirewrap, but I don't know if you can get the boards anymore.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: June 04, 2020, 02:39:02 pm
content: Honestly I'd stick with the TTL. You have it, you can breadboard it today. You may have more special functions on hand than are available in HC. Do try to design some if you can, inventory what you have and make sure you have enough of various types to do it. And you can always interface to HC and such with just a little buffering.Tim

author: tggzzz
author_rank: Super Contributor
timestamp: June 04, 2020, 03:13:04 pm
content: Quote from: T3sl4co1l on June 04, 2020, 02:39:02 pmAgreed. And the interfacing is even simpler with HCT, of course.

author: duak
author_rank: Super Contributor
timestamp: June 04, 2020, 05:51:37 pm
content: One of the most interesting problems I ever solved was in a manufactured product. On occasion, an output bit on a register would change even though it wasn't supposed to. It turned out that the data lines to the register were routed near the clock line to the register but because it was a two sided board, it wasn't all that close to the ground. It was an unusually shaped board because it was a control interface to some part of the assembly. When enough of the data lines changed at once, the clock line followed and caused the register contents to change. The register was LS and the bus driver (on the same board) was LS. One solution was to put a small cap on the register's clock input. The other is to solder a metal ground plane made from a thin single sided piece of PCB over the extension connecting all the ground points together and also laying close to the data lines.Moral of the story - watch out for short glitches causing unintended clocking. These can come from the most mundane sources.

author: rstofer
author_rank: Super Contributor
timestamp: June 04, 2020, 06:40:16 pm
content: The PiDP-11 project uses a Raspberry Pi and the simh package to recreate a PDP-11/70. Including the switches...You might try to contact them for a lead on the switches:https://obsolescence.wixsite.com/obsolescence/pidp-11https://obsolescence.wixsite.com/obsolescence/contact

author: rstofer
author_rank: Super Contributor
timestamp: June 04, 2020, 07:04:50 pm
content: Ben Eater's project is pretty nice! I built most of it on breadboards until I just got bored with jumpers. Some kind of prototype board and wire-wrap would be a lot better.As to higher order machines, just about nobody is going to use TTL or any other chip family when they can build the whole thing in an FPGA. I built an entire IBM1130 in a Spartan 3 Starter Board (now on a Nexys 2 Board) that runs the factory software, unchanged. You can define the chips in terms of some HDL and wire them up with a keyboard instead of a jumper.Software is the thing. Without an assembler and some high level compiler, what good is the hardware? I remember well when the Altair 8800 came out and it had just 256 bytes of RAM. Every program had to be toggled in and, of course, they had to be tiny. Today, you could grab the T80 core from OpenCores and implement a Z80 machine that would run at 50 MHz, maybe more. You could even run the ROMs for PacMan. I have that on a Nexys 2 Board as well.I have wire-wrapped projects up to 100 chips of original TTL (predating LSTTL) and they worked well. To do this, you really need a Gardner-Denver cut-strip-wrap gun. Using the pencil type tool is too grim to contemplate.

author: rwgast_lowlevellogicdesin
author_rank: Frequent Contributor
timestamp: June 04, 2020, 09:14:18 pm
content: I know this could be done in FPGA much easier, and at some point I may use 16v8gals or ATF1502 cpld's I have in the drawer. Really the point of this whole thing is to learn to efficiently use and think in logic gates (this way I can eventually move to an FPGA for some RF processing in other projects) and develop a software stack from the ground up and really understand implementing bare metal programming in assembler, which I feel would be more intuitive if im the one who built the hardware and understand its connections and mechanisms. The second goal is just to have a cool blinken lights piece of hardware sitting around doing simple tasks, which can easily be upgraded if I want to learn more advanced skills like predictive branching or graphics blitting.You know I have a lot of copper clads I bought on the super cheap when RadioShack went out of businesses, not to mention the huge sheets of rogers I use for toner transfers when I need a quick way to build a comb-line filter or LNA for frequency's above VHF. I could actually dead bug the whole thing if i need too. As far as ringing, a square wave is full of harmonics and if the trace inductance is to high im sure a TTL chip can ring or spike on the rising edge, while this may not be an issue to logic threshold it will create a bunch of EMI, am I right about this? I mean a large enough harmonic spike somewhere could couple in to something causing a bit flip? At worse it will make a noisy ground!

author: tggzzz
author_rank: Super Contributor
timestamp: June 04, 2020, 09:21:45 pm
content: Signal trace inductance is less of a problem than ground lead inductance. "Ground bounce" can be a real problem, since the low level voltage margin is only 0.4V

author: David Hess
author_rank: Super Contributor
timestamp: June 04, 2020, 09:27:44 pm
content: Quote from: rwgast_lowlevellogicdesin on June 04, 2020, 12:29:31 amCompared to LS, HC/HCT would draw less power for close to the same performance. AHC/AHCT and AC/ACT would also give a performance improvement over LS. Of course the same applies to the improved TTL families like ALS, AS, and FAST. FAST is my favorite of the TTL families but unfortunately it has a limited selection of functions.Unless you need more performance, then HCT would be my first choice and it has full compatibility with TTL signal levels so you can include some LS parts if needed and replace them later or not at all.Quote from: tggzzz on June 04, 2020, 09:21:45 pmAS and FAST never reached their intended performance because of lead inductance in DIP packages. If anything, the fastest CMOS parts were even worse because of the difference in how CMOS and bipolar transistors switch.

author: tggzzz
author_rank: Super Contributor
timestamp: June 04, 2020, 10:01:28 pm
content: Quote from: David Hess on June 04, 2020, 09:27:44 pmThat tallies with my recollection, but one of the claimed advantages of FAST was that controlled edge rates minimised the problem.Nonetheless, excellent PSU planes were required - and that is difficult with a homebrew construction.Putting the powe pins on the opposite corners always was a pessimal choice.

author: rwgast_lowlevellogicdesin
author_rank: Frequent Contributor
timestamp: June 04, 2020, 10:28:19 pm
content: Just a curious question, when using the FAST or the A families cant you still reap there speed benefits whiles using appropriately sized resistors to slow the rising edge slow enough in order to avoid issues? People do this to control the rise time of a FETs gate all the time, and aren't the newer chip family's based on FETs is that part of what makes there layout issues so much more crucial? Seems like if you were going to use them without trying to slow there edges the key is low impeadence ground, and smashing there SMT versions as close together as possible to avoid trace length.

author: CatalinaWOW
author_rank: Super Contributor
timestamp: June 04, 2020, 11:20:18 pm
content: I used several computers of the blinken light era. Switches used for register entry and memory loads varied all over the map so you can use whatever you like and be "period correct". The ones I liked best were on the HP 1000 series of of computers. Lighted push buttons. Press them and they latched down and turned on. Press again and they popped up and turned off. I am sure they weren't and aren't cheap.

author: tggzzz
author_rank: Super Contributor
timestamp: June 05, 2020, 12:01:23 am
content: Quote from: rwgast_lowlevellogicdesin on June 04, 2020, 10:28:19 pmThere are tradeoffs between propagation delay, transition time, fanout, wire length, and noise margins. If you are prepared to slug the output, it would be better to simply use a slower logic family.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: June 05, 2020, 02:15:25 am
content: Just generally all under the umbrella of signal quality.Consider the chip's design itself, it's made of pins and bondwires. Use the shortest pins you can get (prefer TSSOP over SOIC over DIP).Try to avoid transitioning multiple pins high or low simultaneously. This is particularly hard to avoid on, say, bus latches; at least they usually have schmitt trigger inputs, alleviating some concern with signal bounce and risetime.Consider the entire net route, its drivers, receivers (input pins), ground support (keep it near ground plane as much as possible), and height above ground and trace width (which define the transmission line impedance). Avoid tree routing; prefer linear (point-to-point-to-point) routing.If the signal's minimum pulse width is much longer than the electrical length of the net, and there are no significant DC loads on the trace (which for TTL, means having a low fanout; for CMOS, it's pretty much whatever), source termination can be considered. Note that the waveform at any intermediate node has a stairstep shape, as the incident and reflected waves cross it twice (which takes up to twice the electrical length of the net, hence the requirement that the pulse widths be much longer than this duration!).Note that input pins have capacitance, so act to load down the trace. If you have multiple inputs on a net, try to space them evenly so that they act more like a lumped-equivalent transmission line. The trace impedance can be a little higher in this case, since the average including pin capacitance will be lower (impedance is sqrt(L/C), and the pins act to increase C). There may still be ringing due to the between-inputs lengths, which can be dampened with additional resistance (say on a few of the inputs, or a small R+C at the end, or a FB at the driver(s)).Speaking of ferrite beads (FBs), be careful using these; they have, not so much a long time constant, as, effectively, a distributed time constant. In series, this will give nice, soft, rounded edges, which is good for reducing EMI on cables, but can be ill advised for high speed signals. FBs are available in many values, so pick an impedance appropriate to the application -- for just taking off some ringing perhaps, a low value (say 10-30 ohms @ 100MHz) might be good, while for slower signals (especially going onto cables), larger values are an excellent choice (say 100 or 300 or 1k ohms).And for cables, you might even add some parallel capacitance (or R+C) to provide additional filtering and dampening. And maybe some ESD clamp diodes, because the outside world is a nasty place.As for nets that can't so easily be source-terminated, load or source-load termination is an option. This is quite traditional among TTL -- the relatively high driver voltage (roughly 0.4 to 3V typ.) and smaller input threshold range (0.8-2V) means some loss can be tolerated along the signal path. A source-load terminated medium has, as the name suggests, a matched driver impedance (Zo at the ends, or Zo/2 in the middle), and termination at the ends (Zo for each end that doesn't have a permanent driver also attached*).*Because Thevenin and superposition theorems. A source at 0V (AC) and a series resistance of Zo, is... literally the definition of a termination resistor. (More specifically, with0V correlated tothe driving source in question. If they happen to be synchronized, they're not uncorrelated, and the effective impedance will be something else.)Back in the day, divider resistor packs were quite common, something like 390 ohms pullup, 150 ohms pulldown -- the parallel combination being a perfect match to ribbon cable, when wired with alternating signal and ground, and the Thevenin equivalent voltage being perfect for TTL inputs. The old ST-506 hard drive interface used exactly this for the control signals; the terminator was socketed, so it could be inserted in the last drive along the chain. (The data signals however were preserved with better signal rate and quality, using RS-422 differential transceivers and point-to-point links -- hence one multi-position control cable and two separate data cables between the controller and a pair of drives!)If you put a (IEEE 1284) parallel port on your project, you can consider using just such a termination with it; the transmitters are either 5V TTL, or 3.3V LVCMOS (typically 74HC family), either way having fairly comparable drive capability, suitable for load termination like this.Which also tells you exactly how to construct it -- the old school way is literally an I/O address decoder, a couple bus latches, a bus interface (if full bidirectional), and, usually a 7406 or something (open collector) for the control signals I think? (In PCs, this was quickly integrated into the system (SuperIO) chip, then later on, eliminated entirely.)Ahem, anyway, signal quality doesn't need to affect your design much, or at all; it's not something you need much schematic consideration of. For the most part, it is a separate and independent step, part of layout and routing.If breadboarding, don't ignore it too hard -- your jumper wires are traces all the same, albeit with rather awful impedances, and relatively high coupling between them, making things more vulnerable. Make sure the supplies are well bypassed and stitched (if using physical supply rails, tie them together at both ends of the board, say). Maybe slip on a ferrite bead every so often, make sure the signals don't bounce too much.Best part is, all this can be viewed on a typical scope (100MHz maybe isn't quite enough, but 200MHz or more is good), so you can see where signal bounce, supply noise, and common mode noise, are present. You can always add or remove jumpers, and slip on ferrite beads as needed. (Adding termination resistors would be harder to do!)I once breadboarded a 4MHz Z80-CPU, with RAM, ROM, and a couple (74LS) bus latches, one pair of which drove an LED matrix display; it would often run fine, for days or weeks on end, but once I coded a LFSR (a type of random number generator), it would hang much more frequently (within days to hours). Presumably, some bad combinations of data were causing the buses or supply to glitch; maybe improved bypassing, or grounding, or ferrite beads on some signals (or all of them?..), would've fixed it. It goes to show you, something might look perfectly okay with average data -- the LED matrix routines were very repetitive -- yet an underlying problem hides in plain sight (in this case discovered by fuzzing with random bus data).On another occasion, I had made an SPI peripheral module on a separate board, and plugged it into a breadboard with an ATMEGA; it was a disaster, just gibberish going through. Slipped a ferrite bead on to SCK, MISO and MOSI, good as can be. ATMEGA has faster pin transition times than some of what we're talking about here; with 74HC I think being, either a little bit slower, or comparable to it?Tim

author: David Hess
author_rank: Super Contributor
timestamp: June 05, 2020, 06:48:19 pm
content: Quote from: tggzzz on June 04, 2020, 10:01:28 pmThat helped and what I referred to about the difference between bipolar and CMOS but they still never met their intended specifications. SO packaged parts did better. Non-saturating logic like ECL was much more forgiving.QuoteEasier layout was a good reason to place the power and ground pins on the corners. Later logic families moved the power and ground pins to the center of the package where appropriate.Quote from: rwgast_lowlevellogicdesin on June 04, 2020, 10:28:19 pmUsing a series resistor to slow down the edge and reduce ground bounce helps but does not restore any performance which was lost. I only saw it done to control EMI as a last resort when a better design was not practical.

author: rwgast_lowlevellogicdesin
author_rank: Frequent Contributor
timestamp: June 05, 2020, 07:42:50 pm
content: Wow, thank you for that huge wealth of information, it's not every day you get I reply like that I will have to re-read it!As far as front panel controls go, I'm no where near ready to implement them yet (pcb mount dip switches and jumpers are fine atm) but I've been looking all over and looking at old minicomputer and retro kit designs. Toggle switches like the ones on the PDP/IMASI/etc look like a huge PITA, from what I can tell you flip them in to the binary position you want and then hit a momentary store/continue button. So after that you have to manually flip them all back to 0? Using the front panel is already tedious but having to re 0 is just painful!! So using momentary rockers with latched LEDs seems a lot more productive, so the store/content button can be used to de latch the data switches and 0 them. I believe this is how the HP1000 refered to earlier did things? I'm sure in the day using momentarys in the way I described added extra cost/size do to the latching circuitry and the need for better debounce. I have no qualms about using a micro or plc to deal with the user interface though, I wouldn't learn anything new from doing it, and it just costs more and requires more room in the enclose that can be better utilized.Now what I think would be a way cooler interface, that's totally unique is using STOP ACTION MAGNET rockers or something like them, for those who don't know there basically a SPST rocker which can be flipped by hand or electrically (both un and down) using solenoids, which in turn open or close a magnetic reed (although that part is not important). Here is a most likely very expensive exampleSydney SAMwhich I'm sure exhibits awfully bounce. Something with electro-mechanical control like this could be made pretty easy though. Either by creating special rocker caps that a solenoid can push, or by using hall effect sensors if you want a cleaner signal with no bounce. If you had a setup like this you could make the switches automatically match the position of the stored data (when single stepping or running at extremely low clocks), as well as 0 out after store/continue. Unlike just latching leds to a momentary you get cool visual feedback and audio clacking. My biggest problem is designing the switch poles/caps I dont know anything about 3d printing or laser cutting nor do i live near a maker space so i would have to use my non cnc metal working skills to grind and braze them togather probably with aluminum, seems like a ton of effort and time but damn itd be cool!Ps typed on my phone sorry about any misspelling or non sense auto correction I missed

author: T3sl4co1l
author_rank: Super Contributor
timestamp: June 05, 2020, 08:13:50 pm
content: How about a lever spanning all the switches that flips them to all 1/0 when you push on it.Oh or hey, speaking of latches, you could use pushbuttons to set or toggle flip-flops, and a couple buttons off to the side to set all 1/0. Can have it reset automatically when entered, or persist.Could also have a live decoder on the value being composed, say for hex (just run it into a hexadecimal display driver), maybe ASCII (same but one of those smart matrix displays, or anything fancier and custom), maybe a debug display as well (if your instruction set shall be fixed width, the mnemonic could be decoded in the same way, but with a lookup table, which could be a few ROMs storing text).Which... for a variable length instruction set, you'd have to, I think, have two address counters, one showing the base of the instruction, and the other what's currently being entered (which can be just a few bits long, at least). The decoder would test all bytes inbetween and decode the instruction accordingly. Can certainly be done in hardware, but it's kind of at the point where you might as well put all the buttons into IO space and write a little bootstrap/debugger to handle the work instead...Tim

author: ebclr
author_rank: Super Contributor
timestamp: June 05, 2020, 10:21:54 pm
content: " 70s 74LS chips in the drawerer and ordering all the parts in HC/HCT format? As far as moving to the 74Axx series "A much small power supply, and less hot.Did you consider to use an FPGA in schematic mode? ( you can use a standard logic TTL, but will work on FPGA tension Levels

author: rstofer
author_rank: Super Contributor
timestamp: June 06, 2020, 04:00:27 pm
content: Quote from: rwgast_lowlevellogicdesin on June 05, 2020, 07:42:50 pmFront panel toggle switches are NRZ encoded: Non-Return-To-Zero.You set up the switches and pressed Deposit or Deposit Next and then set the next pattern, you didn't re-zero the switches. Rinse and repeat...And that's the way it was done back in the day. Until the EPROM became common, it was the usual practice to toggle in a cold start loader. That might only be a dozen instructions but would be enough to load memory from some external device - like a paper tape reader or even a disk drive.I think the IBM PC may have been the first computer that didn't have switches and lights. I may be off by a couple of machines but most everything into the '70s had switches and lights.

author: rstofer
author_rank: Super Contributor
timestamp: June 06, 2020, 04:14:31 pm
content: Quote from: ebclr on June 05, 2020, 10:21:54 pmIn the Xilinx world, Vivado doesn't support schematic entry which implies a need to use the older version, ISE, but, of course, ISE doesn't support the newest chips so you're kind of stuck. I think schematic entry is a dead issue for Xilinx.That doesn't mean that you couldn't create HDL entities that accurately describe the functionality of discrete chips. Then it would just be a matter of instantiating as many as are necessary and 'wiring' them together with HDL.There could be a hybrid approach of using schematic entry on ISE, letting the tool convert the schematic to HDL and then using the HDL with Vivado.See about half way down here:https://forum.digilentinc.com/topic/530-need-to-make-a-deciscion-based-on-my-back-ground-nexys-2-or-4/

author: duak
author_rank: Super Contributor
timestamp: June 06, 2020, 05:18:08 pm
content: Regarding the IBM PC being the first computer without switches and lighs. The Apple II, Commodore PET and TRS-80 all preceeded the PC starting in 1977.Motorola released their 6800 micro in 1975 with a ROM monitor in one of the system chips. After getting an evaluation chip set, I found the bigger problem was to get or build an ASCII terminal to connect to the computer I'd built with them.Well, you get good at flipping switches. It is said that one gets used to hanging if you hang long enough...

author: jfiresto
author_rank: Frequent Contributor
timestamp: June 06, 2020, 05:28:44 pm
content: The LSI-11 (PDP-11/03), introduced in 1975, also had no front panel, beyond a couple switches.EDIT: Or it might have had a third switch to control the Line Time Clock, rather than gaining it later.

author: rwgast_lowlevellogicdesin
author_rank: Frequent Contributor
timestamp: June 06, 2020, 06:09:26 pm
content: Just out of curiosity, if most of the time you just did manual entry on the front panel in order to tell the computer to load off paper tape or whatever input device you were using; wouldn't it have been easier and cheaper in labor to build indavidual diode based eproms with loading instructions for each input device and just insert that in a socket. Seems a lot faster than Dicking around with switches with every new software load, or no? Of course the computer would have had to be able to except the diode card but I'm sure modification or manufacturing in that feature wouldn't be a huge issue.

author: rstofer
author_rank: Super Contributor
timestamp: June 06, 2020, 06:35:25 pm
content: Quote from: duak on June 06, 2020, 05:18:08 pmObviously, you are correct. All of these were 'personal' computers as opposed to 'commercial' or 'hobby' computers. By 'commercial', I'm thinking about machines like the PDP-11, not Vaxen.My beginnings with the 'hobby' computer were with the Altair 8800. It certainly required a bit of toggling until EPROMs were used. Even then, we had to set the starting address to force the CPU to the beginning of the EPROM. Then we had sophistications like mapping and it became possible to just use the Reset switch and start from address 0000hThose were good days! A mere mortal could understand every aspect of the hardware and software.

author: rstofer
author_rank: Super Contributor
timestamp: June 06, 2020, 06:48:43 pm
content: Quote from: rwgast_lowlevellogicdesin on June 06, 2020, 06:09:26 pmThe IBM 1130 had a coldstart hardware arrangement whereby it would read a cold start card from the card reader, unpack the code into low RAM (from 0000h) and execute it. There were various coldstart cards and the scheme was also used to load diagnostics.I don't know how the paper tape version worked but I suspect there was a cold start tape. The machine I used (circa '70) used the card reader approach.We had a lot of lights (on the order of 160) along with toggle switches and a bouncing ball typewriter at the console. The typewriter might not be used very often because scientific jobs tended to be batch oriented with little to no operator intervention other than to confirm the paper was aligned on the plotter if the job required plotter output.It was possible to use the switches and a big rotary selector switch to enter programs and do various debugging kinds of things. I didn't play with that feature, I was a 'guest' user and I didn't want to rock the boat.This image gives a feel for the console lights but is only presented because all of the photos I can find are even less helpful:http://www.ibm1130.net/functional/Console.html#figure25Here's a survivor:http://computermuseum.informatik.uni-stuttgart.de/dev/ibm1130/ibm1130.htmlOnly gurus did reboots on minicomputers (PDP-11, again) and they weren't about to abandon their switches. Knowing the coldstart code was a right of passage. They most certainly did not have to refer to the crib sheets taped to the cabinet.

author: rstofer
author_rank: Super Contributor
timestamp: June 06, 2020, 07:03:42 pm
content: I miss the toggle switches and blinking lights. That's why I have a couple of the PiDP-11 computers running BSD2.11 and a bit of a web server. There's something comforting about knowing when your program runs off the rails by watching the lights.https://obsolescence.wixsite.com/obsolescence/pidp-11-overviewThe fun bit is using the original Unix tools with the original C compiler. OK, the editor is a PITA but if you don't know vi, you don't know much about computers. Emacs always seemed like too much effort... Real K&R C, not this modern rubbish!Note that BSD2.11 is very nearly identical to the more recent BSD4.3. This isn't some stripped down, obsolete, OS. I was never a PDP-11 user so I have a LOT to learn.

author: rstofer
author_rank: Super Contributor
timestamp: June 06, 2020, 07:22:41 pm
content: The PDP11-70 had boot code in ROM(s). All the user had to do was set a start address and load the boot device address in the console switches. Press Start and it was off to the races.Figure 3-9http://www.bitsavers.org/www.computer.museum.uq.edu.au/pdf/EK-11070-MM-002%20PDP11-70%20Maintenance%20And%20Installation%20Manual.pdfThis is similar to the cold start for the S-100 machines (like the Altair 8800) once we got more sophisticated memory boards. Examine 0xF000 (or wherever) and push Run. Magic commences now!Remember, the 2102 RAM chip (1k x 1bit) was king. A 64k machine generated a LOT of heat and the power supply on the Altair was totally inadequate.https://www.nteinc.com/specs/2100to2199/pdf/nte2102.pdf350 ns access time was described as high speed!Those were good days but things are a lot simpler today.

author: jfiresto
author_rank: Frequent Contributor
timestamp: June 06, 2020, 07:34:39 pm
content: Quote from: rstofer on June 06, 2020, 07:03:42 pmMy LSI-11/xx machines had no blinking lights, so I did the next best thing and ran an analog CPU load meter off a spare serial line. DEC thoughtfully organized their serial interfaces in a way that reduced its device driver to an increment instruction added to the operating system idle loop. Good fun.

author: David Hess
author_rank: Super Contributor
timestamp: June 06, 2020, 08:06:27 pm
content: Quote from: rstofer on June 06, 2020, 06:35:25 pmEven before personal computers, there were S-100 based CP/M systems contemporary to the Altair, Imsai, and similar systems which only had power and reset buttons. They were more direct predecessors to the IBM-PC than personal computers like the Apple ][.

author: rstofer
author_rank: Super Contributor
timestamp: June 06, 2020, 08:52:28 pm
content: Quote from: David Hess on June 06, 2020, 08:06:27 pmI have one of the CompuPro Z80 machines with a rack mount chassis. Plain black panel with a Reset and Power switch, nothing else. I think it was intended for industrial applications but I bought it for the blistering fast 6 MHz Z80. I also have dual 8" floppies in a rack mount chassis. It all worked, the last time I tried it, but it seemed strange for a system to not have switches and lights.I built up an FPGA Z80 system with a Compact Flash device for the disk drives. I used the CompuPro to send over everything I had on 8" floppies. It's been a while but I think the Z80 core was running at 50 MHz. I have forgotten how I ported Kermit to the new system.I also have a Zilog EZ80 board with a daughter card supporting a Compact Flash device and a pair of USB serial ports. It also runs at 50 MHz. CP/M is smokin' fast at 50 MHz.

author: CatalinaWOW
author_rank: Super Contributor
timestamp: June 06, 2020, 11:36:18 pm
content: Quote from: rstofer on June 06, 2020, 07:03:42 pmThere are lots of tricks/hacks to know when the computer is running right. On the IBM 1620 you could tune an AM radio to the master clock and listen to the machine run. Some wrote code to make it play simple tunes, but you could tell when things were off on normal programs after a while listening.Other machines took the blinking lights thing to an extreme. An AstroData computer (sequencer? It was programmable) I encountered in one lab literally covered a wall. And had a plexiglass front through which you could watch a sea of blinking lights as it operated a rather trivial by today's standards test sequence. Based on the time frame these lights probably weren't LED's, and it is frightening to think of the maintenance on that many incandescent indicator bulbs. Not long after that machine was replaced with a Commodore PET.While I too sometimes wax nostalgic about those good old days, I am really, really glad we don't have to program a cold start loader and so on any more. Just as I am glad that punched cards and paper tape are in the rear view mirror.

author: tggzzz
author_rank: Super Contributor
timestamp: June 06, 2020, 11:53:39 pm
content: Quote from: CatalinaWOW on June 06, 2020, 11:36:18 pmSeveral machines had simple loudspeakers.The Elliott 803, a 576µs cycle time machine, has a loudpseaker connected to the top bit of the instruction register. Somewhere I have a tape of it playing various tunes, badly.

author: David Hess
author_rank: Super Contributor
timestamp: June 07, 2020, 12:33:55 am
content: Quote from: rstofer on June 06, 2020, 08:52:28 pmThe one I was thinking of had the 8 inch disks in the same enclosure. Whoa, I found a picture of it:http://oldcomputers.net/NNC.htmlIntel's Intellect microcomputer development systems came in versions which lacked all of the toggle switches and were intended to always operate from a terminal.

author: duak
author_rank: Super Contributor
timestamp: June 07, 2020, 01:02:19 am
content: My first hands-on computer experience was also with an Altair 8800. I could never get Microsoft/MITS Basic to boot up properly after it loaded. No matter what, it always got itself stuck waiting for a character on an interface card that wasn't present. I remember single stepping through the code as the software determined what options were needed and then modified the code in memory to correspond. The problem ended up being a duff chip on the front panel that gated the front panel data switch states onto the data bus during the IN 255 instruction. I seem to recall that the chip was either slow or didn't pull down its outputs low enough and so the loader code didn't see the right option. Having a front panel that allowed single stepping operations really came in handy.The first company I worked for professionally had developed a Z80 card and various supporting RAM and ROM memory cards for internal use. They also developed the Break Point Logic card that allowed the developer to set up to four breakpoints, each of which could be a read, write or execute access of any memory address. Unlike software debuggers, the BPL card could trace through ROM code because it didn't have to modify the memory location of the opcode to insert a trap instruction.This company also started using the Intel 8086 and got an Intel development system with an ICE - In Circuit Emulator. I wasn't on that project and never got to use the ICE. I hear tell it had similar functionality to the BPL.At the same company, I worked with a DEC PDP-11/23 (firmware serial monitor & minimal front panel) and a PDP-11/20 with a front panel just full of lights n' switches. At least the latter had core memory so if I shut it off correctly, it would leave the boot loader in memory ready for the next start up.For me, the bottom line is that it's difficult to debug something unless there is some sort of diagnostic facility like a front panel or ICE.