REM Bluey REM Works with BB4W & BBCSDL REM Relatively low CPU usage ON ERROR PROCerror WinW% = 360 WinH% = 640 VDU 23, 22, WinW%; WinH%; 8, 16, 16, 0 : OFF PRINT "Please wait..." REM Create a 256-colour (8 bits-per-pixel) bitmap to render graphics on: bmpSz% = 54 + 4*256 + WinW%*WinH% + 2 DIM bmp% bmpSz%+6 bmp% = ((bmp% + 3) AND -4) + 2 bmp%?0 = ASC"B" bmp%?1 = ASC"M" bmp%!2 = bmpSz% bmp%!10 = 1078 bmp%!14 = 40 bmp%!18 = WinW% bmp%!22 = WinH% bmp%?26 = 1 bmp%?28 = 8 bmp%!34 = WinW%*WinH% bmp$ = STR$~bmp% REM Set up colour palette: FOR I% = 0 TO 255 r& = 0.125 * I% g& = 0.25 * I% b% = 1.5 * I% IF b% > 255 b% = 255 bmp%!(54 + 4*I%) = b% + (g&<<8) + (r&<<16) NEXT I% REM Generate pattern: A% = bmp% + 1078 W% = WinW% - 1 H% = WinH% - 1 FOR Y% = 0 TO WinH%-1 a = Y%/H% FOR X% = 0 TO WinW%-1 b = X%/W% A%?(Y%*360+X%) = 255*(SIN(2*PI*a-5*PI*SQRb+3*PI*a^2) + COS(3*PI*b+9*PI*SQRa-2*PI*b^2)) NEXT NEXT A% = bmp% + 54 B% = A% + 1024 REPEAT OSCLI "MDISPLAY " + bmp$ T% = !A% FOR I% = A% TO B%-5 STEP 4 !I% = !(I%+4) NEXT !(B%-4) = T% WAIT 1 UNTIL FALSE END DEF PROCerror IF ERR=17 AND INKEY$(-256)<>"W" THEN CHAIN @lib$+"../examples/tools/touchide" OSCLI "REFRESH ON" : CLS : ON : SOUND 1, -15, 200, 3 COLOUR 15, 255, 255, 255 : COLOUR 15 PRINT '" " + REPORT$ + " at line " + STR$ERL COLOUR 15, 200, 200, 200 PRINT ''" Closing in 3 seconds..."; WAIT 300 QUIT ENDPROC
|
REM Tutti Fruity REM Works with BB4W & BBCSDL REM Relatively low CPU usage ON ERROR PROCerror WinW% = 360 WinH% = 640 VDU 23, 22, WinW%; WinH%; 8, 16, 16, 0 : OFF PRINT "Please wait..." REM Create a 256-colour (8 bits-per-pixel) bitmap to render graphics on: bmpSz% = 54 + 4*256 + WinW%*WinH% + 2 DIM bmp% bmpSz%+6 bmp% = ((bmp% + 3) AND -4) + 2 bmp%?0 = ASC"B" bmp%?1 = ASC"M" bmp%!2 = bmpSz% bmp%!10 = 1078 bmp%!14 = 40 bmp%!18 = WinW% bmp%!22 = WinH% bmp%?26 = 1 bmp%?28 = 8 bmp%!34 = WinW%*WinH% bmp$ = STR$~bmp% REM Set up colour palette: FOR I% = 0 TO 255 k = PI*I%/255 r& = 128 + 127*SIN(k) g& = 128 + 127*COS(2*k) b% = 128 + 127*SIN(4*k) IF b% > 255 b% = 255 bmp%!(54 + 4*I%) = b% + (g&<<8) + (r&<<16) NEXT I% REM Generate pattern: A% = bmp% + 1078 W% = WinW% - 1 H% = WinH% - 1 FOR Y% = 0 TO WinH%-1 a = Y%/H% FOR X% = 0 TO WinW%-1 b = X%/W% A%?(Y%*360+X%) = 255*(SIN(PI*a-3*PI*b+5*PI*a^3) + COS(2*PI*b+3*PI*a-4*PI*b^4)) NEXT NEXT A% = bmp% + 54 B% = A% + 1024 REPEAT OSCLI "MDISPLAY " + bmp$ T% = !A% FOR I% = A% TO B%-5 STEP 4 !I% = !(I%+4) NEXT !(B%-4) = T% WAIT 1 UNTIL FALSE END DEF PROCerror IF ERR=17 AND INKEY$(-256)<>"W" THEN CHAIN @lib$+"../examples/tools/touchide" OSCLI "REFRESH ON" : CLS : ON : SOUND 1, -15, 200, 3 COLOUR 15, 255, 255, 255 : COLOUR 15 PRINT '" " + REPORT$ + " at line " + STR$ERL COLOUR 15, 200, 200, 200 PRINT ''" Closing in 3 seconds..."; WAIT 300 QUIT ENDPROC