home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / program / basic / whowas_s / whowasit.gfa (.txt) < prev   
Encoding:
GFA-BASIC Atari  |  1992-10-12  |  8.1 KB  |  280 lines

  1. version$="v1.2"   !should be v1.3 when released
  2. start
  3. > PROCEDURE start
  4.   CLS
  5.   MODE 0
  6.   timeoff$=LEFT$(TIME$,5)
  7.   @getmonth
  8.   dateoff$=LEFT$(DATE$,2)+" "+month$+" "+RIGHT$(DATE$,2)
  9.   ticks#=TIMER
  10.   @set_up
  11.   @check_for_files
  12.   @reg_info
  13.   registered$=SPACE$(29-LEN(register$)/2)+register$
  14.   registered$=LEFT$(registered$+SPACE$(50),58)
  15.   PRINT AT(12,6);"p";registered$;"q"
  16.   logo$=" QBBS 'Who Was It' "+version$+" : "+register$
  17.   logo$=SPACE$(31-LEN(logo$)/2)+logo$
  18.   logo$=LEFT$(logo$+SPACE$(50),62)
  19.   @get_lastuser_log
  20.   create_list
  21.   FOR r#=8 TO 20
  22.     PRINT AT(1,r#);SPC(80)
  23.   NEXT r#
  24.   PRINT AT(8,9);"The 'Who Was It' charts have now been created.. Have a nice day!"
  25.   over_and_out
  26. RETURN
  27. > PROCEDURE over_and_out
  28.   END
  29. RETURN
  30. > PROCEDURE getmonth
  31.   month#=VAL(MID$(DATE$,4,2))
  32.   SELECT month#
  33.   CASE 1
  34.     month$="Jan"
  35.   CASE 2
  36.     month$="Feb"
  37.   CASE 3
  38.     month$="Mar"
  39.   CASE 4
  40.     month$="Apr"
  41.   CASE 5
  42.     month$="May"
  43.   CASE 6
  44.     month$="Jun"
  45.   CASE 7
  46.     month$="Jul"
  47.   CASE 8
  48.     month$="Aug"
  49.   CASE 9
  50.     month$="Sep"
  51.   CASE 10
  52.     month$="Oct"
  53.   CASE 11
  54.     month$="Nov"
  55.   CASE 12
  56.     month$="Dec"
  57.   ENDSELECT
  58. RETURN
  59. '
  60. '
  61. > PROCEDURE reg_info
  62.   IF EXIST(syspath$+"QCONFIG.BBS")
  63.     syspath%=TRUE
  64.     OPEN "R",#25,syspath$+"QCONFIG.BBS",2048
  65.     FIELD #25,831 AS void$,40 AS sysop$,40 AS bbsname$
  66.     GET #25
  67.     CLOSE #25
  68.     sysop$=TRIM$(MID$(sysop$,1))
  69.     bbsname$=TRIM$(MID$(bbsname$,1))
  70.     IF RIGHT$(sysop$)=CHR$(0)
  71.       sysop$=LEFT$(sysop$,LEN(sysop$)-1)
  72.     ENDIF
  73.     IF RIGHT$(bbsname$)=CHR$(0)
  74.       bbsname$=LEFT$(bbsname$,LEN(bbsname$)-1)
  75.     ENDIF
  76.     register$="Registered To "+bbsname$
  77.   ELSE
  78.     register$="*** UNREGISTERED ***"
  79.   ENDIF
  80. RETURN
  81. '
  82. '
  83. > PROCEDURE set_up
  84.   registered$=SPACE$(29-LEN(register$)/2)+register$
  85.   registered$=LEFT$(registered$+SPACE$(50),58)
  86.   PRINT
  87.   PRINT SPC(11);"p";SPC(58);"q"
  88.   PRINT SPC(11);"p    QBBS 'Who Was It' ";version$;"  -  Last User Chart Creator    q"
  89.   PRINT SPC(11);"p                Copyright © 1992 M.J.Matts                q"
  90.   PRINT SPC(11);"p";SPC(58);"q"
  91.   PRINT SPC(11);"p";registered$;"q"
  92.   PRINT SPC(11);"p";SPC(58);"q"
  93.   MODE 2
  94.   dat$=DATE$
  95.   FOR r#=1 TO LEN(dat$)
  96.     IF MID$(dat$,r#,1)="."
  97.       MID$(dat$,r#)="/"
  98.     ENDIF
  99.   NEXT r#
  100. RETURN
  101. > PROCEDURE check_for_files
  102.   IF EXIST("whowasit.ctl")
  103.     OPEN "I",#1,"whowasit.ctl"
  104.     INPUT #1,maxuser$
  105.     INPUT #1,syspath$
  106.     INPUT #1,chartpath$
  107.     CLOSE #1
  108.     maxuser%=VAL(maxuser$)
  109.     DIM user$(maxuser%+5,3)
  110.     IF maxuser%<2
  111.       maxuser%=2
  112.     ENDIF
  113.     syspath$=UPPER$(syspath$)
  114.     chartpath$=UPPER$(chartpath$)
  115.     IF INSTR(syspath$," ")
  116.       syspath$=LEFT$(syspath$,INSTR(syspath$," ")-1)
  117.     ENDIF
  118.     IF INSTR(chartpath$," ")
  119.       chartpath$=LEFT$(chartpath$,INSTR(chartpath$," ")-1)
  120.     ENDIF
  121.     IF RIGHT$(syspath$,1)<>"\"
  122.       syspath$=syspath$+"\"
  123.     ENDIF
  124.   ELSE
  125.     PRINT
  126.     PRINT SPC(11);"Aborting Who Was It - I cannot find WHOWASIT.CTL. Please"
  127.     PRINT SPC(11);"   make sure it is in the same folder as this program."
  128.     PAUSE 200
  129.     END
  130.   ENDIF
  131.   IF NOT EXIST(syspath$+"users.bbs")
  132.     PRINT
  133.     PRINT SPC(11);"Aborting Who Was It - Please Check your system path in the"
  134.     PRINT SPC(11);"WHOWASIT.CTL file because I cannot find a USERS.BBS file in"
  135.     PRINT SPC(11);"this path : "+syspath$
  136.     PAUSE 200
  137.     END
  138.   ENDIF
  139. RETURN
  140. > PROCEDURE get_lastuser_log
  141.   OPEN "R",#11,syspath$+"sysinfo.bbs",170
  142.   FIELD #11,170 AS tmp$
  143.   GET #11
  144.   laston$=TRIM$(MID$(tmp$,6,35))
  145.   PRINT AT(40-(14+LEN(laston$))/2,10);"Last user was ";laston$
  146.   CLOSE #11
  147.   check_user
  148. RETURN
  149. > PROCEDURE check_user
  150.   IF EXIST("whowasit.inf")
  151.     OPEN "I",#1,"whowasit.inf"
  152.     LINE INPUT #1,check$
  153.     CLOSE #1
  154.     IF INSTR(UPPER$(LEFT$(check$,LEN(laston$))),UPPER$(laston$))
  155.       PRINT AT(1,14);"         User Is Already The Last Caller - Not Adding Their Name Again"
  156.       END
  157.     ENDIF
  158.   ENDIF
  159.   add2list
  160. RETURN
  161. '
  162. > PROCEDURE create_list
  163.   PRINT AT(23,12);"Creating Last ";maxuser%;" Callers charts..."
  164.   PRINT
  165.   @open_files(chartpath$)
  166.   head1$="     ### Name............................... ### Time Off ### Date Off  ###"
  167.   head2$="     p   q Name............................... p   q Time Off p   q Date Off  p   q"
  168.   head3$="     c2   c0 Name............................... c2   c0 Time Off c2   c0 Date Off  c2   c0"
  169.   head4$="         Name...............................     Time Off     Date Off     "
  170.   top_title(" The Last "+STR$(maxuser%)+" Callers Are : ")
  171.   FOR user%=1 TO maxuser%
  172.     uname$=LEFT$(user$(user%,1)+STRING$(50," "),35)
  173.     timeo$=LEFT$(user$(user%,2)+STRING$(50," "),8)
  174.     dateo$=LEFT$(user$(user%,3)+STRING$(30," "),9)
  175.     PRINT #1,"     ### ";uname$;" ### ";timeo$;" ### ";dateo$;" ###"
  176.     PRINT #2,"     p   q ";uname$;" p   q ";timeo$;" p   q ";dateo$;" p   q"
  177.     IF user%=1
  178.       PRINT #3,"     c2   c1 ";uname$;" c2   c1 ";timeo$;" c2   c1 ";dateo$;" c2   c0"
  179.       PRINT #4,"         ";uname$;"     ";timeo$;"     ";dateo$;"    "
  180.     ELSE
  181.       PRINT #3,"     c2   c0 ";uname$;" c2   c0 ";timeo$;" c2   c0 ";dateo$;" c2   c0"
  182.       PRINT #4,"         ";uname$;"     ";timeo$;"     ";dateo$;"    "
  183.     ENDIF
  184.   NEXT user%
  185.   base_title
  186.   CLOSE
  187. RETURN
  188. '
  189. > PROCEDURE open_files(fil$)
  190.   PRINT SPC(10);"CREATING : ";fil$;".ASC"
  191.   OPEN "O",#1,fil$+".ASC"
  192.   PRINT SPC(10);"CREATING : ";fil$;".VTM"
  193.   OPEN "O",#2,fil$+".VTM"
  194.   PRINT SPC(10);"CREATING : ";fil$;".VTC"
  195.   OPEN "O",#3,fil$+".VTC"
  196.   PRINT SPC(10);"CREATING : ";fil$;".ANS"
  197.   OPEN "O",#4,fil$+".ANS"
  198. RETURN
  199. > PROCEDURE top_title(maintitle$)
  200.   PRINT #1,"     ";STRING$(70,"#")
  201.   title$=STRING$(35-LEN(maintitle$)/2,"#")+maintitle$
  202.   title$=LEFT$(title$+STRING$(80-LEN(title$),"#"),70)
  203.   PRINT #1,"     ";title$
  204.   PRINT #1,"     ";STRING$(70,"#")
  205.   PRINT #1,head1$
  206.   PRINT #1,"     ";STRING$(70,"#")
  207.   '
  208.   title$=SPACE$(35-LEN(maintitle$)/2)+maintitle$
  209.   title$=LEFT$(title$+SPACE$(80-LEN(title$)),70)
  210.   PRINT #2,"E     p";SPACE$(70)+"q"
  211.   PRINT #2,"     p";title$;"q"
  212.   PRINT #2,"     p";SPACE$(70)+"q"
  213.   PRINT #2,head2$
  214.   PRINT #2,"     p";SPACE$(70)+"q"
  215.   '
  216.   PRINT #3,"E     c2";SPACE$(70)+"c0"
  217.   PRINT #3,"     c2";title$;"c0"
  218.   PRINT #3,"     c2";SPACE$(70)+"c0"
  219.   PRINT #3,head3$
  220.   PRINT #3,"     c2";SPACE$(70)+"c0"
  221.   '
  222.   PRINT #4,"     ";SPACE$(70)+""
  223.   PRINT #4,"     ";title$;""
  224.   PRINT #4,"     ";SPACE$(70)+""
  225.   PRINT #4,head4$
  226.   PRINT #4,"     ";SPACE$(70)+""
  227. RETURN
  228. > PROCEDURE base_title
  229.   PRINT #1,"     ";STRING$(70,"#")
  230.   PRINT #1,"     ### ";logo$;" ###"
  231.   PRINT #1,"     ";STRING$(70,"#")
  232.   PRINT #1
  233.   PRINT #1,"                          Press [RETURN] to Continue..."+CHR$(1);
  234.   '
  235.   PRINT #2,"     p";SPACE$(70)+"q"
  236.   PRINT #2,"     p    ";logo$;"    q"
  237.   PRINT #2,"     p";SPACE$(70)+"q"
  238.   PRINT #2
  239.   PRINT #2,"                          Press p RETURN q to Continue..."+CHR$(1);
  240.   '
  241.   PRINT #3,"     c2";SPACE$(70)+"c0"
  242.   PRINT #3,"     c2    ";logo$;"    c0"
  243.   PRINT #3,"     c2";SPACE$(70)+"c0"
  244.   PRINT #3
  245.   PRINT #3,"                          Press c2 RETURN c0 to Continue..."+CHR$(1);
  246.   '
  247.   PRINT #4,"     ";SPACE$(70)+""
  248.   PRINT #4,"          ";logo$;"    "
  249.   PRINT #4,"     ";SPACE$(70)+""
  250.   PRINT #4
  251.   PRINT #4,"                          Press  RETURN  to Continue..."+CHR$(1);
  252. RETURN
  253. '
  254. > PROCEDURE add2list
  255.   DIM temp$(110)
  256.   IF EXIST("whowasit.inf")
  257.     OPEN "I",#1,"whowasit.inf"
  258.     RECALL #1,temp$(),-1,tmp%
  259.     CLOSE
  260.   ENDIF
  261.   OPEN "O",#1,"whowasit.inf"
  262.   PRINT #1,laston$;",";timeoff$;",";dateoff$
  263.   FOR r#=0 TO 99
  264.     IF temp$(r#)<>""
  265.       PRINT #1,temp$(r#)
  266.     ENDIF
  267.   NEXT r#
  268.   CLOSE
  269.   user$(1,1)=laston$
  270.   user$(1,2)=timeoff$
  271.   user$(1,3)=dateoff$
  272.   FOR r#=2 TO maxuser%
  273.     IF temp$(r#-2)<>""
  274.       user$(r#,1)=LEFT$(temp$(r#-2),INSTR(temp$(r#-2),",")-1)
  275.       user$(r#,2)=MID$(temp$(r#-2),INSTR(temp$(r#-2),",")+1,5)
  276.       user$(r#,3)=MID$(temp$(r#-2),RINSTR(temp$(r#-2),",")+1)
  277.     ENDIF
  278.   NEXT r#
  279. RETURN
  280.