Palettes / Commodore VIC-20

Commodore VIC-20

The Commodore VIC-20 was an 8-bit computer released by Commodore Business Machines in 1980.

🦀 Rust

#![no_std]
#![no_main]
use firefly_rust::*;

#[unsafe(no_mangle)]
extern "C" fn boot() {
    set_colors();
}

fn set_colors() {
    // https://lospec.com/palette-list/commodore-vic-20
    set_color(Color::from(1), RGB::new(0x00, 0x00, 0x00));
    set_color(Color::from(2), RGB::new(0xff, 0xff, 0xff));
    set_color(Color::from(3), RGB::new(0xa8, 0x73, 0x4a));
    set_color(Color::from(4), RGB::new(0xe9, 0xb2, 0x87));
    set_color(Color::from(5), RGB::new(0x77, 0x2d, 0x26));
    set_color(Color::from(6), RGB::new(0xb6, 0x68, 0x62));
    set_color(Color::from(7), RGB::new(0x85, 0xd4, 0xdc));
    set_color(Color::from(8), RGB::new(0xc5, 0xff, 0xff));
    set_color(Color::from(9), RGB::new(0xa8, 0x5f, 0xb4));
    set_color(Color::from(10), RGB::new(0xe9, 0x9d, 0xf5));
    set_color(Color::from(11), RGB::new(0x55, 0x9e, 0x4a));
    set_color(Color::from(12), RGB::new(0x92, 0xdf, 0x87));
    set_color(Color::from(13), RGB::new(0x42, 0x34, 0x8b));
    set_color(Color::from(14), RGB::new(0x7e, 0x70, 0xca));
    set_color(Color::from(15), RGB::new(0xbd, 0xcc, 0x71));
    set_color(Color::from(16), RGB::new(0xff, 0xff, 0xb0));
}

🏃 Go

package main

import "github.com/firefly-zero/firefly-go/firefly"

func init() {
    firefly.Boot = boot
}

func boot() {
    setColors()
}

func setColors() {
    // https://lospec.com/palette-list/commodore-vic-20
    firefly.SetColor(1, firefly.RGB{R: 0x00, G: 0x00, B: 0x00})
    firefly.SetColor(2, firefly.RGB{R: 0xff, G: 0xff, B: 0xff})
    firefly.SetColor(3, firefly.RGB{R: 0xa8, G: 0x73, B: 0x4a})
    firefly.SetColor(4, firefly.RGB{R: 0xe9, G: 0xb2, B: 0x87})
    firefly.SetColor(5, firefly.RGB{R: 0x77, G: 0x2d, B: 0x26})
    firefly.SetColor(6, firefly.RGB{R: 0xb6, G: 0x68, B: 0x62})
    firefly.SetColor(7, firefly.RGB{R: 0x85, G: 0xd4, B: 0xdc})
    firefly.SetColor(8, firefly.RGB{R: 0xc5, G: 0xff, B: 0xff})
    firefly.SetColor(9, firefly.RGB{R: 0xa8, G: 0x5f, B: 0xb4})
    firefly.SetColor(10, firefly.RGB{R: 0xe9, G: 0x9d, B: 0xf5})
    firefly.SetColor(11, firefly.RGB{R: 0x55, G: 0x9e, B: 0x4a})
    firefly.SetColor(12, firefly.RGB{R: 0x92, G: 0xdf, B: 0x87})
    firefly.SetColor(13, firefly.RGB{R: 0x42, G: 0x34, B: 0x8b})
    firefly.SetColor(14, firefly.RGB{R: 0x7e, G: 0x70, B: 0xca})
    firefly.SetColor(15, firefly.RGB{R: 0xbd, G: 0xcc, B: 0x71})
    firefly.SetColor(16, firefly.RGB{R: 0xff, G: 0xff, B: 0xb0})
}

⚡️ Zig

const ff = @import("firefly");

pub export fn update() void {
    setColors()
}

