home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / basic / baswiz18.zip / BW$BAS.ZIP / G2GET.BAS < prev    next >
BASIC Source File  |  1992-08-29  |  1KB  |  43 lines

  1. '   +----------------------------------------------------------------------+
  2. '   |                                                                      |
  3. '   |        BASWIZ  Copyright (c) 1990-1992  Thomas G. Hanlin III         |
  4. '   |                                                                      |
  5. '   |                      The BASIC Wizard's Library                      |
  6. '   |                                                                      |
  7. '   +----------------------------------------------------------------------+
  8.  
  9.    DECLARE FUNCTION G2GetPel% (BYVAL X%, BYVAL Y%)
  10.    DECLARE SUB SetBit0 (BYVAL ASeg%, BYVAL AOfs%, BitNr&, BYVAL BitVal%)
  11.  
  12.    DEFINT A-Z
  13.  
  14. SUB G2Get (XX1, YY1, XX2, YY2, Image())
  15.    IF XX1 < XX2 THEN
  16.       X1 = XX1
  17.       X2 = XX2
  18.    ELSE
  19.       X1 = XX2
  20.       X2 = XX1
  21.    END IF
  22.    IF YY1 < YY2 THEN
  23.       Y1 = YY1
  24.       Y2 = YY2
  25.    ELSE
  26.       Y1 = YY2
  27.       Y2 = YY1
  28.    END IF
  29.    L = LBOUND(Image)
  30.    REDIM Image(L TO L + (5 + (X2 - X1 + 1) * (Y2 - Y1 + 1)) \ 2)
  31.    Image(L) = X2 - X1 + 1
  32.    Image(L + 1) = Y2 - Y1 + 1
  33.    AWide = ((X2 - X1 + 8) AND &HFFF8)
  34.    ASeg = VARSEG(Image(L + 2))
  35.    AOfs = VARPTR(Image(L + 2))
  36.    FOR Y = Y1 TO Y2
  37.       FOR X = X1 TO X2
  38.          Bit = G2GetPel(X, Y)
  39.          SetBit0 ASeg, AOfs, (Y - Y1) * AWide + ((X - X1) XOR 7), Bit
  40.       NEXT
  41.    NEXT
  42. END SUB
  43.