[COLOR=Navy]#Picaxe [/COLOR][COLOR=Black]14M2[/COLOR]
[COLOR=Navy]#Terminal 4800[/COLOR]
[COLOR=Blue]Symbol [/COLOR][COLOR=Black]TX [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]B.4
Symbol [/COLOR][COLOR=Black]RX [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]C.3
Symbol [/COLOR][COLOR=Black]BUSY_PIN [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]pinC.2[/COLOR]
[COLOR=Blue]Symbol [/COLOR][COLOR=Black]BAUD_FREQ [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]M8
Symbol [/COLOR][COLOR=Black]BAUD [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]T9600_8
Symbol [/COLOR][COLOR=Black]cmd [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]b0[/COLOR]
[COLOR=Blue]Symbol [/COLOR][COLOR=Black]arg [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]w1 [/COLOR][COLOR=Green]; b3:b2[/COLOR]
[COLOR=Blue]Symbol [/COLOR][COLOR=Black]arg.lsb [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]b2[/COLOR]
[COLOR=Blue]Symbol [/COLOR][COLOR=Black]arg.msb [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]b3[/COLOR]
[COLOR=Blue]Symbol [/COLOR][COLOR=Black]whichTune [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]w2[/COLOR]
[COLOR=Green]; Initialise[/COLOR]
[COLOR=Blue]High [/COLOR][COLOR=Black]TX[/COLOR]
[COLOR=Blue]Pause [/COLOR][COLOR=Navy]2000[/COLOR]
[COLOR=Black]cmd [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy]$09 [/COLOR][COLOR=Black]: arg [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy]$0002 [/COLOR][COLOR=Black]: [/COLOR][COLOR=Blue]Gosub [/COLOR][COLOR=Black]Send[/COLOR]
[COLOR=Blue]Pause [/COLOR][COLOR=Navy]4000[/COLOR]
[COLOR=Green];Set sound to 20[/COLOR]
[COLOR=Black]cmd [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy]$06 [/COLOR][COLOR=Black]: arg [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy]20 [/COLOR][COLOR=Black]: [/COLOR][COLOR=Blue]Gosub [/COLOR][COLOR=Black]Send[/COLOR]
[COLOR=Blue]Pause [/COLOR][COLOR=Navy]1000[/COLOR]
[COLOR=Green];Test each switch in turn[/COLOR]
[COLOR=Blue]Do
If [/COLOR][COLOR=Purple]pinC.0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy]1 [/COLOR][COLOR=Blue]Then
[/COLOR][COLOR=Black]whichTune [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy]1
[/COLOR][COLOR=Blue]Gosub [/COLOR][COLOR=Black]PlaySound
[/COLOR][COLOR=Blue]Endif
If [/COLOR][COLOR=Purple]pinC.4 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy]1 [/COLOR][COLOR=Blue]Then
[/COLOR][COLOR=Black]whichTune [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy]2
[/COLOR][COLOR=Blue]Gosub [/COLOR][COLOR=Black]PlaySound
[/COLOR][COLOR=Blue]Endif
[/COLOR][COLOR=Green]; any number of more switches can be added here in exactly same way[/COLOR]
[COLOR=Blue]Loop[/COLOR]
[COLOR=Green]; Play the actual MP3 file[/COLOR]
[COLOR=Black]PlaySound:
cmd [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy]$12 [/COLOR][COLOR=Black]: arg [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Black]whichTune : [/COLOR][COLOR=Blue]Gosub [/COLOR][COLOR=Black]Send
[/COLOR][COLOR=Blue]Pause [/COLOR][COLOR=Navy]1000
[/COLOR][COLOR=Blue]Do While [/COLOR][COLOR=Black]BUSY_PIN [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy]0
[/COLOR][COLOR=Blue]Pause [/COLOR][COLOR=Navy]100
[/COLOR][COLOR=Blue]Loop
Return[/COLOR]
[COLOR=Black]Send:
[/COLOR][COLOR=Blue]SetFreq [/COLOR][COLOR=Black]BAUD_FREQ
[/COLOR][COLOR=Blue]Pause [/COLOR][COLOR=Navy]10
[/COLOR][COLOR=Blue]SerOut [/COLOR][COLOR=Black]TX, BAUD, [/COLOR][COLOR=Blue]( [/COLOR][COLOR=Navy]$7E[/COLOR][COLOR=Black], [/COLOR][COLOR=Navy]$FF[/COLOR][COLOR=Black], [/COLOR][COLOR=Navy]$06[/COLOR][COLOR=Black], cmd, [/COLOR][COLOR=Navy]$00[/COLOR][COLOR=Black], arg.msb, arg.lsb, [/COLOR][COLOR=Navy]$EF [/COLOR][COLOR=Blue])
SetFreq MDEFAULT
[/COLOR][COLOR=Black]arg [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy]0
[/COLOR][COLOR=Blue]Return[/COLOR]