Width% = 200 Height% = 200 DIM out&(Width%-1, Height%-1, 2) VDU 23,22,Width%;Height%;8,16,16,128 *DISPLAY Lena OFF DIM filter%(2, 2) filter%() = -1, -1, -1, -1, 12, -1, -1, -1, -1 REM Do the convolution: FOR Y% = 1 TO Height%-2 FOR X% = 1 TO Width%-2 R% = 0 : G% = 0 : B% = 0 FOR I% = -1 TO 1 FOR J% = -1 TO 1 C% = TINT((X%+I%)*2, (Y%+J%)*2) F% = filter%(I%+1,J%+1) R% += F% * (C% AND &FF) G% += F% * (C% >> 8 AND &FF) B% += F% * (C% >> 16) NEXT NEXT IF R% < 0 R% = 0 ELSE IF R% > 1020 R% = 1020 IF G% < 0 G% = 0 ELSE IF G% > 1020 G% = 1020 IF B% < 0 B% = 0 ELSE IF B% > 1020 B% = 1020 out&(X%, Y%, 0) = R% / 4 + 0.5 out&(X%, Y%, 1) = G% / 4 + 0.5 out&(X%, Y%, 2) = B% / 4 + 0.5 NEXT NEXT Y% REM Display: GCOL 1 FOR Y% = 0 TO Height%-1 FOR X% = 0 TO Width%-1 COLOUR 1, out&(X%,Y%,0), out&(X%,Y%,1), out&(X%,Y%,2) LINE X%*2,Y%*2,X%*2,Y%*2 NEXT NEXT Y% REPEAT WAIT 1 UNTIL FALSE