home *** CD-ROM | disk | FTP | other *** search
Wrap
;***************************************************************************** ;* * ;* WUI.PPE v3.10a * ;* PCBOARD 15.0 WRITE USER INFORMATION PROGRAM * ;* * ;* Written by Larry Steele and Jerry Claxton * ;* Written in PCBoard Programming Language * ;* Compiled on 05-28-1993 * ;* * ;* "The Shoppe Bulletin Board Systems" * ;* Node 1 - 708-888-0725 - [16.8 DS] - 80486/50 * ;* Node 2 - 708-888-1162 - [16.8 DS] - 80486/40 * ;* Node 3 - 708-888-0078 - [16.8 DS] - 80486/40 * ;* Node 4 - 708-888-4175 - [16.8 DS] - 80486/40 * ;* Node 5 - PRIVATE LINE - [16.8 DS] - 80486/66 * ;***************************************************************************** ;***************************************************************************** ;* Define variable types * ;***************************************************************************** BOOLEAN SAVE_FLAG, ALIAS_FLAG, CALLERLOG_FLAG, PERSONAL_FLAG INTEGER TEMP_DAYS, Lp STRING Write_User_Information, Verification_Command STRING Command_Line, Prompt_Command STRING User_PassWord_One, User_PassWord_Two STRING USER_NAME, USER_CITY, USER_DPHONE, USER_HPHONE STRING USER_ALIAS, USER_VER, USER_PWD, USER_SEC STRING USER_ADDR0, USER_ADDR1, USER_ADDR2 STRING USER_ADDR3, USER_ADDR4, USER_ADDR5 STRING USER_REG_DAYS, USER_EXP_LEVEL, USER_ONLINE_TODAY, USER_ONLINE_SESSION STRING USER_CALLER_NUM, USER_LOGONS, USER_LONG_HEADER, USER_EXPERT_MODE, USER_SCROLL_SCREEN STRING USER_MESSAGE_CLEAR, USER_FULL_SCREEN, USER_EDITOR_WORKSPACE ;***************************************************************************** ;* Load the current users information * ;***************************************************************************** GETUSER GOSUB GRAB_INFO ;***************************************************************************** ;* Check the command line for any Parameters * ;***************************************************************************** GETTOKEN Command_Line IF (STRIP(Command_Line, " ") = "A") GOTO PASSWORD IF (STRIP(Command_Line, " ") = "B") GOTO CITY_STATE IF (STRIP(Command_Line, " ") = "C") GOTO DATA_PHONE IF (STRIP(Command_Line, " ") = "D") GOTO HOME_PHONE IF (STRIP(Command_Line, " ") = "E") GOTO CPU_BRAND IF (STRIP(Command_Line, " ") = "F") GOTO MSG_CLEAR IF (STRIP(Command_Line, " ") = "G") GOTO MSG_SCROLL IF (STRIP(Command_Line, " ") = "H") GOTO MSG_HEADER IF (STRIP(Command_Line, " ") = "I") GOTO MSG_FULLSCREEN IF (STRIP(Command_Line, " ") = "J") GOTO MSG_COLUMNS IF (STRIP(Command_Line, " ") = "K" & PSA(3)) GOTO PSA_STREET_NUMBER1 IF (STRIP(Command_Line, " ") = "L" & PSA(3)) GOTO PSA_STREET_NUMBER2 IF (STRIP(Command_Line, " ") = "M" & PSA(3)) GOTO PSA_CITY IF (STRIP(Command_Line, " ") = "N" & PSA(3)) GOTO PSA_PROVINCE_STATE IF (STRIP(Command_Line, " ") = "O" & PSA(3)) GOTO PSA_ZIPCODE IF (STRIP(Command_Line, " ") = "P" & PSA(3)) GOTO PSA_COUNTRY IF (STRIP(Command_Line, " ") = "S" & PSA(5)) GOTO SECURITY_INFORMATION IF (STRIP(Command_Line, " ") = "X" & PSA(1)) GOTO PSA_ALIAS_NAME IF (STRIP(Command_Line, " ") = "Y" & PSA(2)) GOTO PSA_VERIFICATION IF (STRIP(Command_Line, " ") = "V") GOTO PERSONAL_SCREEN IF (STRIP(Command_Line, " ") <> "") Command_Line = "" ;***************************************************************************** ;* Start of Main PPE program * ;***************************************************************************** :BEGIN_MAIN CLS Write_User_Information = "" PRINTLN "@X7F┌─────────────────────────────────────────────────────────────────────────────@X70┐@X07" PRINTLN "@X7F│ @X70@SYSDATE:8@ @X7BW R I T E U S E R I N F O R M A T I O N @X70" + STRING(TIME()) + "@POS:79@│@X07" PRINTLN "@X7F└@X70─────────────────────────────────────────────────────────────────────────────┘@X07" PRINTLN "@X70┌─────────────────────────────────────────────────────────────────────────────@X7F┐@X07" PRINTLN "@X70│ @X71(@X7EA@X71) Change your Password (@X7EF@X71) Clear the screen between each message @X7F│@X07" PRINTLN "@X70│ @X71(@X7EB@X71) Change City and State (@X7EG@X71) Scroll multi-screen messages @X7F│@X07" PRINTLN "@X70│ @X71(@X7EC@X71) Business or data phone (@X7EH@X71) Use long header when reading messages @X7F│@X07" PRINTLN "@X70│ @X71(@X7ED@X71) Home or voice phone (@X7EI@X71) Full Screen Editor Default @X7F│@X07" PRINTLN "@X70│ @X71(@X7EE@X71) Brand of CPU you are using (@X7EJ@X71) Set editor workspace to 79 columns @X7F│@X07" IF (PSA(1) | PSA(2) | PSA(3)) THEN PRINTLN "@X70│ @X7F│@X07" PRINTLN "@X70│ @X71(@X7EK@X71) Street Address and Number (@X7EX@X71) Create or change your ALIAS name @X7F│@X07" PRINTLN "@X70│ @X71(@X7EL@X71) Suite or Apartment Number (@X7EY@X71) User Verification Information @X7F│@X07" PRINTLN "@X70│ @X71(@X7EM@X71) City, Town or Village @POS:79@@X7F│@X07" PRINTLN "@X70│ @X71(@X7EN@X71) Province or State @X7F┌───────────────────────────────────────@X70┐@X70 @X7F│@X07" PRINTLN "@X70│ @X71(@X7EO@X71) Postal Zip Code @X7F│ @X71Name: @X7E" + LEFT(U_NAME(), 20) + "@POS:66@@X71Level: @X7E" + STRING(U_SEC) + "@POS:77@@X70│@X70 @X7F│@X07" PRINTLN "@X70│ @X71(@X7EP@X71) Country or Region @X7F└@X70───────────────────────────────────────┘@X70 @X7F│@X07" PRINTLN "@X70└@X7F─────────────────────────────────────────────────────────────────────────────┘@X07" INPUTSTR "(@X0EV@X0F)iew, (@X0ES@X0F)tats, (@X0EQ@X0F)uit, Write User Information Command", Write_User_Information, 0Fh, 1, "abcdefghijklmnopqsvxyABCDEFGHIJKLMNOPQSVXY", FIELDLEN + GUIDE + UPCASE + LFBEFORE + ERASELINE ELSE PRINTLN "@X70└@X7F─────────────────────────────────────────────────────────────────────────────┘@X07" INPUTSTR "(@X0EV@X0F)iew, (@X0ES@X0F)tats, (@X0EQ@X0F)uit, Write User Information Command", Write_User_Information, 0Fh, 1, "abcdefghijqsvABCDEFGHIJQSV", FIELDLEN + GUIDE + UPCASE + LFBEFORE + ERASELINE END IF IF (Write_User_Information = "A") GOTO PASSWORD IF (Write_User_Information = "B") GOTO CITY_STATE IF (Write_User_Information = "C") GOTO DATA_PHONE IF (Write_User_Information = "D") GOTO HOME_PHONE IF (Write_User_Information = "E") GOTO CPU_BRAND IF (Write_User_Information = "F") GOTO MSG_CLEAR IF (Write_User_Information = "G") GOTO MSG_SCROLL IF (Write_User_Information = "H") GOTO MSG_HEADER IF (Write_User_Information = "I") GOTO MSG_FULLSCREEN IF (Write_User_Information = "J") GOTO MSG_COLUMNS IF (Write_User_Information = "K" & PSA(3)) GOTO PSA_STREET_NUMBER1 IF (Write_User_Information = "L" & PSA(3)) GOTO PSA_STREET_NUMBER2 IF (Write_User_Information = "M" & PSA(3)) GOTO PSA_CITY IF (Write_User_Information = "N" & PSA(3)) GOTO PSA_PROVINCE_STATE IF (Write_User_Information = "O" & PSA(3)) GOTO PSA_ZIPCODE IF (Write_User_Information = "P" & PSA(3)) GOTO PSA_COUNTRY IF (Write_User_Information = "S" & PSA(5)) GOTO SECURITY_INFORMATION IF (Write_User_Information = "X" & PSA(1)) GOTO PSA_ALIAS_NAME IF (Write_User_Information = "Y" & PSA(2)) GOTO PSA_VERIFICATION IF (Write_User_Information = "V") GOTO PERSONAL_SCREEN IF (Write_User_Information = "Q") GOTO END_PROGRAM IF (Write_User_Information = "") GOTO END_PROGRAM GOTO BEGIN_MAIN ;***************************************************************************** ;* Start of PPE GOTO'S AND GOSUB'S * ;***************************************************************************** :PASSWORD IF (EXIST(PPEPATH() + "WUI_A")) DISPFILE PPEPATH() + "WUI_A", LANG + SEC + GRAPH PROMPTSTR 152, User_PassWord_One, 13, MASK_PWD(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + ECHODOTS + LFAFTER IF (STRIP(Command_Line, " ") = "A" & (User_PassWord_One = "")) GOTO END_PROGRAM IF ((Write_User_Information = "A") & (User_PassWord_One = "")) GOTO BEGIN_MAIN IF (PSA(4) & (LEN(User_PassWord_One) < READLINE(PCBDAT(), 265))) THEN User_PassWord_One = "" NEWLINE PRINTLN "@X0CPassword too short! Must be @X0F" + TRIM(READLINE(PCBDAT(), 265), CHR(32)) + " @X0Ccharacters or longer, try again.@X07" FRESHLINE GOTO PASSWORD ELSEIF (PSA(4) & (INSTR(U_NAME(), User_PassWord_One) > 0)) THEN User_PassWord_One = "" NEWLINE PRINTLN "@X0CYour password cannot be a subset of your name. While this may make it easy for" PRINTLN "@X0Cyou to remember, it also makes it easier for someone to guess your password.@X07" FRESHLINE GOTO PASSWORD END IF PROMPTSTR 111, User_PassWord_Two, 13, MASK_PWD(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + ECHODOTS IF (User_PassWord_One <> User_PassWord_Two) THEN User_PassWord_One = "" User_PassWord_Two = "" NEWLINES 2 PRINTLN "@X0CSorry, @FIRST@, the two passwords do not match, try again.@X07" FRESHLINE GOTO PASSWORD ELSEIF (User_PassWord_One = User_PassWord_Two) THEN SAVE_FLAG = TRUE U_PWD = User_PassWord_One User_PassWord_One = "" User_PassWord_Two = "" END IF IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :CITY_STATE IF (EXIST(PPEPATH() + "WUI_B")) DISPFILE PPEPATH() + "WUI_B", LANG + SEC + GRAPH SAVE_FLAG = TRUE PROMPTSTR 265, U_CITY, 24, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE LET USER_CITY = LEFT(RTRIM(U_CITY, CHR(32)) + "·························", 25) IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :DATA_PHONE IF (EXIST(PPEPATH() + "WUI_C")) DISPFILE PPEPATH() + "WUI_C", LANG + SEC + GRAPH SAVE_FLAG = TRUE PROMPTSTR 113, U_BDPHONE, 13, MASK_NUM() + "- ", FIELDLEN + GUIDE + UPCASE + LFBEFORE LET USER_DPHONE = LEFT(RTRIM(U_BDPHONE, CHR(32)) + "·············", 13) IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :HOME_PHONE IF (EXIST(PPEPATH() + "WUI_D")) DISPFILE PPEPATH() + "WUI_D", LANG + SEC + GRAPH SAVE_FLAG = TRUE PROMPTSTR 114, U_HVPHONE, 13, MASK_NUM() + "- ", FIELDLEN + GUIDE + UPCASE + LFBEFORE LET USER_HPHONE = LEFT(RTRIM(U_HVPHONE, CHR(32)) + "·············", 13) IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :CPU_BRAND IF (EXIST(PPEPATH() + "WUI_E")) DISPFILE PPEPATH() + "WUI_E", LANG + SEC + GRAPH SAVE_FLAG = TRUE PROMPTSTR 2, U_CMNT1, 30, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :MSG_CLEAR IF (EXIST(PPEPATH() + "WUI_F")) DISPFILE PPEPATH() + "WUI_F", LANG + SEC + GRAPH SAVE_FLAG = TRUE PROMPTSTR 556, USER_MESSAGE_CLEAR, 1, "YN", FIELDLEN + GUIDE + UPCASE + LFBEFORE + YESNO IF (USER_MESSAGE_CLEAR = NOCHAR()) U_CLS = 0 IF (USER_MESSAGE_CLEAR = YESCHAR()) U_CLS = 1 IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :MSG_SCROLL IF (EXIST(PPEPATH() + "WUI_G")) DISPFILE PPEPATH() + "WUI_G", LANG + SEC + GRAPH SAVE_FLAG = TRUE PROMPTSTR 627, USER_SCROLL_SCREEN, 1, "YN", FIELDLEN + GUIDE + UPCASE + LFBEFORE + YESNO IF (USER_SCROLL_SCREEN = NOCHAR()) U_SCROLL = 0 IF (USER_SCROLL_SCREEN = YESCHAR()) U_SCROLL = 1 IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :MSG_HEADER IF (EXIST(PPEPATH() + "WUI_H")) DISPFILE PPEPATH() + "WUI_H", LANG + SEC + GRAPH SAVE_FLAG = TRUE PROMPTSTR 628, USER_LONG_HEADER, 1, "YN", FIELDLEN + GUIDE + UPCASE + LFBEFORE + YESNO IF (USER_LONG_HEADER = NOCHAR()) U_LONGHDR = 0 IF (USER_LONG_HEADER = YESCHAR()) U_LONGHDR = 1 IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :MSG_FULLSCREEN IF (EXIST(PPEPATH() + "WUI_I")) DISPFILE PPEPATH() + "WUI_I", LANG + SEC + GRAPH SAVE_FLAG = TRUE PROMPTSTR 583, USER_FULL_SCREEN, 1, "YNA", FIELDLEN + GUIDE + UPCASE + LFBEFORE IF (USER_FULL_SCREEN = NOCHAR()) THEN U_FSEP = 0 U_FSE = 0 ELSEIF (USER_FULL_SCREEN = YESCHAR()) U_FSEP = 0 U_FSE = 1 ELSEIF (USER_FULL_SCREEN = "A") U_FSEP = 1 U_FSE = 0 END IF IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :MSG_COLUMNS IF (EXIST(PPEPATH() + "WUI_J")) DISPFILE PPEPATH() + "WUI_J", LANG + SEC + GRAPH SAVE_FLAG = TRUE PROMPTSTR 637, USER_EDITOR_WORKSPACE, 1, "YN", FIELDLEN + GUIDE + UPCASE + LFBEFORE + YESNO IF (USER_EDITOR_WORKSPACE = NOCHAR()) U_DEF79 = 0 IF (USER_EDITOR_WORKSPACE = YESCHAR()) U_DEF79 = 1 IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :PSA_STREET_NUMBER1 IF (EXIST(PPEPATH() + "WUI_K")) DISPFILE PPEPATH() + "WUI_K", LANG + SEC + GRAPH SAVE_FLAG = TRUE INPUTSTR "Street Address and Number", U_ADDR(0), 0Eh, 50, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE LET USER_ADDR0 = LEFT(RTRIM(U_ADDR(0), CHR(32)) + "······················································", 54) IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :PSA_STREET_NUMBER2 IF (EXIST(PPEPATH() + "WUI_L")) DISPFILE PPEPATH() + "WUI_L", LANG + SEC + GRAPH SAVE_FLAG = TRUE INPUTSTR "Suite or Apartment Number", U_ADDR(1), 0Eh, 50, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE LET USER_ADDR1 = LEFT(RTRIM(U_ADDR(1), CHR(32)) + "······················································", 54) IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :PSA_CITY IF (EXIST(PPEPATH() + "WUI_M")) DISPFILE PPEPATH() + "WUI_M", LANG + SEC + GRAPH SAVE_FLAG = TRUE INPUTSTR "City, Town or Village", U_ADDR(2), 0Eh, 25, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE LET USER_ADDR2 = LEFT(RTRIM(U_ADDR(2), CHR(32)) + "·························", 25) IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :PSA_PROVINCE_STATE IF (EXIST(PPEPATH() + "WUI_N")) DISPFILE PPEPATH() + "WUI_N", LANG + SEC + GRAPH SAVE_FLAG = TRUE INPUTSTR "Province or State", U_ADDR(3), 0Eh, 10, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE LET USER_ADDR3 = LEFT(RTRIM(U_ADDR(3), CHR(32)) + "·························", 25) IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :PSA_ZIPCODE IF (EXIST(PPEPATH() + "WUI_O")) DISPFILE PPEPATH() + "WUI_O", LANG + SEC + GRAPH SAVE_FLAG = TRUE INPUTSTR "Postal/Zip Code", U_ADDR(4), 0Eh, 10, MASK_NUM() + "-", FIELDLEN + GUIDE + UPCASE + LFBEFORE LET USER_ADDR4 = LEFT(RTRIM(U_ADDR(4), CHR(32)) + "················", 16) IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :PSA_COUNTRY IF (EXIST(PPEPATH() + "WUI_P")) DISPFILE PPEPATH() + "WUI_P", LANG + SEC + GRAPH SAVE_FLAG = TRUE INPUTSTR "Country or Region", U_ADDR(5), 0Eh, 15, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE LET USER_ADDR5 = LEFT(RTRIM(U_ADDR(5), CHR(32)) + "················", 16) IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :PSA_ALIAS_NAME IF (READLINE(PCBDAT(), 259) = "0" & (U_ALIAS <> "")) THEN PRINTLN PRINTLN "@X0CSorry, @FIRST@, You have already chosen an ALIAS name." PRINTLN PRINTLN "@X0EThe SysOp has disabled the ability to change your alias name. You may leave a" PRINTLN "@X0Ecomment to the System Operator to request a change of your alias name." PRINTLN WAIT ELSE IF (EXIST(PPEPATH() + "ALIAS")) DISPFILE PPEPATH() + "ALIAS", LANG + SEC + GRAPH PROMPTSTR 690, U_ALIAS, 25, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE IF (TRIM(U_ALIAS, CHR(32)) <> TRIM(STRIP(USER_ALIAS, CHR(250)), CHR(32))) THEN IF (U_RECNUM(U_ALIAS) <> -1) THEN LOG "Attempted to use " + TRIM(U_ALIAS, CHR(32)) + " as an alias.", 0 NEWLINES 2 DISPTEXT 256, LFAFTER + BELL + NEWLINE U_ALIAS = STRIP(USER_ALIAS, CHR(250)) WAIT ELSE ALIAS_FLAG = TRUE IF (TRIM(U_ALIAS, CHR(32)) <> "") THEN LOG "Changed alias to " + TRIM(U_ALIAS, CHR(32)) + ".", 0 ELSE LOG "Deleted current alias name " + TRIM(STRIP(USER_ALIAS, CHR(250)), CHR(32)) + ".", 0 END IF SAVE_FLAG = TRUE LET USER_ALIAS = LEFT(RTRIM(U_ALIAS, CHR(32)) + "·························", 25) END IF END IF END IF IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :PSA_VERIFICATION IF (U_VER <> "") THEN Verification_Command = "" IF (STRIP(Command_Line, " ") = "Y") NEWLINE PRINTLN "If you need to change or alter this field, you must first enter the information" PRINTLN "exactly like it was first entered. If you can't remember what was entered in" PRINTLN "this field, leave a comment to the SysOp, so he can help you out." PROMPTSTR 707, Verification_Command, 25, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + LFAFTER IF (Verification_Command = U_VER) THEN IF (EXIST(PPEPATH() + "VERIFY")) DISPFILE PPEPATH() + "VERIFY", LANG + SEC + GRAPH SAVE_FLAG = TRUE PROMPTSTR 706, U_VER, 25, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE ELSE IF (Verification_Command <> "") THEN LOG "Incorrect Verification Information (" + Verification_Command + ")", 0 NEWLINE PRINTLN "Sorry, the User Verification Information you just entered, does NOT match the" PRINTLN "information you previuosly entered. At this point you may leave a comment to" PRINTLN "the SysOp, or try again, make sure the information is entered correctly." NEWLINE WAIT END IF END IF ELSE IF (EXIST(PPEPATH() + "VERIFY")) DISPFILE PPEPATH() + "VERIFY", LANG + SEC + GRAPH SAVE_FLAG = TRUE PROMPTSTR 706, U_VER, 25, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE END IF LET USER_VER = LEFT(RTRIM(U_VER, CHR(32)) + "·························", 25) FOR Lp = 1 TO (LEN(U_VER)) USER_VER = REPLACE(USER_VER, MID(USER_VER, Lp, 1), "*") NEXT IF (Command_Line = "") GOTO BEGIN_MAIN GOTO END_PROGRAM :GRAB_INFO LOG "Write User Information (" + PPENAME() + ".PPE) " + "at (" + LEFT(TIME(), 5) + ")", 0 RDUNET PCBNODE() LET USER_NAME = LEFT(RTRIM(U_NAME(), CHR(32)) + "·························", 25) LET USER_CITY = LEFT(RTRIM(U_CITY, CHR(32)) + "·························", 25) LET USER_DPHONE = LEFT(RTRIM(U_BDPHONE, CHR(32)) + "·············", 13) LET USER_HPHONE = LEFT(RTRIM(U_HVPHONE, CHR(32)) + "·············", 13) LET USER_PWD = LEFT(RTRIM(U_PWD, CHR(32)) + "·············", 13) LET USER_SEC = LEFT(RTRIM(STRING(U_SEC), CHR(32)) + "·············", 13) LET USER_ALIAS = LEFT(RTRIM(U_ALIAS, CHR(32)) + "·························", 25) LET USER_VER = LEFT(RTRIM(U_VER, CHR(32)) + "·························", 25) FOR Lp = 1 TO (LEN(U_VER)) USER_VER = REPLACE(USER_VER, MID(USER_VER, Lp, 1), "*") NEXT LET USER_ADDR0 = LEFT(RTRIM(U_ADDR(0), CHR(32)) + "······················································", 54) LET USER_ADDR1 = LEFT(RTRIM(U_ADDR(1), CHR(32)) + "······················································", 54) LET USER_ADDR2 = LEFT(RTRIM(U_ADDR(2), CHR(32)) + "·························", 25) LET USER_ADDR3 = LEFT(RTRIM(U_ADDR(3), CHR(32)) + "·························", 25) LET USER_ADDR4 = LEFT(RTRIM(U_ADDR(4), CHR(32)) + "················", 16) LET USER_ADDR5 = LEFT(RTRIM(U_ADDR(5), CHR(32)) + "················", 16) USER_EXP_LEVEL = RIGHT(SPACE(8) + "········" + STRING(U_EXPSEC), 8) TEMP_DAYS = (U_EXPDATE - DATE()) IF (TEMP_DAYS < 0) TEMP_DAYS = 0 USER_REG_DAYS = RIGHT(SPACE(8) + "········" + STRING(TEMP_DAYS), 8) USER_ONLINE_TODAY = RIGHT(SPACE(8) + "········" + STRING(U_TIMEON()), 8) USER_ONLINE_SESSION = RIGHT(SPACE(8) + "········" + STRING(MINON()), 8) USER_CALLER_NUM = RIGHT(SPACE(8) + "········" + STRING(CALLNUM() + 1), 8) USER_LOGONS = RIGHT(SPACE(8) + "········" + STRING(U_LOGONS()), 8) IF (U_EXPERT = 0) USER_EXPERT_MODE = NOCHAR() IF (U_EXPERT = 1) USER_EXPERT_MODE = YESCHAR() IF (U_CLS = 0) USER_MESSAGE_CLEAR = NOCHAR() IF (U_CLS = 1) USER_MESSAGE_CLEAR = YESCHAR() IF ((U_FSEP = 0) & (U_FSE = 0)) USER_FULL_SCREEN = NOCHAR() IF ((U_FSEP = 0) & (U_FSE = 1)) USER_FULL_SCREEN = YESCHAR() IF ((U_FSEP = 1) & (U_FSE = 0)) USER_FULL_SCREEN = "A" IF (U_DEF79 = 0) USER_EDITOR_WORKSPACE = NOCHAR() IF (U_DEF79 = 1) USER_EDITOR_WORKSPACE = YESCHAR() IF (U_SCROLL = 0) USER_SCROLL_SCREEN = NOCHAR() IF (U_SCROLL = 1) USER_SCROLL_SCREEN = YESCHAR() IF (U_LONGHDR = 0) USER_LONG_HEADER = NOCHAR() IF (U_LONGHDR = 1) USER_LONG_HEADER = YESCHAR() RETURN :USER_INPUT Prompt_Command = "" IF (PERSONAL_FLAG = 0) THEN INPUTSTR "(@X0EN@X0F)ext Page, (@X0ES@X0F)tatistics, (@X0EQ@X0F)uit, (@X0EEnter@X0F)=none", Prompt_Command, 0Fh, 1, "nqsNQS", FIELDLEN + GUIDE + UPCASE + LFBEFORE + ERASELINE ELSE INPUTSTR "(@X0EL@X0F)ast Page, (@X0ES@X0F)tatistics, (@X0EQ@X0F)uit, (@X0EEnter@X0F)=none", Prompt_Command, 0Fh, 1, "lqsLQS", FIELDLEN + GUIDE + UPCASE + LFBEFORE + ERASELINE END IF IF (Prompt_Command = "L") GOTO PERSONAL_SCREEN IF (Prompt_Command = "N") GOTO INFORMATION_SCREEN IF (Prompt_Command = "S") GOTO SECURITY_INFORMATION IF ((Prompt_Command = "Q") & (Command_Line = "")) GOTO BEGIN_MAIN IF ((Prompt_Command = "") & (Command_Line = "")) GOTO BEGIN_MAIN GOTO END_PROGRAM :PERSONAL_SCREEN PERSONAL_FLAG = 0 IF (CALLERLOG_FLAG = 0) THEN LOG "User Statistics Viewed at (" + LEFT(TIME(), 5) + ")", 0 CALLERLOG_FLAG = TRUE END IF CLS PRINTLN "@X30┌@X3B───────────────────────────────────────────────────────────────────────────┐@X07" PRINTLN "@X30│ @X34U S E R S I N F O R M A T I O N@POS:77@@X3B│@X07" PRINTLN "@X30└───────────────────────────────────────────────────────────────────────────@X3B┘@X07" PRINTLN PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PRINTLN "@X30│ @X3FUsers Full Name@X30: @X31[@X3E" + USER_NAME + "@X31] @X3FData Phone@X30: @X31[@X3E" + USER_DPHONE + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FCity and State @X30: @X31[@X3E" + USER_CITY + "@X31] @X3FHome Phone@X30: @X31[@X3E" + USER_HPHONE + "@X31] @POS:77@@X3B│@X07" IF (PSA(1)) THEN PRINTLN "@X30│ @X3FUser Alias Name@X30: @X31[@X3E" + USER_ALIAS + "@X31] @X3FPassword @X30: @X31[@X3E" + USER_PWD + "@X31] @POS:77@@X3B│@X07" ELSE PRINTLN "@X30│ @X3FUser Alias Name@X30: @X31[@X38" + USER_ALIAS + "@X31] @X3FPassword @X30: @X31[@X3E" + USER_PWD + "@X31] @POS:77@@X3B│@X07" END IF IF (PSA(2)) THEN PRINTLN "@X30│ @X3FVerification @X30: @X31[@X3E" + USER_VER + "@X31] @X3FSecurity @X30: @X31[@X3E" + USER_SEC + "@X31] @POS:77@@X3B│@X07" ELSE PRINTLN "@X30│ @X3FVerification @X30: @X31[@X38" + USER_VER + "@X31] @X3FSecurity @X30: @X31[@X3E" + USER_SEC + "@X31] @POS:77@@X3B│@X07" END IF PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" IF (PSA(3)) THEN PRINTLN PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PRINTLN "@X30│ @X3FStreet Address @X30: @X31[@X3E" + USER_ADDR0 + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FSuite/Apartment@X30: @X31[@X3E" + USER_ADDR1 + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FCity or Town @X30: @X31[@X3E" + USER_ADDR2 + "@X31] @X3FZipCode@X30: @X31[@X3E" + USER_ADDR4 + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FProvince/State @X30: @X31[@X3E" + USER_ADDR3 + "@X31] @X3FCountry@X30: @X31[@X3E" + USER_ADDR5 + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" ELSE PRINTLN PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PRINTLN "@X30│ @X3FStreet Address @X30: @X31[@X38" + USER_ADDR0 + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FSuite/Apartment@X30: @X31[@X38" + USER_ADDR1 + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FCity or Town @X30: @X31[@X38" + USER_ADDR2 + "@X31] @X3FZipCode@X30: @X31[@X38" + USER_ADDR4 + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FProvince/State @X30: @X31[@X38" + USER_ADDR3 + "@X31] @X3FCountry@X30: @X31[@X38" + USER_ADDR5 + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" END IF PRINTLN PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PRINTLN "@X30│ @X3FNumber of Times on System@X30: @X31[@X3E" + USER_LOGONS + "@X31] @X3FNumber of System Calls@X30: @X31[@X3E" + USER_CALLER_NUM + "@X31]@POS:77@@X3B│@X07" PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" GOTO USER_INPUT :INFORMATION_SCREEN PERSONAL_FLAG = TRUE CLS PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PRINTLN "@X30│ @X3FRegistration Expiration Date@X30: @X31[@X3E" + LEFT(U_EXPDATE, 8) + "@X31] @X3FLast Date on System@X30: @X31[@X3E" + LEFT(U_LDATE(), 8) + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FDays Left before Expiration @X30: @X31[@X3E" + USER_REG_DAYS + "@X31] @X3FLast Time on System@X30: @X31[@X3E" + LEFT(U_LTIME(), 8) + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FExpired User Security Level @X30: @X31[@X3E" + USER_EXP_LEVEL + "@X31] @X3FLast Directory Scan@X30: @X31[@X3E" + LEFT(U_LDIR(), 8) + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FMinutes Used this Session @X30: @X31[@X3E" + USER_ONLINE_SESSION + "@X31] @X3FMinutes Used Today @X30: @X31[@X3E" + USER_ONLINE_TODAY + "@X31] @POS:77@@X3B│@X07" PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" PRINTLN PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PRINTLN "@X30│ @X3FGraphics Mode @X30: @X31[@X3E" + GRAFMODE() + "@X31] @X3FExpert Mode @X30: @X31[@X3E" + USER_EXPERT_MODE + "@X31] @X3FDefault Protocol@X30: @X31[@X3E" + U_TRANS + "@X31]@POS:77@@X3B│@X07" PRINTLN "@X30│ @X3F79-Column Editor@X30: @X31[@X3E" + USER_EDITOR_WORKSPACE + "@X31] @X3FFull Scrn Editor@X30: @X31[@X3E" + USER_FULL_SCREEN + "@X31] @X3FLong Headers @X30: @X31[@X3E" + USER_LONG_HEADER + "@X31]@POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FScroll Long Msgs@X30: @X31[@X3E" + USER_SCROLL_SCREEN + "@X31] @X3FChat Status @X30: @X31[@X3E" + UN_STAT() + "@X31] @X3FMessage Clear @X30: @X31[@X3E" + USER_MESSAGE_CLEAR + "@X31]@POS:77@@X3B│@X07" PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" PRINTLN PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07" PRINTLN "@X30│ @X3FFiles Downloaded@X30: @X31[@X3E@DLFILES:14R@@X31] @X3FFiles Uploaded@X30: @X31[@X3E@UPFILES:14R@@X31]@POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FBytes Downloaded@X30: @X31[@X3E@DLBYTES:14R@@X31] @X3FBytes Uploaded@X30: @X31[@X3E@UPBYTES:14R@@X31]@POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FFile Ratios @X30: @X31[@X3E@FILERATIO:14R@@X31] @X3FByte Ratios @X30: @X31[@X3E@BYTERATIO:14R@@X31]@POS:77@@X3B│@X07" PRINTLN "@X30│@X38───────────────────────────────────────────────────────────────────────────@X3B│@X07" PRINTLN "@X30│ @X3FMessages Left @X30: @X31[@X3E@MSGLEFT:14R@@X31] @X3FMessages Read @X30: @X31[@X3E@MSGREAD:14R@@X31]@POS:77@@X3B│@X07" PRINTLN "@X30│ @X3FHighest Message @X30: @X31[@X3E@HIGHMSGNUM:14R@@X31] @X3FLast Msg Read @X30: @X31[@X3E@LMR:14R@@X31]@POS:77@@X3B│@X07" PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07" GOTO USER_INPUT :SECURITY_INFORMATION IF (PSA(5)) THEN LOG "Security Information Viewed at (" + LEFT(TIME(), 5) + ")", 0 CLS PRINTLN "@X40┌───────────────────────────────────────────────────────────────────────────@X4C┐@X07" PRINTLN "@X40│ @X4BU S E R S E C U R I T Y S T A T I S T I C S @X4C│@X07" PRINTLN "@X40└@X4C───────────────────────────────────────────────────────────────────────────┘@X07" NEWLINE PRINTLN "@X40┌───────────────────────────────────────────────────────────────────────────@X4C┐@X07" PRINTLN "@X40│ @X4FFirst Date On system @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(1)), 8) + "@X47] @POS:43@@X4FLast PWD Change Date @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_PWDLC()), 8) + "@X47] @POS:77@@X4C│@X07" PRINTLN "@X40│ @X4FLast Date On system @X40: @X47[@X4E" + LEFT(U_LDATE(), 8) + "@X47] @POS:43@@X4FPWD Expiration Date @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_PWDEXP), 8) + "@X47] @POS:77@@X4C│@X07" PRINTLN "@X40│ @X4FNumber Times On system @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_LOGONS()), 8) + "@X47] @POS:43@@X4F# Times PWD Changed @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_PWDTC()), 8) + "@X47] @POS:77@@X4C│@X07" PRINTLN "@X40│ @POS:77@@X4C│@X07" PRINTLN "@X40│ @X4F# Security Violations @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(10)), 8) + "@X47] @POS:43@@X4F# Times Paged Sysop @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(2)), 8) + "@X47] @POS:77@@X4C│@X07" PRINTLN "@X40│ @X4F# Un-Reg Conf Attempts @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(11)), 8) + "@X47] @POS:43@@X4F# Times Group Chat @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(3)), 8) + "@X47] @POS:77@@X4C│@X07" PRINTLN "@X40│ @X4F# Password Failures @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(14)), 8) + "@X47] @POS:43@@X4F# Comments to Sysop @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(4)), 8) + "@X47] @POS:77@@X4C│@X07" PRINTLN "@X40│ @X4F# Dnld Limit Reached @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(12)), 8) + "@X47] @POS:77@@X4C│@X07" PRINTLN "@X40│ @X4F# Dnld File Not Found @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(13)), 8) + "@X47] @POS:43@@X4F# Upld Verify Failed @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(15)), 8) + "@X47] @POS:77@@X4C│@X07" PRINTLN "@X40│ @POS:77@@X4C│@X07" PRINTLN "@X40│ @X4F# Times On at 1200 @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(6)), 8) + "@X47] @POS:43@@X4F# Times On at 2400 @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(7)), 8) + "@X47] @POS:77@@X4C│@X07" PRINTLN "@X40│ @X4F# Times On at 9600 @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(8)), 8) + "@X47] @POS:43@@X4F# Times On at 14400+ @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(9)), 8) + "@X47] @POS:77@@X4C│@X07" PRINTLN "@X40└@X4C───────────────────────────────────────────────────────────────────────────┘@X07" NEWLINES 2 WAIT END IF IF (STRIP(Command_Line, " ") = "S") GOTO END_PROGRAM IF (Write_User_Information = "S") GOTO BEGIN_MAIN IF (PERSONAL_FLAG = 0) GOTO PERSONAL_SCREEN IF (PERSONAL_FLAG = TRUE) GOTO INFORMATION_SCREEN GOTO USER_INPUT :END_PROGRAM IF (SAVE_FLAG = TRUE) THEN PUTUSER IF (Command_Line <> "") PRINTLN IF (ALIAS_FLAG = TRUE) THEN WRUSYS IF (EXIST(PPEPATH() + "INDEX.BAT")) THEN NEWLINE PRINT "@X0FOnline update of user's record being processed. Please wait, @FIRST@ ... " RDUSYS SHELL TRUE, Lp, PPEPATH() + "INDEX.BAT", "" FRESHLINE END IF END IF DISPTEXT 273, LFAFTER + LFBEFORE + BELL + LOGIT END IF END