From: Ralph Ronnquist Date: Wed, 5 May 2021 03:51:54 +0000 (+1000) Subject: experimental load actions X-Git-Url: https://git.rrq.au/?a=commitdiff_plain;ds=sidebyside;h=65d37a3d83e6b8b5141954b01283b8f0450a35ae;p=rrq%2Fjonasforth.git experimental load actions --- diff --git a/init/uefi.f b/init/uefi.f index 3e17fc3..b644744 100644 --- a/init/uefi.f +++ b/init/uefi.f @@ -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 @@ -31,3 +33,22 @@ 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