Merecete

tools for engineering, media and a hobby operating system

Read this page in: Deutsch

Store — programs for Violyx

Plain links to .vpk programs for Violyx, from a domain the Violyx browser can reach without JavaScript.

How a program gets onto the machine

Catalogue

No program has been published here yet. There are no .vpk files in the download folder and the catalogue file is empty. The files themselves, not this page, decide what appears in the list below, so an entry cannot drift away from the program it describes.

What a package is

A .vpk file is not a zip and not a tar: it is 256 bytes of header followed by the program itself, unmodified and uncompressed. The kernel reads the header before anything runs. These are the fields and the limits it accepts, taken from kernel/prog.c and sdk/mkvpk.py in the Violyx sources:

magic
the four bytes VPK1 at the start
elf
length of the program part; header plus this must equal the file size
cols/rows
window size in text cells: 20 to 76 columns, 5 to 20 rows
name
up to 23 characters of a-z, 0-9, - and _; decides the folder /programs/<name>
title
shown in the window frame, up to 23 characters
version
up to 11 characters, required
author
up to 31 characters, optional
icon
three lines of six characters each, code page 437, for the program overview

A package must be at least 320 bytes and at most 32 MiB. The program inside has to be a 64-bit x86 ELF built for the Violyx program area. A package whose name equals a program that already ships with the system (snake, bricks, novastrike, xzn, pong, invaders, chomp, mines, calc, clock, calendar, write, paint, files, commands, view, web, cc) will be installed, but the built-in one with that name is what starts.

Publish your own

Two paths lead to a package. On another machine: build the ELF with the toolchain described in the SDK, then call sdk/mkvpk.py with the name, the title, the version, the author, the window size and the icon as three lines separated by pipe characters. On a running Violyx: write the source and call cc FILE.c, and FILE.vpk appears next to it; -o NAME.vpk picks another output file, -s 60x19 the window size and -t TITLE the window title.

To place a program here, the .vpk file has to be copied into store/files/ of the website project and the pages have to be generated again. The list on this page, the download folder and /store/index.json are all produced from the files that are really there.

Machine-readable catalogue

/store/index.json describes the same programs in JSON for tools: name, title, version, author, the window size, the three icon lines, the download path, the size, the SHA-256 checksum and the date. Every value is read from the file itself, and a short description can be added beside it.

/store/index.json

This file is an addition of the website, not a Violyx feature: nothing in Violyx 0.3.0 reads it, and the store in Violyx today is exactly what its guide says — a web page with links to .vpk files. Treat index.json as a catalogue for programs on the computer, for mirrors and for the day a future Violyx version might want to read one.

Before installing

An installed program is not locked into its own folder: it can read and change the files in /home. Neither the browser nor the installer checks a checksum or a signature, and the confirm dialog only shows the title and version the package claims about itself. Install only programs whose source you have seen or whose author you trust.

Where the files are