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

  1. 1 'XMODEM.200 - Rick Perry's XMODEM.100 modified for M200 by Jim Irwin (5/6/85)
  2. 10 GOTO670
  3. 20 T=0
  4. 30 CALLVARPTR(M(16)),0,VARPTR(X(0)):IFX(0)THENRETURNELSET=T+1:IFT<66*STHEN30ELSERETURN
  5. 40 CALLVARPTR(M(21)),0,VARPTR(X):IFQTHENPRINTCHR$(X);ELSEPRINTCHR$(T(X));
  6. 50 IFDTHENN=N+1:Z(N)=X:IFN>255THEN70
  7. 60 RETURN
  8. 70 S=0:GOSUB620:FORJ=0TON:PRINT#3,CHR$(Z(J));:NEXT:N=-1:GOTO620
  9. 80 IFLTHENCLOSE1,2:OPENQ$FORINPUTAS1:OPENQ$FOROUTPUTAS2ELSEA$="8N1DNN"+N$:R=6429:GOSUB560
  10. 90 A=256:B=1:GOSUB540:ONERRORGOTO290:IFETHEN180
  11. 100 S=1:GOSUB20:IFX(0)THEN100
  12. 110 IFINKEY$=G$THEN300ELSEPRINT#2,CHR$(21);:PRINT"X";:S=10:GOSUB20:IFX(0)THEN130ELSE110
  13. 120 IFINKEY$=G$THEN300ELSEPRINT#2,CHR$(6);:PRINT".";:S=10:GOSUB20:IFX(0)=0THEN110
  14. 130 IFX(1)=1THEN140ELSEIFX(1)=4THENPRINT#2,CHR$(6);:GOTO280ELSEIFX(1)=24THEN300ELSE100
  15. 140 CALLVARPTR(M(24)),0,VARPTR(Z(0)):IFZ(0)=0THEN100ELSEIFZ(2)<>(255ANDNOTZ(1))THEN100ELSEIFZ(1)=ATHEN120ELSEIFZ(1)<>BTHEN300
  16. 150 X=0:FORN=3TO130:X=X+Z(N):NEXT:X=XAND255:IFX<>Z(131)THEN100
  17. 160 FORN=3TO130:IFZ(N)=26THENN=130ELSEPRINT#3,CHR$(Z(N));
  18. 170 NEXT:A=B:B=B+1AND255:GOTO120
  19. 180 GOSUB250
  20. 190 PRINT"?";
  21. 200 IFINKEY$=G$THEN300ELSES=10:GOSUB20:IFX(0)=0THEN190ELSEIFX(1)=6THEN240ELSEIFX(1)=21THEN210ELSEIFX(1)=24THEN300ELSE190
  22. 210 PRINT"X";
  23. 220 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. 230 S=0:GOSUB20:IFX(0)THEN230ELSE200
  25. 240 IFN=0THEN280ELSEPRINT".";:GOSUB250:GOTO220
  26. 250 A=A+1AND255:N=0:IFNOTETHENRETURN
  27. 260 FORN=1TO128:IFETHENIFNOTEOF(3)THENZ(N)=ASC(INPUT$(1,3))ELSEE=0:Z(N)=26ELSEZ(N)=0
  28. 270 NEXT:RETURN
  29. 280 CLOSE3:PRINT:PRINT"File transfer complete.":BEEP:GOTO320
  30. 290 RESUME300
  31. 300 SCREEN,0:PRINT:PRINT"ABORT":SOUND9394,9:CLOSE3
  32. 310 S=1:GOSUB20:IFX(0)THEN310ELSEPRINT#2,CHR$(24);
  33. 320 IFLTHENCLOSE:OPENP$FORINPUTAS1:OPENP$FOROUTPUTAS2ELSEA$="7I1ENN"+N$:R=6429:GOSUB560
  34. 330 POKE-738,0:D=0:ONERRORGOTO450:POKE61234,64:A$="PrevDown Up TermBrk Fre Dir Bye ":GOSUB530
  35. 340 CALL20328:ONCOMGOSUB40:ONMDMGOSUB40:S=-1:GOSUB620:K=0
  36. 350 ONKGOTO400,460,570,430:A$=INKEY$:IFINSTR(N$,A$)=0THENA=INSTR(F$,A$):IFATHENONAGOSUB610,370,380,570,650,660,640,390ELSEIFA$=CHR$(7)THENQ=NOTQELSEPRINT#2,A$;
  37. 360 GOTO350
  38. 370 IFDTHENK=4:RETURNELSEK=1:RETURN
  39. 380 IFDTHENRETURNELSEK=2:RETURN
  40. 390 K=3:RETURN
  41. 400 COMSTOP:MDMSTOP:SCREEN,0:PRINT:LINEINPUT"File to Download? ";Y$:IFINSTR(Y$,":")<4THENPRINT"Append? ";:GOSUB940:IFA$="Y"THENOPENY$FORAPPENDAS3:GOTO420
  42. 410 OPENY$FOROUTPUTAS3
  43. 420 GOSUB930:IFA$="Y"THENE=0:GOTO80ELSEA$="Prev@@@@    TermBrk Fre Dir Bye ":GOSUB530:N=-1:D=-1:GOTO340
  44. 430 SCREEN,0:D=0:IFN>-1THENGOSUB70
  45. 440 S=0:GOSUB620:CLOSE3:GOTO330
  46. 450 PRINT" aborted":IFERR=22THENSCREEN,1:RESUME340ELSECLOSE3:RESUME330
  47. 460 COMSTOP:MDMSTOP:SCREEN,0:PRINT:LINEINPUT"File to Upload? ";Y$:OPENY$FORINPUTAS3:GOSUB930:IFA$="Y"THENE=-1:GOTO80ELSEW=1:INPUT"Width";W:W=W-1:T=W-9:C=0:S=0:GOSUB540:GOSUB500
  48. 470 IFINKEY$=G$THENPRINT:ERROR7ELSEIFN<0THENCLOSE3:BEEP:GOTO330ELSEGOSUB480:GOTO470
  49. 480 J=J+1:IFJ>NTHEN500ELSEPRINT#2,CHR$(Z(J));:IFWTHENIFZ(J)=13THENC=0ELSEC=C+1:IFT<CANDZ(J)=32ORC>WTHENC=0:PRINT#2,CHR$(13);
  50. 490 RETURN
  51. 500 J=-1:N=-1:IFEOF(3)THENRETURNELSEGOSUB620
  52. 510 N=N+1:Z(N)=ASC(INPUT$(1,3)):IFZ(N)=10THENN=N-1
  53. 520 IFN>255OREOF(3)THEN620ELSE510
  54. 530 FORJ=4TO32STEP4:MID$(A$,J,1)=CHR$(ASC(MID$(A$,J))OR128):NEXT:GOTO550
  55. 540 A$=STRING$(7,128)+"Abr"+CHR$(244)
  56. 550 R=20420
  57. 560 V=VARPTR(A$):CALLR,60,PEEK(V+1)+256*PEEK(V+2):RETURN
  58. 570 COMSTOP:MDMSTOP:SCREEN,0:PRINT:IFK=3THENPRINT"Disconnect? ";ELSEPRINT"Telcom? ";
  59. 580 GOSUB940:IFA$<>"Y"THENERRORELSEIFDANDN>-1THENGOSUB70:CLOSE3
  60. 590 IFK=3THENMAXFILES=2:MENUELSEIFLTHENMAXFILES=2:CLEAR0
  61. 600 CALL25483
  62. 610 S=0:GOSUB620:CALL25757
  63. 620 S=NOTS:IFSTHENCOMSTOP:MDMSTOP:PRINT#2,CHR$(19);:CALLVARPTR(M(59)),100ELSEPRINT#2,CHR$(17);:MDMON:COMON
  64. 630 RETURN
  65. 640 PRINT:FILES:RETURN
  66. 650 STOP:RETURN
  67. 660 PRINT:PRINTFRE(0)"Bytes Free":RETURN
  68. 670 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. 680 N$=CHR$(0):V$=CHR$(22):G$=CHR$(255):F$="":FORN=248TO255:F$=F$+CHR$(N):NEXT:POKE61234,64:CALL21499:POKE61234,0:CALL33762
  70. 690 P$="com:57i1eNN":Q$="com:58n1dNN":CLOSE:OPEN"adrs"FORINPUTAS1:LINEINPUT"Find:";A$:CALLVARPTR(M(3)),0,VARPTR(A$):IFA$="MENU"THEN590ELSEIFA$="DIAL"THEN770
  71. 700 IFEOF(1)THEN690ELSELINEINPUT#1,Y$:I=INSTR(Y$,":"):B$=LEFT$(Y$,I):CALLVARPTR(M(3)),0,VARPTR(B$):IFINSTR(B$,A$)=0THEN700ELSEJ=INSTR(I,Y$,"<"):IFJ=0THEN700
  72. 710 PRINTLEFT$(Y$,J)">";:Z$=INPUT$(1):CALLVARPTR(M(3)),0,VARPTR(Z$):PRINT:ONINSTR(CHR$(27)+"3SM",Z$)GOTO690,790,790,720:GOTO700
  73. 720 CLOSE:L=0:A$="7I1ENN"+N$:R=6429:GOSUB560:A$=MID$(Y$,I+1,J-I-1)+N$
  74. 730 PRINT"Calling "LEFT$(Y$,I);:R=25131:GOSUB560:CALL25010:PRINT:N=0
  75. 740 N=N+1:CALLVARPTR(M(0)),0,VARPTR(X):IFX=0THEN780ELSEB$=INKEY$:IFB$=""ANDN<1000THEN740
  76. 750 CALL25018:IFB$>""THEN690ELSEPRINT"NO CARRIER":N=0
  77. 760 N=N+1:CALL25102:IFINKEY$>""THEN690ELSEIFN<9THEN760ELSE730
  78. 770 CLOSE:Y$="":J=1:L=-1:ONINSTR(" 33SsMm",INPUT$(1))\2GOTO820,320,780:GOTO690
  79. 780 L=0:PRINT"CONNECT":BEEP:OPEN"mdm:7i1eNN"FORINPUTAS1:OPEN"mdm:7i1eNN"FOROUTPUTAS2:A$=MID$(Y$,J)+N$:R=25250:GOSUB560:GOTO330
  80. 790 CLOSE:IFZ$="S"THENB$="com:37i1eNN"ELSEB$="com:57i1eNN"
  81. 800 OPENB$FOROUTPUTAS2:B$="%n"+V$:GOSUB900:IFZ$="S"THENB$="2"ELSEB$="1"
  82. 810 B$=V$+"s"+B$:GOSUB900:IFZ$="S"THEN830
  83. 820 P$="com:37i1eNN":Q$="com:38n1dNN":IFY$=""THEN320
  84. 830 CLOSE:L=-1:OPENP$FORINPUTAS1:OPENP$FOROUTPUTAS2:ONCOMGOSUB910:COMON:B$="%n"+V$:GOSUB900:B$=V$+"f4":GOSUB900:B$=V$+"d"+MID$(Y$,I+1,J-I-1):W$="C":W=-1:GOSUB900:GOSUB880:BEEP:B$=V$+"u0":GOSUB900:PRINT#2,CHR$(3);
  85. 840 I=INSTR(J,Y$,"?"):IFI=0THEN330ELSEW$=MID$(Y$,I+1,1):W=-1:GOSUB880:J=I+1
  86. 850 J=J+1:A$=MID$(Y$,J,1):IFA$="^"THENPRINT#2,CHR$(13);:GOTO840ELSEIFA$="?"THEN840
  87. 860 PRINT#2,A$;:GOTO850
  88. 870 B$=V$+"h":GOSUB900:B$=A$:W$="K":W=-1:GOSUB880:IFB$=CHR$(18)THENRUNELSE590
  89. 880 A$=INKEY$:IFA$>""THENIFINSTR(CHR$(5)+CHR$(18),A$)THEN870ELSEPRINT#2,A$;
  90. 890 IFWTHEN880ELSERETURN
  91. 900 PRINT#2,LEFT$(B$,2);:CALL25112:PRINT#2," "MID$(B$,3):CALL25108,2:RETURN
  92. 910 Z$=INPUT$(1,1):PRINTZ$;:IFZ$=W$THENW=0
  93. 920 RETURN
  94. 930 PRINT"Use XMODEM protocol? ";
  95. 940 A$=INPUT$(1):IFINSTR("YyNn",A$)THENPRINTA$:CALLVARPTR(M(3)),0,VARPTR(A$):RETURNELSE940
  96. 950 DATA19149,30599,201,-18562,20424,32291,26147,4463,2,15821,6463,6865,5325,4624,3347,-5688,54,2253,-14203,9012,35,6605,30597,201,54,23892,15821,1599
  97. 960 DATA-14973,8677,7282,2253,-15995,-14907,483,39,-7415,-15936,31787,-15947,-14907,483,7,-7415,-15936,-15935,-13887,6605,4997,4627,-15903,-15099,485,4,-6903,-7744,-7711,13537,201,-15537,25114
  98. 970 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
  99.