I'd imagine that after Marcel, I'm the person who's written the most native code (I'm the author of the project you linked). I'd say that a lot of the challenge of working with the native instruction set isn't the programming itself - that's just time (and space) consuming. It's coming up with the systems, encodings and protocols that make things work. For example, how can you encode the pointers you need in a Forth thread in the ROM? How can you structure routines so that they never overrun your time slice? But actually these challenges are the fun part - and while doing a great job would be hard, finding something bad that works is not. And while you do need to invent quite a bit, a lot more can be copied from the tried and tested approaches in Marcel's code. Once you put yourself in the native world, and appreciate the problems he's faced, his code is very clear and well commented! I have no earthly idea how he achieved it though! I wish I'd asked him about it.alastair wrote: ↑01 Dec 2020, 20:06 This got me thinking. Who else has written (native) code for the Gigatron? Obviously Marcel and there is one other project I'm aware of - https://hackaday.io/project/168293-gigatron-forth
Working directly with the op-codes is a significant undertaking and it looks like the Gigatron Forth project might have stalled because of this. I'm assuming that adding or changing op-codes would be of limited use. Does anyone have plans to work directly with these op-codes?
What's caused the project to stall is actually not getting bored of writing native code - in fact I'm trying to go back to writing native code to re-kindle the enjoyment - it's getting bogged down in decisions about how to implement things, and vacillating over what the next thing to do is, and what is worth doing - particularly when it comes to how to deal with memory. I have about 5 different git branches, all with started approaches to different things, all given up because I was making things too complicated, or they felt like they were dependent on solving other problems, or they were just getting too messy too fast, with no end in sight. Good programmers are good at breaking things down into chunks that are manageable for them - and that's what I've failed to do.
I would definitely recommend trying to write native code for the Gigatron to anyone. As I've said before, I've learned an awful lot, not least about what is easy and what is hard! I'd be happy to give tips on how to get started (and one thing I've started but not finished is cleaning up some of my supporting tooling, because I think it might be useful to others).