Index: stable/9/sys/boot/forth/beastie.4th =================================================================== --- stable/9/sys/boot/forth/beastie.4th (revision 254952) +++ stable/9/sys/boot/forth/beastie.4th (revision 254953) @@ -1,376 +1,364 @@ \ Copyright (c) 2003 Scott Long \ Copyright (c) 2003 Aleksander Fafula \ Copyright (c) 2006-2013 Devin Teske \ All rights reserved. \ \ Redistribution and use in source and binary forms, with or without \ modification, are permitted provided that the following conditions \ are met: \ 1. Redistributions of source code must retain the above copyright \ notice, this list of conditions and the following disclaimer. \ 2. Redistributions in binary form must reproduce the above copyright \ notice, this list of conditions and the following disclaimer in the \ documentation and/or other materials provided with the distribution. \ \ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND \ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE \ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE \ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL \ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS \ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) \ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT \ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY \ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \ SUCH DAMAGE. \ \ $FreeBSD$ marker task-beastie.4th include /boot/delay.4th variable logoX variable logoY \ Initialize logo placement to defaults 46 logoX ! 4 logoY ! : beastie-logo ( x y -- ) \ color BSD mascot (19 rows x 34 columns) 2dup at-xy ." , ," 1+ 2dup at-xy ." /( )`" 1+ 2dup at-xy ." \ \___ / |" 1+ 2dup at-xy ." /- _ `-/ '" 1+ 2dup at-xy ." (/\/ \ \ /\" 1+ 2dup at-xy ." / / | ` \" 1+ 2dup at-xy ." O O ) / |" 1+ 2dup at-xy ." `-^--'`< '" 1+ 2dup at-xy ." (_.) _ ) /" 1+ 2dup at-xy ." `.___/` /" 1+ 2dup at-xy ." `-----' /" 1+ 2dup at-xy ." <----. __ / __ \" 1+ 2dup at-xy ." <----|====O)))==) \) /====|" 1+ 2dup at-xy ." <----' `--' `.__,' \" 1+ 2dup at-xy ." | |" 1+ 2dup at-xy ." \ / /\" 1+ 2dup at-xy ." ______( (_ / \______/" 1+ 2dup at-xy ." ,' ,-----' |" 1+ at-xy ." `--{__________)" \ Put the cursor back at the bottom 0 25 at-xy ; : beastiebw-logo ( x y -- ) \ B/W BSD mascot (19 rows x 34 columns) 2dup at-xy ." , ," 1+ 2dup at-xy ." /( )`" 1+ 2dup at-xy ." \ \___ / |" 1+ 2dup at-xy ." /- _ `-/ '" 1+ 2dup at-xy ." (/\/ \ \ /\" 1+ 2dup at-xy ." / / | ` \" 1+ 2dup at-xy ." O O ) / |" 1+ 2dup at-xy ." `-^--'`< '" 1+ 2dup at-xy ." (_.) _ ) /" 1+ 2dup at-xy ." `.___/` /" 1+ 2dup at-xy ." `-----' /" 1+ 2dup at-xy ." <----. __ / __ \" 1+ 2dup at-xy ." <----|====O)))==) \) /====|" 1+ 2dup at-xy ." <----' `--' `.__,' \" 1+ 2dup at-xy ." | |" 1+ 2dup at-xy ." \ / /\" 1+ 2dup at-xy ." ______( (_ / \______/" 1+ 2dup at-xy ." ,' ,-----' |" 1+ at-xy ." `--{__________)" \ Put the cursor back at the bottom 0 25 at-xy ; : fbsdbw-logo ( x y -- ) \ "FreeBSD" logo in B/W (13 rows x 21 columns) \ We used to use the beastie himself as our default... until the \ eventual complaint derided his reign of the advanced boot-menu. \ \ This is the replacement of beastie to satiate the haters of our \ beloved helper-daemon (ready to track down and spear bugs with \ his trident and sporty sneakers; see above). \ \ Since we merely just changed the default and not the default- \ location, below is an adjustment to the passed-in coordinates, \ forever influenced by the proper location of beastie himself \ kept as the default loader_logo_x/loader_logo_y values. \ 5 + swap 6 + swap 2dup at-xy ." ______" 1+ 2dup at-xy ." | ____| __ ___ ___ " 1+ 2dup at-xy ." | |__ | '__/ _ \/ _ \" 1+ 2dup at-xy ." | __|| | | __/ __/" 1+ 2dup at-xy ." | | | | | | |" 1+ 2dup at-xy ." |_| |_| \___|\___|" 1+ 2dup at-xy ." ____ _____ _____" 1+ 2dup at-xy ." | _ \ / ____| __ \" 1+ 2dup at-xy ." | |_) | (___ | | | |" 1+ 2dup at-xy ." | _ < \___ \| | | |" 1+ 2dup at-xy ." | |_) |____) | |__| |" 1+ 2dup at-xy ." | | | |" 1+ at-xy ." |____/|_____/|_____/" \ Put the cursor back at the bottom 0 25 at-xy ; : tribute-art ( x y -- ) \ see tribute[bw]-logo \ Disable the brand art (we're going to use that space) s" set loader_brand=none" evaluate \ Blank out the frame of the menu and move the title to left s" set loader_menu_title=" evaluate s" set loader_menu_frame=none" evaluate \ Move the menu to the center of the screen s" set loader_menu_x=26" evaluate - s" set loader_menu_y=13" evaluate + s" set loader_menu_y=12" evaluate s" set loader_menu_timeout_x=21" evaluate s" set loader_menu_timeout_y=24" evaluate 2 - swap 39 - swap \ top-left (see `fbsdbw-logo' comments above) 2dup at-xy 11 spaces ." ,d b." 1+ 2dup at-xy ." ,d88] [88b." 1+ 2dup at-xy ." ,d888P" 34 emit ." ,d88b. " 34 emit ." Y888b." 1+ 2dup at-xy ." , <888P" 34 emit ." ,dP" 34 emit ." ,db." 34 emit ." Yb. " 34 emit ." Y888> ," 1+ 2dup at-xy ." <88b.~ ,d888 " 34 emit ." YP" 34 emit ." 888b. ~,d88>" 1+ 2dup at-xy ." ," 34 emit ." Y888888P" 34 emit ." ,db.,db." 34 emit ." Y888888P" 34 emit ." ," 1+ 2dup at-xy ." <88b." 34 emit ." YP" 34 emit ." _ " 34 emit ." YP" 34 emit 34 emit ." YP" 34 emit ." _ " 34 emit ." YP" 34 emit ." ,d88>" 1+ 2dup at-xy ." " 34 emit ." Y88b.,dP Yb.,d88P" 34 emit 1+ at-xy ." " 34 emit ." YP" 34 emit ." " 34 emit ." YP" 34 emit ." " ; : tribute-text ( x y -- ) \ see tribute[bw]-logo swap 2 - swap \ beastie adjustment (see `fbsdbw-logo' comments above) 2dup at-xy ." CEO Workstation" 1+ 1+ 2dup at-xy ." Nakatomi Socrates FreeBSD 9.2" 1+ 2dup at-xy ." Z-Level Central Core" 1+ 1+ at-xy ." Preliminary Clearance Approved." ; : tribute-logo ( x y -- ) \ color Socrates tribute (16 rows x 32 columns) \ Produce the tribute art in bright green 2dup at-xy ." " 2dup tribute-art ." " \ Produce the tribute text in regular green 2dup at-xy ." " 2dup tribute-text ." " \ Distinguish the ``Free'' in tribute-text 2 + swap 16 + swap at-xy ." Free" \ Put the cursor back at the bottom 0 25 at-xy ; : tributebw-logo ( x y -- ) \ Socrates tribute (16 rows x 32 columns) \ Produce the tribute art and text 2dup tribute-art tribute-text \ Put the cursor back at the bottom 0 25 at-xy ; : orb-logo ( x y -- ) \ color Orb mascot (15 rows x 30 columns) 3 + \ beastie adjustment (see `fbsdbw-logo' comments above) 2dup at-xy ." ``` `" 1+ 2dup at-xy ." s` `.....---.......--.``` -/" 1+ 2dup at-xy ." +o .--` /y:` +." 1+ 2dup at-xy ." yo`:. :o `+-" 1+ 2dup at-xy ." y/ -/` -o/" 1+ 2dup at-xy ." .- ::/sy+:." 1+ 2dup at-xy ." / `-- /" 1+ 2dup at-xy ." `: :`" 1+ 2dup at-xy ." `: :`" 1+ 2dup at-xy ." / /" 1+ 2dup at-xy ." .- -." 1+ 2dup at-xy ." -- -." 1+ 2dup at-xy ." `:` `:`" 1+ 2dup at-xy ." .-- `--." 1+ at-xy ." .---.....----." \ Put the cursor back at the bottom 0 25 at-xy ; : orbbw-logo ( x y -- ) \ B/W Orb mascot (15 rows x 32 columns) 3 + \ beastie adjustment (see `fbsdbw-logo' comments above) 2dup at-xy ." ``` `" 1+ 2dup at-xy ." s` `.....---.......--.``` -/" 1+ 2dup at-xy ." +o .--` /y:` +." 1+ 2dup at-xy ." yo`:. :o `+-" 1+ 2dup at-xy ." y/ -/` -o/" 1+ 2dup at-xy ." .- ::/sy+:." 1+ 2dup at-xy ." / `-- /" 1+ 2dup at-xy ." `: :`" 1+ 2dup at-xy ." `: :`" 1+ 2dup at-xy ." / /" 1+ 2dup at-xy ." .- -." 1+ 2dup at-xy ." -- -." 1+ 2dup at-xy ." `:` `:`" 1+ 2dup at-xy ." .-- `--." 1+ at-xy ." .---.....----." \ Put the cursor back at the bottom 0 25 at-xy ; \ This function draws any number of beastie logos at (loader_logo_x, \ loader_logo_y) if defined, else (46,4) (to the right of the menu). To choose \ your beastie, set the variable `loader_logo' to the respective logo name. \ \ Currently available: \ \ NAME DESCRIPTION \ beastie Color ``Helper Daemon'' mascot (19 rows x 34 columns) \ beastiebw B/W ``Helper Daemon'' mascot (19 rows x 34 columns) \ fbsdbw "FreeBSD" logo in B/W (13 rows x 21 columns) \ orb Color ``Orb'' mascot (15 rows x 30 columns) (2nd default) \ orbbw B/W ``Orb'' mascot (15 rows x 32 columns) \ tribute Color ``Tribute'' (must fit 19 rows x 34 columns) (default) \ tributebw B/W ``Tribute'' (must fit 19 rows x 34 columns) \ \ NOTE: Setting `loader_logo' to an undefined value (such as "none") will \ prevent beastie from being drawn. \ : draw-beastie ( -- ) \ at (loader_logo_x,loader_logo_y), else (46,4) s" loader_logo_x" getenv dup -1 <> if ?number 1 = if logoX ! then else drop then s" loader_logo_y" getenv dup -1 <> if ?number 1 = if logoY ! then else drop then s" loader_logo" getenv dup -1 = if logoX @ logoY @ loader_color? if - s" tribute-logo" - sfind if - execute - else - drop - orb-logo - then + orb-logo else - s" tributebw-logo" - sfind if - execute - else - drop - orbbw-logo - then + 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 - orb-logo + drop orb-logo then 2drop exit then 2dup s" tributebw" compare-insensitive 0= if logoX @ logoY @ s" tributebw-logo" sfind if execute else - orbbw-logo + drop orbbw-logo then 2drop exit then 2drop ; : clear-beastie ( -- ) \ clears beastie from the screen logoX @ logoY @ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 1+ 2dup at-xy 34 spaces 2drop \ Put the cursor back at the bottom 0 25 at-xy ; : beastie-start ( -- ) \ starts the menu s" beastie_disable" getenv dup -1 <> if s" YES" compare-insensitive 0= if exit then else drop then s" loader_delay" getenv -1 = if s" include /boot/menu.rc" evaluate else drop ." Loading Menu (Ctrl-C to Abort)" cr s" set delay_command='include /boot/menu.rc'" evaluate s" set delay_showdots" evaluate delay_execute then ; Index: stable/9/sys/boot/forth/version.4th =================================================================== --- stable/9/sys/boot/forth/version.4th (revision 254952) +++ stable/9/sys/boot/forth/version.4th (revision 254953) @@ -1,60 +1,87 @@ -\ Copyright (c) 2006-2011 Devin Teske +\ Copyright (c) 2006-2013 Devin Teske \ All rights reserved. \ \ Redistribution and use in source and binary forms, with or without \ modification, are permitted provided that the following conditions \ are met: \ 1. Redistributions of source code must retain the above copyright \ notice, this list of conditions and the following disclaimer. \ 2. Redistributions in binary form must reproduce the above copyright \ notice, this list of conditions and the following disclaimer in the \ documentation and/or other materials provided with the distribution. \ \ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND \ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE \ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE \ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL \ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS \ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) \ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT \ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY \ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \ SUCH DAMAGE. \ \ $FreeBSD$ marker task-version.4th variable versionX variable versionY +\ Default $loader_version value if not overridden or using tribute screen +: str_loader_version ( -- C-ADDR/U|-1 ) s" FreeBSD `Nakatomi Socrates' 9.2" ; + \ Initialize text placement to defaults 80 versionX ! \ NOTE: this is the ending column (text is right-justified) 24 versionY ! : print_version ( -- ) \ Get the text placement position (if set) s" loader_version_x" getenv dup -1 <> if ?number drop versionX ! -1 then drop s" loader_version_y" getenv dup -1 <> if ?number drop versionY ! -1 then drop - \ Exit if a version was not set + \ Default version if none was set s" loader_version" getenv dup -1 = if - drop exit + drop + \ Default version if no logo is requested + s" loader_logo" getenv dup -1 = if + drop str_loader_version + else + 2dup s" tribute" compare-insensitive 0= if + 2drop + s" tribute-logo" sfind if + drop exit \ see beastie tribute-text + else + drop str_loader_version + then + else 2dup s" tributebw" compare-insensitive 0= if + 2drop + s" tributebw-logo" sfind if + drop exit \ see beastie tribute-text + else + drop str_loader_version + then + else + 2drop str_loader_version + then then + then + then dup -1 = if + drop exit \ default version (above) is disabled then \ Right justify the text dup versionX @ swap - versionY @ at-xy \ Print the version (optionally in cyan) loader_color? if ." " type ." " else type then ; Index: stable/9/sys/boot/forth/version.4th.8 =================================================================== --- stable/9/sys/boot/forth/version.4th.8 (revision 254952) +++ stable/9/sys/boot/forth/version.4th.8 (revision 254953) @@ -1,128 +1,128 @@ .\" Copyright (c) 2011-2013 Devin Teske .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" $FreeBSD$ .\" .Dd August 6, 2013 .Dt VERSION.4TH 8 .Os .Sh NAME .Nm version.4th .Nd FreeBSD version string boot module .Sh DESCRIPTION The file that goes by the name of .Nm is a set of commands designed to draw the boot loader version at the bottom-right of the screen. The commands of .Nm by themselves are not enough for most uses. Please refer to the examples below for the most common situations, and to .Xr loader 8 for additional commands. .Pp Before using any of the commands provided in .Nm , it must be included through the command: .Pp .Dl include version.4th .Pp This line is present in the default .Pa /boot/menu.rc file, so it is not needed (and should not be re-issued) in a normal setup. .Pp The commands provided by it are: .Pp .Bl -tag -width disable-module_module -compact -offset indent .It Ic print_version Prints the contents of the .Va loader_version environment variable right-justified at the column .Va loader_version_x and row .Va loader_version_y . .El .Pp The environment variables that effect its behavior are: .Bl -tag -width bootfile -offset indent .It Va loader_version Set automatically by .Xr loader 8 , but you can override it by setting in .Xr loader.conf 5 . This should be the version of boot loader used. .It Va loader_version_x Sets the desired ending column position of .Va loader_version . Default is 80. .It Va loader_version_y Sets the desired ending row position of .Va loader_version . Default is 24. .It Va loader_color If set to .Dq Li NO (case-insensitive) or .Dq Li 0 , causes the version to be printed without color .Pq default is ANSI Cyan . .El .Sh FILES -.Bl -tag -width /boot/loader.4th -compact +.Bl -tag -width /boot/version.4th -compact .It Pa /boot/loader The .Xr loader 8 . .It Pa /boot/version.4th .Nm itself. .It Pa /boot/loader.rc .Xr loader 8 bootstrapping script. .El .Sh EXAMPLES Override .Xr loader 8 version in .Xr loader.conf 5 : .Pp .Bd -literal -offset indent -compact loader_version="loader 1.1" .Ed .Sh SEE ALSO .Xr loader.conf 5 , .Xr loader 8 , .Xr color.4th 8 .Sh HISTORY The .Nm set of commands first appeared in .Fx 9.0 . .Sh AUTHORS The .Nm set of commands was written by .An -nosplit .An Devin Teske Aq dteske@FreeBSD.org . Index: stable/9/sys/boot/forth =================================================================== --- stable/9/sys/boot/forth (revision 254952) +++ stable/9/sys/boot/forth (revision 254953) Property changes on: stable/9/sys/boot/forth ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head/sys/boot/forth:r254942,254952 Index: stable/9/sys/boot =================================================================== --- stable/9/sys/boot (revision 254952) +++ stable/9/sys/boot (revision 254953) Property changes on: stable/9/sys/boot ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head/sys/boot:r254942,254952 Index: stable/9/sys =================================================================== --- stable/9/sys (revision 254952) +++ stable/9/sys (revision 254953) Property changes on: stable/9/sys ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head/sys:r254942,254952