By default the poke prompt shows the following information:
(flags:endianness:ios)
Where flags is a set of letters denoting certain settings are switched on:
pPretty printing is switched on.
0xo2Output base is decimal, hexadecimal octal or binary respectively.
endianness denotes the currently enabled byte endianness,
big for big-endian and little for little-endian.
ios is either the handler of the currently selected IO space, or
poke if no IO space is opened.
This is an example of a typical prompt:
(p0:big:/bin/ls) _
Which tells us that pretty-printing is switched on (the p
flag), that the output mode is base 10 (the 0 flag), that the
current endianness is big endian, and that we are currently editing
/bin/ls.
Note that if poke has been set to be in “quiet” mode (like when
using the --quiet command line option, or by setting
pk_u then a very simple prompt will be used:
(poke) _
The information shown by the prompt can be changed at any time by simply setting the values of a few variables, all of which are booleans:
pk_prompt_show_iosWhether the currently selected IO space should be shown in the prompt. Defaults to 1.
pk_prompt_show_endianWhether the current endianness should be shown in the prompt. Defaults to 1.
pk_prompt_show_ppWhether a p flag should be shown in the prompt when pretty
printing is enabled.  Defaults to 1.
pk_prompt_show_obaseWhether a flag should be shown in the prompt indicating the currently selected output numeration base. Defaults to 1.
pk_prompt_commentWhether the prompt shall use #! and !# delimiters
instead of ( and ).  This makes the prompt a comment in
Poke and therefore makes it easier to copy code from interactive
sessions and evaluate it as code.  Defaults to 0.
You can customize your poke by setting these variables in your .pokerc file, or at any time by setting the values of the variables in the prompt:
(poke) pk_prompt_comment = 1 #!poke!# _
Is possible to further customize the prompt by defining a function
called pk_prompt, that gets no arguments and returns a string.
poke invokes that function every time it needs to print the
prompt; the default version of the function implements what has been
described in the previous section.
This is an example of customization of a simple prompt that included the current IO space but little else:
fun pk_prompt = string:
{
  var prompt = pk_prompt_comment ? "#!" : "(";
  try
    prompt += iohandler (get_ios);
  catch if E_no_ios
    {
      prompt += "poke";
    };
  return prompt + (pk_prompt_comment ? "#!" : ") ");
}
Once the function above gets defined, the prompt will reflect both the current endianness and the currently selected IO space, if there is any:
(big:poke) .file /bin/ls (big:/bin/ls)
If you write your own pk_prompt and share it with other people,
it is a good practice to acknowledge pk_prompt_comment.