subleq
durexforth
Our great sponsors
subleq | durexforth | |
---|---|---|
9 | 5 | |
52 | 222 | |
- | - | |
4.8 | 6.6 | |
8 days ago | 9 months ago | |
Forth | Forth | |
The Unlicense | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
subleq
-
The ancient world before computers had stacks or heaps
I wrote a Forth interpreter for a SUBLEQ machine (https://github.com/howerj/subleq), and for a bit-serial machine (https://github.com/howerj/bit-serial), both of which do not have a function call stack which is a requirement of Forth. SUBLEQ also does not allow indirect loading and stores as well and requires self-modifying code to do anything non-trivial. The approach I took for both machines was to build a virtual machine that could do those things, along with cooperative multithreading. The heap, if required, is written in Forth, along with a floating point word-set (various MCUs not having instructions for floating point numbers is still fairly common, and can be implemented as calls to software functions that implement them instead).
I would imagine that other compilers took a similar approach which wasn't mentioned.
- Show HN: Computing with just one instruction – Forth on SUBLEQ
-
SUBLEQ eForth book
I've already posted about the implementation on Forth, but you might want to see how such a system is created in detail along with the design decisions and compromises. The source code can be freely viewed at https://github.com/howerj/subleq.
- Show HN: A single instruction computer running Forth
- Forth on a SUBLEQ (A One Instruction Set Computer)
- Forth Running on a One Instruction Set Computer
- Computing with Just One Instruction
durexforth
-
A Brief Introduction to DurexForth for the Commodore 64
An actively developed version of Forth for the Commodore 64, based on the Forth 2012 core standard.
-
Including files in durexForth (C64)
Just the durexForth manual from github. It's possible I missed something searching through it, but the example programs they have in the repo do have examples of word definitions starting on the first line of the file. Additionally, simply adding a comment to my own code didn't make a difference.
-
Are there any things in math you wish you could rename?
For the interested, there is a modern open source C64 Forth called DurexForth.
-
C64 Dungeoncrawler - Mockup
I know you said you wrote this in Kick Assembler, but I really feel like I should plug 64tass a fantastic cross-assembler. I've used it for my own reverse engineering projects. You might also want to look into DurexForth not because I think you should write this in Forth instead of ASM, but because it might help you to think about how to write things like a quest interpreter.
-
RetroForth 2021.1 Is Released
If you’re into this you may also like durex forth: https://github.com/jkotlinski/durexforth
A modern C64 variant, as well as CollapseOS which is a Forth based 8-bit OS: https://collapseos.org/
What are some alternatives?
swapforth - Swapforth is a cross-platform ANS Forth
zeptoforth - A not-so-small Forth for Cortex-M
Mako - A simple virtual game console
factor - Factor programming language
lbForth - Self-hosting metacompiled Forth, bootstrapping from a few lines of C; targets Linux, Windows, ARM, RISC-V, 68000, PDP-11, asm.js.
jonesforth - Mirror of JONESFORTH
stoneknifeforth - a tiny self-hosted Forth implementation
elfort - A Forth metacompiler that directly emits an executable binary for x86-64 Linux written in Arkam
arkam - A Simple Stack VM and Forth
cc64 - cc64 is a small-C compiler written in Forth, hosted on the Commodore C64, Plus4 and C16 with 64k, and on the Commander X16. It is targeting the 6502 CPU.
VIBE99 - A vi like editor for Forth BLOCK files for TI-99