smnx/promethee
2
40
Fork
You've already forked promethee
3
UEFI Bindings for JavaScript (Proof of Concept)
  • C 69.7%
  • Makefile 21.4%
  • TypeScript 3.4%
  • JavaScript 2.9%
  • Shell 2.6%
2026年02月09日 15:42:13 +01:00
src Removed useless file. 2026年02月09日 15:42:13 +01:00
.gitignore Prometheus stole fire from the gods and gave it to man. For this he was chained to a rock and tortured for eternity. 2026年02月09日 14:48:48 +01:00
get-deps Prometheus stole fire from the gods and gave it to man. For this he was chained to a rock and tortured for eternity. 2026年02月09日 14:48:48 +01:00
GNUmakefile Prometheus stole fire from the gods and gave it to man. For this he was chained to a rock and tortured for eternity. 2026年02月09日 14:48:48 +01:00
LICENSE Update LICENSE copyright for 2026 2026年01月02日 14:41:00 +01:00
promethee.jpeg Prometheus stole fire from the gods and gave it to man. For this he was chained to a rock and tortured for eternity. 2026年02月09日 14:48:48 +01:00
README.md Update README.md 2026年02月09日 14:56:28 +01:00
script.js Prometheus stole fire from the gods and gave it to man. For this he was chained to a rock and tortured for eternity. 2026年02月09日 14:48:48 +01:00
types.ts Prometheus stole fire from the gods and gave it to man. For this he was chained to a rock and tortured for eternity. 2026年02月09日 14:48:48 +01:00

Promethee

Promethee

What this is

UEFI Bindings for JavaScript

How it works

Promethee loads script.js from the boot volume and runs it. That script is your bootloader. If you can do it with UEFI services, you can do it in JavaScript.

Quick start

  1. Fetch dependencies: ./get-deps

  2. Build and run in QEMU: make run

Your entrypoint is script.js. The run target copies it to the UEFI FAT volume as \script.js.

Tiny example

In script.js:

var gop = efi.SystemTable.BootServices.LocateProtocol(efi.guid.GraphicsOutput);
if (gop) {
 var red = { r: 255, g: 0, b: 0 };
 gop.Blt(red, 'EfiBltVideoFill', 0, 0, 50, 50, 200, 120, 0);
}

Notes

  • Duktape tooling requires Node.js (used to generate sources).
  • The build is freestanding; only minimal libc stubs are provided.
  • If this makes you grin, you are probably holding the torch.