DECLARE SUB setpal () DECLARE SUB showpic1 () DECLARE SUB filter () DEFINT I-N 'low-pass filter 'used to blur vertically 'then horizontally SCREEN 12 VIEW (160, 80)-(480, 400), , 12 WINDOW (0, 0)-(64, 64) CONST grey0 = 65536 + 256 + 1 DIM SHARED pic1(63, 63) AS INTEGER, pic2(63, 63) AS INTEGER CONST k1 = 1024 CONST c1 = k1 / 16 DIM SHARED filt(-1 TO 1, -1 TO 1) FOR i = -1 TO 1 FOR j = -1 TO 1 READ filt(i, j) NEXT NEXT DATA 1, -2, 1 DATA -2, 4, -2 DATA 1, -2, 1 setpal RANDOMIZE TIMER FOR i = 0 TO 63 'Diamond on shaded background FOR j = 0 TO 63 k = j - ((ABS(i - 32) + ABS(j - 32)) < 16) * 16 pic1(i, j) = k NEXT NEXT showpic1 filter SUB filter FOR i = 1 TO 62 FOR j = 1 TO 62 m = 0 FOR k = -1 TO 1 FOR l = -1 TO 1 m = m + pic1(i + k, j + l) * filt(k, l) NEXT NEXT pic2(i, j) = m / 8 + 8 LINE (i, j)-STEP(1, 1), pic2(i, j), BF NEXT NEXT END SUB SUB setpal FOR i = 1 TO 15 PALETTE i, 4 * i * grey0 NEXT END SUB SUB showpic1 FOR i = 0 TO 63 FOR j = 0 TO 63 LINE (i, j)-STEP(1, 1), pic1(i, j) \ 4, BF NEXT NEXT END SUB