home *** CD-ROM | disk | FTP | other *** search
/ HomeWare 14 / HOMEWARE14.bin / bbsutils / prot_13a.arj / PROTOCOL.PPS < prev   
Text File  |  1993-06-17  |  6KB  |  169 lines

  1. ;*****************************************************************************
  2. ;*                                                                           *
  3. ;*                           PROTOCOL.PPE v1.30a                             *
  4. ;*               PCBOARD 15.0 TRANSFER PROTOCOL MENU PROGRAM                 *
  5. ;*                                                                           *
  6. ;*                Written by Larry Steele and Jerry Claxton                  *
  7. ;*                 Written in PCBoard Programming Language                   *
  8. ;*                         Compiled on 06-17-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. ;*          Voice Support - [708-426-9411] - [10:00 am - 11:00 pm]           *
  18. ;*             Ask for Jerry Claxton, Assistant System Operator              *
  19. ;*****************************************************************************
  20.  
  21.  
  22. ;*****************************************************************************
  23. ;* Define variable types                                                     *
  24. ;*****************************************************************************
  25.  
  26. BOOLEAN NO_BATCH_FILE
  27. INTEGER PROT_ARRAY_COUNT, PROT_ARRAY, I, N
  28. STRING  PROT_STRARRAY(50,7), PROT_LETTER(50), PROT_MNP(50)
  29. STRING  PROT_TYPE(50), PROT_DESC(50), TEMP_LINE, INPUT_STRING
  30.  
  31. STRING  BAT_PATH, BAT_S, BAT_R
  32. STRING  CMDLINE, USER_TRANS, CONNECT_STRING
  33.  
  34.  
  35. ;*****************************************************************************
  36. ;* Beginning of main program                                                 *
  37. ;*****************************************************************************
  38.  
  39. GETTOKEN CMDLINE
  40. IF (!EXIST(READLINE(PCBDAT(), 45))) THEN
  41.     NEWLINE
  42.     PRINT "@X0CError reading PCBPROT.DAT!  Aborting ... @X07"
  43.     DELAY (50)
  44.  
  45.     LOG "Error reading PCBPROT.DAT!", 0
  46.     FRESHLINE
  47.     END
  48. ELSE
  49.     GETUSER
  50.     USER_TRANS = U_TRANS
  51.  
  52.     FOPEN 1, READLINE(PCBDAT(), 45), O_RD, S_DN
  53.     WHILE (!FERR(1)) DO
  54.        FGET 1, TEMP_LINE
  55.  
  56.        IF (LEN(TEMP_LINE)) THEN
  57.            LET TEMP_LINE = REPLACE(TEMP_LINE, CHR(32), CHR(255))
  58.  
  59.            PROT_ARRAY = PROT_ARRAY + 1
  60.            LET TEMP_LINE = REPLACE(TEMP_LINE, ",", ";")
  61.  
  62.            TOKENIZE TEMP_LINE
  63.            WHILE (TOKCOUNT() > 0) DO
  64.               PROT_ARRAY_COUNT = PROT_ARRAY_COUNT + 1
  65.               GETTOKEN PROT_STRARRAY(PROT_ARRAY, PROT_ARRAY_COUNT)
  66.            END WHILE
  67.  
  68.            LET PROT_LETTER(PROT_ARRAY) = PROT_STRARRAY(PROT_ARRAY, 1)
  69.            LET PROT_TYPE(PROT_ARRAY) = PROT_STRARRAY(PROT_ARRAY, 2)
  70.            LET PROT_DESC(PROT_ARRAY) = REPLACE(PROT_STRARRAY(PROT_ARRAY, 4), CHR(255), CHR(32))
  71.            LET PROT_MNP(PROT_ARRAY) = PROT_STRARRAY(PROT_ARRAY, 5)
  72.        END IF
  73.        PROT_ARRAY_COUNT = 0
  74.     END WHILE
  75.     FCLOSE 1
  76.  
  77.     IF (!ONLOCAL()) THEN
  78.         FOPEN 1, PPEPATH() + "CONNECT." + STRING(PCBNODE()), O_RD, S_DN
  79.         FGET 1, CONNECT_STRING
  80.         FCLOSE 1
  81.     END IF
  82.  
  83.     FOPEN 1, PPEPATH() + "PROTOCOL.CNF", O_RD, S_DN
  84.     FGET 1, BAT_PATH
  85.     IF (RIGHT(BAT_PATH, 1 <> "\")) BAT_PATH = BAT_PATH + "\"
  86.  
  87.     BAT_S = BAT_PATH + "PCBS"
  88.     BAT_R = BAT_PATH + "PCBR"
  89.     FCLOSE 1
  90.  
  91.     IF (STRIP(CMDLINE, CHR(32)) <> "") THEN
  92.         LET CMDLINE = STRIP(CMDLINE, CHR(32))
  93.  
  94.         IF (CMDLINE = "N") GOTO SET_TRANS
  95.         GOSUB CHECK_COMMAND
  96.     END IF
  97.     GOSUB PROT_MENU
  98. END IF
  99. END
  100.  
  101.  
  102. :PROT_MENU
  103.    NEWLINE
  104.    PRINTLN "@X70┌────────────────────────────────────────────────────────@X7F┐@X07"
  105.    PRINTLN "@X70│         @X7BP R O T O C O L S   A V A I L A B L E@POS:58@@X7F│@X07"
  106.    PRINTLN "@X70└@X7F────────────────────────────────────────────────────────┘@X07"
  107.  
  108.    NEWLINE
  109.    PRINTLN "@X70┌@X7F────────────────────────────────────────────────────────┐@X07"
  110.  
  111.    FOR I = 1 TO PROT_ARRAY
  112.        IF ((PROT_TYPE(I) <> "I") & (!EXIST(BAT_S + PROT_LETTER(I) + ".BAT")) & (!EXIST(BAT_R + PROT_LETTER(I) + ".BAT"))) NO_BATCH_FILE = TRUE
  113.  
  114.        IF ((!NO_BATCH_FILE) | (PROT_LETTER(I) = "N")) THEN
  115.            INPUT_STRING = INPUT_STRING + PROT_LETTER(I)
  116.            IF (PROT_LETTER(I) = U_TRANS) THEN
  117.                PRINTLN "@X70│ @XF4=> @X71(@X7E" + PROT_LETTER(I) + "@X71) " + PROT_DESC(I) + "@POS:58@@X7F│@X07"
  118.            ELSE
  119.                PRINTLN "@X70│    @X71(@X7E" + PROT_LETTER(I) + "@X71) " + PROT_DESC(I) + "@POS:58@@X7F│@X07"
  120.            END IF
  121.        END IF
  122.        NO_BATCH_FILE = 0
  123.    NEXT
  124.    PRINTLN "@X70└────────────────────────────────────────────────────────@X7F┘@X07"
  125.  
  126.    PROMPTSTR 198, USER_TRANS, 1, INPUT_STRING, FIELDLEN + GUIDE + UPCASE + LFBEFORE + LFAFTER + AUTO
  127.    IF (LEN(USER_TRANS) & (USER_TRANS <> U_TRANS)) THEN
  128.        CMDLINE = LEFT(USER_TRANS, 1)
  129.  
  130.        IF (CMDLINE = "N") GOTO SET_TRANS
  131.        GOTO CHECK_COMMAND
  132.    ELSE
  133.        NEWLINE
  134.        WAIT
  135.    END IF
  136.    RETURN
  137.  
  138.  
  139. :CHECK_COMMAND
  140.    FOR N = 1 TO PROT_ARRAY
  141.        IF ((PROT_TYPE(N) <> "I") & (!EXIST(BAT_S + PROT_LETTER(N) + ".BAT")) & (!EXIST(BAT_R + PROT_LETTER(N) + ".BAT"))) NO_BATCH_FILE = TRUE
  142.  
  143.        IF ((CMDLINE = PROT_LETTER(N)) & (!NO_BATCH_FILE)) THEN
  144.            IF (PROT_MNP(N) = YESCHAR()) THEN
  145.                IF (!INSTR(CONNECT_STRING, ("MNP" | "V42" | "LAPM" | "HST")) & (!ONLOCAL())) THEN
  146.                    NEWLINE
  147.                    PRINTLN "@X0CProtocol Unavailable - Modem Type Wrong!"
  148.                    END
  149.                END IF
  150.            END IF
  151.            GOTO SET_TRANS
  152.        END IF
  153.        NO_BATCH_FILE = 0
  154.    NEXT
  155.    RETURN
  156.  
  157.  
  158. :SET_TRANS
  159.    IF (STRIP(CMDLINE, CHR(32)) <> "") THEN
  160.        U_TRANS = CMDLINE
  161.        PUTUSER
  162.        
  163.        LOG "Default Protocol set to [" + CMDLINE + "]", 0
  164.    END IF
  165.  
  166.    NEWLINE
  167.    PRINTLN "@X0ADefault Protocol set to @PRODESC@"
  168.    END
  169.