1*ca987d46SWarner Losh\ Copyright (c) 2003 Scott Long <scottl@FreeBSD.org> 2*ca987d46SWarner Losh\ Copyright (c) 2003 Aleksander Fafula <alex@fafula.com> 3*ca987d46SWarner Losh\ Copyright (c) 2006-2015 Devin Teske <dteske@FreeBSD.org> 4*ca987d46SWarner Losh\ All rights reserved. 5*ca987d46SWarner Losh\ 6*ca987d46SWarner Losh\ Redistribution and use in source and binary forms, with or without 7*ca987d46SWarner Losh\ modification, are permitted provided that the following conditions 8*ca987d46SWarner Losh\ are met: 9*ca987d46SWarner Losh\ 1. Redistributions of source code must retain the above copyright 10*ca987d46SWarner Losh\ notice, this list of conditions and the following disclaimer. 11*ca987d46SWarner Losh\ 2. Redistributions in binary form must reproduce the above copyright 12*ca987d46SWarner Losh\ notice, this list of conditions and the following disclaimer in the 13*ca987d46SWarner Losh\ documentation and/or other materials provided with the distribution. 14*ca987d46SWarner Losh\ 15*ca987d46SWarner Losh\ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16*ca987d46SWarner Losh\ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17*ca987d46SWarner Losh\ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18*ca987d46SWarner Losh\ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19*ca987d46SWarner Losh\ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20*ca987d46SWarner Losh\ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21*ca987d46SWarner Losh\ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22*ca987d46SWarner Losh\ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23*ca987d46SWarner Losh\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24*ca987d46SWarner Losh\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25*ca987d46SWarner Losh\ SUCH DAMAGE. 26*ca987d46SWarner Losh\ 27*ca987d46SWarner Losh 28*ca987d46SWarner Losh46 logoX ! 4 logoY ! \ Initialize logo placement defaults 29*ca987d46SWarner Losh 30*ca987d46SWarner Losh: logo+ ( x y c-addr/u -- x y' ) 31*ca987d46SWarner Losh 2swap 2dup at-xy 2swap \ position the cursor 32*ca987d46SWarner Losh [char] @ escc! \ replace @ with Esc 33*ca987d46SWarner Losh type \ print to the screen 34*ca987d46SWarner Losh 1+ \ increase y for next time we're called 35*ca987d46SWarner Losh; 36*ca987d46SWarner Losh 37*ca987d46SWarner Losh: logo ( x y -- ) \ color BSD mascot (19 rows x 34 columns) 38*ca987d46SWarner Losh 39*ca987d46SWarner Losh s" @[31m, ," logo+ 40*ca987d46SWarner Losh s" /( )`" logo+ 41*ca987d46SWarner Losh s" \ \___ / |" logo+ 42*ca987d46SWarner Losh s" /- @[m_@[31m `-/ '" logo+ 43*ca987d46SWarner Losh s" (@[m/\/ \@[31m \ /\" logo+ 44*ca987d46SWarner Losh s" @[m/ / |@[31m ` \" logo+ 45*ca987d46SWarner Losh s" @[34mO O @[m) @[31m/ |" logo+ 46*ca987d46SWarner Losh s" @[m`-^--'@[31m`< '" logo+ 47*ca987d46SWarner Losh s" (_.) _ ) /" logo+ 48*ca987d46SWarner Losh s" `.___/` /" logo+ 49*ca987d46SWarner Losh s" `-----' /" logo+ 50*ca987d46SWarner Losh s" @[33m<----.@[31m __ / __ \" logo+ 51*ca987d46SWarner Losh s" @[33m<----|====@[31mO)))@[33m==@[31m) \) /@[33m====|" logo+ 52*ca987d46SWarner Losh s" @[33m<----'@[31m `--' `.__,' \" logo+ 53*ca987d46SWarner Losh s" | |" logo+ 54*ca987d46SWarner Losh s" \ / /\" logo+ 55*ca987d46SWarner Losh s" @[36m______@[31m( (_ / \______/" logo+ 56*ca987d46SWarner Losh s" @[36m,' ,-----' |" logo+ 57*ca987d46SWarner Losh s" `--{__________)@[m" logo+ 58*ca987d46SWarner Losh 59*ca987d46SWarner Losh 2drop 60*ca987d46SWarner Losh; 61