Category : Communication (modem) tools and utilities
Archive   : UNISLT13.ZIP
Filename : UNI.SLT

 
Output of file : UNI.SLT contained in archive : UNISLT13.ZIP
// 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 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

}



  3 Responses to “Category : Communication (modem) tools and utilities
Archive   : UNISLT13.ZIP
Filename : UNI.SLT

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/