Annotation of elwix/config/boot/brand.4th, revision 1.6

1.6     ! misho       1: \ Copyright (c) 2006-2011 Devin Teske <dteske@FreeBSD.org>
1.2       misho       2: \ All rights reserved.
                      3: \ 
                      4: \ Redistribution and use in source and binary forms, with or without
                      5: \ modification, are permitted provided that the following conditions
                      6: \ are met:
                      7: \ 1. Redistributions of source code must retain the above copyright
                      8: \    notice, this list of conditions and the following disclaimer.
                      9: \ 2. Redistributions in binary form must reproduce the above copyright
                     10: \    notice, this list of conditions and the following disclaimer in the
                     11: \    documentation and/or other materials provided with the distribution.
                     12: \ 
                     13: \ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
                     14: \ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     15: \ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     16: \ ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
                     17: \ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     18: \ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     19: \ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     20: \ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     21: \ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     22: \ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     23: \ SUCH DAMAGE.
                     24: \ 
1.6     ! misho      25: \ $FreeBSD: head/sys/boot/forth/brand.4th 266938 2014-06-01 04:08:45Z rodrigc $
1.2       misho      26: \
1.6     ! misho      27: \ $Id: brand.4th,v 1.5.10.2 2014/07/01 19:36:35 misho Exp $
1.2       misho      28: 
                     29: marker task-brand.4th
                     30: 
                     31: variable brandX
                     32: variable brandY
                     33: 
                     34: \ Initialize logo placement
                     35: 2 brandX !
                     36: 1 brandY !
                     37: 
                     38: : elwix-logo ( x y -- ) \ "ElwiX" [wide] logo in B/W (7 rows x 42 columns)
                     39: 
                     40:        2dup at-xy ."                                           " 1+
                     41:        2dup at-xy ." '||''''|  '||               ||  '||' '|'  " 1+
                     42:        2dup at-xy ."  ||  .     ||  ... ... ... ...    || |    " 1+
                     43:        2dup at-xy ."  ||''|     ||   ||  ||  |   ||     ||     " 1+
                     44:        2dup at-xy ."  ||        ||    ||| |||    ||    | ||    " 1+
                     45:        2dup at-xy ." .||.....| .||.    |   |    .||. .|   ||.  " 1+
                     46:             at-xy ."                                           "
                     47: 
                     48:        \ Put the cursor back at the bottom
                     49:        0 25 at-xy
                     50: ;
                     51: 
                     52: : fbsd-logo ( x y -- ) \ "FreeBSD" [wide] logo in B/W (7 rows x 42 columns)
                     53: 
                     54:        2dup at-xy ."  ______               ____   _____ _____  " 1+
                     55:        2dup at-xy ." |  ____|             |  _ \ / ____|  __ \ " 1+
                     56:        2dup at-xy ." | |___ _ __ ___  ___ | |_) | (___ | |  | |" 1+
                     57:        2dup at-xy ." |  ___| '__/ _ \/ _ \|  _ < \___ \| |  | |" 1+
                     58:        2dup at-xy ." | |   | | |  __/  __/| |_) |____) | |__| |" 1+
                     59:        2dup at-xy ." | |   | | |    |    ||     |      |      |" 1+
                     60:             at-xy ." |_|   |_|  \___|\___||____/|_____/|_____/ "
                     61: 
                     62:        \ Put the cursor back at the bottom
                     63:        0 25 at-xy
                     64: ;
                     65: 
                     66: \ This function draws any number of company logos at (loader_brand_x,
                     67: \ loader_brand_y) if defined, or (2,1) (top-left) if not defined. To choose
                     68: \ your logo, set the variable `loader_brand' to the respective logo name.
                     69: \ 
                     70: \ Currently available:
                     71: \
                     72: \      NAME        DESCRIPTION
                     73: \      fbsd        FreeBSD logo
                     74: \      elwix       ELWIX logo
                     75: \ 
1.6     ! misho      76: \ NOTE: Setting `loader_brand' to the value of an existing function
        !            77: \       (such as "mycustom-brand") will cause that symbol to be executed.
1.2       misho      78: \ NOTE: Setting `loader_brand' to an undefined value (such as "none") will
                     79: \       prevent any brand from being drawn.
                     80: \ 
                     81: : draw-brand ( -- )
                     82: 
                     83:        s" loader_brand_x" getenv dup -1 <> if
                     84:                ?number 1 = if
                     85:                        brandX !
                     86:                then
                     87:        else
                     88:                drop
                     89:        then
                     90: 
                     91:        s" loader_brand_y" getenv dup -1 <> if
                     92:                ?number 1 = if
                     93:                        brandY !
                     94:                then
                     95:        else
                     96:                drop
                     97:        then
                     98: 
                     99:        s" loader_brand" getenv dup -1 = if
                    100:                brandX @ brandY @ elwix-logo
                    101:                drop exit
                    102:        then
                    103: 
                    104:        2dup s" fbsd" compare-insensitive 0= if
                    105:                brandX @ brandY @ fbsd-logo
                    106:                2drop exit
                    107:        then
                    108:        2dup s" elwix" compare-insensitive 0= if
                    109:                brandX @ brandY @ elwix-logo
                    110:                2drop exit
                    111:        then
                    112: 
1.6     ! misho     113:         \ if it refers to a raw symbol then run that function
        !           114:         sfind if
        !           115:             brandX @ brandY @
        !           116:             2 roll
        !           117:             execute
        !           118:         else            
        !           119:             drop
        !           120:         then
        !           121: 
1.2       misho     122:        2drop
                    123: ;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>