Initial check-in of work-in-progress iPod bootloader. Current targets are iPod Color/Photo and iPod Nano.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7784 a1c6a512-1295-4272-9138-f99709370657
diff --git a/bootloader/FILES b/bootloader/FILES
index 22e7774..424ce01 100644
--- a/bootloader/FILES
+++ b/bootloader/FILES
@@ -1,4 +1,4 @@
Makefile
SOURCES
FILES
-*.c
+*.[ch]
diff --git a/bootloader/SOURCES b/bootloader/SOURCES
index e241137..6b72d08 100644
--- a/bootloader/SOURCES
+++ b/bootloader/SOURCES
@@ -1 +1,5 @@
+#if (CONFIG_CPU == PP5020)
+ipod.c
+#else
main.c
+#endif
diff --git a/bootloader/ipod.c b/bootloader/ipod.c
new file mode 100644
index 0000000..af157b8
--- /dev/null
+++ b/bootloader/ipod.c
@@ -0,0 +1,346 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2005 by Dave Chapman
+ *
+ * Based on Rockbox iriver bootloader by Linus Nielsen Feltzing
+ * and the ipodlinux bootloader by Daniel Palffy and Bernard Leach
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "cpu.h"
+#include "system.h"
+#include "lcd.h"
+#include "kernel.h"
+#include "thread.h"
+#include "ata.h"
+#include "fat.h"
+#include "disk.h"
+#include "font.h"
+#include "adc.h"
+#include "backlight.h"
+#include "button.h"
+#include "panic.h"
+#include "power.h"
+#include "file.h"
+
+#define DRAM_START 0x10000000
+#define IPOD_PP5020_RTC 0x60005010
+
+#define IPOD_HW_REVISION (*((volatile unsigned long*)(0x00002084)))
+
+char version[] = APPSVERSION;
+
+#include "rockbox-16bit.h"
+#include "ipodlinux-16bit.h"
+
+typedef struct _image {
+ unsigned type; /* '' */
+ unsigned id; /* */
+ unsigned pad1; /* 0000 0000 */
+ unsigned devOffset; /* byte offset of start of image code */
+ unsigned len; /* length in bytes of image */
+ void *addr; /* load address */
+ unsigned entryOffset; /* execution start within image */
+ unsigned chksum; /* checksum for image */
+ unsigned vers; /* image version */
+ unsigned loadAddr; /* load address for image */
+} image_t;
+
+extern image_t boot_table[];
+
+int line=0;
+
+static void memmove16(void *dest, const void *src, unsigned count)
+{
+ struct bufstr {
+ unsigned _buf[4];
+ } *d, *s;
+
+ if (src >= dest) {
+ count = (count + 15) >> 4;
+ d = (struct bufstr *) dest;
+ s = (struct bufstr *) src;
+ while (count--)
+ *d++ = *s++;
+ } else {
+ count = (count + 15) >> 4;
+ d = (struct bufstr *)(dest + (count <<4));
+ s = (struct bufstr *)(src + (count <<4));
+ while (count--)
+ *--d = *--s;
+ }
+}
+
+/* get current usec counter */
+int timer_get_current(void)
+{
+ return inl(IPOD_PP5020_RTC);
+}
+
+/* check if number of seconds has past */
+int timer_check(int clock_start, unsigned int usecs)
+{
+ if ((inl(IPOD_PP5020_RTC) - clock_start) >= usecs) {
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
+/* This isn't a sleep, but let's call it that. */
+int usleep(unsigned int usecs)
+{
+ unsigned int start = inl(IPOD_PP5020_RTC);
+
+ while ((inl(IPOD_PP5020_RTC) - start) < usecs) {
+ // empty
+ }
+
+ return 0;
+}
+
+int load_firmware(void)
+{
+ int fd;
+ int rc;
+ int len;
+ unsigned long chksum;
+ char model[5];
+ unsigned long sum;
+ int i;
+ unsigned char *buf = (unsigned char *)DRAM_START;
+ char str[80];
+
+ fd = open("/rockbox.ipod", O_RDONLY);
+ if(fd < 0)
+ return -1;
+
+ len = filesize(fd) - 8;
+
+ snprintf(str, 80, "Length: %x", len);
+ lcd_puts(0, line++, str);
+ lcd_update();
+
+ lseek(fd, FIRMWARE_OFFSET_FILE_CRC, SEEK_SET);
+
+ rc = read(fd, &chksum, 4);
+ if(rc < 4)
+ return -2;
+
+ snprintf(str, 80, "Checksum: %x", chksum);
+ lcd_puts(0, line++, str);
+ lcd_update();
+
+ rc = read(fd, model, 4);
+ if(rc < 4)
+ return -3;
+
+ model[4] = 0;
+
+ snprintf(str, 80, "Model name: %s", model);
+ lcd_puts(0, line++, str);
+ lcd_update();
+
+ lseek(fd, FIRMWARE_OFFSET_FILE_DATA, SEEK_SET);
+
+ rc = read(fd, buf, len);
+ if(rc < len)
+ return -4;
+
+ close(fd);
+
+ sum = MODEL_NUMBER;
+
+ for(i = 0;i < len;i++) {
+ sum += buf[i];
+ }
+
+ snprintf(str, 80, "Sum: %x", sum);
+ lcd_puts(0, line++, str);
+ lcd_update();
+
+ if(sum != chksum)
+ return -5;
+
+ return 0;
+}
+
+void* main(void)
+{
+ char buf[256];
+ int imageno=0;
+ int i;
+ int rc;
+ int padding = 0x4400;
+ image_t *tblp = boot_table;
+ void* entry;
+ struct partinfo* pinfo;
+ unsigned short* identify_info;
+
+ /* Turn on the backlight */
+
+#if CONFIG_BACKLIGHT==BL_IPOD4G
+
+ /* brightness full */
+ outl(0x80000000 | (0xff << 16), 0x7000a010);
+
+ /* set port B03 on
+ outl(((0x100 | 1) << 3), 0x6000d824);
+
+#elif CONFIG_BACKLIGHT==BL_IPODNANO
+
+ /* set port B03 on */
+ outl(((0x100 | 1) << 3), 0x6000d824);
+
+ /* set port L07 on */
+ outl(((0x100 | 1) << 7), 0x6000d12c);
+
+#endif
+
+ system_init();
+ kernel_init();
+ lcd_init();
+ font_init();
+
+#if 0
+ /* ADC and button drivers are not yet implemented */
+ adc_init();
+ button_init();
+#endif
+
+ /* Notes: iPod Color/Photo LCD is 220x176, Nano is 176x138 */
+
+ /* Display the 42x47 pixel iPodLinux logo */
+ lcd_bitmap((unsigned char*)ipllogo, 20,6, 42,47);
+
+ /* Display the 100x31 pixel Rockbox logo */
+ lcd_bitmap((unsigned char*)rockboxlogo, 74,16, 100,31);
+
+ line=7;
+
+ lcd_setfont(FONT_SYSFIXED);
+
+ lcd_puts(0, line++, "iPodLinux/Rockbox boot loader");
+ snprintf(buf, sizeof(buf), "Version: 20%s", version);
+ lcd_puts(0, line++, buf);
+ snprintf(buf, sizeof(buf), "IPOD version: 0x%08x", IPOD_HW_REVISION);
+ lcd_puts(0, line++, buf);
+ lcd_update();
+
+ i=ata_init();
+ if (i==0) {
+ identify_info=ata_get_identify();
+ /* Show model */
+ for (i=0; i < 20; i++) {
+ ((unsigned short*)buf)[i]=htobe16(identify_info[i+27]);
+ }
+ buf[40]=0;
+ for (i=39; i && buf[i]==' '; i--) {
+ buf[i]=0;
+ }
+ lcd_puts(0, line++, buf);
+ lcd_update();
+ } else {
+ snprintf(buf, sizeof(buf), "ATA: %d", i);
+ lcd_puts(0, line++, buf);
+ lcd_update();
+ }
+
+ disk_init();
+ rc = disk_mount_all();
+ if (rc<=0)
+ {
+ lcd_puts(0, line++, "No partition found");
+ lcd_update();
+// while(button_get(true) != SYS_USB_CONNECTED) {};
+ }
+
+ pinfo = disk_partinfo(1);
+ snprintf(buf, sizeof(buf), "Partition 1: 0x%02x %ld MB",
+ pinfo->type, pinfo->size / 2048);
+ lcd_puts(0, line++, buf);
+ lcd_update();
+
+#if 0
+ /* The following code will load and run an ipodlinux kernel - we will
+ enable it once the button driver is written and we can detect key
+ presses */
+ int fd=open("/linux.bin",O_RDONLY);
+ if (fd >= 0) {
+ i=filesize(fd);
+ int n=read(fd,(void*)DRAM_START,i);
+ if (n==i) {
+ /* We return the entry point for the loaded kernel */
+ return DRAM_START;
+ } else {
+ /* What do we do now? We may have overwritten the copy of the
+ original firmware with our incomplete copy of the Linux
+ kernel... */
+ }
+ }
+#endif
+
+ /* Pause for 5 seconds so we can see what's happened*/
+ usleep(5000000);
+
+ /* If everything else failed, try the original firmware */
+ lcd_puts(0, line, "Loading original firmware...");
+ lcd_update();
+
+ entry = tblp->addr + tblp->entryOffset;
+ if (imageno || ((int)tblp->addr & 0xffffff) != 0) {
+ memmove16(tblp->addr, tblp->addr + tblp->devOffset - padding,
+ tblp->len);
+ }
+
+ /* Return the start address in loaded image */
+ return entry;
+}
+
+/* These functions are present in the firmware library, but we reimplement
+ them here because the originals do a lot more than we want */
+
+void reset_poweroff_timer(void)
+{
+}
+
+void screen_dump(void)
+{
+}
+
+int dbg_ports(void)
+{
+ return 0;
+}
+
+void mpeg_stop(void)
+{
+}
+
+void usb_acknowledge(void)
+{
+}
+
+void usb_wait_for_disconnect(void)
+{
+}
+
+void sys_poweroff(void)
+{
+}
diff --git a/bootloader/ipodlinux-16bit.h b/bootloader/ipodlinux-16bit.h
new file mode 100644
index 0000000..489a017
--- /dev/null
+++ b/bootloader/ipodlinux-16bit.h
@@ -0,0 +1,48 @@
+unsigned short ipllogo[42*47]= {0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x4108,0x8210,0x6208,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x8210,0x8a52,0xcf73,0x3084,0x107c,0x8e6b,0xe739,0x4108,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x2421,0x2c63,0x494a,0x6629,0x4429,0x6529,0x083a,0x2d63,0x2c63,0xc318,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x4108,0x083a,0xc310,0x0000,0x0000,0x0000,0x0000,0x0000,0x2100,0xe739,0xe839,0x4108,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x8210,0x8210,0x0000,0x0000,0x4108,0x8208,0x6208,0x2100,0x0000,0x2100,0x2100,0x4108,0x0321,0x2100,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0x0000,0xe418,0xe839,0x4a42,0x4a42,0x4a42,0x093a,0x8629,0x4108,0x4108,0x3184,0x8e73,0x2421,0xa310,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0x0000,0x4521,0x8a4a,0x8b4a,0x8b4a,0x8b4a,0x8a4a,0x6a4a,0x8b4a,0x6529,0x8a52,0x55ad,0x0842,0x79ce,0x58ce,0x6529,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x6208,0x0419,0x0000,0xa310,0x4a42,0x8a4a,0x8a4a,0x8a4a,0x4942,0xcb52,0x6d63,0xab52,0x0419,0x5184,0x6d6b,0xb294,0xffff,0xffff,0x34a5,0x4108,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x4008,0x8e73,0xe739,0x0000,0x2521,0x494a,0xcb52,0xab52,0x0842,0xaf73,0x149d,0x55a5,0x149d,0xa631,0xb294,0xcb5a,0xd7bd,0xffff,0xffff,0x7def,0xa631,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x6529,0x18c6,0x2421,0x0000,0xe839,0xb394,0x149d,0x5184,0xab52,0x3184,0xa631,0xcb5a,0x34a5,0xe839,0x3084,0x2c6b,0xd39c,0xffff,0xffff,0x7def,0xa631,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x2c6b,0xdbde,0xc318,0x4008,0xcf73,0xcf73,0xb294,0x58ce,0xd39c,0x1ce7,0x494a,0x518c,0xffff,0xb294,0xcb5a,0x34a5,0x0842,0xdbde,0xffff,0xbad6,0xc318,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0x0000,0x8e73,0x7def,0x6529,0x0000,0xcb5a,0xe839,0x3184,0x37ce,0x8f9c,0xb4bd,0x99d6,0x9ef7,0xffff,0x18c6,0x2421,0xb6b5,0xf07b,0x0842,0x55ad,0xce7b,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0x0000,0x0000,0x0000,0x0000,0xbc2d,0x0000,0x494a,0x9ef7,0xcb5a,0x0000,0x8e73,0x58ce,0xefa4,0x0fd6,0x6fe6,0x2fde,0x90c5,0x99d6,0xdbde,0xaf73,0x6529,0xa631,0x55ad,0x3084,0xc318,0x2100,0x0000,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0x0000,0xa310,0x6208,0x0000,0x0000,0x0000,0x4108,0x3184,0x34a5,0x4108,0x8a52,0x71b5,0x6fe6,0xaff6,0xaff6,0xaff6,0x4ede,0x8a73,0xab52,0x4a42,0x8b4a,0x2521,0x4108,0xc318,0x2100,0x0000,0xbc2d,0x0000,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0x0000,0x0419,0x6529,0x2100,0x0000,0x0000,0x0000,0x4008,0xa631,0x8210,0x8110,0x2cbd,0xaff6,0xaff6,0xaff6,0x2fde,0x0cb5,0x897b,0x4a42,0x8b4a,0x8b4a,0xa731,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0x0000,0xc318,0x4a42,0xe839,0x6629,0x0000,0x0000,0x0000,0x0000,0x0000,0x8331,0x4ee6,0xaff6,0x6fe6,0xadcd,0x0cb5,0x8dc5,0x0963,0x8a4a,0x8b4a,0x8b4a,0xc831,0x4008,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0x0000,0x6208,0x6a4a,0x8b4a,0xc831,0x0000,0x0000,0xbc2d,0xbc2d,0x0000,0xc662,0x0ed6,0x4cbd,0xcbac,0xebb4,0xcbac,0x096b,0x6a4a,0x8a4a,0x8b4a,0x8b4a,0x4942,0x6208,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0x0000,0x2100,0x093a,0x8b4a,0xc831,0x0000,0x0000,0xbc2d,0xbc2d,0x0000,0x2229,0x044a,0x454a,0x0963,0xa952,0x4a42,0x6a4a,0x8b4a,0x8a4a,0x8b4a,0x8b4a,0x8b4a,0xe418,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0x0000,0x0000,0x8629,0x8b4a,0xe839,0x0000,0x0000,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0x6208,0x4a42,0x8a4a,0x8b4a,0x8b4a,0x8b4a,0x8b4a,0x8b4a,0x8b4a,0x8b4a,0xc831,0x0000,0x0000,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0x0000,0xe418,0x8b4a,0x4a42,0x4108,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x8210,0x4a42,0x8b4a,0x8b4a,0x8b4a,0x8a4a,0x8b4a,0x8b4a,0x8a4a,0x8a4a,0x4a42,0xe418,0x0000,0x0000,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0x0000,0x4108,0x2942,0x8a4a,0x0419,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0x0000,0x2521,0x8b4a,0x8b4a,0x6a4a,0x6a4a,0x8b4a,0x6a4a,0x4a42,0xab52,0x8e6b,0xcb52,0xe418,0x6629,0xe839,0xa731,0x0419,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0x0000,0x0000,0x6629,0x8b4a,0x093a,0x6208,0x0000,0x0000,0x0000,0x0000,0x4108,0xe839,0x2942,0x2942,0x4a42,0x093a,0x494a,0x8e6b,0xb294,0x55a5,0x59be,0x79c6,0x6529,0x2942,0x8b4a,0x8b4a,0x8b4a,0xa731,0x2100,0x0000,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0x0000,0x8208,0x4a42,0x8b4a,0x093a,0xc318,0x4108,0x0000,0x0000,0x0419,0x494a,0x8e73,0x3084,0x34a5,0x34a5,0x149d,0x3595,0xf47c,0x977d,0x5685,0x1ce7,0xab52,0xe839,0x8b4a,0x8b4a,0x8b4a,0x8b4a,0x0419,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x8629,0x8b4a,0x8b4a,0x8a4a,0x2942,0xe418,0x4108,0xcb5a,0x18c6,0x3184,0x34a5,0x9ace,0x7785,0x1575,0xd464,0x7775,0x3a86,0xd895,0x9ace,0x3084,0x8629,0x8b4a,0x8b4a,0x8b4a,0x8b4a,0xe839,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x6208,0x2942,0x8b4a,0x8b4a,0x093a,0x4108,0x8a52,0x1ce7,0x7def,0x518c,0xd7bd,0xbbd6,0x777d,0x3a86,0x9c8e,0xdd96,0xdd96,0x9c8e,0xf8a5,0x18c6,0x6629,0x6a4a,0x8b4a,0x8a4a,0x8b4a,0x4942,0x2100,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0419,0x8b4a,0x8a4a,0xe418,0x6529,0xbad6,0xffff,0xffff,0xd39c,0x34a5,0x1ce7,0xd895,0xdd96,0xdd96,0xdd96,0x9c8e,0x5b86,0x978d,0xdbde,0x8a52,0xe839,0x8b4a,0x8b4a,0x8b4a,0x4a42,0x6208,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x2100,0x8629,0xe839,0x4108,0xb294,0xffff,0xffff,0xffff,0xd7bd,0xd39c,0xbad6,0xf8a5,0x7b8e,0x5b86,0xd895,0xb87d,0x777d,0x5595,0x7def,0xd39c,0x6629,0x8b4a,0x8b4a,0x8b4a,0x4a42,0x6208,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x2100,0x8208,0x4429,0x1ce7,0xffff,0xffff,0xffff,0xbade,0xb294,0x18c6,0x79c6,0x5675,0x777d,0x777d,0x768d,0x18c6,0x7def,0xffff,0x99d6,0x6629,0x6a4a,0x8b4a,0x8b4a,0x4942,0x2100,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x2c63,0xffff,0xffff,0xffff,0xffff,0x9ef7,0xd39c,0xb6b5,0x1ce7,0xf8a5,0x39c6,0xd39c,0x2c6b,0x6d6b,0xf07b,0xdbde,0xdbde,0xa731,0x4a42,0x8b4a,0x8b4a,0xe839,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0x0000,0xb294,0xffff,0xffff,0xffff,0xffff,0xffff,0x55ad,0x34a5,0x1ce7,0xffff,0x79ce,0x6d6b,0xf8a5,0x1ce7,0xb6b5,0x8e6b,0x34a5,0x6629,0x6a4a,0x8b4a,0x8b4a,0x4521,0x2100,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0x0000,0x0000,0x4008,0x34a5,0xffff,0xffff,0xffff,0xffff,0xffff,0x79ce,0xd39c,0xd7bd,0xbade,0x3084,0x3184,0xffff,0xb6b5,0x518c,0x6d6b,0xe418,0xe839,0x8b4a,0x8b4a,0x4a42,0xe418,0xe418,0x2100,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0x2229,0x4008,0x6110,0xb294,0xffff,0xffff,0xffff,0xffff,0xffff,0xdbde,0x494a,0x6529,0x8629,0x0419,0x6629,0xaf73,0xe541,0x2229,0x2100,0x8208,0xe839,0x4a42,0x8b4a,0x6629,0xe418,0xc831,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0x0000,0x8110,0x2229,0xc662,0x4552,0x477b,0xa952,0x9ef7,0xffff,0xffff,0xffff,0xffff,0xb6b5,0x2421,0x2942,0x6a4a,0x6a4a,0x2942,0xe418,0x4552,0x687b,0xc118,0x8331,0x4108,0xc318,0xa731,0x6208,0xc831,0xe839,0x2100,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0x0000,0x4329,0xebb4,0x2ede,0x6fe6,0x2ede,0x254a,0xb6b5,0xffff,0xffff,0xffff,0xffff,0xdbde,0xe839,0x2521,0x0842,0x8a4a,0x8a4a,0x4429,0xcbac,0x6a9c,0xe98b,0x076b,0xa439,0x2329,0x6208,0x6629,0xa731,0xa731,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0x0000,0x4329,0x4ee6,0xaff6,0xaff6,0xaff6,0xa883,0x6d6b,0xffff,0xffff,0xffff,0xffff,0xffff,0x18c6,0xe739,0x2421,0xc318,0xe418,0x4552,0xafee,0xafee,0xafee,0xeed5,0xeed5,0xe541,0xa731,0x8b4a,0x2942,0x0419,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0x0000,0x2229,0x2ede,0xaff6,0xafee,0xaff6,0x8dc5,0x2742,0x1ce7,0xffff,0xffff,0xffff,0xffff,0x9ef7,0xb294,0x518c,0x8e73,0xc310,0x2994,0xb0f6,0xb0f6,0xafee,0xaff6,0xafee,0x254a,0x093a,0x8b4a,0x8b4a,0xa731,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0x0000,0x0221,0x0ed6,0xaff6,0xaff6,0xb0f6,0x2fde,0x254a,0x18c6,0xffff,0xffff,0xffff,0xffff,0xffff,0x34a5,0xef7b,0x0842,0x6331,0xcdd5,0xaff6,0xafee,0xafee,0xafee,0xafee,0x254a,0x083a,0x8b4a,0x8b4a,0x6629,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0x0000,0xc118,0xcdcd,0xaff6,0xafee,0xb0f6,0xb0f6,0xc662,0xd39c,0xffff,0xffff,0xffff,0xffff,0xffff,0x1ce7,0x55ad,0x518c,0x865a,0x6fe6,0xaff6,0xafee,0xafee,0xafee,0x6fe6,0x254a,0x093a,0x8b4a,0x6a4a,0xa310,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0x0000,0x6110,0x2cbd,0xaff6,0xaff6,0xb0f6,0xb0f6,0x687b,0xf07b,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf49c,0x887b,0xaff6,0xafee,0xaff6,0xafee,0xaff6,0x6fe6,0x254a,0x093a,0x8b4a,0x093a,0x2100,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0x0000,0x4008,0x8aa4,0xaff6,0xaff6,0xb0f6,0xb0f6,0xa883,0xce7b,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x3084,0x6a9c,0xaff6,0xafee,0xafee,0xafee,0xaff6,0x6fe6,0xe541,0x2942,0x6a4a,0xe418,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x4773,0xaff6,0xaff6,0xb0f6,0xb0f6,0x2773,0x3184,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xce7b,0x8aa4,0xaff6,0xafee,0xaff6,0xaff6,0xaff6,0x2ede,0xc539,0x2942,0x6529,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x8331,0x4ee6,0xaff6,0xafee,0x0fd6,0x8331,0xe839,0xd7bd,0x9ef7,0xffff,0xffff,0xffff,0xffff,0xffff,0xce7b,0xebb4,0xaff6,0xaff6,0xaff6,0xaff6,0xaff6,0xadcd,0x0321,0xc310,0x0000,0x0000,0xbc2d,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x4008,0x2994,0xaff6,0x6fe6,0x477b,0x4008,0x0000,0x4108,0xe739,0xef7b,0xb6b5,0xbad6,0x7def,0x7def,0x8e73,0x6a9c,0xaff6,0xaff6,0xaff6,0xafee,0xaff6,0xcbac,0x2100,0x0000,0x0000,0xbc2d,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0xc118,0x687b,0x454a,0x4008,0x0000,0xbc2d,0x0000,0x0000,0x0000,0x2100,0xc310,0x6529,0xa631,0x8210,0x4773,0xaff6,0xaff6,0xaff6,0xaff6,0xaff6,0x687b,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0x0000,0x0000,0x2229,0xeed5,0xaff6,0xb0f6,0xaff6,0x2ede,0x6331,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x454a,0x8dc5,0xafee,0x2ede,0x076b,0x0000,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,
+0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0x0000,0x0000,0x0221,0x4552,0xa439,0x4008,0x0000,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d,0xbc2d
+};
diff --git a/bootloader/rockbox-16bit.h b/bootloader/rockbox-16bit.h
new file mode 100644
index 0000000..4b19c7e
--- /dev/null
+++ b/bootloader/rockbox-16bit.h
@@ -0,0 +1,32 @@
+unsigned short rockboxlogo[31*100]= {0x0000,0x0000,0x0000,0x0000,0x0000,0x2008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2100,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
+0x0000,0xc09b,0xc0cc,0xa0cc,0x60bc,0x60bc,0xc0cc,0xc0cc,0xa0cc,0xc0cc,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0cc,0x00ac,0xa0c4,0xe0d4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xc0cc,0xc0cc,0x40b4,0x40ac,0xa0c4,0xc0cc,0xe0d4,0xe0d4,0xa0cc,0xc0cc,0xa0cc,0x60bc,0xc0cc,0xa0c4,0xc0cc,0xc0cc,0xa0cc,0xc0cc,0xc0a3,0xa0cc,0xa0cc,0xa0c4,0xa0c4,0xa0cc,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0cc,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0cc,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0cc,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0cc,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0cc,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0cc,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0c4,0xa0cc,0xa0c4,0xa0c4,0xe0d4,0x6093,0x0000,
+0x0000,0x00cd,0x80fe,0x80fe,0xc0a3,0x208b,0xe0d4,0xa0c4,0xa0cc,0xa0c4,0x40dd,0xc0fe,0x80fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x80fe,0x80fe,0x60ed,0xe0ab,0x40ac,0xc0cc,0x40fe,0x40fe,0x40fe,0x40fe,0x80fe,0x80ed,0x60bc,0x40ac,0xa09b,0xc0a3,0x60bc,0xe0d4,0xe0ab,0xa0cc,0xa0cc,0xa0c4,0xa072,0x40e5,0x80fe,0xe0d4,0xa0c4,0xc0cc,0x40ac,0x406a,0xc0ed,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x00f6,0xc0fe,0x80bc,0x0000,
+0x2008,0xa0cc,0x40fe,0x00fe,0xa0cc,0x8093,0x405a,0xe051,0xe051,0xe051,0x205a,0x806a,0xc0a3,0x00fe,0xe0fd,0xe0fd,0xc0f5,0x40fe,0x40ac,0xc020,0x2008,0x6010,0x8041,0x408b,0xc0a3,0xe0fd,0xc0f5,0x40fe,0xc0cc,0x8093,0xa072,0xc020,0x6010,0x6010,0x8041,0x0083,0xe0ab,0x4062,0xc049,0x406a,0x609b,0xa0f5,0x40fe,0x40ac,0x8041,0x0052,0x8041,0x20dd,0x00fe,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0x40fe,0x60bc,0x0000,
+0x0000,0xc0cc,0x40fe,0x00fe,0x20dd,0x8093,0x2008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x406a,0x40fe,0xe0fd,0x40fe,0xc0a3,0x0000,0x0000,0x0000,0x0000,0x0000,0xc020,0xc09b,0x00ac,0x40fe,0x80e5,0xa09b,0x806a,0x0000,0x0000,0x0000,0x0000,0x0000,0xa018,0x40b4,0xa018,0x0000,0x0029,0xc0a3,0xe0fd,0x40fe,0xc049,0x0000,0x0000,0x4062,0x40fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0xe0fd,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x40fe,0x60bc,0x0000,
+0x2008,0xc0cc,0x40fe,0x00fe,0x00d5,0x6093,0x4008,0x0000,0x0000,0x0000,0x2008,0x2008,0x2008,0x0000,0x20b4,0x40fe,0x40e5,0x6010,0x0000,0x2008,0x0000,0x0000,0x2008,0x0000,0xc049,0xc09b,0x80e5,0x40b4,0x4083,0x0000,0x0000,0x0000,0x0000,0x0000,0x2008,0x0000,0xa072,0xc020,0x0000,0x0029,0xa0a3,0x40fe,0x00d5,0x0000,0x0000,0x0000,0xc0cc,0x40fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00f6,0x40fe,0x60bc,0x0000,
+0x0000,0xc0cc,0x40fe,0xe0fd,0x80ed,0x00ac,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0052,0xc0fe,0xa072,0x0000,0x2008,0x0000,0x2008,0x2008,0x0000,0x0000,0x0000,0x408b,0xc0a3,0x00ac,0x8041,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xa072,0xc020,0x0000,0xe028,0xc09b,0x80fe,0xe07a,0x0000,0x0000,0x8041,0x40fe,0xc0f5,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x40fe,0x60bc,0x0000,
+0x2008,0xc0cc,0x40fe,0xc0f5,0x40fe,0x00d5,0x0000,0x0000,0xa018,0x4062,0x4062,0x0029,0x0000,0x0000,0xc020,0xa0f5,0xc020,0x0000,0x0000,0x6039,0x40ac,0xc09b,0xc020,0x0000,0x0000,0x405a,0xe07a,0x4083,0x2008,0x0000,0x0000,0x6039,0x60bc,0x60bc,0x2031,0x0000,0xe07a,0xc020,0x0000,0xe028,0xe0ab,0xc0f5,0xa018,0x0000,0x0000,0x20b4,0x40fe,0x40fe,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0xe0fd,0x00fe,0xe0fd,0x40fe,0x60bc,0x0000,
+0x0000,0xa0cc,0x40fe,0x00f6,0x40fe,0xe0d4,0x0000,0x0000,0x4031,0x20dd,0x40b4,0x408b,0x0000,0x0000,0xa018,0x60bc,0x0000,0x0000,0x0000,0x40dd,0x40ac,0x8093,0x408b,0x0000,0x0000,0xa018,0x20dd,0xe07a,0x0000,0x0000,0xa018,0xc0c4,0x00ac,0x40fe,0xa0f5,0xa018,0x806a,0xc020,0x0000,0xc020,0x40b4,0xe0ab,0x0000,0x0000,0x8110,0x457b,0x457b,0x217b,0xe0fd,0x00fe,0xe0fd,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x40fe,0xa0c4,0x0000,
+0x0000,0x00d5,0x40dd,0x205a,0x00d5,0x20dd,0x0000,0x0000,0x8041,0x80fe,0x80ed,0x8093,0xa018,0x0000,0xa018,0x007b,0x0000,0x0000,0x8041,0x40fe,0x40ac,0xc0c4,0xc09b,0xc020,0x0000,0x0000,0x40dd,0x405a,0x0000,0x0000,0xe07a,0x00a4,0x40e5,0x00fe,0x80fe,0x40b4,0xe07a,0xc020,0x0000,0xe028,0x40ac,0x8041,0x0000,0x0000,0x2d5b,0xdaa5,0x9b9d,0x0b63,0xa0f5,0x00fe,0xe0fd,0xe0fd,0xe0fd,0x00fe,0xe0fd,0xe0fd,0x00fe,0xe0fd,0x00fe,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0xe0fd,0x00fe,0xe0fd,0x40fe,0x60bc,0x0000,
+0x0000,0x20dd,0xe0d4,0x2031,0xc049,0xc0a3,0x2008,0x0000,0x8041,0x40fe,0xa0f5,0xa09b,0xa018,0x0000,0x0029,0x405a,0x0000,0x0000,0xe07a,0x80fe,0xc0a3,0x40dd,0x00ac,0x8041,0x0000,0x0000,0x00ac,0x6039,0x0000,0x0000,0xc0a3,0x40ac,0x00fe,0xe0fd,0xe0fd,0x40fe,0x40e5,0x4008,0x0000,0x2031,0xe07a,0x0000,0x0000,0x2100,0x1695,0xd8ad,0xdaa5,0x4a6b,0xa0f5,0x00fe,0x40fe,0x00fe,0x00fe,0xe0fd,0xe0fd,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x40fe,0x40fe,0x00fe,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x40fe,0x60bc,0x0000,
+0x2008,0xa0cc,0x80fe,0xa072,0x8041,0x0052,0x4008,0x0000,0x8041,0x80fe,0xe0dc,0x208b,0x4008,0x0000,0x2031,0xe051,0x0000,0x0000,0xc09b,0x80fe,0xc0a3,0x80ed,0x60bc,0x405a,0x0000,0x0000,0xe07a,0x0029,0x0000,0x6010,0x20b4,0x60bc,0x40fe,0xe0fd,0xe0fd,0x00fe,0x80ed,0x6010,0x0000,0x6039,0xc049,0x0000,0x0000,0x0121,0x97a5,0xf9ad,0x1bae,0x6a73,0x60ed,0x60ed,0xe0dc,0x20dd,0xc0f5,0x40fe,0xe0fd,0xe0fd,0x00fe,0xe0fd,0x40fe,0x00fe,0x60ed,0xe0d4,0xe0dc,0xa0f5,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xc0f5,0x00fe,0xe0fd,0x00fe,0x00fe,0xc0f5,0xe0fd,0xc0f5,0x00fe,0xe0fd,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0xe0fd,0x40fe,0x60bc,0x0000,
+0x0000,0xa0cc,0x80fe,0x00d5,0x6010,0x205a,0x2008,0x0000,0xc049,0x40b4,0xa09b,0x405a,0x0000,0x0000,0x205a,0xe051,0x0000,0x0000,0x40b4,0x80fe,0xc0a3,0xa0f5,0xa0c4,0x806a,0x0000,0x0000,0x4062,0xa018,0x0000,0xc020,0x40b4,0x00d5,0x00fe,0xa0f5,0x40fe,0x00fe,0x40e5,0x4008,0x0000,0xa018,0xc020,0x0000,0x4008,0x2183,0x989d,0x19b6,0x5bb6,0xea5a,0xa662,0x6d6b,0x0d53,0x6e63,0x0763,0x8193,0xa0f5,0x40fe,0xe0fd,0x40fe,0xa0c4,0x0473,0x6d6b,0xaf6b,0xae6b,0x6a73,0xe051,0x4452,0x4873,0x086b,0x086b,0x4283,0x40fe,0xa0f5,0xc46a,0x086b,0x076b,0x4873,0x044a,0xa0cc,0x40fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x40fe,0x60bc,0x0000,
+0x2008,0xa0cc,0x40fe,0x60ed,0xa018,0x806a,0x4008,0x0000,0x4008,0xc020,0xe028,0x0000,0x0000,0x0000,0xc0a3,0xc049,0x0000,0x0000,0xa0c4,0x00fe,0x8093,0x20dd,0x40ac,0x4062,0x0000,0x0000,0xc049,0x8010,0x0000,0x0029,0xc0a3,0xc0cc,0x60bc,0x40ac,0xe0fd,0x00fe,0x80ed,0x4008,0x0000,0x0000,0x0000,0x0000,0x2031,0x61b4,0x5795,0x3ab6,0x19b6,0x1695,0xdaa5,0xdaa5,0x178d,0x5895,0x999d,0xd68c,0xa65a,0x40dd,0x40fe,0xc082,0x9063,0x9a9d,0x1bae,0x3ab6,0x3ab6,0x1bae,0x989d,0x379d,0xbcc6,0x3bb6,0xfece,0xf273,0x60bc,0x8193,0xd68c,0xbcc6,0x9cbe,0xfbad,0xc56a,0xe0fd,0xe0fd,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0xe0fd,0x40fe,0x60bc,0x0000,
+0x0000,0xa0cc,0x80fe,0x00ac,0xc020,0x8041,0x2008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0029,0x40fe,0x6039,0x0000,0x0000,0xc0cc,0x40e5,0x4062,0x00ac,0x208b,0xc049,0x0000,0x0000,0x4031,0x6010,0x0000,0xa018,0xe07a,0xa09b,0x408b,0x208b,0x20dd,0x40fe,0x40e5,0x4008,0x0000,0x0000,0x0000,0x0000,0x2008,0x217b,0x789d,0x3ab6,0xf9b5,0x3ab6,0x19ae,0xb8a5,0xd68c,0x5795,0x779d,0x7bc6,0x9a9d,0xe662,0xc072,0x7674,0x7bbe,0xd8ad,0xd8ad,0x3ab6,0x3ab6,0xd9a5,0x7bc6,0xbbce,0x7ac6,0x3abe,0x7ac6,0x9cc6,0x6752,0x6d6b,0xbcce,0x39be,0x9cc6,0x6d6b,0xe0d4,0x40fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x40fe,0x60bc,0x0000,
+0x2008,0xa0c4,0xc0fe,0xa072,0xe07a,0xc049,0x2031,0x6010,0x0000,0x0000,0x0000,0x0000,0x0000,0xa0c4,0x80fe,0x6039,0x0000,0x0000,0xa0c4,0x80fe,0xc0c4,0x00f6,0xc0c4,0xa072,0x0000,0x0000,0x405a,0xa018,0x0000,0x0029,0x60bc,0x40dd,0x00cd,0xc0c4,0x40fe,0x00fe,0x60ed,0x4008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0121,0xb8a5,0xfaad,0xf9ad,0xf9ad,0x1aae,0x757c,0x4f5b,0x957c,0x999d,0xf9b5,0x3ab6,0xd584,0xd16b,0x7bbe,0xb8a5,0x3ab6,0x5895,0x3374,0x9384,0xdaa5,0x5abe,0x7ac6,0x7ac6,0x3abe,0x7ac6,0x7bc6,0xd8ad,0x39be,0x3abe,0xbbce,0xd68c,0x408b,0x40fe,0xe0fd,0x00fe,0xe0fd,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x40fe,0x60bc,0x0000,
+0x0000,0xc0cc,0x80fe,0x205a,0x4062,0x405a,0xc09b,0x6093,0x0000,0x0000,0x0000,0x0000,0x0000,0x40ac,0x80fe,0xc049,0x0000,0x0000,0x40ac,0x40fe,0xc0f5,0x00fe,0x40b4,0x4062,0x0000,0x0000,0x806a,0xc020,0x0000,0xa018,0x40ac,0xc0cc,0xc0cc,0xa0c4,0x40fe,0x00fe,0x60ed,0x4008,0x0000,0x0000,0xc020,0x0000,0x0000,0x4108,0x97a5,0x3ab6,0x19ae,0xfaad,0x0b5b,0xc0a3,0x408b,0xc049,0xf073,0x7bbe,0xb9a5,0x19b6,0xfaad,0xd8ad,0x3ab6,0x9484,0xe372,0xe0ab,0x406a,0x6752,0x19b6,0x9bc6,0x5abe,0x5abe,0x7bc6,0x5abe,0x7bc6,0x7bc6,0x7ac6,0x3bb6,0xe662,0xc0f5,0x00fe,0xe0fd,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x40fe,0x60bc,0x0000,
+0x2008,0xa0cc,0x80fe,0x8041,0x405a,0x60bc,0x4062,0xa08b,0x4062,0x408b,0x0029,0x0000,0x0000,0xc049,0x80fe,0x405a,0x0000,0x0000,0x8093,0x40fe,0xc0f5,0xe0fd,0x40ac,0xe051,0x0000,0x0000,0x8093,0x2031,0x0000,0x0000,0x00ac,0xc0c4,0xc0cc,0xa0c4,0x00fe,0x40fe,0x80ed,0x6010,0x0000,0x0000,0x208b,0x8010,0x0000,0x0000,0xaf6b,0xfaad,0xf9ad,0xd16b,0x40ac,0x80fe,0xe0fd,0x60bc,0x215a,0x5795,0x19b6,0xd9a5,0xd9a5,0xf9ad,0xb9a5,0xc56a,0xe0fd,0x40fe,0x60ed,0xe07a,0x6c6b,0x9cc6,0x3abe,0x19b6,0xb8a5,0x3abe,0x19b6,0x19b6,0x9bc6,0xae6b,0x60bc,0x40fe,0xe0fd,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0xe0fd,0x40fe,0x60bc,0x0000,
+0x0000,0xa0c4,0x80fe,0x806a,0x0029,0xc0a3,0x40ac,0x408b,0x6039,0xc0cc,0x0083,0x0000,0x0000,0x0000,0x80ed,0x408b,0x0000,0x0000,0x405a,0x40fe,0x40fe,0x80e5,0xc09b,0x2031,0x0000,0x0000,0xa0c4,0xa049,0x0000,0x0000,0x408b,0x20b4,0x80bc,0xa0c4,0x40fe,0x80ed,0x40ac,0x8010,0x0000,0xc020,0xe0ab,0xa049,0x0000,0x0000,0x8629,0x19ae,0x3bb6,0x8b73,0x80ed,0xe0fd,0x40fe,0xc0ed,0xe07a,0x1274,0xf9ad,0x989d,0xb8a5,0xd9a5,0x757c,0xe19b,0x40fe,0xc0f5,0x40fe,0x60bc,0xa65a,0x999d,0xd8ad,0x5695,0xcb4a,0x779d,0x168d,0x5695,0x957c,0xc36a,0x40fe,0xe0fd,0x00fe,0xe0fd,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0x00fe,0xe0fd,0x40fe,0x60bc,0x0000,
+0x2008,0xc0cc,0x40fe,0x80ed,0x205a,0x2031,0x8093,0x4031,0x0029,0xa0c4,0x00d5,0x0000,0x0000,0x0000,0x408b,0xa0c4,0x0000,0x0000,0xa018,0x00f6,0x20dd,0x40ac,0xc09b,0x2008,0x0000,0x2008,0xa0f5,0x806a,0x0000,0x0000,0xc049,0xc0c4,0x208b,0xc0cc,0xc0fe,0x4062,0x4062,0xc020,0x0000,0x4031,0x60bc,0x007b,0x0000,0x0000,0x0000,0x1595,0xfece,0xae73,0xa0c4,0x80fe,0x00fe,0xc0cc,0x406a,0x9484,0xd9a5,0x789d,0x989d,0xd8a5,0x178d,0xe372,0x40fe,0x40fe,0xe0fd,0x609b,0xc85a,0xf9ad,0xf9ad,0x989d,0x9384,0xd8a5,0x168d,0x5795,0x999d,0x0b5b,0x20dd,0x40fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0x40fe,0x40b4,0x0000,
+0x2008,0xa0cc,0x40fe,0xe0fd,0x40fe,0x00ac,0x2031,0x205a,0x4031,0x60bc,0x40fe,0xa049,0x0000,0x0000,0x0029,0x40dd,0x6010,0x0000,0x0000,0x6093,0x40b4,0xc0a3,0x205a,0x0000,0x0000,0x2031,0x80fe,0xc0a3,0x0000,0x0000,0x0000,0x609b,0x8093,0x00d5,0xc0a3,0x0000,0xe07a,0xc020,0x0000,0x2031,0x40dd,0xa09b,0x0029,0x2100,0x0000,0xec52,0x9cc6,0xb9a5,0xa65a,0xc0cc,0xe0ab,0x2062,0x0b63,0xdaa5,0xb8a5,0xd8a5,0xd9a5,0x789d,0xf9ad,0xb06b,0x8193,0xa0cc,0xc082,0x2252,0xd68c,0xf9ad,0x19ae,0xb8a5,0xf9ad,0xb9a5,0x5795,0x5795,0x989d,0xd784,0xc36a,0x00f6,0xe0fd,0x00fe,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0xe0fd,0x00fe,0xe0fd,0x00fe,0xe0fd,0xe0fd,0x00fe,0xe0fd,0xe0fd,0xe0fd,0xc0f5,0xa0f5,0xa0f5,0xe0fd,0x40ac,0x0000,
+0x0000,0xa0cc,0x40fe,0xe0fd,0x40fe,0xe0d4,0x6010,0x406a,0x6039,0x40b4,0x40fe,0xc0a3,0x0000,0x2008,0x0000,0x60bc,0x405a,0x0000,0x0000,0x0000,0xe051,0x8041,0x0000,0x0000,0x0000,0x208b,0x80fe,0x40dd,0x6010,0x0000,0x0000,0x0000,0x2031,0xc020,0x0000,0x0000,0xe07a,0xc020,0x0000,0xe028,0x00f6,0x00ac,0x405a,0x0000,0x0000,0xc310,0x19b6,0x3abe,0x999d,0xd16b,0x6c6b,0x1274,0xb9a5,0xb8a5,0xb9a5,0x3795,0x9484,0xf9ad,0x789d,0xd9a5,0x547c,0x4c63,0x6e63,0x3795,0xfaad,0xb8a5,0xd8a5,0xd8a5,0x989d,0x989d,0x178d,0x789d,0x5795,0x999d,0x9063,0x00ac,0x40fe,0xe0fd,0x00fe,0xe0fd,0xe0fd,0x00fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0x00fe,0x00fe,0x00fe,0x00fe,0x00fe,0xe0fd,0xa0f5,0xa0f5,0x80ed,0x40e5,0x20dd,0x80ed,0xc0a3,0x0000,
+0x2008,0xa0cc,0x40fe,0xc0f5,0x40fe,0xe0d4,0x0029,0x007b,0x8041,0x20b4,0x00fe,0xc0ed,0x8010,0x0000,0x0000,0x405a,0xa0c4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6010,0x40e5,0x00fe,0x40fe,0x4062,0x0000,0x2008,0x0000,0x0000,0x0000,0x2008,0x0000,0xa072,0xc020,0x0000,0xe028,0x40fe,0x80bc,0x4083,0x2008,0x0000,0x0000,0x7284,0x7bbe,0xd8ad,0x3ab6,0xfaad,0xd9a5,0x779d,0xd8a5,0xfba5,0xea5a,0x044a,0x388d,0xfaad,0x97a5,0xd9a5,0xfaad,0xfaad,0xb8a5,0xd8ad,0xf9ad,0xf9ad,0xd8a5,0xb8a5,0x1aae,0x694a,0x4f5b,0xdaa5,0x5795,0x999d,0xc85a,0x80ed,0x40fe,0xe0fd,0x00fe,0xe0fd,0xe0fd,0x00fe,0x00fe,0xe0fd,0xe0fd,0xc0f5,0xa0f5,0xa0f5,0xa0f5,0x80ed,0x40e5,0x40e5,0x60ed,0x40e5,0x20e5,0x40dd,0xa0f5,0xc0a3,0x0000,
+0x2008,0xa0cc,0x40fe,0xc0f5,0x40fe,0xc0cc,0x00ac,0xa072,0x6039,0x80bc,0xc0f5,0x40fe,0x406a,0x0000,0x0000,0x0000,0x80e5,0x406a,0x0000,0x0000,0x2008,0x2008,0x0000,0x0000,0x408b,0x40fe,0xc0f5,0x40fe,0x80e5,0xa018,0x0000,0x0000,0x2008,0x0000,0x0000,0x0000,0x208b,0xa018,0x0000,0xe028,0x40fe,0xc0ed,0x00ac,0x6039,0x2100,0x0000,0x0842,0x3abe,0xdaa5,0x3ab6,0xd9a5,0xd9a5,0xfaad,0x9995,0xec52,0x60bc,0xa0f5,0xa662,0x757c,0xfaad,0xd9a5,0xb9a5,0xd8ad,0xdaa5,0x999d,0x5695,0xdaa5,0x999d,0xdaa5,0x136c,0x406a,0x2252,0x967c,0x9995,0x999d,0x7674,0x037b,0x40fe,0xe0fd,0x00fe,0x00fe,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xe0fd,0xa0f5,0xa0f5,0xa0f5,0x80ed,0x80ed,0x40e5,0x40e5,0x60ed,0x40e5,0x40dd,0x60ed,0xa0f5,0xc0a3,0x0000,
+0x2008,0xa0cc,0x40fe,0xc0f5,0x40fe,0xc0cc,0x6010,0x0000,0x2031,0xe07a,0xe0dc,0x40fe,0xa0c4,0x0000,0x2008,0x0000,0x0052,0xc0c4,0xc049,0x0000,0x0000,0x0000,0x0000,0xa072,0x00fe,0xe0fd,0xe0fd,0x80ed,0xa0f5,0x60bc,0x4008,0x0000,0x0000,0x0000,0x0000,0x408b,0x80ed,0x6010,0x0000,0x0029,0xe0fd,0xa0c4,0x806a,0xc049,0x0000,0x0000,0x6208,0xe641,0x0b5b,0x3374,0x5474,0x136c,0x6e63,0xa662,0xa0c4,0x40fe,0x00fe,0x80ed,0x2183,0xea5a,0xd16b,0x5474,0x3474,0x9063,0xc639,0xc731,0x6e63,0xcb5a,0x0d53,0x4452,0x40b4,0x20dd,0x0642,0xec52,0xcb4a,0xec52,0x8631,0x40ac,0xa0f5,0x40e5,0xe0d4,0x20dd,0xa0cc,0x20e5,0xe0d4,0xe0d4,0x40dd,0x20dd,0xe0d4,0x20dd,0x20dd,0xa0cc,0xc0cc,0xa0cc,0xa0cc,0xc0cc,0xc0cc,0x20dd,0xa09b,0x0000,
+0x0000,0x00cd,0x80fe,0x40fe,0x40fe,0x40fe,0xa0f5,0xa0f5,0xa0f5,0x60bc,0x00f6,0x40fe,0x40fe,0xc0f5,0xa0f5,0xe0fd,0x20b4,0xc0ed,0x80fe,0xc0cc,0x408b,0xa09b,0x20dd,0xc0fe,0x40fe,0x40fe,0x80fe,0xc0cc,0x40b4,0xa0cc,0x40ac,0x408b,0x408b,0xc0a3,0x80ed,0xc0fe,0x40fe,0xa0f5,0xc0f5,0xe0fd,0x40fe,0xe0fd,0x60bc,0xa0c4,0x00fe,0xa0f5,0xa0f5,0xa0f5,0xa0f5,0xa0cc,0xc0cc,0xa0cc,0x20e5,0x40fe,0x80fe,0x40fe,0x40fe,0x80fe,0xc0fe,0xc0f5,0xc0cc,0xe0d4,0xa0c4,0xe0dc,0xa0f5,0xa0f5,0xa0f5,0xa0f5,0x60ed,0x00f6,0x40fe,0x80fe,0xc0f5,0xa0f5,0xa0f5,0xa0f5,0xa0f5,0xe0fd,0x40fe,0x40fe,0x00f6,0x40fe,0x40fe,0x40fe,0x40fe,0xe0fd,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x40fe,0x00f6,0x40fe,0x40fe,0x60bc,0x0000,
+0x0000,0xe07a,0xc0a3,0xa09b,0xc09b,0x6093,0xc09b,0xc0a3,0xc0a3,0x609b,0xc09b,0xa09b,0x8093,0x6093,0xc0a3,0xc0a3,0xa09b,0xa09b,0xa09b,0xe0ab,0x00ac,0x00ac,0xa0a3,0x6093,0xc09b,0x8093,0x6093,0xc0a3,0xa0a3,0xa09b,0xc0a3,0x00ac,0xc0a3,0xe0ab,0xc0a3,0x408b,0x6093,0xc0a3,0xc09b,0x6093,0xa09b,0xc0a3,0xc0a3,0xc09b,0xc09b,0xc09b,0xa0a3,0xc09b,0xa0a3,0x00ac,0xc0a3,0xa0a3,0xc0a3,0xc09b,0x408b,0xa09b,0xc09b,0x408b,0x408b,0xc0a3,0xe0ab,0xa0a3,0xe0ab,0xe0ab,0xa09b,0xa09b,0xc0a3,0xc0a3,0xc0a3,0xc09b,0x408b,0x6093,0xc0a3,0xc09b,0xc0a3,0xc0a3,0xa09b,0xa0a3,0xa09b,0x408b,0x8093,0xc09b,0xa09b,0x6093,0x6093,0xc09b,0xa09b,0x408b,0xa09b,0xc09b,0x6093,0xa09b,0xa09b,0x6093,0x609b,0xc09b,0xc09b,0xc0a3,0xc072,0x0000,
+0x0000,0x0000,0x0000,0x0000,0x0000,0x8308,0xa410,0x0000,0x2100,0x0619,0x4100,0x0000,0x4100,0xe518,0x0000,0x0000,0x2621,0x4100,0x0000,0x0000,0x0000,0x0000,0xa410,0x4100,0x0000,0x6208,0xc410,0x0000,0x2100,0x8308,0x4108,0x0000,0xa410,0x4108,0x0000,0xa410,0x6308,0x0000,0x8308,0xc510,0x0000,0x0000,0x0000,0x0000,0x2521,0xc310,0x0000,0x6308,0x6208,0x0000,0x8729,0x0519,0x0000,0x2100,0xe518,0x2100,0x0000,0x2a42,0xe518,0x0000,0x0000,0xc510,0x4100,0x0000,0x6308,0x6308,0x2100,0x0000,0x2100,0x0000,0x2942,0x4629,0x0000,0x8729,0x0000,0x2100,0xc410,0x0000,0x6208,0x8729,0xe418,0x0000,0x2100,0xe418,0xa310,0x0000,0x2100,0x2621,0x6208,0x0000,0xa410,0x4108,0x0000,0xa410,0xa310,0x0000,0x0000,0x0000,0x0000,0x0000,
+0x0000,0x0000,0x0000,0x2008,0x0000,0xae73,0xd29c,0x0000,0xc318,0x18c6,0xcb5a,0x0000,0x8d73,0xfbde,0x2008,0x4108,0xd29c,0xcb5a,0x0000,0x2008,0x0000,0x0000,0x34a5,0x2c63,0x0000,0x6d6b,0x54ad,0x0000,0x8210,0x13a5,0x8952,0x0000,0xae7b,0xc318,0x0000,0xd29c,0xc639,0x0000,0xd29c,0x17c6,0x0000,0x0000,0x2008,0x0000,0x8a52,0x8631,0x0000,0x9194,0x6d6b,0x0000,0x6d6b,0x54ad,0x0000,0x8631,0x9df7,0xc639,0x0000,0x508c,0x34a5,0x0000,0x8210,0x95b5,0x0b5b,0x0000,0x508c,0xae73,0x0000,0x2008,0x2008,0x0000,0xae7b,0x2421,0x0000,0x6d6b,0x0000,0x8631,0x0b63,0x0000,0x8a52,0x13a5,0x9194,0x4008,0x4108,0x1be7,0x34a5,0x0000,0x8531,0x18c6,0x694a,0x0000,0xae7b,0x2421,0x0000,0x59ce,0x518c,0x0000,0x2008,0x0000,0x0000,0x0000,
+0x0000,0x0000,0x0000,0x0000,0x0000,0xc318,0x2421,0x0000,0xc318,0xcb5a,0x4108,0x0000,0x8210,0x2429,0x0000,0x2100,0xc318,0x8210,0x0000,0x0000,0x0000,0x0000,0x2421,0xc310,0x0000,0xc310,0x2429,0x0000,0x0000,0x8631,0xa310,0x0000,0x8210,0x0000,0x0000,0x2421,0x8210,0x0000,0xc318,0x0321,0x0000,0x0000,0x0000,0x0000,0x0842,0xc318,0x0000,0x4529,0x2521,0x0000,0x8210,0x2421,0x0000,0x0000,0x4529,0x2100,0x0000,0x2421,0x4529,0x0000,0x0000,0x4529,0x8210,0x0000,0xc318,0xc318,0x0000,0x0000,0x0000,0x0000,0x8110,0x2100,0x0000,0xc310,0x0000,0x4108,0x8210,0x0000,0x6208,0xc318,0xc318,0x2100,0x0000,0x2421,0xc318,0x0000,0x2100,0x8631,0x8210,0x0000,0x8210,0x0000,0x0000,0x2421,0xa310,0x0000,0x0000,0x0000,0x0000,0x0000,
+0x0000,0x0000,0x0000,0x0000,0x0000,0xc318,0x2421,0x0000,0xc318,0xcb5a,0x4108,0x0000,0x8210,0x2429,0x0000,0x2100,0xc318,0x8210,0x0000,0x0000,0x0000,0x0000,0x2421,0xc310,0x0000,0xc310,0x2429,0x0000,0x0000,0x8631,0xa310,0x0000,0x8210,0x0000,0x0000,0x2421,0x8210,0x0000,0xc318,0x0321,0x0000,0x0000,0x0000,0x0000,0x0842,0xc318,0x0000,0x4529,0x2521,0x0000,0x8210,0x2421,0x0000,0x0000,0x4529,0x2100,0x0000,0x2421,0x4529,0x0000,0x0000,0x4529,0x8210,0x0000,0xc318,0xc318,0x0000,0x0000,0x0000,0x0000,0x8110,0x2100,0x0000,0xc310,0x0000,0x4108,0x8210,0x0000,0x6208,0xc318,0xc318,0x2100,0x0000,0x2421,0xc318,0x0000,0x2100,0x8631,0x8210,0x0000,0x8210,0x0000,0x0000,0x2421,0xa310,0x0000,0x0000,0x0000,0x0000,0x0000
+};
diff --git a/tools/configure b/tools/configure
index d15bdbc..38d95a7 100755
--- a/tools/configure
+++ b/tools/configure
@@ -168,6 +168,13 @@
endian="big"
}
+arm7tdmicc () {
+ prefixtools arm-elf-
+ GCCOPTS="$CCOPTS -mcpu=arm7tdmi"
+ GCCOPTIMIZE="-fomit-frame-pointer"
+ endian="little"
+}
+
whichaddr () {
case $archos in
gmini120|gminisp)
@@ -401,6 +408,8 @@
echo "10 - iriver H320/H340"
echo "11 - iriver iHP-100/iHP-110/iHP-115"
echo "12 - iAudio X5"
+ echo "13 - iPod Color/Photo"
+ echo "14 - iPod Nano"
getit=`input`;
@@ -568,6 +577,34 @@
codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
;;
+ 13)
+ archos="ipodcolor"
+ target="-DIPOD_COLOR"
+ memory=32 # always
+ arm7tdmicc
+ tool="$rootdir/tools/scramble -add=ipco"
+ output="rockbox.ipod"
+ appextra="recorder:gui"
+ archosrom=""
+ flash=""
+ plugins="yes"
+ codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+ ;;
+
+ 14)
+ archos="ipodnano"
+ target="-DIPOD_NANO"
+ memory=32 # always
+ arm7tdmicc
+ tool="$rootdir/tools/scramble -add=nano"
+ output="rockbox.ipod"
+ appextra="recorder:gui"
+ archosrom=""
+ flash=""
+ plugins="yes"
+ codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+ ;;
+
*)
echo "Please select an actual target platform!"
exit
@@ -612,7 +649,7 @@
case $option in
[Bb])
case $archos in
- h100|h120)
+ h100|h120|ipodcolor|ipodnano)
extradefines="-DBOOTLOADER" # for target makefile symbol EXTRA_DEFINES
appsdir='\$(ROOTDIR)/bootloader'
apps="bootloader"