diff code_part1/OSTC_code_c_part2/p2_deco_main - 090915b.i @ 0:96a35aeda5f2

Initial setup
author heinrichsweikamp
date Tue, 12 Jan 2010 15:05:59 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/code_part1/OSTC_code_c_part2/p2_deco_main - 090915b.i	Tue Jan 12 15:05:59 2010 +0100
@@ -0,0 +1,11459 @@
+#line 1 "p2_deco_main - 090915b.c"
+#line 1 "p2_deco_main - 090915b.c"
+
+#line 17 "p2_deco_main - 090915b.c"
+ 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 1 "C:/MCC18/h/p18f4685.h"
+
+#line 5 "C:/MCC18/h/p18f4685.h"
+ 
+
+
+#line 9 "C:/MCC18/h/p18f4685.h"
+
+extern volatile far  unsigned char       RXF6SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF6SIDHbits;
+extern volatile far  unsigned char       RXF6SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF6SIDLbits;
+extern volatile far  unsigned char       RXF6EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF6EIDHbits;
+extern volatile far  unsigned char       RXF6EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF6EIDLbits;
+extern volatile far  unsigned char       RXF7SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF7SIDHbits;
+extern volatile far  unsigned char       RXF7SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF7SIDLbits;
+extern volatile far  unsigned char       RXF7EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF7EIDHbits;
+extern volatile far  unsigned char       RXF7EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF7EIDLbits;
+extern volatile far  unsigned char       RXF8SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF8SIDHbits;
+extern volatile far  unsigned char       RXF8SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF8SIDLbits;
+extern volatile far  unsigned char       RXF8EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF8EIDHbits;
+extern volatile far  unsigned char       RXF8EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF8EIDLbits;
+extern volatile far  unsigned char       RXF9SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF9SIDHbits;
+extern volatile far  unsigned char       RXF9SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF9SIDLbits;
+extern volatile far  unsigned char       RXF9EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF9EIDHbits;
+extern volatile far  unsigned char       RXF9EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF9EIDLbits;
+extern volatile far  unsigned char       RXF10SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF10SIDHbits;
+extern volatile far  unsigned char       RXF10SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF10SIDLbits;
+extern volatile far  unsigned char       RXF10EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF10EIDHbits;
+extern volatile far  unsigned char       RXF10EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF10EIDLbits;
+extern volatile far  unsigned char       RXF11SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF11SIDHbits;
+extern volatile far  unsigned char       RXF11SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF11SIDLbits;
+extern volatile far  unsigned char       RXF11EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF11EIDHbits;
+extern volatile far  unsigned char       RXF11EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF11EIDLbits;
+extern volatile far  unsigned char       RXF12SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF12SIDHbits;
+extern volatile far  unsigned char       RXF12SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF12SIDLbits;
+extern volatile far  unsigned char       RXF12EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF12EIDHbits;
+extern volatile far  unsigned char       RXF12EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF12EIDLbits;
+extern volatile far  unsigned char       RXF13SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF13SIDHbits;
+extern volatile far  unsigned char       RXF13SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF13SIDLbits;
+extern volatile far  unsigned char       RXF13EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF13EIDHbits;
+extern volatile far  unsigned char       RXF13EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF13EIDLbits;
+extern volatile far  unsigned char       RXF14SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF14SIDHbits;
+extern volatile far  unsigned char       RXF14SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF14SIDLbits;
+extern volatile far  unsigned char       RXF14EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF14EIDHbits;
+extern volatile far  unsigned char       RXF14EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF14EIDLbits;
+extern volatile far  unsigned char       RXF15SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF15SIDHbits;
+extern volatile far  unsigned char       RXF15SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF15SIDLbits;
+extern volatile far  unsigned char       RXF15EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF15EIDHbits;
+extern volatile far  unsigned char       RXF15EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF15EIDLbits;
+extern volatile far  unsigned char       RXFCON0;
+extern volatile far  struct {
+  unsigned RXF0EN:1;
+  unsigned RXF1EN:1;
+  unsigned RXF2EN:1;
+  unsigned RXF3EN:1;
+  unsigned RXF4EN:1;
+  unsigned RXF5EN:1;
+  unsigned RXF6EN:1;
+  unsigned RXF7EN:1;
+} RXFCON0bits;
+extern volatile far  unsigned char       RXFCON1;
+extern volatile far  struct {
+  unsigned RXF8EN:1;
+  unsigned RXF9EN:1;
+  unsigned RXF10EN:1;
+  unsigned RXF11EN:1;
+  unsigned RXF12EN:1;
+  unsigned RXF13EN:1;
+  unsigned RXF14EN:1;
+  unsigned RXF15EN:1;
+} RXFCON1bits;
+extern volatile far  unsigned char       SDFLC;
+extern volatile far  union {
+  struct {
+    unsigned DFLC0:1;
+    unsigned DFLC1:1;
+    unsigned DFLC2:1;
+    unsigned DFLC3:1;
+    unsigned DFLC4:1;
+  };
+  struct {
+    unsigned FLC0:1;
+    unsigned FLC1:1;
+    unsigned FLC2:1;
+    unsigned FLC3:1;
+    unsigned FLC4:1;
+  };
+} SDFLCbits;
+extern volatile far  unsigned char       RXFBCON0;
+extern volatile far  struct {
+  unsigned F0BP_0:1;
+  unsigned F0BP_1:1;
+  unsigned F0BP_2:1;
+  unsigned F0BP_3:1;
+  unsigned F1BP_0:1;
+  unsigned F1BP_1:1;
+  unsigned F1BP_2:1;
+  unsigned F1BP_3:1;
+} RXFBCON0bits;
+extern volatile far  unsigned char       RXFBCON1;
+extern volatile far  struct {
+  unsigned F2BP_0:1;
+  unsigned F2BP_1:1;
+  unsigned F2BP_2:1;
+  unsigned F2BP_3:1;
+  unsigned F3BP_0:1;
+  unsigned F3BP_1:1;
+  unsigned F3BP_2:1;
+  unsigned F3BP_3:1;
+} RXFBCON1bits;
+extern volatile far  unsigned char       RXFBCON2;
+extern volatile far  struct {
+  unsigned F4BP_0:1;
+  unsigned F4BP_1:1;
+  unsigned F4BP_2:1;
+  unsigned F4BP_3:1;
+  unsigned F5BP_0:1;
+  unsigned F5BP_1:1;
+  unsigned F5BP_2:1;
+  unsigned F5BP_3:1;
+} RXFBCON2bits;
+extern volatile far  unsigned char       RXFBCON3;
+extern volatile far  struct {
+  unsigned F6BP_0:1;
+  unsigned F6BP_1:1;
+  unsigned F6BP_2:1;
+  unsigned F6BP_3:1;
+  unsigned F7BP_0:1;
+  unsigned F7BP_1:1;
+  unsigned F7BP_2:1;
+  unsigned F7BP_3:1;
+} RXFBCON3bits;
+extern volatile far  unsigned char       RXFBCON4;
+extern volatile far  struct {
+  unsigned F8BP_0:1;
+  unsigned F8BP_1:1;
+  unsigned F8BP_2:1;
+  unsigned F8BP_3:1;
+  unsigned F9BP_0:1;
+  unsigned F9BP_1:1;
+  unsigned F9BP_2:1;
+  unsigned F9BP_3:1;
+} RXFBCON4bits;
+extern volatile far  unsigned char       RXFBCON5;
+extern volatile far  struct {
+  unsigned F10BP_0:1;
+  unsigned F10BP_1:1;
+  unsigned F10BP_2:1;
+  unsigned F10BP_3:1;
+  unsigned F11BP_0:1;
+  unsigned F11BP_1:1;
+  unsigned F11BP_2:1;
+  unsigned F11BP_3:1;
+} RXFBCON5bits;
+extern volatile far  unsigned char       RXFBCON6;
+extern volatile far  struct {
+  unsigned F12BP_0:1;
+  unsigned F12BP_1:1;
+  unsigned F12BP_2:1;
+  unsigned F12BP_3:1;
+  unsigned F13BP_0:1;
+  unsigned F13BP_1:1;
+  unsigned F13BP_2:1;
+  unsigned F13BP_3:1;
+} RXFBCON6bits;
+extern volatile far  unsigned char       RXFBCON7;
+extern volatile far  struct {
+  unsigned F14BP_0:1;
+  unsigned F14BP_1:1;
+  unsigned F14BP_2:1;
+  unsigned F14BP_3:1;
+  unsigned F15BP_0:1;
+  unsigned F15BP_1:1;
+  unsigned F15BP_2:1;
+  unsigned F15BP_3:1;
+} RXFBCON7bits;
+extern volatile far  unsigned char       MSEL0;
+extern volatile far  struct {
+  unsigned FIL0_0:1;
+  unsigned FIL0_1:1;
+  unsigned FIL1_0:1;
+  unsigned FIL1_1:1;
+  unsigned FIL2_0:1;
+  unsigned FIL2_1:1;
+  unsigned FIL3_0:1;
+  unsigned FIL3_1:1;
+} MSEL0bits;
+extern volatile far  unsigned char       MSEL1;
+extern volatile far  struct {
+  unsigned FIL4_0:1;
+  unsigned FIL4_1:1;
+  unsigned FIL5_0:1;
+  unsigned FIL5_1:1;
+  unsigned FIL6_0:1;
+  unsigned FIL6_1:1;
+  unsigned FIL7_0:1;
+  unsigned FIL7_1:1;
+} MSEL1bits;
+extern volatile far  unsigned char       MSEL2;
+extern volatile far  struct {
+  unsigned FIL8_0:1;
+  unsigned FIL8_1:1;
+  unsigned FIL9_0:1;
+  unsigned FIL9_1:1;
+  unsigned FIL10_0:1;
+  unsigned FIL10_1:1;
+  unsigned FIL11_0:1;
+  unsigned FIL11_1:1;
+} MSEL2bits;
+extern volatile far  unsigned char       MSEL3;
+extern volatile far  struct {
+  unsigned FIL12_0:1;
+  unsigned FIL12_1:1;
+  unsigned FIL13_0:1;
+  unsigned FIL13_1:1;
+  unsigned FIL14_0:1;
+  unsigned FIL14_1:1;
+  unsigned FIL15_0:1;
+  unsigned FIL15_1:1;
+} MSEL3bits;
+extern volatile far  unsigned char       BSEL0;
+extern volatile far  struct {
+  unsigned :2;
+  unsigned B0TXEN:1;
+  unsigned B1TXEN:1;
+  unsigned B2TXEN:1;
+  unsigned B3TXEN:1;
+  unsigned B4TXEN:1;
+  unsigned B5TXEN:1;
+} BSEL0bits;
+extern volatile far  unsigned char       BIE0;
+extern volatile far  struct {
+  unsigned RXB0IE:1;
+  unsigned RXB1IE:1;
+  unsigned B0IE:1;
+  unsigned B1IE:1;
+  unsigned B2IE:1;
+  unsigned B3IE:1;
+  unsigned B4IE:1;
+  unsigned B5IE:1;
+} BIE0bits;
+extern volatile far  unsigned char       TXBIE;
+extern volatile far  struct {
+  unsigned :2;
+  unsigned TXB0IE:1;
+  unsigned TXB1IE:1;
+  unsigned TXB2IE:1;
+} TXBIEbits;
+extern volatile far  unsigned char       B0CON;
+extern volatile far  union {
+  struct {
+    unsigned FILHIT0:1;
+    unsigned FILHIT1:1;
+    unsigned FILHIT2:1;
+    unsigned FILHIT3:1;
+    unsigned FILHIT4:1;
+    unsigned RTRRO:1;
+    unsigned RXM1:1;
+    unsigned RXFUL:1;
+  };
+  struct {
+    unsigned TXPRI0:1;
+    unsigned TXPRI1:1;
+    unsigned RTREN:1;
+    unsigned TXREQ:1;
+    unsigned TXERR:1;
+    unsigned TXLARB:1;
+    unsigned TXABT:1;
+    unsigned TXBIF:1;
+  };
+  struct {
+    unsigned :5;
+    unsigned RXRTRRO:1;
+  };
+} B0CONbits;
+extern volatile far  unsigned char       B0SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} B0SIDHbits;
+extern volatile far  unsigned char       B0SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXID:1;
+    unsigned SRR:1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDE:1;
+  };
+} B0SIDLbits;
+extern volatile far  unsigned char       B0EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} B0EIDHbits;
+extern volatile far  unsigned char       B0EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} B0EIDLbits;
+extern volatile far  unsigned char       B0DLC;
+extern volatile far  union {
+  struct {
+    unsigned DLC0:1;
+    unsigned DLC1:1;
+    unsigned DLC2:1;
+    unsigned DLC3:1;
+    unsigned RESRB0:1;
+    unsigned RESRB1:1;
+    unsigned RXRTR:1;
+  };
+  struct {
+    unsigned :6;
+    unsigned TXRTR:1;
+  };
+  struct {
+    unsigned :4;
+    unsigned RB0:1;
+    unsigned RB1:1;
+  };
+} B0DLCbits;
+extern volatile far  unsigned char       B0D0;
+extern volatile far  struct {
+  unsigned B0D00:1;
+  unsigned B0D01:1;
+  unsigned B0D02:1;
+  unsigned B0D03:1;
+  unsigned B0D04:1;
+  unsigned B0D05:1;
+  unsigned B0D06:1;
+  unsigned B0D07:1;
+} B0D0bits;
+extern volatile far  unsigned char       B0D1;
+extern volatile far  struct {
+  unsigned B0D10:1;
+  unsigned B0D11:1;
+  unsigned B0D12:1;
+  unsigned B0D13:1;
+  unsigned B0D14:1;
+  unsigned B0D15:1;
+  unsigned B0D16:1;
+  unsigned B0D17:1;
+} B0D1bits;
+extern volatile far  unsigned char       B0D2;
+extern volatile far  struct {
+  unsigned B0D20:1;
+  unsigned B0D21:1;
+  unsigned B0D22:1;
+  unsigned B0D23:1;
+  unsigned B0D24:1;
+  unsigned B0D25:1;
+  unsigned B0D26:1;
+  unsigned B0D27:1;
+} B0D2bits;
+extern volatile far  unsigned char       B0D3;
+extern volatile far  struct {
+  unsigned B0D30:1;
+  unsigned B0D31:1;
+  unsigned B0D32:1;
+  unsigned B0D33:1;
+  unsigned B0D34:1;
+  unsigned B0D35:1;
+  unsigned B0D36:1;
+  unsigned B0D37:1;
+} B0D3bits;
+extern volatile far  unsigned char       B0D4;
+extern volatile far  struct {
+  unsigned B0D40:1;
+  unsigned B0D41:1;
+  unsigned B0D42:1;
+  unsigned B0D43:1;
+  unsigned B0D44:1;
+  unsigned B0D45:1;
+  unsigned B0D46:1;
+  unsigned B0D47:1;
+} B0D4bits;
+extern volatile far  unsigned char       B0D5;
+extern volatile far  struct {
+  unsigned B0D50:1;
+  unsigned B0D51:1;
+  unsigned B0D52:1;
+  unsigned B0D53:1;
+  unsigned B0D54:1;
+  unsigned B0D55:1;
+  unsigned B0D56:1;
+  unsigned B0D57:1;
+} B0D5bits;
+extern volatile far  unsigned char       B0D6;
+extern volatile far  struct {
+  unsigned B0D60:1;
+  unsigned B0D61:1;
+  unsigned B0D62:1;
+  unsigned B0D63:1;
+  unsigned B0D64:1;
+  unsigned B0D65:1;
+  unsigned B0D66:1;
+  unsigned B0D67:1;
+} B0D6bits;
+extern volatile far  unsigned char       B0D7;
+extern volatile far  struct {
+  unsigned B0D70:1;
+  unsigned B0D71:1;
+  unsigned B0D72:1;
+  unsigned B0D73:1;
+  unsigned B0D74:1;
+  unsigned B0D75:1;
+  unsigned B0D76:1;
+  unsigned B0D77:1;
+} B0D7bits;
+extern volatile far  unsigned char       CANSTAT_RO9;
+extern volatile far  struct {
+  unsigned ICODE0:1;
+  unsigned ICODE1:1;
+  unsigned ICODE2:1;
+  unsigned ICODE3:1;
+  unsigned ICODE4:1;
+  unsigned OPMODE:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANSTAT_RO9bits;
+extern volatile far  unsigned char       CANCON_RO9;
+extern volatile far  struct {
+  unsigned :1;
+  unsigned WIN0:1;
+  unsigned WIN1:1;
+  unsigned WIN2:1;
+  unsigned ABAT:1;
+  unsigned REQOP0:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANCON_RO9bits;
+extern volatile far  unsigned char       B1CON;
+extern volatile far  union {
+  struct {
+    unsigned FILHIT0:1;
+    unsigned FILHIT1:1;
+    unsigned FILHIT2:1;
+    unsigned FILHIT3:1;
+    unsigned FILHIT4:1;
+    unsigned RTRRO:1;
+    unsigned RXM1:1;
+    unsigned RXFUL:1;
+  };
+  struct {
+    unsigned TXPRI0:1;
+    unsigned TXPRI1:1;
+    unsigned RTREN:1;
+    unsigned TXREQ:1;
+    unsigned TXERR:1;
+    unsigned TXLARB:1;
+    unsigned TXABT:1;
+    unsigned TXBIF:1;
+  };
+  struct {
+    unsigned :5;
+    unsigned RXRTRRO:1;
+  };
+} B1CONbits;
+extern volatile far  unsigned char       B1SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} B1SIDHbits;
+extern volatile far  unsigned char       B1SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXID:1;
+    unsigned SRR:1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDE:1;
+  };
+} B1SIDLbits;
+extern volatile far  unsigned char       B1EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} B1EIDHbits;
+extern volatile far  unsigned char       B1EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} B1EIDLbits;
+extern volatile far  unsigned char       B1DLC;
+extern volatile far  union {
+  struct {
+    unsigned DLC0:1;
+    unsigned DLC1:1;
+    unsigned DLC2:1;
+    unsigned DLC3:1;
+    unsigned RESRB0:1;
+    unsigned RESRB1:1;
+    unsigned RXRTR:1;
+  };
+  struct {
+    unsigned :4;
+    unsigned RB0:1;
+    unsigned RB1:1;
+  };
+  struct {
+    unsigned :6;
+    unsigned TXRTR:1;
+  };
+} B1DLCbits;
+extern volatile far  unsigned char       B1D0;
+extern volatile far  struct {
+  unsigned B1D00:1;
+  unsigned B1D01:1;
+  unsigned B1D02:1;
+  unsigned B1D03:1;
+  unsigned B1D04:1;
+  unsigned B1D05:1;
+  unsigned B1D06:1;
+  unsigned B1D07:1;
+} B1D0bits;
+extern volatile far  unsigned char       B1D1;
+extern volatile far  struct {
+  unsigned B1D10:1;
+  unsigned B1D11:1;
+  unsigned B1D12:1;
+  unsigned B1D13:1;
+  unsigned B1D14:1;
+  unsigned B1D15:1;
+  unsigned B1D16:1;
+  unsigned B1D17:1;
+} B1D1bits;
+extern volatile far  unsigned char       B1D2;
+extern volatile far  struct {
+  unsigned B1D20:1;
+  unsigned B1D21:1;
+  unsigned B1D22:1;
+  unsigned B1D23:1;
+  unsigned B1D24:1;
+  unsigned B1D25:1;
+  unsigned B1D26:1;
+  unsigned B1D27:1;
+} B1D2bits;
+extern volatile far  unsigned char       B1D3;
+extern volatile far  struct {
+  unsigned B1D30:1;
+  unsigned B1D31:1;
+  unsigned B1D32:1;
+  unsigned B1D33:1;
+  unsigned B1D34:1;
+  unsigned B1D35:1;
+  unsigned B1D36:1;
+  unsigned B1D37:1;
+} B1D3bits;
+extern volatile far  unsigned char       B1D4;
+extern volatile far  struct {
+  unsigned B1D40:1;
+  unsigned B1D41:1;
+  unsigned B1D42:1;
+  unsigned B1D43:1;
+  unsigned B1D44:1;
+  unsigned B1D45:1;
+  unsigned B1D46:1;
+  unsigned B1D47:1;
+} B1D4bits;
+extern volatile far  unsigned char       B1D5;
+extern volatile far  struct {
+  unsigned B1D50:1;
+  unsigned B1D51:1;
+  unsigned B1D52:1;
+  unsigned B1D53:1;
+  unsigned B1D54:1;
+  unsigned B1D55:1;
+  unsigned B1D56:1;
+  unsigned B1D57:1;
+} B1D5bits;
+extern volatile far  unsigned char       B1D6;
+extern volatile far  struct {
+  unsigned B1D60:1;
+  unsigned B1D61:1;
+  unsigned B1D62:1;
+  unsigned B1D63:1;
+  unsigned B1D64:1;
+  unsigned B1D65:1;
+  unsigned B1D66:1;
+  unsigned B1D67:1;
+} B1D6bits;
+extern volatile far  unsigned char       B1D7;
+extern volatile far  struct {
+  unsigned B1D70:1;
+  unsigned B1D71:1;
+  unsigned B1D72:1;
+  unsigned B1D73:1;
+  unsigned B1D74:1;
+  unsigned B1D75:1;
+  unsigned B1D76:1;
+  unsigned B1D77:1;
+} B1D7bits;
+extern volatile far  unsigned char       CANSTAT_RO8;
+extern volatile far  struct {
+  unsigned ICODE0:1;
+  unsigned ICODE1:1;
+  unsigned ICODE2:1;
+  unsigned ICODE3:1;
+  unsigned ICODE4:1;
+  unsigned OPMODE:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANSTAT_RO8bits;
+extern volatile far  unsigned char       CANCON_RO8;
+extern volatile far  struct {
+  unsigned :1;
+  unsigned WIN0:1;
+  unsigned WIN1:1;
+  unsigned WIN2:1;
+  unsigned ABAT:1;
+  unsigned REQOP0:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANCON_RO8bits;
+extern volatile far  unsigned char       B2CON;
+extern volatile far  union {
+  struct {
+    unsigned FILHIT0:1;
+    unsigned FILHIT1:1;
+    unsigned FILHIT2:1;
+    unsigned FILHIT3:1;
+    unsigned FILHIT4:1;
+    unsigned RTRRO:1;
+    unsigned RXM1:1;
+    unsigned RXFUL:1;
+  };
+  struct {
+    unsigned TXPRI0:1;
+    unsigned TXPRI1:1;
+    unsigned RTREN:1;
+    unsigned TXREQ:1;
+    unsigned TXERR:1;
+    unsigned TXLARB:1;
+    unsigned TXABT:1;
+    unsigned TXBIF:1;
+  };
+  struct {
+    unsigned :5;
+    unsigned RXRTRRO:1;
+  };
+} B2CONbits;
+extern volatile far  unsigned char       B2SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} B2SIDHbits;
+extern volatile far  unsigned char       B2SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXID:1;
+    unsigned SRR:1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDE:1;
+  };
+} B2SIDLbits;
+extern volatile far  unsigned char       B2EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} B2EIDHbits;
+extern volatile far  unsigned char       B2EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} B2EIDLbits;
+extern volatile far  unsigned char       B2DLC;
+extern volatile far  union {
+  struct {
+    unsigned DLC0:1;
+    unsigned DLC1:1;
+    unsigned DLC2:1;
+    unsigned DLC3:1;
+    unsigned RESRB0:1;
+    unsigned RESRB1:1;
+    unsigned RXRTR:1;
+  };
+  struct {
+    unsigned :6;
+    unsigned TXRTR:1;
+  };
+  struct {
+    unsigned :4;
+    unsigned RB0:1;
+    unsigned RB1:1;
+  };
+} B2DLCbits;
+extern volatile far  unsigned char       B2D0;
+extern volatile far  struct {
+  unsigned B2D00:1;
+  unsigned B2D01:1;
+  unsigned B2D02:1;
+  unsigned B2D03:1;
+  unsigned B2D04:1;
+  unsigned B2D05:1;
+  unsigned B2D06:1;
+  unsigned B2D07:1;
+} B2D0bits;
+extern volatile far  unsigned char       B2D1;
+extern volatile far  struct {
+  unsigned B2D10:1;
+  unsigned B2D11:1;
+  unsigned B2D12:1;
+  unsigned B2D13:1;
+  unsigned B2D14:1;
+  unsigned B2D15:1;
+  unsigned B2D16:1;
+  unsigned B2D17:1;
+} B2D1bits;
+extern volatile far  unsigned char       B2D2;
+extern volatile far  struct {
+  unsigned B2D20:1;
+  unsigned B2D21:1;
+  unsigned B2D22:1;
+  unsigned B2D23:1;
+  unsigned B2D24:1;
+  unsigned B2D25:1;
+  unsigned B2D26:1;
+  unsigned B2D27:1;
+} B2D2bits;
+extern volatile far  unsigned char       B2D3;
+extern volatile far  struct {
+  unsigned B2D30:1;
+  unsigned B2D31:1;
+  unsigned B2D32:1;
+  unsigned B2D33:1;
+  unsigned B2D34:1;
+  unsigned B2D35:1;
+  unsigned B2D36:1;
+  unsigned B2D37:1;
+} B2D3bits;
+extern volatile far  unsigned char       B2D4;
+extern volatile far  struct {
+  unsigned B2D40:1;
+  unsigned B2D41:1;
+  unsigned B2D42:1;
+  unsigned B2D43:1;
+  unsigned B2D44:1;
+  unsigned B2D45:1;
+  unsigned B2D46:1;
+  unsigned B2D47:1;
+} B2D4bits;
+extern volatile far  unsigned char       B2D5;
+extern volatile far  struct {
+  unsigned B2D50:1;
+  unsigned B2D51:1;
+  unsigned B2D52:1;
+  unsigned B2D53:1;
+  unsigned B2D54:1;
+  unsigned B2D55:1;
+  unsigned B2D56:1;
+  unsigned B2D57:1;
+} B2D5bits;
+extern volatile far  unsigned char       B2D6;
+extern volatile far  struct {
+  unsigned B2D60:1;
+  unsigned B2D61:1;
+  unsigned B2D62:1;
+  unsigned B2D63:1;
+  unsigned B2D64:1;
+  unsigned B2D65:1;
+  unsigned B2D66:1;
+  unsigned B2D67:1;
+} B2D6bits;
+extern volatile far  unsigned char       B2D7;
+extern volatile far  struct {
+  unsigned B2D70:1;
+  unsigned B2D71:1;
+  unsigned B2D72:1;
+  unsigned B2D73:1;
+  unsigned B2D74:1;
+  unsigned B2D75:1;
+  unsigned B2D76:1;
+  unsigned B2D77:1;
+} B2D7bits;
+extern volatile far  unsigned char       CANSTAT_RO7;
+extern volatile far  struct {
+  unsigned ICODE0:1;
+  unsigned ICODE1:1;
+  unsigned ICODE2:1;
+  unsigned ICODE3:1;
+  unsigned ICODE4:1;
+  unsigned OPMODE:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANSTAT_RO7bits;
+extern volatile far  unsigned char       CANCON_RO7;
+extern volatile far  struct {
+  unsigned :1;
+  unsigned WIN0:1;
+  unsigned WIN1:1;
+  unsigned WIN2:1;
+  unsigned ABAT:1;
+  unsigned REQOP0:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANCON_RO7bits;
+extern volatile far  unsigned char       B3CON;
+extern volatile far  union {
+  struct {
+    unsigned FILHIT0:1;
+    unsigned FILHIT1:1;
+    unsigned FILHIT2:1;
+    unsigned FILHIT3:1;
+    unsigned FILHIT4:1;
+    unsigned RTRRO:1;
+    unsigned RXM1:1;
+    unsigned RXFUL:1;
+  };
+  struct {
+    unsigned TXPRI0:1;
+    unsigned TXPRI1:1;
+    unsigned RTREN:1;
+    unsigned TXREQ:1;
+    unsigned TXERR:1;
+    unsigned TXLARB:1;
+    unsigned TXABT:1;
+    unsigned TXBIF:1;
+  };
+  struct {
+    unsigned :5;
+    unsigned RXRTRRO:1;
+  };
+} B3CONbits;
+extern volatile far  unsigned char       B3SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} B3SIDHbits;
+extern volatile far  unsigned char       B3SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXID:1;
+    unsigned SRR:1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDE:1;
+  };
+} B3SIDLbits;
+extern volatile far  unsigned char       B3EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} B3EIDHbits;
+extern volatile far  unsigned char       B3EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} B3EIDLbits;
+extern volatile far  unsigned char       B3DLC;
+extern volatile far  union {
+  struct {
+    unsigned DLC0:1;
+    unsigned DLC1:1;
+    unsigned DLC2:1;
+    unsigned DLC3:1;
+    unsigned RESRB0:1;
+    unsigned RESRB1:1;
+    unsigned RXRTR:1;
+  };
+  struct {
+    unsigned :6;
+    unsigned TXRTR:1;
+  };
+  struct {
+    unsigned :4;
+    unsigned RB0:1;
+    unsigned RB1:1;
+  };
+} B3DLCbits;
+extern volatile far  unsigned char       B3D0;
+extern volatile far  struct {
+  unsigned B3D00:1;
+  unsigned B3D01:1;
+  unsigned B3D02:1;
+  unsigned B3D03:1;
+  unsigned B3D04:1;
+  unsigned B3D05:1;
+  unsigned B3D06:1;
+  unsigned B3D07:1;
+} B3D0bits;
+extern volatile far  unsigned char       B3D1;
+extern volatile far  struct {
+  unsigned B3D10:1;
+  unsigned B3D11:1;
+  unsigned B3D12:1;
+  unsigned B3D13:1;
+  unsigned B3D14:1;
+  unsigned B3D15:1;
+  unsigned B3D16:1;
+  unsigned B3D17:1;
+} B3D1bits;
+extern volatile far  unsigned char       B3D2;
+extern volatile far  struct {
+  unsigned B3D20:1;
+  unsigned B3D21:1;
+  unsigned B3D22:1;
+  unsigned B3D23:1;
+  unsigned B3D24:1;
+  unsigned B3D25:1;
+  unsigned B3D26:1;
+  unsigned B3D27:1;
+} B3D2bits;
+extern volatile far  unsigned char       B3D3;
+extern volatile far  struct {
+  unsigned B3D30:1;
+  unsigned B3D31:1;
+  unsigned B3D32:1;
+  unsigned B3D33:1;
+  unsigned B3D34:1;
+  unsigned B3D35:1;
+  unsigned B3D36:1;
+  unsigned B3D37:1;
+} B3D3bits;
+extern volatile far  unsigned char       B3D4;
+extern volatile far  struct {
+  unsigned B3D40:1;
+  unsigned B3D41:1;
+  unsigned B3D42:1;
+  unsigned B3D43:1;
+  unsigned B3D44:1;
+  unsigned B3D45:1;
+  unsigned B3D46:1;
+  unsigned B3D47:1;
+} B3D4bits;
+extern volatile far  unsigned char       B3D5;
+extern volatile far  struct {
+  unsigned B3D50:1;
+  unsigned B3D51:1;
+  unsigned B3D52:1;
+  unsigned B3D53:1;
+  unsigned B3D54:1;
+  unsigned B3D55:1;
+  unsigned B3D56:1;
+  unsigned B3D57:1;
+} B3D5bits;
+extern volatile far  unsigned char       B3D6;
+extern volatile far  struct {
+  unsigned B3D60:1;
+  unsigned B3D61:1;
+  unsigned B3D62:1;
+  unsigned B3D63:1;
+  unsigned B3D64:1;
+  unsigned B3D65:1;
+  unsigned B3D66:1;
+  unsigned B3D67:1;
+} B3D6bits;
+extern volatile far  unsigned char       B3D7;
+extern volatile far  struct {
+  unsigned B3D70:1;
+  unsigned B3D71:1;
+  unsigned B3D72:1;
+  unsigned B3D73:1;
+  unsigned B3D74:1;
+  unsigned B3D75:1;
+  unsigned B3D76:1;
+  unsigned B3D77:1;
+} B3D7bits;
+extern volatile far  unsigned char       CANSTAT_RO6;
+extern volatile far  struct {
+  unsigned ICODE0:1;
+  unsigned ICODE1:1;
+  unsigned ICODE2:1;
+  unsigned ICODE3:1;
+  unsigned ICODE4:1;
+  unsigned OPMODE:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANSTAT_RO6bits;
+extern volatile far  unsigned char       CANCON_RO6;
+extern volatile far  struct {
+  unsigned :1;
+  unsigned WIN0:1;
+  unsigned WIN1:1;
+  unsigned WIN2:1;
+  unsigned ABAT:1;
+  unsigned REQOP0:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANCON_RO6bits;
+extern volatile far  unsigned char       B4CON;
+extern volatile far  union {
+  struct {
+    unsigned FILHIT0:1;
+    unsigned FILHIT1:1;
+    unsigned FILHIT2:1;
+    unsigned FILHIT3:1;
+    unsigned FILHIT4:1;
+    unsigned RTRRO:1;
+    unsigned RXM1:1;
+    unsigned RXFUL:1;
+  };
+  struct {
+    unsigned TXPRI0:1;
+    unsigned TXPRI1:1;
+    unsigned RTREN:1;
+    unsigned TXREQ:1;
+    unsigned TXERR:1;
+    unsigned TXLARB:1;
+    unsigned TXABT:1;
+    unsigned TXBIF:1;
+  };
+  struct {
+    unsigned :5;
+    unsigned RXRTRRO:1;
+  };
+} B4CONbits;
+extern volatile far  unsigned char       B4SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} B4SIDHbits;
+extern volatile far  unsigned char       B4SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXID:1;
+    unsigned SRR:1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDE:1;
+  };
+} B4SIDLbits;
+extern volatile far  unsigned char       B4EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} B4EIDHbits;
+extern volatile far  unsigned char       B4EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} B4EIDLbits;
+extern volatile far  unsigned char       B4DLC;
+extern volatile far  union {
+  struct {
+    unsigned DLC0:1;
+    unsigned DLC1:1;
+    unsigned DLC2:1;
+    unsigned DLC3:1;
+    unsigned RESRB0:1;
+    unsigned RESRB1:1;
+    unsigned RXRTR:1;
+  };
+  struct {
+    unsigned :6;
+    unsigned TXRTR:1;
+  };
+  struct {
+    unsigned :4;
+    unsigned RB0:1;
+    unsigned RB1:1;
+  };
+} B4DLCbits;
+extern volatile far  unsigned char       B4D0;
+extern volatile far  struct {
+  unsigned B4D00:1;
+  unsigned B4D01:1;
+  unsigned B4D02:1;
+  unsigned B4D03:1;
+  unsigned B4D04:1;
+  unsigned B4D05:1;
+  unsigned B4D06:1;
+  unsigned B4D07:1;
+} B4D0bits;
+extern volatile far  unsigned char       B4D1;
+extern volatile far  struct {
+  unsigned B4D10:1;
+  unsigned B4D11:1;
+  unsigned B4D12:1;
+  unsigned B4D13:1;
+  unsigned B4D14:1;
+  unsigned B4D15:1;
+  unsigned B4D16:1;
+  unsigned B4D17:1;
+} B4D1bits;
+extern volatile far  unsigned char       B4D2;
+extern volatile far  struct {
+  unsigned B4D20:1;
+  unsigned B4D21:1;
+  unsigned B4D22:1;
+  unsigned B4D23:1;
+  unsigned B4D24:1;
+  unsigned B4D25:1;
+  unsigned B4D26:1;
+  unsigned B4D27:1;
+} B4D2bits;
+extern volatile far  unsigned char       B4D3;
+extern volatile far  struct {
+  unsigned B4D30:1;
+  unsigned B4D31:1;
+  unsigned B4D32:1;
+  unsigned B4D33:1;
+  unsigned B4D34:1;
+  unsigned B4D35:1;
+  unsigned B4D36:1;
+  unsigned B4D37:1;
+} B4D3bits;
+extern volatile far  unsigned char       B4D4;
+extern volatile far  struct {
+  unsigned B4D40:1;
+  unsigned B4D41:1;
+  unsigned B4D42:1;
+  unsigned B4D43:1;
+  unsigned B4D44:1;
+  unsigned B4D45:1;
+  unsigned B4D46:1;
+  unsigned B4D47:1;
+} B4D4bits;
+extern volatile far  unsigned char       B4D5;
+extern volatile far  struct {
+  unsigned B4D50:1;
+  unsigned B4D51:1;
+  unsigned B4D52:1;
+  unsigned B4D53:1;
+  unsigned B4D54:1;
+  unsigned B4D55:1;
+  unsigned B4D56:1;
+  unsigned B4D57:1;
+} B4D5bits;
+extern volatile far  unsigned char       B4D6;
+extern volatile far  struct {
+  unsigned B4D60:1;
+  unsigned B4D61:1;
+  unsigned B4D62:1;
+  unsigned B4D63:1;
+  unsigned B4D64:1;
+  unsigned B4D65:1;
+  unsigned B4D66:1;
+  unsigned B4D67:1;
+} B4D6bits;
+extern volatile far  unsigned char       B4D7;
+extern volatile far  union {
+  struct {
+    unsigned B4D70:1;
+    unsigned B4D71:1;
+    unsigned B4D72:1;
+    unsigned B4D73:1;
+    unsigned B4D74:1;
+    unsigned B4D75:1;
+    unsigned B4D76:1;
+    unsigned B46D77:1;
+  };
+  struct {
+    unsigned :7;
+    unsigned B4D77:1;
+  };
+} B4D7bits;
+extern volatile far  unsigned char       CANSTAT_RO5;
+extern volatile far  struct {
+  unsigned ICODE0:1;
+  unsigned ICODE1:1;
+  unsigned ICODE2:1;
+  unsigned ICODE3:1;
+  unsigned ICODE4:1;
+  unsigned OPMODE:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANSTAT_RO5bits;
+extern volatile far  unsigned char       CANCON_RO5;
+extern volatile far  struct {
+  unsigned :1;
+  unsigned WIN0:1;
+  unsigned WIN1:1;
+  unsigned WIN2:1;
+  unsigned ABAT:1;
+  unsigned REQOP0:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANCON_RO5bits;
+extern volatile far  unsigned char       B5CON;
+extern volatile far  union {
+  struct {
+    unsigned FILHIT0:1;
+    unsigned FILHIT1:1;
+    unsigned FILHIT2:1;
+    unsigned FILHIT3:1;
+    unsigned FILHIT4:1;
+    unsigned RTRRO:1;
+    unsigned RXM1:1;
+    unsigned RXFUL:1;
+  };
+  struct {
+    unsigned TXPRI0:1;
+    unsigned TXPRI1:1;
+    unsigned RTREN:1;
+    unsigned TXREQ:1;
+    unsigned TXERR:1;
+    unsigned TXLARB:1;
+    unsigned TXABT:1;
+    unsigned TXBIF:1;
+  };
+  struct {
+    unsigned :5;
+    unsigned RXRTRRO:1;
+  };
+} B5CONbits;
+extern volatile far  unsigned char       B5SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} B5SIDHbits;
+extern volatile far  unsigned char       B5SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXID:1;
+    unsigned SRR:1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} B5SIDLbits;
+extern volatile far  unsigned char       B5EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} B5EIDHbits;
+extern volatile far  unsigned char       B5EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} B5EIDLbits;
+extern volatile far  unsigned char       B5DLC;
+extern volatile far  union {
+  struct {
+    unsigned DLC0:1;
+    unsigned DLC1:1;
+    unsigned DLC2:1;
+    unsigned DLC3:1;
+    unsigned RESRB0:1;
+    unsigned RESRB1:1;
+    unsigned RXRTR:1;
+  };
+  struct {
+    unsigned :4;
+    unsigned RB0:1;
+    unsigned RB1:1;
+  };
+} B5DLCbits;
+extern volatile far  unsigned char       B5D0;
+extern volatile far  union {
+  struct {
+    unsigned B5D00:1;
+    unsigned B5D01:1;
+    unsigned B5D02:1;
+    unsigned B5D03:1;
+    unsigned B5D04:1;
+    unsigned B5D05:1;
+    unsigned B5D06:1;
+    unsigned B57D07:1;
+  };
+  struct {
+    unsigned :7;
+    unsigned B5D07:1;
+  };
+} B5D0bits;
+extern volatile far  unsigned char       B5D1;
+extern volatile far  struct {
+  unsigned B5D10:1;
+  unsigned B5D11:1;
+  unsigned B5D12:1;
+  unsigned B5D13:1;
+  unsigned B5D14:1;
+  unsigned B5D15:1;
+  unsigned B5D16:1;
+  unsigned B5D17:1;
+} B5D1bits;
+extern volatile far  unsigned char       B5D2;
+extern volatile far  union {
+  struct {
+    unsigned B5D20:1;
+    unsigned B5D21:1;
+    unsigned B5D22:1;
+    unsigned B57D23:1;
+    unsigned B5D24:1;
+    unsigned B5D25:1;
+    unsigned B5D26:1;
+    unsigned B5D27:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned B5D23:1;
+  };
+} B5D2bits;
+extern volatile far  unsigned char       B5D3;
+extern volatile far  struct {
+  unsigned B5D30:1;
+  unsigned B5D31:1;
+  unsigned B5D32:1;
+  unsigned B5D33:1;
+  unsigned B5D34:1;
+  unsigned B5D35:1;
+  unsigned B5D36:1;
+  unsigned B5D37:1;
+} B5D3bits;
+extern volatile far  unsigned char       B5D4;
+extern volatile far  struct {
+  unsigned B5D40:1;
+  unsigned B5D41:1;
+  unsigned B5D42:1;
+  unsigned B5D43:1;
+  unsigned B5D44:1;
+  unsigned B5D45:1;
+  unsigned B5D46:1;
+  unsigned B5D47:1;
+} B5D4bits;
+extern volatile far  unsigned char       B5D5;
+extern volatile far  struct {
+  unsigned B5D50:1;
+  unsigned B5D51:1;
+  unsigned B5D52:1;
+  unsigned B5D53:1;
+  unsigned B5D54:1;
+  unsigned B5D55:1;
+  unsigned B5D56:1;
+  unsigned B5D57:1;
+} B5D5bits;
+extern volatile far  unsigned char       B5D6;
+extern volatile far  struct {
+  unsigned B5D60:1;
+  unsigned B5D61:1;
+  unsigned B5D62:1;
+  unsigned B5D63:1;
+  unsigned B5D64:1;
+  unsigned B5D65:1;
+  unsigned B5D66:1;
+  unsigned B5D67:1;
+} B5D6bits;
+extern volatile far  unsigned char       B5D7;
+extern volatile far  struct {
+  unsigned B5D70:1;
+  unsigned B5D71:1;
+  unsigned B5D72:1;
+  unsigned B5D73:1;
+  unsigned B5D74:1;
+  unsigned B5D75:1;
+  unsigned B5D76:1;
+  unsigned B5D77:1;
+} B5D7bits;
+extern volatile far  unsigned char       CANSTAT_RO4;
+extern volatile far  struct {
+  unsigned ICODE0:1;
+  unsigned ICODE1:1;
+  unsigned ICODE2:1;
+  unsigned ICODE3:1;
+  unsigned ICODE4:1;
+  unsigned OPMODE:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANSTAT_RO4bits;
+extern volatile far  unsigned char       CANCON_RO4;
+extern volatile far  struct {
+  unsigned :1;
+  unsigned WIN0:1;
+  unsigned WIN1:1;
+  unsigned WIN2:1;
+  unsigned ABAT:1;
+  unsigned REQOP0:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANCON_RO4bits;
+extern volatile far  unsigned char       RXF0SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF0SIDHbits;
+extern volatile far  unsigned char       RXF0SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF0SIDLbits;
+extern volatile far  unsigned char       RXF0EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF0EIDHbits;
+extern volatile far  unsigned char       RXF0EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF0EIDLbits;
+extern volatile far  unsigned char       RXF1SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF1SIDHbits;
+extern volatile far  unsigned char       RXF1SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF1SIDLbits;
+extern volatile far  unsigned char       RXF1EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF1EIDHbits;
+extern volatile far  unsigned char       RXF1EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF1EIDLbits;
+extern volatile far  unsigned char       RXF2SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF2SIDHbits;
+extern volatile far  unsigned char       RXF2SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF2SIDLbits;
+extern volatile far  unsigned char       RXF2EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF2EIDHbits;
+extern volatile far  unsigned char       RXF2EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF2EIDLbits;
+extern volatile far  unsigned char       RXF3SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF3SIDHbits;
+extern volatile far  unsigned char       RXF3SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF3SIDLbits;
+extern volatile far  unsigned char       RXF3EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF3EIDHbits;
+extern volatile far  unsigned char       RXF3EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF3EIDLbits;
+extern volatile far  unsigned char       RXF4SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF4SIDHbits;
+extern volatile far  unsigned char       RXF4SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF4SIDLbits;
+extern volatile far  unsigned char       RXF4EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF4EIDHbits;
+extern volatile far  unsigned char       RXF4EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF4EIDLbits;
+extern volatile far  unsigned char       RXF5SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXF5SIDHbits;
+extern volatile far  unsigned char       RXF5SIDL;
+extern volatile far  union {
+  struct {
+    unsigned EID16:1;
+    unsigned EID17:1;
+    unsigned :1;
+    unsigned EXIDE:1;
+    unsigned :1;
+    unsigned SID0:1;
+    unsigned SID1:1;
+    unsigned SID2:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned EXIDEN:1;
+  };
+} RXF5SIDLbits;
+extern volatile far  unsigned char       RXF5EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXF5EIDHbits;
+extern volatile far  unsigned char       RXF5EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXF5EIDLbits;
+extern volatile far  unsigned char       RXM0SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXM0SIDHbits;
+extern volatile far  unsigned char       RXM0SIDL;
+extern volatile far  struct {
+  unsigned EID16:1;
+  unsigned EID17:1;
+  unsigned :1;
+  unsigned EXIDEN:1;
+  unsigned :1;
+  unsigned SID0:1;
+  unsigned SID1:1;
+  unsigned SID2:1;
+} RXM0SIDLbits;
+extern volatile far  unsigned char       RXM0EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXM0EIDHbits;
+extern volatile far  unsigned char       RXM0EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXM0EIDLbits;
+extern volatile far  unsigned char       RXM1SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXM1SIDHbits;
+extern volatile far  unsigned char       RXM1SIDL;
+extern volatile far  struct {
+  unsigned EID16:1;
+  unsigned EID17:1;
+  unsigned :1;
+  unsigned EXIDEN:1;
+  unsigned :1;
+  unsigned SID0:1;
+  unsigned SID1:1;
+  unsigned SID2:1;
+} RXM1SIDLbits;
+extern volatile far  unsigned char       RXM1EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXM1EIDHbits;
+extern volatile far  unsigned char       RXM1EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXM1EIDLbits;
+extern volatile far  unsigned char       TXB2CON;
+extern volatile far  union {
+  struct {
+    unsigned TXPRI0:1;
+    unsigned TXPRI1:1;
+    unsigned :1;
+    unsigned TXREQ:1;
+    unsigned TXERR:1;
+    unsigned TXLARB:1;
+    unsigned TXABT:1;
+    unsigned TXBIFBXB2CON:1;
+  };
+  struct {
+    unsigned :7;
+    unsigned TXBIF:1;
+  };
+} TXB2CONbits;
+extern volatile far  unsigned char       TXB2SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} TXB2SIDHbits;
+extern volatile far  unsigned char       TXB2SIDL;
+extern volatile far  struct {
+  unsigned EID16:1;
+  unsigned EID17:1;
+  unsigned :1;
+  unsigned EXIDE:1;
+  unsigned :1;
+  unsigned SID0:1;
+  unsigned SID1:1;
+  unsigned SID2:1;
+} TXB2SIDLbits;
+extern volatile far  unsigned char       TXB2EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} TXB2EIDHbits;
+extern volatile far  unsigned char       TXB2EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} TXB2EIDLbits;
+extern volatile far  unsigned char       TXB2DLC;
+extern volatile far  struct {
+  unsigned DLC0:1;
+  unsigned DLC1:1;
+  unsigned DLC2:1;
+  unsigned DLC3:1;
+  unsigned :2;
+  unsigned TXRTR:1;
+} TXB2DLCbits;
+extern volatile far  unsigned char       TXB2D0;
+extern volatile far  struct {
+  unsigned TXB2D00:1;
+  unsigned TXB2D01:1;
+  unsigned TXB2D02:1;
+  unsigned TXB2D03:1;
+  unsigned TXB2D04:1;
+  unsigned TXB2D05:1;
+  unsigned TXB2D06:1;
+  unsigned TXB2D07:1;
+} TXB2D0bits;
+extern volatile far  unsigned char       TXB2D1;
+extern volatile far  struct {
+  unsigned TXB2D10:1;
+  unsigned TXB2D11:1;
+  unsigned TXB2D12:1;
+  unsigned TXB2D13:1;
+  unsigned TXB2D14:1;
+  unsigned TXB2D15:1;
+  unsigned TXB2D16:1;
+  unsigned TXB2D17:1;
+} TXB2D1bits;
+extern volatile far  unsigned char       TXB2D2;
+extern volatile far  struct {
+  unsigned TXB2D20:1;
+  unsigned TXB2D21:1;
+  unsigned TXB2D22:1;
+  unsigned TXB2D23:1;
+  unsigned TXB2D24:1;
+  unsigned TXB2D25:1;
+  unsigned TXB2D26:1;
+  unsigned TXB2D27:1;
+} TXB2D2bits;
+extern volatile far  unsigned char       TXB2D3;
+extern volatile far  struct {
+  unsigned TXB2D30:1;
+  unsigned TXB2D31:1;
+  unsigned TXB2D32:1;
+  unsigned TXB2D33:1;
+  unsigned TXB2D34:1;
+  unsigned TXB2D35:1;
+  unsigned TXB2D36:1;
+  unsigned TXB2D37:1;
+} TXB2D3bits;
+extern volatile far  unsigned char       TXB2D4;
+extern volatile far  struct {
+  unsigned TXB2D40:1;
+  unsigned TXB2D41:1;
+  unsigned TXB2D42:1;
+  unsigned TXB2D43:1;
+  unsigned TXB2D44:1;
+  unsigned TXB2D45:1;
+  unsigned TXB2D46:1;
+  unsigned TXB2D47:1;
+} TXB2D4bits;
+extern volatile far  unsigned char       TXB2D5;
+extern volatile far  struct {
+  unsigned TXB2D50:1;
+  unsigned TXB2D51:1;
+  unsigned TXB2D52:1;
+  unsigned TXB2D53:1;
+  unsigned TXB2D54:1;
+  unsigned TXB2D55:1;
+  unsigned TXB2D56:1;
+  unsigned TXB2D57:1;
+} TXB2D5bits;
+extern volatile far  unsigned char       TXB2D6;
+extern volatile far  struct {
+  unsigned TXB2D60:1;
+  unsigned TXB2D61:1;
+  unsigned TXB2D62:1;
+  unsigned TXB2D63:1;
+  unsigned TXB2D64:1;
+  unsigned TXB2D65:1;
+  unsigned TXB2D66:1;
+  unsigned TXB2D67:1;
+} TXB2D6bits;
+extern volatile far  unsigned char       TXB2D7;
+extern volatile far  struct {
+  unsigned TXB2D70:1;
+  unsigned TXB2D71:1;
+  unsigned TXB2D72:1;
+  unsigned TXB2D73:1;
+  unsigned TXB2D74:1;
+  unsigned TXB2D75:1;
+  unsigned TXB2D76:1;
+  unsigned TXB2D77:1;
+} TXB2D7bits;
+extern volatile far  unsigned char       CANSTAT_RO3;
+extern volatile far  struct {
+  unsigned ICODE0:1;
+  unsigned ICODE1:1;
+  unsigned ICODE2:1;
+  unsigned ICODE3:1;
+  unsigned ICODE4:1;
+  unsigned OPMODE:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANSTAT_RO3bits;
+extern volatile far  unsigned char       CANCON_RO3;
+extern volatile far  struct {
+  unsigned :1;
+  unsigned WIN0:1;
+  unsigned WIN1:1;
+  unsigned WIN2:1;
+  unsigned ABAT:1;
+  unsigned REQOP0:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANCON_RO3bits;
+extern volatile far  unsigned char       TXB1CON;
+extern volatile far  union {
+  struct {
+    unsigned TXPRI0:1;
+    unsigned TXPRI1:1;
+    unsigned :1;
+    unsigned TXREQ:1;
+    unsigned TXERR:1;
+    unsigned TXLARB:1;
+    unsigned TXABT:1;
+    unsigned TXBIFTXB1CON:1;
+  };
+  struct {
+    unsigned :7;
+    unsigned TXBIF:1;
+  };
+} TXB1CONbits;
+extern volatile far  unsigned char       TXB1SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} TXB1SIDHbits;
+extern volatile far  unsigned char       TXB1SIDL;
+extern volatile far  struct {
+  unsigned EID16:1;
+  unsigned EID17:1;
+  unsigned :1;
+  unsigned EXIDE:1;
+  unsigned :1;
+  unsigned SID0:1;
+  unsigned SID1:1;
+  unsigned SID2:1;
+} TXB1SIDLbits;
+extern volatile far  unsigned char       TXB1EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} TXB1EIDHbits;
+extern volatile far  unsigned char       TXB1EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} TXB1EIDLbits;
+extern volatile far  unsigned char       TXB1DLC;
+extern volatile far  struct {
+  unsigned DLC0:1;
+  unsigned DLC1:1;
+  unsigned DLC2:1;
+  unsigned DLC3:1;
+  unsigned :2;
+  unsigned TXRTR:1;
+} TXB1DLCbits;
+extern volatile far  unsigned char       TXB1D0;
+extern volatile far  struct {
+  unsigned TXB1D00:1;
+  unsigned TXB1D01:1;
+  unsigned TXB1D02:1;
+  unsigned TXB1D03:1;
+  unsigned TXB1D04:1;
+  unsigned TXB1D05:1;
+  unsigned TXB1D06:1;
+  unsigned TXB1D07:1;
+} TXB1D0bits;
+extern volatile far  unsigned char       TXB1D1;
+extern volatile far  struct {
+  unsigned TXB1D10:1;
+  unsigned TXB1D11:1;
+  unsigned TXB1D12:1;
+  unsigned TXB1D13:1;
+  unsigned TXB1D14:1;
+  unsigned TXB1D15:1;
+  unsigned TXB1D16:1;
+  unsigned TXB1D17:1;
+} TXB1D1bits;
+extern volatile far  unsigned char       TXB1D2;
+extern volatile far  struct {
+  unsigned TXB1D20:1;
+  unsigned TXB1D21:1;
+  unsigned TXB1D22:1;
+  unsigned TXB1D23:1;
+  unsigned TXB1D24:1;
+  unsigned TXB1D25:1;
+  unsigned TXB1D26:1;
+  unsigned TXB1D27:1;
+} TXB1D2bits;
+extern volatile far  unsigned char       TXB1D3;
+extern volatile far  struct {
+  unsigned TXB1D30:1;
+  unsigned TXB1D31:1;
+  unsigned TXB1D32:1;
+  unsigned TXB1D33:1;
+  unsigned TXB1D34:1;
+  unsigned TXB1D35:1;
+  unsigned TXB1D36:1;
+  unsigned TXB1D37:1;
+} TXB1D3bits;
+extern volatile far  unsigned char       TXB1D4;
+extern volatile far  struct {
+  unsigned TXB1D40:1;
+  unsigned TXB1D41:1;
+  unsigned TXB1D42:1;
+  unsigned TXB1D43:1;
+  unsigned TXB1D44:1;
+  unsigned TXB1D45:1;
+  unsigned TXB1D46:1;
+  unsigned TXB1D47:1;
+} TXB1D4bits;
+extern volatile far  unsigned char       TXB1D5;
+extern volatile far  struct {
+  unsigned TXB1D50:1;
+  unsigned TXB1D51:1;
+  unsigned TXB1D52:1;
+  unsigned TXB1D53:1;
+  unsigned TXB1D54:1;
+  unsigned TXB1D55:1;
+  unsigned TXB1D56:1;
+  unsigned TXB1D57:1;
+} TXB1D5bits;
+extern volatile far  unsigned char       TXB1D6;
+extern volatile far  struct {
+  unsigned TXB1D60:1;
+  unsigned TXB1D61:1;
+  unsigned TXB1D62:1;
+  unsigned TXB1D63:1;
+  unsigned TXB1D64:1;
+  unsigned TXB1D65:1;
+  unsigned TXB1D66:1;
+  unsigned TXB1D67:1;
+} TXB1D6bits;
+extern volatile far  unsigned char       TXB1D7;
+extern volatile far  struct {
+  unsigned TXB1D70:1;
+  unsigned TXB1D71:1;
+  unsigned TXB1D72:1;
+  unsigned TXB1D73:1;
+  unsigned TXB1D74:1;
+  unsigned TXB1D75:1;
+  unsigned TXB1D76:1;
+  unsigned TXB1D77:1;
+} TXB1D7bits;
+extern volatile far  unsigned char       CANSTAT_RO2;
+extern volatile far  struct {
+  unsigned ICODE0:1;
+  unsigned ICODE1:1;
+  unsigned ICODE2:1;
+  unsigned ICODE3:1;
+  unsigned ICODE4:1;
+  unsigned OPMODE:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANSTAT_RO2bits;
+extern volatile far  unsigned char       CANCON_RO2;
+extern volatile far  struct {
+  unsigned :1;
+  unsigned WIN0:1;
+  unsigned WIN1:1;
+  unsigned WIN2:1;
+  unsigned ABAT:1;
+  unsigned REQOP0:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANCON_RO2bits;
+extern volatile far  unsigned char       TXB0CON;
+extern volatile far  union {
+  struct {
+    unsigned TXPRI0:1;
+    unsigned TXPRI1:1;
+    unsigned :1;
+    unsigned TXREQ:1;
+    unsigned TXERR:1;
+    unsigned TXLARB:1;
+    unsigned TXABT:1;
+  };
+  struct {
+    unsigned :7;
+    unsigned TXBIF:1;
+  };
+} TXB0CONbits;
+extern volatile far  unsigned char       TXB0SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} TXB0SIDHbits;
+extern volatile far  unsigned char       TXB0SIDL;
+extern volatile far  struct {
+  unsigned EID16:1;
+  unsigned EID17:1;
+  unsigned :1;
+  unsigned EXIDE:1;
+  unsigned :1;
+  unsigned SID0:1;
+  unsigned SID1:1;
+  unsigned SID2:1;
+} TXB0SIDLbits;
+extern volatile far  unsigned char       TXB0EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} TXB0EIDHbits;
+extern volatile far  unsigned char       TXB0EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} TXB0EIDLbits;
+extern volatile far  unsigned char       TXB0DLC;
+extern volatile far  struct {
+  unsigned DLC0:1;
+  unsigned DLC1:1;
+  unsigned DLC2:1;
+  unsigned DLC3:1;
+  unsigned :2;
+  unsigned TXRTR:1;
+} TXB0DLCbits;
+extern volatile far  unsigned char       TXB0D0;
+extern volatile far  struct {
+  unsigned TXB0D00:1;
+  unsigned TXB0D01:1;
+  unsigned TXB0D02:1;
+  unsigned TXB0D03:1;
+  unsigned TXB0D04:1;
+  unsigned TXB0D05:1;
+  unsigned TXB0D06:1;
+  unsigned TXB0D07:1;
+} TXB0D0bits;
+extern volatile far  unsigned char       TXB0D1;
+extern volatile far  struct {
+  unsigned TXB0D10:1;
+  unsigned TXB0D11:1;
+  unsigned TXB0D12:1;
+  unsigned TXB0D13:1;
+  unsigned TXB0D14:1;
+  unsigned TXB0D15:1;
+  unsigned TXB0D16:1;
+  unsigned TXB0D17:1;
+} TXB0D1bits;
+extern volatile far  unsigned char       TXB0D2;
+extern volatile far  struct {
+  unsigned TXB0D20:1;
+  unsigned TXB0D21:1;
+  unsigned TXB0D22:1;
+  unsigned TXB0D23:1;
+  unsigned TXB0D24:1;
+  unsigned TXB0D25:1;
+  unsigned TXB0D26:1;
+  unsigned TXB0D27:1;
+} TXB0D2bits;
+extern volatile far  unsigned char       TXB0D3;
+extern volatile far  struct {
+  unsigned TXB0D30:1;
+  unsigned TXB0D31:1;
+  unsigned TXB0D32:1;
+  unsigned TXB0D33:1;
+  unsigned TXB0D34:1;
+  unsigned TXB0D35:1;
+  unsigned TXB0D36:1;
+  unsigned TXB0D37:1;
+} TXB0D3bits;
+extern volatile far  unsigned char       TXB0D4;
+extern volatile far  struct {
+  unsigned TXB0D40:1;
+  unsigned TXB0D41:1;
+  unsigned TXB0D42:1;
+  unsigned TXB0D43:1;
+  unsigned TXB0D44:1;
+  unsigned TXB0D45:1;
+  unsigned TXB0D46:1;
+  unsigned TXB0D47:1;
+} TXB0D4bits;
+extern volatile far  unsigned char       TXB0D5;
+extern volatile far  struct {
+  unsigned TXB0D50:1;
+  unsigned TXB0D51:1;
+  unsigned TXB0D52:1;
+  unsigned TXB0D53:1;
+  unsigned TXB0D54:1;
+  unsigned TXB0D55:1;
+  unsigned TXB0D56:1;
+  unsigned TXB0D57:1;
+} TXB0D5bits;
+extern volatile far  unsigned char       TXB0D6;
+extern volatile far  struct {
+  unsigned TXB0D60:1;
+  unsigned TXB0D61:1;
+  unsigned TXB0D62:1;
+  unsigned TXB0D63:1;
+  unsigned TXB0D64:1;
+  unsigned TXB0D65:1;
+  unsigned TXB0D66:1;
+  unsigned TXB0D67:1;
+} TXB0D6bits;
+extern volatile far  unsigned char       TXB0D7;
+extern volatile far  struct {
+  unsigned TXB0D70:1;
+  unsigned TXB0D71:1;
+  unsigned TXB0D72:1;
+  unsigned TXB0D73:1;
+  unsigned TXB0D74:1;
+  unsigned TXB0D75:1;
+  unsigned TXB0D76:1;
+  unsigned TXB0D77:1;
+} TXB0D7bits;
+extern volatile far  unsigned char       CANSTAT_RO1;
+extern volatile far  struct {
+  unsigned ICODE0:1;
+  unsigned ICODE1:1;
+  unsigned ICODE2:1;
+  unsigned ICODE3:1;
+  unsigned ICODE4:1;
+  unsigned OPMODE:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANSTAT_RO1bits;
+extern volatile far  unsigned char       CANCON_RO1;
+extern volatile far  struct {
+  unsigned :1;
+  unsigned WIN0:1;
+  unsigned WIN1:1;
+  unsigned WIN2:1;
+  unsigned ABAT:1;
+  unsigned REQOP0:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANCON_RO1bits;
+extern volatile far  unsigned char       RXB1CON;
+extern volatile far  union {
+  struct {
+    unsigned FILHIT0:1;
+    unsigned FILHIT1:1;
+    unsigned FILHIT2:1;
+    unsigned RXRTRRO:1;
+    unsigned :1;
+    unsigned RXM0:1;
+    unsigned RXM1:1;
+    unsigned RXFUL:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned FILHIT3:1;
+    unsigned FILHIT4:1;
+    unsigned RTRRO:1;
+  };
+} RXB1CONbits;
+extern volatile far  unsigned char       RXB1SIDH;
+extern volatile far  struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXB1SIDHbits;
+extern volatile far  unsigned char       RXB1SIDL;
+extern volatile far  struct {
+  unsigned EID16:1;
+  unsigned EID17:1;
+  unsigned :1;
+  unsigned EXID:1;
+  unsigned SRR:1;
+  unsigned SID0:1;
+  unsigned SID1:1;
+  unsigned SID2:1;
+} RXB1SIDLbits;
+extern volatile far  unsigned char       RXB1EIDH;
+extern volatile far  struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXB1EIDHbits;
+extern volatile far  unsigned char       RXB1EIDL;
+extern volatile far  struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXB1EIDLbits;
+extern volatile far  unsigned char       RXB1DLC;
+extern volatile far  union {
+  struct {
+    unsigned DLC0:1;
+    unsigned DLC1:1;
+    unsigned DLC2:1;
+    unsigned DLC3:1;
+    unsigned RESRB0:1;
+    unsigned RESRB1:1;
+    unsigned RXRTR:1;
+  };
+  struct {
+    unsigned :4;
+    unsigned RB0:1;
+    unsigned RB1:1;
+  };
+} RXB1DLCbits;
+extern volatile far  unsigned char       RXB1D0;
+extern volatile far  struct {
+  unsigned RXB1D00:1;
+  unsigned RXB1D01:1;
+  unsigned RXB1D02:1;
+  unsigned RXB1D03:1;
+  unsigned RXB1D04:1;
+  unsigned RXB1D05:1;
+  unsigned RXB1D06:1;
+  unsigned RXB1D07:1;
+} RXB1D0bits;
+extern volatile far  unsigned char       RXB1D1;
+extern volatile far  struct {
+  unsigned RXB1D10:1;
+  unsigned RXB1D11:1;
+  unsigned RXB1D12:1;
+  unsigned RXB1D13:1;
+  unsigned RXB1D14:1;
+  unsigned RXB1D15:1;
+  unsigned RXB1D16:1;
+  unsigned RXB1D17:1;
+} RXB1D1bits;
+extern volatile far  unsigned char       RXB1D2;
+extern volatile far  struct {
+  unsigned RXB1D20:1;
+  unsigned RXB1D21:1;
+  unsigned RXB1D22:1;
+  unsigned RXB1D23:1;
+  unsigned RXB1D24:1;
+  unsigned RXB1D25:1;
+  unsigned RXB1D26:1;
+  unsigned RXB1D27:1;
+} RXB1D2bits;
+extern volatile far  unsigned char       RXB1D3;
+extern volatile far  struct {
+  unsigned RXB1D30:1;
+  unsigned RXB1D31:1;
+  unsigned RXB1D32:1;
+  unsigned RXB1D33:1;
+  unsigned RXB1D34:1;
+  unsigned RXB1D35:1;
+  unsigned RXB1D36:1;
+  unsigned RXB1D37:1;
+} RXB1D3bits;
+extern volatile far  unsigned char       RXB1D4;
+extern volatile far  struct {
+  unsigned RXB1D40:1;
+  unsigned RXB1D41:1;
+  unsigned RXB1D42:1;
+  unsigned RXB1D43:1;
+  unsigned RXB1D44:1;
+  unsigned RXB1D45:1;
+  unsigned RXB1D46:1;
+  unsigned RXB1D47:1;
+} RXB1D4bits;
+extern volatile far  unsigned char       RXB1D5;
+extern volatile far  struct {
+  unsigned RXB1D50:1;
+  unsigned RXB1D51:1;
+  unsigned RXB1D52:1;
+  unsigned RXB1D53:1;
+  unsigned RXB1D54:1;
+  unsigned RXB1D55:1;
+  unsigned RXB1D56:1;
+  unsigned RXB1D57:1;
+} RXB1D5bits;
+extern volatile far  unsigned char       RXB1D6;
+extern volatile far  struct {
+  unsigned RXB1D60:1;
+  unsigned RXB1D61:1;
+  unsigned RXB1D62:1;
+  unsigned RXB1D63:1;
+  unsigned RXB1D64:1;
+  unsigned RXB1D65:1;
+  unsigned RXB1D66:1;
+  unsigned RXB1D67:1;
+} RXB1D6bits;
+extern volatile far  unsigned char       RXB1D7;
+extern volatile far  struct {
+  unsigned RXB1D70:1;
+  unsigned RXB1D71:1;
+  unsigned RXB1D72:1;
+  unsigned RXB1D73:1;
+  unsigned RXB1D74:1;
+  unsigned RXB1D75:1;
+  unsigned RXB1D76:1;
+  unsigned RXB1D77:1;
+} RXB1D7bits;
+extern volatile far  unsigned char       CANSTAT_RO0;
+extern volatile far  struct {
+  unsigned ICODE0:1;
+  unsigned ICODE1:1;
+  unsigned ICODE2:1;
+  unsigned ICODE3:1;
+  unsigned ICODE4:1;
+  unsigned OPMODE:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANSTAT_RO0bits;
+extern volatile far  unsigned char       CANCON_RO0;
+extern volatile far  struct {
+  unsigned :1;
+  unsigned WIN0:1;
+  unsigned WIN1:1;
+  unsigned WIN2:1;
+  unsigned ABAT:1;
+  unsigned REQOP0:1;
+  unsigned REQOP1:1;
+  unsigned REQOP2:1;
+} CANCON_RO0bits;
+extern volatile near unsigned char       RXB0CON;
+extern volatile near union {
+  struct {
+    unsigned FILHIT0:1;
+    unsigned JTOFF:1;
+    unsigned RXB0DBEN:1;
+    unsigned RXRTRRO:1;
+    unsigned :1;
+    unsigned RXM0:1;
+    unsigned RXM1:1;
+    unsigned RXFUL:1;
+  };
+  struct {
+    unsigned :1;
+    unsigned FILHIT1:1;
+    unsigned FILHIT2:1;
+    unsigned FILHIT3:1;
+    unsigned FILHIT4:1;
+    unsigned RTRRO:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned RXBODBEN:1;
+  };
+} RXB0CONbits;
+extern volatile near unsigned char       RXB0SIDH;
+extern volatile near struct {
+  unsigned SID3:1;
+  unsigned SID4:1;
+  unsigned SID5:1;
+  unsigned SID6:1;
+  unsigned SID7:1;
+  unsigned SID8:1;
+  unsigned SID9:1;
+  unsigned SID10:1;
+} RXB0SIDHbits;
+extern volatile near unsigned char       RXB0SIDL;
+extern volatile near struct {
+  unsigned EID16:1;
+  unsigned EID17:1;
+  unsigned :1;
+  unsigned EXID:1;
+  unsigned SRR:1;
+  unsigned SID0:1;
+  unsigned SID1:1;
+  unsigned SID2:1;
+} RXB0SIDLbits;
+extern volatile near unsigned char       RXB0EIDH;
+extern volatile near struct {
+  unsigned EID8:1;
+  unsigned EID9:1;
+  unsigned EID10:1;
+  unsigned EID11:1;
+  unsigned EID12:1;
+  unsigned EID13:1;
+  unsigned EID14:1;
+  unsigned EID15:1;
+} RXB0EIDHbits;
+extern volatile near unsigned char       RXB0EIDL;
+extern volatile near struct {
+  unsigned EID0:1;
+  unsigned EID1:1;
+  unsigned EID2:1;
+  unsigned EID3:1;
+  unsigned EID4:1;
+  unsigned EID5:1;
+  unsigned EID6:1;
+  unsigned EID7:1;
+} RXB0EIDLbits;
+extern volatile near unsigned char       RXB0DLC;
+extern volatile near union {
+  struct {
+    unsigned DLC0:1;
+    unsigned DLC1:1;
+    unsigned DLC2:1;
+    unsigned DLC3:1;
+    unsigned RESRB0:1;
+    unsigned RESRB1:1;
+    unsigned RXRTR:1;
+  };
+  struct {
+    unsigned :4;
+    unsigned RB0:1;
+    unsigned RB1:1;
+  };
+} RXB0DLCbits;
+extern volatile near unsigned char       RXB0D0;
+extern volatile near struct {
+  unsigned RXB0D00:1;
+  unsigned RXB0D01:1;
+  unsigned RXB0D02:1;
+  unsigned RXB0D03:1;
+  unsigned RXB0D04:1;
+  unsigned RXB0D05:1;
+  unsigned RXB0D06:1;
+  unsigned RXB0D07:1;
+} RXB0D0bits;
+extern volatile near unsigned char       RXB0D1;
+extern volatile near struct {
+  unsigned RXB0D10:1;
+  unsigned RXB0D11:1;
+  unsigned RXB0D12:1;
+  unsigned RXB0D13:1;
+  unsigned RXB0D14:1;
+  unsigned RXB0D15:1;
+  unsigned RXB0D16:1;
+  unsigned RXB0D17:1;
+} RXB0D1bits;
+extern volatile near unsigned char       RXB0D2;
+extern volatile near struct {
+  unsigned RXB0D20:1;
+  unsigned RXB0D21:1;
+  unsigned RXB0D22:1;
+  unsigned RXB0D23:1;
+  unsigned RXB0D24:1;
+  unsigned RXB0D25:1;
+  unsigned RXB0D26:1;
+  unsigned RXB0D27:1;
+} RXB0D2bits;
+extern volatile near unsigned char       RXB0D3;
+extern volatile near struct {
+  unsigned RXB0D30:1;
+  unsigned RXB0D31:1;
+  unsigned RXB0D32:1;
+  unsigned RXB0D33:1;
+  unsigned RXB0D34:1;
+  unsigned RXB0D35:1;
+  unsigned RXB0D36:1;
+  unsigned RXB0D37:1;
+} RXB0D3bits;
+extern volatile near unsigned char       RXB0D4;
+extern volatile near struct {
+  unsigned RXB0D40:1;
+  unsigned RXB0D41:1;
+  unsigned RXB0D42:1;
+  unsigned RXB0D43:1;
+  unsigned RXB0D44:1;
+  unsigned RXB0D45:1;
+  unsigned RXB0D46:1;
+  unsigned RXB0D47:1;
+} RXB0D4bits;
+extern volatile near unsigned char       RXB0D5;
+extern volatile near struct {
+  unsigned RXB0D50:1;
+  unsigned RXB0D51:1;
+  unsigned RXB0D52:1;
+  unsigned RXB0D53:1;
+  unsigned RXB0D54:1;
+  unsigned RXB0D55:1;
+  unsigned RXB0D56:1;
+  unsigned RXB0D57:1;
+} RXB0D5bits;
+extern volatile near unsigned char       RXB0D6;
+extern volatile near struct {
+  unsigned RXB0D60:1;
+  unsigned RXB0D61:1;
+  unsigned RXB0D62:1;
+  unsigned RXB0D63:1;
+  unsigned RXB0D64:1;
+  unsigned RXB0D65:1;
+  unsigned RXB0D66:1;
+  unsigned RXB0D67:1;
+} RXB0D6bits;
+extern volatile near unsigned char       RXB0D7;
+extern volatile near struct {
+  unsigned RXB0D70:1;
+  unsigned RXB0D71:1;
+  unsigned RXB0D72:1;
+  unsigned RXB0D73:1;
+  unsigned RXB0D74:1;
+  unsigned RXB0D75:1;
+  unsigned RXB0D76:1;
+  unsigned RXB0D77:1;
+} RXB0D7bits;
+extern volatile near unsigned char       CANSTAT;
+extern volatile near union {
+  struct {
+    unsigned :1;
+    unsigned ICODE1:1;
+    unsigned ICODE2:1;
+    unsigned ICODE3:1;
+    unsigned :1;
+    unsigned OPMODE0:1;
+    unsigned OPMODE1:1;
+    unsigned OPMODE2:1;
+  };
+  struct {
+    unsigned EICODE0:1;
+    unsigned EICODE1:1;
+    unsigned EICODE2:1;
+    unsigned EICODE3:1;
+    unsigned EICODE4:1;
+  };
+} CANSTATbits;
+extern volatile near unsigned char       CANCON;
+extern volatile near union {
+  struct {
+    unsigned :1;
+    unsigned WIN0:1;
+    unsigned WIN1:1;
+    unsigned WIN2:1;
+    unsigned ABAT:1;
+    unsigned REQOP0:1;
+    unsigned REQOP1:1;
+    unsigned REQOP2:1;
+  };
+  struct {
+    unsigned FP0:1;
+    unsigned FP1:1;
+    unsigned FP2:1;
+    unsigned FP3:1;
+  };
+} CANCONbits;
+extern volatile near unsigned char       BRGCON1;
+extern volatile near struct {
+  unsigned BRP0:1;
+  unsigned BRP1:1;
+  unsigned BRP2:1;
+  unsigned BRP3:1;
+  unsigned BRP4:1;
+  unsigned BRP5:1;
+  unsigned SJW0:1;
+  unsigned SJW1:1;
+} BRGCON1bits;
+extern volatile near unsigned char       BRGCON2;
+extern volatile near union {
+  struct {
+    unsigned PRSEG0:1;
+    unsigned PRSEG1:1;
+    unsigned PRSEG2:1;
+    unsigned SEG1PH0:1;
+    unsigned SEG1PH1:1;
+    unsigned SEG1PH2:1;
+    unsigned SAM:1;
+    unsigned SEG2PHTS:1;
+  };
+  struct {
+    unsigned :7;
+    unsigned SEG2PHT:1;
+  };
+} BRGCON2bits;
+extern volatile near unsigned char       BRGCON3;
+extern volatile near struct {
+  unsigned SEG2PH0:1;
+  unsigned SEG2PH1:1;
+  unsigned SEG2PH2:1;
+  unsigned :3;
+  unsigned WAKFIL:1;
+  unsigned WAKDIS:1;
+} BRGCON3bits;
+extern volatile near unsigned char       CIOCON;
+extern volatile near struct {
+  unsigned :4;
+  unsigned CANCAP:1;
+  unsigned ENDRHI:1;
+} CIOCONbits;
+extern volatile near unsigned char       COMSTAT;
+extern volatile near union {
+  struct {
+    unsigned EWARN:1;
+    unsigned RXWARN:1;
+    unsigned TXWARN:1;
+    unsigned RXBP:1;
+    unsigned TXBP:1;
+    unsigned TXBO:1;
+    unsigned RXB1OVFL:1;
+    unsigned RXB0OVFL:1;
+  };
+  struct {
+    unsigned :6;
+    unsigned RXBnOVFL:1;
+  };
+  struct {
+    unsigned :7;
+    unsigned FIFOEMPTY:1;
+  };
+} COMSTATbits;
+extern volatile near unsigned char       RXERRCNT;
+extern volatile near struct {
+  unsigned REC0:1;
+  unsigned REC1:1;
+  unsigned REC2:1;
+  unsigned REC3:1;
+  unsigned REC4:1;
+  unsigned REC5:1;
+  unsigned REC6:1;
+  unsigned REC7:1;
+} RXERRCNTbits;
+extern volatile near unsigned char       TXERRCNT;
+extern volatile near struct {
+  unsigned TEC0:1;
+  unsigned TEC1:1;
+  unsigned TEC2:1;
+  unsigned TEC3:1;
+  unsigned TEC4:1;
+  unsigned TEC5:1;
+  unsigned TEC6:1;
+  unsigned TEC7:1;
+} TXERRCNTbits;
+extern volatile near unsigned char       ECANCON;
+extern volatile near union {
+  struct {
+    unsigned EWIN0:1;
+    unsigned EWIN1:1;
+    unsigned EWIN2:1;
+    unsigned EWIN3:1;
+    unsigned EWIN4:1;
+    unsigned FIFOWM:1;
+    unsigned MDSEL0:1;
+    unsigned MDSEL1:1;
+  };
+  struct {
+    unsigned :5;
+    unsigned F:1;
+  };
+} ECANCONbits;
+extern volatile near unsigned char       PORTA;
+extern volatile near union {
+  struct {
+    unsigned RA0:1;
+    unsigned RA1:1;
+    unsigned RA2:1;
+    unsigned RA3:1;
+    unsigned RA4:1;
+    unsigned RA5:1;
+    unsigned RA6:1;
+    unsigned RA7:1;
+  };
+  struct {
+    unsigned AN0:1;
+    unsigned AN1:1;
+    unsigned AN2:1;
+    unsigned AN3:1;
+    unsigned T0CKI:1;
+    unsigned AN4:1;
+    unsigned OSC2:1;
+    unsigned OSC1:1;
+  };
+  struct {
+    unsigned CVREF:1;
+    unsigned :1;
+    unsigned VREFM:1;
+    unsigned VREFP:1;
+    unsigned :1;
+    unsigned LVDIN:1;
+    unsigned CLKO:1;
+    unsigned CLKI:1;
+  };
+  struct {
+    unsigned :5;
+    unsigned SS:1;
+  };
+  struct {
+    unsigned :5;
+    unsigned NOT_SS:1;
+  };
+  struct {
+    unsigned :5;
+    unsigned HLVDIN:1;
+  };
+} PORTAbits;
+extern volatile near unsigned char       PORTB;
+extern volatile near union {
+  struct {
+    unsigned RB0:1;
+    unsigned RB1:1;
+    unsigned RB2:1;
+    unsigned RB3:1;
+    unsigned RB4:1;
+    unsigned RB5:1;
+    unsigned RB6:1;
+    unsigned RB7:1;
+  };
+  struct {
+    unsigned INT0:1;
+    unsigned INT1:1;
+    unsigned INT2:1;
+    unsigned CANRX:1;
+    unsigned KBI0:1;
+    unsigned KBI1:1;
+    unsigned KBI2:1;
+    unsigned KBI3:1;
+  };
+  struct {
+    unsigned AN10:1;
+  };
+  struct {
+    unsigned FLT0:1;
+    unsigned AN8:1;
+    unsigned CANTX:1;
+    unsigned :1;
+    unsigned AN9:1;
+    unsigned PGM:1;
+    unsigned PGC:1;
+    unsigned PGD:1;
+  };
+} PORTBbits;
+extern volatile near unsigned char       PORTC;
+extern volatile near union {
+  struct {
+    unsigned RC0:1;
+    unsigned RC1:1;
+    unsigned RC2:1;
+    unsigned RC3:1;
+    unsigned RC4:1;
+    unsigned RC5:1;
+    unsigned RC6:1;
+    unsigned RC7:1;
+  };
+  struct {
+    unsigned T1OSO:1;
+    unsigned T1OSI:1;
+    unsigned CCP1:1;
+    unsigned SCK:1;
+    unsigned SDI:1;
+    unsigned SDO:1;
+    unsigned TX:1;
+    unsigned RX:1;
+  };
+  struct {
+    unsigned T13CKI:1;
+    unsigned :2;
+    unsigned SCL:1;
+    unsigned SDA:1;
+    unsigned :1;
+    unsigned CK:1;
+    unsigned DT:1;
+  };
+} PORTCbits;
+extern volatile near unsigned char       PORTD;
+extern volatile near union {
+  struct {
+    unsigned RD0:1;
+    unsigned RD1:1;
+    unsigned RD2:1;
+    unsigned RD3:1;
+    unsigned RD4:1;
+    unsigned RD5:1;
+    unsigned RD6:1;
+    unsigned RD7:1;
+  };
+  struct {
+    unsigned PSP0:1;
+    unsigned PSP1:1;
+    unsigned PSP2:1;
+    unsigned PSP3:1;
+    unsigned PSP4:1;
+    unsigned PSP5:1;
+    unsigned PSP6:1;
+    unsigned PSP7:1;
+  };
+  struct {
+    unsigned C1INB:1;
+    unsigned C1INA:1;
+    unsigned C2INB:1;
+    unsigned C2INA:1;
+    unsigned P1A:1;
+    unsigned P1B:1;
+    unsigned P1C:1;
+    unsigned P1D:1;
+  };
+  struct {
+    unsigned :4;
+    unsigned ECCP1:1;
+  };
+} PORTDbits;
+extern volatile near unsigned char       PORTE;
+extern volatile near union {
+  struct {
+    unsigned RE0:1;
+    unsigned RE1:1;
+    unsigned RE2:1;
+    unsigned RE3:1;
+  };
+  struct {
+    unsigned AN5:1;
+    unsigned AN6:1;
+    unsigned AN7:1;
+  };
+  struct {
+    unsigned NOT_RD:1;
+    unsigned NOT_WR:1;
+    unsigned NOT_CS:1;
+  };
+  struct {
+    unsigned RD:1;
+    unsigned WR:1;
+    unsigned CS:1;
+  };
+} PORTEbits;
+extern volatile near unsigned char       LATA;
+extern volatile near struct {
+  unsigned LATA0:1;
+  unsigned LATA1:1;
+  unsigned LATA2:1;
+  unsigned LATA3:1;
+  unsigned LATA4:1;
+  unsigned LATA5:1;
+  unsigned LATA6:1;
+  unsigned LATA7:1;
+} LATAbits;
+extern volatile near unsigned char       LATB;
+extern volatile near struct {
+  unsigned LATB0:1;
+  unsigned LATB1:1;
+  unsigned LATB2:1;
+  unsigned LATB3:1;
+  unsigned LATB4:1;
+  unsigned LATB5:1;
+  unsigned LATB6:1;
+  unsigned LATB7:1;
+} LATBbits;
+extern volatile near unsigned char       LATC;
+extern volatile near struct {
+  unsigned LATC0:1;
+  unsigned LATC1:1;
+  unsigned LATC2:1;
+  unsigned LATC3:1;
+  unsigned LATC4:1;
+  unsigned LATC5:1;
+  unsigned LATC6:1;
+  unsigned LATC7:1;
+} LATCbits;
+extern volatile near unsigned char       LATD;
+extern volatile near struct {
+  unsigned LATD0:1;
+  unsigned LATD1:1;
+  unsigned LATD2:1;
+  unsigned LATD3:1;
+  unsigned LATD4:1;
+  unsigned LATD5:1;
+  unsigned LATD6:1;
+  unsigned LATD7:1;
+} LATDbits;
+extern volatile near unsigned char       LATE;
+extern volatile near struct {
+  unsigned LATE0:1;
+  unsigned LATE1:1;
+  unsigned LATE2:1;
+} LATEbits;
+extern volatile near unsigned char       DDRA;
+extern volatile near struct {
+  unsigned RA0:1;
+  unsigned RA1:1;
+  unsigned RA2:1;
+  unsigned RA3:1;
+  unsigned RA4:1;
+  unsigned RA5:1;
+  unsigned RA6:1;
+} DDRAbits;
+extern volatile near unsigned char       TRISA;
+extern volatile near struct {
+  unsigned TRISA0:1;
+  unsigned TRISA1:1;
+  unsigned TRISA2:1;
+  unsigned TRISA3:1;
+  unsigned TRISA4:1;
+  unsigned TRISA5:1;
+  unsigned TRISA6:1;
+  unsigned TRISA7:1;
+} TRISAbits;
+extern volatile near unsigned char       DDRB;
+extern volatile near struct {
+  unsigned RB0:1;
+  unsigned RB1:1;
+  unsigned RB2:1;
+  unsigned RB3:1;
+  unsigned RB4:1;
+  unsigned RB5:1;
+  unsigned RB6:1;
+  unsigned RB7:1;
+} DDRBbits;
+extern volatile near unsigned char       TRISB;
+extern volatile near struct {
+  unsigned TRISB0:1;
+  unsigned TRISB1:1;
+  unsigned TRISB2:1;
+  unsigned TRISB3:1;
+  unsigned TRISB4:1;
+  unsigned TRISB5:1;
+  unsigned TRISB6:1;
+  unsigned TRISB7:1;
+} TRISBbits;
+extern volatile near unsigned char       DDRC;
+extern volatile near struct {
+  unsigned RC0:1;
+  unsigned RC1:1;
+  unsigned RC2:1;
+  unsigned RC3:1;
+  unsigned RC4:1;
+  unsigned RC5:1;
+  unsigned RC6:1;
+  unsigned RC7:1;
+} DDRCbits;
+extern volatile near unsigned char       TRISC;
+extern volatile near struct {
+  unsigned TRISC0:1;
+  unsigned TRISC1:1;
+  unsigned TRISC2:1;
+  unsigned TRISC3:1;
+  unsigned TRISC4:1;
+  unsigned TRISC5:1;
+  unsigned TRISC6:1;
+  unsigned TRISC7:1;
+} TRISCbits;
+extern volatile near unsigned char       DDRD;
+extern volatile near struct {
+  unsigned RD0:1;
+  unsigned RD1:1;
+  unsigned RD2:1;
+  unsigned RD3:1;
+  unsigned RD4:1;
+  unsigned RD5:1;
+  unsigned RD6:1;
+  unsigned RD7:1;
+} DDRDbits;
+extern volatile near unsigned char       TRISD;
+extern volatile near struct {
+  unsigned TRISD0:1;
+  unsigned TRISD1:1;
+  unsigned TRISD2:1;
+  unsigned TRISD3:1;
+  unsigned TRISD4:1;
+  unsigned TRISD5:1;
+  unsigned TRISD6:1;
+  unsigned TRISD7:1;
+} TRISDbits;
+extern volatile near unsigned char       DDRE;
+extern volatile near struct {
+  unsigned RE0:1;
+  unsigned RE1:1;
+  unsigned RE2:1;
+  unsigned :1;
+  unsigned PSPMODE:1;
+  unsigned IBOV:1;
+  unsigned OBF:1;
+  unsigned IBF:1;
+} DDREbits;
+extern volatile near unsigned char       TRISE;
+extern volatile near struct {
+  unsigned TRISE0:1;
+  unsigned TRISE1:1;
+  unsigned TRISE2:1;
+  unsigned :1;
+  unsigned PSPMODE:1;
+  unsigned IBOV:1;
+  unsigned OBF:1;
+  unsigned IBF:1;
+} TRISEbits;
+extern volatile near unsigned char       OSCTUNE;
+extern volatile near union {
+  struct {
+    unsigned TUN0:1;
+    unsigned TUN1:1;
+    unsigned TUN2:1;
+    unsigned TUN3:1;
+    unsigned TUN4:1;
+    unsigned :1;
+    unsigned PLLEN:1;
+    unsigned INTSCR:1;
+  };
+  struct {
+    unsigned :7;
+    unsigned INTSRC:1;
+  };
+} OSCTUNEbits;
+extern volatile near unsigned char       PIE1;
+extern volatile near struct {
+  unsigned TMR1IE:1;
+  unsigned TMR2IE:1;
+  unsigned CCP1IE:1;
+  unsigned SSPIE:1;
+  unsigned TXIE:1;
+  unsigned RCIE:1;
+  unsigned ADIE:1;
+  unsigned PSPIE:1;
+} PIE1bits;
+extern volatile near unsigned char       PIR1;
+extern volatile near struct {
+  unsigned TMR1IF:1;
+  unsigned TMR2IF:1;
+  unsigned CCP1IF:1;
+  unsigned SSPIF:1;
+  unsigned TXIF:1;
+  unsigned RCIF:1;
+  unsigned ADIF:1;
+  unsigned PSPIF:1;
+} PIR1bits;
+extern volatile near unsigned char       IPR1;
+extern volatile near union {
+  struct {
+    unsigned TMR1IP:1;
+    unsigned TMR2IP:1;
+    unsigned CCP1IP:1;
+    unsigned SSPIP:1;
+    unsigned TXBIP:1;
+    unsigned RCIP:1;
+    unsigned ADIP:1;
+    unsigned PSPIP:1;
+  };
+  struct {
+    unsigned :4;
+    unsigned TXIP:1;
+  };
+} IPR1bits;
+extern volatile near unsigned char       PIE2;
+extern volatile near union {
+  struct {
+    unsigned ECCP1IE:1;
+    unsigned TMR3IE:1;
+    unsigned LVDIE:1;
+    unsigned BCLIE:1;
+    unsigned EEIE:1;
+    unsigned :1;
+    unsigned CMIE:1;
+    unsigned OSCFIE:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned HLVDIE:1;
+  };
+} PIE2bits;
+extern volatile near unsigned char       PIR2;
+extern volatile near union {
+  struct {
+    unsigned ECCP1IF:1;
+    unsigned TMR3IF:1;
+    unsigned LVDIF:1;
+    unsigned BCLIF:1;
+    unsigned EEIF:1;
+    unsigned :1;
+    unsigned CMIF:1;
+    unsigned OSCFIF:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned HLVDIF:1;
+  };
+} PIR2bits;
+extern volatile near unsigned char       IPR2;
+extern volatile near union {
+  struct {
+    unsigned ECCP1IP:1;
+    unsigned TMR3IP:1;
+    unsigned LVDIP:1;
+    unsigned BCLIP:1;
+    unsigned EEIP:1;
+    unsigned :1;
+    unsigned CMIP:1;
+    unsigned OSCFIP:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned HLVDIP:1;
+  };
+} IPR2bits;
+extern volatile near unsigned char       PIE3;
+extern volatile near union {
+  struct {
+    unsigned RXB0IE:1;
+    unsigned RXB1IE:1;
+    unsigned TXB0IE:1;
+    unsigned TXB1IE:1;
+    unsigned TXB2IE:1;
+    unsigned ERRIE:1;
+    unsigned WAKIE:1;
+    unsigned IRXIE:1;
+  };
+  struct {
+    unsigned FIFOWMIE:1;
+    unsigned RXBnIE:1;
+    unsigned :2;
+    unsigned TXBnIE:1;
+  };
+  struct {
+    unsigned FIFOMWIE:1;
+  };
+} PIE3bits;
+extern volatile near unsigned char       PIR3;
+extern volatile near union {
+  struct {
+    unsigned RXB0IF:1;
+    unsigned RXB1IF:1;
+    unsigned TXB0IF:1;
+    unsigned TXB1IF:1;
+    unsigned TXB2IF:1;
+    unsigned ERRIF:1;
+    unsigned WAKIF:1;
+    unsigned IRXIF:1;
+  };
+  struct {
+    unsigned FIFOWMIF:1;
+    unsigned RXBnIF:1;
+    unsigned :2;
+    unsigned TXBnIF:1;
+  };
+} PIR3bits;
+extern volatile near unsigned char       IPR3;
+extern volatile near union {
+  struct {
+    unsigned RXB0IP:1;
+    unsigned RXB1IP:1;
+    unsigned TXB0IP:1;
+    unsigned TXB1IP:1;
+    unsigned TXB2IP:1;
+    unsigned ERRIP:1;
+    unsigned WAKIP:1;
+    unsigned IRXIP:1;
+  };
+  struct {
+    unsigned FIFOWMIP:1;
+    unsigned RXBnIP:1;
+    unsigned :2;
+    unsigned TXBnIP:1;
+  };
+} IPR3bits;
+extern volatile near unsigned char       EECON1;
+extern volatile near struct {
+  unsigned RD:1;
+  unsigned WR:1;
+  unsigned WREN:1;
+  unsigned WRERR:1;
+  unsigned FREE:1;
+  unsigned :1;
+  unsigned CFGS:1;
+  unsigned EEPGD:1;
+} EECON1bits;
+extern volatile near unsigned char       EECON2;
+extern volatile near unsigned char       EEDATA;
+extern volatile near unsigned char       EEADR;
+extern volatile near unsigned char       EEADRH;
+extern volatile near unsigned char       RCSTA;
+extern volatile near union {
+  struct {
+    unsigned RX9D:1;
+    unsigned OERR:1;
+    unsigned FERR:1;
+    unsigned ADEN:1;
+    unsigned CREN:1;
+    unsigned SREN:1;
+    unsigned RX9:1;
+    unsigned SPEN:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned ADDEN:1;
+  };
+} RCSTAbits;
+extern volatile near unsigned char       TXSTA;
+extern volatile near struct {
+  unsigned TX9D:1;
+  unsigned TRMT:1;
+  unsigned BRGH:1;
+  unsigned SENDB:1;
+  unsigned SYNC:1;
+  unsigned TXEN:1;
+  unsigned TX9:1;
+  unsigned CSRC:1;
+} TXSTAbits;
+extern volatile near unsigned char       TXREG;
+extern volatile near unsigned char       RCREG;
+extern volatile near unsigned char       SPBRG;
+extern volatile near unsigned char       SPBRGH;
+extern volatile near unsigned char       T3CON;
+extern volatile near union {
+  struct {
+    unsigned TMR3ON:1;
+    unsigned TMR3CS:1;
+    unsigned T3SYNC:1;
+    unsigned T3CCP1:1;
+    unsigned T3CKPS0:1;
+    unsigned T3CKPS1:1;
+    unsigned T3CCP2:1;
+    unsigned RD16:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned T3NSYNC:1;
+  };
+  struct {
+    unsigned :6;
+    unsigned T3ECCP1:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned NOT_T3SYNC:1;
+  };
+} T3CONbits;
+extern volatile near unsigned char       TMR3L;
+extern volatile near unsigned char       TMR3H;
+extern volatile near unsigned char       CMCON;
+extern volatile near struct {
+  unsigned CM0:1;
+  unsigned CM1:1;
+  unsigned CM2:1;
+  unsigned CIS:1;
+  unsigned C1INV:1;
+  unsigned C2INV:1;
+  unsigned C1OUT:1;
+  unsigned C2OUT:1;
+} CMCONbits;
+extern volatile near unsigned char       CVRCON;
+extern volatile near union {
+  struct {
+    unsigned CVR0:1;
+    unsigned CVR1:1;
+    unsigned CVR2:1;
+    unsigned CVR3:1;
+    unsigned CVREF:1;
+    unsigned CVRR:1;
+    unsigned CVROE:1;
+    unsigned CVREN:1;
+  };
+  struct {
+    unsigned :4;
+    unsigned CVRSS:1;
+  };
+} CVRCONbits;
+extern volatile near unsigned char       ECCP1AS;
+extern volatile near struct {
+  unsigned PSSBD0:1;
+  unsigned PSSBD1:1;
+  unsigned PSSAC0:1;
+  unsigned PSSAC1:1;
+  unsigned ECCPAS0:1;
+  unsigned ECCPAS1:1;
+  unsigned ECCPAS2:1;
+  unsigned ECCPASE:1;
+} ECCP1ASbits;
+extern volatile near unsigned char       ECCP1DEL;
+extern volatile near struct {
+  unsigned PDC0:1;
+  unsigned PDC1:1;
+  unsigned PDC2:1;
+  unsigned PDC3:1;
+  unsigned PDC4:1;
+  unsigned PDC5:1;
+  unsigned PDC6:1;
+  unsigned PRSEN:1;
+} ECCP1DELbits;
+extern volatile near unsigned char       BAUDCON;
+extern volatile near struct {
+  unsigned ABDEN:1;
+  unsigned WUE:1;
+  unsigned :1;
+  unsigned BRG16:1;
+  unsigned SCKP:1;
+  unsigned :1;
+  unsigned RCIDL:1;
+  unsigned ABDOVF:1;
+} BAUDCONbits;
+extern volatile near unsigned char       ECCP1CON;
+extern volatile near struct {
+  unsigned ECCP1M0:1;
+  unsigned ECCP1M1:1;
+  unsigned ECCP1M2:1;
+  unsigned ECCP1M3:1;
+  unsigned EDC1B0:1;
+  unsigned EDC1B1:1;
+  unsigned EPWM1M0:1;
+  unsigned EPWM1M1:1;
+} ECCP1CONbits;
+extern volatile near unsigned            ECCPR1;
+extern volatile near unsigned char       ECCPR1L;
+extern volatile near unsigned char       ECCPR1H;
+extern volatile near unsigned char       CCP1CON;
+extern volatile near struct {
+  unsigned CCP1M0:1;
+  unsigned CCP1M1:1;
+  unsigned CCP1M2:1;
+  unsigned CCP1M3:1;
+  unsigned DC1B0:1;
+  unsigned DC1B1:1;
+} CCP1CONbits;
+extern volatile near unsigned            CCPR1;
+extern volatile near unsigned char       CCPR1L;
+extern volatile near unsigned char       CCPR1H;
+extern volatile near unsigned char       ADCON2;
+extern volatile near struct {
+  unsigned ADCS0:1;
+  unsigned ADCS1:1;
+  unsigned ADCS2:1;
+  unsigned ACQT0:1;
+  unsigned ACQT1:1;
+  unsigned ACQT2:1;
+  unsigned :1;
+  unsigned ADFM:1;
+} ADCON2bits;
+extern volatile near unsigned char       ADCON1;
+extern volatile near struct {
+  unsigned PCFG0:1;
+  unsigned PCFG1:1;
+  unsigned PCFG2:1;
+  unsigned PCFG3:1;
+  unsigned VCFG0:1;
+  unsigned VCFG1:1;
+} ADCON1bits;
+extern volatile near unsigned char       ADCON0;
+extern volatile near union {
+  struct {
+    unsigned ADON:1;
+    unsigned GO_DONE:1;
+    unsigned CHS0:1;
+    unsigned CHS1:1;
+    unsigned CHS2:1;
+    unsigned CHS3:1;
+  };
+  struct {
+    unsigned :1;
+    unsigned DONE:1;
+  };
+  struct {
+    unsigned :1;
+    unsigned GO:1;
+  };
+  struct {
+    unsigned :1;
+    unsigned NOT_DONE:1;
+  };
+} ADCON0bits;
+extern volatile near unsigned            ADRES;
+extern volatile near unsigned char       ADRESL;
+extern volatile near unsigned char       ADRESH;
+extern volatile near unsigned char       SSPCON2;
+extern volatile near struct {
+  unsigned SEN:1;
+  unsigned RSEN:1;
+  unsigned PEN:1;
+  unsigned RCEN:1;
+  unsigned ACKEN:1;
+  unsigned ACKDT:1;
+  unsigned ACKSTAT:1;
+  unsigned GCEN:1;
+} SSPCON2bits;
+extern volatile near unsigned char       SSPCON1;
+extern volatile near struct {
+  unsigned SSPM0:1;
+  unsigned SSPM1:1;
+  unsigned SSPM2:1;
+  unsigned SSPM3:1;
+  unsigned CKP:1;
+  unsigned SSPEN:1;
+  unsigned SSPOV:1;
+  unsigned WCOL:1;
+} SSPCON1bits;
+extern volatile near unsigned char       SSPSTAT;
+extern volatile near union {
+  struct {
+    unsigned BF:1;
+    unsigned UA:1;
+    unsigned R_W:1;
+    unsigned S:1;
+    unsigned P:1;
+    unsigned D_A:1;
+    unsigned CKE:1;
+    unsigned SMP:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned I2C_READ:1;
+    unsigned I2C_START:1;
+    unsigned I2C_STOP:1;
+    unsigned I2C_DAT:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned NOT_W:1;
+    unsigned :2;
+    unsigned NOT_A:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned NOT_WRITE:1;
+    unsigned :2;
+    unsigned NOT_ADDRESS:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned READ_WRITE:1;
+    unsigned :2;
+    unsigned DATA_ADDRESS:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned R:1;
+    unsigned :2;
+    unsigned D:1;
+  };
+} SSPSTATbits;
+extern volatile near unsigned char       SSPADD;
+extern volatile near unsigned char       SSPBUF;
+extern volatile near unsigned char       T2CON;
+extern volatile near struct {
+  unsigned T2CKPS0:1;
+  unsigned T2CKPS1:1;
+  unsigned TMR2ON:1;
+  unsigned T2OUTPS0:1;
+  unsigned T2OUTPS1:1;
+  unsigned T2OUTPS2:1;
+  unsigned T2OUTPS3:1;
+} T2CONbits;
+extern volatile near unsigned char       PR2;
+extern volatile near unsigned char       TMR2;
+extern volatile near unsigned char       T1CON;
+extern volatile near union {
+  struct {
+    unsigned TMR1ON:1;
+    unsigned TMR1CS:1;
+    unsigned T1SYNC:1;
+    unsigned T1OSCEN:1;
+    unsigned T1CKPS0:1;
+    unsigned T1CKPS1:1;
+    unsigned T1RUN:1;
+    unsigned RD16:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned T1INSYNC:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned NOT_T1SYNC:1;
+  };
+} T1CONbits;
+extern volatile near unsigned char       TMR1L;
+extern volatile near unsigned char       TMR1H;
+extern volatile near unsigned char       RCON;
+extern volatile near union {
+  struct {
+    unsigned NOT_BOR:1;
+    unsigned NOT_POR:1;
+    unsigned NOT_PD:1;
+    unsigned NOT_TO:1;
+    unsigned NOT_RI:1;
+    unsigned :1;
+    unsigned SBOREN:1;
+    unsigned IPEN:1;
+  };
+  struct {
+    unsigned BOR:1;
+    unsigned POR:1;
+    unsigned PD:1;
+    unsigned TO:1;
+    unsigned RI:1;
+  };
+} RCONbits;
+extern volatile near unsigned char       WDTCON;
+extern volatile near union {
+  struct {
+    unsigned SWDTEN:1;
+  };
+  struct {
+    unsigned SWDTE:1;
+  };
+} WDTCONbits;
+extern volatile near unsigned char       HLVDCON;
+extern volatile near union {
+  struct {
+    unsigned LVDL0:1;
+    unsigned LVDL1:1;
+    unsigned LVDL2:1;
+    unsigned LVDL3:1;
+    unsigned LVDEN:1;
+    unsigned IRVST:1;
+  };
+  struct {
+    unsigned LVV0:1;
+    unsigned LVV1:1;
+    unsigned LVV2:1;
+    unsigned LVV3:1;
+    unsigned :1;
+    unsigned BGST:1;
+  };
+  struct {
+    unsigned HLVDL0:1;
+    unsigned HLVDL1:1;
+    unsigned HLVDL2:1;
+    unsigned HLVDL3:1;
+    unsigned HLVDEN:1;
+    unsigned :2;
+    unsigned VDIRMAG:1;
+  };
+  struct {
+    unsigned :5;
+    unsigned IVRST:1;
+  };
+} HLVDCONbits;
+extern volatile near unsigned char       LVDCON;
+extern volatile near union {
+  struct {
+    unsigned LVDL0:1;
+    unsigned LVDL1:1;
+    unsigned LVDL2:1;
+    unsigned LVDL3:1;
+    unsigned LVDEN:1;
+    unsigned IRVST:1;
+  };
+  struct {
+    unsigned LVV0:1;
+    unsigned LVV1:1;
+    unsigned LVV2:1;
+    unsigned LVV3:1;
+    unsigned :1;
+    unsigned BGST:1;
+  };
+  struct {
+    unsigned HLVDL0:1;
+    unsigned HLVDL1:1;
+    unsigned HLVDL2:1;
+    unsigned HLVDL3:1;
+    unsigned HLVDEN:1;
+    unsigned :2;
+    unsigned VDIRMAG:1;
+  };
+  struct {
+    unsigned :5;
+    unsigned IVRST:1;
+  };
+} LVDCONbits;
+extern volatile near unsigned char       OSCCON;
+extern volatile near struct {
+  unsigned SCS0:1;
+  unsigned SCS1:1;
+  unsigned IOFS:1;
+  unsigned OSTS:1;
+  unsigned IRCF0:1;
+  unsigned IRCF1:1;
+  unsigned IRCF2:1;
+  unsigned IDLEN:1;
+} OSCCONbits;
+extern volatile near unsigned char       T0CON;
+extern volatile near union {
+  struct {
+    unsigned T0PS0:1;
+    unsigned T0PS1:1;
+    unsigned T0PS2:1;
+    unsigned PSA:1;
+    unsigned T0SE:1;
+    unsigned T0CS:1;
+    unsigned T08BIT:1;
+    unsigned TMR0ON:1;
+  };
+  struct {
+    unsigned :3;
+    unsigned T0PS3:1;
+  };
+} T0CONbits;
+extern volatile near unsigned char       TMR0L;
+extern volatile near unsigned char       TMR0H;
+extern          near unsigned char       STATUS;
+extern          near struct {
+  unsigned C:1;
+  unsigned DC:1;
+  unsigned Z:1;
+  unsigned OV:1;
+  unsigned N:1;
+} STATUSbits;
+extern          near unsigned            FSR2;
+extern          near unsigned char       FSR2L;
+extern          near unsigned char       FSR2H;
+extern volatile near unsigned char       PLUSW2;
+extern volatile near unsigned char       PREINC2;
+extern volatile near unsigned char       POSTDEC2;
+extern volatile near unsigned char       POSTINC2;
+extern          near unsigned char       INDF2;
+extern          near unsigned char       BSR;
+extern          near unsigned            FSR1;
+extern          near unsigned char       FSR1L;
+extern          near unsigned char       FSR1H;
+extern volatile near unsigned char       PLUSW1;
+extern volatile near unsigned char       PREINC1;
+extern volatile near unsigned char       POSTDEC1;
+extern volatile near unsigned char       POSTINC1;
+extern          near unsigned char       INDF1;
+extern          near unsigned char       WREG;
+extern          near unsigned            FSR0;
+extern          near unsigned char       FSR0L;
+extern          near unsigned char       FSR0H;
+extern volatile near unsigned char       PLUSW0;
+extern volatile near unsigned char       PREINC0;
+extern volatile near unsigned char       POSTDEC0;
+extern volatile near unsigned char       POSTINC0;
+extern          near unsigned char       INDF0;
+extern volatile near unsigned char       INTCON3;
+extern volatile near union {
+  struct {
+    unsigned INT1IF:1;
+    unsigned INT2IF:1;
+    unsigned :1;
+    unsigned INT1IE:1;
+    unsigned INT2IE:1;
+    unsigned :1;
+    unsigned INT1IP:1;
+    unsigned INT2IP:1;
+  };
+  struct {
+    unsigned INT1F:1;
+    unsigned INT2F:1;
+    unsigned :1;
+    unsigned INT1E:1;
+    unsigned INT2E:1;
+    unsigned :1;
+    unsigned INT1P:1;
+    unsigned INT2P:1;
+  };
+} INTCON3bits;
+extern volatile near unsigned char       INTCON2;
+extern volatile near union {
+  struct {
+    unsigned RBIP:1;
+    unsigned :1;
+    unsigned TMR0IP:1;
+    unsigned :1;
+    unsigned INTEDG2:1;
+    unsigned INTEDG1:1;
+    unsigned INTEDG0:1;
+    unsigned NOT_RBPU:1;
+  };
+  struct {
+    unsigned :2;
+    unsigned T0IP:1;
+    unsigned :4;
+    unsigned RBPU:1;
+  };
+} INTCON2bits;
+extern volatile near unsigned char       INTCON;
+extern volatile near union {
+  struct {
+    unsigned RBIF:1;
+    unsigned INT0IF:1;
+    unsigned TMR0IF:1;
+    unsigned RBIE:1;
+    unsigned INT0IE:1;
+    unsigned TMR0IE:1;
+    unsigned PEIE:1;
+    unsigned GIE:1;
+  };
+  struct {
+    unsigned :1;
+    unsigned INT0F:1;
+    unsigned T0IF:1;
+    unsigned :1;
+    unsigned INT0E:1;
+    unsigned T0IE:1;
+    unsigned GIEL:1;
+    unsigned GIEH:1;
+  };
+} INTCONbits;
+extern          near unsigned            PROD;
+extern          near unsigned char       PRODL;
+extern          near unsigned char       PRODH;
+extern volatile near unsigned char       TABLAT;
+extern volatile near unsigned short long TBLPTR;
+extern volatile near unsigned char       TBLPTRL;
+extern volatile near unsigned char       TBLPTRH;
+extern volatile near unsigned char       TBLPTRU;
+extern volatile near unsigned short long PC;
+extern volatile near unsigned char       PCL;
+extern volatile near unsigned char       PCLATH;
+extern volatile near unsigned char       PCLATU;
+extern volatile near unsigned char       STKPTR;
+extern volatile near union {
+  struct {
+    unsigned STKPTR0:1;
+    unsigned STKPTR1:1;
+    unsigned STKPTR2:1;
+    unsigned STKPTR3:1;
+    unsigned STKPTR4:1;
+    unsigned :1;
+    unsigned STKUNF:1;
+    unsigned STKOVF:1;
+  };
+  struct {
+    unsigned SP0:1;
+    unsigned SP1:1;
+    unsigned SP2:1;
+    unsigned SP3:1;
+    unsigned SP4:1;
+    unsigned :2;
+    unsigned STKFUL:1;
+  };
+} STKPTRbits;
+extern          near unsigned short long TOS;
+extern          near unsigned char       TOSL;
+extern          near unsigned char       TOSH;
+extern          near unsigned char       TOSU;
+
+#pragma varlocate 13 RXF6SIDH
+#pragma varlocate 13 RXF6SIDHbits
+#pragma varlocate 13 RXF6SIDL
+#pragma varlocate 13 RXF6SIDLbits
+#pragma varlocate 13 RXF6EIDH
+#pragma varlocate 13 RXF6EIDHbits
+#pragma varlocate 13 RXF6EIDL
+#pragma varlocate 13 RXF6EIDLbits
+#pragma varlocate 13 RXF7SIDH
+#pragma varlocate 13 RXF7SIDHbits
+#pragma varlocate 13 RXF7SIDL
+#pragma varlocate 13 RXF7SIDLbits
+#pragma varlocate 13 RXF7EIDH
+#pragma varlocate 13 RXF7EIDHbits
+#pragma varlocate 13 RXF7EIDL
+#pragma varlocate 13 RXF7EIDLbits
+#pragma varlocate 13 RXF8SIDH
+#pragma varlocate 13 RXF8SIDHbits
+#pragma varlocate 13 RXF8SIDL
+#pragma varlocate 13 RXF8SIDLbits
+#pragma varlocate 13 RXF8EIDH
+#pragma varlocate 13 RXF8EIDHbits
+#pragma varlocate 13 RXF8EIDL
+#pragma varlocate 13 RXF8EIDLbits
+#pragma varlocate 13 RXF9SIDH
+#pragma varlocate 13 RXF9SIDHbits
+#pragma varlocate 13 RXF9SIDL
+#pragma varlocate 13 RXF9SIDLbits
+#pragma varlocate 13 RXF9EIDH
+#pragma varlocate 13 RXF9EIDHbits
+#pragma varlocate 13 RXF9EIDL
+#pragma varlocate 13 RXF9EIDLbits
+#pragma varlocate 13 RXF10SIDH
+#pragma varlocate 13 RXF10SIDHbits
+#pragma varlocate 13 RXF10SIDL
+#pragma varlocate 13 RXF10SIDLbits
+#pragma varlocate 13 RXF10EIDH
+#pragma varlocate 13 RXF10EIDHbits
+#pragma varlocate 13 RXF10EIDL
+#pragma varlocate 13 RXF10EIDLbits
+#pragma varlocate 13 RXF11SIDH
+#pragma varlocate 13 RXF11SIDHbits
+#pragma varlocate 13 RXF11SIDL
+#pragma varlocate 13 RXF11SIDLbits
+#pragma varlocate 13 RXF11EIDH
+#pragma varlocate 13 RXF11EIDHbits
+#pragma varlocate 13 RXF11EIDL
+#pragma varlocate 13 RXF11EIDLbits
+#pragma varlocate 13 RXF12SIDH
+#pragma varlocate 13 RXF12SIDHbits
+#pragma varlocate 13 RXF12SIDL
+#pragma varlocate 13 RXF12SIDLbits
+#pragma varlocate 13 RXF12EIDH
+#pragma varlocate 13 RXF12EIDHbits
+#pragma varlocate 13 RXF12EIDL
+#pragma varlocate 13 RXF12EIDLbits
+#pragma varlocate 13 RXF13SIDH
+#pragma varlocate 13 RXF13SIDHbits
+#pragma varlocate 13 RXF13SIDL
+#pragma varlocate 13 RXF13SIDLbits
+#pragma varlocate 13 RXF13EIDH
+#pragma varlocate 13 RXF13EIDHbits
+#pragma varlocate 13 RXF13EIDL
+#pragma varlocate 13 RXF13EIDLbits
+#pragma varlocate 13 RXF14SIDH
+#pragma varlocate 13 RXF14SIDHbits
+#pragma varlocate 13 RXF14SIDL
+#pragma varlocate 13 RXF14SIDLbits
+#pragma varlocate 13 RXF14EIDH
+#pragma varlocate 13 RXF14EIDHbits
+#pragma varlocate 13 RXF14EIDL
+#pragma varlocate 13 RXF14EIDLbits
+#pragma varlocate 13 RXF15SIDH
+#pragma varlocate 13 RXF15SIDHbits
+#pragma varlocate 13 RXF15SIDL
+#pragma varlocate 13 RXF15SIDLbits
+#pragma varlocate 13 RXF15EIDH
+#pragma varlocate 13 RXF15EIDHbits
+#pragma varlocate 13 RXF15EIDL
+#pragma varlocate 13 RXF15EIDLbits
+#pragma varlocate 13 RXFCON0
+#pragma varlocate 13 RXFCON0bits
+#pragma varlocate 13 RXFCON1
+#pragma varlocate 13 RXFCON1bits
+#pragma varlocate 13 SDFLC
+#pragma varlocate 13 SDFLCbits
+#pragma varlocate 13 RXFBCON0
+#pragma varlocate 13 RXFBCON0bits
+#pragma varlocate 13 RXFBCON1
+#pragma varlocate 13 RXFBCON1bits
+#pragma varlocate 13 RXFBCON2
+#pragma varlocate 13 RXFBCON2bits
+#pragma varlocate 13 RXFBCON3
+#pragma varlocate 13 RXFBCON3bits
+#pragma varlocate 13 RXFBCON4
+#pragma varlocate 13 RXFBCON4bits
+#pragma varlocate 13 RXFBCON5
+#pragma varlocate 13 RXFBCON5bits
+#pragma varlocate 13 RXFBCON6
+#pragma varlocate 13 RXFBCON6bits
+#pragma varlocate 13 RXFBCON7
+#pragma varlocate 13 RXFBCON7bits
+#pragma varlocate 13 MSEL0
+#pragma varlocate 13 MSEL0bits
+#pragma varlocate 13 MSEL1
+#pragma varlocate 13 MSEL1bits
+#pragma varlocate 13 MSEL2
+#pragma varlocate 13 MSEL2bits
+#pragma varlocate 13 MSEL3
+#pragma varlocate 13 MSEL3bits
+#pragma varlocate 13 BSEL0
+#pragma varlocate 13 BSEL0bits
+#pragma varlocate 13 BIE0
+#pragma varlocate 13 BIE0bits
+#pragma varlocate 13 TXBIE
+#pragma varlocate 13 TXBIEbits
+#pragma varlocate 14 B0CON
+#pragma varlocate 14 B0CONbits
+#pragma varlocate 14 B0SIDH
+#pragma varlocate 14 B0SIDHbits
+#pragma varlocate 14 B0SIDL
+#pragma varlocate 14 B0SIDLbits
+#pragma varlocate 14 B0EIDH
+#pragma varlocate 14 B0EIDHbits
+#pragma varlocate 14 B0EIDL
+#pragma varlocate 14 B0EIDLbits
+#pragma varlocate 14 B0DLC
+#pragma varlocate 14 B0DLCbits
+#pragma varlocate 14 B0D0
+#pragma varlocate 14 B0D0bits
+#pragma varlocate 14 B0D1
+#pragma varlocate 14 B0D1bits
+#pragma varlocate 14 B0D2
+#pragma varlocate 14 B0D2bits
+#pragma varlocate 14 B0D3
+#pragma varlocate 14 B0D3bits
+#pragma varlocate 14 B0D4
+#pragma varlocate 14 B0D4bits
+#pragma varlocate 14 B0D5
+#pragma varlocate 14 B0D5bits
+#pragma varlocate 14 B0D6
+#pragma varlocate 14 B0D6bits
+#pragma varlocate 14 B0D7
+#pragma varlocate 14 B0D7bits
+#pragma varlocate 14 CANSTAT_RO9
+#pragma varlocate 14 CANSTAT_RO9bits
+#pragma varlocate 14 CANCON_RO9
+#pragma varlocate 14 CANCON_RO9bits
+#pragma varlocate 14 B1CON
+#pragma varlocate 14 B1CONbits
+#pragma varlocate 14 B1SIDH
+#pragma varlocate 14 B1SIDHbits
+#pragma varlocate 14 B1SIDL
+#pragma varlocate 14 B1SIDLbits
+#pragma varlocate 14 B1EIDH
+#pragma varlocate 14 B1EIDHbits
+#pragma varlocate 14 B1EIDL
+#pragma varlocate 14 B1EIDLbits
+#pragma varlocate 14 B1DLC
+#pragma varlocate 14 B1DLCbits
+#pragma varlocate 14 B1D0
+#pragma varlocate 14 B1D0bits
+#pragma varlocate 14 B1D1
+#pragma varlocate 14 B1D1bits
+#pragma varlocate 14 B1D2
+#pragma varlocate 14 B1D2bits
+#pragma varlocate 14 B1D3
+#pragma varlocate 14 B1D3bits
+#pragma varlocate 14 B1D4
+#pragma varlocate 14 B1D4bits
+#pragma varlocate 14 B1D5
+#pragma varlocate 14 B1D5bits
+#pragma varlocate 14 B1D6
+#pragma varlocate 14 B1D6bits
+#pragma varlocate 14 B1D7
+#pragma varlocate 14 B1D7bits
+#pragma varlocate 14 CANSTAT_RO8
+#pragma varlocate 14 CANSTAT_RO8bits
+#pragma varlocate 14 CANCON_RO8
+#pragma varlocate 14 CANCON_RO8bits
+#pragma varlocate 14 B2CON
+#pragma varlocate 14 B2CONbits
+#pragma varlocate 14 B2SIDH
+#pragma varlocate 14 B2SIDHbits
+#pragma varlocate 14 B2SIDL
+#pragma varlocate 14 B2SIDLbits
+#pragma varlocate 14 B2EIDH
+#pragma varlocate 14 B2EIDHbits
+#pragma varlocate 14 B2EIDL
+#pragma varlocate 14 B2EIDLbits
+#pragma varlocate 14 B2DLC
+#pragma varlocate 14 B2DLCbits
+#pragma varlocate 14 B2D0
+#pragma varlocate 14 B2D0bits
+#pragma varlocate 14 B2D1
+#pragma varlocate 14 B2D1bits
+#pragma varlocate 14 B2D2
+#pragma varlocate 14 B2D2bits
+#pragma varlocate 14 B2D3
+#pragma varlocate 14 B2D3bits
+#pragma varlocate 14 B2D4
+#pragma varlocate 14 B2D4bits
+#pragma varlocate 14 B2D5
+#pragma varlocate 14 B2D5bits
+#pragma varlocate 14 B2D6
+#pragma varlocate 14 B2D6bits
+#pragma varlocate 14 B2D7
+#pragma varlocate 14 B2D7bits
+#pragma varlocate 14 CANSTAT_RO7
+#pragma varlocate 14 CANSTAT_RO7bits
+#pragma varlocate 14 CANCON_RO7
+#pragma varlocate 14 CANCON_RO7bits
+#pragma varlocate 14 B3CON
+#pragma varlocate 14 B3CONbits
+#pragma varlocate 14 B3SIDH
+#pragma varlocate 14 B3SIDHbits
+#pragma varlocate 14 B3SIDL
+#pragma varlocate 14 B3SIDLbits
+#pragma varlocate 14 B3EIDH
+#pragma varlocate 14 B3EIDHbits
+#pragma varlocate 14 B3EIDL
+#pragma varlocate 14 B3EIDLbits
+#pragma varlocate 14 B3DLC
+#pragma varlocate 14 B3DLCbits
+#pragma varlocate 14 B3D0
+#pragma varlocate 14 B3D0bits
+#pragma varlocate 14 B3D1
+#pragma varlocate 14 B3D1bits
+#pragma varlocate 14 B3D2
+#pragma varlocate 14 B3D2bits
+#pragma varlocate 14 B3D3
+#pragma varlocate 14 B3D3bits
+#pragma varlocate 14 B3D4
+#pragma varlocate 14 B3D4bits
+#pragma varlocate 14 B3D5
+#pragma varlocate 14 B3D5bits
+#pragma varlocate 14 B3D6
+#pragma varlocate 14 B3D6bits
+#pragma varlocate 14 B3D7
+#pragma varlocate 14 B3D7bits
+#pragma varlocate 14 CANSTAT_RO6
+#pragma varlocate 14 CANSTAT_RO6bits
+#pragma varlocate 14 CANCON_RO6
+#pragma varlocate 14 CANCON_RO6bits
+#pragma varlocate 14 B4CON
+#pragma varlocate 14 B4CONbits
+#pragma varlocate 14 B4SIDH
+#pragma varlocate 14 B4SIDHbits
+#pragma varlocate 14 B4SIDL
+#pragma varlocate 14 B4SIDLbits
+#pragma varlocate 14 B4EIDH
+#pragma varlocate 14 B4EIDHbits
+#pragma varlocate 14 B4EIDL
+#pragma varlocate 14 B4EIDLbits
+#pragma varlocate 14 B4DLC
+#pragma varlocate 14 B4DLCbits
+#pragma varlocate 14 B4D0
+#pragma varlocate 14 B4D0bits
+#pragma varlocate 14 B4D1
+#pragma varlocate 14 B4D1bits
+#pragma varlocate 14 B4D2
+#pragma varlocate 14 B4D2bits
+#pragma varlocate 14 B4D3
+#pragma varlocate 14 B4D3bits
+#pragma varlocate 14 B4D4
+#pragma varlocate 14 B4D4bits
+#pragma varlocate 14 B4D5
+#pragma varlocate 14 B4D5bits
+#pragma varlocate 14 B4D6
+#pragma varlocate 14 B4D6bits
+#pragma varlocate 14 B4D7
+#pragma varlocate 14 B4D7bits
+#pragma varlocate 14 CANSTAT_RO5
+#pragma varlocate 14 CANSTAT_RO5bits
+#pragma varlocate 14 CANCON_RO5
+#pragma varlocate 14 CANCON_RO5bits
+#pragma varlocate 14 B5CON
+#pragma varlocate 14 B5CONbits
+#pragma varlocate 14 B5SIDH
+#pragma varlocate 14 B5SIDHbits
+#pragma varlocate 14 B5SIDL
+#pragma varlocate 14 B5SIDLbits
+#pragma varlocate 14 B5EIDH
+#pragma varlocate 14 B5EIDHbits
+#pragma varlocate 14 B5EIDL
+#pragma varlocate 14 B5EIDLbits
+#pragma varlocate 14 B5DLC
+#pragma varlocate 14 B5DLCbits
+#pragma varlocate 14 B5D0
+#pragma varlocate 14 B5D0bits
+#pragma varlocate 14 B5D1
+#pragma varlocate 14 B5D1bits
+#pragma varlocate 14 B5D2
+#pragma varlocate 14 B5D2bits
+#pragma varlocate 14 B5D3
+#pragma varlocate 14 B5D3bits
+#pragma varlocate 14 B5D4
+#pragma varlocate 14 B5D4bits
+#pragma varlocate 14 B5D5
+#pragma varlocate 14 B5D5bits
+#pragma varlocate 14 B5D6
+#pragma varlocate 14 B5D6bits
+#pragma varlocate 14 B5D7
+#pragma varlocate 14 B5D7bits
+#pragma varlocate 14 CANSTAT_RO4
+#pragma varlocate 14 CANSTAT_RO4bits
+#pragma varlocate 14 CANCON_RO4
+#pragma varlocate 14 CANCON_RO4bits
+#pragma varlocate 15 RXF0SIDH
+#pragma varlocate 15 RXF0SIDHbits
+#pragma varlocate 15 RXF0SIDL
+#pragma varlocate 15 RXF0SIDLbits
+#pragma varlocate 15 RXF0EIDH
+#pragma varlocate 15 RXF0EIDHbits
+#pragma varlocate 15 RXF0EIDL
+#pragma varlocate 15 RXF0EIDLbits
+#pragma varlocate 15 RXF1SIDH
+#pragma varlocate 15 RXF1SIDHbits
+#pragma varlocate 15 RXF1SIDL
+#pragma varlocate 15 RXF1SIDLbits
+#pragma varlocate 15 RXF1EIDH
+#pragma varlocate 15 RXF1EIDHbits
+#pragma varlocate 15 RXF1EIDL
+#pragma varlocate 15 RXF1EIDLbits
+#pragma varlocate 15 RXF2SIDH
+#pragma varlocate 15 RXF2SIDHbits
+#pragma varlocate 15 RXF2SIDL
+#pragma varlocate 15 RXF2SIDLbits
+#pragma varlocate 15 RXF2EIDH
+#pragma varlocate 15 RXF2EIDHbits
+#pragma varlocate 15 RXF2EIDL
+#pragma varlocate 15 RXF2EIDLbits
+#pragma varlocate 15 RXF3SIDH
+#pragma varlocate 15 RXF3SIDHbits
+#pragma varlocate 15 RXF3SIDL
+#pragma varlocate 15 RXF3SIDLbits
+#pragma varlocate 15 RXF3EIDH
+#pragma varlocate 15 RXF3EIDHbits
+#pragma varlocate 15 RXF3EIDL
+#pragma varlocate 15 RXF3EIDLbits
+#pragma varlocate 15 RXF4SIDH
+#pragma varlocate 15 RXF4SIDHbits
+#pragma varlocate 15 RXF4SIDL
+#pragma varlocate 15 RXF4SIDLbits
+#pragma varlocate 15 RXF4EIDH
+#pragma varlocate 15 RXF4EIDHbits
+#pragma varlocate 15 RXF4EIDL
+#pragma varlocate 15 RXF4EIDLbits
+#pragma varlocate 15 RXF5SIDH
+#pragma varlocate 15 RXF5SIDHbits
+#pragma varlocate 15 RXF5SIDL
+#pragma varlocate 15 RXF5SIDLbits
+#pragma varlocate 15 RXF5EIDH
+#pragma varlocate 15 RXF5EIDHbits
+#pragma varlocate 15 RXF5EIDL
+#pragma varlocate 15 RXF5EIDLbits
+#pragma varlocate 15 RXM0SIDH
+#pragma varlocate 15 RXM0SIDHbits
+#pragma varlocate 15 RXM0SIDL
+#pragma varlocate 15 RXM0SIDLbits
+#pragma varlocate 15 RXM0EIDH
+#pragma varlocate 15 RXM0EIDHbits
+#pragma varlocate 15 RXM0EIDL
+#pragma varlocate 15 RXM0EIDLbits
+#pragma varlocate 15 RXM1SIDH
+#pragma varlocate 15 RXM1SIDHbits
+#pragma varlocate 15 RXM1SIDL
+#pragma varlocate 15 RXM1SIDLbits
+#pragma varlocate 15 RXM1EIDH
+#pragma varlocate 15 RXM1EIDHbits
+#pragma varlocate 15 RXM1EIDL
+#pragma varlocate 15 RXM1EIDLbits
+#pragma varlocate 15 TXB2CON
+#pragma varlocate 15 TXB2CONbits
+#pragma varlocate 15 TXB2SIDH
+#pragma varlocate 15 TXB2SIDHbits
+#pragma varlocate 15 TXB2SIDL
+#pragma varlocate 15 TXB2SIDLbits
+#pragma varlocate 15 TXB2EIDH
+#pragma varlocate 15 TXB2EIDHbits
+#pragma varlocate 15 TXB2EIDL
+#pragma varlocate 15 TXB2EIDLbits
+#pragma varlocate 15 TXB2DLC
+#pragma varlocate 15 TXB2DLCbits
+#pragma varlocate 15 TXB2D0
+#pragma varlocate 15 TXB2D0bits
+#pragma varlocate 15 TXB2D1
+#pragma varlocate 15 TXB2D1bits
+#pragma varlocate 15 TXB2D2
+#pragma varlocate 15 TXB2D2bits
+#pragma varlocate 15 TXB2D3
+#pragma varlocate 15 TXB2D3bits
+#pragma varlocate 15 TXB2D4
+#pragma varlocate 15 TXB2D4bits
+#pragma varlocate 15 TXB2D5
+#pragma varlocate 15 TXB2D5bits
+#pragma varlocate 15 TXB2D6
+#pragma varlocate 15 TXB2D6bits
+#pragma varlocate 15 TXB2D7
+#pragma varlocate 15 TXB2D7bits
+#pragma varlocate 15 CANSTAT_RO3
+#pragma varlocate 15 CANSTAT_RO3bits
+#pragma varlocate 15 CANCON_RO3
+#pragma varlocate 15 CANCON_RO3bits
+#pragma varlocate 15 TXB1CON
+#pragma varlocate 15 TXB1CONbits
+#pragma varlocate 15 TXB1SIDH
+#pragma varlocate 15 TXB1SIDHbits
+#pragma varlocate 15 TXB1SIDL
+#pragma varlocate 15 TXB1SIDLbits
+#pragma varlocate 15 TXB1EIDH
+#pragma varlocate 15 TXB1EIDHbits
+#pragma varlocate 15 TXB1EIDL
+#pragma varlocate 15 TXB1EIDLbits
+#pragma varlocate 15 TXB1DLC
+#pragma varlocate 15 TXB1DLCbits
+#pragma varlocate 15 TXB1D0
+#pragma varlocate 15 TXB1D0bits
+#pragma varlocate 15 TXB1D1
+#pragma varlocate 15 TXB1D1bits
+#pragma varlocate 15 TXB1D2
+#pragma varlocate 15 TXB1D2bits
+#pragma varlocate 15 TXB1D3
+#pragma varlocate 15 TXB1D3bits
+#pragma varlocate 15 TXB1D4
+#pragma varlocate 15 TXB1D4bits
+#pragma varlocate 15 TXB1D5
+#pragma varlocate 15 TXB1D5bits
+#pragma varlocate 15 TXB1D6
+#pragma varlocate 15 TXB1D6bits
+#pragma varlocate 15 TXB1D7
+#pragma varlocate 15 TXB1D7bits
+#pragma varlocate 15 CANSTAT_RO2
+#pragma varlocate 15 CANSTAT_RO2bits
+#pragma varlocate 15 CANCON_RO2
+#pragma varlocate 15 CANCON_RO2bits
+#pragma varlocate 15 TXB0CON
+#pragma varlocate 15 TXB0CONbits
+#pragma varlocate 15 TXB0SIDH
+#pragma varlocate 15 TXB0SIDHbits
+#pragma varlocate 15 TXB0SIDL
+#pragma varlocate 15 TXB0SIDLbits
+#pragma varlocate 15 TXB0EIDH
+#pragma varlocate 15 TXB0EIDHbits
+#pragma varlocate 15 TXB0EIDL
+#pragma varlocate 15 TXB0EIDLbits
+#pragma varlocate 15 TXB0DLC
+#pragma varlocate 15 TXB0DLCbits
+#pragma varlocate 15 TXB0D0
+#pragma varlocate 15 TXB0D0bits
+#pragma varlocate 15 TXB0D1
+#pragma varlocate 15 TXB0D1bits
+#pragma varlocate 15 TXB0D2
+#pragma varlocate 15 TXB0D2bits
+#pragma varlocate 15 TXB0D3
+#pragma varlocate 15 TXB0D3bits
+#pragma varlocate 15 TXB0D4
+#pragma varlocate 15 TXB0D4bits
+#pragma varlocate 15 TXB0D5
+#pragma varlocate 15 TXB0D5bits
+#pragma varlocate 15 TXB0D6
+#pragma varlocate 15 TXB0D6bits
+#pragma varlocate 15 TXB0D7
+#pragma varlocate 15 TXB0D7bits
+#pragma varlocate 15 CANSTAT_RO1
+#pragma varlocate 15 CANSTAT_RO1bits
+#pragma varlocate 15 CANCON_RO1
+#pragma varlocate 15 CANCON_RO1bits
+#pragma varlocate 15 RXB1CON
+#pragma varlocate 15 RXB1CONbits
+#pragma varlocate 15 RXB1SIDH
+#pragma varlocate 15 RXB1SIDHbits
+#pragma varlocate 15 RXB1SIDL
+#pragma varlocate 15 RXB1SIDLbits
+#pragma varlocate 15 RXB1EIDH
+#pragma varlocate 15 RXB1EIDHbits
+#pragma varlocate 15 RXB1EIDL
+#pragma varlocate 15 RXB1EIDLbits
+#pragma varlocate 15 RXB1DLC
+#pragma varlocate 15 RXB1DLCbits
+#pragma varlocate 15 RXB1D0
+#pragma varlocate 15 RXB1D0bits
+#pragma varlocate 15 RXB1D1
+#pragma varlocate 15 RXB1D1bits
+#pragma varlocate 15 RXB1D2
+#pragma varlocate 15 RXB1D2bits
+#pragma varlocate 15 RXB1D3
+#pragma varlocate 15 RXB1D3bits
+#pragma varlocate 15 RXB1D4
+#pragma varlocate 15 RXB1D4bits
+#pragma varlocate 15 RXB1D5
+#pragma varlocate 15 RXB1D5bits
+#pragma varlocate 15 RXB1D6
+#pragma varlocate 15 RXB1D6bits
+#pragma varlocate 15 RXB1D7
+#pragma varlocate 15 RXB1D7bits
+#pragma varlocate 15 CANSTAT_RO0
+#pragma varlocate 15 CANSTAT_RO0bits
+#pragma varlocate 15 CANCON_RO0
+#pragma varlocate 15 CANCON_RO0bits
+
+
+#line 4978 "C:/MCC18/h/p18f4685.h"
+ 
+#line 4980 "C:/MCC18/h/p18f4685.h"
+#line 4981 "C:/MCC18/h/p18f4685.h"
+
+
+#line 4984 "C:/MCC18/h/p18f4685.h"
+ 
+#line 4986 "C:/MCC18/h/p18f4685.h"
+#line 4987 "C:/MCC18/h/p18f4685.h"
+#line 4988 "C:/MCC18/h/p18f4685.h"
+#line 4989 "C:/MCC18/h/p18f4685.h"
+
+#line 4991 "C:/MCC18/h/p18f4685.h"
+#line 4992 "C:/MCC18/h/p18f4685.h"
+#line 4993 "C:/MCC18/h/p18f4685.h"
+#line 4994 "C:/MCC18/h/p18f4685.h"
+#line 4995 "C:/MCC18/h/p18f4685.h"
+
+
+#line 4999 "C:/MCC18/h/p18f4685.h"
+ 
+#line 5001 "C:/MCC18/h/p18f4685.h"
+
+
+#line 5004 "C:/MCC18/h/p18f4685.h"
+#line 80 "p2_deco_main - 090915b.c"
+
+#line 1 "C:/MCC18/h/math.h"
+ 
+
+#line 4 "C:/MCC18/h/math.h"
+
+typedef float float_t;
+typedef float double_t;
+
+#line 9 "C:/MCC18/h/math.h"
+#line 10 "C:/MCC18/h/math.h"
+#line 11 "C:/MCC18/h/math.h"
+
+float fabs (auto float x);
+float ldexp (auto float x, auto int n);
+float exp (auto float f);
+float sqrt (auto float x);
+float asin (auto float x);
+float acos (auto float x);
+float atan2 (auto float y, auto float x);
+float atan (auto float x);
+float sin (auto float x);
+float cos (auto float x);
+float tan (auto float x);
+float sinh (auto float x);
+float cosh (auto float x);
+float tanh (auto float x);
+float frexp (auto float x, auto int *pexp);
+float log10 (auto float x);
+float log (auto float x);
+float pow (auto float x, auto float y);
+float ceil (auto float x);
+float floor (auto float x);
+float modf (auto float x, auto float *ipart);
+float fmod (auto float x, auto float y);
+
+float mchptoieee (auto unsigned long v);
+unsigned long ieeetomchp (auto float v);
+
+#line 39 "C:/MCC18/h/math.h"
+#line 81 "p2_deco_main - 090915b.c"
+
+
+
+
+
+
+ #pragma config OSC = IRCIO67
+ #pragma config FCMEN = OFF
+ #pragma config IESO = OFF
+ #pragma config PWRT = ON
+ #pragma config BOREN = OFF
+ #pragma config WDT = OFF
+ #pragma config WDTPS = 128
+ #pragma config MCLRE = ON
+ #pragma config LPT1OSC = OFF
+ #pragma config PBADEN = OFF
+ #pragma config DEBUG = OFF
+ #pragma config XINST = OFF
+ #pragma config LVP = OFF
+ #pragma config STVREN = OFF
+
+
+
+
+
+#line 107 "p2_deco_main - 090915b.c"
+#line 108 "p2_deco_main - 090915b.c"
+#line 109 "p2_deco_main - 090915b.c"
+
+
+#line 112 "p2_deco_main - 090915b.c"
+#line 113 "p2_deco_main - 090915b.c"
+#line 114 "p2_deco_main - 090915b.c"
+#line 115 "p2_deco_main - 090915b.c"
+
+#line 117 "p2_deco_main - 090915b.c"
+#line 118 "p2_deco_main - 090915b.c"
+#line 119 "p2_deco_main - 090915b.c"
+#line 120 "p2_deco_main - 090915b.c"
+
+#line 122 "p2_deco_main - 090915b.c"
+#line 123 "p2_deco_main - 090915b.c"
+#line 124 "p2_deco_main - 090915b.c"
+#line 125 "p2_deco_main - 090915b.c"
+
+#line 127 "p2_deco_main - 090915b.c"
+#line 128 "p2_deco_main - 090915b.c"
+#line 129 "p2_deco_main - 090915b.c"
+#line 130 "p2_deco_main - 090915b.c"
+
+
+#line 133 "p2_deco_main - 090915b.c"
+#line 134 "p2_deco_main - 090915b.c"
+#line 135 "p2_deco_main - 090915b.c"
+#line 136 "p2_deco_main - 090915b.c"
+
+#line 138 "p2_deco_main - 090915b.c"
+#line 139 "p2_deco_main - 090915b.c"
+#line 140 "p2_deco_main - 090915b.c"
+#line 141 "p2_deco_main - 090915b.c"
+
+#line 143 "p2_deco_main - 090915b.c"
+#line 144 "p2_deco_main - 090915b.c"
+#line 145 "p2_deco_main - 090915b.c"
+#line 146 "p2_deco_main - 090915b.c"
+
+#line 148 "p2_deco_main - 090915b.c"
+#line 149 "p2_deco_main - 090915b.c"
+#line 150 "p2_deco_main - 090915b.c"
+#line 151 "p2_deco_main - 090915b.c"
+
+
+#line 154 "p2_deco_main - 090915b.c"
+#line 155 "p2_deco_main - 090915b.c"
+#line 156 "p2_deco_main - 090915b.c"
+#line 157 "p2_deco_main - 090915b.c"
+
+#line 159 "p2_deco_main - 090915b.c"
+#line 160 "p2_deco_main - 090915b.c"
+#line 161 "p2_deco_main - 090915b.c"
+#line 162 "p2_deco_main - 090915b.c"
+
+#line 164 "p2_deco_main - 090915b.c"
+#line 165 "p2_deco_main - 090915b.c"
+#line 166 "p2_deco_main - 090915b.c"
+#line 167 "p2_deco_main - 090915b.c"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 189 "p2_deco_main - 090915b.c"
+#line 190 "p2_deco_main - 090915b.c"
+#line 191 "p2_deco_main - 090915b.c"
+
+#line 193 "p2_deco_main - 090915b.c"
+#line 194 "p2_deco_main - 090915b.c"
+
+#line 196 "p2_deco_main - 090915b.c"
+#line 197 "p2_deco_main - 090915b.c"
+
+
+#pragma udata bank0a=0x060
+volatile unsigned char wp_stringstore[26];
+volatile unsigned char  wp_color1;
+volatile unsigned char  wp_color2;
+volatile unsigned char  wp_top;
+volatile unsigned char  wp_leftx2;
+volatile unsigned char  wp_font;
+volatile unsigned char  wp_invert;
+volatile unsigned char  wp_temp_U8;
+
+#pragma udata bank0b=0x081
+volatile unsigned char  wp_txtptr;
+volatile unsigned char wp_char;
+volatile unsigned char 	wp_command;
+volatile unsigned int 	wp_data_16bit;
+volatile unsigned char 	wp_data_8bit_one;
+volatile unsigned char 	wp_data_8bit_two;
+volatile unsigned int 	wp_start;
+volatile unsigned int 	wp_end;
+volatile unsigned int 	wp_i;
+volatile unsigned char  	wp_black;
+
+volatile unsigned char 	wp_debug_U8;
+
+
+#pragma udata bank0c=0x0D0
+#line 226 "p2_deco_main - 090915b.c"
+volatile unsigned char keep_free_bank0[48 ];
+
+
+#pragma udata bank1=0x100
+#line 231 "p2_deco_main - 090915b.c"
+volatile unsigned char keep_free_bank1[256 ]; 
+
+ #pragma udata bank2a=0x200
+
+ static unsigned int	int_O_tissue_for_debug[32];
+ static unsigned int	int_O_GF_spare____;						
+ static unsigned int	int_O_GF_step;							
+ static unsigned int 	int_O_gtissue_limit;					
+ static unsigned int 	int_O_gtissue_press;					
+ static unsigned int 	int_O_limit_GF_low;						
+ static unsigned int 	int_O_gtissue_press_at_GF_low;			
+
+
+ #pragma udata bank2b=0x24E
+ static unsigned char	char_O_GF_low_pointer;					
+ static unsigned char	char_O_actual_pointer;					
+ #pragma udata bank2c=0x250
+ static unsigned char	char_O_deco_table[32];					
+ #pragma udata bank2d=0x270
+ static unsigned char	char_I_table_deco_done[32];
+ #pragma udata bank2e=0x290
+ static unsigned int 	int_O_calc_tissue_call_counter;			
+
+ unsigned char 			lock_GF_depth_list;
+ static float			temp_limit;
+ static float			GF_low;
+ static float			GF_high;
+ static float			GF_delta;
+ static float			GF_temp;
+ static float			GF_step;
+ static float			GF_step2;
+ static float			temp_pres_gtissue;
+ static float			temp_pres_gtissue_diff;
+ static float			temp_pres_gtissue_limit_GF_low;
+ static float			temp_pres_gtissue_limit_GF_low_below_surface;
+ static	unsigned int	temp_depth_limit;
+ static unsigned char	temp_decotime;
+ static unsigned char	temp_gtissue_no;
+ static	unsigned int	temp_depth_last_deco;				
+
+ static unsigned char	temp_depth_GF_low_meter;
+ static unsigned char	temp_depth_GF_low_number;
+ static unsigned char	internal_deco_pointer;
+ static unsigned char	internal_deco_table[32];
+ static float			temp_pres_deco_GF_low;
+
+static unsigned int debug_temp;
+
+
+#pragma udata bank3a=0x300
+static char output[32];
+
+#pragma udata bank3b=0x380
+volatile float pres_tissue_vault[32];
+
+#pragma udata bank4a=0x400
+
+ unsigned char			ci ; 
+ unsigned char 			x;
+ unsigned int 			main_i;
+ unsigned int 			int_temp;
+ unsigned int 			int_temp_decostatus;
+ static float 			pres_respiration;
+ static float			pres_surface;
+ static float			temp1;
+ static float			temp2;
+ static float			temp3;
+ static float			temp4;
+ static float			temp_deco;
+ static float			temp_atem;
+ static float			temp2_atem;
+ static float			temp_tissue;
+ static float			temp_surface;
+ static float			N2_ratio;
+ static float			He_ratio;
+ static float			temp_ratio;
+ static float 			var_a;
+ static float 			var2_a;
+ static float 			var_b;
+ static float 			var2_b;
+ static float 			var_t05nc;
+ static float 			var2_t05nc;
+ static float  			var_e2secs;
+ static float  			var2_e2secs;
+ static float  			var_e1min;
+ static float  			var2_e1min;
+ static float  			var_halftimes;
+ static float  			var2_halftimes;
+ static float			pres_gtissue_limit;
+ static float			temp_pres_gtissue_limit;
+ static float			actual_ppO2;						
+
+ #pragma udata bank4b=0x480
+ static float			pres_tissue[32];
+
+ #pragma udata bank5=0x500
+
+
+ static unsigned int	int_I_pres_respiration;				
+ static unsigned int	int_I_pres_surface;					
+ static unsigned int	int_I_temp;							
+ static unsigned char	char_I_temp;						
+ static unsigned char	char_I_actual_ppO2;					
+ static unsigned int	int_I_spare_3;
+ static unsigned int	int_I_spare_4;
+ static unsigned int	int_I_spare_5;
+ static unsigned int	int_I_spare_6;
+ static unsigned char	char_I_N2_ratio;					
+ static unsigned char	char_I_He_ratio;					
+ static unsigned char	char_I_saturation_multiplier;		
+ static unsigned char	char_I_desaturation_multiplier; 	
+ static unsigned char	char_I_GF_High_percentage;			
+ static unsigned char	char_I_GF_Low_percentage;			
+ static unsigned char	char_I_spare;					
+ static unsigned char	char_I_deco_distance;				
+ static unsigned char	char_I_const_ppO2;					
+ static unsigned char	char_I_deco_ppO2_change;			
+ static unsigned char	char_I_deco_ppO2;					
+ static unsigned char	char_I_deco_gas_change;				
+ static unsigned char	char_I_deco_N2_ratio;				
+ static unsigned char	char_I_deco_He_ratio;				
+ static unsigned char	char_I_depth_last_deco;				
+ static unsigned char	char_I_deco_model;					
+
+ static unsigned int	int_O_desaturation_time;			
+ static unsigned char	char_O_nullzeit;					
+ static unsigned char	char_O_deco_status;					
+ static unsigned char	char_O_array_decotime[7];			
+ static unsigned char	char_O_array_decodepth[6];			
+ static unsigned char	char_O_ascenttime;					
+ static unsigned char	char_O_gradient_factor;				
+ static unsigned char	char_O_tissue_saturation[32];		
+ static unsigned char	char_O_array_gradient_weighted[16];	
+ static unsigned char	char_O_gtissue_no;					
+ static unsigned char	char_O_diluent;						
+ static unsigned char	char_O_CNS_fraction;				
+ static unsigned char	char_O_relative_gradient_GF;		
+
+
+ static float			pres_tissue_limit[16];
+ static float			sim_pres_tissue_limit[16];
+ static float			pres_diluent;						
+ static float			deco_diluent;						
+ static float			const_ppO2;							
+ static float			deco_ppO2_change;					
+ static float			deco_ppO2;							
+
+ #pragma udata bank6=0x600
+
+ static float			sim_pres_tissue[32];
+ static float			sim_pres_tissue_backup[32];
+
+ 
+ 
+
+ #pragma udata bank8=0x800
+ static char			md_pi_subst[256];
+
+ #pragma udata bank9a=0x900
+
+ static char			md_state[48];		
+ #pragma udata bank9b=0x930
+
+ static unsigned int	int_O_DBS_bitfield;					
+ static unsigned int	int_O_DBS2_bitfield;				
+ static unsigned int	int_O_DBG_pre_bitfield;				
+ static unsigned int	int_O_DBG_post_bitfield;			
+ static char			char_O_NDL_at_20mtr;				
+
+ static char			md_t;
+ static char			md_buffer[16];
+ static char			md_cksum[16];
+ static char			md_i;
+ static char			md_j;
+ static char			md_temp;
+ static unsigned int	md_pointer;
+ static float			deco_N2_ratio;						
+ static float			deco_He_ratio;						
+ static float			calc_N2_ratio;						
+ static float			calc_He_ratio;						
+ static float			deco_gas_change;					
+ static float			CNS_fraction;						
+ static float			float_saturation_multiplier;		
+ static float			float_desaturation_multiplier;		
+ static float			float_deco_distance;				
+
+ static unsigned char	DBG_char_I_deco_model;				
+ static unsigned char	DBG_char_I_depth_last_deco;			
+ static float			DBG_pres_surface;					
+ static float			DBG_GF_low;							
+ static float			DBG_GF_high;						
+ static float			DBG_const_ppO2;						
+ static float			DBG_deco_ppO2_change;				
+ static float			DBG_deco_ppO2;						
+ static float			DBG_deco_N2_ratio;					
+ static float			DBG_deco_He_ratio;					
+ static float			DBG_deco_gas_change;				
+ static float			DBG_float_saturation_multiplier;	
+ static float			DBG_float_desaturation_multiplier;	
+ static float			DBG_float_deco_distance;			
+ static float			DBG_deco_N2_ratio;					
+ static float			DBG_deco_He_ratio;					
+ static float			DBG_N2_ratio;						
+ static float			DBG_He_ratio;						
+ static char			flag_in_divemode;					
+ static	int 			int_dbg_i;							
+ unsigned int 			temp_DBS;
+
+
+
+
+void main_calc_hauptroutine(void);
+void main_calc_without_deco(void);
+void main_clear_tissue(void);
+void main_calc_percentage(void);
+void main_calc_wo_deco_step_1_min(void);
+void main_debug(void);
+void main_gradient_array(void);
+void main_hash(void);
+
+void calc_hauptroutine(void);
+void calc_tissue(void);
+void calc_nullzeit(void);
+void backup_sim_pres_tissue(void);
+void restore_sim_pres_tissue(void);
+
+void calc_without_deco(void);
+void clear_tissue(void);
+void calc_ascenttime(void);
+void update_startvalues(void);
+void clear_decoarray(void);
+void update_decoarray(void);
+void sim_tissue_1min(void);
+void sim_tissue_10min(void);
+void calc_gradient_factor(void);
+void calc_gradient_array_only(void);
+void calc_desaturation_time(void);
+void calc_wo_deco_step_1_min(void);
+void calc_tissue_step_1_min(void);
+void hash(void);
+void clear_CNS_fraction(void);
+void calc_CNS_fraction(void);
+void calc_CNS_decrease_15min(void);
+void calc_percentage(void);
+void main(void);
+void calc_hauptroutine_data_input(void);
+void calc_hauptroutine_update_tissues(void);
+void calc_hauptroutine_calc_deco(void);
+void calc_hauptroutine_calc_ascend_to_deco(void);
+void calc_nextdecodepth_GF(void);
+void copy_deco_table_GF(void);
+void clear_internal_deco_table_GF(void);
+void update_internal_deco_table_GF(void);
+void push_tissues_to_vault(void);
+void pull_tissues_from_vault(void);
+void main_push_tissues_to_vault(void);
+void main_pull_tissues_from_vault(void);
+void wordprocessor(void);
+
+
+
+
+
+#pragma romdata der_code = 0x0000
+#pragma code der_start = 0x0000
+void der_start(void)
+{
+_asm
+	goto	main
+_endasm
+}
+
+
+
+
+
+
+#pragma code main = 0x9000
+void main(void)
+{
+	for(wp_temp_U8=0;wp_temp_U8<48  - 1;wp_temp_U8++)
+		keep_free_bank0[wp_temp_U8] = 7;
+	keep_free_bank0[48  - 1] = 7;
+
+	for(wp_temp_U8=0;wp_temp_U8<256  - 1;wp_temp_U8++)
+		keep_free_bank1[wp_temp_U8] = 7;
+	keep_free_bank1[256  - 1] = 7;
+
+#line 520 "p2_deco_main - 090915b.c"
+
+
+wp_top = 10;
+wp_leftx2 = 10;
+wp_color1 = 255;
+wp_color2 = 255;
+wp_font   = 0;
+wp_invert = 0;
+wp_stringstore[0] = ' ';
+wp_stringstore[1] = '!';
+wp_stringstore[2] = '"';
+wp_stringstore[3] = ':';
+wp_stringstore[4] = 0;
+wordprocessor();
+
+GF_low = 1.0;
+GF_high = 1.0;
+
+GF_temp = GF_low * GF_high;
+
+clear_CNS_fraction();
+
+
+
+
+
+
+
+
+
+int_I_pres_respiration = 1000;
+int_I_pres_surface = 1000;
+char_I_N2_ratio = 39; 
+char_I_He_ratio = 40; 
+char_I_deco_distance = 0; 
+char_I_depth_last_deco = 3;	
+
+char_I_const_ppO2 = 0;
+char_I_deco_ppO2_change = 0; 
+char_I_deco_ppO2 = 0;
+
+char_I_deco_gas_change = 0; 
+char_I_deco_N2_ratio = 0;
+char_I_deco_He_ratio = 0;
+
+
+char_I_GF_High_percentage = 100;			
+char_I_GF_Low_percentage = 100;			
+
+char_I_saturation_multiplier = 110;
+char_I_desaturation_multiplier = 90;
+
+char_I_deco_model = 0;
+
+main_clear_tissue();
+
+int_I_pres_respiration = 1000 + int_I_pres_surface;
+main_calc_wo_deco_step_1_min();
+int_I_pres_respiration = 3000 + int_I_pres_surface;
+main_calc_wo_deco_step_1_min();
+int_I_pres_respiration = 5000 + int_I_pres_surface;
+main_calc_wo_deco_step_1_min();
+
+
+#line 587 "p2_deco_main - 090915b.c"
+ 
+
+char_O_deco_status = 255;
+while (char_O_deco_status)
+	main_calc_hauptroutine();
+_asm
+nop
+_endasm
+
+for (main_i=0;main_i<50;main_i++)
+{
+main_calc_hauptroutine();
+}
+int_I_pres_respiration = 10000;
+for (main_i=0;main_i<1500;main_i++)
+{
+main_calc_hauptroutine();
+}
+
+_asm
+nop
+_endasm
+
+
+int_I_pres_respiration = 3000;
+for (main_i=0;main_i<150;main_i++)
+{
+	calc_hauptroutine_data_input();
+	calc_hauptroutine_update_tissues();
+} 
+
+			update_startvalues();
+			clear_decoarray();
+			clear_internal_deco_table_GF();
+			calc_hauptroutine_calc_ascend_to_deco();
+ 			if (char_O_deco_status > 15)		
+			{
+				char_O_deco_status = 2;
+
+			}
+ 			else
+			{
+
+				calc_hauptroutine_calc_deco();
+			}
+
+
+_asm
+nop
+_endasm
+while (char_O_deco_status == 1)
+{
+			char_O_deco_status = 0;
+
+			calc_hauptroutine_calc_deco();
+
+_asm
+nop
+_endasm
+};
+debug_temp = 60; 
+int_I_pres_respiration = 9980;
+for (main_i=0;main_i<debug_temp;main_i++)
+{
+int_I_pres_respiration = int_I_pres_respiration - 33;
+	calc_hauptroutine_data_input();
+	calc_hauptroutine_update_tissues();
+int_I_pres_respiration = int_I_pres_respiration - 33;
+	calc_hauptroutine_data_input();
+	calc_hauptroutine_update_tissues();
+int_I_pres_respiration = int_I_pres_respiration - 34;
+	calc_hauptroutine_data_input();
+	calc_hauptroutine_update_tissues();
+} 
+_asm
+nop
+_endasm
+
+			update_startvalues();
+			clear_decoarray();
+			clear_internal_deco_table_GF();
+			calc_hauptroutine_calc_ascend_to_deco();
+ 			if (char_O_deco_status > 15)		
+			{
+				char_O_deco_status = 2;
+
+			}
+ 			else
+			{
+
+				calc_hauptroutine_calc_deco();
+			}
+
+
+_asm
+nop
+_endasm
+while (char_O_deco_status == 1)
+{
+			char_O_deco_status = 0;
+
+			calc_hauptroutine_calc_deco();
+
+_asm
+nop
+_endasm
+};
+_asm
+nop
+_endasm
+debug_temp = 60; 
+int_I_pres_respiration = 9980;
+debug_temp = debug_temp * 3;
+for (main_i=0;main_i<debug_temp;main_i++)
+{
+	calc_hauptroutine_data_input();
+	calc_hauptroutine_update_tissues();
+} 
+_asm
+nop
+_endasm
+#line 709 "p2_deco_main - 090915b.c"
+
+
+} 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma romdata font_data_small = 0x0A0C4
+rom const rom unsigned int  wp_small_data[] =
+{
+#line 1 "./ostc28.drx.txt"
+0xF803
+,0x8A01
+,0x850C
+,0x8202
+,0x850A
+,0x8302
+,0xFF94
+,0xCD00
+,0x9105
+,0x9103
+,0xC701
+,0x9105
+,0x9103
+,0xDA9D
+,0x0183
+,0x018F
+,0x0183
+,0x018F
+,0x0183
+,0x0688
+,0x0D87
+,0x0781
+,0x018F
+,0x0183
+,0x018F
+,0x0183
+,0x018F
+,0x0182
+,0x0786
+,0x0D89
+,0x0583
+,0x018F
+,0x0183
+,0x018F
+,0x0183
+,0x00A2
+,0xB402
+,0x8601
+,0x8A04
+,0x8601
+,0x8801
+,0x8102
+,0x8501
+,0x8800
+,0x8301
+,0x8600
+,0x8702
+,0x8202
+,0x8501
+,0x8512
+,0x8501
+,0x8402
+,0x8401
+,0x8700
+,0x8501
+,0x8301
+,0x8801
+,0x8402
+,0x8201
+,0x8901
+,0x8405
+,0x9203
+,0x9F9A
+,0x0392
+,0x0588
+,0x0185
+,0x0183
+,0x0185
+,0x0286
+,0x0183
+,0x0084
+,0x0289
+,0x0582
+,0x038B
+,0x0382
+,0x0292
+,0x0282
+,0x028C
+,0x0283
+,0x0489
+,0x0284
+,0x0182
+,0x0186
+,0x0385
+,0x0183
+,0x0086
+,0x0187
+,0x0182
+,0x0191
+,0x049D
+,0xA403
+,0x9106
+,0x8804
+,0x8102
+,0x8202
+,0x8608
+,0x8501
+,0x8600
+,0x8402
+,0x8501
+,0x8600
+,0x8403
+,0x8401
+,0x8601
+,0x8205
+,0x8301
+,0x8606
+,0x8202
+,0x8001
+,0x8803
+,0x8503
+,0x9402
+,0x9206
+,0x9001
+,0x8200
+,0x9DFF
+,0x9401
+,0x9006
+,0x9102
+,0xFF8B
+,0xE707
+,0x8C0C
+,0x8903
+,0x8703
+,0x8602
+,0x8B02
+,0x8401
+,0x8E02
+,0x8201
+,0x9101
+,0x8101
+,0x9102
+,0x8000
+,0x9300
+,0xB0B0
+,0x0093
+,0x0081
+,0x0191
+,0x0181
+,0x028F
+,0x0282
+,0x028D
+,0x0284
+,0x028B
+,0x0286
+,0x0387
+,0x0389
+,0x0B8D
+,0x07E7
+,0x9F00
+,0x9601
+,0x9501
+,0x8202
+,0x9000
+,0x8102
+,0x9104
+,0x8D07
+,0x8F07
+,0x9404
+,0x9200
+,0x8102
+,0x9001
+,0x8301
+,0x8F01
+,0x9500
+,0xA6A0
+,0x0195
+,0x0195
+,0x0195
+,0x0195
+,0x0191
+,0x0A8B
+,0x0B90
+,0x0195
+,0x0195
+,0x0195
+,0x0195
+,0x01A4
+,0xFF88
+,0x0182
+,0x018F
+,0x0690
+,0x0494
+,0x00FC
+,0xB801
+,0x9501
+,0x9501
+,0x9501
+,0x9501
+,0x9501
+,0x9501
+,0x9501
+,0x9501
+,0x9501
+,0xBCFF
+,0x8701
+,0x9502
+,0x9402
+,0xFF94
+,0xC101
+,0x9303
+,0x9004
+,0x9004
+,0x9004
+,0x9003
+,0x9103
+,0x9103
+,0x9103
+,0x9301
+,0xC4A0
+,0x0290
+,0x0A8B
+,0x0285
+,0x0389
+,0x0186
+,0x0587
+,0x0186
+,0x0183
+,0x0186
+,0x0086
+,0x0184
+,0x0186
+,0x0084
+,0x0285
+,0x0186
+,0x0182
+,0x0286
+,0x0186
+,0x0280
+,0x0187
+,0x0188
+,0x0484
+,0x038B
+,0x0A90
+,0x02A3
+,0xCA01
+,0x9501
+,0x9401
+,0x9510
+,0x8610
+,0xFF94
+,0xB300
+,0x8B01
+,0x8701
+,0x8903
+,0x8601
+,0x8904
+,0x8601
+,0x8802
+,0x8001
+,0x8600
+,0x8801
+,0x8201
+,0x8600
+,0x8701
+,0x8301
+,0x8601
+,0x8501
+,0x8401
+,0x8602
+,0x8301
+,0x8501
+,0x8706
+,0x8601
+,0x8804
+,0x8701
+,0xB4BF
+,0x0188
+,0x008B
+,0x0187
+,0x018C
+,0x0186
+,0x0085
+,0x0185
+,0x0186
+,0x0085
+,0x0185
+,0x0186
+,0x0085
+,0x0185
+,0x0186
+,0x0183
+,0x0285
+,0x0186
+,0x0281
+,0x0180
+,0x0183
+,0x0188
+,0x0482
+,0x0592
+,0x03B7
+,0xA400
+,0x9402
+,0x9204
+,0x9102
+,0x8001
+,0x8F02
+,0x8201
+,0x8E02
+,0x8301
+,0x8C02
+,0x8501
+,0x8B10
+,0x8610
+,0x9002
+,0x9401
+,0x9600
+,0xA1B7
+,0x0185
+,0x0088
+,0x0883
+,0x0287
+,0x0282
+,0x0185
+,0x0187
+,0x0084
+,0x0087
+,0x0186
+,0x0084
+,0x0087
+,0x0186
+,0x0084
+,0x0087
+,0x0186
+,0x0084
+,0x0186
+,0x0186
+,0x0084
+,0x0185
+,0x0187
+,0x0085
+,0x0887
+,0x0086
+,0x06B6
+,0xB508
+,0x8C0C
+,0x8902
+,0x8201
+,0x8302
+,0x8701
+,0x8301
+,0x8601
+,0x8601
+,0x8301
+,0x8601
+,0x8600
+,0x8400
+,0x8701
+,0x8600
+,0x8401
+,0x8601
+,0x8601
+,0x8302
+,0x8401
+,0x8701
+,0x8408
+,0x8F05
+,0xB7B1
+,0x0096
+,0x0096
+,0x008D
+,0x0186
+,0x008A
+,0x0486
+,0x0087
+,0x0588
+,0x0085
+,0x048B
+,0x0082
+,0x058D
+,0x0690
+,0x0393
+,0x01C3
+,0xBB04
+,0x8904
+,0x8206
+,0x8702
+,0x8002
+,0x8001
+,0x8301
+,0x8701
+,0x8302
+,0x8501
+,0x8600
+,0x8501
+,0x8501
+,0x8600
+,0x8501
+,0x8501
+,0x8601
+,0x8302
+,0x8501
+,0x8602
+,0x8101
+,0x8001
+,0x8301
+,0x8805
+,0x8106
+,0x8902
+,0x8404
+,0xB6B3
+,0x0586
+,0x0088
+,0x0784
+,0x0187
+,0x0284
+,0x0184
+,0x0186
+,0x0186
+,0x0084
+,0x0186
+,0x0087
+,0x0183
+,0x0186
+,0x0087
+,0x0084
+,0x0186
+,0x0185
+,0x0183
+,0x0187
+,0x0284
+,0x0182
+,0x0288
+,0x0D8B
+,0x09B8
+,0xFE01
+,0x8601
+,0x8C02
+,0x8502
+,0x8B02
+,0x8502
+,0xFF94
+,0xFF01
+,0x8601
+,0x8201
+,0x8602
+,0x8506
+,0x8702
+,0x8504
+,0x9400
+,0xFCA0
+,0x0195
+,0x0293
+,0x0393
+,0x0081
+,0x0191
+,0x0181
+,0x0190
+,0x0183
+,0x018F
+,0x0184
+,0x018D
+,0x0185
+,0x018D
+,0x0186
+,0x018B
+,0x0187
+,0x018B
+,0x0188
+,0x0189
+,0x0189
+,0x019E
+,0x9E00
+,0x8400
+,0x9000
+,0x8400
+,0x9000
+,0x8400
+,0x9000
+,0x8400
+,0x9000
+,0x8400
+,0x9000
+,0x8400
+,0x9000
+,0x8400
+,0x9000
+,0x8400
+,0x9000
+,0x8400
+,0x9000
+,0x8400
+,0x9000
+,0x8400
+,0x9000
+,0x8400
+,0xA19A
+,0x0189
+,0x018A
+,0x0188
+,0x018A
+,0x0187
+,0x018C
+,0x0186
+,0x018C
+,0x0185
+,0x018E
+,0x0184
+,0x018E
+,0x0183
+,0x0190
+,0x0181
+,0x0192
+,0x0081
+,0x0192
+,0x0394
+,0x0294
+,0x01A4
+,0xB101
+,0x9501
+,0x9401
+,0x9501
+,0x9401
+,0x8801
+,0x8202
+,0x8401
+,0x8604
+,0x8102
+,0x8501
+,0x8402
+,0x8401
+,0x8602
+,0x8202
+,0x8F06
+,0x9104
+,0xBF9D
+,0x078D
+,0x0481
+,0x048A
+,0x0287
+,0x0288
+,0x018B
+,0x0187
+,0x0184
+,0x0383
+,0x0087
+,0x0084
+,0x0582
+,0x0186
+,0x0083
+,0x0182
+,0x0182
+,0x0186
+,0x0083
+,0x0084
+,0x0082
+,0x0186
+,0x0182
+,0x0084
+,0x0082
+,0x0186
+,0x0281
+,0x0083
+,0x0182
+,0x0187
+,0x0A82
+,0x008A
+,0x08A1
+,0xA702
+,0x9104
+,0x8F04
+,0x8F06
+,0x8D04
+,0x8201
+,0x8B03
+,0x8501
+,0x8C04
+,0x8301
+,0x8F04
+,0x8001
+,0x9105
+,0x9404
+,0x9504
+,0x9402
+,0x9C99
+,0x1086
+,0x1086
+,0x0085
+,0x0185
+,0x0186
+,0x0085
+,0x0086
+,0x0186
+,0x0085
+,0x0086
+,0x0186
+,0x0085
+,0x0086
+,0x0186
+,0x0085
+,0x0185
+,0x0186
+,0x0183
+,0x0285
+,0x0186
+,0x0183
+,0x0284
+,0x0287
+,0x0580
+,0x0281
+,0x0289
+,0x0382
+,0x0593
+,0x029F
+,0x9E06
+,0x8E0A
+,0x8A03
+,0x8503
+,0x8901
+,0x8902
+,0x8701
+,0x8B02
+,0x8600
+,0x8D01
+,0x8600
+,0x8D01
+,0x8600
+,0x8D01
+,0x8601
+,0x8C01
+,0x8601
+,0x8B01
+,0x8802
+,0x8802
+,0x8900
+,0x8A00
+,0x9E99
+,0x1086
+,0x1086
+,0x008D
+,0x0186
+,0x008D
+,0x0186
+,0x008D
+,0x0186
+,0x008D
+,0x0186
+,0x018C
+,0x0186
+,0x018C
+,0x0186
+,0x028A
+,0x0188
+,0x0386
+,0x028B
+,0x0A8E
+,0x05A2
+,0xB110
+,0x8610
+,0x8600
+,0x8501
+,0x8501
+,0x8600
+,0x8501
+,0x8501
+,0x8600
+,0x8501
+,0x8501
+,0x8600
+,0x8501
+,0x8501
+,0x8600
+,0x8501
+,0x8501
+,0x8600
+,0x8501
+,0x8501
+,0x8600
+,0x8501
+,0x8501
+,0x8600
+,0x8D01
+,0xB4B1
+,0x1086
+,0x1086
+,0x0085
+,0x018E
+,0x0085
+,0x008F
+,0x0085
+,0x008F
+,0x0085
+,0x008F
+,0x0085
+,0x008F
+,0x0085
+,0x008F
+,0x0085
+,0x008F
+,0x00C4
+,0x9E06
+,0x8D0B
+,0x8A02
+,0x8702
+,0x8802
+,0x8A01
+,0x8701
+,0x8C01
+,0x8600
+,0x8D01
+,0x8600
+,0x8D01
+,0x8600
+,0x8700
+,0x8401
+,0x8601
+,0x8600
+,0x8401
+,0x8601
+,0x8600
+,0x8400
+,0x8802
+,0x8406
+,0x8900
+,0x8505
+,0x9EB1
+,0x1086
+,0x108D
+,0x0195
+,0x0195
+,0x0195
+,0x0195
+,0x0195
+,0x018E
+,0x1086
+,0x10B4
+,0xB100
+,0x8E00
+,0x8600
+,0x8D01
+,0x8600
+,0x8D01
+,0x8600
+,0x8D01
+,0x8610
+,0x8610
+,0x8600
+,0x8D01
+,0x8600
+,0x8D01
+,0x8600
+,0x8D01
+,0xCCBF
+,0x0196
+,0x0195
+,0x0186
+,0x008D
+,0x0186
+,0x008D
+,0x0186
+,0x008C
+,0x0187
+,0x0F87
+,0x0D89
+,0x0096
+,0x0096
+,0x00AC
+,0x9910
+,0x8610
+,0x8D02
+,0x9302
+,0x9304
+,0x9102
+,0x8002
+,0x8F02
+,0x8202
+,0x8D01
+,0x8503
+,0x8A01
+,0x8802
+,0x8801
+,0x8A03
+,0x8600
+,0x8D01
+,0x9600
+,0x9CB1
+,0x1086
+,0x1095
+,0x0195
+,0x0195
+,0x0195
+,0x0195
+,0x0195
+,0x0195
+,0x0195
+,0x01B4
+,0x9910
+,0x8610
+,0x8703
+,0x9503
+,0x9503
+,0x9503
+,0x9302
+,0x9202
+,0x9203
+,0x9103
+,0x9210
+,0x8610
+,0x9C99
+,0x1086
+,0x1086
+,0x0395
+,0x0295
+,0x0395
+,0x0395
+,0x0395
+,0x0395
+,0x0295
+,0x0387
+,0x1086
+,0x109C
+,0x9D08
+,0x8C0C
+,0x8902
+,0x8703
+,0x8701
+,0x8B01
+,0x8701
+,0x8C01
+,0x8600
+,0x8D01
+,0x8600
+,0x8D01
+,0x8601
+,0x8C01
+,0x8601
+,0x8B01
+,0x8802
+,0x8802
+,0x890C
+,0x8C08
+,0xA0B1
+,0x1086
+,0x1086
+,0x0086
+,0x008E
+,0x0086
+,0x008E
+,0x0086
+,0x008E
+,0x0086
+,0x008E
+,0x0184
+,0x018E
+,0x0184
+,0x018E
+,0x0282
+,0x028F
+,0x0692
+,0x02A7
+,0x9D08
+,0x8C0C
+,0x8902
+,0x8802
+,0x8701
+,0x8B02
+,0x8601
+,0x8C01
+,0x8600
+,0x8E02
+,0x8400
+,0x8E04
+,0x8201
+,0x8C01
+,0x8101
+,0x8201
+,0x8C01
+,0x8101
+,0x8302
+,0x8802
+,0x8201
+,0x840C
+,0x8301
+,0x8608
+,0xA0B1
+,0x1086
+,0x1086
+,0x0086
+,0x008E
+,0x0086
+,0x008E
+,0x0086
+,0x008E
+,0x0086
+,0x018D
+,0x0184
+,0x048B
+,0x0184
+,0x0180
+,0x0389
+,0x0783
+,0x0388
+,0x0586
+,0x028A
+,0x008A
+,0x009C
+,0xB303
+,0x8602
+,0x8805
+,0x8601
+,0x8701
+,0x8202
+,0x8601
+,0x8601
+,0x8301
+,0x8601
+,0x8600
+,0x8501
+,0x8501
+,0x8600
+,0x8501
+,0x8501
+,0x8600
+,0x8501
+,0x8501
+,0x8601
+,0x8501
+,0x8302
+,0x8602
+,0x8402
+,0x8102
+,0x8801
+,0x8505
+,0x9301
+,0xA099
+,0x0096
+,0x0096
+,0x0096
+,0x0096
+,0x0096
+,0x1086
+,0x1086
+,0x0096
+,0x0096
+,0x0096
+,0x0096
+,0x00AC
+,0x990C
+,0x8A0E
+,0x9502
+,0x9501
+,0x9601
+,0x9501
+,0x9501
+,0x9501
+,0x9401
+,0x9402
+,0x870E
+,0x880C
+,0xA099
+,0x0195
+,0x0494
+,0x0594
+,0x0594
+,0x0594
+,0x0592
+,0x048F
+,0x048F
+,0x048F
+,0x048F
+,0x0492
+,0x01AB
+,0x9905
+,0x920A
+,0x9209
+,0x9004
+,0x8E05
+,0x8E04
+,0x9005
+,0x9406
+,0x9406
+,0x9206
+,0x8909
+,0x8A06
+,0xA6A9
+,0x0086
+,0x018B
+,0x0286
+,0x0388
+,0x0388
+,0x0384
+,0x038B
+,0x0381
+,0x038F
+,0x0591
+,0x058F
+,0x0381
+,0x038C
+,0x0285
+,0x0388
+,0x0387
+,0x0387
+,0x018B
+,0x0296
+,0x009C
+,0x9900
+,0x9602
+,0x9503
+,0x9503
+,0x9503
+,0x940A
+,0x8D09
+,0x8B04
+,0x9004
+,0x9003
+,0x9202
+,0x9400
+,0xACA9
+,0x0086
+,0x008C
+,0x0286
+,0x008A
+,0x0486
+,0x0089
+,0x0280
+,0x0186
+,0x0087
+,0x0381
+,0x0186
+,0x0085
+,0x0383
+,0x0186
+,0x0084
+,0x0285
+,0x0186
+,0x0082
+,0x0386
+,0x0186
+,0x0080
+,0x0388
+,0x0186
+,0x038A
+,0x0186
+,0x028B
+,0x0195
+,0x019C
+,0xDF15
+,0x8101
+,0x9101
+,0x8101
+,0x9101
+,0x8101
+,0x9101
+,0x8101
+,0x9101
+,0x8101
+,0x9101
+,0x8101
+,0x9101
+,0x8200
+,0x9100
+,0xB2B0
+,0x0195
+,0x0395
+,0x0395
+,0x0395
+,0x0395
+,0x0494
+,0x0495
+,0x0395
+,0x0395
+,0x01B3
+,0xB000
+,0x9100
+,0x8201
+,0x9101
+,0x8101
+,0x9101
+,0x8101
+,0x9101
+,0x8101
+,0x9101
+,0x8101
+,0x9101
+,0x8101
+,0x9101
+,0x8115
+,0xE1CE
+,0x0194
+,0x0292
+,0x0292
+,0x0294
+,0x0296
+,0x0295
+,0x0395
+,0x01D6
+,0xAB00
+,0x9600
+,0x9600
+,0x9600
+,0x9600
+,0x9600
+,0x9600
+,0x9600
+,0x9600
+,0x9600
+,0x9600
+,0x9600
+,0x9AE0
+,0x0195
+,0x0395
+,0x0295
+,0x0295
+,0x00FF
+,0x89A6
+,0x0193
+,0x048C
+,0x0183
+,0x0180
+,0x028B
+,0x0083
+,0x0182
+,0x018A
+,0x0183
+,0x0084
+,0x008A
+,0x0183
+,0x0084
+,0x008A
+,0x0183
+,0x0084
+,0x008A
+,0x0183
+,0x0083
+,0x008C
+,0x0182
+,0x0082
+,0x018C
+,0x0B8C
+,0x0AB4
+,0xAF12
+,0x8411
+,0x8C01
+,0x8601
+,0x8C00
+,0x8801
+,0x8A01
+,0x8801
+,0x8A01
+,0x8801
+,0x8A01
+,0x8801
+,0x8B01
+,0x8602
+,0x8B03
+,0x8302
+,0x8D08
+,0x9004
+,0xA0B8
+,0x068F
+,0x088D
+,0x0284
+,0x028C
+,0x0186
+,0x028A
+,0x0188
+,0x018A
+,0x0188
+,0x018A
+,0x0188
+,0x018A
+,0x0188
+,0x018B
+,0x0186
+,0x018C
+,0x0285
+,0x018D
+,0x00A6
+,0xA104
+,0x9008
+,0x8D02
+,0x8402
+,0x8C01
+,0x8602
+,0x8A01
+,0x8801
+,0x8A01
+,0x8801
+,0x8A01
+,0x8801
+,0x8B00
+,0x8800
+,0x8C01
+,0x8601
+,0x8611
+,0x8412
+,0xB4A2
+,0x0292
+,0x078E
+,0x0480
+,0x038C
+,0x0181
+,0x0182
+,0x018B
+,0x0182
+,0x0183
+,0x018A
+,0x0182
+,0x0183
+,0x018A
+,0x0182
+,0x0183
+,0x018A
+,0x0182
+,0x0183
+,0x018B
+,0x0181
+,0x0183
+,0x018B
+,0x0582
+,0x018D
+,0x0483
+,0x00B5
+,0xB601
+,0x9501
+,0x9501
+,0x9010
+,0x8503
+,0x8101
+,0x8F01
+,0x8301
+,0x8F00
+,0x8401
+,0x8E01
+,0x8401
+,0x8E01
+,0x8400
+,0x9001
+,0x9502
+,0xABAA
+,0x0289
+,0x0481
+,0x0180
+,0x0487
+,0x0B81
+,0x0186
+,0x0183
+,0x0181
+,0x0183
+,0x0086
+,0x0085
+,0x0082
+,0x0083
+,0x0185
+,0x0085
+,0x0082
+,0x0083
+,0x0185
+,0x0085
+,0x0082
+,0x0083
+,0x0185
+,0x0183
+,0x0182
+,0x0083
+,0x0186
+,0x0583
+,0x0083
+,0x0086
+,0x0584
+,0x0181
+,0x0186
+,0x0089
+,0x0487
+,0x008B
+,0x019A
+,0xAF12
+,0x8412
+,0x8C01
+,0x9401
+,0x9500
+,0x9501
+,0x9501
+,0x9502
+,0x950B
+,0x8C0A
+,0xB4CD
+,0x0188
+,0x018A
+,0x0188
+,0x018A
+,0x0188
+,0x0185
+,0x0182
+,0x0C85
+,0x0182
+,0x0C95
+,0x0195
+,0x0195
+,0x01CC
+,0xC401
+,0x9601
+,0x8501
+,0x8D01
+,0x8501
+,0x8D01
+,0x8501
+,0x8D01
+,0x8501
+,0x8C01
+,0x8101
+,0x8210
+,0x8102
+,0x810F
+,0x8201
+,0xDCAF
+,0x1284
+,0x128F
+,0x0294
+,0x0194
+,0x0392
+,0x0180
+,0x0290
+,0x0182
+,0x028E
+,0x0184
+,0x028C
+,0x0186
+,0x038A
+,0x0089
+,0x0196
+,0x009C
+,0xB000
+,0x8E01
+,0x8401
+,0x8E01
+,0x8401
+,0x8E01
+,0x8401
+,0x8E01
+,0x8412
+,0x8412
+,0x9501
+,0x9501
+,0x9501
+,0x9600
+,0xB49D
+,0x0C8A
+,0x0C8B
+,0x0095
+,0x0195
+,0x0195
+,0x0C8B
+,0x0B8B
+,0x0194
+,0x0195
+,0x0195
+,0x0C8B
+,0x0B9C
+,0xB50C
+,0x8A0C
+,0x8C01
+,0x9401
+,0x9500
+,0x9501
+,0x9501
+,0x9502
+,0x950B
+,0x8C0A
+,0xB4A1
+,0x0491
+,0x078E
+,0x0282
+,0x038C
+,0x0186
+,0x018B
+,0x0188
+,0x018A
+,0x0188
+,0x018A
+,0x0188
+,0x018A
+,0x0188
+,0x018B
+,0x0186
+,0x018C
+,0x0383
+,0x028D
+,0x0890
+,0x04A0
+,0xB511
+,0x8510
+,0x8701
+,0x8601
+,0x8C00
+,0x8800
+,0x8B01
+,0x8801
+,0x8A01
+,0x8801
+,0x8A01
+,0x8801
+,0x8B01
+,0x8602
+,0x8B02
+,0x8402
+,0x8D08
+,0x9004
+,0xA0A1
+,0x0490
+,0x088D
+,0x0283
+,0x038C
+,0x0087
+,0x028A
+,0x0188
+,0x018A
+,0x0188
+,0x018A
+,0x0188
+,0x018B
+,0x0088
+,0x008C
+,0x0186
+,0x018C
+,0x0F86
+,0x11AF
+,0xCD0C
+,0x8A0C
+,0x8C01
+,0x9401
+,0x9500
+,0x9501
+,0x9501
+,0x9501
+,0x9601
+,0x9500
+,0xA7B8
+,0x0085
+,0x018C
+,0x0483
+,0x018C
+,0x0484
+,0x018A
+,0x0182
+,0x0183
+,0x018A
+,0x0182
+,0x0183
+,0x018A
+,0x0182
+,0x0183
+,0x018A
+,0x0183
+,0x0182
+,0x018B
+,0x0083
+,0x0182
+,0x018B
+,0x0182
+,0x058D
+,0x0083
+,0x03B6
+,0xB501
+,0x9501
+,0x9501
+,0x920E
+,0x880F
+,0x8A01
+,0x8801
+,0x8A01
+,0x8801
+,0x8A01
+,0x8801
+,0x8A01
+,0x8801
+,0x9401
+,0xB5B5
+,0x0A8C
+,0x0B95
+,0x0295
+,0x0196
+,0x0096
+,0x0095
+,0x0095
+,0x018B
+,0x0C8A
+,0x0CB4
+,0x9D00
+,0x9603
+,0x9404
+,0x9504
+,0x9404
+,0x9404
+,0x9303
+,0x9103
+,0x9103
+,0x9004
+,0x9003
+,0x9300
+,0xA89D
+,0x0593
+,0x0893
+,0x0593
+,0x038F
+,0x048F
+,0x0492
+,0x0395
+,0x0594
+,0x0593
+,0x038C
+,0x098B
+,0x06A2
+,0xB501
+,0x8801
+,0x8A02
+,0x8602
+,0x8C02
+,0x8203
+,0x8E02
+,0x8002
+,0x9104
+,0x9204
+,0x9102
+,0x8002
+,0x8E02
+,0x8303
+,0x8B02
+,0x8602
+,0x8A00
+,0x8901
+,0xB4AC
+,0x0186
+,0x028C
+,0x0185
+,0x0589
+,0x0188
+,0x0487
+,0x018A
+,0x0484
+,0x018E
+,0x0791
+,0x048F
+,0x0490
+,0x048F
+,0x0490
+,0x0393
+,0x01A7
+,0xA900
+,0x8A01
+,0x8702
+,0x8A01
+,0x8603
+,0x8A01
+,0x8504
+,0x8A01
+,0x8402
+,0x8001
+,0x8A01
+,0x8202
+,0x8201
+,0x8A01
+,0x8102
+,0x8301
+,0x8A01
+,0x8002
+,0x8401
+,0x8A04
+,0x8501
+,0x8A02
+,0x8701
+,0x8A01
+,0x8801
+,0x9501
+,0x9CA2
+,0x0096
+,0x0195
+,0x0193
+,0x0581
+,0x0286
+,0x0781
+,0x0883
+,0x068A
+,0x0281
+,0x0191
+,0x0181
+,0x0192
+,0x0081
+,0x0192
+,0x0081
+,0x0192
+,0x00C8
+,0xFF90
+,0x1581
+,0x15FF
+,0x90C8
+,0x0192
+,0x0081
+,0x0192
+,0x0081
+,0x0192
+,0x0081
+,0x0191
+,0x0182
+,0x0685
+,0x0181
+,0x0383
+,0x0781
+,0x088A
+,0x0581
+,0x018F
+,0x0195
+,0x01BA
+,0x9F00
+,0x9501
+,0x9501
+,0x9401
+,0x9501
+,0x9601
+,0x9502
+,0x9501
+,0x9501
+,0x9501
+,0x9401
+,0x9501
+,0xA6F8
+,0x0189
+,0x0485
+,0x0381
+,0x0C85
+,0x0283
+,0x0AFF
+,0x94A1
+,0x0291
+,0x078E
+,0x0382
+,0x038C
+,0x0186
+,0x018B
+,0x0188
+,0x018A
+,0x0086
+,0x0786
+,0x0E86
+,0x0884
+,0x0187
+,0x0081
+,0x0188
+,0x018A
+,0x0187
+,0x028B
+,0x0186
+,0x01B6
+,0xA900
+,0x8C01
+,0x8601
+,0x8904
+,0x8502
+,0x870E
+,0x8702
+,0x8206
+,0x8001
+,0x8701
+,0x8301
+,0x8600
+,0x8700
+,0x8401
+,0x8601
+,0x8600
+,0x8D01
+,0x8601
+,0x8D00
+,0x8601
+,0x8D00
+,0x9501
+,0x9501
+,0x9CB4
+,0x0086
+,0x008E
+,0x088F
+,0x0182
+,0x018F
+,0x0184
+,0x008F
+,0x0184
+,0x018E
+,0x0184
+,0x018E
+,0x0184
+,0x0090
+,0x0182
+,0x018F
+,0x088E
+,0x0086
+,0x00B9
+,0xB101
+,0x8700
+,0x8100
+,0x8903
+,0x8401
+,0x8100
+,0x8B03
+,0x8201
+,0x8100
+,0x8D02
+,0x8101
+,0x8100
+,0x8F0A
+,0x8C0A
+,0x8A03
+,0x8001
+,0x8100
+,0x8B03
+,0x8201
+,0x8100
+,0x8903
+,0x8401
+,0x8100
+,0x8901
+,0x8601
+,0x8100
+,0x8900
+,0xACFF
+,0x9009
+,0x8208
+,0x8109
+,0x8208
+,0xFF90
+,0xB802
+,0x8500
+,0x8604
+,0x8004
+,0x8302
+,0x8407
+,0x8101
+,0x8401
+,0x8401
+,0x8201
+,0x8301
+,0x8401
+,0x8201
+,0x8301
+,0x8301
+,0x8401
+,0x8201
+,0x8401
+,0x8201
+,0x8401
+,0x8300
+,0x8401
+,0x8301
+,0x8201
+,0x8401
+,0x8402
+,0x8007
+,0x8501
+,0x8304
+,0x8004
+,0x8E01
+,0xBBC8
+,0x0194
+,0x0295
+,0x01C5
+,0x0194
+,0x0295
+,0x01DC
+,0x8902
+,0x9107
+,0x8E01
+,0x8502
+,0x8B01
+,0x8202
+,0x8200
+,0x8B00
+,0x8105
+,0x8200
+,0x8901
+,0x8100
+,0x8301
+,0x8100
+,0x8900
+,0x8101
+,0x8401
+,0x8000
+,0x8900
+,0x8101
+,0x8401
+,0x8000
+,0x8901
+,0x8001
+,0x8400
+,0x8100
+,0x8A00
+,0x8101
+,0x8201
+,0x8100
+,0x8A01
+,0x8100
+,0x8501
+,0x8B01
+,0x8601
+,0x8D02
+,0x8202
+,0x9004
+,0x89BC
+,0x018F
+,0x0381
+,0x018A
+,0x0181
+,0x0481
+,0x018A
+,0x0082
+,0x0181
+,0x0180
+,0x018A
+,0x0082
+,0x0082
+,0x0180
+,0x018A
+,0x0082
+,0x0082
+,0x0180
+,0x018A
+,0x0181
+,0x0081
+,0x0181
+,0x018A
+,0x0881
+,0x018B
+,0x0781
+,0x0195
+,0x01B8
+,0xBA01 
+,0x9403
+,0x9202
+,0x8001
+,0x9002
+,0x8201
+,0x8F01
+,0x8401
+,0x9101
+,0x9403
+,0x9202
+,0x8001
+,0x9002
+,0x8201
+,0x8F01
+,0x8401
+,0xB6D0 
+,0x0195
+,0x0190
+,0x0C8B
+,0x0A8D
+,0x088F
+,0x0691
+,0x0493
+,0x0295
+,0x00BC 
+,0xFFFF
+,0xCF89
+,0x0291
+,0x078E
+,0x0185
+,0x028B
+,0x0188
+,0x008B
+,0x0080
+,0x0781
+,0x0089
+,0x0180
+,0x0781
+,0x0089
+,0x0081
+,0x0082
+,0x0084
+,0x0089
+,0x0081
+,0x0082
+,0x0084
+,0x0089
+,0x0180
+,0x0180
+,0x0382
+,0x008A
+,0x0081
+,0x0281
+,0x0181
+,0x008A
+,0x0188
+,0x018B
+,0x0186
+,0x018D
+,0x0282
+,0x0290
+,0x0489
+,0xC900
+,0x9600
+,0x9600
+,0x9600
+,0x9600
+,0x9600
+,0x9600
+,0x9600
+,0xDCCB
+,0x0193
+,0x0591
+,0x0181
+,0x0190
+,0x0183
+,0x018F
+,0x0183
+,0x018F
+,0x0183
+,0x0091
+,0x0592
+,0x03D8
+,0x9F00
+,0x8700
+,0x8D00
+,0x8701
+,0x8C00
+,0x8701
+,0x8C00
+,0x8701
+,0x8C00
+,0x8701
+,0x870B
+,0x8101
+,0x870B
+,0x8101
+,0x8C00
+,0x8701
+,0x8C00
+,0x8701
+,0x8C00
+,0x8701
+,0x8C00
+,0x8701
+,0x8C00
+,0x8700
+,0x9DCA
+,0x0086
+,0x008D
+,0x0184
+,0x028C
+,0x0184
+,0x038C
+,0x0184
+,0x0080
+,0x018C
+,0x0183
+,0x0180
+,0x018C
+,0x0182
+,0x0181
+,0x018D
+,0x0482
+,0x018E
+,0x0283
+,0x01D3
+,0xD100
+,0x8E01
+,0x8401
+,0x8D01
+,0x8601
+,0x8C01
+,0x8200
+,0x8201
+,0x8C01
+,0x8200
+,0x8201
+,0x8C01
+,0x8101
+,0x8201
+,0x8D05
+,0x8001
+,0x8F01
+,0x8103
+,0xD4FF
+,0x9101
+,0x9303
+,0x9301
+,0x9500
+,0xF69D
+,0x1185
+,0x0B95
+,0x0196
+,0x0195
+,0x0195
+,0x0195
+,0x0094
+,0x028B
+,0x0B95
+,0x0295
+,0x0195
+,0x0195
+,0x0085
+,0xFFFF
+,0xCF00
+
+#line 2487 "./ostc28.drx.txt"
+ #line 730 "p2_deco_main - 090915b.c"
+
+};
+
+#pragma romdata font_table_small = 0x0B548
+rom const rom unsigned int  wp_small_table[] =
+{
+#line 1 "./ostc28.tbl.txt"
+0x0000
+,0x000E
+,0x001B
+,0x0048
+,0x007D
+,0x00B4
+,0x00E7
+,0x00F0
+,0x010D
+,0x012A
+,0x014B
+,0x0164
+,0x0170
+,0x0185
+,0x018E
+,0x01A3
+,0x01D6
+,0x01E2
+,0x0215
+,0x0246
+,0x0267
+,0x029C
+,0x02CB
+,0x02EA
+,0x0321
+,0x0352
+,0x0360
+,0x0371
+,0x039C
+,0x03CD
+,0x03F8
+,0x041B
+,0x045C
+,0x047D
+,0x04B8
+,0x04E5
+,0x050E
+,0x0541
+,0x0564
+,0x0597
+,0x05AC
+,0x05CD
+,0x05EA
+,0x060F
+,0x0624
+,0x063D
+,0x0656
+,0x067F
+,0x06A4
+,0x06D5
+,0x0700
+,0x0739
+,0x0752
+,0x076B
+,0x0784
+,0x079D
+,0x07C6
+,0x07DF
+,0x0818
+,0x0837
+,0x084C
+,0x086B
+,0x087C
+,0x0895
+,0x08A1 
+,0x08D4
+,0x08F9
+,0x0920
+,0x0945
+,0x097A
+,0x099B
+,0x09E4
+,0x09F9
+,0x0A14
+,0x0A33
+,0x0A54
+,0x0A71
+,0x0A8A
+,0x0A9F
+,0x0AC8
+,0x0AED
+,0x0B12
+,0x0B27
+,0x0B5A
+,0x0B77
+,0x0B8C
+,0x0BA5
+,0x0BBE
+,0x0BE3
+,0x0C04
+,0x0C39
+,0x0C5C
+,0x0C63
+,0x0C86
+,0x0C9F
+,0x0CAD
+,0x0CD6
+,0x0D05
+,0x0D2A
+,0x0D61
+,0x0D6C
+,0x0DAB
+,0x0DB8
+,0x0E05
+,0x0E3C
+,0x0E5D 
+,0x0E70 
+,0x0E73 
+,0x0EBA 
+,0x0ECB 
+,0x0EE4 
+,0x0F15 
+,0x0F3C
+,0x0F61
+,0x0F6B 
+,0x0F86 
+,0x0F89 
+
+
+#line 205 "./ostc28.tbl.txt"
+ #line 736 "p2_deco_main - 090915b.c"
+ 
+};
+
+#pragma romdata font_table_medium = 0x0B632
+rom const rom unsigned int  wp_medium_table[] =
+{
+#line 1 "./ostc48.tbl.txt"
+0x0000
+,0x000F 
+,0x0016 
+,0x006B 
+,0x0083
+,0x00DC
+,0x012D
+,0x0166
+,0x01C1
+,0x0216
+,0x024C
+,0x02AB 
+,0x0302 
+,0x031B 
+,0x032A 
+,0x0344 
+,0x036F 
+,0x0375 
+#line 742 "p2_deco_main - 090915b.c"
+ 
+};
+
+#pragma romdata font_data_medium = 0x0B656
+rom const rom unsigned int  wp_medium_data[] =
+{
+#line 1 "./ostc48.drx.txt"
+0x9F9F
+,0xBA03
+,0x9A04
+,0x9A05
+,0x9904
+,0x9B03
+,0x9F9F
+,0xC09F 
+,0x9FBF
+,0x7F9F
+,0x9FBF
+,0xCD03 
+,0x960E
+,0x8E12
+,0x8A16
+,0x8704
+,0x8B07
+,0x8503
+,0x8C03
+,0x8004
+,0x8303
+,0x8B04
+,0x8204
+,0x8202
+,0x8B04
+,0x8403
+,0x8102
+,0x8B03
+,0x8702
+,0x8102
+,0x8A03
+,0x8802
+,0x8102
+,0x8804
+,0x8903
+,0x8002
+,0x8703
+,0x8B02
+,0x8103
+,0x8503
+,0x8C02
+,0x8203
+,0x8204
+,0x8C03
+,0x8303
+,0x8004
+,0x8C03
+,0x8506
+,0x8C04
+,0x8716
+,0x8913
+,0x8E0E
+,0x9503
+,0xCDFF 
+,0x8400
+,0x9E01
+,0x9C02
+,0x9B02
+,0x9C02
+,0x9B03
+,0x9B02
+,0x9B1D
+,0x811D
+,0x811D
+,0xFFFF
+,0xC0FC
+,0x0185
+,0x0094
+,0x0384
+,0x0291
+,0x0583
+,0x0390
+,0x0682
+,0x0390
+,0x0782
+,0x0290
+,0x0381
+,0x0281
+,0x028F
+,0x0482
+,0x0281
+,0x028E
+,0x0483
+,0x0281
+,0x028D
+,0x0484
+,0x0281
+,0x028D
+,0x0385
+,0x0281
+,0x028C
+,0x0386
+,0x0281
+,0x038A
+,0x0387
+,0x0282
+,0x0288
+,0x0488
+,0x0282
+,0x0386
+,0x0489
+,0x0283
+,0x0D8A
+,0x0284
+,0x0A8C
+,0x0285
+,0x088D
+,0x0287
+,0x0390
+,0x02E0
+,0xFF9A
+,0x0185
+,0x0292
+,0x0483
+,0x0393
+,0x0482
+,0x0295
+,0x0382
+,0x0296
+,0x0281
+,0x0289
+,0x028A
+,0x0281
+,0x0289
+,0x028A
+,0x0281
+,0x0289
+,0x028A
+,0x0281
+,0x0289
+,0x028A
+,0x0281
+,0x0288
+,0x038A
+,0x0282
+,0x0287
+,0x0489
+,0x0282
+,0x0385
+,0x0687
+,0x0383
+,0x0A81
+,0x0384
+,0x0484
+,0x0A81
+,0x0C87
+,0x0684
+,0x0A8A
+,0x0288
+,0x07FF
+,0x84D3
+,0x029A
+,0x0499
+,0x0597
+,0x0796
+,0x0381
+,0x0294
+,0x0482
+,0x0293
+,0x0384
+,0x0291
+,0x0485
+,0x0290
+,0x0387
+,0x028E
+,0x0488
+,0x028D
+,0x038A
+,0x028B
+,0x048B
+,0x028A
+,0x1C81
+,0x1D81
+,0x1D81
+,0x1D94
+,0x029C
+,0x029C
+,0x029C
+,0x02C8
+,0xFA00
+,0x8D06
+,0x8802
+,0x830F
+,0x8704
+,0x820F
+,0x8803
+,0x8209
+,0x8102
+,0x8A03
+,0x8102
+,0x8702
+,0x8C02
+,0x8102
+,0x8702
+,0x8C02
+,0x8102
+,0x8701
+,0x8D02
+,0x8102
+,0x8701
+,0x8E02
+,0x8002
+,0x8701
+,0x8D03
+,0x8002
+,0x8702
+,0x8C02
+,0x8102
+,0x8702
+,0x8C02
+,0x8102
+,0x8703
+,0x8A03
+,0x8102
+,0x8803
+,0x8804
+,0x8102
+,0x8805
+,0x8405
+,0x8202
+,0x890E
+,0x8302
+,0x8A0C
+,0x9408
+,0xE5EC
+,0x0891
+,0x118B
+,0x1588
+,0x1785
+,0x0584
+,0x0286
+,0x0584
+,0x0385
+,0x0289
+,0x0383
+,0x0386
+,0x028A
+,0x0381
+,0x0386
+,0x028C
+,0x0281
+,0x0287
+,0x028C
+,0x0281
+,0x0287
+,0x028D
+,0x0280
+,0x0287
+,0x028C
+,0x0281
+,0x0287
+,0x028C
+,0x0281
+,0x0287
+,0x038B
+,0x0281
+,0x0288
+,0x0389
+,0x0283
+,0x0287
+,0x0584
+,0x0583
+,0x0387
+,0x0E85
+,0x008A
+,0x0C95
+,0x06E6
+,0xFF80
+,0x029C
+,0x029C
+,0x029C
+,0x0297
+,0x0281
+,0x0294
+,0x0581
+,0x0291
+,0x0881
+,0x028F
+,0x0982
+,0x028C
+,0x0985
+,0x0289
+,0x0988
+,0x0287
+,0x088B
+,0x0284
+,0x098D
+,0x0282
+,0x0890
+,0x0B93
+,0x0995
+,0x0698
+,0x049A
+,0x01FC
+,0xF405
+,0x8A03
+,0x8808
+,0x8707
+,0x850A
+,0x8509
+,0x8304
+,0x8105
+,0x830B
+,0x8103
+,0x8504
+,0x8202
+,0x8506
+,0x8803
+,0x8102
+,0x8705
+,0x8902
+,0x8102
+,0x8803
+,0x8A02
+,0x8102
+,0x8803
+,0x8A02
+,0x8102
+,0x8902
+,0x8A02
+,0x8102
+,0x8803
+,0x8A02
+,0x8102
+,0x8804
+,0x8902
+,0x8103
+,0x8606
+,0x8802
+,0x8203
+,0x8303
+,0x8103
+,0x8602
+,0x830B
+,0x8105
+,0x8204
+,0x8408
+,0x840B
+,0x8705
+,0x8609
+,0x9705
+,0xE5E7
+,0x0498
+,0x098B
+,0x0086
+,0x0C89
+,0x0284
+,0x0E88
+,0x0382
+,0x0388
+,0x0388
+,0x0282
+,0x028A
+,0x0387
+,0x0281
+,0x028C
+,0x0287
+,0x0281
+,0x028C
+,0x0287
+,0x0380
+,0x028C
+,0x0287
+,0x0281
+,0x028C
+,0x0287
+,0x0281
+,0x028C
+,0x0287
+,0x0281
+,0x038A
+,0x0287
+,0x0382
+,0x0389
+,0x0286
+,0x0383
+,0x0487
+,0x0285
+,0x0485
+,0x0781
+,0x0381
+,0x0887
+,0x168A
+,0x128F
+,0x0CE9
+,0x9F9F 
+,0xAB03
+,0x8A03
+,0x8B04
+,0x8904
+,0x8B04
+,0x8905
+,0x8A04
+,0x8904
+,0x8C02 
+,0x8B03
+,0x9F9F
+,0xC09F 
+,0x9FC8
+,0x0194
+,0x0A94
+,0x0A94
+,0x0896
+,0x059F
+,0x9FB9
+,0xFFA9 
+,0x009B
+,0x0394
+,0x0A94
+,0x0995
+,0x0698
+,0x03FF
+,0x8302
+,0x940A
+,0x940A
+,0x9407
+,0x9704
+,0xFFBA
+,0xC815 
+,0x8915
+,0x8915
+,0x8B02
+,0x9B01
+,0x9C01
+,0x9D01
+,0x9D02
+,0x9C04
+,0x9A15
+,0x8A14
+,0x8B13
+,0x8A02
+,0x9B02
+,0x9C01
+,0x9D01
+,0x9D02
+,0x9C15
+,0x8915
+,0x8A14
+,0x8D11
+,0xA0FF
+,0xFFFF
+,0xFFFF
+,0xFF00
+#line 748 "p2_deco_main - 090915b.c"
+ 
+};
+
+#pragma romdata font_data_large = 0x0BA46
+rom const rom unsigned int  wp_large_data[] =
+{
+#line 1 "./ostc90.drx.txt"
+0x9BAF
+,0xAFAF
+,0xAFAF
+,0xAFD1
+,0x05B2
+,0x07B0
+,0x08B0
+,0x09AF
+,0x09AF
+,0x09AF
+,0x09AF
+,0x08B1
+,0x07B2
+,0x049B
+,0x9F9F
+,0x9F9F
+,0x9FAE
+,0xFFFF
+,0xFFFF
+,0xFFFF
+,0xFFFF
+,0xFFFF
+,0xFFFF
+,0xFFFF
+,0xFFFF
+,0xFFFF
+,0x8FFF
+,0xFF82
+,0x04AC
+,0x14A1
+,0x1A9B
+,0x2096
+,0x2492
+,0x288F
+,0x0E8A
+,0x108C
+,0x0B94
+,0x0C8A
+,0x0996
+,0x0F87
+,0x0896
+,0x1285
+,0x0797
+,0x0783
+,0x0785
+,0x0697
+,0x0785
+,0x0783
+,0x0696
+,0x0887
+,0x0782
+,0x0596
+,0x078A
+,0x0681
+,0x0596
+,0x078C
+,0x0581
+,0x0594
+,0x088E
+,0x0580
+,0x0494
+,0x0790
+,0x0580
+,0x0493
+,0x0791
+,0x0580
+,0x0491
+,0x0892
+,0x0580
+,0x0490
+,0x0794
+,0x0580
+,0x058E
+,0x0795
+,0x0580
+,0x058C
+,0x0896
+,0x0580
+,0x068A
+,0x0896
+,0x0582
+,0x0688
+,0x0797
+,0x0682
+,0x0785
+,0x0897
+,0x0684
+,0x0783
+,0x0897
+,0x0785
+,0x0880
+,0x0798
+,0x0787
+,0x0F97
+,0x0889
+,0x0D95
+,0x0A8B
+,0x108C
+,0x0E8E
+,0x2891
+,0x2694
+,0x2299
+,0x1CA0
+,0x15AA
+,0x0797
+,0xFFFF
+,0xFFD7
+,0x01B7
+,0x03B4
+,0x04B4
+,0x03B4
+,0x04B4
+,0x04B3
+,0x04B3
+,0x05B3
+,0x05B2
+,0x06B2
+,0x05B2
+,0x06B2
+,0x3681
+,0x3781
+,0x3781
+,0x3781
+,0x3781
+,0x37FF
+,0xFFFF
+,0xFFFF
+,0xFFAC
+,0xFFFF
+,0xFF90
+,0x0389
+,0x00A8
+,0x0587
+,0x03A5
+,0x0786
+,0x05A3
+,0x0885
+,0x07A0
+,0x0A84
+,0x089F
+,0x0B84
+,0x069F
+,0x0D83
+,0x069F
+,0x0E82
+,0x069F
+,0x0881
+,0x0482
+,0x059E
+,0x0883
+,0x0482
+,0x049E
+,0x0884
+,0x0481
+,0x059D
+,0x0885
+,0x0481
+,0x059C
+,0x0787
+,0x0481
+,0x049C
+,0x0788
+,0x0481
+,0x049B
+,0x0789
+,0x0481
+,0x049A
+,0x078A
+,0x0481
+,0x0499
+,0x078B
+,0x0481
+,0x0498
+,0x078C
+,0x0481
+,0x0596
+,0x078D
+,0x0481
+,0x0595
+,0x078E
+,0x0481
+,0x0594
+,0x078F
+,0x0481
+,0x0692
+,0x0790
+,0x0482
+,0x0690
+,0x0791
+,0x0482
+,0x078E
+,0x0792
+,0x0483
+,0x078B
+,0x0893
+,0x0483
+,0x0986
+,0x0A94
+,0x0484
+,0x1995
+,0x0485
+,0x1796
+,0x0486
+,0x1498
+,0x0487
+,0x1299
+,0x0489
+,0x0E9B
+,0x048C
+,0x089D
+,0x05B3
+,0x05BA
+,0xFFFF
+,0xFF8E
+,0x00B7
+,0x028A
+,0x01A8
+,0x0488
+,0x03A5
+,0x0786
+,0x05A3
+,0x0886
+,0x05A5
+,0x0784
+,0x05A7
+,0x0684
+,0x05A8
+,0x0682
+,0x05AA
+,0x0582
+,0x05AA
+,0x0581
+,0x0591
+,0x0495
+,0x0580
+,0x0591
+,0x0495
+,0x0580
+,0x0591
+,0x0495
+,0x0580
+,0x0492
+,0x0495
+,0x0580
+,0x0492
+,0x0495
+,0x0580
+,0x0492
+,0x0495
+,0x0580
+,0x0492
+,0x0594
+,0x0580
+,0x0590
+,0x0694
+,0x0580
+,0x0590
+,0x0694
+,0x0580
+,0x058F
+,0x0892
+,0x0582
+,0x058E
+,0x0892
+,0x0582
+,0x068C
+,0x0A90
+,0x0682
+,0x078A
+,0x0C8E
+,0x0684
+,0x0787
+,0x0681
+,0x068C
+,0x0785
+,0x1581
+,0x0789
+,0x0887
+,0x1383
+,0x1889
+,0x1185
+,0x168B
+,0x0F87
+,0x148D
+,0x0C8A
+,0x1291
+,0x078E
+,0x0EAC
+,0x0AFF
+,0xB8FF
+,0xFF8B
+,0x05B2
+,0x06B0
+,0x08AF
+,0x09AD
+,0x0BAC
+,0x0CAA
+,0x0EA9
+,0x0781
+,0x05A7
+,0x0882
+,0x05A6
+,0x0784
+,0x05A4
+,0x0786
+,0x05A3
+,0x0787
+,0x05A1
+,0x0789
+,0x059F
+,0x088A
+,0x059E
+,0x078C
+,0x059C
+,0x088D
+,0x059B
+,0x078F
+,0x0599
+,0x0890
+,0x0598
+,0x0792
+,0x0596
+,0x0794
+,0x0595
+,0x0795
+,0x0593
+,0x0797
+,0x0592
+,0x3581
+,0x3781
+,0x3781
+,0x3781
+,0x3781
+,0x3781
+,0x37A4
+,0x05B3
+,0x05B3
+,0x05B3
+,0x05B3
+,0x05B3
+,0x05B3
+,0x058F
+,0xFFFF
+,0xFF8C
+,0x01A2
+,0x0092
+,0x0392
+,0x1090
+,0x0585
+,0x1C8F
+,0x0784
+,0x1D8E
+,0x0883
+,0x1D8E
+,0x0883
+,0x1C91
+,0x0782
+,0x1B93
+,0x0682
+,0x058E
+,0x0595
+,0x0681
+,0x058E
+,0x0497
+,0x0581
+,0x058E
+,0x0497
+,0x0581
+,0x058D
+,0x0598
+,0x0580
+,0x058D
+,0x0499
+,0x0580
+,0x058D
+,0x0499
+,0x0580
+,0x058D
+,0x0499
+,0x0580
+,0x058D
+,0x0499
+,0x0580
+,0x058D
+,0x0499
+,0x0580
+,0x058D
+,0x0499
+,0x0580
+,0x058D
+,0x0499
+,0x0580
+,0x058D
+,0x0499
+,0x0580
+,0x058D
+,0x0597
+,0x0581
+,0x058D
+,0x0597
+,0x0581
+,0x058E
+,0x0595
+,0x0681
+,0x058E
+,0x0693
+,0x0682
+,0x058E
+,0x0791
+,0x0782
+,0x058F
+,0x088D
+,0x0883
+,0x0590
+,0x0A87
+,0x0B83
+,0x0591
+,0x1C84
+,0x0592
+,0x1A85
+,0x0593
+,0x1886
+,0x0594
+,0x15A5
+,0x11AA
+,0x0CC5
+,0xFFFF
+,0xF111
+,0xA21B
+,0x9A21
+,0x9426
+,0x9029
+,0x8E2B
+,0x8C0D
+,0x8505
+,0x850E
+,0x880B
+,0x8805
+,0x8B09
+,0x8808
+,0x8906
+,0x8E08
+,0x8607
+,0x8B05
+,0x9107
+,0x8407
+,0x8B05
+,0x9306
+,0x8306
+,0x8C05
+,0x9506
+,0x8205
+,0x8D05
+,0x9605
+,0x8106
+,0x8D04
+,0x9706
+,0x8005
+,0x8D05
+,0x9805
+,0x8005
+,0x8D05
+,0x9805
+,0x8004
+,0x8E04
+,0x990B
+,0x8E04
+,0x990B
+,0x8E05
+,0x980B
+,0x8E05
+,0x980B
+,0x8E05
+,0x9805
+,0x8004
+,0x8E06
+,0x9605
+,0x8104
+,0x8F05
+,0x9605
+,0x8105
+,0x8E06
+,0x9405
+,0x8205
+,0x8F07
+,0x9007
+,0x8305
+,0x8E09
+,0x8C08
+,0x8407
+,0x8D0B
+,0x860A
+,0x8507
+,0x8E1B
+,0x8705
+,0x9019
+,0x8903
+,0x9217
+,0x8B00
+,0x9613
+,0xA70F
+,0xAD07
+,0xC8FF
+,0xFFFF
+,0x9605
+,0xB305
+,0xB305
+,0xB305
+,0xB305
+,0xB305
+,0xAF01
+,0x8105
+,0xAC04
+,0x8105
+,0xA907
+,0x8105
+,0xA60A
+,0x8105
+,0xA40C
+,0x8105
+,0xA10F
+,0x8105
+,0x9E12
+,0x8105
+,0x9B13
+,0x8305
+,0x9813
+,0x8605
+,0x9612
+,0x8905
+,0x9312
+,0x8C05
+,0x9012
+,0x8F05
+,0x8E11
+,0x9205
+,0x8B11
+,0x9505
+,0x8910
+,0x9805
+,0x8610
+,0x9B05
+,0x840F
+,0x9E05
+,0x8110
+,0xA015
+,0xA312
+,0xA610
+,0xA80D
+,0xAB0B
+,0xAD09
+,0xAF06
+,0xB204
+,0xFFA7
+,0xFFFF
+,0xCA03
+,0xB10B
+,0xAB0F
+,0x9007
+,0x8F11
+,0x8D0C
+,0x8A14
+,0x8A0F
+,0x8816
+,0x8811
+,0x8618
+,0x8614
+,0x8407
+,0x8708
+,0x8515
+,0x8306
+,0x8B07
+,0x8406
+,0x8608
+,0x8106
+,0x8D06
+,0x8306
+,0x8907
+,0x8004
+,0x9006
+,0x8205
+,0x8B0C
+,0x9105
+,0x8105
+,0x8D0A
+,0x9205
+,0x8104
+,0x8F08
+,0x9405
+,0x8004
+,0x9006
+,0x9505
+,0x8004
+,0x9006
+,0x950B
+,0x9105
+,0x950B
+,0x9105
+,0x950B
+,0x9205
+,0x940B
+,0x9106
+,0x9405
+,0x8004
+,0x9107
+,0x9305
+,0x8005
+,0x8F08
+,0x9304
+,0x8105
+,0x8E0A
+,0x9105
+,0x8106
+,0x8C0C
+,0x8F06
+,0x8206
+,0x8906
+,0x8106
+,0x8E05
+,0x8308
+,0x8508
+,0x8107
+,0x8C06
+,0x8415
+,0x8308
+,0x8807
+,0x8613
+,0x850A
+,0x820A
+,0x8711
+,0x8716
+,0x890F
+,0x8914
+,0x8B0C
+,0x8C12
+,0x8F06
+,0x9010
+,0xAA0C
+,0xAF06
+,0xC5FF 
+,0xFFE9
+,0x09AC
+,0x0F98
+,0x008D
+,0x1395
+,0x028A
+,0x1792
+,0x0488
+,0x1990
+,0x0686
+,0x1B8E
+,0x0785
+,0x0988
+,0x0A8F
+,0x0683
+,0x088D
+,0x0790
+,0x0582
+,0x0790
+,0x078F
+,0x0582
+,0x0693
+,0x0590
+,0x0580
+,0x0694
+,0x068F
+,0x0580
+,0x0596
+,0x058F
+,0x0580
+,0x0597
+,0x048F
+,0x0580
+,0x0498
+,0x048F
+,0x0580
+,0x0498
+,0x058E
+,0x0B98
+,0x058E
+,0x0B98
+,0x048F
+,0x0580
+,0x0498
+,0x048E
+,0x0581
+,0x0597
+,0x048E
+,0x0581
+,0x0596
+,0x058D
+,0x0681
+,0x0695
+,0x048E
+,0x0583
+,0x0594
+,0x058D
+,0x0683
+,0x0693
+,0x048D
+,0x0685
+,0x0790
+,0x058B
+,0x0786
+,0x098D
+,0x058A
+,0x0888
+,0x0B88
+,0x0687
+,0x0C89
+,0x2D8C
+,0x2B8F
+,0x2793
+,0x2496
+,0x1F9D
+,0x17A9
+,0x07D3 
+,0xFF00
+#line 754 "p2_deco_main - 090915b.c"
+
+};
+
+#pragma romdata font_table_large = 0x0BFE6
+rom const rom unsigned int  wp_large_table[] =
+{
+#line 1 "./ostc90.tbl.txt"
+0x0000 
+,0x0022 
+,0x0035 
+,0x00D2
+,0x0100
+,0x01A8
+,0x0243
+,0x02AC
+,0x0354
+,0x03ED
+,0x0454
+,0x04FF 
+,0x059A 
+#line 760 "p2_deco_main - 090915b.c"
+
+};
+
+
+
+
+
+
+
+
+
+#pragma code subroutines2 = 0x0C000	
+
+
+
+
+void create_dbs_set_dbg_and_ndl20mtr(void)
+{
+	int_O_DBS_bitfield = 0;
+	int_O_DBS2_bitfield = 0;
+	if(int_O_DBG_pre_bitfield & 0b0000000000000100 )
+		int_O_DBG_pre_bitfield = 0b0000000000001000 ;
+	else
+		int_O_DBG_pre_bitfield = 0b0000000000000100 ;
+	int_O_DBG_post_bitfield = 0;
+	char_O_NDL_at_20mtr = 255;
+
+	DBG_N2_ratio = N2_ratio;
+	DBG_He_ratio = He_ratio;
+	DBG_char_I_deco_model = char_I_deco_model;
+	DBG_char_I_depth_last_deco = char_I_depth_last_deco;
+	DBG_pres_surface = pres_surface;
+	DBG_GF_low = GF_low;
+	DBG_GF_high = GF_high;
+	DBG_const_ppO2 = const_ppO2;
+	DBG_deco_ppO2_change = deco_ppO2_change;
+	DBG_deco_ppO2 = deco_ppO2;
+	DBG_deco_N2_ratio = deco_N2_ratio;
+	DBG_deco_He_ratio = deco_He_ratio;
+	DBG_deco_gas_change = deco_gas_change;
+	DBG_float_saturation_multiplier = float_saturation_multiplier;
+	DBG_float_desaturation_multiplier = float_desaturation_multiplier;
+	DBG_float_deco_distance = float_deco_distance;
+
+	if(char_I_deco_model)
+		int_O_DBS_bitfield |= 0b0000000000000001 ;
+	if(const_ppO2)
+		int_O_DBS_bitfield |= 0b0000000000000010 ;
+	for(int_dbg_i = 16; int_dbg_i < 32; int_dbg_i++)
+		if(pres_tissue[int_dbg_i])
+			int_O_DBS_bitfield |= 0b0000000000000100 ;
+	if(deco_ppO2_change)
+		int_O_DBS_bitfield |= 0b0000000000001000 ;
+	if(float_saturation_multiplier < 0.99)
+		int_O_DBS_bitfield |= 0b0000000000010000 ;
+	if(float_saturation_multiplier > 1.3)
+		int_O_DBS_bitfield |= 0b0000000000100000 ;
+	if(GF_low < 0.19)
+		int_O_DBS_bitfield |= 0b0000000001000000 ;
+	if(GF_low > 1.01)
+		int_O_DBS_bitfield |= 0b0000000010000000 ;
+	if(GF_high < 0.6)
+		int_O_DBS_bitfield |= 0b0000000100000000 ;
+	if(GF_high > 1.01)
+		int_O_DBS_bitfield |= 0b0000001000000000 ;
+	if((N2_ratio + He_ratio) > 0.95)
+		int_O_DBS_bitfield |= 0b0000010000000000 ;
+	if((N2_ratio + He_ratio) < 0.05)
+		int_O_DBS_bitfield |= 0b0000100000000000 ;
+	if(float_deco_distance > 0.25)
+		int_O_DBS_bitfield |= 0b0001000000000000 ;
+	if(char_I_depth_last_deco > 8)
+		int_O_DBS_bitfield |= 0b0010000000000000 ;
+	if(DBG_deco_gas_change && ((deco_N2_ratio + deco_He_ratio) > 0.95))
+		int_O_DBS_bitfield |= 0b0100000000000000 ;
+	if(DBG_deco_gas_change && ((deco_N2_ratio + deco_He_ratio) < 0.05))
+		int_O_DBS_bitfield |= 0b1000000000000000 ;
+	if(pres_respiration > 3.0)
+		int_O_DBS2_bitfield |= 0b0000000000000001 ;
+	if(pres_surface - pres_respiration > 0.2)
+		int_O_DBS2_bitfield |= 0b0000000000000010 ;
+	if(pres_surface < 0.75)
+		int_O_DBS2_bitfield |= 0b0000000000000100 ;
+	if(pres_surface > 1.11)
+		int_O_DBS2_bitfield |= 0b0000000000001000 ;
+	if(float_desaturation_multiplier < 0.70)
+		int_O_DBS2_bitfield |= 0b0000000000010000 ;
+	if(float_desaturation_multiplier > 1.01)
+		int_O_DBS2_bitfield |= 0b0000000000100000 ;
+	if(GF_low > GF_high)
+		int_O_DBS2_bitfield |= 0b0000000001000000 ;
+}
+
+
+
+
+void set_dbg_end_of_dive(void)
+{
+	int_O_DBG_pre_bitfield &= (~0b0000000000000100 );
+	int_O_DBG_post_bitfield &= (~0b0000000000000100 );
+}
+
+
+
+
+void check_ndl(void)
+{
+	if((char_O_NDL_at_20mtr == -1) && (int_I_pres_respiration > 3000))
+	{
+		char_O_NDL_at_20mtr = char_O_nullzeit;
+		if(char_O_NDL_at_20mtr == 255)
+			char_O_NDL_at_20mtr == 254;
+	}
+}
+
+
+
+
+void check_dbg(char is_post_check)
+{
+	temp_DBS = 0;
+	if( (DBG_N2_ratio != N2_ratio) || (DBG_He_ratio != He_ratio) )
+		temp_DBS |= 0b0000000000000001 ;
+	if(DBG_const_ppO2 != const_ppO2)
+		temp_DBS |= 0b0000000000000010 ;
+	if((DBG_float_saturation_multiplier != float_saturation_multiplier) || (DBG_float_desaturation_multiplier != float_desaturation_multiplier))
+		temp_DBS |= 0b0000000000010000 ;
+	if(DBG_char_I_deco_model != char_I_deco_model)
+		temp_DBS |= 0b0000000000100000 ;
+	if(DBG_pres_surface != pres_surface)
+		temp_DBS |= 0b0000000001000000 ;
+	if((!0b0000000000000100 ) && (!He_ratio))
+		for(int_dbg_i = 16; int_dbg_i < 32; int_dbg_i++)
+			if(pres_tissue[int_dbg_i])
+				temp_DBS |= 0b0000000010000000 ;
+	if(DBG_deco_ppO2 != deco_ppO2)
+		temp_DBS |= 0b0000000100000000 ;
+	if((DBG_deco_gas_change != deco_gas_change) || (DBG_deco_N2_ratio != deco_N2_ratio) || (DBG_deco_He_ratio != deco_He_ratio))
+		temp_DBS |= 0b0000001000000000 ;
+	if(DBG_float_deco_distance != float_deco_distance)
+		temp_DBS |= 0b0000010000000000 ;
+	if(DBG_char_I_depth_last_deco != char_I_depth_last_deco)
+		temp_DBS |= 0b0000100000000000 ;
+	if((DBG_GF_low != GF_low) || (DBG_GF_high != GF_high))
+		temp_DBS |= 0b0001000000000000 ;
+	if(pres_respiration > 13.0)
+		temp_DBS |= 0b0100000000000000 ;
+	if(pres_surface - pres_respiration > 0.2)
+		temp_DBS |= 0b1000000000000000 ;
+
+#line 914 "p2_deco_main - 090915b.c"
+ 
+	if(is_post_check)
+		int_O_DBG_post_bitfield |= temp_DBS;
+	else
+		int_O_DBG_pre_bitfield |= temp_DBS;
+}
+
+
+
+
+void check_pre_dbg(void)
+{
+	check_dbg(0);
+}
+
+
+
+
+void check_post_dbg(void)
+{
+	check_dbg(1);
+}
+
+
+
+
+
+
+
+void calc_nextdecodepth_GF(void)
+{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+	char_I_table_deco_done[0] = 0; 
+	if (char_I_deco_model == 1)
+	{
+		if (lock_GF_depth_list == 0)
+		{
+			temp2 =  temp_pres_gtissue_limit_GF_low_below_surface / 0.29985; 					
+ 			int_temp = (int) (temp2 + 0.99);
+			if (int_temp > 31)
+				int_temp = 31;						
+			if (int_temp < 0)
+				int_temp = 0;
+			temp_depth_GF_low_number = int_temp;
+ 			temp_depth_GF_low_meter = 3 * temp_depth_GF_low_number;
+			temp2 = (float)temp_depth_GF_low_meter * 0.09995;
+			temp_pres_deco_GF_low = temp2 + float_deco_distance + pres_surface;
+			if (temp_depth_GF_low_number == 0)
+				GF_step = 0;
+			else
+				GF_step = GF_delta / (float)temp_depth_GF_low_number;
+			if (GF_step < 0)
+				GF_step = 0;
+			if (GF_step > GF_delta)
+				GF_step = GF_delta;
+			int_O_GF_step = (int)(GF_step * 10000);
+			int_O_limit_GF_low = (int)(temp_pres_deco_GF_low * 1000);
+			int_O_gtissue_press_at_GF_low = (int)(temp_pres_gtissue * 1000);
+			char_O_GF_low_pointer = temp_depth_GF_low_number;
+			lock_GF_depth_list = 1;
+			internal_deco_pointer = 0;
+		}
+		if (internal_deco_pointer == 0)		
+		{
+			internal_deco_pointer = temp_depth_GF_low_number;
+			GF_temp = GF_high - ((float)internal_deco_pointer * GF_step);
+			int_temp = char_I_table_deco_done[internal_deco_pointer];
+			output[8] = int_temp;
+			output[9] = 33;
+		}
+		else
+		{
+			int_temp = 1;
+		}
+		while (int_temp == 1)
+		{
+			int_temp = internal_deco_pointer - 1;
+			if (int_temp == 1)								
+			{
+				temp2 = (float)(temp_depth_last_deco * int_temp) * 0.09995;
+				GF_step2 = GF_step/3.0 * ((float)(6 - temp_depth_last_deco));
+			}
+			else
+			if (int_temp == 0)
+			{
+				temp2 = 0.0;
+				GF_step2 = GF_high - GF_temp;
+			}
+			else
+			{
+				temp2 = (float)(3 *int_temp) * 0.09995;
+				GF_step2 = GF_step;
+			}
+			temp2 = temp2 + pres_surface; 
+			temp1 = ((GF_temp + GF_step2)* temp_pres_gtissue_diff) + temp_pres_gtissue;	
+			if (temp1 > temp2) 
+			{
+				int_temp = 0;	
+			}
+			else
+			{
+				internal_deco_pointer = int_temp;
+				GF_temp = GF_temp + GF_step2; 
+				int_temp = char_I_table_deco_done[internal_deco_pointer]; 
+			}
+		} 
+		if (internal_deco_pointer > 0)
+		{
+			temp2 = (float)(0.29985 * internal_deco_pointer);
+			temp_deco = temp2 + float_deco_distance + pres_surface;
+			if (internal_deco_pointer == 1)						
+				temp_depth_limit = temp_depth_last_deco;
+			else
+				temp_depth_limit = 3 * internal_deco_pointer;
+			if (output[9] == 33)
+			{
+				output[9] = internal_deco_pointer;
+				output[10] = char_I_table_deco_done[internal_deco_pointer];
+				output[12] = output[12] + 1;
+				if (output[12] == 100)
+					output[12] = 0;
+			}
+		}
+		else	
+		{
+			temp_deco = pres_surface;
+			temp_depth_limit = 0;
+		}
+	}
+	else
+	{
+		
+		
+		
+
+		temp1 = temp_pres_gtissue_limit - pres_surface;
+		if (temp1 >= 0)
+ 		{
+ 			temp1 = temp1 / 0.29985; 									
+ 			temp_depth_limit = (int) (temp1 + 0.99);
+ 			temp_depth_limit = 3 * temp_depth_limit; 					
+ 			if (temp_depth_limit == 0)
+  				temp_deco = pres_surface;
+ 			else
+  			{
+  				if (temp_depth_limit < temp_depth_last_deco)
+					temp_depth_limit = temp_depth_last_deco;
+  				temp1 = (float)temp_depth_limit * 0.09995;
+  				temp_deco = temp1 + float_deco_distance + pres_surface; 	
+  			} 
+ 		} 
+		else
+ 		{
+ 			temp_deco = pres_surface;
+ 			temp_depth_limit = 0;
+ 		} 
+	} 
+} 
+
+
+#line 1100 "p2_deco_main - 090915b.c"
+#line 1116 "p2_deco_main - 090915b.c"
+
+
+
+
+
+void copy_deco_table_GF(void)
+{
+	if (char_I_deco_model == 1)
+	{
+		int_temp = 32;
+		for (ci=0;ci<int_temp;ci++)
+			char_O_deco_table[ci] = internal_deco_table[ci];
+	}
+}		
+
+
+
+
+
+
+void clear_internal_deco_table_GF(void)
+{
+	if (char_I_deco_model == 1)
+	{
+		for (ci=0;ci<32;ci++)  
+		{
+			internal_deco_table[ci] = 0;
+		}
+	}
+}	
+
+
+
+
+
+
+void update_internal_deco_table_GF(void)
+{
+	if ((char_I_deco_model == 1) && (internal_deco_table[internal_deco_pointer] < 255))
+		internal_deco_table[internal_deco_pointer] = internal_deco_table[internal_deco_pointer] + 1;
+}	
+
+
+
+
+
+
+void temp_tissue_safety(void)
+{
+	if (char_I_deco_model == 1)
+	{
+	}
+	else
+	{
+		if (temp_tissue < 0.0)
+			temp_tissue = temp_tissue * float_desaturation_multiplier;
+ 		else
+			temp_tissue = temp_tissue * float_saturation_multiplier;
+	}
+} 
+
+
+
+
+
+
+
+
+#pragma code main_calc_hauptroutine = 0x10000
+void main_calc_hauptroutine(void)
+{
+calc_hauptroutine();
+int_O_desaturation_time = 65535;
+}				
+#pragma code main_without_deco = 0x10020
+void main_calc_without_deco(void)
+{
+calc_without_deco();
+calc_desaturation_time();
+}
+
+#pragma code main_clear_CNS_fraction = 0x10030
+void main_clear_CNS_fraction(void)
+{
+clear_CNS_fraction();
+}
+
+#pragma code main_calc_CNS_decrease_15min = 0x10034
+void main_calc_CNS_decrease_15min(void)
+{
+calc_CNS_decrease_15min();
+}
+
+#pragma code main_calc_percentage = 0x10038
+void main_calc_percentage (void)
+{
+calc_percentage();
+}
+
+#pragma code main_clear_tissue = 0x10040
+void main_clear_tissue(void)
+{
+clear_tissue();
+char_I_depth_last_deco	= 0;		
+}
+
+#pragma code main_calc_CNS_fraction = 0x10050
+void main_calc_CNS_fraction(void)
+{
+calc_CNS_fraction();
+}
+
+#pragma code main_calc_desaturation_time = 0x10060
+void main_calc_desaturation_time(void)
+{
+calc_desaturation_time();
+}
+
+#pragma code main_calc_wo_deco_step_1_min = 0x10080
+void main_calc_wo_deco_step_1_min(void)
+{
+calc_wo_deco_step_1_min();
+char_O_deco_status = 3; 
+calc_desaturation_time();
+}			
+
+#pragma code main_debug = 0x100A0
+void main_debug(void)
+{
+
+}
+
+#pragma code main_DD2_write_incon42 = 0x100B0
+void main_DD2_write_incon42(void)
+{
+	return;
+}
+
+#pragma code main_DD2_write_incon24 = 0x100B4
+void main_DD2_write_incon24(void)
+{
+	return;
+}
+
+#pragma code main_wordprocessor = 0x100B8
+void main_wordprocessor(void)
+{
+	wordprocessor();
+}
+
+#pragma code main_gradient_array = 0x100C0
+void main_gradient_array(void)
+{
+calc_gradient_array_only();
+}
+#pragma code main_push_tissues = 0x100C4
+void main_push_tissues_to_vault(void)
+{
+	push_tissues_to_vault();
+}
+#pragma code main_pull_tissues = 0x100C8
+void main_pull_tissues_from_vault(void)
+{
+	pull_tissues_from_vault();
+}
+
+#pragma code main_hash = 0x100E0
+void main_hash(void)
+{
+hash();
+}
+
+
+
+
+
+
+
+#pragma romdata tables = 0x10200
+ 		
+
+#pragma romdata tables2 = 0x10600
+rom const rom unsigned int md_pi[] =
+{
+    0x292E, 0x43C9, 0xA2D8, 0x7C01, 0x3D36, 0x54A1, 0xECF0, 0x0613
+  , 0x62A7, 0x05F3, 0xC0C7, 0x738C, 0x9893, 0x2BD9, 0xBC4C, 0x82CA
+  , 0x1E9B, 0x573C, 0xFDD4, 0xE016, 0x6742, 0x6F18, 0x8A17, 0xE512
+  , 0xBE4E, 0xC4D6, 0xDA9E, 0xDE49, 0xA0FB, 0xF58E, 0xBB2F, 0xEE7A
+  , 0xA968, 0x7991, 0x15B2, 0x073F, 0x94C2, 0x1089, 0x0B22, 0x5F21
+  , 0x807F, 0x5D9A, 0x5A90, 0x3227, 0x353E, 0xCCE7, 0xBFF7, 0x9703
+  , 0xFF19, 0x30B3, 0x48A5, 0xB5D1, 0xD75E, 0x922A, 0xAC56, 0xAAC6
+  , 0x4FB8, 0x38D2, 0x96A4, 0x7DB6, 0x76FC, 0x6BE2, 0x9C74, 0x04F1
+  , 0x459D, 0x7059, 0x6471, 0x8720, 0x865B, 0xCF65, 0xE62D, 0xA802
+  , 0x1B60, 0x25AD, 0xAEB0, 0xB9F6, 0x1C46, 0x6169, 0x3440, 0x7E0F
+  , 0x5547, 0xA323, 0xDD51, 0xAF3A, 0xC35C, 0xF9CE, 0xBAC5, 0xEA26
+  , 0x2C53, 0x0D6E, 0x8528, 0x8409, 0xD3DF, 0xCDF4, 0x4181, 0x4D52
+  , 0x6ADC, 0x37C8, 0x6CC1, 0xABFA, 0x24E1, 0x7B08, 0x0CBD, 0xB14A
+  , 0x7888, 0x958B, 0xE363, 0xE86D, 0xE9CB, 0xD5FE, 0x3B00, 0x1D39
+  , 0xF2EF, 0xB70E, 0x6658, 0xD0E4, 0xA677, 0x72F8, 0xEB75, 0x4B0A
+  , 0x3144, 0x50B4, 0x8FED, 0x1F1A, 0xDB99, 0x8D33, 0x9F11, 0x8314
+};
+
+
+
+
+
+
+
+#pragma code subroutines = 0x10700	
+
+
+
+
+
+
+
+void clear_tissue(void)    
+{
+
+	flag_in_divemode = 0;
+	int_O_DBS_bitfield = 0;
+	int_O_DBS2_bitfield = 0;
+	int_O_DBG_pre_bitfield = 0;
+	int_O_DBG_post_bitfield = 0;
+	char_O_NDL_at_20mtr = 255;
+
+_asm
+lfsr 1, 0x300 
+movlw	0x01
+movwf	TBLPTRU,0
+_endasm
+
+
+ N2_ratio = 0.7902; 
+ pres_respiration = (float)int_I_pres_respiration / 1000.0;
+for (ci=0;ci<16;ci++)  
+{
+ pres_tissue[ci] =  N2_ratio * (pres_respiration -  0.0627) ;
+_asm
+movlw	0x02
+movwf	TBLPTRH,0
+movlb	4 
+movf ci,0,1
+addwf	ci,0,1
+addwf	ci,0,1
+addwf	ci,0,1
+addlw	0x80
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var_a+1
+TBLRDPOSTINC
+movff	TABLAT,var_a
+TBLRDPOSTINC
+movff	TABLAT,var_a+3
+TBLRD
+movff	TABLAT,var_a+2
+addlw	0x80
+movwf	TBLPTRL,0
+incf	TBLPTRH,1,0
+TBLRDPOSTINC
+movff	TABLAT,var_b+1
+TBLRDPOSTINC
+movff	TABLAT,var_b
+TBLRDPOSTINC
+movff	TABLAT,var_b+3
+TBLRD
+movff	TABLAT,var_b+2
+_endasm
+
+pres_tissue_limit[ci] = (pres_tissue[ci] - var_a) * var_b ;
+
+if (pres_tissue_limit[ci] < 0)
+pres_tissue_limit[ci] = 0;
+} 
+
+for (ci=16;ci<32;ci++)  
+{
+ pres_tissue[ci] = 0.0;
+}  
+
+ clear_decoarray();
+ char_O_deco_status = 0;
+ char_O_nullzeit = 0;
+ char_O_ascenttime = 0;
+ char_O_gradient_factor = 0;
+ char_O_relative_gradient_GF = 0;
+} 
+
+
+
+
+
+
+
+
+void calc_without_deco(void)
+{
+_asm
+ lfsr 1, 0x300
+_endasm
+ N2_ratio = 0.7902; 
+ pres_respiration = (float)int_I_pres_respiration / 1000.0; 
+ pres_surface = (float)int_I_pres_surface / 1000.0;
+ temp_atem = N2_ratio * (pres_respiration - 0.0627); 
+ temp2_atem = 0.0;
+ temp_surface = pres_surface; 
+ float_desaturation_multiplier = char_I_desaturation_multiplier / 100.0;
+ float_saturation_multiplier = char_I_saturation_multiplier / 100.0;
+
+ calc_tissue();  
+
+ clear_decoarray();
+ char_O_deco_status = 0;
+ char_O_nullzeit = 0;
+ char_O_ascenttime = 0;
+ calc_gradient_factor();
+
+} 
+
+
+
+
+
+
+
+
+
+
+
+void calc_hauptroutine(void)
+{
+	calc_hauptroutine_data_input();
+
+	if(!flag_in_divemode)
+	{
+		flag_in_divemode = 1;
+		create_dbs_set_dbg_and_ndl20mtr();
+	}
+	else
+		check_pre_dbg();
+
+	calc_hauptroutine_update_tissues();
+	calc_gradient_factor();
+
+
+	switch (char_O_deco_status)	
+	{
+ 		case 0:
+			update_startvalues();
+			calc_nullzeit();
+			check_ndl();
+			char_O_deco_status = 255; 
+			break;
+		case 1:
+			if (char_O_deco_status == 3)
+				break;
+			char_O_deco_status = 0;
+
+			calc_hauptroutine_calc_deco();
+
+			break;
+		case 3:				
+			clear_decoarray();
+			clear_internal_deco_table_GF();
+			copy_deco_table_GF();
+			internal_deco_pointer = 0;
+			lock_GF_depth_list = 0;
+			update_startvalues();
+			calc_nextdecodepth_GF();
+			char_O_deco_status = 0;
+			break;
+		default:
+			update_startvalues();
+			clear_decoarray();
+			clear_internal_deco_table_GF();
+			output[6] = 1;
+			calc_hauptroutine_calc_ascend_to_deco();
+ 			if (char_O_deco_status > 15)		
+			{
+				char_O_deco_status = 2;
+
+			}
+ 			else
+			{
+
+				calc_hauptroutine_calc_deco();
+			}
+
+			break;
+	}
+	calc_ascenttime();
+	check_post_dbg();
+}
+
+void calc_hauptroutine_data_input(void)
+{
+ pres_respiration = (float)int_I_pres_respiration / 1000.0;
+ pres_surface = (float)int_I_pres_surface / 1000.0;
+
+ N2_ratio = (float)char_I_N2_ratio / 100.0;; 
+ He_ratio = (float)char_I_He_ratio / 100.0;;
+ deco_N2_ratio = (float)char_I_deco_N2_ratio / 100.0;
+ deco_He_ratio = (float)char_I_deco_He_ratio / 100.0;
+ float_deco_distance = (float)char_I_deco_distance / 100.0;
+ if(char_I_deco_gas_change)
+ {
+	 deco_gas_change = (float)char_I_deco_gas_change / 9.995 + pres_surface;
+	 deco_gas_change = deco_gas_change + float_deco_distance;
+ }
+ else
+	deco_gas_change = 0;
+ const_ppO2 = (float)char_I_const_ppO2 / 100.0;
+ deco_ppO2_change = (float)char_I_deco_ppO2_change / 99.95 + pres_surface;
+ deco_ppO2_change = deco_ppO2_change + float_deco_distance;
+ deco_ppO2 = (float)char_I_deco_ppO2 / 100.0;
+ float_desaturation_multiplier = char_I_desaturation_multiplier / 100.0;
+ float_saturation_multiplier = char_I_saturation_multiplier / 100.0;
+ GF_low = (float)char_I_GF_Low_percentage / 100.0;
+ GF_high = (float)char_I_GF_High_percentage / 100.0;
+ GF_delta = GF_high - GF_low;
+
+ temp2 = (pres_respiration - pres_surface) / 0.29985;
+ int_temp = (int)(temp2);
+ if (int_temp < 0)
+	int_temp = 0;
+ if (int_temp > 255)
+	int_temp = 255;
+ char_O_actual_pointer = int_temp;
+
+ temp_depth_last_deco = (int)char_I_depth_last_deco;
+}
+
+void calc_hauptroutine_update_tissues(void)
+{
+	int_O_calc_tissue_call_counter = int_O_calc_tissue_call_counter + 1;
+ 	if (char_I_const_ppO2 == 0)																
+  		pres_diluent = pres_respiration;															
+ 	else																						
+  		pres_diluent = ((pres_respiration - const_ppO2)/(N2_ratio + He_ratio));					
+ 	if (pres_diluent > pres_respiration)														
+  		pres_diluent = pres_respiration;															
+ 	if (pres_diluent > 0.0627)																	
+ 	{
+ 		temp_atem = N2_ratio * (pres_diluent - 0.0627);											
+ 		temp2_atem = He_ratio * (pres_diluent - 0.0627);											
+ 		char_O_diluent = (char)(pres_diluent/pres_respiration*100.0);
+ 	}
+ 	else																						
+ 	{
+ 		temp_atem = 0.0;																			
+ 		temp2_atem = 0.0;																			
+ 		char_O_diluent = 0;
+ 	}
+ 	temp_surface = pres_surface;
+ 	calc_tissue();
+ 	int_O_gtissue_limit = (int)(pres_tissue_limit[char_O_gtissue_no] * 1000);
+	int_O_gtissue_press = (int)((pres_tissue[char_O_gtissue_no] + pres_tissue[char_O_gtissue_no+16]) * 1000);
+ 	if (char_I_deco_model == 1)
+ 	{
+		temp1 = temp1 * GF_high;
+ 	}
+	else
+	{
+	temp1 = temp_surface;
+	}
+	if (pres_gtissue_limit > temp1 && char_O_deco_status == 0)  
+ 	{
+  		char_O_nullzeit = 0; 
+  		char_O_deco_status = 255; 
+ 	}
+} 		
+void calc_hauptroutine_calc_deco(void)
+{
+ 	do
+  	{
+  		int_temp_decostatus = 0;
+  		calc_nextdecodepth_GF();
+  		if (temp_depth_limit > 0)
+   		{
+    		if (char_I_const_ppO2 == 0)																
+	 		{
+     			deco_diluent = temp_deco;																
+	 			if (temp_deco > deco_gas_change)
+	  			{
+	  				calc_N2_ratio = N2_ratio;
+	  				calc_He_ratio = He_ratio;
+	  			}
+	 			else
+	  			{
+	  				calc_N2_ratio = deco_N2_ratio;
+	  				calc_He_ratio = deco_He_ratio;
+	  			}
+	 		}
+    		else																					
+	 		{
+	 			calc_N2_ratio = N2_ratio;
+	 			calc_He_ratio = He_ratio;
+	 			if (temp_deco > deco_ppO2_change)
+				{
+      				deco_diluent = ((temp_deco - const_ppO2)/(N2_ratio + He_ratio));			
+				}
+	 			else
+				{
+      				deco_diluent = ((temp_deco - deco_ppO2)/(N2_ratio + He_ratio));			
+				}
+	 		}
+    		if (deco_diluent > temp_deco)															
+     			deco_diluent = temp_deco;																
+ 			if (deco_diluent > 0.0627)																
+    		{
+     			temp_atem = calc_N2_ratio * (deco_diluent - 0.0627);										
+				temp2_atem = calc_He_ratio * (deco_diluent - 0.0627);										
+    		}
+    		else																					
+    		{
+     			temp_atem = 0.0;																		
+     			temp2_atem = 0.0;																		
+    		}
+   			sim_tissue_1min();
+			update_internal_deco_table_GF();
+   			temp_decotime = 1;
+   			update_decoarray();
+   			char_O_deco_status = char_O_deco_status + 1;
+   			if (char_O_deco_status < 16)
+     			int_temp_decostatus = 1;
+   		}
+  		else 
+		{
+   		char_O_deco_status = 0;
+		}
+	} while (int_temp_decostatus == 1);
+	if (char_O_deco_status > 15)
+	{
+   		char_O_deco_status = 1;
+	}
+  	else
+  	{
+		copy_deco_table_GF();
+		char_O_deco_status = 0;
+  	}
+}
+
+void calc_hauptroutine_calc_ascend_to_deco(void)
+{
+ 	update_startvalues();
+ 	char_O_deco_status = 0;
+   	temp_deco = pres_respiration;
+ 	lock_GF_depth_list = 1; 																
+ 	do								
+  	{
+  		int_temp_decostatus = 0;
+  		temp_deco = temp_deco - 1.0;
+  		if ( char_I_deco_model == 1)																
+			temp_limit = temp_pres_gtissue_limit_GF_low;
+  		else
+			temp_limit = temp_pres_gtissue_limit;
+  		if ((temp_deco > temp_limit) && (temp_deco > pres_surface)) 								
+   		{
+   			lock_GF_depth_list = 0; 																	
+			output[6] = 0;
+  		 	if (char_I_const_ppO2 == 0)																
+			{
+    			deco_diluent = temp_deco + 0.5;															
+				if (temp_deco + 0.5 > deco_gas_change)
+	 			{
+	 				calc_N2_ratio = N2_ratio;
+	 				calc_He_ratio = He_ratio;
+	 			}
+				else
+	 			{
+	 				calc_N2_ratio = deco_N2_ratio;
+	 				calc_He_ratio = deco_He_ratio;
+	 			}
+			}
+   			else																						
+			{
+					calc_N2_ratio = N2_ratio;
+					calc_He_ratio = He_ratio;
+					if (temp_deco + 0.5 > deco_ppO2_change)
+     					deco_diluent = ((temp_deco + 0.5 - const_ppO2)/(N2_ratio + He_ratio));	
+					else
+     					deco_diluent = ((temp_deco + 0.5 - deco_ppO2)/(N2_ratio + He_ratio));	
+    				if (deco_diluent > (temp_deco +0.5))															
+     					deco_diluent = temp_deco + 0.5;															
+			}
+   			if (deco_diluent > 0.0627)																
+    		{
+    			temp_atem = calc_N2_ratio * (deco_diluent - 0.0627);											
+    			temp2_atem = calc_He_ratio * (deco_diluent - 0.0627);										
+    		}
+   			else																						
+    		{
+    			temp_atem = 0.0;																		
+    			temp2_atem = 0.0;																		
+    		}
+   			sim_tissue_1min();
+   			char_O_deco_status = char_O_deco_status + 1;
+   			if (char_O_deco_status < 16)  
+    			int_temp_decostatus = 1;
+   		}
+	} while (int_temp_decostatus == 1);
+}	
+
+
+
+
+
+
+void calc_tissue(void)
+{
+_asm
+lfsr 1, 0x300
+movlw	0x01
+movwf	TBLPTRU,0
+_endasm
+
+ char_O_gtissue_no = 255;
+ pres_gtissue_limit = 0.0;
+
+for (ci=0;ci<16;ci++)
+{
+_asm
+movlw	0x02
+movwf	TBLPTRH,0
+movlb	4 
+movf ci,0,1
+addwf	ci,0,1
+addwf	ci,0,1
+addwf	ci,0,1
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var_e2secs+1 
+TBLRDPOSTINC
+movff	TABLAT,var_e2secs	
+TBLRDPOSTINC
+movff	TABLAT,var_e2secs+3
+TBLRD
+movff	TABLAT,var_e2secs+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var2_e2secs+1
+TBLRDPOSTINC
+movff	TABLAT,var2_e2secs
+TBLRDPOSTINC
+movff	TABLAT,var2_e2secs+3
+TBLRD
+movff	TABLAT,var2_e2secs+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var_a+1
+TBLRDPOSTINC
+movff	TABLAT,var_a
+TBLRDPOSTINC
+movff	TABLAT,var_a+3
+TBLRD
+movff	TABLAT,var_a+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var2_a+1
+TBLRDPOSTINC
+movff	TABLAT,var2_a
+TBLRDPOSTINC
+movff	TABLAT,var2_a+3
+TBLRD
+movff	TABLAT,var2_a+2
+addlw	0x40
+movwf	TBLPTRL,0
+incf	TBLPTRH,1,0
+TBLRDPOSTINC
+movff	TABLAT,var_b+1
+TBLRDPOSTINC
+movff	TABLAT,var_b
+TBLRDPOSTINC
+movff	TABLAT,var_b+3
+TBLRD
+movff	TABLAT,var_b+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var2_b+1
+TBLRDPOSTINC
+movff	TABLAT,var2_b
+TBLRDPOSTINC
+movff	TABLAT,var2_b+3
+TBLRD
+movff	TABLAT,var2_b+2
+_endasm
+ 
+
+	if(	(var_e2secs < 0.0000363)
+		|| (var_e2secs > 0.00577)
+		|| (var2_e2secs < 0.0000961)
+		|| (var2_e2secs > 0.150)
+		|| (var_a < 0.231)
+		|| (var_a > 1.27)
+		|| (var_b < 0.504)
+		|| (var_b > 0.966)
+		|| (var2_a < 0.510)
+		|| (var2_a > 1.75)
+		|| (var2_b < 0.423)
+		|| (var2_b > 0.927)
+		)
+		int_O_DBG_pre_bitfield |= 0b0010000000000000 ;
+
+
+ temp_tissue = (temp_atem - pres_tissue[ci]) * var_e2secs;
+ temp_tissue_safety();
+ pres_tissue[ci] = pres_tissue[ci] + temp_tissue;
+
+
+ temp_tissue = (temp2_atem - pres_tissue[ci+16]) * var2_e2secs;
+ temp_tissue_safety();
+ pres_tissue[ci+16] = pres_tissue[ci+16] + temp_tissue;
+
+ temp_tissue = pres_tissue[ci] + pres_tissue[ci+16];
+
+ var_a = (var_a * pres_tissue[ci] + var2_a * pres_tissue[ci+16]) / temp_tissue;
+ var_b = (var_b * pres_tissue[ci] + var2_b * pres_tissue[ci+16]) / temp_tissue;
+ pres_tissue_limit[ci] = (temp_tissue - var_a) * var_b;
+ if (pres_tissue_limit[ci] < 0)
+  pres_tissue_limit[ci] = 0;
+ if (pres_tissue_limit[ci] > pres_gtissue_limit)
+  {
+  pres_gtissue_limit = pres_tissue_limit[ci];
+  char_O_gtissue_no = ci;
+  }
+} 
+}
+
+
+
+
+
+
+
+
+void calc_nullzeit(void)
+{
+	char_O_nullzeit = 0;
+	int_temp = 1;
+ 	do
+	{
+  		backup_sim_pres_tissue();
+  		sim_tissue_10min();
+  		char_O_nullzeit = char_O_nullzeit + 10;
+  		int_temp = int_temp + 1;
+		if (char_I_deco_model == 1)
+			temp1 = GF_high * temp_pres_gtissue_diff + temp_pres_gtissue;
+		else
+			temp1 = temp_pres_gtissue_limit;
+		if (temp1 > temp_surface)  
+			int_temp = 255;
+ 	} while (int_temp < 17);
+ 	if (int_temp == 255)
+ 	{
+  		restore_sim_pres_tissue();
+  		char_O_nullzeit = char_O_nullzeit - 10;
+ 	} 
+ 	int_temp = 1;
+ 	if (char_O_nullzeit < 60)
+ 	{
+  		do
+		{
+   			sim_tissue_1min();
+   			char_O_nullzeit = char_O_nullzeit + 1;
+   			int_temp = int_temp + 1;			
+		if (char_I_deco_model == 1)
+			temp1 = GF_high * temp_pres_gtissue_diff + temp_pres_gtissue;
+		else
+			temp1 = temp_pres_gtissue_limit;
+		if (temp1 > temp_surface)  
+			int_temp = 255;
+  		} while (int_temp < 10);
+  		if (int_temp == 255)
+   			char_O_nullzeit = char_O_nullzeit - 1;
+ 	} 
+} 
+
+
+
+
+void backup_sim_pres_tissue(void)
+{
+  for (x = 0;x<16;x++)
+  {
+   sim_pres_tissue_backup[x] = sim_pres_tissue[x];
+   sim_pres_tissue_backup[x+16] = sim_pres_tissue[x+16];
+  }
+} 
+
+
+
+
+void restore_sim_pres_tissue(void)
+{
+  for (x = 0;x<16;x++)
+  {
+   sim_pres_tissue[x] = sim_pres_tissue_backup[x];
+   sim_pres_tissue[x+16] = sim_pres_tissue_backup[x+16];
+  }
+} 
+
+
+
+
+
+void calc_ascenttime(void)
+{
+if (pres_respiration > pres_surface)
+ {
+ switch (char_O_deco_status)
+  {
+  case 2:
+	char_O_ascenttime = 255;
+	break;
+  case 1:
+	break;
+  default:
+	temp1 = pres_respiration - pres_surface + 0.6; 
+	if (temp1 < 0)
+		temp1 = 0;
+	if (temp1 > 255)
+		temp1 = 255;
+    char_O_ascenttime = (char)temp1;
+
+	for(ci=0;ci<7;ci++)
+	{
+	x = char_O_ascenttime + char_O_array_decotime[ci];
+	if (x < char_O_ascenttime)
+		char_O_ascenttime = 255;
+	else
+		char_O_ascenttime = x;
+	}
+  }
+ }
+else
+ char_O_ascenttime = 0;
+} 
+
+
+
+
+
+
+
+void update_startvalues(void)
+{
+  	temp_pres_gtissue_limit = pres_gtissue_limit;
+  	temp_pres_gtissue = pres_tissue[char_O_gtissue_no] + pres_tissue[char_O_gtissue_no+16];
+  	temp_pres_gtissue_diff = temp_pres_gtissue_limit - temp_pres_gtissue;						
+	temp_pres_gtissue_limit_GF_low = GF_low * temp_pres_gtissue_diff + temp_pres_gtissue;
+  	temp_pres_gtissue_limit_GF_low_below_surface = temp_pres_gtissue_limit_GF_low - pres_surface;
+	if (temp_pres_gtissue_limit_GF_low_below_surface < 0)
+		temp_pres_gtissue_limit_GF_low_below_surface = 0;
+
+	temp_gtissue_no = char_O_gtissue_no;
+  	for (x = 0;x<16;x++)
+  	{
+   		sim_pres_tissue[x] = pres_tissue[x];
+   		sim_pres_tissue[x+16] = pres_tissue[x+16];
+   		sim_pres_tissue_limit[x] = pres_tissue_limit[x];
+  	}
+} 
+
+
+
+
+
+
+
+void sim_tissue_1min(void)
+{
+temp_pres_gtissue_limit = 0.0;
+temp_gtissue_no = 255;
+
+_asm
+lfsr 1, 0x300
+movlw	0x01
+movwf	TBLPTRU,0
+_endasm
+
+
+for (ci=0;ci<16;ci++)
+{
+_asm
+movlw	0x02
+movwf	TBLPTRH,0
+movlb	4 
+movf ci,0,1
+addwf	ci,0,1
+addwf	ci,0,1
+addwf	ci,0,1
+addlw	0x80
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var_a+1
+TBLRDPOSTINC
+movff	TABLAT,var_a
+TBLRDPOSTINC
+movff	TABLAT,var_a+3
+TBLRD
+movff	TABLAT,var_a+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var2_a+1
+TBLRDPOSTINC
+movff	TABLAT,var2_a
+TBLRDPOSTINC
+movff	TABLAT,var2_a+3
+TBLRD
+movff	TABLAT,var2_a+2
+addlw	0x40
+movwf	TBLPTRL,0
+incf	TBLPTRH,1,0
+TBLRDPOSTINC
+movff	TABLAT,var_b+1
+TBLRDPOSTINC
+movff	TABLAT,var_b
+TBLRDPOSTINC
+movff	TABLAT,var_b+3
+TBLRD
+movff	TABLAT,var_b+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var2_b+1
+TBLRDPOSTINC
+movff	TABLAT,var2_b
+TBLRDPOSTINC
+movff	TABLAT,var2_b+3
+TBLRD
+movff	TABLAT,var2_b+2
+addlw	0xC0
+movwf	TBLPTRL,0
+incf	TBLPTRH,1,0
+TBLRDPOSTINC
+movff	TABLAT,var_e1min+1
+TBLRDPOSTINC
+movff	TABLAT,var_e1min
+TBLRDPOSTINC
+movff	TABLAT,var_e1min+3
+TBLRD
+movff	TABLAT,var_e1min+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var2_e1min+1
+TBLRDPOSTINC
+movff	TABLAT,var2_e1min
+TBLRDPOSTINC
+movff	TABLAT,var2_e1min+3
+TBLRD
+movff	TABLAT,var2_e1min+2
+_endasm
+
+ temp_tissue = (temp_atem - sim_pres_tissue[ci]) * var_e1min;
+ temp_tissue_safety();
+ sim_pres_tissue[ci] = sim_pres_tissue[ci] + temp_tissue;
+
+ temp_tissue = (temp2_atem - sim_pres_tissue[ci+16]) * var2_e1min;
+ temp_tissue_safety();
+ sim_pres_tissue[ci+16] = sim_pres_tissue[ci+16] + temp_tissue;
+
+ temp_tissue = sim_pres_tissue[ci] + sim_pres_tissue[ci+16];
+ var_a = (var_a * sim_pres_tissue[ci] + var2_a * sim_pres_tissue[ci+16]) / temp_tissue;
+ var_b = (var_b * sim_pres_tissue[ci] + var2_b * sim_pres_tissue[ci+16]) / temp_tissue;
+ sim_pres_tissue_limit[ci] = (temp_tissue - var_a) * var_b;
+
+ if (sim_pres_tissue_limit[ci] < 0)
+  sim_pres_tissue_limit[ci] = 0;
+ if (sim_pres_tissue_limit[ci] > temp_pres_gtissue_limit)
+  {
+  temp_pres_gtissue = temp_tissue;
+  temp_pres_gtissue_limit = sim_pres_tissue_limit[ci];
+  temp_gtissue_no = ci;
+  }
+} 
+  	temp_pres_gtissue_diff = temp_pres_gtissue_limit - temp_pres_gtissue;
+	temp_pres_gtissue_limit_GF_low = GF_low * temp_pres_gtissue_diff + temp_pres_gtissue;
+  	temp_pres_gtissue_limit_GF_low_below_surface = temp_pres_gtissue_limit_GF_low - pres_surface;
+	if (temp_pres_gtissue_limit_GF_low_below_surface < 0)
+		temp_pres_gtissue_limit_GF_low_below_surface = 0;
+} 
+
+
+
+
+
+
+
+
+
+
+void sim_tissue_10min(void)
+{
+temp_pres_gtissue_limit = 0.0;
+temp_gtissue_no = 255;
+
+_asm
+lfsr 1, 0x300
+movlw	0x01
+movwf	TBLPTRU,0
+_endasm
+
+for (ci=0;ci<16;ci++)
+{
+_asm
+movlw	0x02
+movwf	TBLPTRH,0
+movlb	4 
+movf ci,0,1
+addwf	ci,0,1
+addwf	ci,0,1
+addwf	ci,0,1
+addlw	0x80
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var_a+1
+TBLRDPOSTINC
+movff	TABLAT,var_a
+TBLRDPOSTINC
+movff	TABLAT,var_a+3
+TBLRD
+movff	TABLAT,var_a+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var2_a+1
+TBLRDPOSTINC
+movff	TABLAT,var2_a
+TBLRDPOSTINC
+movff	TABLAT,var2_a+3
+TBLRD
+movff	TABLAT,var2_a+2
+addlw	0x40
+movwf	TBLPTRL,0
+incf	TBLPTRH,1,0
+TBLRDPOSTINC
+movff	TABLAT,var_b+1
+TBLRDPOSTINC
+movff	TABLAT,var_b
+TBLRDPOSTINC
+movff	TABLAT,var_b+3
+TBLRD
+movff	TABLAT,var_b+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var2_b+1
+TBLRDPOSTINC
+movff	TABLAT,var2_b
+TBLRDPOSTINC
+movff	TABLAT,var2_b+3
+TBLRD
+movff	TABLAT,var2_b+2
+addlw	0xC0				
+movwf	TBLPTRL,0
+incf	TBLPTRH,1,0
+incf	TBLPTRH,1,0			
+TBLRDPOSTINC
+movff	TABLAT,var_e1min+1
+TBLRDPOSTINC
+movff	TABLAT,var_e1min
+TBLRDPOSTINC
+movff	TABLAT,var_e1min+3
+TBLRD
+movff	TABLAT,var_e1min+2
+addlw	0x40
+movwf	TBLPTRL,0
+
+TBLRDPOSTINC
+movff	TABLAT,var2_e1min+1
+TBLRDPOSTINC
+movff	TABLAT,var2_e1min
+TBLRDPOSTINC
+movff	TABLAT,var2_e1min+3
+TBLRD
+movff	TABLAT,var2_e1min+2
+_endasm
+
+ temp_tissue = (temp_atem - sim_pres_tissue[ci]) * var_e1min;
+ temp_tissue_safety();
+ sim_pres_tissue[ci] = sim_pres_tissue[ci] + temp_tissue;
+
+ temp_tissue = (temp2_atem - sim_pres_tissue[ci+16]) * var2_e1min;
+ temp_tissue_safety();
+ sim_pres_tissue[ci+16] = sim_pres_tissue[ci+16] + temp_tissue;
+
+temp_tissue = sim_pres_tissue[ci] + sim_pres_tissue[ci+16];
+ var_a = (var_a * sim_pres_tissue[ci] + var2_a * sim_pres_tissue[ci+16]) / temp_tissue;
+ var_b = (var_b * sim_pres_tissue[ci] + var2_b * sim_pres_tissue[ci+16]) / temp_tissue;
+
+sim_pres_tissue_limit[ci] = (temp_tissue - var_a) * var_b;
+ if (sim_pres_tissue_limit[ci] < 0)
+  sim_pres_tissue_limit[ci] = 0;
+ if (sim_pres_tissue_limit[ci] > temp_pres_gtissue_limit)
+  {
+  temp_pres_gtissue = temp_tissue;
+  temp_pres_gtissue_limit = sim_pres_tissue_limit[ci];
+  temp_gtissue_no = ci;
+  }
+} 
+  	temp_pres_gtissue_diff = temp_pres_gtissue_limit - temp_pres_gtissue;							
+	temp_pres_gtissue_limit_GF_low = GF_low * temp_pres_gtissue_diff + temp_pres_gtissue;
+  	temp_pres_gtissue_limit_GF_low_below_surface = temp_pres_gtissue_limit_GF_low - pres_surface;
+	if (temp_pres_gtissue_limit_GF_low_below_surface < 0)
+		temp_pres_gtissue_limit_GF_low_below_surface = 0;
+} 
+
+
+
+
+
+
+
+void clear_decoarray(void)
+{
+char_O_array_decodepth[0] = 0;
+char_O_array_decodepth[1] = 0;
+char_O_array_decodepth[2] = 0;
+char_O_array_decodepth[3] = 0;
+char_O_array_decodepth[4] = 0;
+char_O_array_decodepth[5] = 0;
+char_O_array_decotime[0] = 0;
+char_O_array_decotime[1] = 0;
+char_O_array_decotime[2] = 0;
+char_O_array_decotime[3] = 0;
+char_O_array_decotime[4] = 0;
+char_O_array_decotime[5] = 0;
+char_O_array_decotime[6] = 0;
+} 
+
+
+
+
+
+
+
+void update_decoarray()
+{
+	x = 0;
+	do
+	{
+		if (char_O_array_decodepth[x] == temp_depth_limit)
+		{
+			int_temp = char_O_array_decotime[x] + temp_decotime;
+			if (int_temp < 0)
+				int_temp = 0;
+			if (int_temp > 240)
+				int_temp = 240;
+ 			char_O_array_decotime[x] = int_temp;
+			x = 10; 
+		} 
+		else
+ 		{
+ 			if (char_O_array_decodepth[x] == 0)
+  			{
+  				if (temp_depth_limit > 255)
+   					char_O_array_decodepth[x] = 255;
+  				else
+   					char_O_array_decodepth[x] = (char)temp_depth_limit;
+  				int_temp = char_O_array_decotime[x] + temp_decotime;
+  				if (int_temp > 240)
+   					char_O_array_decotime[x] = 240;
+  				else
+   					char_O_array_decotime[x] = (char)int_temp;
+  				x = 10; 
+  			} 
+ 			else
+  				x++;
+ 		} 
+	} while (x<6);
+	if (x == 6)
+ 	{
+ 		int_temp = char_O_array_decotime[6] + temp_decotime;
+ 		if (int_temp > 220)
+  			char_O_array_decotime[6] = 220;
+ 		else
+  			char_O_array_decotime[6] = (char)int_temp;
+ 	} 
+} 
+
+
+
+
+
+
+
+
+void calc_gradient_factor(void)
+{
+	
+	
+	
+	
+	temp_tissue = pres_tissue[char_O_gtissue_no] + pres_tissue[char_O_gtissue_no+16];
+	temp1 = temp_tissue - pres_respiration;
+	temp2 = temp_tissue - pres_tissue_limit[char_O_gtissue_no];	
+	temp2 = temp1/temp2;
+	temp2 = temp2 * 100; 
+	if (temp2 < 0)
+		temp2 = 0;
+	if (temp2 > 255)
+		temp2 = 255;
+	if (temp1 < 0)
+ 		char_O_gradient_factor = 0;
+	else
+ 		char_O_gradient_factor = (char)temp2;
+
+	temp3 = temp2;
+
+	if (char_I_deco_model == 1)		
+	{
+		temp1 = (float)temp_depth_GF_low_meter * 0.09995;
+		temp2 = pres_respiration - pres_surface;
+		if (temp2 <= 0)
+			temp1 = GF_high;
+		else
+		if (temp2 >= temp1)
+			temp1 = GF_low;
+		else
+			temp1 = GF_low + (temp1 - temp2)/temp1*GF_delta;
+		if (temp_depth_GF_low_meter == 0)
+			temp1 = GF_high;
+		temp2 = temp3 / temp1; 
+		if (temp2 < 0)
+			temp2 = 0;
+		if (temp2 > 255)
+			temp2 = 255;
+		char_O_relative_gradient_GF  = (char)temp2;
+	}	
+	else
+	{
+ 			char_O_relative_gradient_GF = char_O_gradient_factor;
+	}
+} 
+
+
+
+
+
+
+
+void calc_gradient_array_only()
+{
+ pres_respiration = (float)int_I_pres_respiration / 1000.0; 
+for (ci=0;ci<16;ci++)
+{
+	temp_tissue = pres_tissue[ci] + pres_tissue[ci+16];
+	temp1 = temp_tissue - pres_respiration;
+	temp2 = temp_tissue - pres_tissue_limit[ci];
+	temp2 = temp1/temp2;
+	temp2 = temp2 * 200; 
+	if (temp2 < 0)
+		temp2 = 0;
+	if (temp2 > 255)
+		temp2 = 255;
+	if (temp1 < 0)
+ 		char_O_array_gradient_weighted[ci] = 0;
+	else
+ 		char_O_array_gradient_weighted[ci] = (char)temp2;
+} 
+} 
+
+
+
+
+
+
+
+
+void calc_desaturation_time(void)
+{
+_asm
+lfsr 1, 0x300
+movlw	0x01
+movwf	TBLPTRU,0
+_endasm
+ N2_ratio = 0.7902; 
+ pres_surface = (float)int_I_pres_surface / 1000.0;
+ temp_atem = N2_ratio * (pres_surface - 0.0627);
+ int_O_desaturation_time = 0;
+ float_desaturation_multiplier = char_I_desaturation_multiplier / 142.0; 
+
+for (ci=0;ci<16;ci++)
+{
+_asm
+movlw	0x04
+movwf	TBLPTRH,0
+movlb	4 
+movf ci,0,1
+addwf	ci,0,1
+addwf	ci,0,1
+addwf	ci,0,1
+addlw	0x80
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var_halftimes+1
+TBLRDPOSTINC
+movff	TABLAT,var_halftimes
+TBLRDPOSTINC
+movff	TABLAT,var_halftimes+3
+TBLRD
+movff	TABLAT,var_halftimes+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var2_halftimes+1
+TBLRDPOSTINC
+movff	TABLAT,var2_halftimes
+TBLRDPOSTINC
+movff	TABLAT,var2_halftimes+3
+TBLRD
+movff	TABLAT,var2_halftimes+2
+_endasm
+
+
+
+
+
+
+ temp1 = 1.05 * temp_atem;
+ temp1 = temp1 - pres_tissue[ci];
+ temp2 = temp_atem - pres_tissue[ci];
+  if (temp2 >= 0.0)
+	{
+	temp1 = 0;
+	temp2 = 0;
+	}
+ else
+    temp1 = temp1 / temp2;
+  if (temp1 > 0.0)
+	{
+	temp1 = log(1.0 - temp1);
+	temp1 = temp1 / -0.6931; 
+							 
+							 
+	temp2 = var_halftimes * temp1 / float_desaturation_multiplier; 
+	}
+ else
+	{
+	temp1 = 0;
+	temp2 = 0;
+	}
+
+
+ temp3 = 0.1 - pres_tissue[ci+16];
+if (temp3 >= 0.0)
+	{
+	temp3 = 0;
+	temp4 = 0;
+	}
+ else
+    temp3 = -1.0 * temp3 / pres_tissue[ci+16];
+  if (temp3 > 0.0)
+	{
+	temp3 = log(1.0 - temp3);
+	temp3 = temp3 / -0.6931; 
+							 
+							 
+	temp4 = var2_halftimes * temp3 / float_desaturation_multiplier; 
+	}
+ else
+	{
+	temp3 = 0;
+	temp4 = 0;
+	}
+
+
+ if (temp4 > temp2)
+	 int_temp = (int)temp4;
+ else
+	 int_temp = (int)temp2;
+ if(int_temp > int_O_desaturation_time)
+	int_O_desaturation_time = int_temp;
+
+
+ temp2 = temp1 * 20.0;  
+ temp2 = temp2 + 80.0; 
+ if (temp2 < 0.0)
+	 temp2 = 0.0;
+ if (temp2 > 255.0)
+ 	 temp2 = 255.0;
+ char_O_tissue_saturation[ci] = (char)temp2;
+
+ temp4 = temp3 * 20.0;  
+ temp4 = temp4 + 80.0; 
+ if (temp4 < 0.0)
+	 temp4 = 0.0;
+ if (temp4 > 255.0)
+ 	 temp4 = 255.0;
+ char_O_tissue_saturation[ci+16] = (char)temp4;
+} 
+} 
+
+
+
+
+
+
+
+
+
+void calc_wo_deco_step_1_min(void)
+{
+	if(flag_in_divemode)
+	{
+		flag_in_divemode = 0;
+		set_dbg_end_of_dive();
+	}
+_asm
+ lfsr 1, 0x300
+_endasm
+ N2_ratio = 0.7902; 
+ pres_respiration = (float)int_I_pres_respiration / 1000.0; 
+ pres_surface = (float)int_I_pres_surface / 1000.0;
+ temp_atem = N2_ratio * (pres_respiration - 0.0627); 
+ temp2_atem = 0.0;
+ temp_surface = pres_surface; 
+ float_desaturation_multiplier = char_I_desaturation_multiplier / 142.0; 
+ float_saturation_multiplier = char_I_saturation_multiplier / 100.0;
+
+ calc_tissue_step_1_min();  
+ clear_decoarray();
+ char_O_deco_status = 0;
+ char_O_nullzeit = 0;
+ char_O_ascenttime = 0;
+ calc_gradient_factor();
+
+} 
+
+
+
+
+
+
+
+void calc_tissue_step_1_min(void)
+{
+_asm
+lfsr 1, 0x300
+movlw	0x01
+movwf	TBLPTRU,0
+_endasm
+
+ char_O_gtissue_no = 255;
+ pres_gtissue_limit = 0.0;
+
+for (ci=0;ci<16;ci++)
+{
+_asm
+movlw	0x02
+movwf	TBLPTRH,0
+movlb	4 
+movf ci,0,1
+addwf	ci,0,1
+addwf	ci,0,1
+addwf	ci,0,1
+addlw	0x80
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var_a+1
+TBLRDPOSTINC
+movff	TABLAT,var_a
+TBLRDPOSTINC
+movff	TABLAT,var_a+3
+TBLRD
+movff	TABLAT,var_a+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var2_a+1
+TBLRDPOSTINC
+movff	TABLAT,var2_a
+TBLRDPOSTINC
+movff	TABLAT,var2_a+3
+TBLRD
+movff	TABLAT,var2_a+2
+addlw	0x40
+movwf	TBLPTRL,0
+incf	TBLPTRH,1,0
+TBLRDPOSTINC
+movff	TABLAT,var_b+1
+TBLRDPOSTINC
+movff	TABLAT,var_b
+TBLRDPOSTINC
+movff	TABLAT,var_b+3
+TBLRD
+movff	TABLAT,var_b+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var2_b+1
+TBLRDPOSTINC
+movff	TABLAT,var2_b
+TBLRDPOSTINC
+movff	TABLAT,var2_b+3
+TBLRD
+movff	TABLAT,var2_b+2
+addlw	0xC0
+movwf	TBLPTRL,0
+incf	TBLPTRH,1,0
+TBLRDPOSTINC
+movff	TABLAT,var_e1min+1
+TBLRDPOSTINC
+movff	TABLAT,var_e1min
+TBLRDPOSTINC
+movff	TABLAT,var_e1min+3
+TBLRD
+movff	TABLAT,var_e1min+2
+addlw	0x40
+movwf	TBLPTRL,0
+TBLRDPOSTINC
+movff	TABLAT,var2_e1min+1
+TBLRDPOSTINC
+movff	TABLAT,var2_e1min
+TBLRDPOSTINC
+movff	TABLAT,var2_e1min+3
+TBLRD
+movff	TABLAT,var2_e1min+2
+_endasm
+
+
+ temp_tissue = (temp_atem - pres_tissue[ci]) * var_e1min;
+ temp_tissue_safety();
+ pres_tissue[ci] = pres_tissue[ci] + temp_tissue;
+
+
+ temp_tissue = (temp2_atem - pres_tissue[ci+16]) * var2_e1min;
+ temp_tissue_safety();
+ pres_tissue[ci+16] = pres_tissue[ci+16] + temp_tissue;
+
+ temp_tissue = pres_tissue[ci] + pres_tissue[ci+16];
+ var_a = (var_a * pres_tissue[ci] + var2_a * pres_tissue[ci+16]) / temp_tissue;
+ var_b = (var_b * pres_tissue[ci] + var2_b * pres_tissue[ci+16]) / temp_tissue;
+ pres_tissue_limit[ci] = (temp_tissue - var_a) * var_b;
+ if (pres_tissue_limit[ci] < 0)
+  pres_tissue_limit[ci] = 0;
+ if (pres_tissue_limit[ci] > pres_gtissue_limit)
+  {
+  pres_gtissue_limit = pres_tissue_limit[ci];
+  char_O_gtissue_no = ci;
+  }
+
+
+
+
+
+
+
+
+
+temp1 = temp_tissue - pres_respiration;
+temp2 = temp_tissue - pres_tissue_limit[ci];	
+temp2 = temp1/temp2;
+temp2 = temp2 * 200; 
+if (temp2 < 0)
+	temp2 = 0;
+if (temp2 > 255)
+	temp2 = 255;
+if (temp1 < 0)
+ char_O_array_gradient_weighted[ci] = 0;
+else
+ char_O_array_gradient_weighted[ci] = (char)temp2;
+
+} 
+} 
+
+#line 2689 "p2_deco_main - 090915b.c"
+#line 2700 "p2_deco_main - 090915b.c"
+
+
+
+
+void hash(void)
+{
+
+ for (md_i=0;md_i<16;md_i++)
+ {
+  md_state[md_i] = 0;
+  md_cksum[md_i] = 0;
+ } 
+
+_asm
+ movlw	0x01
+ movwf	TBLPTRU,0
+ movlw	0x06
+ movwf	TBLPTRH,0
+ movlw	0x00
+ movwf	TBLPTRL,0
+_endasm
+ for (md_i=0;md_i<127;md_i++)
+ {
+_asm
+ TBLRDPOSTINC
+ movff	TABLAT,md_temp
+_endasm
+  md_pi_subst[md_i] = md_temp;
+ } 
+_asm
+ TBLRDPOSTINC
+ movff	TABLAT,md_temp
+_endasm
+  md_pi_subst[127] = md_temp;
+ for (md_i=0;md_i<127;md_i++)
+ {
+_asm
+ TBLRDPOSTINC
+ movff	TABLAT,md_temp
+_endasm
+  md_pi_subst[md_i+128] = md_temp;
+ } 
+_asm
+ TBLRD
+ movff	TABLAT,md_temp
+_endasm
+  md_pi_subst[255] = md_temp;
+
+_asm
+ movlw	0x00
+ movwf	TBLPTRU,0
+ movlw	0x00
+ movwf	TBLPTRH,0
+ movlw	0x00
+ movwf	TBLPTRL,0
+_endasm
+
+for (md_pointer=0x0000;md_pointer<0x17f3;md_pointer++)
+{
+ md_t = 0;
+ for (md_i=0;md_i<16;md_i++)
+ {
+  if(md_pointer == 9)
+   md_temp = md_cksum[md_i];
+  else
+  {
+_asm
+  TBLRDPOSTINC
+  movff	TABLAT,md_temp
+_endasm
+  } 
+  md_buffer[md_i] = md_temp;
+  md_state[md_i+16] = md_buffer[md_i];
+  md_state[md_i+32] = (unsigned char)(md_buffer[md_i] ^ md_state[md_i]);
+ } 
+
+ for (md_i=0;md_i<18;md_i++)
+ {
+  for (md_j=0;md_j<48;md_j++)
+  {
+   md_state[md_j] = (unsigned char)(md_state[md_j] ^ md_pi_subst[md_t]);
+   md_t = md_state[md_j];
+  } 
+  md_t = (unsigned char)(md_t+1);
+ } 
+ md_t = md_cksum[15];
+
+ for (md_i=0;md_i<16;md_i++)
+ {
+  md_cksum[md_i] = (unsigned char)(md_cksum[md_i] ^ md_pi_subst[(md_buffer[md_i] ^ md_t)]);
+  md_t = md_cksum[md_i];
+ } 
+} 
+} 
+
+
+
+
+
+
+void clear_CNS_fraction(void)
+{
+ CNS_fraction = 0.0;
+ char_O_CNS_fraction = 0;
+} 
+
+
+
+
+
+
+
+
+
+
+
+
+
+void calc_CNS_fraction(void)
+{
+ actual_ppO2 = (float)char_I_actual_ppO2 / 100.0;
+
+ if (char_I_actual_ppO2 < 50)
+  CNS_fraction = CNS_fraction;
+ else if (char_I_actual_ppO2 < 60)
+  CNS_fraction = 1/(-54000.0 * actual_ppO2 + 54000.0) + CNS_fraction;
+ else if (char_I_actual_ppO2 < 70)
+  CNS_fraction = 1/(-45000.0 * actual_ppO2 + 48600.0) + CNS_fraction;
+ else if (char_I_actual_ppO2 < 80)
+  CNS_fraction = 1/(-36000.0 * actual_ppO2 + 42300.0) + CNS_fraction;
+ else if (char_I_actual_ppO2 < 90)
+  CNS_fraction = 1/(-27000.0 * actual_ppO2 + 35100.0) + CNS_fraction;
+ else if (char_I_actual_ppO2 < 110)
+  CNS_fraction = 1/(-18000.0 * actual_ppO2 + 27000.0) + CNS_fraction;
+ else if (char_I_actual_ppO2 < 150)
+  CNS_fraction = 1/(-9000.0 * actual_ppO2 + 17100.0) + CNS_fraction;
+ else if (char_I_actual_ppO2 < 160)
+  CNS_fraction = 1/(-22500.0 * actual_ppO2 + 37350.0) + CNS_fraction;
+ else if (char_I_actual_ppO2 < 165)
+  CNS_fraction =  0.000755 + CNS_fraction; 
+ else if (char_I_actual_ppO2 < 170)
+  CNS_fraction =  0.00102 + CNS_fraction; 
+ else if (char_I_actual_ppO2 < 175)
+  CNS_fraction =  0.00136 + CNS_fraction;
+ else if (char_I_actual_ppO2 < 180)
+  CNS_fraction =  0.00180 + CNS_fraction;
+ else if (char_I_actual_ppO2 < 185)
+  CNS_fraction =  0.00237 + CNS_fraction;
+ else if (char_I_actual_ppO2 < 190)
+  CNS_fraction =  0.00310 + CNS_fraction;
+ else if (char_I_actual_ppO2 < 195)
+  CNS_fraction =  0.00401 + CNS_fraction;
+ else if (char_I_actual_ppO2 < 200)
+  CNS_fraction =  0.00517 + CNS_fraction;
+ else if (char_I_actual_ppO2 < 230)
+  CNS_fraction =  0.0209 + CNS_fraction;
+ else
+  CNS_fraction =  0.0482 + CNS_fraction; 
+
+ if (CNS_fraction > 2.5)
+  CNS_fraction = 2.5;
+ if (CNS_fraction < 0.0)
+  CNS_fraction = 0.0;
+ char_O_CNS_fraction = (char)((CNS_fraction + 0.005)* 100.0);
+} 
+
+
+
+
+
+
+
+
+
+
+
+void calc_CNS_decrease_15min(void)
+{
+ CNS_fraction =  0.890899 * CNS_fraction;
+ char_O_CNS_fraction = (char)((CNS_fraction + 0.005)* 100.0);
+}
+
+
+
+
+
+
+
+
+
+
+void calc_percentage(void)
+{
+ temp1 = (float)int_I_temp;
+ temp2 = (float)char_I_temp / 100.0;
+ temp3 = temp1 * temp2;
+ int_I_temp = (int)temp3;
+}
+void push_tissues_to_vault(void)
+{
+	for (ci=0;ci<32;ci++)
+		pres_tissue_vault[ci] = pres_tissue[ci];
+}
+void pull_tissues_from_vault(void)
+{
+	for (ci=0;ci<32;ci++)
+		pres_tissue[ci] = pres_tissue_vault[ci];
+}
+
+void wp_write_command(void)
+{
+	_asm
+		bcf		PORTE,0,0 
+		movff	wp_command,PORTD
+		bcf		PORTA,2,0 
+		bsf		PORTA,2,0 
+	_endasm
+}
+
+void wp_write_data(void)
+{
+	wp_data_8bit_one = wp_data_16bit >> 8;
+	wp_data_8bit_two = wp_data_16bit;
+_asm
+	bsf		PORTE,0,0 
+	movff	wp_data_8bit_one,PORTD
+	bcf		PORTA,2,0 
+	bsf		PORTA,2,0 
+	movff	wp_data_8bit_two,PORTD
+	bcf		PORTA,2,0 
+	bsf		PORTA,2,0 
+_endasm
+}
+
+void wp_write_black(void)
+{
+_asm
+	movff	wp_black,PORTD
+	bcf		PORTA,2,0 
+	bsf		PORTA,2,0 
+	bcf		PORTA,2,0 
+	bsf		PORTA,2,0 
+_endasm
+}
+
+void wp_write_color(void)
+{
+_asm
+	movff	wp_color1,PORTD
+	bcf		PORTA,2,0 
+	bsf		PORTA,2,0 
+	movff	wp_color2,PORTD
+	bcf		PORTA,2,0 
+	bsf		PORTA,2,0 
+_endasm
+}
+
+void wp_set_window(void)
+{
+	
+	wp_command = 0x35;
+	wp_write_command();
+	wp_data_16bit = ((unsigned int )wp_leftx2) << 1;
+	wp_write_data();
+	
+	wp_command = 0x36;
+	wp_write_command();
+	wp_data_16bit = 319;
+	wp_write_data();
+	
+	wp_command = 0x37;
+	wp_write_command();
+	
+	wp_data_16bit = wp_top;
+	if(wp_font == 2)
+		wp_data_16bit += 58 ;
+	else if(wp_font == 1)
+		wp_data_16bit += 32 ;
+	else
+		wp_data_16bit += 24 ;
+	wp_data_16bit--;
+	if(wp_data_16bit > 239)
+		wp_data_16bit = 239;
+	
+	wp_data_16bit |= ((unsigned int )wp_top) << 8;
+	
+	wp_write_data();
+
+	
+	wp_command = 0x20;
+	wp_write_command();
+	wp_data_16bit = wp_top;
+	wp_write_data();
+
+	wp_command = 0x21;
+	wp_write_command();
+	wp_data_16bit = ((unsigned int )wp_leftx2) << 1;
+	wp_write_data();
+}
+
+void wp_set_char_font_small(void)
+{
+	if (wp_char == ' ')
+		wp_char = '¶';
+
+	if((wp_char < '!') || (wp_char > '¶')) 
+		wp_char = '¤'; 
+
+	if (wp_char > 0x7E) 
+		wp_char -= 34;
+
+	wp_start = wp_small_table[wp_char - '!'];
+	wp_end = wp_small_table[1 + wp_char - '!'];
+}
+
+void wp_set_char_font_medium(void)
+{
+	
+	if (wp_char == 0x27) 
+		wp_char = 0x3B;
+	if (wp_char == '"')
+		wp_char = 0x3C;
+	if (wp_char == 'm')
+		wp_char = 0x3D;
+	if (wp_char == ' ')
+		wp_char = 0x3E;
+
+	if((wp_char < '.') || (wp_char > 0x3E))
+		wp_char = 0x3E;
+	wp_start = wp_medium_table[wp_char - '.'];
+	wp_end = wp_medium_table[1 + wp_char - '.'];
+}
+
+void wp_set_char_font_large(void)
+{
+	
+	if (wp_char == ' ')
+		wp_char = 0x2F;
+
+	if((wp_char < '.') || (wp_char > '9'))
+		wp_char = 0x2F;
+	wp_start = wp_large_table[wp_char - '.'];
+	wp_end = wp_large_table[1 + wp_char - '.'];
+}
+
+void wordprocessor(void)
+{
+	wp_set_window();
+
+	
+	wp_command = 0x22;
+	wp_write_command();
+	_asm
+		bsf		PORTE,0,0 
+	_endasm
+
+	wp_txtptr = 0;
+	wp_char = wp_stringstore[wp_txtptr];
+
+	while(wp_char)
+	{
+		if(wp_font == 2)
+			wp_set_char_font_large();
+		else if(wp_font == 1)
+			wp_set_char_font_medium();
+		else
+			wp_set_char_font_small();
+
+		wp_black = 0;
+
+			for(wp_i = wp_start; wp_i<wp_end;wp_i++)
+			{
+				if(wp_font == 2)
+					wp_data_16bit = wp_large_data[wp_i / 2];
+				else if(wp_font == 1)
+					wp_data_16bit = wp_medium_data[wp_i / 2];
+				else
+					wp_data_16bit = wp_small_data[wp_i / 2];
+				if(wp_i & 1)
+					wp_temp_U8 = wp_data_16bit & 0xFF;
+				else
+					wp_temp_U8 = wp_data_16bit >> 8;
+				if((wp_temp_U8 & 128))
+				{
+					wp_temp_U8 -= 127;
+					if(wp_invert)
+					{
+						while(wp_temp_U8 > 0)
+						{
+							wp_temp_U8--;
+							wp_write_color();
+						}
+					}
+					else
+					{
+						_asm
+							movff	wp_black,PORTD
+						_endasm
+						while(wp_temp_U8 > 0)
+						{
+							wp_temp_U8--;
+							_asm
+								bcf		PORTA,2,0 
+								bsf		PORTA,2,0 
+								bcf		PORTA,2,0 
+								bsf		PORTA,2,0 
+							_endasm
+						}
+					}
+				}
+				else
+				{
+					wp_temp_U8++;
+					if(wp_invert)
+					{
+						_asm
+							movff	wp_black,PORTD
+						_endasm
+						while(wp_temp_U8 > 0)
+						{
+							wp_temp_U8--;
+							_asm
+								bcf		PORTA,2,0 
+								bsf		PORTA,2,0 
+								bcf		PORTA,2,0 
+								bsf		PORTA,2,0 
+							_endasm
+						}
+					}
+					else
+					{
+						while(wp_temp_U8 > 0)
+						{
+							wp_temp_U8--;
+							wp_write_color();
+						}
+					}
+				}
+			}
+		wp_txtptr++;
+		wp_char = wp_stringstore[wp_txtptr];
+	}
+	wp_command = 0x00;
+	wp_write_command();
+}