home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / JOIN100.ZIP / JOIN.PPS < prev    next >
Text File  |  1993-01-14  |  4KB  |  155 lines

  1. ;JNET.PPE v1.00 - Jan 14 1994
  2. ;PCBoard 15.1 Join Conference By Network
  3. ;Written By Jeff Olesen
  4. ;The Viking's Cove PCBoard BBS - 613-394-0685
  5. ;Requires PPLC 2.0
  6. ;This code is public Domain.
  7. ;
  8. ;
  9. STRING NET
  10. STRING SCNFN
  11. STRING C_HDR
  12. INTEGER C_HDR_LEN
  13. WORD C_LEN
  14. WORD COLUMNS
  15. WORD PAGE_LIMIT
  16. WORD USER_SEC
  17. STRING TEMP_IN
  18. STRING C_LIN(40,2)
  19. STRING C_LINE
  20. STRING LINE_IN
  21. STRING CONF_NUM
  22. WORD VA1
  23. WORD VA2
  24. WORD PAGE_NUM
  25. WORD LINE_NUM
  26. BOOLEAN SHOW_PAGE
  27. STRING SPAC_STR
  28. INT COL_NUM
  29. STRING LINE_POS
  30.  
  31.  
  32.  NEWLINE
  33.  
  34.  
  35.  IF (EXIST(PPEPATH() + "CNFM")) DISPFILE PPEPATH() + "CNFM", LANG + SEC + GRAPH
  36.  INPUTSTR "Display which Network ", NET, @X0E, 2,Mask_num(), FIELDLEN + GUIDE
  37.  
  38.  IF (NET <> "") GOTO NET
  39.  NEWLINES 1
  40. END
  41.  
  42. :NET
  43.  
  44.  NEWLINE
  45.  SHOW_PAGE=TRUE   ;
  46.  LET PAGE_NUM=1  ; setup empty string
  47.  SPAC_STR="                             "
  48.  
  49.  IF (EXIST(PPEPATH() + "NET_" + NET)) THEN
  50.   FOPEN 0,PPEPATH() + "NET_" + NET,O_RD,S_DN ; open it
  51.   FGET 0,C_HDR ; read header text
  52.   C_HDR_LEN=(79-(LEN(C_HDR))) ; calculate length of header
  53.  
  54.     ; center justify header string
  55.   C_HDR="@X71" + LEFT(SPAC_STR,C_HDR_LEN/2) + C_HDR + LEFT(SPAC_STR,C_HDR_LEN/2 + C_HDR_LEN%2) + "@X0F"
  56.   FGET 0,TEMP_IN ; read number of entries total
  57.   C_LEN=TOWORD(TEMP_IN) ; reduce it to a word
  58.  
  59.   FGET 0,TEMP_IN ; read number of COLUMNS TO DISPLAY
  60.   COLUMNS=TOWORD(TEMP_IN) ; reduce it to a word
  61.  
  62.   FGET 0,TEMP_IN ; read MINIMUM SECURITY TO DISPLAY
  63.   USER_SEC=TOWORD(TEMP_IN) ; reduce it to a word
  64.  
  65.   VA1=C_LEN/(COLUMNS*10) ; number of pages (maybe)
  66.   VA2=C_LEN%(COLUMNS*10) ; number of entries on last page
  67.   IF (VA2 = 0) THEN
  68.    LET VA1 = VA1  ; if not 0 entries, add 1 page
  69.    ELSE VA1 = VA1 + 1
  70.    ENDIF
  71.  
  72.   IF (CURSEC() < USER_SEC) THEN
  73.    PRINTLN "Sorry, your security is insufficient to access that Network."
  74.    NEWLINES 1
  75.    LET SHOW_PAGE=FALSE
  76.    ENDIF
  77.  
  78.   WHILE  ( SHOW_PAGE) DO ; now to show this stuff
  79.    GOSUB DISP_PAGE
  80.    INPUTSTR "Conf # to join (Enter=next page, 0 to exit)",CONF_NUM,@X0E,5,MASK_NUM(),FIELDLEN + GUIDE
  81.    IF (CONF_NUM <> "") LET SHOW_PAGE=FALSE   ; did he select something??
  82.    IF (PAGE_NUM = VA1) THEN
  83.     LET SHOW_PAGE=FALSE
  84.     ELSE LET PAGE_NUM=PAGE_NUM+1
  85.     ENDIF
  86.    ENDWHILE
  87.  
  88.   IF (CONF_NUM <> "") THEN  ; Did he run out, or select something.....
  89.    IF (CONF_NUM <> "0") KBDSTUFF "J " + CONF_NUM + "^M"  ; 0 TO ABANDON
  90.    ENDIF
  91.  
  92.   ELSE
  93.    NEWLINES 1
  94.    PRINTLN "Sorry, that network is not in the above list."
  95.    NEWLINES 1
  96.   ENDIF
  97.  
  98. end
  99.  
  100. :temp
  101. END
  102.  
  103. :DISP_PAGE ; calls to read a page and then display it.
  104.  GOSUB READ_PAGE ; read a page in
  105.  GOSUB DISP_HDR  ; clear the screen and put up a header
  106.  GOSUB DISP_BODY ; put up the body of the page
  107.  GOSUB DISP_FTR  ; and the footer
  108.  RETURN
  109.  
  110. END
  111.  
  112. :DISP_HDR
  113.  PRINTLN "@CLS@"
  114.  PRINTLN "@X0F▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄@X0F"
  115.  PRINTLN C_HDR
  116.  PRINTLN "@X08▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀@X0F"
  117.  NEWLINES 1
  118.  RETURN
  119. END
  120.  
  121. :DISP_FTR
  122.  PRINTLN "@X0F▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄@X0F"
  123.  PRINTLN "@X71                            Available Conferences                  Jnet v.1.0  @X0F"
  124.  PRINTLN "@X08▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀@X0F"
  125.  return
  126. END
  127.  
  128.  
  129. :DISP_BODY
  130.   FOR LINE_NUM=1 TO PAGE_LIMIT
  131.    LINE_POS = "@POS:" + TOSTRING((((LINE_NUM-1)%COLUMNS))*(80/COLUMNS)+1) + "@"
  132.    PRINT LINE_POS
  133.    PRINT "@X0B" + C_LIN(LINE_NUM,1) + "@X0E∙@X02"+ C_LIN(LINE_NUM,2) + "@X0F"
  134.    IF (LINE_NUM%COLUMNS = 0) PRINTLN " "
  135.   NEXT LINE_NUM
  136.   NEWLINES 1
  137.  RETURN
  138. END
  139.  
  140.  
  141. :READ_PAGE
  142.  IF (PAGE_NUM=VA1) THEN PAGE_LIMIT=VA2
  143.   ELSE PAGE_LIMIT=(COLUMNS*10)
  144.   ENDIF
  145.  
  146.  FOR LINE_NUM=1 TO PAGE_LIMIT
  147.   LET C_LINE=READLINE(PPEPATH() + "NET_" + NET(),LINE_NUM+((PAGE_NUM-1)*(COLUMNS*10))+4)
  148.   LET C_LIN(LINE_NUM,1)= LEFT(C_LINE,5)
  149.   LET C_LIN(LINE_NUM,2)= RIGHT(C_LINE,LEN(C_LINE)-5)
  150.  NEXT
  151.  RETURN
  152. END
  153.  
  154.  
  155.