CALOOK: I'm going to use the following piece of the previous flowchart to illustrate the use of CALOok: LOGIN PROCESS ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ Yes ÚÄÄÄÄÄÄÄÄÄ¿ ³ Mailer Running? ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>Send ESC ³ ÀÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÂÄÄÄÙ No ³<ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Sometimes there will be prompts that might occur, and then again, might not occur. In cases like this, you can't use {LOOK} because the script will hang if the LOOKed for text does not come in from the BBS. For these cases, you need a CONDITIONAL "look". There are three such "conditional" LOOK statements available in the {COMMO} macro language -- CALOok, GOLOok, and SSLOok. Building on previous lessons, let's give our "login" subroutine its own Macro ID (name)..let's call it "{:LOGIN} {:LOGIN} {CALO mprompt,sendesc,Press key to continue} {:MPROMPT} {LOOK What is your REAL first name?} This segment adds a conditional check for a mailer's prompt to press the "Escape" key. If the mailer prompt is received, the CALOok statement will interrupt regular script processing to execute the macro I've named "sendesc" ({:SENDESC}). After executing that macro in response to the "Press Escape" prompt, the script will return to the point I've specified in the CALOok statement, which in this case, is "mprompt" ({:MPROMPT}). If the "Press esc" prompt is NOT received, the script continues on its merry way which, according to the example is to LOOK for a "first name" prompt. Here's what {:SENDESC} might look like: {:SENDESC} {SEND ^[} (Note the use of "^[" to signify the "escape" {RETU} character) Continued in Lesson 5c.. Jim