1*ba11c5b5SToomas Soome.\" Copyright (c) 1999 Daniel C. Sobral 2*ba11c5b5SToomas Soome.\" All rights reserved. 3*ba11c5b5SToomas Soome.\" 4*ba11c5b5SToomas Soome.\" Redistribution and use in source and binary forms, with or without 5*ba11c5b5SToomas Soome.\" modification, are permitted provided that the following conditions 6*ba11c5b5SToomas Soome.\" are met: 7*ba11c5b5SToomas Soome.\" 1. Redistributions of source code must retain the above copyright 8*ba11c5b5SToomas Soome.\" notice, this list of conditions and the following disclaimer. 9*ba11c5b5SToomas Soome.\" 2. Redistributions in binary form must reproduce the above copyright 10*ba11c5b5SToomas Soome.\" notice, this list of conditions and the following disclaimer in the 11*ba11c5b5SToomas Soome.\" documentation and/or other materials provided with the distribution. 12*ba11c5b5SToomas Soome.\" 13*ba11c5b5SToomas Soome.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14*ba11c5b5SToomas Soome.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15*ba11c5b5SToomas Soome.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16*ba11c5b5SToomas Soome.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17*ba11c5b5SToomas Soome.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18*ba11c5b5SToomas Soome.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19*ba11c5b5SToomas Soome.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20*ba11c5b5SToomas Soome.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21*ba11c5b5SToomas Soome.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22*ba11c5b5SToomas Soome.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23*ba11c5b5SToomas Soome.\" SUCH DAMAGE. 24*ba11c5b5SToomas Soome.\" 25*ba11c5b5SToomas Soome.Dd Apr 20, 2017 26*ba11c5b5SToomas Soome.Dt LOADER 5 27*ba11c5b5SToomas Soome.Os 28*ba11c5b5SToomas Soome.Sh NAME 29*ba11c5b5SToomas Soome.Nm loader 30*ba11c5b5SToomas Soome.Nd kernel bootstrapping final stage 31*ba11c5b5SToomas Soome.Sh DESCRIPTION 32*ba11c5b5SToomas SoomeThe 33*ba11c5b5SToomas Soome.Nm 34*ba11c5b5SToomas Soomeis the final stage of 35*ba11c5b5SToomas Soome.Nm illumos Ns 's 36*ba11c5b5SToomas Soomekernel bootstrapping process. The actual name for the stage depends on 37*ba11c5b5SToomas Soomethe platform. On IA32 (i386) architectures with BIOS firmware, it is a 38*ba11c5b5SToomas Soome.Pa BTX 39*ba11c5b5SToomas Soomeclient and named 40*ba11c5b5SToomas Soome.Nm zfsloader . 41*ba11c5b5SToomas SoomeIt is linked statically to libstand and usually located in the directory 42*ba11c5b5SToomas Soome.Pa /boot . 43*ba11c5b5SToomas Soome.Pp 44*ba11c5b5SToomas Soome.Nm 45*ba11c5b5SToomas Soomesupports booting from 46*ba11c5b5SToomas Soome.Cm ZFS , 47*ba11c5b5SToomas Soome.Cm UFS , 48*ba11c5b5SToomas Soome.Cm PCFS , 49*ba11c5b5SToomas Soome.Cm HSFS 50*ba11c5b5SToomas Soomeand 51*ba11c5b5SToomas Soome.Cm NFS 52*ba11c5b5SToomas Soomefile systems. Additionally, 53*ba11c5b5SToomas Soome.Nm 54*ba11c5b5SToomas Soomecan load files from the 55*ba11c5b5SToomas Soome.Cm TFTP 56*ba11c5b5SToomas Soomefile service. The NFS and TFTP based boot is enabled via 57*ba11c5b5SToomas Soome.Xr pxeboot 5 . 58*ba11c5b5SToomas SoomeThe 59*ba11c5b5SToomas Soome.Nm 60*ba11c5b5SToomas Soomealso does support uncompressing gzip files while reading. The uncompression 61*ba11c5b5SToomas Soomewill happen automatically if the compressed file is stored without .gz 62*ba11c5b5SToomas Soomesuffix or if the file is accessed by leaving out the .gz suffix from the name. 63*ba11c5b5SToomas SoomeIf the file is referred by full name, including .gz suffix, then the file 64*ba11c5b5SToomas Soomecontent is read as is and the uncompression is not performed. 65*ba11c5b5SToomas Soome.Pp 66*ba11c5b5SToomas Soome.Nm 67*ba11c5b5SToomas Soomeprovides a scripting language that can be used to 68*ba11c5b5SToomas Soomeautomate tasks, do pre-configuration or assist in recovery 69*ba11c5b5SToomas Soomeprocedures. 70*ba11c5b5SToomas SoomeThis scripting language is roughly divided in 71*ba11c5b5SToomas Soometwo main components. 72*ba11c5b5SToomas SoomeThe smaller one is a set of commands 73*ba11c5b5SToomas Soomedesigned for direct use by the casual user, called "builtin 74*ba11c5b5SToomas Soomecommands" for historical reasons. 75*ba11c5b5SToomas SoomeThe main drive behind these commands is user-friendliness. 76*ba11c5b5SToomas SoomeThe bigger component is an 77*ba11c5b5SToomas Soome.Tn ANS 78*ba11c5b5SToomas SoomeForth compatible Forth interpreter based on FICL, by 79*ba11c5b5SToomas Soome.An John Sadler . 80*ba11c5b5SToomas Soome.Pp 81*ba11c5b5SToomas SoomeDuring initialization, 82*ba11c5b5SToomas Soome.Nm 83*ba11c5b5SToomas Soomewill probe for a console and set the 84*ba11c5b5SToomas Soome.Va console 85*ba11c5b5SToomas Soomevariable, or set it to serial console 86*ba11c5b5SToomas Soome.Pq Do Li ttya Dc - Dq Li ttyd 87*ba11c5b5SToomas Soomeif the previous boot stage used that. 88*ba11c5b5SToomas SoomeIf multiple consoles are selected, they will be listed separated by commas. 89*ba11c5b5SToomas SoomeThen, devices are probed, 90*ba11c5b5SToomas Soome.Va currdev 91*ba11c5b5SToomas Soomeand 92*ba11c5b5SToomas Soome.Va loaddev 93*ba11c5b5SToomas Soomeare set, and 94*ba11c5b5SToomas Soome.Va COLUMNS , 95*ba11c5b5SToomas Soome.Va LINES , 96*ba11c5b5SToomas Soomeand 97*ba11c5b5SToomas Soome.Va ISADIR 98*ba11c5b5SToomas Soomeare set. 99*ba11c5b5SToomas SoomeNext, 100*ba11c5b5SToomas Soome.Tn FICL 101*ba11c5b5SToomas Soomeis initialized, the builtin words are added to its vocabulary. 102*ba11c5b5SToomas SoomeThe inner interpreter 103*ba11c5b5SToomas Soome.Nm 104*ba11c5b5SToomas Soomewill use with 105*ba11c5b5SToomas Soome.Tn FICL 106*ba11c5b5SToomas Soomeis then set to 107*ba11c5b5SToomas Soome.Ic interpret , 108*ba11c5b5SToomas Soomewhich is 109*ba11c5b5SToomas Soome.Tn FICL Ns 's 110*ba11c5b5SToomas Soomedefault. 111*ba11c5b5SToomas SoomeAfter that, 112*ba11c5b5SToomas Soome.Pa /boot/loader.rc 113*ba11c5b5SToomas Soomeis processed if available. 114*ba11c5b5SToomas SoomeThese files are processed through the 115*ba11c5b5SToomas Soome.Ic include 116*ba11c5b5SToomas Soomecommand, which reads all of them into memory before processing them, 117*ba11c5b5SToomas Soomemaking disk changes possible. 118*ba11c5b5SToomas Soome.Pp 119*ba11c5b5SToomas SoomeAt this point, if an 120*ba11c5b5SToomas Soome.Ic autoboot 121*ba11c5b5SToomas Soomehas not been tried, and if 122*ba11c5b5SToomas Soome.Va autoboot_delay 123*ba11c5b5SToomas Soomeis not set to 124*ba11c5b5SToomas Soome.Dq Li NO 125*ba11c5b5SToomas Soome(not case sensitive), then an 126*ba11c5b5SToomas Soome.Ic autoboot 127*ba11c5b5SToomas Soomewill be tried. 128*ba11c5b5SToomas SoomeIf the system gets past this point, 129*ba11c5b5SToomas Soome.Va prompt 130*ba11c5b5SToomas Soomewill be set and 131*ba11c5b5SToomas Soome.Nm 132*ba11c5b5SToomas Soomewill engage interactive mode. 133*ba11c5b5SToomas SoomePlease note that historically even when 134*ba11c5b5SToomas Soome.Va autoboot_delay 135*ba11c5b5SToomas Soomeis set to 136*ba11c5b5SToomas Soome.Dq Li 0 137*ba11c5b5SToomas Soomeuser will be able to interrupt autoboot process by pressing some key 138*ba11c5b5SToomas Soomeon the console while kernel and modules are being loaded. 139*ba11c5b5SToomas SoomeIn some 140*ba11c5b5SToomas Soomecases such behaviour may be undesirable, to prevent it set 141*ba11c5b5SToomas Soome.Va autoboot_delay 142*ba11c5b5SToomas Soometo 143*ba11c5b5SToomas Soome.Dq Li -1 , 144*ba11c5b5SToomas Soomein this case 145*ba11c5b5SToomas Soome.Nm 146*ba11c5b5SToomas Soomewill engage interactive mode only if 147*ba11c5b5SToomas Soome.Ic autoboot 148*ba11c5b5SToomas Soomehas failed. 149*ba11c5b5SToomas Soome.Ss Builtin Commands 150*ba11c5b5SToomas SoomeIn 151*ba11c5b5SToomas Soome.Nm , 152*ba11c5b5SToomas Soomebuiltin commands take parameters from the command line. 153*ba11c5b5SToomas SoomeIf an error condition occurs, an exception will be generated, 154*ba11c5b5SToomas Soomewhich can be intercepted using 155*ba11c5b5SToomas Soome.Tn ANS 156*ba11c5b5SToomas SoomeForth exception handling 157*ba11c5b5SToomas Soomewords. 158*ba11c5b5SToomas SoomeIf not intercepted, an error message will be displayed and 159*ba11c5b5SToomas Soomethe interpreter's state will be reset, emptying the stack and restoring 160*ba11c5b5SToomas Soomeinterpreting mode. 161*ba11c5b5SToomas Soome.Pp 162*ba11c5b5SToomas SoomeThe builtin commands available are: 163*ba11c5b5SToomas Soome.Pp 164*ba11c5b5SToomas Soome.Bl -tag -width Ds -compact 165*ba11c5b5SToomas Soome.It Ic autoboot Op Ar seconds Op Ar prompt 166*ba11c5b5SToomas SoomeProceeds to bootstrap the system after a number of seconds, if not 167*ba11c5b5SToomas Soomeinterrupted by the user. 168*ba11c5b5SToomas SoomeDisplays a countdown prompt 169*ba11c5b5SToomas Soomewarning the user the system is about to be booted, 170*ba11c5b5SToomas Soomeunless interrupted by a key press. 171*ba11c5b5SToomas SoomeThe kernel will be loaded first if necessary. 172*ba11c5b5SToomas SoomeDefaults to 10 seconds. 173*ba11c5b5SToomas Soome.Pp 174*ba11c5b5SToomas Soome.It Ic bcachestat 175*ba11c5b5SToomas SoomeDisplays statistics about disk cache usage. 176*ba11c5b5SToomas SoomeFor debugging only. 177*ba11c5b5SToomas Soome.Pp 178*ba11c5b5SToomas Soome.It Ic boot 179*ba11c5b5SToomas Soome.It Ic boot Ar kernelname Op Cm ... 180*ba11c5b5SToomas Soome.It Ic boot Fl flag Cm ... 181*ba11c5b5SToomas SoomeImmediately proceeds to bootstrap the system, loading the kernel 182*ba11c5b5SToomas Soomeif necessary. 183*ba11c5b5SToomas SoomeAny flags or arguments are passed to the kernel, but they 184*ba11c5b5SToomas Soomemust precede the kernel name, if a kernel name is provided. 185*ba11c5b5SToomas Soome.Pp 186*ba11c5b5SToomas Soome.Em WARNING : 187*ba11c5b5SToomas SoomeThe behavior of this builtin is changed if 188*ba11c5b5SToomas Soome.Xr loader.4th 5 189*ba11c5b5SToomas Soomeis loaded. 190*ba11c5b5SToomas Soome.Pp 191*ba11c5b5SToomas Soome.It Ic chain Ar device 192*ba11c5b5SToomas SoomeChain load another boot loader from the specified device. Device can be either 193*ba11c5b5SToomas Soomedisk name or partition. 194*ba11c5b5SToomas Soome.Pp 195*ba11c5b5SToomas Soome.It Ic echo Xo 196*ba11c5b5SToomas Soome.Op Fl n 197*ba11c5b5SToomas Soome.Op Aq message 198*ba11c5b5SToomas Soome.Xc 199*ba11c5b5SToomas SoomeDisplays text on the screen. 200*ba11c5b5SToomas SoomeA new line will be printed unless 201*ba11c5b5SToomas Soome.Fl n 202*ba11c5b5SToomas Soomeis specified. 203*ba11c5b5SToomas Soome.Pp 204*ba11c5b5SToomas Soome.It Ic heap 205*ba11c5b5SToomas SoomeDisplays memory usage statistics. 206*ba11c5b5SToomas SoomeFor debugging purposes only. 207*ba11c5b5SToomas Soome.Pp 208*ba11c5b5SToomas Soome.It Ic help Op topic Op subtopic 209*ba11c5b5SToomas SoomeShows help messages read from 210*ba11c5b5SToomas Soome.Pa /boot/loader.help . 211*ba11c5b5SToomas SoomeThe special topic 212*ba11c5b5SToomas Soome.Em index 213*ba11c5b5SToomas Soomewill list the topics available. 214*ba11c5b5SToomas Soome.Pp 215*ba11c5b5SToomas Soome.It Ic include Ar file Op Ar 216*ba11c5b5SToomas SoomeProcess script files. 217*ba11c5b5SToomas SoomeEach file, in turn, is completely read into memory, 218*ba11c5b5SToomas Soomeand then each of its lines is passed to the command line interpreter. 219*ba11c5b5SToomas SoomeIf any error is returned by the interpreter, the include 220*ba11c5b5SToomas Soomecommand aborts immediately, without reading any other files, and 221*ba11c5b5SToomas Soomereturns an error itself (see 222*ba11c5b5SToomas Soome.Sx ERRORS ) . 223*ba11c5b5SToomas Soome.Pp 224*ba11c5b5SToomas Soome.It Ic load Xo 225*ba11c5b5SToomas Soome.Op Fl t Ar type 226*ba11c5b5SToomas Soome.Ar file Cm ... 227*ba11c5b5SToomas Soome.Xc 228*ba11c5b5SToomas SoomeLoads a kernel or file of opaque contents tagged as being of the type 229*ba11c5b5SToomas Soome.Ar type . 230*ba11c5b5SToomas SoomeKernel and modules can be either in a.out or ELF format. 231*ba11c5b5SToomas SoomeAny arguments passed after the name of the file to be loaded 232*ba11c5b5SToomas Soomewill be passed as arguments to that file. 233*ba11c5b5SToomas Soome.Pp 234*ba11c5b5SToomas Soome.It Ic ls Xo 235*ba11c5b5SToomas Soome.Op Fl l 236*ba11c5b5SToomas Soome.Op Ar path 237*ba11c5b5SToomas Soome.Xc 238*ba11c5b5SToomas SoomeDisplays a listing of files in the directory 239*ba11c5b5SToomas Soome.Ar path , 240*ba11c5b5SToomas Soomeor the root directory if 241*ba11c5b5SToomas Soome.Ar path 242*ba11c5b5SToomas Soomeis not specified. 243*ba11c5b5SToomas SoomeIf 244*ba11c5b5SToomas Soome.Fl l 245*ba11c5b5SToomas Soomeis specified, file sizes will be shown too. 246*ba11c5b5SToomas Soome.Pp 247*ba11c5b5SToomas Soome.It Ic lsdev Op Fl v 248*ba11c5b5SToomas SoomeLists all of the devices from which it may be possible to load modules. 249*ba11c5b5SToomas SoomeIf 250*ba11c5b5SToomas Soome.Fl v 251*ba11c5b5SToomas Soomeis specified, more details are printed. 252*ba11c5b5SToomas Soome.Pp 253*ba11c5b5SToomas Soome.It Ic lsmod Op Fl v 254*ba11c5b5SToomas SoomeDisplays loaded modules. 255*ba11c5b5SToomas SoomeIf 256*ba11c5b5SToomas Soome.Fl v 257*ba11c5b5SToomas Soomeis specified, more details are shown. 258*ba11c5b5SToomas Soome.Pp 259*ba11c5b5SToomas Soome.It Ic more Ar file Op Ar 260*ba11c5b5SToomas SoomeDisplay the files specified, with a pause at each 261*ba11c5b5SToomas Soome.Va LINES 262*ba11c5b5SToomas Soomedisplayed. 263*ba11c5b5SToomas Soome.Pp 264*ba11c5b5SToomas Soome.It Ic read Xo 265*ba11c5b5SToomas Soome.Op Fl t Ar seconds 266*ba11c5b5SToomas Soome.Op Fl p Ar prompt 267*ba11c5b5SToomas Soome.Op Va variable 268*ba11c5b5SToomas Soome.Xc 269*ba11c5b5SToomas SoomeReads a line of input from the terminal, storing it in 270*ba11c5b5SToomas Soome.Va variable 271*ba11c5b5SToomas Soomeif specified. 272*ba11c5b5SToomas SoomeA timeout can be specified with 273*ba11c5b5SToomas Soome.Fl t , 274*ba11c5b5SToomas Soomethough it will be canceled at the first key pressed. 275*ba11c5b5SToomas SoomeA prompt may also be displayed through the 276*ba11c5b5SToomas Soome.Fl p 277*ba11c5b5SToomas Soomeflag. 278*ba11c5b5SToomas Soome.Pp 279*ba11c5b5SToomas Soome.It Ic reboot 280*ba11c5b5SToomas SoomeImmediately reboots the system. 281*ba11c5b5SToomas Soome.Pp 282*ba11c5b5SToomas Soome.It Ic set Ar variable 283*ba11c5b5SToomas Soome.It Ic set Ar variable Ns = Ns Ar value 284*ba11c5b5SToomas SoomeSet loader's environment variables. 285*ba11c5b5SToomas Soome.Pp 286*ba11c5b5SToomas Soome.It Ic show Op Va variable 287*ba11c5b5SToomas SoomeDisplays the specified variable's value, or all variables and their 288*ba11c5b5SToomas Soomevalues if 289*ba11c5b5SToomas Soome.Va variable 290*ba11c5b5SToomas Soomeis not specified. 291*ba11c5b5SToomas Soome.Pp 292*ba11c5b5SToomas Soome.It Ic unload 293*ba11c5b5SToomas SoomeRemove all modules from memory. 294*ba11c5b5SToomas Soome.Pp 295*ba11c5b5SToomas Soome.It Ic unset Va variable 296*ba11c5b5SToomas SoomeRemoves 297*ba11c5b5SToomas Soome.Va variable 298*ba11c5b5SToomas Soomefrom the environment. 299*ba11c5b5SToomas Soome.Pp 300*ba11c5b5SToomas Soome.It Ic \&? 301*ba11c5b5SToomas SoomeLists available commands. 302*ba11c5b5SToomas Soome.El 303*ba11c5b5SToomas Soome.Ss Builtin Environment Variables 304*ba11c5b5SToomas SoomeThe 305*ba11c5b5SToomas Soome.Nm 306*ba11c5b5SToomas Soomehas actually two different kinds of 307*ba11c5b5SToomas Soome.Sq environment 308*ba11c5b5SToomas Soomevariables. 309*ba11c5b5SToomas SoomeThere are ANS Forth's 310*ba11c5b5SToomas Soome.Em environmental queries , 311*ba11c5b5SToomas Soomeand a separate space of environment variables used by builtins, which 312*ba11c5b5SToomas Soomeare not directly available to Forth words. 313*ba11c5b5SToomas SoomeIt is the latter type that this section covers. 314*ba11c5b5SToomas Soome.Pp 315*ba11c5b5SToomas SoomeEnvironment variables can be set and unset through the 316*ba11c5b5SToomas Soome.Ic set 317*ba11c5b5SToomas Soomeand 318*ba11c5b5SToomas Soome.Ic unset 319*ba11c5b5SToomas Soomebuiltins, and can have their values interactively examined through the 320*ba11c5b5SToomas Soomeuse of the 321*ba11c5b5SToomas Soome.Ic show 322*ba11c5b5SToomas Soomebuiltin. 323*ba11c5b5SToomas SoomeTheir values can also be accessed as described in 324*ba11c5b5SToomas Soome.Sx BUILTIN PARSER . 325*ba11c5b5SToomas Soome.Pp 326*ba11c5b5SToomas SoomeNotice that these environment variables are not inherited by any shell 327*ba11c5b5SToomas Soomeafter the system has been booted. 328*ba11c5b5SToomas Soome.Pp 329*ba11c5b5SToomas SoomeA few variables are set automatically by 330*ba11c5b5SToomas Soome.Nm . 331*ba11c5b5SToomas SoomeOthers can affect the behavior of either 332*ba11c5b5SToomas Soome.Nm 333*ba11c5b5SToomas Soomeor the kernel at boot. 334*ba11c5b5SToomas SoomeSome options may require a value, 335*ba11c5b5SToomas Soomewhile others define behavior just by being set. 336*ba11c5b5SToomas SoomeBoth types of builtin variables are described below. 337*ba11c5b5SToomas Soome.Bl -tag -width bootfile 338*ba11c5b5SToomas Soome.It Va autoboot_delay 339*ba11c5b5SToomas SoomeNumber of seconds 340*ba11c5b5SToomas Soome.Ic autoboot 341*ba11c5b5SToomas Soomewill wait before booting. 342*ba11c5b5SToomas SoomeIf this variable is not defined, 343*ba11c5b5SToomas Soome.Ic autoboot 344*ba11c5b5SToomas Soomewill default to 10 seconds. 345*ba11c5b5SToomas Soome.Pp 346*ba11c5b5SToomas SoomeIf set to 347*ba11c5b5SToomas Soome.Dq Li NO , 348*ba11c5b5SToomas Soomeno 349*ba11c5b5SToomas Soome.Ic autoboot 350*ba11c5b5SToomas Soomewill be automatically attempted after processing 351*ba11c5b5SToomas Soome.Pa /boot/loader.rc , 352*ba11c5b5SToomas Soomethough explicit 353*ba11c5b5SToomas Soome.Ic autoboot Ns 's 354*ba11c5b5SToomas Soomewill be processed normally, defaulting to 10 seconds delay. 355*ba11c5b5SToomas Soome.Pp 356*ba11c5b5SToomas SoomeIf set to 357*ba11c5b5SToomas Soome.Dq Li 0 , 358*ba11c5b5SToomas Soomeno delay will be inserted, but user still will be able to interrupt 359*ba11c5b5SToomas Soome.Ic autoboot 360*ba11c5b5SToomas Soomeprocess and escape into the interactive mode by pressing some key 361*ba11c5b5SToomas Soomeon the console while kernel and 362*ba11c5b5SToomas Soomemodules are being loaded. 363*ba11c5b5SToomas Soome.Pp 364*ba11c5b5SToomas SoomeIf set to 365*ba11c5b5SToomas Soome.Dq Li -1 , 366*ba11c5b5SToomas Soomeno delay will be inserted and 367*ba11c5b5SToomas Soome.Nm 368*ba11c5b5SToomas Soomewill engage interactive mode only if 369*ba11c5b5SToomas Soome.Ic autoboot 370*ba11c5b5SToomas Soomehas failed for some reason. 371*ba11c5b5SToomas Soome.It Va boot_ask 372*ba11c5b5SToomas SoomeWill set 373*ba11c5b5SToomas Soome.Xr kernel 1M 374*ba11c5b5SToomas Soome.Fl a 375*ba11c5b5SToomas Soomeoption. 376*ba11c5b5SToomas Soome.It Va boot_debug 377*ba11c5b5SToomas SoomeWill set 378*ba11c5b5SToomas Soome.Xr kernel 1M 379*ba11c5b5SToomas Soome.Fl d 380*ba11c5b5SToomas Soomeoption. 381*ba11c5b5SToomas Soome.It Va boot_kmdb 382*ba11c5b5SToomas SoomeWill set 383*ba11c5b5SToomas Soome.Xr kernel 1M 384*ba11c5b5SToomas Soome.Fl k 385*ba11c5b5SToomas Soomeoption. 386*ba11c5b5SToomas Soome.It Va boot_reconfigure 387*ba11c5b5SToomas SoomeWill set 388*ba11c5b5SToomas Soome.Xr kernel 1M 389*ba11c5b5SToomas Soome.Fl r 390*ba11c5b5SToomas Soomeoption. 391*ba11c5b5SToomas Soome.It Va boot_single 392*ba11c5b5SToomas SoomeWill set 393*ba11c5b5SToomas Soome.Xr kernel 1M 394*ba11c5b5SToomas Soome.Fl s 395*ba11c5b5SToomas Soomeoption. 396*ba11c5b5SToomas Soome.It Va boot_verbose 397*ba11c5b5SToomas SoomeWill set 398*ba11c5b5SToomas Soome.Xr kernel 1M 399*ba11c5b5SToomas Soome.Fl v 400*ba11c5b5SToomas Soomeoption. 401*ba11c5b5SToomas Soome.It Va boot-args 402*ba11c5b5SToomas SoomeWill set custom arguments for the kernel. If set in 403*ba11c5b5SToomas Soome.Nm 404*ba11c5b5SToomas Soomeconfiguration, the 405*ba11c5b5SToomas Soome.Nm 406*ba11c5b5SToomas Soomestartup will parse the 407*ba11c5b5SToomas Soome.Va boot-args 408*ba11c5b5SToomas Soomevalue to set boot prefixed variables listed above, any unrecognized options 409*ba11c5b5SToomas Soomeare added to kernel command line verbatim. 410*ba11c5b5SToomas Soome.It Va bootfile 411*ba11c5b5SToomas SoomeThe name of the kernel. 412*ba11c5b5SToomas Soome.It Va console 413*ba11c5b5SToomas SoomeDefines the current console or consoles. 414*ba11c5b5SToomas SoomeMultiple consoles may be specified. 415*ba11c5b5SToomas SoomeIn that case, the first listed console will become the default console for 416*ba11c5b5SToomas Soomethe 417*ba11c5b5SToomas Soome.Xr kernel 1M . 418*ba11c5b5SToomas Soome.It Va currdev 419*ba11c5b5SToomas SoomeSelects the default device. 420*ba11c5b5SToomas SoomeSyntax for devices is odd. 421*ba11c5b5SToomas Soome.It Va interpret 422*ba11c5b5SToomas SoomeHas the value 423*ba11c5b5SToomas Soome.Dq Li ok 424*ba11c5b5SToomas Soomeif the Forth's current state is interpreting. 425*ba11c5b5SToomas Soome.It Va LINES 426*ba11c5b5SToomas SoomeDefine the number of lines on the screen, to be used by the pager. 427*ba11c5b5SToomas Soome.It Va module_path 428*ba11c5b5SToomas SoomeSets the list of directories which will be searched for modules 429*ba11c5b5SToomas Soomenamed in a load command or implicitly required by a dependency. 430*ba11c5b5SToomas SoomeThe default value for this variable is 431*ba11c5b5SToomas Soome.Dq Li /platform/i86pc/${ISADIR} 432*ba11c5b5SToomas Soome.It Va prompt 433*ba11c5b5SToomas SoomeValue of 434*ba11c5b5SToomas Soome.Nm Ns 's 435*ba11c5b5SToomas Soomeprompt. 436*ba11c5b5SToomas SoomeDefaults to 437*ba11c5b5SToomas Soome.Dq Li "${interpret}" . 438*ba11c5b5SToomas SoomeIf variable 439*ba11c5b5SToomas Soome.Va prompt 440*ba11c5b5SToomas Soomeis unset, the default prompt is 441*ba11c5b5SToomas Soome.Ql > . 442*ba11c5b5SToomas Soome.It Va os_console 443*ba11c5b5SToomas SoomeIf set, the value is used to set 444*ba11c5b5SToomas Soome.Xr kernel 1M 445*ba11c5b5SToomas Soome.Va console 446*ba11c5b5SToomas Soomeproperty. 447*ba11c5b5SToomas Soome.El 448*ba11c5b5SToomas Soome.Pp 449*ba11c5b5SToomas SoomeOther variables are used for loader or to set kernel properties or for 450*ba11c5b5SToomas Soomeinformational purposes. 451*ba11c5b5SToomas Soome.Ss Builtin Parser 452*ba11c5b5SToomas SoomeWhen a builtin command is executed, the rest of the line is taken 453*ba11c5b5SToomas Soomeby it as arguments, and it is processed by a special parser which 454*ba11c5b5SToomas Soomeis not used for regular Forth commands. 455*ba11c5b5SToomas Soome.Pp 456*ba11c5b5SToomas SoomeThis special parser applies the following rules to the parsed text: 457*ba11c5b5SToomas Soome.Bl -enum 458*ba11c5b5SToomas Soome.It 459*ba11c5b5SToomas SoomeAll backslash characters are preprocessed. 460*ba11c5b5SToomas Soome.Bl -bullet 461*ba11c5b5SToomas Soome.It 462*ba11c5b5SToomas Soome\eb , \ef , \er , \en and \et are processed as in C. 463*ba11c5b5SToomas Soome.It 464*ba11c5b5SToomas Soome\es is converted to a space. 465*ba11c5b5SToomas Soome.It 466*ba11c5b5SToomas Soome\ev is converted to 467*ba11c5b5SToomas Soome.Tn ASCII 468*ba11c5b5SToomas Soome11. 469*ba11c5b5SToomas Soome.It 470*ba11c5b5SToomas Soome\ez is just skipped. 471*ba11c5b5SToomas SoomeUseful for things like 472*ba11c5b5SToomas Soome.Dq \e0xf\ez\e0xf . 473*ba11c5b5SToomas Soome.It 474*ba11c5b5SToomas Soome\e0xN and \e0xNN are replaced by the hex N or NN. 475*ba11c5b5SToomas Soome.It 476*ba11c5b5SToomas Soome\eNNN is replaced by the octal NNN 477*ba11c5b5SToomas Soome.Tn ASCII 478*ba11c5b5SToomas Soomecharacter. 479*ba11c5b5SToomas Soome.It 480*ba11c5b5SToomas Soome\e" , \e' and \e$ will escape these characters, preventing them from 481*ba11c5b5SToomas Soomereceiving special treatment in Step 2, described below. 482*ba11c5b5SToomas Soome.It 483*ba11c5b5SToomas Soome\e\e will be replaced with a single \e . 484*ba11c5b5SToomas Soome.It 485*ba11c5b5SToomas SoomeIn any other occurrence, backslash will just be removed. 486*ba11c5b5SToomas Soome.El 487*ba11c5b5SToomas Soome.It 488*ba11c5b5SToomas SoomeEvery string between non-escaped quotes or double-quotes will be treated 489*ba11c5b5SToomas Soomeas a single word for the purposes of the remaining steps. 490*ba11c5b5SToomas Soome.It 491*ba11c5b5SToomas SoomeReplace any 492*ba11c5b5SToomas Soome.Li $VARIABLE 493*ba11c5b5SToomas Soomeor 494*ba11c5b5SToomas Soome.Li ${VARIABLE} 495*ba11c5b5SToomas Soomewith the value of the environment variable 496*ba11c5b5SToomas Soome.Va VARIABLE . 497*ba11c5b5SToomas Soome.It 498*ba11c5b5SToomas SoomeSpace-delimited arguments are passed to the called builtin command. 499*ba11c5b5SToomas SoomeSpaces can also be escaped through the use of \e\e . 500*ba11c5b5SToomas Soome.El 501*ba11c5b5SToomas Soome.Pp 502*ba11c5b5SToomas SoomeAn exception to this parsing rule exists, and is described in 503*ba11c5b5SToomas Soome.Sx Builtins And FORTH . 504*ba11c5b5SToomas Soome.Ss Builtins And FORTH 505*ba11c5b5SToomas SoomeAll builtin words are state-smart, immediate words. 506*ba11c5b5SToomas SoomeIf interpreted, they behave exactly as described previously. 507*ba11c5b5SToomas SoomeIf they are compiled, though, 508*ba11c5b5SToomas Soomethey extract their arguments from the stack instead of the command line. 509*ba11c5b5SToomas Soome.Pp 510*ba11c5b5SToomas SoomeIf compiled, the builtin words expect to find, at execution time, the 511*ba11c5b5SToomas Soomefollowing parameters on the stack: 512*ba11c5b5SToomas Soome.D1 Ar addrN lenN ... addr2 len2 addr1 len1 N 513*ba11c5b5SToomas Soomewhere 514*ba11c5b5SToomas Soome.Ar addrX lenX 515*ba11c5b5SToomas Soomeare strings which will compose the command line that will be parsed 516*ba11c5b5SToomas Soomeinto the builtin's arguments. 517*ba11c5b5SToomas SoomeInternally, these strings are concatenated in from 1 to N, 518*ba11c5b5SToomas Soomewith a space put between each one. 519*ba11c5b5SToomas Soome.Pp 520*ba11c5b5SToomas SoomeIf no arguments are passed, a 0 521*ba11c5b5SToomas Soome.Em must 522*ba11c5b5SToomas Soomebe passed, even if the builtin accepts no arguments. 523*ba11c5b5SToomas Soome.Pp 524*ba11c5b5SToomas SoomeWhile this behavior has benefits, it has its trade-offs. 525*ba11c5b5SToomas SoomeIf the execution token of a builtin is acquired (through 526*ba11c5b5SToomas Soome.Ic ' 527*ba11c5b5SToomas Soomeor 528*ba11c5b5SToomas Soome.Ic ['] ) , 529*ba11c5b5SToomas Soomeand then passed to 530*ba11c5b5SToomas Soome.Ic catch 531*ba11c5b5SToomas Soomeor 532*ba11c5b5SToomas Soome.Ic execute , 533*ba11c5b5SToomas Soomethe builtin behavior will depend on the system state 534*ba11c5b5SToomas Soome.Bf Em 535*ba11c5b5SToomas Soomeat the time 536*ba11c5b5SToomas Soome.Ic catch 537*ba11c5b5SToomas Soomeor 538*ba11c5b5SToomas Soome.Ic execute 539*ba11c5b5SToomas Soomeis processed! 540*ba11c5b5SToomas Soome.Ef 541*ba11c5b5SToomas SoomeThis is particularly annoying for programs that want or need to 542*ba11c5b5SToomas Soomehandle exceptions. 543*ba11c5b5SToomas SoomeIn this case, the use of a proxy is recommended. 544*ba11c5b5SToomas SoomeFor example: 545*ba11c5b5SToomas Soome.Dl : (boot) boot ; 546*ba11c5b5SToomas Soome.Ss FICL 547*ba11c5b5SToomas Soome.Tn FICL 548*ba11c5b5SToomas Soomeis a Forth interpreter written in C, in the form of a forth 549*ba11c5b5SToomas Soomevirtual machine library that can be called by C functions and vice 550*ba11c5b5SToomas Soomeversa. 551*ba11c5b5SToomas Soome.Pp 552*ba11c5b5SToomas SoomeIn 553*ba11c5b5SToomas Soome.Nm , 554*ba11c5b5SToomas Soomeeach line read interactively is then fed to 555*ba11c5b5SToomas Soome.Tn FICL , 556*ba11c5b5SToomas Soomewhich may call 557*ba11c5b5SToomas Soome.Nm 558*ba11c5b5SToomas Soomeback to execute the builtin words. 559*ba11c5b5SToomas SoomeThe builtin 560*ba11c5b5SToomas Soome.Ic include 561*ba11c5b5SToomas Soomewill also feed 562*ba11c5b5SToomas Soome.Tn FICL , 563*ba11c5b5SToomas Soomeone line at a time. 564*ba11c5b5SToomas Soome.Pp 565*ba11c5b5SToomas SoomeThe words available to 566*ba11c5b5SToomas Soome.Tn FICL 567*ba11c5b5SToomas Soomecan be classified into four groups. 568*ba11c5b5SToomas SoomeThe 569*ba11c5b5SToomas Soome.Tn ANS 570*ba11c5b5SToomas SoomeForth standard words, extra 571*ba11c5b5SToomas Soome.Tn FICL 572*ba11c5b5SToomas Soomewords, extra 573*ba11c5b5SToomas Soome.Fx 574*ba11c5b5SToomas Soomewords, and the builtin commands; 575*ba11c5b5SToomas Soomethe latter were already described. 576*ba11c5b5SToomas SoomeThe 577*ba11c5b5SToomas Soome.Tn ANS 578*ba11c5b5SToomas SoomeForth standard words are listed in the 579*ba11c5b5SToomas Soome.Sx STANDARDS 580*ba11c5b5SToomas Soomesection. 581*ba11c5b5SToomas SoomeThe words falling in the two other groups are described in the 582*ba11c5b5SToomas Soomefollowing subsections. 583*ba11c5b5SToomas Soome.Ss FICL Extra Words 584*ba11c5b5SToomas Soome.Bl -tag -width wid-set-super 585*ba11c5b5SToomas Soome.It Ic .env 586*ba11c5b5SToomas Soome.It Ic .ver 587*ba11c5b5SToomas Soome.It Ic -roll 588*ba11c5b5SToomas Soome.It Ic 2constant 589*ba11c5b5SToomas Soome.It Ic >name 590*ba11c5b5SToomas Soome.It Ic body> 591*ba11c5b5SToomas Soome.It Ic compare 592*ba11c5b5SToomas SoomeThis is the STRING word set's 593*ba11c5b5SToomas Soome.Ic compare . 594*ba11c5b5SToomas Soome.It Ic compile-only 595*ba11c5b5SToomas Soome.It Ic endif 596*ba11c5b5SToomas Soome.It Ic forget-wid 597*ba11c5b5SToomas Soome.It Ic parse-word 598*ba11c5b5SToomas Soome.It Ic sliteral 599*ba11c5b5SToomas SoomeThis is the STRING word set's 600*ba11c5b5SToomas Soome.Ic sliteral . 601*ba11c5b5SToomas Soome.It Ic wid-set-super 602*ba11c5b5SToomas Soome.It Ic w@ 603*ba11c5b5SToomas Soome.It Ic w! 604*ba11c5b5SToomas Soome.It Ic x. 605*ba11c5b5SToomas Soome.It Ic empty 606*ba11c5b5SToomas Soome.It Ic cell- 607*ba11c5b5SToomas Soome.It Ic -rot 608*ba11c5b5SToomas Soome.El 609*ba11c5b5SToomas Soome.Ss Loader Extra Words 610*ba11c5b5SToomas Soome.Bl -tag -width XXXXXXXX 611*ba11c5b5SToomas Soome.It Ic \&$ Pq -- 612*ba11c5b5SToomas SoomeEvaluates the remainder of the input buffer, after having printed it first. 613*ba11c5b5SToomas Soome.It Ic \&% Pq -- 614*ba11c5b5SToomas SoomeEvaluates the remainder of the input buffer under a 615*ba11c5b5SToomas Soome.Ic catch 616*ba11c5b5SToomas Soomeexception guard. 617*ba11c5b5SToomas Soome.It Ic .# 618*ba11c5b5SToomas SoomeWorks like 619*ba11c5b5SToomas Soome.Ic "." 620*ba11c5b5SToomas Soomebut without outputting a trailing space. 621*ba11c5b5SToomas Soome.It Ic fclose Pq Ar fd -- 622*ba11c5b5SToomas SoomeCloses a file. 623*ba11c5b5SToomas Soome.It Ic fkey Pq Ar fd -- char 624*ba11c5b5SToomas SoomeReads a single character from a file. 625*ba11c5b5SToomas Soome.It Ic fload Pq Ar fd -- 626*ba11c5b5SToomas SoomeProcesses a file 627*ba11c5b5SToomas Soome.Em fd . 628*ba11c5b5SToomas Soome.It Ic fopen Pq Ar addr len mode Li -- Ar fd 629*ba11c5b5SToomas SoomeOpens a file. 630*ba11c5b5SToomas SoomeReturns a file descriptor, or \-1 in case of failure. 631*ba11c5b5SToomas SoomeThe 632*ba11c5b5SToomas Soome.Ar mode 633*ba11c5b5SToomas Soomeparameter selects whether the file is to be opened for read access, write 634*ba11c5b5SToomas Soomeaccess, or both. 635*ba11c5b5SToomas SoomeThe constants 636*ba11c5b5SToomas Soome.Dv O_RDONLY , O_WRONLY , 637*ba11c5b5SToomas Soomeand 638*ba11c5b5SToomas Soome.Dv O_RDWR 639*ba11c5b5SToomas Soomeare defined in 640*ba11c5b5SToomas Soome.Pa /boot/forth/support.4th , 641*ba11c5b5SToomas Soomeindicating read only, write only, and read-write access, respectively. 642*ba11c5b5SToomas Soome.It Xo 643*ba11c5b5SToomas Soome.Ic fread 644*ba11c5b5SToomas Soome.Pq Ar fd addr len -- len' 645*ba11c5b5SToomas Soome.Xc 646*ba11c5b5SToomas SoomeTries to read 647*ba11c5b5SToomas Soome.Em len 648*ba11c5b5SToomas Soomebytes from file 649*ba11c5b5SToomas Soome.Em fd 650*ba11c5b5SToomas Soomeinto buffer 651*ba11c5b5SToomas Soome.Em addr . 652*ba11c5b5SToomas SoomeReturns the actual number of bytes read, or -1 in case of error or end of 653*ba11c5b5SToomas Soomefile. 654*ba11c5b5SToomas Soome.It Ic heap? Pq -- Ar cells 655*ba11c5b5SToomas SoomeReturn the space remaining in the dictionary heap, in cells. 656*ba11c5b5SToomas SoomeThis is not related to the heap used by dynamic memory allocation words. 657*ba11c5b5SToomas Soome.It Ic inb Pq Ar port -- char 658*ba11c5b5SToomas SoomeReads a byte from a port. 659*ba11c5b5SToomas Soome.It Ic key Pq -- Ar char 660*ba11c5b5SToomas SoomeReads a single character from the console. 661*ba11c5b5SToomas Soome.It Ic key? Pq -- Ar flag 662*ba11c5b5SToomas SoomeReturns 663*ba11c5b5SToomas Soome.Ic true 664*ba11c5b5SToomas Soomeif there is a character available to be read from the console. 665*ba11c5b5SToomas Soome.It Ic ms Pq Ar u -- 666*ba11c5b5SToomas SoomeWaits 667*ba11c5b5SToomas Soome.Em u 668*ba11c5b5SToomas Soomemicroseconds. 669*ba11c5b5SToomas Soome.It Ic outb Pq Ar port char -- 670*ba11c5b5SToomas SoomeWrites a byte to a port. 671*ba11c5b5SToomas Soome.It Ic seconds Pq -- Ar u 672*ba11c5b5SToomas SoomeReturns the number of seconds since midnight. 673*ba11c5b5SToomas Soome.It Ic tib> Pq -- Ar addr len 674*ba11c5b5SToomas SoomeReturns the remainder of the input buffer as a string on the stack. 675*ba11c5b5SToomas Soome.El 676*ba11c5b5SToomas Soome.Ss Loader Defined Environmental Queries 677*ba11c5b5SToomas Soome.Bl -tag -width Ds 678*ba11c5b5SToomas Soome.It arch-i386 679*ba11c5b5SToomas Soome.Ic TRUE 680*ba11c5b5SToomas Soomeif the architecture is IA32. 681*ba11c5b5SToomas Soome.It loader_version 682*ba11c5b5SToomas Soome.Nm 683*ba11c5b5SToomas Soomeversion. 684*ba11c5b5SToomas Soome.El 685*ba11c5b5SToomas Soome.Ss Errors 686*ba11c5b5SToomas SoomeThe following values are thrown by 687*ba11c5b5SToomas Soome.Nm : 688*ba11c5b5SToomas Soome.Bl -tag -width XXXXX -offset indent 689*ba11c5b5SToomas Soome.It 100 690*ba11c5b5SToomas SoomeAny type of error in the processing of a builtin. 691*ba11c5b5SToomas Soome.It -1 692*ba11c5b5SToomas Soome.Ic Abort 693*ba11c5b5SToomas Soomeexecuted. 694*ba11c5b5SToomas Soome.It -2 695*ba11c5b5SToomas Soome.Ic Abort" 696*ba11c5b5SToomas Soomeexecuted. 697*ba11c5b5SToomas Soome.It -56 698*ba11c5b5SToomas Soome.Ic Quit 699*ba11c5b5SToomas Soomeexecuted. 700*ba11c5b5SToomas Soome.It -256 701*ba11c5b5SToomas SoomeOut of interpreting text. 702*ba11c5b5SToomas Soome.It -257 703*ba11c5b5SToomas SoomeNeed more text to succeed -- will finish on next run. 704*ba11c5b5SToomas Soome.It -258 705*ba11c5b5SToomas Soome.Ic Bye 706*ba11c5b5SToomas Soomeexecuted. 707*ba11c5b5SToomas Soome.It -259 708*ba11c5b5SToomas SoomeUnspecified error. 709*ba11c5b5SToomas Soome.El 710*ba11c5b5SToomas Soome.Sh FILES 711*ba11c5b5SToomas Soome.Bl -tag -width /boot/defaults/loader.conf -compact 712*ba11c5b5SToomas Soome.It Pa /boot/defaults/loader.conf 713*ba11c5b5SToomas Soome.It Pa /boot/conf.d/* 714*ba11c5b5SToomas Soome.It Pa /boot/loader.conf 715*ba11c5b5SToomas Soome.It Pa /boot/loader.conf.local 716*ba11c5b5SToomas Soome.Nm 717*ba11c5b5SToomas Soomeconfiguration files, as described in 718*ba11c5b5SToomas Soome.Xr loader.conf 5 . 719*ba11c5b5SToomas Soome.It Pa /boot/loader.help 720*ba11c5b5SToomas SoomeLoaded by 721*ba11c5b5SToomas Soome.Ic help . 722*ba11c5b5SToomas SoomeContains the help messages. 723*ba11c5b5SToomas Soome.It Pa /boot/loader.rc 724*ba11c5b5SToomas Soome.Nm 725*ba11c5b5SToomas Soomebootstrapping script. 726*ba11c5b5SToomas Soome.It Pa /boot/forth/loader.4th 727*ba11c5b5SToomas SoomeExtra builtin-like words. 728*ba11c5b5SToomas Soome.It Pa /boot/forth/support.4th 729*ba11c5b5SToomas Soome.Pa loader.conf 730*ba11c5b5SToomas Soomeprocessing words. 731*ba11c5b5SToomas Soome.It Pa /boot/zfsloader 732*ba11c5b5SToomas Soome.Nm 733*ba11c5b5SToomas Soomeitself. 734*ba11c5b5SToomas Soome.El 735*ba11c5b5SToomas Soome.Sh EXAMPLES 736*ba11c5b5SToomas SoomeBoot in single user mode: 737*ba11c5b5SToomas Soome.Pp 738*ba11c5b5SToomas Soome.Dl boot -s 739*ba11c5b5SToomas Soome.Pp 740*ba11c5b5SToomas SoomeLoad the kernel, a boot_archive, and then autoboot in five seconds. 741*ba11c5b5SToomas SoomeNotice that a kernel must be loaded before any other 742*ba11c5b5SToomas Soome.Ic load 743*ba11c5b5SToomas Soomecommand is attempted. 744*ba11c5b5SToomas Soome.Bd -literal -offset indent 745*ba11c5b5SToomas Soomeload /platform/i86pc/kernel/amd64/unix 746*ba11c5b5SToomas Soomeload -t rootfs /platform/i86pc/amd64/boot_archive 747*ba11c5b5SToomas Soomeautoboot 5 748*ba11c5b5SToomas Soome.Ed 749*ba11c5b5SToomas Soome.Sh SEE ALSO 750*ba11c5b5SToomas Soome.Xr boot 1M , 751*ba11c5b5SToomas Soome.Xr btxld 1onbld , 752*ba11c5b5SToomas Soome.Xr loader.conf 5 753*ba11c5b5SToomas Soome.Sh STANDARDS 754*ba11c5b5SToomas SoomeFor the purposes of ANS Forth compliance, loader is an 755*ba11c5b5SToomas Soome.Bf Em 756*ba11c5b5SToomas SoomeANS Forth System with Environmental Restrictions, Providing 757*ba11c5b5SToomas Soome.Ef 758*ba11c5b5SToomas Soome.Bf Li 759*ba11c5b5SToomas Soome.No .( , 760*ba11c5b5SToomas Soome.No :noname , 761*ba11c5b5SToomas Soome.No ?do , 762*ba11c5b5SToomas Soomeparse, pick, roll, refill, to, value, \e, false, true, 763*ba11c5b5SToomas Soome.No <> , 764*ba11c5b5SToomas Soome.No 0<> , 765*ba11c5b5SToomas Soomecompile\&, , erase, nip, tuck 766*ba11c5b5SToomas Soome.Ef 767*ba11c5b5SToomas Soome.Em and 768*ba11c5b5SToomas Soome.Li marker 769*ba11c5b5SToomas Soome.Bf Em 770*ba11c5b5SToomas Soomefrom the Core Extensions word set, Providing the Exception Extensions 771*ba11c5b5SToomas Soomeword set, Providing the Locals Extensions word set, Providing the 772*ba11c5b5SToomas SoomeMemory-Allocation Extensions word set, Providing 773*ba11c5b5SToomas Soome.Ef 774*ba11c5b5SToomas Soome.Bf Li 775*ba11c5b5SToomas Soome\&.s, 776*ba11c5b5SToomas Soomebye, forget, see, words, 777*ba11c5b5SToomas Soome\&[if], 778*ba11c5b5SToomas Soome\&[else] 779*ba11c5b5SToomas Soome.Ef 780*ba11c5b5SToomas Soome.Em and 781*ba11c5b5SToomas Soome.Li [then] 782*ba11c5b5SToomas Soome.Bf Em 783*ba11c5b5SToomas Soomefrom the Programming-Tools extension word set, Providing the 784*ba11c5b5SToomas SoomeSearch-Order extensions word set. 785*ba11c5b5SToomas Soome.Ef 786