6 ms·
Mark 1 Forth Computer (2006)
- peter_d_sherman 6y ago>"This computer has no microprocessor. The CPU is discrete TTL logic."
- detaro 6y agothe "no CPU" in your title is kinda wrong that way: it does have a CPU, it's just not a single integrated circuit or microprocessor. Maybe "TTL only" or "TTL chips only", without the "no CPU" part is more accurate, if "no microprocessor" doesn't fit?
- peter_d_sherman 6y agoI have changed the ending of the title to (TTL only, no microprocessor)...
- Jkvngt 6y agoForth is an amazing language, too bad we're so far from the hardware most of the time these days.
- the_only_law 6y agoI have a an old network protocol analyzer from an HP-Aglient subsidiary that's supposedly scriptable in Forth. Actually out of all my old protocol analyzers this one is probably the coolest from a technical perspective. It has six 68k's in it, and is heavy as hell. Unfortunately I never get to use it unlike all my other one's because it only has ISDN BRI interfaces, and most of my hacking involves PRI (T1/E1) or V series interfaces.
- reaperducer 6y agoI've seen a couple of old scientific calculators/pocket computers on auction sites lately that can be programmed in Forth. Very tempting to try. I've also seen ones that can be programmed in C, BASIC, and even Pascal. Again, magnets for my disposable income.
- trasz 6y agoAre you sure it’s literally Forth? If so, can you share some keywords? The closest thing I know of is HP 48 - not Forth, but quite Forth-like, and it definitely tought me a thing or two.
- opencl 6y agoSome of the old HPs (41, 71B, 75C) had Forth interpreter ROMs available as add-on modules.
- jfk13 6y agoVery cool! Might be worth adding a note of the date of the page. (Original copyright is 2003; updated 2006.)
- ChuckMcM 6y agoIn my opinion I think everyone who considers themselves a "software engineer" should be required to build a computer out of discrete logic. Of course these days doing that with an FPGA would count too, assuming you don't use too many pre-canned IP blocks[1]. My reasoning here is that understanding a computer at this level really helps understand programming, and perhaps more importantly the translation between what you want a program to do and how the computer would actually do it. That said, some nits on the author's description, what he calls "micro code" are simply instructions. When you look at computer architecture texts you will see that architectures that implement instructions with logic are "non-microcoded" and architectures that implement instructions of one width as a sequence of instructions of a different width, are "microcoded". The trade-off is that that former executes operation codes faster, the latter can be more efficiently implemented. A great real world example to study here are the PDP-8 (straight opcodes) and the PDP-11 (microcoded). The most amazing thing to me is that today you can buy something like the ULX3S[2] and with a fully open source tool chain for the FPGA build a processor (RISCV) that boots Linux multi-user. [1] Using a pre-made ALU is fine, starting from a previous CPU, less good :-). [2] https://www.crowdsupply.com/radiona/ulx3s https://www.crowdsupply.com/radiona/ulx3s
- dfox 6y agoI second the suggestion that every software engineer should at least be able to imagine how they would go about building computer from discrete logic. When commercial computers were built from discrete logic in this manner, there was distinction between "horizontal" and "vertical" microcode. With horizontal being what most people would today call microcode, ie. implementing most of the control logic as one somewhat wide memory array with datapath being mostly directly controlled by bits coming form such memory. The vertical approach essentially involved designing simplistic RISC-like CPU with fixed width instructions which then ran interpreter for the actual instruction stream of the machine (ie. what the author's CPU does). And obviously there are various middle-ground approaches. The reason for this is that control-stores for purely horizontal microcode are not that dense and involve memory with weird and large word lengths (which is somewhat inconvenient for implementation from commercially available (P)ROM chips)
- Philip-J-Fry 6y ago
- loudouncodes 6y agoWow! A webring! Haven’t seen one of those in a zillion years.
- jacquesm 6y agoA HN member is trying to revive them.
- tyingq 6y agoThe homebrew cpu "web ring" page referenced at the bottom of the article is a nice catalog of other (mostly) TTL only CPUs: https://www.homebrewcpuring.org/ringhome.html https://www.homebrewcpuring.org/ringhome.html Note: The site's a little underpowered, so posting a link here may slow it down :)
- mulmen 6y agoThis is really cool. I love the physical construction as well. Is there more detail about building the actual machine?
- alisausaaaa 6y agoWanna have hot-lovin' conversations? You’re on the right way! - https://adultlove.life https://adultlove.life
- deepspace 6y agoSo, the author implies in the article that he is not very experienced with logic design, and it certainly shows, but i.m.o. most egregious error is the use of EPROM. I was involved in embedded design in the late 80s/early 90s and as soon as Flash memory became available, we switched all our product lines over within a year, even though the cost was still 10x higher. UV erasable EPROM was THAT much of a pain to deal with. It blows my mind that the author was still using EPROM after 2000.
- throwawaybutwhy 6y ago(2003) or (2006). First recorded on Wayback back in 2014: https://web.archive.org/web/20140124074811/http://www.aholme.co.uk/Mk1/Architecture.htm https://web.archive.org/web/20140124074811/http://www.aholme... HN's fascination with Lisp and Forth is perfectly understandable. Combined with DIY hardware, this sounds like a sweet spot for intellectual... cough... stimulation.