Код:
// ZX-Spectrum FDD Emulator
//
//#include <petit_fatfs.h>
#define SIDE_SEL PC0 // SIDE SELECT (INPUT)
#define DRIVE_SEL PC1 // DRIVE SELECT CONNECT DS0-DS3 using jumper (INPUT) /// not used yet
#define MOTOR_ON PC2 // MOTOR ON (INPUT)
#define WRT_GATE PB0 // WRITE GATE (INPUT) /// not used yet
#define WRT_DATA PB1 // WRITE DATA (INPUT) /// not used yet
#define READ_DATA PD1 // READ_DATA (OUTPUT) /// defined in USART
#define STEP PD2 // STEP (INPUT)
#define DIR_SEL PD3 // DIRECTION SELECT (INPUT)
// PD4 UNABLE TO USE!!
#define INDEX PD5 // INDEX (OUTPUT)
#define TRK00 PD6 // TRACK 00 (OUTPUT)
#define WP PD7 // WRITE PROTECT (OUTPUT)
uint8_t sector_header[64]; // sector header
uint8_t track_header[146]; // track header
uint8_t sector_data[256]; // sector data
// STATE variable values
// 0-1 - TRACK HEADER
// 2-7 - SECTOR
// 8 - TRACK FOOTER
uint8_t state;
uint8_t sector_byte;
uint8_t prev_byte;
uint8_t second_byte;
uint8_t tmp;
uint8_t b_index;
uint16_t CRC;
volatile uint8_t track;
volatile uint8_t sector;
volatile uint8_t side;
volatile uint8_t data_sent;
uint8_t MFM_tab[32] =
{
0xAA,0xA9,0xA4,0xA5,0x92,0x91,0x94,0x95,0x4A,0x49,0x44,0x45,0x52,0x51,0x54,0x55,
0x2A,0x29,0x24,0x25,0x12,0x11,0x14,0x15,0x4A,0x49,0x44,0x45,0x52,0x51,0x54,0x55,
};
const uint16_t Crc16Table[256] = {
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,
0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,
0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,
0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,
0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,
0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,
0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,
0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,
0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,
0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,
0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,
0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,
0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,
0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,
0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,
0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,
0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,
0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,
0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,
0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,
0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,
0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,
0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,
0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,
0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,
0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,
0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,
0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,
0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,
0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0
};
// STEP pin interrupt
ISR(INT0_vect)
{
if ((PIND & (1 << DIR_SEL))==0) {
track++;
if (track > 79) track = 79; // !!!!!!!!!!!!!!!! use max track calculated on mounting TRD
}
else
{
if (track > 0) track--;
}
sector = 1;
}
ISR(USART_UDRE_vect)
{
if (!tmp) // it is ok, as MFM_tab doesn't have zero values
{ // Send first MFM byte
// GET DATA BYTE (REAL DATA NOT MFM)
switch (state)
{
case 0: // start track header -----------------------------------------
// set index LOW
PORTD &= ~_BV(INDEX);
//set TRK00 LOW or HIGH
if (track == 0) PORTD &= ~(1 << TRK00); else PORTD |= (1 << TRK00);
sector_byte = 0x4E;
b_index = 1;
state = 1;
break;
case 1: // send track header ------------------------------------------
sector_byte = track_header[b_index];
if(sector_byte == 0xC2) second_byte = 0x24;
b_index++;
if (b_index != 146) break;
state = 2;
b_index = 0;
break;
case 2: // ------------------------------------------------------------
switch (b_index)
{
case 0:
// set INDEX high
PORTD |= _BV(INDEX);
CRC = 0xB230;
break;
case 1:
CRC = (CRC << 8) ^ Crc16Table[(CRC >> 8) ^ track];
break;
case 2:
CRC = (CRC << 8) ^ Crc16Table[(CRC >> 8) ^ side];
break;
case 3:
CRC = (CRC << 8) ^ Crc16Table[(CRC >> 8) ^ sector];
break;
case 4:
CRC = (CRC << 8) ^ Crc16Table[(CRC >> 8) ^ 1]; // sector size 1 = 256;
break;
case 5:
sector_header[16] = track;
sector_header[17] = side;
break;
case 12:
case 13:
case 14:
second_byte = 0x89;
break;
case 15:
sector_header[18] = sector;
sector_header[20] = (byte)(CRC >> 8);
sector_header[21] = (byte)CRC;
/*if(sector == 1 && side == 0 && CRC != 0xFA0C) {
cli();
while(1);
}*/
break;
case 56:
case 57:
case 58:
second_byte = 0x89;
break;
}
// send sector bytes before data
sector_byte = sector_header[b_index++]; // pre-get new byte from buffer
if (b_index != 60) break;
b_index = 0;
state = 3;
// START GENERATING CRC HERE, PRE-CALC value for A1,A1,A1,FB = 0xE295
CRC = 0xE295; // next CRC value
data_sent = 0;
break;
case 3: // ------------------------------------------------------------
// get sector data values
sector_byte = sector_data[b_index++]; // pre-get new byte from buffer
CRC = (CRC << 8) ^ Crc16Table[(CRC >> 8) ^ sector_byte];
if (b_index != 0) break;
state = 4;
break;
case 4:
if(bit_is_set(PINC, SIDE_SEL)) side = 0; else side = 1;
sector_byte = (byte)(CRC >> 8);
state = 5;
// b_index = 0; not needed
break;
case 5:
if (sector <= 15)
{
sector++; // increase sector
data_sent = 1;
}
sector_byte = (byte)CRC;
state = 6;
break;
case 6:
sector_byte = 0x4E;
state = 7;
break;
case 7:
b_index++;
if (b_index != 56) break;
if (data_sent)
{
state = 2;
b_index = 0;
break;
}
sector = 1;
data_sent = 1;
state = 8;
b_index = 0;
break;
case 8:
// send track footer
if (++b_index != 200) break;
state = 0;
b_index = 0;
break;
}
// PRE-FETCH END
tmp = sector_byte;
tmp >>= 4;
tmp = MFM_tab[tmp]; // get first MFM byte from table
if((prev_byte & 1) && !(sector_byte & 0x80)) tmp &= 0x7F;
UDR0 = ~tmp; // put byte to send buffer
}
else
{ // Send second MFM byte
prev_byte = sector_byte;
if (second_byte == 0)
{
tmp = sector_byte;
tmp &= 0x1f;
tmp = MFM_tab[tmp]; // get second MFM byte from table to "tmp"
}
else
{
tmp = second_byte;
second_byte = 0;
}
UDR0 = ~tmp; // put byte to send buffer
tmp = 0; // this is important!
}
}
void prepare_sector_header()
{
// Address field
byte i;
for(i=0; i <= 11; i++) sector_header[i] = 0x00; // 0x00(0)-0x0B(11) sync field
for(i=12; i <= 14; i++) sector_header[i] = 0xA1; // 0x0C(12)-0x0E(14) 3x0xA1
sector_header[15] = 0xFE; // 0x0F(15) 0xFE
// TRACK, SIDE, SECTOR
sector_header[16] = 0x00; // 0x10(16) track
sector_header[17] = 0x00; // 0x11(17) side
sector_header[18] = 0x01; // 0x12(18) sector
sector_header[19] = 0x01; // 0x13(19) sector len (256 bytes)
sector_header[20] = 0xFA; // 0x14(20) CRC1 for trk=0, side=0, sector=1
sector_header[21] = 0x0C; // 0x15(21) CRC2
// GAP 2
for(i=22; i <= 43; i++) sector_header[i] = 0x4E; // 0x16(22)-0x2B
// DATA field
for(i=44; i <= 55; i++) sector_header[i] = 0x00; // 0x2C(44)-0x37 sync field
for(i=56; i <= 58; i++) sector_header[i] = 0xA1; // 0x38(56)-0x3A
sector_header[59] = 0xFB; // 0x3B(59)
}
void prepare_track_header()
{
// Address field
byte i;
for(i=0; i < 80; i++) track_header[i] = 0x4E;
for(i=80; i < 92; i++) track_header[i] = 0x00;
sector_header[92] = 0xC2;
sector_header[93] = 0xC2;
sector_header[94] = 0xC2;
sector_header[95] = 0xFC;
for(i=96; i < 146; i++) track_header[i] = 0x4E;
}
alignas(256) const byte track0[16][256] PROGMEM =
{
0x62,0x6F,0x6F,0x74,0x20,0x20,0x20,0x20,0x42,0x89,0x06,0x00,0x00,0x07,0x00,0x01,
0x44,0x49,0x5A,0x5A,0x59,0x31,0x2E,0x52,0x42,0xD9,0x02,0x00,0x00,0xA0,0x07,0x01,
0x44,0x49,0x5A,0x5A,0x59,0x32,0x2E,0x52,0x42,0xD1,0x01,0x00,0x00,0xAF,0x07,0x0B,
0x44,0x49,0x5A,0x5A,0x59,0x33,0x2E,0x52,0x42,0xD9,0x02,0x00,0x00,0xCD,0x06,0x16,
0x44,0x49,0x5A,0x5A,0x33,0x2E,0x35,0x52,0x42,0x90,0x00,0x90,0x00,0x9D,0x03,0x23,
0x44,0x49,0x5A,0x5A,0x59,0x20,0x34,0x52,0x42,0xFA,0x00,0x0E,0x00,0x64,0x00,0x2D,
0x44,0x49,0x5A,0x5A,0x59,0x20,0x34,0x52,0x43,0x00,0x00,0x00,0x00,0xC4,0x04,0x33,
0x44,0x49,0x5A,0x5A,0x59,0x20,0x35,0x52,0x42,0x92,0x00,0x92,0x00,0xFF,0x08,0x3F,
0x44,0x49,0x5A,0x5A,0x59,0x20,0x35,0x52,0x20,0x00,0x00,0x00,0x00,0xB1,0x07,0x4F,
0x44,0x49,0x5A,0x5A,0x59,0x20,0x36,0x52,0x42,0x93,0x00,0x93,0x00,0xE5,0x08,0x5A,
0x53,0x45,0x59,0x4D,0x4F,0x55,0x52,0x31,0x42,0xAB,0x00,0xAB,0x00,0x7B,0x0D,0x68,
0x53,0x45,0x59,0x4D,0x4F,0x55,0x52,0x32,0x42,0xF2,0x00,0x10,0x00,0xBF,0x08,0x70,
0x53,0x45,0x59,0x4D,0x4F,0x55,0x52,0x32,0x43,0x00,0x00,0x00,0x00,0xB8,0x07,0x7C,
0x52,0x4F,0x42,0x4F,0x43,0x4F,0x50,0x33,0x42,0x5B,0x00,0x5B,0x00,0x7B,0x0F,0x87,
0x72,0x6F,0x62,0x6F,0x63,0x6F,0x70,0x33,0x53,0x00,0x00,0x00,0x00,0xFF,0x0A,0x8F,
0x00,0x41,0x57,0x53,0x2B,0x20,0x20,0x20,0x42,0xAD,0x00,0x9A,0x00,0x94,0x02,0x96,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x41,0x64,0x76,0x61,0x6E,0x63,0x65,0x64,0x20,0x44,0x69,0x73,0x6B,0x20,0x53,0x65,
0x72,0x76,0x69,0x63,0x65,0x20,0x76,0x2E,0x20,0x31,0x2E,0x30,0x31,0x20,0x7F,0x20,
0x31,0x39,0x39,0x33,0x20,0x56,0x6C,0x61,0x64,0x69,0x6D,0x69,0x72,0x20,0x56,0x61,
0x73,0x69,0x6C,0x65,0x76,0x73,0x6B,0x69,0x6A,0x2E,0x4D,0x69,0x50,0x68,0x26,0x54,
0x20,0x48,0x41,0x43,0x4B,0x45,0x52,0x20,0x43,0x4C,0x55,0x42,0x2E,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x09,0x9F,0x16,0x0F,0x07,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x67,0x61,0x6D,0x65,0x73,0x30,0x32,0x33,0x00,0x00,0x00,
0x00,0x01,0xF6,0x02,0xF9,0xC0,0xB0,0x22,0x32,0x33,0x38,0x38,0x34,0x22,0x3A,0xEA,
0x3A,0xAF,0xD3,0xFE,0x21,0x00,0x40,0xE5,0xD1,0x13,0x01,0xFF,0x1A,0x75,0xED,0xB0,
0x21,0x68,0x5D,0x11,0x00,0xDE,0x01,0x00,0x03,0xD5,0xED,0xB0,0xC9,0xF3,0x3E,0x70,
0x21,0x14,0xDE,0x06,0xA7,0xED,0x4F,0xED,0x5F,0xED,0x7E,0xEE,0x40,0xAE,0x77,0x23,
0x10,0xC7,0x3D,0xA5,0x6C,0x7A,0x81,0x68,0x71,0x7A,0xEE,0x62,0x15,0x1E,0xCA,0x6F,
0x39,0xAF,0x17,0xBA,0x2C,0xC8,0x18,0x5B,0x11,0x33,0xF5,0xA8,0xA0,0x98,0xDA,0x29,
0x8E,0x76,0xBC,0x93,0x07,0xBE,0xD8,0x52,0xA8,0x20,0x88,0x75,0x5C,0x95,0x97,0x0A,
0xF0,0xBE,0x8C,0xA0,0x82,0x20,0x88,0xEE,0x94,0x36,0xEA,0xD0,0x32,0x7C,0x01,0xF4,
0x58,0xB8,0xBB,0x98,0x08,0xEC,0x21,0x54,0x19,0x51,0x34,0x0D,0x69,0xE4,0xC8,0xF0,
0xD4,0xF1,0x64,0x54,0x63,0x5F,0x6E,0xC8,0x0A,0x0C,0x4F,0xA0,0x55,0x33,0x86,0xCB,
0xB8,0xE0,0xF4,0xD0,0x99,0x10,0xF1,0xA5,0x48,0x5D,0x75,0x1C,0x6C,0x45,0xD0,0x66,
0x04,0x3F,0x45,0x53,0x0B,0xDC,0x2E,0x38,0xAA,0x0F,0xD5,0x33,0x56,0x8C,0x8A,0xCB,
0x59,0x47,0xB8,0x5C,0x20,0x1B,0x65,0x41,0xC4,0xB0,0x66,0x37,0xA4,0xBC,0xC3,0xC6,
0x37,0x3E,0x64,0x5D,0x89,0x9C,0xAA,0xDB,0x39,0x37,0xA8,0x5C,0xC2,0x3E,0x45,0x11,
0xA4,0x20,0xF0,0x02,0xE4,0x8C,0xE3,0x86,0x46,0x94,0x8B,0xD4,0x9F,0x50,0x67,0x04,
0xB3,0x62,0xCB,0xE4,0xA3,0xC9,0x12,0x1B,0xA5,0x3A,0xD0,0x29,0x14,0x0B,0xD7,0x54,
0x30,0x1A,0x06,0x9F,0x16,0xF8,0xBC,0x53,0x29,0xFD,0x9B,0x6F,0x3C,0x96,0x99,0xA0,
0x3C,0xBD,0x43,0x69,0x5A,0x0A,0x72,0x36,0xA6,0x10,0x06,0x26,0xC3,0x5D,0x10,0x49,
0xB3,0x27,0xDE,0xE8,0xE7,0xCE,0xC1,0x0D,0x08,0x0B,0x16,0x71,0x1C,0xCA,0x24,0x9A,
0xF3,0xDD,0x76,0x6D,0xC1,0xF8,0xA1,0xA3,0xCB,0xAA,0x68,0x7B,0xCB,0x07,0x30,0xA3,
0x07,0x72,0x44,0x2B,0x1E,0xD1,0x85,0x99,0x91,0x9D,0x0C,0xC5,0x26,0x36,0x9D,0x9A,
0xCC,0x29,0xC2,0x03,0xDF,0x0F,0x0C,0x00,0x26,0x32,0x99,0x7A,0x95,0x43,0x10,0x5C,
0xF6,0xAC,0x9D,0x53,0xE8,0xC8,0x04,0x27,0xAC,0x41,0x92,0xF8,0x8F,0x35,0x43,0x92,
0x8F,0xB2,0x14,0xF5,0x2E,0xAB,0x8D,0x7A,0x62,0xEE,0x1D,0x28,0x76,0xB9,0x97,0x9E,
0xE9,0xD3,0x24,0xAF,0xDB,0x6F,0xC4,0x9F,0xEE,0x11,0xDE,0xA6,0x56,0x97,0xDD,0x1C,
0x84,0x94,0xA9,0x53,0xAD,0x0D,0xB9,0x57,0x31,0xAC,0xC1,0xD6,0xE0,0x25,0xFA,0xA2,
0x6A,0xE7,0xA1,0x5F,0xA3,0xB1,0xC5,0x26,0x91,0xDE,0x72,0x4B,0x38,0x01,0x49,0x0B,
0x26,0x16,0xE1,0x1E,0x77,0xEA,0x18,0x8E,0xAD,0x0F,0x15,0x74,0xC6,0x8F,0x61,0x01,
0x66,0x62,0x6C,0x80,0x9F,0xAA,0x42,0xBD,0xB0,0x95,0x4C,0xB8,0x6C,0x5B,0x12,0xAD,
0x89,0xF6,0x72,0x2E,0xC7,0x48,0x38,0x31,0xD3,0x7C,0x9A,0xD8,0x5C,0x92,0xBE,0x2B,
0xA8,0x1B,0xF1,0x71,0xF4,0x16,0x3F,0x42,0xE3,0x1D,0x74,0xEE,0x93,0x5D,0xFE,0xA7,
0x67,0xED,0x30,0x4C,0x0D,0x67,0xB5,0xA1,0xD3,0x44,0xCB,0xE6,0x63,0x14,0x6D,0x6B,
0x75,0x67,0xD1,0x46,0x07,0x6B,0xC9,0x20,0x1A,0xB3,0xE1,0xC8,0x21,0x22,0x3C,0x67,
0xD5,0x59,0x8E,0x31,0x4B,0xA6,0xA6,0x53,0xBD,0x3F,0x7A,0x6D,0xAF,0x1C,0x6D,0x9A,
0xA9,0x69,0x4C,0x40,0x67,0x65,0x32,0x7D,0x7C,0x26,0x79,0x77,0x2D,0x62,0x61,0x38,
0x34,0x69,0x36,0x50,0x6B,0x27,0x18,0x68,0x7C,0x1F,0x09,0x7E,0x29,0x96,0xAD,0x28,
0x7B,0x79,0xB1,0xC0,0xA4,0xBA,0xBF,0x9F,0x4E,0x95,0x99,0x44,0x12,0x76,0x38,0x1D,
0x8B,0x0A,0x46,0x04,0xE7,0xBA,0xE6,0x9E,0x0C,0x33,0x69,0x07,0xF4,0x13,0xDD,0xEB,
0x98,0xF6,0x67,0x60,0x46,0xF6,0x69,0x98,0xD0,0x96,0x97,0x3B,0x63,0xA2,0x21,0x23,
0x96,0x0D,0x1E,0xA0,0x45,0x67,0x58,0xFC,0x41,0x43,0xC9,0xBB,0x42,0x2F,0x30,0x94,
0x51,0x3B,0xD1,0x71,0xE7,0x14,0x38,0xF9,0xD6,0x4C,0xBD,0xAE,0xEA,0x14,0x61,0x7E,
0xB0,0xBE,0xD4,0xDD,0xCE,0xEF,0x57,0x9A,0x85,0x77,0x0A,0x7D,0xDA,0x04,0x52,0xB9,
0xFE,0x8F,0x1F,0x48,0xCC,0xCF,0x42,0x34,0x6B,0x06,0x8C,0x4F,0xF9,0xA7,0x3B,0xC2,
0x13,0x93,0x45,0x85,0x81,0x53,0xF3,0x55,0x0C,0x15,0x5D,0xD8,0xBC,0x28,0x55,0x39,
0x34,0xD4,0x49,0xD4,0x3E,0xAE,0x35,0xEF,0xCE,0x9B,0x0D,0x33,0x8C,0xA2,0xB8,0xBE,
0x4F,0x09,0x8F,0xBB,0xFD,0xD2,0x48,0x0B,0x15,0xE9,0xF1,0x09,0xF6,0xF7,0x35,0x6E,
0xB5,0xAA,0x1E,0x43,0x6D,0xA1,0xA9,0x1F,0xA6,0x75,0x32,0xB8,0xD5,0x54,0xF9,0xCB,
0xC0,0xE4,0x32,0x54,0xB5,0x70,0xE8,0xA5,0xEC,0x0D,0x80,0xAA,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF7,0x3F,0x4C,0x5B,0xCA,0x7E,0x09,0x03,
0xFF,0x3C,0x4C,0x5B,0xC5,0x7E,0x03,0x6E,0xF7,0x3F,0x4C,0x5B,0xA7,0x7F,0x1E,0x49,
0xBE,0x3D,0xDC,0x5B,0xF7,0x7A,0x2B,0x54,0xD4,0x3D,0x42,0x5B,0x0E,0x79,0x25,0x3F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBC,0x3D,0xDE,0x5B,0x95,0x71,0x37,0x28,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBD,0x3D,0xDF,0x5B,0x8F,0x71,0x52,0x41,
0x85,0x3D,0xE7,0x5B,0x11,0x74,0x60,0x2C,0xDC,0x3D,0x5C,0x5B,0xD5,0x71,0x78,0x37,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5C,0x3D,0x26,0x5B,0x1E,0x76,0x8F,0x20,
0x03,0x3F,0x61,0x59,0x32,0x7A,0x87,0x0B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
alignas(256) const byte track1[16][256] PROGMEM =
{
0x00,0x01,0x1D,0x00,0xD4,0xC0,0x2E,0x0E,0x00,0x00,0xF4,0x5E,0x00,0xF3,0x21,0x00,
0x3D,0x11,0x00,0x91,0x06,0x60,0xC5,0x01,0x04,0x00,0xED,0xB0,0x06,0x04,0x7E,0xCB,
0x27,0xB6,0x12,0x23,0x13,0x10,0xF7,0xC1,0x10,0xEC,0xC9,0x16,0x00,0x0E,0x4E,0x41,
0x4D,0x45,0x53,0x3A,0x3E,0xBF,0x90,0x47,0xA7,0x1F,0x37,0x1F,0xA7,0x1F,0xA8,0xE6,
0xF8,0xA8,0x67,0x79,0x07,0x07,0x07,0xA8,0xE6,0xC7,0xA8,0x07,0x07,0x6F,0x79,0xF6,
0xF8,0x2F,0xC9,0xC9,0xCD,0x6F,0x5D,0xCB,0x07,0xCB,0x07,0xCB,0x07,0x06,0xC6,0x80,
0x32,0x9F,0x5D,0xCB,0x00,0xC9,0xCD,0x6F,0x5D,0xCB,0x07,0xCB,0x07,0xCB,0x07,0x06,
0x86,0x80,0x32,0xB1,0x5D,0xCB,0x00,0xC9,0x3E,0x00,0x32,0xF0,0x5E,0xCD,0xC2,0x5D,
0xCD,0xD2,0x5D,0xCD,0x27,0x63,0xC9,0x00,0xC5,0x01,0x1F,0x00,0xED,0x78,0x21,0xF0,
0x5E,0xB6,0x32,0xF0,0x5E,0xC1,0xC9,0xC5,0x01,0xFE,0xDF,0xED,0x78,0xE6,0x03,0xF5,
0x01,0xFE,0xFB,0xED,0x78,0xE6,0x01,0xCB,0x07,0xCB,0x07,0xCB,0x07,0x57,0xF1,0xB2,
0xF5,0x01,0xFE,0xFD,0xED,0x78,0xE6,0x01,0xCB,0x07,0xCB,0x07,0x57,0xF1,0xB2,0xF5,
0x01,0xFE,0x7F,0xED,0x78,0xE6,0x04,0xCB,0x07,0xCB,0x07,0x57,0xF1,0xB2,0xC1,0x2F,
0xE6,0x1F,0x21,0xF0,0x5E,0xB6,0x32,0xF0,0x5E,0xC9,0x00,0x00,0x00,0x00,0x00,0x0D,
0x00,0x01,0x00,0x00,0x0D,0x00,0x01,0x01,0x00,0x00,0x0D,0x00,0x01,0x01,0x01,0x00,
0x00,0x0D,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x0D,0x00,0x01,0x01,0x01,0x01,0x01,
0x00,0x00,0x0D,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x0D,0x00,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x00,0x0D,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,
0x0D,0x00,0x01,0x01,0x00,0x01,0x00,0x00,0x0D,0x00,0x01,0x00,0x00,0x01,0x01,0x00,
0x0D,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x0D,0x09,0x09,0x09,0x09,0x00,0x01,
0x01,0x00,0x0D,0x09,0x09,0x09,0x09,0x00,0x00,0x01,0x00,0x0D,0x09,0x09,0x09,0x09,
0x09,0x00,0x01,0x00,0x0D,0x09,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x0D,0xFF,0x21,
0x17,0x5E,0xED,0x4B,0xF1,0x5E,0xED,0x43,0xF3,0x5E,0x7E,0xFE,0xFF,0xC8,0xFE,0x0D,
0x20,0x10,0x3A,0xF1,0x5E,0x32,0xF3,0x5E,0xDD,0x21,0xF3,0x5E,0xDD,0x35,0x01,0x23,
0x18,0xE8,0xFE,0x09,0x20,0x09,0xE5,0x21,0xF3,0x5E,0x34,0xE1,0x23,0x18,0xDB,0xFE,
0x01,0x20,0x11,0xE5,0xED,0x4B,0xF3,0x5E,0x03,0xED,0x43,0xF3,0x5E,0xCD,0x8F,0x5D,
0xE1,0x23,0x18,0xC6,0xE5,0xED,0x4B,0xF3,0x5E,0x03,0xED,0x43,0xF3,0x5E,0xCD,0xA1,
0x5D,0xE1,0x23,0x18,0xB5,0x00,0x00,0x00,0x00,0xCD,0x48,0x5D,0xED,0x73,0xF5,0x5E,
0x01,0xF4,0x01,0xC5,0x3E,0x00,0x01,0x1F,0x00,0xED,0x78,0xB7,0x28,0x05,0x3E,0xC9,
0x32,0xC2,0x5D,0xC1,0x0B,0xAF,0xB0,0xB1,0x20,0xE9,0x00,0x00,0x21,0x00,0x90,0x22,
0x36,0x5C,0xFD,0x21,0x3A,0x5C,0xED,0x7B,0xF5,0x5E,0x3E,0x06,0x32,0x12,0x5C,0x3E,
0x02,0xCD,0x01,0x16,0x3E,0xFF,0xFD,0x77,0x00,0x3E,0x2B,0x32,0x48,0x5C,0x32,0x8D,
0x5C,0xCD,0x6B,0x0D,0x3E,0x05,0xD3,0xFE,0x2A,0x3D,0x5C,0x01,0x15,0x5F,0x71,0x23,
0x70,0x21,0x40,0x9C,0x11,0x00,0x00,0x06,0x08,0x0E,0x05,0xCD,0x13,0x3D,0x3E,0xFF,
0x32,0x15,0x5E,0x32,0x16,0x5E,0xF3,0xDD,0x21,0x40,0x9C,0xFD,0x21,0xC8,0xAF,0xDD,
0x7E,0x00,0xFE,0x00,0xCA,0xEB,0x5F,0xFE,0x01,0xCA,0x87,0x5F,0xDD,0x7E,0x08,0xFE,
0x42,0xCA,0x94,0x5F,0xDD,0x7E,0x0D,0xFE,0xC0,0xCA,0xCF,0x5F,0xDD,0xE5,0xE1,0x11,
0x10,0x00,0x19,0xE5,0xDD,0xE1,0xC3,0x6A,0x5F,0xDD,0x7E,0x00,0xFE,0x62,0x20,0x34,
0xDD,0x7E,0x01,0xFE,0x6F,0x20,0x2D,0xDD,0x7E,0x02,0xFE,0x6F,0x20,0x26,0xDD,0x7E,
0x03,0xFE,0x74,0x20,0x1F,0xDD,0x7E,0x04,0xFE,0x20,0x20,0x18,0xDD,0x7E,0x05,0xFE,
0x20,0x20,0x11,0xC3,0x87,0x5F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFD,0xE5,0xD1,0xDD,0xE5,0xE1,0x01,0x09,0x00,0xED,0xB0,0x21,
0x15,0x5E,0x34,0xFD,0xE5,0xE1,0x11,0x09,0x00,0x19,0xE5,0xFD,0xE1,0xC3,0x87,0x5F,
0xFD,0x21,0x3A,0x5C,0x3A,0x15,0x5E,0xFE,0xFF,0xCA,0x34,0x62,0xFE,0x14,0xD2,0x48,
0x62,0x06,0xB4,0x0E,0xA7,0xED,0x43,0xF1,0x5E,0x06,0x00,0x0E,0x0C,0x2E,0x09,0x3A,
0x15,0x5E,0x67,0x24,0x24,0x24,0x3E,0x70,0x32,0xC0,0x61,0xCD,0xC3,0x61,0x06,0x00,
0x0E,0x0C,0x21,0x09,0x00,0x3E,0x46,0x32,0xC0,0x61,0xCD,0xC3,0x61,0x3E,0x47,0x32,
0xC0,0x61,0x3A,0x15,0x5E,0xC6,0x04,0x47,0x0E,0x0D,0x21,0x09,0x00,0x3A,0xC0,0x61,
0xCD,0xC3,0x61,0x0E,0x16,0x3A,0x15,0x5E,0xC6,0x02,0x67,0x2E,0x00,0x06,0x01,0x3A,
0xC0,0x61,0xCD,0xC3,0x61,0x3E,0x46,0x32,0x8D,0x5C,0x3E,0x02,0xCD,0x01,0x16,0x11,
0x66,0x5D,0x01,0x09,0x00,0xCD,0x3C,0x20,0x3E,0x70,0x32,0x8D,0x5C,0x3E,0x02,0xCD,
0x01,0x16,0x3A,0x15,0x5E,0xDD,0x21,0xC8,0xAF,0x26,0x01,0x3C,0x47,0xC5,0x24,0x7C,
0x32,0x83,0x60,0xE5,0x3E,0x16,0xD7,0x3E,0x03,0xD7,0x3E,0x0D,0xD7,0xDD,0xE5,0xD1,
0x01,0x08,0x00,0xCD,0x3C,0x20,0xDD,0xE5,0xE1,0x11,0x09,0x00,0x19,0xE5,0xDD,0xE1,
0xE1,0xC1,0x10,0xD9,0xCD,0xAF,0x63,0x11,0x00,0xC0,0x01,0x00,0x18,0xED,0xB0,0xCD,
0xB3,0x5D,0x3A,0xF0,0x5E,0xDD,0x21,0xF1,0x5E,0xCB,0x47,0x28,0x03,0xDD,0x34,0x00,
0xCB,0x4F,0x28,0x03,0xDD,0x35,0x00,0xCB,0x57,0x28,0x03,0xDD,0x35,0x01,0xCB,0x5F,
0x28,0x03,0xDD,0x34,0x01,0xCB,0x67,0x28,0x0B,0x3A,0x16,0x5E,0xFE,0xFF,0x28,0x04,
0xFB,0xC3,0x8C,0x62,0xED,0x4B,0xF1,0x5E,0x3E,0x10,0xB8,0x38,0x02,0x06,0x10,0xB9,
0x38,0x02,0x0E,0x10,0x3E,0xBD,0xB8,0x30,0x02,0x06,0xBD,0x3E,0xEF,0xB9,0x30,0x02,
0x0E,0xEF,0xED,0x43,0xF1,0x5E,0xCD,0x9A,0x5E,0x3A,0xF0,0x5E,0xFE,0x00,0xCA,0xB2,
0x61,0x06,0x11,0xC5,0xED,0x4B,0xF1,0x5E,0xD1,0xD5,0x04,0x78,0x92,0x3C,0x47,0xCD,
0x6F,0x5D,0x3E,0x80,0x84,0x57,0x5D,0x1A,0xB6,0x77,0x23,0x13,0x1A,0xB6,0x77,0x23,
0x13,0x1A,0xB6,0x77,0xC1,0x10,0xDC,0x3A,0xF2,0x5E,0x47,0x3E,0xBF,0x90,0xE6,0xF8,
0xCB,0x0F,0xCB,0x0F,0xCB,0x0F,0xFE,0x02,0x38,0x4F,0x47,0x3A,0x15,0x5E,0xC6,0x02,
0xB8,0x38,0x46,0x3A,0xF1,0x5E,0xFE,0x60,0x38,0x3F,0xFE,0xB0,0x30,0x3B,0x3A,0xF2,
0x5E,0x47,0x3E,0xBF,0x90,0xE6,0xF8,0x0F,0x0F,0x0F,0x21,0x16,0x5E,0xBE,0x28,0x47,
0x32,0x16,0x5E,0x06,0x02,0x0E,0x0C,0x2E,0x09,0x3A,0x15,0x5E,0x67,0x24,0x3E,0x70,
0x32,0xC0,0x61,0xCD,0xC3,0x61,0x3A,0x16,0x5E,0x47,0x0E,0x0C,0x21,0x09,0x00,0x3E,
0x46,0x32,0xC0,0x61,0xCD,0xC3,0x61,0x18,0x1E,0x3A,0x16,0x5E,0xFE,0xFF,0x28,0x17,
0x3E,0xFF,0x32,0x16,0x5E,0x06,0x02,0x0E,0x0C,0x2E,0x09,0x3A,0x15,0x5E,0x67,0x3E,
0x70,0x32,0xC0,0x61,0xCD,0xC3,0x61,0xCD,0x54,0x1F,0xDA,0xAA,0x60,0xCD,0x54,0x1F,
0x30,0xFB,0xC3,0x15,0x5F,0x00,0x00,0x00,0x32,0xC0,0x61,0xED,0x43,0xC1,0x61,0x05,
0x0D,0x24,0x2C,0x09,0x04,0x0C,0xCD,0xE2,0x61,0x79,0xBD,0x38,0xF8,0x3A,0xC1,0x61,
0x4F,0x0D,0x78,0xBC,0x38,0xEE,0xC9,0xE5,0xC5,0x16,0x00,0x58,0x06,0x05,0x3F,0xCB,
0x23,0xCB,0x12,0x10,0xF9,0xC1,0xC5,0xD5,0xE1,0x16,0x00,0x59,0x19,0x11,0x00,0x58,
0x19,0x3A,0xC0,0x61,0x77,0xC1,0xE1,0xC9,0xCD,0xBC,0x63,0x01,0x06,0x0C,0x21,0x11,
0x02,0x3E,0x57,0x32,0x8D,0x5C,0x32,0xC0,0x61,0xCD,0xC3,0x61,0x06,0x0F,0x0E,0x07,
0x21,0x11,0x00,0x3E,0x00,0x32,0xC0,0x61,0xCD,0xC3,0x61,0x06,0x0D,0x0E,0x18,0x2E,
0x00,0x26,0x02,0x3E,0x00,0xCD,0xC3,0x61,0xC9,0xCD,0x03,0x62,0x3E,0x02,0xCD,0x01,
0x16,0x11,0x63,0x62,0x01,0x14,0x00,0xCD,0x3C,0x20,0xC3,0x59,0x62,0xCD,0x03,0x62,
0x3E,0x02,0xCD,0x01,0x16,0x11,0x78,0x62,0x01,0x14,0x00,0xCD,0x3C,0x20,0xCD,0x8E,
0x02,0xCB,0x7B,0x20,0xF9,0xC3,0x15,0x5F,0x16,0x0D,0x07,0x20,0x20,0x4E,0x4F,0x20,
0x45,0x58,0x45,0x2D,0x46,0x49,0x4C,0x45,0x20,0x21,0x20,0x20,0x20,0x16,0x0D,0x07,
0x4E,0x4F,0x20,0x4D,0x4F,0x52,0x45,0x20,0x54,0x48,0x41,0x4E,0x20,0x32,0x30,0x21,
0x20,0x2A,0x3D,0x5C,0x01,0x15,0x5F,0x71,0x23,0x70,0x3E,0x00,0x32,0x36,0x5C,0x3E,
0x3C,0x32,0x37,0x5C,0x3E,0x00,0x32,0x48,0x5C,0x32,0x8D,0x5C,0x3E,0x02,0xCD,0x01,
0x16,0xCD,0x6B,0x0D,0x3E,0x00,0xD3,0xFE,0x31,0xFF,0xFF,0x21,0xC8,0xAF,0x3A,0x16,
0x5E,0x3D,0x3D,0xCB,0x07,0xCB,0x07,0xCB,0x07,0x47,0x3A,0x16,0x5E,0x3D,0x3D,0x80,
0x5F,0x16,0x00,0x19,0xE5,0xDD,0xE1,0xED,0x7B,0xF5,0x5E,0xDD,0x7E,0x08,0xFE,0x43,
0x28,0x14,0x11,0x0D,0x63,0x01,0x08,0x00,0xED,0xB0,0x21,0x08,0x63,0x22,0x5D,0x5C,
0xCD,0x03,0x3D,0xC3,0x15,0x5F,0x11,0x1C,0x63,0x01,0x08,0x00,0xED,0xB0,0xCD,0xBF,
0x16,0x21,0x17,0x63,0x22,0x5D,0x5C,0xCD,0x03,0x3D,0xC3,0x15,0x5F,0x3A,0xEA,0x3A,
0xF7,0x22,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x0D,0x3A,0xEA,0x3A,0xEC,
0x22,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0xAF,0x0D,0x01,0xFE,0xEF,0x16,
0x00,0xED,0x78,0xCB,0x47,0x20,0x02,0xCB,0xE2,0xCB,0x4F,0x20,0x02,0xCB,0xDA,0xCB,
0x57,0x20,0x02,0xCB,0xD2,0xCB,0x5F,0x20,0x02,0xCB,0xC2,0xCB,0x67,0x20,0x02,0xCB,
0xCA,0x3A,0xF0,0x5E,0xB2,0x32,0xF0,0x5E,0xC9,0x01,0xD0,0x07,0x21,0x00,0x00,0x7E,
0xE6,0xF8,0xF6,0x01,0xD3,0xFE,0x23,0x0B,0xAF,0xB0,0xB1,0x20,0xF2,0xC9,0xCA,0x3A,
0x1D,0x5F,0xB2,0x32,0x1D,0x5F,0xC9,0x01,0xD0,0x07,0x21,0x00,0x00,0x7E,0xE6,0xF8,
0xF6,0x01,0xD3,0xFE,0x23,0x0B,0xAF,0xB0,0xB1,0x20,0xF2,0xC9,0x16,0x15,0x01,0x10,
0x02,0x11,0x05,0x13,0x00,0x20,0x50,0x55,0x42,0x4C,0x49,0x53,0x48,0x45,0x44,0x20,
0x42,0x59,0x20,0x53,0x4F,0x46,0x54,0x53,0x54,0x41,0x52,0x20,0x4F,0x46,0x20,0x4D,
0x4B,0x48,0x47,0x20,0x11,0x87,0x63,0x01,0x28,0x00,0xCD,0x3C,0x20,0x21,0x00,0x40,
0xC9,0xCD,0x54,0x63,0x3E,0x05,0xD3,0xFE,0xC9,0x80,0xAA,0x01,0x00,0x00,0x00,0x00,
0x43,0x4F,0x52,0x52,0x45,0x43,0x54,0x45,0x44,0x20,0x42,0x59,0x20,0x4B,0x53,0x41,
0x20,0x53,0x4F,0x46,0x54,0x57,0x41,0x52,0x45,0x2C,0x53,0x50,0x45,0x43,0x49,0x41,
0x4C,0x20,0x46,0x4F,0x52,0x20,0x41,0x4E,0x44,0x52,0x45,0x57,0x20,0x49,0x53,0x41,
0x45,0x56,0x20,0x20,0x31,0x39,0x39,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0x82,0x00,0xF9,0xC0,0x30,0x0E,0x00,0x00,0x72,0x5D,0x00,0x16,0x00,0x00,
0x13,0x01,0x11,0x05,0x10,0x00,0x20,0x2A,0x20,0x50,0x52,0x4F,0x54,0x45,0x43,0x54,
0x49,0x4F,0x4E,0x20,0x42,0x59,0x20,0x4B,0x53,0x41,0x20,0x53,0x4F,0x46,0x54,0x57,
0x41,0x52,0x45,0x20,0x2A,0x20,0x13,0xF3,0x31,0x00,0x40,0xAF,0xD3,0xFE,0x21,0x00,
0x40,0x11,0x01,0x40,0x01,0xFF,0x1A,0x75,0xED,0xB0,0x21,0x90,0x5D,0x06,0xA1,0x7E,
0xAD,0x77,0x23,0x10,0xFA,0xA1,0x95,0xD2,0xB2,0x0B,0xC8,0x87,0x93,0xD8,0x98,0xBA,
0x9B,0x71,0x2D,0x57,0x5F,0xFD,0xD5,0xBA,0x92,0x79,0xF8,0x6A,0xFA,0x6E,0xF4,0xF7,
0x7E,0xF1,0x4A,0xF3,0x1A,0xED,0x0D,0xEF,0x40,0xE9,0x84,0x07,0xEA,0x46,0xCD,0x15,
0x72,0x13,0x6E,0x40,0x76,0xFA,0xB4,0x9F,0x02,0xF7,0x0C,0xFD,0xF9,0x82,0x37,0xB2,
0x02,0xF6,0xAF,0x93,0x61,0xF3,0x7F,0xF1,0x7D,0x1D,0xF4,0xD4,0x89,0xE6,0xDC,0x09,
0x25,0x15,0xFC,0x2D,0x82,0x4E,0xC2,0x4C,0xC0,0x4A,0xC6,0x2F,0xD9,0xC0,0xDE,0xFD,
0x45,0xCF,0x43,0xCD,0x41,0xD3,0x5F,0x3B,0xD2,0xDB,0xAB,0xE7,0x12,0xF9,0xF8,0x1F,
0xFA,0x82,0x51,0x56,0x56,0xAA,0xAA,0xAF,0xED,0x05,0xEB,0xF8,0xE9,0x4A,0xE7,0x22,
0x7C,0x2F,0x1E,0x05,0x77,0xA1,0x31,0xFB,0x32,0x3B,0x4B,0x07,0x17,0xE8,0x18,0xFF,
0x1A,0xF1,0xAD,0x2F,0x08,0x7E,0x00,0x34,0x7D,0x35,0x30,0x78,0x26,0x8D,0x29,0x1C,
0x2B,0xC1,0x95,0xE7,0x38,0xF8,0xEE,0xB3,0xD1,0xC7,0x3A,0xDE,0xA1,0x9C,0xC7,0xDB,
0xDA,0x08,0x11,0x14,0xE7,0xA9,0xAE,0xA3,0xA0,0xA5,0xBA,0xBF,0xBC,0xB1,0xB6,0x48,
0x4B,0x4E,0x41,0x44,0x47,0x5A,0x5D,0x50,0x53,0x56,0x29,0x2C,0x2F,0x22,0x25,0x38,
0x3B,0x3E,0x31,0x34,0x37,0x0A,0xE0,0x57,0xF2,0xD7,0xF4,0x43,0x78,0xFF,0x42,0xDB,
0x0A,0x2E,0x21,0xC1,0xF6,0x3B,0x3D,0x6B,0xF2,0x27,0xEC,0x51,0xDA,0xEF,0x4A,0xFD,
0xCA,0x05,0x0A,0x0F,0x11,0xEA,0x00,0x50,0x2A,0xC7,0xF9,0xFC,0xEE,0xF3,0xF5,0x89,
0x8B,0xD5,0x44,0x41,0x42,0xA9,0xAE,0x7D,0x23,0xB7,0x96,0x93,0x4C,0xA4,0x64,0x5A,
0xEB,0x23,0x53,0xEA,0x2A,0x70,0xC7,0x1E,0xBD,0x85,0x99,0x7D,0x8F,0x0F,0xB0,0x56,
0x6A,0x50,0x63,0x5A,0x64,0x44,0x79,0x4E,0x76,0x48,0x4F,0x72,0x48,0x7C,0x4D,0x66,
0x52,0xA0,0x58,0x96,0x57,0x2A,0xEE,0xE5,0x10,0x04,0x39,0x3C,0x1D,0x30,0x35,0x35,
0xB7,0x33,0xBC,0xD5,0xE2,0x84,0x00,0xB2,0x0E,0xBD,0x74,0x49,0x4E,0x4B,0x8F,0xB8,
0xBB,0x8F,0x1B,0x1E,0x8C,0xB1,0xBE,0x61,0x62,0x5F,0x40,0x45,0xBE,0x0C,0xC8,0x96,
0x0B,0x08,0x93,0x3B,0xFA,0x5B,0x64,0xA1,0xDD,0xB6,0x5C,0x9D,0xE1,0x82,0x50,0x89,
0x0B,0xC3,0x44,0x5D,0xD3,0x22,0x3F,0x2A,0x42,0x2B,0x37,0x3C,0x3A,0x36,0x26,0x29,
0x48,0x56,0x20,0x4E,0x55,0x5A,0x3C,0x62,0x7D,0x71,0x9D,0xCB,0xD6,0xD6,0xF4,0x96,
0xFB,0x13,0xBE,0x19,0xA4,0x34,0x32,0x15,0xF0,0xD7,0x54,0x82,0x32,0x81,0x2B,0x17,
0xD8,0xFF,0x8F,0xE4,0x32,0xEC,0x02,0xE6,0x0C,0x2F,0xDF,0x33,0xD9,0x3D,0x04,0x01,
0xC3,0xD9,0xC9,0xD1,0xCF,0xA9,0x6E,0xF0,0xFD,0x7B,0x98,0xCB,0xE1,0x59,0x5E,0xA2,
0x97,0x62,0x9D,0x66,0x9F,0x8A,0x67,0x6A,0xB3,0xB2,0xF5,0xC8,0xCB,0xFE,0xC1,0x13,
0xC4,0xC0,0xE9,0x14,0x66,0x55,0x2E,0x51,0x5C,0x34,0x2B,0x26,0x2D,0x20,0x2F,0xF0,
0xC7,0x70,0xF9,0x23,0x22,0x2B,0xC2,0xE8,0x9C,0x40,0x7F,0x12,0x11,0xEE,0xA4,0xF9,
0x21,0x24,0xF8,0xD6,0xBC,0x41,0x72,0xD1,0xF7,0x92,0xE4,0xAC,0x1B,0x8B,0xFC,0xB9,
0x52,0x9D,0x29,0xA8,0x4E,0xCC,0xEA,0xF1,0xBF,0x97,0x14,0x79,0x41,0xB7,0x72,0xEC,
0x53,0xBB,0x7E,0x79,0xC0,0x2C,0x30,0x41,0xAA,0x11,0x88,0x75,0xFE,0xE7,0x21,0x21,
0xAC,0x18,0x2D,0xD5,0x8E,0x1B,0x70,0x48,0x4E,0x1F,0x30,0x21,0x86,0x21,0xFD,0x64,
0xE2,0x45,0x70,0x45,0x13,0x82,0x40,0x25,0x32,0xE3,0x5E,0x98,0x07,0x87,0x2A,0xD5,
0x0C,0x45,0xCE,0x44,0x0E,0xD1,0xCC,0x53,0x87,0x3E,0xD5,0xBC,0x8B,0x9A,0xE9,0xD8,
0xCF,0xB6,0xAD,0x84,0xF3,0xD2,0xE1,0x80,0x97,0xAE,0xA5,0xCC,0xFB,0xEA,0x99,0x88,
0x9F,0xE6,0xFD,0xD4,0xA6,0xBB,0xBC,0xB1,0xB2,0xB7,0x88,0x8D,0x8E,0x83,0xA4,0xB9,
0xBA,0xBF,0xB0,0xB5,0xB6,0x74,0x73,0x7E,0x7D,0x78,0x67,0x62,0x61,0x6C,0x6B,0x16,
0x15,0x10,0x1F,0x1A,0x19,0x04,0x03,0x0E,0x20,0x80,0xAA,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xF3,0xCD,0x52,0x00,0x3B,0x3B,0xC1,0x21,0x97,0x00,0x09,0xEB,0x21,0x66,0x00,0x09,
0x73,0x23,0x72,0x21,0x7B,0x00,0x09,0x73,0x23,0x72,0x21,0x89,0x00,0x09,0x73,0x23,
0x72,0x21,0xBE,0x00,0x09,0x11,0x00,0x40,0xD5,0xD9,0x08,0x3E,0x03,0xB7,0x06,0x08,
0x48,0xE1,0x08,0xD9,0x7E,0xCB,0x7F,0x20,0x3A,0xE6,0x07,0x4F,0x7E,0x0F,0x0F,0x0F,
0xE6,0x0F,0xC6,0x03,0x47,0x23,0x7B,0x96,0x23,0xE5,0x6F,0x7A,0x99,0x67,0xE5,0x7C,
0xE6,0x58,0xFE,0x58,0x28,0x12,0x4F,0x7D,0xE6,0x07,0xB1,0x4F,0x29,0x29,0x7C,0xE6,
0x1F,0x67,0x7D,0xE6,0xE0,0xB4,0x6F,0x61,0x7E,0xCD,0xA6,0x74,0xE1,0x23,0x10,0xDE,
0xE1,0x18,0xC1,0xE6,0x7F,0x28,0x1D,0x23,0xCB,0x77,0x20,0x0A,0x47,0x7E,0xCD,0xA6,
0x74,0x23,0x10,0xF9,0x18,0xAE,0xE6,0x3F,0xC6,0x03,0x47,0x7E,0xCD,0xA6,0x74,0x10,
0xFB,0x23,0x18,0xA0,0xD9,0x21,0x58,0x27,0xD9,0xFB,0xC9,0x13,0xD9,0x77,0x08,0x28,
0x19,0x24,0x10,0x1B,0x11,0x20,0xF8,0x19,0x0D,0x20,0x12,0x11,0x01,0xFF,0x19,0xC6,
0x08,0x30,0x08,0x11,0xE0,0x07,0x19,0x3D,0x18,0x01,0x23,0x0E,0x08,0x06,0x08,0x08,
0xD9,0xC9,0xC8,0x00,0x87,0x30,0xDC,0xEF,0xEB,0xEF,0xEB,0x5C,0xCB,0x00,0x8F,0x3C,
0x5E,0xBF,0x9F,0xAF,0x95,0x42,0x3C,0x00,0x3A,0x74,0xA8,0x96,0xAF,0x5D,0x18,0x06,
0x40,0x0C,0x88,0x00,0x00,0x01,0x03,0x07,0x07,0x0F,0x0E,0xC0,0x1D,0x8B,0x2D,0x3E,
0x2F,0x2F,0x14,0x16,0x13,0x09,0x08,0x04,0x03,0x08,0x56,0x00,0x16,0x8B,0x0F,0x08,
0x0F,0x61,0xB2,0x75,0x6B,0x57,0x2E,0x45,0x38,0x18,0x68,0x81,0x27,0x30,0x6F,0x82,
0x7F,0x05,0xC1,0xFF,0x00,0x60,0xC3,0xFF,0x85,0x3C,0x18,0x18,0xDB,0xDB,0x08,0x0C,
0x86,0x00,0x81,0xDB,0xE7,0x3F,0x05,0x00,0x19,0x8F,0x00,0xC3,0xC3,0xE7,0xE7,0x24,
0xE7,0x86,0xCB,0xD7,0xAE,0x5D,0xBA,0x14,0xE3,0x20,0x36,0x30,0xAF,0x82,0xFF,0x78,
0x10,0x40,0x89,0x04,0x00,0x00,0x80,0xC0,0xE0,0xE0,0xF0,0x70,0xC0,0xB8,0x8B,0xBC,
0x7C,0xFC,0xFC,0x38,0x78,0xF8,0xF0,0xF0,0xE0,0xC0,0x08,0xD6,0x00,0x16,0x8B,0xF0,
0x10,0xF0,0x18,0x2C,0x5D,0xBA,0x75,0xEB,0x51,0x8E,0x20,0x36,0x81,0x3F,0x38,0xF0,
0x81,0xFC,0x10,0x80,0x41,0x00,0x87,0x0C,0x3B,0xF7,0xD7,0xF7,0xD7,0x3A,0x59,0x00,
0x00,0xC0,0x83,0xEB,0xD7,0xAE,0x28,0xC0,0x81,0xFC,0x00,0xB2,0x81,0x23,0x30,0x83,
0x60,0x40,0xD2,0x00,0x58,0xC0,0x08,0x81,0x81,0x83,0x38,0x40,0x08,0xA8,0x83,0x06,
0x06,0x03,0xC0,0x06,0x84,0x00,0x38,0x7C,0x7C,0xC1,0xFE,0x81,0x7C,0x68,0x52,0x58,
0xC0,0x00,0x74,0x83,0x00,0xFF,0x0F,0x38,0x0C,0x01,0xBE,0x86,0x36,0xB6,0xE6,0xB7,
0xB7,0x36,0x78,0x40,0x78,0xC0,0x01,0xEB,0x81,0x1F,0x08,0x40,0x81,0xFF,0x11,0x9F,
0x83,0x00,0x00,0xC0,0x10,0xFF,0x86,0x33,0x76,0xF0,0xB0,0x36,0x33,0x78,0x80,0x78,
0xC0,0x18,0xF3,0x00,0x43,0x29,0x37,0x81,0xFD,0x0A,0x3D,0x86,0xE6,0x36,0xE7,0x36,
0x36,0xE6,0x78,0xC0,0x78,0xC0,0x83,0x00,0x00,0x3F,0xC4,0xFF,0x22,0x75,0x81,0xE8,
0x10,0xC0,0x84,0x36,0xF6,0x37,0x37,0x78,0xC0,0x79,0x80,0x19,0x72,0x48,0x40,0x81,
0x40,0x12,0xB6,0x85,0x70,0xF0,0xB0,0x30,0x30,0x79,0x40,0x79,0x80,0x02,0x2B,0x83,
0xFF,0xFF,0xFE,0x40,0x80,0x12,0xA6,0x82,0x04,0x06,0xC3,0x02,0x83,0x06,0x04,0x07,
0x28,0x12,0x81,0x07,0x28,0x0B,0x71,0x80,0x02,0xB2,0x84,0xF8,0xFF,0xFF,0xFC,0x43,
0x35,0x84,0xF0,0x08,0xE4,0x92,0xC1,0x8A,0x84,0x92,0xE4,0x08,0xF0,0x1B,0x4C,0x85,
0x91,0x51,0x9D,0x55,0x9D,0x7A,0x40,0x20,0x81,0x29,0xB7,0x1B,0x78,0x8D,0x20,0x60,
0xE3,0xA2,0xA2,0xA4,0xA8,0xB2,0xA6,0x8A,0x92,0xA2,0xA2,0x22,0xE4,0x81,0x04,0x00,
0x80,0x02,0xD7,0x7A,0x40,0x0B,0xAB,0x81,0xC7,0x00,0x72,0x2A,0x00,0x13,0xBB,0x84,
0x9F,0xA0,0xA7,0x98,0xC1,0x80,0x84,0x98,0xA7,0xA0,0x9F,0x1B,0xCC,0x85,0x5F,0x50,
0xDE,0x50,0x5F,0x7A,0x40,0x20,0x71,0x03,0xF0,0x81,0xB2,0x4B,0xE2,0x8A,0xE3,0x14,
0xD4,0x57,0x50,0xA0,0xA0,0x50,0x57,0xD4,0x2B,0x64,0x85,0x39,0x45,0x41,0x45,0x39,
0x7B,0x00,0x2C,0x29,0x13,0xEF,0x82,0x0F,0x0F,0xC3,0x1F,0x8D,0x0F,0x0F,0xFC,0x02,
0xFA,0x0A,0x0A,0x14,0x14,0x0A,0x0A,0xFA,0x02,0x11,0x17,0x87,0xA0,0x00,0xF7,0x01,
0xE1,0x01,0xF1,0x7B,0x00,0x14,0x69,0x81,0x0F,0x2A,0x02,0xC6,0xFF,0x8C,0xE1,0xA1,
0xA2,0xA4,0xA9,0xB3,0xA5,0x89,0x91,0xA1,0xA1,0xE1,0x1C,0x8C,0x85,0xDF,0x10,0x1E,
0x10,0x1F,0x7B,0x00,0x14,0xA9,0x11,0xBE,0x50,0x43,0x81,0xC0,0xC7,0x40,0x13,0xF6,
0x1A,0x17,0x12,0x1A,0x7B,0xC0,0x04,0x2D,0x88,0xE0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFE,
0xFE,0x1C,0xF8,0x82,0x06,0x07,0x7B,0x80,0x7B,0xC0,0x43,0xC0,0x5D,0x1D,0x83,0x01,
0x03,0x8F,0x7B,0x80,0x7B,0xC0,0x34,0x80,0x81,0x9E,0x3D,0x6E,0x83,0x40,0x40,0x60,
0x04,0xA0,0x82,0xF8,0xF8,0x7B,0x80,0x7C,0x80,0x2C,0x80,0x81,0x03,0x7C,0x70,0x7B,
0x80,0x7C,0x80,0x35,0x40,0x6C,0xB0,0xC0,0x01,0x81,0x03,0x7B,0x80,0x7C,0x80,0x25,
0x40,0x81,0x7F,0x65,0x30,0x85,0x08,0x08,0x1C,0x1C,0xBE,0x7B,0x80,0x7D,0x40,0x25,
0x40,0x82,0xFF,0xFF,0x0B,0x22,0x83,0x10,0x10,0x28,0x0C,0xEC,0x04,0xF0,0x85,0x7C,
0x7D,0x79,0x79,0x7B,0xDD,0x00,0x46,0x00,0x83,0xFF,0xFF,0x01,0x25,0xA9,0x8A,0x0C,
0x1E,0x3F,0x00,0x1E,0x5C,0xDE,0xDC,0x9E,0x5C,0x41,0x52,0x7E,0xC0,0x5D,0x40,0x81,
0x01,0x03,0xFB,0x08,0xB5,0x00,0xB6,0x82,0x1C,0x3E,0xC2,0x1C,0x84,0xDD,0xED,0xF3,
0xF9,0x7E,0xC0,0x76,0xC0,0x26,0x00,0x0E,0xB0,0x2C,0x18,0x02,0x75,0xC0,0xE0,0x84,
0xF0,0xF0,0xF9,0xD1,0x7E,0xC0,0x7E,0xC0,0x16,0xC0,0x1C,0xFC,0x57,0x5D,0x84,0x80,
0x80,0xC0,0xC1,0x7E,0xC0,0x6E,0xC0,0x86,0x5C,0xBA,0x74,0xEA,0x50,0x8E,0x24,0xFC,
0x81,0x01,0x21,0x03,0xD1,0x00,0x7E,0xC0,0x47,0xC0,0x87,0x80,0x5C,0x2E,0x17,0x6B,
0xB5,0xBA,0x18,0x06,0x40,0x0C,0x7F,0xD2,0x7F,0xE4,0x7F,0xF6,0x38,0x36,0xC1,0x00,
0x84,0x01,0x07,0x1F,0x3F,0x02,0x1D,0x82,0xFF,0xE0,0x0F,0x76,0x05,0x20,0x0F,0xDA,
0x9C,0x5A,0x3D,0x92,0x09,0x40,0x44,0x4E,0x0C,0x15,0x80,0x10,0x1A,0x3A,0x57,0x12,
0x80,0x28,0x0C,0x1C,0x2A,0x08,0x40,0x01,0x23,0x23,0x35,0x63,0x05,0xC1,0x00,0x8A,
0x07,0x0B,0x15,0x0A,0x00,0x0B,0x0B,0x05,0x0E,0x1F,0x08,0x3A,0xC2,0xFF,0x08,0x3F,
0x0F,0xB8,0x1E,0x25,0xA7,0x6F,0x92,0x44,0x91,0x88,0x0A,0x23,0x22,0x70,0xA8,0x71,
0x31,0x2B,0x03,0x25,0x61,0x70,0xB0,0x68,0xA2,0x02,0x07,0x06,0x8A,0x93,0x46,0x0A,
0x02,0x00,0x40,0x04,0xF0,0xFC,0xFC,0xB8,0x00,0x98,0x98,0x90,0xC0,0x00,0x83,0x80,
0xC3,0xF7,0x0E,0x58,0x3D,0x96,0x81,0xE0,0x1E,0x67,0x95,0xAB,0x57,0x8A,0x00,0x22,
0x30,0xA2,0x03,0x27,0x0A,0x02,0x88,0x61,0x23,0x61,0xB0,0x24,0x06,0x0E,0x05,0xC4,
0xC0,0x00,0x8C,0x5E,0xAF,0x50,0x0F,0x2B,0x57,0x2A,0x00,0x2E,0x1E,0x2E,0x14,0xC0,
0x00,0x84,0x40,0xE0,0xF0,0xFC,0x69,0x9B,0x18,0xC5,0x8D,0x7F,0xAD,0x52,0x04,0x20,
0x02,0x00,0x10,0x80,0x00,0x08,0x18,0x9C,0x00,0xBF,0x93,0x00,0x00,0x40,0x00,0x5C,
0xBE,0x00,0x74,0x74,0x00,0xC0,0xE0,0xF1,0xE3,0x00,0x60,0x61,0x61,0x41,0x1A,0x92,
0x82,0x01,0x81,0x69,0xDB,0x81,0xF0,0x1E,0xEA,0x88,0x6B,0x54,0xA9,0x02,0x10,0x00,
0x02,0x40,0x02,0xB9,0x86,0x2E,0x5F,0x00,0x2E,0x2E,0x00,0x02,0xFF,0x8E,0x12,0x12,
0x42,0x02,0x00,0x00,0xFF,0xFF,0xA5,0x00,0xFF,0x39,0x30,0x2B,0xC0,0x00,0x82,0xE0,
0xF3,0x0F,0x17,0x81,0xF8,0x5F,0xFA,0x17,0x2A,0x89,0xFD,0xFF,0xAB,0x45,0x10,0x82,
0x08,0x00,0x04,0x03,0x36,0x87,0x30,0x38,0x5C,0x38,0x34,0x52,0x10,0x0A,0x7B,0x81,
0x00,0x01,0x6F,0x87,0x95,0xC0,0xAE,0x2E,0x17,0x00,0x00,0x16,0x8B,0x81,0xC0,0x09,
0x74,0xD2,0x00,0x90,0x01,0x01,0x6E,0x96,0x2A,0x00,0x8A,0x02,0x10,0x84,0x00,0x04,
0x04,0x0E,0x96,0x0D,0x08,0xF0,0x0F,0xFA,0x86,0xE0,0xF0,0x60,0x00,0x60,0x60,0x2D,
0x31,0x0D,0x17,0x45,0xDD,0x9D,0x1F,0x1F,0x3F,0x3F,0x7F,0x5F,0xDF,0xAF,0xDF,0xAF,
0x9F,0x2F,0x5F,0x2B,0x5F,0x2F,0x57,0x2B,0x17,0x2A,0x95,0x82,0x89,0x42,0x49,0x22,
0x20,0x11,0x08,0x23,0x1D,0xC0,0x00,0x82,0x01,0x03,0x07,0x39,0x32,0x8F,0x2A,0x04,
0xD4,0xFF,0x8E,0xBF,0xFF,0x7F,0xAF,0x7F,0xAB,0x57,0x2A,0x55,0x09,0x22,0x00,0xE0,
0x1C,0x03,0x60,0x83,0x3E,0xF7,0x0F,0x07,0x8D,0x82,0x7E,0x3E,0xC1,0x00,0x81,0x02,
0x06,0x17,0x81,0xF8,0x7D,0xDB,0x2F,0xEE,0x83,0xFE,0xD0,0xA0,0x15,0xE5,0x05,0xBC,
0x87,0xB0,0xFC,0x57,0xAA,0x55,0x80,0x01,0x0D,0xBE,0x86,0x8F,0xBD,0x43,0x7F,0xBF,
0xBF,0x26,0xF4,0x81,0x83,0x07,0xD3,0x03,0x48,0x82,0xF0,0xF8,0x05,0xDA,0x0F,0xE1,
0x82,0xE3,0xDD,0xC1,0xD8,0x8B,0xEE,0xF1,0xFF,0xFF,0xF9,0xFC,0xFE,0x3F,0x1F,0x63,
0x81,0x1F,0xE2,0x87,0x09,0x03,0x0F,0xFD,0xBB,0x4E,0x38,0x16,0x29,0x81,0x80,0x06,
0x07,0xC0,0xFC,0x0D,0x06,0x81,0x07,0x0E,0x96,0x4B,0x97,0x81,0xCE,0x0B,0x93,0xC1,
0xF0,0x82,0xF8,0xF8,0x0F,0xD5,0x81,0xC0,0xC0,0xF8,0x00,0x0F,0x96,0xE0,0xE0,0xC0,
};
// read sector
void read_sector()
{
if( side == 0)
{
byte i = 0, s = sector - 1;
while(1)
{
uint16_t w = pgm_read_word_near(track0[s] + i);
sector_data[i] = (uint8_t)w;
sector_data[i+1] = (uint8_t)(w >> 8);
if(i==254) break;
i += 2;
}
}
else
{
byte i = 0, s = sector - 1;
while(1)
{
uint16_t w = pgm_read_word_near(track1[s] + i);
sector_data[i] = (uint8_t)w;
sector_data[i+1] = (uint8_t)(w >> 8);
if(i==254) break;
i += 2;
}
}
}
int main() {
// init();
cli();
prepare_track_header();
prepare_sector_header();
// Setup USART in MasterSPI mode 500000bps
//DDRD |= (1 << DDD4);
UBRR0H = 0x00;
UBRR0L = 0x0F; // 500 kbps
UCSR0C = 0xC0;
UCSR0A = 0x00;
UCSR0B = 0x28; // enable USART
//INIT INT0 interrupt
EICRA = 0x03; // falling edge=2, rising edge=3
EIFR = 0x01; // clear interrupt flag
EIMSK = 0x01; // enable INT0
// AFTER TRD is MOUNTED
PORTC |= ((1 << MOTOR_ON) | (1 << DRIVE_SEL) | (1 << SIDE_SEL));
//SET INDEX,TRK00 AS OUTPUT AND HIGH, WP AS OUTPUT AND LOW
//PORTD |= ((1 << INDEX) | (1 << TRK00)); // set 1
//PORTD |= (1 << STEP) | (1 << DIR_SEL);
PORTD = 255;
//////PORTD &= ~(1 << READ_DATA); // set 0
PORTD &= ~(1 << WP); // set 0
DDRD |= ((1 << INDEX) | (1 << TRK00) | (1 << WP));
// ---------------------------------------------------
while (1)
{
while ((PINC & (1 << MOTOR_ON)) > 0);
// this part is after motor on and drive sel --------
PORTD &= ~(1 << TRK00); // set 0
tmp = 0;
state = 0;
b_index = 0;
prev_byte = 0x4E;
sector = 1;
track = 0;
side = 0;
data_sent = 0;
read_sector();
sei(); // ENABLE INTERRUPTS
do
{
while (data_sent != 1);
// read next half of sector
read_sector();
if (data_sent == 0) { cli(); while (1); } // speed test
while (data_sent != 0);
}
while ((PINC & (1 << MOTOR_ON)) == 0);
cli(); // DISABLE INTERRUPTS
PORTD |= (1 << TRK00);
}
}
PS: убрал маппинг регистров и ISR_NAKED, компилятор справляется нормально