The MUF Cheat-Sheet, as seen by Sammael (Arthur, The., etc) -or- Reference manual for MUCK Forth ("MUF") -terse v2.2 August 4, 1990 ENTERING EDITING MODE @prog (creates a new program if none match) @edit EDITING COMMANDS i insert before . exit insert mode c compile l list d delete a show macros (abridged) s show macros (long) v view program header h help on edit mode u uncompile q quit editor mode PRIMITIVE TERMINOLOGY v type variable d type dbref i type int (boolean) s type string a type address (word) SYNTAX ( ... ) commments : begin user-def word ; end user-def word var variable declaration if ( i -- ) else ( -- ) then ( -- ) exit ( -- ) execute ( a -- ??? ) pop ( x -- ) dup ( x -- x x ) swap ( x y -- y x ) over ( x y -- x y x ) rot ( x y z -- y z x ) rotate ( ni ... n1 i -- n(i-1) ... n1 ni ) pick ( ni ... n1 i -- n1 ni ) put ( ni ... n1 x i -- x ... n1 ) ! ( x v -- ) store value x in var v. value may be any type data @ ( v -- x ) fetch value x from var v atoi ( s -- i ) string --> integer intostr ( i -- s ) integer || dbref --> string dbref ( i -- d ) integer --> dbref int ( x -- i ) VAR || object --> integer variable ( i -- v ) integer --> VAR ref + - * / % ( i1 i2 -- i ) < > = <= >= ( i1 i2 -- i ) strcmp, stringcmp ( s1 s2 -- i ) strcmp == case sens. strncmp ( s1 s2 n -- i ) compares only n letters number? ( s -- i ) dbcmp ( d1 d2 -- i ) and or ( i1 i2 -- i ) not ( i -- i' ) strlen ( s -- i ) strcat ( s1 s2 -- s ) instr ( s1 s2 -- i ) finds string s2 within s1 strcut ( s i -- s1 s2 ) cuts string at pos. i explode ( s1 s2 -- ... i ) s2 is the partition, len >0 subst ( s1 s2 s3 -- s ) string, replacement, tobesub pronoun_sub ( d s -- s' ) does % subs a la osucc/ofail read ( -- s ) notify ( d s -- ) player, message notify_except ( d1 d2 s -- ) place, player, message pennies ( d -- i ) addpennies ( d i -- ) player, pennies random ( -- i ) getpropval ( d s -- i ) zero if none getpropstr ( d s -- s ) "" if none addprop ( d s1 s2 i -- ) ignores i unless s2 is "" remove_prop ( d s -- ) desc, name, succ, fail, drop, osucc, ofail, odrop: ( d -- s ) retrieve message setname, setdesc, setsucc, setfail, setdrop, setosucc, setofail: ( d s -- ) set message player?, thing?, room?, program?, exit?, ok?: ( d -- i ) boolean location ( d -- d' ) owner ( d -- d' ) moveto ( d1 d2 -- ) moves d1 to d2 set ( d s -- ) object, string (flag) flag? ( d s -- i ) object, string, boolean call ( d -- ??? ) call remote program match ( s -- d ) thing, dbref (#-1 = NOTHING, #-2 = AMBIGUOUS, #-3 = HOME) rmatch ( d s -- d ) object, thing, dbref copyobj ( d -- d' ) returns dbref of new object contents ( d -- ... i ) returns stack of dbrefs and i