fn setColors() void {
    // https://lospec.com/palette-list/commodore-vic-20
    ff.setColor(@enumFromInt(1), ff.RGB{.r = 0x00, .g = 0x00, .b = 0x00});
    ff.setColor(@enumFromInt(2), ff.RGB{.r = 0xff, .g = 0xff, .b = 0xff});
    ff.setColor(@enumFromInt(3), ff.RGB{.r = 0xa8, .g = 0x73, .b = 0x4a});
    ff.setColor(@enumFromInt(4), ff.RGB{.r = 0xe9, .g = 0xb2, .b = 0x87});
    ff.setColor(@enumFromInt(5), ff.RGB{.r = 0x77, .g = 0x2d, .b = 0x26});
    ff.setColor(@enumFromInt(6), ff.RGB{.r = 0xb6, .g = 0x68, .b = 0x62});
    ff.setColor(@enumFromInt(7), ff.RGB{.r = 0x85, .g = 0xd4, .b = 0xdc});
    ff.setColor(@enumFromInt(8), ff.RGB{.r = 0xc5, .g = 0xff, .b = 0xff});
    ff.setColor(@enumFromInt(9), ff.RGB{.r = 0xa8, .g = 0x5f, .b = 0xb4});
    ff.setColor(@enumFromInt(10), ff.RGB{.r = 0xe9, .g = 0x9d, .b = 0xf5});
    ff.setColor(@enumFromInt(11), ff.RGB{.r = 0x55, .g = 0x9e, .b = 0x4a});
    ff.setColor(@enumFromInt(12), ff.RGB{.r = 0x92, .g = 0xdf, .b = 0x87});
    ff.setColor(@enumFromInt(13), ff.RGB{.r = 0x42, .g = 0x34, .b = 0x8b});
    ff.setColor(@enumFromInt(14), ff.RGB{.r = 0x7e, .g = 0x70, .b = 0xca});
    ff.setColor(@enumFromInt(15), ff.RGB{.r = 0xbd, .g = 0xcc, .b = 0x71});
    ff.setColor(@enumFromInt(16), ff.RGB{.r = 0xff, .g = 0xff, .b = 0xb0});
}

🐀 C

#include "./vendor/firefly/firefly.c"

BOOT void boot()
{
    set_colors();
}

void set_colors()
{
    // https://lospec.com/palette-list/commodore-vic-20
    RGB color1 = {0x00, 0x00, 0x00};
    set_color(1, color1);
    RGB color2 = {0xff, 0xff, 0xff};
    set_color(2, color2);
    RGB color3 = {0xa8, 0x73, 0x4a};
    set_color(3, color3);
    RGB color4 = {0xe9, 0xb2, 0x87};
    set_color(4, color4);
    RGB color5 = {0x77, 0x2d, 0x26};
    set_color(5, color5);
    RGB color6 = {0xb6, 0x68, 0x62};
    set_color(6, color6);
    RGB color7 = {0x85, 0xd4, 0xdc};
    set_color(7, color7);
    RGB color8 = {0xc5, 0xff, 0xff};
    set_color(8, color8);
    RGB color9 = {0xa8, 0x5f, 0xb4};
    set_color(9, color9);
    RGB color10 = {0xe9, 0x9d, 0xf5};
    set_color(10, color10);
    RGB color11 = {0x55, 0x9e, 0x4a};
    set_color(11, color11);
    RGB color12 = {0x92, 0xdf, 0x87};
    set_color(12, color12);
    RGB color13 = {0x42, 0x34, 0x8b};
    set_color(13, color13);
    RGB color14 = {0x7e, 0x70, 0xca};
    set_color(14, color14);
    RGB color15 = {0xbd, 0xcc, 0x71};
    set_color(15, color15);
    RGB color16 = {0xff, 0xff, 0xb0};
    set_color(16, color16);
}

➕ C++

#include "./vendor/firefly/firefly.c"

BOOT void boot()
{
    set_colors();
}

