Add notes about loading files from disk
authorJonas Hvid <mail@johv.dk>
Sun, 8 Mar 2020 13:39:22 +0000 (14:39 +0100)
committerJonas Hvid <mail@johv.dk>
Sun, 8 Mar 2020 13:39:22 +0000 (14:39 +0100)
README.md
uefi/Makefile
uefi/main.asm

index 8d3d026f4a288c28e39e2e9e53f7070126bae49e..39b9eb61a2b3e76902a206f8292e473d0d5fd6b1 100644 (file)
--- a/README.md
+++ b/README.md
@@ -286,10 +286,10 @@ Notable sections:
 * 7\. Services - Boot Services (140)
 * 8\. Services - Runtime Services (228)
 * 12\. Protocols - Console Support (429)
+* 13\. Protocols - Media Access (493)
 * Appendix B - Console (2201)
 * Appendix D - Status Codes (2211)
 
-
 ## Resources
 
 * [UEFI - OSDev Wiki](https://wiki.osdev.org/UEFI)
index 1d55f083bbf67785f262e70297cb2fb0c91601c3..aeff045dfa36c330d17f5008404c54389fa54540 100644 (file)
@@ -1,5 +1,5 @@
 .PHONY: qemu
-qemu: out/main OVMF_CODE.fd OVMF_VARS.fd
+qemu: out/main out/hello OVMF_CODE.fd OVMF_VARS.fd
        # Based on https://wiki.osdev.org/UEFI#Emulation_with_QEMU_and_OVMF
        qemu-system-x86_64 -cpu qemu64 \
                -drive if=pflash,format=raw,unit=0,file=OVMF_CODE.fd,readonly=on \
@@ -18,6 +18,10 @@ out/main: main.asm
        mkdir -p out
        fasm $< out/main
 
+out/hello:
+       mkdir -p out
+       echo -e "Hello!\nThis is a test." > out/hello
+
 .PHONY: clean
 clean:
        rm -f main
index 62b81df5fedb728188d1a4104af54b966c8da9f7..431a64c9d1267c846c47279630a680b34dff7e69 100644 (file)
@@ -11,8 +11,13 @@ entry main
 ;;       - This should allow the user to type in a string, and then feed the
 ;;         buffer to us one character at a time.
 ;;       - [ ] We want to show the user's input on the screen while reading
+;; - [ ] Read a file that was bundled with the program
+;;       - It looks like we can use EFI_LOAD_FILE_PROTOCOL.LoadFile() to load
+;;         a file into a buffer. In order to be able to use this, we need to
+;;         have some way of interpreting a static buffer instead of reading as
+;;         we go.
 
-;; #region Structs
+;; EFI struct definitions {{{
 
 EFI_NOT_READY = 0x8000_0000_0000_0000 or 6
 
@@ -65,7 +70,7 @@ struc EFI_INPUT_KEY {
 }
 struct EFI_INPUT_KEY
 
-;; #endregion
+;; }}}
 
 section '.text' code executable readable