home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / tel / pbbs.ba < prev    next >
Text File  |  2006-10-19  |  12KB  |  196 lines

  1. 0 'PBBS.BA BY DICK ROUX N1AED VERSION 2.0 08/21/86                                CLUB 100 LIBRARY - 415/939-1246 BBS,    937-5039 NEWSLETTER, 932-8856 VOICE
  2. 1 'Program modified by Jim Jackson, WA6DDM, Daly City
  3. 2 REM modified version 12/23/86 for CTRL-E disconnect
  4. 10 CLEAR1000:MAXFILES=6:LC$="":MD=0:MM=0:UL=0:S=0:MW=0:MF=0
  5. 15 FL=0:MR=0:RQ=0:RD=0:C=0:L=0:MS=0:U=0:CR$="":B=0:M=0:CK=0:CK$="ON ":CALL16969:CA$="WA6DDM":NA$="Jim":T$="Daly City
  6. 20 BE$="MAIL FOR: ":OPEN"ERRLOG.DO"FORAPPENDAS1:CLOSE1
  7. 25 GOSUB880
  8. 30 MM=0:MS=0:ONERRORGOTO45:OPEN"MESLOG.DO"FORINPUTAS4
  9. 35 LINEINPUT#4,I$:IFLEN(I$)=>3THENMS=MS+1:IFI$=CA$THENMM=MM+1
  10. 40 IFEOF(4)THENCLOSE4:GOTO50ELSE35
  11. 45 IFERR=52THENOPEN"MESLOG.DO"FORAPPENDAS4:PRINT#4,CR$:CLOSE4
  12. 50 ONCOMGOSUB125:ONERRORGOTO410
  13. 55 IFUTHENGOSUB870:U=0:GOSUB90ELSEGOSUB90
  14. 60 COMON
  15. 65 E$=INKEY$:GOSUB70:GOTO75
  16. 70 DA$=RIGHT$(DATE$,2)+LEFT$(DATE$,2)+MID$(DATE$,4,2):TI$=LEFT$(TIME$,2)+MID$(TIME$,4,2):RETURN
  17. 75 IFE$=""THEN65
  18. 80 ONINSTR("EPRSGKBMCTFA",E$)GOTO315,330,355,690,380,580,865,915,935,950,930,945
  19. 85 ONINSTR("eprsgkbmctfa",E$)GOTO315,330,355,690,380,580,865,915,935,950,930,945:GOTO65
  20. 90 IFCTHENRETURNELSECLS
  21. 95 PRINT"MAILBOX ACTIVE - WAITING "MM"/"MS" Msgs":PRINTFRE(0)" BYTES FREE   "MR"CONNECTS TODAY
  22. 100 IFLEN(LC$)THENPRINT"Last User: "LC$ELSEPRINT
  23. 105 IFB=0THENBB$="OFF"ELSEBB$="ON 
  24. 110 IFM=0THENMM$="OFF"ELSEMM$="ON 
  25. 115 PRINT"<P>rint Msgs <R>ead Msgs   <E>xit":PRINT"<S>end Msg   <G>o Online   <K>ill Msgs
  26. 120 PRINT"<B>eacon "BB$" <M>onitor "MM$" <T>ime":PRINT"<C>onok "CK$"  <F>iles     <A>nnouncement":PRINT"Enter choice:";:RETURN
  27. 125 IFEOF(2)THENCLOSE2:OPEN"COM:37N1E"FORINPUTAS2:IFS=0THEN160ELSEPRINT#4,Z$:Z$="":S=0:FL=1:FORI=1TO500:NEXT:COMON:GOSUB625:GOSUB655:GOTO160
  28. 130 C$=INPUT$(1,2):PRINTC$;:IFC$=CHR$(10)THENRETURN
  29. 135 IFC$=CHR$(13)THEN145
  30. 140 Z$=Z$+C$:IFLEN(Z$)=>78THEN145ELSERETURN
  31. 145 IFNOTCTHEN170
  32. 150 FG=INSTR(Z$,"*** conn"):IFFGTHENRQ$=MID$(Z$,20+FG,8):RQ=1:GOTO160
  33. 155 IFCTHEN185
  34. 160 IFRD=0ANDS=0ANDRQANDCTHENO$=RQ$+" Just Tried to Connect":GOSUB430:RQ=0
  35. 165 Z$="":RETURN
  36. 170 R=INSTR(Z$,"*** CON"):IFNOTLANDR>0THENCLS:C=-1:GOSUB845:GOSUB890ELSE160
  37. 175 IFFL=0THENGOSUB435
  38. 180 COMSTOP:GOSUB635:COMON:IFMFTHEN160ELSEGOSUB525:GOSUB655:GOTO160
  39. 185 IFINSTR(Z$,"*** DIS")THENC=0:GOSUB900:GOTO305
  40. 190 IFINSTR(Z$,"retry")THEN165
  41. 195 IFSTHEN290
  42. 200 IFMFTHEN265
  43. 205 IFLTHEN160
  44. 210 IFZ$<>CR$THENZ=ASC(LEFT$(Z$,1)):IFZ>96ANDZ<123THENGOSUB855:Z$=ZX$:ZX$="
  45. 215 IFLEN(Z$)>1THEN265
  46. 220 IFZ$="T"THEN495
  47. 225 IFZ$="R"THENGOSUB545:GOSUB655:GOTO160
  48. 230 IFZ$="H"THENGOSUB725:GOSUB655:GOTO160
  49. 235 IFZ$="I"THENGOSUB760:GOSUB655:GOTO160
  50. 240 IFZ$="B"THENGOSUB670:GOSUB300:GOSUB895:GOSUB835:GOTO160
  51. 245 IFZ$="K"THENMD=1:O$="*** YOUR MESSAGE(S) WILL BE KILLED ***":GOSUB430:GOSUB655:GOTO160
  52. 250 IFZ$="S"ORZ$="s"THENGOSUB745:GOSUB655:GOTO160
  53. 255 IFZ$="u"ORZ$="U"THENGOSUB955:GOSUB655:GOSUB160
  54. 260 IFZ$<>CR$THENO$="*** NON FUNCTIONAL CMD ***":GOSUB430:GOSUB655:GOTO160
  55. 265 IFLEFT$(Z$,1)="S"ANDMID$(Z$,2,1)=" "ANDINSTR(Z$,"<")=0THEN595:COMSTOP
  56. 270 IFLEFT$(Z$,1)="S"ANDMID$(Z$,3,1)=" "THEN600:COMSTOP
  57. 275 IFLEFT$(Z$,1)="S"ANDMID$(Z$,2,2)="  "THEN600:COMSTOP
  58. 280 IFZ$<>CR$THENGOSUB855:Z$=ZX$:ZX$="":IFZ$="R ALL"THENZA$="ALL":MW=1:GOSUB550:MW=0:GOSUB655:GOTO160
  59. 285 IFZ$<>CR$THENO$="*** WHAT?...Type <H>elp if you need it":GOSUB430:GOSUB655
  60. 290 IFSTHENPRINT#4,Z$
  61. 295 GOTO160
  62. 300 O$=ZC$+" de "+CA$+": 73 ,CUL":GOSUB430:RETURN
  63. 305 COMSTOP:GOSUB840:IFSTHENCLOSE4:S=0:GOSUB775ELSEGOSUB775:GOSUB845:GOSUB670:IFBTHENO$="BT "+BT$:GOSUB430
  64. 310 FL=0:L=0:MF=0:MR=MR+1:RD=0:GOSUB160:GOSUB720:IFMDTHEN585ELSEGOSUB905:GOSUB670:GOSUB320:GOTO55
  65. 315 COMOFF:CLOSE:GOSUB320:GOTO325
  66. 320 DATE$=LEFT$(DATE$,6)+"86":RETURN
  67. 325 MENU
  68. 330 COMSTOP:CLS:PRINT:INPUT"CHECK PRINTER - PRESS ENTER.. ";X$:CLS:INPUT"Print Your Mail";ZE$
  69. 335 IFZE$="N"ORZE$="n"THENINPUT"Print Whose";ZC$ELSEZC$=CA$
  70. 340 OPENZC$+".DO"FORINPUTAS3:OPEN"LPT:"FOROUTPUTAS4
  71. 345 LINEINPUT#3,C$:IFEOF(3)THENCLOSE3,4:GOTO55
  72. 350 FORI=1TO250:NEXT:PRINTC$:PRINT#4,C$:GOTO345
  73. 355 COMSTOP:CLS:ONERRORGOTO375:MS=0:INPUT"Read Your Mail";ZE$:IFZE$="N"ORZE$="n"THENINPUT"Read Whose";ZC$ELSEZC$=CA$
  74. 360 OPENZC$+".DO"FORINPUTAS3
  75. 365 LINEINPUT#3,C$:IFEOF(3)THENCLOSE3:PRINTCR$:PRINT"*** END OF MESSAGES ":FORI=1TO1000:NEXT:GOTO30
  76. 370 FORI=1TO500:NEXT:PRINTC$:GOTO365
  77. 375 IFERR=52THENPRINT"*** NO MESSAGES":GOSUB670:RESUME30
  78. 380 CLS:L=-1:PRINT"*** ONLINE *** ":PRINT"^E To cmd:":PRINT"<ESC> to Return
  79. 385 E$=INKEY$:IFE$=""THEN385
  80. 390 IFE$=CHR$(27)THENL=0:Z$="":IFCTHENGOSUB655:GOTO55ELSE55
  81. 395 IFE$=CHR$(8)THENPRINTCHR$(8)CHR$(32);
  82. 400 PRINT#1,E$;:IFE$=CHR$(13)THENPRINTE$ELSEPRINTE$;
  83. 405 GOTO385
  84. 410 CLOSE:BEEP:OPEN"ERRLOG.DO"FORAPPENDAS6:PRINT#6,"ERROR "ERR" IN LINE "ERL" WHILE "ZC$" WAS ON AT "TI$" ON "DA$
  85. 415 IFCANDERR=57THENCLOSE6:S=0:Z$="":O$="*** SORRY, CAN'T DO IT, RAN OUT OF FILE SPACE !!! ***":GOSUB880:GOSUB430:MF=0:RESUME655
  86. 420 IFCANDERR=7THENCLOSE6:CLOSE4:S=0:Z$="":O$="*** SORRY, CAN'T DO IT, RAN OUT OF MEMORY !!! ***":GOSUB880:GOSUB430:MF=0:RESUME655
  87. 425 IFCANDERR=52THENCLOSE6:RD=0:MW=0:Z$="":O$="*** NONE FOUND":GOSUB880:GOSUB430:RESUME160ELSECLOSE6:Z$="":RESUME25
  88. 430 FORX=1TOLEN(O$):S$=MID$(O$,X,1):FORI=1TO3:NEXT:PRINT#1,S$;:PRINTS$;:NEXT:PRINT#1,CHR$(13);:PRINT:RETURN
  89. 435 IFMID$(Z$,21+R,1)="-"THENZC$=MID$(Z$,17+R,4):GOTO460
  90. 440 IFMID$(Z$,21+R,1)=" "THENZC$=MID$(Z$,17+R,4):GOTO460
  91. 445 IFMID$(Z$,22+R,1)="-"THENZC$=MID$(Z$,17+R,5):GOTO460
  92. 450 IFMID$(Z$,22+R,1)=" "THENZC$=MID$(Z$,17+R,5):GOTO460
  93. 455 ZC$=MID$(Z$,17+R,6)
  94. 460 RESTORE
  95. 465 READZF$,N$,MF:IFINSTR(ZF$,ZC$)THENRETURN
  96. 470 IFZF$="END"THENN$=ZC$:RETURN
  97. 475 GOTO465
  98. 480 DATA "WA6DDM","Jim MBX SYSOP",0,"N6IMS","Bill",0,"WA6DQP","Greg",0,"WA6YTD","Darryl",0,"WB9LOZ","Larry",0,"K9AT","Bill",0
  99. 485 DATA "WB6BMD","Alan",0,"WA6VKJ","Lee",0,"N6HZQ","Bill",0,"W6CRL","Dan",0:DATA "K6TP","Bob",0,"W6EGU","Bob",0,"KG6TP","Bob",0
  100. 490 DATA "W6PW","SFRC SYSOP:(W6PW-3) ",0,"WA6SWK","Art",0,"WB6UZO","Sam",0:DATA "END","END",0
  101. 495 PG=VAL(LEFT$(TIME$,2)):IFPG>24ANDPG<9THENO$="Sorry...Paging is disabled until after 9 A.M. >":GOSUB430:GOSUB660:GOTO160
  102. 500 CLS:O$="Paging "+NA$+"...(for about 30 Sec.) >":GOSUB430:PRINT:PRINTZC$" Wants to Chat...":PRINT:PRINT"hit <G> to go online
  103. 505 FORI=1TO175:FORP=1TO10:NEXT:BEEP:E$=INKEY$
  104. 510 IFE$="G"ORE$="g"THENO$=NA$+" is at the keyboard...Standby! >":GOSUB430:COMON:GOTO380
  105. 515 NEXT:O$="Guess "+NA$+" is not around...Sorry":GOSUB430:O$="Feel free to leave "+NA$+" a message...73 & TNX >":GOSUB430
  106. 520 GOSUB660:GOTO160
  107. 525 ONERRORGOTO535:O$="*** CHECKING MAIL...":GOSUB430:OPENZC$+".DO"FORINPUTAS5:O$="*** YOU HAVE MAIL *** HIT 'R' TO READ
  108. 530 ONERRORGOTO410:GOSUB430:MW=1:CLOSE5:RETURN
  109. 535 IFERR=52THENO$="*** SORRY..NO MAIL":RESUME540
  110. 540 GOSUB430:ONERRORGOTO410:RETURN
  111. 545 ZA$=ZC$
  112. 550 IFMW=0THENO$="*** SORRY...NO MAIL":GOSUB430:RETURNELSERD=1:OPENZA$+".DO"FORINPUTAS5
  113. 555 LINEINPUT#5,ZD$
  114. 560 O$=CR$:GOSUB430:LINEINPUT#5,O$:DB$=LEFT$(O$,6):TB$=RIGHT$(O$,4):GOSUB675
  115. 565 LINEINPUT#5,O$:IFINSTR(O$,"<")THENZD$=O$:GOTO560ELSEGOSUB430
  116. 570 IFEOF(5)THENCLOSE5:IFZA$<>"ALL"THENO$="*** PLEASE KILL YOUR MAIL WITH THE 'K' CMD BEFORE YOU DISCONNECT ***":GOSUB430:RD=0:RETURNELSERD=0:RETURN
  117. 575 GOTO565
  118. 580 CLS:INPUT"Kill Your Mail";ZE$:IFZE$="N"ORZE$="n"THENINPUT"Kill Whose";ZD$:GOSUB850:ZC$=ZX$:ZX$="":U=1ELSEZC$=CA$:U=1
  119. 585 MD=0:KILLZC$+".DO":GOSUB805:GOSUB880:GOSUB905:GOSUB320:GOTO30
  120. 590 ZD$=MID$(Z$,4,6):Z$=Z$+" < "+ZC$:GOTO615
  121. 595 ZD$=MID$(Z$,3,6):Z$=Z$+" < "+ZC$:GOTO615
  122. 600 IFINSTR(Z$,"<")=0THEN590
  123. 605 IFINSTR(Z$,"@")=0THEN610ELSEZD$=MID$(Z$,4,INSTR(Z$,"@")-5):GOTO615
  124. 610 ZD$=MID$(Z$,4,INSTR(Z$,"<")-5)
  125. 615 S=1:OPENZD$+".DO"FORAPPENDAS4:PRINT#4,Z$:PRINT#4,DA$" "TI$:IFMFTHENZ$="":COMON:GOTO50
  126. 620 COMON:O$="Enter Message; Enter a CTRL-Z to end your message ON A SEPARATE LINE:":GOSUB430:Z$="":GOTO55
  127. 625 CLOSE4:OPEN"MESLOG.DO"FORAPPENDAS4:GOSUB850:ZD$=ZX$:ZX$="":PRINT#4,ZD$:CLOSE4:MS=MS+1:GOSUB910
  128. 630 IFMF=1THENRETURNELSEO$="*** DONE":GOSUB430:RETURN
  129. 635 IFMFTHEN655ELSEO$="Hello "+N$+", Welcome to the "+CA$+" MBX in "+T$:GOSUB430
  130. 640 O$=AU$:GOSUB430:O$="H for HELP, I For System Info; There are"+STR$(MS)+" Msgs On the System":GOSUB430
  131. 645 O$="If you have never used this MBX before, type 'H' <return>":GOSUB430:O$="All commands are followed by a 'carrage return'
  132. 650 GOSUB430:RETURN
  133. 655 IFFRE(0)<1000THENO$=" *** CAUTION - THE MEMORY IS FULL..PLEASE DO NOT ATTEMPT TO LEAVE ANY MESSAGES ***":GOSUB430
  134. 660 GOSUB70:O$=ZC$+" de "+CA$+" at "+TI$+" PST on "+DA$+"  B,H,I,K,R,S,T,U >":GOSUB430:IFMFTHEN665ELSERETURN
  135. 665 O$="*":GOSUB430:O$="*":GOSUB430:RETURN
  136. 670 FORI=1TO500:NEXT:RETURN
  137. 675 IFINSTR(ZD$,"@")=0THEN685
  138. 680 O$=" TR  "+" TO  "+" @ BBS  "+"  From"+"    Date  "+"   Time":GOSUB430:O$=" "+ZD$+"   "+DB$+"   "+TB$:GOSUB430:RETURN
  139. 685 O$=" TR  "+" TO  "+"  From"+"     Date  "+"   Time":GOSUB430:O$=" "+ZD$+"   "+DB$+"   "+TB$:GOSUB430:RETURN
  140. 690 CLS:LINEINPUT"Call sign of Receiver ";ZD$:GOSUB850:ZD$=ZX$:ZX$="":OPENZD$+".DO"FORAPPENDAS4:PRINT#4,"S  "+ZD$+" < "+CA$
  141. 695 PRINT#4,DA$" "TI$:PRINT"Input Message.../EX to End (ON A BLANK LINE)
  142. 700 LINEINPUTI$:IFINSTR(I$,"/EX")>0ORINSTR(I$,"/ex")>0THEN710
  143. 705 PRINT#4,I$:GOTO700
  144. 710 PRINT#4,CR$:CLOSE4:OPEN"MESLOG.DO"FORAPPENDAS4:GOSUB850:ZD$=ZX$:ZX$="":PRINT#4,ZD$:CLOSE4:PRINT"*** DONE
  145. 715 FORI=1TO500:NEXT:MS=MS+1:GOSUB910:U=1:GOSUB870:U=0:GOTO55
  146. 720 OPEN"USELOG.DO"FORAPPENDAS4:LC$=ZC$+" AT "+TI$+" ON "+DA$:PRINT#4,LC$:CLOSE4:RETURN
  147. 725 RD=1:O$="The command Syntax is:":GOSUB430:O$="B<CR> - Bye (DISC)           K<CR> - Kill Your Mail":GOSUB430
  148. 730 O$="H<CR> - This HELP File       I<CR> - System Information":GOSUB430:O$="R<CR> - Read YOUR mail":GOSUB430
  149. 735 O$="S 'CALL' - Send mail         T<CR> - Pages "+NA$+" for 30 sec":GOSUB430:O$="U<CR> - Index of MBX users":GOSUB430
  150. 740 RD=0:RETURN
  151. 745 RD=1:O$="(To send mail, type 'S & Call' then <return>)":GOSUB430
  152. 750 O$="Example: S W6XYZ <return> ALL ON ONE LINE! You will then be prompted to enter your message, so WAIT.":GOSUB430
  153. 755 O$="CAUTION: Your message cannot exceed 800 characters":GOSUB430:RD=0:RETURN
  154. 760 RD=1:O$="This MINI-PBBS is run on a 24K TRS80 Model 100...":GOSUB430
  155. 765 O$="It was written to work within the memory of the TRS-100 without the need for a disk drive.":GOSUB430
  156. 770 O$="It is used primarily to store & retrieve messages... 73's."+NA$+" "+CA$:GOSUB430:RD=0:RETURN
  157. 775 COMSTOP:OPEN"MESLOG.DO"FORINPUTAS4
  158. 780 LINEINPUT#4,O$:GOSUB790:IFEOF(4)THENCLOSE4:GOTO800
  159. 785 GOTO780
  160. 790 IFINSTR(O$,ZC$)THENRETURN
  161. 795 IFINSTR(BE$,O$)THENRETURNELSEBE$=BE$+O$+" ":RETURN
  162. 800 O$=BE$:BT$=BE$:COMON:IFLEN(BE$)=<10THENRETURNELSEGOSUB430:BE$="MAIL FOR: ":RETURN
  163. 805 MM=0:MS=0:OPEN"MESLOG.DO"FORINPUTAS4:OPEN"MESLO.DO"FOROUTPUTAS5:PRINT#5,CR$
  164. 810 LINEINPUT#4,I$:IFEOF(4)ANDI$=ZC$THEN825
  165. 815 IFI$=ZC$THENI$="":GOTO810
  166. 820 IFI$=CR$THEN825ELSEPRINT#5,I$:MS=MS+1:IFZD$=CA$THENMM=MM+1
  167. 825 IFEOF(4)THENCLOSE4,5:KILL"MESLOG.DO":NAME"MESLO.DO"AS"MESLOG.DO":RETURN
  168. 830 GOTO810
  169. 835 GOSUB670:O$="D":GOSUB430:RETURN
  170. 840 GOSUB670:O$="CONV":GOSUB430:RETURN
  171. 845 GOSUB670:O$=CHR$(5):GOSUB430:RETURN
  172. 850 Z$=ZD$
  173. 855 FORX=1TOLEN(Z$):S$=MID$(Z$,X,1):IFASC(S$)>96ANDASC(S$)<123THENS$=CHR$(ASC(S$)-32)
  174. 860 ZX$=ZX$+S$:NEXT:RETURN
  175. 865 IFB=0THEN870ELSE885
  176. 870 ZC$="XXX":BE$="BT <WA6DDM MBX> MAIL FOR: ":CLS:GOSUB775:GOSUB670
  177. 875 IFUTHENZC$="":RETURNELSEO$="BE EV 180":B=1:GOSUB430:ZC$="":GOSUB670:GOTO55
  178. 880 OPEN"COM:37N1E"FOROUTPUTAS1:OPEN"COM:37N1E"FORINPUTAS2:RETURN
  179. 885 GOSUB670:O$="BE ev 0":GOSUB430:GOSUB670:B=0:GOTO55
  180. 890 GOSUB670:O$="conv":GOSUB430:RETURN
  181. 895 GOSUB670:GOSUB670:FORI=1TO3:PRINT#1,CHR$(5);:NEXT:GOSUB670:GOSUB670:RETURN
  182. 900 GOSUB670:O$="CONOK OFF":GOSUB430:RETURN
  183. 905 GOSUB670:O$="CONOK ON":GOSUB430:RETURN
  184. 910 IFZD$=CA$THENMM=MM+1:RETURNELSERETURN
  185. 915 IFM=0THEN920ELSE925
  186. 920 O$="MON ON":GOSUB430:M=1:GOSUB670:GOTO55
  187. 925 O$="MON OFF":GOSUB430:M=0:GOSUB670:GOTO55
  188. 930 CLS:FILES:FORI=1TO2000:NEXT:GOTO55
  189. 935 IFCK=0THENGOSUB900:GOSUB670:CK=1:CK$="OFF":GOTO55
  190. 940 IFCK<>0THENGOSUB905:GOSUB670:CK=0:CK$="ON ":GOTO55
  191. 945 CLS:PRINT:PRINT"Enter announcement message:":INPUTAU$:PRINTAU$:GOSUB670:GOTO55
  192. 950 O$="DAY "+DA$+TI$+RIGHT$(TIME$,2):GOSUB430:GOSUB670:GOTO55
  193. 955 O$="Users who check into this MBX:":GOSUB430:RESTORE
  194. 960 READZF$,N$,MF:IFZF$="END"THENRETURN
  195. 965 O$=N$+"-"+ZF$:GOSUB430:GOTO960
  196.