1ca987d46SWarner Losh\ Copyright (c) 2006-2015 Devin Teske <dteske@FreeBSD.org> 2ca987d46SWarner Losh\ All rights reserved. 3ca987d46SWarner Losh\ 4ca987d46SWarner Losh\ Redistribution and use in source and binary forms, with or without 5ca987d46SWarner Losh\ modification, are permitted provided that the following conditions 6ca987d46SWarner Losh\ are met: 7ca987d46SWarner Losh\ 1. Redistributions of source code must retain the above copyright 8ca987d46SWarner Losh\ notice, this list of conditions and the following disclaimer. 9ca987d46SWarner Losh\ 2. Redistributions in binary form must reproduce the above copyright 10ca987d46SWarner Losh\ notice, this list of conditions and the following disclaimer in the 11ca987d46SWarner Losh\ documentation and/or other materials provided with the distribution. 12ca987d46SWarner Losh\ 13ca987d46SWarner Losh\ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14ca987d46SWarner Losh\ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15ca987d46SWarner Losh\ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16ca987d46SWarner Losh\ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17ca987d46SWarner Losh\ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18ca987d46SWarner Losh\ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19ca987d46SWarner Losh\ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20ca987d46SWarner Losh\ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21ca987d46SWarner Losh\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22ca987d46SWarner Losh\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23ca987d46SWarner Losh\ SUCH DAMAGE. 24ca987d46SWarner Losh\ 25ca987d46SWarner Losh 26ca987d46SWarner Loshmarker task-brand.4th 27ca987d46SWarner Losh 28ca987d46SWarner Loshvariable brandX 29ca987d46SWarner Loshvariable brandY 30ca987d46SWarner Losh 31ca987d46SWarner Losh\ Initialize brand placement to defaults 32ca987d46SWarner Losh2 brandX ! 33ca987d46SWarner Losh1 brandY ! 34ca987d46SWarner Losh 35ca987d46SWarner Losh\ This function draws any number of company brands at (loader_brand_x, 36ca987d46SWarner Losh\ loader_brand_y) if defined, or (2,1) (top-left). To choose your brand, set 37ca987d46SWarner Losh\ the variable `loader_brand' to the respective brand name. 38ca987d46SWarner Losh\ 39ca987d46SWarner Losh\ NOTE: Each is defined as a brand function in /boot/brand-${loader_brand}.4th 40ca987d46SWarner Losh\ NOTE: If `/boot/brand-${loader_brand}.4th' does not exist or does not define 41ca987d46SWarner Losh\ a `brand' function, no brand is drawn. 42ca987d46SWarner Losh\ 43ca987d46SWarner Losh: draw-brand ( -- ) \ at (loader_brand_x,loader_brand_y), else (2,1) 44ca987d46SWarner Losh 45ca987d46SWarner Losh s" loader_brand_x" getenv dup -1 <> if 46ca987d46SWarner Losh ?number 1 = if brandX ! then 47ca987d46SWarner Losh else drop then 48ca987d46SWarner Losh s" loader_brand_y" getenv dup -1 <> if 49ca987d46SWarner Losh ?number 1 = if brandY ! then 50ca987d46SWarner Losh else drop then 51ca987d46SWarner Losh 52ca987d46SWarner Losh \ If `brand' is defined, execute it 53ca987d46SWarner Losh s" brand" sfind ( -- xt|0 bool ) if 54ca987d46SWarner Losh brandX @ brandY @ rot execute 55ca987d46SWarner Losh else 56ca987d46SWarner Losh \ Not defined; try-include desired brand file 57ca987d46SWarner Losh drop ( xt = 0 ) \ cruft 58ca987d46SWarner Losh s" loader_brand" getenv dup -1 = over 0= or if 59ca987d46SWarner Losh dup 0= if 2drop else drop then \ getenv result unused 60ca987d46SWarner Losh s" try-include /boot/brand-fbsd.4th" 61ca987d46SWarner Losh else 62ca987d46SWarner Losh 2drop ( c-addr/u -- ) \ getenv result unused 63ca987d46SWarner Losh s" try-include /boot/brand-${loader_brand}.4th" 64ca987d46SWarner Losh then 65ca987d46SWarner Losh evaluate 66ca987d46SWarner Losh 1 spaces 67ca987d46SWarner Losh 68ca987d46SWarner Losh \ Execute `brand' if defined now 69ca987d46SWarner Losh s" brand" sfind if 70ca987d46SWarner Losh brandX @ brandY @ rot execute 71ca987d46SWarner Losh else drop then 72ca987d46SWarner Losh then 73ca987d46SWarner Losh; 74*3630506bSToomas Soome 75*3630506bSToomas Soome: draw-brand 76*3630506bSToomas Soome ['] draw-brand console-iterate 77*3630506bSToomas Soome; 78