This really takes me back! 40ish years ago we used ET-3400s in a lab for a robotics class. Since we only had 50mins per lab, we had to show up with programs written and hand assembled. Lab pairs would then feverishly hand enter the hex code into the trainer. One person would recite the code and the other would tap away on the keyboard. That's where I learned handshaking in the real world. The units had the cassette interface, but we all found it to be unreliable in a short class environment, without spending a lot of time fiddling. Thanks for the look back in time!
Wow! I loved the absolutely fantastic course materials in the EE-3401 Microprocessor Individual Learning Program I used with my ET-3400A. That outstanding instruction material combined with the beautifully simple MC6800 architecture was my introduction to microprocessors.
Nice build! To achieve a lower IC count while needing fewer resistors for the display unit of the board you could have used a single shift register in combination with a multiplexing johnson counter to select the active common anode (or cathode) of the seven segment LED displays. Just saying.
Nice! I had an ET-3400 when they first came out. Regretfully, I sold it after I got my Apple II, so I recently acquired an ET-3400A in excellent condition. I'd be all over a board that could also be installed as replacement board for the ET-3400.
Nice feature would be a crowbar for protection of the 5v bus - atleast a 5.6v zener would be very useful. The option to add the ebay switching downconverter would have been good.
The 6800 Single Board Computer is a nice update to an old Heathkit ETA-3400. I have repaired ETA-3400 as computer technician at Zenith. It would be nice to save program to an SSD than cassette. Great Video!
@@stevenretroworkshop2113 thanks Steve. It was worth a shot. My ET-3400A / ETA-3400 worked fine last year but now the ET-3400A works ok by itself but not when coupled to the ETA-3400. I miss playing with tinybasic. I changed out any non programmed ICs but that didn’t work. Instead of CPU UP, I just get scrambled nonsense. Next step is to do all the tests in the assembly manual. Wish me luck.
@@briandenley Hi Brian, I’ve managed to repair mine and another unit. I used the troubleshooting steps from the kit assembly instructions. I built the kit 40 years ago as a kid. Closely examine the PC board. Flux residue from that time can damage traces and be slightly conductive. A good cleaning with 99% isopropyl alcohol solved my problem. With the unit open and all the chips removed you could check traces, resistors, and capacitors. Capacitors can age, and the voltage levels can be just off enough to cause trouble.
That was exactly my initial thought also. If using serial then it isn’t necessary, but if wanting to use this as a standalone old-school dev system, then some more finger friendly Cheery key-switches is exactly what this board needs!
Was wondering: Is onscreen character output included in a 6502 or does that have to be programmed in as a running loop somehow? If so, how does that loop run in parallel with the memory mapped keyboard input loop and how to run assembler or BASIC in that situation on a vanilla chip with no PROM or ROM and only RAM? Does a 16 char keyboard (that is directly memory mapped) for machine code input get used first (with a memory mapped 7 segment display) to type an Assembler program or BASIC interpreter program or onscreen char keyboard input display loop (VGA or another type of non-seven-segment display) into RAM through the CPU and then that gets written to a type of PROM? (and then that Assembler or BASIC interpreter or char keyboard input display loop runs as a loop automatically on the next power cycle or is automatically run when accessing a memory address?) Thanks in advance for any good explanations, if possible,
Inspiring as ever Jeff thank you. My third attempt at a comment! For floating point have you looked at Robert Uiterwyk's BCD-arithmetic basics, 4k and 8k? I like the idea of a clpd to simplify address decoding, whats your process please Jeff? (wincupl seems complex!)
I had not heard of Robert Uiterwyk's Basic, but I found a link and will check it out. For the CPLD I used WinCPL. I started with a file from another design that was similar and adapted it.
By the way, there is some sort of loop running that detects when the memory mapped keys are pressed and then loads those into a register connected to a 7 segment display? Any videos about that or an explanation? Thanks in advance!
I have ordered boards and hope to begin building one soon! Have you thought about building a 6809 adapter? Seems like it would be a bit easier with this board because you could swap out the ROM instead of putting it on the adapter like I believe Heathkit was forced to do (because of limited address space decoding on the ET-3400?).
I hadn't thought of that because I also have a 6809 SBC design, but it would be a good enhancement to support a 6509 like the ET-3400 did, may with some jumpers to select 6800 or 6809.
@@jefftranter Jeff's ET-3400... The JET-3400. :-) On the FLEX mailing list, someone has found a copy of The MC6809 Cookbook that includes the code for the elusive VTL-09. I've tinkered with VTL on the 6502 and would like to see if I can get it working on the 6809, but the only 6809 machine I have right now is a Color Computer.
It does not use multiplexing. I used the same circuit as the Heathkit ET-3400 ant ET-6800. An advantage of using latches is that software does not have to continuously refresh the display.
Alright...been processing this: So when programming a program into that computer the CPU's state machine basically sits idle until input from the keyboard...then when one of the 16 buttons is pressed, that val is saved in a CPU register and the state machine automatically steps through to the next "waiting for input" idle state? Then that cycle repeats until the word length is filled and "enter" is pressed and that stores that val in RAM and resets the CPU registers to blank and then that whole cycle repeats until the program is fully loaded into RAM and the computer then reads the RAM address where that program starts?
I don't have any assembled boards but I could sell you a bare PCB for a nominal cost plus shipping (from Canada). Email me at tranter@pobox.com if interested.
Decades ago I did a bicycle speedometer/odometer using an 8748, I still have the source if you'd like to message me. I used a Wireless World SC84 eprom prgrammer with 8748/9 adapter which I still have, and iirc the X8048 cross assembler. It worked very well but the battery didnt last long! Happy to share if you're interested. Cheers Phil_G
This really takes me back! 40ish years ago we used ET-3400s in a lab for a robotics class. Since we only had 50mins per lab, we had to show up with programs written and hand assembled. Lab pairs would then feverishly hand enter the hex code into the trainer. One person would recite the code and the other would tap away on the keyboard. That's where I learned handshaking in the real world. The units had the cassette interface, but we all found it to be unreliable in a short class environment, without spending a lot of time fiddling. Thanks for the look back in time!
Thank you for the excellent explanation. I ran ALTAIR 680 BASIC on my homemade computer 40 years ago and I remember how it looked.
Brilliant! This is something I definitely would like to try. Lots of fond memories!
Wow! I loved the absolutely fantastic course materials in the EE-3401 Microprocessor Individual Learning Program I used with my ET-3400A. That outstanding instruction material combined with the beautifully simple MC6800 architecture was my introduction to microprocessors.
Nice build! To achieve a lower IC count while needing fewer resistors for the display unit of the board you could have used a single shift register in combination with a multiplexing johnson counter to select the active common anode (or cathode) of the seven segment LED displays. Just saying.
Hi jeff. I use the lattice gal And at work perfectly.
Very cool! Liked and subscribed!
That's a nice neat job - I may just have to order some boards and make some up.
Saw now! Wow! Thanks! I can hopefully get one of those made soon!
Nice! I had an ET-3400 when they first came out. Regretfully, I sold it after I got my Apple II, so I recently acquired an ET-3400A in excellent condition.
I'd be all over a board that could also be installed as replacement board for the ET-3400.
Nice feature would be a crowbar for protection of the 5v bus - atleast a 5.6v zener would be very useful. The option to add the ebay switching downconverter would have been good.
Would also be interesting and recommendable to make a "Apple 1 from scratch to BASIC" video or series.
The 6800 Single Board Computer is a nice update to an old Heathkit ETA-3400. I have repaired ETA-3400 as computer technician at Zenith. It would be nice to save program to an SSD than cassette. Great Video!
Steven: I have been trying to repair my ETA-3400! Do you know anyone who repairs these old gems?
@@briandenley Sorry, I do not know anyone to Heathkit ETA-3400. The last time, I work on ETA-3400 was 1990.
@@stevenretroworkshop2113 thanks Steve. It was worth a shot. My ET-3400A / ETA-3400 worked fine last year but now the ET-3400A works ok by itself but not when coupled to the ETA-3400. I miss playing with tinybasic. I changed out any non programmed ICs but that didn’t work. Instead of CPU UP, I just get scrambled nonsense. Next step is to do all the tests in the assembly manual. Wish me luck.
@@briandenley Hi Brian, I’ve managed to repair mine and another unit. I used the troubleshooting steps from the kit assembly instructions. I built the kit 40 years ago as a kid. Closely examine the PC board. Flux residue from that time can damage traces and be slightly conductive. A good cleaning with 99% isopropyl alcohol solved my problem. With the unit open and all the chips removed you could check traces, resistors, and capacitors. Capacitors can age, and the voltage levels can be just off enough to cause trouble.
@@tgopaul thanks for the advice. My ETA-3400 has been working all along until I put it away last year. When I brought it out this year, it didn’t.
Damn. U should market that. I'd buy that.
very awesome man!
🙂
If I have time I’d love to add cherry switches for the keypad
That was exactly my initial thought also. If using serial then it isn’t necessary, but if wanting to use this as a standalone old-school dev system, then some more finger friendly Cheery key-switches is exactly what this board needs!
Was wondering: Is onscreen character output included in a 6502 or does that have to be programmed in as a running loop somehow? If so, how does that loop run in parallel with the memory mapped keyboard input loop and how to run assembler or BASIC in that situation on a vanilla chip with no PROM or ROM and only RAM?
Does a 16 char keyboard (that is directly memory mapped) for machine code input get used first (with a memory mapped 7 segment display) to type an Assembler program or BASIC interpreter program or onscreen char keyboard input display loop (VGA or another type of non-seven-segment display) into RAM through the CPU and then that gets written to a type of PROM? (and then that Assembler or BASIC interpreter or char keyboard input display loop runs as a loop automatically on the next power cycle or is automatically run when accessing a memory address?)
Thanks in advance for any good explanations, if possible,
Inspiring as ever Jeff thank you. My third attempt at a comment! For floating point have you looked at Robert Uiterwyk's BCD-arithmetic basics, 4k and 8k?
I like the idea of a clpd to simplify address decoding, whats your process please Jeff? (wincupl seems complex!)
I had not heard of Robert Uiterwyk's Basic, but I found a link and will check it out. For the CPLD I used WinCPL. I started with a file from another design that was similar and adapted it.
By the way, there is some sort of loop running that detects when the memory mapped keys are pressed and then loads those into a register connected to a 7 segment display? Any videos about that or an explanation? Thanks in advance!
I have ordered boards and hope to begin building one soon! Have you thought about building a 6809 adapter? Seems like it would be a bit easier with this board because you could swap out the ROM instead of putting it on the adapter like I believe Heathkit was forced to do (because of limited address space decoding on the ET-3400?).
I hadn't thought of that because I also have a 6809 SBC design, but it would be a good enhancement to support a 6509 like the ET-3400 did, may with some jumpers to select 6800 or 6809.
@@jefftranter Jeff's ET-3400... The JET-3400. :-) On the FLEX mailing list, someone has found a copy of The MC6809 Cookbook that includes the code for the elusive VTL-09. I've tinkered with VTL on the 6502 and would like to see if I can get it working on the 6809, but the only 6809 machine I have right now is a Color Computer.
Hi Jeff. Can you use a Lattice 16v8b25 on this? Thaanks
Yes, that should work.
Wow, nice! Is there a reason for the latches and resistors for each 7 segment display? Does it not use multiplexing?
It does not use multiplexing. I used the same circuit as the Heathkit ET-3400 ant ET-6800. An advantage of using latches is that software does not have to continuously refresh the display.
@@jefftranter Aaaah ok, I just googled the ET-3400 and didn't realize they were hiding the latches and resistors under the plastic cover, sneaky!!! :)
Alright...been processing this: So when programming a program into that computer the CPU's state machine basically sits idle until input from the keyboard...then when one of the 16 buttons is pressed, that val is saved in a CPU register and the state machine automatically steps through to the next "waiting for input" idle state? Then that cycle repeats until the word length is filled and "enter" is pressed and that stores that val in RAM and resets the CPU registers to blank and then that whole cycle repeats until the program is fully loaded into RAM and the computer then reads the RAM address where that program starts?
That is essentially correct. The Heathkit manuals explain in detail how the monitor program works.
Hi Jeff can I buy a board? I love this !
I was on your github. I don't have a way to program CLD I need a programmer for that.
I don't have any assembled boards but I could sell you a bare PCB for a nominal cost plus shipping (from Canada). Email me at tranter@pobox.com if interested.
Is there a link for the PCB gerber files please?
github.com/jefftranter/6800/tree/master/sbc/kicad
I wonder if there is anything like this the 8048/8748? I have an 8748 lying around.
It's not so similar. The 8748 is a microcontroller wher as the 6800 is a straight up CPU.
@@GORF_EMPIRE I know.
@@douro20 Oh I thought you were asking similarities. Get hold of a Magnavox Odyssey 2. It's a 8048 unit.
Decades ago I did a bicycle speedometer/odometer using an 8748, I still have the source if you'd like to message me.
I used a Wireless World SC84 eprom prgrammer with 8748/9 adapter which I still have, and iirc the X8048 cross assembler.
It worked very well but the battery didnt last long! Happy to share if you're interested.
Cheers
Phil_G