• 0.0.7 981a854591

    0.0.7 Pre-release

    kooper released this 2026-08-31 22:58:22 +00:00 | 5 commits to main since this release

    This is the second public release of SystemK!

    RAM usage has been dropped to around 1900-2000KB on boot which should mean that SystemK on 4096KB of RAM is now viable again.

    HOWEVER, this will probably rise again as I implement more and more stuff, so don't get your hopes up.

    Warning

    The draw command appears to be very rarely unstable and cause weird color palette issues with the shell. Currently not sure of the cause and/or a fix.

    It seems to be stable 99.9% of the time though so I'm not sure what to do.

    Full changelog (turns out I missed some stuff I forgot to mention in the actual 0.0.7 commit):

    • The current keyboard layout can now be changed at runtime using the kbl command. The following layouts are currently supported:
      • en-US (ANSI)
      • en-GB (ISO)
      • fr-FR (AZERTY)
      • de-DE (QWERTZ)
      • en-US-DV (Dvorak)
    • The user can now draw shapes and lines on the screen using the draw command.
      • Drawings are drawn on a separate layer above the console output, so they will not interfere with the text output.
      • The following commands are currently supported:
        • draw line <sx>,<sy> <ex>,<ey> <hex color> [thickness]
          • Draws a line.
          • , refers to the first coordinate to start drawing from
          • , refers to the last coordinate to stop drawing at
          • [thickness] is the thickness of the line in px, default 1px
        • draw rshape <x>,<y> <sides> <size> <rotation> <color> (border <bordersize> (<bordercolor>))
          • Draws a regular shape.
          • , is the middle point of the regular shape
          • is the number of sides
          • is the size of the shape in px
          • is a rotation in any direction (positive for clockwise, negative for anticlockwise)
            • specify d for degrees, r for radians
          • if border is specified at the end but not anything else, by default 2px border of color white
            • is the thickness of the border in px, default 2px
            • is the color of the border, default white
        • draw star (small yellow star in the center of the screen)
        • draw tree (small coloured tree in the center of the screen)
        • draw demo (SystemK text demo in the center of the screen)
        • draw reset (reset the drawing layer to a blank state)
        • draw blank <color> (set the drawing layer to one colour)
      • draw accepts variables as arguments too
    • hex command has been added: convert integers to hexadecimal and vice versa.
      • Usage: hex <number> or hex "<string>"
      • Examples:
        • hex 32 -> "20"
        • hex "2C" -> 44
        • hex "ff00ff" -> 16711935
        • hex 15790320 -> "F0F0F0"
      • Strings that contain non-hexadecimal characters will be treated as converting the string to its hexadecimal representation, e.g. hex "hello" -> "68656C6C6F".
      • hex will interpret every input given to it as a number or string UNLESS the input happens to be the name of a variable, in which case it will convert the value of that variable to hexadecimal instead, e.g. if myvar is set to 42, then hex myvar will return "2A".
    • %command% substitutions now include all commands instead of predefined ones
    • In functions, return can now return the output of commands (a la echo) using the same %command% substitution.
    • Fixed a weird issue where the default palette was stored differently in two different places, causing the palette on boot and the palette defined as default to be different.
    • Fixed a regression where changing the color palette would not update the entire screen but only cells updated after the command was run.
    • Fixed an issue where the ram command would not recompute how much RAM the system was actually using.
    • RAM usage has been optimised (boot usage dropped from ~9MB during testing to 1.9MB).
    Downloads