#INCLUDE "c:\b\pb\winapi\win32api.inc" TYPE blok x AS LONG xx AS LONG y AS LONG yy AS LONG b AS LONG 'width l AS LONG 'length s AS LONG 'surface END TYPE FUNCTION PBMAIN LOCAL f AS LONG LOCAL i AS LONG LOCAL j AS LONG LOCAL pdat AS BYTE PTR LOCAL pdat1 AS BYTE PTR LOCAL pdat2 AS BYTE PTR LOCAL hw AS LONG LOCAL b AS STRING LOCAL accum AS LONG LOCAL lp AS LONG 'loop cntr DIM bl(50) AS LOCAL blok DIM dat(875) AS LOCAL STRING * 127 DIALOG NEW 0, "working..", , , 200, 30 TO hw CONTROL ADD LABEL, hw, 1, "", 1,1, 150, 12 DIALOG SHOW MODELESS hw f = FREEFILE OPEN "december1952raw_2_.dat" FOR BINARY ACCESS READ LOCK WRITE AS f GET #f, , dat() CLOSE #f '2 neighbours 1 > set 1 FOR lp = 0 TO 50 FOR i = LBOUND(dat) TO UBOUND(dat) - 2 CONTROL SET TEXT hw, 1, STR$(lp) + " / 20 ." + STR$(i) + " / " + STR$(UBOUND(dat)) DIALOG DOEVENTS DIALOG DOEVENTS DIALOG DOEVENTS pdat = VARPTR(dat(i)) pdat1 = VARPTR(dat(i + 1)) pdat2 = VARPTR(dat(i + 2)) 'examine space around pdat1, j+1 FOR j = 0 TO (127 * 8) - 1 - 2 IF ISFALSE BIT(@pdat1, j + 1) THEN accum = 0 accum = BIT(@pdat1, j) + BIT(@pdat1, j + 2) + BIT(@pdat, j + 1) + BIT(@pdat2, j + 1) IF accum > 1 THEN BIT SET @pdat1, j + 1 END IF NEXT NEXT NEXT f = FREEFILE OPEN "december1952raw_3_.dat" FOR BINARY ACCESS WRITE LOCK WRITE AS f PUT #f, ,dat() CLOSE f f = FREEFILE OPEN "december1952dump.asc" FOR BINARY ACCESS WRITE LOCK WRITE AS f FOR i = 0 TO UBOUND(dat) CONTROL SET TEXT hw, 1, STR$(i) + " / " + STR$(UBOUND(dat)) pdat = VARPTR(dat(i)) FOR j = 0 TO (127 * 8) - 1 - 2 IF ISFALSE j MOD 200 THEN DIALOG DOEVENTS b = b + TRIM$(STR$(BIT(@pdat, j))) NEXT b = b+ $CRLF PUT #f,, b b = "" NEXT CLOSE f END FUNCTION