/Designs/GPSRL01B/SW/gpsrl.c
20,21 → 20,8
#define TL2 PIN_C1
#define TL3 PIN_C2
 
// NMEA
#define TIME 6 // For NMEA parsing
#define TIME_LEN 10
#define LATDEG 19
#define LATMIN 21
#define LONDEG 32
#define LONMIN 34
#define SAT 36
#define DEG_LEN 2
#define MIN_LEN 7
#define AZIMUTH 46
#define NMEA_LINESIZE 79
 
//$GPRMC,105815.503,V,4915.5877,N,01442.3896,E,0.0,0.00,060108,,,N*44
 
//$GPGGA,000415.000,4915.6225,N,01442.3608,E,1,03,50.0,409.6,M,45.2,M,0.0,0000*48
void main()
{
 
54,57 → 41,99
printf(lcd_putc,"(c) Kaklik 2008");
delay_ms(300);
printf(lcd_putc,"\f");
 
set_adc_channel(SCINTILAK);
 
while(TRUE)
{
 
auto char line[NMEA_LINESIZE];
char item[16];
char *ptr;
 
char tab1[20];
char tab2[20];
char tab3[20];
char tab4[20];
char tab5[20];
 
int8 n;
int16 intensity;
char c;
 
tab1[19]=0;
tab2[19]=0;
tab3[19]=0;
tab4[19]=0;
tab5[19]=0;
 
// line=malloc(NMEA_LINESIZE); // Space for one line
// if (line==NULL) {printf(lcd_putc,"Error"); sleep();};
line[NMEA_LINESIZE-1]=0;
while(fgetc(NMEA)!='$'); // Waiting for start character
 
while(fgetc(NMEA)!='$'); // Waiting for start character
for(n=0;n<(NMEA_LINESIZE-1);n++) // Read line up to checksum
intensity=read_adc();
tab1[0]='$';
for(n=1;n<(19);n++)
{
tab1[n]=fgetc(NMEA);
};
 
for(n=0;n<(19);n++)
{
tab2[n]=fgetc(NMEA);
};
 
for(n=0;n<(19);n++)
{
tab3[n]=fgetc(NMEA);
};
 
for(n=0;n<(19);n++)
{
c=fgetc(NMEA);
if(c=='*')
{
line[n]=0;
tab4[n]=0;
tab5[0]=c;
tab5[1]=fgetc(NMEA);
tab5[2]=fgetc(NMEA);
tab5[3]=0;
goto tisk;
};
tab4[n]=c;
};
 
for(n=0;n<(19);n++) // Read line up to checksum
{
c=fgetc(NMEA);
if(c=='*')
{
tab5[n]=c;
tab5[n+1]=fgetc(NMEA);
tab5[n+2]=fgetc(NMEA);
tab5[n+3]=0;
break;
};
line[n]=c;
tab5[n]=c;
};
 
tisk:
 
printf(lcd_putc,"\f");
 
if(!input(TL1))
{
lcd_gotoxy(1,1);
strncpy(item,&line[LATDEG],DEG_LEN+MIN_LEN); item[DEG_LEN+MIN_LEN]=0;
printf(lcd_putc,"%s \n",item);
 
strncpy(item,&line[LONDEG],DEG_LEN+MIN_LEN); item[DEG_LEN+MIN_LEN]=0;
printf(lcd_putc,"%s",item);
 
printf(lcd_putc,"%s\n",tab1);
printf(lcd_putc,"%s",tab2);
}
else
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Time %06.0g \n",strtod(&line[TIME],&ptr));
printf(lcd_putc,"sats %06.0g ",strtod(&line[SAT],&ptr));
printf(lcd_putc,"%s\n",tab3);
printf(lcd_putc,"%s",tab4);
}
 
puts(line,PC);
puts(strcat(tab1,strcat(tab2,tab3)),PC);
puts(strcat(tab4,tab5),PC);
printf(" /%u/%Lu\n\r",input(RANGE), intensity);
 
// free(line);
}
}
 
