New post on the motivation behind my vale8x64 #homebrewcomputer project, and an overview of its technical details: http://www.mahnke.tech/blog/2019-04-09-introducing-the-vale8x64-computer.html
@daremo That's a very neat project. Have you considered writing or porting a Forth implementation instead of a hosted assembler? Forths usually include an assembler as well, but the assembler can be implemented in Forth. I guess you could also do the same thing with a BASIC, though I don't think I've ever seen an interpreted BASIC with the ability to do inline assembly.
@freakazoid I only really know Forth by name, although I started looking into it a bit recently.
I like the organization around the stack and postfix notation; I currently conceptualize forth as the smallest step higher than assembly.
Is it correct that implementing Forth should be a simple job relative to most other high-level languages?
@daremo Probably about on par with a BASIC, and there are some pretty good small and well-commented implementations to base one on. The hardest part is probably wrapping your brain around the language, since it has its own vocabulary for things that differs from most other programming languages.
One nice thing about a Forth is that you can completely punt on any kind of memory management if you use its block paradigm.
@daremo @freakazoid I would say that it's a relatively simple job if you don't care about complying with any kind of standards. My DX-Forth (for my Kestrel-2DX and eventually Kestrel-3) does not conform to any established standards, for example.
However, if you want to comply with any kind of standard, difficulty shoots up rapidly, in my experience. Remember that most of Forth involves learning its vocabulary, which is essentially no different from a standard library. :)
@vertigo @daremo Wow! I had no idda. "The assembler was fully integrated into the BASIC interpreter and shared variables with it, which could be included between the [ and ] characters, saved via *SAVE and *LOAD, and called via the CALL or USR commands. This allowed developers to write not just assembly language code, but also BASIC code to emit assembly language, making it possible to use code-generation techniques and even write simple compilers in BASIC.'
For applications, I like the year.whatever convention Jetbrains uses, and I've started experimenting with that. 2019.minor.patch, where the year is bumped for the first release of the year, minor is bumped and patch is reset for every release with a new feature, and minor is held while patch is bumped for bug fix.
My homebrew #Kestrel3 processor has a CSR register called MIMPID, and it's formatted to hold YYYYMMDDPP in the upper-most bits (the lower 24 bits are 0). YYYYMMDD is the year/month/date that I started work on the new design. PP is the bug-fix patch number.
@daremo I missed the whole conversation here, but I just wanted to stop by and say your progress is impressive. Also, I didn't know that GW-Basic was referred to as GeeWhiz Basic. I only used it a little bit. I mostly jumped to using Power C once I moved from my C64 to a PC.
@cstanhope I appreciate it. I'm actually trying to slow it down just a bit, to find that pace that's long-term sustainable. It's a great project.
Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.