A few BinProlog specific predicates are available:
restart/0 - cleans every data area cwrite/1 - fast but restricted write symcat/3 - returns a new symbol made from its arguments gensym/2 - forms a new name of the form name_counter sread/2 - reads from a name a (ground) term swrite/2 - writes a term to a name termcat/3 - adds its second argument as last argument of its first argument and returns the new term term_chars/2- converts between a ground term and its string representation not/1 - is a form of sound negation for/3 - as for instance in ?-for(I,1,5),write(I),nl,fail iterates over a failure driven loop.
It is a good idea to take a look at BinProlog's *.pl for other builtin-or-library predicates before implementing them yourself. The file write.pl contain various output predicates like
You can extend BinProlog by adding new predicates to the file extra.pl and then use the predicate boot/0 defined in the file co.pl to generate a customized wam.bp file which integrates your changes when passed as a command line parameter to the bp executable.