/Designs/GPSRL01B/SW/gpsrl.hex
1,298 → 1,151
:1000000008308A00002800000A108A100A118207AE
:1000000000308A00642A00000A108A100A11820750
:1000100028340C34013406340A108A100A1182077D
:1000200047345034533452344C3430343134423405
:1000300020340A3400340A108A100A118207283446
:100040006334293420344B3461346B346C34693478
:100050006B342034323430343034383400340A10C5
:100060008A100A1182070C3400340A108A100A110F
:100070008207543469346D34653420342534303487
:1000800036342E343034673420340A3400340A10C5
:100090008A100A1182077334613474347334203443
:1000A0002534303436342E34303467342034003440
:1000B000C4308400000803196C280130F800F701EF
:1000C000F70B6028F80B5F284A30F700F70B66281B
:1000D00000000000800B5D28003406080F398316ED
:1000E000CB004A0EF700F030F7057708F0394B04E3
:1000F000831286000615831606112130F700F70BD0
:100100007F2883120611831606118312003483168A
:10011000C808031D8F288312861091288316831226
:10012000861483168610C90E4908CA0083126D20F2
:100130008316C90E4908CA0083126D204230F700A9
:10014000F70BA0280000003414308316C40083127B
:1001500058200F308316860583128610831686106A
:100160008312061183160611B3013308023C031CE7
:10017000C5280230C4008312582003308316CA00F9
:1001800083126D208316B30AB5280D30F700F70BE4
:10019000C7280230CA0083126D200D30F700F70B1C
:1001A000CF288316B3013308023C031CE928330827
:1001B000831204208316B400C8013408C9008312D6
:1001C000872002308316C400831258208316B30A96
:1001D000D32883128A150A12642801308316450237
:1001E000FC3E03180629043E831212298316C60119
:1001F000062940308316C600062914308316C6002F
:10020000062954308316C60006298316013044029D
:10021000C60746088038C700C8014708C9008312CE
:10022000872000340A148A100A118207F628F92858
:10023000FD280129831643080C3A831203192A2941
:10024000063A03193629073A03193E29053A0319D4
:1002500045294C298316C8010130C9008312872023
:1002600002308316C400831258205A2901308316A5
:10027000C4000230C5008312ED205A2901308316D4
:10028000C400C5008312ED205A298316C80110301E
:10029000C900831287205A29831643081F3C031C78
:1002A00053290730C3050130C8004308C900831231
:1002B00087205A2900340830F700201720088316B9
:1002C00087008312071F6629831661298316B301ED
:1002D000F7177A29F7137A2903108312071B0314DF
:1002E0008316B30C77177A297713F70B6C29330829
:1002F000F80085293F30F71B1130F800F80B7E29F4
:10030000F71B6A29771B74296C2983120034831622
:100310003308B600B5080319A02934088400800802
:100320000319A0293608B60AB7003408B40A8400B5
:100330000008B8003708840038088000B5038A290F
:10034000B5080319A9293608B60A84008001B50347
:10035000A0293308F80083120034831643080319D8
:100360001E2ACB00470803191E2ACB070318BF29F2
:100370007F30CB02031C1E2A03191E2AC329813099
:10038000CB0703181E2A4B08F700F801F901FA0100
:100390004408CF00CF174508CE004608CD001830DE
:1003A000CB00CC014D1CEC294A08FA07031CDE29BE
:1003B000F90A031DDE29F80A0319CC174908F907C1
:1003C000031CE529F80A0319CC174808C500C5170E
:1003D0004508F8070318CC17CC0DF80CF90CFA0CEB
:1003E000CF0CCE0CCD0C0310CB0BD1290130F7076D
:1003F00003181E2AF81B032ACF0DFA0DF90DF80D6C
:10040000F70303191E2ACF1F142AFA0A031D142A00
:10041000F90A031D142AF80A031D142AF80CF90C12
:10042000FA0CF70A03191E2A4408CC004808CC0627
:10043000CC1F1C2AF817222AF813222AF701F801E8
:10044000F901FA010000831200348E30F7008316A0
:100450004608F8004508F900FA01F808031D3A2A91
:100460007908F800F9010830F702F808031D3A2A64
:10047000F701422A0310F81B412AF90DF80DF70382
:100480003A2AF8130000831200348030831C4B2A70
:100490008316CE0683128316D301D4014A08D200F4
:1004A0004E08D20649080319362BD100F7004D0833
:1004B00003193F2BD1020319DC2A031C9B2A4E0887
:1004C000D700D7174F08D6005008D500D401031025
:1004D000D70CD60CD50CD40CD10B662AD21F732A9C
:1004E0005314532B531051105316CC308400682BE7
:1004F0005312D21B852A511C902AD70CD60CD50C2E
:10050000D40CF70A03194E2B902AD71B932A0310F9
:10051000D40DD50DD60DD70DF70303194E2B852A13
:100520005317FB2A53134A08D200CA1F992AD71718
:10053000472BD713472B4D08D100F7004908D102AC
:100540004A08D700D7174B08D6004C08D500D4016D
:100550000310D70CD60CD50CD40CD10BA72AD21F64
:10056000B42AD314532BD3105110D316D030840097
:10057000682BD312D21BC62A511CD12AD70CD60CF9
:10058000D50CD40CF70A03194E2BD12AD71BD42A29
:100590000310D40DD50DD60DD70DF70303194E2B2F
:1005A000C62AD317FB2AD3134E08D200CE1FDA2A4D
:1005B000D717472BD713472B4E08D700D7174F080D
:1005C000D6005008D500D21FE92AD7135315532B54
:1005D0005311D4015110CC308400682BD21B112B45
:1005E0004A08D200511CFB2AD70CD60CD50CD40CCF
:1005F000F70A03194E2BD41F0C2BD50A031D0C2B05
:10060000D60A031D0C2BD70A031D0C2BD70CD60CB6
:10061000D50CF70A03194E2B531B922AD31BD32A4E
:10062000302B8030D706D71F192B532B4E08D20002
:10063000262B4A08D200D708031D262BD608031DF7
:10064000262BD508031D262BF701472BD71B302B54
:100650000310D40DD50DD60DD70DF70B262B4E2B31
:10066000D21F342BD717472BD713472B4D08F70032
:100670004E08D7004F08D6005008D500472B490830
:10068000F7004A08D7004B08D6004C08D500570899
:10069000F8005608F9005508FA00862BF701F80112
:1006A000F901FA01862BD401D509D609D709D40955
:1006B000D40A031D612BD50A031D612BD60A031929
:1006C000D70A5318722AD318B32A5319E82A162BBB
:1006D0000008D507031C722BD60A031D722BD70AFC
:1006E0000319511484030008D607031C7A2BD70A78
:1006F0000319511484030008801F803AD707031898
:100700005114531A782AD31AB92AEE2A00008312F8
:1007100000348316420803194F2CCE0046080319F3
:100720004F2CCE02031C992B7F30CE0703184F2C81
:100730009F2B8130CE02031C4F2C03194F2C4E08E7
:10074000F700F801F901FA01CD014308CC00CC17FC
:100750004408CB004508CA001930CE004908CA0237
:100760000318C22B0130CB020318C22BCC02031892
:10077000C22BCD020318C22BCD0ACC0ACB0A4908E2
:10078000CA07F42B4808CB020318DD2B0130CC023A
:100790000318DD2BCD020318DD2BCD0ACC0A480847
:1007A000CB074908CA07031CF42BCB0A031DF42B03
:1007B000CC0A031DF42BCD0AF42B47088038CC0259
:1007C0000318F32B0130CD020318F32BCD0A470891
:1007D0008038CC074808CB07031CD12BCC0A031D5B
:1007E000D12BCD0AD12B7A14CE0BF72B022C031070
:1007F000CA0DCB0DCC0DCD0D0310FA0DF90DF80D72
:10080000CF0DAE2B4F1C0A2C0310F80CF90CFA0C70
:10081000CF0C0D2CF70303194F2CCF1B362C0310D4
:10082000CA0DCB0DCC0DCD0D4908CA020318222CE0
:100830000130CB020318222CCC020318222CCD024B
:10084000031C452C4808CB0203182D2C0130CC0288
:1008500003182D2CCD02031C452C47088038CC02F0
:100860000318362C0130CD02031C452CFA0A031D57
:10087000452CF90A031D452CF80A031D452CF70ADF
:1008800003194F2CF80CF90CFA0C4308CE0047085A
:10089000CE06CE1F4D2CF817532CF813532CF7010E
:1008A000F801F901FA01000083128A110A12422D9F
:1008B0007F308316B500B601B701B801B901BA019E
:1008C000BB01BC01BD01BE01C001B308031D6D2CFD
:1008D000F701F801F901FA01A52D4008C00A330714
:1008E00084000008BF003F082F3C03187B2C3F0802
:1008F000393C0318872C3F082B3C0319872C3F08F1
:100900002D3C0319872C3F082E3C031D712D3F08F9
:100910002D3C031D932C0130BD004008C00A330755
:1009200084000008BF003F082F3C0318FA2C3F0842
:10093000393C031CFA2CBE08031DFA2CC601C50164
:100940002030C4008230C3003C08CA003B08C90004
:100950003A08C8003908C7008312AD21770883160A
:10096000C1007808C2007908C3007A08C400C60133
:100970003F08C50083122522831083164408CC004B
:100980004308CB004208CA004108C9007A08D000D9
:100990007908CF007808CE007708CD008312452271
:1009A00077088316C5007808C6007908C7007A085A
:1009B000C80083144808CC004708CB004608CA008A
:1009C0004508C900D001CF014030CE008430CD00B1
:1009D000831245227A088316BC007908BB00780888
:1009E000BA007708B9004008C00A3307840000083D
:1009F000BF00932C3F082E3C031D062D0130BE0086
:100A00004008C00A330784000008BF003F082F3C9D
:100A10000318662D3F08393C031C662D3E0B662DDE
:100A20003808C6003708C5003608C4003508C300BA
:100A3000CA01C9012030C8008230C7008312AD212D
:100A40007A088316B8007908B7007808B6007708E6
:100A5000B50030303F02C601C500831225227A0856
:100A60008316C5007908C4007808C3007708C2005F
:100A70003808C9003708C8003608C7003508C6005E
:100A80008312892B831083163C08CC003B08CB00D3
:100A90003A08CA003908C9007A08D0007908CF009E
:100AA0007808CE007708CD00831245227A08831695
:100AB000BC007908BB007808BA007708B900400884
:100AC000C00A330784000008BF00062D3F082B3CF6
:100AD000031D702D4008C00A330784000008BF00C2
:100AE000732C3D0B8C2DC601C5018030C4007F30B6
:100AF000C3003C08CA003B08C9003A08C8003908CE
:100B0000C7008312AD217A088316BC007908BB00A8
:100B10007808BA007708B900B40803199D2DC008F9
:100B20000319992DC003340884004008330780005E
:100B30009D2D34088400330880003908F7003A08F6
:100B4000F8003B08F9003C08FA00831200348316D1
:100B50004308B63CC300FA014408C700C417031099
:100B6000C40CC50CC60CFA0CF90CF80CF70CC30B32
:100B7000AF2DC71FC62DF709F809F909FA09F70AB9
:100B80000319F80A0319F90A0319FA0A83128A11D8
:100B90000A125D2EF701F801F901FA018316CB0163
:100BA000CC01CD01CE014A08490448044704031989
:100BB000092E2030CF000310C30DC40DC50DC60D86
:100BC000CB0DCC0DCD0DCE0D4A084E02031DF22DDE
:100BD00049084D02031DF22D48084C02031DF22D59
:100BE00047084B02031C032E4708CB024808031C8E
:100BF000480FCC024908031C490FCD024A08031CC8
:100C00004A0FCE020314F70DF80DF90DFA0DCF0BB4
:100C1000DB2D0000CB3084008312003404088316DF
:100C2000BD003C08BE000319302E3B08C6003A0840
:100C3000C5003908C4003808C300CA01C901203002
:100C4000C8008230C7008312AD217A088316BB002A
:100C50007908BA007808B9007708B800BE0B152EDD
:100C60007E30F700F801B91BF817F901FA0183107B
:100C70003B08CC003A08CB003908CA003808C90044
:100C80007A08D0007908CF007808CE007708CD0028
:100C9000831245227A088316BB007908BA007808C7
:100CA000B9007708B8003B08C6003A08C500390803
:100CB000C4003808C3008312A72D7A088316BB002E
:100CC0007908BA007808B9007708B800BB1F752EFC
:100CD000BD03BD16B809B909BA09BB09B80A031999
:100CE000B90A0319BA0A0319BB0A3B30C2009A3089
:100CF000C100CA30C000BF010A30BE003C08031961
:100D0000BD0A3B08C6003A08C5003908C4003808C7
:100D1000C3004208CA004108C9004008C8003F0893
:100D2000C7008312CA2500088316B800840A000889
:100D3000B900840A0008BA00840A0008BB00FD302C
:100D40008407F708031DB72E3C0A3E020319B72E8D
:100D50003D080319B92E0F393E020319B12E0318AD
:100D6000F12EBD1BF12E3D1BB92E2030EB2E203075
:100D7000BD05BD1EC92EBD123C08031DBD0377086D
:100D8000BD002D30C30083121A2183163D08F700E1
:100D9000BD013C083E02031DD92E7708BD002E3050
:100DA000C30083121A2183163D08F7002030BD05C9
:100DB00000303030BD1EEB2EBD123C08031DBD03BC
:100DC0007708BD002D30C30083121A2183163D0819
:100DD000F700BD013030F7077708C30083121A21EE
:100DE00083164208C6004108C5004008C4003F08F9
:100DF000C300CA01C901C8010A30C7008312CA254D
:100E00007A088316C2007908C1007808C000770804
:100E1000BF00BE0B812E83120034A013200883165E
:100E20008700831287130830F800000000000000DC
:100E3000F8172B2FF8138316B40C83120318871797
:100E4000031C871378172B2F7813F80B1B2F000028
:100E50000000000087171C308400840B2D2F000039
:0C0E60000000F81B1A2F781B242F003410
:10100000A701D930A60014308316D900DB01DA011C
:10101000831284011F308305831605108312051483
:10102000A0132008831687008312871783161F14C6
:101030009F141F159F1107309C00FF308312A000E2
:10104000A1010130A200A301A401A50183161F1074
:101050009F141F159F151F1383121F179F178316A9
:101060009F1783121F149412A01220088316870062
:10107000831220162008831687008312A0112008EF
:1010800083168700003083129400831694000108B1
:10109000C73908388100831290010030F8009200AF
:1010A00000308316920007309C0005080330F700DB
:1010B000F70B58281C0883120D13FE3083169D0071
:1010C00005158A118312A4288A1564308316C4007A
:1010D0008A11831258208A1505308316C400013006
:1010E000C5008A118312ED208A158316B0013008DD
:1010F0008A1183120C208A15003803198928831657
:10110000B00AC3008A1183121A218A158316772820
:1011100083128316B00130088A1183121B208A15AE
:10112000003803199D288316B00AC3008A11831260
:101130001A218A1583168B28831202308316B00079
:101140009630C4008A11831258208A158316B00B7A
:10115000A028B00130088A1183122F208A15003888
:101160000319BC288316B00AC3008A1183121A21FE
:101170008A158316AA2883120830F8001F08C73979
:1011800078049F00F6018A115B218A157808243CB7
:10119000031DC328FD017D084D3C031CE4288A1172
:1011A0005B218A157808FE007E082A3C031DDD2895
:1011B00028307D0784008001E42828307D078400E2
:1011C0007E088000FD0ACB288316B00130088A1102
:1011D00083122F208A1500380319F8288316B00AC5
:1011E000C3008A1183121A218A158316E6288312F6
:1011F000201420088316870083120718562901300F
:101200008316C400C5008A118312ED208A15A03010
:101210008316B3003B30B4000930B5008A11831245
:1012200087218A158316A901A030840000300004AC
:10123000031927290408B0000008C3008A1183128B
:101240001A218A15831630088400840A1629203052
:10125000C3008A1183121A218A150A308316C3002B
:101260008A1183121A218A15A0308316B3004830E0
:10127000B4000930B5008A11831287218A158316BC
:10128000A901A03084000030000403195429040887
:10129000B0000008C3008A1183121A218A15831630
:1012A00030088400840A4329DC2983120130831624
:1012B000C400C5008A118312ED208A152E308316D2
:1012C000B3007C30B4008A11831258248A15770841
:1012D0008316B0007808B1007908B2007A08B3002C
:1012E000B40134088A11831235208A158316B40A92
:1012F000F700C3008A1183121A218A15053083165C
:101300003402031D7129453084003308BB003208C4
:10131000BA003108B9003008B800BC018A11831244
:101320000E268A1520308316C3008A1183121A21D3
:101330008A150A308316C3008A1183121A218A156E
:101340004C308316B3007C30B4008A1183125824C9
:101350008A1577088316B0007808B1007908B200C2
:101360007A08B300B40134088A11831247208A1521
:101370008316B40AF700C3008A1183121A218A1552
:10138000053083163402031DB32945308400330829
:10139000BB003208BA003108B9003008B800BC01FF
:1013A0008A1183120E268A1520308316C3008A11F3
:1013B00083121A218A158316283084000030000415
:1013C0000319EF290408B0000008B4008A11831241
:1013D0000D278A15831630088400840ADE290D3013
:1013E000B4008A1183120D278A150A308316B400BF
:0C13F0008A1183120D278A15C2286300A1
:100060008A100A1182070C340034CE308400000854
:10007000031949280130F800F701F70B3D28F80B68
:100080003C284A30F700F70B432800000000800BA3
:100090003A28003406080F398316D500540EF700AD
:1000A000F030F7057708F0395504831286000615FD
:1000B000831606112130F700F70B5C288312061116
:1000C00083160611831200348316D208031D6C2890
:1000D000831286106E288316831286148316861068
:1000E000D30E5308D40083124A208316D30E53082C
:1000F000D40083124A204230F700F70B7D2800001D
:10010000003414308316CE00831235200F3083164E
:1001100086058312861083168610831206118316B5
:100120000611CC014C08023C031CA2280230CE0070
:100130008312352003308316D40083124A2083169D
:10014000CC0A92280D30F700F70BA4280230D40017
:1001500083124A200D30F700F70BAC288316CC0130
:100160004C08023C031CC6284C088312042083164A
:10017000CD00D2014D08D3008312642002308316D3
:10018000CE00831235208316CC0AB02883128A1140
:100190000A12C72A013083164F02FC3E0318E328D7
:1001A000043E8312EF288316D001E32840308316E3
:1001B000D000E32814308316D000E328543083168F
:1001C000D000E328831601304E02D0075008803853
:1001D000D100D2015108D3008312642000340A10E8
:1001E0008A100A118207D328D628DA28DE28831637
:1001F0004D080C3A831203190729063A03191329EB
:10020000073A03191B29053A0319222929298316BC
:10021000D2010130D3008312642002308316CE0055
:1002200083123520372901308316CE000230CF00EB
:100230008312CA20372901308316CE00CF008312E3
:10024000CA2037298316D2011030D30083126420CC
:10025000372983164D081F3C031C30290730CD0574
:100260000130D2004D08D3008312642037290034B6
:100270000830F70020172008831687008312071F15
:10028000432983163E298316CF01F7175729F71301
:10029000572903108312071B03148316CF0C7717FB
:1002A00057297713F70B49294F08F80062293F3087
:1002B000F71B1130F800F80B5B29F71B4729771B58
:1002C000512949298312003483164D08CF004F0865
:1002D0008400800803196E29CF0A67294E0884001C
:1002E000800803197E294E0884000008D1004F08B9
:1002F000840051088000CF0ACE0A6E294F0884007E
:1003000080014D08F80083120034A01320088316E2
:100310008700831287130830F800000000000000F7
:10032000F817A329F8138316D50C8312031887171F
:10033000031C87137817A3297813F80B932900005F
:100340000000000087171C308400840BA5290000E2
:100350000000F81B9229781B9C2900348316500852
:10036000F8014F020318B7294F08F700C329F70116
:100370000830D100CF0DF70D500877020318F700B1
:10038000F80DD10BBA2983120034780883164D0872
:10039000CF006430D0008312AE2177088316CD00E1
:1003A00078083030031DDB29CE1CE429CE19E4295E
:1003B0004E1A2030DE29CE114E124E14F80778085E
:1003C000D5008312852183164D08CF000A30D00056
:1003D0008312AE2177088316CD0078083030031DD4
:1003E000F729CE19FD294E1CFD294E1A2030F80799
:1003F0007808D5008312852183163030CD074D084B
:10040000D500831285218A110A12822C04088316D2
:10041000D4004E0EF038D000D007E23ED100323E7C
:10042000D3004E080F39D107D107D307E93ED200D8
:10043000D207D2074D0E0F39D207D307D20DD30DF5
:10044000D309D30D4D080F39D307D00D0730CF0096
:100450000A30D307D203031C292AD207D103031C75
:100460002D2AD107D003031C312AD007CF03031C48
:10047000352ACF3084000730540554138407D33015
:100480000402031954170008F700031D4F2A541BD8
:100490004F2A541A5D2AD4194F2A2030522AD415D3
:1004A00054123030F707CE010408CD007708D5008C
:1004B0008312852183164D088400840A541F3F2A25
:1004C00083128A110A12922CA701D730A600163087
:1004D0008316D700D901D801831284011F30830508
:1004E0008316051083120514A013200883168700B5
:1004F0008312871783161F149F141F159F1107302F
:100500009C00FF308312A000A1010130A200A301D2
:10051000A401A50183161F109F141F159F151F13FB
:1005200083121F179F1783169F1783121F1494128D
:10053000A012200883168700831220162008831635
:1005400087008312A01120088316870000308312D1
:100550009400831694000108C7390838810083127B
:1005600090010030F80092000030831692000730AE
:100570009C0005080330F700F70BBC2A1C08831207
:100580000D13FE3083169D000515831281286430FB
:100590008316CE008312352005308316CE0001303D
:1005A000CF008312CA20E80168080C200038031924
:1005B000DF2AE80A8316CD008312F720D42AE80147
:1005C00068081B2000380319EB2AE80A8316CD00BF
:1005D0008312F720E02A0230E80096308316CE001E
:1005E00083123520E80BED2AE80168082F20003837
:1005F0000319002BE80A8316CD008312F720F52A91
:100600000830F8001F08C73978049F00BB01CF01EC
:10061000E3018316B301C701831238217808243C13
:100620000319142B83160C2B1F151F19152B83165A
:100630001E088312E5001E08E6002430A8000130E1
:10064000E4006408123C031C302B2830640784004B
:10065000E90038216908840078088000E40A212B29
:10066000E4016408123C031C402B3C306407840006
:10067000E90038216908840078088000E40A312BF9
:10068000E4016408123C031C502B503064078400C2
:10069000E90038216908840078088000E40A412BC9
:1006A000E4016408123C031C772B38217808E7002A
:1006B00067082A3C031D702BA0306407840080016A
:1006C00067088316B4008312382178088316B500B2
:1006D0008312382178088316B600B701AA2B83123B
:1006E000A0306407840067088000E40A512BE4010D
:1006F0006408123C031CA92B38217808E70067081E
:100700002A3C031DA22BB4306407840067088000D4
:1007100001306407B43E8400EA0038216A0884008E
:100720007808800002306407B43E8400EA00382173
:100730006A0884007808800003306407B43E8400AF
:100740008001A92BB4306407840067088000E40AA4
:10075000782B83168312E80168082F2000380319CC
:10076000B72BE80A8316CD008312F720AC2B201498
:1007700020088316870083120718EC2B013083169C
:10078000CE00CF008312CA2028308400003000043D
:100790000319D52B0408E80000088316CD00831246
:1007A000F72068088400840AC62B0A308316CD001F
:1007B0008312F7203C308400003000040319EB2B37
:1007C0000408E80000088316CD008312F7206808AB
:1007D0008400840ADC2B192C01308316CE00CF0054
:1007E0008312CA2050308400003000040319032C07
:1007F0000408E80000088316CD008312F72068087B
:100800008400840AF42B0A308316CD008312F7206B
:10081000A0308400003000040319192C0408E800FB
:1008200000088316CD008312F72068088400840A2C
:100830000A2C3C308316CD005030CE008312642148
:100840007808E80028308316CD00831278088316D4
:10085000CE00831264217808E9008400003000048F
:1008600003193D2C0408EA0000088316D500831202
:1008700085216A088400840A2E2C0D308316D50049
:10088000831285210A308316D50083128521A0307A
:100890008316CD00B430CE00831264217808E800BE
:1008A0008400003000040319602C0408E9000008EB
:1008B0008316D5008312852169088400840A512C8F
:1008C0000D308316D500831285210A308316D5009A
:1008D000831285218316051600308312051A013014
:1008E000E80020308316D500831285212F3083162F
:1008F000D5008312852168088316CD001B30CE00F9
:100900008312C5292F308316D5008312852110301C
:10091000840066088316CE00831265088316CD0016
:100920008312062A0A308316D500831285210D30E2
:0C0930008316D50083128521062B63007E
:02400E00393F38
:00000001FF
;PIC16F876A