home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / utility / 579 / program / procdure / tiny.lst < prev    next >
Encoding:
File List  |  1992-01-26  |  2.1 KB  |  89 lines

  1. PROCEDURE tiny(source%,destination%)
  2.   LOCAL xa%,xb%,xc%,xd%,xe%,xf%,xg%,xh%,xi%,xj%,xk%,xl%
  3.   INLINE tiny_palette%,32
  4.   FOR xl%=0 TO 31
  5.     POKE tiny_palette%+xl%,PEEK(source%+xl%+1)
  6.   NEXT xl%
  7.   xa%=PEEK(source%+33)*256+PEEK(source%+34)
  8.   xb%=source%+37
  9.   xc%=xb%+xa%
  10.   xd%=160
  11.   xe%=8
  12.   xf%=destination%
  13.   WHILE xh%<xa%
  14.     xk%=PEEK(xb%+xh%)
  15.     IF xk%=0
  16.       xk%=(PEEK(xb%+xh%+1)*256)+PEEK(xb%+xh%+2)
  17.       ADD xh%,3
  18.       xj%=PEEK(xc%+xi%)*256+PEEK(xc%+xi%+1)
  19.       ADD xi%,2
  20.       FOR xl%=1 TO xk%
  21.         DPOKE xf%+xg%,xj%
  22.         ADD xg%,xd%
  23.         IF xg%>=32000
  24.           ADD xg%,xe%
  25.           SUB xg%,32000
  26.           IF xg%>=xd%
  27.             ADD xg%,2
  28.             SUB xg%,xd%
  29.           ENDIF
  30.         ENDIF
  31.       NEXT xl%
  32.     ELSE
  33.       IF xk%=1
  34.         xk%=(PEEK(xb%+xh%+1)*256)+PEEK(xb%+xh%+2)
  35.         ADD xh%,3
  36.         FOR xl%=1 TO xk%
  37.           xj%=PEEK(xc%+xi%)*256+PEEK(xc%+xi%+1)
  38.           ADD xi%,2
  39.           DPOKE xf%+xg%,xj%
  40.           ADD xg%,xd%
  41.           IF xg%>=32000
  42.             ADD xg%,xe%
  43.             SUB xg%,32000
  44.             IF xg%>=xd%
  45.               ADD xg%,2
  46.               SUB xg%,xd%
  47.             ENDIF
  48.           ENDIF
  49.         NEXT xl%
  50.       ELSE
  51.         IF xk%<128
  52.           INC xh%
  53.           xj%=PEEK(xc%+xi%)*256+PEEK(xc%+xi%+1)
  54.           ADD xi%,2
  55.           FOR xl%=1 TO xk%
  56.             DPOKE xf%+xg%,xj%
  57.             ADD xg%,xd%
  58.             IF xg%>=32000
  59.               ADD xg%,xe%
  60.               SUB xg%,32000
  61.               IF xg%>=xd%
  62.                 ADD xg%,2
  63.                 SUB xg%,xd%
  64.               ENDIF
  65.             ENDIF
  66.           NEXT xl%
  67.         ELSE
  68.           INC xh%
  69.           xk%=256-xk%
  70.           FOR xl%=1 TO xk%
  71.             xj%=PEEK(xc%+xi%)*256+PEEK(xc%+xi%+1)
  72.             ADD xi%,2
  73.             DPOKE xf%+xg%,xj%
  74.             ADD xg%,xd%
  75.             IF xg%>=32000
  76.               ADD xg%,xe%
  77.               SUB xg%,32000
  78.               IF xg%>=xd%
  79.                 ADD xg%,2
  80.                 SUB xg%,xd%
  81.               ENDIF
  82.             ENDIF
  83.           NEXT xl%
  84.         ENDIF
  85.       ENDIF
  86.     ENDIF
  87.   WEND
  88. RETURN
  89.