source: src-sh/pc-extractoverlay/server-overlay/boot/beastie.4th @ 1620346

9.1-release9.2-releasereleng/10.0releng/10.0.1releng/10.0.2
Last change on this file since 1620346 was 1620346, checked in by Kris Moore <kris@…>, 15 months ago

Initial import of PC-BSD /current/ SVN repo

  • Property mode set to 100644
File size: 8.4 KB
Line 
1\ Copyright (c) 2003 Scott Long <scottl@freebsd.org>
2\ Copyright (c) 2003 Aleksander Fafula <alex@fafula.com>
3\ Copyright (c) 2006-2011 Devin Teske <devinteske@hotmail.com>
4\ All rights reserved.
5\
6\ Redistribution and use in source and binary forms, with or without
7\ modification, are permitted provided that the following conditions
8\ are met:
9\ 1. Redistributions of source code must retain the above copyright
10\    notice, this list of conditions and the following disclaimer.
11\ 2. Redistributions in binary form must reproduce the above copyright
12\    notice, this list of conditions and the following disclaimer in the
13\    documentation and/or other materials provided with the distribution.
14\
15\ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16\ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17\ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18\ ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19\ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20\ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21\ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22\ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25\ SUCH DAMAGE.
26\
27\ $FreeBSD: releng/9.1/sys/boot/forth/beastie.4th 222417 2011-05-28 08:50:38Z julian $
28
29marker task-beastie.4th
30
31include /boot/color.4th
32include /boot/delay.4th
33
34variable logoX
35variable logoY
36
37\ Initialize logo placement to defaults
3846 logoX !
394  logoY !
40
41: beastie-logo ( x y -- ) \ color BSD mascot (19 rows x 34 columns)
42
432dup at-xy ."               [31m,        ," 1+
442dup at-xy ."              /(        )`" 1+
452dup at-xy ."              \ \___   / |" 1+
462dup at-xy ."              /- [37m_[31m  `-/  '" 1+
472dup at-xy ."             ([37m/\/ \[31m \   /\" 1+
482dup at-xy ."             [37m/ /   |[31m `    \" 1+
492dup at-xy ."             [34mO O   [37m) [31m/    |" 1+
502dup at-xy ."             [37m`-^--'[31m`<     '" 1+
512dup at-xy ."            (_.)  _  )   /" 1+
522dup at-xy ."             `.___/`    /" 1+
532dup at-xy ."               `-----' /" 1+
542dup at-xy ."  [33m<----.[31m     __ / __   \" 1+
552dup at-xy ."  [33m<----|====[31mO)))[33m==[31m) \) /[33m====|" 1+
562dup at-xy ."  [33m<----'[31m    `--' `.__,' \" 1+
572dup at-xy ."               |        |" 1+
582dup at-xy ."                \       /       /\" 1+
592dup at-xy ."           [36m______[31m( (_  / \______/" 1+
602dup at-xy ."         [36m,'  ,-----'   |" 1+
61     at-xy ."         `--{__________)[37m"
62
63        \ Put the cursor back at the bottom
64        0 25 at-xy
65;
66
67: beastiebw-logo ( x y -- ) \ B/W BSD mascot (19 rows x 34 columns)
68
69        2dup at-xy ."               ,        ," 1+
70        2dup at-xy ."              /(        )`" 1+
71        2dup at-xy ."              \ \___   / |" 1+
72        2dup at-xy ."              /- _  `-/  '" 1+
73        2dup at-xy ."             (/\/ \ \   /\" 1+
74        2dup at-xy ."             / /   | `    \" 1+
75        2dup at-xy ."             O O   ) /    |" 1+
76        2dup at-xy ."             `-^--'`<     '" 1+
77        2dup at-xy ."            (_.)  _  )   /" 1+
78        2dup at-xy ."             `.___/`    /" 1+
79        2dup at-xy ."               `-----' /" 1+
80        2dup at-xy ."  <----.     __ / __   \" 1+
81        2dup at-xy ."  <----|====O)))==) \) /====|" 1+
82        2dup at-xy ."  <----'    `--' `.__,' \" 1+
83        2dup at-xy ."               |        |" 1+
84        2dup at-xy ."                \       /       /\" 1+
85        2dup at-xy ."           ______( (_  / \______/" 1+
86        2dup at-xy ."         ,'  ,-----'   |" 1+
87             at-xy ."         `--{__________)"
88
89        \ Put the cursor back at the bottom
90        0 25 at-xy
91;
92
93: fbsdbw-logo ( x y -- ) \ "FreeBSD" logo in B/W (13 rows x 21 columns)
94
95        \ We used to use the beastie himself as our default... until the
96        \ eventual complaint derided his reign of the advanced boot-menu.
97        \
98        \ This is the replacement of beastie to satiate the haters of our
99        \ beloved helper-daemon (ready to track down and spear bugs with
100        \ his trident and sporty sneakers; see above).
101        \
102        \ Since we merely just changed the default and not the default-
103        \ location, below is an adjustment to the passed-in coordinates,
104        \ forever influenced by the proper location of beastie himself
105        \ kept as the default loader_logo_x/loader_logo_y values.
106        \
107        5 + swap 6 + swap
108
109        2dup at-xy ."  ______" 1+
110        2dup at-xy ." |  ____| __ ___  ___ " 1+
111        2dup at-xy ." | |__ | '__/ _ \/ _ \" 1+
112        2dup at-xy ." |  __|| | |  __/  __/" 1+
113        2dup at-xy ." | |   | | |    |    |" 1+
114        2dup at-xy ." |_|   |_|  \___|\___|" 1+
115        2dup at-xy ."  ____   _____ _____" 1+
116        2dup at-xy ." |  _ \ / ____|  __ \" 1+
117        2dup at-xy ." | |_) | (___ | |  | |" 1+
118        2dup at-xy ." |  _ < \___ \| |  | |" 1+
119        2dup at-xy ." | |_) |____) | |__| |" 1+
120        2dup at-xy ." |     |      |      |" 1+
121             at-xy ." |____/|_____/|_____/"
122
123        \ Put the cursor back at the bottom
124        0 25 at-xy
125;
126
127: orb-logo ( x y -- ) \ color Orb mascot (15 rows x 30 columns)
128
129        3 + \ beastie adjustment (see `fbsdbw-logo' comments above)
130
131        2dup at-xy ." " 1+
132        2dup at-xy ." " 1+
133        2dup at-xy ." " 1+
134        2dup at-xy ." " 1+
135        2dup at-xy ." " 1+
136        2dup at-xy ." " 1+
137        2dup at-xy ." " 1+
138        2dup at-xy ." " 1+
139        2dup at-xy ." " 1+
140        2dup at-xy ." " 1+
141        2dup at-xy ." " 1+
142        2dup at-xy ." " 1+
143        2dup at-xy ." " 1+
144        2dup at-xy ." " 1+
145             at-xy ." "
146
147        \ Put the cursor back at the bottom
148        0 25 at-xy
149;
150
151: orbbw-logo ( x y -- ) \ B/W Orb mascot (15 rows x 32 columns)
152
153        3 + \ beastie adjustment (see `fbsdbw-logo' comments above)
154
155        2dup at-xy ." " 1+
156        2dup at-xy ." " 1+
157        2dup at-xy ." " 1+
158        2dup at-xy ." " 1+
159        2dup at-xy ." " 1+
160        2dup at-xy ." " 1+
161        2dup at-xy ." " 1+
162        2dup at-xy ." " 1+
163        2dup at-xy ." " 1+
164        2dup at-xy ." " 1+
165        2dup at-xy ." " 1+
166        2dup at-xy ." " 1+
167        2dup at-xy ." " 1+
168        2dup at-xy ." " 1+
169             at-xy ." "
170
171        \ Put the cursor back at the bottom
172        0 25 at-xy
173;
174
175\ This function draws any number of beastie logos at (loader_logo_x,
176\ loader_logo_y) if defined, else (46,4) (to the right of the menu). To choose
177\ your beastie, set the variable `loader_logo' to the respective logo name.
178\
179\ Currently available:
180\
181\       NAME        DESCRIPTION
182\       beastie     Color ``Helper Daemon'' mascot (19 rows x 34 columns)
183\       beastiebw   B/W ``Helper Daemon'' mascot (19 rows x 34 columns)
184\       fbsdbw      "FreeBSD" logo in B/W (13 rows x 21 columns)
185\       orb         Color ``Orb'' mascot (15 rows x 30 columns)
186\       orbbw       B/W ``Orb'' mascot (15 rows x 32 columns) (default)
187\
188\ NOTE: Setting `loader_logo' to an undefined value (such as "none") will
189\       prevent beastie from being drawn.
190\
191: draw-beastie ( -- ) \ at (loader_logo_x,loader_logo_y), else (46,4)
192
193        s" loader_logo_x" getenv dup -1 <> if
194                ?number 1 = if logoX ! then
195        else
196                drop
197        then
198        s" loader_logo_y" getenv dup -1 <> if
199                ?number 1 = if logoY ! then
200        else
201                drop
202        then
203
204        s" loader_logo" getenv dup -1 = if
205                logoX @ logoY @
206                loader_color? if
207                        orb-logo
208                else
209                        orbbw-logo
210                then
211                drop exit
212        then
213
214        2dup s" beastie" compare-insensitive 0= if
215                logoX @ logoY @ beastie-logo
216                2drop exit
217        then
218        2dup s" beastiebw" compare-insensitive 0= if
219                logoX @ logoY @ beastiebw-logo
220                2drop exit
221        then
222        2dup s" fbsdbw" compare-insensitive 0= if
223                logoX @ logoY @ fbsdbw-logo
224                2drop exit
225        then
226        2dup s" orb" compare-insensitive 0= if
227                logoX @ logoY @ orb-logo
228                2drop exit
229        then
230        2dup s" orbbw" compare-insensitive 0= if
231                logoX @ logoY @ orbbw-logo
232                2drop exit
233        then
234
235        2drop
236;
237
238: clear-beastie ( -- ) \ clears beastie from the screen
239        logoX @ logoY @
240        2dup at-xy 34 spaces 1+         2dup at-xy 34 spaces 1+
241        2dup at-xy 34 spaces 1+         2dup at-xy 34 spaces 1+
242        2dup at-xy 34 spaces 1+         2dup at-xy 34 spaces 1+
243        2dup at-xy 34 spaces 1+         2dup at-xy 34 spaces 1+
244        2dup at-xy 34 spaces 1+         2dup at-xy 34 spaces 1+
245        2dup at-xy 34 spaces 1+         2dup at-xy 34 spaces 1+
246        2dup at-xy 34 spaces 1+         2dup at-xy 34 spaces 1+
247        2dup at-xy 34 spaces 1+         2dup at-xy 34 spaces 1+
248        2dup at-xy 34 spaces 1+         2dup at-xy 34 spaces 1+
249        2dup at-xy 34 spaces            2drop
250
251        \ Put the cursor back at the bottom
252        0 25 at-xy
253;
254
255: beastie-start ( -- ) \ starts the menu
256        s" beastie_disable" getenv
257        dup -1 <> if
258                s" YES" compare-insensitive 0= if
259                        exit
260                then
261        else
262                drop
263        then
264
265        s" loader_delay" getenv
266        -1 = if
267                s" include /boot/menu.rc" evaluate
268        else
269                drop
270                ." Loading Menu (Ctrl-C to Abort)" cr
271                s" set delay_command='include /boot/menu.rc'" evaluate
272                s" set delay_showdots" evaluate
273                delay_execute
274        then
275;
Note: See TracBrowser for help on using the repository browser.