->MSGR1.BA 0 GOTO90 1 IFRAND1THENFORZC=1TOLEN(B):?#2,MID$(B,ZC,1);:NEXT 2 IFRAND2THEN?B;:RETURNELSERETURN 3 F="M":GOSUB30:B=FN(W)+" Command:":GOSUB6'MENU 4 ONINSTR(" CEFGHRSU",J)GOTO3,16,18,17,38,19,61,60,20:IFINSTR("M123",J)THENW=VAL(J):GOTO3ELSE3 5 B=B+"?(Y/N)"'Y/N 6 GOSUB7:J=LEFT$(J,1):RETURN'1 CHAR INPUG 7 GOSUB9:IFJ=DTHENRETURNELSEFOROA=1TOLEN(J):OB=ASC(MID$(J,OA)):IFOB>96THENMID$(J,OA)=CHR$(OB-32)'CAPS 8 NEXT:RETURN 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 10 T=0 11 'MESSENGER.100 Copyright 1986 By Tom Fitzpatrick, All rights reserved 12 G=INKEY$:IFG=DTHENIFPEEK(65414)=0THENT=T+1:IFT<2700THEN12ELSE40ELSEG=INPUT$(1,1) 13 IFL=ZTHENRETURNELSEB=G:IFG75THENB=CGELSEJ=J+B:L=L+1:IFL=70THENB=B+CG 14 GOSUB1:GOTO10 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 16 B="Page ON"+A:GOSUB1:LINE(6,56)-(26,63),1,B:SOUND450,45:GOTO3 17 W=0:DA="SYSOP;" 18 GOSUB42:GOTO3 19 F="H":GOSUB30:GOTO3 20 RS=Z:GOSUB21:GOTO3 21 GOSUB87:GOSUB29 22 IFEOF(3)THENRETURNELSEINPUT#3,F,B,F:IFRSTHENB=B+A:GOSUB1ELSEIFB=JTHENRS=Z:RETURN 23 GOTO22 24 QA=31*(VAL(MID$(J,1,2))-1)+VAL(MID$(J,4,2))+373*(VAL(MID$(J,7,2))-30):QF=QLFTHEN31 32 LINEINPUT#3,B:IFB=DORG=CTHENRETURNELSEIFRIGHT$(B,1)="?"THENGOSUB7:B=J:GOSUB89:GOTO32ELSEB=B+A:GOSUB1:GOTO32 33 R=1'Ring 34 GOSUB37'Run 35 R=RXOR2:RETURN'View 36 B=B+A:GOSUB1 37 G=C:POKE65450,0:DA=D:RETURN'^X 38 B="Leave":GOSUB5:IFJ="N"THEN3ELSECLOSE:FN(W)="PW":GOSUB82'Off 39 GOSUB86:K=INSTR(J,",")+1:IFMID$(J,K,INSTR(K,J,",")-K)=ETHENM=M-15:GOSUB85ELSEIFPEEK(M)<>26THEN39ELSEERROR91 40 GOSUB41:RUN 41 ?CE"q"CE"Q":CALL21179:GOSUB37:SCREEN,0:RETURN 42 IFFRE(0)<3000THENB="NO ROOM":GOTO36ELSEIFW=0THENB="To:":GOSUB7:IFJ=DTHEN59ELSERS=0:GOSUB21:IFRSTHEN44ELSEB="NOT A USER"+CG:GOSUB36:GOTO42'ENTER 43 B="Subject:":GOSUB7:IFLEN(J)>15THEN43ELSEIFJ=DTHEN59 44 B=A+FN(W)+">"+J+A+"Entry ends with on a blank line or 12 lines"+A:GOSUB1:F(0)=DATE$+LEFT$(TIME$,5)+E+"\"+J:U=1:NM=Z 45 B=D:IFU=12THENB="LAST LINE"+A 46 IFU<13THENGOSUB9:F(U)=J:IFJ>DTHENU=U+1:GOTO45 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 48 B="Line #:":GOSUB9:V=VAL(J):IFV<1ORV>U-1ORP=4ANDU=13THENGOSUB37:GOTO47ELSEIFP=4THENV=V-1 49 GOSUB57:ONPGOSUB,50,53,54:GOTO47 50 B="New line, \old text\new or if okay"+A:GOSUB9:IFJ=DTHENRETURNELSEDA="E;"+STR$(V)+";" 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) 52 RETURN 53 B="Delete":GOSUB5:IFJ="Y"THENFORV=VTO12:F(V)=F(V+1):NEXT:U=U-1:RETURNELSERETURN 54 B=STR$(V+1)+")":GOSUB9:IFJ>DTHENFORK=12TOVSTEPZ:F(K+1)=F(K):NEXT:U=U+1:F(V+1)=J:RETURNELSERETURN 55 GOSUB29:FORV=1TOU-1:GOSUB57:NEXT:GOTO47 56 B="Abort":GOSUB5:IFJ="Y"THEN59ELSE47 57 B=MID$(STR$(V),2)+")"+F(V)+A:GOSUB1:RETURN 58 IFU>1THENCLOSE3:OPENFN(W)FORAPPENDAS3:FORK=0TOU:?#3,F(K):F(K)=D:NEXT:GOSUB82:GOSUB85:B="Saved"+A:GOSUB1 59 NM=0:RETURN 60 B="Search for:":GOSUB7:IFJ>DTHENFF=JELSE3'Read 61 B="Start #:(0=New)":GOSUB9:NS=VAL(J) 62 GOSUB88:V=0:TT=0:GOSUB24:IFNS=0ANDNOTQFTHENB="Nothing new"+A:GOSUB1:G=C 63 GOSUB29:IFPEEK(M)=26ORG=CTHEN76ELSET3=TT:G=D:V=V+1:GOSUB86:IFNS=0THENGOSUB24:IFQFTHENNS=VELSE74 64 IF(NSANDVDANDINSTR(MID$(J,14),FF)=0)THEN74 65 K=INSTR(J,"\"):FD=MID$(J,14,K-14):F=MID$(J,1+K):N=ZAND(F=EORFD=E):IFW=0ANDN=0THEN74 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 67 B=J+A:GOSUB1:GOSUB86:IFG=CTHEN76ELSEIFJ>DANDG=CNTHEN74ELSEIFJ>DTHEN67 68 B="Reply,Again,eXit,Next?":IFNORSPTHENN=Z:B="Delete,"+B 69 GOSUB6:IFJ="D"ANDNTHENPOKEM4+T3,68ELSEIFJ="X"THENG=CELSEIFJ="A"THENM=M4+T3:TT=T3:V=V-1 70 IFJ<>"R"THEN63 71 WT=W:NS=V:IFW>0THENB="Private":GOSUB5:IFJ="Y"THENW=0 72 IFW=0THENDA=FDELSEDA=F 73 DA=DA+";":GOSUB42:W=WT:GOSUB88:TT=T3:M=M+TT:V=NS+Z:GOTO63 74 X=INSTR(B,A+A):IFX=0THENX=INSTR(B,CHR$(26)):IFX=0THENY=251-NG:M=M+Y:TT=TT+Y:GOSUB86:GOTO74 75 Y=X+1-NG:M=M+Y:TT=TT+Y:GOTO63 76 NS=0:FF=D:IFG<>CTHENB=A+">Last msg #"+STR$(V)+A:GOSUB1 77 GOTO3 78 COMOFF:KEYOFF:LINE-(5,56),0,B:B="Chat ON"+A+CG:IF(RAND2)=0THENGOSUB35'CHAT 79 GOSUB9:B=D:IFJ=CETHENJ=D:L=0:KEYON:B="Chat OFF"+A:GOSUB1:RETURNELSE79 80 SCREEN,0:?CE"U":?@280,B;CE"T";:?@0,:RETURN'F Keys 81 B=A+"NOTE:"+BF+A:GOSUB9:IFJ>DTHENBF=J:RETURNELSERETURN'Note 82 M=63919 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 84 MA=VARPTR(B):POKEMA,255:POKEMA+1,M-INT(M/256)*256:POKEMA+2,INT(M/256):RETURN 85 B=DATE$+LEFT$(TIME$,5):FORK=1TO13:POKEK+M-1,ASC(MID$(B,K)):NEXT:RETURN 86 GOSUB84:NG=INSTR(B,A)-1:J=LEFT$(B,NG):TT=TT+NG+2:M=M+NG+2:RETURN 87 CLOSE3:OPEN"pw"FORINPUTAS3:RETURN 88 CLOSE3:GOSUB82:GOSUB86:M4=M:RETURN 89 CLOSE4:OPEN"L"FORAPPENDAS4:IFFRE(0)>500THEN?#4,DATE$TIME$B:RETURNELSEERROR7 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 91 ONCOMGOSUB28:ONERRORGOTO25 92 C=CHR$(24):CE=CHR$(27):CG=CHR$(7):CN=CHR$(14):CR=CHR$(13):A=CR+CHR$(10) 93 ONKEYGOSUB105,33,34:KEYON:B="Quit Ring Run":GOSUB80:CLS:CALL32428:F="COM:38N1E":OPENFFORINPUTAS1:OPENFFOROUTPUTAS2 94 ONRGOTO,97,95:IFPEEK(65414)=0THEN94ELSER=1:GOSUB9 95 B="ATA"+A:GOSUB9:L=Z:GOSUB10:F="COM:58N1D":IFASC(G)<250THENMID$(F,5)="3" 96 CLOSE2:OPENFFOROUTPUTAS2:CLOSE1:OPENFFORINPUTAS1 97 SCREEN,0:ONKEYGOSUB78,35,103,37,40:B=A+A+A:?CE"P" 99 K=K+1:IFK>3THEN40ELSEGOSUB87:B=B+"ID or NEW:":GOSUB7:IFJ="NEW"THENF=J:GOSUB30:GOTO40 100 IFEOF(3)THEN99ELSEINPUT#3,F,FF,FD:IFF<>JTHEN100 101 SP=INSTR(F,"*"):J=FD:GOSUB24:QL=QA:EA=MID$(J,9,5):E=FF 102 B="Chat View ^N^X^Z "+E:GOSUB80:B=CHR$(12)+"Mail:"+A:GOSUB1:GOTO62 103 G=CN:RETURN 105 GOSUB41:END'QUIT 106 'MESSENGER.100 Copyright 1986 By Tom Fitzpatrick, All rights reserved ->START.BA 1 MAXFILES=1:CLEAR512:?"Disk?":d$=input$(1):IFD$="Y"ORD$="y"THEND=-1 2 FORA!=0TO3:READA$:IFDTHENA$="0:"+A$ 3 OPENA$FOROUTPUTAS1:IFNOTDTHEN?#1,"00/00/0000:00":CLOSE:NEXT:GOTO5 4 CLOSE:OPEN("D"+STR$(A!))FOROUTPUTAS1:?#1,"00/00/0000:00,0,0,"CHR$(34)+SPACE$(99):CLOSE:NEXT 5 BEEP:END:DATAMAIL,BASE 1,BASE 2,BASE 3 ->DELETE.BA 0 MAXFILES=2:CLEAR520:CLS:?"Disk?":J$=INPUT$(1):IFD$="Y"ORD$="y"THEND=-1 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 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$ 3 IFEOF(1)THEN7ELSELINEINPUT#1,J$:IFB$=""THENIFASC(J$)=68THEN6ELSEIFQLTHENGOSUB9:IFQLTHEN6 4 B$=J$:J$=J$+CHR$(13)+CHR$(10):P!=LEN(J$):IFWTHENFORN!=1TOP!:POKEM+N!-1,ASC(MID$(J$,N!)):NEXT 5 M=M+P!:GOTO3 6 W=-1:LINEINPUT#1,B$:IFB$>""THEN6ELSE3 7 IFWTHENFORN=MTOM+2:POKEN,42:NEXT 8 GOTO17 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 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 11 IFEOF(1)THEN15ELSEV=V+1:LINEINPUT#1,J$:IFQLTHENGOSUB9 12 IFQLORMID$(DX$,V,1)="D"THEN14ELSEM=M+1 13 ?#2,J$:IFJ$=""THEN11ELSELINEINPUT#1,J$:GOTO13 14 LINEINPUT#1,J$:IFJ$>""THEN14ELSE11 15 CLOSE1:OPEND$FOROUTPUTAS1:?#1,DW$","M","LOF(2)","CHR$(34)SPACE$(99) 16 CLOSE:KILLF$:NAME"0:W"ASF$ 17 NEXT:BEEP:BEEP 18 DATAMAIL,BASE 1,BASE 2,BASE 3 ->I.DO M Help! Users Feedback Goodbye Chat [Msgs:] Read, Search, Enter [MsgBases:] Mail,1,2,3 NEW John Smith 10 If your name appears above, your ID has already been established. Use the number next to your name plus your password as your ID. (If John Smith's password is ABC, 10ABC would be his ID.) With whom am I typing? Your phone #(xxx/xxx-xxxx) and the best time to reach you? Leave your message or your desired password (3-8 characters, A-Z only)? Thank you. H CTRL-S Pauses; CTRL-Q resumes; CTRL-N Next msg; CTRL-X eXits activity CHAT :Page SYStem OPerator FEEDBACK:Send mail to sysop GOODBYE :Disconnect USERS :List users MAIL :Private messages(msgs) 1 :General msgs 2 :For Sale 3 :Computer Q&As READ :Read msgs. 0 reads new since last call, 1 reads all, # reads msg # to last msg. SEARCH :Enter part of name or subject. Searching for ick shows msgs from TOM FITZPATRICK or titled LIVER? ICK!! ENTER :Enter a msg. *: A one-line note to yourself. * at any prompt activates it. leaves unchanged, one line of text replaces old note. ; Use the ; to seperate commands. To read messages starting at 10, enter r;10 instead of r10. If you have any questions, leave a msg. or Feedback. ->AA.DO 93 ONKEYGOSUB105,33,34:KEYON:B="Quit Ring Run":GOSUB80:CLS:CALL32428 94 ONRGOTO,96,95:IF(INP(216)AND32)THEN94ELSEN=N+1:IFN<1THEN94ELSER=1 95 POKE63067,77:CALL28326:CALL21200:POKE65344,1:GOSUB110:B="mdm:8n1d":OPENBFORINPUTAS1:GOSUB112:OPENBFOROUTPUTAS2 96 POKE65414,0 110 CALL28399:IFPEEK(65344)=1THENT=T+1:?@20,T:IFT<999THEN110ELSE40 111 FORT=1TO99:NEXT 112 POKE65344,1:CALL28399:IFPEEK(65344)=1THEN40ELSERETURN ->D.DO 4 ONINSTR(" CEFGHRSU",J)GOTO3,16,18,17,38,19,61,60,20:IFINSTR("M123",J)THENGOSUB107:GOTO3ELSE3 17 WE=0:GOSUB107:DA="SYSOP;" 40 WE=0:GOSUB108:GOSUB41:RUN 42 IFTM>98ORLO>100THENB="NO ROOM":GOTO36ELSEIFW=0THENB="To:":GOSUB7:IFJ=DTHEN59ELSERS=0:GOSUB21:IFRSTHEN44ELSEB="NOT A USER"+CG:GOSUB36:GOTO42'ENTER 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 61 B="Start # 0(new)-"+STR$(TM)+"?":GOSUB9:NS=VAL(J) 62 V=0:J=DW:GOSUB24:IFNS=0ANDNOTQFTHENB="Nothing new"+A:GOSUB1:G=CELSEGOSUB88 63 GOSUB29:IFEOF(3)ORG=CTHEN76ELSEG=D:V=V+1:LINEINPUT#3,J:IFNS=0THENGOSUB24:IFQFTHENNS=VELSE74 67 B=J+A:GOSUB1:LINEINPUT#3,J:IFG=CTHEN76ELSEIFJ>DANDG=CNTHEN74ELSEIFJ>DTHEN67 69 GOSUB6:IFJ="D"ANDNTHENMID$(DX,V)="D":WD=ZELSEIFJ="X"THENG=CELSEIFJ="A"THENNS=V-1:GOTO62 71 WT=W:NS=V:IFW>0THENB="Private":GOSUB5:IFJ="Y"THENJ="0":GOSUB107 73 DA=DA+";":GOSUB42:J=STR$(WT):GOSUB107:V=NS+Z:GOTO62 74 LINEINPUT#3,J:IFJ>""THEN74ELSE63 75' 86 GOSUB84:NG=INSTR(B,A)-1:J=LEFT$(B,NG):M=M+NG+2:RETURN 88 CLOSE3:OPEN("0:"+FN(W))FORINPUTAS3:J=DW:RETURN 91 ONCOMGOSUB28:ONERRORGOTO25:GOSUB109 107 WE=VAL(J):IFW=WETHENRETURN 108 IFWDTHENWD=0:CLOSE3:OPEN("D"+STR$(W))FOROUTPUTAS3:?#3,DW","TM","LO","CHR$(34)DX 109 W=WE:CLOSE3:OPEN("D"+STR$(W))FORINPUTAS3:INPUT#3,DW,TM,LO,DX:RETURN