void set_colors()
{
    // https://lospec.com/palette-list/commodore-vic-20
    set_color(1, {0x00, 0x00, 0x00});
    set_color(2, {0xff, 0xff, 0xff});
    set_color(3, {0xa8, 0x73, 0x4a});
    set_color(4, {0xe9, 0xb2, 0x87});
    set_color(5, {0x77, 0x2d, 0x26});
    set_color(6, {0xb6, 0x68, 0x62});
    set_color(7, {0x85, 0xd4, 0xdc});
    set_color(8, {0xc5, 0xff, 0xff});
    set_color(9, {0xa8, 0x5f, 0xb4});
    set_color(10, {0xe9, 0x9d, 0xf5});
    set_color(11, {0x55, 0x9e, 0x4a});
    set_color(12, {0x92, 0xdf, 0x87});
    set_color(13, {0x42, 0x34, 0x8b});
    set_color(14, {0x7e, 0x70, 0xca});
    set_color(15, {0xbd, 0xcc, 0x71});
    set_color(16, {0xff, 0xff, 0xb0});
}

🐰 MoonBit

///|
using @firefly {type Color, type RGB}

///|
pub fn boot() -> Unit {
  set_colors()
}

///|
fn set_colors() -> Unit {
  // https://lospec.com/palette-list/commodore-vic-20
  @firefly.set_color(Color::from_int(1), RGB::new(0x00, 0x00, 0x00));
  @firefly.set_color(Color::from_int(2), RGB::new(0xff, 0xff, 0xff));
  @firefly.set_color(Color::from_int(3), RGB::new(0xa8, 0x73, 0x4a));
  @firefly.set_color(Color::from_int(4), RGB::new(0xe9, 0xb2, 0x87));
  @firefly.set_color(Color::from_int(5), RGB::new(0x77, 0x2d, 0x26));
  @firefly.set_color(Color::from_int(6), RGB::new(0xb6, 0x68, 0x62));
  @firefly.set_color(Color::from_int(7), RGB::new(0x85, 0xd4, 0xdc));
  @firefly.set_color(Color::from_int(8), RGB::new(0xc5, 0xff, 0xff));
  @firefly.set_color(Color::from_int(9), RGB::new(0xa8, 0x5f, 0xb4));
  @firefly.set_color(Color::from_int(10), RGB::new(0xe9, 0x9d, 0xf5));
  @firefly.set_color(Color::from_int(11), RGB::new(0x55, 0x9e, 0x4a));
  @firefly.set_color(Color::from_int(12), RGB::new(0x92, 0xdf, 0x87));
  @firefly.set_color(Color::from_int(13), RGB::new(0x42, 0x34, 0x8b));
  @firefly.set_color(Color::from_int(14), RGB::new(0x7e, 0x70, 0xca));
  @firefly.set_color(Color::from_int(15), RGB::new(0xbd, 0xcc, 0x71));
  @firefly.set_color(Color::from_int(16), RGB::new(0xff, 0xff, 0xb0));
}

🌙 Lua

function boot()
  set_colors()
end

function set_colors()
  -- https://lospec.com/palette-list/commodore-vic-20
  firefly.set_color(1, {r=0x00, g=0x00, b=0x00});
  firefly.set_color(2, {r=0xff, g=0xff, b=0xff});
  firefly.set_color(3, {r=0xa8, g=0x73, b=0x4a});
  firefly.set_color(4, {r=0xe9, g=0xb2, b=0x87});
  firefly.set_color(5, {r=0x77, g=0x2d, b=0x26});
  firefly.set_color(6, {r=0xb6, g=0x68, b=0x62});
  firefly.set_color(7, {r=0x85, g=0xd4, b=0xdc});
  firefly.set_color(8, {r=0xc5, g=0xff, b=0xff});
  firefly.set_color(9, {r=0xa8, g=0x5f, b=0xb4});
  firefly.set_color(10, {r=0xe9, g=0x9d, b=0xf5});
  firefly.set_color(11, {r=0x55, g=0x9e, b=0x4a});
  firefly.set_color(12, {r=0x92, g=0xdf, b=0x87});
  firefly.set_color(13, {r=0x42, g=0x34, b=0x8b});
  firefly.set_color(14, {r=0x7e, g=0x70, b=0xca});
  firefly.set_color(15, {r=0xbd, g=0xcc, b=0x71});
  firefly.set_color(16, {r=0xff, g=0xff, b=0xb0});
end