One of the things i do love about the xc8 compiler is how easy it is to reserve an area of memory in your code.
#define SERIAL_NUMBER_FLASH_LOCATION 0x800
const volatile unsigned long serial_number __at(SERIAL_NUMBER_FLASH_LOCATION) = 0;
that is all it takes.
Its sad also because the Norfolk accent is fairly odd as regional accents go.
This is an implementation of a std::vector like growable array, but in plain C89 code. The result is a type safe, easy to use, dynamic array that has a familiar set of operations.
I mean I know you just use void * and realloc to create a dynamic array but is seemed a really good implementation.
6 days. Had to go into the registry to clear COM ports that didn’t exist out.
I recently became aware that someone liked my little pen and paper story writing game they used it as inspiration to create their own little game. This makes me feel more warm than someone just enjoying the game. For my work to actually inspire someone else to create something is, I think, the highest praise.
I collect a ton of 6502 asm notes/guides/tools/sources over at if you're interested in learning assembly:
Join others in a free (libre!) and user supported social network for board gamers and the games they love.