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

  1.  
  2. ->MSGR1.BA
  3. 0 GOTO90
  4. 1 IFRAND1THENFORZC=1TOLEN(B):?#2,MID$(B,ZC,1);:NEXT
  5. 2 IFRAND2THEN?B;:RETURNELSERETURN
  6. 3 F="M":GOSUB30:B=FN(W)+" Command:":GOSUB6'MENU
  7. 4 ONINSTR(" CEFGHRSU",J)GOTO3,16,18,17,38,19,61,60,20:IFINSTR("M123",J)THENW=VAL(J):GOTO3ELSE3
  8. 5 B=B+"?(Y/N)"'Y/N
  9. 6 GOSUB7:J=LEFT$(J,1):RETURN'1 CHAR INPUG
  10. 7 GOSUB9:IFJ=DTHENRETURNELSEFOROA=1TOLEN(J):OB=ASC(MID$(J,OA)):IFOB>96THENMID$(J,OA)=CHR$(OB-32)'CAPS
  11. 8 NEXT:RETURN
  12. 9 COMOFF:VA=INSTR(DA,";"):IFVATHENJ=LEFT$(DA,VA-1):DA=MID$(DA,VA+1):RETURNELSEL=0:J=D:B=B+CHR$(17):GOSUB1'Input
  13. 10 T=0
  14. 11 'MESSENGER.100 Copyright 1986 By Tom Fitzpatrick, All rights reserved
  15. 12 G=INKEY$:IFG=DTHENIFPEEK(65414)=0THENT=T+1:IFT<2700THEN12ELSE40ELSEG=INPUT$(1,1)
  16. 13 IFL=ZTHENRETURNELSEB=G:IFG<CEORG=CHR$(127)THEN15ELSEIFL>75THENB=CGELSEJ=J+B:L=L+1:IFL=70THENB=B+CG
  17. 14 GOSUB1:GOTO10
  18. 15 IFG=CRTHENB=A:GOSUB1:IFINSTR(J,";")ANDNOTNMTHENDA=J+";":GOTO9ELSEIFJ="*"THENGOSUB81:GOTO9ELSERETURNELSEIF(G=CHR$(8)ORG=CHR$(127))ANDL>0THENL=L-1:J=LEFT$(J,L):GOTO14ELSEIFG=CTHENJ=D:B=STRING$(L,127):L=0:GOTO14ELSE10
  19. 16 B="Page ON"+A:GOSUB1:LINE(6,56)-(26,63),1,B:SOUND450,45:GOTO3
  20. 17 W=0:DA="SYSOP;"
  21. 18 GOSUB42:GOTO3
  22. 19 F="H":GOSUB30:GOTO3
  23. 20 RS=Z:GOSUB21:GOTO3
  24. 21 GOSUB87:GOSUB29
  25. 22 IFEOF(3)THENRETURNELSEINPUT#3,F,B,F:IFRSTHENB=B+A:GOSUB1ELSEIFB=JTHENRS=Z:RETURN
  26. 23 GOTO22
  27. 24 QA=31*(VAL(MID$(J,1,2))-1)+VAL(MID$(J,4,2))+373*(VAL(MID$(J,7,2))-30):QF=QL<QAOR(QL=QAANDEA<=MID$(J,9,5)):RETURN'DATE
  28. 25 COMOFF:B=E+STR$(ERR)+"?"+STR$(ERL):BEEP:RESUME26'ERROR
  29. 26 ONERRORGOTO27:GOSUB89:GOSUB1:GOTO40
  30. 27 RESUMENEXT
  31. 28 COMOFF:G=INPUT$(1,1):IFG=CHR$(19)THENL=Z:GOSUB10ELSEIFG=CTHENGOSUB37:RETURN'INTERRUPT
  32. 29 IF(RAND1)THENCOMON:RETURNELSERETURN'CONTROL
  33. 30 G=D:CLOSE3:OPEN"I"FORINPUTAS3:GOSUB29'SURVEY
  34. 31 LINEINPUT#3,B:IFB<>FTHEN31
  35. 32 LINEINPUT#3,B:IFB=DORG=CTHENRETURNELSEIFRIGHT$(B,1)="?"THENGOSUB7:B=J:GOSUB89:GOTO32ELSEB=B+A:GOSUB1:GOTO32
  36. 33 R=1'Ring
  37. 34 GOSUB37'Run
  38. 35 R=RXOR2:RETURN'View
  39. 36 B=B+A:GOSUB1
  40. 37 G=C:POKE65450,0:DA=D:RETURN'^X
  41. 38 B="Leave":GOSUB5:IFJ="N"THEN3ELSECLOSE:FN(W)="PW":GOSUB82'Off
  42. 39 GOSUB86:K=INSTR(J,",")+1:IFMID$(J,K,INSTR(K,J,",")-K)=ETHENM=M-15:GOSUB85ELSEIFPEEK(M)<>26THEN39ELSEERROR91
  43. 40 GOSUB41:RUN
  44. 41 ?CE"q"CE"Q":CALL21179:GOSUB37:SCREEN,0:RETURN
  45. 42 IFFRE(0)<3000THENB="NO ROOM":GOTO36ELSEIFW=0THENB="To:":GOSUB7:IFJ=DTHEN59ELSERS=0:GOSUB21:IFRSTHEN44ELSEB="NOT A USER"+CG:GOSUB36:GOTO42'ENTER
  46. 43 B="Subject:":GOSUB7:IFLEN(J)>15THEN43ELSEIFJ=DTHEN59
  47. 44 B=A+FN(W)+">"+J+A+"Entry ends with <cr> on a blank line or 12 lines"+A:GOSUB1:F(0)=DATE$+LEFT$(TIME$,5)+E+"\"+J:U=1:NM=Z
  48. 45 B=D:IFU=12THENB="LAST LINE"+A
  49. 46 IFU<13THENGOSUB9:F(U)=J:IFJ>DTHENU=U+1:GOTO45
  50. 47 NM=0:B=A+"Save, Edit, Insert,Delete,Continue,eXit,Read?":GOSUB6:P=INSTR(" EDICRXS",J):NM=Z:ONPGOTO47,48,48,48,45,55,56,58:GOTO47
  51. 48 B="Line #:":GOSUB9:V=VAL(J):IFV<1ORV>U-1ORP=4ANDU=13THENGOSUB37:GOTO47ELSEIFP=4THENV=V-1
  52. 49 GOSUB57:ONPGOSUB,50,53,54:GOTO47
  53. 50 B="New line, \old text\new or <cr> if okay"+A:GOSUB9:IFJ=DTHENRETURNELSEDA="E;"+STR$(V)+";"
  54. 51 IFLEFT$(J,1)<>"\"THENF(V)=JELSEY=INSTR(2,J,"\"):IFYTHENF=MID$(J,2,Y-2):FD=MID$(J,Y+1):Y=INSTR(F(V),F):IFYTHENF(V)=LEFT$(LEFT$(F(V),Y-1)+FD+MID$(F(V1,Y+LEN(F)),76)
  55. 52 RETURN
  56. 53 B="Delete":GOSUB5:IFJ="Y"THENFORV=VTO12:F(V)=F(V+1):NEXT:U=U-1:RETURNELSERETURN
  57. 54 B=STR$(V+1)+")":GOSUB9:IFJ>DTHENFORK=12TOVSTEPZ:F(K+1)=F(K):NEXT:U=U+1:F(V+1)=J:RETURNELSERETURN
  58. 55 GOSUB29:FORV=1TOU-1:GOSUB57:NEXT:GOTO47
  59. 56 B="Abort":GOSUB5:IFJ="Y"THEN59ELSE47
  60. 57 B=MID$(STR$(V),2)+")"+F(V)+A:GOSUB1:RETURN
  61. 58 IFU>1THENCLOSE3:OPENFN(W)FORAPPENDAS3:FORK=0TOU:?#3,F(K):F(K)=D:NEXT:GOSUB82:GOSUB85:B="Saved"+A:GOSUB1
  62. 59 NM=0:RETURN
  63. 60 B="Search for:":GOSUB7:IFJ>DTHENFF=JELSE3'Read
  64. 61 B="Start #:(0=New)":GOSUB9:NS=VAL(J)
  65. 62 GOSUB88:V=0:TT=0:GOSUB24:IFNS=0ANDNOTQFTHENB="Nothing new"+A:GOSUB1:G=C
  66. 63 GOSUB29:IFPEEK(M)=26ORG=CTHEN76ELSET3=TT:G=D:V=V+1:GOSUB86:IFNS=0THENGOSUB24:IFQFTHENNS=VELSE74
  67. 64 IF(NSANDV<NS)ORVAL(J)=0OR(FF>DANDINSTR(MID$(J,14),FF)=0)THEN74
  68. 65 K=INSTR(J,"\"):FD=MID$(J,14,K-14):F=MID$(J,1+K):N=ZAND(F=EORFD=E):IFW=0ANDN=0THEN74
  69. 66 J=A+STR$(V)+SPACE$(18)+LEFT$(J,13)+A+" By "+FD:IFW>0THENMID$(J,6)=CHR$(34)+F+CHR$(34)ELSEMID$(J,7)="Mail":J=J+A+" To "+F
  70. 67 B=J+A:GOSUB1:GOSUB86:IFG=CTHEN76ELSEIFJ>DANDG=CNTHEN74ELSEIFJ>DTHEN67
  71. 68 B="Reply,Again,eXit,Next?":IFNORSPTHENN=Z:B="Delete,"+B
  72. 69 GOSUB6:IFJ="D"ANDNTHENPOKEM4+T3,68ELSEIFJ="X"THENG=CELSEIFJ="A"THENM=M4+T3:TT=T3:V=V-1
  73. 70 IFJ<>"R"THEN63
  74. 71 WT=W:NS=V:IFW>0THENB="Private":GOSUB5:IFJ="Y"THENW=0
  75. 72 IFW=0THENDA=FDELSEDA=F
  76. 73 DA=DA+";":GOSUB42:W=WT:GOSUB88:TT=T3:M=M+TT:V=NS+Z:GOTO63
  77. 74 X=INSTR(B,A+A):IFX=0THENX=INSTR(B,CHR$(26)):IFX=0THENY=251-NG:M=M+Y:TT=TT+Y:GOSUB86:GOTO74
  78. 75 Y=X+1-NG:M=M+Y:TT=TT+Y:GOTO63
  79. 76 NS=0:FF=D:IFG<>CTHENB=A+">Last msg #"+STR$(V)+A:GOSUB1
  80. 77 GOTO3
  81. 78 COMOFF:KEYOFF:LINE-(5,56),0,B:B="Chat ON"+A+CG:IF(RAND2)=0THENGOSUB35'CHAT
  82. 79 GOSUB9:B=D:IFJ=CETHENJ=D:L=0:KEYON:B="Chat OFF"+A:GOSUB1:RETURNELSE79
  83. 80 SCREEN,0:?CE"U":?@280,B;CE"T";:?@0,:RETURN'F Keys
  84. 81 B=A+"NOTE:"+BF+A:GOSUB9:IFJ>DTHENBF=J:RETURNELSERETURN'Note
  85. 82 M=63919
  86. 83 GOSUB84:K=INSTR(B,FN(W)):IFK=0ORM>64128THENERROR52ELSEIF(ASC(MID$(B,K-3))AND192)<192THENM=M+K:GOTO83ELSEM=ASC(MID$(B,K-2))+256*ASC(MID$(B,K-1)):RETURN
  87. 84 MA=VARPTR(B):POKEMA,255:POKEMA+1,M-INT(M/256)*256:POKEMA+2,INT(M/256):RETURN
  88. 85 B=DATE$+LEFT$(TIME$,5):FORK=1TO13:POKEK+M-1,ASC(MID$(B,K)):NEXT:RETURN
  89. 86 GOSUB84:NG=INSTR(B,A)-1:J=LEFT$(B,NG):TT=TT+NG+2:M=M+NG+2:RETURN
  90. 87 CLOSE3:OPEN"pw"FORINPUTAS3:RETURN
  91. 88 CLOSE3:GOSUB82:GOSUB86:M4=M:RETURN
  92. 89 CLOSE4:OPEN"L"FORAPPENDAS4:IFFRE(0)>500THEN?#4,DATE$TIME$B:RETURNELSEERROR7
  93. 90 MAXFILES=4:CLEAR1400:DEFINTK-Z:DEFSNGM:DEFSTRA-J:DIMF(13):Z=-1:FN(0)="MAIL":FN(1)="BASE 1":FN(2)="BASE 2":FN(3)="BASE 3"'Definitions
  94. 91 ONCOMGOSUB28:ONERRORGOTO25
  95. 92 C=CHR$(24):CE=CHR$(27):CG=CHR$(7):CN=CHR$(14):CR=CHR$(13):A=CR+CHR$(10)
  96. 93 ONKEYGOSUB105,33,34:KEYON:B="Quit Ring Run":GOSUB80:CLS:CALL32428:F="COM:38N1E":OPENFFORINPUTAS1:OPENFFOROUTPUTAS2
  97. 94 ONRGOTO,97,95:IFPEEK(65414)=0THEN94ELSER=1:GOSUB9
  98. 95 B="ATA"+A:GOSUB9:L=Z:GOSUB10:F="COM:58N1D":IFASC(G)<250THENMID$(F,5)="3"
  99. 96 CLOSE2:OPENFFOROUTPUTAS2:CLOSE1:OPENFFORINPUTAS1
  100. 97 SCREEN,0:ONKEYGOSUB78,35,103,37,40:B=A+A+A:?CE"P"
  101. 99 K=K+1:IFK>3THEN40ELSEGOSUB87:B=B+"ID or NEW:":GOSUB7:IFJ="NEW"THENF=J:GOSUB30:GOTO40
  102. 100 IFEOF(3)THEN99ELSEINPUT#3,F,FF,FD:IFF<>JTHEN100
  103. 101 SP=INSTR(F,"*"):J=FD:GOSUB24:QL=QA:EA=MID$(J,9,5):E=FF
  104. 102 B="Chat View ^N^X^Z "+E:GOSUB80:B=CHR$(12)+"Mail:"+A:GOSUB1:GOTO62
  105. 103 G=CN:RETURN
  106. 105 GOSUB41:END'QUIT
  107. 106 'MESSENGER.100 Copyright 1986 By Tom Fitzpatrick, All rights reserved
  108.  
  109. ->START.BA
  110. 1 MAXFILES=1:CLEAR512:?"Disk?":d$=input$(1):IFD$="Y"ORD$="y"THEND=-1
  111. 2 FORA!=0TO3:READA$:IFDTHENA$="0:"+A$
  112. 3 OPENA$FOROUTPUTAS1:IFNOTDTHEN?#1,"00/00/0000:00":CLOSE:NEXT:GOTO5
  113. 4 CLOSE:OPEN("D"+STR$(A!))FOROUTPUTAS1:?#1,"00/00/0000:00,0,0,"CHR$(34)+SPACE$(99):CLOSE:NEXT
  114. 5 BEEP:END:DATAMAIL,BASE 1,BASE 2,BASE 3
  115. ->DELETE.BA
  116. 0 MAXFILES=2:CLEAR520:CLS:?"Disk?":J$=INPUT$(1):IFD$="Y"ORD$="y"THEND=-1
  117. 1 INPUT"First msg date";J$:GOSUB9:L=QA: FORA=0TO3:READF$:QL=L:?@80,F$:IFDTHEN10ELSEOPENF$FORINPUTAS1:Q=VARPTR(J$):POKEQ,255:POKEQ+1,175:POKEQ+2,249
  118. 2 K=INSTR(J$,F$):IFK=0ORM>64128THENERROR52ELSEIF(ASC(MID$(J$,K-3))AND192)<192THENM=M+K:GOTO2ELSEM=ASC(MID$(J$,K-2))+256*ASC(MID$(J$,K-1))+15:B$="":W=0:LINEINPUT#1,J$
  119. 3 IFEOF(1)THEN7ELSELINEINPUT#1,J$:IFB$=""THENIFASC(J$)=68THEN6ELSEIFQLTHENGOSUB9:IFQLTHEN6
  120. 4 B$=J$:J$=J$+CHR$(13)+CHR$(10):P!=LEN(J$):IFWTHENFORN!=1TOP!:POKEM+N!-1,ASC(MID$(J$,N!)):NEXT
  121. 5 M=M+P!:GOTO3
  122. 6 W=-1:LINEINPUT#1,B$:IFB$>""THEN6ELSE3
  123. 7 IFWTHENFORN=MTOM+2:POKEN,42:NEXT
  124. 8 GOTO17
  125. 9 QA=31*(VAL(MID$(J$,1,2))-1)+VAL(MID$(J$,4,2))+373*(VAL(MID$(J$,7,2))-30):IFQA>=QLTHENQL=0:RETURNELSERETURN
  126. 10 F$="0:"+F$:D$="D"+STR$(A):OPEND$FORINPUTAS1:INPUT#1,DW$,W,V,DX$:CLOSE:V=0:M=0:IFQL=0ANDINSTR(DX$,"D")=0THEN17ELSEOPENF$FORINPUTAS1:OPEN"0:W"FOROUTPUTAS2
  127. 11 IFEOF(1)THEN15ELSEV=V+1:LINEINPUT#1,J$:IFQLTHENGOSUB9
  128. 12 IFQLORMID$(DX$,V,1)="D"THEN14ELSEM=M+1
  129. 13 ?#2,J$:IFJ$=""THEN11ELSELINEINPUT#1,J$:GOTO13
  130. 14 LINEINPUT#1,J$:IFJ$>""THEN14ELSE11
  131. 15 CLOSE1:OPEND$FOROUTPUTAS1:?#1,DW$","M","LOF(2)","CHR$(34)SPACE$(99)
  132. 16 CLOSE:KILLF$:NAME"0:W"ASF$
  133. 17 NEXT:BEEP:BEEP
  134. 18 DATAMAIL,BASE 1,BASE 2,BASE 3
  135.  
  136. ->I.DO
  137. M
  138.  
  139.  
  140. Help!   Users   Feedback        Goodbye Chat    [Msgs:] Read, Search, Enter
  141. [MsgBases:] Mail,1,2,3
  142.  
  143. NEW
  144. John Smith 10
  145. If your name appears above, your ID     has already been established.  Use the
  146. number next to your name plus your      password as your ID. (If John Smith's
  147. password is ABC, 10ABC would be his ID.)
  148. With whom am I typing?
  149. Your phone #(xxx/xxx-xxxx) and the best time to reach you?
  150. Leave your message or your desired      password (3-8 characters, A-Z only)?
  151. Thank you.
  152.  
  153. H
  154.  
  155. CTRL-S Pauses; CTRL-Q resumes;          CTRL-N Next msg; CTRL-X eXits activity
  156.  
  157. CHAT    :Page SYStem OPerator
  158. FEEDBACK:Send mail to sysop
  159. GOODBYE :Disconnect
  160. USERS   :List users
  161. MAIL    :Private messages(msgs)
  162. 1       :General msgs
  163. 2       :For Sale
  164. 3       :Computer Q&As
  165.  
  166. READ    :Read msgs. 0 reads new since   last call, 1 reads all, # reads msg #
  167. to last msg.
  168.  
  169. SEARCH  :Enter part of name or subject. Searching for ick shows msgs from TOM  FITZPATRICK or titled LIVER? ICK!!
  170.  
  171. ENTER   :Enter a msg.
  172.  
  173. *: A one-line note to yourself. *<cr>   at any prompt activates it. <cr> leaves
  174. unchanged, one line of text replaces    old note.
  175.  
  176. ; Use the ; to seperate commands. To    read messages starting at 10, enter
  177. r;10 instead of r<cr>10<cr>.
  178.  
  179. If you have any questions, leave a      msg. or Feedback.
  180.  
  181.  
  182. ->AA.DO
  183. 93 ONKEYGOSUB105,33,34:KEYON:B="Quit Ring Run":GOSUB80:CLS:CALL32428
  184. 94 ONRGOTO,96,95:IF(INP(216)AND32)THEN94ELSEN=N+1:IFN<1THEN94ELSER=1
  185. 95 POKE63067,77:CALL28326:CALL21200:POKE65344,1:GOSUB110:B="mdm:8n1d":OPENBFORINPUTAS1:GOSUB112:OPENBFOROUTPUTAS2
  186. 96 POKE65414,0
  187. 110 CALL28399:IFPEEK(65344)=1THENT=T+1:?@20,T:IFT<999THEN110ELSE40
  188. 111 FORT=1TO99:NEXT
  189. 112 POKE65344,1:CALL28399:IFPEEK(65344)=1THEN40ELSERETURN
  190.  
  191. ->D.DO
  192. 4 ONINSTR(" CEFGHRSU",J)GOTO3,16,18,17,38,19,61,60,20:IFINSTR("M123",J)THENGOSUB107:GOTO3ELSE3
  193. 17 WE=0:GOSUB107:DA="SYSOP;"
  194. 40 WE=0:GOSUB108:GOSUB41:RUN
  195. 42 IFTM>98ORLO>100THENB="NO ROOM":GOTO36ELSEIFW=0THENB="To:":GOSUB7:IFJ=DTHEN59ELSERS=0:GOSUB21:IFRSTHEN44ELSEB="NOT A USER"+CG:GOSUB36:GOTO42'ENTER
  196. 58 IFU>1THENCLOSE3,4:OPEN("0:"+FN(W))FORAPPENDAS3:FORK=0TOU:?#3,F(K):F(K)=D:NEXT:DW=DATE$+LEFT$(TIME$,5):B="Saved"+A:LO=LOF(3):TM=TM+1:GOSUB1:WD=Z
  197. 61 B="Start # 0(new)-"+STR$(TM)+"?":GOSUB9:NS=VAL(J)
  198. 62 V=0:J=DW:GOSUB24:IFNS=0ANDNOTQFTHENB="Nothing new"+A:GOSUB1:G=CELSEGOSUB88
  199. 63 GOSUB29:IFEOF(3)ORG=CTHEN76ELSEG=D:V=V+1:LINEINPUT#3,J:IFNS=0THENGOSUB24:IFQFTHENNS=VELSE74
  200. 67 B=J+A:GOSUB1:LINEINPUT#3,J:IFG=CTHEN76ELSEIFJ>DANDG=CNTHEN74ELSEIFJ>DTHEN67
  201. 69 GOSUB6:IFJ="D"ANDNTHENMID$(DX,V)="D":WD=ZELSEIFJ="X"THENG=CELSEIFJ="A"THENNS=V-1:GOTO62
  202. 71 WT=W:NS=V:IFW>0THENB="Private":GOSUB5:IFJ="Y"THENJ="0":GOSUB107
  203. 73 DA=DA+";":GOSUB42:J=STR$(WT):GOSUB107:V=NS+Z:GOTO62
  204. 74 LINEINPUT#3,J:IFJ>""THEN74ELSE63
  205. 75'
  206. 86 GOSUB84:NG=INSTR(B,A)-1:J=LEFT$(B,NG):M=M+NG+2:RETURN
  207. 88 CLOSE3:OPEN("0:"+FN(W))FORINPUTAS3:J=DW:RETURN
  208. 91 ONCOMGOSUB28:ONERRORGOTO25:GOSUB109
  209. 107 WE=VAL(J):IFW=WETHENRETURN
  210. 108 IFWDTHENWD=0:CLOSE3:OPEN("D"+STR$(W))FOROUTPUTAS3:?#3,DW","TM","LO","CHR$(34)DX
  211. 109 W=WE:CLOSE3:OPEN("D"+STR$(W))FORINPUTAS3:INPUT#3,DW,TM,LO,DX:RETURN
  212.  
  213. 
  214. 
  215. 
  216.