! Find out the name of the current user's terminal %recordformat desc fm(%integer l, a) %recordformat IOSB fm(%short status, length, %integer extra) %include "SYSINC:JPI.INC" %externalstring(31)%fn own terminal %ownrecord(jpi fm) tt, terminator = 0 %string(31) tt name %integer status, ret length tt_length = 31; tt_buff addr = addr(tt name) + 1 tt_ret addr = addr(ret length) tt_code = JPI terminal status = getjpi(0, integer(0), record(0), tt, record(0), 0, 0) length(tt name) = ret length %result = tt name %end ! %externalintegerfn own UIC ! %ownrecord(jpi fm) get UIC, terminator = 0 ! %integer status, UIC ! get UIC_length = 4; get UIC_buff addr = addr(UIC) ! get UIC_ret addr = 0 ! get UIC_code = JPI UIC ! status = getjpi(0, integer(0), record(0), get UIC, record(0), 0, 0) ! %result = UIC ! %end %externalpredicate privilege check(%integer a, b) %recordformat priv fm(%integer a, b) %record(priv fm) priv %ownrecord(jpi fm) get priv, terminator = 0 %integer status get priv_length = 8; get priv_buff addr = addr(priv) get priv_ret addr = 0 get priv_code = JPI procpriv status = getjpi(0, integer(0), record(0), get priv, record(0), 0, 0) %false %unless priv_a & a = a %false %unless priv_b & b = b %true %end %end %of %file