116 lines
3.3 KiB
Plaintext
116 lines
3.3 KiB
Plaintext
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 <program name> (creates a new program if none match)
|
|
@edit <program name or number>
|
|
|
|
EDITING COMMANDS
|
|
<number> i insert before <number>
|
|
. exit insert mode
|
|
c compile
|
|
<number1> <number2> l list
|
|
<number1> <number2> d delete
|
|
<letter> <letter> a show macros (abridged)
|
|
<letter> <letter> s show macros (long)
|
|
<program#> 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 <VARNAME> 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
|
|
|