
countdown.pbf
Code: Select all
Enumeration FormWindow
#Dlg1
EndEnumeration
Enumeration FormGadget
#frameDuration
#txtD
#txtH
#txtM
#txtS
#lblD
#lblH
#lblM
#lblS
#btnSet
#imgCount
#chkLoop
#chkBeep
EndEnumeration
Procedure OpenDlg1(x = 0, y = 0, width = 320, height = 180)
OpenWindow(#Dlg1, x, y, width, height, "Countdown Timer", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
FrameGadget(#frameDuration, 16, 20, 288, 80, "Duration")
StringGadget(#txtD, 32, 60, 24, 20, "0", #PB_String_Numeric)
StringGadget(#txtH, 64, 60, 24, 20, "0", #PB_String_Numeric)
StringGadget(#txtM, 96, 60, 24, 20, "0", #PB_String_Numeric)
StringGadget(#txtS, 128, 60, 24, 20, "0", #PB_String_Numeric)
TextGadget(#lblD, 32, 40, 24, 20, "D:", #PB_Text_Center)
TextGadget(#lblH, 64, 40, 24, 20, "H:", #PB_Text_Center)
TextGadget(#lblM, 96, 40, 24, 20, "M:", #PB_Text_Center)
TextGadget(#lblS, 128, 40, 24, 20, "S:", #PB_Text_Center)
ButtonGadget(#btnSet, 164, 48, 64, 36, "Set")
ImageGadget(#imgCount, 16, 112, 288, 52, 0, #PB_Image_Border)
CheckBoxGadget(#chkLoop, 240, 46, 62, 20, "Loop")
CheckBoxGadget(#chkBeep, 240, 68, 62, 20, "Beep")
EndProcedure
Code: Select all
XIncludeFile("countdown.pbf")
EnableExplicit
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
#FONT$ = "Impact"
CompilerElseIf #PB_Compiler_OS = #PB_OS_Linux
#FONT$ = "Monospace"
CompilerElseIf #PB_Compiler_OS = #PB_OS_MacOS
#FONT$ = "Monaco"
CompilerEndIf
#FONTSIZE = 18
#FONTSTYLE = #PB_Font_Bold
#USEWAV = 1 ;1=beep.wav, 0=beep API (tone)
Global gBeep, gLoop, ghFont, gDurationSecs.q, gOrigDuration.q, hWAV
#Timer1=1
#ImgWidth = 288
#ImgHeight = 52
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
Procedure Beep(freq.l, duration.l)
Beep_(freq, duration)
EndProcedure
CompilerElse
#O_RDONLY = 0
#KDMKTONE = $4B30
Procedure Beep(freq.l,duration.l)
Protected fd.i, res.l
fd = open_("/dev/console",#O_RDONLY,0);
If (freq > 0)
res = (duration << 16) + (1193180/freq);
ioctl_(fd,#KDMKTONE,res) ;
EndIf
;usleep_(duration*1000)
Delay(duration)
close_(fd);
EndProcedure
CompilerEndIf
Procedure ShowText(txt.s, rgbcolor.i)
Protected x,y
Static hImg
If hImg: FreeImage(hImg): hImg = 0: EndIf
hImg = CreateImage(#PB_Any, #ImgWidth, #ImgHeight, 24, RGB(200,200,200))
If hImg
If StartDrawing(ImageOutput(hImg))
DrawingFont(FontID(ghFont))
DrawingMode(#PB_2DDrawing_Transparent)
x = #ImgWidth: y = #ImgHeight
DrawText(x/2 - (TextWidth(txt)/2), y/2 - (TextHeight(txt)/2), txt, rgbcolor)
StopDrawing()
SetGadgetState(#imgCount, ImageID(hImg))
EndIf
EndIf
EndProcedure
Procedure ShowReady()
ShowText("Ready", RGB(0,100,0))
EndProcedure
Procedure.s Plural(value, txt.s)
If value <> 1: txt+"s": EndIf
ProcedureReturn txt
EndProcedure
Procedure ThreadBeep(threadid)
If hWAV
PlaySound(hWAV)
Else
Beep(800, 500)
EndIf
EndProcedure
Procedure DisplayTimeLeft()
Protected iDays, iHrs, iMins, iSecs
iSecs = gDurationSecs
iDays = gDurationSecs / (60 * 60 * 24)
iSecs - iDays * (60 * 60 * 24)
iHrs = iSecs / (60 * 60)
iSecs - iHrs * (60 * 60)
iMins = iSecs / 60
iSecs - (iMins * 60)
If gDurationSecs => 86400 ;1day
ShowText(Str(iDays) + Plural(iDays," day") + " " + Str(iHrs) + Plural(iHrs," hr") + " " + Str(iMins) + Plural(iMins," min"), RGB(0,0,255))
ElseIf gDurationSecs => 3600 ;1hr
ShowText(Str(iHrs) + Plural(iHrs," hr") + " " + Str(iMins) + Plural(iMins," min") + " " + Str(iSecs) + Plural(iSecs," sec"), RGB(0,0,255))
ElseIf gDurationSecs => 60 ;1min
ShowText(Str(iMins) + Plural(iMins," min") + " " + Str(iSecs) + Plural(iSecs," sec"), RGB(0,0,255))
Else
If gDurationSecs = 0
ShowText("!!! TIME !!!", RGB($FF,$00,$00)) ;red
ElseIf gDurationSecs <= 10
ShowText(Str(gDurationSecs) + Plural(gDurationSecs, " second"), RGB($FF,$7E,$00)) ;orange
Else
ShowText(Str(gDurationSecs) + Plural(gDurationSecs, " second"), RGB(0,0,255)) ;blue
EndIf
EndIf
EndProcedure
Procedure StopTimer()
gDurationSecs = 0
SetGadgetText(#btnSet, "Set")
RemoveWindowTimer(#Dlg1, #Timer1)
EndProcedure
Procedure SetTimerDuration()
Protected iDays.q, iHrs.q, iMins.q, iSecs.q
iDays = Val(GetGadgetText(#txtD))
iHrs = Val(GetGadgetText(#txtH))
iMins = Val(GetGadgetText(#txtM))
iSecs = Val(GetGadgetText(#txtS))
gDurationSecs = iSecs + (iMins*60) + (iHrs*60*60) + (iDays*60*60*24) + 1
gOrigDuration = gDurationSecs
EndProcedure
Procedure DecrementTimer()
gDurationSecs - 1
If gDurationSecs = 0
DisplayTimeLeft()
If gLoop = 0
StopTimer()
Else
SetTimerDuration()
EndIf
If gBeep
CreateThread(@ThreadBeep(), 0)
EndIf
Else
DisplayTimeLeft()
EndIf
EndProcedure
Procedure chkBeep(evt)
gBeep = GetGadgetState(#chkBeep)
EndProcedure
Procedure chkLoop(evt)
gLoop = GetGadgetState(#chkLoop)
EndProcedure
Procedure btnSet(evt)
If gDurationSecs = 0 ;Stopped
SetGadgetText(#btnSet, "Stop")
SetTimerDuration()
AddWindowTimer(#Dlg1, #Timer1, 1000)
DecrementTimer()
Else ;Started
StopTimer()
ShowReady()
EndIf
EndProcedure
If #USEWAV = 1
Define hFile = CreateFile(#PB_Any, GetPathPart(ProgramFilename()) + "beep.wav")
WriteData(hFile, ?BEEP_WAV, ?BEEP_WAV_END - ?BEEP_WAV)
CloseFile(hFile)
InitSound()
hWAV = LoadSound(#PB_Any, GetPathPart(ProgramFilename()) + "beep.wav")
EndIf
OpenDlg1()
ghFont = LoadFont(#PB_Any, #FONT$, #FONTSIZE, #FONTSTYLE)
ShowReady()
Define event
Repeat
event = WaitWindowEvent()
Select event
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Timer
If EventTimer() = #Timer1
DecrementTimer()
EndIf
Case #PB_Event_Gadget
Select EventGadget()
Case #btnSet
btnSet(EventType())
Case #chkLoop
chkLoop(EventType())
Case #chkBeep
chkBeep(EventType())
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow
End
DataSection
BEEP_WAV: ;beep.wav (2520 bytes)
Data.b $52,$49,$46,$46,$D0,$09,$00,$00,$57,$41,$56,$45,$66,$6D,$74,$20,$10,$00,$00,$00,$01,$00,$01,$00,$11,$2B,$00,$00,$11,$2B,$00,$00
Data.b $01,$00,$08,$00,$64,$61,$74,$61,$53,$09,$00,$00,$7F,$80,$86,$87,$77,$77,$84,$78,$69,$87,$95,$78,$73,$8B,$9D,$88,$71,$8C,$79,$57
Data.b $7B,$82,$72,$84,$9C,$A0,$82,$65,$86,$66,$5D,$87,$80,$84,$98,$B0,$9B,$6B,$4B,$7A,$55,$5C,$A0,$9B,$95,$92,$AB,$8C,$5B,$4F,$7D,$5B
Data.b $74,$A7,$98,$93,$8E,$A4,$7F,$46,$5E,$7C,$58,$85,$B0,$94,$8B,$95,$A7,$74,$3A,$70,$72,$5A,$89,$A4,$91,$87,$99,$A3,$70,$40,$83,$6F
Data.b $5F,$90,$9E,$8C,$85,$9E,$98,$62,$4C,$86,$61,$6D,$A1,$93,$89,$8D,$A5,$89,$55,$5E,$83,$5D,$79,$A3,$8D,$8A,$90,$A4,$7F,$4C,$70,$7C
Data.b $5E,$83,$A2,$8A,$88,$94,$9F,$74,$4B,$7E,$71,$62,$8D,$9A,$85,$88,$99,$99,$69,$50,$87,$66,$69,$99,$92,$84,$88,$9D,$90,$60,$5B,$88
Data.b $61,$74,$9F,$8D,$87,$8A,$A2,$86,$55,$6A,$82,$5D,$7C,$A2,$89,$87,$90,$A2,$7C,$51,$77,$78,$5E,$84,$9D,$84,$87,$95,$9F,$71,$4F,$83
Data.b $6C,$63,$91,$97,$83,$88,$9A,$96,$66,$55,$87,$64,$6C,$9B,$92,$87,$8A,$9F,$8C,$5B,$61,$86,$5E,$76,$A4,$8D,$87,$8D,$A0,$80,$55,$6D
Data.b $80,$5F,$7E,$A2,$87,$87,$91,$A1,$76,$50,$7C,$75,$60,$89,$9C,$83,$86,$96,$9C,$6D,$51,$85,$6B,$67,$94,$95,$85,$87,$9B,$93,$63,$59
Data.b $88,$63,$6E,$9D,$90,$86,$89,$9E,$89,$5B,$63,$85,$60,$77,$A1,$8B,$87,$8D,$A1,$7E,$54,$72,$7C,$5F,$82,$9F,$85,$86,$92,$9F,$74,$51
Data.b $7F,$72,$63,$8B,$97,$84,$86,$97,$99,$6A,$54,$87,$68,$68,$96,$93,$85,$86,$9B,$8F,$62,$5C,$87,$64,$72,$9E,$8E,$85,$8A,$9F,$85,$5A
Data.b $6A,$82,$60,$7C,$A1,$87,$86,$8F,$A1,$7B,$55,$77,$79,$61,$84,$9B,$84,$87,$93,$9D,$71,$52,$83,$6F,$64,$8E,$97,$85,$86,$97,$95,$69
Data.b $56,$88,$68,$6C,$98,$92,$84,$87,$9C,$8C,$61,$61,$86,$62,$76,$A0,$8B,$85,$8B,$9F,$82,$59,$6E,$7F,$61,$7F,$9E,$87,$87,$90,$A0,$77
Data.b $52,$7C,$76,$61,$88,$9C,$85,$86,$94,$99,$6F,$53,$85,$6E,$67,$91,$96,$84,$86,$98,$91,$66,$5A,$88,$65,$70,$9C,$8F,$84,$89,$9D,$88
Data.b $5E,$65,$84,$61,$78,$9E,$8A,$86,$8C,$A0,$7F,$55,$74,$7D,$60,$81,$9F,$87,$86,$91,$9D,$75,$53,$7E,$75,$63,$8A,$9A,$84,$86,$95,$97
Data.b $6C,$55,$87,$6B,$6A,$95,$93,$83,$86,$99,$8F,$64,$5D,$87,$64,$73,$9C,$8E,$86,$89,$9E,$85,$5A,$6A,$83,$60,$7B,$A1,$8A,$86,$8E,$9E
Data.b $7C,$55,$76,$7B,$62,$83,$9E,$85,$86,$92,$9C,$72,$53,$82,$71,$66,$8E,$97,$82,$85,$96,$95,$69,$57,$87,$69,$6D,$97,$91,$85,$87,$9B
Data.b $8C,$60,$62,$87,$63,$75,$9F,$8C,$85,$8A,$9D,$82,$59,$6C,$81,$62,$7D,$A0,$87,$86,$8E,$9E,$78,$54,$7B,$78,$63,$88,$9B,$83,$85,$92
Data.b $9A,$6F,$55,$84,$6E,$68,$91,$94,$84,$85,$97,$92,$66,$5A,$88,$66,$6F,$9B,$90,$85,$87,$9A,$89,$5F,$64,$86,$64,$77,$A0,$8B,$85,$8B
Data.b $9E,$7F,$58,$72,$7E,$62,$82,$9F,$85,$85,$90,$9D,$76,$54,$7E,$75,$64,$8A,$98,$83,$85,$94,$98,$6C,$55,$87,$6C,$69,$93,$94,$84,$85
Data.b $98,$90,$65,$5C,$89,$67,$71,$9C,$8F,$84,$88,$9D,$86,$5D,$69,$84,$62,$7B,$A0,$88,$85,$8D,$9F,$7C,$57,$76,$7B,$63,$84,$9B,$84,$86
Data.b $91,$9D,$73,$53,$82,$72,$65,$8C,$97,$84,$85,$95,$95,$6B,$56,$88,$6B,$6C,$96,$92,$84,$86,$9A,$8C,$62,$60,$87,$64,$75,$9E,$8C,$84
Data.b $8A,$9E,$83,$5B,$6D,$81,$62,$7D,$9D,$87,$86,$8E,$9F,$79,$54,$7B,$78,$62,$85,$9C,$85,$85,$92,$9A,$71,$54,$84,$70,$67,$8F,$96,$83
Data.b $85,$97,$93,$68,$59,$88,$67,$6F,$9A,$90,$83,$87,$9B,$8A,$60,$64,$86,$63,$78,$9E,$8B,$86,$8B,$9F,$80,$57,$72,$7F,$61,$80,$9F,$87
Data.b $86,$8F,$9D,$77,$54,$7C,$77,$64,$88,$9A,$83,$85,$93,$98,$6D,$55,$86,$6C,$6A,$93,$93,$82,$86,$98,$90,$65,$5D,$88,$66,$72,$9B,$8E
Data.b $85,$88,$9D,$87,$5C,$69,$85,$62,$7A,$A0,$8A,$86,$8C,$9D,$7D,$57,$74,$7D,$62,$82,$9E,$85,$86,$91,$9C,$73,$54,$81,$72,$65,$8D,$98
Data.b $82,$85,$95,$96,$6B,$57,$87,$6A,$6C,$96,$92,$84,$86,$9A,$8D,$61,$60,$88,$64,$74,$9E,$8D,$85,$89,$9D,$84,$5B,$6B,$83,$62,$7C,$A0
Data.b $88,$86,$8D,$9E,$79,$55,$79,$7A,$63,$86,$9C,$83,$85,$92,$9B,$71,$55,$83,$70,$67,$8F,$95,$83,$85,$97,$94,$67,$59,$89,$68,$6D,$99
Data.b $90,$84,$86,$9A,$8A,$61,$62,$87,$64,$76,$9F,$8B,$85,$8A,$9E,$81,$5A,$70,$80,$62,$80,$9F,$85,$85,$8F,$9E,$77,$55,$7D,$76,$64,$88
Data.b $98,$83,$85,$94,$99,$6E,$55,$86,$6D,$68,$91,$94,$84,$85,$97,$91,$67,$5B,$89,$67,$70,$9B,$8F,$84,$87,$9C,$87,$5F,$67,$85,$62,$7A
Data.b $9F,$88,$84,$8C,$9F,$7E,$58,$75,$7D,$62,$82,$9B,$84,$86,$91,$9D,$74,$53,$81,$73,$63,$8A,$98,$84,$85,$95,$97,$6C,$56,$87,$6C,$6A
Data.b $94,$93,$84,$86,$9A,$8E,$64,$5F,$88,$65,$74,$9D,$8C,$84,$8A,$9E,$85,$5D,$6B,$82,$62,$7C,$98,$8C,$84,$88,$9D,$87,$5C,$6A,$84,$61
Data.b $7A,$A0,$89,$86,$8D,$9E,$7D,$57,$75,$7C,$62,$82,$9E,$85,$86,$91,$9C,$73,$54,$81,$72,$65,$8D,$97,$82,$86,$95,$96,$6B,$57,$87,$6A
Data.b $6C,$96,$91,$84,$87,$9A,$8D,$61,$61,$87,$63,$74,$9E,$8C,$85,$89,$9D,$84,$5B,$6C,$82,$62,$7C,$9F,$87,$86,$8D,$9E,$7A,$56,$7A,$78
Data.b $63,$86,$9B,$83,$85,$92,$9B,$71,$55,$83,$6F,$68,$8F,$94,$83,$86,$97,$94,$67,$5A,$89,$67,$6E,$99,$90,$85,$87,$9A,$8A,$60,$63,$86
Data.b $64,$76,$9F,$8B,$85,$8A,$9E,$80,$59,$71,$7F,$61,$81,$9E,$85,$86,$8F,$9E,$77,$55,$7D,$75,$64,$89,$98,$83,$86,$94,$99,$6D,$55,$86
Data.b $6C,$68,$92,$94,$84,$85,$97,$90,$66,$5B,$88,$67,$71,$9B,$8F,$85,$88,$9C,$87,$5E,$68,$84,$62,$7B,$A0,$88,$85,$8D,$9F,$7D,$58,$75
Data.b $7C,$62,$83,$9B,$85,$86,$91,$9D,$74,$54,$81,$72,$64,$8B,$98,$85,$85,$95,$96,$6C,$56,$87,$6C,$6B,$95,$93,$84,$86,$99,$8D,$63,$5F
Data.b $88,$64,$74,$9E,$8C,$84,$89,$9D,$84,$5C,$6C,$82,$62,$7D,$9E,$87,$86,$8E,$9E,$7A,$54,$7A,$79,$62,$85,$9C,$85,$85,$92,$9A,$72,$54
Data.b $83,$71,$67,$8E,$96,$83,$85,$96,$93,$69,$59,$88,$68,$6E,$99,$90,$83,$87,$9A,$8B,$61,$63,$86,$63,$77,$9E,$8B,$86,$8A,$9E,$81,$58
Data.b $71,$80,$61,$7F,$9F,$87,$86,$8F,$9D,$78,$54,$7C,$78,$63,$87,$9B,$83,$85,$93,$98,$6E,$55,$86,$6D,$69,$92,$94,$82,$85,$97,$91,$67
Data.b $5C,$88,$66,$71,$9A,$8E,$85,$88,$9C,$88,$5D,$68,$85,$62,$79,$A0,$8A,$86,$8C,$9D,$7E,$57,$73,$7E,$62,$81,$9E,$85,$86,$90,$9C,$74
Data.b $54,$80,$73,$65,$8C,$98,$82,$85,$94,$97,$6C,$57,$87,$6B,$6C,$95,$92,$84,$86,$99,$8E,$62,$5F,$88,$64,$73,$9E,$8D,$85,$88,$9C,$85
Data.b $5C,$6A,$84,$63,$7B,$A0,$88,$86,$8C,$9E,$7B,$56,$78,$7A,$62,$85,$9C,$83,$85,$91,$9B,$72,$55,$82,$71,$67,$8E,$95,$83,$85,$96,$95
Data.b $69,$59,$88,$68,$6D,$98,$91,$84,$86,$99,$8B,$62,$61,$87,$65,$75,$9E,$8C,$85,$89,$9D,$82,$5A,$6F,$81,$62,$7F,$9F,$85,$85,$8F,$9E
Data.b $78,$56,$7B,$77,$64,$88,$99,$83,$86,$93,$9A,$6F,$55,$86,$6E,$67,$91,$95,$84,$85,$96,$91,$67,$5A,$89,$68,$70,$9A,$90,$84,$87,$9B
Data.b $88,$5F,$66,$85,$63,$79,$A0,$89,$85,$8B,$9E,$7F,$59,$73,$7E,$62,$81,$9C,$85,$86,$90,$9D,$75,$54,$80,$74,$64,$8A,$99,$84,$85,$94
Data.b $97,$6D,$55,$87,$6D,$6A,$94,$94,$83,$85,$98,$8F,$65,$5E,$88,$65,$73,$9D,$8D,$84,$89,$9D,$86,$5D,$6A,$83,$62,$7B,$9E,$88,$86,$8D
Data.b $9F,$7C,$56,$78,$7B,$61,$83,$9D,$85,$85,$91,$9B,$73,$54,$81,$73,$66,$8C,$97,$83,$85,$95,$95,$6A,$58,$88,$69,$6D,$98,$91,$83,$87
Data.b $9A,$8C,$63,$62,$87,$64,$76,$9D,$8C,$86,$8A,$9E,$83,$59,$6F,$81,$61,$7E,$A0,$88,$86,$8E,$9D,$79,$55,$7A,$79,$63,$86,$9C,$84,$85
Data.b $92,$99,$70,$54,$84,$6F,$68,$91,$95,$82,$85,$96,$93,$68,$5B,$88,$67,$70,$99,$8F,$85,$87,$9C,$89,$5E,$66,$86,$62,$77,$A0,$8B,$85
Data.b $8B,$9D,$80,$58,$71,$80,$62,$80,$9F,$85,$86,$8F,$9C,$76,$54,$7E,$75,$64,$8A,$99,$82,$85,$93,$98,$6D,$56,$86,$6D,$6A,$93,$93,$83
Data.b $85,$98,$90,$64,$5E,$89,$65,$71,$9C,$8E,$85,$87,$9B,$87,$5E,$68,$85,$63,$7A,$A0,$89,$85,$8B,$9E,$7D,$57,$76,$7C,$62,$84,$9D,$83
Data.b $85,$90,$9C,$73,$55,$81,$73,$66,$8D,$96,$83,$85,$95,$96,$6A,$58,$88,$6A,$6B,$96,$91,$84,$85,$99,$8D,$63,$5F,$88,$65,$74,$9E,$8D
Data.b $85,$88,$9D,$83,$5B,$6D,$82,$62,$7E,$A0,$86,$85,$8D,$9E,$7A,$56,$7A,$79,$63,$86,$99,$83,$85,$92,$9B,$70,$54,$85,$6F,$66,$8F,$96
Data.b $84,$85,$96,$93,$69,$59,$89,$69,$6E,$99,$90,$84,$86,$9B,$8A,$61,$64,$87,$63,$78,$9F,$8A,$84,$8B,$9E,$81,$5A,$71,$7F,$62,$80,$9D
Data.b $85,$86,$8F,$9E,$77,$54,$7E,$76,$63,$88,$9A,$84,$85,$93,$98,$6F,$55,$86,$6E,$69,$92,$94,$83,$85,$97,$90,$66,$5C,$89,$66,$71,$9C
Data.b $8D,$83,$88,$9C,$87,$5E,$68,$85,$63,$7A,$9E,$89,$86,$8C,$9F,$7E,$56,$76,$7C,$61,$82,$9E,$85,$85,$90,$9B,$75,$54,$80,$75,$65,$8B
Data.b $98,$83,$85,$94,$96,$6C,$57,$87,$6A,$6B,$96,$91,$82,$86,$99,$8E,$64,$60,$88,$65,$74,$9C,$8C,$85,$89,$9D,$84,$5B,$6D,$83,$61,$7C
Data.b $A0,$88,$85,$8D,$9D,$7B,$56,$78,$7B,$62,$84,$9C,$84,$85,$91,$9A,$72,$54,$83,$70,$67,$8F,$95,$81,$85,$96,$94,$69,$5A,$88,$69,$6E
Data.b $98,$90,$84,$86,$9B,$8B,$60,$64,$87,$63,$76,$9F,$8B,$85,$8A,$9D,$82,$5A,$6F,$81,$62,$7E,$9F,$86,$86,$8E,$9D,$78,$55,$7C,$77,$63
Data.b $89,$99,$82,$85,$93,$99,$6F,$56,$85,$6E,$69,$92,$93,$83,$85,$98,$92,$66,$5C,$89,$66,$70,$9B,$8E,$85,$87,$9B,$88,$5F,$66,$86,$63
Data.b $78,$9F,$89,$85,$8B,$9E,$7E,$58,$74,$7E,$62,$82,$9D,$83,$85,$90,$9D,$75,$55,$80,$74,$65,$8B,$96,$83,$85,$94,$97,$6C,$57,$88,$6B
Data.b $6A,$94,$92,$84,$85,$98,$8E,$65,$5E,$89,$66,$72,$9C,$8D,$84,$88,$9D,$85,$5D,$6B,$84,$62,$7C,$9F,$86,$84,$8D,$9E,$7C,$57,$78,$7B
Data.b $63,$84,$9A,$83,$86,$91,$9C,$72,$54,$84,$71,$65,$8D,$96,$84,$85,$95,$95,$6B,$58,$89,$6A,$6D,$97,$91,$83,$86,$9A,$8C,$62,$62,$87
Data.b $64,$76,$9E,$8A,$84,$8A,$9E,$82,$5B,$6F,$81,$62,$7E,$9D,$86,$86,$8E,$9E,$79,$55,$7D,$77,$62,$86,$9A,$84,$85,$92,$99,$71,$55,$85
Data.b $70,$68,$90,$95,$83,$85,$97,$92,$68,$5B,$89,$67,$70,$9A,$8E,$83,$87,$9B,$89,$60,$66,$85,$63,$78,$9D,$89,$86,$8B,$9F,$7F,$57,$74
Data.b $7E,$61,$80,$9E,$86,$85,$8F,$9C,$77,$54,$7F,$76,$64,$89,$99,$83,$85,$93,$97,$6D,$56,$87,$6C,$6A,$94,$92,$82,$86,$98,$8F,$65,$5F
Data.b $88,$66,$73,$9B,$8D,$85,$88,$9D,$86,$5C,$6B,$84,$61,$7A,$A0,$88,$85,$8C,$9D,$7D,$57,$76,$7C,$62,$82,$9D,$84,$85,$90,$9B,$73,$55
Data.b $82,$72,$66,$8D,$96,$81,$85,$95,$95,$6B,$59,$88,$6A,$6D,$96,$90,$84,$86,$9A,$8D,$61,$62,$88,$63,$75,$9E,$8C,$85,$89,$9C,$83,$5B
Data.b $6D,$82,$62,$7C,$9F,$87,$86,$8D,$9D,$79,$56,$7B,$79,$63,$87,$9A,$82,$85,$92,$9A,$71,$56,$85,$6F,$68,$90,$94,$82,$85,$97,$93,$67
Data.b $5B,$89,$67,$6E,$99,$8F,$84,$83,$93,$8E,$67,$61,$8A,$71,$77,$8B,$8C,$8F,$85,$8A,$75,$63,$6F,$7E,$7D,$8A,$98,$8C,$81,$7E,$85,$73
Data.b $66,$7D,$84,$80,$86,$95,$84,$74,$72,$7F,$7A,$7D,$8C,$88,$87,$82,$7C,$74,$79,$7D,$83,$79,$86,$8A,$7D,$7E,$83,$7A,$74,$7F,$84,$82
Data.b $82,$8A,$83,$7E,$7C,$78,$76,$7C,$7F,$80,$80,$87,$8B,$82,$7F,$81,$7F,$77,$7D,$80,$7D,$7A,$85,$86,$7C,$81,$85,$7F,$79,$7F,$80,$7E
Data.b $7C,$83,$86,$7F,$7F,$81,$7F,$7B,$7D,$7E,$80,$80,$83,$82,$7F,$80,$81,$7D,$7E,$7F,$81,$7F,$7F,$83,$81,$7C,$7F,$82,$7D,$7C,$7F,$82
Data.b $7E,$7F,$82,$81,$7D,$7F,$81,$7E,$7E,$7E,$80,$7F,$7F,$81,$81,$7E,$80,$81,$7E,$7F,$80,$80,$7E,$80,$81,$7F,$7E,$80,$80,$7F,$7F,$00
Data.b $4C,$49,$53,$54,$50,$00,$00,$00,$49,$4E,$46,$4F,$49,$4E,$41,$4D,$08,$00,$00,$00,$75,$6E,$6E,$61,$6D,$65,$64,$00,$49,$53,$46,$54
Data.b $0A,$00,$00,$00,$41,$77,$4C,$43,$20,$76,$31,$2E,$32,$00,$49,$43,$4F,$50,$22,$00,$00,$00,$53,$6F,$75,$6E,$64,$73,$20,$43,$6F,$70
Data.b $79,$72,$69,$67,$68,$74,$65,$64,$20,$62,$79,$20,$53,$6F,$75,$6E,$64,$20,$44,$6F,$67,$73,$2E,$00
BEEP_WAV_END:
EndDataSection