home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.whtech.com
/
ftp.whtech.com.tar
/
ftp.whtech.com
/
club100
/
tel
/
xmodem.100
< prev
next >
Wrap
Text File
|
2006-10-19
|
7KB
|
100 lines
0 'XMODEM.BA - BY RICK PERRY
1 'CLUB 100 LIBRARY - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE
2 GOTO68:REM XMODEM 1/23/85 by Rick Perry
3 T=0
4 CALLVARPTR(M(16)),0,VARPTR(X(0)):IFX(0)THENRETURNELSET=T+1:IFT<66*STHEN4ELSERETURN
5 CALLVARPTR(M(21)),0,VARPTR(X):IFQTHENPRINTCHR$(X);ELSEPRINTCHR$(T(X));
6 IFDTHENN=N+1:Z(N)=X:IFN>255THEN8
7 RETURN
8 S=0:GOSUB63:FORJ=0TON:PRINT#3,CHR$(Z(J));:NEXT:N=-1:GOTO63
9 IFLTHENCLOSE1,2:OPENQ$FORINPUTAS1:OPENQ$FOROUTPUTAS2ELSEA$="8N1D"+N$:R=6118:GOSUB57
10 A=256:B=1:GOSUB55:ONERRORGOTO30:IFETHEN19
11 S=1:GOSUB3:IFX(0)THEN11
12 IFINKEY$=G$THEN31ELSEPRINT#2,CHR$(21);:PRINT"X";:S=10:GOSUB3:IFX(0)THEN14ELSE12
13 IFINKEY$=G$THEN31ELSEPRINT#2,CHR$(6);:PRINT".";:S=10:GOSUB3:IFX(0)=0THEN12
14 IFX(1)=1THEN15ELSEIFX(1)=4THENPRINT#2,CHR$(6);:GOTO29ELSEIFX(1)=24THEN31ELSE11
15 CALLVARPTR(M(24)),0,VARPTR(Z(0)):IFZ(0)=0THEN11ELSEIFZ(2)<>(255ANDNOTZ(1))THEN11ELSEIFZ(1)=ATHEN13ELSEIFZ(1)<>BTHEN31
16 X=0:FORN=3TO130:X=X+Z(N):NEXT:X=XAND255:IFX<>Z(131)THEN11
17 FORN=3TO130:IFZ(N)=26THENN=130ELSEPRINT#3,CHR$(Z(N));
18 NEXT:A=B:B=B+1AND255:GOTO13
19 GOSUB26
20 PRINT"?";
21 IFINKEY$=G$THEN31ELSES=10:GOSUB3:IFX(0)=0THEN20ELSEIFX(1)=6THEN25ELSEIFX(1)=21THEN22ELSEIFX(1)=24THEN31ELSE20
22 PRINT"X";
23 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);
24 S=0:GOSUB3:IFX(0)THEN24ELSE21
25 IFN=0THEN29ELSEPRINT".";:GOSUB26:GOTO23
26 A=A+1AND255:N=0:IFNOTETHENRETURN
27 FORN=1TO128:IFETHENIFNOTEOF(3)THENZ(N)=ASC(INPUT$(1,3))ELSEE=0:Z(N)=26ELSEZ(N)=0
28 NEXT:RETURN
29 CLOSE3:PRINT:PRINT"File transfer complete.":BEEP:GOTO33
30 RESUME31
31 SCREEN,0:PRINT:PRINT"ABORT":SOUND9394,9:CLOSE3
32 S=1:GOSUB3:IFX(0)THEN32ELSEPRINT#2,CHR$(24);
33 IFLTHENCLOSE:OPENP$FORINPUTAS1:OPENP$FOROUTPUTAS2ELSEA$="7I1E"+N$:R=6118:GOSUB57
34 POKE-86,0:D=0:ONERRORGOTO46:POKE63056,64:A$="PrevDown Up TermBrk Fre Dir Bye ":GOSUB54
35 CALL16969:ONCOMGOSUB5:ONMDMGOSUB5:S=-1:GOSUB63:K=0
36 ONKGOTO41,47,58,44:A$=INKEY$:IFINSTR(N$,A$)=0THENA=INSTR(F$,A$):IFATHENONAGOSUB62,38,39,58,66,67,65,40ELSEIFA$=CHR$(7)THENQ=NOTQELSEPRINT#2,A$;
37 GOTO36
38 IFDTHENK=4:RETURNELSEK=1:RETURN
39 IFDTHENRETURNELSEK=2:RETURN
40 K=3:RETURN
41 COMSTOP:MDMSTOP:SCREEN,0:PRINT:LINEINPUT"File to Download? ";Y$:IFINSTR(Y$,":")<4THENPRINT"Append? ";:GOSUB95:IFA$="Y"THENOPENY$FORAPPENDAS3:GOTO43
42 OPENY$FOROUTPUTAS3
43 GOSUB94:IFA$="Y"THENE=0:GOTO9ELSEA$="Prev@@@@ TermBrk Fre Dir Bye ":GOSUB54:N=-1:D=-1:GOTO35
44 SCREEN,0:D=0:IFN>-1THENGOSUB8
45 S=0:GOSUB63:CLOSE3:GOTO34
46 PRINT" aborted":IFERR=22THENSCREEN,1:RESUME35ELSECLOSE3:RESUME34
47 COMSTOP:MDMSTOP:SCREEN,0:PRINT:LINEINPUT"File to Upload? ";Y$:OPENY$FORINPUTAS3:GOSUB94:IFA$="Y"THENE=-1:GOTO9ELSEW=1:INPUT"Width";W:W=W-1:T=W-9:C=0:S=0:GOSUB55:GOSUB51
48 IFINKEY$=G$THENPRINT:ERROR7ELSEIFN<0THENCLOSE3:BEEP:GOTO34ELSEGOSUB49:GOTO48
49 J=J+1:IFJ>NTHEN51ELSEPRINT#2,CHR$(Z(J));:IFWTHENIFZ(J)=13THENC=0ELSEC=C+1:IFT<CANDZ(J)=32ORC>WTHENC=0:PRINT#2,CHR$(13);
50 RETURN
51 J=-1:N=-1:IFEOF(3)THENRETURNELSEGOSUB63
52 N=N+1:Z(N)=ASC(INPUT$(1,3)):IFZ(N)=10THENN=N-1
53 IFN>255OREOF(3)THEN63ELSE52
54 FORJ=4TO32STEP4:MID$(A$,J,1)=CHR$(ASC(MID$(A$,J))OR128):NEXT:GOTO56
55 A$=STRING$(7,128)+"Abr"+CHR$(244)
56 R=17061
57 V=VARPTR(A$):CALLR,60,PEEK(V+1)+256*PEEK(V+2):RETURN
58 COMSTOP:MDMSTOP:SCREEN,0:PRINT:IFK=3THENPRINT"Disconnect? ";ELSEPRINT"Telcom? ";
59 GOSUB95:IFA$<>"Y"THENERRORELSEIFDANDN>-1THENGOSUB8:CLOSE3
60 IFK=3THENMAXFILES=2:MENUELSEIFLTHENMAXFILES=2:CLEAR0
61 CALL21608
62 S=0:GOSUB63:CALL21795
63 S=NOTS:IFSTHENCOMSTOP:MDMSTOP:PRINT#2,CHR$(19);:CALLVARPTR(M(59)),100ELSEPRINT#2,CHR$(17);:MDMON:COMON
64 RETURN
65 PRINT:FILES:RETURN
66 STOP:RETURN
67 PRINT:PRINTFRE(0)"Bytes Free":RETURN
68 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
69 N$=CHR$(0):V$=CHR$(22):G$=CHR$(255):F$="":FORN=248TO255:F$=F$+CHR$(N):NEXT:POKE63056,64:CALL17875:POKE63056,0:CALL27804
70 P$="com:57i1e":Q$="com:58n1d":CLOSE:OPEN"adrs"FORINPUTAS1:LINEINPUT"Find:";A$:CALLVARPTR(M(3)),0,VARPTR(A$):IFA$="MENU"THEN60ELSEIFA$="DIAL"THEN78
71 IFEOF(1)THEN70ELSELINEINPUT#1,Y$:I=INSTR(Y$,":"):B$=LEFT$(Y$,I):CALLVARPTR(M(3)),0,VARPTR(B$):IFINSTR(B$,A$)=0THEN71ELSEJ=INSTR(I,Y$,"<"):IFJ=0THEN71
72 PRINTLEFT$(Y$,J)">";:Z$=INPUT$(1):CALLVARPTR(M(3)),0,VARPTR(Z$):PRINT:ONINSTR(CHR$(27)+"3SM",Z$)GOTO70,80,80,73:GOTO71
73 CLOSE:L=0:A$="7I1E"+N$:R=6118:GOSUB57:A$=MID$(Y$,I+1,J-I-1)+N$
74 PRINT"Calling "LEFT$(Y$,I);:R=21293:GOSUB57:CALL21172:PRINT:N=0
75 N=N+1:CALLVARPTR(M(0)),0,VARPTR(X):IFX=0THEN79ELSEB$=INKEY$:IFB$=""ANDN<1000THEN75
76 CALL21179:IFB$>""THEN70ELSEPRINT"NO CARRIER":N=0
77 N=N+1:CALL21264:IFINKEY$>""THEN70ELSEIFN<9THEN77ELSE74
78 CLOSE:Y$="":J=1:L=-1:ONINSTR(" 33SsMm",INPUT$(1))\2GOTO83,33,79:GOTO70
79 L=0:PRINT"CONNECTED":BEEP:A$=MID$(Y$,J)+N$:R=21392:GOSUB57:OPEN"mdm:7i1e"FORINPUTAS1:OPEN"mdm:7i1e"FOROUTPUTAS2:GOTO34
80 CLOSE:IFZ$="S"THENB$="com:37i1e"ELSEB$="com:57i1e"
81 OPENB$FOROUTPUTAS2:B$="%n"+V$:GOSUB91:IFZ$="S"THENB$="2"ELSEB$="1"
82 B$=V$+"s"+B$:GOSUB91:IFZ$="S"THEN84
83 P$="com:37i1e":Q$="com:38n1d":IFY$=""THEN33
84 CLOSE:L=-1:OPENP$FORINPUTAS1:OPENP$FOROUTPUTAS2:ONCOMGOSUB92:COMON:B$="%n"+V$:GOSUB91:B$=V$+"f4":GOSUB91:B$=V$+"d"+MID$(Y$,I+1,J-I-1):W$="C":W=-1:GOSUB91:GOSUB89:BEEP:B$=V$+"u0":GOSUB91:PRINT#2,CHR$(3);
85 I=INSTR(J,Y$,"?"):IFI=0THEN34ELSEW$=MID$(Y$,I+1,1):W=-1:GOSUB89:J=I+1
86 J=J+1:A$=MID$(Y$,J,1):IFA$="^"THENPRINT#2,CHR$(13);:GOTO85ELSEIFA$="?"THEN85
87 PRINT#2,A$;:GOTO86
88 B$=V$+"h":GOSUB91:B$=A$:W$="K":W=-1:GOSUB89:IFB$=CHR$(18)THENRUNELSE60
89 A$=INKEY$:IFA$>""THENIFINSTR(CHR$(5)+CHR$(18),A$)THEN88ELSEPRINT#2,A$;
90 IFWTHEN89ELSERETURN
91 PRINT#2,LEFT$(B$,2);:CALL21274:PRINT#2," "MID$(B$,3):CALL21270,2:RETURN
92 Z$=INPUT$(1,1):PRINTZ$;:IFZ$=W$THENW=0
93 RETURN
94 PRINT"Use XMODEM protocol? ";
95 A$=INPUT$(1):IFINSTR("YyNn",A$)THENPRINTA$:CALLVARPTR(M(3)),0,VARPTR(A$):RETURNELSE95
96 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
97 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
98 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