Load File from Disk Blocks & Other Abstractions | UEFI Dev (in C)
Channel: Queso Fuego
Date: 2024-02-11

Reading a file from the basic data partition on the disk image, and adding helper functions to
get a file into a buffer from the EFI system partition and from disk blocks.

Errata:
- Not sure why I put an extra error check before the file Read() call, it doesn't do anything
and should be removed. Probably from being tired and having tunnel vision.

Misc. Notes:
- Removed the noise suppression filter in OBS, so Fs and Ss and words in general should be less cut off now.

Links:
https://uefi.org/specifications (uefi & other specifications)

UEFI Programming playlist:
https://www.youtube.com/playlist?list=PLT7NbkyNWaqZYHNLtOZ1MNxOt8myP5K0p

Git Repo:
https://github.com/queso-fuego/uefi-dev
https://codeberg.org/queso_fuego/uefi-dev

Repo state at the start of this video:
git clone --recurse-submodules https://github.com/queso-fuego/uefi-dev
cd uefi-dev
git checkout 53054ca1c0d2f3c172d377f1bccb6638dc328632

Repo state at the end of this video:
git checkout 20ff7f39ba9ca2aade5ffce975b9ff08ee8e2044

Next video:
- Loading and running a separate program to draw to the GOP framebuffer, to later act as an OS kernel so this can be an actual bootloader. Will load and run plain binary, ELF, and PE programs, all of them 64 bit position independant executables (PIE files).

Join the Community Discord: https://discord.gg/yKm4T89QFn

Contact:
https://queso_fuego.codeberg.page/contact.html

Support:
https://queso_fuego.codeberg.page/support.html

Questions about setup/software/etc.? 
Check the FAQ: https://queso_fuego.codeberg.page/about.html

0:00:00 intro, plan for this video
0:01:34 menu option to read file, outline logic
0:07:33 function to read ESP file into buffer
0:33:27 logic to parse DATAFLS.INF file for info
0:42:25 strstr, strlen, isdigit (ignore broken strcmp)
1:02:44 functions to get disk blocks into buffer & get mediaID
1:33:02 print test data from buffer, small setup for next video

Music credits:
[Chiptune] Medieval: Minstrel Dance by RandomMind
Music: https://www.chosic.com/free-music/all/

#uefidev #cprogramming #loadingfiles