home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hall of Fame
/
HallofFameCDROM.cdr
/
open
/
unislt13.lzh
/
UNI.SLT
< prev
next >
Wrap
Text File
|
1989-04-11
|
16KB
|
613 lines
// UNI.SLT version 1.3
// by: John Abatte
// April 11, 1989
//
// Unified Telix script to logon to multiple bulletin board systems.
//
// Below are the user configurable variables for the script. You will need to
// edit the indicated areas for your name and phone number. Also, in the first
// function "create_cap_file()" you will need to put in your full path for
// the directory containing your Telix Capture files. Be sure to include the
// trailing backslash in the string definition "str cap_file[80] =", and
// put your last name where indicated in the function "gt_bbs" following
// "t3 = track(".
// That's about all there is to it. Be sure to read the UNI.DOC file for
// additional configuration information regarding dialing directory codes.
str keyhit[1];
str bbs_id[2];
str fname[] = "John"; // Put your name in these two
str lname[] = "Abatte"; // positions in the same format
str user_name_1[32]; // increase [32] for longer NAME
str phone_no[] = "9236"; // Put last 4 phone digits here for WWIV
str cap_status[1] = "Y"; // Change to "N" if you never want to
// create a capture file
str cap_prompt[1] = "Y"; // Change to "N" to always create a capture
// file without prompting
str cap_file[80] = "C:\TELIX\CAP\"; // Enter the path for your .CAP files
str cap_name[12] = "";
str S[12];
int stat;
int tmark;
// Open the capture file and build file name from name used in dialing entry
create_cap_file()
{
int i = 3;
capture("*CLOSE*"); // first close any existing file
while (Strlen(cap_name) < 8)
{ // eliminate illegal characters
if (subchr(_entry_name,i) != 32) // not " "
if (subchr(_entry_name,i) != 34) // not '"'
if (subchr(_entry_name,i) != 39) // not "'"
if (subchr(_entry_name,i) != 40) // not "("
if (subchr(_entry_name,i) != 41) // not ")"
if (subchr(_entry_name,i) != 42) // not "*"
if (subchr(_entry_name,i) != 43) // not "+"
if (subchr(_entry_name,i) != 44) // not ","
if (subchr(_entry_name,i) != 46) // not "."
if (subchr(_entry_name,i) != 47) // not "/"
if (subchr(_entry_name,i) != 58) // not ":"
if (subchr(_entry_name,i) != 59) // not ";"
if (subchr(_entry_name,i) != 60) // not "<"
if (subchr(_entry_name,i) != 61) // not "="
if (subchr(_entry_name,i) != 62) // not ">"
if (subchr(_entry_name,i) != 63) // not "?"
if (subchr(_entry_name,i) != 92) // not "\"
if (subchr(_entry_name,i) != 123) // not "{"
if (subchr(_entry_name,i) != 124) // not "|"
if (subchr(_entry_name,i) != 125) // not "}"
{
substr(_entry_name,i,1,S);
strcat(cap_name,S);
}
i = i + 1;
if (strlen(_entry_name) < i)
break;
}
strupper(cap_name);
strcat(cap_name,".CAP");
strcat(cap_file,cap_name);
if(capture(cap_file) == -1) // Open file & Report result
{
tone(900,30);
tone(500,50);
printsc("^M^JERROR opening capture file ", cap_file);
}
else
{
printsc("^M^JCapture file ", cap_file, " opened.");
}
return;
}
fi_bbs()
{
int t1,t2,t3,t4;
t1 = track("FIRST name", 1);
t2 = track("LAST name", 1);
t3 = track("[Y,n]", 1);
t4 = track("Password", 1);
while (not time_up(tmark))
{
terminal(); // let Telix process any keys and chars
stat = track_hit(0); // see which (if any) track was hit
if (stat == t1) // send first name
{
delay_scr(1);
cputs(fname);
cputs("^M");
}
else if (stat == t2) // send last name
{
delay_scr(1);
cputs(lname);
cputs("^M");
}
else if (stat == t3)
{
delay_scr(2);
cputs("y^M");
}
else if (stat == t4) // send password
{
cputs(_entry_pass);
cputs("^M");
break; // done with logon
}
}
}
gt_bbs()
{
int t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
t1 = track("graphics? [y/n] ", 1);
t2 = track("FIRST name: ", 1);
t3 = track("Abatte", 1); // substitute your last name
t4 = track("Password:", 1);
t5 = track("continue", 1);
t6 = track("number: ", 1);
t7 = track("More", 1);
t8 = track("eady . . . ", 1);
t9 = track("mail? [Y/n] ", 1);
t10 = track("MAIN MENU");
while (not time_up(tmark))
{
terminal();
stat = track_hit(0);
if (stat == t1) // say whether we want graphics
{
delay_scr(1);
cputs("n^M");
track_free(t1);
}
else if (stat == t2) // send full name
{
delay_scr(1);
cputs(user_name_1);
cputs("^M");
track_free(t2);
}
else if (stat == t3) // verify name
{
delay_scr(1);
cputs("y^M");
track_free(t3);
}
else if (stat == t4) // send password
{
delay_scr(1);
cputs(_entry_pass);
cputs("^M");
track_free(t4);
}
else if (stat == t5) // "continue:"
{
delay_scr(1);
cputs("^M");
}
else if (stat == t6) // bulletins
{
delay_scr(1);
cputs("q^M");
track_free(t6);
}
else if (stat == t7) // "More" prompt
{
delay_scr(2);
cputs("n^M");
}
else if (stat == t8) // "ready" prompt
{
delay_scr(2);
cputs("^M");
}
else if (stat == t9) // wait for mail prompt
{
delay_scr(1);
cputs("y^M"); // read our mail
break; // done with logon
}
else if (stat == t10) // wait for MAIN MENU (OPUS system only)
{
delay_scr(1);
break; // done with logon
}
}
}
pc_bbs()
{
int t1,t2,t3,t4,t5,t6,t7,t8;
t1 = track(" graphics", 1);
t2 = track("first name?", 1);
t3 = track("Password", 1);
t4 = track("(Enter)=yes?", 1);
t5 = track("to continue?", 1);
t6 = track("More?", 1);
t7 = track("Scan Message",1);
t8 = track("Board Command?", 1);
while (not time_up(tmark))
{
terminal();
stat = track_hit(0);
if (stat == t1) // graphics
{
delay_scr(1);
cputs("n^M");
track_free(t1);
}
else if (stat == t2)
{
delay_scr(1);
cputs(user_name_1);
cputs("^M");
track_free(t2);
}
else if (stat == t3)
{
delay_scr(1);
cputs(_entry_pass);
cputs("^M");
track_free(t3);
}
else if (stat == t4) // scan message base
{
delay_scr(1);
cputs("^M");
}
else if (stat == t5) // "Enter" to continue
{
delay_scr(2);
cputs("^M");
}
else if (stat == t6) // "More" to continue
{
delay_scr(2);
cputs("y^M");
}
else if (stat == t7) // Scan Message Base Since 'Last Read'
{
delay_scr(2);
cputs("^M");
}
else if (stat == t8) // reached Main Board
{
delay_scr(1);
break; // done with logon
}
}
}
qu_bbs()
{
int t1,t2,t3,t4,t5,t6,t7,t8;
t1 = track("last name? ", 1);
t2 = track("Password: ", 1);
t3 = track("continue: ", 1);
t4 = track("s or <N>o?", 1);
t5 = track("Messages Now [Y/n]?", 1);
t6 = track("each message [Y/n]?", 1);
t7 = track("this listing.",1);
t8 = track("Top Menu", 1);
while (not time_up(tmark))
{
terminal();
stat = track_hit(0);
if (stat == t1)
{
delay_scr(2);
cputs(user_name_1);
cputs("^M");
track_free(t1);
}
else if (stat == t2)
{
delay_scr(1);
cputs(_entry_pass);
cputs("^M");
track_free(t2);
}
else if (stat == t3) // continue
{
delay_scr(2);
cputs("^M");
}
else if (stat == t4)
{
delay_scr(2);
cputs("n^M");
}
else if (stat == t5) // read our mail now if any
{
delay_scr(2);
cputs("y");
track_free(t5);
}
else if (stat == t6) // pause after each message
{
delay_scr(2);
cputs("y^M");
break; // and end the script
}
else if (stat == t7)
{
delay_scr(2);
cputs("s"); // skip the bulletins
}
else if (stat == t8) // done with logon
{
delay_scr(1);
break;
}
}
}
rb_bbs()
{
int t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11;
t1 = track("continue", 1);
t2 = track("[Y],N,NS", 1);
t3 = track("H)elp", 1);
t4 = track("FIRST name", 1);
t5 = track("LAST name", 1);
t6 = track("ts echo)", 1);
t7 = track("files to download", 1);
t8 = track("bulletin", 1);
t9 = track("A)bort", 1);
t10 = track("More", 1);
t11 = track("MAIN command", 1);
while (not time_up(tmark))
{
terminal();
stat = track_hit(0);
if (stat == t1) // continue
{
delay_scr(2);
cputs("^M");
track_free(t1);
}
else if (stat == t2) // bypass logon bulletins
{
delay_scr(2);
cputs("n^M");
track_free(t2);
}
else if (stat == t3) // graphics
{
delay_scr(2);
cputs("n^M");
track_free(t3);
}
else if (stat == t4)
{
delay_scr(1);
cputs(fname);
cputs("^M");
track_free(t4);
}
else if (stat == t5)
{
delay_scr(1);
cputs(lname);
cputs("^M");
track_free(t5);
}
else if (stat == t6)
{
delay_scr(1);
cputs(_entry_pass);
cputs("^M");
track_free(t6);
}
else if (stat == t7) // review new files if any
{
delay_scr(1);
cputs("y^M");
track_free(t7);
break; // and end the script
}
else if (stat == t8) // skip new Bulletins
{
delay_scr(2);
cputs("^M");
}
else if (stat == t9) // "A)bort"
{
delay_scr(2);
cputs("n^M");
}
else if (stat == t10) // bypass "More"
{
delay_scr(2);
cputs("n^M");
}
else if (stat == t11) // wait for the Main Menu
{
delay_scr(1);
break; // done with logon
}
}
}
wc_bbs()
{
int t1,t2,t3,t4,t5,t6;
t1 = track("First Name", 1);
t2 = track("Password:", 1);
t3 = track("continue", 1);
t4 = track("Bulletin Menu? [y/n]", 1);
t5 = track("[N]onStop?", 1);
t6 = track("MAIN MENU:", 1);
while (not time_up(tmark))
{
terminal();
stat = track_hit(0);
if (stat == t1)
{
delay_scr(1);
cputs(user_name_1);
cputs("^M");
track_free(t1);
}
else if (stat == t2)
{
delay_scr(1);
cputs(_entry_pass);
cputs("^M");
track_free(t2);
}
else if (stat == t3) // "Enter" to continue
{
delay_scr(1);
cputs("^M");
}
else if (stat == t4) // skip the bulletins
{
delay_scr(1);
cputs("n^M");
}
else if (stat == t5) // "[N]onStop?"
{
delay_scr(1);
cputs("^M");
}
else if (stat == t6) // done with logon
{
delay_scr(1);
break;
}
}
}
ww_bbs()
{
int t1,t2,t3,t4,t5,t6;
t1 = track("graphics?", 1);
t2 = track("NN: ", 1);
t3 = track("PW: ", 1);
t4 = track("PH: ###-###-", 1);
t5 = track("[PAUSE]", 1);
t6 = track("System is", 1);
while (not time_up(tmark))
{
terminal();
stat = track_hit(0);
if (stat == t1) // graphics
{
delay_scr(1);
cputs("n^M");
}
else if (stat == t2)
{
delay_scr(1);
cputs(user_name_1);
cputs("^M");
}
else if (stat == t3)
{
delay_scr(1);
cputs(_entry_pass);
cputs("^M");
}
else if (stat == t4) // send phone number
{
delay_scr(1);
cputs(phone_no);
cputs("^M");
}
else if (stat == t5) // skip the pauses
{
delay_scr(1);
cputc(27);
}
else if (stat == t6) // wait for Main Menu
{
delay_scr(1);
break; // finished with logon
}
}
}
main()
{
substr(_entry_name,0,2,bbs_id); // Get BBS prefix from dialing directory
strupper(bbs_id); // Convert it to upper case
strcat(user_name_1, fname); // Mirge first & last names
strcat(user_name_1, " ");
strcat(user_name_1, lname);
tmark = timer_start(1800); // wait up to 3 minutes for login
alarm(1);
if (not _entry_pass) // no pass, so didn't recog. board
{
prints ("Sorry, I don't know the password for this BBS!");
return;
}
// Prompt for capture file if desired
if ((cap_status == "Y" || cap_status == "y") && (cap_prompt == "Y" || cap_prompt == "y"))
{
prints("^M^JIf you want a capture file created enter 'Y'.");
printsc("Otherwise, press any other key to continue.=> ");
gets(keyhit,1);
if (keyhit == "Y" || keyhit == "y") // any other key will abort capture
create_cap_file();
}
// Always create capture file without prompting
else if ((cap_status == "Y" || cap_status == "y") && (cap_prompt == "N" || cap_prompt == "n"))
create_cap_file();
if (bbs_id == "FI") // FIDO BBS & EXEC-PC
fi_bbs();
if ((bbs_id == "GT") || (bbs_id == "OP")) // GT POWER & OPUS BBS
gt_bbs();
if (bbs_id == "PC") // PCBOARD
pc_bbs();
if (bbs_id == "QU") // QUICKBBS
qu_bbs();
if (bbs_id == "RB") // RBBS
rb_bbs();
if (bbs_id == "WC") // WILDCAT BBS
wc_bbs();
if (bbs_id == "WW") // WWIV BBS
ww_bbs();
if (time_up(tmark)) // abort script after 3 minutes
prints("Logon failed!");
timer_free(tmark); // free timer channel
track_free(0); // and all track channels
}