RE: https://fosstodon.org/@golemwire/115075076162218775
I'm starting a Fluxer (Discord alternative) group for my #SubSky computing environment :D
Invite link: https://fluxer.gg/I2P03SBv
RE: https://fosstodon.org/@golemwire/115075076162218775
I'm starting a Fluxer (Discord alternative) group for my #SubSky computing environment :D
Invite link: https://fluxer.gg/I2P03SBv
Worked on the stdlib for #SubSky , in the reverse-stack branch. Had to rewrite memcpy, since my prior implementation of it did a trick with the stack to copy using less instructions; this trick is no longer viable, as moving the stack pointer can make memory become undefined now (thanks to the improved stack cache rules in the ISA spec).
Made a new memzero function. It's like POSIX memset, but just for zeroing.
#Programming tip: if you want to allocate memory and explicitly tell the kernel you don't want the memory backed until you use it, try mmap(). Really useful.
An example of mmap being used this way. https://gitlab.com/golemwire/subsky/-/blob/master/cpu/util.c?ref_type=heads#L59 (permalink https://gitlab.com/golemwire/subsky/-/blob/0559e32da1e61eb6b50cdd30f080964a603251b4/cpu/util.c#L59 )
This is from my #SubSky emulator.
(p_cpu->p_memory = (uint8_t *) mmap(NULL, (size_t) 1 << 32, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0))
I reversed the stack direction in my #SubSky #ISA and VM. The original stack order had pushes go towards the high end; the current direction has pushes go towards the low end (like #x86 and many other architectures*). It simplified a number of things, such as accessing variables in the stack frame ("lvalues" are now positive and start at 0 rather than -4 [the word size is 32 bits] ). The heap structuring will be easier to do now, as well.
https://gitlab.com/golemwire/subsky/-/tree/reverse-stack?ref_type=heads
I added a Who This is For section to the README of my personal computing environment project, #SubSky :) https://gitlab.com/golemwire/subsky#who-this-is-for
I created a logo/banner(?) for my #SubSky computing system :D ( https://gitlab.com/golemwire/subsky )
I need to get back to schoolwork
I created a syntax highlighting config for my programming language Slang, for GNOME 's GTKSourceView :D
This will make working on my videogame much more comfortable I think 😊
https://gitlab.com/golemwire/subsky/-/blob/master/OTHER/slang.lang?ref_type=heads (XML warning)
#LossyPNG (an @rl_dane hashtag lol. I had changed the DPI in #SwayCompositor so I could capture larger screenshots, and I think my NVidia driver might be breaking the Wayland xdg-output protocol, so its scaled funny)
#SubSky #SlangLang #programmingLanguage #gamedev
Introducing SubSky, a new 32-bit CPU #ISA and computing environment intending to be the most amount of power you can get from the least amount of computer.
It provides you with a virtual #CPU with 16 instructions (few but versatile!), and a novel low-level #programmingLanguage between C and #assembly called Slang.
The project supplies a small set of virtual peripherals and a minimal yet useful stdlib.
Check it out!
The alpha version of #SubSky has been released. I'll announce it (properly) tomorrow [that is, today].
I definitely need to go to bed now, though.
I'm figuring out the ASCII codes to use for the arrow keys for my #SubSky system.
#SubSky project update: some organizing of device IDs, more work on the now extensive README.
I will likely have the beta release out later this week, rather than today. I'm pretty excited.
Saw someone's project. I can only hold off sharing for so long. Feels like now or never.
Working on #SubSky for now through tonight. I might have a beta release by morning. Wish me luck. <3
If anyone is interested, let me know, and I'll take a temporary break from the videogame project and publish #SubSky online. #ISA #programmingLanguage #programming #UXN #lowTech