home *** CD-ROM | disk | FTP | other *** search
/ Loadstar Extras 3 / Ex3side1.d64 / rle in basic (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1990-01-01  |  884 b   |  50 lines

  1. 10 INPUT"INPUT FILE";F$:INPUT"OUT FILE";O$
  2. 30 A=49152:B=PEEK(175)*256+PEEK(174):C=51200
  3. 40 GOSUB70:B=X:GOSUB11030
  4. 50 PRINT"ORIG:"B-A:PRINT"OUT:"C-51200:GOSUB105:END
  5. 70 OPEN2,8,2,F$+",P,R":GET#2,A$,A$:X=49152
  6. 80 GET#2,A$:POKEX,ASC(A$+CHR$(0)):X=X+1:IFST=0THEN80
  7. 90 CLOSE2:RETURN
  8. 105 OPEN2,8,2,"@0:"+O$+",P,W":PRINT#2,CHR$(0)CHR$(16);:X=51200
  9. 110 PRINT#2,CHR$(PEEK(X));:X=X+1:IFX<=CTHEN110
  10. 120 CLOSE2:RETURN
  11. 11000 A=PEEK(252)*256+PEEK(251)
  12. 11010 B=PEEK(254)*256+PEEK(253)
  13. 11020 C=PEEK(250)*256+PEEK(249)
  14. 11030 I=A:D=0:E=0
  15. 11040 FORI=ATOB-1
  16. 11050 N=PEEK(I)
  17. 11060 J=I+1
  18. 11070 Q=PEEK(J)
  19. 11080 IFQ=NTHENGOSUB11120
  20. 11090 IFQ<>NTHENGOSUB11220
  21. 11100 NEXT
  22. 11102 IFDTHENGOSUB11270
  23. 11104 IFETHENGOSUB11340
  24. 11106 POKEC,0:RETURN
  25. 11110 END
  26. 11120 IFETHENGOSUB11340:REM RETURN
  27. 11130 D=D+1:REM DUPLICATE
  28. 11140 IFD=127THENGOSUB11160
  29. 11150 RETURN
  30. 11160 POKEC,D+1
  31. 11170 C=C+1
  32. 11180 POKEC,N
  33. 11190 C=C+1
  34. 11200 D=0
  35. 11210 RETURN
  36. 11220 IFDTHENGOSUB11270:RETURN
  37. 11230 E=E+1
  38. 11240 IFE=1THENF=I
  39. 11250 IFE<127THENRETURN
  40. 11260 GOSUB11320:RETURN
  41. 11270 POKEC,D+1
  42. 11280 C=C+1
  43. 11290 POKEC,N
  44. 11300 C=C+1
  45. 11310 D=0:RETURN
  46. 11320 POKEC,EOR128:C=C+1
  47. 11330 FORJ=FTOI:POKEC,PEEK(J):C=C+1:NEXT:E=0:D=0:RETURN
  48. 11340 POKEC,EOR128:C=C+1
  49. 11350 FORJ=FTOI-1:POKEC,PEEK(J):C=C+1:NEXT:E=0:D=0:RETURN
  50.