Custom Homebrew Computers - Nakazoto/Hellorld GitHub Wiki
Hellorld! on Completely Custom Homebrew Computers
These ones are particularly special because they started from scratch. The architecture, instruction set, overall design - every aspect of the machine is a perfect reflection of the creator! And seeing "Hellorld!" run on these just warms my heart! Entries are in alphabetical order.
Quick links:
Bill's Magic-1 | James Sharman's CPU | Paula's PJ5 | Tholin's 2650 |
Bill Buzbee's Magic-1
The Magic-1 is a beautifful piece of engineering and artwork. Bill Buzbee went above and beyond and built a full-fledged minicomputer from scratch! The CPU is completely custom made using 7400-series logic chips around a completely custom architecture. But, not only is it a beautiful collection of hardware, Bill got some pretty epic software working for it as well. To quote:
"There's a ANSI C cross-compiler for Magic-1 LCC, a fully multi-user, multi-tasking port of the Minix 2 operating system, a TCP/IP stack and hundreds of programs."
There is a ton of excellent information out there on this system. Check this link for a boat load more information.
Pretty epic stuff! Here's the wild looking architecture that Magic-1 is built around (though this diagram is a little out of date, it's still very impressive).
And Magic-1 itself is absolutely stunning as well:
But, can it Hellorld? Well, if it can run Minix, it absolutely can, haha.
Code:
: | ; "Hellorld!" test program.
: | ; Repeatedly outputs string to front panel POSTCODE
: | ; display. Single-stepped or run in slow-clock mode.
: | ;
: |
: | .cseg
: |
: | POST .equ 0xFFC0 ; Address of POST_CODE display
: |
: | .global hellorld
: | hellorld:
0000 : 7a 00 | ld.16 a,0
0002 : b6 | copy dp,a ; Initialize global data pointer
: | lp1:
0003 : 74 0018 | lea b,msg(dp) ; Address of "Hellorld!" message
: | lp2:
0006 : 78 00 | ld.8 a,0
0008 : d0 ffc0 | st.8 POST(dp),a ; Clear POST display
000b : 13 0000 | ld.8 a,0(b) ; Get next char
000e : 95 f3 | cmpb.eq.8 a,0,lp1 ; Restart if we're at the end
0010 : d0 ffc0 | st.8 POST(dp),a
0013 : 77 0001 | lea b,1(b) ; Move to next char in msg
0016 : 84 ee | br lp2
: |
: | msg:
0018 : 48 | .defb 0x48 ; "H"
0019 : 65 | .defb 0x65 ; "e"
001a : 6c | .defb 0x6C ; "l"
001b : 6c | .defb 0x6C ; "l"
001c : 6f | .defb 0x6F ; "o"
001d : 72 | .defb 0x72 ; "r"
001e : 6c | .defb 0x6C ; "l"
001f : 64 | .defb 0x64 ; "d"
0020 : 21 | .defb 0x21 ; "!"
0021 : 00 | .defb 0
: | .end
Bill created a pretty awesome video about toggling Hellorld in and running straight from the front panel. It's well worth the watch!
Click me for the Youtube video!
James Sharman's CPU
In quite possibly the greatest crossover in the history of Youtube, James Sharman ported the Centurion Hellorld! program over to his absolutely stunning 8-bit pipelined homebrew CPU. If you haven't been watching James Sharman's content, go check it out, his CPU is glorious!
Code:
0000: 50 0B 06 00 27 05 02 06 E1 5F 60 48 65 6C 6C 6F 72 6C 64 21 0D 0A
James Sharman's Excellent Channel
The Sharman CPU Running Hellorld!
Paula's PJ5
The PJ5 is one of my favorite homebrews because it's just so aesthetically pleasing - I mean, just look at that gorgeous display! But, the PJ5 is also one awesome little computer. It's a proper one instruction per clock cycle RISC CPU with an 8x8 hardware multiply and 8x8 hardware divide, as well as shift/rotate and the obligatory 74181 based ALU. It features 16 registers and can run at up to 4MIPS and 4MHz. It is custom architecture and instruction set built from TTL logic chips not based on anything else out there.
Check out the full instruction set and architecture here!
Check out this homebrew running Hellorld here!
The PJ5 also has a website with more information here!
Code:
10 00 02 02 00 00 90 02 80 90 03 00 90 04 F0 90 05 00 90 06 09 90 07 00 90
08 00 90 09 00 90 0A 00 90 0B 00 90 0C 00 90 0D 00 90 0E 00 90 0F 00 90 0A
01 90 0B 01 90 0C 01 90 0D 01 90 0E 01 40 96 61 90 05 00 90 03 19 10 00 32
50 0A A1 50 0B B1 50 0C C1 50 0D D1 50 0E E1 90 05 00 90 03 21 10 00 55 42
60 E2 12 00 15 42 66 61 90 05 00 90 03 27 10 00 32 51 0A A1 51 0B B1 51 0C
C1 51 0D D1 51 0E E1 90 05 00 90 03 2F 10 00 55 42 60 E1 12 00 23 10 00 15
80 08 60 90 0F 20 32 00 8F 42 68 81 90 0F 48 32 00 8F 42 68 81 90 0F 65 32
00 8F 42 68 81 90 0F 6C 32 00 8F 42 68 81 90 0F 6C 32 00 8F 42 68 81 90 0F
6F 32 00 8F 42 68 81 90 0F 72 32 00 8F 42 68 81 90 0F 6C 32 00 8F 42 68 81
90 0F 64 32 00 8F 42 68 81 90 0F 21 32 00 8F 42 68 81 90 0F 20 32 00 8F 42
68 81 18 00 35 90 09 FF 42 69 91 42 60 91 12 00 56 18 00 35
Tholin's 2650
I love homebrew computers, but I love homebrew's that use weird, unconventional chips even more, and Tholin's computer is the perfect embodiment of that. At the heart of the machine is a Signetics 2650, an 8-bit microprocessor from 1975 that has some pretty weird design elements, especially when it comes to addressing. With comparatively so few of them actually made it's really awesome to see one of them being put to use in a homebrew! Tholin goes in to a lot more detail on this quirky chip and their entire homebrew system at the link below, but the real question is "Will it Hellorold!"? You bet!
More on Tholin's 2650 Homebrew here!
Code:
05 FF 0D 31 0C 14 F0 3F 97 FA 1B 76 48 65 6C 6C
6F 72 6C 64 21 0D 0A 00