Commit ec6752f5 authored by David Woodhouse's avatar David Woodhouse Committed by David Woodhouse

whiteheat: use request_firmware()

Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
parent 5f24e2d6
...@@ -81,7 +81,8 @@ ...@@ -81,7 +81,8 @@
#include <linux/serial_reg.h> #include <linux/serial_reg.h>
#include <linux/serial.h> #include <linux/serial.h>
#include <linux/usb/serial.h> #include <linux/usb/serial.h>
#include "whiteheat_fw.h" /* firmware for the ConnectTech WhiteHEAT device */ #include <linux/firmware.h>
#include <linux/ihex.h>
#include "whiteheat.h" /* WhiteHEAT specific commands */ #include "whiteheat.h" /* WhiteHEAT specific commands */
static int debug; static int debug;
...@@ -279,37 +280,52 @@ static int firm_report_tx_done(struct usb_serial_port *port); ...@@ -279,37 +280,52 @@ static int firm_report_tx_done(struct usb_serial_port *port);
*/ */
static int whiteheat_firmware_download (struct usb_serial *serial, const struct usb_device_id *id) static int whiteheat_firmware_download (struct usb_serial *serial, const struct usb_device_id *id)
{ {
int response; int response, ret = -ENOENT;
const struct whiteheat_hex_record *record; const struct firmware *loader_fw = NULL, *firmware_fw = NULL;
const struct ihex_binrec *record;
dbg("%s", __func__); dbg("%s", __func__);
if (request_ihex_firmware(&firmware_fw, "whiteheat.fw",
&serial->dev->dev)) {
err("%s - request \"whiteheat.fw\" failed", __func__);
goto out;
}
if (request_ihex_firmware(&loader_fw, "whiteheat_loader.fw",
&serial->dev->dev)) {
err("%s - request \"whiteheat_loader.fw\" failed", __func__);
goto out;
}
ret = 0;
response = ezusb_set_reset (serial, 1); response = ezusb_set_reset (serial, 1);
record = &whiteheat_loader[0]; record = (const struct ihex_binrec *)loader_fw->data;
while (record->address != 0xffff) { while (record) {
response = ezusb_writememory (serial, record->address, response = ezusb_writememory (serial, be32_to_cpu(record->addr),
(unsigned char *)record->data, record->data_size, 0xa0); (unsigned char *)record->data,
be16_to_cpu(record->len), 0xa0);
if (response < 0) { if (response < 0) {
err("%s - ezusb_writememory failed for loader (%d %04X %p %d)", err("%s - ezusb_writememory failed for loader (%d %04X %p %d)",
__func__, response, record->address, record->data, record->data_size); __func__, response, be32_to_cpu(record->addr),
record->data, be16_to_cpu(record->len));
break; break;
} }
++record; record = ihex_next_binrec(record);
} }
response = ezusb_set_reset (serial, 0); response = ezusb_set_reset (serial, 0);
record = &whiteheat_firmware[0]; record = (const struct ihex_binrec *)firmware_fw->data;
while (record->address < 0x1b40) { while (record && be32_to_cpu(record->addr) < 0x1b40)
++record; record = ihex_next_binrec(record);
} while (record) {
while (record->address != 0xffff) { response = ezusb_writememory (serial, be32_to_cpu(record->addr),
response = ezusb_writememory (serial, record->address, (unsigned char *)record->data,
(unsigned char *)record->data, record->data_size, 0xa3); be16_to_cpu(record->len), 0xa3);
if (response < 0) { if (response < 0) {
err("%s - ezusb_writememory failed for first firmware step (%d %04X %p %d)", err("%s - ezusb_writememory failed for first firmware step (%d %04X %p %d)",
__func__, response, record->address, record->data, record->data_size); __func__, response, be32_to_cpu(record->addr),
record->data, be16_to_cpu(record->len));
break; break;
} }
++record; ++record;
...@@ -317,21 +333,25 @@ static int whiteheat_firmware_download (struct usb_serial *serial, const struct ...@@ -317,21 +333,25 @@ static int whiteheat_firmware_download (struct usb_serial *serial, const struct
response = ezusb_set_reset (serial, 1); response = ezusb_set_reset (serial, 1);
record = &whiteheat_firmware[0]; record = (const struct ihex_binrec *)firmware_fw->data;
while (record->address < 0x1b40) { while (record && be32_to_cpu(record->addr) < 0x1b40) {
response = ezusb_writememory (serial, record->address, response = ezusb_writememory (serial, be32_to_cpu(record->addr),
(unsigned char *)record->data, record->data_size, 0xa0); (unsigned char *)record->data,
be16_to_cpu(record->len), 0xa0);
if (response < 0) { if (response < 0) {
err("%s - ezusb_writememory failed for second firmware step (%d %04X %p %d)", err("%s - ezusb_writememory failed for second firmware step (%d %04X %p %d)",
__func__, response, record->address, record->data, record->data_size); __func__, response, be32_to_cpu(record->addr),
record->data, be16_to_cpu(record->len));
break; break;
} }
++record; ++record;
} }
ret = 0;
response = ezusb_set_reset (serial, 0); response = ezusb_set_reset (serial, 0);
out:
return 0; release_firmware(loader_fw);
release_firmware(firmware_fw);
return ret;
} }
...@@ -1503,6 +1523,9 @@ MODULE_AUTHOR( DRIVER_AUTHOR ); ...@@ -1503,6 +1523,9 @@ MODULE_AUTHOR( DRIVER_AUTHOR );
MODULE_DESCRIPTION( DRIVER_DESC ); MODULE_DESCRIPTION( DRIVER_DESC );
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_FIRMWARE("whiteheat.fw");
MODULE_FIRMWARE("whiteheat_loader.fw");
module_param(urb_pool_size, int, 0); module_param(urb_pool_size, int, 0);
MODULE_PARM_DESC(urb_pool_size, "Number of urbs to use for buffering"); MODULE_PARM_DESC(urb_pool_size, "Number of urbs to use for buffering");
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -54,6 +54,8 @@ fw-shipped- := keyspan/mpr.fw keyspan/usa18x.fw keyspan/usa19.fw \ ...@@ -54,6 +54,8 @@ fw-shipped- := keyspan/mpr.fw keyspan/usa18x.fw keyspan/usa19.fw \
keyspan/usa28x.fw keyspan/usa49w.fw keyspan/usa49wlc.fw keyspan/usa28x.fw keyspan/usa49w.fw keyspan/usa49wlc.fw
endif endif
fw-shipped-$(CONFIG_USB_SERIAL_TI) += ti_3410.fw ti_5052.fw fw-shipped-$(CONFIG_USB_SERIAL_TI) += ti_3410.fw ti_5052.fw
fw-shipped-$(CONFIG_USB_SERIAL_WHITEHEAT) += whiteheat_loader.fw whiteheat.fw \
# whiteheat_loader_debug.fw
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda/keyspan_pda.fw fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda/keyspan_pda.fw
fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw
......
...@@ -205,3 +205,24 @@ Licence: Allegedly GPLv2+, but no source visible. Marked: ...@@ -205,3 +205,24 @@ Licence: Allegedly GPLv2+, but no source visible. Marked:
Found in hex form in kernel source. Found in hex form in kernel source.
-------------------------------------------------------------------------- --------------------------------------------------------------------------
Driver: whiteheat -- USB ConnectTech WhiteHEAT serial device
File: whiteheat.fw
Version: 4.06
File: whiteheat_loader.fw
File: whiteheat_loader_debug.fw
Licence: Allegedly GPLv2, but no source visible. Marked:
Copyright (C) 2000-2002 ConnectTech Inc
Debug loader claims the following behaviour:
Port 1 LED flashes when the vend_ax program is running
Port 2 LED flashes when any SETUP command arrives
Port 3 LED flashes when any valid VENDOR request occurs
Port 4 LED flashes when the EXTERNAL RAM DOWNLOAD request occurs
Converted from Intel HEX files, used in our binary representation of ihex.
--------------------------------------------------------------------------
:030000000297E381
:03000300021312D3
:03000B00020BB530
:0300330002081CA4
:03004300020A00AE
:03005B0002833BE2
:10037000907FE9E070030204731470030204E72421
:10038000FE700302054F24FB700302046414700323
:1003900002045214700302043A1470030204492444
:1003A00005600302059E907FEBE024FE601614605A
:1003B000362402707B7412907FD4F07400907FD545
:1003C000F00205A5907FEAE0FF120A99EA49600D64
:1003D000EA907FD4F0E9907FD5F00205A5907FB434
:1003E000E04401F00205A5907FEAE0FF120A58EA16
:1003F00049603312A23BF54E907FEEE0FFE54ED30D
:100400009F4003E0F54EE54ED394404003754E40C7
:10041000AE02AF017C7F7D00AB4E129137907FB56D
:10042000E54EF00205A5907FB4E04401F00205A579
:10043000907FB4E04401F00205A5907F00E521F033
:10044000907FB57401F00205A5907FEAE0F52102E6
:1004500005A5907FEAE0F535D202438810D2EBD2B1
:10046000A80205A5907F00E535F0907FB57401F0F6
:100470000205A5907FE8E0247F6024146031240207
:10048000705BA200E433FF25E0FFA205E4334F9048
:100490007F00F0E4A3F0907FB57402F00205A5E4BC
:1004A000907F00F0A3F0907FB57402F00205A59054
:1004B0007FECE0F45480FFC4540FFFE054072F2575
:1004C000E024B4F582E4347FF583E05401907F00AA
:1004D000F0E4A3F0907FB57402F00205A5907FB41C
:1004E000E04401F00205A5907FE8E024FE601D24B1
:1004F0000260030205A5907FEAE0B40105C2000294
:1005000005A5907FB4E04401F00205A5907FEAE0E4
:100510007034907FECE0FF5407FEF54EEF30E703B8
:10052000434E10907FD7E54EF0E54E4420F0EFF4B7
:100530005480FDC4540F2E25E024B4F582E4347FAA
:10054000F583E4F0805F907FB4E04401F080569042
:100550007FE8E024FE60182402704A907FEAE0B44D
:100560000104D200803F907FB4E04401F0803690D7
:100570007FEAE07020907FECE0F45480FFC4540FD9
:10058000FFE054072F25E024B4F582E4347FF5839F
:100590007401F08010907FB4E04401F08007907FF8
:0C05A000B4E04401F0907FB4E04402F0AD
:0105AC00222C
:1005AD00754AFF7549FF75480F754700D203C2069E
:1005BD00C202C200C205C2019003007419F0E4909A
:1005CD0001BCF0C2049001C0F0A3F0C2AFC2A812EA
:1005DD000C22E49002AFF09001BDF0900100F0A369
:1005ED00F0A3F0A3F0A3F0A37410F0A37401F0A393
:1005FD007408F07E017F001219C1754C12754D0AF9
:10060D0090010BE0FF054DE54DAC4C7002054C140F
:10061D00F5828C83EFF090010CE04480FF054DE5F1
:10062D004DAC4C7002054C14F5828C83EFF09001AB
:10063D000DE0FF054DE54DAC4C7002054C14F582F7
:10064D008C83EFF090010EE0FF054DE54DAC4C7045
:10065D0002054C14F5828C83EFF090120AE493FF9F
:10066D0074019390011CCFF0A3EFF090011CE0FFFB
:10067D00A3E0FEEF6EFF90011CF0A3E06FFFF09082
:10068D00011CE06FF0E0FEA3E0FFE4FCFD755210ED
:10069D007553027554127555AC129426754C12751E
:1006AD004DB290010DE0FF054DE54DAC4C700205CE
:1006BD004C14F5828C83EFF090010EE0FF054DE5B3
:1006CD004DAC4C7002054C14F5828C83EFF0907F8D
:1006DD0092E0FFC4540F2441FF054DE54DAC4C7025
:1006ED0002054C14F5828C83EFF0054DE54DAE4CB3
:1006FD007002054C14F5828E83E4F07582107583BB
:10070D0001E0FCA3E0FDA3E0FEA3E0FF90011812C1
:10071D00A3EE7E017F181286BE900118E0FCA3E0C7
:10072D00FDA3E0FEA3E0FF75520A75530675541242
:10073D007555B8129426D2E843D820907FAB74FF3C
:10074D00F05391EF907FAFE04401F0907FAEE04425
:10075D001FF0D2AF20012E20012BA2039207120908
:10076D00C575465075456D7544337543002001E4DC
:10077D007FFF7EFF7DFF7CFF784312A3D7EC4D4EAC
:10078D004F60D180E8300105120370C20130060AB6
:10079D001209FB5003120AE8C20612965E9001BDC3
:1007AD00E0600C129201E49001BDF0907FD3F090C7
:1007BD0002AFE0B40F031299B912A095E4FF7401D2
:1007CD00A807088002C333D8FCFE9001BCE05E6030
:1007DD001474282FF8E6D3940A40047E0180027E1B
:1007ED00008E4B8003754B0174682FF582E4342025
:1007FD00F583E54BF00FBF04C5E52CD3940A4004F7
:0E080D007F0180027F0090206CEFF0020792C6
:01081B0022BA
:04081C0053D8EF328C
:10082000E533C39401400E907F93E04430F0907F15
:1008300095E044C0F07FF47E011209AE907F96E00F
:1008400054FEF07F0A7E001209AE907F96E04408C5
:10085000F07F057E001209AE907F96E054FBF07F9A
:10086000057E001209AEE533C39401500E7F027D70
:10087000FF1282EA7F057E001209AE907F96E04467
:1008800002F0E0547FF07F057E001209AE907F9663
:10089000E04440F07F057E001209AE907F96E05460
:1008A000BFF07F327E001209AE907F96E04440F0A8
:0808B0007F327E001209AE2226
:1008B800907F96E054FDF0E04480F07F0A7E0012BD
:1008C80009AEE533C39401500E7F02E4FD1282EABB
:1008D8007F057E001209AE907F96E054BFF07F0539
:1008E8007E001209AE907F96E04404F07F057E00FA
:1008F8001209AE907F96E054F7F07F057E0012094A
:10090800AE907F96E04401F07F057E001209AEE5C7
:1009180033C39401400E907F93E054CFF0907F95BD
:08092800E0543FF0120B002225
:10093000900AF4E4937076907F937430F0907F94F3
:10094000743CF0907F9574C6F07F0A7E001209AE69
:10095000E4907F9CF0907F967408F0907F9C74CF19
:10096000F07F0A7E001209AE902070E0FFC4540FA1
:10097000F533C394015007907F96E04480F0E490F3
:100980007F97F0907F9D7402F0E533C39401400B94
:10099000E4907F98F0907F9E74C0F0907FE2741294
:0E09A000F01208207582F475830A74FFF022AD
:1009AE008E5D8F5EE55E155EAE5D7002155D4E600E
:0709BE00051209EA80EE2298
:1009C500907FD6E054FBF0E04408F0300704E044A3
:1009D50002F07FD07E071209AE907FD6E054F7F083
:0509E500E04404F022D3
:1009EA007400F58690FDA57C05A3E582458370F920
:0109FA0022DA
:0509FB001208B8D32230
:100A0000020C4E00020C8100020C6600020CC000B9
:100A1000020CAA00020AED00020AEE00020AEF0030
:100A2000020CDB00020DCB00020D1700020E2B00A2
:100A3000020D5300020E8B00020D8F00020EEB0020
:100A4000020AF000020AF200020AF100020AF300B0
:080A5000020F4B00020F6100D0
:020A58008F4FBE
:100A5A00E4F5507551FF75521275536AAB51AA529B
:100A6A00A95390000112A254B4031DAF500550EFD0
:100A7A00B54F012212A23B7E0029FFEE3AA9077563
:0E0A8A0051FFF552895380D47B007A00790029
:010A9800223B
:100A9900E4FE7551FF755212755312AB51AA52A952
:100AA9005390000112A2546402702DAD060EEDB5EB
:100AB90007012290000212A2AD85F04FF550624F56
:100AC900E54F6250E550624F29FDE54F3AA905759A
:0E0AD90051FFF552895380C37B007A007900EB
:010AE70022EC
:050AE800120820D322DA
:010AED0032D6
:010AEE0032D5
:010AEF0032D4
:010AF00032D3
:010AF10032D2
:010AF20032D1
:010AF30032D0
:030AF400000407F4
:090B0000907FD6E04480F080747F
:100B7D00438701000000000000000000000000227B
:100B8D00538EF7E58954F14401F589758CB1D2A9DD
:100B9D0075984075CBFF75CAF375C834E4FF7F05B2
:070BAD007828E4F608DFFCE4
:010BB400221E
:100BB500C0E0C083C082C0D075D000C000C006C0F0
:010BC5000728
:100BC600300416758CF8758A307F2FAE071FEE60DD
:100BD6003C9020007455F080F2758CB17F28EFD3DD
:100BE600942C5009A807E66001160F80F1900300C7
:100BF600E0600214F09001C0E07002A3E0600E9085
:0D0C060001C1E024FFF09001C0E034FFF0D8
:0F0C1300D007D006D000D0D0D082D083D0E0322E
:100C2200D200758E10120930E533C394014008904A
:100C32007F927402F08005E4907F92F0128000129D
:0C0C42000F7D1294F7121B0C120B8D2278
:100C4E00C0E0C083C082D2015391EF907FAB74019C
:080C5E00F0D082D083D0E03217
:100C6600C0E0C083C082907FC4E4F05391EF907FD0
:0B0C7600AB7404F0D082D083D0E032D9
:100C8100C0E0C083C0825391EF907FAB7402F090BB
:100C91007FD8E0700D907FD9E07007E52C70037567
:090CA1002C14D082D083D0E03283
:100CAA00C0E0C083C0825391EF907FAB7410F0D044
:060CBA0082D083D0E0327D
:100CC000C0E0C083C082300202D2065391EF907F11
:0B0CD000AB7408F0D082D083D0E0327B
:100CDB00C0E0C083C082C0D075D0105391EF907F1D
:100CEB00A97402F0E53430E013E53230E0079020D0
:100CFB0004E04401F0902001E04401F0E52C700386
:0C0D0B00752C14D0D0D082D083D0E03200
:100D1700C0E0C083C082C0D075D0105391EF907FE0
:100D2700A97404F0E53430E113E53230E10790208F
:100D37000CE04401F0902009E04401F0E52C700339
:0C0D4700752C14D0D0D082D083D0E032C4
:100D5300C0E0C083C082C0D075D0105391EF907FA4
:100D6300A97408F0E53430E213E53230E20790204D
:100D730014E04401F0902011E04401F0E52C7003ED
:0C0D8300752C14D0D0D082D083D0E03288
:100D8F00C0E0C083C082C0D075D0105391EF907F68
:100D9F00A97410F0E53430E313E53230E307902007
:100DAF001CE04401F0902019E04401F0E52C7003A1
:0C0DBF00752C14D0D0D082D083D0E0324C
:100DCB00C0E0C083C082C085C084C086758600C069
:100DDB00D075D0105391EF907FAA7402F0E53420B8
:100DEB00E006907FC7F08022E53130E00A907FC7A4
:100DFB00E09002F8F08013E52230E007902004E049
:100E0B004402F0902001E04402F0E52C7003752CB5
:100E1B0014D0D0D086D084D085D082D083D0E0328D
:100E2B00C0E0C083C082C085C084C086758600C008
:100E3B00D075D0105391EF907FAA7404F0E5342055
:100E4B00E106907FC9F08022E53130E10A907FC93D
:100E5B00E09002F9F08013E52230E10790200CE0DE
:100E6B004402F0902009E04402F0E52C7003752C4D
:100E7B0014D0D0D086D084D085D082D083D0E0322D
:100E8B00C0E0C083C082C085C084C086758600C0A8
:100E9B00D075D0105391EF907FAA7408F0E53420F1
:100EAB00E206907FCBF08022E53130E20A907FCBD7
:100EBB00E09002FAF08013E52230E207902014E074
:100ECB004402F0902011E04402F0E52C7003752CE5
:100EDB0014D0D0D086D084D085D082D083D0E032CD
:100EEB00C0E0C083C082C085C084C086758600C048
:100EFB00D075D0105391EF907FAA7410F0E5342089
:100F0B00E306907FCDF08022E53130E30A907FCD70
:100F1B00E09002FBF08013E52230E30790201CE009
:100F2B004402F0902019E04402F0E52C7003752C7C
:100F3B0014D0D0D086D084D085D082D083D0E0326C
:100F4B00C0E0C083C0825391EF907FA97480F0D032
:060F5B0082D083D0E032D9
:100F6100C0E0C083C0825391EF907FAA7480F0905B
:0C0F710001BD74FFF0D082D083D0E032CC
:100F7D0090012012A3FA000025809001247408F03E
:100F8D00A37401F0A3746EF0A3F0A37413F0A37413
:100F9D0011F0E4A3F0A3F090011EF090011EE0FF0C
:100FAD0004A3F0EF75F00DA42401F9740335F0A836
:100FBD0001FC7D017B017A01791F7E007F0D12A25C
:100FCD00127E017F1F1287A690011EE004F0E0C380
:100FDD00940440C7E4F52790011EF090011EE0FF38
:100FED00C39404501A74F82FF582E43402F583E4A7
:100FFD00F074232FF8E4F690011EE004F080DCE499
:10100D00F534E5C0602F90011E7401F090011EE0D3
:10101D00FFD39404501FEF14FF7401A8070880023A
:10102D00C333D8FC42347E017F1E12844190011ED1
:10103D00E004F080D7E4F53EF522F531F53290016C
:10104D001EF090011EE0FF75F008A42406F582E461
:10105D003420F583E054F0FE74C52FF582E434019D
:10106D00F583EEF0743A2FF8A60674362FF8E4F6F1
:10107D00742D2FF8E4F674FC2FF582E43402F58319
:10108D00E4F090011EE004F0E0B404B6902060E0BE
:04109D00540FF54EA9
:1010A1007003021126E490011EF090011EE0FFC3BF
:1010B100940450E47401A807088002C333D8FC5596
:1010C1004E605A90011EE0FE75F008A42402F582DC
:1010D100E43420F583E0FFEE75F008A42405F582E1
:1010E100E43420F583E0EE75F008A42406F582E4EB
:1010F1003420F583E0FFAF06EE75F00DA42402F570
:1011010082E43403F583E0FCA3E0FDA3E0FEA3E069
:10111100F5668E658D648C637D061283DF90011EFA
:06112100E004F0808522CD
:02112700AC0713
:10112900907FA5E04480F0EC25E04441907FA6F053
:101139007B3CAF031BEF7016907FA5E04440F09015
:101149007FA6E0FD7D32AF051DEF60D480F8907F6A
:10115900A5E0FD30E0DC20E109E04440F07EFF7FBE
:10116900F922ED30E20C907FA5E04440F07EFF7F4C
:10117900FA22907FA5E04420F0907FA6E0FD7B1E37
:10118900AF031BEF7016907FA5E04440F0907FA657
:10119900E0FD7D32AF051DEF608680F8907FA5E008
:1011A900FD20E0DC7B3CAF031BEF7019907FA5E0CD
:1011B9004440F0907FA6E0FD7D32AF051DEF70033E
:1011C90002112980F5907FA5E0FD30E0D930E209D0
:1011D900E04440F07EFF7FFA22C2AF907FA5E04451
:0C11E90040F0907FA6E0FDD2AFFF7E003A
:0111F50022D7
:1012000012010001FFFFFF401007018042000102B0
:10121000030109025800010104803C090400000A8E
:10122000FFFFFF050705810240000007050102409E
:10123000000007058202400000070502024000008E
:101240000705830240000007050302400000070570
:1012500084024000000705040240000007058702E1
:1012600040000007050702400000040309042403AE
:1012700043006F006E006E00650063007400200084
:101280005400650063006800200049006E006300A0
:101290002E001803570068006900740065004800BC
:1012A0004500410054002D0034001A035800580036
:1012B0002D00580058002D005800580058005800C4
:1012C000580058002A0343006F006E006600690052
:1012D0006700750072006100740069006F006E00A5
:1012E000200053007400720069006E006700220342
:1012F00049006E00740065007200660061006300C2
:101300006500200053007400720069006E006700E1
:021310000000DB
:10131200C0E0C0F0C083C082C085C084C086C0D097
:1013220075860075D018902060E0540FF5F07011AA
:10133200D0D0D086D084D085D082D083D0F0D0E0F7
:101342003275860010F00B10F11210F21910F32012
:1013520080D4E528700375281402137CE5297003F4
:1013620075291402150DE52A7003752A1402169EBA
:10137200E52B7003752B1402182F902002E0543FC6
:1013820020E23A20E10B20E40B20E514600902136D
:1013920043021465021343438204E0F53A02134305
:1013A200438204E0432D010213435382F843820532
:1013B200E042365382FBE054FBF002134330E10279
:1013C20080E8F585E53230E00A5382F8438204E092
:1013D20054FEF0E58520E3569020507400F09020F2
:1013E200587401F0907FE2E04440F0907FE305867C
:1013F200907E800586E585F0A3E584F00586907FE2
:10140200E5E53FFD030303FEF0F0F0F0F0F0F0F04D
:10141200DEF6907FE2E054BFF09020587400F09026
:101422007FB7EDF0902001E054FEF00213437F40BD
:10143200907E800586902000E584FE2405FD8D8443
:10144200E08E8430E009E00586F0A30586DFEF0533
:1014520086C374409F907FB7F00586A3E054FEF0E8
:10146200021343532DFAE5236008752300D2E7FEE9
:10147200800A907FC7E0FE70030214FF9020507430
:1014820000F09020587401F0907FE2E04440F09028
:101492007FE30586907E400586E585F0A3E584F02E
:1014A2000586907FE5EE30E7080586E02438F005F2
:1014B20086EE547FFE5407FBEE547860300303033C
:1014C20030E30474077B08FDFCE0E0E0E0E0E0E0EC
:1014D200E0DDF6EBFE6019EC640770118B23907F60
:1014E200E2E054BFF09020587400F0801BE0DEFD73
:1014F200907FE2E054BFF09020587400F0902001F9
:10150200E054FDF0907FC7F002134390200AE054AC
:101512003F20E23A20E10B20E40B20E514600902AF
:1015220013430215F6021343438204E0F53B021310
:1015320043438204E0432E010213435382F8438261
:1015420005E042375382FBE054FBF002134330E1E3
:101552000280E8F585E53230E10A5382F8438204DD
:10156200E054FEF0E58520E3569020507401F0909F
:1015720020587401F0907FE2E04440F0907FE30550
:1015820086907E000586E585F0A3E584F0058690C9
:101592007FE5E540FD030303FEF0F0F0F0F0F0F02C
:1015A200F0DEF6907FE2E054BFF09020587400F035
:1015B200907FB9EDF0902009E054FEF00213437FD2
:1015C20040907E000586902008E584FE2405FD8D6E
:1015D20084E08E8430E009E00586F0A30586DFEF23
:1015E2000586C374409F907FB9F00586A3E054FE40
:1015F200F0021343532EFAE5246008752400D2E763
:10160200FE800A907FC9E0FE70030216909020507F
:101612007401F09020587401F0907FE2E04440F0B1
:10162200907FE30586907DC00586E585F0A3E5847D
:10163200F00586907FE5EE30E7080586E02438F075
:101642000586EE547FFE5407FBEE547860300303A8
:101652000330E30474077B08FDFCE0E0E0E0E0E037
:10166200E0E0DDF6EBFE6019EC640770118B24906C
:101672007FE2E054BFF09020587400F0801BE0DE5F
:0E168200FD907FE2E054BFF09020587400F01D
:10169000902009E054FDF0907FC9F00213439020A0
:1016A00012E0543F20E23A20E10B20E40B20E51445
:1016B0006009021343021787021343438204E0F5D3
:1016C0003C021343438204E0432F0102134353823D
:1016D000F8438205E042385382FBE054FBF00213EA
:1016E0004330E10280E8F585E53230E20A5382F8C2
:1016F000438204E054FEF0E58520E35690205074C8
:1017000002F09020587401F0907FE2E04440F090A5
:101710007FE30586907D800586E585F0A3E584F06E
:101720000586907FE5E541FD030303FEF0F0F0F050
:10173000F0F0F0F0DEF6907FE2E054BFF090205839
:101740007400F0907FBBEDF0902011E054FEF002A9
:1017500013437F40907D800586902010E584FE2411
:1017600005FD8D84E08E8430E009E00586F0A30558
:1017700086DFEF0586C374409F907FBBF00586A38C
:10178000E054FEF0021343532FFAE5256008752557
:1017900000D2E7FE800A907FCBE0FE7003021821A2
:1017A0009020507402F09020587401F0907FE2E095
:1017B0004440F0907FE30586907D400586E585F006
:1017C000A3E584F00586907FE5EE30E7080586E026
:1017D0002438F00586EE547FFE5407FBEE54786003
:1017E0003003030330E30474077B08FDFCE0E0E012
:1017F000E0E0E0E0E0DDF6EBFE6019EC640770117C
:101800008B25907FE2E054BFF09020587400F08068
:101810001BE0DEFD907FE2E054BFF09020587400A2
:10182000F0902011E054FDF0907FCBF00213439034
:10183000201AE0543F20E23A20E10B20E40B20E59F
:10184000146009021343021918021343438204E08F
:10185000F53D021343438204E04330010213435336
:1018600082F8438205E042395382FBE054FBF002E8
:10187000134330E10280E8F585E53230E30A538214
:10188000F8438204E054FEF0E58520E356902050B2
:101890007403F09020587401F0907FE2E04440F02F
:1018A000907FE30586907D000586E585F0A3E584BD
:1018B000F00586907FE5E542FD030303FEF0F0F0BE
:1018C000F0F0F0F0F0DEF6907FE2E054BFF0902010
:1018D000587400F0907FBDEDF0902019E054FEF0B8
:1018E0000213437F40907D000586902018E584FE1A
:1018F0002405FD8D84E08E8430E009E00586F0A3A8
:101900000586DFEF0586C374409F907FBDF0058696
:10191000A3E054FEF00213435330FAE52660087545
:101920002600D2E7FE800A907FCDE0FE7003021908
:10193000B29020507403F09020587401F0907FE230
:10194000E04440F0907FE30586907CC00586E58505
:10195000F0A3E584F00586907FE5EE30E708058684
:10196000E02438F00586EE547FFE5407FBEE5478F1
:10197000603003030330E30474077B08FDFCE0E000
:10198000E0E0E0E0E0E0DDF6EBFE6019EC6407701B
:10199000118B26907FE2E054BFF09020587400F045
:1019A000801BE0DEFD907FE2E054BFF09020587491
:1019B00000F0902019E054FDF0907FCDF002134329
:0119C00032F4
:0419C100AD07AC06BC
:1019C5007906ED2404F582E43CF583E0FAA3E0FB17
:1019D5004A7003021B09E9B407004003021ADB90B1
:1019E50019EBF8282873021AB9021A71021A5A0259
:1019F5001A40021A2F021A1A021A00907FA5E04413
:101A050080F08D828C83A3E0FF25E044A0907FA623
:101A1500F019021ADB198D828C83E0C39420400AE9
:101A2500A3A3E0907FA6F0021ADB8D828C83A3A38B
:101A3500E0A3E0907FA6F019021ADB907FA5E044B1
:101A450080F08D828C83A3E0FF25E044A1907FA6E2
:101A5500F019021ADBEB64014A7008907FA5E04497
:101A650020F019907FA6E0F55919806AED2404F558
:101A750082E43CF583E0FEA3E064024E7008907FAB
:101A8500A5E04420F019907FA6E0FFED2406F5823D
:101A9500E43CF583E475F00112A29785F082F583A5
:101AA500EFF0ED2404F582E43CF58374FFF5F012C4
:101AB500A2818022907FA5E04440F0907FA6E0FFC0
:101AC500ED2406F582E43CF583E0FAA3E0F5828A8D
:101AD50083EFF07F0822907FA5E0F55930E0F730DD
:101AE500E207E04440F07F0622E9D3940250030266
:101AF50019C7E55930E1030219C7907FA5E04440B5
:061B0500F07F07227F08BB
:011B0B0022B7
:101B0C00E533C39401501C7F057E001209AE7F02A1
:101B1C007DFF1282EA7F057E001209AE7F037DFFF6
:041B2C001282EA2215
:108000007BFF7A12791B90000412A254FD8B5075ED
:108010005112755224E4907FE1F0907FE0F0F54E2C
:10802000F54F9002AEF0907FDFF0907FDEF0907F12
:10803000A974FFF0907FAAF0E4FCEC25E024B4F5ED
:1080400082E4347FF583E4F00CBC10EEE4907FDD35
:10805000F0AF051DEF70030281C6AB50AA51A952C3
:1080600090000112A254640560030281B5900003E0
:1080700012A2546401600302813C90000212A254D7
:10808000FF547FFCD394075003028116ECC3941075
:108090004003028116EF30E742E54FAE4E7802CE44
:1080A000C313CE13D8F9FF74F02CF582E4347FF5B6
:1080B00083EFF0907FE0E0FFEC24F8FE7401A80667
:1080C000088002C333D8FC4F907FE0F09002AEE00E
:1080D00004F0907FDDE04480F0803EE54FAE4E78C6
:1080E00002CEC313CE13D8F9FF74E82CF582E43422
:1080F0007FF583EFF0907FE1E0FFEC24F8FE740160
:10810000A806088002C333D8FC4F907FE1F09002AC
:10811000AEE004F080037FFF2290000412A25425F9
:108120004FF54FE4354EF54E90000512A254FEE493
:10813000254FF54FEE354EF54E0281B8AB50AA51A2
:10814000A95290000312A254FF64026005EF640379
:10815000706090000212A254FF547FFCD394075029
:108160004EEF30E71E907FDEE0FF7401A804088028
:1081700002C333D8FCFE4F907FDEF0907FACE04E20
:10818000F08035907FDFE0FF7401A804088002C30F
:1081900033D8FCFE4F907FDFF0907FADE04EF0ECE7
:1081A00025E024C5F582E4347FF583ECF080097F77
:1081B000FF227FFF227FFF2274072552F552E4350C
:1081C00051F55102805120030D9002AEE0600790FE
:0881D0007FAEE04402F07F00E5
:0181D8002284
:0481D9008E598F5AD2
:1081DD00755B03E55A2404F582E43559F583E0FE19
:1081ED00A3E04E70030282E7E55B604E1460381425
:1081FD00602014600302828B907FA5E04480F0859F
:10820D005A82855983A3E0FF25E044A0907FA6F014
:10821D00806C855A82855983E0C394204009A3A3BD
:10822D00E0907FA6F08057155B855A82855983A310
:10823D00A3E0A3E0907FA6F08044E55A2406F582E2
:10824D00E43559F583E475F00112A29785F082F5B6
:10825D0083E0907FA6F0907FA5E04440F0E55A249E
:10826D0004F582E43559F58374FFF5F012A281858A
:10827D005A82855983A3A3E475F00112A281907FE0
:10828D00A5E0F55C30E0F730E207E04440F07F0612
:10829D0022E55C20E10A907FA5E04440F07F0722B3
:1082AD00E55B70317F017E001209AE907FA5E04441
:1082BD0080F0855A82855983A3E0FF25E044A09084
:1082CD007FA6F0907FA5E0F55C30E0F730E1D57545
:0C82DD005B030281E0155B0281E07F087A
:0182E9002272
:0282EA00AE07DD
:1082EC007C02EC14601514701E907FA5E04480F0A5
:1082FC00EE25E04440907FA6F0800C907FA6EDF038
:10830C00907FA5E04440F0907FA5E0FB30E0F8BC06
:10831C00020A20E107E04440F07F0722EB30E20A3A
:0E832C00907FA5E04440F07F0622DCB67F087B
:01833A002220
:10833B00C0E0C083C082C2A99003007419F0D2A917
:0F834B0053917F9001C4E4F0D082D083D0E03210
:10835A00EF75F008A42400F582E43420AB82FAF524
:10836A0083A3E4F08B828A83A3A3A3E0F56174BF9D
:10837A00F08B828A83A3A3E04410F08B828A83A3C2
:10838A00A3A3E4F08B828A83A3F0F9ED601D740144
:10839A007E00A807088005C333CE33CED8F9FFE4A0
:1083AA00EF5531600479098002790D8B828A83A3A3
:1083BA00A3A374BFF08B828A83A3A3E054EFF08B4C
:1083CA00828A83A3A3A3E561F0AE02AF038F828EF4
:0483DA0083A3E9F0A0
:0183DE00227C
:0483DF008F618D62BB
:1083E300E4F567743F2FF876087F807E257D007C57
:1083F30000AB66AA65A964A863D312A3B340267F22
:10840300007E967D007C00A863D312A3B3500C7545
:108413006740743F2561F87610800A756780743F62
:108423002561F87638E56745624401FFE56175F03B
:0D84330008A42402F582E43420F583EFF064
:018440002219
:108441008F828E83E014F557C3940440037FFF228B
:10845100E55775F008A42400F582E43420AF82F5D5
:10846100588F59E55725E024C6F582E4347FF5831A
:10847100E020E10FE55725E024C7F582E4347FF5DC
:1084810083E4F074232557F8E4F6E5592404F582D2
:10849100E43558F583E04403F0E55775F00DA42465
:1084A10002F582E43403F583E0FCA3E0FDA3E0FEE2
:1084B100A3E0F5668E658D648C637D06AF571283EC
:1084C100DFAF577D0112835A855982855883A3A353
:1084D100E020E043E0FFE5592405F582E43558F555
:1084E10083E0E5592406F582E43558F583E0FFE59C
:1084F1005775F00DA42402F582E43403F583E0FC02
:10850100A3E0FDA3E0FEA3E0F5668E658D648C63B8
:108511007D06AF571283DF74F82557F582E43402E4
:10852100F583E4F0E55725E0FFC3740C9F75F04037
:10853100A42440F582E5F0347BAF82FEE55725E0C7
:1085410024EFF582E43402F583EEF0A3EFF0AF57A8
:0F8551007401A807088002C333D8FC42347F00AE
:0185600022F8
:108561008F828E83E014F557C3940440037FFF226A
:10857100AF57E4FD12835A74F82557F582E43402AB
:10858100F583E4F0E55775F008A42400F582E4349E
:1085910020AF82F5598F5AF583E5822404F582E4F0
:1085A1003583F583E054FCF0E55775F00DA4240CF8
:1085B100F582E43403F583E4F0E55775F00DA42466
:1085C10002F582E43403F583E0FCA3E0FDA3E0FEC1
:1085D100A3E0F5668E658D648C637D06AF571283CB
:1085E100DFE55A2405F582E43559F583E030E009E9
:1085F100855A82855983E0F558AF577401A8070859
:108601008002C333D8FCF45234E55725E024C6F583
:1086110082E4347FF583E020E10FE55725E024C7AC
:0B862100F582E4347FF583E4F07F0075
:01862C00222B
:04862D008E578F587D
:108631008F828E83E014F559C3940440037FFF2297
:10864100E55975F008A42401F582E43420F583E0AE
:1086510054037066855882855783A3E030E028E58E
:108661005975F00DA42402F582E43403F583E0FC8E
:10867100A3E0FDA3E0FEA3E0F5668E658D648C6347
:108681007D02AF591283DF855882855783A3E0307D
:10869100E128E55975F00DA42402F582E43403F5CF
:1086A10083E0FCA3E0FDA3E0FEA3E0F5668E658D0B
:0C86B100648C637D04AF591283DF7F00EE
:0186BD00229A
:1086BE008F828E83C083C082E0FDA3A3A3E0FCED76
:1086CE006CD082D083F08F828E83A3A3A3C083C08D
:1086DE0082E0FD8F828E83E0FCED6CD082D083F041
:1086EE008F828E83C083C082A3A3A3E0FDEC6DD0E6
:1086FE0082D083F08F828E83A3C083C082E0FD8FF1
:10870E00828E83A3A3E0FCED6CD082D083F08F82A7
:10871E008E83A3A3C083C082E0FD8F828E83A3E0ED
:10872E00FCED6CD082D083F08F828E83A3C083C089
:10873E0082E0FD8F828E83A3A3E0FFED6FD082D007
:03874E0083F02293
:04875100AD07AC06BE
:10875500790D8D828C83E014FEC3940440037FFF62
:10876500228C578D58EE75F00DA42401F582E43462
:1087750003AF82FEAD0119ED60240FEFAC06700169
:108785000E14F5828C83E0FD0558E558AA57700252
:10879500055714F5828A83E06D60D97F01227F0039
:0187A50022B1
:0487A6008E578F5803
:1087AA008F828E83E014F55EC3940440037FFF2218
:1087BA00E55E75F008A42400F582E43420AF82F562
:1087CA005F8F60855882855783A3E0FCA3E0FDA3F1
:1087DA00E0FEA3E0FF7B087A0079007800D312A3B9
:1087EA00B34010855882855783A312A3FA0000006C
:1087FA0008802E855882855783A3E0FCA3E0FDA359
:10880A00E0FEA3E0FF7B007A0879077800C312A391
:10881A00B3500E855882855783A312A3FA0007081E
:10882A0000855882855783A3E0F8A3E0F9A3E0FA0C
:10883A00A3E0FB7F007E507D467C0012A3218F5C63
:10884A008E5B8D5A8C597B0A7A007900780012A3C4
:10885A0021AF038F5DAF5CAE5BAD5AAC597B0A7A30
:10886A00007900780012A3218F5C8E5B8D5A8C5997
:10887A00E55DC394054015E55C2401F55CE4355BD0
:10888A00F55BE4355AF55AE43559F5598560828520
:10889A005F83A3E4F0856082855F83A3A3A3E0449A
:1088AA0080F0856082855F83E55CF0AF5CAE5BAD8E
:1088BA005AAC59780812A3C4856082855F83A3EFF6
:1088CA00F0856082855F83A3A3A3E0547FF0E4F57B
:1088DA005DE558240BF582E43557F583E0FF30E077
:1088EA00235401F0E5602404F582E4355FF583E062
:1088FA0054FDF0AF5E7401A807088002C333D8FCA8
:10890A004222803674017E00A85E088005C333CEF9
:10891A0033CED8F9FFE4EF5522601FE5602404F551
:10892A0082E4355FF583E04402F0AF5E7401A80784
:10893A00088002C333D8FCF45222E5582408F58291
:10894A00E43557F583E0FFB46205435D0A801AEF08
:10895A00B47205435D088011EFB47405435D02806B
:10896A0008EF646E60037FFF22E558240BF582E46A
:10897A003557F583E0FF30E303435D80EF30E712BC
:10898A00435D40E5602404F582E4355FF583E04405
:10899A0002F0E558240BF582E43557F583E030E11F
:1089AA0020AF5E7401A807088002C333D8FC4232A4
:1089BA00E5602404F582E4355FF583E04401F08044
:1089CA0010AF5E7401A807088002C333D8FCF452C2
:1089DA0032E558240BF582E43557F583E0FF30E49D
:1089EA0011AE5E7401A806088002C333D8FC423176
:1089FA008010AE5E7401A806088002C333D8FCF466
:108A0A005231EF20E10330E403E4F55D85608285AD
:108A1A005F83A3A3A374BFF0856082855F83A3A34A
:108A2A00E4F0E55DF0E558240AF582E43557F5836C
:108A3A00E0FFE5602404F582E4355FF583EFF0E5B5
:108A4A0058240AF582E43557F583E0FFE5602405EA
:108A5A00F582E4355FF583EFF0E5582409F582E401
:108A6A003557F583E0FFE5602406F582E4355FF5C6
:108A7A0083EFF0E5582409F582E43557F583E0FFE2
:108A8A00E5602407F582E4355FF583EFF0856082BF
:108A9A00855F83A3A3A3E4F0856082855F83A3A394
:108AAA00F0855882855783A3E0FCA3E0FDA3E0FE8E
:108ABA00A3E0F5668E658D648C637D06AF5E1283D6
:108ACA00DF755D08E558240CF582E43557F583E037
:108ADA006003435D10E5602404F582E4355FF583A5
:108AEA00E05403455DF0E5582405F582E43557F571
:108AFA0083E0FEC394054006EED3940840037FFF4B
:108B0A0022E5582406F582E43557F583E0FDC3943F
:108B1A00014006EDD3940240037FFF22ED14FF25A6
:108B2A00E025E0FFEE24FB4FF55DE5582407F582CA
:108B3A00E43557F583E024D0601814601A24C36022
:108B4A001E146009240A7014435D188012435D08DC
:108B5A00800D435D388008435D2880037FFF2285AE
:108B6A006082855F83A3A3A3E55DF074017E00A8FC
:108B7A005E088005C333CE33CED8F9FFE4EF55340F
:108B8A006007AF5E7D0112835AAA57A9587B01C0BC
:108B9A0003C001E55E75F00DA42401F9740335F0F4
:108BAA00A801FCAD03D001D0037E007F0D12A212F2
:028BBA007F003A
:018BBC002296
:108BBD008F828E83E014FEC3940440037FFF22EE68
:108BCD0075F008A42400F582E43420AD82FC9001F8
:108BDD002C7408F0EE04A3F0E4A3F08D828C83E5F1
:108BED00822406F582E43583F583E090012FF08D24
:108BFD00828C83E5822405F582E43583F583E05488
:108C0D001E900130F0742D2EF8E6A3F0AF0674011E
:108C1D00A807088002C333D8FCF557E533C3940188
:108C2D00400D902078E0540F755800F55980097F5C
:108C3D00021211278E588F59C3E5586480948040D5
:108C4D00DAE5575559900132F07E017F2C7D0712E0
:048C5D00916A7F0099
:018C610022F0
:108C62008F828E83E014FEC3940440037FFF22EEC2
:108C720075F008A42400F582E43420AF82FE90014E
:108C820033740AF08F828E83E5822404F582E43500
:108C920083F583E0900134F07E017F337D021291EF
:038CA2006A7F00E6
:018CA50022AC
:048CA6008E578F58FE
:108CAA008F828E83E014FEC3940440037FFF22EE7A
:108CBA0075F008A42400F582E43420AD82FC8558BE
:108CCA0082855783A3E0600FED2404F582E43CF526
:108CDA0083E04402F08043EE75F00DA4240CF58283
:108CEA00E43403F583E030E020EE25E024C6F58283
:108CFA00E4347FF583E030E1F07F60ED2405F5820E
:108D0A00E43CF583E05FB507F2AE04AF05EF240457
:0C8D1A00F582E43EF583E054FDF07F009C
:018D2600222A
:048D2700AD07AC06E2
:108D2B008D828C83E014FEC3940440037FFF22EEFC
:108D3B0075F008A42400F582E43420AF82FE8D8206
:108D4B008C83A3E0600FEF2404F582E43EF583E00F
:108D5B004401F0800DEF2404F582E43EF583E054EA
:048D6B00FEF07F0097
:018D6F0022E1
:048D7000AD07AC0699
:108D74008D828C83E014FEC3940440037FFF22EEB3
:108D840075F008A42400F582E43420AF82FE8D82BD
:108D94008C83A3E0600D8F828E83A3A3A3E0444061
:108DA400F0800B8F828E83A3A3A3E054BFF07F00D7
:018DB400229C
:108DB5008F828E83E014FEC3940440037FFF22AFAD
:108DC500067401A807088002C333D8FC423E7F0021
:018DD500227B
:048DD6008E578F58CD
:108DDA008F828E83A3E0F55C8F828E83E0F559D370
:108DEA00940440037FFF22E55924FE601614601F95
:108DFA001460282403702E7E7E7F80755A7E755BF0
:108E0A008080227E7E7F00755A7E755B0080167E8A
:108E1A007D7F80755A7D755B80800A7E7D7F0075B7
:108E2A005A7D755B00E55C701B855B82855A83748D
:108E3A00FFF0E55925E024B5F582E4347FF5837423
:108E4A0001F08048E5582402FFE43557FEE55C60EE
:108E5A00230FEFAC0670010E14F5828C83E0FD053A
:108E6A005BE55BAA5A7002055A14F5828A83EDF013
:108E7A00155C80D9855882855783A3E0FFE559257B
:0E8E8A00E024B5F582E4347FF583EFF07F003D
:018E980022B7
:108E9900EF2405F558E43EF5579001357407F09035
:108EA900017A7401F0A37436F0855882855783A33B
:108EB900A3A3E0FEA3E08E59F55A8558828557830E
:108EC900E0249E606124F9600E24F17003028F7A18
:108ED90024146003028FC8855882855783A3E0FE56
:108EE900A3E0FFC3E49FF55C74019EF55BD3E55CE9
:108EF900943FE55B94004006755B00755C3FD3E5E4
:108F09005A955CE559955B5003028FCBAE5BAF5C1C
:108F1900855882855783A3A3A3EEF0FEA3EFF08EB5
:108F290059F55A028FCB855882855783A3E0FEA352
:108F3900E0FFC374309FF55CE49EF55BD3E55C9478
:108F490010E55B94004006755B00755C10D3E55A2B
:108F5900955CE559955B406AAE5BAF5C8558828547
:108F69005783A3A3A3EEF0FEA3EFF08E59F55A8021
:108F790051855882855783A3E0FEA3E0FFC3E49F90
:108F8900F55CE49EF55B455C600BD3E55C943FE5DD
:108F99005B94004006755B00755C3FD3E55A955CB0
:108FA900E559955B401CAE5BAF5C8558828557835C
:108FB900A3A3A3EEF0FEA3EFF08E59F55A80037F29
:108FC9000122855882855783E0249E700302908B85
:108FD90024F9605824F170030290DB241460030221
:108FE900911F855882855783A3E0FEA3E0FFD394A0
:108FF900FFEE9400400302911F900175EFF0E55ACE
:10900900155AAE59700215594E700302911F9001FD
:1090190075E0FF04F0A807E6FF90017AE475F00116
:1090290012A29785F082F583EFF080D28558828568
:109039005783A3E0FEA3E0FFC39480EE940050039E
:1090490002911FD3EF94FFEE9400400302911F9009
:109059000176EFF0E55A155AAE59700215594E705E
:109069000302911F900176E0FF04F0A807E6FF9044
:10907900017AE475F00112A29785F082F583EFF089
:1090890080D2855882855783A3E0FEA3E0FFC3946D
:1090990020EE9400500302911FD3EF942FEE940019
:1090A9005074900177EFF0E55A155AAE59700215D0
:1090B900594E6062900177E0FF04F0A807E6FF903F
:1090C900017AE475F00112A29785F082F583EFF039
:1090D90080D5855882855783A3E0FFA3E090017866
:1090E900CFF0A3EFF0E55A155AAE59700215594E53
:1090F9006024900178E475F00112A29785F082F559
:1091090083E0FF90017AE475F00112A29785F0825D
:10911900F583EFF080CF7E017F35855882855783AF
:0D912900A3A3A3E0A3E004FD12916A7F0060
:019136002216
:109137008E628F638C648D65AF031BEF60240563BC
:10914700E563AE627002056214F5828E83E0FF0567
:1091570065E565AC647002056414F5828C83EFF0F5
:0391670080D6228D
:06916A008D5DAB07AA06B3
:1091700075614075600D755F03755E00907FC2E09C
:1091800020E1F9AF61AE60AD5FAC5EEC4D4E4F706B
:1091900008907FC27402F080D7907FC2E020E11671
:1091A000AF03AE027C7B7D80AB5D129137907FC3B5
:0891B000E55DF07F01227F0064
:0191B8002294
:1091B900900184740BF0A3E533F0900AF5E49390E1
:1091C9000186F0900AF6E493900187F0E490017C1F
:1091D900F0A3F0A3F0A3F0A3F0A37410F0A374011B
:1091E900F0A37488F07E017F7C1219C17E017F840F
:0791F9007D1412916A7F0052
:01920000224B
:109201007E7B7F40754E7B754F40907FD3E0FF851D
:109211004E51854F52E5522401F556E43551F5552D
:10922100E4F550855282855183E0FE14B40C005060
:109231005B909239F828287302925D02925D029246
:109241006702927102927102927102928502925D9D
:1092510002927B02925D02928D02925DEF64026046
:109261002B7550FF8026EF640E60217550FF801C26
:10927100EF640360177550FF8012EF6403600D7592
:1092810050FF8008EF640660037550FFE5506015DC
:109291009001987411F0A3EEF07E017F987D021287
:1092A100916AAF5022E4F550855282855183E014D2
:1092B100B40F0040030293CF9092C0F828287302A4
:1092C10092ED0292F902930502935302935E029387
:1092D1006902937402937F02938A0293950293A089
:1092E1000293A70293CF0293B20293BDAF56AE553C
:1092F1001284418F500293D2AF56AE551285618FC1
:10930100500293D2855553855654E5542401FFE408
:109311003553FE1286BEAF54AE531287518F50EFB4
:10932100640160030293D2AF54AE531287A68F50EB
:10933100E55070030293D2855482855383E075F022
:109341000DA424F4F582E43402AF82FE1287A60252
:1093510093D2AF56AE55128CA68F508074AF56AED5
:1093610055128D278F508069AF56AE55128D708F73
:1093710050805EAF4FAE4E128E998F508053AF56D4
:10938100AE55128BBD8F508048AF56AE5512862D0B
:109391008F50803DAF56AE55128C628F5080321285
:1093A10091B98F50802BAF56AE55128DB58F50802D
:1093B10020AF56AE55128DD68F508015AF4FAE4EA1
:1093C1007C027DAF7B40129137E4F55080037550EC
:1093D100FFE550601D9001987411F085528285510E
:1093E10083E0900199F07E017F987D0212916AAF2E
:1093F1005022855282855183E0FF1424FA500424BF
:10940100FE701F9001987410F0A3EFF085568285CD
:109411005583E090019AF07E017F987D0312916A55
:049421008F50AF5069
:019425002224
:089426008F518E508D4F8C4ECA
:10942E0075580175599CE4F557AF531553EF7003FA
:10943E000294C4AF52E4FCFDFEF8F9FAAB07AF514B
:10944E00AE50AD4FAC4E12A321AF038F56AF51AEFF
:10945E0050AD4FAC4EC004C005C006C007AF52E4BD
:10946E00FCFDFEF8F9FAAB07D007D006D005D00404
:10947E0012A3218F518E508D4F8C4EE5562430F510
:10948E0056D39439400674072556F5560559E559B5
:10949E00AE587002055814F5828E83E4F00559E536
:1094AE0059AE587002055814F5828E83E556F005B4
:1094BE00570557029437E559155970021558AF578D
:1094CE001557EF6023E5591559AE5870021558F52A
:1094DE00828E83E0FF0555E555AC54700205541499
:0894EE00F5828C83EFF080D6BB
:0194F6002253
:1094F700E49001C9F07E017FCA9001BEEEF0A3EFB0
:0A950700F09001C2EEF0A3EFF02295
:10951100AA07A9059001C9E0C394405061AC027447
:10952100017E00A804088005C333CE33CED8F9FFED
:10953100E4EF55346045EA04FF9001C2E0FCA3E08A
:10954100FDF5828C83EFF0A3E9F08D828C83A3A3D8
:10955100EBF09001C2E475F00312A281FCD3E5F0B7
:109561009487EC9402400A9001C27401F0A374CA7A
:10957100F0C2AF9001C9E004F0D2AF7F01227F00B9
:0195810022C7
:109582009001C9E0D3940040559001BEE0FCA3E0F5
:10959200AA04F97B01C003C002C001AA06A907A858
:1095A20001AC02AD03D001D002D0037E007F0312D2
:1095B200A2129001BEE475F00312A281FCD3E5F081
:1095C2009487EC9402400A9001BE7401F0A374CA1D
:1095D200F0C2AF9001C9E014F0D2AF7F01227F0048
:0195E2002266
:1095E300907FC2E020E1737E7B7F8075537B75544F
:1095F30080E5542401FFE43553A9077B018B55F51E
:10960300568957FE129582EF6050AB55AA56A9575B
:1096130012A23B14FF90000112A254B40216C2AF6F
:10962300EF75F008A42401F582E43420F583E044C7
:1096330004F0D2AF74017E00A807088005C333CEBF
:1096430033CED8F9FFE4EF5534600F855482855348
:0A96530083740DF0907FC37404F0DF
:01965D0022EA
:10965E001295E3E4F54E743A254EF8E654F0F54FC4
:10966E0074C5254EF582E43401F583E0654FFFC4E1
:10967E00540FF550602274C5254EF582E43401F581
:10968E0083E54FF0AF4E7D01E54F4550FB1295112E
:10969E00EF70051295E380EC054EE54EC394044041
:1096AE00B51295E3E53E6048E4F54EAF4E7401A861
:1096BE0007088002C333D8FCF54F553E6029E54EAE
:1096CE0075F008A42405F582E43420F583E030E635
:1096DE0016AF4E7D047B80129511EF70051295E347
:1096EE0080EFE54FF4523E054EE54EC3940440BB69
:1096FE00900300E060030297DF7419F0E533C39422
:10970E0001400D902078E0540F755100F5528009FC
:10971E007F021211278E518F52C3E55164809480BF
:10972E0040DA9001BCE06552F06037E4F54EAF4E82
:10973E007401A807088002C333D8FCF54F9001BC12
:10974E00E0554F6014AF4E7D08E54F5552FB129514
:10975E0011EF70051295E380EC054EE54EC39404AF
:10976E0040CC9001BCE552F0E4F54EC2AF74362504
:10977E004EF8E6F54FE4F6D2AF534F1EE54F6011AB
:10978E00AF4E7D02AB4F129511EF70051295E3802F
:10979E00EF742D254EF8E6F54F74FC254EF582E458
:1097AE003402F583E0654F6011AF4E7D04AB4F126E
:1097BE009511EF70051295E380EF74FC254EF5823E
:1097CE00E43402F583E54FF0054EE54EC3940440B4
:0497DE009A1295E363
:0197E2002264
:0C97E300787FE4F6D8FD75816702982AB3
:1097EF000205ADE493A3F8E493A34003F68001F2DE
:1097FF0008DFF48029E493A3F85407240CC8C3337B
:10980F00C4540F4420C8834004F456800146F6DF49
:10981F00E4800B010204081020408090986FE47ED2
:10982F00019360BCA3FF543F30E509541FFEE4933E
:10983F00A360010ECF54C025E060A840B8E493A305
:10984F00FAE493A3F8E493A3C8C582C8CAC583CA30
:10985F00F0A3C8C582C8CAC583CADFE9DEE780BEE8
:10986F006024028A010204081020408081828488CB
:10987F0090A0C0C1C2C4C8D0E0E1E2E4E8F0F1F2C8
:08988F00F4F8F9FAFCFDFEFFFC
:0198970000D0
:089898008B598A5A895B8D5C33
:1098A000E4F55DF55EAF5C155CEF6036AB59055BCA
:1098B000E55BAA5A7002055A14F912A23BFFE55D56
:1098C000E55E6F25E0FFE433FE74952FF582EE34FC
:1098D0009EF583E55DFFE493F55D7401936FF55E9E
:0698E00080C3AE5DAF5E27
:0198E600225F
:0B98E700C0E0C083C082C0D075D01864
:1098F200902060E0540FFE30E005902002E0FFEE81
:1099020030E10590200AE0FFEE30E205902012E0FF
:10991200FFEE30E30590201AE0FF9001C4E0B51E8F
:0A99220004E4F080059001C4EEF0AB
:09992C00D0D0D082D083D0E0320B
:02993500A90384
:10993700EF75F008A42400F582E43420AB82FAE541
:109947005C455DF55EE960148A83E5822404F5824F
:10995700E43583F583E04DF0E4FE8013EB2404F552
:1099670082E43AF583E0FFEDF4FCEF5CF0AE5EEBEA
:109977002406F582E43AF583E0555EFCB50603AFAD
:109987000522E55C5CFEE55D5CFDE96016EE7004B2
:109997007F0180027F00AE07ED70047F0180027FA8
:1099A70000AD07EE6003AF5C22ED6003AF5D227F81
:0199B70000AF
:0199B800228C
:1099B9007555027556B0900335740FF0855682853A
:1099C9005583A3E0FF900337F0855682855583E0E0
:1099D900900336F090033874FFF0755703755839C2
:1099E900EF14B40B004003029E5D9099FAF8282801
:1099F90073029A1B029ABA029BBF029BDE029BDE8C
:109A0900029C94029CCF029CF4029DB2029DE20248
:109A19009E0EE4F54EE54E75F008A42400F582E4A7
:109A29003420AF82F5538F54E4FFE4FEEF601074E5
:109A39008A2EF582E43402F583E0F4F54F800D7443
:109A49008A2EF582E43402F583E0F54FE5542407C4
:109A5900F582E43553F583E54FF0E0F550654F6045
:109A690038E4900338F0E54E04FD0558E558AA5747
:109A79007002055714F5828A83EDF00558E558AC54
:109A8900577002055714F5828C83E54FF08558828B
:109A9900855783E550F0029E630EBE248F0FEF6455
:109AA900027087054EE54E64046003029A1E029E09
:109AB90063E4F54EAF4EE4FD12835A054EE54ED3ED
:109AC900940340F09000047498F0A374E7F0E4F56F
:109AD900507E207F00755320755400F54EAF4E74AB
:109AE90001A807088002C333D8FCF54F9001C4F0E0
:109AF9009001C0E4F0A3740AF0855482855383A3CE
:109B09007402F09001C4E0B54F349001C0E07002D6
:109B1900A3E070EF900338F0E54E04FF0558E558CF
:109B2900AC577002055714F5828C83EFF085588283
:109B390085578374FFF0E49001C4F07550FF9001DC
:109B4900C4E0FF6037E4900338F0E54E04FE0558A1
:109B5900E558AC577002055714F5828C83EEF00571
:109B690058E558AC577002055714F5828C83EFF00D
:109B7900855882855783E54FF07550FFE55070167B
:109B890074082554F554E43553F553054EE54E64F0
:109B9900046003029AE6E4F54EAF4E7D0112835A42
:109BA900054EE54ED3940340F09000047413F0A3DE
:109BB9007412F0029E63855682855583E014FF7402
:109BC90001A807088002C333D8FC9002F7F090017E
:109BD900C4F0029E639001C07403F0A374E8F0E43A
:109BE900F5509002F7E0FF9001C4E0B50719900124
:109BF900C0E07002A3E070EA900338F085588285CE
:109C0900578374FFF0F550E5506003029E6390019D
:109C1900C0F0A37496F09001C0E07002A3E070F662
:109C2900E533C39401400D902078E0540F7551003D
:109C3900F55280097F021211278E518F52C3E551C7
:109C49006480948040DAE552540FF5509002F7E0B1
:109C5900555070047F0180027F008F4F85568285A1
:109C69005583A3E0B4050CE54F70047F0180027FA2
:109C7900008F4FE54F7003029E63E4900338F0852F
:109C89005882855783E550F0029E63E4FFFD1283F5
:109C99005A7E207F00755320755400855482855360
:109CA90083A3A3A3E04480F0855482855383740180
:109CB900F0A3E4F0855482855383A3A3A3E0547FE2
:109CC900F0D204029E63C2047E207F007553207582
:109CD9005400E5542405F582E43553F583E030E674
:109CE900F1E4FF7D0112835A029E63E4F550F54EBB
:109CF900AF4EE4FD12835AE54E75F008A42400F531
:109D090082E43420AF82F5538F54F583E58224042D
:109D1900F582E43583F583E054FCF0AF4E7D017B99
:109D290001755C80755D401299358F50E550701151
:109D3900AF4E7D027B01755C10755D201299358FE0
:109D490050E5507010AF4E7D01FB755C80755D402C
:109D59001299358F50E5507010AF4E7D02FB755C3E
:109D690010755D201299358F50AF4E7D0112835ABF
:109D7900E5506026E4900338F0E54E04FF0558E508
:109D890058AC577002055714F5828C83EFF085584B
:109D990082855783E550F0029E63054EE54ED394C4
:109DA900035003029CF9029E63E4900359F0A3F067
:109DB900A3F0A3F0A3F0A37410F0A3749EF0A3740E
:109DC90085F07E037F591281D9EF64087003029EE2
:109DD90063E4900338F0029E63E4900359F0A3F022
:109DE900A3F0A3F0A3F0A37410F0A3E557F0A3E543
:109DF90058F07E037F591219C1EF6408605CE49042
:109E09000338F08055E5562402FFE43555FAA907D1
:109E19007B017D10129898EF4E7032900359F0A390
:109E2900F0A3F0A3F0A3F0A37410F0E55624029078
:109E39000360F0E4355590035FF07E037F5912818A
:109E4900D9EF64086014E4900338F0800DE49003BE
:109E590038F080069003387401F09001C0E4F0A353
:109E6900740AF09001C0E07002A3E070F67E037FEF
:0B9E7900357D2412916AE49002AFF0E6
:019E840022BB
:109E8500FFFEFCF8F0E0C080000103070F1F3F7FD5
:109E95000000C0C1C1810140C30103C00280C241AD
:109EA500C60106C00780C7410500C5C1C48104407D
:109EB500CC010CC00D80CD410F00CFC1CE810E402D
:109EC5000A00CAC1CB810B40C90109C00880C8413D
:109ED500D80118C01980D9411B00DBC1DA811A40AD
:109EE5001E00DEC1DF811F40DD011DC01C80DC417D
:109EF5001400D4C1D5811540D70117C01680D641AD
:109F0500D20112C01380D3411100D1C1D0811040BC
:109F1500F00130C03180F1413300F3C1F2813240AC
:109F25003600F6C1F7813740F50135C03480F4417C
:109F35003C00FCC1FD813D40FF013FC03E80FE412C
:109F4500FA013AC03B80FB413900F9C1F88138403C
:109F55002800E8C1E9812940EB012BC02A80EA41AC
:109F6500EE012EC02F80EF412D00EDC1EC812C407C
:109F7500E40124C02580E5412700E7C1E6812640AC
:109F85002200E2C1E3812340E10121C02080E041BC
:109F9500A00160C06180A1416300A3C1A2816240AC
:109FA5006600A6C1A7816740A50165C06480A4417C
:109FB5006C00ACC1AD816D40AF016FC06E80AE412C
:109FC500AA016AC06B80AB416900A9C1A88168403C
:109FD5007800B8C1B9817940BB017BC07A80BA41AC
:109FE500BE017EC07F80BF417D00BDC1BC817C407C
:109FF500B40174C07580B5417700B7C1B6817640AC
:10A005007200B2C1B3817340B10171C07080B041BB
:10A01500500090C191815140930153C052809241AB
:10A02500960156C057809741550095C1948154407B
:10A035009C015CC05D809D415F009FC19E815E402B
:10A045005A009AC19B815B40990159C0588098413B
:10A05500880148C0498089414B008BC18A814A40AB
:10A065004E008EC18F814F408D014DC04C808C417B
:10A07500440084C185814540870147C046808641AB
:10A08500820142C043808341410081C180814040BB
:10A09500E4FF74F82FF582E43402F583E0700302DF
:10A0A500A138743A2FF8E620E50302A138EF75F0E0
:10A0B50008A42400F582E43420AD82FCF583E58212
:10A0C5002405F582E43583F583E0546064607063AC
:10A0D500EF25E024EFF582E43402F583E475F00121
:10A0E50012A29785F082F583E08D828C83F074F857
:10A0F5002FF582E43402F583E014F07036EF25E0A5
:10A1050024C7F582E4347FF583E4F0EF25E0FEC350
:10A11500740C9E75F040A42440F582E5F0347BADC7
:10A1250082FCEF25E024EFF582E43402F583ECF0C0
:0CA13500A3EDF00FEF6404600302A0979C
:01A1410022FB
:10A14200E709F608DFFA8046E709F208DFFA803EFF
:10A1520088828C83E709F0A3DFFA8032E309F608EC
:10A16200DFFA8078E309F208DFFA807088828C8354
:10A17200E309F0A3DFFA806489828A83E0A3F60808
:10A18200DFFA805889828A83E0A3F208DFFA804CE2
:10A1920080D280FA80C680D4806980F280338010B9
:10A1A20080A680EA809A80A880DA80E280CA803322
:10A1B20089828A83ECFAE493A3C8C582C8CCC5839A
:10A1C200CCF0A3C8C582C8CCC583CCDFE9DEE7806A
:10A1D2000D89828A83E493A3F608DFF9ECFAA9F0E9
:10A1E200EDFB2289828A83ECFAE0A3C8C582C8CC3F
:10A1F200C583CCF0A3C8C582C8CCC583CCDFEADE58
:10A20200E880DB89828A83E493A3F208DFF980CCB9
:10A2120088F0ED2402B4040050C2F582EB2402B4AB
:10A22200040050B823234582F582EF4E60AEEF6002
:09A23200010EE5822390A1927354
:10A23B00BB010689828A83E0225002E722BBFE0221
:09A24B00E32289828A83E4932254
:10A25400BB010CE58229F582E5833AF583E02250BF
:10A2640006E92582F8E622BBFE06E92582F8E22209
:0DA27400E58229F582E5833AF583E4932223
:10A28100C5F0F8A3E028F0C5F0F8E5821582700268
:06A291001583E038F02205
:10A29700A3F8E0C5F025F0F0E5821582700215837A
:06A2A700E0C838F0E822D7
:10A2AD00BB0110E58229F582E5833AF583E0F5F0EF
:10A2BD00A3E0225009E92582F886F008E622BBFECC
:10A2CD000AE92582F8E2F5F008E222E5832AF58312
:08A2DD00E993F5F0A3E99322D7
:10A2E50075F008758200EF2FFFEE33FECD33CDCC30
:10A2F50033CCC58233C5829BED9AEC99E5829840B3
:10A305000CF582EE9BFEED9AFDEC99FC0FD5F0D68F
:10A31500E4CEFBE4CDFAE4CCF9A88222B800C1B9B9
:10A325000059BA002DEC8BF084CFCECDFCE5F0CBF7
:10A33500F97818EF2FFFEE33FEED33FDEC33FCEB30
:10A3450033FB10D703994004EB99FB0FD8E5E4F9EB
:10A35500FA227818EF2FFFEE33FEED33FDEC33FCD8
:10A36500C933C910D7059BE99A4007EC9BFCE99ACC
:10A37500F90FD8E0E4C9FAE4CCFB2275F010EF2F11
:10A38500FFEE33FEED33FDCC33CCC833C810D70711
:10A395009BEC9AE899400AED9BFDEC9AFCE899F84C
:0EA3A5000FD5F0DAE4CDFBE4CCFAE4C8F922DF
:10A3B300EB9FF5F0EA9E42F0E99D42F0E89C45F000
:01A3C3002277
:10A3C400E8600FECC313FCED13FDEE13FEEF13FF77
:03A3D400D8F1229B
:10A3D700080808E6CF2FF618E6CE3EF618E6CD3D7C
:07A3E700F618E6CC3CF6225B
:0CA3EE00ECF0A3EDF0A3EEF0A3EFF022E2
:10A3FA00A8828583F0D083D08212A41112A41112EC
:10A40A00A41112A411E473E493A3C583C5F0C58310
:10A41A00C8C582C8F0A3C583C5F0C583C8C582C8AC
:01A42A00220F
:00000001FF
/*****************************************************************************
*
* whiteheat.h -- ConnectTech WhiteHEAT Firmware.
*
* Copyright (C) 2000-2002 ConnectTech Inc (http://www.connecttech.com/)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* (10/09/2002) Stuart MacDonald
* Firmware 4.06
*
* (04/09/2000) gkh
* Updated the firmware with the latest provided by ConnectTech.
*
* (01/16/2000) gkh
* Fixed my intel hex processing tool, so now the firmware actually
* matches the original file (this was causing a few problems...)
*
* (01/15/2000) gkh
* Added debug loader firmware if DEBUG is #defined:
* Port 1 LED flashes when the vend_ax program is running
* Port 2 LED flashes when any SETUP command arrives
* Port 3 LED flashes when any valid VENDOR request occurs
* Port 4 LED flashes when the EXTERNAL RAM DOWNLOAD request occurs
*
* version 1.0 (01/09/2000) gkh
* Original firmware from ConnectTech massaged a little to be program
* readable.
*
*****************************************************************************/
#define whiteheat_DATE "20000106"
:0300000002098D65
:030033000208FBC5
:03004300020B00AD
:03004B000205AA01
:10010000907FA5E05410FFC4540F4450F50F13E442
:1001100033F511907FE9E0245EB407004003020349
:1001200078900128F82828730201BC0201BC020162
:100130009102013D02015302016F02019A907F007A
:10014000E511F0907FB57401F0907FB4E04402F0C7
:10015000020378907F92E0FFC4540F907F00F090EC
:100160007FB57401F0907FB4E04402F0020378128E
:100170000A895007E4907F00F08006907F00740F9A
:10018000F0907FB57401F0907FB4E04402F0020378
:1001900078907FEAE0F50F020378907F007407F013
:1001A000907FB57401F0907FB4E04402F07FE87E68
:1001B00003120D94D206120CCC020378907FEAE071
:1001C000752800F529A3E0FEE4EE4228907FEEE0DA
:1001D000752A00F52BA3E0FEE4EE422A907FE8E0CA
:1001E00064C060030202C9E52B452A70030203784C
:1001F000C3E52B9440E52A94005008852A2C852BD2
:100200002D8006752C00752D40907FE9E064A37069
:1002100034F530F531C3E531952DE530952C505C42
:10022000E5292531F582E5303528F583E0FF7400B6
:100230002531F582E4347FF583EFF00531E5317047
:1002400002053080D0E4F530F531C3E531952DE578
:1002500030952C501874002531F582E4347FF583F5
:1002600074CDF00531E5317002053080DDAF29AE87
:1002700028AD2D7A7F79007B00120BF4907FB5E5D5
:100280002DF0E52D2529F529E52C3528F528C3E5A0
:100290002B952DF52BE52A952CF52A907F92E0FFE2
:1002A000C4540F752E00F52FD39400E52E94005002
:1002B0000C907FB4E020E1030201E780F4907FB46A
:1002C000E020E2030201E780F4907FE8E064406010
:1002D00003020378E52B452A7003020378E4907F3C
:1002E000C5F0907F92E0FFC4540F752E00F52FD318
:1002F0009400E52E94005009907FC4E030E109801D
:10030000F7907FB4E020E3F9907FC5E0752C00F50D
:100310002D907FE9E064A37034F530F531C3E53109
:10032000952DE530952C503474C02531F582E43498
:010330007E4E
:10033100F583E0FFE5292531F582E5303528F583A0
:10034100EFF00531E5317002053080D0AF29AE28DC
:10035100AD2D7A7E79C07BC0120C3FE52D2529F5A4
:1003610029E52C3528F528C3E52B952DF52BE52A14
:09037100952CF52A0202D4C322E6
:10037A00907FE9E070030204521470030204CE2451
:10038A00FE700302054224FB700302044C1470033E
:10039A0002044614700302043A147003020440244F
:1003AA00056003020596120E4440030205A2907FDF
:1003BA00EBE024FE60161460402402706974119008
:1003CA007FD4F07400907FD5F00205A2907FEAE016
:1003DA00FF120B588B258A268927EA496011AE023B
:1003EA00EE907FD4F0AF01EF907FD5F00205A29096
:1003FA007FB4E04401F00205A2907FEAE0FF120810
:10040A00BA8B258A268927EA496011AE02EE907FC7
:10041A00D4F0AF01EF907FD5F00205A2907FB4E04F
:10042A004401F00205A2907FB4E04401F00205A263
:10043A00120E1F0205A2120E2D0205A2120AF702BF
:10044A0005A2120E110205A2120E4640030205A2CF
:10045A00907FE8E0247F60241460312402705BA25C
:10046A0000E433FF25E0FFA202E4334F907F00F05F
:10047A00E4A3F0907FB57402F00205A2E4907F0035
:10048A00F0A3F0907FB57402F00205A2907FECE031
:10049A00F45480FFC4540FFFE054072F25E024B41E
:1004AA00F582E4347FF583E054FD907F00F0E4A305
:1004BA00F0907FB57402F00205A2907FB4E0440187
:1004CA00F00205A2120E4840030205A2907FE8E05E
:1004DA0024FE601D240260030205A2907FEAE0B4B4
:1004EA000105C2000205A2907FB4E04401F00205B2
:1004FA00A2907FEAE07038907FECE0F45480FFC469
:10050A00540FFFE054072F25E024B4F582E4347F2A
:10051A00F583E4F0907FECE05480FF131313541F2B
:10052A00FFE054072F907FD7F0E04420F0806990D5
:10053A007FB4E04401F08060120E4A505B907FE87D
:10054A00E024FE60182402704F907FEAE0B40104B0
:10055A00D2008044907FB4E04401F0803B907FEA6F
:10056A00E07020907FECE0F45480FFC4540FFFE069
:10057A0054072F25E024B4F582E4347FF58374010F
:10058A00F08015907FB4E04401F0800C1201005015
:10059A0007907FB4E04401F0907FB4E04402F02277
:1005AA00C0E0C083C082C085C084C086758600C092
:1005BA00D0C000C001C002C003C006C007907FA51A
:1005CA00E030E206750D06020676907FA5E020E18E
:1005DA000CE50D64026006750D07020676AF0DEF95
:1005EA0024FE604814602C24FE6077240460030211
:1005FA000676AB09AA0AA90BAF0C050C8F82758384
:10060A0000120822907FA6F0E50C6508705E750D51
:10061A00058059907FA6E0AB09AA0AA90BAE0C8EF9
:10062A008275830012084F750D028040E50824FE8A
:10063A00B50C07907FA5E04420F0E50814B50C0A34
:10064A00907FA5E04440F0E4F50D907FA6E0AB0969
:10065A00AA0AA90BAE0C8E8275830012084F050CEC
:10066A00800A907FA5E04440F0E4F50D5391DFD075
:10067A0007D006D003D002D001D000D0D0D086D087
:0A068A0084D085D082D083D0E03206
:100694008C338D34907F95E044C0F0E4F535F53625
:1006A400C3E5369534E53595335069EF2536F58243
:1006B400E5353EF58374FFF0F46002C322EF25367E
:1006C400F582E5353EF583E4F06002C322EF25367A
:1006D400F582E5353EF58374AAF064AA6002C3226C
:1006E400EF2536F582E5353EF5837455F0645560A3
:1006F40002C322AD36E5362FF582E5353EF583EDAE
:10070400F0FCAC05ED6C6002C3220536E5367002E0
:100714000535808CE4F535F536C3E5369534E53595
:1007240095335027EF2536F582E5353EF583E065B0
:10073400366002C322EF2536F582E5353EF583E4C3
:0D074400F00536E5367002053580CED32273
:10075100C204D205C203C200C202C201120E3DD2BE
:10076100E843D820907FAB74FFF0907FA9F0907F91
:10077100AAF05391EF907F95E044C0F0907F93747D
:1007810030F0120A19907FAFE04401F0907FAEE0A3
:10079100440DF0D2AF120E352001427524007523AD
:1007A100007522007521007F487E927D007C00ABA0
:1007B10024AA23A922A821C31208A950DB2001D809
:1007C1007A0079007800E5242401F524EA3523F53F
:1007D10023E93522F522E83521F52180CA300105CA
:1007E10012037AC20130041A120E4050131209008A
:1007F100300007907FD6E030E7F3120D4A120E4227
:08080100C2031208FF80D62299
:10080900BB010689828A83E0225002E722BBFE02ED
:09081900E32289828A83E4932220
:10082200BB010CE58229F582E5833AF583E022508B
:1008320006E92582F8E622BBFE06E92582F8E222D5
:0D084200E58229F582E5833AF583E49322EF
:10084F00F8BB010DE58229F582E5833AF583E8F0DF
:10085F00225006E92582C8F622BBFE05E92582C88B
:02086F00F22273
:10087100BB0110E58229F582E5833AF583E0F5F0C5
:10088100A3E0225009E92582F886F008E622BBFEA2
:100891000AE92582F8E2F5F008E222E5832AF583E8
:0808A100E993F5F0A3E99322AD
:1008A900EB9FF5F0EA9E42F0E99D42F0E89C45F0A5
:0108B900221C
:0208BA008F2885
:1008BC00E4F529752AFF752B11752C32AB2AAA2B5E
:1008CC00A92C900001120822B4031DAF290529EFB1
:1008DC00B52801221208097E0029FFEE3AA90775F6
:0E08EC002AFFF52B892C80D47B007A0079003E
:0108FA0022DB
:0408FB0053D8EF32AD
:0108FF0022D6
:09090000907FD6E04480F0807481
:10097D00438701000000000000000000000000227D
:0C098D00787FE4F6D8FD7581390209D4AA
:10099900020751E493A3F8E493A34003F68001F21C
:1009A90008DFF48029E493A3F85407240CC8C3335F
:1009B900C4540F4420C8834004F456800146F6DF2E
:1009C900E4800B0102040810204080900DECE47EC5
:1009D900019360BCA3FF543F30E509541FFEE49323
:1009E900A360010ECF54C025E060A840B8E493A3EA
:1009F900FAE493A3F8E493A3C8C582C8CAC583CA15
:100A0900F0A3C8C582C8CAC583CADFE9DEE780BECC
:100A1900E4907F9CF07F0AFE120D94907F96748972
:100A2900F0907F9C74CFF07FF47E01120D94907F3B
:100A390096E054FEF07F0A7E00120D947F057E0039
:100A4900120D94907F96E04402F0E0547FF07F0508
:100A59007E00120D94907F96E04440F07F057E0061
:100A6900120D94907F96E054BFF07F327E00120DF4
:100A790094907F96E04440F07F327E00120D9422DC
:100A8900753201E532601B7F01120DD77F007E0EA2
:100A99007D007C01120694E433F53270057F0F1254
:100AA9000DD7E532601B7F02120DD77F007E807D56
:100AB900007C80120694E433F53270057F0F120D25
:100AC900D7E532601B7F03120DD77F007E207D4062
:100AD9007C5B120694E433F53270057F0F120DD753
:0E0AE900E5326005E4FF120DD7E53224FF224E
:080AF700907FEAE0F510D32224
:010AFF0032C4
:100B0000020D6400020DAB00020D2F00020D7C00EF
:100B1000020DC100020AFF00020E4C00020E4D0041
:100B2000020E4E00020E4F00020E5000020E510047
:100B3000020E5200020E5300020E5400020E550027
:100B4000020E5600020E5700020E5800020E590007
:080B5000020E5A00020E5B00C8
:100B5800E4FE752AFF752B11752C12AB2AAA2BA956
:100B68002C9000011208226402702DAD060EEDB51E
:100B780007012290000212087185F028F5296228E1
:100B8800E5286229E529622829FDE5283AA905759D
:0E0B98002AFFF52B892C80C37B007A007900A0
:010BA600222C
:100BA700AB07AA06AC05E4FDE5116011EAFFAE0547
:100BB7000DEE2410F582E4340FF583EFF0EBAE056C
:100BC7000D74102EF582E4340FF583EBF0AF050DAD
:100BD70074102FF582E4340FF583ECF0AF0F7A0F22
:0D0BE7007B10120D107F0A7E00120D94226B
:100BF4008E328F338D348A358B36E4FDF537E5112B
:100C04006012E532FFAE050DEE2413F582E4340FD5
:100C1400F583EFF0E533AE050D74132EF582E4345D
:100C24000FF583E533F0AF0F7A0F7B13120D10AF7E
:0B0C34000FAD34AB36AA35120CF122D4
:100C3F008E328F338D348A358B36E4F537E537C3F3
:100C4F00953450200533E533AE327002053214FF70
:100C5F00E5362537F582E43535F583E0FD120BA730
:050C6F00053780D922C9
:100C7400A907E50D7025907FA5E04480F0E925E003
:100C84004401907FA6F08D08AF03A9077509018A76
:0D0C94000A890BE4F50C750D03D322C32271
:100CA100A907E50D7023907FA5E04480F0E925E0D8
:100CB100907FA6F08D08AF03A9077509018A0A89FB
:0B0CC1000BE4F50C750D01D322C322DB
:100CCC00907FD6E054FBF0E04408F0300604E0449A
:100CDC0002F07FD07E07120D94907FD6E054F7F08F
:050CEC00E04404F022C9
:100CF100120C74E50D24FA6010146007240770F3D8
:0F0D01007F0822E4F50D7F0722E4F50D7F06221F
:100D1000120CA1E50D24FA6010146007240770F38B
:0F0D20007F0822E4F50D7F0722E4F50D7F062200
:100D2F00C0E0C083C082907FC4E4F05391EF907F06
:0B0D3F00AB7404F0D082D083D0E0320F
:100D4A00907FD6E030E712E04401F07F147E001273
:0A0D5A000D94907FD6E054FEF022C5
:100D6400C0E0C083C082D2015391EF907FAB740185
:080D7400F0D082D083D0E03200
:100D7C00C0E0C083C082D2035391EF907FAB740864
:080D8C00F0D082D083D0E032E8
:100D94008E388F39E5391539AE38700215384E6002
:070DA40005120E0080EE2293
:100DAB00C0E0C083C0825391EF907FAB7402F0D050
:060DBB0082D083D0E0327B
:100DC100C0E0C083C0825391EF907FAB7410F0D02C
:060DD10082D083D0E03265
:100DD700AE077F217D0174002EF582E4340FAB82CC
:050DE700FA120D1022BC
:100DEC00500F00C0F9A4B0999282F880988883C6FD
:030DFC00A1868E3F
:010DFF0000F3
:100E00007400F58690FDA57C05A3E582458370F905
:010E100022BF
:0E0E1100907F00E510F0907FB57401F0D322C1
:0E0E1F00907F00E50EF0907FB57401F0D322B5
:080E2D00907FEAE0F50ED322EC
:080E3500E4F50DD2E9D2AF2271
:030E3D00D20022BE
:020E4000D322BB
:020E4200D322B9
:020E4400D322B7
:020E4600D322B5
:020E4800D322B3
:020E4A00D322B1
:010E4C003273
:010E4D003272
:010E4E003271
:010E4F003270
:010E5000326F
:010E5100326E
:010E5200326D
:010E5300326C
:010E5400326B
:010E5500326A
:010E56003269
:010E57003268
:010E58003267
:010E59003266
:010E5A003265
:010E5B003264
:101100001201000100000040470510270100010204
:10111000000109022000010103A0000904000002EF
:10112000FF0000040705820240000007050202409C
:10113000000004030904260341006E0063006800F8
:101140006F007200200043006800690070007300A7
:101150002C00200049006E0063002E00280346008A
:10116000690072006D007700610072006500200068
:101170004600720061006D00650057006F0072004C
:101180006B0073002A0343006F006E006600690065
:101190006700750072006100740069006F006E00E6
:1011A000200053007400720069006E006700220383
:1011B00049006E0074006500720066006100630003
:1011C0006500200053007400720069006E00670023
:0211D00000001D
:00000001FF
/*****************************************************************************
*
* whiteheat.h -- ConnectTech WhiteHEAT Firmware.
*
* Copyright (C) 2000-2002 ConnectTech Inc (http://www.connecttech.com/)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* (10/09/2002) Stuart MacDonald
* Firmware 4.06
*
* (04/09/2000) gkh
* Updated the firmware with the latest provided by ConnectTech.
*
* (01/16/2000) gkh
* Fixed my intel hex processing tool, so now the firmware actually
* matches the original file (this was causing a few problems...)
*
* (01/15/2000) gkh
* Added debug loader firmware if DEBUG is #defined:
* Port 1 LED flashes when the vend_ax program is running
* Port 2 LED flashes when any SETUP command arrives
* Port 3 LED flashes when any valid VENDOR request occurs
* Port 4 LED flashes when the EXTERNAL RAM DOWNLOAD request occurs
*
* version 1.0 (01/09/2000) gkh
* Original firmware from ConnectTech massaged a little to be program
* readable.
*
*****************************************************************************/
#define whiteheat_DATE "20000106"
:10000000000000000302098D0000003303020E709F
:100010000000004303020B000000004B030205B385
:100020000000010010907FA5E05410FFC4540F445D
:1000300050F50F13E4000110000001101033F5110A
:10004000907FE9E0245EB407004003020300012032
:1000500000000120107C900128F82828730201BCC0
:100060000201BC02010001300000013010910201C8
:100070003D02015302016F02019A907F000001408E
:100080000000014010E511F0907FB57401F0907F01
:10009000B4E04402F0000150000001501002037C63
:1000A000907F92E0FFC4540F907F00F090000160B9
:1000B00000000160107FB57401F0907FB4E044024D
:1000C000F002037C1200017000000170100A8950D8
:1000D00007E4907F00F08006907F00740F0001809D
:1000E0000000018010F0907FB57401F0907FB4E0C3
:1000F0004402F0020300019000000190107C907F08
:10010000EAE0F50F02037C907F007407F00001A085
:10011000000001A010907FB57401F0907FB4E0441E
:1001200002F07FE87E0001B0000001B01003120D64
:10013000D5D206120D0D02037C907FEAE00001C0CB
:10014000000001C010752900F52AA3E0FEE4EE428C
:1001500029907FEEE00001D0000001D010752B0047
:10016000F52CA3E0FEE4EE422B907FE8E00001E0F6
:10017000000001E01064C060030202C9E52C452BB9
:10018000700302037C0001F0000001F010C3E52CB5
:100190009440E52B94005008852B2D852C000200FF
:1001A00000000200102E8006752D00752E40907FF5
:1001B000E9E064A370000210000002101034F53171
:1001C000F532C3E532952EE531952D505C000220C5
:1001D0000000022010E52A2532F582E5313529F5A7
:1001E00083E0FF740000023000000230102532F579
:1001F00082E4347FF583EFF00532E532700002408F
:10020000000002401002053180D0E4F531F532C320
:10021000E532952EE5000250000002501031952D78
:10022000501874002532F582E4347FF583000260B3
:10023000000002601074CDF00532E5327002053125
:1002400080DDAF2AAE000270000002701029AD2ED2
:100250007A7F79007B00120BF4907FB5E500028075
:1002600000000280102EF0E52E252AF52AE52D3516
:1002700029F529C3E500029000000290102C952E6C
:10028000F52CE52B952DF52B907F92E0FF0002A039
:10029000000002A010C4540F752F00F530D3940055
:1002A000E52F9400500002B0000002B0100C907FC7
:1002B000B4E020E1030201E780F4907FB40002C0C3
:1002C000000002C010E020E2030201E780F4907F0A
:1002D000E8E06440600002D0000002D01003020396
:1002E0007CE52C452B700302037CE4907F0002E048
:1002F000000002E010C5F0907F92E0FFC4540F753B
:100300002F00F530D30002F0000002F0109400E559
:100310002F94005009907FC4E030E1098000030071
:100320000000030010F7907FB4E020E3F9907FC550
:10033000E0752D00F500031000000310102E907FD3
:10034000E9E064A3703890206BF0F531F5000320EC
:10035000000003201032C3E532952EE531952D5073
:100360003474C025320003300000033010F582E4FD
:10037000347EF583E0FFE52A2532F582E50003406F
:100380000000034010313529F583EFF00532E532E6
:1003900070020531800003500000035010D0AF2AD6
:1003A000AE29AD2E7A7E79C07BC0120C800003602E
:1003B0000000036010E52E252AF52AE52D3529F5E4
:1003C00029C3E52C95000370000003700D2EF52C59
:1003D000E52B952DF52B0202D4C300000000037D10
:1003E000012200000000037E10907FE9E07003020C
:1003F00004561470030204D22400038E0000038EFE
:1004000010FE700302054624FB70030204501470B2
:100410000300039E0000039E1002044A14700302AE
:10042000043E147003020444240003AE000003AE33
:100430001005600302059A120E7B40030205AB9083
:100440007F0003BE000003BE10EBE024FE60161424
:100450006040240270697411900003CE000003CE46
:10046000107FD4F07400907FD5F00205AB907FEA46
:10047000E00003DE000003DE10FF120B588B268A1B
:10048000278928EA496011AE020003EE000003EE5E
:1004900010EE907FD4F0AF01EF907FD5F00205AB66
:1004A000900003FE000003FE107FB4E04401F00260
:1004B00005AB907FEAE0FF120C00040E0000040E72
:1004C000103F8B268A278928EA496011AE02EE90F8
:1004D0007F00041E0000041E10D4F0AF01EF907FD7
:1004E000D5F00205AB907FB4E000042E0000042E8E
:1004F000104401F00205AB907FB4E04401F0020526
:10050000AB00043E0000043E10120E520205AB1276
:100510000E600205AB120AF70200044E0000044E02
:100520001005AB1208F10205AB120E7D4003020567
:10053000AB00045E0000045E10907FE8E0247F6062
:10054000241460312402705BA200046E0000046E6B
:100550001000E433FF25E0FFA202E4334F907F0058
:10056000F000047E0000047E10E4A3F0907FB574D8
:1005700002F00205ABE4907F0000048E0000048EC0
:1005800010F0A3F0907FB57402F00205AB907FEC01
:10059000E000049E0000049E10F45480FFC4540F39
:1005A000FFE054072F25E024B40004AE000004AEA1
:1005B00010F582E4347FF583E054FD907F00F0E491
:1005C000A30004BE000004BE10F0907FB57402F0DA
:1005D0000205AB907FB4E044010004CE000004CEDD
:1005E00010F00205AB120E7F40030205AB907FE8CE
:1005F000E00004DE000004DE1024FE601D24026022
:10060000030205AB907FEAE0B40004EE000004EEC4
:10061000100105C2000205AB907FB4E04401F00276
:10062000050004FE000004FE10AB907FEAE0703885
:10063000907FECE0F45480FFC400050E0000050E2E
:1006400010540FFFE054072F25E024B4F582E43462
:100650007F00051E0000051E10F583E4F0907FEC7E
:10066000E05480FF131313541F00052E0000052EC5
:1006700010FFE054072F907FD7F0E04420F0806E09
:100680009000053E0000053E107FB4E04401F0807C
:1006900065120E815060907FE800054E0000054E07
:1006A00010E024FE601824027054907FEAE0B40148
:1006B0000400055E0000055E10D2008049907FB402
:1006C000E04401F08040907FEA00056E0000056E76
:1006D00010E07020907FECE0F45480FFC4540FFFD2
:1006E000E000057E0000057E1054072F25E024B4AD
:1006F000F582E4347FF583740100058E0000058ED9
:1007000010F0801A907FB4E04401F08011E4902052
:100710006A00059E0000059E10F01201005007902F
:100720007FB4E04401F0907FB40005AE000005AE58
:1007300004E04402F0000000000005B201220000C5
:10074000000005B310C0E0C083C082C085C084C073
:1007500086758600C00005C3000005C310D0C00028
:10076000C001C002C003C006C007907FA50005D32A
:10077000000005D310E030E206750D0602067F90FA
:100780007FA5E020E10005E3000005E3100CE50D86
:1007900064026006750D0702067FAF0DEF0005F3DA
:1007A000000005F31024FE604814602C24FE6077DE
:1007B00024046003020006030000060310067FAB5A
:1007C00009AA0AA90BAF0C050C8F827583000613CA
:1007D000000006131000120785907FA6F0E50C6557
:1007E00008705E750D000623000006231005805971
:1007F000907FA6E0AB09AA0AA90BAE0C8E000633C7
:100800000000063310827583001207B2750D028056
:1008100040E50824FE0006430000064310B50C071F
:10082000907FA5E04420F0E50814B50C0A000653BB
:100830000000065310907FA5E04440F0E4F50D90D1
:100840007FA6E0AB090006630000066310AA0AA9B0
:100850000BAE0C8E827583001207B2050C00067376
:100860000000067310800A907FA5E04440F0E4F594
:100870000D5391DFD0000683000006831007D006D9
:10088000D003D002D001D000D0D0D086D0000693C3
:10089000000006930A84D085D082D083D0E0320055
:1008A0000000069D10C204D205E4F525C203C20073
:1008B000C202C201120006AD000006AD100E74D2D5
:1008C000E843D820907FAB74FFF0907FA90006BD6D
:1008D000000006BD10F0907FAAF05391EF907F9535
:1008E000E044C0F0900006CD000006CD107F937468
:1008F00030F0120A1975244875239275220006DD1E
:10090000000006DD1000752100E4FFFE7E0590204A
:10091000687401F0A30006ED000006ED10DEFC7E19
:10092000007F05907FAFE04401F0907FAE0006FDB0
:10093000000006FD10E0440DF0D2AF120E68300149
:100940000AE490206900070D0000070D10F0120363
:100950007EC20130041A120E775013120900071DCF
:100960000000071D1000300007907FD6E030E7F34D
:10097000120D8B120E00072D0000072D1079C203F7
:100980007FFF7EFF7DFF7CFF782112081D00073D61
:100990000000073D107B007A0079007800C3120840
:1009A0000C701B752400074D0000074D104875237F
:1009B00092F522F5216325FF902068E52500075D6B
:1009C0000000075D0EF0A37401F0A3F0A3F012087D
:1009D000FF809B000000076B012200000000076CF5
:1009E00010BB010689828A83E0225002E722BBFE07
:1009F0000200077C0000077C09E32289828A83E4E5
:100A0000932200000000078510BB010CE58229F548
:100A100082E5833AF583E0225000079500000795B0
:100A20001006E92582F8E622BBFE06E92582F8E2F7
:100A3000220007A5000007A50DE58229F582E583C0
:100A40003AF583E493220000000007B210F8BB01DE
:100A50000DE58229F582E5833AF583E8F00007C2C7
:100A6000000007C210225006E92582C8F622BBFE0C
:100A700005E92582C80007D2000007D202F2220051
:100A8000000007D410BB0110E58229F582E5833A06
:100A9000F583E0F5F00007E4000007E410A3E0228E
:100AA0005009E92582F886F008E622BBFE0007F42B
:100AB000000007F4100AE92582F8E2F5F008E222C6
:100AC000E5832AF5830008040000080408E993F58B
:100AD000F0A3E993220000000000080C10EB9FF542
:100AE000F0EA9E42F0E99D42F0E89C45F000081CC7
:100AF0000000081C012200000000081D1008080862
:100B0000E62FFFF618E63EFEF618E63DFD00082D3E
:100B10000000082D07F618E63CFCF6220000083419
:100B2000048C348D350000000000083810907F954B
:100B3000E044C0F0E4F536F537C3E53795000848E2
:100B4000000008481035E53695345069EF2537F533
:100B500082E5363EF500085800000858108374FFFF
:100B6000F0F46002C322EF2537F582E5360008680D
:100B700000000868103EF583E4F06002C322EF2510
:100B800037F582E53600087800000878103EF583D6
:100B900074AAF064AA6002C322EF2537F500088822
:100BA000000008881082E5363EF5837455F06455E0
:100BB0006002C322AD000898000008981037E5379E
:100BC0002FF582E5363EF583EDF0FCAC050008A874
:100BD000000008A810ED6C6002C3220537E53770ED
:100BE000020536808C0008B8000008B810E4F5361D
:100BF000F537C3E5379535E536953450270008C8F5
:100C0000000008C810EF2537F582E5363EF583E091
:100C100065376002C30008D8000008D81022EF250D
:100C200037F582E5363EF583E4F00537E50008E860
:100C3000000008E808377002053680CED3000000B7
:100C4000000008F001220000000008F10E907F0073
:100C5000E510F0907FB57401F0D32200000008FF8A
:100C6000012200000000090009907FD6E04480F0D6
:100C7000807400000000097D10438701000000001F
:100C800000000000000000002200098D0000098D16
:100C90000C787FE4F6D8FD75813A0209D400000093
:100CA000000009991002069DE493A3F8E493A34081
:100CB00003F68001F20009A9000009A91008DFF479
:100CC0008029E493A3F85407240CC8C3330009B95E
:100CD000000009B910C4540F4420C8834004F456DE
:100CE000800146F6DF0009C9000009C910E4800B45
:100CF0000102040810204080900E2DE47E0009D9E6
:100D0000000009D910019360BCA3FF543F30E509EE
:100D1000541FFEE4930009E9000009E910A36001F3
:100D20000ECF54C025E060A840B8E493A30009F9B1
:100D3000000009F910FAE493A3F8E493A3C8C5826C
:100D4000C8CAC583CA000A0900000A0910F0A3C86E
:100D5000C582C8CAC583CADFE9DEE780BE000A19BA
:100D600000000A1910E4907F9CF07F0AFE120DD556
:100D7000907F967489000A2900000A2910F0907F5C
:100D80009C74CFF07FF47E01120DD5907F000A395C
:100D900000000A391096E054FEF07F0A7E00120D22
:100DA000D57F057E00000A4900000A4910120DD5C2
:100DB000907F96E04402F0E0547FF07F05000A59EE
:100DC00000000A59107E00120DD5907F96E0444035
:100DD000F07F057E00000A6900000A6910120DD537
:100DE000907F96E054BFF07F327E00120D000A79AA
:100DF00000000A7910D5907F96E04440F07F327E63
:100E000000120DD522000A8900000A8910753301ED
:100E1000E533601B7F01120E187F007E0E000A99D9
:100E200000000A99107D007C01120834E433F53388
:100E300070057F0F12000AA900000AA9100E18E51C
:100E400033601B7F02120E187F007E807D000AB97E
:100E500000000AB910007C80120834E433F53370C6
:100E6000057F0F120E000AC900000AC91018E533E9
:100E7000601B7F03120E187F007E207D40000AD980
:100E800000000AD9107C5B120834E433F533700596
:100E90007F0F120E18000AE900000AE90DE5336021
:100EA00005E4FF120E18E53324FF000000000AF6E7
:100EB0000122000000000AF708907FEAE0F510D355
:100EC0002200000000000AFF0132000000000B00B9
:100ED00010020DA500020DEC00020D7000020DBD08
:100EE00000000B1000000B1010020E0200020AFF9F
:100EF00000020E8300020E8400000B2000000B2075
:100F000010020E8500020E8600020E8700020E8877
:100F100000000B3000000B3010020E8900020E8A18
:100F200000020E8B00020E8C00000B4000000B40F4
:100F300010020E8D00020E8E00020E8F00020E9027
:100F400000000B5000000B5008020E9100020E92A0
:100F50000000000000000B5810E4FE752BFF752CFC
:100F600011752D12AB2BAA2CA9000B6800000B6881
:100F7000102D9000011207856402702DAD060EED54
:100F8000B5000B7800000B781007012290000212C8
:100F900007D485F029F52A6229000B8800000B8808
:100FA00010E529622AE52A622929FDE5293AA905E1
:100FB00075000B9800000B980E2BFFF52C892D80E7
:100FC000C37B007A0079000000000BA6012200001C
:100FD00000000BA706AB07AA06AC050000000BAD8E
:100FE00010E4FDE5116011EAFFAE050DEE2410F5E9
:100FF00082000BBD00000BBD10E4340FF583EFF051
:10100000EBAE050D74102EF582000BCD00000BCD5C
:1010100010E4340FF583EBF0AF050D74102FF5825B
:10102000E4000BDD00000BDD10340FF583ECF0AFB6
:101030000F7A0F7B10120D517F000BED00000BEDAE
:10104000060A7E00120DD50000000BF301220000FD
:1010500000000BF40A8E338F348D358A368B3700BF
:1010600000000BFE10E4FDF538E5116012E533FFDA
:10107000AE050DEE24000C0E00000C0E1013F582D0
:10108000E4340FF583EFF0E534AE050D74000C1E6B
:1010900000000C1E10132EF582E4340FF583E534A6
:1010A000F0AF0F7A0F000C2E00000C2E107B1312E5
:1010B0000D51AF0FAD35AB37AA36120D32000C3ED5
:1010C00000000C3E0122000000000C3F028F2900AE
:1010D00000000C4110E4F52A752BFF752C11752DBD
:1010E00032AB2BAA2C000C5100000C5110A92D90F2
:1010F0000001120785B4031DAF2A052AEF000C6119
:1011000000000C6110B529012212076C7E0029FF36
:10111000EE3AA90775000C7100000C710E2BFFF55B
:101120002C892D80D47B007A0079000000000C7F90
:101130000122000000000C800A8E338F348D358A26
:10114000368B370000000C8A10E4F538E538C3957B
:101150003550200534E534AE33000C9A00000C9A6B
:10116000107002053314FFE5372538F582E4353673
:10117000F5000CAA00000CAA0A83E0FD120BA705DB
:101180003880D90000000CB40122000000000CB52A
:1011900010A907E50D7025907FA5E04480F0E925B2
:1011A000E0000CC500000CC5104401907FA6F08D36
:1011B00008AF03A9077509018A000CD500000CD5FA
:1011C0000D0A890BE4F50C750D03D322C322000030
:1011D00000000CE210A907E50D7023907FA5E04404
:1011E00080F0E925E0000CF200000CF210907FA6E0
:1011F000F08D08AF03A9077509018A0A89000D025D
:1012000000000D020B0BE4F50C750D01D322C32277
:1012100000000D0D10907FD6E054FBF0E04408F084
:10122000300604E044000D1D00000D1D1002F07F8B
:10123000D07E07120DD5907FD6E054F7F0000D2D2B
:1012400000000D2D05E04404F022000000000D32E6
:1012500010120CB5E50D24FA601014600724077015
:10126000F3000D4200000D420F7F0822E4F50D7FD0
:101270000722E4F50D7F062200000D5110120CE24A
:10128000E50D24FA6010146007240770F3000D6167
:1012900000000D610F7F0822E4F50D7F0722E4F5C1
:1012A0000D7F062200000D7010C0E0C083C0829048
:1012B0007FC4E4F05391EF907F000D8000000D801B
:1012C0000BAB7404F0D082D083D0E03200000D8BE1
:1012D00010907FD6E030E712E04401F07F147E00EA
:1012E00012000D9B00000D9B0A0DD5907FD6E05497
:1012F000FEF0220000000DA510C0E0C083C082D225
:10130000015391EF907FAB7401000DB500000DB556
:1013100008F0D082D083D0E03200000000000DBD84
:1013200010C0E0C083C082D2035391EF907FAB74B2
:1013300008000DCD00000DCD08F0D082D083D0E0A4
:101340003200000000000DD5108E398F3AE53A15B5
:101350003AAE39700215394E60000DE500000DE51A
:101360000705120E4180EE2200000DEC10C0E0C017
:1013700083C0825391EF907FAB7402F0D0000DFCDC
:1013800000000DFC0682D083D0E0320000000E0287
:1013900010C0E0C083C0825391EF907FAB7410F017
:1013A000D0000E1200000E120682D083D0E0320070
:1013B00000000E1810AE077F217D0174002EF5820B
:1013C000E4340FAB82000E2800000E2805FA120D3F
:1013D0005122000000000E2D10500F00C0F9A4B0E3
:1013E000999282F880988883C6000E3D00000E3DD9
:1013F00003A1868E00000E400100000000000E4197
:10140000107400F58690FDA57C05A3E582458370E8
:10141000F9000E5100000E510122000000000E5292
:101420000E907F00E50EF0907FB57401F0D322009E
:1014300000000E6008907FEAE0F50ED32200000065
:1014400000000E6808E4F50DD2E9D2AF22000000DA
:1014500000000E700453D8EF3200000000000E743C
:1014600003D2002200000E7702D3220000000E7982
:1014700002D3220000000E7B02D3220000000E7D6A
:1014800002D3220000000E7F02D3220000000E8152
:1014900002D3220000000E830132000000000E84FF
:1014A0000132000000000E850132000000000E86AF
:1014B0000132000000000E870132000000000E889B
:1014C0000132000000000E890132000000000E8A87
:1014D0000132000000000E8B0132000000000E8C73
:1014E0000132000000000E8D0132000000000E8E5F
:1014F0000132000000000E8F0132000000000E904B
:101500000132000000000E910132000000000E9236
:101510000132000000001100101201000100000063
:1015200040470510270100010200111000001110B2
:1015300010000109022000010103A00009040000BD
:10154000020011200000112010FF00000407058296
:101550000240000007050202400011300000113077
:1015600010000004030904260341006E00630068B4
:101570000000114000001140106F00720020004375
:1015800000680069007000730000115000001150E5
:10159000102C00200049006E0063002E0028034636
:1015A000000011600000116010690072006D00778A
:1015B00000610072006500200000117000001170D1
:1015C000104600720061006D00650057006F0072E8
:1015D0000000118000001180106B0073002A03438B
:1015E000006F006E0066006900001190000011900D
:1015F000106700750072006100740069006F006E72
:10160000000011A0000011A010200053007400720F
:101610000069006E00670022030011B0000011B0E5
:101620001049006E0074006500720066006100637E
:10163000000011C0000011C01065002000530074AC
:1016400000720069006E0067000011D0000011D028
:091650000200000000000000008F
:00000001FF
/*****************************************************************************
*
* whiteheat.h -- ConnectTech WhiteHEAT Firmware.
*
* Copyright (C) 2000-2002 ConnectTech Inc (http://www.connecttech.com/)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* (10/09/2002) Stuart MacDonald
* Firmware 4.06
*
* (04/09/2000) gkh
* Updated the firmware with the latest provided by ConnectTech.
*
* (01/16/2000) gkh
* Fixed my intel hex processing tool, so now the firmware actually
* matches the original file (this was causing a few problems...)
*
* (01/15/2000) gkh
* Added debug loader firmware if DEBUG is #defined:
* Port 1 LED flashes when the vend_ax program is running
* Port 2 LED flashes when any SETUP command arrives
* Port 3 LED flashes when any valid VENDOR request occurs
* Port 4 LED flashes when the EXTERNAL RAM DOWNLOAD request occurs
*
* version 1.0 (01/09/2000) gkh
* Original firmware from ConnectTech massaged a little to be program
* readable.
*
*****************************************************************************/
#define whiteheat_DATE "20000106"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment