1*22028508SToomas Soome\ Copyright (c) 2006-2015 Devin Teske <dteske@FreeBSD.org> 2*22028508SToomas Soome\ Copyright 2019 OmniOS Community Edition (OmniOSce) Association. 3*22028508SToomas Soome\ All rights reserved. 4*22028508SToomas Soome\ 5*22028508SToomas Soome\ Redistribution and use in source and binary forms, with or without 6*22028508SToomas Soome\ modification, are permitted provided that the following conditions 7*22028508SToomas Soome\ are met: 8*22028508SToomas Soome\ 1. Redistributions of source code must retain the above copyright 9*22028508SToomas Soome\ notice, this list of conditions and the following disclaimer. 10*22028508SToomas Soome\ 2. Redistributions in binary form must reproduce the above copyright 11*22028508SToomas Soome\ notice, this list of conditions and the following disclaimer in the 12*22028508SToomas Soome\ documentation and/or other materials provided with the distribution. 13*22028508SToomas Soome\ 14*22028508SToomas Soome\ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*22028508SToomas Soome\ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*22028508SToomas Soome\ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*22028508SToomas Soome\ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*22028508SToomas Soome\ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*22028508SToomas Soome\ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*22028508SToomas Soome\ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*22028508SToomas Soome\ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*22028508SToomas Soome\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*22028508SToomas Soome\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*22028508SToomas Soome\ SUCH DAMAGE. 25*22028508SToomas Soome 26*22028508SToomas Soomemarker task-version.4th 27*22028508SToomas Soome 28*22028508SToomas Soomevocabulary version-processing 29*22028508SToomas Soomeonly forth also version-processing definitions 30*22028508SToomas Soome 31*22028508SToomas Soomevariable versionX 32*22028508SToomas Soomevariable versionY 33*22028508SToomas Soome 34*22028508SToomas Soome\ Default $loader_version value if not overridden or using tribute screen 35*22028508SToomas Soome: str_loader_version ( -- C-ADDR/U|-1 ) -1 ; 36*22028508SToomas Soome 37*22028508SToomas Soome\ Initialize text placement to defaults 38*22028508SToomas Soome80 versionX ! \ NOTE: this is the ending column (text is right-justified) 39*22028508SToomas Soome24 versionY ! 40*22028508SToomas Soome 41*22028508SToomas Soomeonly forth definitions also version-processing 42*22028508SToomas Soome 43*22028508SToomas Soome: print_version ( -- ) 44*22028508SToomas Soome 45*22028508SToomas Soome \ Get the text placement position (if set) 46*22028508SToomas Soome s" loader_version_x" getenv dup -1 <> if 47*22028508SToomas Soome ?number drop versionX ! -1 48*22028508SToomas Soome then drop 49*22028508SToomas Soome s" loader_version_y" getenv dup -1 <> if 50*22028508SToomas Soome ?number drop versionY ! -1 51*22028508SToomas Soome then drop 52*22028508SToomas Soome 53*22028508SToomas Soome \ Default version if none was set 54*22028508SToomas Soome s" loader_version" getenv dup -1 = if 55*22028508SToomas Soome drop 56*22028508SToomas Soome \ Use above default if no logo is requested 57*22028508SToomas Soome s" loader_logo" getenv dup -1 = if 58*22028508SToomas Soome drop str_loader_version 59*22028508SToomas Soome else 60*22028508SToomas Soome \ For tributes, do nothing (defer to logo-*.4th) 61*22028508SToomas Soome 2dup s" tribute" compare-insensitive 0= if 62*22028508SToomas Soome 2drop 63*22028508SToomas Soome s" logo" sfind if 64*22028508SToomas Soome drop exit \ see logo-tribute.4th 65*22028508SToomas Soome else 66*22028508SToomas Soome drop str_loader_version 67*22028508SToomas Soome then 68*22028508SToomas Soome else 2dup s" tributebw" compare-insensitive 0= if 69*22028508SToomas Soome 2drop 70*22028508SToomas Soome s" logo" sfind if 71*22028508SToomas Soome drop exit \ see logo-tributebw.4th 72*22028508SToomas Soome else 73*22028508SToomas Soome drop str_loader_version 74*22028508SToomas Soome then 75*22028508SToomas Soome else 76*22028508SToomas Soome 2drop str_loader_version 77*22028508SToomas Soome then then 78*22028508SToomas Soome then 79*22028508SToomas Soome then dup -1 = if 80*22028508SToomas Soome drop exit \ default version (above) is disabled 81*22028508SToomas Soome then 82*22028508SToomas Soome 83*22028508SToomas Soome \ Right justify the text 84*22028508SToomas Soome dup versionX @ swap - versionY @ at-xy 85*22028508SToomas Soome 86*22028508SToomas Soome \ Print the version (optionally in cyan) 87*22028508SToomas Soome loader_color? dup ( c-addr/u -- c-addr/u bool bool ) 88*22028508SToomas Soome if 6 fg then 89*22028508SToomas Soome -rot type 90*22028508SToomas Soome if me then 91*22028508SToomas Soome 92*22028508SToomas Soome at-bl 93*22028508SToomas Soome; 94*22028508SToomas Soome 95*22028508SToomas Soomeonly forth definitions 96