The ESC[ has been replaced in this test with ^[ for stability and readability. ^[37m^ The source for this program was obtained from Jan Wolter who can be reached at janc@m-net.ann-arbor.mi.us. Thanks Jan! ------------------ INSTALLATION: Create a directory in which Keirsey will reside - In your Doors: assignment. ie. Doors:Keirsey Copy all the files into that directory. Edit the doors.dat file accordingly. OR Any of your menus like the sample menu entry below: ----cut here------- Option 'K': ;Keirsey's Personality Test Function RunDoor DOORS:KEIRSEY/kEIRSEY end ----cut here------- OR You can use the ability of running doors from within ShowFile displays. I have included the way I call this door for your perusal. I created a directory in Doors called SHOWFILES. Then in my menus for this doors area I have as follows: ++++++++++ Option 'K': Minaccess 3 Function showfile doors:showfiles/Option9-k clear end +++++++++ In my SHOWFILES directory I have many files all called option##-key.txt the ## is the number of the menu and the key is the keystroke that you want to use. Of'coarse they can also be .gr1 files if you also have a .txt Doing it this way I can change things that a menu will call without having to recompile the menus. My Option9-k.txt reads as follows: +++++++++++++ ^[J^[5H The Keirsey personality test is identical to the one given by many large companies throughout the country. Uses for the info that it provides you after the test must be far ranging. This info at the worst is just plain interesting, BUT one thing that this test is very good at is telling if you and a potential spouse are a good pair or not. The comparison suprises a lot of people. When you are done reading... ~vc ^[H^[J ~v!DOOR/doors:keirsey/mnkeirsey# ^[H^[J^[10H that was interesting wasn't it. ~vc ~v!REXX/doors:showfiles/exit_normal# ++++++++++++ My exit_normal.rexx reads as follows: +++++++++++ /* An Exit_normal by Ed Kolar M3004 */ SIGNAL ON SYNTAX SIGNAL ON IOERR signal on ERROR parse arg LineNumber options results DoorName = "exit_normal" if( ~show( 'l', "mebbsarexx.library" ) )then do if( ~addlib( "mebbsarexx.library", 0, -30, 0 ) )then do say "Could not open library" exit 10 end end reps = 1 /* for OUTPUTTHENDELAY */ trace A call getvar Doorname,LineNumber,1 username=result;say username trace off call getvar DoorName,LineNumber,9 width=result call getvar DoorName,LineNumber,8 gfx=result IF gfx ~= "0" THEN DO black = '^[30m' yellowback = '^[43m' cyn = '^[36m' bold = '^[1m' normal = '^[0;37m' cls = '0C'x||'^[2J' END ELSE DO black = '' red = '' ; grn = '' ; yellowback = '' cyn = '' bold = '' normal = '' cls = '0C'x END call check Exit_Normal: if width <79 then signal exit_normal40 string = cls;call output;call blank;call blank;call blank;call blank string = " "yellowback||black||bold" Now returning you to that Wonderful Chalkboard I & II BBS "normal||cyn;call output address command 'wait 2' address call Exit_Door DoorName,LineNumber exit 0 Exit_Normal40: call blank;call blank;call blank;call blank;call blank string = normal" "yellowback||black||bold" Now returning you to that wonderful ";call output string = normal" "yellowback||black||bold" Chalkboard I & II BBS "normal||cyn;call output address command 'wait 2' address call Exit_Door DoorName,LineNumber exit 0 OUTPUT: call message doorname,linenumber,string,1 return OUTPUTTHENDELAY: arg reps call message doorname,linenumber,string,1 do x = 1 to reps address command "wait 1" address end reps = 1 return BLANK: blnk = " " call message doorname,linenumber,blnk,1 return Carrier: call CDetect doorname,linenumber cd=result return drophim: call HangUp DoorName,LineNumber exit 0 CHECK: /* check for lost carrier or spaced-out player */ call carrier if cd = "No carrier!" then signal drophim return IOERR: err_line = SIGL ; sev = RC ; code = sev signal log_it ERROR: err_line = SIGL ; sev = RC ; code = sev signal log_it SYNTAX: err_line = SIGL ; sev = RC ; code = sev signal log_it log_it: /*--------------------------------LOG-ERRORS----------------------------*/ call delay(50) if ~exists('bbs:logs') then makedir('BBS:Logs') if ~exists('BBS:Logs/Errlog') then call open(err,'BBS:Logs/Errlog','W') else call open(err,'BBS:Logs/Errlog','A') call writeln(err,date() time());call writeln(err,name" - "||doorname) call writeln(err,"Line - "err_line" Code - "code" User - "username);call writeln(err,errortext(code)) call writeln(err,"");call close(err) call Exit_Door doorname,linenumber exit 0 ++++++++++++ That should do it. Do *NOT* rename any of the files in this archive unless you know what you are doing. And remember that all ESC[ were replaced with ^[ for readability. :) - Ed Kolar The Chalkboard I & II BBS 203-449-8100 USRDS Groton, CT MEBBS Developer No. M3004