---------------------- ---------------------- /15/16/17/18/19/20/21/ ----------------------- color plane 2 /43/44/45/46/47/48/49/ ---------------------- ---------------------- /22/23/24/25/26/27/28/ ----------------------- color plane 3 /50/51/52/53/54/55/56/ ---------------------- This suggests that for the first point the color number would be formed by bytes 1, 8, 15 and 22. If the complete square were for example red (color 4) one would expect to find 0100 in 1,8,15 and 22. But as you can see in the accompanying program this doesn't happen. So I guess I'm missing something. I know you're very busy with work and all, but could you please indicate what I'm doing wrong? Here's the program I'm using: 'Experimental GETted array decoding 'Prepare screen 9 and make it red SCREEN 9 PAINT (1, 1), 4, 2 DIM FoundInteger AS INTEGER 'Coordinates of picture x1 = 1 x2 = 50 y1 = 1 y2 = 50 'Screen 9 technical data Planes = 4 BitsPerPixel = 4 'Calculate GETted array size RectHeight = ABS(y2 - y1) + 1 RectWidth = ABS(x2 - x1) + 1 ByteSize = 4 + RectHeight * Planes * INT((RectWidth * (BitsPerPixel / Planes) + 7) / 8) PicSize = INT(ByteSize / 2) IF PicSize <> ByteSize / 2 THEN PicSize = PicSize + 1 'Prepare the array and GET a red square REDIM Image(1 TO PicSize) AS INTEGER GET (1, 1)-(50, 50), Image 'As a confirmation display the red square CLS PRINT PicSize PUT (100, 100), Image 'Wait for enter key INPUT yyy$ 'Extract all points of the array, where Xp is the point number SCREEN 0 CLS FOR Xp = 1 TO RectHeight * RectWidth 'Print the number of the point which is currently 'beging decoded PRINT Xp; TAB(10); 'determine the location of this point in all color planes FOR Xsearch = Xp TO Xp + 3 * RectWidth STEP RectWidth 'Determine in which integer Xsearch is GetInteger = INT(Xsearch / 16 + .99) 'Add three for the array data (because the first 'three integers contain picture info and not data) GetInteger = GetInteger + 3 'Get that integer out of the array FoundInteger = Image(GetInteger) 'Determine byte in that integer GetByte = Xsearch DO WHILE GetByte > 16 GetByte = GetByte - 16 LOOP 'If the first byte is needed beware of the sign, a 'negative sign means the first byte is a 1, otherwise 'it's a zero IF GetByte = 1 THEN IF FoundInteger < 0 THEN PRINT "1"; ELSE PRINT "0"; END IF END IF StepCount = 1 'Now get rid of the sign to allow the next routine to 'work propperly FoundInteger = ABS(FoundInteger) 'Conversion decimal to binary and select byte GetByte FOR t = 14 TO 0 STEP -1 StepCount = StepCount + 1 IF FoundInteger - 2 ^ t >= 0 THEN FoundInteger = FoundInteger - 2 ^ t IF StepCount = GetByte THEN PRINT "1"; ELSE IF StepCount = GetByte THEN PRINT "0"; END IF NEXT t NEXT Xsearch PRINT NEXT Xp CU Bert --- GEcho 1.00 * Origin: Hotel Zeezicht (2:285/750.16) --------------- FIDO MESSAGE AREA==> TOPIC: 125 QUICK BASIC Ref: F2N00005 Date: 02/18/98 From: HARRY HICKEY Time: 02:13am \/To: JOHN ZORTMAN (Read 3 times) Subj: zmodem -- tech spec. You want a full technical specification of the ZMODEM protocol? Try this Web address -- http://pauillac.inria.fr/~doligez/zmodem/zmodem.txt The spec. is written by the Inventor of ZMODEM (as well as, I think, XMODEM & YMODEM) -- CHUCK FORSBERG. Hope this helps. --- * Origin: * My Place BBS * 28.8 V.34 * Bowie, Md * (301)805-1602 * (1:109/570) --------------- FIDO MESSAGE AREA==> TOPIC: 125 QUICK BASIC Ref: F2N00006 Date: 02/16/98 From: COR VAN DEN HOOVEN Time: 09:10pm \/To: OLE HEJLSKOV (Read 3 times) Subj: help! On (13 Feb 98) Ole Hejlskov wrote to All... OH> Is there a command in Qucikbasic 4.5 that gives you the current OH> disk-space? No, but you can use a subroutine: ' -------------------------------------------------------------------- ' $DYNAMIC DEFINT A-Z ' $INCLUDE:'\BC71\QBX.BI' ' change to your include file