From 37daf91cae1298d38ec7a81f97ed907274c59633 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 30 Apr 2019 14:15:36 +0100 Subject: fish --- master/model-50-v2-cumul.patch | 484 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 484 insertions(+) create mode 100644 master/model-50-v2-cumul.patch (limited to 'master/model-50-v2-cumul.patch') diff --git a/master/model-50-v2-cumul.patch b/master/model-50-v2-cumul.patch new file mode 100644 index 0000000..d4205c7 --- /dev/null +++ b/master/model-50-v2-cumul.patch @@ -0,0 +1,484 @@ +diff --git a/Makefile b/Makefile +index e758fa4..ee168c2 100644 +--- a/Makefile ++++ b/Makefile +@@ -11,7 +11,7 @@ LIBDIR=$(PREFIX)/lib + MANDIR=$(PREFIX)/man + INCDIR=$(PREFIX)/include + +-PORT = /dev/ttyUSB1 ++PORT = /dev/ttyACM1 + + CC = gcc + CPPFLAGS = -DBINDIR=\"$(BINDIR)\" -DPORT=\"$(PORT)\" +diff --git a/datalink.h b/datalink.h +index ab6f2d7..d14eeae 100644 +--- a/datalink.h ++++ b/datalink.h +@@ -212,10 +212,11 @@ typedef struct watch_info_s + + /* Watch types */ + #define NO_WATCH 0 +-#define DATALINK_70 1 +-#define DATALINK_150 2 +-#define DATALINK_150S 3 +-#define DATALINK_IRONMAN 4 ++#define DATALINK_50 1 ++#define DATALINK_70 2 ++#define DATALINK_150 3 ++#define DATALINK_150S 4 ++#define DATALINK_IRONMAN 5 + + #define DEF_LPTRANSINFO 1 + +diff --git a/dl_init_watch.c b/dl_init_watch.c +index 9cfc929..9e88500 100644 +--- a/dl_init_watch.c ++++ b/dl_init_watch.c +@@ -62,6 +62,32 @@ WatchInfoPtr dl_init_watch(int type) + + switch (type) + { ++ case DATALINK_50: ++ result->dl_device = type; ++ result->max_tz = 2; ++ result->max_alarms = 5; ++ result->max_chrons = 0; ++ result->max_chron_str = 0; ++ result->max_apps = 255; ++ result->max_phones = 255; ++ result->max_timers = 0; ++ result->max_todos = 255; ++ result->max_annivs = 255; ++ result->max_system = 1; ++ result->max_wristapp = 0; ++ result->max_melody = 0; ++ result->max_tzlen = 3; ++ result->max_mem = 850; ++ result->mem_size = 0; ++ result->max_str = 15; ++ result->max_alarm_str = 8; ++ result->max_phone_str = 12; ++ result->max_timer_str = 0; ++ result->max_wristapp_len = 0; ++ result->max_mel_len = 0; ++ result->pre_notification_time = 0; ++ result->time_adjust = 9; ++ break; + case DATALINK_70: + result->dl_device = type; + result->max_tz = 2; +diff --git a/dl_send_data.c b/dl_send_data.c +index 94f93e7..1ccbcf0 100644 +--- a/dl_send_data.c ++++ b/dl_send_data.c +@@ -99,19 +99,18 @@ int _write_data(int fd, unsigned char *buf, unsigned char *data, int size, + + memcpy(buf, dspace, *dspace); + +-#if 1 +- buf[0] = 0x3; +-#endif ++ if (wi->dl_device == DATALINK_50) ++ buf[0] = 0x3; + +- if (wi->dl_device == DATALINK_70) ++ if ((wi->dl_device == DATALINK_50) || (wi->dl_device == DATALINK_70)) + buf[1] = DATA_70; + +-#if 0 +- buf[2] = type; +- buf[3] = (*pnum)++; +-#else +- buf[2] = (*pnum)++; +-#endif ++ if (wi->dl_device == DATALINK_50) { ++ buf[2] = (*pnum)++; ++ } else { ++ buf[2] = type; ++ buf[3] = (*pnum)++; ++ } + } + + if (!size) +@@ -221,7 +220,7 @@ int dl_send_data(WatchInfoPtr wi, int type) + + memcpy(buf, start1, *start1); + +- if (wi->dl_device == DATALINK_70) ++ if ((wi->dl_device == DATALINK_50) || (wi->dl_device == DATALINK_70)) + { + buf[4] = 1; + } +@@ -259,9 +258,8 @@ int dl_send_data(WatchInfoPtr wi, int type) + for (i = 0; i < dl_download_data.num_times; i++) + { + memcpy(buf, time, *time); +-#if 1 +- buf[0] = 0xd; +-#endif ++ if (wi->dl_device == DATALINK_50) ++ buf[0] = 0xd; + + p = 2; + if (wi->dl_device == DATALINK_IRONMAN) +@@ -285,29 +283,29 @@ int dl_send_data(WatchInfoPtr wi, int type) + buf[p++] = dl_download_data.times[i].year; + buf[p++] = dl_download_data.times[i].dow; + buf[p++] = dl_download_data.times[i].seconds; +- } else +- { ++ } else { + buf[p++] = dl_download_data.times[i].hours; + buf[p++] = dl_download_data.times[i].minutes; + buf[p++] = dl_download_data.times[i].month; + buf[p++] = dl_download_data.times[i].day; + buf[p++] = dl_download_data.times[i].year; +-#if 0 +- buf[p++] = +- dl_pack_char(dl_download_data. +- times[i].label[0]); +- buf[p++] = +- dl_pack_char(dl_download_data. +- times[i].label[1]); +- buf[p++] = +- dl_pack_char(dl_download_data. +- times[i].label[2]); +- buf[p++] = dl_download_data.times[i].dow - 1; +-#else +- buf[p++] = dl_download_data.times[i].dow; +- buf[p++] = dl_download_data.times[i].seconds; +- buf[p++] = dl_download_data.times[i].hour_fmt; +-#endif ++ ++ if (wi->dl_device == DATALINK_50) { ++ buf[p++] = dl_download_data.times[i].dow; ++ buf[p++] = dl_download_data.times[i].seconds; ++ buf[p++] = dl_download_data.times[i].hour_fmt; ++ } else { ++ buf[p++] = ++ dl_pack_char(dl_download_data. ++ times[i].label[0]); ++ buf[p++] = ++ dl_pack_char(dl_download_data. ++ times[i].label[1]); ++ buf[p++] = ++ dl_pack_char(dl_download_data. ++ times[i].label[2]); ++ buf[p++] = dl_download_data.times[i].dow - 1; ++ } + } + + if (wi->dl_device == DATALINK_150 || +@@ -319,7 +317,7 @@ int dl_send_data(WatchInfoPtr wi, int type) + dl_download_data.times[i].date_fmt & 0xFF; + } + +- if (wi->dl_device == DATALINK_70) ++ if ((wi->dl_device == DATALINK_50) || (wi->dl_device == DATALINK_70)) + buf[1] = TIME_70; + + dl_docrc(buf); +@@ -332,18 +330,19 @@ int dl_send_data(WatchInfoPtr wi, int type) + + if (wi->dl_device != DATALINK_IRONMAN && dl_download_data.memory) + { +-#if 0 +- memcpy(buf, dstart, *dstart); +- buf[2] = 1; +-#else +- buf[0] = 0x05; +- buf[1] = 0x60; +- buf[2] = dl_download_data.memory / (MAX_PCKT - 6); ++ if (wi->dl_device == DATALINK_50) { ++ buf[0] = 0x05; ++ buf[1] = 0x60; ++ buf[2] = dl_download_data.memory / (MAX_PCKT - 6); + +- if (dl_download_data.memory % (MAX_PCKT - 6)) ++ if (dl_download_data.memory % (MAX_PCKT - 6)) ++ buf[2]++; + buf[2]++; +- buf[2]++; +-#endif ++ } else { ++ memcpy(buf, dstart, *dstart); ++ buf[2] = 1; ++ } ++ + dl_docrc(buf); + + if (write(ofd, buf, *buf) != *buf) +@@ -351,61 +350,60 @@ int dl_send_data(WatchInfoPtr wi, int type) + ("Can't write dstart to tmp file.")); + + +-#if 0 +- memcpy(buf, dinfo, *dinfo); +- buf[2] = 1; +- buf[3] = dl_download_data.memory / (MAX_PCKT - 6); +- +- if (dl_download_data.memory % (MAX_PCKT - 6)) +- buf[3]++; ++ if (wi->dl_device == DATALINK_50) { ++ pnum=1; + +- buf[12] = dl_download_data.num_apps; +- buf[13] = dl_download_data.num_todos; +- buf[14] = dl_download_data.num_phones; +- buf[15] = dl_download_data.num_annivs; +- buf[4] = (addr >> 8) & 0xff; +- buf[5] = addr & 0xff; +- addr += dl_download_data.app_size; +- buf[6] = (addr >> 8) & 0xff; +- buf[7] = addr & 0xff; +- addr += dl_download_data.todo_size; +- buf[8] = (addr >> 8) & 0xff; +- buf[9] = addr & 0xff; +- addr += dl_download_data.phone_size; +- buf[10] = (addr >> 8) & 0xff; +- buf[11] = addr & 0xff; +- buf[16] = 0x62; +- buf[17] = dl_download_data.pre_notification_time / 5; +- if (!buf[17]) +- buf[17] = 0xff; +- +- if (wi->dl_device == DATALINK_70) +- buf[1] = DATA_70; +-#else +- +- pnum=1; +- +- buf[0] = 0x13; +- buf[1] = 0x61; +- buf[2] = pnum; +- buf[3] = (addr >> 8) & 0xff; +- buf[4] = addr & 0xff; +- addr += dl_download_data.app_size; +- buf[5] = (addr >> 8) & 0xff; +- buf[6] = addr & 0xff; +- addr += dl_download_data.todo_size; +- buf[7] = (addr >> 8) & 0xff; +- buf[8] = addr & 0xff; +- addr += dl_download_data.phone_size; +- buf[9] = (addr >> 8) & 0xff; +- buf[10] = addr & 0xff; +- buf[11] = dl_download_data.num_apps; +- buf[12] = dl_download_data.num_todos; +- buf[13] = dl_download_data.num_phones; +- buf[14] = dl_download_data.num_annivs; +- buf[15] = 0x00; +- buf[16] = 0x03; +-#endif ++ buf[0] = 0x13; ++ buf[1] = 0x61; ++ buf[2] = pnum; ++ buf[3] = (addr >> 8) & 0xff; ++ buf[4] = addr & 0xff; ++ addr += dl_download_data.app_size; ++ buf[5] = (addr >> 8) & 0xff; ++ buf[6] = addr & 0xff; ++ addr += dl_download_data.todo_size; ++ buf[7] = (addr >> 8) & 0xff; ++ buf[8] = addr & 0xff; ++ addr += dl_download_data.phone_size; ++ buf[9] = (addr >> 8) & 0xff; ++ buf[10] = addr & 0xff; ++ buf[11] = dl_download_data.num_apps; ++ buf[12] = dl_download_data.num_todos; ++ buf[13] = dl_download_data.num_phones; ++ buf[14] = dl_download_data.num_annivs; ++ buf[15] = 0x00; ++ buf[16] = 0x03; ++ } else { ++ memcpy(buf, dinfo, *dinfo); ++ buf[2] = 1; ++ buf[3] = dl_download_data.memory / (MAX_PCKT - 6); ++ ++ if (dl_download_data.memory % (MAX_PCKT - 6)) ++ buf[3]++; ++ ++ buf[12] = dl_download_data.num_apps; ++ buf[13] = dl_download_data.num_todos; ++ buf[14] = dl_download_data.num_phones; ++ buf[15] = dl_download_data.num_annivs; ++ buf[4] = (addr >> 8) & 0xff; ++ buf[5] = addr & 0xff; ++ addr += dl_download_data.app_size; ++ buf[6] = (addr >> 8) & 0xff; ++ buf[7] = addr & 0xff; ++ addr += dl_download_data.todo_size; ++ buf[8] = (addr >> 8) & 0xff; ++ buf[9] = addr & 0xff; ++ addr += dl_download_data.phone_size; ++ buf[10] = (addr >> 8) & 0xff; ++ buf[11] = addr & 0xff; ++ buf[16] = 0x62; ++ buf[17] = dl_download_data.pre_notification_time / 5; ++ if (!buf[17]) ++ buf[17] = 0xff; ++ ++ if (wi->dl_device == DATALINK_70) ++ buf[1] = DATA_70; ++ } + + dl_docrc(buf); + +@@ -413,27 +411,26 @@ int dl_send_data(WatchInfoPtr wi, int type) + return ((*dl_error_proc) + ("Can't write dinfo to tmp file.")); + +-#if 0 +- pnum = 1; +-#else +- pnum = 2; +-#endif ++ if (wi->dl_device == DATALINK_50) ++ pnum = 2; ++ else ++ pnum = 1; ++ + memcpy(buf, dspace, *dspace); + +-#if 1 +- buf[0] = 0x3; +-#endif ++ if (wi->dl_device == DATALINK_50) ++ buf[0] = 0x3; + +- if (wi->dl_device == DATALINK_70) ++ if ((wi->dl_device == DATALINK_50) || (wi->dl_device == DATALINK_70)) + buf[1] = DATA_70; + +-#if 0 +- buf[2] = 1; +- buf[3] = pnum++; +-#else +- buf[2] = pnum++; +-#endif +- ++ if (wi->dl_device == DATALINK_50) { ++ buf[2] = pnum++; ++ } else { ++ buf[2] = 1; ++ buf[3] = pnum++; ++ } ++ + for (i = 0; i < dl_download_data.num_apps; i++) + { + ap = &dl_download_data.apps[i]; +@@ -792,11 +789,10 @@ int dl_send_data(WatchInfoPtr wi, int type) + + memcpy(buf, dspace, *dspace); + +-#if 1 +- buf[0] = 0x3; +-#endif ++ if (wi->dl_device == DATALINK_50) ++ buf[0] = 0x3; + +- if (wi->dl_device == DATALINK_70) ++ if ((wi->dl_device == DATALINK_50) || (wi->dl_device == DATALINK_70)) + buf[1] = DATA_70; + + pnum = 1; +@@ -858,11 +854,10 @@ int dl_send_data(WatchInfoPtr wi, int type) + + memcpy(buf, dspace, *dspace); + +-#if 1 +- buf[0] = 0x3; +-#endif ++ if (wi->dl_device == DATALINK_50) ++ buf[0] = 0x3; + +- if (wi->dl_device == DATALINK_70) ++ if ((wi->dl_device == DATALINK_50) || (wi->dl_device == DATALINK_70)) + buf[1] = DATA_70; + + pnum = 1; +diff --git a/settime.c b/settime.c +index 3c89093..ab98990 100644 +--- a/settime.c ++++ b/settime.c +@@ -117,6 +117,9 @@ int main( int argc, char ** argv) + + if(argc==2) + { ++ if(!strcmp("-model50",argv[1])||!strcmp("-50",argv[1])) ++ wi = dl_init_watch(DATALINK_50); ++ else + if(!strcmp("-model70",argv[1])||!strcmp("-70",argv[1])) + wi = dl_init_watch(DATALINK_70); + else +@@ -130,7 +133,7 @@ int main( int argc, char ** argv) + wi = dl_init_watch(DATALINK_IRONMAN); + else + { +- printf("Usage: %s [ -model70 | -70 | -model70 | " ++ printf("Usage: %s [ -model50 | -50 | -70 | -model70 | " + "-150 | -model150 | -model150s | -150s |" + " -ironman]\nVersion " + "$Id: settime.c,v 1.13 2002/07/10 04:23:23 david Exp $\n", argv[0]); +diff --git a/setwatch.c b/setwatch.c +index 93a9364..eee146b 100644 +--- a/setwatch.c ++++ b/setwatch.c +@@ -120,7 +120,8 @@ void Usage() + printf("Usage: datalink [watch type] [options] [datafile]\n"); + printf + ("watchtype (ironman is default, must be specified before other options)\n"); +- printf(" -model70\t use if you have this watch\n"); ++ printf(" -50\t use if you have this watch\n"); ++ printf(" -model50\t use if you have this watch\n"); + printf(" -70\t use if you have this watch\n"); + printf(" -model70\t use if you have this watch\n"); + printf(" -150\t use if you have this watch\n"); +@@ -199,6 +200,7 @@ void Usage() + #define CHRON 0x400 + + /* All would be 0x755 */ ++#define ALL50 0x07F + #define ALL70 0x07F + #define ALL150 0x1FF + #define ALLIRONMAN 0x653 +@@ -228,6 +230,8 @@ int main(int argc, char **argv) + + if (strcmp("-all", argv[1]) == 0) + { ++ if (type == DATALINK_50) ++ flags = ALL50; + if (type == DATALINK_70) + flags = ALL70; + if (type == DATALINK_150 || type == DATALINK_150S) +@@ -300,6 +304,10 @@ int main(int argc, char **argv) + output = BLINK_FILE; + else if (strcmp("-serial", argv[1]) == 0) + output = SER_BLINK; ++ else if (strcmp("-model50", argv[1]) == 0) ++ type = DATALINK_50; ++ else if (strcmp("-50", argv[1]) == 0) ++ type = DATALINK_50; + else if (strcmp("-model70", argv[1]) == 0) + type = DATALINK_70; + else if (strcmp("-70", argv[1]) == 0) +diff --git a/svgablink.c b/svgablink.c +index 185a2ca..3e30461 100644 +--- a/svgablink.c ++++ b/svgablink.c +@@ -70,10 +70,14 @@ int main(int argc, char **argv) + || strcmp(argv[1], "-model70") == 0) + type = DATALINK_70; + else ++ if (strcmp(argv[1], "-50") == 0 ++ || strcmp(argv[1], "-model50") == 0) ++ type = DATALINK_50; ++ else + { + fprintf(stderr, "Unknown option %s.\n", argv[1]); + fprintf(stderr, "Usage: %s [ -ironman | -modelironman | -150 | -model150 | -150s | \n" +- "\t-model150s | -70 | -model70 ] datafile\n" ++ "\t-model150s | -70 | -model70 | -50 | -model50 ] datafile\n" + "Version $Id: svgablink.c,v 1.12 2002/07/10 04:27:08 david Exp $\n", argv[0]); + exit(-1); + } -- cgit v1.2.3