' ****** START INCLUDE Rgba Core:::RgbaBox(x1%, y1%, x2%, y2%, c&, a~%%) ****** DIM r0%, g0%, b0%, a0%, r1%, g1%, b1%, a1% DIM RgbaAreaBorder& = &h1 SUB SetRgb0(x#,y#) DIM c& = (POINT(x#,y#)) r0% = _RED(c&) g0% = _GREEN(c&) b0% = _BLUE(c&) END SUB SUB SetRgb1(c&,a~%%) r1% = _RED(c&) g1% = _GREEN(c&) b1% = _BLUE(c&) a0% = 255 - a~%% a1% = a~%% END SUB SUB RgbaCorePset(x#,y#) PSET(x#,y#), _RGB( [{ (r0%*a0%)+(r1%*a1%) }/255], [{ (g0%*a0%)+(g1%*a1%) }/255], [{ (b0%*a0%)+(b1%*a1%) }/255] ) END SUB SUB RgbaBox(x1#, y1#, x2#, y2#, c&, a~%%) DIM x#, y# : SetRgb1(c&, a~%%) FOR x# = FIX(MAX(MIN(x1#,x2#),0)) TO FIX(MIN(MAX(x1#,x2#), xMAX)) FOR y# = FIX(MAX(MIN(y1#,y2#),0)) TO FIX(MIN(MAX(y1#,y2#), yMAX)) SetRgb0(x#,y#) : RgbaCorePset(x#,y#) NEXT y# : NEXT x# END SUB ' ****** END INCLUDE Rgba Core:::RgbaBox(x1%, y1%, x2%, y2%, c&, a~%%) ******' This program exported from BASIC Anywhere Machine (Version [5.2.3].[2024.09.09.00.00]) on 2025.07.05 at 03:12 (Coordinated Universal Time) ' This program is a port and mod, by Charlie Veniot, of the Apple II "Fireworks" program by Lee Fastenau ' fournd on the "APPLE II PROGRAMS" website (https://www.apple2programs.com/programs/2019/01/13/fireworks.html) SCREEN _NEWIMAGE( 380, 270, 32 ) _INITAUDIO DIM crgb%(1 TO 3) DEF FNC = INT(RND*76+170) 🎇_launch_a_firework: X = INT( RND * ( XMAX - 80 ) + 40 ) crgb%(1) = INT( RND * 2 ) crgb%(2) = INT( RND * 2 ) crgb%(3) = INT( RND * 2 ) IF crgb%(1) + crgb%(2) + crgb%(3) = 0 THEN crgb%( INT(RND*3+1) ) = 1 crgb%(1) *= FNC() ' INT(RND*56+200) crgb%(2) *= FNC() ' INT(RND*56+200) crgb%(3) *= FNC() ' INT(RND*56+200) this_c = _RGB( crgb%(1), crgb%(2), crgb%(3) ) min_y = INT( RND * ( YMAX - 80 ) + 40 ) 'INT( RND * 100 ) + 60 max_y = min_y + 70 ' 261 FOR Y = max_y TO min_y STEP - 1 COLOR ABS( _RGB(105,105,105 ) * ( Y > min_y + 29 ) ) PLOT ( X , Y ) COLOR 0 PLOT ( X, Y + 30 ) PLOT ( X, Y + INT( RND * 15 + 10 ) ) SLEEP 0.001 NEXT RgbaBox(0,0,xmax, ymax, 0, 22 ) : SCROLL (0,0) TO (XMAX, YMAX), 0, 1 SOUND 25, 1/5 max_r = INT( RND * 60 + 10) r_adj = RND * 2 FOR R = 0 TO max_r STEP 0.6 A = SIN(R+r_adj) * R B = COS(R+r_adj) * R PLOT ( X + A, min_y - 20 + B ), this_c SLEEP 0.001 NEXT GOTO 🎇_launch_a_firework