Subversion Repositories Code-Repo

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed



Microchip Technology PIC LITE Macro Assembler V1.20 build 52243 
                                                                                               Sun Jan 26 16:29:58 2014

Microchip Technology Omniscient Code Generator (Lite mode) build 52243
     1                                  processor       16F1829
     2                                  opt     pw 120
     3                                  opt     lm
     4                                  psect   idataBANK0,global,class=CODE,delta=2
     5                                  psect   nvCOMMON,global,class=COMMON,space=1,delta=1
     6                                  psect   nvBANK0,global,class=BANK0,space=1,delta=1
     7                                  psect   cinit,global,class=CODE,merge=1,delta=2
     8                                  psect   dataBANK0,global,class=BANK0,space=1,delta=1
     9                                  psect   inittext,global,class=CODE,delta=2
    10                                  psect   cstackBANK2,global,class=BANK2,space=1,delta=1
    11                                  psect   cstackBANK1,global,class=BANK1,space=1,delta=1
    12                                  psect   cstackCOMMON,global,class=COMMON,space=1,delta=1
    13                                  psect   cstackBANK0,global,class=BANK0,space=1,delta=1
    14                                  psect   maintext,global,class=CODE,merge=1,split=1,delta=2
    15                                  psect   text1,local,class=CODE,merge=1,delta=2
    16                                  psect   text2,local,class=CODE,merge=1,delta=2
    17                                  psect   text3,local,class=CODE,merge=1,delta=2
    18                                  psect   text4,local,class=CODE,merge=1,delta=2
    19                                  psect   text5,local,class=CODE,merge=1,delta=2
    20                                  psect   text6,local,class=CODE,merge=1,delta=2
    21                                  psect   text7,local,class=CODE,merge=1,delta=2
    22                                  psect   text8,local,class=CODE,merge=1,delta=2
    23                                  psect   text9,local,class=CODE,merge=1,delta=2
    24                                  psect   text10,local,class=CODE,merge=1,delta=2
    25                                  psect   text11,local,class=CODE,merge=1,delta=2
    26                                  psect   text12,local,class=CODE,merge=1,delta=2
    27                                  psect   text13,local,class=CODE,merge=1,delta=2
    28                                  psect   text14,local,class=CODE,merge=1,delta=2
    29                                  psect   text15,local,class=CODE,merge=1,delta=2
    30                                  psect   text16,local,class=CODE,merge=1,delta=2
    31                                  psect   intentry,global,class=CODE,delta=2
    32                                  psect   text18,local,class=CODE,merge=1,delta=2
    33                                  psect   text19,local,class=CODE,merge=1,delta=2
    34                                  psect   text20,local,class=CODE,merge=1,delta=2
    35                                  psect   text21,local,class=CODE,merge=1,delta=2
    36                                  psect   text22,local,class=CODE,merge=1,delta=2
    37                                  psect   text23,local,class=CODE,merge=1,delta=2
    38                                  psect   text24,local,class=CODE,merge=1,delta=2
    39                                  psect   text25,local,class=CODE,merge=1,delta=2
    40                                  dabs    1,0x7E,2
    41  0000                            ;# 
    42  0001                            ;# 
    43  0002                            ;# 
    44  0003                            ;# 
    45  0004                            ;# 
    46  0005                            ;# 
    47  0006                            ;# 
    48  0007                            ;# 
    49  0008                            ;# 
    50  0009                            ;# 
    51  000A                            ;# 
    52  000B                            ;# 
    53  000C                            ;# 
    54  000D                            ;# 
    55  000E                            ;# 
    56  0011                            ;# 
    57  0012                            ;# 
    58  0013                            ;# 
    59  0014                            ;# 
    60  0015                            ;# 
    61  0016                            ;# 
    62  0016                            ;# 
    63  0017                            ;# 
    64  0018                            ;# 
    65  0019                            ;# 
    66  001A                            ;# 
    67  001B                            ;# 
    68  001C                            ;# 
    69  001E                            ;# 
    70  001F                            ;# 
    71  008C                            ;# 
    72  008D                            ;# 
    73  008E                            ;# 
    74  0091                            ;# 
    75  0092                            ;# 
    76  0093                            ;# 
    77  0094                            ;# 
    78  0095                            ;# 
    79  0096                            ;# 
    80  0097                            ;# 
    81  0098                            ;# 
    82  0099                            ;# 
    83  009A                            ;# 
    84  009B                            ;# 
    85  009B                            ;# 
    86  009C                            ;# 
    87  009D                            ;# 
    88  009E                            ;# 
    89  010C                            ;# 
    90  010D                            ;# 
    91  010E                            ;# 
    92  0111                            ;# 
    93  0112                            ;# 
    94  0113                            ;# 
    95  0114                            ;# 
    96  0115                            ;# 
    97  0116                            ;# 
    98  0117                            ;# 
    99  0118                            ;# 
   100  0119                            ;# 
   101  011A                            ;# 
   102  011B                            ;# 
   103  011D                            ;# 
   104  011E                            ;# 
   105  018C                            ;# 
   106  018D                            ;# 
   107  018E                            ;# 
   108  0191                            ;# 
   109  0191                            ;# 
   110  0192                            ;# 
   111  0193                            ;# 
   112  0193                            ;# 
   113  0193                            ;# 
   114  0194                            ;# 
   115  0195                            ;# 
   116  0196                            ;# 
   117  0199                            ;# 
   118  019A                            ;# 
   119  019B                            ;# 
   120  019B                            ;# 
   121  019C                            ;# 
   122  019D                            ;# 
   123  019E                            ;# 
   124  019F                            ;# 
   125  020C                            ;# 
   126  020D                            ;# 
   127  020E                            ;# 
   128  0211                            ;# 
   129  0211                            ;# 
   130  0212                            ;# 
   131  0212                            ;# 
   132  0213                            ;# 
   133  0213                            ;# 
   134  0214                            ;# 
   135  0214                            ;# 
   136  0215                            ;# 
   137  0215                            ;# 
   138  0215                            ;# 
   139  0216                            ;# 
   140  0216                            ;# 
   141  0217                            ;# 
   142  0217                            ;# 
   143  0219                            ;# 
   144  021A                            ;# 
   145  021B                            ;# 
   146  021C                            ;# 
   147  021D                            ;# 
   148  021E                            ;# 
   149  021F                            ;# 
   150  0291                            ;# 
   151  0292                            ;# 
   152  0293                            ;# 
   153  0294                            ;# 
   154  0295                            ;# 
   155  0295                            ;# 
   156  0296                            ;# 
   157  0298                            ;# 
   158  0299                            ;# 
   159  029A                            ;# 
   160  029B                            ;# 
   161  029C                            ;# 
   162  029D                            ;# 
   163  029E                            ;# 
   164  0311                            ;# 
   165  0312                            ;# 
   166  0313                            ;# 
   167  0318                            ;# 
   168  0319                            ;# 
   169  031A                            ;# 
   170  038C                            ;# 
   171  038D                            ;# 
   172  038E                            ;# 
   173  0391                            ;# 
   174  0392                            ;# 
   175  0393                            ;# 
   176  0394                            ;# 
   177  0395                            ;# 
   178  0396                            ;# 
   179  039A                            ;# 
   180  039C                            ;# 
   181  039D                            ;# 
   182  039E                            ;# 
   183  039F                            ;# 
   184  0415                            ;# 
   185  0416                            ;# 
   186  0417                            ;# 
   187  041C                            ;# 
   188  041D                            ;# 
   189  041E                            ;# 
   190  0FE4                            ;# 
   191  0FE5                            ;# 
   192  0FE6                            ;# 
   193  0FE7                            ;# 
   194  0FE8                            ;# 
   195  0FE9                            ;# 
   196  0FEA                            ;# 
   197  0FEB                            ;# 
   198  0FED                            ;# 
   199  0FEE                            ;# 
   200  0FEF                            ;# 
   201  0000                            ;# 
   202  0001                            ;# 
   203  0002                            ;# 
   204  0003                            ;# 
   205  0004                            ;# 
   206  0005                            ;# 
   207  0006                            ;# 
   208  0007                            ;# 
   209  0008                            ;# 
   210  0009                            ;# 
   211  000A                            ;# 
   212  000B                            ;# 
   213  000C                            ;# 
   214  000D                            ;# 
   215  000E                            ;# 
   216  0011                            ;# 
   217  0012                            ;# 
   218  0013                            ;# 
   219  0014                            ;# 
   220  0015                            ;# 
   221  0016                            ;# 
   222  0016                            ;# 
   223  0017                            ;# 
   224  0018                            ;# 
   225  0019                            ;# 
   226  001A                            ;# 
   227  001B                            ;# 
   228  001C                            ;# 
   229  001E                            ;# 
   230  001F                            ;# 
   231  008C                            ;# 
   232  008D                            ;# 
   233  008E                            ;# 
   234  0091                            ;# 
   235  0092                            ;# 
   236  0093                            ;# 
   237  0094                            ;# 
   238  0095                            ;# 
   239  0096                            ;# 
   240  0097                            ;# 
   241  0098                            ;# 
   242  0099                            ;# 
   243  009A                            ;# 
   244  009B                            ;# 
   245  009B                            ;# 
   246  009C                            ;# 
   247  009D                            ;# 
   248  009E                            ;# 
   249  010C                            ;# 
   250  010D                            ;# 
   251  010E                            ;# 
   252  0111                            ;# 
   253  0112                            ;# 
   254  0113                            ;# 
   255  0114                            ;# 
   256  0115                            ;# 
   257  0116                            ;# 
   258  0117                            ;# 
   259  0118                            ;# 
   260  0119                            ;# 
   261  011A                            ;# 
   262  011B                            ;# 
   263  011D                            ;# 
   264  011E                            ;# 
   265  018C                            ;# 
   266  018D                            ;# 
   267  018E                            ;# 
   268  0191                            ;# 
   269  0191                            ;# 
   270  0192                            ;# 
   271  0193                            ;# 
   272  0193                            ;# 
   273  0193                            ;# 
   274  0194                            ;# 
   275  0195                            ;# 
   276  0196                            ;# 
   277  0199                            ;# 
   278  019A                            ;# 
   279  019B                            ;# 
   280  019B                            ;# 
   281  019C                            ;# 
   282  019D                            ;# 
   283  019E                            ;# 
   284  019F                            ;# 
   285  020C                            ;# 
   286  020D                            ;# 
   287  020E                            ;# 
   288  0211                            ;# 
   289  0211                            ;# 
   290  0212                            ;# 
   291  0212                            ;# 
   292  0213                            ;# 
   293  0213                            ;# 
   294  0214                            ;# 
   295  0214                            ;# 
   296  0215                            ;# 
   297  0215                            ;# 
   298  0215                            ;# 
   299  0216                            ;# 
   300  0216                            ;# 
   301  0217                            ;# 
   302  0217                            ;# 
   303  0219                            ;# 
   304  021A                            ;# 
   305  021B                            ;# 
   306  021C                            ;# 
   307  021D                            ;# 
   308  021E                            ;# 
   309  021F                            ;# 
   310  0291                            ;# 
   311  0292                            ;# 
   312  0293                            ;# 
   313  0294                            ;# 
   314  0295                            ;# 
   315  0295                            ;# 
   316  0296                            ;# 
   317  0298                            ;# 
   318  0299                            ;# 
   319  029A                            ;# 
   320  029B                            ;# 
   321  029C                            ;# 
   322  029D                            ;# 
   323  029E                            ;# 
   324  0311                            ;# 
   325  0312                            ;# 
   326  0313                            ;# 
   327  0318                            ;# 
   328  0319                            ;# 
   329  031A                            ;# 
   330  038C                            ;# 
   331  038D                            ;# 
   332  038E                            ;# 
   333  0391                            ;# 
   334  0392                            ;# 
   335  0393                            ;# 
   336  0394                            ;# 
   337  0395                            ;# 
   338  0396                            ;# 
   339  039A                            ;# 
   340  039C                            ;# 
   341  039D                            ;# 
   342  039E                            ;# 
   343  039F                            ;# 
   344  0415                            ;# 
   345  0416                            ;# 
   346  0417                            ;# 
   347  041C                            ;# 
   348  041D                            ;# 
   349  041E                            ;# 
   350  0FE4                            ;# 
   351  0FE5                            ;# 
   352  0FE6                            ;# 
   353  0FE7                            ;# 
   354  0FE8                            ;# 
   355  0FE9                            ;# 
   356  0FEA                            ;# 
   357  0FEB                            ;# 
   358  0FED                            ;# 
   359  0FEE                            ;# 
   360  0FEF                            ;# 
   361  0000                            ;# 
   362  0001                            ;# 
   363  0002                            ;# 
   364  0003                            ;# 
   365  0004                            ;# 
   366  0005                            ;# 
   367  0006                            ;# 
   368  0007                            ;# 
   369  0008                            ;# 
   370  0009                            ;# 
   371  000A                            ;# 
   372  000B                            ;# 
   373  000C                            ;# 
   374  000D                            ;# 
   375  000E                            ;# 
   376  0011                            ;# 
   377  0012                            ;# 
   378  0013                            ;# 
   379  0014                            ;# 
   380  0015                            ;# 
   381  0016                            ;# 
   382  0016                            ;# 
   383  0017                            ;# 
   384  0018                            ;# 
   385  0019                            ;# 
   386  001A                            ;# 
   387  001B                            ;# 
   388  001C                            ;# 
   389  001E                            ;# 
   390  001F                            ;# 
   391  008C                            ;# 
   392  008D                            ;# 
   393  008E                            ;# 
   394  0091                            ;# 
   395  0092                            ;# 
   396  0093                            ;# 
   397  0094                            ;# 
   398  0095                            ;# 
   399  0096                            ;# 
   400  0097                            ;# 
   401  0098                            ;# 
   402  0099                            ;# 
   403  009A                            ;# 
   404  009B                            ;# 
   405  009B                            ;# 
   406  009C                            ;# 
   407  009D                            ;# 
   408  009E                            ;# 
   409  010C                            ;# 
   410  010D                            ;# 
   411  010E                            ;# 
   412  0111                            ;# 
   413  0112                            ;# 
   414  0113                            ;# 
   415  0114                            ;# 
   416  0115                            ;# 
   417  0116                            ;# 
   418  0117                            ;# 
   419  0118                            ;# 
   420  0119                            ;# 
   421  011A                            ;# 
   422  011B                            ;# 
   423  011D                            ;# 
   424  011E                            ;# 
   425  018C                            ;# 
   426  018D                            ;# 
   427  018E                            ;# 
   428  0191                            ;# 
   429  0191                            ;# 
   430  0192                            ;# 
   431  0193                            ;# 
   432  0193                            ;# 
   433  0193                            ;# 
   434  0194                            ;# 
   435  0195                            ;# 
   436  0196                            ;# 
   437  0199                            ;# 
   438  019A                            ;# 
   439  019B                            ;# 
   440  019B                            ;# 
   441  019C                            ;# 
   442  019D                            ;# 
   443  019E                            ;# 
   444  019F                            ;# 
   445  020C                            ;# 
   446  020D                            ;# 
   447  020E                            ;# 
   448  0211                            ;# 
   449  0211                            ;# 
   450  0212                            ;# 
   451  0212                            ;# 
   452  0213                            ;# 
   453  0213                            ;# 
   454  0214                            ;# 
   455  0214                            ;# 
   456  0215                            ;# 
   457  0215                            ;# 
   458  0215                            ;# 
   459  0216                            ;# 
   460  0216                            ;# 
   461  0217                            ;# 
   462  0217                            ;# 
   463  0219                            ;# 
   464  021A                            ;# 
   465  021B                            ;# 
   466  021C                            ;# 
   467  021D                            ;# 
   468  021E                            ;# 
   469  021F                            ;# 
   470  0291                            ;# 
   471  0292                            ;# 
   472  0293                            ;# 
   473  0294                            ;# 
   474  0295                            ;# 
   475  0295                            ;# 
   476  0296                            ;# 
   477  0298                            ;# 
   478  0299                            ;# 
   479  029A                            ;# 
   480  029B                            ;# 
   481  029C                            ;# 
   482  029D                            ;# 
   483  029E                            ;# 
   484  0311                            ;# 
   485  0312                            ;# 
   486  0313                            ;# 
   487  0318                            ;# 
   488  0319                            ;# 
   489  031A                            ;# 
   490  038C                            ;# 
   491  038D                            ;# 
   492  038E                            ;# 
   493  0391                            ;# 
   494  0392                            ;# 
   495  0393                            ;# 
   496  0394                            ;# 
   497  0395                            ;# 
   498  0396                            ;# 
   499  039A                            ;# 
   500  039C                            ;# 
   501  039D                            ;# 
   502  039E                            ;# 
   503  039F                            ;# 
   504  0415                            ;# 
   505  0416                            ;# 
   506  0417                            ;# 
   507  041C                            ;# 
   508  041D                            ;# 
   509  041E                            ;# 
   510  0FE4                            ;# 
   511  0FE5                            ;# 
   512  0FE6                            ;# 
   513  0FE7                            ;# 
   514  0FE8                            ;# 
   515  0FE9                            ;# 
   516  0FEA                            ;# 
   517  0FEB                            ;# 
   518  0FED                            ;# 
   519  0FEE                            ;# 
   520  0FEF                            ;# 
   521  0000                            ;# 
   522  0001                            ;# 
   523  0002                            ;# 
   524  0003                            ;# 
   525  0004                            ;# 
   526  0005                            ;# 
   527  0006                            ;# 
   528  0007                            ;# 
   529  0008                            ;# 
   530  0009                            ;# 
   531  000A                            ;# 
   532  000B                            ;# 
   533  000C                            ;# 
   534  000D                            ;# 
   535  000E                            ;# 
   536  0011                            ;# 
   537  0012                            ;# 
   538  0013                            ;# 
   539  0014                            ;# 
   540  0015                            ;# 
   541  0016                            ;# 
   542  0016                            ;# 
   543  0017                            ;# 
   544  0018                            ;# 
   545  0019                            ;# 
   546  001A                            ;# 
   547  001B                            ;# 
   548  001C                            ;# 
   549  001E                            ;# 
   550  001F                            ;# 
   551  008C                            ;# 
   552  008D                            ;# 
   553  008E                            ;# 
   554  0091                            ;# 
   555  0092                            ;# 
   556  0093                            ;# 
   557  0094                            ;# 
   558  0095                            ;# 
   559  0096                            ;# 
   560  0097                            ;# 
   561  0098                            ;# 
   562  0099                            ;# 
   563  009A                            ;# 
   564  009B                            ;# 
   565  009B                            ;# 
   566  009C                            ;# 
   567  009D                            ;# 
   568  009E                            ;# 
   569  010C                            ;# 
   570  010D                            ;# 
   571  010E                            ;# 
   572  0111                            ;# 
   573  0112                            ;# 
   574  0113                            ;# 
   575  0114                            ;# 
   576  0115                            ;# 
   577  0116                            ;# 
   578  0117                            ;# 
   579  0118                            ;# 
   580  0119                            ;# 
   581  011A                            ;# 
   582  011B                            ;# 
   583  011D                            ;# 
   584  011E                            ;# 
   585  018C                            ;# 
   586  018D                            ;# 
   587  018E                            ;# 
   588  0191                            ;# 
   589  0191                            ;# 
   590  0192                            ;# 
   591  0193                            ;# 
   592  0193                            ;# 
   593  0193                            ;# 
   594  0194                            ;# 
   595  0195                            ;# 
   596  0196                            ;# 
   597  0199                            ;# 
   598  019A                            ;# 
   599  019B                            ;# 
   600  019B                            ;# 
   601  019C                            ;# 
   602  019D                            ;# 
   603  019E                            ;# 
   604  019F                            ;# 
   605  020C                            ;# 
   606  020D                            ;# 
   607  020E                            ;# 
   608  0211                            ;# 
   609  0211                            ;# 
   610  0212                            ;# 
   611  0212                            ;# 
   612  0213                            ;# 
   613  0213                            ;# 
   614  0214                            ;# 
   615  0214                            ;# 
   616  0215                            ;# 
   617  0215                            ;# 
   618  0215                            ;# 
   619  0216                            ;# 
   620  0216                            ;# 
   621  0217                            ;# 
   622  0217                            ;# 
   623  0219                            ;# 
   624  021A                            ;# 
   625  021B                            ;# 
   626  021C                            ;# 
   627  021D                            ;# 
   628  021E                            ;# 
   629  021F                            ;# 
   630  0291                            ;# 
   631  0292                            ;# 
   632  0293                            ;# 
   633  0294                            ;# 
   634  0295                            ;# 
   635  0295                            ;# 
   636  0296                            ;# 
   637  0298                            ;# 
   638  0299                            ;# 
   639  029A                            ;# 
   640  029B                            ;# 
   641  029C                            ;# 
   642  029D                            ;# 
   643  029E                            ;# 
   644  0311                            ;# 
   645  0312                            ;# 
   646  0313                            ;# 
   647  0318                            ;# 
   648  0319                            ;# 
   649  031A                            ;# 
   650  038C                            ;# 
   651  038D                            ;# 
   652  038E                            ;# 
   653  0391                            ;# 
   654  0392                            ;# 
   655  0393                            ;# 
   656  0394                            ;# 
   657  0395                            ;# 
   658  0396                            ;# 
   659  039A                            ;# 
   660  039C                            ;# 
   661  039D                            ;# 
   662  039E                            ;# 
   663  039F                            ;# 
   664  0415                            ;# 
   665  0416                            ;# 
   666  0417                            ;# 
   667  041C                            ;# 
   668  041D                            ;# 
   669  041E                            ;# 
   670  0FE4                            ;# 
   671  0FE5                            ;# 
   672  0FE6                            ;# 
   673  0FE7                            ;# 
   674  0FE8                            ;# 
   675  0FE9                            ;# 
   676  0FEA                            ;# 
   677  0FEB                            ;# 
   678  0FED                            ;# 
   679  0FEE                            ;# 
   680  0FEF                            ;# 
   681  0000                            ;# 
   682  0001                            ;# 
   683  0002                            ;# 
   684  0003                            ;# 
   685  0004                            ;# 
   686  0005                            ;# 
   687  0006                            ;# 
   688  0007                            ;# 
   689  0008                            ;# 
   690  0009                            ;# 
   691  000A                            ;# 
   692  000B                            ;# 
   693  000C                            ;# 
   694  000D                            ;# 
   695  000E                            ;# 
   696  0011                            ;# 
   697  0012                            ;# 
   698  0013                            ;# 
   699  0014                            ;# 
   700  0015                            ;# 
   701  0016                            ;# 
   702  0016                            ;# 
   703  0017                            ;# 
   704  0018                            ;# 
   705  0019                            ;# 
   706  001A                            ;# 
   707  001B                            ;# 
   708  001C                            ;# 
   709  001E                            ;# 
   710  001F                            ;# 
   711  008C                            ;# 
   712  008D                            ;# 
   713  008E                            ;# 
   714  0091                            ;# 
   715  0092                            ;# 
   716  0093                            ;# 
   717  0094                            ;# 
   718  0095                            ;# 
   719  0096                            ;# 
   720  0097                            ;# 
   721  0098                            ;# 
   722  0099                            ;# 
   723  009A                            ;# 
   724  009B                            ;# 
   725  009B                            ;# 
   726  009C                            ;# 
   727  009D                            ;# 
   728  009E                            ;# 
   729  010C                            ;# 
   730  010D                            ;# 
   731  010E                            ;# 
   732  0111                            ;# 
   733  0112                            ;# 
   734  0113                            ;# 
   735  0114                            ;# 
   736  0115                            ;# 
   737  0116                            ;# 
   738  0117                            ;# 
   739  0118                            ;# 
   740  0119                            ;# 
   741  011A                            ;# 
   742  011B                            ;# 
   743  011D                            ;# 
   744  011E                            ;# 
   745  018C                            ;# 
   746  018D                            ;# 
   747  018E                            ;# 
   748  0191                            ;# 
   749  0191                            ;# 
   750  0192                            ;# 
   751  0193                            ;# 
   752  0193                            ;# 
   753  0193                            ;# 
   754  0194                            ;# 
   755  0195                            ;# 
   756  0196                            ;# 
   757  0199                            ;# 
   758  019A                            ;# 
   759  019B                            ;# 
   760  019B                            ;# 
   761  019C                            ;# 
   762  019D                            ;# 
   763  019E                            ;# 
   764  019F                            ;# 
   765  020C                            ;# 
   766  020D                            ;# 
   767  020E                            ;# 
   768  0211                            ;# 
   769  0211                            ;# 
   770  0212                            ;# 
   771  0212                            ;# 
   772  0213                            ;# 
   773  0213                            ;# 
   774  0214                            ;# 
   775  0214                            ;# 
   776  0215                            ;# 
   777  0215                            ;# 
   778  0215                            ;# 
   779  0216                            ;# 
   780  0216                            ;# 
   781  0217                            ;# 
   782  0217                            ;# 
   783  0219                            ;# 
   784  021A                            ;# 
   785  021B                            ;# 
   786  021C                            ;# 
   787  021D                            ;# 
   788  021E                            ;# 
   789  021F                            ;# 
   790  0291                            ;# 
   791  0292                            ;# 
   792  0293                            ;# 
   793  0294                            ;# 
   794  0295                            ;# 
   795  0295                            ;# 
   796  0296                            ;# 
   797  0298                            ;# 
   798  0299                            ;# 
   799  029A                            ;# 
   800  029B                            ;# 
   801  029C                            ;# 
   802  029D                            ;# 
   803  029E                            ;# 
   804  0311                            ;# 
   805  0312                            ;# 
   806  0313                            ;# 
   807  0318                            ;# 
   808  0319                            ;# 
   809  031A                            ;# 
   810  038C                            ;# 
   811  038D                            ;# 
   812  038E                            ;# 
   813  0391                            ;# 
   814  0392                            ;# 
   815  0393                            ;# 
   816  0394                            ;# 
   817  0395                            ;# 
   818  0396                            ;# 
   819  039A                            ;# 
   820  039C                            ;# 
   821  039D                            ;# 
   822  039E                            ;# 
   823  039F                            ;# 
   824  0415                            ;# 
   825  0416                            ;# 
   826  0417                            ;# 
   827  041C                            ;# 
   828  041D                            ;# 
   829  041E                            ;# 
   830  0FE4                            ;# 
   831  0FE5                            ;# 
   832  0FE6                            ;# 
   833  0FE7                            ;# 
   834  0FE8                            ;# 
   835  0FE9                            ;# 
   836  0FEA                            ;# 
   837  0FEB                            ;# 
   838  0FED                            ;# 
   839  0FEE                            ;# 
   840  0FEF                            ;# 
   841  0000                            ;# 
   842  0001                            ;# 
   843  0002                            ;# 
   844  0003                            ;# 
   845  0004                            ;# 
   846  0005                            ;# 
   847  0006                            ;# 
   848  0007                            ;# 
   849  0008                            ;# 
   850  0009                            ;# 
   851  000A                            ;# 
   852  000B                            ;# 
   853  000C                            ;# 
   854  000D                            ;# 
   855  000E                            ;# 
   856  0011                            ;# 
   857  0012                            ;# 
   858  0013                            ;# 
   859  0014                            ;# 
   860  0015                            ;# 
   861  0016                            ;# 
   862  0016                            ;# 
   863  0017                            ;# 
   864  0018                            ;# 
   865  0019                            ;# 
   866  001A                            ;# 
   867  001B                            ;# 
   868  001C                            ;# 
   869  001E                            ;# 
   870  001F                            ;# 
   871  008C                            ;# 
   872  008D                            ;# 
   873  008E                            ;# 
   874  0091                            ;# 
   875  0092                            ;# 
   876  0093                            ;# 
   877  0094                            ;# 
   878  0095                            ;# 
   879  0096                            ;# 
   880  0097                            ;# 
   881  0098                            ;# 
   882  0099                            ;# 
   883  009A                            ;# 
   884  009B                            ;# 
   885  009B                            ;# 
   886  009C                            ;# 
   887  009D                            ;# 
   888  009E                            ;# 
   889  010C                            ;# 
   890  010D                            ;# 
   891  010E                            ;# 
   892  0111                            ;# 
   893  0112                            ;# 
   894  0113                            ;# 
   895  0114                            ;# 
   896  0115                            ;# 
   897  0116                            ;# 
   898  0117                            ;# 
   899  0118                            ;# 
   900  0119                            ;# 
   901  011A                            ;# 
   902  011B                            ;# 
   903  011D                            ;# 
   904  011E                            ;# 
   905  018C                            ;# 
   906  018D                            ;# 
   907  018E                            ;# 
   908  0191                            ;# 
   909  0191                            ;# 
   910  0192                            ;# 
   911  0193                            ;# 
   912  0193                            ;# 
   913  0193                            ;# 
   914  0194                            ;# 
   915  0195                            ;# 
   916  0196                            ;# 
   917  0199                            ;# 
   918  019A                            ;# 
   919  019B                            ;# 
   920  019B                            ;# 
   921  019C                            ;# 
   922  019D                            ;# 
   923  019E                            ;# 
   924  019F                            ;# 
   925  020C                            ;# 
   926  020D                            ;# 
   927  020E                            ;# 
   928  0211                            ;# 
   929  0211                            ;# 
   930  0212                            ;# 
   931  0212                            ;# 
   932  0213                            ;# 
   933  0213                            ;# 
   934  0214                            ;# 
   935  0214                            ;# 
   936  0215                            ;# 
   937  0215                            ;# 
   938  0215                            ;# 
   939  0216                            ;# 
   940  0216                            ;# 
   941  0217                            ;# 
   942  0217                            ;# 
   943  0219                            ;# 
   944  021A                            ;# 
   945  021B                            ;# 
   946  021C                            ;# 
   947  021D                            ;# 
   948  021E                            ;# 
   949  021F                            ;# 
   950  0291                            ;# 
   951  0292                            ;# 
   952  0293                            ;# 
   953  0294                            ;# 
   954  0295                            ;# 
   955  0295                            ;# 
   956  0296                            ;# 
   957  0298                            ;# 
   958  0299                            ;# 
   959  029A                            ;# 
   960  029B                            ;# 
   961  029C                            ;# 
   962  029D                            ;# 
   963  029E                            ;# 
   964  0311                            ;# 
   965  0312                            ;# 
   966  0313                            ;# 
   967  0318                            ;# 
   968  0319                            ;# 
   969  031A                            ;# 
   970  038C                            ;# 
   971  038D                            ;# 
   972  038E                            ;# 
   973  0391                            ;# 
   974  0392                            ;# 
   975  0393                            ;# 
   976  0394                            ;# 
   977  0395                            ;# 
   978  0396                            ;# 
   979  039A                            ;# 
   980  039C                            ;# 
   981  039D                            ;# 
   982  039E                            ;# 
   983  039F                            ;# 
   984  0415                            ;# 
   985  0416                            ;# 
   986  0417                            ;# 
   987  041C                            ;# 
   988  041D                            ;# 
   989  041E                            ;# 
   990  0FE4                            ;# 
   991  0FE5                            ;# 
   992  0FE6                            ;# 
   993  0FE7                            ;# 
   994  0FE8                            ;# 
   995  0FE9                            ;# 
   996  0FEA                            ;# 
   997  0FEB                            ;# 
   998  0FED                            ;# 
   999  0FEE                            ;# 
  1000  0FEF                            ;# 
  1001                           
  1002                                  psect   idataBANK0
  1003  0BB3                     __pidataBANK0: 
  1004                           
  1005                           ;initializer for main@F3130
  1006  0BB3  3400                      retlw   0
  1007  0BB4  3400                      retlw   0
  1008  0BB5  3400                      retlw   0
  1009  0BB6  3400                      retlw   0
  1010  0BB7  3400                      retlw   0
  1011  0BB8  3400                      retlw   0
  1012  0BB9  3400                      retlw   0
  1013  0BBA  3400                      retlw   0
  1014  0BBB  3410                      retlw   16
  1015  0BBC  3410                      retlw   16
  1016  0BBD  3410                      retlw   16
  1017  0BBE  3410                      retlw   16
  1018  0BBF  3410                      retlw   16
  1019  0BC0  3410                      retlw   16
  1020  0BC1  3410                      retlw   16
  1021  0BC2  3410                      retlw   16
  1022                           
  1023                           ;initializer for MCP23009_Query@F3053
  1024  0BC3  3409                      retlw   9
  1025  0BC4  3400                      retlw   0
  1026                           
  1027                                  psect   nvCOMMON
  1028  0079                     __pnvCOMMON:   
  1029  0079                     _i2c_data_p:   
  1030  0079                            ds      1
  1031                           
  1032                                  psect   nvBANK0
  1033  0069                     __pnvBANK0:    
  1034  0069                     I2C2@i2c_data_p:       
  1035  0069                            ds      1
  1036  000B                     _INTCONbits    set     11
  1037  0011                     _PIR1bits      set     17
  1038  0014                     _PIR4bits      set     20
  1039  0095                     _OPTION_REGbits        set     149
  1040  0099                     _OSCCONbits    set     153
  1041  0091                     _PIE1bits      set     145
  1042  0094                     _PIE4bits      set     148
  1043  008C                     _TRISAbits     set     140
  1044  008D                     _TRISBbits     set     141
  1045  008E                     _TRISCbits     set     142
  1046  010E                     _LATCbits      set     270
  1047  018C                     _ANSELA        set     396
  1048  018D                     _ANSELB        set     397
  1049  018E                     _ANSELC        set     398
  1050  0212                     _SSP1ADD       set     530
  1051  0211                     _SSP1BUF       set     529
  1052  0215                     _SSP1CON1      set     533
  1053  0215                     _SSP1CON1bits  set     533
  1054  0216                     _SSP1CON2      set     534
  1055  0216                     _SSP1CON2bits  set     534
  1056  0214                     _SSP1STAT      set     532
  1057  0214                     _SSP1STATbits  set     532
  1058  021A                     _SSP2ADD       set     538
  1059  0219                     _SSP2BUF       set     537
  1060  021D                     _SSP2CON1      set     541
  1061  021D                     _SSP2CON1bits  set     541
  1062  021E                     _SSP2CON2      set     542
  1063  021E                     _SSP2CON2bits  set     542
  1064  021C                     _SSP2STAT      set     540
  1065  021C                     _SSP2STATbits  set     540
  1066  0212                     _SSPADD        set     530
  1067  020E                     _WPUCbits      set     526
  1068                           
  1069                           ; #config settings
  1070  0000                     
  1071                                  psect   cinit
  1072  0BA5                     start_initialization:  
  1073  0BA5                     __initialization:      
  1074                           
  1075                           ; Initialize objects allocated to BANK0
  1076  0BA5  30B3                      movlw   low __pidataBANK0
  1077  0BA6  0084                      movwf   4
  1078  0BA7  308B                      movlw   (high __pidataBANK0)| (0+128)
  1079  0BA8  0085                      movwf   5
  1080  0BA9  3057                      movlw   low __pdataBANK0
  1081  0BAA  0086                      movwf   6
  1082  0BAB  3000                      movlw   high __pdataBANK0
  1083  0BAC  0087                      movwf   7
  1084  0BAD  3012                      movlw   18
  1085  0BAE  318B  238B                fcall   init_ram
  1086  0BB0                     end_of_initialization: 
  1087                           ;End of C runtime variable initialization code
  1088                           
  1089  0BB0                     __end_of__initialization:      
  1090  0BB0  0020                      movlb   0
  1091  0BB1  3186  2EDC                ljmp    _main   ;jump to C main() function
  1092                           
  1093                                  psect   dataBANK0
  1094  0057                     __pdataBANK0:  
  1095  0057                     main@F3130:    
  1096  0057                            ds      16
  1097  0067                     MCP23009_Query@F3053:  
  1098  0067                            ds      2
  1099                           
  1100                                  psect   inittext
  1101  0B8B                     init_ram:      
  1102  0B8B  00FE                      movwf   126
  1103  0B8C                     initloop:      
  1104  0B8C  0012                      moviw fsr0++
  1105  0B8D  001E                      movwi fsr1++
  1106  0B8E  0BFE                      decfsz  126,f
  1107  0B8F  2B8C                      goto    initloop
  1108  0B90  3400                      retlw   0
  1109                           
  1110                                  psect   cstackBANK2
  1111  0120                     __pcstackBANK2:        
  1112  0120                     main@i2c2_data:        
  1113                           
  1114                           ; 77 bytes @ 0x0
  1115  0120                            ds      77
  1116                           
  1117                                  psect   cstackBANK1
  1118  00A0                     __pcstackBANK1:        
  1119  00A0                     main@i2c1_data:        
  1120                           
  1121                           ; 77 bytes @ 0x0
  1122  00A0                            ds      77
  1123                           
  1124                                  psect   cstackCOMMON
  1125  0070                     __pcstackCOMMON:       
  1126  0070                     ?_I2C1_Init:   
  1127  0070                     ?_I2C1_Configure_Slave:        
  1128                           ; 0 bytes @ 0x0
  1129                           
  1130  0070                     ?_I2C2_Init:   
  1131                           ; 0 bytes @ 0x0
  1132                           
  1133  0070                     ?_I2C2_Configure_Master:       
  1134                           ; 0 bytes @ 0x0
  1135                           
  1136  0070                     ?_Interrupt_Init:      
  1137                           ; 0 bytes @ 0x0
  1138                           
  1139  0070                     ?_Interrupt_Enable:    
  1140                           ; 0 bytes @ 0x0
  1141                           
  1142  0070                     ?_TLC59116_Init:       
  1143                           ; 0 bytes @ 0x0
  1144                           
  1145  0070                     ?_TLC59116_Write_All:  
  1146                           ; 0 bytes @ 0x0
  1147                           
  1148  0070                     ?_MCP23009_Init:       
  1149                           ; 0 bytes @ 0x0
  1150                           
  1151  0070                     ?_I2C1_Interrupt_Master:       
  1152                           ; 0 bytes @ 0x0
  1153                           
  1154  0070                     ??_I2C1_Interrupt_Master:      
  1155                           ; 0 bytes @ 0x0
  1156                           
  1157  0070                     ?_I2C1_Interrupt_Slave:        
  1158                           ; 0 bytes @ 0x0
  1159                           
  1160  0070                     ??_I2C1_Process_Receive:       
  1161                           ; 0 bytes @ 0x0
  1162                           
  1163  0070                     ?_I2C2_Interrupt_Handler:      
  1164                           ; 0 bytes @ 0x0
  1165                           
  1166  0070                     ?_I2C2_Interrupt_Master:       
  1167                           ; 0 bytes @ 0x0
  1168                           
  1169  0070                     ??_I2C2_Interrupt_Master:      
  1170                           ; 0 bytes @ 0x0
  1171                           
  1172  0070                     ?_I2C2_Interrupt_Slave:        
  1173                           ; 0 bytes @ 0x0
  1174                           
  1175  0070                     ??_I2C2_Process_Receive:       
  1176                           ; 0 bytes @ 0x0
  1177                           
  1178  0070                     ?_Pins_Init:   
  1179                           ; 0 bytes @ 0x0
  1180                           
  1181  0070                     ?_I2C1_Interrupt_Handler:      
  1182                           ; 0 bytes @ 0x0
  1183                           
  1184  0070                     ?_InterruptHandler:    
  1185                           ; 0 bytes @ 0x0
  1186                           
  1187  0070                     ?_MCP23009_Query:      
  1188                           ; 0 bytes @ 0x0
  1189                           
  1190  0070                     ?_I2C1_Process_Receive:        
  1191                           ; 1 bytes @ 0x0
  1192                           
  1193  0070                     ?_I2C2_Process_Receive:        
  1194                           ; 1 bytes @ 0x0
  1195                           
  1196  0070                     ?_Read_Address:        
  1197                           ; 1 bytes @ 0x0
  1198                           
  1199  0070                     ?_I2C2_Get_Status:     
  1200                           ; 1 bytes @ 0x0
  1201                           
  1202  0070                     ?_I2C2_Read_Buffer:    
  1203                           ; 1 bytes @ 0x0
  1204                           
  1205  0070                     ?_main:        
  1206                           ; 1 bytes @ 0x0
  1207                           
  1208  0070                     I2C1_Process_Receive@c:        
  1209                           ; 2 bytes @ 0x0
  1210                           
  1211  0070                     I2C2_Process_Receive@c:        
  1212                           ; 1 bytes @ 0x0
  1213                           
  1214                           
  1215                           ; 1 bytes @ 0x0
  1216  0070                            ds      1
  1217  0071                     I2C1_Process_Receive@ret:      
  1218  0071                     I2C2_Process_Receive@ret:      
  1219                           ; 1 bytes @ 0x1
  1220                           
  1221                           
  1222                           ; 1 bytes @ 0x1
  1223  0071                            ds      1
  1224  0072                     ??_I2C1_Interrupt_Slave:       
  1225  0072                     ??_I2C2_Interrupt_Slave:       
  1226                           ; 0 bytes @ 0x2
  1227                           
  1228  0072                     I2C1_Interrupt_Master@tmp:     
  1229                           ; 0 bytes @ 0x2
  1230                           
  1231  0072                     I2C2_Interrupt_Master@tmp:     
  1232                           ; 1 bytes @ 0x2
  1233                           
  1234                           
  1235                           ; 1 bytes @ 0x2
  1236  0072                            ds      1
  1237  0073                     I2C1_Interrupt_Master@tmp_611: 
  1238  0073                     I2C2_Interrupt_Master@tmp_923: 
  1239                           ; 1 bytes @ 0x3
  1240                           
  1241                           
  1242                           ; 1 bytes @ 0x3
  1243  0073                            ds      1
  1244  0074                     I2C1_Interrupt_Slave@overrun_error:    
  1245  0074                     I2C2_Interrupt_Slave@overrun_error:    
  1246                           ; 1 bytes @ 0x4
  1247                           
  1248                           
  1249                           ; 1 bytes @ 0x4
  1250  0074                            ds      1
  1251  0075                     I2C1_Interrupt_Slave@data_written_to_buffer:   
  1252  0075                     I2C2_Interrupt_Slave@data_written_to_buffer:   
  1253                           ; 1 bytes @ 0x5
  1254                           
  1255                           
  1256                           ; 1 bytes @ 0x5
  1257  0075                            ds      1
  1258  0076                     I2C1_Interrupt_Slave@received_data:    
  1259  0076                     I2C2_Interrupt_Slave@received_data:    
  1260                           ; 1 bytes @ 0x6
  1261                           
  1262                           
  1263                           ; 1 bytes @ 0x6
  1264  0076                            ds      1
  1265  0077                     I2C1_Interrupt_Slave@data_read_from_buffer:    
  1266  0077                     I2C2_Interrupt_Slave@data_read_from_buffer:    
  1267                           ; 1 bytes @ 0x7
  1268                           
  1269                           
  1270                           ; 1 bytes @ 0x7
  1271  0077                            ds      1
  1272  0078                     ??_I2C2_Interrupt_Handler:     
  1273  0078                     ??_I2C1_Interrupt_Handler:     
  1274                           ; 0 bytes @ 0x8
  1275                           
  1276  0078                     ??_InterruptHandler:   
  1277                           ; 0 bytes @ 0x8
  1278                           
  1279                           
  1280                           ; 0 bytes @ 0x8
  1281  0078                            ds      1
  1282                           
  1283                                  psect   cstackBANK0
  1284  0020                     __pcstackBANK0:        
  1285  0020                     ??_I2C1_Init:  
  1286  0020                     ??_I2C1_Configure_Slave:       
  1287                           ; 0 bytes @ 0x0
  1288                           
  1289  0020                     ??_I2C2_Init:  
  1290                           ; 0 bytes @ 0x0
  1291                           
  1292  0020                     ??_I2C2_Configure_Master:      
  1293                           ; 0 bytes @ 0x0
  1294                           
  1295  0020                     ??_Interrupt_Init:     
  1296                           ; 0 bytes @ 0x0
  1297                           
  1298  0020                     ??_Interrupt_Enable:   
  1299                           ; 0 bytes @ 0x0
  1300                           
  1301  0020                     ??_Pins_Init:  
  1302                           ; 0 bytes @ 0x0
  1303                           
  1304  0020                     ??_Read_Address:       
  1305                           ; 0 bytes @ 0x0
  1306                           
  1307  0020                     ?_I2C2_Master_Send:    
  1308                           ; 0 bytes @ 0x0
  1309                           
  1310  0020                     ?_I2C2_Master_Recv:    
  1311                           ; 0 bytes @ 0x0
  1312                           
  1313  0020                     ??_I2C2_Get_Status:    
  1314                           ; 0 bytes @ 0x0
  1315                           
  1316  0020                     ??_I2C2_Read_Buffer:   
  1317                           ; 0 bytes @ 0x0
  1318                           
  1319  0020                     I2C2_Master_Send@length:       
  1320                           ; 0 bytes @ 0x0
  1321                           
  1322  0020                     I2C2_Master_Recv@length:       
  1323                           ; 1 bytes @ 0x0
  1324                           
  1325                           
  1326                           ; 1 bytes @ 0x0
  1327  0020                            ds      1
  1328  0021                     ??_I2C2_Master_Recv:   
  1329  0021                     I2C1_Init@data:        
  1330                           ; 0 bytes @ 0x1
  1331                           
  1332  0021                     I2C1_Configure_Slave@addr:     
  1333                           ; 1 bytes @ 0x1
  1334                           
  1335  0021                     I2C2_Init@data:        
  1336                           ; 1 bytes @ 0x1
  1337                           
  1338  0021                     I2C2_Configure_Master@speed:   
  1339                           ; 1 bytes @ 0x1
  1340                           
  1341  0021                     I2C2_Master_Send@msg:  
  1342                           ; 1 bytes @ 0x1
  1343                           
  1344                           
  1345                           ; 1 bytes @ 0x1
  1346  0021                            ds      1
  1347  0022                     ??_I2C2_Master_Send:   
  1348  0022                     I2C2_Master_Recv@address:      
  1349                           ; 0 bytes @ 0x2
  1350                           
  1351                           
  1352                           ; 1 bytes @ 0x2
  1353  0022                            ds      1
  1354  0023                     Read_Address@ret:      
  1355  0023                     I2C2_Read_Buffer@buffer:       
  1356                           ; 1 bytes @ 0x3
  1357                           
  1358                           
  1359                           ; 1 bytes @ 0x3
  1360  0023                            ds      1
  1361  0024                     I2C2_Read_Buffer@i:    
  1362                           
  1363                           ; 1 bytes @ 0x4
  1364  0024                            ds      1
  1365  0025                     I2C2_Master_Send@address:      
  1366                           
  1367                           ; 1 bytes @ 0x5
  1368  0025                            ds      1
  1369  0026                     I2C2_Master_Send@i:    
  1370                           
  1371                           ; 1 bytes @ 0x6
  1372  0026                            ds      1
  1373  0027                     ??_TLC59116_Init:      
  1374  0027                     ??_TLC59116_Write_All: 
  1375                           ; 0 bytes @ 0x7
  1376                           
  1377  0027                     ??_MCP23009_Init:      
  1378                           ; 0 bytes @ 0x7
  1379                           
  1380  0027                     ??_MCP23009_Query:     
  1381                           ; 0 bytes @ 0x7
  1382                           
  1383                           
  1384                           ; 0 bytes @ 0x7
  1385  0027                            ds      1
  1386  0028                     MCP23009_Query@buffer: 
  1387                           
  1388                           ; 2 bytes @ 0x8
  1389  0028                            ds      1
  1390  0029                     MCP23009_Init@buffer:  
  1391  0029                     TLC59116_Write_All@buffer:     
  1392                           ; 8 bytes @ 0x9
  1393                           
  1394  0029                     TLC59116_Init@buffer:  
  1395                           ; 17 bytes @ 0x9
  1396                           
  1397                           
  1398                           ; 25 bytes @ 0x9
  1399  0029                            ds      1
  1400  002A                     MCP23009_Query@result: 
  1401                           
  1402                           ; 1 bytes @ 0xA
  1403  002A                            ds      7
  1404  0031                     MCP23009_Init@result:  
  1405                           
  1406                           ; 1 bytes @ 0x11
  1407  0031                            ds      9
  1408  003A                     TLC59116_Write_All@result:     
  1409                           
  1410                           ; 1 bytes @ 0x1A
  1411  003A                            ds      1
  1412  003B                     TLC59116_Write_All@values:     
  1413                           
  1414                           ; 1 bytes @ 0x1B
  1415  003B                            ds      7
  1416  0042                     TLC59116_Init@result:  
  1417                           
  1418                           ; 1 bytes @ 0x22
  1419  0042                            ds      1
  1420  0043                     ??_main:       
  1421                           
  1422                           ; 0 bytes @ 0x23
  1423  0043                            ds      1
  1424  0044                     main@leds:     
  1425                           
  1426                           ; 16 bytes @ 0x24
  1427  0044                            ds      16
  1428  0054                     main@i2c_slave_addr:   
  1429                           
  1430                           ; 1 bytes @ 0x34
  1431  0054                            ds      1
  1432  0055                     main@btn_value:        
  1433                           
  1434                           ; 1 bytes @ 0x35
  1435  0055                            ds      1
  1436  0056                     main@i:        
  1437                           
  1438                           ; 1 bytes @ 0x36
  1439  0056                            ds      1
  1440                           
  1441                                  psect   maintext
  1442  06DC                     __pmaintext:   
  1443 ;;
  1444 ;;Main: autosize = 0, tempsize = 1, incstack = 0, save=0
  1445 ;;
  1446 ;; *************** function _main *****************
  1447 ;; Defined at:
  1448 ;;               line 87 in file "main.c"
  1449 ;; Parameters:    Size  Location     Type
  1450 ;;               None
  1451 ;; Auto vars:     Size  Location     Type
  1452 ;;  i               1   54[BANK0 ] unsigned char 
  1453 ;;  btn_value       1   53[BANK0 ] unsigned char 
  1454 ;;  i2c2_data      77    0[BANK2 ] struct .
  1455 ;;  i2c1_data      77    0[BANK1 ] struct .
  1456 ;;  buffer         32    0        unsigned char [32]
  1457 ;;  leds           16   36[BANK0 ] unsigned char [16]
  1458 ;;  i2c_slave_ad    1   52[BANK0 ] unsigned char 
  1459 ;;  length          1    0        unsigned char 
  1460 ;;  result          1    0        unsigned char 
  1461 ;; Return value:  Size  Location     Type
  1462 ;;                  2   54[COMMON] int 
  1463 ;; Registers used:
  1464 ;;               wreg, fsr0l, fsr0h, fsr1l, fsr1h, fsr1l, fsr1h, status,2, status,0, btemp+1, pclath, cstack
  1465 ;; Tracked objects:
  1466 ;;               On entry : 17F/0
  1467 ;;               On exit  : 0/0
  1468 ;;               Unchanged: 0/0
  1469 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  1470 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1471 ;;      Locals:         0      19      77      77       0       0       0       0       0       0       0       0       
      +0       0
  1472 ;;      Temps:          0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1473 ;;      Totals:         0      20      77      77       0       0       0       0       0       0       0       0       
      +0       0
  1474 ;;Total ram usage:      174 bytes
  1475 ;; Hardware stack levels required when called:    6
  1476 ;; This function calls:
  1477 ;;               _Pins_Init
  1478 ;;               _Read_Address
  1479 ;;               _I2C1_Init
  1480 ;;               _I2C1_Configure_Slave
  1481 ;;               _I2C2_Init
  1482 ;;               _I2C2_Configure_Master
  1483 ;;               _Interrupt_Init
  1484 ;;               _Interrupt_Enable
  1485 ;;               _TLC59116_Init
  1486 ;;               _TLC59116_Write_All
  1487 ;;               _MCP23009_Init
  1488 ;;               _MCP23009_Query
  1489 ;; This function is called by:
  1490 ;;               Startup code after reset
  1491 ;; This function uses a non-reentrant model
  1492 ;;
  1493                           
  1494                           
  1495                           ;psect for function _main
  1496  06DC                     _main: 
  1497                           
  1498                           ;main.c: 88: uint8_t buffer[32];
  1499                           ;main.c: 89: uint8_t result, length;
  1500                           ;main.c: 90: uint8_t i2c_slave_addr;
  1501                           ;main.c: 93: OSCCONbits.SPLLEN = 1;
  1502                           
  1503                           ;incstack = 0
  1504                           ; Regs used in _main: [allreg]
  1505  06DC  0021                      movlb   1       ; select bank1
  1506  06DD  1799                      bsf     25,7    ;volatile
  1507                           
  1508                           ;main.c: 94: OSCCONbits.IRCF = 0xE;
  1509  06DE  0819                      movf    25,w    ;volatile
  1510  06DF  3987                      andlw   -121
  1511  06E0  3870                      iorlw   112
  1512  06E1  0099                      movwf   25      ;volatile
  1513                           
  1514                           ;main.c: 95: OSCCONbits.SCS = 0b00;
  1515  06E2  30FC                      movlw   -4
  1516  06E3  0599                      andwf   25,f    ;volatile
  1517                           
  1518                           ;main.c: 102: Pins_Init();
  1519  06E4  318B  23F5  3186          fcall   _Pins_Init
  1520                           
  1521                           ;main.c: 104: i2c_slave_addr = Read_Address();
  1522  06E7  318C  24A7  3186          fcall   _Read_Address
  1523  06EA  0020                      movlb   0        ; select bank0
  1524  06EB  00C3                      movwf   ??_main
  1525  06EC  0843                      movf    ??_main,w
  1526  06ED  00D4                      movwf   main@i2c_slave_addr
  1527                           
  1528                           ;main.c: 107: I2C1_DATA i2c1_data;
  1529                           ;main.c: 108: I2C1_Init(&i2c1_data);
  1530  06EE  30A0                      movlw   main@i2c1_data& (0+255)
  1531  06EF  318D  259E  3186          fcall   _I2C1_Init
  1532                           
  1533                           ;main.c: 109: I2C1_Configure_Slave(i2c_slave_addr);
  1534  06F2  0020                      movlb   0        ; select bank0
  1535  06F3  0854                      movf    main@i2c_slave_addr,w
  1536  06F4  318C  240F  3186          fcall   _I2C1_Configure_Slave
  1537                           
  1538                           ;main.c: 112: I2C2_DATA i2c2_data;
  1539                           ;main.c: 113: I2C2_Init(&i2c2_data);
  1540  06F7  3020                      movlw   main@i2c2_data& (0+255)
  1541  06F8  318E  263F  3186          fcall   _I2C2_Init
  1542                           
  1543                           ;main.c: 114: I2C2_Configure_Master(0x0);
  1544  06FB  3000                      movlw   0
  1545  06FC  318C  242B  3186          fcall   _I2C2_Configure_Master
  1546                           
  1547                           ;main.c: 117: Interrupt_Init();
  1548  06FF  3187  27FE  3186          fcall   _Interrupt_Init
  1549                           
  1550                           ;main.c: 118: Interrupt_Enable();
  1551  0702  3187  27FB  3186          fcall   _Interrupt_Enable
  1552                           
  1553                           ;main.c: 120: TLC59116_Init();
  1554  0705  318D  2512  3186          fcall   _TLC59116_Init
  1555                           
  1556                           ;main.c: 122: uint8_t leds[16] = {0x00, 0x00, 0x00, 0x00,
  1557                           ;main.c: 123: 0x00, 0x00, 0x00, 0x00,
  1558                           ;main.c: 124: 0x10, 0x10, 0x10, 0x10,
  1559                           ;main.c: 125: 0x10, 0x10, 0x10, 0x10};
  1560  0708  3057                      movlw   low main@F3130
  1561  0709  0086                      movwf   6
  1562  070A  3000                      movlw   high main@F3130
  1563  070B  0087                      movwf   7
  1564  070C  3044                      movlw   low main@leds
  1565  070D  0084                      movwf   4
  1566  070E  3000                      movlw   high main@leds
  1567  070F  0085                      movwf   5
  1568  0710  3010                      movlw   16
  1569  0711  00FF                      movwf   127
  1570  0712                     u1080: 
  1571  0712  0016                      moviw fsr1++
  1572  0713  001A                      movwi fsr0++
  1573  0714  0BFF                      decfsz  127,f
  1574  0715  2F12                      goto    u1080
  1575                           
  1576                           ;main.c: 126: TLC59116_Write_All(leds);
  1577  0716  3044                      movlw   main@leds& (0+255)
  1578  0717  3187  274D  3186          fcall   _TLC59116_Write_All
  1579                           
  1580                           ;main.c: 128: MCP23009_Init();
  1581  071A  318C  244D  3186          fcall   _MCP23009_Init
  1582  071D                     l2157: 
  1583                           ;main.c: 131: while (1) {
  1584                           
  1585                           
  1586                           ;main.c: 132: uint8_t btn_value = MCP23009_Query();
  1587  071D  318C  2476  3186          fcall   _MCP23009_Query
  1588  0720  0020                      movlb   0        ; select bank0
  1589  0721  00C3                      movwf   ??_main
  1590  0722  0843                      movf    ??_main,w
  1591  0723  00D5                      movwf   main@btn_value
  1592                           
  1593                           ;main.c: 133: uint8_t i;
  1594                           ;main.c: 134: for (i = 0; i < 8; i++) {
  1595  0724  01D6                      clrf    main@i
  1596  0725  3008                      movlw   8
  1597  0726  0256                      subwf   main@i,w
  1598  0727  1803                      btfsc   3,0
  1599  0728  2F48                      goto    l2175
  1600  0729                     l2165: 
  1601                           
  1602                           ;main.c: 135: if ((btn_value >> i) & 0x1) {
  1603  0729  0855                      movf    main@btn_value,w
  1604  072A  00C3                      movwf   ??_main
  1605  072B  0A56                      incf    main@i,w
  1606  072C  2F2E                      goto    u1104
  1607  072D                     u1105: 
  1608  072D  36C3                      lsrf    ??_main,f
  1609  072E                     u1104: 
  1610  072E  0B89                      decfsz  9,f
  1611  072F  2F2D                      goto    u1105
  1612  0730  1C43                      btfss   ??_main,0
  1613  0731  2F38                      goto    l2169
  1614                           
  1615                           ;main.c: 136: leds[i] = 0x00;
  1616  0732  0856                      movf    main@i,w
  1617  0733  3E44                      addlw   main@leds& (0+255)
  1618  0734  0086                      movwf   6
  1619  0735  0187                      clrf    7
  1620  0736  0181                      clrf    1
  1621                           
  1622                           ;main.c: 137: } else {
  1623  0737  2F40                      goto    l2171
  1624  0738                     l2169: 
  1625                           
  1626                           ;main.c: 138: leds[i] = 0x10;
  1627  0738  3010                      movlw   16
  1628  0739  00C3                      movwf   ??_main
  1629  073A  0856                      movf    main@i,w
  1630  073B  3E44                      addlw   main@leds& (0+255)
  1631  073C  0086                      movwf   6
  1632  073D  0187                      clrf    7
  1633  073E  0843                      movf    ??_main,w
  1634  073F  0081                      movwf   1
  1635  0740                     l2171: 
  1636  0740  3001                      movlw   1
  1637  0741  00C3                      movwf   ??_main
  1638  0742  0843                      movf    ??_main,w
  1639  0743  07D6                      addwf   main@i,f
  1640  0744  3008                      movlw   8
  1641  0745  0256                      subwf   main@i,w
  1642  0746  1C03                      skipc
  1643  0747  2F29                      goto    l2165
  1644  0748                     l2175: 
  1645                           
  1646                           ;main.c: 139: }
  1647                           ;main.c: 140: }
  1648                           ;main.c: 141: TLC59116_Write_All(leds);
  1649  0748  3044                      movlw   main@leds& (0+255)
  1650  0749  3187  274D  3186          fcall   _TLC59116_Write_All
  1651  074C  2F1D                      goto    l2157
  1652  074D                     __end_of_main: 
  1653                           
  1654                                  psect   text1
  1655  0C76                     __ptext1:      
  1656 ;; *************** function _MCP23009_Query *****************
  1657 ;; Defined at:
  1658 ;;               line 25 in file "MCP23009.c"
  1659 ;; Parameters:    Size  Location     Type
  1660 ;;               None
  1661 ;; Auto vars:     Size  Location     Type
  1662 ;;  buffer          2    8[BANK0 ] unsigned char [2]
  1663 ;;  result          1   10[BANK0 ] unsigned char 
  1664 ;; Return value:  Size  Location     Type
  1665 ;;                  1    wreg      unsigned char 
  1666 ;; Registers used:
  1667 ;;               wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack
  1668 ;; Tracked objects:
  1669 ;;               On entry : 0/0
  1670 ;;               On exit  : 0/0
  1671 ;;               Unchanged: 0/0
  1672 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  1673 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1674 ;;      Locals:         0       3       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1675 ;;      Temps:          0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1676 ;;      Totals:         0       4       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1677 ;;Total ram usage:        4 bytes
  1678 ;; Hardware stack levels used:    1
  1679 ;; Hardware stack levels required when called:    5
  1680 ;; This function calls:
  1681 ;;               _I2C2_Master_Send
  1682 ;;               _I2C2_Master_Recv
  1683 ;;               _I2C2_Get_Status
  1684 ;;               _I2C2_Read_Buffer
  1685 ;; This function is called by:
  1686 ;;               _main
  1687 ;; This function uses a non-reentrant model
  1688 ;;
  1689                           
  1690                           
  1691                           ;psect for function _MCP23009_Query
  1692  0C76                     _MCP23009_Query:       
  1693                           
  1694                           ;MCP23009.c: 26: uint8_t buffer[2] = {0x09};
  1695                           
  1696                           ;incstack = 0
  1697                           ; Regs used in _MCP23009_Query: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack]
  1698  0C76  0020                      movlb   0        ; select bank0
  1699  0C77  0868                      movf    MCP23009_Query@F3053+1,w
  1700  0C78  01A9                      clrf    MCP23009_Query@buffer+1
  1701  0C79  07A9                      addwf   MCP23009_Query@buffer+1,f
  1702  0C7A  0867                      movf    MCP23009_Query@F3053,w
  1703  0C7B  01A8                      clrf    MCP23009_Query@buffer
  1704  0C7C  07A8                      addwf   MCP23009_Query@buffer,f
  1705                           
  1706                           ;MCP23009.c: 28: I2C2_Master_Send(0x20, 1, buffer);
  1707  0C7D  01A0                      clrf    ?_I2C2_Master_Send
  1708  0C7E  0AA0                      incf    ?_I2C2_Master_Send,f
  1709  0C7F  3028                      movlw   MCP23009_Query@buffer& (0+255)
  1710  0C80  00A7                      movwf   ??_MCP23009_Query
  1711  0C81  0827                      movf    ??_MCP23009_Query,w
  1712  0C82  00A1                      movwf   ?_I2C2_Master_Send+1
  1713  0C83  3020                      movlw   32
  1714  0C84  318D  25EC  318C          fcall   _I2C2_Master_Send
  1715  0C87                     l2393: 
  1716                           ;MCP23009.c: 29: uint8_t result;
  1717                           ;MCP23009.c: 30: do {
  1718                           
  1719                           
  1720                           ;MCP23009.c: 31: result = I2C2_Get_Status();
  1721  0C87  3187  27BD  318C          fcall   _I2C2_Get_Status
  1722  0C8A  0020                      movlb   0        ; select bank0
  1723  0C8B  00A7                      movwf   ??_MCP23009_Query
  1724  0C8C  0827                      movf    ??_MCP23009_Query,w
  1725  0C8D  00AA                      movwf   MCP23009_Query@result
  1726                           
  1727                           ;MCP23009.c: 32: } while (!result);
  1728  0C8E  082A                      movf    MCP23009_Query@result,w
  1729  0C8F  1903                      btfsc   3,2
  1730  0C90  2C87                      goto    l2393
  1731                           
  1732                           ;MCP23009.c: 34: I2C2_Master_Recv(0x20, 1);
  1733  0C91  01A0                      clrf    ?_I2C2_Master_Recv
  1734  0C92  0AA0                      incf    ?_I2C2_Master_Recv,f
  1735  0C93  3020                      movlw   32
  1736  0C94  318C  24DA  318C          fcall   _I2C2_Master_Recv
  1737  0C97                     l500:  
  1738                           ;MCP23009.c: 35: uint8_t result;
  1739                           ;MCP23009.c: 36: do {
  1740                           
  1741                           
  1742                           ;MCP23009.c: 37: result = I2C2_Get_Status();
  1743  0C97  3187  27BD  318C          fcall   _I2C2_Get_Status
  1744  0C9A  0020                      movlb   0        ; select bank0
  1745  0C9B  00A7                      movwf   ??_MCP23009_Query
  1746  0C9C  0827                      movf    ??_MCP23009_Query,w
  1747  0C9D  00AA                      movwf   MCP23009_Query@result
  1748                           
  1749                           ;MCP23009.c: 38: } while (!result);
  1750  0C9E  082A                      movf    MCP23009_Query@result,w
  1751  0C9F  1903                      btfsc   3,2
  1752  0CA0  2C97                      goto    l500
  1753                           
  1754                           ;MCP23009.c: 39: I2C2_Read_Buffer(buffer);
  1755  0CA1  3028                      movlw   MCP23009_Query@buffer& (0+255)
  1756  0CA2  318D  2558                fcall   _I2C2_Read_Buffer
  1757                           
  1758                           ;MCP23009.c: 41: return buffer[0];
  1759  0CA4  0020                      movlb   0        ; select bank0
  1760  0CA5  0828                      movf    MCP23009_Query@buffer,w
  1761  0CA6  0008                      return
  1762  0CA7                     __end_of_MCP23009_Query:       
  1763                           
  1764                                  psect   text2
  1765  0D58                     __ptext2:      
  1766 ;; *************** function _I2C2_Read_Buffer *****************
  1767 ;; Defined at:
  1768 ;;               line 506 in file "I2C2.c"
  1769 ;; Parameters:    Size  Location     Type
  1770 ;;  buffer          1    wreg     PTR unsigned char 
  1771 ;;                -> MCP23009_Query@buffer(2), 
  1772 ;; Auto vars:     Size  Location     Type
  1773 ;;  buffer          1    3[BANK0 ] PTR unsigned char 
  1774 ;;                -> MCP23009_Query@buffer(2), 
  1775 ;;  i               1    4[BANK0 ] unsigned char 
  1776 ;; Return value:  Size  Location     Type
  1777 ;;                  1    wreg      unsigned char 
  1778 ;; Registers used:
  1779 ;;               wreg, fsr1l, fsr1h, status,2, status,0
  1780 ;; Tracked objects:
  1781 ;;               On entry : 0/0
  1782 ;;               On exit  : 0/0
  1783 ;;               Unchanged: 0/0
  1784 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  1785 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1786 ;;      Locals:         0       2       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1787 ;;      Temps:          0       3       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1788 ;;      Totals:         0       5       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1789 ;;Total ram usage:        5 bytes
  1790 ;; Hardware stack levels used:    1
  1791 ;; Hardware stack levels required when called:    4
  1792 ;; This function calls:
  1793 ;;               Nothing
  1794 ;; This function is called by:
  1795 ;;               _MCP23009_Query
  1796 ;; This function uses a non-reentrant model
  1797 ;;
  1798                           
  1799                           
  1800                           ;psect for function _I2C2_Read_Buffer
  1801  0D58                     _I2C2_Read_Buffer:     
  1802                           
  1803                           ;incstack = 0
  1804                           ; Regs used in _I2C2_Read_Buffer: [wreg+fsr1l+fsr1h+status,2+status,0]
  1805                           ;I2C2_Read_Buffer@buffer stored from wreg
  1806  0D58  0020                      movlb   0        ; select bank0
  1807  0D59  00A3                      movwf   I2C2_Read_Buffer@buffer
  1808                           
  1809                           ;I2C2.c: 507: uint8_t i = 0;
  1810  0D5A  01A4                      clrf    I2C2_Read_Buffer@i
  1811  0D5B                     l445:  
  1812                           ;I2C2.c: 508: while (i2c_data_p->buffer_in_len != 0) {
  1813                           
  1814  0D5B  0869                      movf    I2C2@i2c_data_p,w
  1815  0D5C  3E20                      addlw   32
  1816  0D5D  0086                      movwf   6
  1817  0D5E  3001                      movlw   1       ; select bank2/3
  1818  0D5F  0087                      movwf   7
  1819  0D60  0881                      movf    1,f
  1820  0D61  1903                      btfsc   3,2
  1821  0D62  0008                      return
  1822                           
  1823                           ;I2C2.c: 509: buffer[i] = i2c_data_p->buffer_in[i2c_data_p->buffer_in_read_ind];
  1824  0D63  0869                      movf    I2C2@i2c_data_p,w
  1825  0D64  3E22                      addlw   34
  1826  0D65  0086                      movwf   6
  1827  0D66  3001                      movlw   1       ; select bank2/3
  1828  0D67  0087                      movwf   7
  1829  0D68  0801                      movf    1,w
  1830  0D69  0769                      addwf   I2C2@i2c_data_p,w
  1831  0D6A  00A0                      movwf   ??_I2C2_Read_Buffer
  1832  0D6B  0820                      movf    ??_I2C2_Read_Buffer,w
  1833  0D6C  0086                      movwf   6
  1834  0D6D  3001                      movlw   1       ; select bank2/3
  1835  0D6E  0087                      movwf   7
  1836  0D6F  0801                      movf    1,w
  1837  0D70  00A1                      movwf   ??_I2C2_Read_Buffer+1
  1838  0D71  0824                      movf    I2C2_Read_Buffer@i,w
  1839  0D72  0723                      addwf   I2C2_Read_Buffer@buffer,w
  1840  0D73  00A2                      movwf   ??_I2C2_Read_Buffer+2
  1841  0D74  0822                      movf    ??_I2C2_Read_Buffer+2,w
  1842  0D75  0086                      movwf   6
  1843  0D76  0187                      clrf    7
  1844  0D77  0821                      movf    ??_I2C2_Read_Buffer+1,w
  1845  0D78  0081                      movwf   1
  1846                           
  1847                           ;I2C2.c: 510: i++;
  1848  0D79  3001                      movlw   1
  1849  0D7A  00A0                      movwf   ??_I2C2_Read_Buffer
  1850  0D7B  0820                      movf    ??_I2C2_Read_Buffer,w
  1851  0D7C  07A4                      addwf   I2C2_Read_Buffer@i,f
  1852                           
  1853                           ;I2C2.c: 511: if (i2c_data_p->buffer_in_read_ind == 32-1) {
  1854  0D7D  0869                      movf    I2C2@i2c_data_p,w
  1855  0D7E  3E22                      addlw   34
  1856  0D7F  0086                      movwf   6
  1857  0D80  3001                      movlw   1       ; select bank2/3
  1858  0D81  0087                      movwf   7
  1859  0D82  0801                      movf    1,w
  1860  0D83  3A1F                      xorlw   31
  1861  0D84  1D03                      skipz
  1862  0D85  2D8D                      goto    l2909
  1863                           
  1864                           ;I2C2.c: 512: i2c_data_p->buffer_in_read_ind = 0;
  1865  0D86  0869                      movf    I2C2@i2c_data_p,w
  1866  0D87  3E22                      addlw   34
  1867  0D88  0086                      movwf   6
  1868  0D89  3001                      movlw   1       ; select bank2/3
  1869  0D8A  0087                      movwf   7
  1870  0D8B  0181                      clrf    1
  1871                           
  1872                           ;I2C2.c: 513: } else {
  1873  0D8C  2D96                      goto    l448
  1874  0D8D                     l2909: 
  1875                           
  1876                           ;I2C2.c: 514: i2c_data_p->buffer_in_read_ind++;
  1877  0D8D  3001                      movlw   1
  1878  0D8E  00A0                      movwf   ??_I2C2_Read_Buffer
  1879  0D8F  0869                      movf    I2C2@i2c_data_p,w
  1880  0D90  3E22                      addlw   34
  1881  0D91  0086                      movwf   6
  1882  0D92  3001                      movlw   1       ; select bank2/3
  1883  0D93  0087                      movwf   7
  1884  0D94  0820                      movf    ??_I2C2_Read_Buffer,w
  1885  0D95  0781                      addwf   1,f
  1886  0D96                     l448:  
  1887                           
  1888                           ;I2C2.c: 515: }
  1889                           ;I2C2.c: 516: i2c_data_p->buffer_in_len--;
  1890  0D96  0869                      movf    I2C2@i2c_data_p,w
  1891  0D97  3E20                      addlw   32
  1892  0D98  0086                      movwf   6
  1893  0D99  3001                      movlw   1       ; select bank2/3
  1894  0D9A  0087                      movwf   7
  1895  0D9B  3001                      movlw   1
  1896  0D9C  0281                      subwf   1,f
  1897  0D9D  2D5B                      goto    l445
  1898  0D9E                     __end_of_I2C2_Read_Buffer:     
  1899                           ;I2C2.c: 517: }
  1900                           ;I2C2.c: 518: return i;
  1901                           ;      Return value of _I2C2_Read_Buffer is never used
  1902                           
  1903                           
  1904                                  psect   text3
  1905  0CDA                     __ptext3:      
  1906 ;; *************** function _I2C2_Master_Recv *****************
  1907 ;; Defined at:
  1908 ;;               line 77 in file "I2C2.c"
  1909 ;; Parameters:    Size  Location     Type
  1910 ;;  address         1    wreg     unsigned char 
  1911 ;;  length          1    0[BANK0 ] unsigned char 
  1912 ;; Auto vars:     Size  Location     Type
  1913 ;;  address         1    2[BANK0 ] unsigned char 
  1914 ;; Return value:  Size  Location     Type
  1915 ;;               None               void
  1916 ;; Registers used:
  1917 ;;               wreg, fsr1l, fsr1h, status,2, status,0
  1918 ;; Tracked objects:
  1919 ;;               On entry : 0/0
  1920 ;;               On exit  : 0/0
  1921 ;;               Unchanged: 0/0
  1922 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  1923 ;;      Params:         0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1924 ;;      Locals:         0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1925 ;;      Temps:          0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1926 ;;      Totals:         0       3       0       0       0       0       0       0       0       0       0       0       
      +0       0
  1927 ;;Total ram usage:        3 bytes
  1928 ;; Hardware stack levels used:    1
  1929 ;; Hardware stack levels required when called:    4
  1930 ;; This function calls:
  1931 ;;               Nothing
  1932 ;; This function is called by:
  1933 ;;               _MCP23009_Query
  1934 ;; This function uses a non-reentrant model
  1935 ;;
  1936                           
  1937                           
  1938                           ;psect for function _I2C2_Master_Recv
  1939  0CDA                     _I2C2_Master_Recv:     
  1940                           
  1941                           ;incstack = 0
  1942                           ; Regs used in _I2C2_Master_Recv: [wreg+fsr1l+fsr1h+status,2+status,0]
  1943                           ;I2C2_Master_Recv@address stored from wreg
  1944  0CDA  0020                      movlb   0        ; select bank0
  1945  0CDB  00A2                      movwf   I2C2_Master_Recv@address
  1946                           
  1947                           ;I2C2.c: 78: if (length == 0)
  1948  0CDC  08A0                      movf    I2C2_Master_Recv@length,f
  1949  0CDD  1903                      btfsc   3,2
  1950  0CDE  0008                      return
  1951                           
  1952                           ;I2C2.c: 82: i2c_data_p->buffer_in_len = length;
  1953                           
  1954                           ;I2C2.c: 79: return;
  1955  0CDF  0820                      movf    I2C2_Master_Recv@length,w
  1956  0CE0  00A1                      movwf   ??_I2C2_Master_Recv
  1957  0CE1  0869                      movf    I2C2@i2c_data_p,w
  1958  0CE2  3E20                      addlw   32
  1959  0CE3  0086                      movwf   6
  1960  0CE4  3001                      movlw   1       ; select bank2/3
  1961  0CE5  0087                      movwf   7
  1962  0CE6  0821                      movf    ??_I2C2_Master_Recv,w
  1963  0CE7  0081                      movwf   1
  1964                           
  1965                           ;I2C2.c: 83: i2c_data_p->master_dest_addr = address;
  1966  0CE8  0822                      movf    I2C2_Master_Recv@address,w
  1967  0CE9  00A1                      movwf   ??_I2C2_Master_Recv
  1968  0CEA  0869                      movf    I2C2@i2c_data_p,w
  1969  0CEB  3E49                      addlw   73
  1970  0CEC  0086                      movwf   6
  1971  0CED  3001                      movlw   1       ; select bank2/3
  1972  0CEE  0087                      movwf   7
  1973  0CEF  0821                      movf    ??_I2C2_Master_Recv,w
  1974  0CF0  0081                      movwf   1
  1975                           
  1976                           ;I2C2.c: 84: i2c_data_p->buffer_in_read_ind = 0;
  1977  0CF1  0869                      movf    I2C2@i2c_data_p,w
  1978  0CF2  3E22                      addlw   34
  1979  0CF3  0086                      movwf   6
  1980  0CF4  3001                      movlw   1       ; select bank2/3
  1981  0CF5  0087                      movwf   7
  1982  0CF6  0181                      clrf    1
  1983                           
  1984                           ;I2C2.c: 85: i2c_data_p->buffer_in_write_ind = 0;
  1985  0CF7  0869                      movf    I2C2@i2c_data_p,w
  1986  0CF8  3E23                      addlw   35
  1987  0CF9  0086                      movwf   6
  1988  0CFA  3001                      movlw   1       ; select bank2/3
  1989  0CFB  0087                      movwf   7
  1990  0CFC  0181                      clrf    1
  1991                           
  1992                           ;I2C2.c: 88: i2c_data_p->operating_state = 0x5;
  1993  0CFD  3005                      movlw   5
  1994  0CFE  00A1                      movwf   ??_I2C2_Master_Recv
  1995  0CFF  0869                      movf    I2C2@i2c_data_p,w
  1996  0D00  3E47                      addlw   71
  1997  0D01  0086                      movwf   6
  1998  0D02  3001                      movlw   1       ; select bank2/3
  1999  0D03  0087                      movwf   7
  2000  0D04  0821                      movf    ??_I2C2_Master_Recv,w
  2001  0D05  0081                      movwf   1
  2002                           
  2003                           ;I2C2.c: 89: i2c_data_p->master_status = 0x21;
  2004  0D06  3021                      movlw   33
  2005  0D07  00A1                      movwf   ??_I2C2_Master_Recv
  2006  0D08  0869                      movf    I2C2@i2c_data_p,w
  2007  0D09  3E4A                      addlw   74
  2008  0D0A  0086                      movwf   6
  2009  0D0B  3001                      movlw   1       ; select bank2/3
  2010  0D0C  0087                      movwf   7
  2011  0D0D  0821                      movf    ??_I2C2_Master_Recv,w
  2012  0D0E  0081                      movwf   1
  2013                           
  2014                           ;I2C2.c: 92: SSP2CON2bits.SEN = 1;
  2015  0D0F  0024                      movlb   4       ; select bank4
  2016  0D10  141E                      bsf     30,0    ;volatile
  2017  0D11  0008                      return
  2018  0D12                     __end_of_I2C2_Master_Recv:     
  2019                           
  2020                                  psect   text4
  2021  0C4D                     __ptext4:      
  2022 ;; *************** function _MCP23009_Init *****************
  2023 ;; Defined at:
  2024 ;;               line 6 in file "MCP23009.c"
  2025 ;; Parameters:    Size  Location     Type
  2026 ;;               None
  2027 ;; Auto vars:     Size  Location     Type
  2028 ;;  buffer          8    9[BANK0 ] unsigned char [8]
  2029 ;;  result          1   17[BANK0 ] unsigned char 
  2030 ;; Return value:  Size  Location     Type
  2031 ;;               None               void
  2032 ;; Registers used:
  2033 ;;               wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack
  2034 ;; Tracked objects:
  2035 ;;               On entry : 0/0
  2036 ;;               On exit  : 0/0
  2037 ;;               Unchanged: 0/0
  2038 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  2039 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2040 ;;      Locals:         0       9       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2041 ;;      Temps:          0       2       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2042 ;;      Totals:         0      11       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2043 ;;Total ram usage:       11 bytes
  2044 ;; Hardware stack levels used:    1
  2045 ;; Hardware stack levels required when called:    5
  2046 ;; This function calls:
  2047 ;;               _I2C2_Master_Send
  2048 ;;               _I2C2_Get_Status
  2049 ;; This function is called by:
  2050 ;;               _main
  2051 ;; This function uses a non-reentrant model
  2052 ;;
  2053                           
  2054                           
  2055                           ;psect for function _MCP23009_Init
  2056  0C4D                     _MCP23009_Init:        
  2057                           
  2058                           ;MCP23009.c: 7: uint8_t buffer[8];
  2059                           ;MCP23009.c: 9: buffer[0] = 0x00;
  2060                           
  2061                           ;incstack = 0
  2062                           ; Regs used in _MCP23009_Init: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack]
  2063  0C4D  0020                      movlb   0        ; select bank0
  2064  0C4E  01A9                      clrf    MCP23009_Init@buffer
  2065                           
  2066                           ;MCP23009.c: 10: buffer[1] = 0xFF;
  2067  0C4F  30FF                      movlw   255
  2068  0C50  00A7                      movwf   ??_MCP23009_Init
  2069  0C51  0827                      movf    ??_MCP23009_Init,w
  2070  0C52  00AA                      movwf   MCP23009_Init@buffer+1
  2071                           
  2072                           ;MCP23009.c: 11: buffer[2] = 0xFF;
  2073  0C53  30FF                      movlw   255
  2074  0C54  00A7                      movwf   ??_MCP23009_Init
  2075  0C55  0827                      movf    ??_MCP23009_Init,w
  2076  0C56  00AB                      movwf   MCP23009_Init@buffer+2
  2077                           
  2078                           ;MCP23009.c: 12: buffer[3] = 0x00;
  2079  0C57  01AC                      clrf    MCP23009_Init@buffer+3
  2080                           
  2081                           ;MCP23009.c: 13: buffer[4] = 0x00;
  2082  0C58  01AD                      clrf    MCP23009_Init@buffer+4
  2083                           
  2084                           ;MCP23009.c: 14: buffer[5] = 0x00;
  2085  0C59  01AE                      clrf    MCP23009_Init@buffer+5
  2086                           
  2087                           ;MCP23009.c: 15: buffer[6] = 0x00;
  2088  0C5A  01AF                      clrf    MCP23009_Init@buffer+6
  2089                           
  2090                           ;MCP23009.c: 16: buffer[7] = 0xFF;
  2091  0C5B  30FF                      movlw   255
  2092  0C5C  00A7                      movwf   ??_MCP23009_Init
  2093  0C5D  0827                      movf    ??_MCP23009_Init,w
  2094  0C5E  00B0                      movwf   MCP23009_Init@buffer+7
  2095                           
  2096                           ;MCP23009.c: 18: I2C2_Master_Send(0x20, 8, buffer);
  2097  0C5F  3008                      movlw   8
  2098  0C60  00A7                      movwf   ??_MCP23009_Init
  2099  0C61  0827                      movf    ??_MCP23009_Init,w
  2100  0C62  00A0                      movwf   ?_I2C2_Master_Send
  2101  0C63  3029                      movlw   MCP23009_Init@buffer& (0+255)
  2102  0C64  00A8                      movwf   ??_MCP23009_Init+1
  2103  0C65  0828                      movf    ??_MCP23009_Init+1,w
  2104  0C66  00A1                      movwf   ?_I2C2_Master_Send+1
  2105  0C67  3020                      movlw   32
  2106  0C68  318D  25EC  318C          fcall   _I2C2_Master_Send
  2107  0C6B                     l2385: 
  2108                           ;MCP23009.c: 19: uint8_t result;
  2109                           ;MCP23009.c: 20: do {
  2110                           
  2111                           
  2112                           ;MCP23009.c: 21: result = I2C2_Get_Status();
  2113  0C6B  3187  27BD  318C          fcall   _I2C2_Get_Status
  2114  0C6E  0020                      movlb   0        ; select bank0
  2115  0C6F  00A7                      movwf   ??_MCP23009_Init
  2116  0C70  0827                      movf    ??_MCP23009_Init,w
  2117  0C71  00B1                      movwf   MCP23009_Init@result
  2118                           
  2119                           ;MCP23009.c: 22: } while (!result);
  2120  0C72  0831                      movf    MCP23009_Init@result,w
  2121  0C73  1D03                      skipz
  2122  0C74  0008                      return
  2123  0C75  2C6B                      goto    l2385
  2124  0C76                     __end_of_MCP23009_Init:        
  2125                           
  2126                                  psect   text5
  2127  074D                     __ptext5:      
  2128 ;; *************** function _TLC59116_Write_All *****************
  2129 ;; Defined at:
  2130 ;;               line 54 in file "TLC59116.c"
  2131 ;; Parameters:    Size  Location     Type
  2132 ;;  values          1    wreg     PTR unsigned char 
  2133 ;;                -> main@leds(16), 
  2134 ;; Auto vars:     Size  Location     Type
  2135 ;;  values          1   27[BANK0 ] PTR unsigned char 
  2136 ;;                -> main@leds(16), 
  2137 ;;  buffer         17    9[BANK0 ] unsigned char [17]
  2138 ;;  result          1   26[BANK0 ] unsigned char 
  2139 ;;  i               1    0        unsigned char 
  2140 ;; Return value:  Size  Location     Type
  2141 ;;               None               void
  2142 ;; Registers used:
  2143 ;;               wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack
  2144 ;; Tracked objects:
  2145 ;;               On entry : 0/0
  2146 ;;               On exit  : 0/0
  2147 ;;               Unchanged: 0/0
  2148 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  2149 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2150 ;;      Locals:         0      19       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2151 ;;      Temps:          0       2       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2152 ;;      Totals:         0      21       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2153 ;;Total ram usage:       21 bytes
  2154 ;; Hardware stack levels used:    1
  2155 ;; Hardware stack levels required when called:    5
  2156 ;; This function calls:
  2157 ;;               _I2C2_Master_Send
  2158 ;;               _I2C2_Get_Status
  2159 ;; This function is called by:
  2160 ;;               _main
  2161 ;; This function uses a non-reentrant model
  2162 ;;
  2163                           
  2164                           
  2165                           ;psect for function _TLC59116_Write_All
  2166  074D                     _TLC59116_Write_All:   
  2167                           
  2168                           ;incstack = 0
  2169                           ; Regs used in _TLC59116_Write_All: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack]
  2170                           ;TLC59116_Write_All@values stored from wreg
  2171  074D  0020                      movlb   0        ; select bank0
  2172  074E  00BB                      movwf   TLC59116_Write_All@values
  2173                           
  2174                           ;TLC59116.c: 55: uint8_t buffer[17];
  2175                           ;TLC59116.c: 56: uint8_t i;
  2176                           ;TLC59116.c: 58: buffer[0] = buffer[0] = 0x80 | 0x02;
  2177  074F  3082                      movlw   130
  2178  0750  00A9                      movwf   TLC59116_Write_All@buffer
  2179  0751  00A7                      movwf   ??_TLC59116_Write_All
  2180  0752  0827                      movf    ??_TLC59116_Write_All,w
  2181  0753  00A9                      movwf   TLC59116_Write_All@buffer
  2182                           
  2183                           ;TLC59116.c: 59: buffer[1] = values[0];
  2184  0754  083B                      movf    TLC59116_Write_All@values,w
  2185  0755  0086                      movwf   6
  2186  0756  0187                      clrf    7
  2187  0757  0801                      movf    1,w
  2188  0758  00A7                      movwf   ??_TLC59116_Write_All
  2189  0759  0827                      movf    ??_TLC59116_Write_All,w
  2190  075A  00AA                      movwf   TLC59116_Write_All@buffer+1
  2191                           
  2192                           ;TLC59116.c: 60: buffer[2] = values[1];
  2193  075B  083B                      movf    TLC59116_Write_All@values,w
  2194  075C  0086                      movwf   6
  2195  075D  0187                      clrf    7
  2196  075E  3F41                      moviw [1]fsr1
  2197  075F  00AB                      movwf   TLC59116_Write_All@buffer+2
  2198                           
  2199                           ;TLC59116.c: 61: buffer[3] = values[2];
  2200  0760  083B                      movf    TLC59116_Write_All@values,w
  2201  0761  0086                      movwf   6
  2202  0762  0187                      clrf    7
  2203  0763  3F42                      moviw [2]fsr1
  2204  0764  00AC                      movwf   TLC59116_Write_All@buffer+3
  2205                           
  2206                           ;TLC59116.c: 62: buffer[4] = values[3];
  2207  0765  083B                      movf    TLC59116_Write_All@values,w
  2208  0766  0086                      movwf   6
  2209  0767  0187                      clrf    7
  2210  0768  3F43                      moviw [3]fsr1
  2211  0769  00AD                      movwf   TLC59116_Write_All@buffer+4
  2212                           
  2213                           ;TLC59116.c: 63: buffer[5] = values[4];
  2214  076A  083B                      movf    TLC59116_Write_All@values,w
  2215  076B  0086                      movwf   6
  2216  076C  0187                      clrf    7
  2217  076D  3F44                      moviw [4]fsr1
  2218  076E  00AE                      movwf   TLC59116_Write_All@buffer+5
  2219                           
  2220                           ;TLC59116.c: 64: buffer[6] = values[5];
  2221  076F  083B                      movf    TLC59116_Write_All@values,w
  2222  0770  0086                      movwf   6
  2223  0771  0187                      clrf    7
  2224  0772  3F45                      moviw [5]fsr1
  2225  0773  00AF                      movwf   TLC59116_Write_All@buffer+6
  2226                           
  2227                           ;TLC59116.c: 65: buffer[7] = values[6];
  2228  0774  083B                      movf    TLC59116_Write_All@values,w
  2229  0775  0086                      movwf   6
  2230  0776  0187                      clrf    7
  2231  0777  3F46                      moviw [6]fsr1
  2232  0778  00B0                      movwf   TLC59116_Write_All@buffer+7
  2233                           
  2234                           ;TLC59116.c: 66: buffer[8] = values[7];
  2235  0779  083B                      movf    TLC59116_Write_All@values,w
  2236  077A  0086                      movwf   6
  2237  077B  0187                      clrf    7
  2238  077C  3F47                      moviw [7]fsr1
  2239  077D  00B1                      movwf   TLC59116_Write_All@buffer+8
  2240                           
  2241                           ;TLC59116.c: 67: buffer[9] = values[8];
  2242  077E  083B                      movf    TLC59116_Write_All@values,w
  2243  077F  0086                      movwf   6
  2244  0780  0187                      clrf    7
  2245  0781  3F48                      moviw [8]fsr1
  2246  0782  00B2                      movwf   TLC59116_Write_All@buffer+9
  2247                           
  2248                           ;TLC59116.c: 68: buffer[10] = values[9];
  2249  0783  083B                      movf    TLC59116_Write_All@values,w
  2250  0784  0086                      movwf   6
  2251  0785  0187                      clrf    7
  2252  0786  3F49                      moviw [9]fsr1
  2253  0787  00B3                      movwf   TLC59116_Write_All@buffer+10
  2254                           
  2255                           ;TLC59116.c: 69: buffer[11] = values[10];
  2256  0788  083B                      movf    TLC59116_Write_All@values,w
  2257  0789  0086                      movwf   6
  2258  078A  0187                      clrf    7
  2259  078B  3F4A                      moviw [10]fsr1
  2260  078C  00B4                      movwf   TLC59116_Write_All@buffer+11
  2261                           
  2262                           ;TLC59116.c: 70: buffer[12] = values[11];
  2263  078D  083B                      movf    TLC59116_Write_All@values,w
  2264  078E  0086                      movwf   6
  2265  078F  0187                      clrf    7
  2266  0790  3F4B                      moviw [11]fsr1
  2267  0791  00B5                      movwf   TLC59116_Write_All@buffer+12
  2268                           
  2269                           ;TLC59116.c: 71: buffer[13] = values[12];
  2270  0792  083B                      movf    TLC59116_Write_All@values,w
  2271  0793  0086                      movwf   6
  2272  0794  0187                      clrf    7
  2273  0795  3F4C                      moviw [12]fsr1
  2274  0796  00B6                      movwf   TLC59116_Write_All@buffer+13
  2275                           
  2276                           ;TLC59116.c: 72: buffer[14] = values[13];
  2277  0797  083B                      movf    TLC59116_Write_All@values,w
  2278  0798  0086                      movwf   6
  2279  0799  0187                      clrf    7
  2280  079A  3F4D                      moviw [13]fsr1
  2281  079B  00B7                      movwf   TLC59116_Write_All@buffer+14
  2282                           
  2283                           ;TLC59116.c: 73: buffer[15] = values[14];
  2284  079C  083B                      movf    TLC59116_Write_All@values,w
  2285  079D  0086                      movwf   6
  2286  079E  0187                      clrf    7
  2287  079F  3F4E                      moviw [14]fsr1
  2288  07A0  00B8                      movwf   TLC59116_Write_All@buffer+15
  2289                           
  2290                           ;TLC59116.c: 74: buffer[16] = values[15];
  2291  07A1  083B                      movf    TLC59116_Write_All@values,w
  2292  07A2  0086                      movwf   6
  2293  07A3  0187                      clrf    7
  2294  07A4  3F4F                      moviw [15]fsr1
  2295  07A5  00B9                      movwf   TLC59116_Write_All@buffer+16
  2296                           
  2297                           ;TLC59116.c: 76: I2C2_Master_Send(0x60, 17, buffer);
  2298  07A6  3011                      movlw   17
  2299  07A7  00A7                      movwf   ??_TLC59116_Write_All
  2300  07A8  0827                      movf    ??_TLC59116_Write_All,w
  2301  07A9  00A0                      movwf   ?_I2C2_Master_Send
  2302  07AA  3029                      movlw   TLC59116_Write_All@buffer& (0+255)
  2303  07AB  00A8                      movwf   ??_TLC59116_Write_All+1
  2304  07AC  0828                      movf    ??_TLC59116_Write_All+1,w
  2305  07AD  00A1                      movwf   ?_I2C2_Master_Send+1
  2306  07AE  3060                      movlw   96
  2307  07AF  318D  25EC  3187          fcall   _I2C2_Master_Send
  2308  07B2                     l2373: 
  2309                           ;TLC59116.c: 77: uint8_t result;
  2310                           ;TLC59116.c: 78: do {
  2311                           
  2312                           
  2313                           ;TLC59116.c: 79: result = I2C2_Get_Status();
  2314  07B2  3187  27BD  3187          fcall   _I2C2_Get_Status
  2315  07B5  0020                      movlb   0        ; select bank0
  2316  07B6  00A7                      movwf   ??_TLC59116_Write_All
  2317  07B7  0827                      movf    ??_TLC59116_Write_All,w
  2318  07B8  00BA                      movwf   TLC59116_Write_All@result
  2319                           
  2320                           ;TLC59116.c: 80: } while (!result);
  2321  07B9  083A                      movf    TLC59116_Write_All@result,w
  2322  07BA  1D03                      skipz
  2323  07BB  0008                      return
  2324  07BC  2FB2                      goto    l2373
  2325  07BD                     __end_of_TLC59116_Write_All:   
  2326                           
  2327                                  psect   text6
  2328  0D12                     __ptext6:      
  2329 ;; *************** function _TLC59116_Init *****************
  2330 ;; Defined at:
  2331 ;;               line 5 in file "TLC59116.c"
  2332 ;; Parameters:    Size  Location     Type
  2333 ;;               None
  2334 ;; Auto vars:     Size  Location     Type
  2335 ;;  buffer         25    9[BANK0 ] unsigned char [25]
  2336 ;;  result          1   34[BANK0 ] unsigned char 
  2337 ;; Return value:  Size  Location     Type
  2338 ;;               None               void
  2339 ;; Registers used:
  2340 ;;               wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack
  2341 ;; Tracked objects:
  2342 ;;               On entry : 0/0
  2343 ;;               On exit  : 0/0
  2344 ;;               Unchanged: 0/0
  2345 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  2346 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2347 ;;      Locals:         0      26       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2348 ;;      Temps:          0       2       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2349 ;;      Totals:         0      28       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2350 ;;Total ram usage:       28 bytes
  2351 ;; Hardware stack levels used:    1
  2352 ;; Hardware stack levels required when called:    5
  2353 ;; This function calls:
  2354 ;;               _I2C2_Master_Send
  2355 ;;               _I2C2_Get_Status
  2356 ;; This function is called by:
  2357 ;;               _main
  2358 ;; This function uses a non-reentrant model
  2359 ;;
  2360                           
  2361                           
  2362                           ;psect for function _TLC59116_Init
  2363  0D12                     _TLC59116_Init:        
  2364                           
  2365                           ;TLC59116.c: 6: uint8_t buffer[25];
  2366                           ;TLC59116.c: 8: buffer[0] = 0x80 | 0x00;
  2367                           
  2368                           ;incstack = 0
  2369                           ; Regs used in _TLC59116_Init: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack]
  2370  0D12  3080                      movlw   128
  2371  0D13  0020                      movlb   0        ; select bank0
  2372  0D14  00A7                      movwf   ??_TLC59116_Init
  2373  0D15  0827                      movf    ??_TLC59116_Init,w
  2374  0D16  00A9                      movwf   TLC59116_Init@buffer
  2375                           
  2376                           ;TLC59116.c: 9: buffer[1] = 0x80 | 0x00;
  2377  0D17  3080                      movlw   128
  2378  0D18  00A7                      movwf   ??_TLC59116_Init
  2379  0D19  0827                      movf    ??_TLC59116_Init,w
  2380  0D1A  00AA                      movwf   TLC59116_Init@buffer+1
  2381                           
  2382                           ;TLC59116.c: 10: buffer[2] = 0x00;
  2383  0D1B  01AB                      clrf    TLC59116_Init@buffer+2
  2384                           
  2385                           ;TLC59116.c: 11: buffer[3] = 0x00;
  2386  0D1C  01AC                      clrf    TLC59116_Init@buffer+3
  2387                           
  2388                           ;TLC59116.c: 12: buffer[4] = 0x00;
  2389  0D1D  01AD                      clrf    TLC59116_Init@buffer+4
  2390                           
  2391                           ;TLC59116.c: 13: buffer[5] = 0x00;
  2392  0D1E  01AE                      clrf    TLC59116_Init@buffer+5
  2393                           
  2394                           ;TLC59116.c: 14: buffer[6] = 0x00;
  2395  0D1F  01AF                      clrf    TLC59116_Init@buffer+6
  2396                           
  2397                           ;TLC59116.c: 15: buffer[7] = 0x00;
  2398  0D20  01B0                      clrf    TLC59116_Init@buffer+7
  2399                           
  2400                           ;TLC59116.c: 16: buffer[8] = 0x00;
  2401  0D21  01B1                      clrf    TLC59116_Init@buffer+8
  2402                           
  2403                           ;TLC59116.c: 17: buffer[9] = 0x00;
  2404  0D22  01B2                      clrf    TLC59116_Init@buffer+9
  2405                           
  2406                           ;TLC59116.c: 18: buffer[10] = 0x00;
  2407  0D23  01B3                      clrf    TLC59116_Init@buffer+10
  2408                           
  2409                           ;TLC59116.c: 19: buffer[11] = 0x00;
  2410  0D24  01B4                      clrf    TLC59116_Init@buffer+11
  2411                           
  2412                           ;TLC59116.c: 20: buffer[12] = 0x00;
  2413  0D25  01B5                      clrf    TLC59116_Init@buffer+12
  2414                           
  2415                           ;TLC59116.c: 21: buffer[13] = 0x00;
  2416  0D26  01B6                      clrf    TLC59116_Init@buffer+13
  2417                           
  2418                           ;TLC59116.c: 22: buffer[14] = 0x00;
  2419  0D27  01B7                      clrf    TLC59116_Init@buffer+14
  2420                           
  2421                           ;TLC59116.c: 23: buffer[15] = 0x00;
  2422  0D28  01B8                      clrf    TLC59116_Init@buffer+15
  2423                           
  2424                           ;TLC59116.c: 24: buffer[16] = 0x00;
  2425  0D29  01B9                      clrf    TLC59116_Init@buffer+16
  2426                           
  2427                           ;TLC59116.c: 25: buffer[17] = 0x00;
  2428  0D2A  01BA                      clrf    TLC59116_Init@buffer+17
  2429                           
  2430                           ;TLC59116.c: 26: buffer[18] = 0x00;
  2431  0D2B  01BB                      clrf    TLC59116_Init@buffer+18
  2432                           
  2433                           ;TLC59116.c: 27: buffer[19] = 0xFF;
  2434  0D2C  30FF                      movlw   255
  2435  0D2D  00A7                      movwf   ??_TLC59116_Init
  2436  0D2E  0827                      movf    ??_TLC59116_Init,w
  2437  0D2F  00BC                      movwf   TLC59116_Init@buffer+19
  2438                           
  2439                           ;TLC59116.c: 28: buffer[20] = 0x00;
  2440  0D30  01BD                      clrf    TLC59116_Init@buffer+20
  2441                           
  2442                           ;TLC59116.c: 29: buffer[21] = 0xFF;
  2443  0D31  30FF                      movlw   255
  2444  0D32  00A7                      movwf   ??_TLC59116_Init
  2445  0D33  0827                      movf    ??_TLC59116_Init,w
  2446  0D34  00BE                      movwf   TLC59116_Init@buffer+21
  2447                           
  2448                           ;TLC59116.c: 30: buffer[22] = 0xFF;
  2449  0D35  30FF                      movlw   255
  2450  0D36  00A7                      movwf   ??_TLC59116_Init
  2451  0D37  0827                      movf    ??_TLC59116_Init,w
  2452  0D38  00BF                      movwf   TLC59116_Init@buffer+22
  2453                           
  2454                           ;TLC59116.c: 31: buffer[23] = 0xFF;
  2455  0D39  30FF                      movlw   255
  2456  0D3A  00A7                      movwf   ??_TLC59116_Init
  2457  0D3B  0827                      movf    ??_TLC59116_Init,w
  2458  0D3C  00C0                      movwf   TLC59116_Init@buffer+23
  2459                           
  2460                           ;TLC59116.c: 32: buffer[24] = 0xFF;
  2461  0D3D  30FF                      movlw   255
  2462  0D3E  00A7                      movwf   ??_TLC59116_Init
  2463  0D3F  0827                      movf    ??_TLC59116_Init,w
  2464  0D40  00C1                      movwf   TLC59116_Init@buffer+24
  2465                           
  2466                           ;TLC59116.c: 34: I2C2_Master_Send(0x60, 25, buffer);
  2467  0D41  3019                      movlw   25
  2468  0D42  00A7                      movwf   ??_TLC59116_Init
  2469  0D43  0827                      movf    ??_TLC59116_Init,w
  2470  0D44  00A0                      movwf   ?_I2C2_Master_Send
  2471  0D45  3029                      movlw   TLC59116_Init@buffer& (0+255)
  2472  0D46  00A8                      movwf   ??_TLC59116_Init+1
  2473  0D47  0828                      movf    ??_TLC59116_Init+1,w
  2474  0D48  00A1                      movwf   ?_I2C2_Master_Send+1
  2475  0D49  3060                      movlw   96
  2476  0D4A  318D  25EC  318D          fcall   _I2C2_Master_Send
  2477  0D4D                     l2333: 
  2478                           ;TLC59116.c: 35: uint8_t result;
  2479                           ;TLC59116.c: 36: do {
  2480                           
  2481                           
  2482                           ;TLC59116.c: 37: result = I2C2_Get_Status();
  2483  0D4D  3187  27BD  318D          fcall   _I2C2_Get_Status
  2484  0D50  0020                      movlb   0        ; select bank0
  2485  0D51  00A7                      movwf   ??_TLC59116_Init
  2486  0D52  0827                      movf    ??_TLC59116_Init,w
  2487  0D53  00C2                      movwf   TLC59116_Init@result
  2488                           
  2489                           ;TLC59116.c: 38: } while (!result);
  2490  0D54  0842                      movf    TLC59116_Init@result,w
  2491  0D55  1D03                      skipz
  2492  0D56  0008                      return
  2493  0D57  2D4D                      goto    l2333
  2494  0D58                     __end_of_TLC59116_Init:        
  2495                           
  2496                                  psect   text7
  2497  07BD                     __ptext7:      
  2498 ;; *************** function _I2C2_Get_Status *****************
  2499 ;; Defined at:
  2500 ;;               line 485 in file "I2C2.c"
  2501 ;; Parameters:    Size  Location     Type
  2502 ;;               None
  2503 ;; Auto vars:     Size  Location     Type
  2504 ;;               None
  2505 ;; Return value:  Size  Location     Type
  2506 ;;                  1    wreg      unsigned char 
  2507 ;; Registers used:
  2508 ;;               wreg, fsr1l, fsr1h, status,2, status,0
  2509 ;; Tracked objects:
  2510 ;;               On entry : 0/0
  2511 ;;               On exit  : 0/0
  2512 ;;               Unchanged: 0/0
  2513 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  2514 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2515 ;;      Locals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2516 ;;      Temps:          0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2517 ;;      Totals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2518 ;;Total ram usage:        0 bytes
  2519 ;; Hardware stack levels used:    1
  2520 ;; Hardware stack levels required when called:    4
  2521 ;; This function calls:
  2522 ;;               Nothing
  2523 ;; This function is called by:
  2524 ;;               _TLC59116_Init
  2525 ;;               _TLC59116_Write_All
  2526 ;;               _MCP23009_Init
  2527 ;;               _MCP23009_Query
  2528 ;;               _TLC59116_Write
  2529 ;;               _TLC59116_Write_BC
  2530 ;; This function uses a non-reentrant model
  2531 ;;
  2532                           
  2533                           
  2534                           ;psect for function _I2C2_Get_Status
  2535  07BD                     _I2C2_Get_Status:      
  2536                           
  2537                           ;I2C2.c: 486: if (i2c_data_p->operating_mode == 0x11) {
  2538                           
  2539                           ;incstack = 0
  2540                           ; Regs used in _I2C2_Get_Status: [wreg+fsr1l+fsr1h+status,2+status,0]
  2541  07BD  0020                      movlb   0        ; select bank0
  2542  07BE  0869                      movf    I2C2@i2c_data_p,w
  2543  07BF  3E46                      addlw   70
  2544  07C0  0086                      movwf   6
  2545  07C1  3001                      movlw   1       ; select bank2/3
  2546  07C2  0087                      movwf   7
  2547  07C3  0801                      movf    1,w
  2548  07C4  3A11                      xorlw   17
  2549  07C5  1D03                      skipz
  2550  07C6  2FE1                      goto    l2885
  2551                           
  2552                           ;I2C2.c: 487: if (i2c_data_p->master_status != 0x23 || i2c_data_p->buffer_in_len == 0) {
  2553  07C7  0869                      movf    I2C2@i2c_data_p,w
  2554  07C8  3E4A                      addlw   74
  2555  07C9  0086                      movwf   6
  2556  07CA  3001                      movlw   1       ; select bank2/3
  2557  07CB  0087                      movwf   7
  2558  07CC  0801                      movf    1,w
  2559  07CD  3A23                      xorlw   35
  2560  07CE  1D03                      skipz
  2561  07CF  2FD8                      goto    l2875
  2562  07D0  0869                      movf    I2C2@i2c_data_p,w
  2563  07D1  3E20                      addlw   32
  2564  07D2  0086                      movwf   6
  2565  07D3  3001                      movlw   1       ; select bank2/3
  2566  07D4  0087                      movwf   7
  2567  07D5  0881                      movf    1,f
  2568  07D6  1D03                      skipz
  2569  07D7  2FDA                      goto    l2881
  2570  07D8                     l2875: 
  2571                           
  2572                           ;I2C2.c: 488: return 0;
  2573  07D8  3000                      movlw   0
  2574                           
  2575                           ;I2C2.c: 489: } else {
  2576  07D9  0008                      return
  2577  07DA                     l2881: 
  2578                           
  2579                           ;I2C2.c: 490: return i2c_data_p->return_status;
  2580  07DA  0869                      movf    I2C2@i2c_data_p,w
  2581  07DB  3E48                      addlw   72
  2582  07DC  0086                      movwf   6
  2583  07DD  3001                      movlw   1       ; select bank2/3
  2584  07DE  0087                      movwf   7
  2585  07DF  0801                      movf    1,w
  2586                           
  2587                           ;I2C2.c: 491: }
  2588                           ;I2C2.c: 492: } else {
  2589  07E0  0008                      return
  2590  07E1                     l2885: 
  2591                           
  2592                           ;I2C2.c: 493: if (i2c_data_p->operating_state != 0x1 || i2c_data_p->buffer_in_len == 0) {
  2593  07E1  0869                      movf    I2C2@i2c_data_p,w
  2594  07E2  3E47                      addlw   71
  2595  07E3  0086                      movwf   6
  2596  07E4  3001                      movlw   1       ; select bank2/3
  2597  07E5  0087                      movwf   7
  2598  07E6  0801                      movf    1,w
  2599  07E7  3A01                      xorlw   1
  2600  07E8  1D03                      skipz
  2601  07E9  2FF2                      goto    l2889
  2602  07EA  0869                      movf    I2C2@i2c_data_p,w
  2603  07EB  3E20                      addlw   32
  2604  07EC  0086                      movwf   6
  2605  07ED  3001                      movlw   1       ; select bank2/3
  2606  07EE  0087                      movwf   7
  2607  07EF  0881                      movf    1,f
  2608  07F0  1D03                      skipz
  2609  07F1  2FF4                      goto    l2895
  2610  07F2                     l2889: 
  2611                           
  2612                           ;I2C2.c: 494: return 0;
  2613  07F2  3000                      movlw   0
  2614                           
  2615                           ;I2C2.c: 495: } else {
  2616  07F3  0008                      return
  2617  07F4                     l2895: 
  2618                           
  2619                           ;I2C2.c: 496: return i2c_data_p->return_status;
  2620  07F4  0869                      movf    I2C2@i2c_data_p,w
  2621  07F5  3E48                      addlw   72
  2622  07F6  0086                      movwf   6
  2623  07F7  3001                      movlw   1       ; select bank2/3
  2624  07F8  0087                      movwf   7
  2625  07F9  0801                      movf    1,w
  2626  07FA  0008                      return
  2627  07FB                     __end_of_I2C2_Get_Status:      
  2628                           
  2629                                  psect   text8
  2630  0DEC                     __ptext8:      
  2631 ;; *************** function _I2C2_Master_Send *****************
  2632 ;; Defined at:
  2633 ;;               line 54 in file "I2C2.c"
  2634 ;; Parameters:    Size  Location     Type
  2635 ;;  address         1    wreg     unsigned char 
  2636 ;;  length          1    0[BANK0 ] unsigned char 
  2637 ;;  msg             1    1[BANK0 ] PTR unsigned char 
  2638 ;;                -> MCP23009_Query@buffer(2), MCP23009_Init@buffer(8), TLC59116_Write_BC@buffer(2), TLC59116_Write_All@buffer(17), 
  2639 ;;                -> TLC59116_Write@buffer(2), TLC59116_Init@buffer(25), I2C2_Master_Restart@c(1), 
  2640 ;; Auto vars:     Size  Location     Type
  2641 ;;  address         1    5[BANK0 ] unsigned char 
  2642 ;;  i               1    6[BANK0 ] unsigned char 
  2643 ;; Return value:  Size  Location     Type
  2644 ;;               None               void
  2645 ;; Registers used:
  2646 ;;               wreg, fsr1l, fsr1h, status,2, status,0
  2647 ;; Tracked objects:
  2648 ;;               On entry : 0/0
  2649 ;;               On exit  : 0/0
  2650 ;;               Unchanged: 0/0
  2651 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  2652 ;;      Params:         0       2       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2653 ;;      Locals:         0       2       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2654 ;;      Temps:          0       3       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2655 ;;      Totals:         0       7       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2656 ;;Total ram usage:        7 bytes
  2657 ;; Hardware stack levels used:    1
  2658 ;; Hardware stack levels required when called:    4
  2659 ;; This function calls:
  2660 ;;               Nothing
  2661 ;; This function is called by:
  2662 ;;               _TLC59116_Init
  2663 ;;               _TLC59116_Write_All
  2664 ;;               _MCP23009_Init
  2665 ;;               _MCP23009_Query
  2666 ;;               _I2C2_Master_Restart
  2667 ;;               _TLC59116_Write
  2668 ;;               _TLC59116_Write_BC
  2669 ;; This function uses a non-reentrant model
  2670 ;;
  2671                           
  2672                           
  2673                           ;psect for function _I2C2_Master_Send
  2674  0DEC                     _I2C2_Master_Send:     
  2675                           
  2676                           ;incstack = 0
  2677                           ; Regs used in _I2C2_Master_Send: [wreg+fsr1l+fsr1h+status,2+status,0]
  2678                           ;I2C2_Master_Send@address stored from wreg
  2679  0DEC  0020                      movlb   0        ; select bank0
  2680  0DED  00A5                      movwf   I2C2_Master_Send@address
  2681                           
  2682                           ;I2C2.c: 55: uint8_t i;
  2683                           ;I2C2.c: 56: if (length == 0)
  2684  0DEE  08A0                      movf    I2C2_Master_Send@length,f
  2685  0DEF  1903                      btfsc   3,2
  2686  0DF0  0008                      return
  2687                           
  2688                           ;I2C2.c: 60: for (i = 0; i < length; i++) {
  2689                           
  2690                           ;I2C2.c: 57: return;
  2691  0DF1  01A6                      clrf    I2C2_Master_Send@i
  2692  0DF2                     l2661: 
  2693  0DF2  0820                      movf    I2C2_Master_Send@length,w
  2694  0DF3  0226                      subwf   I2C2_Master_Send@i,w
  2695  0DF4  1803                      btfsc   3,0
  2696  0DF5  2E0C                      goto    l2663
  2697                           
  2698                           ;I2C2.c: 61: i2c_data_p->buffer_in[i] = msg[i];
  2699  0DF6  0826                      movf    I2C2_Master_Send@i,w
  2700  0DF7  0721                      addwf   I2C2_Master_Send@msg,w
  2701  0DF8  00A2                      movwf   ??_I2C2_Master_Send
  2702  0DF9  0822                      movf    ??_I2C2_Master_Send,w
  2703  0DFA  0086                      movwf   6
  2704  0DFB  0187                      clrf    7
  2705  0DFC  0801                      movf    1,w
  2706  0DFD  00A3                      movwf   ??_I2C2_Master_Send+1
  2707  0DFE  0826                      movf    I2C2_Master_Send@i,w
  2708  0DFF  0769                      addwf   I2C2@i2c_data_p,w
  2709  0E00  00A4                      movwf   ??_I2C2_Master_Send+2
  2710  0E01  0824                      movf    ??_I2C2_Master_Send+2,w
  2711  0E02  0086                      movwf   6
  2712  0E03  3001                      movlw   1       ; select bank2/3
  2713  0E04  0087                      movwf   7
  2714  0E05  0823                      movf    ??_I2C2_Master_Send+1,w
  2715  0E06  0081                      movwf   1
  2716  0E07  3001                      movlw   1
  2717  0E08  00A2                      movwf   ??_I2C2_Master_Send
  2718  0E09  0822                      movf    ??_I2C2_Master_Send,w
  2719  0E0A  07A6                      addwf   I2C2_Master_Send@i,f
  2720  0E0B  2DF2                      goto    l2661
  2721  0E0C                     l2663: 
  2722                           
  2723                           ;I2C2.c: 62: }
  2724                           ;I2C2.c: 63: i2c_data_p->buffer_in_len = length;
  2725  0E0C  0820                      movf    I2C2_Master_Send@length,w
  2726  0E0D  00A2                      movwf   ??_I2C2_Master_Send
  2727  0E0E  0869                      movf    I2C2@i2c_data_p,w
  2728  0E0F  3E20                      addlw   32
  2729  0E10  0086                      movwf   6
  2730  0E11  3001                      movlw   1       ; select bank2/3
  2731  0E12  0087                      movwf   7
  2732  0E13  0822                      movf    ??_I2C2_Master_Send,w
  2733  0E14  0081                      movwf   1
  2734                           
  2735                           ;I2C2.c: 64: i2c_data_p->master_dest_addr = address;
  2736  0E15  0825                      movf    I2C2_Master_Send@address,w
  2737  0E16  00A2                      movwf   ??_I2C2_Master_Send
  2738  0E17  0869                      movf    I2C2@i2c_data_p,w
  2739  0E18  3E49                      addlw   73
  2740  0E19  0086                      movwf   6
  2741  0E1A  3001                      movlw   1       ; select bank2/3
  2742  0E1B  0087                      movwf   7
  2743  0E1C  0822                      movf    ??_I2C2_Master_Send,w
  2744  0E1D  0081                      movwf   1
  2745                           
  2746                           ;I2C2.c: 65: i2c_data_p->buffer_in_read_ind = 0;
  2747  0E1E  0869                      movf    I2C2@i2c_data_p,w
  2748  0E1F  3E22                      addlw   34
  2749  0E20  0086                      movwf   6
  2750  0E21  3001                      movlw   1       ; select bank2/3
  2751  0E22  0087                      movwf   7
  2752  0E23  0181                      clrf    1
  2753                           
  2754                           ;I2C2.c: 66: i2c_data_p->buffer_in_write_ind = 0;
  2755  0E24  0869                      movf    I2C2@i2c_data_p,w
  2756  0E25  3E23                      addlw   35
  2757  0E26  0086                      movwf   6
  2758  0E27  3001                      movlw   1       ; select bank2/3
  2759  0E28  0087                      movwf   7
  2760  0E29  0181                      clrf    1
  2761                           
  2762                           ;I2C2.c: 69: i2c_data_p->operating_state = 0x5;
  2763  0E2A  3005                      movlw   5
  2764  0E2B  00A2                      movwf   ??_I2C2_Master_Send
  2765  0E2C  0869                      movf    I2C2@i2c_data_p,w
  2766  0E2D  3E47                      addlw   71
  2767  0E2E  0086                      movwf   6
  2768  0E2F  3001                      movlw   1       ; select bank2/3
  2769  0E30  0087                      movwf   7
  2770  0E31  0822                      movf    ??_I2C2_Master_Send,w
  2771  0E32  0081                      movwf   1
  2772                           
  2773                           ;I2C2.c: 70: i2c_data_p->master_status = 0x20;
  2774  0E33  3020                      movlw   32
  2775  0E34  00A2                      movwf   ??_I2C2_Master_Send
  2776  0E35  0869                      movf    I2C2@i2c_data_p,w
  2777  0E36  3E4A                      addlw   74
  2778  0E37  0086                      movwf   6
  2779  0E38  3001                      movlw   1       ; select bank2/3
  2780  0E39  0087                      movwf   7
  2781  0E3A  0822                      movf    ??_I2C2_Master_Send,w
  2782  0E3B  0081                      movwf   1
  2783                           
  2784                           ;I2C2.c: 73: SSP2CON2bits.SEN = 1;
  2785  0E3C  0024                      movlb   4       ; select bank4
  2786  0E3D  141E                      bsf     30,0    ;volatile
  2787  0E3E  0008                      return
  2788  0E3F                     __end_of_I2C2_Master_Send:     
  2789                           
  2790                                  psect   text9
  2791  07FB                     __ptext9:      
  2792 ;; *************** function _Interrupt_Enable *****************
  2793 ;; Defined at:
  2794 ;;               line 10 in file "INTERRUPTS.c"
  2795 ;; Parameters:    Size  Location     Type
  2796 ;;               None
  2797 ;; Auto vars:     Size  Location     Type
  2798 ;;               None
  2799 ;; Return value:  Size  Location     Type
  2800 ;;               None               void
  2801 ;; Registers used:
  2802 ;;               None
  2803 ;; Tracked objects:
  2804 ;;               On entry : 0/0
  2805 ;;               On exit  : 0/0
  2806 ;;               Unchanged: 0/0
  2807 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  2808 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2809 ;;      Locals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2810 ;;      Temps:          0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2811 ;;      Totals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2812 ;;Total ram usage:        0 bytes
  2813 ;; Hardware stack levels used:    1
  2814 ;; Hardware stack levels required when called:    4
  2815 ;; This function calls:
  2816 ;;               Nothing
  2817 ;; This function is called by:
  2818 ;;               _main
  2819 ;; This function uses a non-reentrant model
  2820 ;;
  2821                           
  2822                           
  2823                           ;psect for function _Interrupt_Enable
  2824  07FB                     _Interrupt_Enable:     
  2825                           
  2826                           ;INTERRUPTS.c: 12: INTCONbits.PEIE = 1;
  2827                           
  2828                           ;incstack = 0
  2829                           ; Regs used in _Interrupt_Enable: []
  2830  07FB  170B                      bsf     11,6    ;volatile
  2831                           
  2832                           ;INTERRUPTS.c: 13: INTCONbits.GIE = 1;
  2833  07FC  178B                      bsf     11,7    ;volatile
  2834  07FD  0008                      return
  2835  07FE                     __end_of_Interrupt_Enable:     
  2836                           
  2837                                  psect   text10
  2838  07FE                     __ptext10:     
  2839 ;; *************** function _Interrupt_Init *****************
  2840 ;; Defined at:
  2841 ;;               line 6 in file "INTERRUPTS.c"
  2842 ;; Parameters:    Size  Location     Type
  2843 ;;               None
  2844 ;; Auto vars:     Size  Location     Type
  2845 ;;               None
  2846 ;; Return value:  Size  Location     Type
  2847 ;;               None               void
  2848 ;; Registers used:
  2849 ;;               None
  2850 ;; Tracked objects:
  2851 ;;               On entry : 0/0
  2852 ;;               On exit  : 0/0
  2853 ;;               Unchanged: 0/0
  2854 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  2855 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2856 ;;      Locals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2857 ;;      Temps:          0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2858 ;;      Totals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2859 ;;Total ram usage:        0 bytes
  2860 ;; Hardware stack levels used:    1
  2861 ;; Hardware stack levels required when called:    4
  2862 ;; This function calls:
  2863 ;;               Nothing
  2864 ;; This function is called by:
  2865 ;;               _main
  2866 ;; This function uses a non-reentrant model
  2867 ;;
  2868                           
  2869                           
  2870                           ;psect for function _Interrupt_Init
  2871  07FE                     _Interrupt_Init:       
  2872                           
  2873                           ;incstack = 0
  2874                           ; Regs used in _Interrupt_Init: []
  2875  07FE  0008                      return
  2876  07FF                     __end_of_Interrupt_Init:       
  2877                           
  2878                                  psect   text11
  2879  0C2B                     __ptext11:     
  2880 ;; *************** function _I2C2_Configure_Master *****************
  2881 ;; Defined at:
  2882 ;;               line 34 in file "I2C2.c"
  2883 ;; Parameters:    Size  Location     Type
  2884 ;;  speed           1    wreg     unsigned char 
  2885 ;; Auto vars:     Size  Location     Type
  2886 ;;  speed           1    1[BANK0 ] unsigned char 
  2887 ;; Return value:  Size  Location     Type
  2888 ;;               None               void
  2889 ;; Registers used:
  2890 ;;               wreg, fsr1l, fsr1h, status,2, status,0
  2891 ;; Tracked objects:
  2892 ;;               On entry : 0/0
  2893 ;;               On exit  : 0/0
  2894 ;;               Unchanged: 0/0
  2895 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  2896 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2897 ;;      Locals:         0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2898 ;;      Temps:          0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2899 ;;      Totals:         0       2       0       0       0       0       0       0       0       0       0       0       
      +0       0
  2900 ;;Total ram usage:        2 bytes
  2901 ;; Hardware stack levels used:    1
  2902 ;; Hardware stack levels required when called:    4
  2903 ;; This function calls:
  2904 ;;               Nothing
  2905 ;; This function is called by:
  2906 ;;               _main
  2907 ;; This function uses a non-reentrant model
  2908 ;;
  2909                           
  2910                           
  2911                           ;psect for function _I2C2_Configure_Master
  2912  0C2B                     _I2C2_Configure_Master:        
  2913                           
  2914                           ;incstack = 0
  2915                           ; Regs used in _I2C2_Configure_Master: [wreg+fsr1l+fsr1h+status,2+status,0]
  2916                           ;I2C2_Configure_Master@speed stored from wreg
  2917  0C2B  0020                      movlb   0        ; select bank0
  2918  0C2C  00A1                      movwf   I2C2_Configure_Master@speed
  2919                           
  2920                           ;I2C2.c: 35: i2c_data_p->operating_mode = 0x11;
  2921  0C2D  3011                      movlw   17
  2922  0C2E  00A0                      movwf   ??_I2C2_Configure_Master
  2923  0C2F  0869                      movf    I2C2@i2c_data_p,w
  2924  0C30  3E46                      addlw   70
  2925  0C31  0086                      movwf   6
  2926  0C32  3001                      movlw   1       ; select bank2/3
  2927  0C33  0087                      movwf   7
  2928  0C34  0820                      movf    ??_I2C2_Configure_Master,w
  2929  0C35  0081                      movwf   1
  2930                           
  2931                           ;I2C2.c: 37: TRISBbits.TRISB7 = 1;
  2932  0C36  0021                      movlb   1       ; select bank1
  2933  0C37  178D                      bsf     13,7    ;volatile
  2934                           
  2935                           ;I2C2.c: 38: TRISBbits.TRISB5 = 1;
  2936  0C38  168D                      bsf     13,5    ;volatile
  2937                           
  2938                           ;I2C2.c: 40: SSP2STAT = 0x0;
  2939  0C39  0024                      movlb   4       ; select bank4
  2940  0C3A  019C                      clrf    28      ;volatile
  2941                           
  2942                           ;I2C2.c: 41: SSP2CON1 = 0x0;
  2943  0C3B  019D                      clrf    29      ;volatile
  2944                           
  2945                           ;I2C2.c: 42: SSP2CON2 = 0x0;
  2946  0C3C  019E                      clrf    30      ;volatile
  2947                           
  2948                           ;I2C2.c: 43: SSP2CON1bits.SSPM = 0x8;
  2949  0C3D  081D                      movf    29,w    ;volatile
  2950  0C3E  39F0                      andlw   -16
  2951  0C3F  3808                      iorlw   8
  2952  0C40  009D                      movwf   29      ;volatile
  2953                           
  2954                           ;I2C2.c: 44: if (!speed) {
  2955  0C41  0020                      movlb   0        ; select bank0
  2956  0C42  08A1                      movf    I2C2_Configure_Master@speed,f
  2957  0C43  1D03                      skipz
  2958  0C44  2C47                      goto    l2277
  2959                           
  2960                           ;I2C2.c: 45: SSP2ADD = 0x13;
  2961  0C45  3013                      movlw   19
  2962  0C46  2C48                      goto    L1
  2963  0C47                     l2277: 
  2964                           ;I2C2.c: 46: } else {
  2965                           
  2966                           
  2967                           ;I2C2.c: 47: SSP2ADD = 0x4F;
  2968  0C47  304F                      movlw   79
  2969  0C48                     L1:    
  2970  0C48  0024                      movlb   4       ; select bank4
  2971  0C49  009A                      movwf   26      ;volatile
  2972                           
  2973                           ;I2C2.c: 48: }
  2974                           ;I2C2.c: 49: SSP2STATbits.SMP = 1;
  2975  0C4A  179C                      bsf     28,7    ;volatile
  2976                           
  2977                           ;I2C2.c: 50: SSP2CON1bits.SSPEN = 1;
  2978  0C4B  169D                      bsf     29,5    ;volatile
  2979  0C4C  0008                      return
  2980  0C4D                     __end_of_I2C2_Configure_Master:        
  2981                           
  2982                                  psect   text12
  2983  0E3F                     __ptext12:     
  2984 ;; *************** function _I2C2_Init *****************
  2985 ;; Defined at:
  2986 ;;               line 8 in file "I2C2.c"
  2987 ;; Parameters:    Size  Location     Type
  2988 ;;  data            1    wreg     PTR struct .
  2989 ;;                -> main@i2c2_data(77), 
  2990 ;; Auto vars:     Size  Location     Type
  2991 ;;  data            1    1[BANK0 ] PTR struct .
  2992 ;;                -> main@i2c2_data(77), 
  2993 ;; Return value:  Size  Location     Type
  2994 ;;               None               void
  2995 ;; Registers used:
  2996 ;;               wreg, fsr1l, fsr1h, status,2
  2997 ;; Tracked objects:
  2998 ;;               On entry : 0/0
  2999 ;;               On exit  : 0/0
  3000 ;;               Unchanged: 0/0
  3001 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  3002 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3003 ;;      Locals:         0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3004 ;;      Temps:          0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3005 ;;      Totals:         0       2       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3006 ;;Total ram usage:        2 bytes
  3007 ;; Hardware stack levels used:    1
  3008 ;; Hardware stack levels required when called:    4
  3009 ;; This function calls:
  3010 ;;               Nothing
  3011 ;; This function is called by:
  3012 ;;               _main
  3013 ;; This function uses a non-reentrant model
  3014 ;;
  3015                           
  3016                           
  3017                           ;psect for function _I2C2_Init
  3018  0E3F                     _I2C2_Init:    
  3019                           
  3020                           ;incstack = 0
  3021                           ; Regs used in _I2C2_Init: [wreg+fsr1l+fsr1h+status,2]
  3022                           ;I2C2_Init@data stored from wreg
  3023  0E3F  0020                      movlb   0        ; select bank0
  3024  0E40  00A1                      movwf   I2C2_Init@data
  3025                           
  3026                           ;I2C2.c: 9: i2c_data_p = data;
  3027  0E41  0821                      movf    I2C2_Init@data,w
  3028  0E42  00A0                      movwf   ??_I2C2_Init
  3029  0E43  0820                      movf    ??_I2C2_Init,w
  3030  0E44  00E9                      movwf   I2C2@i2c_data_p
  3031                           
  3032                           ;I2C2.c: 11: i2c_data_p->buffer_in_len = 0;
  3033  0E45  0869                      movf    I2C2@i2c_data_p,w
  3034  0E46  3E20                      addlw   32
  3035  0E47  0086                      movwf   6
  3036  0E48  3001                      movlw   1       ; select bank2/3
  3037  0E49  0087                      movwf   7
  3038  0E4A  0181                      clrf    1
  3039                           
  3040                           ;I2C2.c: 12: i2c_data_p->buffer_in_len_tmp = 0;
  3041  0E4B  0869                      movf    I2C2@i2c_data_p,w
  3042  0E4C  3E21                      addlw   33
  3043  0E4D  0086                      movwf   6
  3044  0E4E  3001                      movlw   1       ; select bank2/3
  3045  0E4F  0087                      movwf   7
  3046  0E50  0181                      clrf    1
  3047                           
  3048                           ;I2C2.c: 13: i2c_data_p->buffer_in_read_ind = 0;
  3049  0E51  0869                      movf    I2C2@i2c_data_p,w
  3050  0E52  3E22                      addlw   34
  3051  0E53  0086                      movwf   6
  3052  0E54  3001                      movlw   1       ; select bank2/3
  3053  0E55  0087                      movwf   7
  3054  0E56  0181                      clrf    1
  3055                           
  3056                           ;I2C2.c: 14: i2c_data_p->buffer_in_write_ind = 0;
  3057  0E57  0869                      movf    I2C2@i2c_data_p,w
  3058  0E58  3E23                      addlw   35
  3059  0E59  0086                      movwf   6
  3060  0E5A  3001                      movlw   1       ; select bank2/3
  3061  0E5B  0087                      movwf   7
  3062  0E5C  0181                      clrf    1
  3063                           
  3064                           ;I2C2.c: 16: i2c_data_p->buffer_out_ind = 0;
  3065  0E5D  0869                      movf    I2C2@i2c_data_p,w
  3066  0E5E  3E45                      addlw   69
  3067  0E5F  0086                      movwf   6
  3068  0E60  3001                      movlw   1       ; select bank2/3
  3069  0E61  0087                      movwf   7
  3070  0E62  0181                      clrf    1
  3071                           
  3072                           ;I2C2.c: 17: i2c_data_p->buffer_out_len = 0;
  3073  0E63  0869                      movf    I2C2@i2c_data_p,w
  3074  0E64  3E44                      addlw   68
  3075  0E65  0086                      movwf   6
  3076  0E66  3001                      movlw   1       ; select bank2/3
  3077  0E67  0087                      movwf   7
  3078  0E68  0181                      clrf    1
  3079                           
  3080                           ;I2C2.c: 19: i2c_data_p->operating_mode = 0;
  3081  0E69  0869                      movf    I2C2@i2c_data_p,w
  3082  0E6A  3E46                      addlw   70
  3083  0E6B  0086                      movwf   6
  3084  0E6C  3001                      movlw   1       ; select bank2/3
  3085  0E6D  0087                      movwf   7
  3086  0E6E  0181                      clrf    1
  3087                           
  3088                           ;I2C2.c: 20: i2c_data_p->operating_state = 0x1;
  3089  0E6F  0869                      movf    I2C2@i2c_data_p,w
  3090  0E70  3E47                      addlw   71
  3091  0E71  0086                      movwf   6
  3092  0E72  3001                      movlw   1       ; select bank2/3
  3093  0E73  0087                      movwf   7
  3094  0E74  0181                      clrf    1
  3095  0E75  0A81                      incf    1,f
  3096                           
  3097                           ;I2C2.c: 21: i2c_data_p->return_status = 0;
  3098  0E76  0869                      movf    I2C2@i2c_data_p,w
  3099  0E77  3E48                      addlw   72
  3100  0E78  0086                      movwf   6
  3101  0E79  3001                      movlw   1       ; select bank2/3
  3102  0E7A  0087                      movwf   7
  3103  0E7B  0181                      clrf    1
  3104                           
  3105                           ;I2C2.c: 23: i2c_data_p->slave_in_last_byte = 0;
  3106  0E7C  0869                      movf    I2C2@i2c_data_p,w
  3107  0E7D  3E4B                      addlw   75
  3108  0E7E  0086                      movwf   6
  3109  0E7F  3001                      movlw   1       ; select bank2/3
  3110  0E80  0087                      movwf   7
  3111  0E81  0181                      clrf    1
  3112                           
  3113                           ;I2C2.c: 24: i2c_data_p->slave_sending_data = 0;
  3114  0E82  0869                      movf    I2C2@i2c_data_p,w
  3115  0E83  3E4C                      addlw   76
  3116  0E84  0086                      movwf   6
  3117  0E85  3001                      movlw   1       ; select bank2/3
  3118  0E86  0087                      movwf   7
  3119  0E87  0181                      clrf    1
  3120                           
  3121                           ;I2C2.c: 26: i2c_data_p->master_dest_addr = 0;
  3122  0E88  0869                      movf    I2C2@i2c_data_p,w
  3123  0E89  3E49                      addlw   73
  3124  0E8A  0086                      movwf   6
  3125  0E8B  3001                      movlw   1       ; select bank2/3
  3126  0E8C  0087                      movwf   7
  3127  0E8D  0181                      clrf    1
  3128                           
  3129                           ;I2C2.c: 27: i2c_data_p->master_status = 0x23;
  3130  0E8E  3023                      movlw   35
  3131  0E8F  00A0                      movwf   ??_I2C2_Init
  3132  0E90  0869                      movf    I2C2@i2c_data_p,w
  3133  0E91  3E4A                      addlw   74
  3134  0E92  0086                      movwf   6
  3135  0E93  3001                      movlw   1       ; select bank2/3
  3136  0E94  0087                      movwf   7
  3137  0E95  0820                      movf    ??_I2C2_Init,w
  3138  0E96  0081                      movwf   1
  3139                           
  3140                           ;I2C2.c: 30: PIE4bits.SSP2IE = 1;
  3141  0E97  0021                      movlb   1       ; select bank1
  3142  0E98  1414                      bsf     20,0    ;volatile
  3143  0E99  0008                      return
  3144  0E9A                     __end_of_I2C2_Init:    
  3145                           
  3146                                  psect   text13
  3147  0C0F                     __ptext13:     
  3148 ;; *************** function _I2C1_Configure_Slave *****************
  3149 ;; Defined at:
  3150 ;;               line 120 in file "I2C1.c"
  3151 ;; Parameters:    Size  Location     Type
  3152 ;;  addr            1    wreg     unsigned char 
  3153 ;; Auto vars:     Size  Location     Type
  3154 ;;  addr            1    1[BANK0 ] unsigned char 
  3155 ;; Return value:  Size  Location     Type
  3156 ;;               None               void
  3157 ;; Registers used:
  3158 ;;               wreg, fsr1l, fsr1h, status,2, status,0
  3159 ;; Tracked objects:
  3160 ;;               On entry : 0/0
  3161 ;;               On exit  : 0/0
  3162 ;;               Unchanged: 0/0
  3163 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  3164 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3165 ;;      Locals:         0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3166 ;;      Temps:          0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3167 ;;      Totals:         0       2       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3168 ;;Total ram usage:        2 bytes
  3169 ;; Hardware stack levels used:    1
  3170 ;; Hardware stack levels required when called:    4
  3171 ;; This function calls:
  3172 ;;               Nothing
  3173 ;; This function is called by:
  3174 ;;               _main
  3175 ;; This function uses a non-reentrant model
  3176 ;;
  3177                           
  3178                           
  3179                           ;psect for function _I2C1_Configure_Slave
  3180  0C0F                     _I2C1_Configure_Slave: 
  3181                           
  3182                           ;incstack = 0
  3183                           ; Regs used in _I2C1_Configure_Slave: [wreg+fsr1l+fsr1h+status,2+status,0]
  3184                           ;I2C1_Configure_Slave@addr stored from wreg
  3185  0C0F  0020                      movlb   0        ; select bank0
  3186  0C10  00A1                      movwf   I2C1_Configure_Slave@addr
  3187                           
  3188                           ;I2C1.c: 121: i2c_data_p->operating_mode = 0x10;
  3189  0C11  3010                      movlw   16
  3190  0C12  00A0                      movwf   ??_I2C1_Configure_Slave
  3191  0C13  0879                      movf    _i2c_data_p,w
  3192  0C14  3E46                      addlw   70
  3193  0C15  0086                      movwf   6
  3194  0C16  0187                      clrf    7
  3195  0C17  0820                      movf    ??_I2C1_Configure_Slave,w
  3196  0C18  0081                      movwf   1
  3197                           
  3198                           ;I2C1.c: 124: TRISBbits.TRISB6 = 1;
  3199  0C19  0021                      movlb   1       ; select bank1
  3200  0C1A  170D                      bsf     13,6    ;volatile
  3201                           
  3202                           ;I2C1.c: 125: TRISBbits.TRISB4 = 1;
  3203  0C1B  160D                      bsf     13,4    ;volatile
  3204                           
  3205                           ;I2C1.c: 127: SSP1ADD = addr << 1;
  3206  0C1C  0020                      movlb   0        ; select bank0
  3207  0C1D  3521                      lslf    I2C1_Configure_Slave@addr,w
  3208  0C1E  0024                      movlb   4       ; select bank4
  3209  0C1F  0092                      movwf   18      ;volatile
  3210                           
  3211                           ;I2C1.c: 129: SSP1STAT = 0x0;
  3212  0C20  0194                      clrf    20      ;volatile
  3213                           
  3214                           ;I2C1.c: 130: SSP1CON1 = 0x0;
  3215  0C21  0195                      clrf    21      ;volatile
  3216                           
  3217                           ;I2C1.c: 131: SSP1CON2 = 0x0;
  3218  0C22  0196                      clrf    22      ;volatile
  3219                           
  3220                           ;I2C1.c: 132: SSP1CON1bits.SSPM = 0xE;
  3221  0C23  0815                      movf    21,w    ;volatile
  3222  0C24  39F0                      andlw   -16
  3223  0C25  380E                      iorlw   14
  3224  0C26  0095                      movwf   21      ;volatile
  3225                           
  3226                           ;I2C1.c: 133: SSP1STATbits.SMP = 1;
  3227  0C27  1794                      bsf     20,7    ;volatile
  3228                           
  3229                           ;I2C1.c: 134: SSP1CON2bits.SEN = 1;
  3230  0C28  1416                      bsf     22,0    ;volatile
  3231                           
  3232                           ;I2C1.c: 135: SSP1CON1bits.SSPEN = 1;
  3233  0C29  1695                      bsf     21,5    ;volatile
  3234  0C2A  0008                      return
  3235  0C2B                     __end_of_I2C1_Configure_Slave: 
  3236                           
  3237                                  psect   text14
  3238  0D9E                     __ptext14:     
  3239 ;; *************** function _I2C1_Init *****************
  3240 ;; Defined at:
  3241 ;;               line 8 in file "I2C1.c"
  3242 ;; Parameters:    Size  Location     Type
  3243 ;;  data            1    wreg     PTR struct .
  3244 ;;                -> main@i2c1_data(77), 
  3245 ;; Auto vars:     Size  Location     Type
  3246 ;;  data            1    1[BANK0 ] PTR struct .
  3247 ;;                -> main@i2c1_data(77), 
  3248 ;; Return value:  Size  Location     Type
  3249 ;;               None               void
  3250 ;; Registers used:
  3251 ;;               wreg, fsr1l, fsr1h, status,2
  3252 ;; Tracked objects:
  3253 ;;               On entry : 0/0
  3254 ;;               On exit  : 0/0
  3255 ;;               Unchanged: 0/0
  3256 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  3257 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3258 ;;      Locals:         0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3259 ;;      Temps:          0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3260 ;;      Totals:         0       2       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3261 ;;Total ram usage:        2 bytes
  3262 ;; Hardware stack levels used:    1
  3263 ;; Hardware stack levels required when called:    4
  3264 ;; This function calls:
  3265 ;;               Nothing
  3266 ;; This function is called by:
  3267 ;;               _main
  3268 ;; This function uses a non-reentrant model
  3269 ;;
  3270                           
  3271                           
  3272                           ;psect for function _I2C1_Init
  3273  0D9E                     _I2C1_Init:    
  3274                           
  3275                           ;incstack = 0
  3276                           ; Regs used in _I2C1_Init: [wreg+fsr1l+fsr1h+status,2]
  3277                           ;I2C1_Init@data stored from wreg
  3278  0D9E  0020                      movlb   0        ; select bank0
  3279  0D9F  00A1                      movwf   I2C1_Init@data
  3280                           
  3281                           ;I2C1.c: 9: i2c_data_p = data;
  3282  0DA0  0821                      movf    I2C1_Init@data,w
  3283  0DA1  00A0                      movwf   ??_I2C1_Init
  3284  0DA2  0820                      movf    ??_I2C1_Init,w
  3285  0DA3  00F9                      movwf   _i2c_data_p
  3286                           
  3287                           ;I2C1.c: 11: i2c_data_p->buffer_in_len = 0;
  3288  0DA4  0879                      movf    _i2c_data_p,w
  3289  0DA5  3E20                      addlw   32
  3290  0DA6  0086                      movwf   6
  3291  0DA7  0187                      clrf    7
  3292  0DA8  0181                      clrf    1
  3293                           
  3294                           ;I2C1.c: 12: i2c_data_p->buffer_in_len_tmp = 0;
  3295  0DA9  0879                      movf    _i2c_data_p,w
  3296  0DAA  3E21                      addlw   33
  3297  0DAB  0086                      movwf   6
  3298  0DAC  0187                      clrf    7
  3299  0DAD  0181                      clrf    1
  3300                           
  3301                           ;I2C1.c: 13: i2c_data_p->buffer_in_read_ind = 0;
  3302  0DAE  0879                      movf    _i2c_data_p,w
  3303  0DAF  3E22                      addlw   34
  3304  0DB0  0086                      movwf   6
  3305  0DB1  0187                      clrf    7
  3306  0DB2  0181                      clrf    1
  3307                           
  3308                           ;I2C1.c: 14: i2c_data_p->buffer_in_write_ind = 0;
  3309  0DB3  0879                      movf    _i2c_data_p,w
  3310  0DB4  3E23                      addlw   35
  3311  0DB5  0086                      movwf   6
  3312  0DB6  0187                      clrf    7
  3313  0DB7  0181                      clrf    1
  3314                           
  3315                           ;I2C1.c: 16: i2c_data_p->buffer_out_ind = 0;
  3316  0DB8  0879                      movf    _i2c_data_p,w
  3317  0DB9  3E45                      addlw   69
  3318  0DBA  0086                      movwf   6
  3319  0DBB  0187                      clrf    7
  3320  0DBC  0181                      clrf    1
  3321                           
  3322                           ;I2C1.c: 17: i2c_data_p->buffer_out_len = 0;
  3323  0DBD  0879                      movf    _i2c_data_p,w
  3324  0DBE  3E44                      addlw   68
  3325  0DBF  0086                      movwf   6
  3326  0DC0  0187                      clrf    7
  3327  0DC1  0181                      clrf    1
  3328                           
  3329                           ;I2C1.c: 19: i2c_data_p->operating_mode = 0;
  3330  0DC2  0879                      movf    _i2c_data_p,w
  3331  0DC3  3E46                      addlw   70
  3332  0DC4  0086                      movwf   6
  3333  0DC5  0187                      clrf    7
  3334  0DC6  0181                      clrf    1
  3335                           
  3336                           ;I2C1.c: 20: i2c_data_p->operating_state = 0x1;
  3337  0DC7  0879                      movf    _i2c_data_p,w
  3338  0DC8  3E47                      addlw   71
  3339  0DC9  0086                      movwf   6
  3340  0DCA  0187                      clrf    7
  3341  0DCB  0181                      clrf    1
  3342  0DCC  0A81                      incf    1,f
  3343                           
  3344                           ;I2C1.c: 21: i2c_data_p->return_status = 0;
  3345  0DCD  0879                      movf    _i2c_data_p,w
  3346  0DCE  3E48                      addlw   72
  3347  0DCF  0086                      movwf   6
  3348  0DD0  0187                      clrf    7
  3349  0DD1  0181                      clrf    1
  3350                           
  3351                           ;I2C1.c: 23: i2c_data_p->slave_in_last_byte = 0;
  3352  0DD2  0879                      movf    _i2c_data_p,w
  3353  0DD3  3E4B                      addlw   75
  3354  0DD4  0086                      movwf   6
  3355  0DD5  0187                      clrf    7
  3356  0DD6  0181                      clrf    1
  3357                           
  3358                           ;I2C1.c: 24: i2c_data_p->slave_sending_data = 0;
  3359  0DD7  0879                      movf    _i2c_data_p,w
  3360  0DD8  3E4C                      addlw   76
  3361  0DD9  0086                      movwf   6
  3362  0DDA  0187                      clrf    7
  3363  0DDB  0181                      clrf    1
  3364                           
  3365                           ;I2C1.c: 26: i2c_data_p->master_dest_addr = 0;
  3366  0DDC  0879                      movf    _i2c_data_p,w
  3367  0DDD  3E49                      addlw   73
  3368  0DDE  0086                      movwf   6
  3369  0DDF  0187                      clrf    7
  3370  0DE0  0181                      clrf    1
  3371                           
  3372                           ;I2C1.c: 27: i2c_data_p->master_status = 0x23;
  3373  0DE1  3023                      movlw   35
  3374  0DE2  00A0                      movwf   ??_I2C1_Init
  3375  0DE3  0879                      movf    _i2c_data_p,w
  3376  0DE4  3E4A                      addlw   74
  3377  0DE5  0086                      movwf   6
  3378  0DE6  0187                      clrf    7
  3379  0DE7  0820                      movf    ??_I2C1_Init,w
  3380  0DE8  0081                      movwf   1
  3381                           
  3382                           ;I2C1.c: 30: PIE1bits.SSP1IE = 1;
  3383  0DE9  0021                      movlb   1       ; select bank1
  3384  0DEA  1591                      bsf     17,3    ;volatile
  3385  0DEB  0008                      return
  3386  0DEC                     __end_of_I2C1_Init:    
  3387                           
  3388                                  psect   text15
  3389  0CA7                     __ptext15:     
  3390 ;; *************** function _Read_Address *****************
  3391 ;; Defined at:
  3392 ;;               line 67 in file "main.c"
  3393 ;; Parameters:    Size  Location     Type
  3394 ;;               None
  3395 ;; Auto vars:     Size  Location     Type
  3396 ;;  ret             1    3[BANK0 ] unsigned char 
  3397 ;; Return value:  Size  Location     Type
  3398 ;;                  1    wreg      unsigned char 
  3399 ;; Registers used:
  3400 ;;               wreg, status,2, status,0
  3401 ;; Tracked objects:
  3402 ;;               On entry : 0/0
  3403 ;;               On exit  : 0/0
  3404 ;;               Unchanged: 0/0
  3405 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  3406 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3407 ;;      Locals:         0       1       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3408 ;;      Temps:          0       3       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3409 ;;      Totals:         0       4       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3410 ;;Total ram usage:        4 bytes
  3411 ;; Hardware stack levels used:    1
  3412 ;; Hardware stack levels required when called:    4
  3413 ;; This function calls:
  3414 ;;               Nothing
  3415 ;; This function is called by:
  3416 ;;               _main
  3417 ;; This function uses a non-reentrant model
  3418 ;;
  3419                           
  3420                           
  3421                           ;psect for function _Read_Address
  3422  0CA7                     _Read_Address: 
  3423                           
  3424                           ;main.c: 68: uint8_t ret = 0;
  3425                           
  3426                           ;incstack = 0
  3427                           ; Regs used in _Read_Address: [wreg+status,2+status,0]
  3428  0CA7  0020                      movlb   0        ; select bank0
  3429  0CA8  01A3                      clrf    Read_Address@ret
  3430                           
  3431                           ;main.c: 69: ret |= LATCbits.LATC3 << 3;
  3432  0CA9  0022                      movlb   2       ; select bank2
  3433  0CAA  0C0E                      rrf     14,w    ;volatile
  3434  0CAB  0020                      movlb   0        ; select bank0
  3435  0CAC  00A0                      movwf   ??_Read_Address
  3436  0CAD  0CA0                      rrf     ??_Read_Address,f
  3437  0CAE  0C20                      rrf     ??_Read_Address,w
  3438  0CAF  3901                      andlw   1
  3439  0CB0  00A1                      movwf   ??_Read_Address+1
  3440  0CB1  3002                      movlw   2
  3441  0CB2                     u1065: 
  3442  0CB2  35A1                      lslf    ??_Read_Address+1,f
  3443  0CB3  3EFF                      addlw   -1
  3444  0CB4  1D03                      skipz
  3445  0CB5  2CB2                      goto    u1065
  3446  0CB6  3521                      lslf    ??_Read_Address+1,w
  3447  0CB7  00A2                      movwf   ??_Read_Address+2
  3448  0CB8  0822                      movf    ??_Read_Address+2,w
  3449  0CB9  04A3                      iorwf   Read_Address@ret,f
  3450                           
  3451                           ;main.c: 70: ret |= LATCbits.LATC2 << 2;
  3452  0CBA  0022                      movlb   2       ; select bank2
  3453  0CBB  0C0E                      rrf     14,w    ;volatile
  3454  0CBC  0C89                      rrf     9,f
  3455  0CBD  3901                      andlw   1
  3456  0CBE  0020                      movlb   0        ; select bank0
  3457  0CBF  00A0                      movwf   ??_Read_Address
  3458  0CC0  3001                      movlw   1
  3459  0CC1                     u1075: 
  3460  0CC1  35A0                      lslf    ??_Read_Address,f
  3461  0CC2  3EFF                      addlw   -1
  3462  0CC3  1D03                      skipz
  3463  0CC4  2CC1                      goto    u1075
  3464  0CC5  3520                      lslf    ??_Read_Address,w
  3465  0CC6  00A1                      movwf   ??_Read_Address+1
  3466  0CC7  0821                      movf    ??_Read_Address+1,w
  3467  0CC8  04A3                      iorwf   Read_Address@ret,f
  3468                           
  3469                           ;main.c: 71: ret |= LATCbits.LATC1 << 1;
  3470  0CC9  0022                      movlb   2       ; select bank2
  3471  0CCA  0C0E                      rrf     14,w    ;volatile
  3472  0CCB  3901                      andlw   1
  3473  0CCC  0709                      addwf   9,w
  3474  0CCD  0020                      movlb   0        ; select bank0
  3475  0CCE  00A0                      movwf   ??_Read_Address
  3476  0CCF  0820                      movf    ??_Read_Address,w
  3477  0CD0  04A3                      iorwf   Read_Address@ret,f
  3478                           
  3479                           ;main.c: 72: ret |= LATCbits.LATC0;
  3480  0CD1  0022                      movlb   2       ; select bank2
  3481  0CD2  080E                      movf    14,w    ;volatile
  3482  0CD3  3901                      andlw   1
  3483  0CD4  0020                      movlb   0        ; select bank0
  3484  0CD5  00A0                      movwf   ??_Read_Address
  3485  0CD6  0820                      movf    ??_Read_Address,w
  3486  0CD7  04A3                      iorwf   Read_Address@ret,f
  3487                           
  3488                           ;main.c: 74: return ret;
  3489  0CD8  0823                      movf    Read_Address@ret,w
  3490  0CD9  0008                      return
  3491  0CDA                     __end_of_Read_Address: 
  3492                           
  3493                                  psect   text16
  3494  0BF5                     __ptext16:     
  3495 ;; *************** function _Pins_Init *****************
  3496 ;; Defined at:
  3497 ;;               line 31 in file "main.c"
  3498 ;; Parameters:    Size  Location     Type
  3499 ;;               None
  3500 ;; Auto vars:     Size  Location     Type
  3501 ;;               None
  3502 ;; Return value:  Size  Location     Type
  3503 ;;               None               void
  3504 ;; Registers used:
  3505 ;;               status,2
  3506 ;; Tracked objects:
  3507 ;;               On entry : 0/0
  3508 ;;               On exit  : 0/0
  3509 ;;               Unchanged: 0/0
  3510 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  3511 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3512 ;;      Locals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3513 ;;      Temps:          0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3514 ;;      Totals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3515 ;;Total ram usage:        0 bytes
  3516 ;; Hardware stack levels used:    1
  3517 ;; Hardware stack levels required when called:    4
  3518 ;; This function calls:
  3519 ;;               Nothing
  3520 ;; This function is called by:
  3521 ;;               _main
  3522 ;; This function uses a non-reentrant model
  3523 ;;
  3524                           
  3525                           
  3526                           ;psect for function _Pins_Init
  3527  0BF5                     _Pins_Init:    
  3528                           
  3529                           ;main.c: 33: ANSELA = 0x0;
  3530                           
  3531                           ;incstack = 0
  3532                           ; Regs used in _Pins_Init: [status,2]
  3533  0BF5  0023                      movlb   3       ; select bank3
  3534  0BF6  018C                      clrf    12      ;volatile
  3535                           
  3536                           ;main.c: 34: ANSELB = 0x0;
  3537  0BF7  018D                      clrf    13      ;volatile
  3538                           
  3539                           ;main.c: 35: ANSELC = 0x0;
  3540  0BF8  018E                      clrf    14      ;volatile
  3541                           
  3542                           ;main.c: 38: OPTION_REGbits.nWPUEN = 0;
  3543  0BF9  0021                      movlb   1       ; select bank1
  3544  0BFA  1395                      bcf     21,7    ;volatile
  3545                           
  3546                           ;main.c: 41: TRISAbits.TRISA5 = 1;
  3547  0BFB  168C                      bsf     12,5    ;volatile
  3548                           
  3549                           ;main.c: 42: TRISAbits.TRISA4 = 1;
  3550  0BFC  160C                      bsf     12,4    ;volatile
  3551                           
  3552                           ;main.c: 43: TRISAbits.TRISA2 = 1;
  3553  0BFD  150C                      bsf     12,2    ;volatile
  3554                           
  3555                           ;main.c: 46: TRISCbits.TRISC5 = 1;
  3556  0BFE  168E                      bsf     14,5    ;volatile
  3557                           
  3558                           ;main.c: 47: TRISCbits.TRISC4 = 0;
  3559  0BFF  120E                      bcf     14,4    ;volatile
  3560                           
  3561                           ;main.c: 50: TRISCbits.TRISC0 = 1;
  3562  0C00  140E                      bsf     14,0    ;volatile
  3563                           
  3564                           ;main.c: 51: TRISCbits.TRISC1 = 1;
  3565  0C01  148E                      bsf     14,1    ;volatile
  3566                           
  3567                           ;main.c: 52: TRISCbits.TRISC2 = 1;
  3568  0C02  150E                      bsf     14,2    ;volatile
  3569                           
  3570                           ;main.c: 53: TRISCbits.TRISC3 = 1;
  3571  0C03  158E                      bsf     14,3    ;volatile
  3572                           
  3573                           ;main.c: 55: WPUCbits.WPUC0 = 1;
  3574  0C04  0024                      movlb   4       ; select bank4
  3575  0C05  140E                      bsf     14,0    ;volatile
  3576                           
  3577                           ;main.c: 56: WPUCbits.WPUC1 = 1;
  3578  0C06  148E                      bsf     14,1    ;volatile
  3579                           
  3580                           ;main.c: 57: WPUCbits.WPUC2 = 1;
  3581  0C07  150E                      bsf     14,2    ;volatile
  3582                           
  3583                           ;main.c: 58: WPUCbits.WPUC3 = 1;
  3584  0C08  158E                      bsf     14,3    ;volatile
  3585                           
  3586                           ;main.c: 61: TRISBbits.TRISB6 = 1;
  3587  0C09  0021                      movlb   1       ; select bank1
  3588  0C0A  170D                      bsf     13,6    ;volatile
  3589                           
  3590                           ;main.c: 62: TRISBbits.TRISB4 = 1;
  3591  0C0B  160D                      bsf     13,4    ;volatile
  3592                           
  3593                           ;main.c: 63: TRISBbits.TRISB7 = 1;
  3594  0C0C  178D                      bsf     13,7    ;volatile
  3595                           
  3596                           ;main.c: 64: TRISBbits.TRISB5 = 1;
  3597  0C0D  168D                      bsf     13,5    ;volatile
  3598  0C0E  0008                      return
  3599  0C0F                     __end_of_Pins_Init:    
  3600                           
  3601                                  psect   intentry
  3602  0004                     __pintentry:   
  3603 ;; *************** function _InterruptHandler *****************
  3604 ;; Defined at:
  3605 ;;               line 21 in file "INTERRUPTS.c"
  3606 ;; Parameters:    Size  Location     Type
  3607 ;;               None
  3608 ;; Auto vars:     Size  Location     Type
  3609 ;;               None
  3610 ;; Return value:  Size  Location     Type
  3611 ;;               None               void
  3612 ;; Registers used:
  3613 ;;               wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack
  3614 ;; Tracked objects:
  3615 ;;               On entry : 0/0
  3616 ;;               On exit  : 0/0
  3617 ;;               Unchanged: 0/0
  3618 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  3619 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3620 ;;      Locals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3621 ;;      Temps:          1       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3622 ;;      Totals:         1       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3623 ;;Total ram usage:        1 bytes
  3624 ;; Hardware stack levels used:    1
  3625 ;; Hardware stack levels required when called:    3
  3626 ;; This function calls:
  3627 ;;               _I2C1_Interrupt_Handler
  3628 ;;               _I2C2_Interrupt_Handler
  3629 ;; This function is called by:
  3630 ;;               Interrupt level 1
  3631 ;; This function uses a non-reentrant model
  3632 ;;
  3633                           
  3634  0004                     _InterruptHandler:     
  3635                           
  3636                           ;incstack = 0
  3637                           ; Regs used in _InterruptHandler: [wreg-fsr1h+status,2+status,0+pclath+cstack]
  3638  0004  3180                      pagesel $
  3639  0005  0020                      movlb   0        ; select bank0
  3640  0006  087F                      movf    127,w
  3641  0007  00F8                      movwf   ??_InterruptHandler
  3642                           
  3643                           ;INTERRUPTS.c: 37: if (PIR1bits.SSP1IF) {
  3644  0008  1D91                      btfss   17,3    ;volatile
  3645  0009  2810                      goto    i1l271
  3646                           
  3647                           ;INTERRUPTS.c: 40: I2C1_Interrupt_Handler();
  3648  000A  318B  23C5  3180          fcall   _I2C1_Interrupt_Handler
  3649                           
  3650                           ;INTERRUPTS.c: 43: PIR1bits.SSP1IF = 0;
  3651  000D  0020                      movlb   0        ; select bank0
  3652  000E  1191                      bcf     17,3    ;volatile
  3653                           
  3654                           ;INTERRUPTS.c: 45: return;
  3655  000F  2816                      goto    i1l272
  3656  0010                     i1l271:        
  3657                           
  3658                           ;INTERRUPTS.c: 46: }
  3659                           ;INTERRUPTS.c: 49: if (PIR4bits.SSP2IF) {
  3660  0010  1C14                      btfss   20,0    ;volatile
  3661  0011  2816                      goto    i1l272
  3662                           
  3663                           ;INTERRUPTS.c: 51: I2C2_Interrupt_Handler();
  3664  0012  318B  23DB                fcall   _I2C2_Interrupt_Handler
  3665                           
  3666                           ;INTERRUPTS.c: 54: PIR4bits.SSP2IF = 0;
  3667  0014  0020                      movlb   0        ; select bank0
  3668  0015  1014                      bcf     20,0    ;volatile
  3669  0016                     i1l272:        
  3670                           ;INTERRUPTS.c: 56: return;
  3671                           
  3672  0016  0878                      movf    ??_InterruptHandler,w
  3673  0017  00FF                      movwf   127
  3674  0018  0009                      retfie
  3675  0019                     __end_of_InterruptHandler:     
  3676                           
  3677                                  psect   text18
  3678  0BDB                     __ptext18:     
  3679 ;; *************** function _I2C2_Interrupt_Handler *****************
  3680 ;; Defined at:
  3681 ;;               line 138 in file "I2C2.c"
  3682 ;; Parameters:    Size  Location     Type
  3683 ;;               None
  3684 ;; Auto vars:     Size  Location     Type
  3685 ;;               None
  3686 ;; Return value:  Size  Location     Type
  3687 ;;               None               void
  3688 ;; Registers used:
  3689 ;;               wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack
  3690 ;; Tracked objects:
  3691 ;;               On entry : 0/0
  3692 ;;               On exit  : 0/0
  3693 ;;               Unchanged: 0/0
  3694 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  3695 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3696 ;;      Locals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3697 ;;      Temps:          0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3698 ;;      Totals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3699 ;;Total ram usage:        0 bytes
  3700 ;; Hardware stack levels used:    1
  3701 ;; Hardware stack levels required when called:    2
  3702 ;; This function calls:
  3703 ;;               _I2C2_Interrupt_Master
  3704 ;;               _I2C2_Interrupt_Slave
  3705 ;; This function is called by:
  3706 ;;               _InterruptHandler
  3707 ;; This function uses a non-reentrant model
  3708 ;;
  3709                           
  3710                           
  3711                           ;psect for function _I2C2_Interrupt_Handler
  3712  0BDB                     _I2C2_Interrupt_Handler:       
  3713                           
  3714                           ;I2C2.c: 140: if (i2c_data_p->operating_mode == 0x11) {
  3715                           
  3716                           ;incstack = 0
  3717                           ; Regs used in _I2C2_Interrupt_Handler: [wreg-fsr1h+status,2+status,0+pclath+cstack]
  3718  0BDB  0020                      movlb   0        ; select bank0
  3719  0BDC  0869                      movf    I2C2@i2c_data_p,w
  3720  0BDD  3E46                      addlw   70
  3721  0BDE  0086                      movwf   6
  3722  0BDF  3001                      movlw   1       ; select bank2/3
  3723  0BE0  0087                      movwf   7
  3724  0BE1  0801                      movf    1,w
  3725  0BE2  3A11                      xorlw   17
  3726  0BE3  1D03                      skipz
  3727  0BE4  2BE8                      goto    i1l3171
  3728                           
  3729                           ;I2C2.c: 141: I2C2_Interrupt_Master();
  3730  0BE5  3180  201B                fcall   _I2C2_Interrupt_Master
  3731                           
  3732                           ;I2C2.c: 142: } else if (i2c_data_p->operating_mode == 0x10) {
  3733  0BE7  0008                      return
  3734  0BE8                     i1l3171:       
  3735  0BE8  0020                      movlb   0        ; select bank0
  3736  0BE9  0869                      movf    I2C2@i2c_data_p,w
  3737  0BEA  3E46                      addlw   70
  3738  0BEB  0086                      movwf   6
  3739  0BEC  3001                      movlw   1       ; select bank2/3
  3740  0BED  0087                      movwf   7
  3741  0BEE  0801                      movf    1,w
  3742  0BEF  3A10                      xorlw   16
  3743  0BF0  1D03                      skipz
  3744  0BF1  0008                      return
  3745                           
  3746                           ;I2C2.c: 143: I2C2_Interrupt_Slave();
  3747  0BF2  3185  2534                fcall   _I2C2_Interrupt_Slave
  3748  0BF4  0008                      return
  3749  0BF5                     __end_of_I2C2_Interrupt_Handler:       
  3750                           
  3751                                  psect   text19
  3752  0534                     __ptext19:     
  3753 ;; *************** function _I2C2_Interrupt_Slave *****************
  3754 ;; Defined at:
  3755 ;;               line 327 in file "I2C2.c"
  3756 ;; Parameters:    Size  Location     Type
  3757 ;;               None
  3758 ;; Auto vars:     Size  Location     Type
  3759 ;;  data_read_fr    1    7[COMMON] unsigned char 
  3760 ;;  received_dat    1    6[COMMON] unsigned char 
  3761 ;;  data_written    1    5[COMMON] unsigned char 
  3762 ;;  overrun_erro    1    4[COMMON] unsigned char 
  3763 ;; Return value:  Size  Location     Type
  3764 ;;               None               void
  3765 ;; Registers used:
  3766 ;;               wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack
  3767 ;; Tracked objects:
  3768 ;;               On entry : 0/0
  3769 ;;               On exit  : 0/0
  3770 ;;               Unchanged: 0/0
  3771 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  3772 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3773 ;;      Locals:         4       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3774 ;;      Temps:          2       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3775 ;;      Totals:         6       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  3776 ;;Total ram usage:        6 bytes
  3777 ;; Hardware stack levels used:    1
  3778 ;; Hardware stack levels required when called:    1
  3779 ;; This function calls:
  3780 ;;               _I2C2_Process_Receive
  3781 ;; This function is called by:
  3782 ;;               _I2C2_Interrupt_Handler
  3783 ;; This function uses a non-reentrant model
  3784 ;;
  3785                           
  3786                           
  3787                           ;psect for function _I2C2_Interrupt_Slave
  3788  0534                     _I2C2_Interrupt_Slave: 
  3789                           
  3790                           ;I2C2.c: 328: uint8_t received_data;
  3791                           ;I2C2.c: 329: uint8_t data_read_from_buffer = 0;
  3792                           
  3793                           ;incstack = 0
  3794                           ; Regs used in _I2C2_Interrupt_Slave: [wreg-fsr1h+status,2+status,0+pclath+cstack]
  3795  0534  01F7                      clrf    I2C2_Interrupt_Slave@data_read_from_buffer
  3796                           
  3797                           ;I2C2.c: 330: uint8_t data_written_to_buffer = 0;
  3798  0535  01F5                      clrf    I2C2_Interrupt_Slave@data_written_to_buffer
  3799                           
  3800                           ;I2C2.c: 331: uint8_t overrun_error = 0;
  3801  0536  01F4                      clrf    I2C2_Interrupt_Slave@overrun_error
  3802                           
  3803                           ;I2C2.c: 334: if (SSP2CON1bits.SSPOV == 1) {
  3804  0537  0024                      movlb   4       ; select bank4
  3805  0538  1F1D                      btfss   29,6    ;volatile
  3806  0539  2D4E                      goto    i1l3053
  3807                           
  3808                           ;I2C2.c: 335: SSP2CON1bits.SSPOV = 0;
  3809  053A  131D                      bcf     29,6    ;volatile
  3810                           
  3811                           ;I2C2.c: 339: i2c_data_p->operating_state = 0x1;
  3812  053B  0020                      movlb   0        ; select bank0
  3813  053C  0869                      movf    I2C2@i2c_data_p,w
  3814  053D  3E47                      addlw   71
  3815  053E  0086                      movwf   6
  3816  053F  3001                      movlw   1       ; select bank2/3
  3817  0540  0087                      movwf   7
  3818  0541  0181                      clrf    1
  3819  0542  0A81                      incf    1,f
  3820                           
  3821                           ;I2C2.c: 340: overrun_error = 1;
  3822  0543  01F4                      clrf    I2C2_Interrupt_Slave@overrun_error
  3823  0544  0AF4                      incf    I2C2_Interrupt_Slave@overrun_error,f
  3824                           
  3825                           ;I2C2.c: 341: i2c_data_p->return_status = 0x36;
  3826  0545  3036                      movlw   54
  3827  0546  00F2                      movwf   ??_I2C2_Interrupt_Slave
  3828  0547  0869                      movf    I2C2@i2c_data_p,w
  3829  0548  3E48                      addlw   72
  3830  0549  0086                      movwf   6
  3831  054A  3001                      movlw   1       ; select bank2/3
  3832  054B  0087                      movwf   7
  3833  054C  0872                      movf    ??_I2C2_Interrupt_Slave,w
  3834  054D  0081                      movwf   1
  3835  054E                     i1l3053:       
  3836                           
  3837                           ;I2C2.c: 342: }
  3838                           ;I2C2.c: 345: if (SSP2STATbits.BF == 1) {
  3839  054E  0024                      movlb   4       ; select bank4
  3840  054F  1C1C                      btfss   28,0    ;volatile
  3841  0550  2D57                      goto    i1l3059
  3842                           
  3843                           ;I2C2.c: 346: received_data = SSP2BUF;
  3844  0551  0819                      movf    25,w    ;volatile
  3845  0552  00F2                      movwf   ??_I2C2_Interrupt_Slave
  3846  0553  0872                      movf    ??_I2C2_Interrupt_Slave,w
  3847  0554  00F6                      movwf   I2C2_Interrupt_Slave@received_data
  3848                           
  3849                           ;I2C2.c: 348: data_read_from_buffer = 1;
  3850  0555  01F7                      clrf    I2C2_Interrupt_Slave@data_read_from_buffer
  3851  0556  0AF7                      incf    I2C2_Interrupt_Slave@data_read_from_buffer,f
  3852  0557                     i1l3059:       
  3853                           
  3854                           ;I2C2.c: 349: }
  3855                           ;I2C2.c: 351: if (!overrun_error) {
  3856  0557  08F4                      movf    I2C2_Interrupt_Slave@overrun_error,f
  3857  0558  1903                      btfsc   3,2
  3858  0559  2EBE                      goto    i1l3151
  3859  055A  2ED2                      goto    i1l3153
  3860  055B                     i1l388:        
  3861                           ;I2C2.c: 353: case 0x1:
  3862                           
  3863                           ;I2C2.c: 352: switch (i2c_data_p->operating_state) {
  3864                           
  3865                           
  3866                           ;I2C2.c: 354: {
  3867                           ;I2C2.c: 356: if (SSP2STATbits.S == 1) {
  3868  055B  0024                      movlb   4       ; select bank4
  3869  055C  1D9C                      btfss   28,3    ;volatile
  3870  055D  2ED2                      goto    i1l3153
  3871                           
  3872                           ;I2C2.c: 357: i2c_data_p->buffer_in_len_tmp = 0;
  3873  055E  0020                      movlb   0        ; select bank0
  3874  055F  0869                      movf    I2C2@i2c_data_p,w
  3875  0560  3E21                      addlw   33
  3876  0561  0086                      movwf   6
  3877  0562  3001                      movlw   1       ; select bank2/3
  3878  0563  0087                      movwf   7
  3879  0564  0181                      clrf    1
  3880                           
  3881                           ;I2C2.c: 358: i2c_data_p->operating_state = 0x2;
  3882  0565  3002                      movlw   2
  3883  0566  00F2                      movwf   ??_I2C2_Interrupt_Slave
  3884  0567  2D78                      goto    L2
  3885  0568                     i1l391:        
  3886                           ;I2C2.c: 361: }
  3887                           ;I2C2.c: 362: case 0x2:
  3888                           
  3889                           ;I2C2.c: 359: }
  3890                           ;I2C2.c: 360: break;
  3891                           
  3892                           
  3893                           ;I2C2.c: 363: {
  3894                           ;I2C2.c: 365: if (SSP2STATbits.P == 1) {
  3895  0568  0024                      movlb   4       ; select bank4
  3896  0569  1E1C                      btfss   28,4    ;volatile
  3897  056A  2D6D                      goto    i1l3069
  3898                           
  3899                           ;I2C2.c: 367: i2c_data_p->operating_state = 0x1;
  3900  056B  0020                      movlb   0        ; select bank0
  3901  056C  2E4C                      goto    i1l3123
  3902  056D                     i1l3069:       
  3903                           ;I2C2.c: 368: } else if (data_read_from_buffer) {
  3904                           
  3905  056D  0877                      movf    I2C2_Interrupt_Slave@data_read_from_buffer,w
  3906  056E  1903                      btfsc   3,2
  3907  056F  2ED2                      goto    i1l3153
  3908                           
  3909                           ;I2C2.c: 369: if (SSP2STATbits.D_nA == 0) {
  3910  0570  0024                      movlb   4       ; select bank4
  3911  0571  1A9C                      btfsc   28,5    ;volatile
  3912  0572  2EAC                      goto    i1l3147
  3913                           
  3914                           ;I2C2.c: 371: if (SSP2STATbits.R_nW == 0) {
  3915  0573  191C                      btfsc   28,2    ;volatile
  3916  0574  2D7B                      goto    i1l3077
  3917                           
  3918                           ;I2C2.c: 373: i2c_data_p->operating_state = 0x3;
  3919  0575  3003                      movlw   3
  3920  0576  00F2                      movwf   ??_I2C2_Interrupt_Slave
  3921  0577  0020                      movlb   0        ; select bank0
  3922  0578                     L2:    
  3923  0578  0869                      movf    I2C2@i2c_data_p,w
  3924  0579  3E47                      addlw   71
  3925  057A  2EB8                      goto    L7
  3926  057B                     i1l3077:       
  3927                           ;I2C2.c: 374: } else {
  3928                           
  3929                           
  3930                           ;I2C2.c: 376: i2c_data_p->operating_state = 0x4;
  3931  057B  3004                      movlw   4
  3932  057C  00F2                      movwf   ??_I2C2_Interrupt_Slave
  3933  057D  0020                      movlb   0        ; select bank0
  3934  057E                     L4:    
  3935  057E  0869                      movf    I2C2@i2c_data_p,w
  3936  057F  3E47                      addlw   71
  3937  0580  0086                      movwf   6
  3938  0581  3001                      movlw   1       ; select bank2/3
  3939  0582  0087                      movwf   7
  3940  0583  0872                      movf    ??_I2C2_Interrupt_Slave,w
  3941  0584  0081                      movwf   1
  3942  0585                     i1l3081:       
  3943                           ;I2C2.c: 388: case 0x4:
  3944                           
  3945                           ;I2C2.c: 386: }
  3946                           ;I2C2.c: 387: send:
  3947                           
  3948                           ;I2C2.c: 383: }
  3949                           ;I2C2.c: 384: }
  3950                           ;I2C2.c: 385: break;
  3951                           
  3952                           ;I2C2.c: 382: i2c_data_p->return_status = 0x37;
  3953                           
  3954                           ;I2C2.c: 381: i2c_data_p->operating_state = 0x1;
  3955                           
  3956                           ;I2C2.c: 379: }
  3957                           ;I2C2.c: 380: } else {
  3958                           
  3959                           ;I2C2.c: 378: goto send;
  3960                           
  3961                           
  3962                           ;I2C2.c: 389: {
  3963                           ;I2C2.c: 390: if (!i2c_data_p->slave_sending_data) {
  3964  0585  0869                      movf    I2C2@i2c_data_p,w
  3965  0586  3E4C                      addlw   76
  3966  0587  0086                      movwf   6
  3967  0588  3001                      movlw   1       ; select bank2/3
  3968  0589  0087                      movwf   7
  3969  058A  0881                      movf    1,f
  3970  058B  1D03                      skipz
  3971  058C  2DB4                      goto    i1l3093
  3972                           
  3973                           ;I2C2.c: 392: if (I2C2_Process_Receive(i2c_data_p->slave_in_last_byte)) {
  3974  058D  0869                      movf    I2C2@i2c_data_p,w
  3975  058E  3E4B                      addlw   75
  3976  058F  0086                      movwf   6
  3977  0590  3001                      movlw   1       ; select bank2/3
  3978  0591  0087                      movwf   7
  3979  0592  0801                      movf    1,w
  3980  0593  318B  239B  3185          fcall   _I2C2_Process_Receive
  3981  0596  3A00                      xorlw   0
  3982  0597  1903                      skipnz
  3983  0598  2DB2                      goto    i1l3089
  3984                           
  3985                           ;I2C2.c: 394: SSP2BUF = i2c_data_p->buffer_out[0];
  3986  0599  0020                      movlb   0        ; select bank0
  3987  059A  0869                      movf    I2C2@i2c_data_p,w
  3988  059B  3E24                      addlw   36
  3989  059C  0086                      movwf   6
  3990  059D  3001                      movlw   1       ; select bank2/3
  3991  059E  0087                      movwf   7
  3992  059F  0801                      movf    1,w
  3993  05A0  0024                      movlb   4       ; select bank4
  3994  05A1  0099                      movwf   25      ;volatile
  3995                           
  3996                           ;I2C2.c: 395: i2c_data_p->buffer_out_ind = 1;
  3997  05A2  0020                      movlb   0        ; select bank0
  3998  05A3  0869                      movf    I2C2@i2c_data_p,w
  3999  05A4  3E45                      addlw   69
  4000  05A5  0086                      movwf   6
  4001  05A6  3001                      movlw   1       ; select bank2/3
  4002  05A7  0087                      movwf   7
  4003  05A8  0181                      clrf    1
  4004  05A9  0A81                      incf    1,f
  4005                           
  4006                           ;I2C2.c: 396: i2c_data_p->slave_sending_data = 1;
  4007  05AA  0869                      movf    I2C2@i2c_data_p,w
  4008  05AB  3E4C                      addlw   76
  4009  05AC  0086                      movwf   6
  4010  05AD  3001                      movlw   1       ; select bank2/3
  4011  05AE  0087                      movwf   7
  4012  05AF  0181                      clrf    1
  4013  05B0  0A81                      incf    1,f
  4014  05B1  2DDC                      goto    i1l3097
  4015  05B2                     i1l3089:       
  4016                           ;I2C2.c: 398: } else {
  4017                           
  4018                           ;I2C2.c: 397: data_written_to_buffer = 1;
  4019                           
  4020                           
  4021                           ;I2C2.c: 400: i2c_data_p->slave_sending_data = 0;
  4022  05B2  0020                      movlb   0        ; select bank0
  4023  05B3  2DDF                      goto    i1l3099
  4024  05B4                     i1l3093:       
  4025                           ;I2C2.c: 402: }
  4026                           ;I2C2.c: 403: } else {
  4027                           
  4028                           ;I2C2.c: 401: i2c_data_p->operating_state = 0x1;
  4029                           
  4030                           
  4031                           ;I2C2.c: 405: if (i2c_data_p->buffer_out_ind < i2c_data_p->buffer_out_len) {
  4032  05B4  0869                      movf    I2C2@i2c_data_p,w
  4033  05B5  3E45                      addlw   69
  4034  05B6  0086                      movwf   6
  4035  05B7  3001                      movlw   1       ; select bank2/3
  4036  05B8  0087                      movwf   7
  4037  05B9  0869                      movf    I2C2@i2c_data_p,w
  4038  05BA  3E44                      addlw   68
  4039  05BB  0084                      movwf   4
  4040  05BC  3001                      movlw   1       ; select bank2/3
  4041  05BD  0085                      movwf   5
  4042  05BE  0800                      movf    0,w
  4043  05BF  0201                      subwf   1,w
  4044  05C0  1803                      skipnc
  4045  05C1  2DDF                      goto    i1l3099
  4046                           
  4047                           ;I2C2.c: 406: SSP2BUF = i2c_data_p->buffer_out[i2c_data_p->buffer_out_ind];
  4048  05C2  0869                      movf    I2C2@i2c_data_p,w
  4049  05C3  3E45                      addlw   69
  4050  05C4  0086                      movwf   6
  4051  05C5  3001                      movlw   1       ; select bank2/3
  4052  05C6  0087                      movwf   7
  4053  05C7  0801                      movf    1,w
  4054  05C8  3E24                      addlw   36
  4055  05C9  0769                      addwf   I2C2@i2c_data_p,w
  4056  05CA  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4057  05CB  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4058  05CC  0086                      movwf   6
  4059  05CD  3001                      movlw   1       ; select bank2/3
  4060  05CE  0087                      movwf   7
  4061  05CF  0801                      movf    1,w
  4062  05D0  0024                      movlb   4       ; select bank4
  4063  05D1  0099                      movwf   25      ;volatile
  4064                           
  4065                           ;I2C2.c: 407: i2c_data_p->buffer_out_ind++;
  4066  05D2  3001                      movlw   1
  4067  05D3  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4068  05D4  0020                      movlb   0        ; select bank0
  4069  05D5  0869                      movf    I2C2@i2c_data_p,w
  4070  05D6  3E45                      addlw   69
  4071  05D7  0086                      movwf   6
  4072  05D8  3001                      movlw   1       ; select bank2/3
  4073  05D9  0087                      movwf   7
  4074  05DA  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4075  05DB  0781                      addwf   1,f
  4076  05DC                     i1l3097:       
  4077                           
  4078                           ;I2C2.c: 408: data_written_to_buffer = 1;
  4079  05DC  01F5                      clrf    I2C2_Interrupt_Slave@data_written_to_buffer
  4080  05DD  0AF5                      incf    I2C2_Interrupt_Slave@data_written_to_buffer,f
  4081                           
  4082                           ;I2C2.c: 409: } else {
  4083  05DE  2ED2                      goto    i1l3153
  4084  05DF                     i1l3099:       
  4085                           
  4086                           ;I2C2.c: 411: i2c_data_p->slave_sending_data = 0;
  4087  05DF  0869                      movf    I2C2@i2c_data_p,w
  4088  05E0  3E4C                      addlw   76
  4089  05E1  0086                      movwf   6
  4090  05E2  3001                      movlw   1       ; select bank2/3
  4091  05E3  0087                      movwf   7
  4092  05E4  0181                      clrf    1
  4093  05E5  2E4C                      goto    i1l3123
  4094  05E6                     i1l407:        
  4095                           ;I2C2.c: 416: }
  4096                           ;I2C2.c: 417: case 0x3:
  4097                           
  4098                           ;I2C2.c: 413: }
  4099                           ;I2C2.c: 414: }
  4100                           ;I2C2.c: 415: break;
  4101                           
  4102                           ;I2C2.c: 412: i2c_data_p->operating_state = 0x1;
  4103                           
  4104                           
  4105                           ;I2C2.c: 418: {
  4106                           ;I2C2.c: 420: if (SSP2STATbits.P == 1) {
  4107  05E6  0024                      movlb   4       ; select bank4
  4108  05E7  1E1C                      btfss   28,4    ;volatile
  4109  05E8  2E54                      goto    i1l3125
  4110                           
  4111                           ;I2C2.c: 422: if (data_read_from_buffer) {
  4112  05E9  0877                      movf    I2C2_Interrupt_Slave@data_read_from_buffer,w
  4113  05EA  1903                      btfsc   3,2
  4114  05EB  2E3D                      goto    i1l3121
  4115                           
  4116                           ;I2C2.c: 423: if (SSP2STATbits.D_nA == 1) {
  4117  05EC  1E9C                      btfss   28,5    ;volatile
  4118  05ED  2E2C                      goto    i1l3119
  4119                           
  4120                           ;I2C2.c: 426: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = received_data;
  4121  05EE  0876                      movf    I2C2_Interrupt_Slave@received_data,w
  4122  05EF  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4123  05F0  0020                      movlb   0        ; select bank0
  4124  05F1  0869                      movf    I2C2@i2c_data_p,w
  4125  05F2  3E23                      addlw   35
  4126  05F3  0086                      movwf   6
  4127  05F4  3001                      movlw   1       ; select bank2/3
  4128  05F5  0087                      movwf   7
  4129  05F6  0801                      movf    1,w
  4130  05F7  0769                      addwf   I2C2@i2c_data_p,w
  4131  05F8  00F3                      movwf   ??_I2C2_Interrupt_Slave+1
  4132  05F9  0873                      movf    ??_I2C2_Interrupt_Slave+1,w
  4133  05FA  0086                      movwf   6
  4134  05FB  3001                      movlw   1       ; select bank2/3
  4135  05FC  0087                      movwf   7
  4136  05FD  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4137  05FE  0081                      movwf   1
  4138                           
  4139                           ;I2C2.c: 427: if (i2c_data_p->buffer_in_write_ind == 32-1) {
  4140  05FF  0869                      movf    I2C2@i2c_data_p,w
  4141  0600  3E23                      addlw   35
  4142  0601  0086                      movwf   6
  4143  0602  3001                      movlw   1       ; select bank2/3
  4144  0603  0087                      movwf   7
  4145  0604  0801                      movf    1,w
  4146  0605  3A1F                      xorlw   31
  4147  0606  1D03                      skipz
  4148  0607  2E0F                      goto    i1l3113
  4149                           
  4150                           ;I2C2.c: 428: i2c_data_p->buffer_in_write_ind = 0;
  4151  0608  0869                      movf    I2C2@i2c_data_p,w
  4152  0609  3E23                      addlw   35
  4153  060A  0086                      movwf   6
  4154  060B  3001                      movlw   1       ; select bank2/3
  4155  060C  0087                      movwf   7
  4156  060D  0181                      clrf    1
  4157                           
  4158                           ;I2C2.c: 429: } else {
  4159  060E  2E18                      goto    i1l412
  4160  060F                     i1l3113:       
  4161                           
  4162                           ;I2C2.c: 430: i2c_data_p->buffer_in_write_ind++;
  4163  060F  3001                      movlw   1
  4164  0610  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4165  0611  0869                      movf    I2C2@i2c_data_p,w
  4166  0612  3E23                      addlw   35
  4167  0613  0086                      movwf   6
  4168  0614  3001                      movlw   1       ; select bank2/3
  4169  0615  0087                      movwf   7
  4170  0616  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4171  0617  0781                      addwf   1,f
  4172  0618                     i1l412:        
  4173                           
  4174                           ;I2C2.c: 431: }
  4175                           ;I2C2.c: 432: i2c_data_p->buffer_in_len_tmp++;
  4176  0618  3001                      movlw   1
  4177  0619  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4178  061A  0869                      movf    I2C2@i2c_data_p,w
  4179  061B  3E21                      addlw   33
  4180  061C  0086                      movwf   6
  4181  061D  3001                      movlw   1       ; select bank2/3
  4182  061E  0087                      movwf   7
  4183  061F  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4184  0620  0781                      addwf   1,f
  4185                           
  4186                           ;I2C2.c: 434: i2c_data_p->slave_in_last_byte = received_data;
  4187  0621  0876                      movf    I2C2_Interrupt_Slave@received_data,w
  4188  0622  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4189  0623  0869                      movf    I2C2@i2c_data_p,w
  4190  0624  3E4B                      addlw   75
  4191  0625  0086                      movwf   6
  4192  0626  3001                      movlw   1       ; select bank2/3
  4193  0627  0087                      movwf   7
  4194  0628  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4195  0629  0081                      movwf   1
  4196                           
  4197                           ;I2C2.c: 435: i2c_data_p->return_status = 0x34;
  4198  062A  3034                      movlw   52
  4199  062B  2E35                      goto    L6
  4200  062C                     i1l3119:       
  4201                           ;I2C2.c: 436: } else {
  4202                           
  4203                           
  4204                           ;I2C2.c: 437: i2c_data_p->operating_state = 0x1;
  4205  062C  0020                      movlb   0        ; select bank0
  4206  062D  0869                      movf    I2C2@i2c_data_p,w
  4207  062E  3E47                      addlw   71
  4208  062F  0086                      movwf   6
  4209  0630  3001                      movlw   1       ; select bank2/3
  4210  0631  0087                      movwf   7
  4211  0632  0181                      clrf    1
  4212  0633  0A81                      incf    1,f
  4213                           
  4214                           ;I2C2.c: 438: i2c_data_p->return_status = 0x37;
  4215  0634  3037                      movlw   55
  4216  0635                     L6:    
  4217  0635  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4218  0636  0869                      movf    I2C2@i2c_data_p,w
  4219  0637  3E48                      addlw   72
  4220  0638  0086                      movwf   6
  4221  0639  3001                      movlw   1       ; select bank2/3
  4222  063A  0087                      movwf   7
  4223  063B  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4224  063C  0081                      movwf   1
  4225  063D                     i1l3121:       
  4226                           
  4227                           ;I2C2.c: 439: }
  4228                           ;I2C2.c: 440: }
  4229                           ;I2C2.c: 441: i2c_data_p->buffer_in_len += i2c_data_p->buffer_in_len_tmp;
  4230  063D  0020                      movlb   0        ; select bank0
  4231  063E  0869                      movf    I2C2@i2c_data_p,w
  4232  063F  3E21                      addlw   33
  4233  0640  0086                      movwf   6
  4234  0641  3001                      movlw   1       ; select bank2/3
  4235  0642  0087                      movwf   7
  4236  0643  0801                      movf    1,w
  4237  0644  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4238  0645  0869                      movf    I2C2@i2c_data_p,w
  4239  0646  3E20                      addlw   32
  4240  0647  0086                      movwf   6
  4241  0648  3001                      movlw   1       ; select bank2/3
  4242  0649  0087                      movwf   7
  4243  064A  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4244  064B  0781                      addwf   1,f
  4245  064C                     i1l3123:       
  4246                           
  4247                           ;I2C2.c: 442: i2c_data_p->operating_state = 0x1;
  4248  064C  0869                      movf    I2C2@i2c_data_p,w
  4249  064D  3E47                      addlw   71
  4250  064E  0086                      movwf   6
  4251  064F  3001                      movlw   1       ; select bank2/3
  4252  0650  0087                      movwf   7
  4253  0651  0181                      clrf    1
  4254  0652  0A81                      incf    1,f
  4255                           
  4256                           ;I2C2.c: 443: } else if (data_read_from_buffer) {
  4257  0653  2ED2                      goto    i1l3153
  4258  0654                     i1l3125:       
  4259  0654  0877                      movf    I2C2_Interrupt_Slave@data_read_from_buffer,w
  4260  0655  1903                      btfsc   3,2
  4261  0656  2ED2                      goto    i1l3153
  4262                           
  4263                           ;I2C2.c: 444: if (SSP2STATbits.D_nA == 1) {
  4264  0657  0024                      movlb   4       ; select bank4
  4265  0658  1E9C                      btfss   28,5    ;volatile
  4266  0659  2E98                      goto    i1l416
  4267                           
  4268                           ;I2C2.c: 446: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = received_data;
  4269  065A  0876                      movf    I2C2_Interrupt_Slave@received_data,w
  4270  065B  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4271  065C  0020                      movlb   0        ; select bank0
  4272  065D  0869                      movf    I2C2@i2c_data_p,w
  4273  065E  3E23                      addlw   35
  4274  065F  0086                      movwf   6
  4275  0660  3001                      movlw   1       ; select bank2/3
  4276  0661  0087                      movwf   7
  4277  0662  0801                      movf    1,w
  4278  0663  0769                      addwf   I2C2@i2c_data_p,w
  4279  0664  00F3                      movwf   ??_I2C2_Interrupt_Slave+1
  4280  0665  0873                      movf    ??_I2C2_Interrupt_Slave+1,w
  4281  0666  0086                      movwf   6
  4282  0667  3001                      movlw   1       ; select bank2/3
  4283  0668  0087                      movwf   7
  4284  0669  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4285  066A  0081                      movwf   1
  4286                           
  4287                           ;I2C2.c: 447: if (i2c_data_p->buffer_in_write_ind == 32-1) {
  4288  066B  0869                      movf    I2C2@i2c_data_p,w
  4289  066C  3E23                      addlw   35
  4290  066D  0086                      movwf   6
  4291  066E  3001                      movlw   1       ; select bank2/3
  4292  066F  0087                      movwf   7
  4293  0670  0801                      movf    1,w
  4294  0671  3A1F                      xorlw   31
  4295  0672  1D03                      skipz
  4296  0673  2E7B                      goto    i1l3135
  4297                           
  4298                           ;I2C2.c: 448: i2c_data_p->buffer_in_write_ind = 0;
  4299  0674  0869                      movf    I2C2@i2c_data_p,w
  4300  0675  3E23                      addlw   35
  4301  0676  0086                      movwf   6
  4302  0677  3001                      movlw   1       ; select bank2/3
  4303  0678  0087                      movwf   7
  4304  0679  0181                      clrf    1
  4305                           
  4306                           ;I2C2.c: 449: } else {
  4307  067A  2E84                      goto    i1l418
  4308  067B                     i1l3135:       
  4309                           
  4310                           ;I2C2.c: 450: i2c_data_p->buffer_in_write_ind++;
  4311  067B  3001                      movlw   1
  4312  067C  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4313  067D  0869                      movf    I2C2@i2c_data_p,w
  4314  067E  3E23                      addlw   35
  4315  067F  0086                      movwf   6
  4316  0680  3001                      movlw   1       ; select bank2/3
  4317  0681  0087                      movwf   7
  4318  0682  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4319  0683  0781                      addwf   1,f
  4320  0684                     i1l418:        
  4321                           
  4322                           ;I2C2.c: 451: }
  4323                           ;I2C2.c: 452: i2c_data_p->buffer_in_len_tmp++;
  4324  0684  3001                      movlw   1
  4325  0685  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4326  0686  0869                      movf    I2C2@i2c_data_p,w
  4327  0687  3E21                      addlw   33
  4328  0688  0086                      movwf   6
  4329  0689  3001                      movlw   1       ; select bank2/3
  4330  068A  0087                      movwf   7
  4331  068B  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4332  068C  0781                      addwf   1,f
  4333                           
  4334                           ;I2C2.c: 454: i2c_data_p->slave_in_last_byte = received_data;
  4335  068D  0876                      movf    I2C2_Interrupt_Slave@received_data,w
  4336  068E  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4337  068F  0869                      movf    I2C2@i2c_data_p,w
  4338  0690  3E4B                      addlw   75
  4339  0691  0086                      movwf   6
  4340  0692  3001                      movlw   1       ; select bank2/3
  4341  0693  0087                      movwf   7
  4342  0694  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4343  0695  0081                      movwf   1
  4344                           
  4345                           ;I2C2.c: 455: i2c_data_p->return_status = 0x34;
  4346  0696  3034                      movlw   52
  4347  0697  2EB5                      goto    L8
  4348  0698                     i1l416:        
  4349                           ;I2C2.c: 456: } else {
  4350                           
  4351                           
  4352                           ;I2C2.c: 458: if (SSP2STATbits.R_nW == 1) {
  4353  0698  1D1C                      btfss   28,2    ;volatile
  4354  0699  2EAC                      goto    i1l3147
  4355                           
  4356                           ;I2C2.c: 459: i2c_data_p->buffer_in_len += i2c_data_p->buffer_in_len_tmp;
  4357  069A  0020                      movlb   0        ; select bank0
  4358  069B  0869                      movf    I2C2@i2c_data_p,w
  4359  069C  3E21                      addlw   33
  4360  069D  0086                      movwf   6
  4361  069E  3001                      movlw   1       ; select bank2/3
  4362  069F  0087                      movwf   7
  4363  06A0  0801                      movf    1,w
  4364  06A1  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4365  06A2  0869                      movf    I2C2@i2c_data_p,w
  4366  06A3  3E20                      addlw   32
  4367  06A4  0086                      movwf   6
  4368  06A5  3001                      movlw   1       ; select bank2/3
  4369  06A6  0087                      movwf   7
  4370  06A7  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4371  06A8  0781                      addwf   1,f
  4372                           
  4373                           ;I2C2.c: 460: i2c_data_p->operating_state = 0x4;
  4374  06A9  3004                      movlw   4
  4375  06AA  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4376                           
  4377                           ;I2C2.c: 462: goto send;
  4378  06AB  2D7E                      goto    L4
  4379  06AC                     i1l3147:       
  4380                           ;I2C2.c: 463: } else {
  4381                           
  4382                           
  4383                           ;I2C2.c: 465: i2c_data_p->operating_state = 0x1;
  4384  06AC  0020                      movlb   0        ; select bank0
  4385  06AD  0869                      movf    I2C2@i2c_data_p,w
  4386  06AE  3E47                      addlw   71
  4387  06AF  0086                      movwf   6
  4388  06B0  3001                      movlw   1       ; select bank2/3
  4389  06B1  0087                      movwf   7
  4390  06B2  0181                      clrf    1
  4391  06B3  0A81                      incf    1,f
  4392                           
  4393                           ;I2C2.c: 466: i2c_data_p->return_status = 0x37;
  4394  06B4  3037                      movlw   55
  4395  06B5                     L8:    
  4396  06B5  00F2                      movwf   ??_I2C2_Interrupt_Slave
  4397  06B6  0869                      movf    I2C2@i2c_data_p,w
  4398  06B7  3E48                      addlw   72
  4399  06B8                     L7:    
  4400  06B8  0086                      movwf   6
  4401  06B9  3001                      movlw   1       ; select bank2/3
  4402  06BA  0087                      movwf   7
  4403  06BB  0872                      movf    ??_I2C2_Interrupt_Slave,w
  4404  06BC  0081                      movwf   1
  4405                           
  4406                           ;I2C2.c: 471: }
  4407                           ;I2C2.c: 472: }
  4408                           
  4409                           ;I2C2.c: 467: }
  4410                           ;I2C2.c: 468: }
  4411                           ;I2C2.c: 469: }
  4412                           ;I2C2.c: 470: break;
  4413  06BD  2ED2                      goto    i1l3153
  4414  06BE                     i1l3151:       
  4415  06BE  0020                      movlb   0        ; select bank0
  4416  06BF  0869                      movf    I2C2@i2c_data_p,w
  4417  06C0  3E47                      addlw   71
  4418  06C1  0086                      movwf   6
  4419  06C2  3001                      movlw   1       ; select bank2/3
  4420  06C3  0087                      movwf   7
  4421  06C4  0801                      movf    1,w
  4422                           
  4423                           ; Switch size 1, requested type "space"
  4424                           ; Number of cases is 4, Range of values is 1 to 4
  4425                           ; switch strategies available:
  4426                           ; Name         Instructions Cycles
  4427                           ; simple_byte           13     7 (average)
  4428                           ; direct_byte           17     9 (fixed)
  4429                           ; jumptable            263     9 (fixed)
  4430                           ;      Chosen strategy is simple_byte
  4431  06C5  3A01                      xorlw   1       ; case 1
  4432  06C6  1903                      skipnz
  4433  06C7  2D5B                      goto    i1l388
  4434  06C8  3A03                      xorlw   3       ; case 2
  4435  06C9  1903                      skipnz
  4436  06CA  2D68                      goto    i1l391
  4437  06CB  3A01                      xorlw   1       ; case 3
  4438  06CC  1903                      skipnz
  4439  06CD  2DE6                      goto    i1l407
  4440  06CE  3A07                      xorlw   7       ; case 4
  4441  06CF  1903                      skipnz
  4442  06D0  2D85                      goto    i1l3081
  4443  06D1  2ED2                      goto    i1l3153
  4444  06D2                     i1l3153:       
  4445                           
  4446                           ;I2C2.c: 473: }
  4447                           ;I2C2.c: 476: if (data_read_from_buffer || data_written_to_buffer) {
  4448  06D2  08F7                      movf    I2C2_Interrupt_Slave@data_read_from_buffer,f
  4449  06D3  1903                      btfsc   3,2
  4450  06D4  0875                      movf    I2C2_Interrupt_Slave@data_written_to_buffer,w
  4451  06D5  1903                      btfsc   3,2
  4452  06D6  0008                      return
  4453                           
  4454                           ;I2C2.c: 478: if (SSP2CON1bits.CKP == 0) {
  4455  06D7  0024                      movlb   4       ; select bank4
  4456  06D8  1A1D                      btfsc   29,4    ;volatile
  4457  06D9  0008                      return
  4458                           
  4459                           ;I2C2.c: 479: SSP2CON1bits.CKP = 1;
  4460  06DA  161D                      bsf     29,4    ;volatile
  4461  06DB  0008                      return
  4462  06DC                     __end_of_I2C2_Interrupt_Slave: 
  4463                           
  4464                                  psect   text20
  4465  0B9B                     __ptext20:     
  4466 ;; *************** function _I2C2_Process_Receive *****************
  4467 ;; Defined at:
  4468 ;;               line 522 in file "I2C2.c"
  4469 ;; Parameters:    Size  Location     Type
  4470 ;;  c               1    wreg     unsigned char 
  4471 ;; Auto vars:     Size  Location     Type
  4472 ;;  c               1    0[COMMON] unsigned char 
  4473 ;;  ret             1    1[COMMON] unsigned char 
  4474 ;;  btns            1    0        struct .
  4475 ;; Return value:  Size  Location     Type
  4476 ;;                  1    wreg      unsigned char 
  4477 ;; Registers used:
  4478 ;;               wreg, fsr0l, fsr0h, status,2, status,0
  4479 ;; Tracked objects:
  4480 ;;               On entry : 0/0
  4481 ;;               On exit  : 0/0
  4482 ;;               Unchanged: 0/0
  4483 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  4484 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  4485 ;;      Locals:         2       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  4486 ;;      Temps:          0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  4487 ;;      Totals:         2       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  4488 ;;Total ram usage:        2 bytes
  4489 ;; Hardware stack levels used:    1
  4490 ;; This function calls:
  4491 ;;               Nothing
  4492 ;; This function is called by:
  4493 ;;               _I2C2_Interrupt_Slave
  4494 ;; This function uses a non-reentrant model
  4495 ;;
  4496                           
  4497                           
  4498                           ;psect for function _I2C2_Process_Receive
  4499  0B9B                     _I2C2_Process_Receive: 
  4500                           
  4501                           ;incstack = 0
  4502                           ; Regs used in _I2C2_Process_Receive: [wreg-fsr0h+status,2+status,0]
  4503                           ;I2C2_Process_Receive@c stored from wreg
  4504  0B9B  00F0                      movwf   I2C2_Process_Receive@c
  4505                           
  4506                           ;I2C2.c: 523: uint8_t ret = 0;
  4507  0B9C  01F1                      clrf    I2C2_Process_Receive@ret
  4508  0B9D  0064                      clrwdt  ;# 
  4509                           
  4510                           ;I2C2.c: 534: }
  4511                           
  4512                           ;I2C2.c: 533: break;
  4513                           
  4514                           ;I2C2.c: 528: case 0x0A:
  4515                           
  4516                           ;I2C2.c: 527: switch (c) {
  4517  0B9E  0870                      movf    I2C2_Process_Receive@c,w
  4518                           
  4519                           ; Switch size 1, requested type "space"
  4520                           ; Number of cases is 1, Range of values is 10 to 10
  4521                           ; switch strategies available:
  4522                           ; Name         Instructions Cycles
  4523                           ; simple_byte            4     3 (average)
  4524                           ; direct_byte           11     9 (fixed)
  4525                           ; jumptable            263     9 (fixed)
  4526                           ;      Chosen strategy is simple_byte
  4527  0B9F  3A0A                      xorlw   10      ; case 10
  4528  0BA0  1903                      skipnz
  4529  0BA1  2BA3                      goto    i1l2865
  4530  0BA2  2BA3                      goto    i1l2865
  4531  0BA3                     i1l2865:       
  4532                           
  4533                           ;I2C2.c: 535: return ret;
  4534  0BA3  0871                      movf    I2C2_Process_Receive@ret,w
  4535  0BA4  0008                      return
  4536  0BA5                     __end_of_I2C2_Process_Receive: 
  4537                           
  4538                                  psect   text21
  4539  001B                     __ptext21:     
  4540 ;; *************** function _I2C2_Interrupt_Master *****************
  4541 ;; Defined at:
  4542 ;;               line 148 in file "I2C2.c"
  4543 ;; Parameters:    Size  Location     Type
  4544 ;;               None
  4545 ;; Auto vars:     Size  Location     Type
  4546 ;;  tmp             1    3[COMMON] unsigned char 
  4547 ;;  tmp             1    2[COMMON] unsigned char 
  4548 ;; Return value:  Size  Location     Type
  4549 ;;               None               void
  4550 ;; Registers used:
  4551 ;;               wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0
  4552 ;; Tracked objects:
  4553 ;;               On entry : 0/0
  4554 ;;               On exit  : 0/0
  4555 ;;               Unchanged: 0/0
  4556 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  4557 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  4558 ;;      Locals:         2       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  4559 ;;      Temps:          2       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  4560 ;;      Totals:         4       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  4561 ;;Total ram usage:        4 bytes
  4562 ;; Hardware stack levels used:    1
  4563 ;; This function calls:
  4564 ;;               Nothing
  4565 ;; This function is called by:
  4566 ;;               _I2C2_Interrupt_Handler
  4567 ;; This function uses a non-reentrant model
  4568 ;;
  4569                           
  4570                           
  4571                           ;psect for function _I2C2_Interrupt_Master
  4572  001B                     _I2C2_Interrupt_Master:        
  4573                           
  4574                           ;I2C2.c: 150: if (i2c_data_p->master_status == 0x20) {
  4575                           
  4576                           ;incstack = 0
  4577                           ; Regs used in _I2C2_Interrupt_Master: [wreg-fsr1h+status,2+status,0]
  4578  001B  0020                      movlb   0        ; select bank0
  4579  001C  0869                      movf    I2C2@i2c_data_p,w
  4580  001D  3E4A                      addlw   74
  4581  001E  0086                      movwf   6
  4582  001F  3001                      movlw   1       ; select bank2/3
  4583  0020  0087                      movwf   7
  4584  0021  0801                      movf    1,w
  4585  0022  3A20                      xorlw   32
  4586  0023  1903                      btfsc   3,2
  4587  0024  289F                      goto    i1l2743
  4588  0025  28B0                      goto    i1l2745
  4589  0026                     i1l2725:       
  4590                           ;I2C2.c: 154: case 0x5:
  4591                           
  4592                           ;I2C2.c: 153: break;
  4593                           
  4594                           ;I2C2.c: 152: case 0x1:
  4595                           
  4596                           ;I2C2.c: 151: switch (i2c_data_p->operating_state) {
  4597                           
  4598                           
  4599                           ;I2C2.c: 156: i2c_data_p->operating_state = 0x7;
  4600  0026  3007                      movlw   7
  4601  0027  00F0                      movwf   ??_I2C2_Interrupt_Master
  4602  0028  0869                      movf    I2C2@i2c_data_p,w
  4603  0029  3E47                      addlw   71
  4604  002A  0086                      movwf   6
  4605  002B  3001                      movlw   1       ; select bank2/3
  4606  002C  0087                      movwf   7
  4607  002D  0870                      movf    ??_I2C2_Interrupt_Master,w
  4608  002E  0081                      movwf   1
  4609                           
  4610                           ;I2C2.c: 157: SSP2BUF = (i2c_data_p->master_dest_addr << 1) | 0x0;
  4611  002F  0869                      movf    I2C2@i2c_data_p,w
  4612  0030  3E49                      addlw   73
  4613  0031  0086                      movwf   6
  4614  0032  3001                      movlw   1       ; select bank2/3
  4615  0033  0087                      movwf   7
  4616  0034  3501                      lslf    1,w
  4617  0035  0024                      movlb   4       ; select bank4
  4618  0036  0099                      movwf   25      ;volatile
  4619                           
  4620                           ;I2C2.c: 158: break;
  4621  0037  0008                      return
  4622  0038                     i1l341:        
  4623                           ;I2C2.c: 159: case 0x7:
  4624                           
  4625                           
  4626                           ;I2C2.c: 161: if (!SSP2CON2bits.ACKSTAT) {
  4627  0038  0024                      movlb   4       ; select bank4
  4628  0039  1B1E                      btfsc   30,6    ;volatile
  4629  003A  2881                      goto    i1l2737
  4630                           
  4631                           ;I2C2.c: 163: if (i2c_data_p->buffer_in_read_ind < i2c_data_p->buffer_in_len) {
  4632  003B  0020                      movlb   0        ; select bank0
  4633  003C  0869                      movf    I2C2@i2c_data_p,w
  4634  003D  3E22                      addlw   34
  4635  003E  0086                      movwf   6
  4636  003F  3001                      movlw   1       ; select bank2/3
  4637  0040  0087                      movwf   7
  4638  0041  0869                      movf    I2C2@i2c_data_p,w
  4639  0042  3E20                      addlw   32
  4640  0043  0084                      movwf   4
  4641  0044  3001                      movlw   1       ; select bank2/3
  4642  0045  0085                      movwf   5
  4643  0046  0800                      movf    0,w
  4644  0047  0201                      subwf   1,w
  4645  0048  1803                      skipnc
  4646  0049  2864                      goto    i1l2733
  4647                           
  4648                           ;I2C2.c: 164: SSP2BUF = i2c_data_p->buffer_in[i2c_data_p->buffer_in_read_ind];
  4649  004A  0869                      movf    I2C2@i2c_data_p,w
  4650  004B  3E22                      addlw   34
  4651  004C  0086                      movwf   6
  4652  004D  3001                      movlw   1       ; select bank2/3
  4653  004E  0087                      movwf   7
  4654  004F  0801                      movf    1,w
  4655  0050  0769                      addwf   I2C2@i2c_data_p,w
  4656  0051  00F0                      movwf   ??_I2C2_Interrupt_Master
  4657  0052  0870                      movf    ??_I2C2_Interrupt_Master,w
  4658  0053  0086                      movwf   6
  4659  0054  3001                      movlw   1       ; select bank2/3
  4660  0055  0087                      movwf   7
  4661  0056  0801                      movf    1,w
  4662  0057  0024                      movlb   4       ; select bank4
  4663  0058  0099                      movwf   25      ;volatile
  4664                           
  4665                           ;I2C2.c: 165: i2c_data_p->buffer_in_read_ind++;
  4666  0059  3001                      movlw   1
  4667  005A  00F0                      movwf   ??_I2C2_Interrupt_Master
  4668  005B  0020                      movlb   0        ; select bank0
  4669  005C  0869                      movf    I2C2@i2c_data_p,w
  4670  005D  3E22                      addlw   34
  4671  005E  0086                      movwf   6
  4672  005F  3001                      movlw   1       ; select bank2/3
  4673  0060  0087                      movwf   7
  4674  0061  0870                      movf    ??_I2C2_Interrupt_Master,w
  4675  0062  0781                      addwf   1,f
  4676                           
  4677                           ;I2C2.c: 166: } else {
  4678  0063  0008                      return
  4679  0064                     i1l2733:       
  4680                           
  4681                           ;I2C2.c: 168: i2c_data_p->operating_state = 0x1;
  4682  0064  0869                      movf    I2C2@i2c_data_p,w
  4683  0065  3E47                      addlw   71
  4684  0066  0086                      movwf   6
  4685  0067  3001                      movlw   1       ; select bank2/3
  4686  0068  0087                      movwf   7
  4687  0069  0181                      clrf    1
  4688  006A  0A81                      incf    1,f
  4689                           
  4690                           ;I2C2.c: 169: SSP2CON2bits.PEN = 1;
  4691  006B  0024                      movlb   4       ; select bank4
  4692  006C  151E                      bsf     30,2    ;volatile
  4693                           
  4694                           ;I2C2.c: 170: i2c_data_p->master_status = 0x23;
  4695  006D  3023                      movlw   35
  4696  006E  00F0                      movwf   ??_I2C2_Interrupt_Master
  4697  006F  0020                      movlb   0        ; select bank0
  4698  0070  0869                      movf    I2C2@i2c_data_p,w
  4699  0071  3E4A                      addlw   74
  4700  0072  0086                      movwf   6
  4701  0073  3001                      movlw   1       ; select bank2/3
  4702  0074  0087                      movwf   7
  4703  0075  0870                      movf    ??_I2C2_Interrupt_Master,w
  4704  0076  0081                      movwf   1
  4705                           
  4706                           ;I2C2.c: 171: i2c_data_p->return_status = 0x30;
  4707  0077  3030                      movlw   48
  4708  0078  00F0                      movwf   ??_I2C2_Interrupt_Master
  4709  0079  0869                      movf    I2C2@i2c_data_p,w
  4710  007A  3E48                      addlw   72
  4711  007B  0086                      movwf   6
  4712  007C  3001                      movlw   1       ; select bank2/3
  4713  007D  0087                      movwf   7
  4714  007E  0870                      movf    ??_I2C2_Interrupt_Master,w
  4715  007F  0081                      movwf   1
  4716                           
  4717                           ;I2C2.c: 172: }
  4718                           ;I2C2.c: 173: } else {
  4719  0080  0008                      return
  4720  0081                     i1l2737:       
  4721                           
  4722                           ;I2C2.c: 175: i2c_data_p->operating_state = 0x1;
  4723  0081  0020                      movlb   0        ; select bank0
  4724  0082  0869                      movf    I2C2@i2c_data_p,w
  4725  0083  3E47                      addlw   71
  4726  0084  0086                      movwf   6
  4727  0085  3001                      movlw   1       ; select bank2/3
  4728  0086  0087                      movwf   7
  4729  0087  0181                      clrf    1
  4730  0088  0A81                      incf    1,f
  4731                           
  4732                           ;I2C2.c: 176: SSP2CON2bits.PEN = 1;
  4733  0089  0024                      movlb   4       ; select bank4
  4734  008A  151E                      bsf     30,2    ;volatile
  4735                           
  4736                           ;I2C2.c: 177: i2c_data_p->master_status = 0x23;
  4737  008B  3023                      movlw   35
  4738  008C  00F0                      movwf   ??_I2C2_Interrupt_Master
  4739  008D  0020                      movlb   0        ; select bank0
  4740  008E  0869                      movf    I2C2@i2c_data_p,w
  4741  008F  3E4A                      addlw   74
  4742  0090  0086                      movwf   6
  4743  0091  3001                      movlw   1       ; select bank2/3
  4744  0092  0087                      movwf   7
  4745  0093  0870                      movf    ??_I2C2_Interrupt_Master,w
  4746  0094  0081                      movwf   1
  4747                           
  4748                           ;I2C2.c: 178: i2c_data_p->return_status = 0x31;
  4749  0095  3031                      movlw   49
  4750  0096  00F0                      movwf   ??_I2C2_Interrupt_Master
  4751  0097  0869                      movf    I2C2@i2c_data_p,w
  4752  0098  3E48                      addlw   72
  4753  0099  0086                      movwf   6
  4754  009A  3001                      movlw   1       ; select bank2/3
  4755  009B  0087                      movwf   7
  4756  009C  0870                      movf    ??_I2C2_Interrupt_Master,w
  4757  009D  0081                      movwf   1
  4758                           
  4759                           ;I2C2.c: 181: }
  4760                           
  4761                           ;I2C2.c: 179: }
  4762                           ;I2C2.c: 180: break;
  4763  009E  0008                      return
  4764  009F                     i1l2743:       
  4765  009F  0869                      movf    I2C2@i2c_data_p,w
  4766  00A0  3E47                      addlw   71
  4767  00A1  0086                      movwf   6
  4768  00A2  3001                      movlw   1       ; select bank2/3
  4769  00A3  0087                      movwf   7
  4770  00A4  0801                      movf    1,w
  4771                           
  4772                           ; Switch size 1, requested type "space"
  4773                           ; Number of cases is 3, Range of values is 1 to 7
  4774                           ; switch strategies available:
  4775                           ; Name         Instructions Cycles
  4776                           ; simple_byte           10     6 (average)
  4777                           ; direct_byte           23     9 (fixed)
  4778                           ; jumptable            263     9 (fixed)
  4779                           ;      Chosen strategy is simple_byte
  4780  00A5  3A01                      xorlw   1       ; case 1
  4781  00A6  1903                      skipnz
  4782  00A7  2ADC                      goto    i1l381
  4783  00A8  3A04                      xorlw   4       ; case 5
  4784  00A9  1903                      skipnz
  4785  00AA  2826                      goto    i1l2725
  4786  00AB  3A02                      xorlw   2       ; case 7
  4787  00AC  1903                      skipnz
  4788  00AD  2838                      goto    i1l341
  4789  00AE  2ADC                      goto    i1l381
  4790                           
  4791                           ;I2C2.c: 183: } else if (i2c_data_p->master_status == 0x21) {
  4792  00AF  0008                      return
  4793  00B0                     i1l2745:       
  4794  00B0  0869                      movf    I2C2@i2c_data_p,w
  4795  00B1  3E4A                      addlw   74
  4796  00B2  0086                      movwf   6
  4797  00B3  3001                      movlw   1       ; select bank2/3
  4798  00B4  0087                      movwf   7
  4799  00B5  0801                      movf    1,w
  4800  00B6  3A21                      xorlw   33
  4801  00B7  1903                      btfsc   3,2
  4802  00B8  296E                      goto    i1l2791
  4803  00B9  2988                      goto    i1l2793
  4804  00BA                     i1l2749:       
  4805                           ;I2C2.c: 187: case 0x5:
  4806                           
  4807                           ;I2C2.c: 186: break;
  4808                           
  4809                           ;I2C2.c: 185: case 0x1:
  4810                           
  4811                           ;I2C2.c: 184: switch (i2c_data_p->operating_state) {
  4812                           
  4813                           
  4814                           ;I2C2.c: 189: i2c_data_p->operating_state = 0x8;
  4815  00BA  3008                      movlw   8
  4816  00BB  00F0                      movwf   ??_I2C2_Interrupt_Master
  4817  00BC  0869                      movf    I2C2@i2c_data_p,w
  4818  00BD  3E47                      addlw   71
  4819  00BE  0086                      movwf   6
  4820  00BF  3001                      movlw   1       ; select bank2/3
  4821  00C0  0087                      movwf   7
  4822  00C1  0870                      movf    ??_I2C2_Interrupt_Master,w
  4823  00C2  0081                      movwf   1
  4824                           
  4825                           ;I2C2.c: 190: uint8_t tmp = (i2c_data_p->master_dest_addr << 1);
  4826  00C3  0869                      movf    I2C2@i2c_data_p,w
  4827  00C4  3E49                      addlw   73
  4828  00C5  0086                      movwf   6
  4829  00C6  3001                      movlw   1       ; select bank2/3
  4830  00C7  0087                      movwf   7
  4831  00C8  3501                      lslf    1,w
  4832  00C9  00F0                      movwf   ??_I2C2_Interrupt_Master
  4833  00CA  0870                      movf    ??_I2C2_Interrupt_Master,w
  4834  00CB  00F2                      movwf   I2C2_Interrupt_Master@tmp
  4835                           
  4836                           ;I2C2.c: 191: tmp |= 0x01;
  4837  00CC  1472                      bsf     I2C2_Interrupt_Master@tmp,0
  4838                           
  4839                           ;I2C2.c: 192: SSP2BUF = tmp;
  4840  00CD  0872                      movf    I2C2_Interrupt_Master@tmp,w
  4841  00CE  0024                      movlb   4       ; select bank4
  4842  00CF  0099                      movwf   25      ;volatile
  4843                           
  4844                           ;I2C2.c: 193: break;
  4845  00D0  0008                      return
  4846  00D1                     i1l352:        
  4847                           ;I2C2.c: 194: case 0x8:
  4848                           
  4849                           
  4850                           ;I2C2.c: 196: if (!SSP2CON2bits.ACKSTAT) {
  4851  00D1  0024                      movlb   4       ; select bank4
  4852  00D2  1B1E                      btfsc   30,6    ;volatile
  4853  00D3  28E1                      goto    i1l2761
  4854                           
  4855                           ;I2C2.c: 198: i2c_data_p->operating_state = 0x3;
  4856  00D4  3003                      movlw   3
  4857  00D5  00F0                      movwf   ??_I2C2_Interrupt_Master
  4858  00D6  0020                      movlb   0        ; select bank0
  4859  00D7  0869                      movf    I2C2@i2c_data_p,w
  4860  00D8  3E47                      addlw   71
  4861  00D9  0086                      movwf   6
  4862  00DA  3001                      movlw   1       ; select bank2/3
  4863  00DB  0087                      movwf   7
  4864  00DC  0870                      movf    ??_I2C2_Interrupt_Master,w
  4865  00DD  0081                      movwf   1
  4866                           
  4867                           ;I2C2.c: 199: SSP2CON2bits.RCEN = 1;
  4868  00DE  0024                      movlb   4       ; select bank4
  4869  00DF  159E                      bsf     30,3    ;volatile
  4870                           
  4871                           ;I2C2.c: 200: } else {
  4872  00E0  0008                      return
  4873  00E1                     i1l2761:       
  4874                           
  4875                           ;I2C2.c: 202: i2c_data_p->operating_state = 0x1;
  4876  00E1  0020                      movlb   0        ; select bank0
  4877  00E2  0869                      movf    I2C2@i2c_data_p,w
  4878  00E3  3E47                      addlw   71
  4879  00E4  0086                      movwf   6
  4880  00E5  3001                      movlw   1       ; select bank2/3
  4881  00E6  0087                      movwf   7
  4882  00E7  0181                      clrf    1
  4883  00E8  0A81                      incf    1,f
  4884                           
  4885                           ;I2C2.c: 203: SSP2CON2bits.PEN = 1;
  4886  00E9  0024                      movlb   4       ; select bank4
  4887  00EA  151E                      bsf     30,2    ;volatile
  4888                           
  4889                           ;I2C2.c: 204: i2c_data_p->master_status = 0x23;
  4890  00EB  3023                      movlw   35
  4891  00EC  00F0                      movwf   ??_I2C2_Interrupt_Master
  4892  00ED  0020                      movlb   0        ; select bank0
  4893  00EE  0869                      movf    I2C2@i2c_data_p,w
  4894  00EF  3E4A                      addlw   74
  4895  00F0  0086                      movwf   6
  4896  00F1  3001                      movlw   1       ; select bank2/3
  4897  00F2  0087                      movwf   7
  4898  00F3  0870                      movf    ??_I2C2_Interrupt_Master,w
  4899  00F4  0081                      movwf   1
  4900                           
  4901                           ;I2C2.c: 205: i2c_data_p->return_status = 0x33;
  4902  00F5  3033                      movlw   51
  4903  00F6  00F0                      movwf   ??_I2C2_Interrupt_Master
  4904  00F7  0869                      movf    I2C2@i2c_data_p,w
  4905  00F8  3E48                      addlw   72
  4906  00F9  0086                      movwf   6
  4907  00FA  3001                      movlw   1       ; select bank2/3
  4908  00FB  0087                      movwf   7
  4909  00FC  0870                      movf    ??_I2C2_Interrupt_Master,w
  4910  00FD  0081                      movwf   1
  4911                           
  4912                           ;I2C2.c: 206: }
  4913                           ;I2C2.c: 207: break;
  4914  00FE  0008                      return
  4915  00FF                     i1l2765:       
  4916                           ;I2C2.c: 208: case 0x3:
  4917                           
  4918                           
  4919                           ;I2C2.c: 211: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = SSP2BUF;
  4920  00FF  0024                      movlb   4       ; select bank4
  4921  0100  0819                      movf    25,w    ;volatile
  4922  0101  00F0                      movwf   ??_I2C2_Interrupt_Master
  4923  0102  0020                      movlb   0        ; select bank0
  4924  0103  0869                      movf    I2C2@i2c_data_p,w
  4925  0104  3E23                      addlw   35
  4926  0105  0086                      movwf   6
  4927  0106  3001                      movlw   1       ; select bank2/3
  4928  0107  0087                      movwf   7
  4929  0108  0801                      movf    1,w
  4930  0109  0769                      addwf   I2C2@i2c_data_p,w
  4931  010A  00F1                      movwf   ??_I2C2_Interrupt_Master+1
  4932  010B  0871                      movf    ??_I2C2_Interrupt_Master+1,w
  4933  010C  0086                      movwf   6
  4934  010D  3001                      movlw   1       ; select bank2/3
  4935  010E  0087                      movwf   7
  4936  010F  0870                      movf    ??_I2C2_Interrupt_Master,w
  4937  0110  0081                      movwf   1
  4938                           
  4939                           ;I2C2.c: 212: i2c_data_p->buffer_in_write_ind++;
  4940  0111  3001                      movlw   1
  4941  0112  00F0                      movwf   ??_I2C2_Interrupt_Master
  4942  0113  0869                      movf    I2C2@i2c_data_p,w
  4943  0114  3E23                      addlw   35
  4944  0115  0086                      movwf   6
  4945  0116  3001                      movlw   1       ; select bank2/3
  4946  0117  0087                      movwf   7
  4947  0118  0870                      movf    ??_I2C2_Interrupt_Master,w
  4948  0119  0781                      addwf   1,f
  4949                           
  4950                           ;I2C2.c: 213: if (i2c_data_p->buffer_in_write_ind < i2c_data_p->buffer_in_len) {
  4951  011A  0869                      movf    I2C2@i2c_data_p,w
  4952  011B  3E23                      addlw   35
  4953  011C  0086                      movwf   6
  4954  011D  3001                      movlw   1       ; select bank2/3
  4955  011E  0087                      movwf   7
  4956  011F  0869                      movf    I2C2@i2c_data_p,w
  4957  0120  3E20                      addlw   32
  4958  0121  0084                      movwf   4
  4959  0122  3001                      movlw   1       ; select bank2/3
  4960  0123  0085                      movwf   5
  4961  0124  0800                      movf    0,w
  4962  0125  0201                      subwf   1,w
  4963  0126  1803                      skipnc
  4964  0127  2935                      goto    i1l2775
  4965                           
  4966                           ;I2C2.c: 215: i2c_data_p->operating_state = 0xA;
  4967  0128  300A                      movlw   10
  4968  0129  00F0                      movwf   ??_I2C2_Interrupt_Master
  4969  012A  0869                      movf    I2C2@i2c_data_p,w
  4970  012B  3E47                      addlw   71
  4971  012C  0086                      movwf   6
  4972  012D  3001                      movlw   1       ; select bank2/3
  4973  012E  0087                      movwf   7
  4974  012F  0870                      movf    ??_I2C2_Interrupt_Master,w
  4975  0130  0081                      movwf   1
  4976                           
  4977                           ;I2C2.c: 216: SSP2CON2bits.ACKDT = 0;
  4978  0131  0024                      movlb   4       ; select bank4
  4979  0132  129E                      bcf     30,5    ;volatile
  4980                           
  4981                           ;I2C2.c: 217: SSP2CON2bits.ACKEN = 1;
  4982  0133  161E                      bsf     30,4    ;volatile
  4983                           
  4984                           ;I2C2.c: 218: } else {
  4985  0134  0008                      return
  4986  0135                     i1l2775:       
  4987                           
  4988                           ;I2C2.c: 220: i2c_data_p->operating_state = 0xB;
  4989  0135  300B                      movlw   11
  4990  0136  00F0                      movwf   ??_I2C2_Interrupt_Master
  4991  0137  0020                      movlb   0        ; select bank0
  4992  0138  0869                      movf    I2C2@i2c_data_p,w
  4993  0139  3E47                      addlw   71
  4994  013A  0086                      movwf   6
  4995  013B  3001                      movlw   1       ; select bank2/3
  4996  013C  0087                      movwf   7
  4997  013D  0870                      movf    ??_I2C2_Interrupt_Master,w
  4998  013E  0081                      movwf   1
  4999                           
  5000                           ;I2C2.c: 221: SSP2CON2bits.ACKDT = 1;
  5001  013F  0024                      movlb   4       ; select bank4
  5002  0140  169E                      bsf     30,5    ;volatile
  5003                           
  5004                           ;I2C2.c: 222: SSP2CON2bits.ACKEN = 1;
  5005  0141  161E                      bsf     30,4    ;volatile
  5006                           
  5007                           ;I2C2.c: 223: }
  5008                           ;I2C2.c: 224: break;
  5009  0142  0008                      return
  5010  0143                     i1l2781:       
  5011                           ;I2C2.c: 225: case 0xA:
  5012                           
  5013                           
  5014                           ;I2C2.c: 227: i2c_data_p->operating_state = 0x3;
  5015  0143  3003                      movlw   3
  5016  0144  00F0                      movwf   ??_I2C2_Interrupt_Master
  5017  0145  0020                      movlb   0        ; select bank0
  5018  0146  0869                      movf    I2C2@i2c_data_p,w
  5019  0147  3E47                      addlw   71
  5020  0148  0086                      movwf   6
  5021  0149  3001                      movlw   1       ; select bank2/3
  5022  014A  0087                      movwf   7
  5023  014B  0870                      movf    ??_I2C2_Interrupt_Master,w
  5024  014C  0081                      movwf   1
  5025                           
  5026                           ;I2C2.c: 228: SSP2CON2bits.RCEN = 1;
  5027  014D  0024                      movlb   4       ; select bank4
  5028  014E  159E                      bsf     30,3    ;volatile
  5029                           
  5030                           ;I2C2.c: 229: break;
  5031  014F  0008                      return
  5032  0150                     i1l2785:       
  5033                           ;I2C2.c: 230: case 0xB:
  5034                           
  5035                           
  5036                           ;I2C2.c: 232: i2c_data_p->operating_state = 0x1;
  5037  0150  0020                      movlb   0        ; select bank0
  5038  0151  0869                      movf    I2C2@i2c_data_p,w
  5039  0152  3E47                      addlw   71
  5040  0153  0086                      movwf   6
  5041  0154  3001                      movlw   1       ; select bank2/3
  5042  0155  0087                      movwf   7
  5043  0156  0181                      clrf    1
  5044  0157  0A81                      incf    1,f
  5045                           
  5046                           ;I2C2.c: 233: SSP2CON2bits.PEN = 1;
  5047  0158  0024                      movlb   4       ; select bank4
  5048  0159  151E                      bsf     30,2    ;volatile
  5049                           
  5050                           ;I2C2.c: 234: i2c_data_p->master_status = 0x23;
  5051  015A  3023                      movlw   35
  5052  015B  00F0                      movwf   ??_I2C2_Interrupt_Master
  5053  015C  0020                      movlb   0        ; select bank0
  5054  015D  0869                      movf    I2C2@i2c_data_p,w
  5055  015E  3E4A                      addlw   74
  5056  015F  0086                      movwf   6
  5057  0160  3001                      movlw   1       ; select bank2/3
  5058  0161  0087                      movwf   7
  5059  0162  0870                      movf    ??_I2C2_Interrupt_Master,w
  5060  0163  0081                      movwf   1
  5061                           
  5062                           ;I2C2.c: 235: i2c_data_p->return_status = 0x32;
  5063  0164  3032                      movlw   50
  5064  0165  00F0                      movwf   ??_I2C2_Interrupt_Master
  5065  0166  0869                      movf    I2C2@i2c_data_p,w
  5066  0167  3E48                      addlw   72
  5067  0168  0086                      movwf   6
  5068  0169  3001                      movlw   1       ; select bank2/3
  5069  016A  0087                      movwf   7
  5070  016B  0870                      movf    ??_I2C2_Interrupt_Master,w
  5071  016C  0081                      movwf   1
  5072                           
  5073                           ;I2C2.c: 237: }
  5074                           
  5075                           ;I2C2.c: 236: break;
  5076  016D  0008                      return
  5077  016E                     i1l2791:       
  5078  016E  0869                      movf    I2C2@i2c_data_p,w
  5079  016F  3E47                      addlw   71
  5080  0170  0086                      movwf   6
  5081  0171  3001                      movlw   1       ; select bank2/3
  5082  0172  0087                      movwf   7
  5083  0173  0801                      movf    1,w
  5084                           
  5085                           ; Switch size 1, requested type "space"
  5086                           ; Number of cases is 6, Range of values is 1 to 11
  5087                           ; switch strategies available:
  5088                           ; Name         Instructions Cycles
  5089                           ; simple_byte           19    10 (average)
  5090                           ; direct_byte           31     9 (fixed)
  5091                           ; jumptable            263     9 (fixed)
  5092                           ;      Chosen strategy is simple_byte
  5093  0174  3A01                      xorlw   1       ; case 1
  5094  0175  1903                      skipnz
  5095  0176  2ADC                      goto    i1l381
  5096  0177  3A02                      xorlw   2       ; case 3
  5097  0178  1903                      skipnz
  5098  0179  28FF                      goto    i1l2765
  5099  017A  3A06                      xorlw   6       ; case 5
  5100  017B  1903                      skipnz
  5101  017C  28BA                      goto    i1l2749
  5102  017D  3A0D                      xorlw   13      ; case 8
  5103  017E  1903                      skipnz
  5104  017F  28D1                      goto    i1l352
  5105  0180  3A02                      xorlw   2       ; case 10
  5106  0181  1903                      skipnz
  5107  0182  2943                      goto    i1l2781
  5108  0183  3A01                      xorlw   1       ; case 11
  5109  0184  1903                      skipnz
  5110  0185  2950                      goto    i1l2785
  5111  0186  2ADC                      goto    i1l381
  5112                           
  5113                           ;I2C2.c: 238: } else if (i2c_data_p->master_status == 0x22) {
  5114  0187  0008                      return
  5115  0188                     i1l2793:       
  5116  0188  0869                      movf    I2C2@i2c_data_p,w
  5117  0189  3E4A                      addlw   74
  5118  018A  0086                      movwf   6
  5119  018B  3001                      movlw   1       ; select bank2/3
  5120  018C  0087                      movwf   7
  5121  018D  0801                      movf    1,w
  5122  018E  3A22                      xorlw   34
  5123  018F  1D03                      skipz
  5124  0190  0008                      return
  5125  0191  2AB9                      goto    i1l2857
  5126  0192                     i1l2797:       
  5127                           ;I2C2.c: 242: case 0x5:
  5128                           
  5129                           ;I2C2.c: 241: break;
  5130                           
  5131                           ;I2C2.c: 240: case 0x1:
  5132                           
  5133                           ;I2C2.c: 239: switch (i2c_data_p->operating_state) {
  5134                           
  5135                           
  5136                           ;I2C2.c: 244: i2c_data_p->operating_state = 0x7;
  5137  0192  3007                      movlw   7
  5138  0193  00F0                      movwf   ??_I2C2_Interrupt_Master
  5139  0194  0869                      movf    I2C2@i2c_data_p,w
  5140  0195  3E47                      addlw   71
  5141  0196  0086                      movwf   6
  5142  0197  3001                      movlw   1       ; select bank2/3
  5143  0198  0087                      movwf   7
  5144  0199  0870                      movf    ??_I2C2_Interrupt_Master,w
  5145  019A  0081                      movwf   1
  5146                           
  5147                           ;I2C2.c: 245: SSP2BUF = (i2c_data_p->master_dest_addr << 1) | 0x0;
  5148  019B  0869                      movf    I2C2@i2c_data_p,w
  5149  019C  3E49                      addlw   73
  5150  019D  0086                      movwf   6
  5151  019E  3001                      movlw   1       ; select bank2/3
  5152  019F  0087                      movwf   7
  5153  01A0  3501                      lslf    1,w
  5154  01A1  0024                      movlb   4       ; select bank4
  5155  01A2  0099                      movwf   25      ;volatile
  5156                           
  5157                           ;I2C2.c: 246: break;
  5158  01A3  0008                      return
  5159  01A4                     i1l366:        
  5160                           ;I2C2.c: 247: case 0x7:
  5161                           
  5162                           
  5163                           ;I2C2.c: 249: if (!SSP2CON2bits.ACKSTAT) {
  5164  01A4  0024                      movlb   4       ; select bank4
  5165  01A5  1B1E                      btfsc   30,6    ;volatile
  5166  01A6  29BA                      goto    i1l2803
  5167                           
  5168                           ;I2C2.c: 251: SSP2BUF = i2c_data_p->buffer_in[0];
  5169  01A7  0020                      movlb   0        ; select bank0
  5170  01A8  0869                      movf    I2C2@i2c_data_p,w
  5171  01A9  0086                      movwf   6
  5172  01AA  3001                      movlw   1       ; select bank2/3
  5173  01AB  0087                      movwf   7
  5174  01AC  0801                      movf    1,w
  5175  01AD  0024                      movlb   4       ; select bank4
  5176  01AE  0099                      movwf   25      ;volatile
  5177                           
  5178                           ;I2C2.c: 252: i2c_data_p->operating_state = 0x9;
  5179  01AF  3009                      movlw   9
  5180  01B0  00F0                      movwf   ??_I2C2_Interrupt_Master
  5181  01B1  0020                      movlb   0        ; select bank0
  5182  01B2  0869                      movf    I2C2@i2c_data_p,w
  5183  01B3  3E47                      addlw   71
  5184  01B4  0086                      movwf   6
  5185  01B5  3001                      movlw   1       ; select bank2/3
  5186  01B6  0087                      movwf   7
  5187  01B7  0870                      movf    ??_I2C2_Interrupt_Master,w
  5188  01B8  0081                      movwf   1
  5189                           
  5190                           ;I2C2.c: 253: } else {
  5191  01B9  0008                      return
  5192  01BA                     i1l2803:       
  5193                           
  5194                           ;I2C2.c: 255: i2c_data_p->operating_state = 0x1;
  5195  01BA  0020                      movlb   0        ; select bank0
  5196  01BB  0869                      movf    I2C2@i2c_data_p,w
  5197  01BC  3E47                      addlw   71
  5198  01BD  0086                      movwf   6
  5199  01BE  3001                      movlw   1       ; select bank2/3
  5200  01BF  0087                      movwf   7
  5201  01C0  0181                      clrf    1
  5202  01C1  0A81                      incf    1,f
  5203                           
  5204                           ;I2C2.c: 256: SSP2CON2bits.PEN = 1;
  5205  01C2  0024                      movlb   4       ; select bank4
  5206  01C3  151E                      bsf     30,2    ;volatile
  5207                           
  5208                           ;I2C2.c: 257: i2c_data_p->master_status = 0x23;
  5209  01C4  3023                      movlw   35
  5210  01C5  00F0                      movwf   ??_I2C2_Interrupt_Master
  5211  01C6  0020                      movlb   0        ; select bank0
  5212  01C7  0869                      movf    I2C2@i2c_data_p,w
  5213  01C8  3E4A                      addlw   74
  5214  01C9  0086                      movwf   6
  5215  01CA  3001                      movlw   1       ; select bank2/3
  5216  01CB  0087                      movwf   7
  5217  01CC  0870                      movf    ??_I2C2_Interrupt_Master,w
  5218  01CD  0081                      movwf   1
  5219                           
  5220                           ;I2C2.c: 258: i2c_data_p->return_status = 0x31;
  5221  01CE  3031                      movlw   49
  5222  01CF  00F0                      movwf   ??_I2C2_Interrupt_Master
  5223  01D0  0869                      movf    I2C2@i2c_data_p,w
  5224  01D1  3E48                      addlw   72
  5225  01D2  0086                      movwf   6
  5226  01D3  3001                      movlw   1       ; select bank2/3
  5227  01D4  0087                      movwf   7
  5228  01D5  0870                      movf    ??_I2C2_Interrupt_Master,w
  5229  01D6  0081                      movwf   1
  5230                           
  5231                           ;I2C2.c: 259: }
  5232                           ;I2C2.c: 260: break;
  5233  01D7  0008                      return
  5234  01D8                     i1l369:        
  5235                           ;I2C2.c: 261: case 0x9:
  5236                           
  5237                           
  5238                           ;I2C2.c: 262: if (!SSP2CON2bits.ACKSTAT) {
  5239  01D8  0024                      movlb   4       ; select bank4
  5240  01D9  1B1E                      btfsc   30,6    ;volatile
  5241  01DA  29E7                      goto    i1l2811
  5242                           
  5243                           ;I2C2.c: 263: SSP2CON2bits.RSEN = 1;
  5244  01DB  149E                      bsf     30,1    ;volatile
  5245                           
  5246                           ;I2C2.c: 264: i2c_data_p->operating_state = 0x6;
  5247  01DC  3006                      movlw   6
  5248  01DD  00F0                      movwf   ??_I2C2_Interrupt_Master
  5249  01DE  0020                      movlb   0        ; select bank0
  5250  01DF  0869                      movf    I2C2@i2c_data_p,w
  5251  01E0  3E47                      addlw   71
  5252  01E1  0086                      movwf   6
  5253  01E2  3001                      movlw   1       ; select bank2/3
  5254  01E3  0087                      movwf   7
  5255  01E4  0870                      movf    ??_I2C2_Interrupt_Master,w
  5256  01E5  0081                      movwf   1
  5257                           
  5258                           ;I2C2.c: 265: } else {
  5259  01E6  0008                      return
  5260  01E7                     i1l2811:       
  5261                           
  5262                           ;I2C2.c: 267: i2c_data_p->operating_state = 0x1;
  5263  01E7  0020                      movlb   0        ; select bank0
  5264  01E8  0869                      movf    I2C2@i2c_data_p,w
  5265  01E9  3E47                      addlw   71
  5266  01EA  0086                      movwf   6
  5267  01EB  3001                      movlw   1       ; select bank2/3
  5268  01EC  0087                      movwf   7
  5269  01ED  0181                      clrf    1
  5270  01EE  0A81                      incf    1,f
  5271                           
  5272                           ;I2C2.c: 268: SSP2CON2bits.PEN = 1;
  5273  01EF  0024                      movlb   4       ; select bank4
  5274  01F0  151E                      bsf     30,2    ;volatile
  5275                           
  5276                           ;I2C2.c: 269: i2c_data_p->master_status = 0x23;
  5277  01F1  3023                      movlw   35
  5278  01F2  00F0                      movwf   ??_I2C2_Interrupt_Master
  5279  01F3  0020                      movlb   0        ; select bank0
  5280  01F4  0869                      movf    I2C2@i2c_data_p,w
  5281  01F5  3E4A                      addlw   74
  5282  01F6  0086                      movwf   6
  5283  01F7  3001                      movlw   1       ; select bank2/3
  5284  01F8  0087                      movwf   7
  5285  01F9  0870                      movf    ??_I2C2_Interrupt_Master,w
  5286  01FA  0081                      movwf   1
  5287                           
  5288                           ;I2C2.c: 270: i2c_data_p->return_status = 0x31;
  5289  01FB  3031                      movlw   49
  5290  01FC  00F0                      movwf   ??_I2C2_Interrupt_Master
  5291  01FD  0869                      movf    I2C2@i2c_data_p,w
  5292  01FE  3E48                      addlw   72
  5293  01FF  0086                      movwf   6
  5294  0200  3001                      movlw   1       ; select bank2/3
  5295  0201  0087                      movwf   7
  5296  0202  0870                      movf    ??_I2C2_Interrupt_Master,w
  5297  0203  0081                      movwf   1
  5298                           
  5299                           ;I2C2.c: 271: }
  5300                           ;I2C2.c: 272: break;
  5301  0204  0008                      return
  5302  0205                     i1l2815:       
  5303                           ;I2C2.c: 273: case 0x6:
  5304                           
  5305                           
  5306                           ;I2C2.c: 275: i2c_data_p->operating_state = 0x8;
  5307  0205  3008                      movlw   8
  5308  0206  00F0                      movwf   ??_I2C2_Interrupt_Master
  5309  0207  0869                      movf    I2C2@i2c_data_p,w
  5310  0208  3E47                      addlw   71
  5311  0209  0086                      movwf   6
  5312  020A  3001                      movlw   1       ; select bank2/3
  5313  020B  0087                      movwf   7
  5314  020C  0870                      movf    ??_I2C2_Interrupt_Master,w
  5315  020D  0081                      movwf   1
  5316                           
  5317                           ;I2C2.c: 276: uint8_t tmp = (i2c_data_p->master_dest_addr << 1);
  5318  020E  0869                      movf    I2C2@i2c_data_p,w
  5319  020F  3E49                      addlw   73
  5320  0210  0086                      movwf   6
  5321  0211  3001                      movlw   1       ; select bank2/3
  5322  0212  0087                      movwf   7
  5323  0213  3501                      lslf    1,w
  5324  0214  00F0                      movwf   ??_I2C2_Interrupt_Master
  5325  0215  0870                      movf    ??_I2C2_Interrupt_Master,w
  5326  0216  00F3                      movwf   I2C2_Interrupt_Master@tmp_923
  5327                           
  5328                           ;I2C2.c: 277: tmp |= 0x01;
  5329  0217  1473                      bsf     I2C2_Interrupt_Master@tmp_923,0
  5330                           
  5331                           ;I2C2.c: 278: SSP2BUF = tmp;
  5332  0218  0873                      movf    I2C2_Interrupt_Master@tmp_923,w
  5333  0219  0024                      movlb   4       ; select bank4
  5334  021A  0099                      movwf   25      ;volatile
  5335                           
  5336                           ;I2C2.c: 279: break;
  5337  021B  0008                      return
  5338  021C                     i1l373:        
  5339                           ;I2C2.c: 280: case 0x8:
  5340                           
  5341                           
  5342                           ;I2C2.c: 282: if (!SSP2CON2bits.ACKSTAT) {
  5343  021C  0024                      movlb   4       ; select bank4
  5344  021D  1B1E                      btfsc   30,6    ;volatile
  5345  021E  2A2C                      goto    i1l2827
  5346                           
  5347                           ;I2C2.c: 284: i2c_data_p->operating_state = 0x3;
  5348  021F  3003                      movlw   3
  5349  0220  00F0                      movwf   ??_I2C2_Interrupt_Master
  5350  0221  0020                      movlb   0        ; select bank0
  5351  0222  0869                      movf    I2C2@i2c_data_p,w
  5352  0223  3E47                      addlw   71
  5353  0224  0086                      movwf   6
  5354  0225  3001                      movlw   1       ; select bank2/3
  5355  0226  0087                      movwf   7
  5356  0227  0870                      movf    ??_I2C2_Interrupt_Master,w
  5357  0228  0081                      movwf   1
  5358                           
  5359                           ;I2C2.c: 285: SSP2CON2bits.RCEN = 1;
  5360  0229  0024                      movlb   4       ; select bank4
  5361  022A  159E                      bsf     30,3    ;volatile
  5362                           
  5363                           ;I2C2.c: 286: } else {
  5364  022B  0008                      return
  5365  022C                     i1l2827:       
  5366                           
  5367                           ;I2C2.c: 288: i2c_data_p->operating_state = 0x1;
  5368  022C  0020                      movlb   0        ; select bank0
  5369  022D  0869                      movf    I2C2@i2c_data_p,w
  5370  022E  3E47                      addlw   71
  5371  022F  0086                      movwf   6
  5372  0230  3001                      movlw   1       ; select bank2/3
  5373  0231  0087                      movwf   7
  5374  0232  0181                      clrf    1
  5375  0233  0A81                      incf    1,f
  5376                           
  5377                           ;I2C2.c: 289: SSP2CON2bits.PEN = 1;
  5378  0234  0024                      movlb   4       ; select bank4
  5379  0235  151E                      bsf     30,2    ;volatile
  5380                           
  5381                           ;I2C2.c: 290: i2c_data_p->master_status = 0x23;
  5382  0236  3023                      movlw   35
  5383  0237  00F0                      movwf   ??_I2C2_Interrupt_Master
  5384  0238  0020                      movlb   0        ; select bank0
  5385  0239  0869                      movf    I2C2@i2c_data_p,w
  5386  023A  3E4A                      addlw   74
  5387  023B  0086                      movwf   6
  5388  023C  3001                      movlw   1       ; select bank2/3
  5389  023D  0087                      movwf   7
  5390  023E  0870                      movf    ??_I2C2_Interrupt_Master,w
  5391  023F  0081                      movwf   1
  5392                           
  5393                           ;I2C2.c: 291: i2c_data_p->return_status = 0x33;
  5394  0240  3033                      movlw   51
  5395  0241  00F0                      movwf   ??_I2C2_Interrupt_Master
  5396  0242  0869                      movf    I2C2@i2c_data_p,w
  5397  0243  3E48                      addlw   72
  5398  0244  0086                      movwf   6
  5399  0245  3001                      movlw   1       ; select bank2/3
  5400  0246  0087                      movwf   7
  5401  0247  0870                      movf    ??_I2C2_Interrupt_Master,w
  5402  0248  0081                      movwf   1
  5403                           
  5404                           ;I2C2.c: 292: }
  5405                           ;I2C2.c: 293: break;
  5406  0249  0008                      return
  5407  024A                     i1l2831:       
  5408                           ;I2C2.c: 294: case 0x3:
  5409                           
  5410                           
  5411                           ;I2C2.c: 297: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = SSP2BUF;
  5412  024A  0024                      movlb   4       ; select bank4
  5413  024B  0819                      movf    25,w    ;volatile
  5414  024C  00F0                      movwf   ??_I2C2_Interrupt_Master
  5415  024D  0020                      movlb   0        ; select bank0
  5416  024E  0869                      movf    I2C2@i2c_data_p,w
  5417  024F  3E23                      addlw   35
  5418  0250  0086                      movwf   6
  5419  0251  3001                      movlw   1       ; select bank2/3
  5420  0252  0087                      movwf   7
  5421  0253  0801                      movf    1,w
  5422  0254  0769                      addwf   I2C2@i2c_data_p,w
  5423  0255  00F1                      movwf   ??_I2C2_Interrupt_Master+1
  5424  0256  0871                      movf    ??_I2C2_Interrupt_Master+1,w
  5425  0257  0086                      movwf   6
  5426  0258  3001                      movlw   1       ; select bank2/3
  5427  0259  0087                      movwf   7
  5428  025A  0870                      movf    ??_I2C2_Interrupt_Master,w
  5429  025B  0081                      movwf   1
  5430                           
  5431                           ;I2C2.c: 298: i2c_data_p->buffer_in_write_ind++;
  5432  025C  3001                      movlw   1
  5433  025D  00F0                      movwf   ??_I2C2_Interrupt_Master
  5434  025E  0869                      movf    I2C2@i2c_data_p,w
  5435  025F  3E23                      addlw   35
  5436  0260  0086                      movwf   6
  5437  0261  3001                      movlw   1       ; select bank2/3
  5438  0262  0087                      movwf   7
  5439  0263  0870                      movf    ??_I2C2_Interrupt_Master,w
  5440  0264  0781                      addwf   1,f
  5441                           
  5442                           ;I2C2.c: 299: if (i2c_data_p->buffer_in_write_ind < i2c_data_p->buffer_in_len) {
  5443  0265  0869                      movf    I2C2@i2c_data_p,w
  5444  0266  3E23                      addlw   35
  5445  0267  0086                      movwf   6
  5446  0268  3001                      movlw   1       ; select bank2/3
  5447  0269  0087                      movwf   7
  5448  026A  0869                      movf    I2C2@i2c_data_p,w
  5449  026B  3E20                      addlw   32
  5450  026C  0084                      movwf   4
  5451  026D  3001                      movlw   1       ; select bank2/3
  5452  026E  0085                      movwf   5
  5453  026F  0800                      movf    0,w
  5454  0270  0201                      subwf   1,w
  5455  0271  1803                      skipnc
  5456  0272  2A80                      goto    i1l2841
  5457                           
  5458                           ;I2C2.c: 301: i2c_data_p->operating_state = 0xA;
  5459  0273  300A                      movlw   10
  5460  0274  00F0                      movwf   ??_I2C2_Interrupt_Master
  5461  0275  0869                      movf    I2C2@i2c_data_p,w
  5462  0276  3E47                      addlw   71
  5463  0277  0086                      movwf   6
  5464  0278  3001                      movlw   1       ; select bank2/3
  5465  0279  0087                      movwf   7
  5466  027A  0870                      movf    ??_I2C2_Interrupt_Master,w
  5467  027B  0081                      movwf   1
  5468                           
  5469                           ;I2C2.c: 302: SSP2CON2bits.ACKDT = 0;
  5470  027C  0024                      movlb   4       ; select bank4
  5471  027D  129E                      bcf     30,5    ;volatile
  5472                           
  5473                           ;I2C2.c: 303: SSP2CON2bits.ACKEN = 1;
  5474  027E  161E                      bsf     30,4    ;volatile
  5475                           
  5476                           ;I2C2.c: 304: } else {
  5477  027F  0008                      return
  5478  0280                     i1l2841:       
  5479                           
  5480                           ;I2C2.c: 306: i2c_data_p->operating_state = 0xB;
  5481  0280  300B                      movlw   11
  5482  0281  00F0                      movwf   ??_I2C2_Interrupt_Master
  5483  0282  0020                      movlb   0        ; select bank0
  5484  0283  0869                      movf    I2C2@i2c_data_p,w
  5485  0284  3E47                      addlw   71
  5486  0285  0086                      movwf   6
  5487  0286  3001                      movlw   1       ; select bank2/3
  5488  0287  0087                      movwf   7
  5489  0288  0870                      movf    ??_I2C2_Interrupt_Master,w
  5490  0289  0081                      movwf   1
  5491                           
  5492                           ;I2C2.c: 307: SSP2CON2bits.ACKDT = 1;
  5493  028A  0024                      movlb   4       ; select bank4
  5494  028B  169E                      bsf     30,5    ;volatile
  5495                           
  5496                           ;I2C2.c: 308: SSP2CON2bits.ACKEN = 1;
  5497  028C  161E                      bsf     30,4    ;volatile
  5498                           
  5499                           ;I2C2.c: 309: }
  5500                           ;I2C2.c: 310: break;
  5501  028D  0008                      return
  5502  028E                     i1l2847:       
  5503                           ;I2C2.c: 311: case 0xA:
  5504                           
  5505                           
  5506                           ;I2C2.c: 313: i2c_data_p->operating_state = 0x3;
  5507  028E  3003                      movlw   3
  5508  028F  00F0                      movwf   ??_I2C2_Interrupt_Master
  5509  0290  0020                      movlb   0        ; select bank0
  5510  0291  0869                      movf    I2C2@i2c_data_p,w
  5511  0292  3E47                      addlw   71
  5512  0293  0086                      movwf   6
  5513  0294  3001                      movlw   1       ; select bank2/3
  5514  0295  0087                      movwf   7
  5515  0296  0870                      movf    ??_I2C2_Interrupt_Master,w
  5516  0297  0081                      movwf   1
  5517                           
  5518                           ;I2C2.c: 314: SSP2CON2bits.RCEN = 1;
  5519  0298  0024                      movlb   4       ; select bank4
  5520  0299  159E                      bsf     30,3    ;volatile
  5521                           
  5522                           ;I2C2.c: 315: break;
  5523  029A  0008                      return
  5524  029B                     i1l2851:       
  5525                           ;I2C2.c: 316: case 0xB:
  5526                           
  5527                           
  5528                           ;I2C2.c: 318: i2c_data_p->operating_state = 0x1;
  5529  029B  0020                      movlb   0        ; select bank0
  5530  029C  0869                      movf    I2C2@i2c_data_p,w
  5531  029D  3E47                      addlw   71
  5532  029E  0086                      movwf   6
  5533  029F  3001                      movlw   1       ; select bank2/3
  5534  02A0  0087                      movwf   7
  5535  02A1  0181                      clrf    1
  5536  02A2  0A81                      incf    1,f
  5537                           
  5538                           ;I2C2.c: 319: SSP2CON2bits.PEN = 1;
  5539  02A3  0024                      movlb   4       ; select bank4
  5540  02A4  151E                      bsf     30,2    ;volatile
  5541                           
  5542                           ;I2C2.c: 320: i2c_data_p->master_status = 0x23;
  5543  02A5  3023                      movlw   35
  5544  02A6  00F0                      movwf   ??_I2C2_Interrupt_Master
  5545  02A7  0020                      movlb   0        ; select bank0
  5546  02A8  0869                      movf    I2C2@i2c_data_p,w
  5547  02A9  3E4A                      addlw   74
  5548  02AA  0086                      movwf   6
  5549  02AB  3001                      movlw   1       ; select bank2/3
  5550  02AC  0087                      movwf   7
  5551  02AD  0870                      movf    ??_I2C2_Interrupt_Master,w
  5552  02AE  0081                      movwf   1
  5553                           
  5554                           ;I2C2.c: 321: i2c_data_p->return_status = 0x32;
  5555  02AF  3032                      movlw   50
  5556  02B0  00F0                      movwf   ??_I2C2_Interrupt_Master
  5557  02B1  0869                      movf    I2C2@i2c_data_p,w
  5558  02B2  3E48                      addlw   72
  5559  02B3  0086                      movwf   6
  5560  02B4  3001                      movlw   1       ; select bank2/3
  5561  02B5  0087                      movwf   7
  5562  02B6  0870                      movf    ??_I2C2_Interrupt_Master,w
  5563  02B7  0081                      movwf   1
  5564                           
  5565                           ;I2C2.c: 323: }
  5566                           
  5567                           ;I2C2.c: 322: break;
  5568  02B8  0008                      return
  5569  02B9                     i1l2857:       
  5570  02B9  0869                      movf    I2C2@i2c_data_p,w
  5571  02BA  3E47                      addlw   71
  5572  02BB  0086                      movwf   6
  5573  02BC  3001                      movlw   1       ; select bank2/3
  5574  02BD  0087                      movwf   7
  5575  02BE  0801                      movf    1,w
  5576                           
  5577                           ; Switch size 1, requested type "space"
  5578                           ; Number of cases is 9, Range of values is 1 to 11
  5579                           ; switch strategies available:
  5580                           ; Name         Instructions Cycles
  5581                           ; simple_byte           28    15 (average)
  5582                           ; direct_byte           31     9 (fixed)
  5583                           ; jumptable            263     9 (fixed)
  5584                           ;      Chosen strategy is simple_byte
  5585  02BF  3A01                      xorlw   1       ; case 1
  5586  02C0  1903                      skipnz
  5587  02C1  2ADC                      goto    i1l381
  5588  02C2  3A02                      xorlw   2       ; case 3
  5589  02C3  1903                      skipnz
  5590  02C4  2A4A                      goto    i1l2831
  5591  02C5  3A06                      xorlw   6       ; case 5
  5592  02C6  1903                      skipnz
  5593  02C7  2992                      goto    i1l2797
  5594  02C8  3A03                      xorlw   3       ; case 6
  5595  02C9  1903                      skipnz
  5596  02CA  2A05                      goto    i1l2815
  5597  02CB  3A01                      xorlw   1       ; case 7
  5598  02CC  1903                      skipnz
  5599  02CD  29A4                      goto    i1l366
  5600  02CE  3A0F                      xorlw   15      ; case 8
  5601  02CF  1903                      skipnz
  5602  02D0  2A1C                      goto    i1l373
  5603  02D1  3A01                      xorlw   1       ; case 9
  5604  02D2  1903                      skipnz
  5605  02D3  29D8                      goto    i1l369
  5606  02D4  3A03                      xorlw   3       ; case 10
  5607  02D5  1903                      skipnz
  5608  02D6  2A8E                      goto    i1l2847
  5609  02D7  3A01                      xorlw   1       ; case 11
  5610  02D8  1903                      skipnz
  5611  02D9  2A9B                      goto    i1l2851
  5612  02DA  2ADC                      goto    i1l381
  5613  02DB  0008                      return
  5614  02DC                     i1l381:        
  5615  02DC  0008                      return
  5616  02DD                     __end_of_I2C2_Interrupt_Master:        
  5617                           
  5618                                  psect   text22
  5619  0BC5                     __ptext22:     
  5620 ;; *************** function _I2C1_Interrupt_Handler *****************
  5621 ;; Defined at:
  5622 ;;               line 138 in file "I2C1.c"
  5623 ;; Parameters:    Size  Location     Type
  5624 ;;               None
  5625 ;; Auto vars:     Size  Location     Type
  5626 ;;               None
  5627 ;; Return value:  Size  Location     Type
  5628 ;;               None               void
  5629 ;; Registers used:
  5630 ;;               wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack
  5631 ;; Tracked objects:
  5632 ;;               On entry : 0/0
  5633 ;;               On exit  : 0/0
  5634 ;;               Unchanged: 0/0
  5635 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  5636 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  5637 ;;      Locals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  5638 ;;      Temps:          0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  5639 ;;      Totals:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  5640 ;;Total ram usage:        0 bytes
  5641 ;; Hardware stack levels used:    1
  5642 ;; Hardware stack levels required when called:    2
  5643 ;; This function calls:
  5644 ;;               _I2C1_Interrupt_Master
  5645 ;;               _I2C1_Interrupt_Slave
  5646 ;; This function is called by:
  5647 ;;               _InterruptHandler
  5648 ;; This function uses a non-reentrant model
  5649 ;;
  5650                           
  5651                           
  5652                           ;psect for function _I2C1_Interrupt_Handler
  5653  0BC5                     _I2C1_Interrupt_Handler:       
  5654                           
  5655                           ;I2C1.c: 140: if (i2c_data_p->operating_mode == 0x11) {
  5656                           
  5657                           ;incstack = 0
  5658                           ; Regs used in _I2C1_Interrupt_Handler: [wreg-fsr1h+status,2+status,0+pclath+cstack]
  5659  0BC5  0879                      movf    _i2c_data_p,w
  5660  0BC6  3E46                      addlw   70
  5661  0BC7  0086                      movwf   6
  5662  0BC8  0187                      clrf    7
  5663  0BC9  0801                      movf    1,w
  5664  0BCA  3A11                      xorlw   17
  5665  0BCB  1D03                      skipz
  5666  0BCC  2BD0                      goto    i1l3163
  5667                           
  5668                           ;I2C1.c: 141: I2C1_Interrupt_Master();
  5669  0BCD  3182  22DD                fcall   _I2C1_Interrupt_Master
  5670                           
  5671                           ;I2C1.c: 142: } else if (i2c_data_p->operating_mode == 0x10) {
  5672  0BCF  0008                      return
  5673  0BD0                     i1l3163:       
  5674  0BD0  0879                      movf    _i2c_data_p,w
  5675  0BD1  3E46                      addlw   70
  5676  0BD2  0086                      movwf   6
  5677  0BD3  0187                      clrf    7
  5678  0BD4  0801                      movf    1,w
  5679  0BD5  3A10                      xorlw   16
  5680  0BD6  1D03                      skipz
  5681  0BD7  0008                      return
  5682                           
  5683                           ;I2C1.c: 143: I2C1_Interrupt_Slave();
  5684  0BD8  318E  269A                fcall   _I2C1_Interrupt_Slave
  5685  0BDA  0008                      return
  5686  0BDB                     __end_of_I2C1_Interrupt_Handler:       
  5687                           
  5688                                  psect   text23
  5689  0E9A                     __ptext23:     
  5690 ;; *************** function _I2C1_Interrupt_Slave *****************
  5691 ;; Defined at:
  5692 ;;               line 327 in file "I2C1.c"
  5693 ;; Parameters:    Size  Location     Type
  5694 ;;               None
  5695 ;; Auto vars:     Size  Location     Type
  5696 ;;  data_read_fr    1    7[COMMON] unsigned char 
  5697 ;;  received_dat    1    6[COMMON] unsigned char 
  5698 ;;  data_written    1    5[COMMON] unsigned char 
  5699 ;;  overrun_erro    1    4[COMMON] unsigned char 
  5700 ;; Return value:  Size  Location     Type
  5701 ;;               None               void
  5702 ;; Registers used:
  5703 ;;               wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack
  5704 ;; Tracked objects:
  5705 ;;               On entry : 0/0
  5706 ;;               On exit  : 0/0
  5707 ;;               Unchanged: 0/0
  5708 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  5709 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  5710 ;;      Locals:         4       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  5711 ;;      Temps:          2       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  5712 ;;      Totals:         6       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  5713 ;;Total ram usage:        6 bytes
  5714 ;; Hardware stack levels used:    1
  5715 ;; Hardware stack levels required when called:    1
  5716 ;; This function calls:
  5717 ;;               _I2C1_Process_Receive
  5718 ;; This function is called by:
  5719 ;;               _I2C1_Interrupt_Handler
  5720 ;; This function uses a non-reentrant model
  5721 ;;
  5722                           
  5723                           
  5724                           ;psect for function _I2C1_Interrupt_Slave
  5725  0E9A                     _I2C1_Interrupt_Slave: 
  5726                           
  5727                           ;I2C1.c: 328: uint8_t received_data;
  5728                           ;I2C1.c: 329: uint8_t data_read_from_buffer = 0;
  5729                           
  5730                           ;incstack = 0
  5731                           ; Regs used in _I2C1_Interrupt_Slave: [wreg-fsr1h+status,2+status,0+pclath+cstack]
  5732  0E9A  01F7                      clrf    I2C1_Interrupt_Slave@data_read_from_buffer
  5733                           
  5734                           ;I2C1.c: 330: uint8_t data_written_to_buffer = 0;
  5735  0E9B  01F5                      clrf    I2C1_Interrupt_Slave@data_written_to_buffer
  5736                           
  5737                           ;I2C1.c: 331: uint8_t overrun_error = 0;
  5738  0E9C  01F4                      clrf    I2C1_Interrupt_Slave@overrun_error
  5739                           
  5740                           ;I2C1.c: 334: if (SSP1CON1bits.SSPOV == 1) {
  5741  0E9D  0024                      movlb   4       ; select bank4
  5742  0E9E  1F15                      btfss   21,6    ;volatile
  5743  0E9F  2EB1                      goto    i1l2937
  5744                           
  5745                           ;I2C1.c: 335: SSP1CON1bits.SSPOV = 0;
  5746  0EA0  1315                      bcf     21,6    ;volatile
  5747                           
  5748                           ;I2C1.c: 339: i2c_data_p->operating_state = 0x1;
  5749  0EA1  0879                      movf    _i2c_data_p,w
  5750  0EA2  3E47                      addlw   71
  5751  0EA3  0086                      movwf   6
  5752  0EA4  0187                      clrf    7
  5753  0EA5  0181                      clrf    1
  5754  0EA6  0A81                      incf    1,f
  5755                           
  5756                           ;I2C1.c: 340: overrun_error = 1;
  5757  0EA7  01F4                      clrf    I2C1_Interrupt_Slave@overrun_error
  5758  0EA8  0AF4                      incf    I2C1_Interrupt_Slave@overrun_error,f
  5759                           
  5760                           ;I2C1.c: 341: i2c_data_p->return_status = 0x36;
  5761  0EA9  3036                      movlw   54
  5762  0EAA  00F2                      movwf   ??_I2C1_Interrupt_Slave
  5763  0EAB  0879                      movf    _i2c_data_p,w
  5764  0EAC  3E48                      addlw   72
  5765  0EAD  0086                      movwf   6
  5766  0EAE  0187                      clrf    7
  5767  0EAF  0872                      movf    ??_I2C1_Interrupt_Slave,w
  5768  0EB0  0081                      movwf   1
  5769  0EB1                     i1l2937:       
  5770                           
  5771                           ;I2C1.c: 342: }
  5772                           ;I2C1.c: 345: if (SSP1STATbits.BF == 1) {
  5773  0EB1  1C14                      btfss   20,0    ;volatile
  5774  0EB2  2EB9                      goto    i1l2943
  5775                           
  5776                           ;I2C1.c: 346: received_data = SSP1BUF;
  5777  0EB3  0811                      movf    17,w    ;volatile
  5778  0EB4  00F2                      movwf   ??_I2C1_Interrupt_Slave
  5779  0EB5  0872                      movf    ??_I2C1_Interrupt_Slave,w
  5780  0EB6  00F6                      movwf   I2C1_Interrupt_Slave@received_data
  5781                           
  5782                           ;I2C1.c: 348: data_read_from_buffer = 1;
  5783  0EB7  01F7                      clrf    I2C1_Interrupt_Slave@data_read_from_buffer
  5784  0EB8  0AF7                      incf    I2C1_Interrupt_Slave@data_read_from_buffer,f
  5785  0EB9                     i1l2943:       
  5786                           
  5787                           ;I2C1.c: 349: }
  5788                           ;I2C1.c: 351: if (!overrun_error) {
  5789  0EB9  08F4                      movf    I2C1_Interrupt_Slave@overrun_error,f
  5790  0EBA  1903                      btfsc   3,2
  5791  0EBB  2FE4                      goto    i1l3035
  5792  0EBC  2FF6                      goto    i1l3037
  5793  0EBD                     i1l181:        
  5794                           ;I2C1.c: 353: case 0x1:
  5795                           
  5796                           ;I2C1.c: 352: switch (i2c_data_p->operating_state) {
  5797                           
  5798                           
  5799                           ;I2C1.c: 354: {
  5800                           ;I2C1.c: 356: if (SSP1STATbits.S == 1) {
  5801  0EBD  1D94                      btfss   20,3    ;volatile
  5802  0EBE  2FF6                      goto    i1l3037
  5803                           
  5804                           ;I2C1.c: 357: i2c_data_p->buffer_in_len_tmp = 0;
  5805  0EBF  0879                      movf    _i2c_data_p,w
  5806  0EC0  3E21                      addlw   33
  5807  0EC1  0086                      movwf   6
  5808  0EC2  0187                      clrf    7
  5809  0EC3  0181                      clrf    1
  5810                           
  5811                           ;I2C1.c: 358: i2c_data_p->operating_state = 0x2;
  5812  0EC4  3002                      movlw   2
  5813  0EC5  2ED0                      goto    L9
  5814  0EC6                     i1l184:        
  5815                           ;I2C1.c: 361: }
  5816                           ;I2C1.c: 362: case 0x2:
  5817                           
  5818                           ;I2C1.c: 359: }
  5819                           ;I2C1.c: 360: break;
  5820                           
  5821                           
  5822                           ;I2C1.c: 363: {
  5823                           ;I2C1.c: 365: if (SSP1STATbits.P == 1) {
  5824  0EC6  1A14                      btfsc   20,4    ;volatile
  5825  0EC7  2F7C                      goto    i1l3007
  5826                           
  5827                           ;I2C1.c: 368: } else if (data_read_from_buffer) {
  5828                           
  5829                           ;I2C1.c: 367: i2c_data_p->operating_state = 0x1;
  5830  0EC8  0877                      movf    I2C1_Interrupt_Slave@data_read_from_buffer,w
  5831  0EC9  1903                      btfsc   3,2
  5832  0ECA  2FF6                      goto    i1l3037
  5833                           
  5834                           ;I2C1.c: 369: if (SSP1STATbits.D_nA == 0) {
  5835  0ECB  1A94                      btfsc   20,5    ;volatile
  5836  0ECC  2FD5                      goto    i1l3031
  5837                           
  5838                           ;I2C1.c: 371: if (SSP1STATbits.R_nW == 0) {
  5839  0ECD  1914                      btfsc   20,2    ;volatile
  5840  0ECE  2FCC                      goto    i1l3027
  5841                           
  5842                           ;I2C1.c: 373: i2c_data_p->operating_state = 0x3;
  5843  0ECF  3003                      movlw   3
  5844  0ED0                     L9:    
  5845  0ED0  00F2                      movwf   ??_I2C1_Interrupt_Slave
  5846  0ED1  0879                      movf    _i2c_data_p,w
  5847  0ED2  3E47                      addlw   71
  5848  0ED3  2FDF                      goto    L13
  5849  0ED4                     i1l2965:       
  5850                           ;I2C1.c: 388: case 0x4:
  5851                           
  5852                           ;I2C1.c: 386: }
  5853                           ;I2C1.c: 387: send:
  5854                           
  5855                           ;I2C1.c: 383: }
  5856                           ;I2C1.c: 384: }
  5857                           ;I2C1.c: 385: break;
  5858                           
  5859                           ;I2C1.c: 382: i2c_data_p->return_status = 0x37;
  5860                           
  5861                           ;I2C1.c: 381: i2c_data_p->operating_state = 0x1;
  5862                           
  5863                           ;I2C1.c: 379: }
  5864                           ;I2C1.c: 380: } else {
  5865                           
  5866                           ;I2C1.c: 378: goto send;
  5867                           
  5868                           ;I2C1.c: 376: i2c_data_p->operating_state = 0x4;
  5869                           
  5870                           ;I2C1.c: 374: } else {
  5871                           
  5872                           
  5873                           ;I2C1.c: 389: {
  5874                           ;I2C1.c: 390: if (!i2c_data_p->slave_sending_data) {
  5875  0ED4  0879                      movf    _i2c_data_p,w
  5876  0ED5  3E4C                      addlw   76
  5877  0ED6  0086                      movwf   6
  5878  0ED7  0187                      clrf    7
  5879  0ED8  0881                      movf    1,f
  5880  0ED9  1D03                      skipz
  5881  0EDA  2EFA                      goto    i1l2977
  5882                           
  5883                           ;I2C1.c: 392: if (I2C1_Process_Receive(i2c_data_p->slave_in_last_byte)) {
  5884  0EDB  0879                      movf    _i2c_data_p,w
  5885  0EDC  3E4B                      addlw   75
  5886  0EDD  0086                      movwf   6
  5887  0EDE  0187                      clrf    7
  5888  0EDF  0801                      movf    1,w
  5889  0EE0  318B  2391  318E          fcall   _I2C1_Process_Receive
  5890  0EE3  3A00                      xorlw   0
  5891  0EE4  1903                      skipnz
  5892  0EE5  2F1F                      goto    i1l2983
  5893                           
  5894                           ;I2C1.c: 394: SSP1BUF = i2c_data_p->buffer_out[0];
  5895  0EE6  0879                      movf    _i2c_data_p,w
  5896  0EE7  3E24                      addlw   36
  5897  0EE8  0086                      movwf   6
  5898  0EE9  0187                      clrf    7
  5899  0EEA  0801                      movf    1,w
  5900  0EEB  0024                      movlb   4       ; select bank4
  5901  0EEC  0091                      movwf   17      ;volatile
  5902                           
  5903                           ;I2C1.c: 395: i2c_data_p->buffer_out_ind = 1;
  5904  0EED  0879                      movf    _i2c_data_p,w
  5905  0EEE  3E45                      addlw   69
  5906  0EEF  0086                      movwf   6
  5907  0EF0  0187                      clrf    7
  5908  0EF1  0181                      clrf    1
  5909  0EF2  0A81                      incf    1,f
  5910                           
  5911                           ;I2C1.c: 396: i2c_data_p->slave_sending_data = 1;
  5912  0EF3  0879                      movf    _i2c_data_p,w
  5913  0EF4  3E4C                      addlw   76
  5914  0EF5  0086                      movwf   6
  5915  0EF6  0187                      clrf    7
  5916  0EF7  0181                      clrf    1
  5917  0EF8  0A81                      incf    1,f
  5918  0EF9  2F1C                      goto    i1l2981
  5919  0EFA                     i1l2977:       
  5920                           ;I2C1.c: 402: }
  5921                           ;I2C1.c: 403: } else {
  5922                           
  5923                           ;I2C1.c: 401: i2c_data_p->operating_state = 0x1;
  5924                           
  5925                           ;I2C1.c: 400: i2c_data_p->slave_sending_data = 0;
  5926                           
  5927                           ;I2C1.c: 398: } else {
  5928                           
  5929                           ;I2C1.c: 397: data_written_to_buffer = 1;
  5930                           
  5931                           
  5932                           ;I2C1.c: 405: if (i2c_data_p->buffer_out_ind < i2c_data_p->buffer_out_len) {
  5933  0EFA  0879                      movf    _i2c_data_p,w
  5934  0EFB  3E45                      addlw   69
  5935  0EFC  0086                      movwf   6
  5936  0EFD  0187                      clrf    7
  5937  0EFE  0879                      movf    _i2c_data_p,w
  5938  0EFF  3E44                      addlw   68
  5939  0F00  0084                      movwf   4
  5940  0F01  0185                      clrf    5
  5941  0F02  0800                      movf    0,w
  5942  0F03  0201                      subwf   1,w
  5943  0F04  1803                      skipnc
  5944  0F05  2F1F                      goto    i1l2983
  5945                           
  5946                           ;I2C1.c: 406: SSP1BUF = i2c_data_p->buffer_out[i2c_data_p->buffer_out_ind];
  5947  0F06  0879                      movf    _i2c_data_p,w
  5948  0F07  3E45                      addlw   69
  5949  0F08  0086                      movwf   6
  5950  0F09  0187                      clrf    7
  5951  0F0A  0801                      movf    1,w
  5952  0F0B  3E24                      addlw   36
  5953  0F0C  0779                      addwf   _i2c_data_p,w
  5954  0F0D  00F2                      movwf   ??_I2C1_Interrupt_Slave
  5955  0F0E  0872                      movf    ??_I2C1_Interrupt_Slave,w
  5956  0F0F  0086                      movwf   6
  5957  0F10  0187                      clrf    7
  5958  0F11  0801                      movf    1,w
  5959  0F12  0024                      movlb   4       ; select bank4
  5960  0F13  0091                      movwf   17      ;volatile
  5961                           
  5962                           ;I2C1.c: 407: i2c_data_p->buffer_out_ind++;
  5963  0F14  3001                      movlw   1
  5964  0F15  00F2                      movwf   ??_I2C1_Interrupt_Slave
  5965  0F16  0879                      movf    _i2c_data_p,w
  5966  0F17  3E45                      addlw   69
  5967  0F18  0086                      movwf   6
  5968  0F19  0187                      clrf    7
  5969  0F1A  0872                      movf    ??_I2C1_Interrupt_Slave,w
  5970  0F1B  0781                      addwf   1,f
  5971  0F1C                     i1l2981:       
  5972                           
  5973                           ;I2C1.c: 408: data_written_to_buffer = 1;
  5974  0F1C  01F5                      clrf    I2C1_Interrupt_Slave@data_written_to_buffer
  5975  0F1D  0AF5                      incf    I2C1_Interrupt_Slave@data_written_to_buffer,f
  5976                           
  5977                           ;I2C1.c: 409: } else {
  5978  0F1E  2FF6                      goto    i1l3037
  5979  0F1F                     i1l2983:       
  5980                           
  5981                           ;I2C1.c: 411: i2c_data_p->slave_sending_data = 0;
  5982  0F1F  0879                      movf    _i2c_data_p,w
  5983  0F20  3E4C                      addlw   76
  5984  0F21  0086                      movwf   6
  5985  0F22  0187                      clrf    7
  5986  0F23  0181                      clrf    1
  5987  0F24  2F7C                      goto    i1l3007
  5988  0F25                     i1l200:        
  5989                           ;I2C1.c: 416: }
  5990                           ;I2C1.c: 417: case 0x3:
  5991                           
  5992                           ;I2C1.c: 413: }
  5993                           ;I2C1.c: 414: }
  5994                           ;I2C1.c: 415: break;
  5995                           
  5996                           ;I2C1.c: 412: i2c_data_p->operating_state = 0x1;
  5997                           
  5998                           
  5999                           ;I2C1.c: 418: {
  6000                           ;I2C1.c: 420: if (SSP1STATbits.P == 1) {
  6001  0F25  1E14                      btfss   20,4    ;volatile
  6002  0F26  2F83                      goto    i1l3009
  6003                           
  6004                           ;I2C1.c: 422: if (data_read_from_buffer) {
  6005  0F27  0877                      movf    I2C1_Interrupt_Slave@data_read_from_buffer,w
  6006  0F28  1903                      btfsc   3,2
  6007  0F29  2F70                      goto    i1l3005
  6008                           
  6009                           ;I2C1.c: 423: if (SSP1STATbits.D_nA == 1) {
  6010  0F2A  1E94                      btfss   20,5    ;volatile
  6011  0F2B  2F62                      goto    i1l3003
  6012                           
  6013                           ;I2C1.c: 426: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = received_data;
  6014  0F2C  0876                      movf    I2C1_Interrupt_Slave@received_data,w
  6015  0F2D  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6016  0F2E  0879                      movf    _i2c_data_p,w
  6017  0F2F  3E23                      addlw   35
  6018  0F30  0086                      movwf   6
  6019  0F31  0187                      clrf    7
  6020  0F32  0801                      movf    1,w
  6021  0F33  0779                      addwf   _i2c_data_p,w
  6022  0F34  00F3                      movwf   ??_I2C1_Interrupt_Slave+1
  6023  0F35  0873                      movf    ??_I2C1_Interrupt_Slave+1,w
  6024  0F36  0086                      movwf   6
  6025  0F37  0187                      clrf    7
  6026  0F38  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6027  0F39  0081                      movwf   1
  6028                           
  6029                           ;I2C1.c: 427: if (i2c_data_p->buffer_in_write_ind == 32-1) {
  6030  0F3A  0879                      movf    _i2c_data_p,w
  6031  0F3B  3E23                      addlw   35
  6032  0F3C  0086                      movwf   6
  6033  0F3D  0187                      clrf    7
  6034  0F3E  0801                      movf    1,w
  6035  0F3F  3A1F                      xorlw   31
  6036  0F40  1D03                      skipz
  6037  0F41  2F48                      goto    i1l2997
  6038                           
  6039                           ;I2C1.c: 428: i2c_data_p->buffer_in_write_ind = 0;
  6040  0F42  0879                      movf    _i2c_data_p,w
  6041  0F43  3E23                      addlw   35
  6042  0F44  0086                      movwf   6
  6043  0F45  0187                      clrf    7
  6044  0F46  0181                      clrf    1
  6045                           
  6046                           ;I2C1.c: 429: } else {
  6047  0F47  2F50                      goto    i1l205
  6048  0F48                     i1l2997:       
  6049                           
  6050                           ;I2C1.c: 430: i2c_data_p->buffer_in_write_ind++;
  6051  0F48  3001                      movlw   1
  6052  0F49  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6053  0F4A  0879                      movf    _i2c_data_p,w
  6054  0F4B  3E23                      addlw   35
  6055  0F4C  0086                      movwf   6
  6056  0F4D  0187                      clrf    7
  6057  0F4E  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6058  0F4F  0781                      addwf   1,f
  6059  0F50                     i1l205:        
  6060                           
  6061                           ;I2C1.c: 431: }
  6062                           ;I2C1.c: 432: i2c_data_p->buffer_in_len_tmp++;
  6063  0F50  3001                      movlw   1
  6064  0F51  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6065  0F52  0879                      movf    _i2c_data_p,w
  6066  0F53  3E21                      addlw   33
  6067  0F54  0086                      movwf   6
  6068  0F55  0187                      clrf    7
  6069  0F56  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6070  0F57  0781                      addwf   1,f
  6071                           
  6072                           ;I2C1.c: 434: i2c_data_p->slave_in_last_byte = received_data;
  6073  0F58  0876                      movf    I2C1_Interrupt_Slave@received_data,w
  6074  0F59  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6075  0F5A  0879                      movf    _i2c_data_p,w
  6076  0F5B  3E4B                      addlw   75
  6077  0F5C  0086                      movwf   6
  6078  0F5D  0187                      clrf    7
  6079  0F5E  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6080  0F5F  0081                      movwf   1
  6081                           
  6082                           ;I2C1.c: 435: i2c_data_p->return_status = 0x34;
  6083  0F60  3034                      movlw   52
  6084  0F61  2F69                      goto    L12
  6085  0F62                     i1l3003:       
  6086                           ;I2C1.c: 436: } else {
  6087                           
  6088                           
  6089                           ;I2C1.c: 437: i2c_data_p->operating_state = 0x1;
  6090  0F62  0879                      movf    _i2c_data_p,w
  6091  0F63  3E47                      addlw   71
  6092  0F64  0086                      movwf   6
  6093  0F65  0187                      clrf    7
  6094  0F66  0181                      clrf    1
  6095  0F67  0A81                      incf    1,f
  6096                           
  6097                           ;I2C1.c: 438: i2c_data_p->return_status = 0x37;
  6098  0F68  3037                      movlw   55
  6099  0F69                     L12:   
  6100  0F69  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6101  0F6A  0879                      movf    _i2c_data_p,w
  6102  0F6B  3E48                      addlw   72
  6103  0F6C  0086                      movwf   6
  6104  0F6D  0187                      clrf    7
  6105  0F6E  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6106  0F6F  0081                      movwf   1
  6107  0F70                     i1l3005:       
  6108                           
  6109                           ;I2C1.c: 439: }
  6110                           ;I2C1.c: 440: }
  6111                           ;I2C1.c: 441: i2c_data_p->buffer_in_len += i2c_data_p->buffer_in_len_tmp;
  6112  0F70  0879                      movf    _i2c_data_p,w
  6113  0F71  3E21                      addlw   33
  6114  0F72  0086                      movwf   6
  6115  0F73  0187                      clrf    7
  6116  0F74  0801                      movf    1,w
  6117  0F75  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6118  0F76  0879                      movf    _i2c_data_p,w
  6119  0F77  3E20                      addlw   32
  6120  0F78  0086                      movwf   6
  6121  0F79  0187                      clrf    7
  6122  0F7A  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6123  0F7B  0781                      addwf   1,f
  6124  0F7C                     i1l3007:       
  6125                           
  6126                           ;I2C1.c: 442: i2c_data_p->operating_state = 0x1;
  6127  0F7C  0879                      movf    _i2c_data_p,w
  6128  0F7D  3E47                      addlw   71
  6129  0F7E  0086                      movwf   6
  6130  0F7F  0187                      clrf    7
  6131  0F80  0181                      clrf    1
  6132  0F81  0A81                      incf    1,f
  6133                           
  6134                           ;I2C1.c: 443: } else if (data_read_from_buffer) {
  6135  0F82  2FF6                      goto    i1l3037
  6136  0F83                     i1l3009:       
  6137  0F83  0877                      movf    I2C1_Interrupt_Slave@data_read_from_buffer,w
  6138  0F84  1903                      btfsc   3,2
  6139  0F85  2FF6                      goto    i1l3037
  6140                           
  6141                           ;I2C1.c: 444: if (SSP1STATbits.D_nA == 1) {
  6142  0F86  1E94                      btfss   20,5    ;volatile
  6143  0F87  2FBE                      goto    i1l209
  6144                           
  6145                           ;I2C1.c: 446: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = received_data;
  6146  0F88  0876                      movf    I2C1_Interrupt_Slave@received_data,w
  6147  0F89  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6148  0F8A  0879                      movf    _i2c_data_p,w
  6149  0F8B  3E23                      addlw   35
  6150  0F8C  0086                      movwf   6
  6151  0F8D  0187                      clrf    7
  6152  0F8E  0801                      movf    1,w
  6153  0F8F  0779                      addwf   _i2c_data_p,w
  6154  0F90  00F3                      movwf   ??_I2C1_Interrupt_Slave+1
  6155  0F91  0873                      movf    ??_I2C1_Interrupt_Slave+1,w
  6156  0F92  0086                      movwf   6
  6157  0F93  0187                      clrf    7
  6158  0F94  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6159  0F95  0081                      movwf   1
  6160                           
  6161                           ;I2C1.c: 447: if (i2c_data_p->buffer_in_write_ind == 32-1) {
  6162  0F96  0879                      movf    _i2c_data_p,w
  6163  0F97  3E23                      addlw   35
  6164  0F98  0086                      movwf   6
  6165  0F99  0187                      clrf    7
  6166  0F9A  0801                      movf    1,w
  6167  0F9B  3A1F                      xorlw   31
  6168  0F9C  1D03                      skipz
  6169  0F9D  2FA4                      goto    i1l3019
  6170                           
  6171                           ;I2C1.c: 448: i2c_data_p->buffer_in_write_ind = 0;
  6172  0F9E  0879                      movf    _i2c_data_p,w
  6173  0F9F  3E23                      addlw   35
  6174  0FA0  0086                      movwf   6
  6175  0FA1  0187                      clrf    7
  6176  0FA2  0181                      clrf    1
  6177                           
  6178                           ;I2C1.c: 449: } else {
  6179  0FA3  2FAC                      goto    i1l211
  6180  0FA4                     i1l3019:       
  6181                           
  6182                           ;I2C1.c: 450: i2c_data_p->buffer_in_write_ind++;
  6183  0FA4  3001                      movlw   1
  6184  0FA5  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6185  0FA6  0879                      movf    _i2c_data_p,w
  6186  0FA7  3E23                      addlw   35
  6187  0FA8  0086                      movwf   6
  6188  0FA9  0187                      clrf    7
  6189  0FAA  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6190  0FAB  0781                      addwf   1,f
  6191  0FAC                     i1l211:        
  6192                           
  6193                           ;I2C1.c: 451: }
  6194                           ;I2C1.c: 452: i2c_data_p->buffer_in_len_tmp++;
  6195  0FAC  3001                      movlw   1
  6196  0FAD  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6197  0FAE  0879                      movf    _i2c_data_p,w
  6198  0FAF  3E21                      addlw   33
  6199  0FB0  0086                      movwf   6
  6200  0FB1  0187                      clrf    7
  6201  0FB2  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6202  0FB3  0781                      addwf   1,f
  6203                           
  6204                           ;I2C1.c: 454: i2c_data_p->slave_in_last_byte = received_data;
  6205  0FB4  0876                      movf    I2C1_Interrupt_Slave@received_data,w
  6206  0FB5  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6207  0FB6  0879                      movf    _i2c_data_p,w
  6208  0FB7  3E4B                      addlw   75
  6209  0FB8  0086                      movwf   6
  6210  0FB9  0187                      clrf    7
  6211  0FBA  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6212  0FBB  0081                      movwf   1
  6213                           
  6214                           ;I2C1.c: 455: i2c_data_p->return_status = 0x34;
  6215  0FBC  3034                      movlw   52
  6216  0FBD  2FDC                      goto    L14
  6217  0FBE                     i1l209:        
  6218                           ;I2C1.c: 456: } else {
  6219                           
  6220                           
  6221                           ;I2C1.c: 458: if (SSP1STATbits.R_nW == 1) {
  6222  0FBE  1D14                      btfss   20,2    ;volatile
  6223  0FBF  2FD5                      goto    i1l3031
  6224                           
  6225                           ;I2C1.c: 459: i2c_data_p->buffer_in_len += i2c_data_p->buffer_in_len_tmp;
  6226  0FC0  0879                      movf    _i2c_data_p,w
  6227  0FC1  3E21                      addlw   33
  6228  0FC2  0086                      movwf   6
  6229  0FC3  0187                      clrf    7
  6230  0FC4  0801                      movf    1,w
  6231  0FC5  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6232  0FC6  0879                      movf    _i2c_data_p,w
  6233  0FC7  3E20                      addlw   32
  6234  0FC8  0086                      movwf   6
  6235  0FC9  0187                      clrf    7
  6236  0FCA  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6237  0FCB  0781                      addwf   1,f
  6238  0FCC                     i1l3027:       
  6239                           
  6240                           ;I2C1.c: 460: i2c_data_p->operating_state = 0x4;
  6241  0FCC  3004                      movlw   4
  6242  0FCD  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6243  0FCE  0879                      movf    _i2c_data_p,w
  6244  0FCF  3E47                      addlw   71
  6245  0FD0  0086                      movwf   6
  6246  0FD1  0187                      clrf    7
  6247  0FD2  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6248  0FD3  0081                      movwf   1
  6249                           
  6250                           ;I2C1.c: 462: goto send;
  6251  0FD4  2ED4                      goto    i1l2965
  6252  0FD5                     i1l3031:       
  6253                           ;I2C1.c: 463: } else {
  6254                           
  6255                           
  6256                           ;I2C1.c: 465: i2c_data_p->operating_state = 0x1;
  6257  0FD5  0879                      movf    _i2c_data_p,w
  6258  0FD6  3E47                      addlw   71
  6259  0FD7  0086                      movwf   6
  6260  0FD8  0187                      clrf    7
  6261  0FD9  0181                      clrf    1
  6262  0FDA  0A81                      incf    1,f
  6263                           
  6264                           ;I2C1.c: 466: i2c_data_p->return_status = 0x37;
  6265  0FDB  3037                      movlw   55
  6266  0FDC                     L14:   
  6267  0FDC  00F2                      movwf   ??_I2C1_Interrupt_Slave
  6268  0FDD  0879                      movf    _i2c_data_p,w
  6269  0FDE  3E48                      addlw   72
  6270  0FDF                     L13:   
  6271  0FDF  0086                      movwf   6
  6272  0FE0  0187                      clrf    7
  6273  0FE1  0872                      movf    ??_I2C1_Interrupt_Slave,w
  6274  0FE2  0081                      movwf   1
  6275                           
  6276                           ;I2C1.c: 471: }
  6277                           ;I2C1.c: 472: }
  6278                           
  6279                           ;I2C1.c: 467: }
  6280                           ;I2C1.c: 468: }
  6281                           ;I2C1.c: 469: }
  6282                           ;I2C1.c: 470: break;
  6283  0FE3  2FF6                      goto    i1l3037
  6284  0FE4                     i1l3035:       
  6285  0FE4  0879                      movf    _i2c_data_p,w
  6286  0FE5  3E47                      addlw   71
  6287  0FE6  0086                      movwf   6
  6288  0FE7  0187                      clrf    7
  6289  0FE8  0801                      movf    1,w
  6290                           
  6291                           ; Switch size 1, requested type "space"
  6292                           ; Number of cases is 4, Range of values is 1 to 4
  6293                           ; switch strategies available:
  6294                           ; Name         Instructions Cycles
  6295                           ; simple_byte           13     7 (average)
  6296                           ; direct_byte           17     9 (fixed)
  6297                           ; jumptable            263     9 (fixed)
  6298                           ;      Chosen strategy is simple_byte
  6299  0FE9  3A01                      xorlw   1       ; case 1
  6300  0FEA  1903                      skipnz
  6301  0FEB  2EBD                      goto    i1l181
  6302  0FEC  3A03                      xorlw   3       ; case 2
  6303  0FED  1903                      skipnz
  6304  0FEE  2EC6                      goto    i1l184
  6305  0FEF  3A01                      xorlw   1       ; case 3
  6306  0FF0  1903                      skipnz
  6307  0FF1  2F25                      goto    i1l200
  6308  0FF2  3A07                      xorlw   7       ; case 4
  6309  0FF3  1903                      skipnz
  6310  0FF4  2ED4                      goto    i1l2965
  6311  0FF5  2FF6                      goto    i1l3037
  6312  0FF6                     i1l3037:       
  6313                           
  6314                           ;I2C1.c: 473: }
  6315                           ;I2C1.c: 476: if (data_read_from_buffer || data_written_to_buffer) {
  6316  0FF6  08F7                      movf    I2C1_Interrupt_Slave@data_read_from_buffer,f
  6317  0FF7  1903                      btfsc   3,2
  6318  0FF8  0875                      movf    I2C1_Interrupt_Slave@data_written_to_buffer,w
  6319  0FF9  1903                      btfsc   3,2
  6320  0FFA  0008                      return
  6321                           
  6322                           ;I2C1.c: 478: if (SSP1CON1bits.CKP == 0) {
  6323  0FFB  0024                      movlb   4       ; select bank4
  6324  0FFC  1A15                      btfsc   21,4    ;volatile
  6325  0FFD  0008                      return
  6326                           
  6327                           ;I2C1.c: 479: SSP1CON1bits.CKP = 1;
  6328  0FFE  1615                      bsf     21,4    ;volatile
  6329  0FFF  0008                      return
  6330  1000                     __end_of_I2C1_Interrupt_Slave: 
  6331                           
  6332                                  psect   text24
  6333  0B91                     __ptext24:     
  6334 ;; *************** function _I2C1_Process_Receive *****************
  6335 ;; Defined at:
  6336 ;;               line 522 in file "I2C1.c"
  6337 ;; Parameters:    Size  Location     Type
  6338 ;;  c               1    wreg     unsigned char 
  6339 ;; Auto vars:     Size  Location     Type
  6340 ;;  c               1    0[COMMON] unsigned char 
  6341 ;;  ret             1    1[COMMON] unsigned char 
  6342 ;;  btns            1    0        struct .
  6343 ;; Return value:  Size  Location     Type
  6344 ;;                  1    wreg      unsigned char 
  6345 ;; Registers used:
  6346 ;;               wreg, fsr0l, fsr0h, status,2, status,0
  6347 ;; Tracked objects:
  6348 ;;               On entry : 0/0
  6349 ;;               On exit  : 0/0
  6350 ;;               Unchanged: 0/0
  6351 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  6352 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  6353 ;;      Locals:         2       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  6354 ;;      Temps:          0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  6355 ;;      Totals:         2       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  6356 ;;Total ram usage:        2 bytes
  6357 ;; Hardware stack levels used:    1
  6358 ;; This function calls:
  6359 ;;               Nothing
  6360 ;; This function is called by:
  6361 ;;               _I2C1_Interrupt_Slave
  6362 ;; This function uses a non-reentrant model
  6363 ;;
  6364                           
  6365                           
  6366                           ;psect for function _I2C1_Process_Receive
  6367  0B91                     _I2C1_Process_Receive: 
  6368                           
  6369                           ;incstack = 0
  6370                           ; Regs used in _I2C1_Process_Receive: [wreg-fsr0h+status,2+status,0]
  6371                           ;I2C1_Process_Receive@c stored from wreg
  6372  0B91  00F0                      movwf   I2C1_Process_Receive@c
  6373                           
  6374                           ;I2C1.c: 523: uint8_t ret = 0;
  6375  0B92  01F1                      clrf    I2C1_Process_Receive@ret
  6376  0B93  0064                      clrwdt  ;# 
  6377                           
  6378                           ;I2C1.c: 534: }
  6379                           
  6380                           ;I2C1.c: 533: break;
  6381                           
  6382                           ;I2C1.c: 528: case 0x0A:
  6383                           
  6384                           ;I2C1.c: 527: switch (c) {
  6385  0B94  0870                      movf    I2C1_Process_Receive@c,w
  6386                           
  6387                           ; Switch size 1, requested type "space"
  6388                           ; Number of cases is 1, Range of values is 10 to 10
  6389                           ; switch strategies available:
  6390                           ; Name         Instructions Cycles
  6391                           ; simple_byte            4     3 (average)
  6392                           ; direct_byte           11     9 (fixed)
  6393                           ; jumptable            263     9 (fixed)
  6394                           ;      Chosen strategy is simple_byte
  6395  0B95  3A0A                      xorlw   10      ; case 10
  6396  0B96  1903                      skipnz
  6397  0B97  2B99                      goto    i1l2623
  6398  0B98  2B99                      goto    i1l2623
  6399  0B99                     i1l2623:       
  6400                           
  6401                           ;I2C1.c: 535: return ret;
  6402  0B99  0871                      movf    I2C1_Process_Receive@ret,w
  6403  0B9A  0008                      return
  6404  0B9B                     __end_of_I2C1_Process_Receive: 
  6405                           
  6406                                  psect   text25
  6407  02DD                     __ptext25:     
  6408 ;; *************** function _I2C1_Interrupt_Master *****************
  6409 ;; Defined at:
  6410 ;;               line 148 in file "I2C1.c"
  6411 ;; Parameters:    Size  Location     Type
  6412 ;;               None
  6413 ;; Auto vars:     Size  Location     Type
  6414 ;;  tmp             1    3[COMMON] unsigned char 
  6415 ;;  tmp             1    2[COMMON] unsigned char 
  6416 ;; Return value:  Size  Location     Type
  6417 ;;               None               void
  6418 ;; Registers used:
  6419 ;;               wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0
  6420 ;; Tracked objects:
  6421 ;;               On entry : 0/0
  6422 ;;               On exit  : 0/0
  6423 ;;               Unchanged: 0/0
  6424 ;; Data sizes:     COMMON   BANK0   BANK1   BANK2   BANK3   BANK4   BANK5   BANK6   BANK7   BANK8   BANK9  BANK10  BANK1
      +1  BANK12
  6425 ;;      Params:         0       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  6426 ;;      Locals:         2       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  6427 ;;      Temps:          2       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  6428 ;;      Totals:         4       0       0       0       0       0       0       0       0       0       0       0       
      +0       0
  6429 ;;Total ram usage:        4 bytes
  6430 ;; Hardware stack levels used:    1
  6431 ;; This function calls:
  6432 ;;               Nothing
  6433 ;; This function is called by:
  6434 ;;               _I2C1_Interrupt_Handler
  6435 ;; This function uses a non-reentrant model
  6436 ;;
  6437                           
  6438                           
  6439                           ;psect for function _I2C1_Interrupt_Master
  6440  02DD                     _I2C1_Interrupt_Master:        
  6441                           
  6442                           ;I2C1.c: 150: if (i2c_data_p->master_status == 0x20) {
  6443                           
  6444                           ;incstack = 0
  6445                           ; Regs used in _I2C1_Interrupt_Master: [wreg-fsr1h+status,2+status,0]
  6446  02DD  0879                      movf    _i2c_data_p,w
  6447  02DE  3E4A                      addlw   74
  6448  02DF  0086                      movwf   6
  6449  02E0  0187                      clrf    7
  6450  02E1  0801                      movf    1,w
  6451  02E2  3A20                      xorlw   32
  6452  02E3  1903                      btfsc   3,2
  6453  02E4  2B4A                      goto    i1l2501
  6454  02E5  2B5A                      goto    i1l2503
  6455  02E6                     i1l2483:       
  6456                           ;I2C1.c: 154: case 0x5:
  6457                           
  6458                           ;I2C1.c: 153: break;
  6459                           
  6460                           ;I2C1.c: 152: case 0x1:
  6461                           
  6462                           ;I2C1.c: 151: switch (i2c_data_p->operating_state) {
  6463                           
  6464                           
  6465                           ;I2C1.c: 156: i2c_data_p->operating_state = 0x7;
  6466  02E6  3007                      movlw   7
  6467  02E7  00F0                      movwf   ??_I2C1_Interrupt_Master
  6468  02E8  0879                      movf    _i2c_data_p,w
  6469  02E9  3E47                      addlw   71
  6470  02EA  0086                      movwf   6
  6471  02EB  0187                      clrf    7
  6472  02EC  0870                      movf    ??_I2C1_Interrupt_Master,w
  6473  02ED  0081                      movwf   1
  6474                           
  6475                           ;I2C1.c: 157: SSP1BUF = (i2c_data_p->master_dest_addr << 1) | 0x0;
  6476  02EE  0879                      movf    _i2c_data_p,w
  6477  02EF  3E49                      addlw   73
  6478  02F0  0086                      movwf   6
  6479  02F1  0187                      clrf    7
  6480  02F2  3501                      lslf    1,w
  6481  02F3  0024                      movlb   4       ; select bank4
  6482  02F4  0091                      movwf   17      ;volatile
  6483                           
  6484                           ;I2C1.c: 158: break;
  6485  02F5  0008                      return
  6486  02F6                     i1l134:        
  6487                           ;I2C1.c: 159: case 0x7:
  6488                           
  6489                           
  6490                           ;I2C1.c: 161: if (!SSP1CON2bits.ACKSTAT) {
  6491  02F6  0024                      movlb   4       ; select bank4
  6492  02F7  1B16                      btfsc   22,6    ;volatile
  6493  02F8  2B32                      goto    i1l2495
  6494                           
  6495                           ;I2C1.c: 163: if (i2c_data_p->buffer_in_read_ind < i2c_data_p->buffer_in_len) {
  6496  02F9  0879                      movf    _i2c_data_p,w
  6497  02FA  3E22                      addlw   34
  6498  02FB  0086                      movwf   6
  6499  02FC  0187                      clrf    7
  6500  02FD  0879                      movf    _i2c_data_p,w
  6501  02FE  3E20                      addlw   32
  6502  02FF  0084                      movwf   4
  6503  0300  0185                      clrf    5
  6504  0301  0800                      movf    0,w
  6505  0302  0201                      subwf   1,w
  6506  0303  1803                      skipnc
  6507  0304  2B1A                      goto    i1l2491
  6508                           
  6509                           ;I2C1.c: 164: SSP1BUF = i2c_data_p->buffer_in[i2c_data_p->buffer_in_read_ind];
  6510  0305  0879                      movf    _i2c_data_p,w
  6511  0306  3E22                      addlw   34
  6512  0307  0086                      movwf   6
  6513  0308  0187                      clrf    7
  6514  0309  0801                      movf    1,w
  6515  030A  0779                      addwf   _i2c_data_p,w
  6516  030B  00F0                      movwf   ??_I2C1_Interrupt_Master
  6517  030C  0870                      movf    ??_I2C1_Interrupt_Master,w
  6518  030D  0086                      movwf   6
  6519  030E  0187                      clrf    7
  6520  030F  0801                      movf    1,w
  6521  0310  0091                      movwf   17      ;volatile
  6522                           
  6523                           ;I2C1.c: 165: i2c_data_p->buffer_in_read_ind++;
  6524  0311  3001                      movlw   1
  6525  0312  00F0                      movwf   ??_I2C1_Interrupt_Master
  6526  0313  0879                      movf    _i2c_data_p,w
  6527  0314  3E22                      addlw   34
  6528  0315  0086                      movwf   6
  6529  0316  0187                      clrf    7
  6530  0317  0870                      movf    ??_I2C1_Interrupt_Master,w
  6531  0318  0781                      addwf   1,f
  6532                           
  6533                           ;I2C1.c: 166: } else {
  6534  0319  0008                      return
  6535  031A                     i1l2491:       
  6536                           
  6537                           ;I2C1.c: 168: i2c_data_p->operating_state = 0x1;
  6538  031A  0879                      movf    _i2c_data_p,w
  6539  031B  3E47                      addlw   71
  6540  031C  0086                      movwf   6
  6541  031D  0187                      clrf    7
  6542  031E  0181                      clrf    1
  6543  031F  0A81                      incf    1,f
  6544                           
  6545                           ;I2C1.c: 169: SSP1CON2bits.PEN = 1;
  6546  0320  1516                      bsf     22,2    ;volatile
  6547                           
  6548                           ;I2C1.c: 170: i2c_data_p->master_status = 0x23;
  6549  0321  3023                      movlw   35
  6550  0322  00F0                      movwf   ??_I2C1_Interrupt_Master
  6551  0323  0879                      movf    _i2c_data_p,w
  6552  0324  3E4A                      addlw   74
  6553  0325  0086                      movwf   6
  6554  0326  0187                      clrf    7
  6555  0327  0870                      movf    ??_I2C1_Interrupt_Master,w
  6556  0328  0081                      movwf   1
  6557                           
  6558                           ;I2C1.c: 171: i2c_data_p->return_status = 0x30;
  6559  0329  3030                      movlw   48
  6560  032A  00F0                      movwf   ??_I2C1_Interrupt_Master
  6561  032B  0879                      movf    _i2c_data_p,w
  6562  032C  3E48                      addlw   72
  6563  032D  0086                      movwf   6
  6564  032E  0187                      clrf    7
  6565  032F  0870                      movf    ??_I2C1_Interrupt_Master,w
  6566  0330  0081                      movwf   1
  6567                           
  6568                           ;I2C1.c: 172: }
  6569                           ;I2C1.c: 173: } else {
  6570  0331  0008                      return
  6571  0332                     i1l2495:       
  6572                           
  6573                           ;I2C1.c: 175: i2c_data_p->operating_state = 0x1;
  6574  0332  0879                      movf    _i2c_data_p,w
  6575  0333  3E47                      addlw   71
  6576  0334  0086                      movwf   6
  6577  0335  0187                      clrf    7
  6578  0336  0181                      clrf    1
  6579  0337  0A81                      incf    1,f
  6580                           
  6581                           ;I2C1.c: 176: SSP1CON2bits.PEN = 1;
  6582  0338  1516                      bsf     22,2    ;volatile
  6583                           
  6584                           ;I2C1.c: 177: i2c_data_p->master_status = 0x23;
  6585  0339  3023                      movlw   35
  6586  033A  00F0                      movwf   ??_I2C1_Interrupt_Master
  6587  033B  0879                      movf    _i2c_data_p,w
  6588  033C  3E4A                      addlw   74
  6589  033D  0086                      movwf   6
  6590  033E  0187                      clrf    7
  6591  033F  0870                      movf    ??_I2C1_Interrupt_Master,w
  6592  0340  0081                      movwf   1
  6593                           
  6594                           ;I2C1.c: 178: i2c_data_p->return_status = 0x31;
  6595  0341  3031                      movlw   49
  6596  0342  00F0                      movwf   ??_I2C1_Interrupt_Master
  6597  0343  0879                      movf    _i2c_data_p,w
  6598  0344  3E48                      addlw   72
  6599  0345  0086                      movwf   6
  6600  0346  0187                      clrf    7
  6601  0347  0870                      movf    ??_I2C1_Interrupt_Master,w
  6602  0348  0081                      movwf   1
  6603                           
  6604                           ;I2C1.c: 181: }
  6605                           
  6606                           ;I2C1.c: 179: }
  6607                           ;I2C1.c: 180: break;
  6608  0349  0008                      return
  6609  034A                     i1l2501:       
  6610  034A  0879                      movf    _i2c_data_p,w
  6611  034B  3E47                      addlw   71
  6612  034C  0086                      movwf   6
  6613  034D  0187                      clrf    7
  6614  034E  0801                      movf    1,w
  6615                           
  6616                           ; Switch size 1, requested type "space"
  6617                           ; Number of cases is 3, Range of values is 1 to 7
  6618                           ; switch strategies available:
  6619                           ; Name         Instructions Cycles
  6620                           ; simple_byte           10     6 (average)
  6621                           ; direct_byte           23     9 (fixed)
  6622                           ; jumptable            263     9 (fixed)
  6623                           ;      Chosen strategy is simple_byte
  6624  034F  3A01                      xorlw   1       ; case 1
  6625  0350  1903                      skipnz
  6626  0351  2D33                      goto    i1l174
  6627  0352  3A04                      xorlw   4       ; case 5
  6628  0353  1903                      skipnz
  6629  0354  2AE6                      goto    i1l2483
  6630  0355  3A02                      xorlw   2       ; case 7
  6631  0356  1903                      skipnz
  6632  0357  2AF6                      goto    i1l134
  6633  0358  2D33                      goto    i1l174
  6634                           
  6635                           ;I2C1.c: 183: } else if (i2c_data_p->master_status == 0x21) {
  6636  0359  0008                      return
  6637  035A                     i1l2503:       
  6638  035A  0879                      movf    _i2c_data_p,w
  6639  035B  3E4A                      addlw   74
  6640  035C  0086                      movwf   6
  6641  035D  0187                      clrf    7
  6642  035E  0801                      movf    1,w
  6643  035F  3A21                      xorlw   33
  6644  0360  1903                      btfsc   3,2
  6645  0361  2BFA                      goto    i1l2549
  6646  0362  2C13                      goto    i1l2551
  6647  0363                     i1l2507:       
  6648                           ;I2C1.c: 187: case 0x5:
  6649                           
  6650                           ;I2C1.c: 186: break;
  6651                           
  6652                           ;I2C1.c: 185: case 0x1:
  6653                           
  6654                           ;I2C1.c: 184: switch (i2c_data_p->operating_state) {
  6655                           
  6656                           
  6657                           ;I2C1.c: 189: i2c_data_p->operating_state = 0x8;
  6658  0363  3008                      movlw   8
  6659  0364  00F0                      movwf   ??_I2C1_Interrupt_Master
  6660  0365  0879                      movf    _i2c_data_p,w
  6661  0366  3E47                      addlw   71
  6662  0367  0086                      movwf   6
  6663  0368  0187                      clrf    7
  6664  0369  0870                      movf    ??_I2C1_Interrupt_Master,w
  6665  036A  0081                      movwf   1
  6666                           
  6667                           ;I2C1.c: 190: uint8_t tmp = (i2c_data_p->master_dest_addr << 1);
  6668  036B  0879                      movf    _i2c_data_p,w
  6669  036C  3E49                      addlw   73
  6670  036D  0086                      movwf   6
  6671  036E  0187                      clrf    7
  6672  036F  3501                      lslf    1,w
  6673  0370  00F0                      movwf   ??_I2C1_Interrupt_Master
  6674  0371  0870                      movf    ??_I2C1_Interrupt_Master,w
  6675  0372  00F2                      movwf   I2C1_Interrupt_Master@tmp
  6676                           
  6677                           ;I2C1.c: 191: tmp |= 0x01;
  6678  0373  1472                      bsf     I2C1_Interrupt_Master@tmp,0
  6679                           
  6680                           ;I2C1.c: 192: SSP1BUF = tmp;
  6681  0374  0872                      movf    I2C1_Interrupt_Master@tmp,w
  6682  0375  0024                      movlb   4       ; select bank4
  6683  0376  0091                      movwf   17      ;volatile
  6684                           
  6685                           ;I2C1.c: 193: break;
  6686  0377  0008                      return
  6687  0378                     i1l145:        
  6688                           ;I2C1.c: 194: case 0x8:
  6689                           
  6690                           
  6691                           ;I2C1.c: 196: if (!SSP1CON2bits.ACKSTAT) {
  6692  0378  0024                      movlb   4       ; select bank4
  6693  0379  1B16                      btfsc   22,6    ;volatile
  6694  037A  2B85                      goto    i1l2519
  6695                           
  6696                           ;I2C1.c: 198: i2c_data_p->operating_state = 0x3;
  6697  037B  3003                      movlw   3
  6698  037C  00F0                      movwf   ??_I2C1_Interrupt_Master
  6699  037D  0879                      movf    _i2c_data_p,w
  6700  037E  3E47                      addlw   71
  6701  037F  0086                      movwf   6
  6702  0380  0187                      clrf    7
  6703  0381  0870                      movf    ??_I2C1_Interrupt_Master,w
  6704  0382  0081                      movwf   1
  6705                           
  6706                           ;I2C1.c: 199: SSP1CON2bits.RCEN = 1;
  6707  0383  1596                      bsf     22,3    ;volatile
  6708                           
  6709                           ;I2C1.c: 200: } else {
  6710  0384  0008                      return
  6711  0385                     i1l2519:       
  6712                           
  6713                           ;I2C1.c: 202: i2c_data_p->operating_state = 0x1;
  6714  0385  0879                      movf    _i2c_data_p,w
  6715  0386  3E47                      addlw   71
  6716  0387  0086                      movwf   6
  6717  0388  0187                      clrf    7
  6718  0389  0181                      clrf    1
  6719  038A  0A81                      incf    1,f
  6720                           
  6721                           ;I2C1.c: 203: SSP1CON2bits.PEN = 1;
  6722  038B  1516                      bsf     22,2    ;volatile
  6723                           
  6724                           ;I2C1.c: 204: i2c_data_p->master_status = 0x23;
  6725  038C  3023                      movlw   35
  6726  038D  00F0                      movwf   ??_I2C1_Interrupt_Master
  6727  038E  0879                      movf    _i2c_data_p,w
  6728  038F  3E4A                      addlw   74
  6729  0390  0086                      movwf   6
  6730  0391  0187                      clrf    7
  6731  0392  0870                      movf    ??_I2C1_Interrupt_Master,w
  6732  0393  0081                      movwf   1
  6733                           
  6734                           ;I2C1.c: 205: i2c_data_p->return_status = 0x33;
  6735  0394  3033                      movlw   51
  6736  0395  00F0                      movwf   ??_I2C1_Interrupt_Master
  6737  0396  0879                      movf    _i2c_data_p,w
  6738  0397  3E48                      addlw   72
  6739  0398  0086                      movwf   6
  6740  0399  0187                      clrf    7
  6741  039A  0870                      movf    ??_I2C1_Interrupt_Master,w
  6742  039B  0081                      movwf   1
  6743                           
  6744                           ;I2C1.c: 206: }
  6745                           ;I2C1.c: 207: break;
  6746  039C  0008                      return
  6747  039D                     i1l2523:       
  6748                           ;I2C1.c: 208: case 0x3:
  6749                           
  6750                           
  6751                           ;I2C1.c: 211: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = SSP1BUF;
  6752  039D  0024                      movlb   4       ; select bank4
  6753  039E  0811                      movf    17,w    ;volatile
  6754  039F  00F0                      movwf   ??_I2C1_Interrupt_Master
  6755  03A0  0879                      movf    _i2c_data_p,w
  6756  03A1  3E23                      addlw   35
  6757  03A2  0086                      movwf   6
  6758  03A3  0187                      clrf    7
  6759  03A4  0801                      movf    1,w
  6760  03A5  0779                      addwf   _i2c_data_p,w
  6761  03A6  00F1                      movwf   ??_I2C1_Interrupt_Master+1
  6762  03A7  0871                      movf    ??_I2C1_Interrupt_Master+1,w
  6763  03A8  0086                      movwf   6
  6764  03A9  0187                      clrf    7
  6765  03AA  0870                      movf    ??_I2C1_Interrupt_Master,w
  6766  03AB  0081                      movwf   1
  6767                           
  6768                           ;I2C1.c: 212: i2c_data_p->buffer_in_write_ind++;
  6769  03AC  3001                      movlw   1
  6770  03AD  00F0                      movwf   ??_I2C1_Interrupt_Master
  6771  03AE  0879                      movf    _i2c_data_p,w
  6772  03AF  3E23                      addlw   35
  6773  03B0  0086                      movwf   6
  6774  03B1  0187                      clrf    7
  6775  03B2  0870                      movf    ??_I2C1_Interrupt_Master,w
  6776  03B3  0781                      addwf   1,f
  6777                           
  6778                           ;I2C1.c: 213: if (i2c_data_p->buffer_in_write_ind < i2c_data_p->buffer_in_len) {
  6779  03B4  0879                      movf    _i2c_data_p,w
  6780  03B5  3E23                      addlw   35
  6781  03B6  0086                      movwf   6
  6782  03B7  0187                      clrf    7
  6783  03B8  0879                      movf    _i2c_data_p,w
  6784  03B9  3E20                      addlw   32
  6785  03BA  0084                      movwf   4
  6786  03BB  0185                      clrf    5
  6787  03BC  0800                      movf    0,w
  6788  03BD  0201                      subwf   1,w
  6789  03BE  1803                      skipnc
  6790  03BF  2BCB                      goto    i1l2533
  6791                           
  6792                           ;I2C1.c: 215: i2c_data_p->operating_state = 0xA;
  6793  03C0  300A                      movlw   10
  6794  03C1  00F0                      movwf   ??_I2C1_Interrupt_Master
  6795  03C2  0879                      movf    _i2c_data_p,w
  6796  03C3  3E47                      addlw   71
  6797  03C4  0086                      movwf   6
  6798  03C5  0187                      clrf    7
  6799  03C6  0870                      movf    ??_I2C1_Interrupt_Master,w
  6800  03C7  0081                      movwf   1
  6801                           
  6802                           ;I2C1.c: 216: SSP1CON2bits.ACKDT = 0;
  6803  03C8  1296                      bcf     22,5    ;volatile
  6804                           
  6805                           ;I2C1.c: 217: SSP1CON2bits.ACKEN = 1;
  6806  03C9  1616                      bsf     22,4    ;volatile
  6807                           
  6808                           ;I2C1.c: 218: } else {
  6809  03CA  0008                      return
  6810  03CB                     i1l2533:       
  6811                           
  6812                           ;I2C1.c: 220: i2c_data_p->operating_state = 0xB;
  6813  03CB  300B                      movlw   11
  6814  03CC  00F0                      movwf   ??_I2C1_Interrupt_Master
  6815  03CD  0879                      movf    _i2c_data_p,w
  6816  03CE  3E47                      addlw   71
  6817  03CF  0086                      movwf   6
  6818  03D0  0187                      clrf    7
  6819  03D1  0870                      movf    ??_I2C1_Interrupt_Master,w
  6820  03D2  0081                      movwf   1
  6821                           
  6822                           ;I2C1.c: 221: SSP1CON2bits.ACKDT = 1;
  6823  03D3  1696                      bsf     22,5    ;volatile
  6824                           
  6825                           ;I2C1.c: 222: SSP1CON2bits.ACKEN = 1;
  6826  03D4  1616                      bsf     22,4    ;volatile
  6827                           
  6828                           ;I2C1.c: 223: }
  6829                           ;I2C1.c: 224: break;
  6830  03D5  0008                      return
  6831  03D6                     i1l2539:       
  6832                           ;I2C1.c: 225: case 0xA:
  6833                           
  6834                           
  6835                           ;I2C1.c: 227: i2c_data_p->operating_state = 0x3;
  6836  03D6  3003                      movlw   3
  6837  03D7  00F0                      movwf   ??_I2C1_Interrupt_Master
  6838  03D8  0879                      movf    _i2c_data_p,w
  6839  03D9  3E47                      addlw   71
  6840  03DA  0086                      movwf   6
  6841  03DB  0187                      clrf    7
  6842  03DC  0870                      movf    ??_I2C1_Interrupt_Master,w
  6843  03DD  0081                      movwf   1
  6844                           
  6845                           ;I2C1.c: 228: SSP1CON2bits.RCEN = 1;
  6846  03DE  0024                      movlb   4       ; select bank4
  6847  03DF  1596                      bsf     22,3    ;volatile
  6848                           
  6849                           ;I2C1.c: 229: break;
  6850  03E0  0008                      return
  6851  03E1                     i1l2543:       
  6852                           ;I2C1.c: 230: case 0xB:
  6853                           
  6854                           
  6855                           ;I2C1.c: 232: i2c_data_p->operating_state = 0x1;
  6856  03E1  0879                      movf    _i2c_data_p,w
  6857  03E2  3E47                      addlw   71
  6858  03E3  0086                      movwf   6
  6859  03E4  0187                      clrf    7
  6860  03E5  0181                      clrf    1
  6861  03E6  0A81                      incf    1,f
  6862                           
  6863                           ;I2C1.c: 233: SSP1CON2bits.PEN = 1;
  6864  03E7  0024                      movlb   4       ; select bank4
  6865  03E8  1516                      bsf     22,2    ;volatile
  6866                           
  6867                           ;I2C1.c: 234: i2c_data_p->master_status = 0x23;
  6868  03E9  3023                      movlw   35
  6869  03EA  00F0                      movwf   ??_I2C1_Interrupt_Master
  6870  03EB  0879                      movf    _i2c_data_p,w
  6871  03EC  3E4A                      addlw   74
  6872  03ED  0086                      movwf   6
  6873  03EE  0187                      clrf    7
  6874  03EF  0870                      movf    ??_I2C1_Interrupt_Master,w
  6875  03F0  0081                      movwf   1
  6876                           
  6877                           ;I2C1.c: 235: i2c_data_p->return_status = 0x32;
  6878  03F1  3032                      movlw   50
  6879  03F2  00F0                      movwf   ??_I2C1_Interrupt_Master
  6880  03F3  0879                      movf    _i2c_data_p,w
  6881  03F4  3E48                      addlw   72
  6882  03F5  0086                      movwf   6
  6883  03F6  0187                      clrf    7
  6884  03F7  0870                      movf    ??_I2C1_Interrupt_Master,w
  6885  03F8  0081                      movwf   1
  6886                           
  6887                           ;I2C1.c: 237: }
  6888                           
  6889                           ;I2C1.c: 236: break;
  6890  03F9  0008                      return
  6891  03FA                     i1l2549:       
  6892  03FA  0879                      movf    _i2c_data_p,w
  6893  03FB  3E47                      addlw   71
  6894  03FC  0086                      movwf   6
  6895  03FD  0187                      clrf    7
  6896  03FE  0801                      movf    1,w
  6897                           
  6898                           ; Switch size 1, requested type "space"
  6899                           ; Number of cases is 6, Range of values is 1 to 11
  6900                           ; switch strategies available:
  6901                           ; Name         Instructions Cycles
  6902                           ; simple_byte           19    10 (average)
  6903                           ; direct_byte           31     9 (fixed)
  6904                           ; jumptable            263     9 (fixed)
  6905                           ;      Chosen strategy is simple_byte
  6906  03FF  3A01                      xorlw   1       ; case 1
  6907  0400  1903                      skipnz
  6908  0401  2D33                      goto    i1l174
  6909  0402  3A02                      xorlw   2       ; case 3
  6910  0403  1903                      skipnz
  6911  0404  2B9D                      goto    i1l2523
  6912  0405  3A06                      xorlw   6       ; case 5
  6913  0406  1903                      skipnz
  6914  0407  2B63                      goto    i1l2507
  6915  0408  3A0D                      xorlw   13      ; case 8
  6916  0409  1903                      skipnz
  6917  040A  2B78                      goto    i1l145
  6918  040B  3A02                      xorlw   2       ; case 10
  6919  040C  1903                      skipnz
  6920  040D  2BD6                      goto    i1l2539
  6921  040E  3A01                      xorlw   1       ; case 11
  6922  040F  1903                      skipnz
  6923  0410  2BE1                      goto    i1l2543
  6924  0411  2D33                      goto    i1l174
  6925                           
  6926                           ;I2C1.c: 238: } else if (i2c_data_p->master_status == 0x22) {
  6927  0412  0008                      return
  6928  0413                     i1l2551:       
  6929  0413  0879                      movf    _i2c_data_p,w
  6930  0414  3E4A                      addlw   74
  6931  0415  0086                      movwf   6
  6932  0416  0187                      clrf    7
  6933  0417  0801                      movf    1,w
  6934  0418  3A22                      xorlw   34
  6935  0419  1D03                      skipz
  6936  041A  0008                      return
  6937  041B  2D11                      goto    i1l2615
  6938  041C                     i1l2555:       
  6939                           ;I2C1.c: 242: case 0x5:
  6940                           
  6941                           ;I2C1.c: 241: break;
  6942                           
  6943                           ;I2C1.c: 240: case 0x1:
  6944                           
  6945                           ;I2C1.c: 239: switch (i2c_data_p->operating_state) {
  6946                           
  6947                           
  6948                           ;I2C1.c: 244: i2c_data_p->operating_state = 0x7;
  6949  041C  3007                      movlw   7
  6950  041D  00F0                      movwf   ??_I2C1_Interrupt_Master
  6951  041E  0879                      movf    _i2c_data_p,w
  6952  041F  3E47                      addlw   71
  6953  0420  0086                      movwf   6
  6954  0421  0187                      clrf    7
  6955  0422  0870                      movf    ??_I2C1_Interrupt_Master,w
  6956  0423  0081                      movwf   1
  6957                           
  6958                           ;I2C1.c: 245: SSP1BUF = (i2c_data_p->master_dest_addr << 1) | 0x0;
  6959  0424  0879                      movf    _i2c_data_p,w
  6960  0425  3E49                      addlw   73
  6961  0426  0086                      movwf   6
  6962  0427  0187                      clrf    7
  6963  0428  3501                      lslf    1,w
  6964  0429  0024                      movlb   4       ; select bank4
  6965  042A  0091                      movwf   17      ;volatile
  6966                           
  6967                           ;I2C1.c: 246: break;
  6968  042B  0008                      return
  6969  042C                     i1l159:        
  6970                           ;I2C1.c: 247: case 0x7:
  6971                           
  6972                           
  6973                           ;I2C1.c: 249: if (!SSP1CON2bits.ACKSTAT) {
  6974  042C  0024                      movlb   4       ; select bank4
  6975  042D  1B16                      btfsc   22,6    ;volatile
  6976  042E  2C3D                      goto    i1l2561
  6977                           
  6978                           ;I2C1.c: 251: SSP1BUF = i2c_data_p->buffer_in[0];
  6979  042F  0879                      movf    _i2c_data_p,w
  6980  0430  0086                      movwf   6
  6981  0431  0187                      clrf    7
  6982  0432  0801                      movf    1,w
  6983  0433  0091                      movwf   17      ;volatile
  6984                           
  6985                           ;I2C1.c: 252: i2c_data_p->operating_state = 0x9;
  6986  0434  3009                      movlw   9
  6987  0435  00F0                      movwf   ??_I2C1_Interrupt_Master
  6988  0436  0879                      movf    _i2c_data_p,w
  6989  0437  3E47                      addlw   71
  6990  0438  0086                      movwf   6
  6991  0439  0187                      clrf    7
  6992  043A  0870                      movf    ??_I2C1_Interrupt_Master,w
  6993  043B  0081                      movwf   1
  6994                           
  6995                           ;I2C1.c: 253: } else {
  6996  043C  0008                      return
  6997  043D                     i1l2561:       
  6998                           
  6999                           ;I2C1.c: 255: i2c_data_p->operating_state = 0x1;
  7000  043D  0879                      movf    _i2c_data_p,w
  7001  043E  3E47                      addlw   71
  7002  043F  0086                      movwf   6
  7003  0440  0187                      clrf    7
  7004  0441  0181                      clrf    1
  7005  0442  0A81                      incf    1,f
  7006                           
  7007                           ;I2C1.c: 256: SSP1CON2bits.PEN = 1;
  7008  0443  1516                      bsf     22,2    ;volatile
  7009                           
  7010                           ;I2C1.c: 257: i2c_data_p->master_status = 0x23;
  7011  0444  3023                      movlw   35
  7012  0445  00F0                      movwf   ??_I2C1_Interrupt_Master
  7013  0446  0879                      movf    _i2c_data_p,w
  7014  0447  3E4A                      addlw   74
  7015  0448  0086                      movwf   6
  7016  0449  0187                      clrf    7
  7017  044A  0870                      movf    ??_I2C1_Interrupt_Master,w
  7018  044B  0081                      movwf   1
  7019                           
  7020                           ;I2C1.c: 258: i2c_data_p->return_status = 0x31;
  7021  044C  3031                      movlw   49
  7022  044D  00F0                      movwf   ??_I2C1_Interrupt_Master
  7023  044E  0879                      movf    _i2c_data_p,w
  7024  044F  3E48                      addlw   72
  7025  0450  0086                      movwf   6
  7026  0451  0187                      clrf    7
  7027  0452  0870                      movf    ??_I2C1_Interrupt_Master,w
  7028  0453  0081                      movwf   1
  7029                           
  7030                           ;I2C1.c: 259: }
  7031                           ;I2C1.c: 260: break;
  7032  0454  0008                      return
  7033  0455                     i1l162:        
  7034                           ;I2C1.c: 261: case 0x9:
  7035                           
  7036                           
  7037                           ;I2C1.c: 262: if (!SSP1CON2bits.ACKSTAT) {
  7038  0455  0024                      movlb   4       ; select bank4
  7039  0456  1B16                      btfsc   22,6    ;volatile
  7040  0457  2C62                      goto    i1l2569
  7041                           
  7042                           ;I2C1.c: 263: SSP1CON2bits.RSEN = 1;
  7043  0458  1496                      bsf     22,1    ;volatile
  7044                           
  7045                           ;I2C1.c: 264: i2c_data_p->operating_state = 0x6;
  7046  0459  3006                      movlw   6
  7047  045A  00F0                      movwf   ??_I2C1_Interrupt_Master
  7048  045B  0879                      movf    _i2c_data_p,w
  7049  045C  3E47                      addlw   71
  7050  045D  0086                      movwf   6
  7051  045E  0187                      clrf    7
  7052  045F  0870                      movf    ??_I2C1_Interrupt_Master,w
  7053  0460  0081                      movwf   1
  7054                           
  7055                           ;I2C1.c: 265: } else {
  7056  0461  0008                      return
  7057  0462                     i1l2569:       
  7058                           
  7059                           ;I2C1.c: 267: i2c_data_p->operating_state = 0x1;
  7060  0462  0879                      movf    _i2c_data_p,w
  7061  0463  3E47                      addlw   71
  7062  0464  0086                      movwf   6
  7063  0465  0187                      clrf    7
  7064  0466  0181                      clrf    1
  7065  0467  0A81                      incf    1,f
  7066                           
  7067                           ;I2C1.c: 268: SSP1CON2bits.PEN = 1;
  7068  0468  1516                      bsf     22,2    ;volatile
  7069                           
  7070                           ;I2C1.c: 269: i2c_data_p->master_status = 0x23;
  7071  0469  3023                      movlw   35
  7072  046A  00F0                      movwf   ??_I2C1_Interrupt_Master
  7073  046B  0879                      movf    _i2c_data_p,w
  7074  046C  3E4A                      addlw   74
  7075  046D  0086                      movwf   6
  7076  046E  0187                      clrf    7
  7077  046F  0870                      movf    ??_I2C1_Interrupt_Master,w
  7078  0470  0081                      movwf   1
  7079                           
  7080                           ;I2C1.c: 270: i2c_data_p->return_status = 0x31;
  7081  0471  3031                      movlw   49
  7082  0472  00F0                      movwf   ??_I2C1_Interrupt_Master
  7083  0473  0879                      movf    _i2c_data_p,w
  7084  0474  3E48                      addlw   72
  7085  0475  0086                      movwf   6
  7086  0476  0187                      clrf    7
  7087  0477  0870                      movf    ??_I2C1_Interrupt_Master,w
  7088  0478  0081                      movwf   1
  7089                           
  7090                           ;I2C1.c: 271: }
  7091                           ;I2C1.c: 272: break;
  7092  0479  0008                      return
  7093  047A                     i1l2573:       
  7094                           ;I2C1.c: 273: case 0x6:
  7095                           
  7096                           
  7097                           ;I2C1.c: 275: i2c_data_p->operating_state = 0x8;
  7098  047A  3008                      movlw   8
  7099  047B  00F0                      movwf   ??_I2C1_Interrupt_Master
  7100  047C  0879                      movf    _i2c_data_p,w
  7101  047D  3E47                      addlw   71
  7102  047E  0086                      movwf   6
  7103  047F  0187                      clrf    7
  7104  0480  0870                      movf    ??_I2C1_Interrupt_Master,w
  7105  0481  0081                      movwf   1
  7106                           
  7107                           ;I2C1.c: 276: uint8_t tmp = (i2c_data_p->master_dest_addr << 1);
  7108  0482  0879                      movf    _i2c_data_p,w
  7109  0483  3E49                      addlw   73
  7110  0484  0086                      movwf   6
  7111  0485  0187                      clrf    7
  7112  0486  3501                      lslf    1,w
  7113  0487  00F0                      movwf   ??_I2C1_Interrupt_Master
  7114  0488  0870                      movf    ??_I2C1_Interrupt_Master,w
  7115  0489  00F3                      movwf   I2C1_Interrupt_Master@tmp_611
  7116                           
  7117                           ;I2C1.c: 277: tmp |= 0x01;
  7118  048A  1473                      bsf     I2C1_Interrupt_Master@tmp_611,0
  7119                           
  7120                           ;I2C1.c: 278: SSP1BUF = tmp;
  7121  048B  0873                      movf    I2C1_Interrupt_Master@tmp_611,w
  7122  048C  0024                      movlb   4       ; select bank4
  7123  048D  0091                      movwf   17      ;volatile
  7124                           
  7125                           ;I2C1.c: 279: break;
  7126  048E  0008                      return
  7127  048F                     i1l166:        
  7128                           ;I2C1.c: 280: case 0x8:
  7129                           
  7130                           
  7131                           ;I2C1.c: 282: if (!SSP1CON2bits.ACKSTAT) {
  7132  048F  0024                      movlb   4       ; select bank4
  7133  0490  1B16                      btfsc   22,6    ;volatile
  7134  0491  2C9C                      goto    i1l2585
  7135                           
  7136                           ;I2C1.c: 284: i2c_data_p->operating_state = 0x3;
  7137  0492  3003                      movlw   3
  7138  0493  00F0                      movwf   ??_I2C1_Interrupt_Master
  7139  0494  0879                      movf    _i2c_data_p,w
  7140  0495  3E47                      addlw   71
  7141  0496  0086                      movwf   6
  7142  0497  0187                      clrf    7
  7143  0498  0870                      movf    ??_I2C1_Interrupt_Master,w
  7144  0499  0081                      movwf   1
  7145                           
  7146                           ;I2C1.c: 285: SSP1CON2bits.RCEN = 1;
  7147  049A  1596                      bsf     22,3    ;volatile
  7148                           
  7149                           ;I2C1.c: 286: } else {
  7150  049B  0008                      return
  7151  049C                     i1l2585:       
  7152                           
  7153                           ;I2C1.c: 288: i2c_data_p->operating_state = 0x1;
  7154  049C  0879                      movf    _i2c_data_p,w
  7155  049D  3E47                      addlw   71
  7156  049E  0086                      movwf   6
  7157  049F  0187                      clrf    7
  7158  04A0  0181                      clrf    1
  7159  04A1  0A81                      incf    1,f
  7160                           
  7161                           ;I2C1.c: 289: SSP1CON2bits.PEN = 1;
  7162  04A2  1516                      bsf     22,2    ;volatile
  7163                           
  7164                           ;I2C1.c: 290: i2c_data_p->master_status = 0x23;
  7165  04A3  3023                      movlw   35
  7166  04A4  00F0                      movwf   ??_I2C1_Interrupt_Master
  7167  04A5  0879                      movf    _i2c_data_p,w
  7168  04A6  3E4A                      addlw   74
  7169  04A7  0086                      movwf   6
  7170  04A8  0187                      clrf    7
  7171  04A9  0870                      movf    ??_I2C1_Interrupt_Master,w
  7172  04AA  0081                      movwf   1
  7173                           
  7174                           ;I2C1.c: 291: i2c_data_p->return_status = 0x33;
  7175  04AB  3033                      movlw   51
  7176  04AC  00F0                      movwf   ??_I2C1_Interrupt_Master
  7177  04AD  0879                      movf    _i2c_data_p,w
  7178  04AE  3E48                      addlw   72
  7179  04AF  0086                      movwf   6
  7180  04B0  0187                      clrf    7
  7181  04B1  0870                      movf    ??_I2C1_Interrupt_Master,w
  7182  04B2  0081                      movwf   1
  7183                           
  7184                           ;I2C1.c: 292: }
  7185                           ;I2C1.c: 293: break;
  7186  04B3  0008                      return
  7187  04B4                     i1l2589:       
  7188                           ;I2C1.c: 294: case 0x3:
  7189                           
  7190                           
  7191                           ;I2C1.c: 297: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = SSP1BUF;
  7192  04B4  0024                      movlb   4       ; select bank4
  7193  04B5  0811                      movf    17,w    ;volatile
  7194  04B6  00F0                      movwf   ??_I2C1_Interrupt_Master
  7195  04B7  0879                      movf    _i2c_data_p,w
  7196  04B8  3E23                      addlw   35
  7197  04B9  0086                      movwf   6
  7198  04BA  0187                      clrf    7
  7199  04BB  0801                      movf    1,w
  7200  04BC  0779                      addwf   _i2c_data_p,w
  7201  04BD  00F1                      movwf   ??_I2C1_Interrupt_Master+1
  7202  04BE  0871                      movf    ??_I2C1_Interrupt_Master+1,w
  7203  04BF  0086                      movwf   6
  7204  04C0  0187                      clrf    7
  7205  04C1  0870                      movf    ??_I2C1_Interrupt_Master,w
  7206  04C2  0081                      movwf   1
  7207                           
  7208                           ;I2C1.c: 298: i2c_data_p->buffer_in_write_ind++;
  7209  04C3  3001                      movlw   1
  7210  04C4  00F0                      movwf   ??_I2C1_Interrupt_Master
  7211  04C5  0879                      movf    _i2c_data_p,w
  7212  04C6  3E23                      addlw   35
  7213  04C7  0086                      movwf   6
  7214  04C8  0187                      clrf    7
  7215  04C9  0870                      movf    ??_I2C1_Interrupt_Master,w
  7216  04CA  0781                      addwf   1,f
  7217                           
  7218                           ;I2C1.c: 299: if (i2c_data_p->buffer_in_write_ind < i2c_data_p->buffer_in_len) {
  7219  04CB  0879                      movf    _i2c_data_p,w
  7220  04CC  3E23                      addlw   35
  7221  04CD  0086                      movwf   6
  7222  04CE  0187                      clrf    7
  7223  04CF  0879                      movf    _i2c_data_p,w
  7224  04D0  3E20                      addlw   32
  7225  04D1  0084                      movwf   4
  7226  04D2  0185                      clrf    5
  7227  04D3  0800                      movf    0,w
  7228  04D4  0201                      subwf   1,w
  7229  04D5  1803                      skipnc
  7230  04D6  2CE2                      goto    i1l2599
  7231                           
  7232                           ;I2C1.c: 301: i2c_data_p->operating_state = 0xA;
  7233  04D7  300A                      movlw   10
  7234  04D8  00F0                      movwf   ??_I2C1_Interrupt_Master
  7235  04D9  0879                      movf    _i2c_data_p,w
  7236  04DA  3E47                      addlw   71
  7237  04DB  0086                      movwf   6
  7238  04DC  0187                      clrf    7
  7239  04DD  0870                      movf    ??_I2C1_Interrupt_Master,w
  7240  04DE  0081                      movwf   1
  7241                           
  7242                           ;I2C1.c: 302: SSP1CON2bits.ACKDT = 0;
  7243  04DF  1296                      bcf     22,5    ;volatile
  7244                           
  7245                           ;I2C1.c: 303: SSP1CON2bits.ACKEN = 1;
  7246  04E0  1616                      bsf     22,4    ;volatile
  7247                           
  7248                           ;I2C1.c: 304: } else {
  7249  04E1  0008                      return
  7250  04E2                     i1l2599:       
  7251                           
  7252                           ;I2C1.c: 306: i2c_data_p->operating_state = 0xB;
  7253  04E2  300B                      movlw   11
  7254  04E3  00F0                      movwf   ??_I2C1_Interrupt_Master
  7255  04E4  0879                      movf    _i2c_data_p,w
  7256  04E5  3E47                      addlw   71
  7257  04E6  0086                      movwf   6
  7258  04E7  0187                      clrf    7
  7259  04E8  0870                      movf    ??_I2C1_Interrupt_Master,w
  7260  04E9  0081                      movwf   1
  7261                           
  7262                           ;I2C1.c: 307: SSP1CON2bits.ACKDT = 1;
  7263  04EA  1696                      bsf     22,5    ;volatile
  7264                           
  7265                           ;I2C1.c: 308: SSP1CON2bits.ACKEN = 1;
  7266  04EB  1616                      bsf     22,4    ;volatile
  7267                           
  7268                           ;I2C1.c: 309: }
  7269                           ;I2C1.c: 310: break;
  7270  04EC  0008                      return
  7271  04ED                     i1l2605:       
  7272                           ;I2C1.c: 311: case 0xA:
  7273                           
  7274                           
  7275                           ;I2C1.c: 313: i2c_data_p->operating_state = 0x3;
  7276  04ED  3003                      movlw   3
  7277  04EE  00F0                      movwf   ??_I2C1_Interrupt_Master
  7278  04EF  0879                      movf    _i2c_data_p,w
  7279  04F0  3E47                      addlw   71
  7280  04F1  0086                      movwf   6
  7281  04F2  0187                      clrf    7
  7282  04F3  0870                      movf    ??_I2C1_Interrupt_Master,w
  7283  04F4  0081                      movwf   1
  7284                           
  7285                           ;I2C1.c: 314: SSP1CON2bits.RCEN = 1;
  7286  04F5  0024                      movlb   4       ; select bank4
  7287  04F6  1596                      bsf     22,3    ;volatile
  7288                           
  7289                           ;I2C1.c: 315: break;
  7290  04F7  0008                      return
  7291  04F8                     i1l2609:       
  7292                           ;I2C1.c: 316: case 0xB:
  7293                           
  7294                           
  7295                           ;I2C1.c: 318: i2c_data_p->operating_state = 0x1;
  7296  04F8  0879                      movf    _i2c_data_p,w
  7297  04F9  3E47                      addlw   71
  7298  04FA  0086                      movwf   6
  7299  04FB  0187                      clrf    7
  7300  04FC  0181                      clrf    1
  7301  04FD  0A81                      incf    1,f
  7302                           
  7303                           ;I2C1.c: 319: SSP1CON2bits.PEN = 1;
  7304  04FE  0024                      movlb   4       ; select bank4
  7305  04FF  1516                      bsf     22,2    ;volatile
  7306                           
  7307                           ;I2C1.c: 320: i2c_data_p->master_status = 0x23;
  7308  0500  3023                      movlw   35
  7309  0501  00F0                      movwf   ??_I2C1_Interrupt_Master
  7310  0502  0879                      movf    _i2c_data_p,w
  7311  0503  3E4A                      addlw   74
  7312  0504  0086                      movwf   6
  7313  0505  0187                      clrf    7
  7314  0506  0870                      movf    ??_I2C1_Interrupt_Master,w
  7315  0507  0081                      movwf   1
  7316                           
  7317                           ;I2C1.c: 321: i2c_data_p->return_status = 0x32;
  7318  0508  3032                      movlw   50
  7319  0509  00F0                      movwf   ??_I2C1_Interrupt_Master
  7320  050A  0879                      movf    _i2c_data_p,w
  7321  050B  3E48                      addlw   72
  7322  050C  0086                      movwf   6
  7323  050D  0187                      clrf    7
  7324  050E  0870                      movf    ??_I2C1_Interrupt_Master,w
  7325  050F  0081                      movwf   1
  7326                           
  7327                           ;I2C1.c: 323: }
  7328                           
  7329                           ;I2C1.c: 322: break;
  7330  0510  0008                      return
  7331  0511                     i1l2615:       
  7332  0511  0879                      movf    _i2c_data_p,w
  7333  0512  3E47                      addlw   71
  7334  0513  0086                      movwf   6
  7335  0514  0187                      clrf    7
  7336  0515  0801                      movf    1,w
  7337                           
  7338                           ; Switch size 1, requested type "space"
  7339                           ; Number of cases is 9, Range of values is 1 to 11
  7340                           ; switch strategies available:
  7341                           ; Name         Instructions Cycles
  7342                           ; simple_byte           28    15 (average)
  7343                           ; direct_byte           31     9 (fixed)
  7344                           ; jumptable            263     9 (fixed)
  7345                           ;      Chosen strategy is simple_byte
  7346  0516  3A01                      xorlw   1       ; case 1
  7347  0517  1903                      skipnz
  7348  0518  2D33                      goto    i1l174
  7349  0519  3A02                      xorlw   2       ; case 3
  7350  051A  1903                      skipnz
  7351  051B  2CB4                      goto    i1l2589
  7352  051C  3A06                      xorlw   6       ; case 5
  7353  051D  1903                      skipnz
  7354  051E  2C1C                      goto    i1l2555
  7355  051F  3A03                      xorlw   3       ; case 6
  7356  0520  1903                      skipnz
  7357  0521  2C7A                      goto    i1l2573
  7358  0522  3A01                      xorlw   1       ; case 7
  7359  0523  1903                      skipnz
  7360  0524  2C2C                      goto    i1l159
  7361  0525  3A0F                      xorlw   15      ; case 8
  7362  0526  1903                      skipnz
  7363  0527  2C8F                      goto    i1l166
  7364  0528  3A01                      xorlw   1       ; case 9
  7365  0529  1903                      skipnz
  7366  052A  2C55                      goto    i1l162
  7367  052B  3A03                      xorlw   3       ; case 10
  7368  052C  1903                      skipnz
  7369  052D  2CED                      goto    i1l2605
  7370  052E  3A01                      xorlw   1       ; case 11
  7371  052F  1903                      skipnz
  7372  0530  2CF8                      goto    i1l2609
  7373  0531  2D33                      goto    i1l174
  7374  0532  0008                      return
  7375  0533                     i1l174:        
  7376  0533  0008                      return
  7377  0534                     __end_of_I2C1_Interrupt_Master:        
  7378  007E                     btemp  set     126     ;btemp
  7379  007E                     wtemp0 set     126


Data Sizes:
    Strings     0
    Constant    0
    Data        18
    BSS         0
    Persistent  2
    Stack       0

Auto Spaces:
    Space          Size  Autos    Used
    COMMON           14      9      10
    BANK0            80     55      74
    BANK1            80     77      77
    BANK2            80     77      77
    BANK3            80      0       0
    BANK4            80      0       0
    BANK5            80      0       0
    BANK6            80      0       0
    BANK7            80      0       0
    BANK8            80      0       0
    BANK9            80      0       0
    BANK10           80      0       0
    BANK11           80      0       0
    BANK12           48      0       0

Pointer List with Targets:

    TLC59116_Write_All@values   PTR unsigned char  size(1) Largest target is 16
                 -> main@leds(BANK0[16]), 

    I2C2_Read_Buffer@buffer     PTR unsigned char  size(1) Largest target is 2
                 -> MCP23009_Query@buffer(BANK0[2]), 

    I2C2_Master_Send@msg        PTR unsigned char  size(1) Largest target is 25
                 -> MCP23009_Query@buffer(BANK0[2]), MCP23009_Init@buffer(BANK0[8]), TLC59116_Write_BC@buffer(COMMON[2]), TLC59116_Write_All@buffer(BANK0[17]), 
                 -> TLC59116_Write@buffer(COMMON[2]), TLC59116_Init@buffer(BANK0[25]), I2C2_Master_Restart@c(COMMON[1]), 

    I2C2_Init@data      PTR struct . size(1) Largest target is 77
                 -> main@i2c2_data(BANK2[77]), 

    I2C2@i2c_data_p     PTR struct . size(1) Largest target is 77
                 -> NULL(NULL[0]), main@i2c2_data(BANK2[77]), 

    I2C1_Init@data      PTR struct . size(1) Largest target is 77
                 -> main@i2c1_data(BANK1[77]), 

    i2c_data_p  PTR struct . size(1) Largest target is 77
                 -> NULL(NULL[0]), main@i2c1_data(BANK1[77]), 


Critical Paths under _main in COMMON

    None.

Critical Paths under _InterruptHandler in COMMON

    _I2C2_Interrupt_Handler->_I2C2_Interrupt_Slave
    _I2C2_Interrupt_Slave->_I2C2_Process_Receive
    _I2C1_Interrupt_Handler->_I2C1_Interrupt_Slave
    _I2C1_Interrupt_Slave->_I2C1_Process_Receive

Critical Paths under _main in BANK0

    _main->_TLC59116_Init
    _MCP23009_Query->_I2C2_Master_Send
    _MCP23009_Init->_I2C2_Master_Send
    _TLC59116_Write_All->_I2C2_Master_Send
    _TLC59116_Init->_I2C2_Master_Send

Critical Paths under _InterruptHandler in BANK0

    None.

Critical Paths under _main in BANK1

    None.

Critical Paths under _InterruptHandler in BANK1

    None.

Critical Paths under _main in BANK2

    None.

Critical Paths under _InterruptHandler in BANK2

    None.

Critical Paths under _main in BANK3

    None.

Critical Paths under _InterruptHandler in BANK3

    None.

Critical Paths under _main in BANK4

    None.

Critical Paths under _InterruptHandler in BANK4

    None.

Critical Paths under _main in BANK5

    None.

Critical Paths under _InterruptHandler in BANK5

    None.

Critical Paths under _main in BANK6

    None.

Critical Paths under _InterruptHandler in BANK6

    None.

Critical Paths under _main in BANK7

    None.

Critical Paths under _InterruptHandler in BANK7

    None.

Critical Paths under _main in BANK8

    None.

Critical Paths under _InterruptHandler in BANK8

    None.

Critical Paths under _main in BANK9

    None.

Critical Paths under _InterruptHandler in BANK9

    None.

Critical Paths under _main in BANK10

    None.

Critical Paths under _InterruptHandler in BANK10

    None.

Critical Paths under _main in BANK11

    None.

Critical Paths under _InterruptHandler in BANK11

    None.

Critical Paths under _main in BANK12

    None.

Critical Paths under _InterruptHandler in BANK12

    None.

Call Graph Tables:

 ---------------------------------------------------------------------------------
 (Depth) Function               Calls       Base Space   Used Autos Params    Refs
 ---------------------------------------------------------------------------------
 (0) _main                                               208   208      0    3554
                                             35 BANK0     20    20      0
                                              0 BANK1     77    77      0
                                              0 BANK2     77    77      0
                          _Pins_Init
                       _Read_Address
                          _I2C1_Init
               _I2C1_Configure_Slave
                          _I2C2_Init
              _I2C2_Configure_Master
                     _Interrupt_Init
                   _Interrupt_Enable
                      _TLC59116_Init
                 _TLC59116_Write_All
                      _MCP23009_Init
                     _MCP23009_Query
 ---------------------------------------------------------------------------------
 (1) _MCP23009_Query                                       4     4      0     412
                                              7 BANK0      4     4      0
                   _I2C2_Master_Send
                   _I2C2_Master_Recv
                    _I2C2_Get_Status
                   _I2C2_Read_Buffer
 ---------------------------------------------------------------------------------
 (2) _I2C2_Read_Buffer                                     5     5      0      52
                                              0 BANK0      5     5      0
 ---------------------------------------------------------------------------------
 (2) _I2C2_Master_Recv                                     3     2      1      66
                                              0 BANK0      3     2      1
 ---------------------------------------------------------------------------------
 (1) _MCP23009_Init                                       11    11      0     393
                                              7 BANK0     11    11      0
                   _I2C2_Master_Send
                    _I2C2_Get_Status
 ---------------------------------------------------------------------------------
 (1) _TLC59116_Write_All                                  22    22      0     962
                                              7 BANK0     21    21      0
                   _I2C2_Master_Send
                    _I2C2_Get_Status
 ---------------------------------------------------------------------------------
 (1) _TLC59116_Init                                       28    28      0     801
                                              7 BANK0     28    28      0
                   _I2C2_Master_Send
                    _I2C2_Get_Status
 ---------------------------------------------------------------------------------
 (2) _I2C2_Get_Status                                      0     0      0       0
 ---------------------------------------------------------------------------------
 (2) _I2C2_Master_Send                                     7     5      2     178
                                              0 BANK0      7     5      2
 ---------------------------------------------------------------------------------
 (1) _Interrupt_Enable                                     0     0      0       0
 ---------------------------------------------------------------------------------
 (1) _Interrupt_Init                                       0     0      0       0
 ---------------------------------------------------------------------------------
 (1) _I2C2_Configure_Master                                2     2      0      22
                                              0 BANK0      2     2      0
 ---------------------------------------------------------------------------------
 (1) _I2C2_Init                                            2     2      0      22
                                              0 BANK0      2     2      0
 ---------------------------------------------------------------------------------
 (1) _I2C1_Configure_Slave                                 2     2      0      22
                                              0 BANK0      2     2      0
 ---------------------------------------------------------------------------------
 (1) _I2C1_Init                                            2     2      0      22
                                              0 BANK0      2     2      0
 ---------------------------------------------------------------------------------
 (1) _Read_Address                                         4     4      0      27
                                              0 BANK0      4     4      0
 ---------------------------------------------------------------------------------
 (1) _Pins_Init                                            0     0      0       0
 ---------------------------------------------------------------------------------
 Estimated maximum stack depth 2
 ---------------------------------------------------------------------------------
 (Depth) Function               Calls       Base Space   Used Autos Params    Refs
 ---------------------------------------------------------------------------------
 (3) _InterruptHandler                                     1     1      0     642
                                              8 COMMON     1     1      0
             _I2C1_Interrupt_Handler
             _I2C2_Interrupt_Handler
 ---------------------------------------------------------------------------------
 (4) _I2C2_Interrupt_Handler                               0     0      0     321
              _I2C2_Interrupt_Master
               _I2C2_Interrupt_Slave
 ---------------------------------------------------------------------------------
 (5) _I2C2_Interrupt_Slave                                 6     6      0     273
                                              2 COMMON     6     6      0
               _I2C2_Process_Receive
 ---------------------------------------------------------------------------------
 (6) _I2C2_Process_Receive                                 3     3      0      45
                                              0 COMMON     2     2      0
 ---------------------------------------------------------------------------------
 (5) _I2C2_Interrupt_Master                                4     4      0      48
                                              0 COMMON     4     4      0
 ---------------------------------------------------------------------------------
 (4) _I2C1_Interrupt_Handler                               0     0      0     321
              _I2C1_Interrupt_Master
               _I2C1_Interrupt_Slave
 ---------------------------------------------------------------------------------
 (5) _I2C1_Interrupt_Slave                                 6     6      0     273
                                              2 COMMON     6     6      0
               _I2C1_Process_Receive
 ---------------------------------------------------------------------------------
 (6) _I2C1_Process_Receive                                 3     3      0      45
                                              0 COMMON     2     2      0
 ---------------------------------------------------------------------------------
 (5) _I2C1_Interrupt_Master                                4     4      0      48
                                              0 COMMON     4     4      0
 ---------------------------------------------------------------------------------
 Estimated maximum stack depth 6
 ---------------------------------------------------------------------------------

 Call Graph Graphs:

 _main (ROOT)
   _Pins_Init
   _Read_Address
   _I2C1_Init
   _I2C1_Configure_Slave
   _I2C2_Init
   _I2C2_Configure_Master
   _Interrupt_Init
   _Interrupt_Enable
   _TLC59116_Init
     _I2C2_Master_Send
     _I2C2_Get_Status
   _TLC59116_Write_All
     _I2C2_Master_Send
     _I2C2_Get_Status
   _MCP23009_Init
     _I2C2_Master_Send
     _I2C2_Get_Status
   _MCP23009_Query
     _I2C2_Master_Send
     _I2C2_Master_Recv
     _I2C2_Get_Status
     _I2C2_Read_Buffer

 _InterruptHandler (ROOT)
   _I2C1_Interrupt_Handler
     _I2C1_Interrupt_Master
     _I2C1_Interrupt_Slave
       _I2C1_Process_Receive
   _I2C2_Interrupt_Handler
     _I2C2_Interrupt_Master
     _I2C2_Interrupt_Slave
       _I2C2_Process_Receive

 Address spaces:
Name               Size   Autos  Total    Cost      Usage
BIGRAM             3F0      0       0       0        0.0%
EEDATA             100      0       0       0        0.0%
NULL                 0      0       0       0        0.0%
CODE                 0      0       0       0        0.0%
BITCOMMON            E      0       0       1        0.0%
BITSFR0              0      0       0       1        0.0%
SFR0                 0      0       0       1        0.0%
COMMON               E      9       A       2       71.4%
BITSFR1              0      0       0       2        0.0%
SFR1                 0      0       0       2        0.0%
BITSFR2              0      0       0       3        0.0%
SFR2                 0      0       0       3        0.0%
STACK                0      0       A       3        0.0%
BITBANK0            50      0       0       4        0.0%
BITSFR3              0      0       0       4        0.0%
SFR3                 0      0       0       4        0.0%
BANK0               50     37      4A       5       92.5%
BITSFR4              0      0       0       5        0.0%
SFR4                 0      0       0       5        0.0%
BITBANK1            50      0       0       6        0.0%
BITSFR5              0      0       0       6        0.0%
SFR5                 0      0       0       6        0.0%
BANK1               50     4D      4D       7       96.3%
BITSFR6              0      0       0       7        0.0%
SFR6                 0      0       0       7        0.0%
BITBANK2            50      0       0       8        0.0%
BITSFR7              0      0       0       8        0.0%
SFR7                 0      0       0       8        0.0%
BANK2               50     4D      4D       9       96.3%
BITSFR8              0      0       0       9        0.0%
SFR8                 0      0       0       9        0.0%
BITBANK3            50      0       0      10        0.0%
BITSFR9              0      0       0      10        0.0%
SFR9                 0      0       0      10        0.0%
BANK3               50      0       0      11        0.0%
BITSFR10             0      0       0      11        0.0%
SFR10                0      0       0      11        0.0%
BITBANK4            50      0       0      12        0.0%
BITSFR11             0      0       0      12        0.0%
SFR11                0      0       0      12        0.0%
BANK4               50      0       0      13        0.0%
BITSFR12             0      0       0      13        0.0%
SFR12                0      0       0      13        0.0%
BITBANK5            50      0       0      14        0.0%
BITSFR13             0      0       0      14        0.0%
SFR13                0      0       0      14        0.0%
BANK5               50      0       0      15        0.0%
BITSFR14             0      0       0      15        0.0%
SFR14                0      0       0      15        0.0%
BITBANK6            50      0       0      16        0.0%
BITSFR15             0      0       0      16        0.0%
SFR15                0      0       0      16        0.0%
BANK6               50      0       0      17        0.0%
BITSFR16             0      0       0      17        0.0%
SFR16                0      0       0      17        0.0%
BITBANK7            50      0       0      18        0.0%
BITSFR17             0      0       0      18        0.0%
SFR17                0      0       0      18        0.0%
BANK7               50      0       0      19        0.0%
BITSFR18             0      0       0      19        0.0%
SFR18                0      0       0      19        0.0%
BITSFR19             0      0       0      20        0.0%
SFR19                0      0       0      20        0.0%
ABS                  0      0      EE      20        0.0%
BITBANK8            50      0       0      21        0.0%
BITSFR20             0      0       0      21        0.0%
SFR20                0      0       0      21        0.0%
BANK8               50      0       0      22        0.0%
BITSFR21             0      0       0      22        0.0%
SFR21                0      0       0      22        0.0%
BITBANK9            50      0       0      23        0.0%
BITSFR22             0      0       0      23        0.0%
SFR22                0      0       0      23        0.0%
BANK9               50      0       0      24        0.0%
BITSFR23             0      0       0      24        0.0%
SFR23                0      0       0      24        0.0%
BITBANK10           50      0       0      25        0.0%
BITSFR24             0      0       0      25        0.0%
SFR24                0      0       0      25        0.0%
BANK10              50      0       0      26        0.0%
BITSFR25             0      0       0      26        0.0%
SFR25                0      0       0      26        0.0%
BITBANK11           50      0       0      27        0.0%
BITSFR26             0      0       0      27        0.0%
SFR26                0      0       0      27        0.0%
BANK11              50      0       0      28        0.0%
BITSFR27             0      0       0      28        0.0%
SFR27                0      0       0      28        0.0%
BITBANK12           30      0       0      29        0.0%
BITSFR28             0      0       0      29        0.0%
SFR28                0      0       0      29        0.0%
BANK12              30      0       0      30        0.0%
BITSFR29             0      0       0      30        0.0%
SFR29                0      0       0      30        0.0%
BITSFR30             0      0       0      31        0.0%
SFR30                0      0       0      31        0.0%
DATA                 0      0      F8      31        0.0%
BITSFR31             0      0       0      32        0.0%
SFR31                0      0       0      32        0.0%


Microchip Technology PIC Macro Assembler V1.20 build 52243 
Symbol Table                                                                                   Sun Jan 26 16:29:58 2014

                          ??_Interrupt_Init 0020                          ??_Interrupt_Enable 0020  
                  TLC59116_Write_All@values 003B                    TLC59116_Write_All@result 003A  
                               __CFG_CP$OFF 0000           I2C2_Interrupt_Slave@received_data 0076  
                             main@i2c1_data 00A0                               main@i2c2_data 0120  
                                       l500 0C97                                         l445 0D5B  
                                       l448 0D96                                __CFG_CPD$OFF 0000  
                              __CFG_BORV$LO 0000                                         wreg 0009  
                              __CFG_IESO$ON 0000                                __CFG_LVP$OFF 0000  
                                      l2171 0740                                        l2333 0D4D  
                                      l2165 0729                                        l2157 071D  
                                      l2175 0748                                        l2169 0738  
                                      l2277 0C47                                        l2373 07B2  
                                      l2385 0C6B                                        l2393 0C87  
                                      l2661 0DF2                                        l2663 0E0C  
                                      l2909 0D8D                                        l2881 07DA  
                                      l2875 07D8                                        l2885 07E1  
                                      l2895 07F4                                        l2889 07F2  
                                      u1104 072E                                        u1105 072D  
                                      u1080 0712                                        u1065 0CB2  
                                      u1075 0CC1                                __CFG_WRT$OFF 0000  
                             __CFG_FCMEN$ON 0000                                        _main 06DC  
                                      fsr0h 0005                                        fsr1h 0007  
                                      fsr0l 0004                                        indf0 0000  
                                      indf1 0001                                        fsr1l 0006  
                                      btemp 007E                               __CFG_BOREN$ON 0000  
                                      start 0019                  I2C2_Configure_Master@speed 0021  
                             __CFG_MCLRE$ON 0000                    ??_I2C1_Interrupt_Handler 0078  
                             ?_Read_Address 0070                           ??_I2C2_Get_Status 0020  
                             __CFG_PLLEN$ON 0000                      __size_of_TLC59116_Init 0046  
                     _I2C2_Configure_Master 0C2B                           __end_of_I2C1_Init 0DEC  
                         __end_of_I2C2_Init 0E9A                                       ?_main 0070  
                             __CFG_WDTE$OFF 0000                                       i1l200 0F25  
                                     i1l211 0FAC                                       i1l205 0F50  
                                     i1l134 02F6                                       i1l145 0378  
                                     i1l209 0FBE                                       i1l162 0455  
                                     i1l412 0618                                       i1l181 0EBD  
                                     i1l341 0038                                       i1l166 048F  
                                     i1l174 0533                                       i1l159 042C  
                                     i1l407 05E6                                       i1l271 0010  
                                     i1l184 0EC6                                       i1l352 00D1  
                                     i1l416 0698                                       i1l272 0016  
                                     i1l418 0684                                       i1l373 021C  
                                     i1l381 02DC                                       i1l366 01A4  
                                     i1l391 0568                                       i1l369 01D8  
                                     i1l388 055B                       __end_of_MCP23009_Init 0C76  
                   I2C2_Process_Receive@ret 0071                                       main@i 0056  
             __size_of_I2C1_Interrupt_Slave 0166                                       wtemp0 007E  
                                _i2c_data_p 0079                             __initialization 0BA5  
                            ??_Read_Address 0020                                __end_of_main 074D  
                            _MCP23009_Query 0C76                                      ??_main 0043  
              __end_of_I2C1_Process_Receive 0B9B                       _I2C1_Interrupt_Master 02DD  
         I2C1_Interrupt_Slave@received_data 0076                               main@btn_value 0055  
                                    _ANSELA 018C                                      _ANSELB 018D  
                                    _ANSELC 018E                                      i1l3003 0F62  
                                    i1l3005 0F70                                      i1l3031 0FD5  
                                    i1l3007 0F7C                                      i1l3009 0F83  
                                    i1l3113 060F                                      i1l3121 063D  
                                    i1l3027 0FCC                                      i1l3019 0FA4  
                                    i1l3035 0FE4                                      i1l3123 064C  
                                    i1l2501 034A                                      i1l3037 0FF6  
                                    i1l3125 0654                                      i1l3053 054E  
                                    i1l2503 035A                                      i1l3135 067B  
                                    i1l3119 062C                                      i1l3151 06BE  
                                    i1l3081 0585                                      i1l3153 06D2  
                                    i1l2523 039D                                      i1l2507 0363  
                                    i1l3163 0BD0                                      i1l3147 06AC  
                                    i1l3059 0557                                      i1l3171 0BE8  
                                    i1l2605 04ED                                      i1l2533 03CB  
                                    i1l3093 05B4                                      i1l3077 057B  
                                    i1l3069 056D                                      i1l2615 0511  
                                    i1l2543 03E1                                      i1l2519 0385  
                                    i1l2551 0413                                      i1l2623 0B99  
                                    i1l2609 04F8                                      i1l2561 043D  
                                    i1l3097 05DC                                      i1l3089 05B2  
                                    i1l2555 041C                                      i1l2539 03D6  
                                    i1l2491 031A                                      i1l2483 02E6  
                                    i1l2811 01E7                                      i1l2803 01BA  
                                    i1l3099 05DF                                      i1l2573 047A  
                                    i1l2549 03FA                                      i1l2733 0064  
                                    i1l2725 0026                                      i1l2495 0332  
                                    i1l2831 024A                                      i1l2815 0205  
                                    i1l2743 009F                                      i1l2585 049C  
                                    i1l2569 0462                                      i1l2841 0280  
                                    i1l2761 00E1                                      i1l2737 0081  
                                    i1l2745 00B0                                      i1l2851 029B  
                                    i1l2827 022C                                      i1l2589 04B4  
                                    i1l2781 0143                                      i1l2765 00FF  
                                    i1l2749 00BA                                      i1l2599 04E2  
                                    i1l2943 0EB9                                      i1l2847 028E  
                                    i1l2775 0135                                      i1l2791 016E  
                                    i1l2937 0EB1                                      i1l2857 02B9  
                                    i1l2785 0150                                      i1l2793 0188  
                                    i1l2865 0BA3                                      i1l2981 0F1C  
                                    i1l2965 0ED4                                      i1l2797 0192  
                                    i1l2983 0F1F                                      i1l2977 0EFA  
                                    i1l2997 0F48                     I2C2_Master_Recv@address 0022  
                             _TLC59116_Init 0D12                                      _SSPADD 0212  
                            __CFG_PWRTE$OFF 0000               __size_of_I2C2_Interrupt_Slave 01A8  
                    __end_of_MCP23009_Query 0CA7             __size_of_I2C1_Interrupt_Handler 0016  
                            __CFG_STVREN$ON 0000                          __size_of_Pins_Init 001A  
                    ?_I2C2_Configure_Master 0070                I2C2_Interrupt_Master@tmp_923 0073  
                   I2C2_Master_Send@address 0025                __end_of_I2C2_Process_Receive 0BA5  
                         ?_I2C2_Read_Buffer 0070                              ?_TLC59116_Init 0070  
                        ??_I2C2_Read_Buffer 0020                     __end_of__initialization 0BB0  
                         ?_I2C2_Master_Recv 0020                           ?_I2C2_Master_Send 0020  
                        ??_I2C2_Master_Recv 0021                          ??_I2C2_Master_Send 0022  
                            __pcstackCOMMON 0070                                __pidataBANK0 0BB3  
                         I2C2_Read_Buffer@i 0024                             ?_MCP23009_Query 0070  
                  I2C2_Interrupt_Master@tmp 0072                      ?_I2C1_Interrupt_Master 0070  
                 __size_of_InterruptHandler 0015                __end_of_I2C1_Configure_Slave 0C2B  
                            _OPTION_REGbits 0095                   __size_of_Interrupt_Enable 0003  
               __size_of_TLC59116_Write_All 0070                        MCP23009_Query@buffer 0028  
                    _I2C1_Interrupt_Handler 0BC5                        __end_of_Read_Address 0CDA  
                      MCP23009_Query@result 002A                           __end_of_Pins_Init 0C0F  
                           _I2C2_Get_Status 07BD                                  __pnvCOMMON 0079  
                     _I2C2_Interrupt_Master 001B                        _I2C1_Process_Receive 0B91  
                       I2C2_Master_Send@msg 0021                           I2C2_Master_Send@i 0026  
                                __pmaintext 06DC                                  __pintentry 0004  
                                 _I2C1_Init 0D9E                                   _I2C2_Init 0E3F  
                                   _SSP1ADD 0212                                     _SSP2ADD 021A  
                                   _SSP1BUF 0211                                     _SSP2BUF 0219  
                           ??_TLC59116_Init 0027                              I2C2@i2c_data_p 0069  
                     ?_I2C1_Process_Receive 0070                    ??_I2C2_Interrupt_Handler 0078  
 I2C2_Interrupt_Slave@data_read_from_buffer 0077   I2C1_Interrupt_Slave@data_read_from_buffer 0077  
              __end_of_I2C1_Interrupt_Slave 1000                        _I2C2_Process_Receive 0B9B  
                                   __ptext1 0C76                                     __ptext2 0D58  
                                   __ptext3 0CDA                                     __ptext4 0C4D  
                                   __ptext5 074D                                     __ptext6 0D12  
                                   __ptext7 07BD                                     __ptext8 0DEC  
                                   __ptext9 07FB                     __size_of_Interrupt_Init 0001  
                                ?_I2C1_Init 0070                                  ?_I2C2_Init 0070  
                   __end_of_I2C2_Get_Status 07FB                         MCP23009_Init@buffer 0029  
                     I2C1_Process_Receive@c 0070                        end_of_initialization 0BB0  
                       MCP23009_Init@result 0031                      ?_I2C2_Interrupt_Master 0070  
                                   init_ram 0B8B                                     initloop 0B8C  
                      _I2C1_Configure_Slave 0C0F                     ??_I2C2_Configure_Master 0020  
                    __size_of_MCP23009_Init 0029                       ?_I2C2_Process_Receive 0070  
                          _InterruptHandler 0004                       __size_of_Read_Address 0033  
              __end_of_I2C2_Interrupt_Slave 06DC                            _Interrupt_Enable 07FB  
                          __CFG_FOSC$INTOSC 0000                                   _TRISAbits 008C  
                                 _TRISBbits 008D                                   _TRISCbits 008E  
                    ??_I2C1_Process_Receive 0070                       ?_I2C1_Configure_Slave 0070  
                          ??_MCP23009_Query 0027                   __size_of_I2C2_Read_Buffer 0046  
                   ??_I2C1_Interrupt_Master 0070             __size_of_I2C2_Interrupt_Handler 001A  
                              _Read_Address 0CA7                I2C1_Interrupt_Master@tmp_611 0073  
                 __size_of_I2C2_Master_Recv 0038                   __size_of_I2C2_Master_Send 0053  
                   ?_I2C1_Interrupt_Handler 0070                         start_initialization 0BA5  
                               ??_I2C1_Init 0020                                 ??_I2C2_Init 0020  
                          ?_I2C2_Get_Status 0070                               _MCP23009_Init 0C4D  
                      _I2C1_Interrupt_Slave 0E9A           I2C2_Interrupt_Slave@overrun_error 0074  
                                 _Pins_Init 0BF5                      I2C2_Master_Recv@length 0020  
                    ??_I2C2_Process_Receive 0070                                 __pdataBANK0 0057  
                  I2C1_Interrupt_Master@tmp 0072              __end_of_I2C1_Interrupt_Handler 0BDB  
                __end_of_TLC59116_Write_All 07BD                          main@i2c_slave_addr 0054  
                    I2C2_Master_Send@length 0020                              _Interrupt_Init 07FE  
                       MCP23009_Query@F3053 0067                               __pcstackBANK0 0020  
                             __pcstackBANK1 00A0                               __pcstackBANK2 0120  
                            ?_MCP23009_Init 0070                      _I2C2_Interrupt_Handler 0BDB  
                       TLC59116_Init@buffer 0029                       ?_I2C1_Interrupt_Slave 0070  
                       TLC59116_Init@result 0042                      ??_I2C1_Configure_Slave 0020  
                                ?_Pins_Init 0070                                   __pnvBANK0 0069  
                      _I2C2_Interrupt_Slave 0534                      __end_of_Interrupt_Init 07FF  
                   ??_I2C2_Interrupt_Master 0070                      I2C2_Read_Buffer@buffer 0023  
                     __end_of_TLC59116_Init 0D58                    __end_of_InterruptHandler 0019  
                                  _LATCbits 010E                                    _PIE1bits 0091  
                                  _PIE4bits 0094                       ?_I2C2_Interrupt_Slave 0070  
                  __end_of_Interrupt_Enable 07FE                             Read_Address@ret 0023  
         I2C1_Interrupt_Slave@overrun_error 0074                                    _PIR1bits 0011  
                                  _PIR4bits 0014                            _I2C2_Read_Buffer 0D58  
                                 main@F3130 0057                                    _SSP1CON1 0215  
                                  _SSP1CON2 0216                                    _SSP2CON1 021D  
                                  _SSP2CON2 021E              __size_of_I2C2_Configure_Master 0022  
             __end_of_I2C2_Configure_Master 0C4D                                    _SSP1STAT 0214  
                                  _SSP2STAT 021C                             ?_Interrupt_Init 0070  
                          _I2C2_Master_Recv 0CDA                            _I2C2_Master_Send 0DEC  
                                  _WPUCbits 020E                             ??_MCP23009_Init 0027  
                    ??_I2C1_Interrupt_Slave 0072                     I2C1_Process_Receive@ret 0071  
                     I2C2_Process_Receive@c 0070                                 ??_Pins_Init 0020  
            __size_of_I2C1_Interrupt_Master 0257               __end_of_I2C1_Interrupt_Master 0534  
                                  __ptext10 07FE                                    __ptext11 0C2B  
                                  __ptext20 0B9B                                    __ptext12 0E3F  
                                  __ptext21 001B                                    __ptext13 0C0F  
                                  __ptext22 0BC5                                    __ptext14 0D9E  
                                  __ptext23 0E9A                                    __ptext15 0CA7  
                                  __ptext24 0B91                                    __ptext16 0BF5  
                                  __ptext25 02DD                                    __ptext18 0BDB  
                                  __ptext19 0534                                _SSP1CON1bits 0215  
                              _SSP1CON2bits 0216  I2C2_Interrupt_Slave@data_written_to_buffer 0075  
I2C1_Interrupt_Slave@data_written_to_buffer 0075                                _SSP2CON1bits 021D  
                              _SSP2CON2bits 021E                    I2C1_Configure_Slave@addr 0021  
                             __size_of_main 0071                      ??_I2C2_Interrupt_Slave 0072  
             __size_of_I2C1_Process_Receive 000A                                _SSP1STATbits 0214  
                                  main@leds 0044                                _SSP2STATbits 021C  
                   ?_I2C2_Interrupt_Handler 0070                                  _INTCONbits 000B  
                                  intlevel1 0000                          _TLC59116_Write_All 074D  
                  __size_of_I2C2_Get_Status 003E                           __CFG_CLKOUTEN$OFF 0000  
                       ?_TLC59116_Write_All 0070                                  _OSCCONbits 0099  
                             I2C1_Init@data 0021               __size_of_I2C2_Process_Receive 000A  
                             I2C2_Init@data 0021                     __size_of_MCP23009_Query 0031  
            __end_of_I2C2_Interrupt_Handler 0BF5                        ??_TLC59116_Write_All 0027  
                  __end_of_I2C2_Read_Buffer 0D9E              __size_of_I2C2_Interrupt_Master 02C2  
             __end_of_I2C2_Interrupt_Master 02DD                          __size_of_I2C1_Init 004E  
                        __size_of_I2C2_Init 005B                    __end_of_I2C2_Master_Recv 0D12  
                  __end_of_I2C2_Master_Send 0E3F                           ?_InterruptHandler 0070  
             __size_of_I2C1_Configure_Slave 001C                          ??_InterruptHandler 0078  
                         ?_Interrupt_Enable 0070                    TLC59116_Write_All@buffer 0029