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

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