experimental load actions
authorRalph Ronnquist <ralph.ronnquist@gmail.com>
Wed, 5 May 2021 03:51:54 +0000 (13:51 +1000)
committerRalph Ronnquist <ralph.ronnquist@gmail.com>
Wed, 5 May 2021 03:51:54 +0000 (13:51 +1000)
init/uefi.f

index 3e17fc3a831fda3e0b0aeeb4cbd2755a4d7431c3..b6447441b8b25a484db4fe697ac3d328c6850843 100644 (file)
@@ -1,13 +1,15 @@
 : ConOut SystemTable 64 + @ ;
 : ConOut.OutputString ConOut 8 + @ ;
 : ConOut.OutputString() ConOut SWAP ConOut.OutputString EFICALL2 ;
+: ConOut.ClearScreen() ConOut DUP 48 + @ EFICALL1 ;
 
 : BootServices SystemTable 96 + @ ;
 : BootServices.LocateProtocol BootServices 320 + @ ;
 : GraphicsOutputProtocol
   \ [TODO] It would be nice to cache this value, so we don't have to get it
   \ every time.
-  HERE @ 5348063987722529246 , 7661046075708078998 , \ *Protocol = EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID
+  \ (next line) *Protocol = EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID
+  HERE @ 5348063987722529246 , 7661046075708078998 ,
   0 \ *Registration
   HERE @ 0 , \ **Interface
   BootServices.LocateProtocol EFICALL3 DROP
@@ -20,8 +22,8 @@
 
 : EfiBltVideoFill 0 ;
 
-\ Store a null-terminated UTF-16 string HERE, and return a pointer to its buffer
-\ at runtime.
+\ Store a null-terminated UTF-16 string HERE, and return a pointer to
+\ its buffer at runtime.
 : UTF16"
   HERE @
   BEGIN
   HERE @ 2 - HERE ! \ Remove final "
   0 C, 0 C, \ Null terminator
   ;
+
+\ Push length for null-terminated string ( s -- s n )
+: @32
+  DUP BEGIN DUP C@ IF 1 + 0 ELSE 1 THEN UNTIL OVER -
+;
+
+ConOut.ClearScreen()
+
+\ Report Firmware Vendor
+UTF16" Firmware vendor: " ConOut.OutputString()
+SystemTable 24 + @ ConOut.OutputString()
+UTF16"  version:" ConOut.OutputString()
+SystemTable 32 +
+  SPACE DUP C@ .U 1 +
+  SPACE DUP C@ .U 1 +
+  SPACE DUP C@ .U 1 +
+  SPACE DUP C@ .U 1 +
+DROP
+NEWLINE