0 GOTO66:REM XMODEM 1/23/85 by Rick Perry [75665,1045]; Modified 1/27/85 by Marty Lowy [75515,662] 1 T=0 2 CALLVARPTR(M(16)),0,VARPTR(X(0)):IFX(0)THENRETURNELSET=T+1:IFT<66*STHEN2ELSERETURN 3 CALLVARPTR(M(21)),0,VARPTR(X):IFQTHENPRINTCHR$(X);ELSEPRINTCHR$(T(X)); 4 IFDTHENN=N+1:Z(N)=X:IFN>255THEN6 5 RETURN 6 S=0:GOSUB61:FORJ=0TON:PRINT#3,CHR$(Z(J));:NEXT:N=-1:GOTO61 7 IFLTHENCLOSE1,2:OPENQ$FORINPUTAS1:OPENQ$FOROUTPUTAS2ELSEA$="8N1D"+N$:R=6118:GOSUB55 8 A=256:B=1:GOSUB53:ONERRORGOTO28:IFETHEN17 9 S=1:GOSUB1:IFX(0)THEN9 10 IFINKEY$=G$THEN29ELSEPRINT#2,CHR$(21);:PRINT"X";:S=10:GOSUB1:IFX(0)THEN12ELSE10 11 IFINKEY$=G$THEN29ELSEPRINT#2,CHR$(6);:PRINT".";:S=10:GOSUB1:IFX(0)=0THEN10 12 IFX(1)=1THEN13ELSEIFX(1)=4THENPRINT#2,CHR$(6);:GOTO27ELSEIFX(1)=24THEN29ELSE9 13 CALLVARPTR(M(24)),0,VARPTR(Z(0)):IFZ(0)=0THEN9ELSEIFZ(2)<>(255ANDNOTZ(1))THEN9ELSEIFZ(1)=ATHEN11ELSEIFZ(1)<>BTHEN29 14 X=0:FORN=3TO130:X=X+Z(N):NEXT:X=XAND255:IFX<>Z(131)THEN9 15 FORN=3TO130:IFZ(N)=26THENN=130ELSEPRINT#3,CHR$(Z(N)); 16 NEXT:A=B:B=B+1AND255:GOTO11 17 GOSUB24 18 PRINT"?"; 19 IFINKEY$=G$THEN29ELSES=10:GOSUB1:IFX(0)=0THEN18ELSEIFX(1)=6THEN23ELSEIFX(1)=21THEN20ELSEIFX(1)=24THEN29ELSE18 20 PRINT"X"; 21 IFN=0THENPRINT#2,CHR$(4);ELSEPRINT#2,CHR$(1)CHR$(A)CHR$(255ANDNOTA);:X=0:FORJ=1TO128:X=X+Z(J):PRINT#2,CHR$(Z(J));:NEXT:X=XAND255:PRINT#2,CHR$(X); 22 S=0:GOSUB1:IFX(0)THEN22ELSE19 23 IFN=0THEN27ELSEPRINT".";:GOSUB24:GOTO21 24 A=A+1AND255:N=0:IFNOTETHENRETURN 25 FORN=1TO128:IFETHENIFNOTEOF(3)THENZ(N)=ASC(INPUT$(1,3))ELSEE=0:Z(N)=26ELSEZ(N)=0 26 NEXT:RETURN 27 IFNOTETHENIFLEFT$(Y$,2)="0:"THENCLOSE3:PRINT:PRINT"File transfer complete.":BEEP:GOTO31:ELSECLOSE3:PRINT:PRINT"File transfer complete.":BEEP:GOTO31 28 RESUME29 29 SCREEN,0:PRINT:PRINT"ABORT":SOUND9394,9:CLOSE3 30 S=1:GOSUB1:IFX(0)THEN30ELSEPRINT#2,CHR$(24); 31 IFLTHENCLOSE:OPENP$FORINPUTAS1:OPENP$FOROUTPUTAS2ELSEA$="7I1E"+N$:R=6118:GOSUB55 32 POKE-86,0:D=0:ONERRORGOTO44:POKE63056,64:A$="PrevDown Up TermBrk Fre Dir Bye ":GOSUB52 33 CALL16969:ONCOMGOSUB3:ONMDMGOSUB3:S=-1:GOSUB61:K=0 34 ONKGOTO39,45,56,42:A$=INKEY$:IFINSTR(N$,A$)=0THENA=INSTR(F$,A$):IFATHENONAGOSUB60,36,37,56,64,65,63,38ELSEIFA$=CHR$(7)THENQ=NOTQELSEPRINT#2,A$; 35 GOTO34 36 IFDTHENK=4:RETURNELSEK=1:RETURN 37 IFDTHENRETURNELSEK=2:RETURN 38 K=3:RETURN 39 COMSTOP:MDMSTOP:SCREEN,0:PRINT:LINEINPUT"File to Download? ";Y$:IFINSTR(Y$,":")<4THENPRINT"Append? ";:GOSUB93:IFA$="Y"THENOPENY$FORAPPENDAS3:GOTO41 40 OPENY$FOROUTPUTAS3 41 GOSUB92:IFA$="Y"THENE=0:GOTO7ELSEA$="Prev@@@@ TermBrk Fre Dir Bye ":GOSUB52:N=-1:D=-1:GOTO33 42 SCREEN,0:D=0:IFN>-1THENGOSUB6 43 S=0:GOSUB61:CLOSE3:GOTO32 44 PRINT" aborted":IFERR=22THENSCREEN,1:RESUME33ELSECLOSE3:RESUME32 45 COMSTOP:MDMSTOP:SCREEN,0:PRINT:LINEINPUT"File to Upload? ";Y$:OPENY$FORINPUTAS3:GOSUB92:IFA$="Y"THENE=-1:GOTO7ELSEW=1:INPUT"Width";W:W=W-1:T=W-9:C=0:S=0:GOSUB53:GOSUB49 46 IFINKEY$=G$THENPRINT:ERROR7ELSEIFN<0THENCLOSE3:BEEP:GOTO32ELSEGOSUB47:GOTO46 47 J=J+1:IFJ>NTHEN49ELSEPRINT#2,CHR$(Z(J));:IFWTHENIFZ(J)=13THENC=0ELSEC=C+1:IFTWTHENC=0:PRINT#2,CHR$(13); 48 RETURN 49 J=-1:N=-1:IFEOF(3)THENRETURNELSEGOSUB61 50 N=N+1:Z(N)=ASC(INPUT$(1,3)):IFZ(N)=10THENN=N-1 51 IFN>255OREOF(3)THEN61ELSE50 52 FORJ=4TO32STEP4:MID$(A$,J,1)=CHR$(ASC(MID$(A$,J))OR128):NEXT:GOTO54 53 A$=STRING$(7,128)+"Abr"+CHR$(244) 54 R=17061 55 V=VARPTR(A$):CALLR,60,PEEK(V+1)+256*PEEK(V+2):RETURN 56 COMSTOP:MDMSTOP:SCREEN,0:PRINT:IFK=3THENPRINT"Disconnect? ";ELSEPRINT"Telcom? "; 57 GOSUB93:IFA$<>"Y"THENERRORELSEIFDANDN>-1THENGOSUB6:CLOSE3 58 IFK=3THENMAXFILES=2:OPEN"COM:57I1E"FOROUTPUTAS1:PRINT#1,"ATZ":CLOSE1:MENUELSEIFLTHENMAXFILES=2:CLEAR0 59 CALL21608 60 S=0:GOSUB61:CALL21795 61 S=NOTS:IFSTHENCOMSTOP:MDMSTOP:PRINT#2,CHR$(19);:CALLVARPTR(M(59)),100ELSEPRINT#2,CHR$(17);:MDMON:COMON 62 RETURN 63 PRINT:FILES:RETURN 64 STOP:RETURN 65 PRINT:PRINTFRE(0)"Bytes Free":RETURN 66 MAXFILES=3:CLEAR500,MAXRAM:DEFINTA-Z:DIMX,X(1),M(60),Z(300),T(127):SCREEN,0:CLS:FORN=0TO60:READM(N):NEXT:FORN=0TO127:T(N)=N:NEXT:T(7)=0:T(8)=143:T(124)=249:T(126)=36:FORN=33TO96:READT(N):NEXT:K=3:Q=-1 67 M$=CHR$(13):N$=CHR$(0):V$=CHR$(22):G$=CHR$(255):P1=0:F$="":FORN=248TO255:F$=F$+CHR$(N):NEXT:POKE63056,64:CALL17875:POKE63056,0:CALL27804 68 P$="com:57i1e":Q$="com:58n1d":CLOSE:OPEN"adrs"FORINPUTAS1:LINEINPUT"Find:";A$:CALLVARPTR(M(3)),0,VARPTR(A$):IFA$="MENU"THEN58ELSEIFA$="DIAL"THEN76 69 IFEOF(1)THEN68ELSELINEINPUT#1,Y$:I=INSTR(Y$,":"):B$=LEFT$(Y$,I):CALLVARPTR(M(3)),0,VARPTR(B$):IFINSTR(B$,A$)=0THEN69ELSEJ=INSTR(I,Y$,"<"):IFJ=0THEN69 70 PRINTLEFT$(Y$,J)">";:Z$=INPUT$(1):CALLVARPTR(M(3)),0,VARPTR(Z$):Z1$=Z$:PRINT:ONINSTR(CHR$(27)+"3SM",Z$)GOTO68,78,78,71:GOTO69 71 CLOSE:L=0:A$="7I1E"+N$:R=6118:GOSUB55:A$=MID$(Y$,I+1,J-I-1)+N$ 72 PRINT"Calling "LEFT$(Y$,I);:R=21293:GOSUB55:CALL21172:PRINT:N=0 73 N=N+1:CALLVARPTR(M(0)),0,VARPTR(X):IFX=0THEN77ELSEB$=INKEY$:IFB$=""ANDN<1000THEN73 74 CALL21179:IFB$>""THEN68ELSEPRINT"NO CARRIER":N=0 75 N=N+1:CALL21264:IFINKEY$>""THEN68ELSEIFN<9THEN75ELSE72 76 CLOSE:Y$="":J=1:L=-1:ONINSTR(" 33SsMm",INPUT$(1))\2GOTO81,31,77:GOTO68 77 L=0:PRINT"CONNECT":BEEP:OPEN"mdm:7i1e"FORINPUTAS1:OPEN"mdm:7i1e"FOROUTPUTAS2:A$=MID$(Y$,J)+N$:R=21392:GOSUB55:GOTO32 78 CLOSE:IFZ$="S"THENB$="com:57i1e":W$="5"ELSEB$="com:37i1e":W$="1" 79 OPENB$FOROUTPUTAS2:B$="ATE0"+M$:GOSUB89 80 B$="ATV0"+M$:GOSUB89:IFZ$="S"THEN82 81 P$="com:37i1e":Q$="com:38n1d":IFY$=""THEN31 82 CLOSE:L=-1:OPENP$FORINPUTAS1:OPENP$FOROUTPUTAS2:ONCOMGOSUB90:COMON:B$="ATDT"+MID$(Y$,I+1,J-I-1)+M$:W=-1:GOSUB89:GOSUB87:BEEP:CALL21274:PRINT#2,CHR$(3); 83 I=INSTR(J,Y$,"?"):IFI=0THEN32ELSEW$=MID$(Y$,I+1,1):W=-1:GOSUB87:J=I+1 84 J=J+1:A$=MID$(Y$,J,1):IFA$="^"THENPRINT#2,M$;:GOTO83ELSEIFA$="?"THEN83 85 PRINT#2,A$;:GOTO84 86 CALL21274:FORH=1TO3:PRINT#2,"+";:CALL21274:NEXTH:CALL21274:W$="0":W=-1:B$="ATH0"+M$:GOSUB89:B$=A$:GOSUB87:COMOFF:IFB$=CHR$(18)THENRUNELSEIFB$=CHR$(1)THENZ$=Z1$:GOTO78ELSE58 87 A$=INKEY$:IFA$>""THENIFINSTR(CHR$(1)+CHR$(5)+CHR$(18),A$)THEN86ELSEPRINT#2,A$; 88 IFWTHEN87ELSERETURN 89 PRINT#2,LEFT$(B$,2);:CALL21274:PRINT#2,MID$(B$,3);:CALL21270,2:RETURN 90 Z$=INPUT$(1,1):PRINTZ$;:IFZ$=W$THENW=0 91 RETURN 92 PRINT"Use XMODEM protocol? "; 93 A$=INPUT$(1):IFINSTR("YyNn",A$)THENPRINTA$:CALLVARPTR(M(3)),0,VARPTR(A$):RETURNELSE93 94 DATA-4147,30574,201,-18562,20424,32291,26147,4463,2,-5683,6449,6865,-5683,4623,3347,-5688,54,28109,-14227,9012,35,32461,30573,201 95 DATA54,23892,-5683,1585,-14973,8677,7282,28109,-16019,-14907,483,39,-7415,-15936,31787,-15947,-14907,483,7,-7415,-15936,-15935,-13887,32461,4973,4627,-15903,-15099,485,4,-6903,-7744,-7711,13537,201,-15537,21276 96 DATA190,41,60,254,61,62,93,86,197,138,37,44,43,46,47,48,49,50,51,52,53,54,55,56,57,40,91,59,88,58,92,241,65,248,145,246,69,95,167,159,142,166,39,255,245,243,79,42,63,82,240,126,153,85,87,88,152,67,155,244,154,252,45,157