home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / WUI_31A.ZIP / WUI.PPS < prev   
Encoding:
Text File  |  1993-05-28  |  33.7 KB  |  662 lines

  1. ;*****************************************************************************
  2. ;*                                                                           *
  3. ;*                             WUI.PPE v3.10a                                *
  4. ;*               PCBOARD 15.0 WRITE USER INFORMATION PROGRAM                 *
  5. ;*                                                                           *
  6. ;*                Written by Larry Steele and Jerry Claxton                  *
  7. ;*                 Written in PCBoard Programming Language                   *
  8. ;*                         Compiled on 05-28-1993                            *
  9. ;*                                                                           *
  10. ;*                   "The Shoppe Bulletin Board Systems"                     *
  11. ;*               Node 1 - 708-888-0725 - [16.8 DS] - 80486/50                *
  12. ;*               Node 2 - 708-888-1162 - [16.8 DS] - 80486/40                *
  13. ;*               Node 3 - 708-888-0078 - [16.8 DS] - 80486/40                *
  14. ;*               Node 4 - 708-888-4175 - [16.8 DS] - 80486/40                *
  15. ;*               Node 5 - PRIVATE LINE - [16.8 DS] - 80486/66                *
  16. ;*****************************************************************************
  17.  
  18.  
  19. ;*****************************************************************************
  20. ;* Define variable types                                                     *
  21. ;*****************************************************************************
  22.  
  23. BOOLEAN SAVE_FLAG, ALIAS_FLAG, CALLERLOG_FLAG, PERSONAL_FLAG
  24. INTEGER TEMP_DAYS, Lp
  25.  
  26. STRING  Write_User_Information, Verification_Command
  27. STRING  Command_Line, Prompt_Command
  28. STRING  User_PassWord_One, User_PassWord_Two
  29.  
  30. STRING  USER_NAME, USER_CITY, USER_DPHONE, USER_HPHONE
  31. STRING  USER_ALIAS, USER_VER, USER_PWD, USER_SEC
  32. STRING  USER_ADDR0, USER_ADDR1, USER_ADDR2
  33. STRING  USER_ADDR3, USER_ADDR4, USER_ADDR5
  34. STRING  USER_REG_DAYS, USER_EXP_LEVEL, USER_ONLINE_TODAY, USER_ONLINE_SESSION
  35. STRING  USER_CALLER_NUM, USER_LOGONS, USER_LONG_HEADER, USER_EXPERT_MODE, USER_SCROLL_SCREEN
  36. STRING  USER_MESSAGE_CLEAR, USER_FULL_SCREEN, USER_EDITOR_WORKSPACE
  37.  
  38.  
  39. ;*****************************************************************************
  40. ;* Load the current users information                                        *
  41. ;*****************************************************************************
  42.  
  43. GETUSER
  44. GOSUB GRAB_INFO
  45.  
  46. ;*****************************************************************************
  47. ;* Check the command line for any Parameters                                 *
  48. ;*****************************************************************************
  49.  
  50. GETTOKEN Command_Line
  51. IF (STRIP(Command_Line, " ") = "A") GOTO PASSWORD
  52. IF (STRIP(Command_Line, " ") = "B") GOTO CITY_STATE
  53. IF (STRIP(Command_Line, " ") = "C") GOTO DATA_PHONE
  54. IF (STRIP(Command_Line, " ") = "D") GOTO HOME_PHONE
  55. IF (STRIP(Command_Line, " ") = "E") GOTO CPU_BRAND
  56. IF (STRIP(Command_Line, " ") = "F") GOTO MSG_CLEAR
  57. IF (STRIP(Command_Line, " ") = "G") GOTO MSG_SCROLL
  58. IF (STRIP(Command_Line, " ") = "H") GOTO MSG_HEADER
  59. IF (STRIP(Command_Line, " ") = "I") GOTO MSG_FULLSCREEN
  60. IF (STRIP(Command_Line, " ") = "J") GOTO MSG_COLUMNS
  61.  
  62. IF (STRIP(Command_Line, " ") = "K" & PSA(3)) GOTO PSA_STREET_NUMBER1
  63. IF (STRIP(Command_Line, " ") = "L" & PSA(3)) GOTO PSA_STREET_NUMBER2
  64. IF (STRIP(Command_Line, " ") = "M" & PSA(3)) GOTO PSA_CITY
  65. IF (STRIP(Command_Line, " ") = "N" & PSA(3)) GOTO PSA_PROVINCE_STATE
  66. IF (STRIP(Command_Line, " ") = "O" & PSA(3)) GOTO PSA_ZIPCODE
  67. IF (STRIP(Command_Line, " ") = "P" & PSA(3)) GOTO PSA_COUNTRY
  68.  
  69. IF (STRIP(Command_Line, " ") = "S" & PSA(5)) GOTO SECURITY_INFORMATION
  70. IF (STRIP(Command_Line, " ") = "X" & PSA(1)) GOTO PSA_ALIAS_NAME
  71. IF (STRIP(Command_Line, " ") = "Y" & PSA(2)) GOTO PSA_VERIFICATION
  72.  
  73. IF (STRIP(Command_Line, " ") = "V") GOTO PERSONAL_SCREEN
  74. IF (STRIP(Command_Line, " ") <> "") Command_Line = ""
  75.  
  76. ;*****************************************************************************
  77. ;* Start of Main PPE program                                                 *
  78. ;*****************************************************************************
  79.  
  80. :BEGIN_MAIN
  81.      CLS
  82.      Write_User_Information = ""
  83.      PRINTLN "@X7F┌─────────────────────────────────────────────────────────────────────────────@X70┐@X07"
  84.      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"
  85.      PRINTLN "@X7F└@X70─────────────────────────────────────────────────────────────────────────────┘@X07"
  86.      PRINTLN "@X70┌─────────────────────────────────────────────────────────────────────────────@X7F┐@X07"
  87.      PRINTLN "@X70│ @X71(@X7EA@X71) Change your Password          (@X7EF@X71) Clear the screen between each message @X7F│@X07"
  88.      PRINTLN "@X70│ @X71(@X7EB@X71) Change City and State         (@X7EG@X71) Scroll multi-screen messages          @X7F│@X07"
  89.      PRINTLN "@X70│ @X71(@X7EC@X71) Business or data phone        (@X7EH@X71) Use long header when reading messages @X7F│@X07"
  90.      PRINTLN "@X70│ @X71(@X7ED@X71) Home or voice phone           (@X7EI@X71) Full Screen Editor Default            @X7F│@X07"
  91.      PRINTLN "@X70│ @X71(@X7EE@X71) Brand of CPU you are using    (@X7EJ@X71) Set editor workspace to 79 columns    @X7F│@X07"
  92.      IF (PSA(1) | PSA(2) | PSA(3)) THEN
  93.          PRINTLN "@X70│                                                                             @X7F│@X07"
  94.          PRINTLN "@X70│ @X71(@X7EK@X71) Street Address and Number     (@X7EX@X71) Create or change your ALIAS name      @X7F│@X07"
  95.          PRINTLN "@X70│ @X71(@X7EL@X71) Suite or Apartment Number     (@X7EY@X71) User Verification Information         @X7F│@X07"
  96.  
  97.          PRINTLN "@X70│ @X71(@X7EM@X71) City, Town or Village @POS:79@@X7F│@X07"
  98.          PRINTLN "@X70│ @X71(@X7EN@X71) Province or State             @X7F┌───────────────────────────────────────@X70┐@X70 @X7F│@X07"
  99.          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"
  100.          PRINTLN "@X70│ @X71(@X7EP@X71) Country or Region             @X7F└@X70───────────────────────────────────────┘@X70 @X7F│@X07"
  101.          PRINTLN "@X70└@X7F─────────────────────────────────────────────────────────────────────────────┘@X07"
  102.          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
  103.      ELSE
  104.          PRINTLN "@X70└@X7F─────────────────────────────────────────────────────────────────────────────┘@X07"
  105.          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
  106.      END IF
  107.  
  108.      IF (Write_User_Information = "A") GOTO PASSWORD
  109.      IF (Write_User_Information = "B") GOTO CITY_STATE
  110.      IF (Write_User_Information = "C") GOTO DATA_PHONE
  111.      IF (Write_User_Information = "D") GOTO HOME_PHONE
  112.      IF (Write_User_Information = "E") GOTO CPU_BRAND
  113.      IF (Write_User_Information = "F") GOTO MSG_CLEAR
  114.      IF (Write_User_Information = "G") GOTO MSG_SCROLL
  115.      IF (Write_User_Information = "H") GOTO MSG_HEADER
  116.      IF (Write_User_Information = "I") GOTO MSG_FULLSCREEN
  117.      IF (Write_User_Information = "J") GOTO MSG_COLUMNS
  118.  
  119.      IF (Write_User_Information = "K" & PSA(3)) GOTO PSA_STREET_NUMBER1
  120.      IF (Write_User_Information = "L" & PSA(3)) GOTO PSA_STREET_NUMBER2
  121.      IF (Write_User_Information = "M" & PSA(3)) GOTO PSA_CITY
  122.      IF (Write_User_Information = "N" & PSA(3)) GOTO PSA_PROVINCE_STATE
  123.      IF (Write_User_Information = "O" & PSA(3)) GOTO PSA_ZIPCODE
  124.      IF (Write_User_Information = "P" & PSA(3)) GOTO PSA_COUNTRY
  125.  
  126.      IF (Write_User_Information = "S" & PSA(5)) GOTO SECURITY_INFORMATION
  127.      IF (Write_User_Information = "X" & PSA(1)) GOTO PSA_ALIAS_NAME
  128.      IF (Write_User_Information = "Y" & PSA(2)) GOTO PSA_VERIFICATION
  129.  
  130.      IF (Write_User_Information = "V") GOTO PERSONAL_SCREEN
  131.      IF (Write_User_Information = "Q") GOTO END_PROGRAM
  132.      IF (Write_User_Information = "") GOTO END_PROGRAM
  133.      GOTO BEGIN_MAIN
  134.  
  135.  
  136. ;*****************************************************************************
  137. ;* Start of PPE GOTO'S AND GOSUB'S                                           *
  138. ;*****************************************************************************
  139.  
  140. :PASSWORD
  141.      IF (EXIST(PPEPATH() + "WUI_A")) DISPFILE PPEPATH() + "WUI_A", LANG + SEC + GRAPH
  142.      
  143.      PROMPTSTR 152, User_PassWord_One, 13, MASK_PWD(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + ECHODOTS + LFAFTER
  144.  
  145.      IF (STRIP(Command_Line, " ") = "A" & (User_PassWord_One = "")) GOTO END_PROGRAM
  146.      IF ((Write_User_Information = "A") & (User_PassWord_One = "")) GOTO BEGIN_MAIN
  147.  
  148.      IF (PSA(4) & (LEN(User_PassWord_One) < READLINE(PCBDAT(), 265))) THEN
  149.          User_PassWord_One = ""
  150.  
  151.          NEWLINE
  152.          PRINTLN "@X0CPassword too short!  Must be @X0F" + TRIM(READLINE(PCBDAT(), 265), CHR(32)) + " @X0Ccharacters or longer, try again.@X07"
  153.  
  154.          FRESHLINE
  155.          GOTO PASSWORD
  156.      ELSEIF (PSA(4) & (INSTR(U_NAME(), User_PassWord_One) > 0)) THEN
  157.          User_PassWord_One = ""
  158.  
  159.          NEWLINE
  160.          PRINTLN "@X0CYour password cannot be a subset of your name.  While this may make it easy for"
  161.          PRINTLN "@X0Cyou to remember, it also makes it easier for someone to guess your password.@X07"
  162.  
  163.          FRESHLINE
  164.          GOTO PASSWORD
  165.      END IF
  166.  
  167.  
  168.      PROMPTSTR 111, User_PassWord_Two, 13, MASK_PWD(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + ECHODOTS
  169.      
  170.      IF (User_PassWord_One <> User_PassWord_Two) THEN
  171.          User_PassWord_One = ""
  172.          User_PassWord_Two = ""
  173.  
  174.          NEWLINES 2
  175.          PRINTLN "@X0CSorry, @FIRST@, the two passwords do not match, try again.@X07"
  176.  
  177.          FRESHLINE
  178.          GOTO PASSWORD
  179.      ELSEIF (User_PassWord_One = User_PassWord_Two) THEN
  180.          SAVE_FLAG = TRUE
  181.          U_PWD = User_PassWord_One
  182.  
  183.          User_PassWord_One = ""
  184.          User_PassWord_Two = ""
  185.      END IF
  186.  
  187.      IF (Command_Line = "") GOTO BEGIN_MAIN
  188.      GOTO END_PROGRAM
  189.  
  190.  
  191. :CITY_STATE
  192.      IF (EXIST(PPEPATH() + "WUI_B")) DISPFILE PPEPATH() + "WUI_B", LANG + SEC + GRAPH
  193.  
  194.      SAVE_FLAG = TRUE
  195.      PROMPTSTR 265, U_CITY, 24, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE
  196.      LET USER_CITY = LEFT(RTRIM(U_CITY, CHR(32)) + "·························", 25)
  197.  
  198.      IF (Command_Line = "") GOTO BEGIN_MAIN
  199.      GOTO END_PROGRAM
  200.  
  201.  
  202. :DATA_PHONE
  203.      IF (EXIST(PPEPATH() + "WUI_C")) DISPFILE PPEPATH() + "WUI_C", LANG + SEC + GRAPH
  204.  
  205.      SAVE_FLAG = TRUE
  206.      PROMPTSTR 113, U_BDPHONE, 13, MASK_NUM() + "- ", FIELDLEN + GUIDE + UPCASE + LFBEFORE
  207.      LET USER_DPHONE = LEFT(RTRIM(U_BDPHONE, CHR(32)) + "·············", 13)
  208.      
  209.      IF (Command_Line = "") GOTO BEGIN_MAIN
  210.      GOTO END_PROGRAM
  211.  
  212.  
  213. :HOME_PHONE
  214.      IF (EXIST(PPEPATH() + "WUI_D")) DISPFILE PPEPATH() + "WUI_D", LANG + SEC + GRAPH
  215.  
  216.      SAVE_FLAG = TRUE
  217.      PROMPTSTR 114, U_HVPHONE, 13, MASK_NUM() + "- ", FIELDLEN + GUIDE + UPCASE + LFBEFORE
  218.      LET USER_HPHONE = LEFT(RTRIM(U_HVPHONE, CHR(32)) + "·············", 13)
  219.  
  220.      IF (Command_Line = "") GOTO BEGIN_MAIN
  221.      GOTO END_PROGRAM
  222.  
  223.  
  224. :CPU_BRAND
  225.      IF (EXIST(PPEPATH() + "WUI_E")) DISPFILE PPEPATH() + "WUI_E", LANG + SEC + GRAPH
  226.  
  227.      SAVE_FLAG = TRUE
  228.      PROMPTSTR 2, U_CMNT1, 30, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE
  229.      IF (Command_Line = "") GOTO BEGIN_MAIN
  230.      GOTO END_PROGRAM
  231.  
  232.  
  233. :MSG_CLEAR
  234.      IF (EXIST(PPEPATH() + "WUI_F")) DISPFILE PPEPATH() + "WUI_F", LANG + SEC + GRAPH
  235.  
  236.      SAVE_FLAG = TRUE
  237.      PROMPTSTR 556, USER_MESSAGE_CLEAR, 1, "YN", FIELDLEN + GUIDE + UPCASE + LFBEFORE + YESNO
  238.  
  239.      IF (USER_MESSAGE_CLEAR = NOCHAR()) U_CLS = 0
  240.      IF (USER_MESSAGE_CLEAR = YESCHAR()) U_CLS = 1
  241.      IF (Command_Line = "") GOTO BEGIN_MAIN
  242.      GOTO END_PROGRAM
  243.  
  244.  
  245. :MSG_SCROLL
  246.      IF (EXIST(PPEPATH() + "WUI_G")) DISPFILE PPEPATH() + "WUI_G", LANG + SEC + GRAPH
  247.  
  248.      SAVE_FLAG = TRUE
  249.      PROMPTSTR 627, USER_SCROLL_SCREEN, 1, "YN", FIELDLEN + GUIDE + UPCASE + LFBEFORE + YESNO
  250.  
  251.      IF (USER_SCROLL_SCREEN = NOCHAR()) U_SCROLL = 0
  252.      IF (USER_SCROLL_SCREEN = YESCHAR()) U_SCROLL = 1
  253.      IF (Command_Line = "") GOTO BEGIN_MAIN
  254.      GOTO END_PROGRAM
  255.  
  256.  
  257. :MSG_HEADER
  258.      IF (EXIST(PPEPATH() + "WUI_H")) DISPFILE PPEPATH() + "WUI_H", LANG + SEC + GRAPH
  259.  
  260.      SAVE_FLAG = TRUE
  261.      PROMPTSTR 628, USER_LONG_HEADER, 1, "YN", FIELDLEN + GUIDE + UPCASE + LFBEFORE + YESNO
  262.  
  263.      IF (USER_LONG_HEADER = NOCHAR()) U_LONGHDR = 0
  264.      IF (USER_LONG_HEADER = YESCHAR()) U_LONGHDR = 1
  265.      IF (Command_Line = "") GOTO BEGIN_MAIN
  266.      GOTO END_PROGRAM
  267.  
  268.  
  269. :MSG_FULLSCREEN
  270.      IF (EXIST(PPEPATH() + "WUI_I")) DISPFILE PPEPATH() + "WUI_I", LANG + SEC + GRAPH
  271.  
  272.      SAVE_FLAG = TRUE
  273.      PROMPTSTR 583, USER_FULL_SCREEN, 1, "YNA", FIELDLEN + GUIDE + UPCASE + LFBEFORE
  274.  
  275.      IF (USER_FULL_SCREEN = NOCHAR()) THEN
  276.          U_FSEP = 0
  277.          U_FSE = 0
  278.      ELSEIF (USER_FULL_SCREEN = YESCHAR())
  279.          U_FSEP = 0
  280.          U_FSE = 1
  281.      ELSEIF (USER_FULL_SCREEN = "A")
  282.          U_FSEP = 1
  283.          U_FSE = 0
  284.      END IF
  285.      IF (Command_Line = "") GOTO BEGIN_MAIN
  286.      GOTO END_PROGRAM
  287.  
  288.  
  289. :MSG_COLUMNS
  290.      IF (EXIST(PPEPATH() + "WUI_J")) DISPFILE PPEPATH() + "WUI_J", LANG + SEC + GRAPH
  291.  
  292.      SAVE_FLAG = TRUE
  293.      PROMPTSTR 637, USER_EDITOR_WORKSPACE, 1, "YN", FIELDLEN + GUIDE + UPCASE + LFBEFORE + YESNO
  294.  
  295.      IF (USER_EDITOR_WORKSPACE = NOCHAR()) U_DEF79 = 0
  296.      IF (USER_EDITOR_WORKSPACE = YESCHAR()) U_DEF79 = 1
  297.      IF (Command_Line = "") GOTO BEGIN_MAIN
  298.      GOTO END_PROGRAM
  299.  
  300.  
  301. :PSA_STREET_NUMBER1
  302.      IF (EXIST(PPEPATH() + "WUI_K")) DISPFILE PPEPATH() + "WUI_K", LANG + SEC + GRAPH
  303.  
  304.      SAVE_FLAG = TRUE
  305.      INPUTSTR "Street Address and Number", U_ADDR(0), 0Eh, 50, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE
  306.      LET USER_ADDR0 = LEFT(RTRIM(U_ADDR(0), CHR(32)) + "······················································", 54)
  307.  
  308.      IF (Command_Line = "") GOTO BEGIN_MAIN
  309.      GOTO END_PROGRAM
  310.  
  311.  
  312. :PSA_STREET_NUMBER2
  313.      IF (EXIST(PPEPATH() + "WUI_L")) DISPFILE PPEPATH() + "WUI_L", LANG + SEC + GRAPH
  314.  
  315.      SAVE_FLAG = TRUE
  316.      INPUTSTR "Suite or Apartment Number", U_ADDR(1), 0Eh, 50, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE
  317.      LET USER_ADDR1 = LEFT(RTRIM(U_ADDR(1), CHR(32)) + "······················································", 54)
  318.  
  319.      IF (Command_Line = "") GOTO BEGIN_MAIN
  320.      GOTO END_PROGRAM
  321.  
  322.  
  323. :PSA_CITY
  324.      IF (EXIST(PPEPATH() + "WUI_M")) DISPFILE PPEPATH() + "WUI_M", LANG + SEC + GRAPH
  325.  
  326.      SAVE_FLAG = TRUE
  327.      INPUTSTR "City, Town or Village", U_ADDR(2), 0Eh, 25, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE
  328.      LET USER_ADDR2 = LEFT(RTRIM(U_ADDR(2), CHR(32)) + "·························", 25)
  329.  
  330.      IF (Command_Line = "") GOTO BEGIN_MAIN
  331.      GOTO END_PROGRAM
  332.  
  333.  
  334. :PSA_PROVINCE_STATE
  335.      IF (EXIST(PPEPATH() + "WUI_N")) DISPFILE PPEPATH() + "WUI_N", LANG + SEC + GRAPH
  336.      
  337.      SAVE_FLAG = TRUE
  338.      INPUTSTR "Province or State", U_ADDR(3), 0Eh, 10, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE
  339.      LET USER_ADDR3 = LEFT(RTRIM(U_ADDR(3), CHR(32)) + "·························", 25)
  340.  
  341.      IF (Command_Line = "") GOTO BEGIN_MAIN
  342.      GOTO END_PROGRAM
  343.  
  344.  
  345. :PSA_ZIPCODE
  346.      IF (EXIST(PPEPATH() + "WUI_O")) DISPFILE PPEPATH() + "WUI_O", LANG + SEC + GRAPH
  347.      
  348.      SAVE_FLAG = TRUE
  349.      INPUTSTR "Postal/Zip Code", U_ADDR(4), 0Eh, 10, MASK_NUM() + "-", FIELDLEN + GUIDE + UPCASE + LFBEFORE
  350.      LET USER_ADDR4 = LEFT(RTRIM(U_ADDR(4), CHR(32)) + "················", 16)
  351.  
  352.      IF (Command_Line = "") GOTO BEGIN_MAIN
  353.      GOTO END_PROGRAM
  354.  
  355.  
  356. :PSA_COUNTRY
  357.      IF (EXIST(PPEPATH() + "WUI_P")) DISPFILE PPEPATH() + "WUI_P", LANG + SEC + GRAPH
  358.      
  359.      SAVE_FLAG = TRUE
  360.      INPUTSTR "Country or Region", U_ADDR(5), 0Eh, 15, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE
  361.      LET USER_ADDR5 = LEFT(RTRIM(U_ADDR(5), CHR(32)) + "················", 16)
  362.  
  363.      IF (Command_Line = "") GOTO BEGIN_MAIN
  364.      GOTO END_PROGRAM
  365.  
  366.  
  367. :PSA_ALIAS_NAME
  368.      IF (READLINE(PCBDAT(), 259) = "0" & (U_ALIAS <> "")) THEN
  369.          PRINTLN
  370.          PRINTLN "@X0CSorry, @FIRST@, You have already chosen an ALIAS name."
  371.          PRINTLN
  372.          PRINTLN "@X0EThe SysOp has disabled the ability to change your alias name.  You may leave a"
  373.          PRINTLN "@X0Ecomment to the System Operator to request a change of your alias name."
  374.          PRINTLN
  375.          WAIT
  376.      ELSE
  377.          IF (EXIST(PPEPATH() + "ALIAS")) DISPFILE PPEPATH() + "ALIAS", LANG + SEC + GRAPH
  378.  
  379.          PROMPTSTR 690, U_ALIAS, 25, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE
  380.          
  381.          IF (TRIM(U_ALIAS, CHR(32)) <> TRIM(STRIP(USER_ALIAS, CHR(250)), CHR(32))) THEN
  382.              IF (U_RECNUM(U_ALIAS) <> -1) THEN
  383.                  LOG "Attempted to use " + TRIM(U_ALIAS, CHR(32)) + " as an alias.", 0
  384.  
  385.                  NEWLINES 2
  386.                  DISPTEXT 256, LFAFTER + BELL + NEWLINE
  387.  
  388.                  U_ALIAS = STRIP(USER_ALIAS, CHR(250))
  389.                  WAIT
  390.              ELSE
  391.                  ALIAS_FLAG = TRUE
  392.                  IF (TRIM(U_ALIAS, CHR(32)) <> "") THEN
  393.                      LOG "Changed alias to " + TRIM(U_ALIAS, CHR(32)) + ".", 0
  394.                  ELSE
  395.                      LOG "Deleted current alias name " + TRIM(STRIP(USER_ALIAS, CHR(250)), CHR(32)) + ".", 0
  396.                  END IF
  397.  
  398.                  SAVE_FLAG = TRUE
  399.                  LET USER_ALIAS = LEFT(RTRIM(U_ALIAS, CHR(32)) + "·························", 25)
  400.              END IF
  401.          END IF
  402.      END IF
  403.  
  404.      IF (Command_Line = "") GOTO BEGIN_MAIN
  405.      GOTO END_PROGRAM
  406.  
  407.  
  408. :PSA_VERIFICATION
  409.      IF (U_VER <> "") THEN
  410.          Verification_Command = ""
  411.  
  412.          IF (STRIP(Command_Line, " ") = "Y") NEWLINE
  413.          PRINTLN "If you need to change or alter this field, you must first enter the information"
  414.          PRINTLN "exactly like it was first entered.  If you can't remember what was entered in"
  415.          PRINTLN "this field, leave a comment to the SysOp, so he can help you out."
  416.          PROMPTSTR 707, Verification_Command, 25, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE + LFAFTER
  417.  
  418.          IF (Verification_Command = U_VER) THEN
  419.              IF (EXIST(PPEPATH() + "VERIFY")) DISPFILE PPEPATH() + "VERIFY", LANG + SEC + GRAPH
  420.  
  421.              SAVE_FLAG = TRUE
  422.              PROMPTSTR 706, U_VER, 25, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE
  423.          ELSE
  424.              IF (Verification_Command <> "") THEN
  425.                  LOG "Incorrect Verification Information (" + Verification_Command + ")", 0
  426.  
  427.                  NEWLINE
  428.                  PRINTLN "Sorry, the User Verification Information you just entered, does NOT match the"
  429.                  PRINTLN "information you previuosly entered.  At this point you may leave a comment to"
  430.                  PRINTLN "the SysOp, or try again, make sure the information is entered correctly."
  431.                  NEWLINE
  432.                  WAIT
  433.              END IF
  434.          END IF
  435.      ELSE
  436.          IF (EXIST(PPEPATH() + "VERIFY")) DISPFILE PPEPATH() + "VERIFY", LANG + SEC + GRAPH
  437.  
  438.          SAVE_FLAG = TRUE
  439.          PROMPTSTR 706, U_VER, 25, MASK_ASCII(), FIELDLEN + GUIDE + UPCASE + LFBEFORE
  440.      END IF
  441.  
  442.      LET USER_VER = LEFT(RTRIM(U_VER, CHR(32)) + "·························", 25)
  443.      FOR Lp = 1 TO (LEN(U_VER))
  444.          USER_VER = REPLACE(USER_VER, MID(USER_VER, Lp, 1), "*")
  445.      NEXT
  446.  
  447.      IF (Command_Line = "") GOTO BEGIN_MAIN
  448.      GOTO END_PROGRAM
  449.  
  450.  
  451. :GRAB_INFO
  452.     LOG "Write User Information (" + PPENAME() + ".PPE) " + "at (" + LEFT(TIME(), 5) + ")", 0
  453.     RDUNET PCBNODE()
  454.  
  455.     LET USER_NAME = LEFT(RTRIM(U_NAME(), CHR(32)) + "·························", 25)
  456.     LET USER_CITY = LEFT(RTRIM(U_CITY, CHR(32)) + "·························", 25)
  457.     LET USER_DPHONE = LEFT(RTRIM(U_BDPHONE, CHR(32)) + "·············", 13)
  458.     LET USER_HPHONE = LEFT(RTRIM(U_HVPHONE, CHR(32)) + "·············", 13)
  459.     LET USER_PWD = LEFT(RTRIM(U_PWD, CHR(32)) + "·············", 13)
  460.     LET USER_SEC = LEFT(RTRIM(STRING(U_SEC), CHR(32)) + "·············", 13)
  461.  
  462.     LET USER_ALIAS = LEFT(RTRIM(U_ALIAS, CHR(32)) + "·························", 25)
  463.  
  464.     LET USER_VER = LEFT(RTRIM(U_VER, CHR(32)) + "·························", 25)
  465.     FOR Lp = 1 TO (LEN(U_VER))
  466.         USER_VER = REPLACE(USER_VER, MID(USER_VER, Lp, 1), "*")
  467.     NEXT
  468.  
  469.     LET USER_ADDR0 = LEFT(RTRIM(U_ADDR(0), CHR(32)) + "······················································", 54)
  470.     LET USER_ADDR1 = LEFT(RTRIM(U_ADDR(1), CHR(32)) + "······················································", 54)
  471.     LET USER_ADDR2 = LEFT(RTRIM(U_ADDR(2), CHR(32)) + "·························", 25)
  472.     LET USER_ADDR3 = LEFT(RTRIM(U_ADDR(3), CHR(32)) + "·························", 25)
  473.     LET USER_ADDR4 = LEFT(RTRIM(U_ADDR(4), CHR(32)) + "················", 16)
  474.     LET USER_ADDR5 = LEFT(RTRIM(U_ADDR(5), CHR(32)) + "················", 16)
  475.  
  476.     USER_EXP_LEVEL = RIGHT(SPACE(8) + "········" + STRING(U_EXPSEC), 8)
  477.  
  478.     TEMP_DAYS = (U_EXPDATE - DATE())
  479.     IF (TEMP_DAYS < 0) TEMP_DAYS = 0
  480.     USER_REG_DAYS = RIGHT(SPACE(8) + "········" + STRING(TEMP_DAYS), 8)
  481.  
  482.     USER_ONLINE_TODAY = RIGHT(SPACE(8) + "········" + STRING(U_TIMEON()), 8)
  483.     USER_ONLINE_SESSION = RIGHT(SPACE(8) + "········" + STRING(MINON()), 8)
  484.  
  485.     USER_CALLER_NUM = RIGHT(SPACE(8) + "········" + STRING(CALLNUM() + 1), 8)
  486.     USER_LOGONS = RIGHT(SPACE(8) + "········" + STRING(U_LOGONS()), 8)
  487.  
  488.     IF (U_EXPERT = 0) USER_EXPERT_MODE = NOCHAR()
  489.     IF (U_EXPERT = 1) USER_EXPERT_MODE = YESCHAR()
  490.  
  491.     IF (U_CLS = 0) USER_MESSAGE_CLEAR = NOCHAR()
  492.     IF (U_CLS = 1) USER_MESSAGE_CLEAR = YESCHAR()
  493.  
  494.     IF ((U_FSEP = 0) & (U_FSE = 0)) USER_FULL_SCREEN = NOCHAR()
  495.     IF ((U_FSEP = 0) & (U_FSE = 1)) USER_FULL_SCREEN = YESCHAR()
  496.     IF ((U_FSEP = 1) & (U_FSE = 0)) USER_FULL_SCREEN = "A"
  497.  
  498.     IF (U_DEF79 = 0) USER_EDITOR_WORKSPACE = NOCHAR()
  499.     IF (U_DEF79 = 1) USER_EDITOR_WORKSPACE = YESCHAR()
  500.  
  501.     IF (U_SCROLL = 0) USER_SCROLL_SCREEN = NOCHAR()
  502.     IF (U_SCROLL = 1) USER_SCROLL_SCREEN = YESCHAR()
  503.  
  504.     IF (U_LONGHDR = 0) USER_LONG_HEADER = NOCHAR()
  505.     IF (U_LONGHDR = 1) USER_LONG_HEADER = YESCHAR()
  506.     RETURN
  507.  
  508.  
  509. :USER_INPUT
  510.     Prompt_Command = ""
  511.     IF (PERSONAL_FLAG = 0) THEN
  512.         INPUTSTR "(@X0EN@X0F)ext Page, (@X0ES@X0F)tatistics, (@X0EQ@X0F)uit, (@X0EEnter@X0F)=none", Prompt_Command, 0Fh, 1, "nqsNQS", FIELDLEN + GUIDE + UPCASE + LFBEFORE + ERASELINE
  513.     ELSE
  514.         INPUTSTR "(@X0EL@X0F)ast Page, (@X0ES@X0F)tatistics, (@X0EQ@X0F)uit, (@X0EEnter@X0F)=none", Prompt_Command, 0Fh, 1, "lqsLQS", FIELDLEN + GUIDE + UPCASE + LFBEFORE + ERASELINE
  515.     END IF
  516.  
  517.     IF (Prompt_Command = "L") GOTO PERSONAL_SCREEN
  518.     IF (Prompt_Command = "N") GOTO INFORMATION_SCREEN
  519.     IF (Prompt_Command = "S") GOTO SECURITY_INFORMATION
  520.     IF ((Prompt_Command = "Q") & (Command_Line = "")) GOTO BEGIN_MAIN
  521.     IF ((Prompt_Command = "")  & (Command_Line = "")) GOTO BEGIN_MAIN
  522.     GOTO END_PROGRAM
  523.  
  524.  
  525. :PERSONAL_SCREEN
  526.     PERSONAL_FLAG = 0
  527.     IF (CALLERLOG_FLAG = 0) THEN
  528.         LOG "User Statistics Viewed at (" + LEFT(TIME(), 5) + ")", 0
  529.         CALLERLOG_FLAG = TRUE
  530.     END IF
  531.     
  532.     CLS
  533.     PRINTLN "@X30┌@X3B───────────────────────────────────────────────────────────────────────────┐@X07"
  534.     PRINTLN "@X30│                     @X34U S E R S   I N F O R M A T I O N@POS:77@@X3B│@X07"
  535.     PRINTLN "@X30└───────────────────────────────────────────────────────────────────────────@X3B┘@X07"
  536.     PRINTLN
  537.     PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07"
  538.     PRINTLN "@X30│ @X3FUsers Full Name@X30: @X31[@X3E" + USER_NAME + "@X31]  @X3FData Phone@X30: @X31[@X3E" + USER_DPHONE + "@X31] @POS:77@@X3B│@X07"
  539.     PRINTLN "@X30│ @X3FCity and State @X30: @X31[@X3E" + USER_CITY + "@X31]  @X3FHome Phone@X30: @X31[@X3E" + USER_HPHONE + "@X31] @POS:77@@X3B│@X07"
  540.  
  541.     IF (PSA(1)) THEN
  542.         PRINTLN "@X30│ @X3FUser Alias Name@X30: @X31[@X3E" + USER_ALIAS + "@X31]  @X3FPassword  @X30: @X31[@X3E" + USER_PWD + "@X31] @POS:77@@X3B│@X07"
  543.     ELSE
  544.         PRINTLN "@X30│ @X3FUser Alias Name@X30: @X31[@X38" + USER_ALIAS + "@X31]  @X3FPassword  @X30: @X31[@X3E" + USER_PWD + "@X31] @POS:77@@X3B│@X07"
  545.     END IF
  546.  
  547.     IF (PSA(2)) THEN
  548.         PRINTLN "@X30│ @X3FVerification   @X30: @X31[@X3E" + USER_VER + "@X31]  @X3FSecurity  @X30: @X31[@X3E" + USER_SEC + "@X31] @POS:77@@X3B│@X07"
  549.     ELSE
  550.         PRINTLN "@X30│ @X3FVerification   @X30: @X31[@X38" + USER_VER + "@X31]  @X3FSecurity  @X30: @X31[@X3E" + USER_SEC + "@X31] @POS:77@@X3B│@X07"
  551.     END IF
  552.     PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07"
  553.  
  554.     IF (PSA(3)) THEN
  555.         PRINTLN
  556.         PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07"
  557.         PRINTLN "@X30│ @X3FStreet Address @X30: @X31[@X3E" + USER_ADDR0 + "@X31] @POS:77@@X3B│@X07"
  558.         PRINTLN "@X30│ @X3FSuite/Apartment@X30: @X31[@X3E" + USER_ADDR1 + "@X31] @POS:77@@X3B│@X07"
  559.         PRINTLN "@X30│ @X3FCity or Town   @X30: @X31[@X3E" + USER_ADDR2 + "@X31]  @X3FZipCode@X30: @X31[@X3E" + USER_ADDR4 + "@X31] @POS:77@@X3B│@X07"
  560.         PRINTLN "@X30│ @X3FProvince/State @X30: @X31[@X3E" + USER_ADDR3 + "@X31]  @X3FCountry@X30: @X31[@X3E" + USER_ADDR5 + "@X31] @POS:77@@X3B│@X07"
  561.         PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07"
  562.     ELSE
  563.         PRINTLN
  564.         PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07"
  565.         PRINTLN "@X30│ @X3FStreet Address @X30: @X31[@X38" + USER_ADDR0 + "@X31] @POS:77@@X3B│@X07"
  566.         PRINTLN "@X30│ @X3FSuite/Apartment@X30: @X31[@X38" + USER_ADDR1 + "@X31] @POS:77@@X3B│@X07"
  567.         PRINTLN "@X30│ @X3FCity or Town   @X30: @X31[@X38" + USER_ADDR2 + "@X31]  @X3FZipCode@X30: @X31[@X38" + USER_ADDR4 + "@X31] @POS:77@@X3B│@X07"
  568.         PRINTLN "@X30│ @X3FProvince/State @X30: @X31[@X38" + USER_ADDR3 + "@X31]  @X3FCountry@X30: @X31[@X38" + USER_ADDR5 + "@X31] @POS:77@@X3B│@X07"
  569.         PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07"
  570.     END IF
  571.  
  572.     PRINTLN
  573.     PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07"
  574.     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"
  575.     PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07"
  576.     GOTO USER_INPUT
  577.  
  578.  
  579. :INFORMATION_SCREEN
  580.     PERSONAL_FLAG = TRUE
  581.     CLS
  582.     PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07"
  583.     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"
  584.     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"
  585.     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"
  586.     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"
  587.     PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07"
  588.  
  589.     PRINTLN
  590.     PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07"
  591.     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"
  592.     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"
  593.     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"
  594.     PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07"
  595.  
  596.     PRINTLN
  597.     PRINTLN "@X30┌───────────────────────────────────────────────────────────────────────────@X3B┐@X07"
  598.     PRINTLN "@X30│ @X3FFiles Downloaded@X30: @X31[@X3E@DLFILES:14R@@X31]       @X3FFiles Uploaded@X30: @X31[@X3E@UPFILES:14R@@X31]@POS:77@@X3B│@X07"
  599.     PRINTLN "@X30│ @X3FBytes Downloaded@X30: @X31[@X3E@DLBYTES:14R@@X31]       @X3FBytes Uploaded@X30: @X31[@X3E@UPBYTES:14R@@X31]@POS:77@@X3B│@X07"
  600.     PRINTLN "@X30│ @X3FFile Ratios     @X30: @X31[@X3E@FILERATIO:14R@@X31]       @X3FByte Ratios   @X30: @X31[@X3E@BYTERATIO:14R@@X31]@POS:77@@X3B│@X07"
  601.     PRINTLN "@X30│@X38───────────────────────────────────────────────────────────────────────────@X3B│@X07"
  602.     PRINTLN "@X30│ @X3FMessages Left   @X30: @X31[@X3E@MSGLEFT:14R@@X31]       @X3FMessages Read @X30: @X31[@X3E@MSGREAD:14R@@X31]@POS:77@@X3B│@X07"
  603.     PRINTLN "@X30│ @X3FHighest Message @X30: @X31[@X3E@HIGHMSGNUM:14R@@X31]       @X3FLast Msg Read @X30: @X31[@X3E@LMR:14R@@X31]@POS:77@@X3B│@X07"
  604.     PRINTLN "@X30└@X3B───────────────────────────────────────────────────────────────────────────┘@X07"
  605.     GOTO USER_INPUT
  606.  
  607.  
  608. :SECURITY_INFORMATION
  609.     IF (PSA(5)) THEN
  610.         LOG "Security Information Viewed at (" + LEFT(TIME(), 5) + ")", 0
  611.         CLS
  612.         PRINTLN "@X40┌───────────────────────────────────────────────────────────────────────────@X4C┐@X07"
  613.         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"
  614.         PRINTLN "@X40└@X4C───────────────────────────────────────────────────────────────────────────┘@X07"
  615.         NEWLINE
  616.         PRINTLN "@X40┌───────────────────────────────────────────────────────────────────────────@X4C┐@X07"
  617.         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"
  618.         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"
  619.         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"
  620.         PRINTLN "@X40│ @POS:77@@X4C│@X07"
  621.         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"
  622.         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"
  623.         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"
  624.         PRINTLN "@X40│ @X4F# Dnld Limit Reached   @X40: @X47[@X4E" + RIGHT(SPACE(8) + "········" + STRING(U_STAT(12)), 8) + "@X47]     @POS:77@@X4C│@X07"
  625.         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"
  626.         PRINTLN "@X40│ @POS:77@@X4C│@X07"
  627.         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"
  628.         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"
  629.         PRINTLN "@X40└@X4C───────────────────────────────────────────────────────────────────────────┘@X07"
  630.         NEWLINES 2
  631.  
  632.         WAIT
  633.     END IF
  634.  
  635.     IF (STRIP(Command_Line, " ") = "S") GOTO END_PROGRAM
  636.     IF (Write_User_Information = "S") GOTO BEGIN_MAIN
  637.  
  638.     IF (PERSONAL_FLAG = 0) GOTO PERSONAL_SCREEN
  639.     IF (PERSONAL_FLAG = TRUE) GOTO INFORMATION_SCREEN
  640.     GOTO USER_INPUT
  641.  
  642. :END_PROGRAM
  643.      IF (SAVE_FLAG = TRUE) THEN
  644.          PUTUSER
  645.          IF (Command_Line <> "") PRINTLN
  646.  
  647.          IF (ALIAS_FLAG = TRUE) THEN
  648.              WRUSYS
  649.  
  650.              IF (EXIST(PPEPATH() + "INDEX.BAT")) THEN
  651.                  NEWLINE
  652.                  PRINT "@X0FOnline update of user's record being processed.  Please wait, @FIRST@ ... "
  653.  
  654.                  RDUSYS
  655.                  SHELL TRUE, Lp, PPEPATH() + "INDEX.BAT", ""
  656.                  FRESHLINE
  657.              END IF
  658.         END IF
  659.         DISPTEXT 273, LFAFTER + LFBEFORE + BELL + LOGIT
  660.      END IF
  661.      END
  662.