' ****** 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