846 lines
21 KiB
C++
Executable File
846 lines
21 KiB
C++
Executable File
/*****************************************************************************
|
||
* *
|
||
* P C S P K *
|
||
* *
|
||
*---------------------------------------------------------------------------*
|
||
* Beschreibung: Mit Hilfe dieser Klasse kann man Toene auf dem *
|
||
* PC-Lautsprecher ausgeben. *
|
||
* *
|
||
* Achtung: Qemu muss mit dem Parameter -soundhw pcspk aufgerufen *
|
||
* werden. Ansonsten kann man nichts hoeren. *
|
||
* *
|
||
* Autor: Michael Schoettner, HHU, 22.9.2016 *
|
||
*****************************************************************************/
|
||
|
||
#include "devices/PCSPK.h"
|
||
#include "kernel/Globals.h"
|
||
|
||
const IOport PCSPK::control(0x43);
|
||
const IOport PCSPK::data2(0x42);
|
||
const IOport PCSPK::ppi(0x61);
|
||
|
||
/*****************************************************************************
|
||
* Methode: PCSPK::play *
|
||
*---------------------------------------------------------------------------*
|
||
* Beschreibung: Ton abspielen. *
|
||
* *
|
||
* Rückgabewerte: f: Frequenz des Tons *
|
||
* len: Laenge des Tons in ms *
|
||
*****************************************************************************/
|
||
void PCSPK::play(float f, int len) {
|
||
int freq = static_cast<int>(f);
|
||
int cntStart = 1193180 / freq;
|
||
int status;
|
||
|
||
// Zaehler laden
|
||
control.outb(0xB6); // Zaehler-2 konfigurieren
|
||
data2.outb(cntStart % 256); // Zaehler-2 laden (Lobyte)
|
||
data2.outb(cntStart / 256); // Zaehler-2 laden (Hibyte)
|
||
|
||
// Lautsprecher einschalten
|
||
status = static_cast<int>(ppi.inb()); // Status-Register des PPI auslesen
|
||
ppi.outb(status | 3); // Lautpsrecher Einschalten
|
||
|
||
// Pause
|
||
delay(len);
|
||
|
||
// Lautsprecher ausschalten
|
||
off();
|
||
}
|
||
|
||
/*****************************************************************************
|
||
* Methode: PCSPK::off *
|
||
*---------------------------------------------------------------------------*
|
||
* Beschreibung: Lautsprecher ausschalten. *
|
||
*****************************************************************************/
|
||
void PCSPK::off() {
|
||
int status;
|
||
|
||
status = static_cast<int>(ppi.inb()); // Status-Register des PPI auslesen
|
||
ppi.outb((status >> 2) << 2); // Lautsprecher ausschalten
|
||
}
|
||
|
||
/*****************************************************************************
|
||
* Methode: PCSPK::delay *
|
||
*---------------------------------------------------------------------------*
|
||
* Beschreibung: Verzoegerung um X ms (in 1ms Schritten; Min. 1ms). *
|
||
* *
|
||
* Parameter: time (delay in ms) *
|
||
*****************************************************************************/
|
||
inline void PCSPK::delay(int time) {
|
||
|
||
/* Hier muess Code eingefuegt werden */
|
||
|
||
unsigned long start_time = systime;
|
||
|
||
// systime is incremented in 10ms steps
|
||
while ((systime - start_time) * 10 < time) {}
|
||
}
|
||
|
||
/*****************************************************************************
|
||
* Methode: PCSPK::tetris *
|
||
*---------------------------------------------------------------------------*
|
||
* Beschreibung: Tetris Sound, Kévin Rapaille, August 2013 *
|
||
* https://gist.github.com/XeeX/6220067 *
|
||
*****************************************************************************/
|
||
void PCSPK::tetris() {
|
||
play(658, 125);
|
||
play(1320, 500);
|
||
play(990, 250);
|
||
play(1056, 250);
|
||
play(1188, 250);
|
||
play(1320, 125);
|
||
play(1188, 125);
|
||
play(1056, 250);
|
||
play(990, 250);
|
||
play(880, 500);
|
||
play(880, 250);
|
||
play(1056, 250);
|
||
play(1320, 500);
|
||
play(1188, 250);
|
||
play(1056, 250);
|
||
play(990, 750);
|
||
play(1056, 250);
|
||
play(1188, 500);
|
||
play(1320, 500);
|
||
play(1056, 500);
|
||
play(880, 500);
|
||
play(880, 500);
|
||
delay(250);
|
||
play(1188, 500);
|
||
play(1408, 250);
|
||
play(1760, 500);
|
||
play(1584, 250);
|
||
play(1408, 250);
|
||
play(1320, 750);
|
||
play(1056, 250);
|
||
play(1320, 500);
|
||
play(1188, 250);
|
||
play(1056, 250);
|
||
play(990, 500);
|
||
play(990, 250);
|
||
play(1056, 250);
|
||
play(1188, 500);
|
||
play(1320, 500);
|
||
play(1056, 500);
|
||
play(880, 500);
|
||
play(880, 500);
|
||
delay(500);
|
||
play(1320, 500);
|
||
play(990, 250);
|
||
play(1056, 250);
|
||
play(1188, 250);
|
||
play(1320, 125);
|
||
play(1188, 125);
|
||
play(1056, 250);
|
||
play(990, 250);
|
||
play(880, 500);
|
||
play(880, 250);
|
||
play(1056, 250);
|
||
play(1320, 500);
|
||
play(1188, 250);
|
||
play(1056, 250);
|
||
play(990, 750);
|
||
play(1056, 250);
|
||
play(1188, 500);
|
||
play(1320, 500);
|
||
play(1056, 500);
|
||
play(880, 500);
|
||
play(880, 500);
|
||
delay(250);
|
||
play(1188, 500);
|
||
play(1408, 250);
|
||
play(1760, 500);
|
||
play(1584, 250);
|
||
play(1408, 250);
|
||
play(1320, 750);
|
||
play(1056, 250);
|
||
play(1320, 500);
|
||
play(1188, 250);
|
||
play(1056, 250);
|
||
play(990, 500);
|
||
play(990, 250);
|
||
play(1056, 250);
|
||
play(1188, 500);
|
||
play(1320, 500);
|
||
play(1056, 500);
|
||
play(880, 500);
|
||
play(880, 500);
|
||
delay(500);
|
||
play(660, 1000);
|
||
play(528, 1000);
|
||
play(594, 1000);
|
||
play(495, 1000);
|
||
play(528, 1000);
|
||
play(440, 1000);
|
||
play(419, 1000);
|
||
play(495, 1000);
|
||
play(660, 1000);
|
||
play(528, 1000);
|
||
play(594, 1000);
|
||
play(495, 1000);
|
||
play(528, 500);
|
||
play(660, 500);
|
||
play(880, 1000);
|
||
play(838, 2000);
|
||
play(660, 1000);
|
||
play(528, 1000);
|
||
play(594, 1000);
|
||
play(495, 1000);
|
||
play(528, 1000);
|
||
play(440, 1000);
|
||
play(419, 1000);
|
||
play(495, 1000);
|
||
play(660, 1000);
|
||
play(528, 1000);
|
||
play(594, 1000);
|
||
play(495, 1000);
|
||
play(528, 500);
|
||
play(660, 500);
|
||
play(880, 1000);
|
||
play(838, 2000);
|
||
off();
|
||
}
|
||
|
||
/*****************************************************************************
|
||
* Methode: PCSPK::tetris *
|
||
*---------------------------------------------------------------------------*
|
||
* Beschreibung: Clint, Part of Daft Punk’s Aerodynamic *
|
||
* https://www.kirrus.co.uk/2010/09/linux-beep-music/ *
|
||
*****************************************************************************/
|
||
void PCSPK::aerodynamic() {
|
||
play(587.3, 122);
|
||
play(370.0, 122);
|
||
play(493.9, 122);
|
||
play(370.0, 122);
|
||
play(587.3, 122);
|
||
play(370.0, 122);
|
||
play(493.9, 122);
|
||
play(370.0, 122);
|
||
play(587.3, 122);
|
||
play(370.0, 122);
|
||
play(493.9, 122);
|
||
play(370.0, 122);
|
||
play(587.3, 122);
|
||
play(370.0, 122);
|
||
play(493.9, 122);
|
||
play(370.0, 122);
|
||
play(587.3, 122);
|
||
play(415.3, 122);
|
||
play(493.9, 122);
|
||
play(415.3, 122);
|
||
play(587.3, 122);
|
||
play(415.3, 122);
|
||
play(493.9, 122);
|
||
play(415.3, 122);
|
||
play(587.3, 122);
|
||
play(415.3, 122);
|
||
play(493.9, 122);
|
||
play(415.3, 122);
|
||
play(587.3, 122);
|
||
play(415.3, 122);
|
||
play(493.9, 122);
|
||
play(415.3, 122);
|
||
play(784.0, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(493.9, 122);
|
||
play(784.0, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(493.9, 122);
|
||
play(784.0, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(493.9, 122);
|
||
play(784.0, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(440.0, 122);
|
||
play(554.4, 122);
|
||
play(440.0, 122);
|
||
play(659.3, 122);
|
||
play(440.0, 122);
|
||
play(554.4, 122);
|
||
play(440.0, 122);
|
||
play(659.3, 122);
|
||
play(440.0, 122);
|
||
play(554.4, 122);
|
||
play(440.0, 122);
|
||
play(659.3, 122);
|
||
play(440.0, 122);
|
||
play(554.4, 122);
|
||
play(440.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(587.3, 122);
|
||
play(370.0, 122);
|
||
play(493.9, 122);
|
||
play(370.0, 122);
|
||
play(587.3, 122);
|
||
play(370.0, 122);
|
||
play(493.9, 122);
|
||
play(370.0, 122);
|
||
play(587.3, 122);
|
||
play(370.0, 122);
|
||
play(493.9, 122);
|
||
play(370.0, 122);
|
||
play(587.3, 122);
|
||
play(370.0, 122);
|
||
play(493.9, 122);
|
||
play(370.0, 122);
|
||
play(587.3, 122);
|
||
play(415.3, 122);
|
||
play(493.9, 122);
|
||
play(415.3, 122);
|
||
play(587.3, 122);
|
||
play(415.3, 122);
|
||
play(493.9, 122);
|
||
play(415.3, 122);
|
||
play(587.3, 122);
|
||
play(415.3, 122);
|
||
play(493.9, 122);
|
||
play(415.3, 122);
|
||
play(587.3, 122);
|
||
play(415.3, 122);
|
||
play(493.9, 122);
|
||
play(415.3, 122);
|
||
play(784.0, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(493.9, 122);
|
||
play(784.0, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(493.9, 122);
|
||
play(784.0, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(493.9, 122);
|
||
play(784.0, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(440.0, 122);
|
||
play(554.4, 122);
|
||
play(440.0, 122);
|
||
play(659.3, 122);
|
||
play(440.0, 122);
|
||
play(554.4, 122);
|
||
play(440.0, 122);
|
||
play(659.3, 122);
|
||
play(440.0, 122);
|
||
play(554.4, 122);
|
||
play(440.0, 122);
|
||
play(659.3, 122);
|
||
play(440.0, 122);
|
||
play(554.4, 122);
|
||
play(587.3, 122);
|
||
play(370.0, 122);
|
||
play(493.9, 122);
|
||
play(370.0, 122);
|
||
play(587.3, 122);
|
||
play(370.0, 122);
|
||
play(493.9, 122);
|
||
play(370.0, 122);
|
||
play(587.3, 122);
|
||
play(370.0, 122);
|
||
play(493.9, 122);
|
||
play(370.0, 122);
|
||
play(587.3, 122);
|
||
play(370.0, 122);
|
||
play(493.9, 122);
|
||
play(370.0, 122);
|
||
play(587.3, 122);
|
||
play(415.3, 122);
|
||
play(493.9, 122);
|
||
play(415.3, 122);
|
||
play(587.3, 122);
|
||
play(415.3, 122);
|
||
play(493.9, 122);
|
||
play(415.3, 122);
|
||
play(587.3, 122);
|
||
play(415.3, 122);
|
||
play(493.9, 122);
|
||
play(415.3, 122);
|
||
play(587.3, 122);
|
||
play(415.3, 122);
|
||
play(493.9, 122);
|
||
play(415.3, 122);
|
||
play(784.0, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(493.9, 122);
|
||
play(784.0, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(493.9, 122);
|
||
play(784.0, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(493.9, 122);
|
||
play(784.0, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(493.9, 122);
|
||
play(659.3, 122);
|
||
play(440.0, 122);
|
||
play(554.4, 122);
|
||
play(440.0, 122);
|
||
play(659.3, 122);
|
||
play(440.0, 122);
|
||
play(554.4, 122);
|
||
play(440.0, 122);
|
||
play(659.3, 122);
|
||
play(440.0, 122);
|
||
play(554.4, 122);
|
||
play(440.0, 122);
|
||
play(659.3, 122);
|
||
play(440.0, 122);
|
||
play(554.4, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(740.0, 122);
|
||
play(987.8, 122);
|
||
play(740.0, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1174.7, 122);
|
||
play(830.6, 122);
|
||
play(987.8, 122);
|
||
play(830.6, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1568.0, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(987.8, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
play(1318.5, 122);
|
||
play(880.0, 122);
|
||
play(1108.7, 122);
|
||
play(880.0, 122);
|
||
off();
|
||
}
|