Mercurial > public > mk2
view code_part1/OSTC_code_c_part2/p2_deco_main - 090915b.i @ 54:795bf627b442
Merged
author | heinrichsweikamp |
---|---|
date | Mon, 02 Aug 2010 16:35:13 +0200 |
parents | 96a35aeda5f2 |
children |
line wrap: on
line source
#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(); }