I made a #nes game using a web IDE over the weekend. You can download / play / edit it here http://8bitworkshop.com/redir.html?platform=nes&githubURL=https%3A%2F%2Fgithub.com%2Fvoxel-public%2Fakj11_ancient_ruins&file=ancient.c
Code quality actually started out OK but over the last 1/8 of the jam deteriorated into a real mess. Feel free to judge me #theLudarium #gamedev
I think I coded myself into a corner.
While message receipt works well, the fact that I only have a statically allocated buffer for input and output means that my pseudo-9P server will be able to process exactly one and only one message at a time.
The semantics of how a 9P server handles excessive requests isn't specified. So, in my case, it isn't specified how I should handle a second T-message while I'm busy working on a previous message still. It's implied that 9P will ever only work on a desktop-class server, where queueing requests is a feasible task. However, on a computer with only a few KB of RAM, this simple act would be prohibitively expensive, if it is even possible in the first place.
@cwdolunt potatoes and tomatoes are so closely related that you can cut the stem of each one and splice it to the other and get potatoes on the bottom and tomatoes up top
My plan for the next two weeks is to implement (in the toy computer emulator only!) the hypothetical QIA core and test it in local loopback mode (any bytes I send out will come right back in; a hardware echo test if you will).
Once I have a (virtual) channel that can loop back onto itself, I can implement some buffer management code in the emulator, complete with COBS encoding and decoding.
My pets were always the best friends I ever had.
Warmth, acceptance, patience, tolerance and diligent ears were always fluffy, scaly or feathery.
Other humans my age couldn't seem to understand me.
I remember my distress over the daycare hamster being menaced by the biggest kid, and the rest thought it was hilarious.
School was even worse.
When I sprouted fur, fangs and claws I cried with joy, running straight to the deepest woods.
This is a neat article https://www.bbc.com/future/article/20210223-the-battery-invented-120-years-too-soon
The gist: A Swede named Ernst Waldemar Jungner invented a battery that Thomas Edison claims credit for. The battery produces hydrogen as it charges.
Power storage + the free creation of hydrogen in one package? That's potentially game changing.
And the fact that it can be done with 100+ year old tech, and powered by solar or wind? Potentially revolutionary.
Fun fact: the file size for ADR-5 is about 19KB, while ADR-6 is only 9KB. That proves its substantially simpler than its predecessor; an almost 50% reduction in description size.
Whoops, I guess the URL leaked a name for the new computer project. I suppose I should start tagging these with #fpga #forthbox #retrocomputing now.
As promised, here is the new quasi-formal specification of the I/O architecture for the toy computer system. https://git.sr.ht/~vertigo/forthbox/tree/master/item/doc/adr/0006-intelligent-i-o-stack.md
I've reverted back to using 9P for the "command set" of various devices. I'm using COBS for message framing (see consequences at bottom for why; and, in all honesty, it's probably still not enough). And, once again, I'm assuming transparent byte pipes in both directions.
I sure hope that this will be relatively easy to implement. I'd hate to have to rework this all over again.