Permalänk
Medlem

Skapa UEFI-applikationer?

Jag vill komma igång med att skapa enkla applikationer som körs utanför operativsystemet. Jag kollade först på att skapa BIOS-applikationer och det verkar finnas en hel del information om det. Problemet där är att man verkar vara begränsad till 512 bytes om man inte vill göra saker svårt för sig, samt att man behöver använda assembly för diverse interrupts (vilket jag föredrar att inte hålla på med).

UEFI-applikationer såg istället ut som ett bra alternativ. Ingen begränsning på applikationens storlek vad jag vet och det verkar gå att skriva allt eller det mesta i C. Problemet där är istället att det finns väldigt dåligt med dokumentation. De kodexemplen jag har hittat är antingen "hello world" eller alltför avancerade saker för vad jag vill göra.

Jag vill egentligen bara kunna göra följande:
Ställa in grafikläget (t.ex. 320x200)
Rita en pixel
Läsa av tangentbordstryckningar
Någon form av sleep

Det enda jag har hittat än så länge är den här artikeln som väldigt kortfattat beskriver GOP:
https://wiki.osdev.org/GOP

Några tips?

Permalänk
Medlem

Hittade en sleep-funktion:
gBS->Stall(nanosekunder);
Eller i mitt fall med GNU-EFI:
uefi_call_wrapper(gBS->Stall, 1, (milisekunder * 1000);

Det går mer eller mindre att kopiera kodexemplet från GOP-artikeln ovan och modifiera det efter behov. Notera att format 1 för grafikläget innebär 32 bits/pixel. 0xFFFFFF blir således vitt.

Nu återstår bara att hitta ett sätt att läsa av tangentbordet. Några förslag?