My4TH - A discrete CPU Forth computer

Sdílet
Vložit
  • čas přidán 22. 08. 2024
  • This video is about my My4TH computer, which runs the old Forth programming language, and the Forth Deck, a portable computer with keyboard and display based on the My4TH computer board.

Komentáře • 66

  • @alschnittke
    @alschnittke Před 3 měsíci +5

    This design is by far the most satisfying "I built a computer from logic" implementation I've seen... bravo

  • @esra_erimez
    @esra_erimez Před 11 měsíci +27

    This is the stuff legends are made of. This is amazing.

  • @PaulSpades
    @PaulSpades Před 11 měsíci +12

    What a completely mad idea, and spectacularly well implemented. I'm just blown away.

  • @andrefalcao3015
    @andrefalcao3015 Před 5 měsíci +5

    Probably the coolest thing I've seen on youtube ever! Congratulations!

  • @frankvanderwal4571
    @frankvanderwal4571 Před 8 měsíci +7

    Hi Dennis! This is amazing! My oh my, building a Forth computer without a CPU! Well done! Forth has been one of my first computer experiences back in the day and I recall the Forth Ace computer that I once build a replica from and really liked the language. I lost the system over time and regret it every single day. Trying to find one but without luck (or way too expensive). I might have a look at this system but firstly a big THANK YOU for sharing your project! Cheers, __Frank

  • @jaythecoderx4623
    @jaythecoderx4623 Před 11 měsíci +6

    This is insane
    Edit: I just finished the video, that single Nor gate alu is psychopathic and also genius

  • @Swanlord60
    @Swanlord60 Před 2 měsíci

    Excelent! All things are clean without exception!
    Let's Forth goes his way ))
    Thank You!

  • @leyasep5919
    @leyasep5919 Před 10 měsíci +4

    Amazing !!! I hear Chuck Moore chuckling watching this !

  • @j-r-hill
    @j-r-hill Před 11 měsíci +3

    Wow it's incredible. I'm pleasantly surprised to see Forth on even such a minimal computer. Even screen editing!

  • @AK-vx4dy
    @AK-vx4dy Před 11 měsíci +7

    Serial CPU... like in F-14 Tomcat
    Ah... lookup tables...smart ;)
    Very well explained, good job.
    Lovely, you enchanted philosophy of Forth in hardware design.
    Niiice 😁 to me also Forth came back from memories...

    • @rakinkazi9780
      @rakinkazi9780 Před 11 měsíci

      Just curious, do modern fighter jets use FPGA's to any capacity? To my limited knowledge, they are excellent for high throughput applications so they could be used for sensors, etc.

    • @AK-vx4dy
      @AK-vx4dy Před 11 měsíci +2

      @@rakinkazi9780 i'm not an expert but is very possible. In F14 this was avioncs computer, some tell that first microprocesor before 4004.
      Most fighters are made max in thousands, lastly even in hundreds or less so are good candidates for FPGA use.

    • @graealex
      @graealex Před 11 měsíci

      @@rakinkazi9780 I mean, you could Google it. "The communication, navigation, and identification friend or foe (IFF) avionics of the F-35 relies on Xilinx FPGAs, as do other critical electronic subsystems aboard the advanced jet-fighter-bomber. FPGAs enable Lockheed Martin to add new waveforms to embedded software radio systems in the F-35, as well as for real-time digital signal processing."

    • @wafikiri_
      @wafikiri_ Před 6 měsíci +1

      ​@@rakinkazi9780 FPGA's are a good option to prototype, but their processing speed is relatively low. Given the amazing power of current microcontrollers and microprocessors, I would use them if I were to design microcomputers/-controllers for avionics, but I would probably include FPGA's in the design (which should include a variety of computers and software of different types and brands, whose results on same input data should all match) for various reasons, one of them being circuit uniqueness and secrecy, something military aircraft would benefit from.

  • @graealex
    @graealex Před 11 měsíci +7

    A million years ago I tried my luck at a Forth implementation for AVR. Couldn't wrap my head around it - in the same manner that OCaml is so alien to me, that I never was able to form an even basic grasp of it. Despite me being a C++ fanboi.
    Btw. it's not very expensive to put in real key switches nowadays, what with all the DIY mechanical keyboard craze.

  • @philipoakley5498
    @philipoakley5498 Před 6 měsíci +1

    go Forth! great memories of using it in 76-79 and onward.

  • @camel99forth78
    @camel99forth78 Před měsícem

    Congratulations. This is a great project.

  • @juergenpintaske6709
    @juergenpintaske6709 Před 11 měsíci +8

    Thank you very much, Dennis. Brilliant work.
    It is great to see, that somebody really takes it to the limit.
    And it was nice to see
    that you used Forth as an example to show what to use your "CPU" for.
    And it still is fast enough.
    I wonder, if there will be a design soon that runs in an FPGA.
    Or simulated in an Arduino, as many do have a board unused in a corner somewhere ...

  • @wafikiri_
    @wafikiri_ Před 6 měsíci +2

    I am so impressed with this my first visit to this channel that I immediately subscribed. There are a lot of things that surprised me:
    • The microcode width, only 16 bits. Of course, it means it needs some decoding, but very little!
    • The use of Forth, which I applaud.
    • The lookup-table-supported software ALU.
    • The reduced number of units.
    • The ingenuity of the design.
    Many thanks for sharing!

  • @OMNI_INFINITY
    @OMNI_INFINITY Před 2 měsíci +2

    Found this looking for a way to program a discrete CPU in machine code to make a synthesizer. Getting closer seemingly. Thanks!

  • @MegaGumbo
    @MegaGumbo Před 11 měsíci +1

    The My4TH and Forth Deck eventually made me learn FORTH and actually do something with it. Great computer !!

  • @mahoneytechnologies657
    @mahoneytechnologies657 Před 8 měsíci +1

    Outstanding! This should be used in Every school! I have always liked Forth, if only this had existed in the 1980s.
    But I will get one now. Have you sent one to Chuck Moore, I bet he would love it,

  • @douro20
    @douro20 Před 11 měsíci +1

    The IBM 1620 also used LUTs to perform arithmetic. For this reason it was given the nickname CADET (Can't Add, Doesn't Even Try).

  • @s4ndwichMakeR
    @s4ndwichMakeR Před 11 měsíci +4

    Finally something new from Dennis! And with a dedicated FORTH machine that is also portable and looks nice, you exceeded my expectations yet again. :)

  • @jakester1390
    @jakester1390 Před 11 měsíci +2

    This is very beautiful and you should be proud of yourself.

  • @prozacgodretro
    @prozacgodretro Před 7 měsíci +2

    hmm I really like this, I think the only thing I might have done differently would be to just double the width of the eeprom, to reduce the need on the register - only one of these would be connected to the actual data bus to do transfers - and if I'm not mistaken this could double the speed?
    Would this form of the machine be compatible with the original software as well? (well minus changing address lookups as they are now all halfed I guess)

  • @sohl947
    @sohl947 Před 10 měsíci +1

    Very impressive! I’m a big fan of Forth and like to see it used in situations like this. I’d love to see more videos about the project, any part of it, all parts of it. Hope to see more about it soon!

  • @AppliedCryogenics
    @AppliedCryogenics Před 10 měsíci +1

    It's really surprising how much functionality there is for so few logic IC's! I'm very curious about low-level language implementation.. going to check your site now. Geek on!

  • @mrstanlez
    @mrstanlez Před 11 měsíci +3

    ... very nice project. In future can you replace for 2 3 colors E-ink large display. Then with battery operated can withstand approx 15 days. Thank you.

  • @gadgetdad2789
    @gadgetdad2789 Před 7 měsíci +1

    Wow this is so cool. Back in school there was an elective for CS majors to build a 4-bit cpu centered around the 74181 and we had to implement the microcode but only needed to demonstrate basic functionality by manually stepping through some op code. Wish I could have done the full thing by implementing a real clock but the parts were pretty expensive at the time so most students teamed up in pairs and the other guy was going to keep it when we were done. I like how you were able to use a single NOR and use the microcode loops. Very slick.
    I have also played with Forth first on a PDP-11 as well as on my old Atari 800 and I really loved the idea of threaded interpreted languages and how you can extend the language so easily. That was easy enough when you can write your image to disk but I'm wondering if you can still do something similar by updating the EEPROM on the fly? I'll have to look at your links to see how you implemented forth.

  • @jose.inestroza
    @jose.inestroza Před 11 měsíci +1

    Wintergatan music!! Nice video.

  • @deterdamel7380
    @deterdamel7380 Před 11 měsíci +1

    Very impressed!

  • @first-thoughtgiver-of-will2456

    its like De Morgans law taken to the extreme. awesome project!

  • @denchinside
    @denchinside Před 11 měsíci +1

    This channel probably deserves more subs

  • @alvarogomessobralbarcellos7587

    awsome legendary

  • @waynemorellini2110
    @waynemorellini2110 Před 8 měsíci +1

    Thanks for inspiring me a little further. I had considered such an approach previously. I'm not going to say what I was going to do. But, I encourage people in turn.
    I was just wondering, if there is a simple high speed way to do the 1 bit logic operation with a loop back?
    When I originally skimmed your webpage, I saw 6.3khz for the addition operation. Being rather sick, I decided to stop reading regrettably. Good work. But 8-14mhz is workable, as long as you leave the logic operations fly asynchronously to complete as soon as possible, and be picked up on the next clock after completion, which makes multiplication more feasible. The performance should hopefully be superior to old basic 8 bit processors. It would be good if it had performwnce enough to emulate a Jupiter Ace Forth Micro though, as a historically tribute (a machine that could have done something with 2 colour charcters, 4 colour pallet charcter mode, and 16 colour programmable character mode (maybe with 16 colour pallet from 256 colours), with scan line switching, and better sound. Which would have greatly improved it's sustainability against the Sinclair Spectrum. History was always so close for Forth).
    I had thought of doing an open source forth processor design for the embedded community before I got a lot sicker. Based on energy economy of descent performance and simple interface flexibility, to compete with 4 bit to 16 bit low ene controllers. I am now wondering if a very simple design like yours, in silicon, with a flying looped 1 bit logic controller, might be a cheaper alternative to 4 bit processors used in manufacturing in China. Except for the logic /maths operations, a misc design can be made very simple. The 1 bit logic keeps it that way, and a lot of applications the performance and even low energy, does not matter.

  • @user-mr3mf8lo7y
    @user-mr3mf8lo7y Před 11 měsíci

    Really good design.

  • @waynemorellini2110
    @waynemorellini2110 Před 8 měsíci

    A suggestion Dennis. Coloured Electronic paper, or liquid drsplays? The liquid versions can get much better pixel changing and colour performance to other electronic paper types, and even be made at home. Samsung etc, invested heavily in them, but then increased oled efficiency. Whatever is brighter whiter faster and more colourful, cheaply. A pOLED also would be a great option?
    Unfortunately, I don't know anybody who makes cheap good oiquid versions, byt that 8K VR headset around 5 years ago, used them instesd of OLED.

  • @igort5418
    @igort5418 Před 11 měsíci +3

    Sorry for a noob question but. How do you handle buttons signal bounces, are you using delays or or some filtering ?

  • @TheOfAndTo
    @TheOfAndTo Před 11 měsíci

    AMAZING!

  • @hermestrismegistus9142
    @hermestrismegistus9142 Před 11 měsíci

    Great work!

  • @alexengineering3754
    @alexengineering3754 Před 11 měsíci +2

    do you realy need the nor gate? why you do not only use look up tables? thank you for the explanation, i was staring for hours at the mynor schematics and could not figure out how you shift data bits around to make good use of your memory.

    • @mynor509
      @mynor509  Před 11 měsíci

      No, you could also use a nand/or/and gate. But you need a path to combine at least one bit from two different bytes/sources. But you could also omit the gate altogether. There is another path in the circuitry that can be used to combine two bits: the conditional jump logic. Any logical operation can be performed with a series of conditional jumps. But that would make the CPU really damn uselessly slow. 🤔

  • @sergatmel8242
    @sergatmel8242 Před 11 měsíci

    Cool !

  • @martinausdeutschland
    @martinausdeutschland Před 5 měsíci

    Hi Dennis. What display are you using? I just know about 20x4, but this one is much bigger. For what would I have to search, if I'd like to experiment with it?

    • @mynor509
      @mynor509  Před 5 měsíci

      If you are looking for cheap large LCDs like the one I used, just visit aliexpress.com and type "lcd 40x4" in the search box. I bought mine there. 😉

  • @autoauto2000
    @autoauto2000 Před 7 měsíci +1

    sehr schönes video. kann man das nachbauen…ich liebe forth. ich habe überall forth installiert wo nur ging (psion, hp, ti, etc)

    • @mynor509
      @mynor509  Před 7 měsíci

      You can find everything you need to build the Forth Deck and the My4TH board on my website: www.mynor.org/myth . You can also buy a kit: www.budgetronics.eu/en/search?query=my4th

    • @autoauto2000
      @autoauto2000 Před 6 měsíci

      danke❤aber wo finde ich das Gehäuse?

  • @PixelOutlaw
    @PixelOutlaw Před 7 měsíci

    How many prototypes did you make? Was this your ... forth? :D

  • @artip777
    @artip777 Před 11 měsíci

    Без проца и контроллеров? Сумрачный немецкий гений... 🤭

  • @user-rs6bs3bc8n
    @user-rs6bs3bc8n Před 4 měsíci

    QRP Computer

  • @meneerjansen00
    @meneerjansen00 Před 11 měsíci

    If I'm not mistaken the you must buy the My4TH board/computer and the Forth Deck (display and keyboard) separately. But where do I buy that wonderful white plastic case?

    • @mynor509
      @mynor509  Před 11 měsíci +3

      You can download the STL file for the case from my homepage. The white case is printed with the SLS process, the material is PA 12. It cost me over €100 to hire a company to print it. So this part is not something you would print by the dozen to put on a shelf and hope someone buys it. 😉

    • @meneerjansen00
      @meneerjansen00 Před 11 měsíci

      @@mynor509 Thanks for the info! Maybe there are companies that 3D print, just like paper-print shops... Your computer is really, really cool!

    • @j-r-hill
      @j-r-hill Před 11 měsíci

      If this ever went into production I think it'd probably have to use injection molding to get the price down

    • @waynemorellini2110
      @waynemorellini2110 Před 8 měsíci

      ​@@mynor509Do PCBway, or other, Particularly Seed, offer case making as well, and whole turn key gadget making?

  • @scramjet4610
    @scramjet4610 Před 5 měsíci

    What's the point of items 2 and 3 in your philosophy? Why do you care how many transistors?

    • @mynor509
      @mynor509  Před 5 měsíci +2

      My philosophy of life is "keep it simple". The simpler a system, the easier it is to understand. The less components are used, the less can break. It also keeps the way open for me to build the My4TH as a pure "dis-integrated" transistor computer one day ;-)

    • @unLinuxeroMas
      @unLinuxeroMas Před měsícem

      @@mynor509 what dis-integrated transistor computer means

    • @mynor509
      @mynor509  Před měsícem

      @@unLinuxeroMas "IC" stands for integrated circuits (transistors and ICs that are integrated into a package). By "dis-integrated" I mean that I pulled all the transistors and resistors out of the package. In fact, I rebuilt every IC I used for MyNOR with simple transistors and resistors.

    • @unLinuxeroMas
      @unLinuxeroMas Před měsícem

      @@mynor509 amazing

  • @Scyth3934
    @Scyth3934 Před 11 měsíci

    yoooo

  • @OMNI_INFINITY
    @OMNI_INFINITY Před 2 měsíci

    7 segment display machine code assembly seems "closer. to the metal"

  • @OMNI_INFINITY
    @OMNI_INFINITY Před 2 měsíci

    If it's capable of running an oscillator, adding a speaker would be nice.