summaryrefslogtreecommitdiffstats
path: root/sys/boot/forth
diff options
context:
space:
mode:
authordteske <dteske@FreeBSD.org>2014-03-03 07:28:56 +0000
committerdteske <dteske@FreeBSD.org>2014-03-03 07:28:56 +0000
commitccfaf68adbb4f44ab9d2d7a4a13b4e43752b1b37 (patch)
treebd712df021031159dae9057b5a24f41ebcbfcd22 /sys/boot/forth
parent514ba4551bb5415feae7fbc17c1d9f4c6a0abedd (diff)
downloadFreeBSD-src-ccfaf68adbb4f44ab9d2d7a4a13b4e43752b1b37.zip
FreeBSD-src-ccfaf68adbb4f44ab9d2d7a4a13b4e43752b1b37.tar.gz
MFC r258269: Refactor draw-beastie function.
Discussed on: -hackers
Diffstat (limited to 'sys/boot/forth')
-rw-r--r--sys/boot/forth/beastie.4th62
1 files changed, 16 insertions, 46 deletions
diff --git a/sys/boot/forth/beastie.4th b/sys/boot/forth/beastie.4th
index 4a107af..7a2cbb0 100644
--- a/sys/boot/forth/beastie.4th
+++ b/sys/boot/forth/beastie.4th
@@ -202,56 +202,26 @@ variable logoY
drop
then
- s" loader_logo" getenv dup -1 = if
- logoX @ logoY @
- loader_color? if
- orb-logo
- else
- orbbw-logo
- then
- drop exit
- then
-
- 2dup s" beastie" compare-insensitive 0= if
- logoX @ logoY @ beastie-logo
- 2drop exit
- then
- 2dup s" beastiebw" compare-insensitive 0= if
- logoX @ logoY @ beastiebw-logo
- 2drop exit
- then
- 2dup s" fbsdbw" compare-insensitive 0= if
- logoX @ logoY @ fbsdbw-logo
- 2drop exit
- then
- 2dup s" orb" compare-insensitive 0= if
- logoX @ logoY @ orb-logo
- 2drop exit
- then
- 2dup s" orbbw" compare-insensitive 0= if
- logoX @ logoY @ orbbw-logo
- 2drop exit
- then
- 2dup s" tribute" compare-insensitive 0= if
- logoX @ logoY @
- s" tribute-logo" sfind if
- execute
- else
- drop orb-logo
- then
- 2drop exit
+ s" loader_logo" getenv dup -1 <> if
+ dup 5 + allocate if ENOMEM throw then
+ 0 2swap strcat s" -logo" strcat
+ over -rot ( a-addr/u -- a-addr a-addr/u )
+ sfind ( a-addr a-addr/u -- a-addr xt bool )
+ rot ( a-addr xt bool -- xt bool a-addr )
+ free ( xt bool a-addr -- xt bool ior )
+ if EFREE throw then
+ else
+ 0 ( cruft -- cruft bool ) \ load the default below
then
- 2dup s" tributebw" compare-insensitive 0= if
- logoX @ logoY @
- s" tributebw-logo" sfind if
- execute
+ 0= if
+ drop ( cruft -- )
+ loader_color? if
+ ['] orb-logo
else
- drop orbbw-logo
+ ['] orbbw-logo
then
- 2drop exit
then
-
- 2drop
+ logoX @ logoY @ rot execute
;
: clear-beastie ( -- ) \ clears beastie from the screen
OpenPOWER on IntegriCloud