

Microchip Technology PIC18 LITE Macro Assembler V1.38 build -256452561 
                                                                                               Tue Feb 25 11:19:55 2020

Microchip Technology Omniscient Code Generator v1.38 (Free mode) build 201607010351
     1                           	processor	18F4550
     2                           	fnconf	rparam,??,?,0
     3                           	opt	pw 120
     4                           	opt	lm
     5                           	psect	idataBANK0,global,class=CODE,delta=1
     6                           	psect	idataBANK1,global,class=CODE,delta=1
     7                           	psect	smallconst,global,reloc=2,class=SMALLCONST,delta=1
     8                           	psect	cinit,global,reloc=2,class=CODE,delta=1
     9                           	psect	bssCOMRAM,global,class=COMRAM,space=1,delta=1
    10                           	psect	bssBANK0,global,class=BANK0,space=1,delta=1
    11                           	psect	dataBANK0,global,class=BANK0,space=1,delta=1
    12                           	psect	dataBANK1,global,class=BANK1,space=1,delta=1
    13                           	psect	cstackCOMRAM,global,class=COMRAM,space=1,delta=1
    14                           	psect	text0,global,reloc=2,class=CODE,delta=1
    15                           	psect	text1,global,reloc=2,class=CODE,delta=1
    16                           	psect	text2,global,reloc=2,class=CODE,delta=1
    17                           	psect	text3,global,reloc=2,class=CODE,delta=1
    18                           	psect	text4,global,reloc=2,class=CODE,delta=1
    19                           	psect	text5,global,reloc=2,class=CODE,delta=1
    20                           	psect	text6,global,reloc=2,class=CODE,delta=1
    21                           	psect	text7,global,reloc=2,class=CODE,delta=1
    22                           	psect	text8,global,reloc=2,class=CODE,delta=1
    23                           	psect	text9,global,reloc=2,class=CODE,delta=1
    24                           	psect	text10,global,reloc=2,class=CODE,delta=1
    25                           	psect	text11,global,reloc=2,class=CODE,delta=1
    26                           	psect	text12,global,reloc=2,class=CODE,delta=1
    27                           	psect	text13,global,reloc=2,class=CODE,delta=1
    28                           	psect	text14,global,reloc=2,class=CODE,delta=1
    29                           	psect	text15,global,reloc=2,class=CODE,delta=1
    30                           	psect	text16,global,reloc=2,class=CODE,delta=1
    31                           	psect	text17,global,reloc=2,class=CODE,delta=1
    32                           	psect	text18,global,reloc=2,class=CODE,delta=1
    33                           	psect	text19,global,reloc=2,class=CODE,delta=1
    34                           	psect	text20,global,reloc=2,class=CODE,delta=1
    35                           	psect	text21,global,reloc=2,class=CODE,delta=1
    36                           	psect	text22,global,reloc=2,class=CODE,delta=1
    37                           	psect	text23,global,reloc=2,class=CODE,delta=1
    38                           	psect	text24,global,reloc=2,class=CODE,delta=1
    39                           	psect	text25,global,reloc=2,class=CODE,delta=1
    40                           	psect	text26,global,reloc=2,class=CODE,delta=1
    41                           	psect	text27,global,reloc=2,class=CODE,delta=1
    42                           	psect	text28,global,reloc=2,class=CODE,delta=1
    43                           	psect	text29,global,reloc=2,class=CODE,delta=1
    44                           	psect	text30,global,reloc=2,class=CODE,delta=1
    45                           	psect	text31,global,reloc=2,class=CODE,delta=1
    46                           	psect	text32,global,reloc=2,class=CODE,delta=1
    47                           	psect	text33,global,reloc=2,class=CODE,delta=1
    48                           	psect	text34,global,reloc=2,class=CODE,delta=1
    49                           	psect	text35,global,reloc=2,class=CODE,delta=1
    50                           	psect	text36,global,reloc=2,class=CODE,delta=1
    51                           	psect	text37,global,reloc=2,class=CODE,delta=1
    52                           	psect	text38,global,reloc=2,class=CODE,delta=1
    53                           	psect	text39,global,reloc=2,class=CODE,delta=1
    54                           	psect	text40,global,reloc=2,class=CODE,delta=1
    55                           	psect	text41,global,reloc=2,class=CODE,delta=1
    56                           	psect	text42,global,reloc=2,class=CODE,delta=1
    57                           	psect	text43,global,reloc=2,class=CODE,delta=1
    58                           	psect	text44,global,reloc=2,class=CODE,delta=1
    59                           	psect	text45,global,reloc=2,class=CODE,delta=1
    60                           	psect	text46,global,reloc=2,class=CODE,delta=1
    61                           	psect	intsave_regs,global,class=BIGRAM,space=1,delta=1
    62                           	psect	rparam,global,class=COMRAM,space=1,delta=1
    63                           	dabs	1,0x400,32,_BDT
    64                           	dabs	1,0x500,64,_ReceivedDataBuffer
    65                           	dabs	1,0x428,8,_CtrlTrfData
    66                           	dabs	1,0x420,8,_SetupPkt
    67                           	dabs	1,0x580,4,_midiData
    68  0000                     
    69                           	psect	idataBANK0
    70  00226A                     __pidataBANK0:
    71                           	opt stack 0
    72                           
    73                           ;initializer for _buttonMap
    74  00226A  01                 	db	1
    75  00226B  02                 	db	2
    76  00226C  03                 	db	3
    77  00226D  07                 	db	7
    78  00226E  00                 	db	0
    79  00226F  04                 	db	4
    80  002270  05                 	db	5
    81  002271  06                 	db	6
    82  002272  09                 	db	9
    83  002273  0A                 	db	10
    84  002274  0B                 	db	11
    85  002275  0F                 	db	15
    86  002276  08                 	db	8
    87  002277  0C                 	db	12
    88  002278  0D                 	db	13
    89  002279  0E                 	db	14
    90                           
    91                           ;initializer for _m_buttons
    92  00227A  01                 	db	1
    93  00227B  00                 	db	0
    94  00227C  00                 	db	0
    95  00227D  00                 	db	0
    96  00227E  00                 	db	0
    97  00227F  00                 	db	0
    98  002280  00                 	db	0
    99  002281  00                 	db	0
   100  002282  00                 	db	0
   101  002283  00                 	db	0
   102  002284  00                 	db	0
   103  002285  00                 	db	0
   104  002286  00                 	db	0
   105  002287  00                 	db	0
   106  002288  00                 	db	0
   107  002289  00                 	db	0
   108                           
   109                           ;initializer for _mb_values
   110  00228A  01                 	db	1
   111  00228B  01                 	db	1
   112  00228C  01                 	db	1
   113  00228D  01                 	db	1
   114  00228E  01                 	db	1
   115  00228F  01                 	db	1
   116  002290  01                 	db	1
   117  002291  01                 	db	1
   118  002292  01                 	db	1
   119  002293  01                 	db	1
   120  002294  01                 	db	1
   121  002295  01                 	db	1
   122  002296  01                 	db	1
   123  002297  01                 	db	1
   124  002298  01                 	db	1
   125  002299  01                 	db	1
   126                           
   127                           ;initializer for _pressedButtonColor
   128  00229A  06                 	db	6
   129                           
   130                           ;initializer for _global_leds
   131  00229B  E1                 	db	225
   132  00229C  00                 	db	0
   133  00229D  00                 	db	0
   134  00229E  00                 	db	0
   135  00229F  E1                 	db	225
   136  0022A0  00                 	db	0
   137  0022A1  00                 	db	0
   138  0022A2  00                 	db	0
   139  0022A3  E1                 	db	225
   140  0022A4  00                 	db	0
   141  0022A5  00                 	db	0
   142  0022A6  00                 	db	0
   143  0022A7  E1                 	db	225
   144  0022A8  00                 	db	0
   145  0022A9  00                 	db	0
   146  0022AA  00                 	db	0
   147  0022AB  E1                 	db	225
   148  0022AC  00                 	db	0
   149  0022AD  00                 	db	0
   150  0022AE  00                 	db	0
   151  0022AF  E1                 	db	225
   152  0022B0  00                 	db	0
   153  0022B1  00                 	db	0
   154  0022B2  00                 	db	0
   155  0022B3  E1                 	db	225
   156  0022B4  00                 	db	0
   157  0022B5  00                 	db	0
   158  0022B6  00                 	db	0
   159  0022B7  E1                 	db	225
   160  0022B8  00                 	db	0
   161  0022B9  00                 	db	0
   162  0022BA  00                 	db	0
   163  0022BB  E1                 	db	225
   164  0022BC  00                 	db	0
   165  0022BD  00                 	db	0
   166  0022BE  00                 	db	0
   167  0022BF  E1                 	db	225
   168  0022C0  00                 	db	0
   169  0022C1  00                 	db	0
   170  0022C2  00                 	db	0
   171  0022C3  E1                 	db	225
   172  0022C4  00                 	db	0
   173  0022C5  00                 	db	0
   174  0022C6  00                 	db	0
   175  0022C7  E1                 	db	225
   176  0022C8  00                 	db	0
   177  0022C9  00                 	db	0
   178  0022CA  00                 	db	0
   179  0022CB  E1                 	db	225
   180  0022CC  00                 	db	0
   181  0022CD  00                 	db	0
   182  0022CE  00                 	db	0
   183  0022CF  E1                 	db	225
   184  0022D0  00                 	db	0
   185  0022D1  00                 	db	0
   186  0022D2  00                 	db	0
   187  0022D3  E1                 	db	225
   188  0022D4  00                 	db	0
   189  0022D5  00                 	db	0
   190  0022D6  00                 	db	0
   191  0022D7  E1                 	db	225
   192  0022D8  00                 	db	0
   193  0022D9  00                 	db	0
   194  0022DA  00                 	db	0
   195                           
   196                           	psect	idataBANK1
   197  002964                     __pidataBANK1:
   198                           	opt stack 0
   199                           
   200                           ;initializer for _btn_ctrl
   201  002964  01                 	db	1
   202  002965  02                 	db	2
   203  002966  03                 	db	3
   204  002967  04                 	db	4
   205  002968  05                 	db	5
   206  002969  06                 	db	6
   207  00296A  07                 	db	7
   208  00296B  08                 	db	8
   209  00296C  09                 	db	9
   210  00296D  0A                 	db	10
   211  00296E  0B                 	db	11
   212  00296F  0C                 	db	12
   213  002970  0D                 	db	13
   214  002971  0E                 	db	14
   215  002972  0F                 	db	15
   216  002973  10                 	db	16
   217                           
   218                           ;initializer for _btn_note
   219  002974  48                 	db	72
   220  002975  49                 	db	73
   221  002976  4A                 	db	74
   222  002977  4B                 	db	75
   223  002978  4C                 	db	76
   224  002979  4D                 	db	77
   225  00297A  4E                 	db	78
   226  00297B  4F                 	db	79
   227  00297C  50                 	db	80
   228  00297D  51                 	db	81
   229  00297E  52                 	db	82
   230  00297F  53                 	db	83
   231  002980  54                 	db	84
   232  002981  55                 	db	85
   233  002982  56                 	db	86
   234  002983  57                 	db	87
   235                           
   236                           	psect	smallconst
   237  000800                     __psmallconst:
   238                           	opt stack 0
   239  000800  00                 	db	0
   240  000801                     _USB_SD_Ptr:
   241                           	opt stack 0
   242  000801  CE                 	db	low _sd000
   243  000802  08                 	db	high _sd000
   244  000803  6E                 	db	low _sd001
   245  000804  08                 	db	high _sd001
   246  000805  A2                 	db	low _sd002
   247  000806  08                 	db	high _sd002
   248  000807                     __end_of_USB_SD_Ptr:
   249                           	opt stack 0
   250  000807                     _USB_CD_Ptr:
   251                           	opt stack 0
   252  000807  09                 	db	low _configDescriptor1
   253  000808  08                 	db	high _configDescriptor1
   254  000809                     __end_of_USB_CD_Ptr:
   255                           	opt stack 0
   256  000809                     _configDescriptor1:
   257                           	opt stack 0
   258  000809  09                 	db	9
   259  00080A  02                 	db	2
   260  00080B  65                 	db	101
   261  00080C  00                 	db	0
   262  00080D  02                 	db	2
   263  00080E  01                 	db	1
   264  00080F  00                 	db	0
   265  000810  C0                 	db	192
   266  000811  32                 	db	50
   267  000812  09                 	db	9
   268  000813  04                 	db	4
   269  000814  00                 	db	0
   270  000815  00                 	db	0
   271  000816  00                 	db	0
   272  000817  01                 	db	1
   273  000818  01                 	db	1
   274  000819  00                 	db	0
   275  00081A  00                 	db	0
   276  00081B  09                 	db	9
   277  00081C  24                 	db	36
   278  00081D  01                 	db	1
   279  00081E  00                 	db	0
   280  00081F  01                 	db	1
   281  000820  09                 	db	9
   282  000821  00                 	db	0
   283  000822  01                 	db	1
   284  000823  01                 	db	1
   285  000824  09                 	db	9
   286  000825  04                 	db	4
   287  000826  01                 	db	1
   288  000827  00                 	db	0
   289  000828  02                 	db	2
   290  000829  01                 	db	1
   291  00082A  03                 	db	3
   292  00082B  00                 	db	0
   293  00082C  00                 	db	0
   294  00082D  07                 	db	7
   295  00082E  24                 	db	36
   296  00082F  01                 	db	1
   297  000830  00                 	db	0
   298  000831  01                 	db	1
   299  000832  41                 	db	65
   300  000833  00                 	db	0
   301  000834  06                 	db	6
   302  000835  24                 	db	36
   303  000836  02                 	db	2
   304  000837  01                 	db	1
   305  000838  01                 	db	1
   306  000839  00                 	db	0
   307  00083A  06                 	db	6
   308  00083B  24                 	db	36
   309  00083C  02                 	db	2
   310  00083D  02                 	db	2
   311  00083E  02                 	db	2
   312  00083F  00                 	db	0
   313  000840  09                 	db	9
   314  000841  24                 	db	36
   315  000842  03                 	db	3
   316  000843  01                 	db	1
   317  000844  03                 	db	3
   318  000845  01                 	db	1
   319  000846  02                 	db	2
   320  000847  01                 	db	1
   321  000848  00                 	db	0
   322  000849  09                 	db	9
   323  00084A  24                 	db	36
   324  00084B  03                 	db	3
   325  00084C  02                 	db	2
   326  00084D  04                 	db	4
   327  00084E  01                 	db	1
   328  00084F  01                 	db	1
   329  000850  01                 	db	1
   330  000851  00                 	db	0
   331  000852  09                 	db	9
   332  000853  05                 	db	5
   333  000854  01                 	db	1
   334  000855  02                 	db	2
   335  000856  40                 	db	64
   336  000857  00                 	db	0
   337  000858  00                 	db	0
   338  000859  00                 	db	0
   339  00085A  00                 	db	0
   340  00085B  05                 	db	5
   341  00085C  25                 	db	37
   342  00085D  01                 	db	1
   343  00085E  01                 	db	1
   344  00085F  01                 	db	1
   345  000860  09                 	db	9
   346  000861  05                 	db	5
   347  000862  81                 	db	129
   348  000863  02                 	db	2
   349  000864  40                 	db	64
   350  000865  00                 	db	0
   351  000866  00                 	db	0
   352  000867  00                 	db	0
   353  000868  00                 	db	0
   354  000869  05                 	db	5
   355  00086A  25                 	db	37
   356  00086B  01                 	db	1
   357  00086C  01                 	db	1
   358  00086D  03                 	db	3
   359  00086E                     __end_of_configDescriptor1:
   360                           	opt stack 0
   361  00086E                     _sd001:
   362                           	opt stack 0
   363  00086E  34                 	db	52
   364  00086F  03                 	db	3
   365  000870  0057               	dw	87
   366  000872  0065               	dw	101
   367  000874  0062               	dw	98
   368  000876  0042               	dw	66
   369  000878  004C               	dw	76
   370  00087A  0061               	dw	97
   371  00087C  0042               	dw	66
   372  00087E  00                 	db	0
   373  00087F  00                 	db	0
   374  000880  00                 	db	0
   375  000881  00                 	db	0
   376  000882  00                 	db	0
   377  000883  00                 	db	0
   378  000884  00                 	db	0
   379  000885  00                 	db	0
   380  000886  00                 	db	0
   381  000887  00                 	db	0
   382  000888  00                 	db	0
   383  000889  00                 	db	0
   384  00088A  00                 	db	0
   385  00088B  00                 	db	0
   386  00088C  00                 	db	0
   387  00088D  00                 	db	0
   388  00088E  00                 	db	0
   389  00088F  00                 	db	0
   390  000890  00                 	db	0
   391  000891  00                 	db	0
   392  000892  00                 	db	0
   393  000893  00                 	db	0
   394  000894  00                 	db	0
   395  000895  00                 	db	0
   396  000896  00                 	db	0
   397  000897  00                 	db	0
   398  000898  00                 	db	0
   399  000899  00                 	db	0
   400  00089A  00                 	db	0
   401  00089B  00                 	db	0
   402  00089C  00                 	db	0
   403  00089D  00                 	db	0
   404  00089E  00                 	db	0
   405  00089F  00                 	db	0
   406  0008A0  00                 	db	0
   407  0008A1  00                 	db	0
   408  0008A2                     __end_of_sd001:
   409                           	opt stack 0
   410  0008A2                     _sd002:
   411                           	opt stack 0
   412  0008A2  1A                 	db	26
   413  0008A3  03                 	db	3
   414  0008A4  004D               	dw	77
   415  0008A6  0049               	dw	73
   416  0008A8  0044               	dw	68
   417  0008AA  0049               	dw	73
   418  0008AC  0020               	dw	32
   419  0008AE  0046               	dw	70
   420  0008B0  0069               	dw	105
   421  0008B2  006E               	dw	110
   422  0008B4  0067               	dw	103
   423  0008B6  0065               	dw	101
   424  0008B8  0072               	dw	114
   425  0008BA  00                 	db	0
   426  0008BB  00                 	db	0
   427  0008BC                     __end_of_sd002:
   428                           	opt stack 0
   429  0008BC                     _device_dsc:
   430                           	opt stack 0
   431  0008BC  12                 	db	18
   432  0008BD  01                 	db	1
   433  0008BE  0200               	dw	512
   434  0008C0  00                 	db	0
   435  0008C1  00                 	db	0
   436  0008C2  00                 	db	0
   437  0008C3  08                 	db	8
   438  0008C4  04D8               	dw	1240
   439  0008C6  0059               	dw	89
   440  0008C8  0002               	dw	2
   441  0008CA  01                 	db	1
   442  0008CB  02                 	db	2
   443  0008CC  00                 	db	0
   444  0008CD  01                 	db	1
   445  0008CE                     __end_of_device_dsc:
   446                           	opt stack 0
   447  0008CE                     _sd000:
   448                           	opt stack 0
   449  0008CE  04                 	db	4
   450  0008CF  03                 	db	3
   451  0008D0  0409               	dw	1033
   452  0008D2                     __end_of_sd000:
   453                           	opt stack 0
   454  0000                     _ADCON1	set	4033
   455  0000                     _CMCON	set	4020
   456  0000                     _INTCONbits	set	4082
   457  0000                     _LATBbits	set	3978
   458  0000                     _LATDbits	set	3980
   459  0000                     _PIE2bits	set	4000
   460  0000                     _PIR2bits	set	4001
   461  0000                     _PORTA	set	3968
   462  0000                     _PORTAbits	set	3968
   463  0000                     _PORTBbits	set	3969
   464  0000                     _PORTE	set	3972
   465  0000                     _PORTEbits	set	3972
   466  0000                     _TRISA	set	3986
   467  0000                     _TRISB	set	3987
   468  0000                     _TRISC	set	3988
   469  0000                     _TRISD	set	3989
   470  0000                     _TRISE	set	3990
   471  0000                     _UADDR	set	3950
   472  0000                     _UCFG	set	3951
   473  0000                     _UCON	set	3949
   474  0000                     _UCONbits	set	3949
   475  0000                     _UEIE	set	3947
   476  0000                     _UEIR	set	3946
   477  0000                     _UEP0bits	set	3952
   478  0000                     _UIE	set	3945
   479  0000                     _UIEbits	set	3945
   480  0000                     _UIR	set	3944
   481  0000                     _UIRbits	set	3944
   482  0000                     _USTAT	set	3948
   483  0000                     _UEP0	set	3952
   484  0000                     _UEP1	set	3953
   485  0000                     
   486                           ; #config settings
   487  0008D2  00                 	db	0	; dummy byte at the end
   488  0000                     
   489                           	psect	cinit
   490  002424                     __pcinit:
   491                           	opt stack 0
   492  002424                     start_initialization:
   493                           	opt stack 0
   494  002424                     __initialization:
   495                           	opt stack 0
   496                           
   497                           ; Initialize objects allocated to BANK1 (32 bytes)
   498                           ; load TBLPTR registers with __pidataBANK1
   499  002424  0E64               	movlw	low __pidataBANK1
   500  002426  6EF6               	movwf	tblptrl,c
   501  002428  0E29               	movlw	high __pidataBANK1
   502  00242A  6EF7               	movwf	tblptrh,c
   503  00242C  0E00               	movlw	low (__pidataBANK1 shr (0+16))
   504  00242E  6EF8               	movwf	tblptru,c
   505  002430  EE01  F000         	lfsr	0,__pdataBANK1
   506  002434  EE10 F020          	lfsr	1,32
   507  002438                     copy_data0:
   508  002438  0009               	tblrd		*+
   509  00243A  CFF5 FFEE          	movff	tablat,postinc0
   510  00243E  50E5               	movf	postdec1,w,c
   511  002440  50E1               	movf	fsr1l,w,c
   512  002442  E1FA               	bnz	copy_data0
   513                           
   514                           ; Initialize objects allocated to BANK0 (113 bytes)
   515                           ; load TBLPTR registers with __pidataBANK0
   516  002444  0E6A               	movlw	low __pidataBANK0
   517  002446  6EF6               	movwf	tblptrl,c
   518  002448  0E22               	movlw	high __pidataBANK0
   519  00244A  6EF7               	movwf	tblptrh,c
   520  00244C  0E00               	movlw	low (__pidataBANK0 shr (0+16))
   521  00244E  6EF8               	movwf	tblptru,c
   522  002450  EE00  F060         	lfsr	0,__pdataBANK0
   523  002454  EE10 F071          	lfsr	1,113
   524  002458                     copy_data1:
   525  002458  0009               	tblrd		*+
   526  00245A  CFF5 FFEE          	movff	tablat,postinc0
   527  00245E  50E5               	movf	postdec1,w,c
   528  002460  50E1               	movf	fsr1l,w,c
   529  002462  E1FA               	bnz	copy_data1
   530                           
   531                           ; Clear objects allocated to BANK0 (45 bytes)
   532  002464  EE00  F0D1         	lfsr	0,__pbssBANK0
   533  002468  0E2D               	movlw	45
   534  00246A                     clear_0:
   535  00246A  6AEE               	clrf	postinc0,c
   536  00246C  06E8               	decf	wreg,f,c
   537  00246E  E1FD               	bnz	clear_0
   538                           
   539                           ; Clear objects allocated to COMRAM (21 bytes)
   540  002470  EE00  F04B         	lfsr	0,__pbssCOMRAM
   541  002474  0E15               	movlw	21
   542  002476                     clear_1:
   543  002476  6AEE               	clrf	postinc0,c
   544  002478  06E8               	decf	wreg,f,c
   545  00247A  E1FD               	bnz	clear_1
   546  00247C                     end_of_initialization:
   547                           	opt stack 0
   548  00247C                     __end_of__initialization:
   549                           	opt stack 0
   550  00247C  0E00               	movlw	low (__Lmediumconst shr (0+16))
   551  00247E  6EF8               	movwf	tblptru,c
   552  002480  0100               	movlb	0
   553  002482  EF5E  F014         	goto	_main	;jump to C main() function
   554                           tblptru	equ	0xFF8
   555                           tblptrh	equ	0xFF7
   556                           tblptrl	equ	0xFF6
   557                           tablat	equ	0xFF5
   558                           postinc0	equ	0xFEE
   559                           wreg	equ	0xFE8
   560                           postdec1	equ	0xFE5
   561                           fsr1l	equ	0xFE1
   562                           
   563                           	psect	bssCOMRAM
   564  00004B                     __pbssCOMRAM:
   565                           	opt stack 0
   566  00004B                     _inPipes:
   567                           	opt stack 0
   568  00004B                     	ds	6
   569  000051                     _pBDTEntryIn:
   570                           	opt stack 0
   571  000051                     	ds	4
   572  000055                     _pBDTEntryEP0OutCurrent:
   573                           	opt stack 0
   574  000055                     	ds	2
   575  000057                     _pBDTEntryEP0OutNext:
   576                           	opt stack 0
   577  000057                     	ds	2
   578  000059                     _USBDeferStatusStagePacket:
   579                           	opt stack 0
   580  000059                     	ds	1
   581  00005A                     _USBDeviceState:
   582                           	opt stack 0
   583  00005A                     	ds	1
   584  00005B                     _controlTransferState:
   585                           	opt stack 0
   586  00005B                     	ds	1
   587  00005C                     _shortPacketStatus:
   588                           	opt stack 0
   589  00005C                     	ds	1
   590  00005D                     _USBActiveConfiguration:
   591                           	opt stack 0
   592  00005D                     	ds	1
   593  00005E                     _USBAlternateInterface:
   594                           	opt stack 0
   595  00005E                     	ds	1
   596  00005F                     _USTATcopy:
   597                           	opt stack 0
   598  00005F                     	ds	1
   599                           tblptru	equ	0xFF8
   600                           tblptrh	equ	0xFF7
   601                           tblptrl	equ	0xFF6
   602                           tablat	equ	0xFF5
   603                           postinc0	equ	0xFEE
   604                           wreg	equ	0xFE8
   605                           postdec1	equ	0xFE5
   606                           fsr1l	equ	0xFE1
   607                           
   608                           	psect	bssBANK0
   609  0000D1                     __pbssBANK0:
   610                           	opt stack 0
   611  0000D1                     _outPipes:
   612                           	opt stack 0
   613  0000D1                     	ds	8
   614  0000D9                     _USB1msTickCount:
   615                           	opt stack 0
   616  0000D9                     	ds	4
   617  0000DD                     _pBDTEntryOut:
   618                           	opt stack 0
   619  0000DD                     	ds	4
   620  0000E1                     _USBRxHandle:
   621                           	opt stack 0
   622  0000E1                     	ds	2
   623  0000E3                     _USBTxHandle:
   624                           	opt stack 0
   625  0000E3                     	ds	2
   626  0000E5                     _ep_data_in:
   627                           	opt stack 0
   628  0000E5                     	ds	2
   629  0000E7                     _ep_data_out:
   630                           	opt stack 0
   631  0000E7                     	ds	2
   632  0000E9                     _pDst:
   633                           	opt stack 0
   634  0000E9                     	ds	2
   635  0000EB                     _BothEP0OutUOWNsSet:
   636                           	opt stack 0
   637  0000EB                     	ds	1
   638  0000EC                     _RemoteWakeup:
   639                           	opt stack 0
   640  0000EC                     	ds	1
   641  0000ED                     _USBBusIsSuspended:
   642                           	opt stack 0
   643  0000ED                     	ds	1
   644  0000EE                     _USBDeferINDataStagePackets:
   645                           	opt stack 0
   646  0000EE                     	ds	1
   647  0000EF                     _USBDeferOUTDataStagePackets:
   648                           	opt stack 0
   649  0000EF                     	ds	1
   650  0000F0                     _USBStatusStageEnabledFlag1:
   651                           	opt stack 0
   652  0000F0                     	ds	1
   653  0000F1                     _USBStatusStageEnabledFlag2:
   654                           	opt stack 0
   655  0000F1                     	ds	1
   656  0000F2                     _USBStatusStageTimeoutCounter:
   657                           	opt stack 0
   658  0000F2                     	ds	1
   659  0000F3                     _USBTicksSinceSuspendEnd:
   660                           	opt stack 0
   661  0000F3                     	ds	1
   662  0000F4                     _bank:
   663                           	opt stack 0
   664  0000F4                     	ds	1
   665  0000F5                     _channel:
   666                           	opt stack 0
   667  0000F5                     	ds	1
   668  0000F6                     _endpoint_number:
   669                           	opt stack 0
   670  0000F6                     	ds	1
   671  0000F7                     _in_mode:
   672                           	opt stack 0
   673  0000F7                     	ds	1
   674  0000F8                     _in_setting_mode:
   675                           	opt stack 0
   676  0000F8                     	ds	1
   677  0000F9                     _in_user_mode:
   678                           	opt stack 0
   679  0000F9                     	ds	1
   680  0000FA                     _msCounter:
   681                           	opt stack 0
   682  0000FA                     	ds	1
   683  0000FB                     _pitch:
   684                           	opt stack 0
   685  0000FB                     	ds	1
   686  0000FC                     _sentNoteOff:
   687                           	opt stack 0
   688  0000FC                     	ds	1
   689  0000FD                     _velocity:
   690                           	opt stack 0
   691  0000FD                     	ds	1
   692                           tblptru	equ	0xFF8
   693                           tblptrh	equ	0xFF7
   694                           tblptrl	equ	0xFF6
   695                           tablat	equ	0xFF5
   696                           postinc0	equ	0xFEE
   697                           wreg	equ	0xFE8
   698                           postdec1	equ	0xFE5
   699                           fsr1l	equ	0xFE1
   700                           
   701                           	psect	dataBANK0
   702  000060                     __pdataBANK0:
   703                           	opt stack 0
   704  000060                     _buttonMap:
   705                           	opt stack 0
   706  000060                     	ds	16
   707  000070                     _m_buttons:
   708                           	opt stack 0
   709  000070                     	ds	16
   710  000080                     _mb_values:
   711                           	opt stack 0
   712  000080                     	ds	16
   713  000090                     _pressedButtonColor:
   714                           	opt stack 0
   715  000090                     	ds	1
   716  000091                     _global_leds:
   717                           	opt stack 0
   718  000091                     	ds	64
   719                           tblptru	equ	0xFF8
   720                           tblptrh	equ	0xFF7
   721                           tblptrl	equ	0xFF6
   722                           tablat	equ	0xFF5
   723                           postinc0	equ	0xFEE
   724                           wreg	equ	0xFE8
   725                           postdec1	equ	0xFE5
   726                           fsr1l	equ	0xFE1
   727                           
   728                           	psect	dataBANK1
   729  000100                     __pdataBANK1:
   730                           	opt stack 0
   731  000100                     _btn_ctrl:
   732                           	opt stack 0
   733  000100                     	ds	16
   734  000110                     _btn_note:
   735                           	opt stack 0
   736  000110                     	ds	16
   737                           tblptru	equ	0xFF8
   738                           tblptrh	equ	0xFF7
   739                           tblptrl	equ	0xFF6
   740                           tablat	equ	0xFF5
   741                           postinc0	equ	0xFEE
   742                           wreg	equ	0xFE8
   743                           postdec1	equ	0xFE5
   744                           fsr1l	equ	0xFE1
   745                           
   746                           	psect	cstackCOMRAM
   747  000001                     __pcstackCOMRAM:
   748                           	opt stack 0
   749  000001                     ??_delayMs:
   750  000001                     ??_SPI_8bit:
   751  000001                     ??_USBStdGetDscHandler:
   752  000001                     ??_USBStdGetStatusHandler:
   753  000001                     ??_readMatrixButtons:
   754  000001                     ?_USBTransferOnePacket:
   755                           	opt stack 0
   756  000001                     USBTransferOnePacket@dir:
   757                           	opt stack 0
   758  000001                     USBConfigureEndpoint@direction:
   759                           	opt stack 0
   760  000001                     USBCtrlTrfTxService@byteToSend:
   761                           	opt stack 0
   762  000001                     USBCtrlTrfRxService@i:
   763                           	opt stack 0
   764  000001                     systemButtonPressed@pressed:
   765                           	opt stack 0
   766  000001                     changeColor@color:
   767                           	opt stack 0
   768  000001                     memcpy@d1:
   769                           	opt stack 0
   770  000001                     memset@p1:
   771                           	opt stack 0
   772                           
   773                           ; 2 bytes @ 0x0
   774  000001                     	ds	1
   775  000002                     ??_USBConfigureEndpoint:
   776  000002                     USBCtrlTrfRxService@byteToRead:
   777                           	opt stack 0
   778  000002                     USBCtrlTrfInHandler@lastDTS:
   779                           	opt stack 0
   780  000002                     readMatrixButtons@i:
   781                           	opt stack 0
   782  000002                     SPI_8bit@data:
   783                           	opt stack 0
   784  000002                     changeColor@intensity:
   785                           	opt stack 0
   786  000002                     USBTransferOnePacket@data:
   787                           	opt stack 0
   788  000002                     USBStdGetStatusHandler@p:
   789                           	opt stack 0
   790                           
   791                           ; 2 bytes @ 0x1
   792  000002                     	ds	1
   793  000003                     buttonPressed@pressed:
   794                           	opt stack 0
   795  000003                     SPI_8bit@i:
   796                           	opt stack 0
   797  000003                     changeColor@pos:
   798                           	opt stack 0
   799  000003                     memcpy@s1:
   800                           	opt stack 0
   801  000003                     memset@c:
   802                           	opt stack 0
   803                           
   804                           ; 2 bytes @ 0x2
   805  000003                     	ds	1
   806  000004                     USBTransferOnePacket@len:
   807                           	opt stack 0
   808  000004                     turnOnAllLeds@intensity:
   809                           	opt stack 0
   810  000004                     delayMs@x:
   811                           	opt stack 0
   812  000004                     buttonPressed@i:
   813                           	opt stack 0
   814  000004                     sendLEDs@leds:
   815                           	opt stack 0
   816  000004                     turnOffAllLeds@i:
   817                           	opt stack 0
   818                           
   819                           ; 2 bytes @ 0x3
   820  000004                     	ds	1
   821  000005                     ??_USBTransferOnePacket:
   822  000005                     turnOnAllLeds@color:
   823                           	opt stack 0
   824  000005                     delayMs@i:
   825                           	opt stack 0
   826  000005                     memcpy@n:
   827                           	opt stack 0
   828  000005                     memset@n:
   829                           	opt stack 0
   830                           
   831                           ; 2 bytes @ 0x4
   832  000005                     	ds	1
   833  000006                     ??_sendLEDs:
   834  000006                     USBConfigureEndpoint@EPNum:
   835                           	opt stack 0
   836  000006                     turnOnAllLeds@i:
   837                           	opt stack 0
   838                           
   839                           ; 2 bytes @ 0x5
   840  000006                     	ds	1
   841  000007                     USBConfigureEndpoint@handle:
   842                           	opt stack 0
   843  000007                     memcpy@d:
   844                           	opt stack 0
   845  000007                     memset@p:
   846                           	opt stack 0
   847                           
   848                           ; 2 bytes @ 0x6
   849  000007                     	ds	1
   850  000008                     sendLEDs@i:
   851                           	opt stack 0
   852                           
   853                           ; 1 bytes @ 0x7
   854  000008                     	ds	1
   855  000009                     USBDeviceInit@i:
   856                           	opt stack 0
   857  000009                     USBEnableEndpoint@options:
   858                           	opt stack 0
   859  000009                     USBTransferOnePacket@ep:
   860                           	opt stack 0
   861  000009                     sendLEDs@j:
   862                           	opt stack 0
   863  000009                     memcpy@s:
   864                           	opt stack 0
   865                           
   866                           ; 2 bytes @ 0x8
   867  000009                     	ds	1
   868  00000A                     ??_SYSTEM_Initialize:
   869  00000A                     blinkLedAsync@xtimes:
   870                           	opt stack 0
   871  00000A                     USBEnableEndpoint@p:
   872                           	opt stack 0
   873  00000A                     USBTransferOnePacket@handle:
   874                           	opt stack 0
   875  00000A                     ledsIntro@j:
   876                           	opt stack 0
   877  00000A                     pressedButtonEff@leds:
   878                           	opt stack 0
   879                           
   880                           ; 64 bytes @ 0x9
   881  00000A                     	ds	1
   882  00000B                     blinkLedAsync@color:
   883                           	opt stack 0
   884  00000B                     SYSTEM_Initialize@state:
   885                           	opt stack 0
   886                           
   887                           ; 1 bytes @ 0xA
   888  00000B                     	ds	1
   889  00000C                     USBEnableEndpoint@ep:
   890                           	opt stack 0
   891  00000C                     sendMIDINote@velocity:
   892                           	opt stack 0
   893  00000C                     blinkLedAsync@intensity:
   894                           	opt stack 0
   895  00000C                     ledsIntro@i:
   896                           	opt stack 0
   897                           
   898                           ; 2 bytes @ 0xB
   899  00000C                     	ds	1
   900  00000D                     ??_blinkLedAsync:
   901  00000D                     sendMIDINote@channel:
   902                           	opt stack 0
   903  00000D                     USER_USB_CALLBACK_EVENT_HANDLER@event:
   904                           	opt stack 0
   905                           
   906                           ; 2 bytes @ 0xC
   907  00000D                     	ds	1
   908  00000E                     sendMIDINote@note:
   909                           	opt stack 0
   910                           
   911                           ; 1 bytes @ 0xD
   912  00000E                     	ds	1
   913  00000F                     sendMIDINote@sent:
   914                           	opt stack 0
   915  00000F                     USER_USB_CALLBACK_EVENT_HANDLER@pdata:
   916                           	opt stack 0
   917                           
   918                           ; 2 bytes @ 0xE
   919  00000F                     	ds	1
   920  000010                     blinkLedAsync@i:
   921                           	opt stack 0
   922                           
   923                           ; 2 bytes @ 0xF
   924  000010                     	ds	1
   925  000011                     USER_USB_CALLBACK_EVENT_HANDLER@size:
   926                           	opt stack 0
   927                           
   928                           ; 2 bytes @ 0x10
   929  000011                     	ds	1
   930  000012                     sendMatrixButtonsToMidi@i:
   931                           	opt stack 0
   932  000012                     blinkLedAsync@led:
   933                           	opt stack 0
   934                           
   935                           ; 1 bytes @ 0x11
   936  000012                     	ds	1
   937  000013                     ??_USER_USB_CALLBACK_EVENT_HANDLER:
   938  000013                     bankChange@pressedSysBtn:
   939                           	opt stack 0
   940  000013                     channelChange@pressedButton:
   941                           	opt stack 0
   942  000013                     colorChangeForPressedButton@pressedSysBtn:
   943                           	opt stack 0
   944                           
   945                           ; 1 bytes @ 0x12
   946  000013                     	ds	1
   947  000014                     channelChange@pressedSysBtn:
   948                           	opt stack 0
   949  000014                     colorChangeForPressedButton@pressedButton:
   950                           	opt stack 0
   951  000014                     bankChange@i:
   952                           	opt stack 0
   953                           
   954                           ; 2 bytes @ 0x13
   955  000014                     	ds	1
   956  000015                     ??_USBStdFeatureReqHandler:
   957  000015                     USBStdSetCfgHandler@i:
   958                           	opt stack 0
   959  000015                     colorChangeForPressedButton@i:
   960                           	opt stack 0
   961                           
   962                           ; 2 bytes @ 0x14
   963  000015                     	ds	1
   964  000016                     USBStdFeatureReqHandler@pUEP:
   965                           	opt stack 0
   966  000016                     bankChange@i_1855:
   967                           	opt stack 0
   968                           
   969                           ; 2 bytes @ 0x15
   970  000016                     	ds	2
   971  000018                     USBStdFeatureReqHandler@current_ep_data:
   972                           	opt stack 0
   973  000018                     bankChange@pressedButton:
   974                           	opt stack 0
   975                           
   976                           ; 1 bytes @ 0x17
   977  000018                     	ds	1
   978  000019                     USBStdFeatureReqHandler@p:
   979                           	opt stack 0
   980                           
   981                           ; 2 bytes @ 0x18
   982  000019                     	ds	2
   983  00001B                     ??_USBCtrlEPService:
   984  00001B                     
   985                           ; 1 bytes @ 0x1A
   986  00001B                     	ds	1
   987  00001C                     USBDeviceTasks@i:
   988                           	opt stack 0
   989                           
   990                           ; 1 bytes @ 0x1B
   991  00001C                     	ds	46
   992  00004A                     pressedButtonEff@i:
   993                           	opt stack 0
   994                           
   995                           ; 1 bytes @ 0x49
   996  00004A                     	ds	1
   997  00004B                     tblptru	equ	0xFF8
   998                           tblptrh	equ	0xFF7
   999                           tblptrl	equ	0xFF6
  1000                           tablat	equ	0xFF5
  1001                           postinc0	equ	0xFEE
  1002                           wreg	equ	0xFE8
  1003                           postdec1	equ	0xFE5
  1004                           fsr1l	equ	0xFE1
  1005                           
  1006                           ; 1 bytes @ 0x4A
  1007 ;;
  1008 ;;Main: autosize = 0, tempsize = 0, incstack = 0, save=0
  1009 ;;
  1010 ;; *************** function _main *****************
  1011 ;; Defined at:
  1012 ;;		line 30 in file "main.c"
  1013 ;; Parameters:    Size  Location     Type
  1014 ;;		None
  1015 ;; Auto vars:     Size  Location     Type
  1016 ;;		None
  1017 ;; Return value:  Size  Location     Type
  1018 ;;                  1    wreg      void 
  1019 ;; Registers used:
  1020 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru, prodl, prodh, cstack
  1021 ;; Tracked objects:
  1022 ;;		On entry : 0/0
  1023 ;;		On exit  : 0/0
  1024 ;;		Unchanged: 0/0
  1025 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  1026 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  1027 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  1028 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  1029 ;;      Totals:         0       0       0       0       0       0       0       0       0       0
  1030 ;;Total ram usage:        0 bytes
  1031 ;; Hardware stack levels required when called:    9
  1032 ;; This function calls:
  1033 ;;		_SYSTEM_Initialize
  1034 ;;		_USBDeviceInit
  1035 ;;		_USBDeviceTasks
  1036 ;;		_ledsIntro
  1037 ;;		_pressedButtonEff
  1038 ;;		_processSystemButtons
  1039 ;;		_readMatrixButtons
  1040 ;;		_sendMatrixButtonsToMidi
  1041 ;; This function is called by:
  1042 ;;		Startup code after reset
  1043 ;; This function uses a non-reentrant model
  1044 ;;
  1045                           
  1046                           	psect	text0
  1047  0028BC                     __ptext0:
  1048                           	opt stack 0
  1049  0028BC                     _main:
  1050                           	opt stack 22
  1051                           
  1052                           ;main.c: 32: SYSTEM_Initialize(SYSTEM_STATE_USB_START);
  1053                           
  1054                           ;incstack = 0
  1055  0028BC  0E00               	movlw	0
  1056  0028BE  ECC9  F012         	call	_SYSTEM_Initialize
  1057                           
  1058                           ;main.c: 34: USBDeviceInit();
  1059  0028C2  EC5D  F009         	call	_USBDeviceInit	;wreg free
  1060                           
  1061                           ;main.c: 35: ;
  1062                           ;main.c: 37: ledsIntro();
  1063  0028C6  ECDC  F011         	call	_ledsIntro	;wreg free
  1064  0028CA                     l4117:
  1065                           
  1066                           ;main.c: 40: {
  1067                           ;main.c: 41: ;
  1068                           ;main.c: 45: USBDeviceTasks();
  1069  0028CA  ECA9  F008         	call	_USBDeviceTasks	;wreg free
  1070                           
  1071                           ;main.c: 49: readMatrixButtons();
  1072  0028CE  EC73  F012         	call	_readMatrixButtons	;wreg free
  1073                           
  1074                           ;main.c: 50: pressedButtonEff();
  1075  0028D2  ECF2  F005         	call	_pressedButtonEff	;wreg free
  1076                           
  1077                           ;main.c: 52: processSystemButtons();
  1078  0028D6  EC1E  F013         	call	_processSystemButtons	;wreg free
  1079                           
  1080                           ;main.c: 54: if (in_mode == USER) {
  1081  0028DA  0100               	movlb	0	; () banked
  1082  0028DC  51F7               	movf	_in_mode& (0+255),w,b
  1083  0028DE  A4D8               	btfss	status,2,c
  1084  0028E0  D7F4               	goto	l4117
  1085                           
  1086                           ; BSR set to: 0
  1087                           ;main.c: 55: sendMatrixButtonsToMidi();
  1088  0028E2  ECE6  F00E         	call	_sendMatrixButtonsToMidi	;wreg free
  1089  0028E6  D7F1               	goto	l4117
  1090  0028E8                     __end_of_main:
  1091                           	opt stack 0
  1092                           tblptru	equ	0xFF8
  1093                           tblptrh	equ	0xFF7
  1094                           tblptrl	equ	0xFF6
  1095                           tablat	equ	0xFF5
  1096                           postinc0	equ	0xFEE
  1097                           wreg	equ	0xFE8
  1098                           postdec1	equ	0xFE5
  1099                           fsr1l	equ	0xFE1
  1100                           status	equ	0xFD8
  1101                           
  1102 ;; *************** function _sendMatrixButtonsToMidi *****************
  1103 ;; Defined at:
  1104 ;;		line 201 in file "main.c"
  1105 ;; Parameters:    Size  Location     Type
  1106 ;;		None
  1107 ;; Auto vars:     Size  Location     Type
  1108 ;;  i               1   17[COMRAM] unsigned char 
  1109 ;; Return value:  Size  Location     Type
  1110 ;;                  1    wreg      void 
  1111 ;; Registers used:
  1112 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  1113 ;; Tracked objects:
  1114 ;;		On entry : 0/0
  1115 ;;		On exit  : 0/0
  1116 ;;		Unchanged: 0/0
  1117 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  1118 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  1119 ;;      Locals:         1       0       0       0       0       0       0       0       0       0
  1120 ;;      Temps:          2       0       0       0       0       0       0       0       0       0
  1121 ;;      Totals:         3       0       0       0       0       0       0       0       0       0
  1122 ;;Total ram usage:        3 bytes
  1123 ;; Hardware stack levels used:    1
  1124 ;; Hardware stack levels required when called:    2
  1125 ;; This function calls:
  1126 ;;		_sendMIDINote
  1127 ;; This function is called by:
  1128 ;;		_main
  1129 ;; This function uses a non-reentrant model
  1130 ;;
  1131                           
  1132                           	psect	text1
  1133  001DCC                     __ptext1:
  1134                           	opt stack 0
  1135  001DCC                     _sendMatrixButtonsToMidi:
  1136                           	opt stack 28
  1137                           
  1138                           ;main.c: 203: for(char i = 0; i < 16; i++){
  1139                           
  1140                           ;incstack = 0
  1141  001DCC  0E00               	movlw	0
  1142  001DCE  6E12               	movwf	sendMatrixButtonsToMidi@i,c
  1143  001DD0                     l4097:
  1144  001DD0  0E0F               	movlw	15
  1145  001DD2  6412               	cpfsgt	sendMatrixButtonsToMidi@i,c
  1146  001DD4  D001               	goto	l4101
  1147  001DD6  0012               	return	
  1148  001DD8                     l4101:
  1149                           
  1150                           ;main.c: 205: if(mb_values[i] != m_buttons[i]){
  1151  001DD8  5012               	movf	sendMatrixButtonsToMidi@i,w,c
  1152  001DDA  0D01               	mullw	1
  1153  001DDC  0E70               	movlw	low _m_buttons
  1154  001DDE  24F3               	addwf	prodl,w,c
  1155  001DE0  6ED9               	movwf	fsr2l,c
  1156  001DE2  0E00               	movlw	high _m_buttons
  1157  001DE4  20F4               	addwfc	prodh,w,c
  1158  001DE6  6EDA               	movwf	fsr2h,c
  1159  001DE8  5012               	movf	sendMatrixButtonsToMidi@i,w,c
  1160  001DEA  0D01               	mullw	1
  1161  001DEC  0E80               	movlw	low _mb_values
  1162  001DEE  24F3               	addwf	prodl,w,c
  1163  001DF0  6EE1               	movwf	fsr1l,c
  1164  001DF2  0E00               	movlw	high _mb_values
  1165  001DF4  20F4               	addwfc	prodh,w,c
  1166  001DF6  6EE2               	movwf	fsr1h,c
  1167  001DF8  50DE               	movf	postinc2,w,c
  1168  001DFA  18E6               	xorwf	postinc1,w,c
  1169  001DFC  B4D8               	btfsc	status,2,c
  1170  001DFE  D032               	goto	l4111
  1171                           
  1172                           ;main.c: 208: if(m_buttons[i] == 0) {
  1173  001E00  5012               	movf	sendMatrixButtonsToMidi@i,w,c
  1174  001E02  0D01               	mullw	1
  1175  001E04  0E70               	movlw	low _m_buttons
  1176  001E06  24F3               	addwf	prodl,w,c
  1177  001E08  6ED9               	movwf	fsr2l,c
  1178  001E0A  0E00               	movlw	high _m_buttons
  1179  001E0C  20F4               	addwfc	prodh,w,c
  1180  001E0E  6EDA               	movwf	fsr2h,c
  1181  001E10  50DF               	movf	indf2,w,c
  1182  001E12  A4D8               	btfss	status,2,c
  1183  001E14  D003               	goto	l563
  1184                           
  1185                           ;main.c: 209: velocity = 127;
  1186  001E16  0E7F               	movlw	127
  1187  001E18  0100               	movlb	0	; () banked
  1188  001E1A  6FFD               	movwf	_velocity& (0+255),b
  1189  001E1C                     l563:
  1190                           
  1191                           ;main.c: 210: }
  1192                           ;main.c: 212: if(in_mode == USER){
  1193  001E1C  0100               	movlb	0	; () banked
  1194  001E1E  51F7               	movf	_in_mode& (0+255),w,b
  1195  001E20  A4D8               	btfss	status,2,c
  1196  001E22  D020               	goto	l4111
  1197                           
  1198                           ; BSR set to: 0
  1199                           ;main.c: 214: if(sendMIDINote((bank * 16) + i, velocity, channel)){
  1200  001E24  C0FD  F00C         	movff	_velocity,sendMIDINote@velocity
  1201  001E28  C0F5  F00D         	movff	_channel,sendMIDINote@channel
  1202  001E2C  0100               	movlb	0	; () banked
  1203  001E2E  51F4               	movf	_bank& (0+255),w,b
  1204  001E30  0D10               	mullw	16
  1205  001E32  50F3               	movf	prodl,w,c
  1206  001E34  2412               	addwf	sendMatrixButtonsToMidi@i,w,c
  1207  001E36  ECF7  F010         	call	_sendMIDINote
  1208  001E3A  0900               	iorlw	0
  1209  001E3C  B4D8               	btfsc	status,2,c
  1210  001E3E  D012               	goto	l4111
  1211                           
  1212                           ;main.c: 215: mb_values[i] = m_buttons[i];
  1213  001E40  5012               	movf	sendMatrixButtonsToMidi@i,w,c
  1214  001E42  0D01               	mullw	1
  1215  001E44  0E70               	movlw	low _m_buttons
  1216  001E46  24F3               	addwf	prodl,w,c
  1217  001E48  6ED9               	movwf	fsr2l,c
  1218  001E4A  0E00               	movlw	high _m_buttons
  1219  001E4C  20F4               	addwfc	prodh,w,c
  1220  001E4E  6EDA               	movwf	fsr2h,c
  1221  001E50  5012               	movf	sendMatrixButtonsToMidi@i,w,c
  1222  001E52  0D01               	mullw	1
  1223  001E54  0E80               	movlw	low _mb_values
  1224  001E56  24F3               	addwf	prodl,w,c
  1225  001E58  6EE1               	movwf	fsr1l,c
  1226  001E5A  0E00               	movlw	high _mb_values
  1227  001E5C  20F4               	addwfc	prodh,w,c
  1228  001E5E  6EE2               	movwf	fsr1h,c
  1229  001E60  CFDF FFE7          	movff	indf2,indf1
  1230  001E64                     l4111:
  1231  001E64  2A12               	incf	sendMatrixButtonsToMidi@i,f,c
  1232  001E66  D7B4               	goto	l4097
  1233  001E68                     __end_of_sendMatrixButtonsToMidi:
  1234                           	opt stack 0
  1235                           tblptru	equ	0xFF8
  1236                           tblptrh	equ	0xFF7
  1237                           tblptrl	equ	0xFF6
  1238                           tablat	equ	0xFF5
  1239                           prodh	equ	0xFF4
  1240                           prodl	equ	0xFF3
  1241                           postinc0	equ	0xFEE
  1242                           wreg	equ	0xFE8
  1243                           indf1	equ	0xFE7
  1244                           postinc1	equ	0xFE6
  1245                           postdec1	equ	0xFE5
  1246                           fsr1h	equ	0xFE2
  1247                           fsr1l	equ	0xFE1
  1248                           indf2	equ	0xFDF
  1249                           postinc2	equ	0xFDE
  1250                           fsr2h	equ	0xFDA
  1251                           fsr2l	equ	0xFD9
  1252                           status	equ	0xFD8
  1253                           
  1254 ;; *************** function _sendMIDINote *****************
  1255 ;; Defined at:
  1256 ;;		line 120 in file "midi.c"
  1257 ;; Parameters:    Size  Location     Type
  1258 ;;  note            1    wreg     unsigned char 
  1259 ;;  velocity        1   11[COMRAM] unsigned char 
  1260 ;;  channel         1   12[COMRAM] unsigned char 
  1261 ;; Auto vars:     Size  Location     Type
  1262 ;;  note            1   13[COMRAM] unsigned char 
  1263 ;;  sent            1   14[COMRAM] unsigned char 
  1264 ;; Return value:  Size  Location     Type
  1265 ;;                  1    wreg      unsigned char 
  1266 ;; Registers used:
  1267 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  1268 ;; Tracked objects:
  1269 ;;		On entry : 0/0
  1270 ;;		On exit  : 0/0
  1271 ;;		Unchanged: 0/0
  1272 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  1273 ;;      Params:         2       0       0       0       0       0       0       0       0       0
  1274 ;;      Locals:         2       0       0       0       0       0       0       0       0       0
  1275 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  1276 ;;      Totals:         4       0       0       0       0       0       0       0       0       0
  1277 ;;Total ram usage:        4 bytes
  1278 ;; Hardware stack levels used:    1
  1279 ;; Hardware stack levels required when called:    1
  1280 ;; This function calls:
  1281 ;;		_USBTransferOnePacket
  1282 ;; This function is called by:
  1283 ;;		_sendMatrixButtonsToMidi
  1284 ;; This function uses a non-reentrant model
  1285 ;;
  1286                           
  1287                           	psect	text2
  1288  0021EE                     __ptext2:
  1289                           	opt stack 0
  1290  0021EE                     _sendMIDINote:
  1291                           	opt stack 28
  1292                           
  1293                           ;incstack = 0
  1294                           ;sendMIDINote@note stored from wreg
  1295  0021EE  6E0E               	movwf	sendMIDINote@note,c
  1296                           
  1297                           ;midi.c: 122: bool sent = 0;
  1298  0021F0  0E00               	movlw	0
  1299  0021F2  6E0F               	movwf	sendMIDINote@sent,c
  1300                           
  1301                           ;midi.c: 125: if(!((USBTxHandle != 0x0000) && ((*(volatile uint8_t*)USBTxHandle & 0x80) 
      +                          != 0x00))){
  1302  0021F4  0100               	movlb	0	; () banked
  1303  0021F6  51E3               	movf	_USBTxHandle& (0+255),w,b
  1304  0021F8  0100               	movlb	0	; () banked
  1305  0021FA  11E4               	iorwf	(_USBTxHandle+1)& (0+255),w,b
  1306  0021FC  B4D8               	btfsc	status,2,c
  1307  0021FE  D007               	goto	l3855
  1308                           
  1309                           ; BSR set to: 0
  1310  002200  C0E3  FFD9         	movff	_USBTxHandle,fsr2l
  1311  002204  C0E4  FFDA         	movff	_USBTxHandle+1,fsr2h
  1312  002208  0100               	movlb	0	; () banked
  1313  00220A  BEDF               	btfsc	indf2,7,c
  1314  00220C  D02C               	goto	l3869
  1315  00220E                     l3855:
  1316                           
  1317                           ; BSR set to: 0
  1318                           ;midi.c: 127: midiData.Val = 0;
  1319  00220E  0E00               	movlw	0
  1320  002210  0105               	movlb	5	; () banked
  1321  002212  6F80               	movwf	128,b
  1322  002214  0E00               	movlw	0
  1323  002216  6F81               	movwf	129,b
  1324  002218  0E00               	movlw	0
  1325  00221A  6F82               	movwf	130,b
  1326  00221C  0E00               	movlw	0
  1327  00221E  6F83               	movwf	131,b
  1328                           
  1329                           ; BSR set to: 5
  1330                           ;midi.c: 128: midiData.CableNumber = 0;
  1331  002220  0105               	movlb	5	; () banked
  1332  002222  9980               	bcf	128,4,b
  1333  002224  9B80               	bcf	128,5,b
  1334  002226  9D80               	bcf	128,6,b
  1335  002228  9F80               	bcf	128,7,b
  1336                           
  1337                           ;midi.c: 129: midiData.CodeIndexNumber = 0x9;
  1338  00222A  0105               	movlb	5	; () banked
  1339  00222C  5180               	movf	128,w,b
  1340  00222E  0BF0               	andlw	-16
  1341  002230  0909               	iorlw	9
  1342  002232  6F80               	movwf	128,b
  1343                           
  1344                           ; BSR set to: 5
  1345                           ;midi.c: 130: midiData.DATA_0 = 0x90 + channel;
  1346  002234  500D               	movf	sendMIDINote@channel,w,c
  1347  002236  0F90               	addlw	144
  1348  002238  0105               	movlb	5	; () banked
  1349  00223A  6F81               	movwf	129,b
  1350                           
  1351                           ; BSR set to: 5
  1352                           ;midi.c: 131: midiData.DATA_1 = note;
  1353  00223C  C00E  F582         	movff	sendMIDINote@note,1410
  1354                           
  1355                           ; BSR set to: 5
  1356                           ;midi.c: 132: midiData.DATA_2 = velocity;
  1357  002240  C00C  F583         	movff	sendMIDINote@velocity,1411
  1358                           
  1359                           ; BSR set to: 5
  1360                           ;midi.c: 134: USBTxHandle = USBTransferOnePacket(1,1,(uint8_t*)&midiData,4);
  1361  002244  0E01               	movlw	1
  1362  002246  6E01               	movwf	USBTransferOnePacket@dir,c
  1363  002248  0E80               	movlw	128
  1364  00224A  6E02               	movwf	USBTransferOnePacket@data,c
  1365  00224C  0E05               	movlw	5
  1366  00224E  6E03               	movwf	USBTransferOnePacket@data+1,c
  1367  002250  0E04               	movlw	4
  1368  002252  6E04               	movwf	USBTransferOnePacket@len,c
  1369  002254  0E01               	movlw	1
  1370  002256  ECA2  F00B         	call	_USBTransferOnePacket
  1371  00225A  C001  F0E3         	movff	?_USBTransferOnePacket,_USBTxHandle
  1372  00225E  C002  F0E4         	movff	?_USBTransferOnePacket+1,_USBTxHandle+1
  1373                           
  1374                           ;midi.c: 136: sent = 1;
  1375  002262  0E01               	movlw	1
  1376  002264  6E0F               	movwf	sendMIDINote@sent,c
  1377  002266                     l3869:
  1378                           
  1379                           ;midi.c: 137: }
  1380                           ;midi.c: 139: return sent;
  1381  002266  500F               	movf	sendMIDINote@sent,w,c
  1382  002268  0012               	return	
  1383  00226A                     __end_of_sendMIDINote:
  1384                           	opt stack 0
  1385                           tblptru	equ	0xFF8
  1386                           tblptrh	equ	0xFF7
  1387                           tblptrl	equ	0xFF6
  1388                           tablat	equ	0xFF5
  1389                           prodh	equ	0xFF4
  1390                           prodl	equ	0xFF3
  1391                           postinc0	equ	0xFEE
  1392                           wreg	equ	0xFE8
  1393                           indf1	equ	0xFE7
  1394                           postinc1	equ	0xFE6
  1395                           postdec1	equ	0xFE5
  1396                           fsr1h	equ	0xFE2
  1397                           fsr1l	equ	0xFE1
  1398                           indf2	equ	0xFDF
  1399                           postinc2	equ	0xFDE
  1400                           fsr2h	equ	0xFDA
  1401                           fsr2l	equ	0xFD9
  1402                           status	equ	0xFD8
  1403                           
  1404 ;; *************** function _processSystemButtons *****************
  1405 ;; Defined at:
  1406 ;;		line 61 in file "main.c"
  1407 ;; Parameters:    Size  Location     Type
  1408 ;;		None
  1409 ;; Auto vars:     Size  Location     Type
  1410 ;;		None
  1411 ;; Return value:  Size  Location     Type
  1412 ;;                  1    wreg      void 
  1413 ;; Registers used:
  1414 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  1415 ;; Tracked objects:
  1416 ;;		On entry : 0/0
  1417 ;;		On exit  : 0/0
  1418 ;;		Unchanged: 0/0
  1419 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  1420 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  1421 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  1422 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  1423 ;;      Totals:         0       0       0       0       0       0       0       0       0       0
  1424 ;;Total ram usage:        0 bytes
  1425 ;; Hardware stack levels used:    1
  1426 ;; Hardware stack levels required when called:    4
  1427 ;; This function calls:
  1428 ;;		_bankChange
  1429 ;;		_channelChange
  1430 ;;		_colorChangeForPressedButton
  1431 ;; This function is called by:
  1432 ;;		_main
  1433 ;; This function uses a non-reentrant model
  1434 ;;
  1435                           
  1436                           	psect	text3
  1437  00263C                     __ptext3:
  1438                           	opt stack 0
  1439  00263C                     _processSystemButtons:
  1440                           	opt stack 26
  1441                           
  1442                           ;main.c: 63: if (PORTAbits.RA4 == 0) {
  1443                           
  1444                           ;incstack = 0
  1445  00263C  B880               	btfsc	3968,4,c	;volatile
  1446  00263E  D00B               	goto	l4079
  1447                           
  1448                           ;main.c: 64: in_mode = SETTINGS;
  1449  002640  0E01               	movlw	1
  1450  002642  0100               	movlb	0	; () banked
  1451  002644  6FF7               	movwf	_in_mode& (0+255),b
  1452                           
  1453                           ;main.c: 65: in_setting_mode = BANK_CHANGE;
  1454  002646  0E00               	movlw	0
  1455  002648  0100               	movlb	0	; () banked
  1456  00264A  6FF8               	movwf	_in_setting_mode& (0+255),b
  1457                           
  1458                           ; BSR set to: 0
  1459                           ;main.c: 66: bankChange();
  1460  00264C  ECCC  F00D         	call	_bankChange	;wreg free
  1461                           
  1462                           ;main.c: 67: in_mode = USER;
  1463  002650  0E00               	movlw	0
  1464  002652  0100               	movlb	0	; () banked
  1465  002654  6FF7               	movwf	_in_mode& (0+255),b
  1466  002656                     l4079:
  1467                           
  1468                           ;main.c: 68: }
  1469                           ;main.c: 70: if (PORTAbits.RA5 == 0) {
  1470  002656  BA80               	btfsc	3968,5,c	;volatile
  1471  002658  D00B               	goto	l4087
  1472                           
  1473                           ;main.c: 71: in_mode = SETTINGS;
  1474  00265A  0E01               	movlw	1
  1475  00265C  0100               	movlb	0	; () banked
  1476  00265E  6FF7               	movwf	_in_mode& (0+255),b
  1477                           
  1478                           ;main.c: 72: in_setting_mode = CHAN_CHANGE;
  1479  002660  0E01               	movlw	1
  1480  002662  0100               	movlb	0	; () banked
  1481  002664  6FF8               	movwf	_in_setting_mode& (0+255),b
  1482                           
  1483                           ; BSR set to: 0
  1484                           ;main.c: 73: channelChange();
  1485  002666  EC6E  F011         	call	_channelChange	;wreg free
  1486                           
  1487                           ;main.c: 74: in_mode = USER;
  1488  00266A  0E00               	movlw	0
  1489  00266C  0100               	movlb	0	; () banked
  1490  00266E  6FF7               	movwf	_in_mode& (0+255),b
  1491  002670                     l4087:
  1492                           
  1493                           ;main.c: 75: }
  1494                           ;main.c: 77: if (PORTEbits.RE0 == 0) {
  1495  002670  5084               	movf	3972,w,c	;volatile
  1496                           
  1497                           ;main.c: 79: }
  1498                           ;main.c: 81: if (PORTEbits.RE1 == 0) {
  1499  002672  B284               	btfsc	3972,1,c	;volatile
  1500  002674  0012               	return	
  1501                           
  1502                           ;main.c: 82: in_mode = SETTINGS;
  1503  002676  0E01               	movlw	1
  1504  002678  0100               	movlb	0	; () banked
  1505  00267A  6FF7               	movwf	_in_mode& (0+255),b
  1506                           
  1507                           ;main.c: 83: in_setting_mode = BCLR_CHANGE;
  1508  00267C  0E02               	movlw	2
  1509  00267E  0100               	movlb	0	; () banked
  1510  002680  6FF8               	movwf	_in_setting_mode& (0+255),b
  1511                           
  1512                           ; BSR set to: 0
  1513                           ;main.c: 84: colorChangeForPressedButton();
  1514  002682  ECB1  F010         	call	_colorChangeForPressedButton	;wreg free
  1515                           
  1516                           ;main.c: 85: in_mode = USER;
  1517  002686  0E00               	movlw	0
  1518  002688  0100               	movlb	0	; () banked
  1519  00268A  6FF7               	movwf	_in_mode& (0+255),b
  1520  00268C  0012               	return	
  1521  00268E                     __end_of_processSystemButtons:
  1522                           	opt stack 0
  1523                           tblptru	equ	0xFF8
  1524                           tblptrh	equ	0xFF7
  1525                           tblptrl	equ	0xFF6
  1526                           tablat	equ	0xFF5
  1527                           prodh	equ	0xFF4
  1528                           prodl	equ	0xFF3
  1529                           postinc0	equ	0xFEE
  1530                           wreg	equ	0xFE8
  1531                           indf1	equ	0xFE7
  1532                           postinc1	equ	0xFE6
  1533                           postdec1	equ	0xFE5
  1534                           fsr1h	equ	0xFE2
  1535                           fsr1l	equ	0xFE1
  1536                           indf2	equ	0xFDF
  1537                           postinc2	equ	0xFDE
  1538                           fsr2h	equ	0xFDA
  1539                           fsr2l	equ	0xFD9
  1540                           status	equ	0xFD8
  1541                           
  1542 ;; *************** function _colorChangeForPressedButton *****************
  1543 ;; Defined at:
  1544 ;;		line 163 in file "main.c"
  1545 ;; Parameters:    Size  Location     Type
  1546 ;;		None
  1547 ;; Auto vars:     Size  Location     Type
  1548 ;;  i               2   20[COMRAM] int 
  1549 ;;  pressedButto    1   19[COMRAM] unsigned char 
  1550 ;;  pressedSysBt    1   18[COMRAM] unsigned char 
  1551 ;; Return value:  Size  Location     Type
  1552 ;;                  1    wreg      void 
  1553 ;; Registers used:
  1554 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  1555 ;; Tracked objects:
  1556 ;;		On entry : 0/0
  1557 ;;		On exit  : 0/0
  1558 ;;		Unchanged: 0/0
  1559 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  1560 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  1561 ;;      Locals:         4       0       0       0       0       0       0       0       0       0
  1562 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  1563 ;;      Totals:         4       0       0       0       0       0       0       0       0       0
  1564 ;;Total ram usage:        4 bytes
  1565 ;; Hardware stack levels used:    1
  1566 ;; Hardware stack levels required when called:    3
  1567 ;; This function calls:
  1568 ;;		_blinkLedAsync
  1569 ;;		_buttonPressed
  1570 ;;		_changeColor
  1571 ;;		_sendLEDs
  1572 ;;		_systemButtonPressed
  1573 ;;		_turnOffAllLeds
  1574 ;; This function is called by:
  1575 ;;		_processSystemButtons
  1576 ;; This function uses a non-reentrant model
  1577 ;;
  1578                           
  1579                           	psect	text4
  1580  002162                     __ptext4:
  1581                           	opt stack 0
  1582  002162                     _colorChangeForPressedButton:
  1583                           	opt stack 26
  1584                           
  1585                           ;main.c: 165: char pressedButton = 0;
  1586                           
  1587                           ;incstack = 0
  1588  002162  0E00               	movlw	0
  1589  002164  6E14               	movwf	colorChangeForPressedButton@pressedButton,c
  1590                           
  1591                           ;main.c: 166: char pressedSysBtn = 0;
  1592  002166  0E00               	movlw	0
  1593  002168  6E13               	movwf	colorChangeForPressedButton@pressedSysBtn,c
  1594                           
  1595                           ;main.c: 168: turnOffAllLeds();
  1596  00216A  EC47  F014         	call	_turnOffAllLeds	;wreg free
  1597                           
  1598                           ;main.c: 170: for (int i = 0; i < 8; i++) {
  1599  00216E  0E00               	movlw	0
  1600  002170  6E16               	movwf	colorChangeForPressedButton@i+1,c
  1601  002172  0E00               	movlw	0
  1602  002174  6E15               	movwf	colorChangeForPressedButton@i,c
  1603  002176                     l3819:
  1604  002176  BE16               	btfsc	colorChangeForPressedButton@i+1,7,c
  1605  002178  D006               	goto	l3823
  1606  00217A  5016               	movf	colorChangeForPressedButton@i+1,w,c
  1607  00217C  E10E               	bnz	l3829
  1608  00217E  0E08               	movlw	8
  1609  002180  5C15               	subwf	colorChangeForPressedButton@i,w,c
  1610  002182  B0D8               	btfsc	status,0,c
  1611  002184  D00A               	goto	l3829
  1612  002186                     l3823:
  1613                           
  1614                           ;main.c: 171: changeColor(i, i, 255);
  1615  002186  C015  F001         	movff	colorChangeForPressedButton@i,changeColor@color
  1616  00218A  0EFF               	movlw	255
  1617  00218C  6E02               	movwf	changeColor@intensity,c
  1618  00218E  5015               	movf	colorChangeForPressedButton@i,w,c
  1619  002190  EC6A  F004         	call	_changeColor
  1620  002194  4A15               	infsnz	colorChangeForPressedButton@i,f,c
  1621  002196  2A16               	incf	colorChangeForPressedButton@i+1,f,c
  1622  002198  D7EE               	goto	l3819
  1623  00219A                     l3829:
  1624                           
  1625                           ;main.c: 172: }
  1626                           ;main.c: 174: sendLEDs(global_leds);
  1627  00219A  0E91               	movlw	low _global_leds
  1628  00219C  6E04               	movwf	sendLEDs@leds,c
  1629  00219E  0E00               	movlw	high _global_leds
  1630  0021A0  6E05               	movwf	sendLEDs@leds+1,c
  1631  0021A2  EC82  F00F         	call	_sendLEDs	;wreg free
  1632  0021A6                     l550:
  1633                           
  1634                           ;main.c: 177: {
  1635                           ;main.c: 178: pressedButton = buttonPressed();
  1636  0021A6  EC68  F013         	call	_buttonPressed	;wreg free
  1637  0021AA  6E14               	movwf	colorChangeForPressedButton@pressedButton,c
  1638                           
  1639                           ;main.c: 179: pressedSysBtn = systemButtonPressed();
  1640  0021AC  EC8A  F014         	call	_systemButtonPressed	;wreg free
  1641  0021B0  6E13               	movwf	colorChangeForPressedButton@pressedSysBtn,c
  1642                           
  1643                           ;main.c: 181: if(pressedButton != 0){
  1644  0021B2  5014               	movf	colorChangeForPressedButton@pressedButton,w,c
  1645  0021B4  B4D8               	btfsc	status,2,c
  1646  0021B6  D013               	goto	l3843
  1647                           
  1648                           ;main.c: 183: if (pressedButton < 9) {
  1649  0021B8  0E09               	movlw	9
  1650  0021BA  6014               	cpfslt	colorChangeForPressedButton@pressedButton,c
  1651  0021BC  D010               	goto	l3843
  1652                           
  1653                           ;main.c: 184: pressedButtonColor = pressedButton - 1;
  1654  0021BE  0414               	decf	colorChangeForPressedButton@pressedButton,w,c
  1655  0021C0  0100               	movlb	0	; () banked
  1656  0021C2  6F90               	movwf	_pressedButtonColor& (0+255),b
  1657                           
  1658                           ; BSR set to: 0
  1659                           ;main.c: 185: blinkLedAsync(pressedButtonColor, 2, pressedButtonColor, 255);
  1660  0021C4  0E02               	movlw	2
  1661  0021C6  6E0A               	movwf	blinkLedAsync@xtimes,c
  1662  0021C8  C090  F00B         	movff	_pressedButtonColor,blinkLedAsync@color
  1663  0021CC  0EFF               	movlw	255
  1664  0021CE  6E0C               	movwf	blinkLedAsync@intensity,c
  1665  0021D0  0100               	movlb	0	; () banked
  1666  0021D2  5190               	movf	_pressedButtonColor& (0+255),w,b
  1667  0021D4  ECA6  F011         	call	_blinkLedAsync
  1668                           
  1669                           ;main.c: 186: turnOffAllLeds();
  1670  0021D8  EC47  F014         	call	_turnOffAllLeds	;wreg free
  1671                           
  1672                           ;main.c: 187: break;
  1673  0021DC  0012               	return	
  1674  0021DE                     l3843:
  1675                           
  1676                           ;main.c: 188: }
  1677                           ;main.c: 189: }
  1678                           ;main.c: 191: if (pressedSysBtn != 0) {
  1679  0021DE  5013               	movf	colorChangeForPressedButton@pressedSysBtn,w,c
  1680  0021E0  B4D8               	btfsc	status,2,c
  1681  0021E2  D7E1               	goto	l550
  1682                           
  1683                           ;main.c: 193: if (pressedSysBtn != 4) {
  1684  0021E4  0E04               	movlw	4
  1685  0021E6  1813               	xorwf	colorChangeForPressedButton@pressedSysBtn,w,c
  1686  0021E8  A4D8               	btfss	status,2,c
  1687  0021EA  0012               	return	
  1688  0021EC  D7DC               	goto	l550
  1689  0021EE                     __end_of_colorChangeForPressedButton:
  1690                           	opt stack 0
  1691                           tblptru	equ	0xFF8
  1692                           tblptrh	equ	0xFF7
  1693                           tblptrl	equ	0xFF6
  1694                           tablat	equ	0xFF5
  1695                           prodh	equ	0xFF4
  1696                           prodl	equ	0xFF3
  1697                           postinc0	equ	0xFEE
  1698                           wreg	equ	0xFE8
  1699                           indf1	equ	0xFE7
  1700                           postinc1	equ	0xFE6
  1701                           postdec1	equ	0xFE5
  1702                           fsr1h	equ	0xFE2
  1703                           fsr1l	equ	0xFE1
  1704                           indf2	equ	0xFDF
  1705                           postinc2	equ	0xFDE
  1706                           fsr2h	equ	0xFDA
  1707                           fsr2l	equ	0xFD9
  1708                           status	equ	0xFD8
  1709                           
  1710 ;; *************** function _channelChange *****************
  1711 ;; Defined at:
  1712 ;;		line 132 in file "main.c"
  1713 ;; Parameters:    Size  Location     Type
  1714 ;;		None
  1715 ;; Auto vars:     Size  Location     Type
  1716 ;;  pressedSysBt    1   19[COMRAM] unsigned char 
  1717 ;;  pressedButto    1   18[COMRAM] unsigned char 
  1718 ;; Return value:  Size  Location     Type
  1719 ;;                  1    wreg      void 
  1720 ;; Registers used:
  1721 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  1722 ;; Tracked objects:
  1723 ;;		On entry : 0/0
  1724 ;;		On exit  : 0/0
  1725 ;;		Unchanged: 0/0
  1726 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  1727 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  1728 ;;      Locals:         2       0       0       0       0       0       0       0       0       0
  1729 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  1730 ;;      Totals:         2       0       0       0       0       0       0       0       0       0
  1731 ;;Total ram usage:        2 bytes
  1732 ;; Hardware stack levels used:    1
  1733 ;; Hardware stack levels required when called:    3
  1734 ;; This function calls:
  1735 ;;		_blinkLedAsync
  1736 ;;		_buttonPressed
  1737 ;;		_changeColor
  1738 ;;		_sendLEDs
  1739 ;;		_systemButtonPressed
  1740 ;;		_turnOffAllLeds
  1741 ;;		_turnOnAllLeds
  1742 ;; This function is called by:
  1743 ;;		_processSystemButtons
  1744 ;; This function uses a non-reentrant model
  1745 ;;
  1746                           
  1747                           	psect	text5
  1748  0022DC                     __ptext5:
  1749                           	opt stack 0
  1750  0022DC                     _channelChange:
  1751                           	opt stack 26
  1752                           
  1753                           ;main.c: 134: char pressedButton = 0;
  1754                           
  1755                           ;incstack = 0
  1756  0022DC  0E00               	movlw	0
  1757  0022DE  6E13               	movwf	channelChange@pressedButton,c
  1758                           
  1759                           ;main.c: 135: char pressedSysBtn = 0;
  1760  0022E0  0E00               	movlw	0
  1761  0022E2  6E14               	movwf	channelChange@pressedSysBtn,c
  1762                           
  1763                           ;main.c: 137: turnOnAllLeds(YELLOW, 255);
  1764  0022E4  0EFF               	movlw	255
  1765  0022E6  6E04               	movwf	turnOnAllLeds@intensity,c
  1766  0022E8  0E05               	movlw	5
  1767  0022EA  ECFF  F013         	call	_turnOnAllLeds
  1768                           
  1769                           ;main.c: 139: changeColor(channel, RED, 255);
  1770  0022EE  0E03               	movlw	3
  1771  0022F0  6E01               	movwf	changeColor@color,c
  1772  0022F2  0EFF               	movlw	255
  1773  0022F4  6E02               	movwf	changeColor@intensity,c
  1774  0022F6  0100               	movlb	0	; () banked
  1775  0022F8  51F5               	movf	_channel& (0+255),w,b
  1776  0022FA  EC6A  F004         	call	_changeColor
  1777                           
  1778                           ;main.c: 140: sendLEDs(global_leds);
  1779  0022FE  0E91               	movlw	low _global_leds
  1780  002300  6E04               	movwf	sendLEDs@leds,c
  1781  002302  0E00               	movlw	high _global_leds
  1782  002304  6E05               	movwf	sendLEDs@leds+1,c
  1783  002306  EC82  F00F         	call	_sendLEDs	;wreg free
  1784  00230A                     l3795:
  1785                           
  1786                           ;main.c: 143: {
  1787                           ;main.c: 144: pressedButton = buttonPressed();
  1788  00230A  EC68  F013         	call	_buttonPressed	;wreg free
  1789  00230E  6E13               	movwf	channelChange@pressedButton,c
  1790                           
  1791                           ;main.c: 145: pressedSysBtn = systemButtonPressed();
  1792  002310  EC8A  F014         	call	_systemButtonPressed	;wreg free
  1793  002314  6E14               	movwf	channelChange@pressedSysBtn,c
  1794                           
  1795                           ;main.c: 147: if(pressedButton != 0){
  1796  002316  5013               	movf	channelChange@pressedButton,w,c
  1797  002318  B4D8               	btfsc	status,2,c
  1798  00231A  D010               	goto	l3807
  1799                           
  1800                           ;main.c: 148: channel = pressedButton - 1;
  1801  00231C  0413               	decf	channelChange@pressedButton,w,c
  1802  00231E  0100               	movlb	0	; () banked
  1803  002320  6FF5               	movwf	_channel& (0+255),b
  1804                           
  1805                           ; BSR set to: 0
  1806                           ;main.c: 149: blinkLedAsync(channel, 2, YELLOW, 255);
  1807  002322  0E02               	movlw	2
  1808  002324  6E0A               	movwf	blinkLedAsync@xtimes,c
  1809  002326  0E05               	movlw	5
  1810  002328  6E0B               	movwf	blinkLedAsync@color,c
  1811  00232A  0EFF               	movlw	255
  1812  00232C  6E0C               	movwf	blinkLedAsync@intensity,c
  1813  00232E  0100               	movlb	0	; () banked
  1814  002330  51F5               	movf	_channel& (0+255),w,b
  1815  002332  ECA6  F011         	call	_blinkLedAsync
  1816                           
  1817                           ;main.c: 150: turnOffAllLeds();
  1818  002336  EC47  F014         	call	_turnOffAllLeds	;wreg free
  1819                           
  1820                           ;main.c: 151: break;
  1821  00233A  0012               	return	
  1822  00233C                     l3807:
  1823                           
  1824                           ;main.c: 152: }
  1825                           ;main.c: 154: if (pressedSysBtn != 0) {
  1826  00233C  5014               	movf	channelChange@pressedSysBtn,w,c
  1827  00233E  B4D8               	btfsc	status,2,c
  1828  002340  D7E4               	goto	l3795
  1829                           
  1830                           ;main.c: 156: if (pressedSysBtn != 2) {
  1831  002342  0E02               	movlw	2
  1832  002344  1814               	xorwf	channelChange@pressedSysBtn,w,c
  1833  002346  A4D8               	btfss	status,2,c
  1834  002348  0012               	return	
  1835  00234A  D7DF               	goto	l3795
  1836  00234C                     __end_of_channelChange:
  1837                           	opt stack 0
  1838                           tblptru	equ	0xFF8
  1839                           tblptrh	equ	0xFF7
  1840                           tblptrl	equ	0xFF6
  1841                           tablat	equ	0xFF5
  1842                           prodh	equ	0xFF4
  1843                           prodl	equ	0xFF3
  1844                           postinc0	equ	0xFEE
  1845                           wreg	equ	0xFE8
  1846                           indf1	equ	0xFE7
  1847                           postinc1	equ	0xFE6
  1848                           postdec1	equ	0xFE5
  1849                           fsr1h	equ	0xFE2
  1850                           fsr1l	equ	0xFE1
  1851                           indf2	equ	0xFDF
  1852                           postinc2	equ	0xFDE
  1853                           fsr2h	equ	0xFDA
  1854                           fsr2l	equ	0xFD9
  1855                           status	equ	0xFD8
  1856                           
  1857 ;; *************** function _turnOnAllLeds *****************
  1858 ;; Defined at:
  1859 ;;		line 53 in file "outputs.c"
  1860 ;; Parameters:    Size  Location     Type
  1861 ;;  color           1    wreg     unsigned char 
  1862 ;;  intensity       1    3[COMRAM] unsigned char 
  1863 ;; Auto vars:     Size  Location     Type
  1864 ;;  color           1    4[COMRAM] unsigned char 
  1865 ;;  i               2    5[COMRAM] int 
  1866 ;; Return value:  Size  Location     Type
  1867 ;;                  1    wreg      void 
  1868 ;; Registers used:
  1869 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  1870 ;; Tracked objects:
  1871 ;;		On entry : 0/0
  1872 ;;		On exit  : 0/0
  1873 ;;		Unchanged: 0/0
  1874 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  1875 ;;      Params:         1       0       0       0       0       0       0       0       0       0
  1876 ;;      Locals:         3       0       0       0       0       0       0       0       0       0
  1877 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  1878 ;;      Totals:         4       0       0       0       0       0       0       0       0       0
  1879 ;;Total ram usage:        4 bytes
  1880 ;; Hardware stack levels used:    1
  1881 ;; Hardware stack levels required when called:    1
  1882 ;; This function calls:
  1883 ;;		_changeColor
  1884 ;; This function is called by:
  1885 ;;		_channelChange
  1886 ;; This function uses a non-reentrant model
  1887 ;;
  1888                           
  1889                           	psect	text6
  1890  0027FE                     __ptext6:
  1891                           	opt stack 0
  1892  0027FE                     _turnOnAllLeds:
  1893                           	opt stack 27
  1894                           
  1895                           ;incstack = 0
  1896                           ;turnOnAllLeds@color stored from wreg
  1897  0027FE  6E05               	movwf	turnOnAllLeds@color,c
  1898                           
  1899                           ;outputs.c: 55: for (int i = 0; i < 16; i++) {
  1900  002800  0E00               	movlw	0
  1901  002802  6E07               	movwf	turnOnAllLeds@i+1,c
  1902  002804  0E00               	movlw	0
  1903  002806  6E06               	movwf	turnOnAllLeds@i,c
  1904  002808                     l3591:
  1905  002808  BE07               	btfsc	turnOnAllLeds@i+1,7,c
  1906  00280A  D006               	goto	l3595
  1907  00280C  5007               	movf	turnOnAllLeds@i+1,w,c
  1908  00280E  E10E               	bnz	l672
  1909  002810  0E10               	movlw	16
  1910  002812  5C06               	subwf	turnOnAllLeds@i,w,c
  1911  002814  B0D8               	btfsc	status,0,c
  1912  002816  0012               	return	
  1913  002818                     l3595:
  1914                           
  1915                           ;outputs.c: 56: changeColor(i, color, intensity);
  1916  002818  C005  F001         	movff	turnOnAllLeds@color,changeColor@color
  1917  00281C  C004  F002         	movff	turnOnAllLeds@intensity,changeColor@intensity
  1918  002820  5006               	movf	turnOnAllLeds@i,w,c
  1919  002822  EC6A  F004         	call	_changeColor
  1920  002826  4A06               	infsnz	turnOnAllLeds@i,f,c
  1921  002828  2A07               	incf	turnOnAllLeds@i+1,f,c
  1922  00282A  D7EE               	goto	l3591
  1923  00282C                     l672:
  1924  00282C  0012               	return		;funcret
  1925  00282E                     __end_of_turnOnAllLeds:
  1926                           	opt stack 0
  1927                           tblptru	equ	0xFF8
  1928                           tblptrh	equ	0xFF7
  1929                           tblptrl	equ	0xFF6
  1930                           tablat	equ	0xFF5
  1931                           prodh	equ	0xFF4
  1932                           prodl	equ	0xFF3
  1933                           postinc0	equ	0xFEE
  1934                           wreg	equ	0xFE8
  1935                           indf1	equ	0xFE7
  1936                           postinc1	equ	0xFE6
  1937                           postdec1	equ	0xFE5
  1938                           fsr1h	equ	0xFE2
  1939                           fsr1l	equ	0xFE1
  1940                           indf2	equ	0xFDF
  1941                           postinc2	equ	0xFDE
  1942                           fsr2h	equ	0xFDA
  1943                           fsr2l	equ	0xFD9
  1944                           status	equ	0xFD8
  1945                           
  1946 ;; *************** function _bankChange *****************
  1947 ;; Defined at:
  1948 ;;		line 90 in file "main.c"
  1949 ;; Parameters:    Size  Location     Type
  1950 ;;		None
  1951 ;; Auto vars:     Size  Location     Type
  1952 ;;  i               2   21[COMRAM] int 
  1953 ;;  i               2   19[COMRAM] int 
  1954 ;;  pressedButto    1   23[COMRAM] unsigned char 
  1955 ;;  pressedSysBt    1   18[COMRAM] unsigned char 
  1956 ;; Return value:  Size  Location     Type
  1957 ;;                  1    wreg      void 
  1958 ;; Registers used:
  1959 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  1960 ;; Tracked objects:
  1961 ;;		On entry : 0/0
  1962 ;;		On exit  : 0/0
  1963 ;;		Unchanged: 0/0
  1964 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  1965 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  1966 ;;      Locals:         6       0       0       0       0       0       0       0       0       0
  1967 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  1968 ;;      Totals:         6       0       0       0       0       0       0       0       0       0
  1969 ;;Total ram usage:        6 bytes
  1970 ;; Hardware stack levels used:    1
  1971 ;; Hardware stack levels required when called:    3
  1972 ;; This function calls:
  1973 ;;		_blinkLedAsync
  1974 ;;		_buttonPressed
  1975 ;;		_changeColor
  1976 ;;		_sendLEDs
  1977 ;;		_systemButtonPressed
  1978 ;;		_turnOffAllLeds
  1979 ;; This function is called by:
  1980 ;;		_processSystemButtons
  1981 ;; This function uses a non-reentrant model
  1982 ;;
  1983                           
  1984                           	psect	text7
  1985  001B98                     __ptext7:
  1986                           	opt stack 0
  1987  001B98                     _bankChange:
  1988                           	opt stack 26
  1989                           
  1990                           ;main.c: 92: char pressedButton = 0;
  1991                           
  1992                           ;incstack = 0
  1993  001B98  0E00               	movlw	0
  1994  001B9A  6E18               	movwf	bankChange@pressedButton,c
  1995                           
  1996                           ;main.c: 93: char pressedSysBtn = 0;
  1997  001B9C  0E00               	movlw	0
  1998  001B9E  6E13               	movwf	bankChange@pressedSysBtn,c
  1999                           
  2000                           ;main.c: 95: for (int i = 0; i < 8; i++) {
  2001  001BA0  0E00               	movlw	0
  2002  001BA2  6E15               	movwf	bankChange@i+1,c
  2003  001BA4  0E00               	movlw	0
  2004  001BA6  6E14               	movwf	bankChange@i,c
  2005  001BA8                     l3745:
  2006  001BA8  BE15               	btfsc	bankChange@i+1,7,c
  2007  001BAA  D006               	goto	l3749
  2008  001BAC  5015               	movf	bankChange@i+1,w,c
  2009  001BAE  E10E               	bnz	l3755
  2010  001BB0  0E08               	movlw	8
  2011  001BB2  5C14               	subwf	bankChange@i,w,c
  2012  001BB4  B0D8               	btfsc	status,0,c
  2013  001BB6  D00A               	goto	l3755
  2014  001BB8                     l3749:
  2015                           
  2016                           ;main.c: 96: changeColor(i, GREEN, 255);
  2017  001BB8  0E02               	movlw	2
  2018  001BBA  6E01               	movwf	changeColor@color,c
  2019  001BBC  0EFF               	movlw	255
  2020  001BBE  6E02               	movwf	changeColor@intensity,c
  2021  001BC0  5014               	movf	bankChange@i,w,c
  2022  001BC2  EC6A  F004         	call	_changeColor
  2023  001BC6  4A14               	infsnz	bankChange@i,f,c
  2024  001BC8  2A15               	incf	bankChange@i+1,f,c
  2025  001BCA  D7EE               	goto	l3745
  2026  001BCC                     l3755:
  2027                           
  2028                           ;main.c: 97: }
  2029                           ;main.c: 99: for (int i = 8; i < 16; i++) {
  2030  001BCC  0E00               	movlw	0
  2031  001BCE  6E17               	movwf	bankChange@i_1855+1,c
  2032  001BD0  0E08               	movlw	8
  2033  001BD2  6E16               	movwf	bankChange@i_1855,c
  2034  001BD4                     l3757:
  2035  001BD4  BE17               	btfsc	bankChange@i_1855+1,7,c
  2036  001BD6  D006               	goto	l3761
  2037  001BD8  5017               	movf	bankChange@i_1855+1,w,c
  2038  001BDA  E10E               	bnz	l3767
  2039  001BDC  0E10               	movlw	16
  2040  001BDE  5C16               	subwf	bankChange@i_1855,w,c
  2041  001BE0  B0D8               	btfsc	status,0,c
  2042  001BE2  D00A               	goto	l3767
  2043  001BE4                     l3761:
  2044                           
  2045                           ;main.c: 100: changeColor(i, BLACK, 255);
  2046  001BE4  0E00               	movlw	0
  2047  001BE6  6E01               	movwf	changeColor@color,c
  2048  001BE8  0EFF               	movlw	255
  2049  001BEA  6E02               	movwf	changeColor@intensity,c
  2050  001BEC  5016               	movf	bankChange@i_1855,w,c
  2051  001BEE  EC6A  F004         	call	_changeColor
  2052  001BF2  4A16               	infsnz	bankChange@i_1855,f,c
  2053  001BF4  2A17               	incf	bankChange@i_1855+1,f,c
  2054  001BF6  D7EE               	goto	l3757
  2055  001BF8                     l3767:
  2056                           
  2057                           ;main.c: 101: }
  2058                           ;main.c: 103: changeColor(bank, RED, 255);
  2059  001BF8  0E03               	movlw	3
  2060  001BFA  6E01               	movwf	changeColor@color,c
  2061  001BFC  0EFF               	movlw	255
  2062  001BFE  6E02               	movwf	changeColor@intensity,c
  2063  001C00  0100               	movlb	0	; () banked
  2064  001C02  51F4               	movf	_bank& (0+255),w,b
  2065  001C04  EC6A  F004         	call	_changeColor
  2066                           
  2067                           ;main.c: 104: sendLEDs(global_leds);
  2068  001C08  0E91               	movlw	low _global_leds
  2069  001C0A  6E04               	movwf	sendLEDs@leds,c
  2070  001C0C  0E00               	movlw	high _global_leds
  2071  001C0E  6E05               	movwf	sendLEDs@leds+1,c
  2072  001C10  EC82  F00F         	call	_sendLEDs	;wreg free
  2073  001C14                     l529:
  2074                           
  2075                           ;main.c: 107: {
  2076                           ;main.c: 108: pressedButton = buttonPressed();
  2077  001C14  EC68  F013         	call	_buttonPressed	;wreg free
  2078  001C18  6E18               	movwf	bankChange@pressedButton,c
  2079                           
  2080                           ;main.c: 109: pressedSysBtn = systemButtonPressed();
  2081  001C1A  EC8A  F014         	call	_systemButtonPressed	;wreg free
  2082  001C1E  6E13               	movwf	bankChange@pressedSysBtn,c
  2083                           
  2084                           ;main.c: 111: if(pressedButton != 0){
  2085  001C20  5018               	movf	bankChange@pressedButton,w,c
  2086  001C22  B4D8               	btfsc	status,2,c
  2087  001C24  D013               	goto	l3781
  2088                           
  2089                           ;main.c: 113: if(pressedButton < 9){
  2090  001C26  0E09               	movlw	9
  2091  001C28  6018               	cpfslt	bankChange@pressedButton,c
  2092  001C2A  D010               	goto	l3781
  2093                           
  2094                           ;main.c: 114: bank = pressedButton - 1;
  2095  001C2C  0418               	decf	bankChange@pressedButton,w,c
  2096  001C2E  0100               	movlb	0	; () banked
  2097  001C30  6FF4               	movwf	_bank& (0+255),b
  2098                           
  2099                           ; BSR set to: 0
  2100                           ;main.c: 115: blinkLedAsync(bank, 2, GREEN, 255);
  2101  001C32  0E02               	movlw	2
  2102  001C34  6E0A               	movwf	blinkLedAsync@xtimes,c
  2103  001C36  0E02               	movlw	2
  2104  001C38  6E0B               	movwf	blinkLedAsync@color,c
  2105  001C3A  0EFF               	movlw	255
  2106  001C3C  6E0C               	movwf	blinkLedAsync@intensity,c
  2107  001C3E  0100               	movlb	0	; () banked
  2108  001C40  51F4               	movf	_bank& (0+255),w,b
  2109  001C42  ECA6  F011         	call	_blinkLedAsync
  2110                           
  2111                           ;main.c: 116: turnOffAllLeds();
  2112  001C46  EC47  F014         	call	_turnOffAllLeds	;wreg free
  2113                           
  2114                           ;main.c: 117: break;
  2115  001C4A  0012               	return	
  2116  001C4C                     l3781:
  2117                           
  2118                           ;main.c: 118: }
  2119                           ;main.c: 119: }
  2120                           ;main.c: 121: if (pressedSysBtn != 0){
  2121  001C4C  5013               	movf	bankChange@pressedSysBtn,w,c
  2122  001C4E  B4D8               	btfsc	status,2,c
  2123  001C50  D7E1               	goto	l529
  2124                           
  2125                           ;main.c: 123: if (pressedSysBtn != 1) {
  2126  001C52  0413               	decf	bankChange@pressedSysBtn,w,c
  2127  001C54  B4D8               	btfsc	status,2,c
  2128  001C56  D7DE               	goto	l529
  2129                           
  2130                           ;main.c: 124: turnOffAllLeds();
  2131  001C58  EC47  F014         	call	_turnOffAllLeds	;wreg free
  2132                           
  2133                           ;main.c: 125: break;
  2134  001C5C  0012               	return	
  2135  001C5E                     __end_of_bankChange:
  2136                           	opt stack 0
  2137                           tblptru	equ	0xFF8
  2138                           tblptrh	equ	0xFF7
  2139                           tblptrl	equ	0xFF6
  2140                           tablat	equ	0xFF5
  2141                           prodh	equ	0xFF4
  2142                           prodl	equ	0xFF3
  2143                           postinc0	equ	0xFEE
  2144                           wreg	equ	0xFE8
  2145                           indf1	equ	0xFE7
  2146                           postinc1	equ	0xFE6
  2147                           postdec1	equ	0xFE5
  2148                           fsr1h	equ	0xFE2
  2149                           fsr1l	equ	0xFE1
  2150                           indf2	equ	0xFDF
  2151                           postinc2	equ	0xFDE
  2152                           fsr2h	equ	0xFDA
  2153                           fsr2l	equ	0xFD9
  2154                           status	equ	0xFD8
  2155                           
  2156 ;; *************** function _systemButtonPressed *****************
  2157 ;; Defined at:
  2158 ;;		line 48 in file "inputs.c"
  2159 ;; Parameters:    Size  Location     Type
  2160 ;;		None
  2161 ;; Auto vars:     Size  Location     Type
  2162 ;;  pressed         1    0[COMRAM] unsigned char 
  2163 ;; Return value:  Size  Location     Type
  2164 ;;                  1    wreg      unsigned char 
  2165 ;; Registers used:
  2166 ;;		wreg, status,2
  2167 ;; Tracked objects:
  2168 ;;		On entry : 0/0
  2169 ;;		On exit  : 0/0
  2170 ;;		Unchanged: 0/0
  2171 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  2172 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  2173 ;;      Locals:         1       0       0       0       0       0       0       0       0       0
  2174 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  2175 ;;      Totals:         1       0       0       0       0       0       0       0       0       0
  2176 ;;Total ram usage:        1 bytes
  2177 ;; Hardware stack levels used:    1
  2178 ;; This function calls:
  2179 ;;		Nothing
  2180 ;; This function is called by:
  2181 ;;		_bankChange
  2182 ;;		_channelChange
  2183 ;;		_colorChangeForPressedButton
  2184 ;; This function uses a non-reentrant model
  2185 ;;
  2186                           
  2187                           	psect	text8
  2188  002914                     __ptext8:
  2189                           	opt stack 0
  2190  002914                     _systemButtonPressed:
  2191                           	opt stack 28
  2192                           
  2193                           ;inputs.c: 50: char pressed = 0;
  2194                           
  2195                           ;incstack = 0
  2196  002914  0E00               	movlw	0
  2197  002916  6E01               	movwf	systemButtonPressed@pressed,c
  2198                           
  2199                           ;inputs.c: 52: if (PORTAbits.RA4 == 0) {
  2200  002918  B880               	btfsc	3968,4,c	;volatile
  2201  00291A  D002               	goto	l3547
  2202                           
  2203                           ;inputs.c: 53: pressed = 1;
  2204  00291C  0E01               	movlw	1
  2205  00291E  6E01               	movwf	systemButtonPressed@pressed,c
  2206  002920                     l3547:
  2207                           
  2208                           ;inputs.c: 54: }
  2209                           ;inputs.c: 56: if (PORTAbits.RA5 == 0) {
  2210  002920  BA80               	btfsc	3968,5,c	;volatile
  2211  002922  D002               	goto	l3551
  2212                           
  2213                           ;inputs.c: 57: pressed = 2;
  2214  002924  0E02               	movlw	2
  2215  002926  6E01               	movwf	systemButtonPressed@pressed,c
  2216  002928                     l3551:
  2217                           
  2218                           ;inputs.c: 58: }
  2219                           ;inputs.c: 60: if (PORTEbits.RE0 == 0) {
  2220  002928  B084               	btfsc	3972,0,c	;volatile
  2221  00292A  D002               	goto	l3555
  2222                           
  2223                           ;inputs.c: 61: pressed = 3;
  2224  00292C  0E03               	movlw	3
  2225  00292E  6E01               	movwf	systemButtonPressed@pressed,c
  2226  002930                     l3555:
  2227                           
  2228                           ;inputs.c: 62: }
  2229                           ;inputs.c: 64: if (PORTEbits.RE1 == 0) {
  2230  002930  B284               	btfsc	3972,1,c	;volatile
  2231  002932  D002               	goto	l437
  2232                           
  2233                           ;inputs.c: 65: pressed = 4;
  2234  002934  0E04               	movlw	4
  2235  002936  6E01               	movwf	systemButtonPressed@pressed,c
  2236  002938                     l437:
  2237                           
  2238                           ;inputs.c: 66: }
  2239                           ;inputs.c: 68: return pressed;
  2240  002938  5001               	movf	systemButtonPressed@pressed,w,c
  2241  00293A  0012               	return	
  2242  00293C                     __end_of_systemButtonPressed:
  2243                           	opt stack 0
  2244                           tblptru	equ	0xFF8
  2245                           tblptrh	equ	0xFF7
  2246                           tblptrl	equ	0xFF6
  2247                           tablat	equ	0xFF5
  2248                           prodh	equ	0xFF4
  2249                           prodl	equ	0xFF3
  2250                           postinc0	equ	0xFEE
  2251                           wreg	equ	0xFE8
  2252                           indf1	equ	0xFE7
  2253                           postinc1	equ	0xFE6
  2254                           postdec1	equ	0xFE5
  2255                           fsr1h	equ	0xFE2
  2256                           fsr1l	equ	0xFE1
  2257                           indf2	equ	0xFDF
  2258                           postinc2	equ	0xFDE
  2259                           fsr2h	equ	0xFDA
  2260                           fsr2l	equ	0xFD9
  2261                           status	equ	0xFD8
  2262                           
  2263 ;; *************** function _buttonPressed *****************
  2264 ;; Defined at:
  2265 ;;		line 31 in file "inputs.c"
  2266 ;; Parameters:    Size  Location     Type
  2267 ;;		None
  2268 ;; Auto vars:     Size  Location     Type
  2269 ;;  i               2    3[COMRAM] int 
  2270 ;;  pressed         1    2[COMRAM] unsigned char 
  2271 ;; Return value:  Size  Location     Type
  2272 ;;                  1    wreg      unsigned char 
  2273 ;; Registers used:
  2274 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  2275 ;; Tracked objects:
  2276 ;;		On entry : 0/0
  2277 ;;		On exit  : 0/0
  2278 ;;		Unchanged: 0/0
  2279 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  2280 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  2281 ;;      Locals:         3       0       0       0       0       0       0       0       0       0
  2282 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  2283 ;;      Totals:         3       0       0       0       0       0       0       0       0       0
  2284 ;;Total ram usage:        3 bytes
  2285 ;; Hardware stack levels used:    1
  2286 ;; Hardware stack levels required when called:    1
  2287 ;; This function calls:
  2288 ;;		_readMatrixButtons
  2289 ;; This function is called by:
  2290 ;;		_bankChange
  2291 ;;		_channelChange
  2292 ;;		_colorChangeForPressedButton
  2293 ;; This function uses a non-reentrant model
  2294 ;;
  2295                           
  2296                           	psect	text9
  2297  0026D0                     __ptext9:
  2298                           	opt stack 0
  2299  0026D0                     _buttonPressed:
  2300                           	opt stack 27
  2301                           
  2302                           ;inputs.c: 33: char pressed = 0;
  2303                           
  2304                           ;incstack = 0
  2305  0026D0  0E00               	movlw	0
  2306  0026D2  6E03               	movwf	buttonPressed@pressed,c
  2307                           
  2308                           ;inputs.c: 35: readMatrixButtons();
  2309  0026D4  EC73  F012         	call	_readMatrixButtons	;wreg free
  2310                           
  2311                           ;inputs.c: 37: for (int i = 0; i < 16; i++) {
  2312  0026D8  0E00               	movlw	0
  2313  0026DA  6E05               	movwf	buttonPressed@i+1,c
  2314  0026DC  0E00               	movlw	0
  2315  0026DE  6E04               	movwf	buttonPressed@i,c
  2316  0026E0                     l3525:
  2317  0026E0  BE05               	btfsc	buttonPressed@i+1,7,c
  2318  0026E2  D006               	goto	l3529
  2319  0026E4  5005               	movf	buttonPressed@i+1,w,c
  2320  0026E6  E112               	bnz	l3537
  2321  0026E8  0E10               	movlw	16
  2322  0026EA  5C04               	subwf	buttonPressed@i,w,c
  2323  0026EC  B0D8               	btfsc	status,0,c
  2324  0026EE  D00E               	goto	l3537
  2325  0026F0                     l3529:
  2326                           
  2327                           ;inputs.c: 39: if (m_buttons[i] == 0) {
  2328  0026F0  0E70               	movlw	low _m_buttons
  2329  0026F2  2404               	addwf	buttonPressed@i,w,c
  2330  0026F4  6ED9               	movwf	fsr2l,c
  2331  0026F6  0E00               	movlw	high _m_buttons
  2332  0026F8  2005               	addwfc	buttonPressed@i+1,w,c
  2333  0026FA  6EDA               	movwf	fsr2h,c
  2334  0026FC  50DF               	movf	indf2,w,c
  2335  0026FE  A4D8               	btfss	status,2,c
  2336  002700  D002               	goto	l3533
  2337                           
  2338                           ;inputs.c: 40: pressed = i + 1;
  2339  002702  2804               	incf	buttonPressed@i,w,c
  2340  002704  6E03               	movwf	buttonPressed@pressed,c
  2341  002706                     l3533:
  2342  002706  4A04               	infsnz	buttonPressed@i,f,c
  2343  002708  2A05               	incf	buttonPressed@i+1,f,c
  2344  00270A  D7EA               	goto	l3525
  2345  00270C                     l3537:
  2346                           
  2347                           ;inputs.c: 41: }
  2348                           ;inputs.c: 42: }
  2349                           ;inputs.c: 44: return pressed;
  2350  00270C  5003               	movf	buttonPressed@pressed,w,c
  2351  00270E  0012               	return	
  2352  002710                     __end_of_buttonPressed:
  2353                           	opt stack 0
  2354                           tblptru	equ	0xFF8
  2355                           tblptrh	equ	0xFF7
  2356                           tblptrl	equ	0xFF6
  2357                           tablat	equ	0xFF5
  2358                           prodh	equ	0xFF4
  2359                           prodl	equ	0xFF3
  2360                           postinc0	equ	0xFEE
  2361                           wreg	equ	0xFE8
  2362                           indf1	equ	0xFE7
  2363                           postinc1	equ	0xFE6
  2364                           postdec1	equ	0xFE5
  2365                           fsr1h	equ	0xFE2
  2366                           fsr1l	equ	0xFE1
  2367                           indf2	equ	0xFDF
  2368                           postinc2	equ	0xFDE
  2369                           fsr2h	equ	0xFDA
  2370                           fsr2l	equ	0xFD9
  2371                           status	equ	0xFD8
  2372                           
  2373 ;; *************** function _readMatrixButtons *****************
  2374 ;; Defined at:
  2375 ;;		line 9 in file "inputs.c"
  2376 ;; Parameters:    Size  Location     Type
  2377 ;;		None
  2378 ;; Auto vars:     Size  Location     Type
  2379 ;;  i               1    1[COMRAM] unsigned char 
  2380 ;; Return value:  Size  Location     Type
  2381 ;;                  1    wreg      void 
  2382 ;; Registers used:
  2383 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh
  2384 ;; Tracked objects:
  2385 ;;		On entry : 0/0
  2386 ;;		On exit  : 0/0
  2387 ;;		Unchanged: 0/0
  2388 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  2389 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  2390 ;;      Locals:         1       0       0       0       0       0       0       0       0       0
  2391 ;;      Temps:          1       0       0       0       0       0       0       0       0       0
  2392 ;;      Totals:         2       0       0       0       0       0       0       0       0       0
  2393 ;;Total ram usage:        2 bytes
  2394 ;; Hardware stack levels used:    1
  2395 ;; This function calls:
  2396 ;;		Nothing
  2397 ;; This function is called by:
  2398 ;;		_buttonPressed
  2399 ;;		_main
  2400 ;; This function uses a non-reentrant model
  2401 ;;
  2402                           
  2403                           	psect	text10
  2404  0024E6                     __ptext10:
  2405                           	opt stack 0
  2406  0024E6                     _readMatrixButtons:
  2407                           	opt stack 30
  2408                           
  2409                           ;inputs.c: 12: LATDbits.LATD3 = 1;
  2410                           
  2411                           ;incstack = 0
  2412  0024E6  868C               	bsf	3980,3,c	;volatile
  2413                           
  2414                           ;inputs.c: 13: _delay((unsigned long)((5)*(48000000/4000000.0)));
  2415  0024E8  0E14               	movlw	20
  2416  0024EA                     u3657:
  2417  0024EA  2EE8               	decfsz	wreg,f,c
  2418  0024EC  D7FE               	goto	u3657
  2419                           
  2420                           ;inputs.c: 14: LATDbits.LATD3 = 0;
  2421  0024EE  968C               	bcf	3980,3,c	;volatile
  2422                           
  2423                           ;inputs.c: 16: LATDbits.LATD2 = 0;
  2424  0024F0  948C               	bcf	3980,2,c	;volatile
  2425                           
  2426                           ;inputs.c: 18: for(char i = 0; i < 16; i++){
  2427  0024F2  0E00               	movlw	0
  2428  0024F4  6E02               	movwf	readMatrixButtons@i,c
  2429  0024F6                     l3347:
  2430  0024F6  0E0F               	movlw	15
  2431  0024F8  6402               	cpfsgt	readMatrixButtons@i,c
  2432  0024FA  D001               	goto	l3351
  2433  0024FC  0012               	return	
  2434  0024FE                     l3351:
  2435                           
  2436                           ;inputs.c: 20: m_buttons[buttonMap[i]] = PORTBbits.RB4;
  2437  0024FE  5002               	movf	readMatrixButtons@i,w,c
  2438  002500  0D01               	mullw	1
  2439  002502  0E60               	movlw	low _buttonMap
  2440  002504  24F3               	addwf	prodl,w,c
  2441  002506  6ED9               	movwf	fsr2l,c
  2442  002508  0E00               	movlw	high _buttonMap
  2443  00250A  20F4               	addwfc	prodh,w,c
  2444  00250C  6EDA               	movwf	fsr2h,c
  2445  00250E  50DF               	movf	indf2,w,c
  2446  002510  6E01               	movwf	??_readMatrixButtons& (0+255),c
  2447  002512  5001               	movf	??_readMatrixButtons,w,c
  2448  002514  0D01               	mullw	1
  2449  002516  0E70               	movlw	low _m_buttons
  2450  002518  24F3               	addwf	prodl,w,c
  2451  00251A  6ED9               	movwf	fsr2l,c
  2452  00251C  0E00               	movlw	high _m_buttons
  2453  00251E  20F4               	addwfc	prodh,w,c
  2454  002520  6EDA               	movwf	fsr2h,c
  2455  002522  A881               	btfss	3969,4,c	;volatile
  2456  002524  D002               	goto	u2530
  2457  002526  0E01               	movlw	1
  2458  002528  D001               	goto	u2536
  2459  00252A                     u2530:
  2460  00252A  0E00               	movlw	0
  2461  00252C                     u2536:
  2462  00252C  6EDF               	movwf	indf2,c
  2463                           
  2464                           ;inputs.c: 23: LATDbits.LATD2 = 1;
  2465  00252E  848C               	bsf	3980,2,c	;volatile
  2466                           
  2467                           ;inputs.c: 24: _delay((unsigned long)((10)*(48000000/4000000.0)));
  2468  002530  0E28               	movlw	40
  2469  002532                     u3667:
  2470  002532  2EE8               	decfsz	wreg,f,c
  2471  002534  D7FE               	goto	u3667
  2472                           
  2473                           ;inputs.c: 25: LATDbits.LATD2 = 0;
  2474  002536  948C               	bcf	3980,2,c	;volatile
  2475  002538  2A02               	incf	readMatrixButtons@i,f,c
  2476  00253A  D7DD               	goto	l3347
  2477  00253C                     __end_of_readMatrixButtons:
  2478                           	opt stack 0
  2479                           tblptru	equ	0xFF8
  2480                           tblptrh	equ	0xFF7
  2481                           tblptrl	equ	0xFF6
  2482                           tablat	equ	0xFF5
  2483                           prodh	equ	0xFF4
  2484                           prodl	equ	0xFF3
  2485                           postinc0	equ	0xFEE
  2486                           wreg	equ	0xFE8
  2487                           indf1	equ	0xFE7
  2488                           postinc1	equ	0xFE6
  2489                           postdec1	equ	0xFE5
  2490                           fsr1h	equ	0xFE2
  2491                           fsr1l	equ	0xFE1
  2492                           indf2	equ	0xFDF
  2493                           postinc2	equ	0xFDE
  2494                           fsr2h	equ	0xFDA
  2495                           fsr2l	equ	0xFD9
  2496                           status	equ	0xFD8
  2497                           
  2498 ;; *************** function _blinkLedAsync *****************
  2499 ;; Defined at:
  2500 ;;		line 128 in file "outputs.c"
  2501 ;; Parameters:    Size  Location     Type
  2502 ;;  led             1    wreg     unsigned char 
  2503 ;;  xtimes          1    9[COMRAM] unsigned char 
  2504 ;;  color           1   10[COMRAM] unsigned char 
  2505 ;;  intensity       1   11[COMRAM] unsigned char 
  2506 ;; Auto vars:     Size  Location     Type
  2507 ;;  led             1   17[COMRAM] unsigned char 
  2508 ;;  i               2   15[COMRAM] int 
  2509 ;; Return value:  Size  Location     Type
  2510 ;;                  1    wreg      void 
  2511 ;; Registers used:
  2512 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  2513 ;; Tracked objects:
  2514 ;;		On entry : 0/0
  2515 ;;		On exit  : 0/0
  2516 ;;		Unchanged: 0/0
  2517 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  2518 ;;      Params:         3       0       0       0       0       0       0       0       0       0
  2519 ;;      Locals:         3       0       0       0       0       0       0       0       0       0
  2520 ;;      Temps:          3       0       0       0       0       0       0       0       0       0
  2521 ;;      Totals:         9       0       0       0       0       0       0       0       0       0
  2522 ;;Total ram usage:        9 bytes
  2523 ;; Hardware stack levels used:    1
  2524 ;; Hardware stack levels required when called:    2
  2525 ;; This function calls:
  2526 ;;		_changeColor
  2527 ;;		_delayMs
  2528 ;;		_sendLEDs
  2529 ;; This function is called by:
  2530 ;;		_bankChange
  2531 ;;		_channelChange
  2532 ;;		_colorChangeForPressedButton
  2533 ;; This function uses a non-reentrant model
  2534 ;;
  2535                           
  2536                           	psect	text11
  2537  00234C                     __ptext11:
  2538                           	opt stack 0
  2539  00234C                     _blinkLedAsync:
  2540                           	opt stack 26
  2541                           
  2542                           ;incstack = 0
  2543                           ;blinkLedAsync@led stored from wreg
  2544  00234C  6E12               	movwf	blinkLedAsync@led,c
  2545                           
  2546                           ;outputs.c: 130: for (int i = 0; i < xtimes; i++) {
  2547  00234E  0E00               	movlw	0
  2548  002350  6E11               	movwf	blinkLedAsync@i+1,c
  2549  002352  0E00               	movlw	0
  2550  002354  6E10               	movwf	blinkLedAsync@i,c
  2551  002356  D022               	goto	l3575
  2552  002358                     l3563:
  2553                           
  2554                           ;outputs.c: 131: changeColor(led, color, intensity);
  2555  002358  C00B  F001         	movff	blinkLedAsync@color,changeColor@color
  2556  00235C  C00C  F002         	movff	blinkLedAsync@intensity,changeColor@intensity
  2557  002360  5012               	movf	blinkLedAsync@led,w,c
  2558  002362  EC6A  F004         	call	_changeColor
  2559                           
  2560                           ;outputs.c: 132: sendLEDs(global_leds);
  2561  002366  0E91               	movlw	low _global_leds
  2562  002368  6E04               	movwf	sendLEDs@leds,c
  2563  00236A  0E00               	movlw	high _global_leds
  2564  00236C  6E05               	movwf	sendLEDs@leds+1,c
  2565  00236E  EC82  F00F         	call	_sendLEDs	;wreg free
  2566                           
  2567                           ;outputs.c: 133: delayMs(100);
  2568  002372  0E64               	movlw	100
  2569  002374  ECA8  F013         	call	_delayMs
  2570                           
  2571                           ;outputs.c: 134: changeColor(led, BLACK, 0);
  2572  002378  0E00               	movlw	0
  2573  00237A  6E01               	movwf	changeColor@color,c
  2574  00237C  0E00               	movlw	0
  2575  00237E  6E02               	movwf	changeColor@intensity,c
  2576  002380  5012               	movf	blinkLedAsync@led,w,c
  2577  002382  EC6A  F004         	call	_changeColor
  2578                           
  2579                           ;outputs.c: 135: sendLEDs(global_leds);
  2580  002386  0E91               	movlw	low _global_leds
  2581  002388  6E04               	movwf	sendLEDs@leds,c
  2582  00238A  0E00               	movlw	high _global_leds
  2583  00238C  6E05               	movwf	sendLEDs@leds+1,c
  2584  00238E  EC82  F00F         	call	_sendLEDs	;wreg free
  2585                           
  2586                           ;outputs.c: 136: delayMs(100);
  2587  002392  0E64               	movlw	100
  2588  002394  ECA8  F013         	call	_delayMs
  2589  002398  4A10               	infsnz	blinkLedAsync@i,f,c
  2590  00239A  2A11               	incf	blinkLedAsync@i+1,f,c
  2591  00239C                     l3575:
  2592  00239C  500A               	movf	blinkLedAsync@xtimes,w,c
  2593  00239E  6E0D               	movwf	??_blinkLedAsync& (0+255),c
  2594  0023A0  6A0E               	clrf	(??_blinkLedAsync+1)& (0+255),c
  2595  0023A2  500D               	movf	??_blinkLedAsync,w,c
  2596  0023A4  5C10               	subwf	blinkLedAsync@i,w,c
  2597  0023A6  5011               	movf	blinkLedAsync@i+1,w,c
  2598  0023A8  0A80               	xorlw	128
  2599  0023AA  6E0F               	movwf	(??_blinkLedAsync+2)& (0+255),c
  2600  0023AC  500E               	movf	??_blinkLedAsync+1,w,c
  2601  0023AE  0A80               	xorlw	128
  2602  0023B0  580F               	subwfb	(??_blinkLedAsync+2)& (0+255),w,c
  2603  0023B2  B0D8               	btfsc	status,0,c
  2604  0023B4  0012               	return	
  2605  0023B6  D7D0               	goto	l3563
  2606  0023B8                     __end_of_blinkLedAsync:
  2607                           	opt stack 0
  2608                           tblptru	equ	0xFF8
  2609                           tblptrh	equ	0xFF7
  2610                           tblptrl	equ	0xFF6
  2611                           tablat	equ	0xFF5
  2612                           prodh	equ	0xFF4
  2613                           prodl	equ	0xFF3
  2614                           postinc0	equ	0xFEE
  2615                           wreg	equ	0xFE8
  2616                           indf1	equ	0xFE7
  2617                           postinc1	equ	0xFE6
  2618                           postdec1	equ	0xFE5
  2619                           fsr1h	equ	0xFE2
  2620                           fsr1l	equ	0xFE1
  2621                           indf2	equ	0xFDF
  2622                           postinc2	equ	0xFDE
  2623                           fsr2h	equ	0xFDA
  2624                           fsr2l	equ	0xFD9
  2625                           status	equ	0xFD8
  2626                           
  2627 ;; *************** function _pressedButtonEff *****************
  2628 ;; Defined at:
  2629 ;;		line 223 in file "main.c"
  2630 ;; Parameters:    Size  Location     Type
  2631 ;;		None
  2632 ;; Auto vars:     Size  Location     Type
  2633 ;;  i               1   73[COMRAM] unsigned char 
  2634 ;;  leds           64    9[COMRAM] unsigned char [4][16]
  2635 ;; Return value:  Size  Location     Type
  2636 ;;                  1    wreg      void 
  2637 ;; Registers used:
  2638 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  2639 ;; Tracked objects:
  2640 ;;		On entry : 0/0
  2641 ;;		On exit  : 0/0
  2642 ;;		Unchanged: 0/0
  2643 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  2644 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  2645 ;;      Locals:        65       0       0       0       0       0       0       0       0       0
  2646 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  2647 ;;      Totals:        65       0       0       0       0       0       0       0       0       0
  2648 ;;Total ram usage:       65 bytes
  2649 ;; Hardware stack levels used:    1
  2650 ;; Hardware stack levels required when called:    2
  2651 ;; This function calls:
  2652 ;;		_sendLEDs
  2653 ;; This function is called by:
  2654 ;;		_main
  2655 ;; This function uses a non-reentrant model
  2656 ;;
  2657                           
  2658                           	psect	text12
  2659  000BE4                     __ptext12:
  2660                           	opt stack 0
  2661  000BE4                     _pressedButtonEff:
  2662                           	opt stack 28
  2663                           
  2664                           ;main.c: 225: char leds[16][4];
  2665                           ;main.c: 227: for (char i = 0; i < 16; i++) {
  2666                           
  2667                           ;incstack = 0
  2668  000BE4  0E00               	movlw	0
  2669  000BE6  6E4A               	movwf	pressedButtonEff@i,c
  2670  000BE8                     l4035:
  2671  000BE8  0E0F               	movlw	15
  2672  000BEA  644A               	cpfsgt	pressedButtonEff@i,c
  2673  000BEC  D001               	goto	l4039
  2674  000BEE  D15B               	goto	l4069
  2675  000BF0                     l4039:
  2676                           
  2677                           ;main.c: 229: leds[i][0] = 255;
  2678  000BF0  504A               	movf	pressedButtonEff@i,w,c
  2679  000BF2  0D04               	mullw	4
  2680  000BF4  0E0A               	movlw	low pressedButtonEff@leds
  2681  000BF6  24F3               	addwf	prodl,w,c
  2682  000BF8  6ED9               	movwf	fsr2l,c
  2683  000BFA  0E00               	movlw	high pressedButtonEff@leds
  2684  000BFC  20F4               	addwfc	prodh,w,c
  2685  000BFE  6EDA               	movwf	fsr2h,c
  2686  000C00  0EFF               	movlw	255
  2687  000C02  6EDF               	movwf	indf2,c
  2688                           
  2689                           ;main.c: 231: if(m_buttons[i] == 0){
  2690  000C04  504A               	movf	pressedButtonEff@i,w,c
  2691  000C06  0D01               	mullw	1
  2692  000C08  0E70               	movlw	low _m_buttons
  2693  000C0A  24F3               	addwf	prodl,w,c
  2694  000C0C  6ED9               	movwf	fsr2l,c
  2695  000C0E  0E00               	movlw	high _m_buttons
  2696  000C10  20F4               	addwfc	prodh,w,c
  2697  000C12  6EDA               	movwf	fsr2h,c
  2698  000C14  50DF               	movf	indf2,w,c
  2699  000C16  B4D8               	btfsc	status,2,c
  2700  000C18  D0C9               	goto	l4061
  2701  000C1A  D0E3               	goto	l4063
  2702  000C1C                     l4043:
  2703                           
  2704                           ;main.c: 236: leds[i][1] = 0;
  2705  000C1C  504A               	movf	pressedButtonEff@i,w,c
  2706  000C1E  0D04               	mullw	4
  2707  000C20  0E01               	movlw	1
  2708  000C22  26F3               	addwf	prodl,f,c
  2709  000C24  0E00               	movlw	0
  2710  000C26  22F4               	addwfc	prodh,f,c
  2711  000C28  0E0A               	movlw	low pressedButtonEff@leds
  2712  000C2A  24F3               	addwf	prodl,w,c
  2713  000C2C  6ED9               	movwf	fsr2l,c
  2714  000C2E  0E00               	movlw	high pressedButtonEff@leds
  2715  000C30  20F4               	addwfc	prodh,w,c
  2716  000C32  6EDA               	movwf	fsr2h,c
  2717  000C34  0E00               	movlw	0
  2718  000C36  D00D               	goto	L1
  2719  000C38                     l4045:
  2720                           
  2721                           ;main.c: 242: leds[i][1] = 1;
  2722  000C38  504A               	movf	pressedButtonEff@i,w,c
  2723  000C3A  0D04               	mullw	4
  2724  000C3C  0E01               	movlw	1
  2725  000C3E  26F3               	addwf	prodl,f,c
  2726  000C40  0E00               	movlw	0
  2727  000C42  22F4               	addwfc	prodh,f,c
  2728  000C44  0E0A               	movlw	low pressedButtonEff@leds
  2729  000C46  24F3               	addwf	prodl,w,c
  2730  000C48  6ED9               	movwf	fsr2l,c
  2731  000C4A  0E00               	movlw	high pressedButtonEff@leds
  2732  000C4C  20F4               	addwfc	prodh,w,c
  2733  000C4E  6EDA               	movwf	fsr2h,c
  2734  000C50  0E01               	movlw	1
  2735  000C52                     L1:
  2736  000C52  6EDF               	movwf	indf2,c
  2737                           
  2738                           ;main.c: 243: leds[i][2] = 0;
  2739  000C54  504A               	movf	pressedButtonEff@i,w,c
  2740  000C56  0D04               	mullw	4
  2741  000C58  0E02               	movlw	2
  2742  000C5A  26F3               	addwf	prodl,f,c
  2743  000C5C  0E00               	movlw	0
  2744  000C5E  22F4               	addwfc	prodh,f,c
  2745  000C60  0E0A               	movlw	low pressedButtonEff@leds
  2746  000C62  24F3               	addwf	prodl,w,c
  2747  000C64  6ED9               	movwf	fsr2l,c
  2748  000C66  0E00               	movlw	high pressedButtonEff@leds
  2749  000C68  20F4               	addwfc	prodh,w,c
  2750  000C6A  6EDA               	movwf	fsr2h,c
  2751  000C6C  0E00               	movlw	0
  2752  000C6E  D00E               	goto	L2
  2753  000C70                     l4047:
  2754                           
  2755                           ;main.c: 248: leds[i][1] = 0;
  2756  000C70  504A               	movf	pressedButtonEff@i,w,c
  2757  000C72  0D04               	mullw	4
  2758  000C74  0E01               	movlw	1
  2759  000C76  26F3               	addwf	prodl,f,c
  2760  000C78  0E00               	movlw	0
  2761  000C7A  22F4               	addwfc	prodh,f,c
  2762  000C7C  0E0A               	movlw	low pressedButtonEff@leds
  2763  000C7E  24F3               	addwf	prodl,w,c
  2764  000C80  6ED9               	movwf	fsr2l,c
  2765  000C82  0E00               	movlw	high pressedButtonEff@leds
  2766  000C84  20F4               	addwfc	prodh,w,c
  2767  000C86  6EDA               	movwf	fsr2h,c
  2768  000C88  0E00               	movlw	0
  2769  000C8A  D065               	goto	L5
  2770  000C8C                     L2:
  2771  000C8C  6EDF               	movwf	indf2,c
  2772                           
  2773                           ;main.c: 250: leds[i][3] = 0;
  2774  000C8E  504A               	movf	pressedButtonEff@i,w,c
  2775  000C90  0D04               	mullw	4
  2776  000C92  0E03               	movlw	3
  2777  000C94  26F3               	addwf	prodl,f,c
  2778  000C96  0E00               	movlw	0
  2779  000C98  22F4               	addwfc	prodh,f,c
  2780  000C9A  0E0A               	movlw	low pressedButtonEff@leds
  2781  000C9C  24F3               	addwf	prodl,w,c
  2782  000C9E  6ED9               	movwf	fsr2l,c
  2783  000CA0  0E00               	movlw	high pressedButtonEff@leds
  2784  000CA2  20F4               	addwfc	prodh,w,c
  2785  000CA4  6EDA               	movwf	fsr2h,c
  2786  000CA6  0E00               	movlw	0
  2787  000CA8  D00E               	goto	L3
  2788  000CAA                     l4049:
  2789                           
  2790                           ;main.c: 254: leds[i][1] = 0;
  2791  000CAA  504A               	movf	pressedButtonEff@i,w,c
  2792  000CAC  0D04               	mullw	4
  2793  000CAE  0E01               	movlw	1
  2794  000CB0  26F3               	addwf	prodl,f,c
  2795  000CB2  0E00               	movlw	0
  2796  000CB4  22F4               	addwfc	prodh,f,c
  2797  000CB6  0E0A               	movlw	low pressedButtonEff@leds
  2798  000CB8  24F3               	addwf	prodl,w,c
  2799  000CBA  6ED9               	movwf	fsr2l,c
  2800  000CBC  0E00               	movlw	high pressedButtonEff@leds
  2801  000CBE  20F4               	addwfc	prodh,w,c
  2802  000CC0  6EDA               	movwf	fsr2h,c
  2803  000CC2  0E00               	movlw	0
  2804  000CC4  D00F               	goto	L4
  2805  000CC6                     L3:
  2806  000CC6  6EDF               	movwf	indf2,c
  2807                           
  2808                           ;main.c: 257: break;
  2809  000CC8  D0EC               	goto	l4065
  2810  000CCA                     l4051:
  2811                           
  2812                           ;main.c: 260: leds[i][1] = 1;
  2813  000CCA  504A               	movf	pressedButtonEff@i,w,c
  2814  000CCC  0D04               	mullw	4
  2815  000CCE  0E01               	movlw	1
  2816  000CD0  26F3               	addwf	prodl,f,c
  2817  000CD2  0E00               	movlw	0
  2818  000CD4  22F4               	addwfc	prodh,f,c
  2819  000CD6  0E0A               	movlw	low pressedButtonEff@leds
  2820  000CD8  24F3               	addwf	prodl,w,c
  2821  000CDA  6ED9               	movwf	fsr2l,c
  2822  000CDC  0E00               	movlw	high pressedButtonEff@leds
  2823  000CDE  20F4               	addwfc	prodh,w,c
  2824  000CE0  6EDA               	movwf	fsr2h,c
  2825  000CE2  0E01               	movlw	1
  2826  000CE4                     L4:
  2827  000CE4  6EDF               	movwf	indf2,c
  2828                           
  2829                           ;main.c: 261: leds[i][2] = 0;
  2830  000CE6  504A               	movf	pressedButtonEff@i,w,c
  2831  000CE8  0D04               	mullw	4
  2832  000CEA  0E02               	movlw	2
  2833  000CEC  26F3               	addwf	prodl,f,c
  2834  000CEE  0E00               	movlw	0
  2835  000CF0  22F4               	addwfc	prodh,f,c
  2836  000CF2  0E0A               	movlw	low pressedButtonEff@leds
  2837  000CF4  24F3               	addwf	prodl,w,c
  2838  000CF6  6ED9               	movwf	fsr2l,c
  2839  000CF8  0E00               	movlw	high pressedButtonEff@leds
  2840  000CFA  20F4               	addwfc	prodh,w,c
  2841  000CFC  6EDA               	movwf	fsr2h,c
  2842  000CFE  0E00               	movlw	0
  2843  000D00  D00E               	goto	L6
  2844  000D02                     l4053:
  2845                           
  2846                           ;main.c: 266: leds[i][1] = 0;
  2847  000D02  504A               	movf	pressedButtonEff@i,w,c
  2848  000D04  0D04               	mullw	4
  2849  000D06  0E01               	movlw	1
  2850  000D08  26F3               	addwf	prodl,f,c
  2851  000D0A  0E00               	movlw	0
  2852  000D0C  22F4               	addwfc	prodh,f,c
  2853  000D0E  0E0A               	movlw	low pressedButtonEff@leds
  2854  000D10  24F3               	addwf	prodl,w,c
  2855  000D12  6ED9               	movwf	fsr2l,c
  2856  000D14  0E00               	movlw	high pressedButtonEff@leds
  2857  000D16  20F4               	addwfc	prodh,w,c
  2858  000D18  6EDA               	movwf	fsr2h,c
  2859  000D1A  0E00               	movlw	0
  2860  000D1C  D038               	goto	L7
  2861  000D1E                     L6:
  2862  000D1E  6EDF               	movwf	indf2,c
  2863                           
  2864                           ;main.c: 268: leds[i][3] = 1;
  2865  000D20  504A               	movf	pressedButtonEff@i,w,c
  2866  000D22  0D04               	mullw	4
  2867  000D24  0E03               	movlw	3
  2868  000D26  26F3               	addwf	prodl,f,c
  2869  000D28  0E00               	movlw	0
  2870  000D2A  22F4               	addwfc	prodh,f,c
  2871  000D2C  0E0A               	movlw	low pressedButtonEff@leds
  2872  000D2E  24F3               	addwf	prodl,w,c
  2873  000D30  6ED9               	movwf	fsr2l,c
  2874  000D32  0E00               	movlw	high pressedButtonEff@leds
  2875  000D34  20F4               	addwfc	prodh,w,c
  2876  000D36  6EDA               	movwf	fsr2h,c
  2877  000D38  0E01               	movlw	1
  2878  000D3A  D7C5               	goto	L3
  2879  000D3C                     l4055:
  2880                           
  2881                           ;main.c: 272: leds[i][1] = 1;
  2882  000D3C  504A               	movf	pressedButtonEff@i,w,c
  2883  000D3E  0D04               	mullw	4
  2884  000D40  0E01               	movlw	1
  2885  000D42  26F3               	addwf	prodl,f,c
  2886  000D44  0E00               	movlw	0
  2887  000D46  22F4               	addwfc	prodh,f,c
  2888  000D48  0E0A               	movlw	low pressedButtonEff@leds
  2889  000D4A  24F3               	addwf	prodl,w,c
  2890  000D4C  6ED9               	movwf	fsr2l,c
  2891  000D4E  0E00               	movlw	high pressedButtonEff@leds
  2892  000D50  20F4               	addwfc	prodh,w,c
  2893  000D52  6EDA               	movwf	fsr2h,c
  2894  000D54  0E01               	movlw	1
  2895  000D56                     L5:
  2896  000D56  6EDF               	movwf	indf2,c
  2897                           
  2898                           ;main.c: 273: leds[i][2] = 1;
  2899  000D58  504A               	movf	pressedButtonEff@i,w,c
  2900  000D5A  0D04               	mullw	4
  2901  000D5C  0E02               	movlw	2
  2902  000D5E  26F3               	addwf	prodl,f,c
  2903  000D60  0E00               	movlw	0
  2904  000D62  22F4               	addwfc	prodh,f,c
  2905  000D64  0E0A               	movlw	low pressedButtonEff@leds
  2906  000D66  24F3               	addwf	prodl,w,c
  2907  000D68  6ED9               	movwf	fsr2l,c
  2908  000D6A  0E00               	movlw	high pressedButtonEff@leds
  2909  000D6C  20F4               	addwfc	prodh,w,c
  2910  000D6E  6EDA               	movwf	fsr2h,c
  2911  000D70  0E01               	movlw	1
  2912  000D72  D78C               	goto	L2
  2913  000D74                     l4057:
  2914                           
  2915                           ;main.c: 278: leds[i][1] = 1;
  2916  000D74  504A               	movf	pressedButtonEff@i,w,c
  2917  000D76  0D04               	mullw	4
  2918  000D78  0E01               	movlw	1
  2919  000D7A  26F3               	addwf	prodl,f,c
  2920  000D7C  0E00               	movlw	0
  2921  000D7E  22F4               	addwfc	prodh,f,c
  2922  000D80  0E0A               	movlw	low pressedButtonEff@leds
  2923  000D82  24F3               	addwf	prodl,w,c
  2924  000D84  6ED9               	movwf	fsr2l,c
  2925  000D86  0E00               	movlw	high pressedButtonEff@leds
  2926  000D88  20F4               	addwfc	prodh,w,c
  2927  000D8A  6EDA               	movwf	fsr2h,c
  2928  000D8C  0E01               	movlw	1
  2929  000D8E                     L7:
  2930  000D8E  6EDF               	movwf	indf2,c
  2931                           
  2932                           ;main.c: 279: leds[i][2] = 1;
  2933  000D90  504A               	movf	pressedButtonEff@i,w,c
  2934  000D92  0D04               	mullw	4
  2935  000D94  0E02               	movlw	2
  2936  000D96  26F3               	addwf	prodl,f,c
  2937  000D98  0E00               	movlw	0
  2938  000D9A  22F4               	addwfc	prodh,f,c
  2939  000D9C  0E0A               	movlw	low pressedButtonEff@leds
  2940  000D9E  24F3               	addwf	prodl,w,c
  2941  000DA0  6ED9               	movwf	fsr2l,c
  2942  000DA2  0E00               	movlw	high pressedButtonEff@leds
  2943  000DA4  20F4               	addwfc	prodh,w,c
  2944  000DA6  6EDA               	movwf	fsr2h,c
  2945  000DA8  0E01               	movlw	1
  2946  000DAA  D7B9               	goto	L6
  2947  000DAC                     l4061:
  2948  000DAC  0100               	movlb	0	; () banked
  2949  000DAE  5190               	movf	_pressedButtonColor& (0+255),w,b
  2950                           
  2951                           ; Switch size 1, requested type "space"
  2952                           ; Number of cases is 8, Range of values is 0 to 7
  2953                           ; switch strategies available:
  2954                           ; Name         Instructions Cycles
  2955                           ; simple_byte           25    13 (average)
  2956                           ;	Chosen strategy is simple_byte
  2957  000DB0  0A00               	xorlw	0	; case 0
  2958  000DB2  B4D8               	btfsc	status,2,c
  2959  000DB4  D733               	goto	l4043
  2960  000DB6  0A01               	xorlw	1	; case 1
  2961  000DB8  B4D8               	btfsc	status,2,c
  2962  000DBA  D73E               	goto	l4045
  2963  000DBC  0A03               	xorlw	3	; case 2
  2964  000DBE  B4D8               	btfsc	status,2,c
  2965  000DC0  D757               	goto	l4047
  2966  000DC2  0A01               	xorlw	1	; case 3
  2967  000DC4  B4D8               	btfsc	status,2,c
  2968  000DC6  D771               	goto	l4049
  2969  000DC8  0A07               	xorlw	7	; case 4
  2970  000DCA  B4D8               	btfsc	status,2,c
  2971  000DCC  D77E               	goto	l4051
  2972  000DCE  0A01               	xorlw	1	; case 5
  2973  000DD0  B4D8               	btfsc	status,2,c
  2974  000DD2  D797               	goto	l4053
  2975  000DD4  0A03               	xorlw	3	; case 6
  2976  000DD6  B4D8               	btfsc	status,2,c
  2977  000DD8  D7B1               	goto	l4055
  2978  000DDA  0A01               	xorlw	1	; case 7
  2979  000DDC  B4D8               	btfsc	status,2,c
  2980  000DDE  D7CA               	goto	l4057
  2981                           
  2982                           ; BSR set to: 0
  2983                           ;main.c: 284: } else {
  2984  000DE0  D060               	goto	l4065
  2985  000DE2                     l4063:
  2986                           
  2987                           ;main.c: 285: leds[i][0] = global_leds[i][0];
  2988  000DE2  504A               	movf	pressedButtonEff@i,w,c
  2989  000DE4  0D04               	mullw	4
  2990  000DE6  0E91               	movlw	low _global_leds
  2991  000DE8  24F3               	addwf	prodl,w,c
  2992  000DEA  6ED9               	movwf	fsr2l,c
  2993  000DEC  0E00               	movlw	high _global_leds
  2994  000DEE  20F4               	addwfc	prodh,w,c
  2995  000DF0  6EDA               	movwf	fsr2h,c
  2996  000DF2  504A               	movf	pressedButtonEff@i,w,c
  2997  000DF4  0D04               	mullw	4
  2998  000DF6  0E0A               	movlw	low pressedButtonEff@leds
  2999  000DF8  24F3               	addwf	prodl,w,c
  3000  000DFA  6EE1               	movwf	fsr1l,c
  3001  000DFC  0E00               	movlw	high pressedButtonEff@leds
  3002  000DFE  20F4               	addwfc	prodh,w,c
  3003  000E00  6EE2               	movwf	fsr1h,c
  3004  000E02  CFDF FFE7          	movff	indf2,indf1
  3005                           
  3006                           ;main.c: 286: leds[i][1] = global_leds[i][1];
  3007  000E06  504A               	movf	pressedButtonEff@i,w,c
  3008  000E08  0D04               	mullw	4
  3009  000E0A  0E01               	movlw	1
  3010  000E0C  26F3               	addwf	prodl,f,c
  3011  000E0E  0E00               	movlw	0
  3012  000E10  22F4               	addwfc	prodh,f,c
  3013  000E12  0E91               	movlw	low _global_leds
  3014  000E14  24F3               	addwf	prodl,w,c
  3015  000E16  6ED9               	movwf	fsr2l,c
  3016  000E18  0E00               	movlw	high _global_leds
  3017  000E1A  20F4               	addwfc	prodh,w,c
  3018  000E1C  6EDA               	movwf	fsr2h,c
  3019  000E1E  504A               	movf	pressedButtonEff@i,w,c
  3020  000E20  0D04               	mullw	4
  3021  000E22  0E01               	movlw	1
  3022  000E24  26F3               	addwf	prodl,f,c
  3023  000E26  0E00               	movlw	0
  3024  000E28  22F4               	addwfc	prodh,f,c
  3025  000E2A  0E0A               	movlw	low pressedButtonEff@leds
  3026  000E2C  24F3               	addwf	prodl,w,c
  3027  000E2E  6EE1               	movwf	fsr1l,c
  3028  000E30  0E00               	movlw	high pressedButtonEff@leds
  3029  000E32  20F4               	addwfc	prodh,w,c
  3030  000E34  6EE2               	movwf	fsr1h,c
  3031  000E36  CFDF FFE7          	movff	indf2,indf1
  3032                           
  3033                           ;main.c: 287: leds[i][2] = global_leds[i][2];
  3034  000E3A  504A               	movf	pressedButtonEff@i,w,c
  3035  000E3C  0D04               	mullw	4
  3036  000E3E  0E02               	movlw	2
  3037  000E40  26F3               	addwf	prodl,f,c
  3038  000E42  0E00               	movlw	0
  3039  000E44  22F4               	addwfc	prodh,f,c
  3040  000E46  0E91               	movlw	low _global_leds
  3041  000E48  24F3               	addwf	prodl,w,c
  3042  000E4A  6ED9               	movwf	fsr2l,c
  3043  000E4C  0E00               	movlw	high _global_leds
  3044  000E4E  20F4               	addwfc	prodh,w,c
  3045  000E50  6EDA               	movwf	fsr2h,c
  3046  000E52  504A               	movf	pressedButtonEff@i,w,c
  3047  000E54  0D04               	mullw	4
  3048  000E56  0E02               	movlw	2
  3049  000E58  26F3               	addwf	prodl,f,c
  3050  000E5A  0E00               	movlw	0
  3051  000E5C  22F4               	addwfc	prodh,f,c
  3052  000E5E  0E0A               	movlw	low pressedButtonEff@leds
  3053  000E60  24F3               	addwf	prodl,w,c
  3054  000E62  6EE1               	movwf	fsr1l,c
  3055  000E64  0E00               	movlw	high pressedButtonEff@leds
  3056  000E66  20F4               	addwfc	prodh,w,c
  3057  000E68  6EE2               	movwf	fsr1h,c
  3058  000E6A  CFDF FFE7          	movff	indf2,indf1
  3059                           
  3060                           ;main.c: 288: leds[i][3] = global_leds[i][3];
  3061  000E6E  504A               	movf	pressedButtonEff@i,w,c
  3062  000E70  0D04               	mullw	4
  3063  000E72  0E03               	movlw	3
  3064  000E74  26F3               	addwf	prodl,f,c
  3065  000E76  0E00               	movlw	0
  3066  000E78  22F4               	addwfc	prodh,f,c
  3067  000E7A  0E91               	movlw	low _global_leds
  3068  000E7C  24F3               	addwf	prodl,w,c
  3069  000E7E  6ED9               	movwf	fsr2l,c
  3070  000E80  0E00               	movlw	high _global_leds
  3071  000E82  20F4               	addwfc	prodh,w,c
  3072  000E84  6EDA               	movwf	fsr2h,c
  3073  000E86  504A               	movf	pressedButtonEff@i,w,c
  3074  000E88  0D04               	mullw	4
  3075  000E8A  0E03               	movlw	3
  3076  000E8C  26F3               	addwf	prodl,f,c
  3077  000E8E  0E00               	movlw	0
  3078  000E90  22F4               	addwfc	prodh,f,c
  3079  000E92  0E0A               	movlw	low pressedButtonEff@leds
  3080  000E94  24F3               	addwf	prodl,w,c
  3081  000E96  6EE1               	movwf	fsr1l,c
  3082  000E98  0E00               	movlw	high pressedButtonEff@leds
  3083  000E9A  20F4               	addwfc	prodh,w,c
  3084  000E9C  6EE2               	movwf	fsr1h,c
  3085  000E9E  CFDF FFE7          	movff	indf2,indf1
  3086  000EA2                     l4065:
  3087  000EA2  2A4A               	incf	pressedButtonEff@i,f,c
  3088  000EA4  D6A1               	goto	l4035
  3089  000EA6                     l4069:
  3090                           
  3091                           ;main.c: 289: }
  3092                           ;main.c: 290: }
  3093                           ;main.c: 292: sendLEDs(leds);
  3094  000EA6  0E0A               	movlw	low pressedButtonEff@leds
  3095  000EA8  6E04               	movwf	sendLEDs@leds,c
  3096  000EAA  0E00               	movlw	high pressedButtonEff@leds
  3097  000EAC  6E05               	movwf	sendLEDs@leds+1,c
  3098  000EAE  EC82  F00F         	call	_sendLEDs	;wreg free
  3099  000EB2  0012               	return		;funcret
  3100  000EB4                     __end_of_pressedButtonEff:
  3101                           	opt stack 0
  3102                           tblptru	equ	0xFF8
  3103                           tblptrh	equ	0xFF7
  3104                           tblptrl	equ	0xFF6
  3105                           tablat	equ	0xFF5
  3106                           prodh	equ	0xFF4
  3107                           prodl	equ	0xFF3
  3108                           postinc0	equ	0xFEE
  3109                           wreg	equ	0xFE8
  3110                           indf1	equ	0xFE7
  3111                           postinc1	equ	0xFE6
  3112                           postdec1	equ	0xFE5
  3113                           fsr1h	equ	0xFE2
  3114                           fsr1l	equ	0xFE1
  3115                           indf2	equ	0xFDF
  3116                           postinc2	equ	0xFDE
  3117                           fsr2h	equ	0xFDA
  3118                           fsr2l	equ	0xFD9
  3119                           status	equ	0xFD8
  3120                           
  3121 ;; *************** function _ledsIntro *****************
  3122 ;; Defined at:
  3123 ;;		line 296 in file "main.c"
  3124 ;; Parameters:    Size  Location     Type
  3125 ;;		None
  3126 ;; Auto vars:     Size  Location     Type
  3127 ;;  i               2   11[COMRAM] int 
  3128 ;;  j               2    9[COMRAM] int 
  3129 ;; Return value:  Size  Location     Type
  3130 ;;                  1    wreg      void 
  3131 ;; Registers used:
  3132 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  3133 ;; Tracked objects:
  3134 ;;		On entry : 0/0
  3135 ;;		On exit  : 0/0
  3136 ;;		Unchanged: 0/0
  3137 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  3138 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  3139 ;;      Locals:         4       0       0       0       0       0       0       0       0       0
  3140 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  3141 ;;      Totals:         4       0       0       0       0       0       0       0       0       0
  3142 ;;Total ram usage:        4 bytes
  3143 ;; Hardware stack levels used:    1
  3144 ;; Hardware stack levels required when called:    2
  3145 ;; This function calls:
  3146 ;;		_changeColor
  3147 ;;		_delayMs
  3148 ;;		_sendLEDs
  3149 ;;		_turnOffAllLeds
  3150 ;; This function is called by:
  3151 ;;		_main
  3152 ;; This function uses a non-reentrant model
  3153 ;;
  3154                           
  3155                           	psect	text13
  3156  0023B8                     __ptext13:
  3157                           	opt stack 0
  3158  0023B8                     _ledsIntro:
  3159                           	opt stack 28
  3160                           
  3161                           ;main.c: 298: turnOffAllLeds();
  3162                           
  3163                           ;incstack = 0
  3164  0023B8  EC47  F014         	call	_turnOffAllLeds	;wreg free
  3165                           
  3166                           ;main.c: 300: for (int j = 1; j < 7; j++) {
  3167  0023BC  0E00               	movlw	0
  3168  0023BE  6E0B               	movwf	ledsIntro@j+1,c
  3169  0023C0  0E01               	movlw	1
  3170  0023C2  6E0A               	movwf	ledsIntro@j,c
  3171  0023C4                     l4005:
  3172  0023C4  BE0B               	btfsc	ledsIntro@j+1,7,c
  3173  0023C6  D006               	goto	l4009
  3174  0023C8  500B               	movf	ledsIntro@j+1,w,c
  3175  0023CA  E126               	bnz	l4029
  3176  0023CC  0E07               	movlw	7
  3177  0023CE  5C0A               	subwf	ledsIntro@j,w,c
  3178  0023D0  B0D8               	btfsc	status,0,c
  3179  0023D2  D022               	goto	l4029
  3180  0023D4                     l4009:
  3181                           
  3182                           ;main.c: 302: for (int i = 0; i < 16; i++) {
  3183  0023D4  0E00               	movlw	0
  3184  0023D6  6E0D               	movwf	ledsIntro@i+1,c
  3185  0023D8  0E00               	movlw	0
  3186  0023DA  6E0C               	movwf	ledsIntro@i,c
  3187  0023DC                     l4011:
  3188  0023DC  BE0D               	btfsc	ledsIntro@i+1,7,c
  3189  0023DE  D006               	goto	l4015
  3190  0023E0  500D               	movf	ledsIntro@i+1,w,c
  3191  0023E2  E117               	bnz	l4025
  3192  0023E4  0E10               	movlw	16
  3193  0023E6  5C0C               	subwf	ledsIntro@i,w,c
  3194  0023E8  B0D8               	btfsc	status,0,c
  3195  0023EA  D013               	goto	l4025
  3196  0023EC                     l4015:
  3197                           
  3198                           ;main.c: 304: changeColor(i, j, 255);
  3199  0023EC  C00A  F001         	movff	ledsIntro@j,changeColor@color
  3200  0023F0  0EFF               	movlw	255
  3201  0023F2  6E02               	movwf	changeColor@intensity,c
  3202  0023F4  500C               	movf	ledsIntro@i,w,c
  3203  0023F6  EC6A  F004         	call	_changeColor
  3204                           
  3205                           ;main.c: 305: delayMs(20);
  3206  0023FA  0E14               	movlw	20
  3207  0023FC  ECA8  F013         	call	_delayMs
  3208                           
  3209                           ;main.c: 306: sendLEDs(global_leds);
  3210  002400  0E91               	movlw	low _global_leds
  3211  002402  6E04               	movwf	sendLEDs@leds,c
  3212  002404  0E00               	movlw	high _global_leds
  3213  002406  6E05               	movwf	sendLEDs@leds+1,c
  3214  002408  EC82  F00F         	call	_sendLEDs	;wreg free
  3215  00240C  4A0C               	infsnz	ledsIntro@i,f,c
  3216  00240E  2A0D               	incf	ledsIntro@i+1,f,c
  3217  002410  D7E5               	goto	l4011
  3218  002412                     l4025:
  3219  002412  4A0A               	infsnz	ledsIntro@j,f,c
  3220  002414  2A0B               	incf	ledsIntro@j+1,f,c
  3221  002416  D7D6               	goto	l4005
  3222  002418                     l4029:
  3223                           
  3224                           ;main.c: 307: }
  3225                           ;main.c: 308: }
  3226                           ;main.c: 310: delayMs(200);
  3227  002418  0EC8               	movlw	200
  3228  00241A  ECA8  F013         	call	_delayMs
  3229                           
  3230                           ;main.c: 311: turnOffAllLeds();
  3231  00241E  EC47  F014         	call	_turnOffAllLeds	;wreg free
  3232  002422  0012               	return		;funcret
  3233  002424                     __end_of_ledsIntro:
  3234                           	opt stack 0
  3235                           tblptru	equ	0xFF8
  3236                           tblptrh	equ	0xFF7
  3237                           tblptrl	equ	0xFF6
  3238                           tablat	equ	0xFF5
  3239                           prodh	equ	0xFF4
  3240                           prodl	equ	0xFF3
  3241                           postinc0	equ	0xFEE
  3242                           wreg	equ	0xFE8
  3243                           indf1	equ	0xFE7
  3244                           postinc1	equ	0xFE6
  3245                           postdec1	equ	0xFE5
  3246                           fsr1h	equ	0xFE2
  3247                           fsr1l	equ	0xFE1
  3248                           indf2	equ	0xFDF
  3249                           postinc2	equ	0xFDE
  3250                           fsr2h	equ	0xFDA
  3251                           fsr2l	equ	0xFD9
  3252                           status	equ	0xFD8
  3253                           
  3254 ;; *************** function _turnOffAllLeds *****************
  3255 ;; Defined at:
  3256 ;;		line 61 in file "outputs.c"
  3257 ;; Parameters:    Size  Location     Type
  3258 ;;		None
  3259 ;; Auto vars:     Size  Location     Type
  3260 ;;  i               2    3[COMRAM] int 
  3261 ;; Return value:  Size  Location     Type
  3262 ;;                  1    wreg      void 
  3263 ;; Registers used:
  3264 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  3265 ;; Tracked objects:
  3266 ;;		On entry : 0/0
  3267 ;;		On exit  : 0/0
  3268 ;;		Unchanged: 0/0
  3269 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  3270 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  3271 ;;      Locals:         2       0       0       0       0       0       0       0       0       0
  3272 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  3273 ;;      Totals:         2       0       0       0       0       0       0       0       0       0
  3274 ;;Total ram usage:        2 bytes
  3275 ;; Hardware stack levels used:    1
  3276 ;; Hardware stack levels required when called:    1
  3277 ;; This function calls:
  3278 ;;		_changeColor
  3279 ;; This function is called by:
  3280 ;;		_bankChange
  3281 ;;		_channelChange
  3282 ;;		_colorChangeForPressedButton
  3283 ;;		_ledsIntro
  3284 ;; This function uses a non-reentrant model
  3285 ;;
  3286                           
  3287                           	psect	text14
  3288  00288E                     __ptext14:
  3289                           	opt stack 0
  3290  00288E                     _turnOffAllLeds:
  3291                           	opt stack 27
  3292                           
  3293                           ;outputs.c: 63: for (int i = 0; i < 16; i++) {
  3294                           
  3295                           ;incstack = 0
  3296  00288E  0E00               	movlw	0
  3297  002890  6E05               	movwf	turnOffAllLeds@i+1,c
  3298  002892  0E00               	movlw	0
  3299  002894  6E04               	movwf	turnOffAllLeds@i,c
  3300  002896                     l3579:
  3301  002896  BE05               	btfsc	turnOffAllLeds@i+1,7,c
  3302  002898  D006               	goto	l3583
  3303  00289A  5005               	movf	turnOffAllLeds@i+1,w,c
  3304  00289C  E10E               	bnz	l677
  3305  00289E  0E10               	movlw	16
  3306  0028A0  5C04               	subwf	turnOffAllLeds@i,w,c
  3307  0028A2  B0D8               	btfsc	status,0,c
  3308  0028A4  0012               	return	
  3309  0028A6                     l3583:
  3310                           
  3311                           ;outputs.c: 64: changeColor(i, BLACK, 0);
  3312  0028A6  0E00               	movlw	0
  3313  0028A8  6E01               	movwf	changeColor@color,c
  3314  0028AA  0E00               	movlw	0
  3315  0028AC  6E02               	movwf	changeColor@intensity,c
  3316  0028AE  5004               	movf	turnOffAllLeds@i,w,c
  3317  0028B0  EC6A  F004         	call	_changeColor
  3318  0028B4  4A04               	infsnz	turnOffAllLeds@i,f,c
  3319  0028B6  2A05               	incf	turnOffAllLeds@i+1,f,c
  3320  0028B8  D7EE               	goto	l3579
  3321  0028BA                     l677:
  3322  0028BA  0012               	return		;funcret
  3323  0028BC                     __end_of_turnOffAllLeds:
  3324                           	opt stack 0
  3325                           tblptru	equ	0xFF8
  3326                           tblptrh	equ	0xFF7
  3327                           tblptrl	equ	0xFF6
  3328                           tablat	equ	0xFF5
  3329                           prodh	equ	0xFF4
  3330                           prodl	equ	0xFF3
  3331                           postinc0	equ	0xFEE
  3332                           wreg	equ	0xFE8
  3333                           indf1	equ	0xFE7
  3334                           postinc1	equ	0xFE6
  3335                           postdec1	equ	0xFE5
  3336                           fsr1h	equ	0xFE2
  3337                           fsr1l	equ	0xFE1
  3338                           indf2	equ	0xFDF
  3339                           postinc2	equ	0xFDE
  3340                           fsr2h	equ	0xFDA
  3341                           fsr2l	equ	0xFD9
  3342                           status	equ	0xFD8
  3343                           
  3344 ;; *************** function _changeColor *****************
  3345 ;; Defined at:
  3346 ;;		line 70 in file "outputs.c"
  3347 ;; Parameters:    Size  Location     Type
  3348 ;;  pos             1    wreg     unsigned char 
  3349 ;;  color           1    0[COMRAM] unsigned char 
  3350 ;;  intensity       1    1[COMRAM] unsigned char 
  3351 ;; Auto vars:     Size  Location     Type
  3352 ;;  pos             1    2[COMRAM] unsigned char 
  3353 ;; Return value:  Size  Location     Type
  3354 ;;                  1    wreg      void 
  3355 ;; Registers used:
  3356 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh
  3357 ;; Tracked objects:
  3358 ;;		On entry : 0/0
  3359 ;;		On exit  : 0/0
  3360 ;;		Unchanged: 0/0
  3361 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  3362 ;;      Params:         2       0       0       0       0       0       0       0       0       0
  3363 ;;      Locals:         1       0       0       0       0       0       0       0       0       0
  3364 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  3365 ;;      Totals:         3       0       0       0       0       0       0       0       0       0
  3366 ;;Total ram usage:        3 bytes
  3367 ;; Hardware stack levels used:    1
  3368 ;; This function calls:
  3369 ;;		Nothing
  3370 ;; This function is called by:
  3371 ;;		_bankChange
  3372 ;;		_channelChange
  3373 ;;		_colorChangeForPressedButton
  3374 ;;		_ledsIntro
  3375 ;;		_turnOnAllLeds
  3376 ;;		_turnOffAllLeds
  3377 ;;		_blinkLedAsync
  3378 ;; This function uses a non-reentrant model
  3379 ;;
  3380                           
  3381                           	psect	text15
  3382  0008D4                     __ptext15:
  3383                           	opt stack 0
  3384  0008D4                     _changeColor:
  3385                           	opt stack 27
  3386                           
  3387                           ;incstack = 0
  3388                           ;changeColor@pos stored from wreg
  3389  0008D4  6E03               	movwf	changeColor@pos,c
  3390                           
  3391                           ;outputs.c: 72: global_leds[pos][0] = intensity;
  3392  0008D6  5003               	movf	changeColor@pos,w,c
  3393  0008D8  0D04               	mullw	4
  3394  0008DA  0E91               	movlw	low _global_leds
  3395  0008DC  24F3               	addwf	prodl,w,c
  3396  0008DE  6ED9               	movwf	fsr2l,c
  3397  0008E0  0E00               	movlw	high _global_leds
  3398  0008E2  20F4               	addwfc	prodh,w,c
  3399  0008E4  6EDA               	movwf	fsr2h,c
  3400  0008E6  C002  FFDF         	movff	changeColor@intensity,indf2
  3401                           
  3402                           ;outputs.c: 74: switch(color){
  3403  0008EA  D162               	goto	l3383
  3404  0008EC                     l3365:
  3405                           
  3406                           ;outputs.c: 77: global_leds[pos][0] = 255;
  3407  0008EC  5003               	movf	changeColor@pos,w,c
  3408  0008EE  0D04               	mullw	4
  3409  0008F0  0E91               	movlw	low _global_leds
  3410  0008F2  24F3               	addwf	prodl,w,c
  3411  0008F4  6ED9               	movwf	fsr2l,c
  3412  0008F6  0E00               	movlw	high _global_leds
  3413  0008F8  20F4               	addwfc	prodh,w,c
  3414  0008FA  6EDA               	movwf	fsr2h,c
  3415  0008FC  0EFF               	movlw	255
  3416  0008FE  6EDF               	movwf	indf2,c
  3417                           
  3418                           ;outputs.c: 78: global_leds[pos][1] = 0;
  3419  000900  5003               	movf	changeColor@pos,w,c
  3420  000902  0D04               	mullw	4
  3421  000904  0E01               	movlw	1
  3422  000906  26F3               	addwf	prodl,f,c
  3423  000908  0E00               	movlw	0
  3424  00090A  22F4               	addwfc	prodh,f,c
  3425  00090C  0E91               	movlw	low _global_leds
  3426  00090E  24F3               	addwf	prodl,w,c
  3427  000910  6ED9               	movwf	fsr2l,c
  3428  000912  0E00               	movlw	high _global_leds
  3429  000914  20F4               	addwfc	prodh,w,c
  3430  000916  6EDA               	movwf	fsr2h,c
  3431  000918  0E00               	movlw	0
  3432  00091A  6EDF               	movwf	indf2,c
  3433                           
  3434                           ;outputs.c: 79: global_leds[pos][2] = 0;
  3435  00091C  5003               	movf	changeColor@pos,w,c
  3436  00091E  0D04               	mullw	4
  3437  000920  0E02               	movlw	2
  3438  000922  26F3               	addwf	prodl,f,c
  3439  000924  0E00               	movlw	0
  3440  000926  22F4               	addwfc	prodh,f,c
  3441  000928  0E91               	movlw	low _global_leds
  3442  00092A  24F3               	addwf	prodl,w,c
  3443  00092C  6ED9               	movwf	fsr2l,c
  3444  00092E  0E00               	movlw	high _global_leds
  3445  000930  20F4               	addwfc	prodh,w,c
  3446  000932  6EDA               	movwf	fsr2h,c
  3447  000934  0E00               	movlw	0
  3448  000936  6EDF               	movwf	indf2,c
  3449                           
  3450                           ;outputs.c: 80: global_leds[pos][3] = 0;
  3451  000938  5003               	movf	changeColor@pos,w,c
  3452  00093A  0D04               	mullw	4
  3453  00093C  0E03               	movlw	3
  3454  00093E  26F3               	addwf	prodl,f,c
  3455  000940  0E00               	movlw	0
  3456  000942  22F4               	addwfc	prodh,f,c
  3457  000944  0E91               	movlw	low _global_leds
  3458  000946  24F3               	addwf	prodl,w,c
  3459  000948  6ED9               	movwf	fsr2l,c
  3460  00094A  0E00               	movlw	high _global_leds
  3461  00094C  20F4               	addwfc	prodh,w,c
  3462  00094E  6EDA               	movwf	fsr2h,c
  3463  000950  0E00               	movlw	0
  3464  000952  6EDF               	movwf	indf2,c
  3465                           
  3466                           ;outputs.c: 81: break;
  3467  000954  0012               	return	
  3468  000956                     l3367:
  3469                           
  3470                           ;outputs.c: 84: global_leds[pos][1] = 1;
  3471  000956  5003               	movf	changeColor@pos,w,c
  3472  000958  0D04               	mullw	4
  3473  00095A  0E01               	movlw	1
  3474  00095C  26F3               	addwf	prodl,f,c
  3475  00095E  0E00               	movlw	0
  3476  000960  22F4               	addwfc	prodh,f,c
  3477  000962  0E91               	movlw	low _global_leds
  3478  000964  24F3               	addwf	prodl,w,c
  3479  000966  6ED9               	movwf	fsr2l,c
  3480  000968  0E00               	movlw	high _global_leds
  3481  00096A  20F4               	addwfc	prodh,w,c
  3482  00096C  6EDA               	movwf	fsr2h,c
  3483  00096E  0E01               	movlw	1
  3484  000970  6EDF               	movwf	indf2,c
  3485                           
  3486                           ;outputs.c: 85: global_leds[pos][2] = 0;
  3487  000972  5003               	movf	changeColor@pos,w,c
  3488  000974  0D04               	mullw	4
  3489  000976  0E02               	movlw	2
  3490  000978  26F3               	addwf	prodl,f,c
  3491  00097A  0E00               	movlw	0
  3492  00097C  22F4               	addwfc	prodh,f,c
  3493  00097E  0E91               	movlw	low _global_leds
  3494  000980  24F3               	addwf	prodl,w,c
  3495  000982  6ED9               	movwf	fsr2l,c
  3496  000984  0E00               	movlw	high _global_leds
  3497  000986  20F4               	addwfc	prodh,w,c
  3498  000988  6EDA               	movwf	fsr2h,c
  3499  00098A  0E00               	movlw	0
  3500  00098C  6EDF               	movwf	indf2,c
  3501                           
  3502                           ;outputs.c: 86: global_leds[pos][3] = 0;
  3503  00098E  5003               	movf	changeColor@pos,w,c
  3504  000990  0D04               	mullw	4
  3505  000992  0E03               	movlw	3
  3506  000994  26F3               	addwf	prodl,f,c
  3507  000996  0E00               	movlw	0
  3508  000998  22F4               	addwfc	prodh,f,c
  3509  00099A  0E91               	movlw	low _global_leds
  3510  00099C  24F3               	addwf	prodl,w,c
  3511  00099E  6ED9               	movwf	fsr2l,c
  3512  0009A0  0E00               	movlw	high _global_leds
  3513  0009A2  20F4               	addwfc	prodh,w,c
  3514  0009A4  6EDA               	movwf	fsr2h,c
  3515  0009A6  0E00               	movlw	0
  3516  0009A8  6EDF               	movwf	indf2,c
  3517                           
  3518                           ;outputs.c: 87: break;
  3519  0009AA  0012               	return	
  3520  0009AC                     l3369:
  3521                           
  3522                           ;outputs.c: 90: global_leds[pos][1] = 0;
  3523  0009AC  5003               	movf	changeColor@pos,w,c
  3524  0009AE  0D04               	mullw	4
  3525  0009B0  0E01               	movlw	1
  3526  0009B2  26F3               	addwf	prodl,f,c
  3527  0009B4  0E00               	movlw	0
  3528  0009B6  22F4               	addwfc	prodh,f,c
  3529  0009B8  0E91               	movlw	low _global_leds
  3530  0009BA  24F3               	addwf	prodl,w,c
  3531  0009BC  6ED9               	movwf	fsr2l,c
  3532  0009BE  0E00               	movlw	high _global_leds
  3533  0009C0  20F4               	addwfc	prodh,w,c
  3534  0009C2  6EDA               	movwf	fsr2h,c
  3535  0009C4  0E00               	movlw	0
  3536  0009C6  6EDF               	movwf	indf2,c
  3537                           
  3538                           ;outputs.c: 91: global_leds[pos][2] = 1;
  3539  0009C8  5003               	movf	changeColor@pos,w,c
  3540  0009CA  0D04               	mullw	4
  3541  0009CC  0E02               	movlw	2
  3542  0009CE  26F3               	addwf	prodl,f,c
  3543  0009D0  0E00               	movlw	0
  3544  0009D2  22F4               	addwfc	prodh,f,c
  3545  0009D4  0E91               	movlw	low _global_leds
  3546  0009D6  24F3               	addwf	prodl,w,c
  3547  0009D8  6ED9               	movwf	fsr2l,c
  3548  0009DA  0E00               	movlw	high _global_leds
  3549  0009DC  20F4               	addwfc	prodh,w,c
  3550  0009DE  6EDA               	movwf	fsr2h,c
  3551  0009E0  0E01               	movlw	1
  3552  0009E2  6EDF               	movwf	indf2,c
  3553                           
  3554                           ;outputs.c: 92: global_leds[pos][3] = 0;
  3555  0009E4  5003               	movf	changeColor@pos,w,c
  3556  0009E6  0D04               	mullw	4
  3557  0009E8  0E03               	movlw	3
  3558  0009EA  26F3               	addwf	prodl,f,c
  3559  0009EC  0E00               	movlw	0
  3560  0009EE  22F4               	addwfc	prodh,f,c
  3561  0009F0  0E91               	movlw	low _global_leds
  3562  0009F2  24F3               	addwf	prodl,w,c
  3563  0009F4  6ED9               	movwf	fsr2l,c
  3564  0009F6  0E00               	movlw	high _global_leds
  3565  0009F8  20F4               	addwfc	prodh,w,c
  3566  0009FA  6EDA               	movwf	fsr2h,c
  3567  0009FC  0E00               	movlw	0
  3568  0009FE  6EDF               	movwf	indf2,c
  3569                           
  3570                           ;outputs.c: 93: break;
  3571  000A00  0012               	return	
  3572  000A02                     l3371:
  3573                           
  3574                           ;outputs.c: 96: global_leds[pos][1] = 0;
  3575  000A02  5003               	movf	changeColor@pos,w,c
  3576  000A04  0D04               	mullw	4
  3577  000A06  0E01               	movlw	1
  3578  000A08  26F3               	addwf	prodl,f,c
  3579  000A0A  0E00               	movlw	0
  3580  000A0C  22F4               	addwfc	prodh,f,c
  3581  000A0E  0E91               	movlw	low _global_leds
  3582  000A10  24F3               	addwf	prodl,w,c
  3583  000A12  6ED9               	movwf	fsr2l,c
  3584  000A14  0E00               	movlw	high _global_leds
  3585  000A16  20F4               	addwfc	prodh,w,c
  3586  000A18  6EDA               	movwf	fsr2h,c
  3587  000A1A  0E00               	movlw	0
  3588  000A1C  6EDF               	movwf	indf2,c
  3589                           
  3590                           ;outputs.c: 97: global_leds[pos][2] = 0;
  3591  000A1E  5003               	movf	changeColor@pos,w,c
  3592  000A20  0D04               	mullw	4
  3593  000A22  0E02               	movlw	2
  3594  000A24  26F3               	addwf	prodl,f,c
  3595  000A26  0E00               	movlw	0
  3596  000A28  22F4               	addwfc	prodh,f,c
  3597  000A2A  0E91               	movlw	low _global_leds
  3598  000A2C  24F3               	addwf	prodl,w,c
  3599  000A2E  6ED9               	movwf	fsr2l,c
  3600  000A30  0E00               	movlw	high _global_leds
  3601  000A32  20F4               	addwfc	prodh,w,c
  3602  000A34  6EDA               	movwf	fsr2h,c
  3603  000A36  0E00               	movlw	0
  3604  000A38  6EDF               	movwf	indf2,c
  3605                           
  3606                           ;outputs.c: 98: global_leds[pos][3] = 1;
  3607  000A3A  5003               	movf	changeColor@pos,w,c
  3608  000A3C  0D04               	mullw	4
  3609  000A3E  0E03               	movlw	3
  3610  000A40  26F3               	addwf	prodl,f,c
  3611  000A42  0E00               	movlw	0
  3612  000A44  22F4               	addwfc	prodh,f,c
  3613  000A46  0E91               	movlw	low _global_leds
  3614  000A48  24F3               	addwf	prodl,w,c
  3615  000A4A  6ED9               	movwf	fsr2l,c
  3616  000A4C  0E00               	movlw	high _global_leds
  3617  000A4E  20F4               	addwfc	prodh,w,c
  3618  000A50  6EDA               	movwf	fsr2h,c
  3619  000A52  0E01               	movlw	1
  3620  000A54  6EDF               	movwf	indf2,c
  3621                           
  3622                           ;outputs.c: 99: break;
  3623  000A56  0012               	return	
  3624  000A58                     l3373:
  3625                           
  3626                           ;outputs.c: 102: global_leds[pos][1] = 1;
  3627  000A58  5003               	movf	changeColor@pos,w,c
  3628  000A5A  0D04               	mullw	4
  3629  000A5C  0E01               	movlw	1
  3630  000A5E  26F3               	addwf	prodl,f,c
  3631  000A60  0E00               	movlw	0
  3632  000A62  22F4               	addwfc	prodh,f,c
  3633  000A64  0E91               	movlw	low _global_leds
  3634  000A66  24F3               	addwf	prodl,w,c
  3635  000A68  6ED9               	movwf	fsr2l,c
  3636  000A6A  0E00               	movlw	high _global_leds
  3637  000A6C  20F4               	addwfc	prodh,w,c
  3638  000A6E  6EDA               	movwf	fsr2h,c
  3639  000A70  0E01               	movlw	1
  3640  000A72  6EDF               	movwf	indf2,c
  3641                           
  3642                           ;outputs.c: 103: global_leds[pos][2] = 0;
  3643  000A74  5003               	movf	changeColor@pos,w,c
  3644  000A76  0D04               	mullw	4
  3645  000A78  0E02               	movlw	2
  3646  000A7A  26F3               	addwf	prodl,f,c
  3647  000A7C  0E00               	movlw	0
  3648  000A7E  22F4               	addwfc	prodh,f,c
  3649  000A80  0E91               	movlw	low _global_leds
  3650  000A82  24F3               	addwf	prodl,w,c
  3651  000A84  6ED9               	movwf	fsr2l,c
  3652  000A86  0E00               	movlw	high _global_leds
  3653  000A88  20F4               	addwfc	prodh,w,c
  3654  000A8A  6EDA               	movwf	fsr2h,c
  3655  000A8C  0E00               	movlw	0
  3656  000A8E  6EDF               	movwf	indf2,c
  3657                           
  3658                           ;outputs.c: 104: global_leds[pos][3] = 1;
  3659  000A90  5003               	movf	changeColor@pos,w,c
  3660  000A92  0D04               	mullw	4
  3661  000A94  0E03               	movlw	3
  3662  000A96  26F3               	addwf	prodl,f,c
  3663  000A98  0E00               	movlw	0
  3664  000A9A  22F4               	addwfc	prodh,f,c
  3665  000A9C  0E91               	movlw	low _global_leds
  3666  000A9E  24F3               	addwf	prodl,w,c
  3667  000AA0  6ED9               	movwf	fsr2l,c
  3668  000AA2  0E00               	movlw	high _global_leds
  3669  000AA4  20F4               	addwfc	prodh,w,c
  3670  000AA6  6EDA               	movwf	fsr2h,c
  3671  000AA8  0E01               	movlw	1
  3672  000AAA  6EDF               	movwf	indf2,c
  3673                           
  3674                           ;outputs.c: 105: break;
  3675  000AAC  0012               	return	
  3676  000AAE                     l3375:
  3677                           
  3678                           ;outputs.c: 108: global_leds[pos][1] = 0;
  3679  000AAE  5003               	movf	changeColor@pos,w,c
  3680  000AB0  0D04               	mullw	4
  3681  000AB2  0E01               	movlw	1
  3682  000AB4  26F3               	addwf	prodl,f,c
  3683  000AB6  0E00               	movlw	0
  3684  000AB8  22F4               	addwfc	prodh,f,c
  3685  000ABA  0E91               	movlw	low _global_leds
  3686  000ABC  24F3               	addwf	prodl,w,c
  3687  000ABE  6ED9               	movwf	fsr2l,c
  3688  000AC0  0E00               	movlw	high _global_leds
  3689  000AC2  20F4               	addwfc	prodh,w,c
  3690  000AC4  6EDA               	movwf	fsr2h,c
  3691  000AC6  0E00               	movlw	0
  3692  000AC8  6EDF               	movwf	indf2,c
  3693                           
  3694                           ;outputs.c: 109: global_leds[pos][2] = 1;
  3695  000ACA  5003               	movf	changeColor@pos,w,c
  3696  000ACC  0D04               	mullw	4
  3697  000ACE  0E02               	movlw	2
  3698  000AD0  26F3               	addwf	prodl,f,c
  3699  000AD2  0E00               	movlw	0
  3700  000AD4  22F4               	addwfc	prodh,f,c
  3701  000AD6  0E91               	movlw	low _global_leds
  3702  000AD8  24F3               	addwf	prodl,w,c
  3703  000ADA  6ED9               	movwf	fsr2l,c
  3704  000ADC  0E00               	movlw	high _global_leds
  3705  000ADE  20F4               	addwfc	prodh,w,c
  3706  000AE0  6EDA               	movwf	fsr2h,c
  3707  000AE2  0E01               	movlw	1
  3708  000AE4  6EDF               	movwf	indf2,c
  3709                           
  3710                           ;outputs.c: 110: global_leds[pos][3] = 1;
  3711  000AE6  5003               	movf	changeColor@pos,w,c
  3712  000AE8  0D04               	mullw	4
  3713  000AEA  0E03               	movlw	3
  3714  000AEC  26F3               	addwf	prodl,f,c
  3715  000AEE  0E00               	movlw	0
  3716  000AF0  22F4               	addwfc	prodh,f,c
  3717  000AF2  0E91               	movlw	low _global_leds
  3718  000AF4  24F3               	addwf	prodl,w,c
  3719  000AF6  6ED9               	movwf	fsr2l,c
  3720  000AF8  0E00               	movlw	high _global_leds
  3721  000AFA  20F4               	addwfc	prodh,w,c
  3722  000AFC  6EDA               	movwf	fsr2h,c
  3723  000AFE  0E01               	movlw	1
  3724  000B00  6EDF               	movwf	indf2,c
  3725                           
  3726                           ;outputs.c: 111: break;
  3727  000B02  0012               	return	
  3728  000B04                     l3377:
  3729                           
  3730                           ;outputs.c: 114: global_leds[pos][1] = 1;
  3731  000B04  5003               	movf	changeColor@pos,w,c
  3732  000B06  0D04               	mullw	4
  3733  000B08  0E01               	movlw	1
  3734  000B0A  26F3               	addwf	prodl,f,c
  3735  000B0C  0E00               	movlw	0
  3736  000B0E  22F4               	addwfc	prodh,f,c
  3737  000B10  0E91               	movlw	low _global_leds
  3738  000B12  24F3               	addwf	prodl,w,c
  3739  000B14  6ED9               	movwf	fsr2l,c
  3740  000B16  0E00               	movlw	high _global_leds
  3741  000B18  20F4               	addwfc	prodh,w,c
  3742  000B1A  6EDA               	movwf	fsr2h,c
  3743  000B1C  0E01               	movlw	1
  3744  000B1E  6EDF               	movwf	indf2,c
  3745                           
  3746                           ;outputs.c: 115: global_leds[pos][2] = 1;
  3747  000B20  5003               	movf	changeColor@pos,w,c
  3748  000B22  0D04               	mullw	4
  3749  000B24  0E02               	movlw	2
  3750  000B26  26F3               	addwf	prodl,f,c
  3751  000B28  0E00               	movlw	0
  3752  000B2A  22F4               	addwfc	prodh,f,c
  3753  000B2C  0E91               	movlw	low _global_leds
  3754  000B2E  24F3               	addwf	prodl,w,c
  3755  000B30  6ED9               	movwf	fsr2l,c
  3756  000B32  0E00               	movlw	high _global_leds
  3757  000B34  20F4               	addwfc	prodh,w,c
  3758  000B36  6EDA               	movwf	fsr2h,c
  3759  000B38  0E01               	movlw	1
  3760  000B3A  6EDF               	movwf	indf2,c
  3761                           
  3762                           ;outputs.c: 116: global_leds[pos][3] = 0;
  3763  000B3C  5003               	movf	changeColor@pos,w,c
  3764  000B3E  0D04               	mullw	4
  3765  000B40  0E03               	movlw	3
  3766  000B42  26F3               	addwf	prodl,f,c
  3767  000B44  0E00               	movlw	0
  3768  000B46  22F4               	addwfc	prodh,f,c
  3769  000B48  0E91               	movlw	low _global_leds
  3770  000B4A  24F3               	addwf	prodl,w,c
  3771  000B4C  6ED9               	movwf	fsr2l,c
  3772  000B4E  0E00               	movlw	high _global_leds
  3773  000B50  20F4               	addwfc	prodh,w,c
  3774  000B52  6EDA               	movwf	fsr2h,c
  3775  000B54  0E00               	movlw	0
  3776  000B56  6EDF               	movwf	indf2,c
  3777                           
  3778                           ;outputs.c: 117: break;
  3779  000B58  0012               	return	
  3780  000B5A                     l3379:
  3781                           
  3782                           ;outputs.c: 120: global_leds[pos][1] = 1;
  3783  000B5A  5003               	movf	changeColor@pos,w,c
  3784  000B5C  0D04               	mullw	4
  3785  000B5E  0E01               	movlw	1
  3786  000B60  26F3               	addwf	prodl,f,c
  3787  000B62  0E00               	movlw	0
  3788  000B64  22F4               	addwfc	prodh,f,c
  3789  000B66  0E91               	movlw	low _global_leds
  3790  000B68  24F3               	addwf	prodl,w,c
  3791  000B6A  6ED9               	movwf	fsr2l,c
  3792  000B6C  0E00               	movlw	high _global_leds
  3793  000B6E  20F4               	addwfc	prodh,w,c
  3794  000B70  6EDA               	movwf	fsr2h,c
  3795  000B72  0E01               	movlw	1
  3796  000B74  6EDF               	movwf	indf2,c
  3797                           
  3798                           ;outputs.c: 121: global_leds[pos][2] = 1;
  3799  000B76  5003               	movf	changeColor@pos,w,c
  3800  000B78  0D04               	mullw	4
  3801  000B7A  0E02               	movlw	2
  3802  000B7C  26F3               	addwf	prodl,f,c
  3803  000B7E  0E00               	movlw	0
  3804  000B80  22F4               	addwfc	prodh,f,c
  3805  000B82  0E91               	movlw	low _global_leds
  3806  000B84  24F3               	addwf	prodl,w,c
  3807  000B86  6ED9               	movwf	fsr2l,c
  3808  000B88  0E00               	movlw	high _global_leds
  3809  000B8A  20F4               	addwfc	prodh,w,c
  3810  000B8C  6EDA               	movwf	fsr2h,c
  3811  000B8E  0E01               	movlw	1
  3812  000B90  6EDF               	movwf	indf2,c
  3813                           
  3814                           ;outputs.c: 122: global_leds[pos][3] = 1;
  3815  000B92  5003               	movf	changeColor@pos,w,c
  3816  000B94  0D04               	mullw	4
  3817  000B96  0E03               	movlw	3
  3818  000B98  26F3               	addwf	prodl,f,c
  3819  000B9A  0E00               	movlw	0
  3820  000B9C  22F4               	addwfc	prodh,f,c
  3821  000B9E  0E91               	movlw	low _global_leds
  3822  000BA0  24F3               	addwf	prodl,w,c
  3823  000BA2  6ED9               	movwf	fsr2l,c
  3824  000BA4  0E00               	movlw	high _global_leds
  3825  000BA6  20F4               	addwfc	prodh,w,c
  3826  000BA8  6EDA               	movwf	fsr2h,c
  3827  000BAA  0E01               	movlw	1
  3828  000BAC  6EDF               	movwf	indf2,c
  3829                           
  3830                           ;outputs.c: 124: }
  3831                           
  3832                           ;outputs.c: 123: break;
  3833  000BAE  0012               	return	
  3834  000BB0                     l3383:
  3835  000BB0  5001               	movf	changeColor@color,w,c
  3836                           
  3837                           ; Switch size 1, requested type "space"
  3838                           ; Number of cases is 8, Range of values is 0 to 7
  3839                           ; switch strategies available:
  3840                           ; Name         Instructions Cycles
  3841                           ; simple_byte           25    13 (average)
  3842                           ;	Chosen strategy is simple_byte
  3843  000BB2  0A00               	xorlw	0	; case 0
  3844  000BB4  B4D8               	btfsc	status,2,c
  3845  000BB6  D69A               	goto	l3365
  3846  000BB8  0A01               	xorlw	1	; case 1
  3847  000BBA  B4D8               	btfsc	status,2,c
  3848  000BBC  D6CC               	goto	l3367
  3849  000BBE  0A03               	xorlw	3	; case 2
  3850  000BC0  B4D8               	btfsc	status,2,c
  3851  000BC2  D6F4               	goto	l3369
  3852  000BC4  0A01               	xorlw	1	; case 3
  3853  000BC6  B4D8               	btfsc	status,2,c
  3854  000BC8  D71C               	goto	l3371
  3855  000BCA  0A07               	xorlw	7	; case 4
  3856  000BCC  B4D8               	btfsc	status,2,c
  3857  000BCE  D744               	goto	l3373
  3858  000BD0  0A01               	xorlw	1	; case 5
  3859  000BD2  B4D8               	btfsc	status,2,c
  3860  000BD4  D76C               	goto	l3375
  3861  000BD6  0A03               	xorlw	3	; case 6
  3862  000BD8  B4D8               	btfsc	status,2,c
  3863  000BDA  D794               	goto	l3377
  3864  000BDC  0A01               	xorlw	1	; case 7
  3865  000BDE  A4D8               	btfss	status,2,c
  3866  000BE0  0012               	return	
  3867  000BE2  D7BB               	goto	l3379
  3868  000BE4                     __end_of_changeColor:
  3869                           	opt stack 0
  3870                           tblptru	equ	0xFF8
  3871                           tblptrh	equ	0xFF7
  3872                           tblptrl	equ	0xFF6
  3873                           tablat	equ	0xFF5
  3874                           prodh	equ	0xFF4
  3875                           prodl	equ	0xFF3
  3876                           postinc0	equ	0xFEE
  3877                           wreg	equ	0xFE8
  3878                           indf1	equ	0xFE7
  3879                           postinc1	equ	0xFE6
  3880                           postdec1	equ	0xFE5
  3881                           fsr1h	equ	0xFE2
  3882                           fsr1l	equ	0xFE1
  3883                           indf2	equ	0xFDF
  3884                           postinc2	equ	0xFDE
  3885                           fsr2h	equ	0xFDA
  3886                           fsr2l	equ	0xFD9
  3887                           status	equ	0xFD8
  3888                           
  3889 ;; *************** function _delayMs *****************
  3890 ;; Defined at:
  3891 ;;		line 110 in file "system.c"
  3892 ;; Parameters:    Size  Location     Type
  3893 ;;  x               1    wreg     unsigned char 
  3894 ;; Auto vars:     Size  Location     Type
  3895 ;;  x               1    3[COMRAM] unsigned char 
  3896 ;;  i               2    4[COMRAM] int 
  3897 ;; Return value:  Size  Location     Type
  3898 ;;                  1    wreg      void 
  3899 ;; Registers used:
  3900 ;;		wreg, status,2, status,0, cstack
  3901 ;; Tracked objects:
  3902 ;;		On entry : 0/0
  3903 ;;		On exit  : 0/0
  3904 ;;		Unchanged: 0/0
  3905 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  3906 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  3907 ;;      Locals:         3       0       0       0       0       0       0       0       0       0
  3908 ;;      Temps:          3       0       0       0       0       0       0       0       0       0
  3909 ;;      Totals:         6       0       0       0       0       0       0       0       0       0
  3910 ;;Total ram usage:        6 bytes
  3911 ;; Hardware stack levels used:    1
  3912 ;; This function calls:
  3913 ;;		Nothing
  3914 ;; This function is called by:
  3915 ;;		_ledsIntro
  3916 ;;		_blinkLedAsync
  3917 ;; This function uses a non-reentrant model
  3918 ;;
  3919                           
  3920                           	psect	text16
  3921  002750                     __ptext16:
  3922                           	opt stack 0
  3923  002750                     _delayMs:
  3924                           	opt stack 27
  3925                           
  3926                           ;incstack = 0
  3927                           ;delayMs@x stored from wreg
  3928  002750  6E04               	movwf	delayMs@x,c
  3929                           
  3930                           ;system.c: 112: for (int i = 0; i < x; i++) {
  3931  002752  0E00               	movlw	0
  3932  002754  6E06               	movwf	delayMs@i+1,c
  3933  002756  0E00               	movlw	0
  3934  002758  6E05               	movwf	delayMs@i,c
  3935  00275A  D00A               	goto	l3427
  3936  00275C                     l3423:
  3937                           
  3938                           ;system.c: 113: _delay((unsigned long)((1)*(48000000/4000.0)));
  3939  00275C  0E10               	movlw	16
  3940  00275E  6E01               	movwf	??_delayMs& (0+255),c
  3941  002760  0E94               	movlw	148
  3942  002762                     u3677:
  3943  002762  2EE8               	decfsz	wreg,f,c
  3944  002764  D7FE               	goto	u3677
  3945  002766  2E01               	decfsz	??_delayMs& (0+255),f,c
  3946  002768  D7FC               	goto	u3677
  3947  00276A  D000               	nop2	
  3948  00276C  4A05               	infsnz	delayMs@i,f,c
  3949  00276E  2A06               	incf	delayMs@i+1,f,c
  3950  002770                     l3427:
  3951  002770  5004               	movf	delayMs@x,w,c
  3952  002772  6E01               	movwf	??_delayMs& (0+255),c
  3953  002774  6A02               	clrf	(??_delayMs+1)& (0+255),c
  3954  002776  5001               	movf	??_delayMs,w,c
  3955  002778  5C05               	subwf	delayMs@i,w,c
  3956  00277A  5006               	movf	delayMs@i+1,w,c
  3957  00277C  0A80               	xorlw	128
  3958  00277E  6E03               	movwf	(??_delayMs+2)& (0+255),c
  3959  002780  5002               	movf	??_delayMs+1,w,c
  3960  002782  0A80               	xorlw	128
  3961  002784  5803               	subwfb	(??_delayMs+2)& (0+255),w,c
  3962  002786  B0D8               	btfsc	status,0,c
  3963  002788  0012               	return	
  3964  00278A  D7E8               	goto	l3423
  3965  00278C                     __end_of_delayMs:
  3966                           	opt stack 0
  3967                           tblptru	equ	0xFF8
  3968                           tblptrh	equ	0xFF7
  3969                           tblptrl	equ	0xFF6
  3970                           tablat	equ	0xFF5
  3971                           prodh	equ	0xFF4
  3972                           prodl	equ	0xFF3
  3973                           postinc0	equ	0xFEE
  3974                           wreg	equ	0xFE8
  3975                           indf1	equ	0xFE7
  3976                           postinc1	equ	0xFE6
  3977                           postdec1	equ	0xFE5
  3978                           fsr1h	equ	0xFE2
  3979                           fsr1l	equ	0xFE1
  3980                           indf2	equ	0xFDF
  3981                           postinc2	equ	0xFDE
  3982                           fsr2h	equ	0xFDA
  3983                           fsr2l	equ	0xFD9
  3984                           status	equ	0xFD8
  3985                           
  3986 ;; *************** function _USBDeviceTasks *****************
  3987 ;; Defined at:
  3988 ;;		line 477 in file "usb/usb_device.c"
  3989 ;; Parameters:    Size  Location     Type
  3990 ;;		None
  3991 ;; Auto vars:     Size  Location     Type
  3992 ;;  i               1   27[COMRAM] unsigned char 
  3993 ;; Return value:  Size  Location     Type
  3994 ;;                  1    wreg      void 
  3995 ;; Registers used:
  3996 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru, prodl, prodh, cstack
  3997 ;; Tracked objects:
  3998 ;;		On entry : 0/0
  3999 ;;		On exit  : 0/0
  4000 ;;		Unchanged: 0/0
  4001 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  4002 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  4003 ;;      Locals:         1       0       0       0       0       0       0       0       0       0
  4004 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  4005 ;;      Totals:         1       0       0       0       0       0       0       0       0       0
  4006 ;;Total ram usage:        1 bytes
  4007 ;; Hardware stack levels used:    1
  4008 ;; Hardware stack levels required when called:    8
  4009 ;; This function calls:
  4010 ;;		_USBCtrlEPAllowStatusStage
  4011 ;;		_USBCtrlEPService
  4012 ;;		_USBDeviceInit
  4013 ;;		_USBIncrement1msInternalTimers
  4014 ;;		_USBStallHandler
  4015 ;;		_USBSuspend
  4016 ;;		_USBWakeFromSuspend
  4017 ;;		_USER_USB_CALLBACK_EVENT_HANDLER
  4018 ;; This function is called by:
  4019 ;;		_main
  4020 ;; This function uses a non-reentrant model
  4021 ;;
  4022                           
  4023                           	psect	text17
  4024  001152                     __ptext17:
  4025                           	opt stack 0
  4026  001152                     _USBDeviceTasks:
  4027                           	opt stack 22
  4028                           
  4029                           ;usb_device.c: 544: }
  4030                           ;usb_device.c: 566: if(USBDeviceState == DETACHED_STATE)
  4031                           
  4032                           ;usb_device.c: 543: return;
  4033                           
  4034                           ;usb_device.c: 542: {PIR2bits.USBIF = 0;};
  4035                           
  4036                           ;usb_device.c: 514: USBDeviceState = DETACHED_STATE;
  4037                           
  4038                           ;usb_device.c: 511: UIE = 0;
  4039                           
  4040                           ;usb_device.c: 506: {
  4041                           ;usb_device.c: 508: UCON = 0;
  4042                           
  4043                           ;usb_device.c: 479: uint8_t i;
  4044                           ;usb_device.c: 505: if (1 != 1)
  4045                           
  4046                           ;incstack = 0
  4047  001152  505A               	movf	_USBDeviceState,w,c
  4048  001154  A4D8               	btfss	status,2,c
  4049  001156  D010               	goto	l3887
  4050                           
  4051                           ;usb_device.c: 567: {
  4052                           ;usb_device.c: 569: UCON = 0;
  4053  001158  0E00               	movlw	0
  4054  00115A  6E6D               	movwf	3949,c	;volatile
  4055                           
  4056                           ;usb_device.c: 572: UIE = 0;
  4057  00115C  0E00               	movlw	0
  4058  00115E  6E69               	movwf	3945,c	;volatile
  4059                           
  4060                           ;usb_device.c: 576: { UCFG = 0x10 | 0x00 | 0x04 | 0x02; UEIE = 0x9F; UIE = 0x39 | 0x40 |
      +                           0x02; };
  4061  001160  0E16               	movlw	22
  4062  001162  6E6F               	movwf	3951,c	;volatile
  4063  001164  0E9F               	movlw	159
  4064  001166  6E6B               	movwf	3947,c	;volatile
  4065  001168  0E7B               	movlw	123
  4066  00116A  6E69               	movwf	3945,c	;volatile
  4067                           
  4068                           ;usb_device.c: 579: while(!UCONbits.USBEN){UCONbits.USBEN = 1;}
  4069  00116C  D001               	goto	l159
  4070  00116E                     l160:
  4071  00116E  866D               	bsf	3949,3,c	;volatile
  4072  001170                     l159:
  4073  001170  A66D               	btfss	3949,3,c	;volatile
  4074  001172  D7FD               	goto	l160
  4075                           
  4076                           ;usb_device.c: 582: USBDeviceState = ATTACHED_STATE;
  4077  001174  0E01               	movlw	1
  4078  001176  6E5A               	movwf	_USBDeviceState,c
  4079  001178                     l3887:
  4080                           
  4081                           ;usb_device.c: 587: }
  4082                           ;usb_device.c: 590: if(USBDeviceState == ATTACHED_STATE)
  4083  001178  045A               	decf	_USBDeviceState,w,c
  4084  00117A  B4D8               	btfsc	status,2,c
  4085                           
  4086                           ;usb_device.c: 591: {
  4087                           ;usb_device.c: 601: if(!UCONbits.SE0)
  4088  00117C  BA6D               	btfsc	3949,5,c	;volatile
  4089  00117E  D008               	goto	l3897
  4090                           
  4091                           ;usb_device.c: 602: {
  4092                           ;usb_device.c: 608: {UIR = 0;};
  4093  001180  0E00               	movlw	0
  4094  001182  6E68               	movwf	3944,c	;volatile
  4095                           
  4096                           ;usb_device.c: 612: UIE=0;
  4097  001184  0E00               	movlw	0
  4098  001186  6E69               	movwf	3945,c	;volatile
  4099                           
  4100                           ;usb_device.c: 614: UIEbits.URSTIE = 1;
  4101  001188  8069               	bsf	3945,0,c	;volatile
  4102                           
  4103                           ;usb_device.c: 615: UIEbits.IDLEIE = 1;
  4104  00118A  8869               	bsf	3945,4,c	;volatile
  4105                           
  4106                           ;usb_device.c: 616: USBDeviceState = POWERED_STATE;
  4107  00118C  0E02               	movlw	2
  4108  00118E  6E5A               	movwf	_USBDeviceState,c
  4109  001190                     l3897:
  4110                           
  4111                           ;usb_device.c: 617: }
  4112                           ;usb_device.c: 618: }
  4113                           ;usb_device.c: 634: if(UIRbits.ACTVIF && UIEbits.ACTVIE)
  4114  001190  B468               	btfsc	3944,2,c	;volatile
  4115  001192  A469               	btfss	3945,2,c	;volatile
  4116  001194  D003               	goto	l3905
  4117                           
  4118                           ;usb_device.c: 635: {
  4119                           ;usb_device.c: 636: (UIR &= 0xFB);
  4120  001196  9468               	bcf	3944,2,c	;volatile
  4121                           
  4122                           ;usb_device.c: 640: USBWakeFromSuspend();
  4123  001198  ECE4  F013         	call	_USBWakeFromSuspend	;wreg free
  4124  00119C                     l3905:
  4125                           
  4126                           ;usb_device.c: 642: }
  4127                           ;usb_device.c: 647: if(UCONbits.SUSPND==1)
  4128  00119C  A26D               	btfss	3949,1,c	;volatile
  4129  00119E  D002               	goto	l165
  4130                           
  4131                           ;usb_device.c: 648: {
  4132                           ;usb_device.c: 649: {PIR2bits.USBIF = 0;};
  4133  0011A0  9AA1               	bcf	4001,5,c	;volatile
  4134                           
  4135                           ;usb_device.c: 650: return;
  4136  0011A2  0012               	return	
  4137  0011A4                     l165:
  4138                           
  4139                           ;usb_device.c: 651: }
  4140                           ;usb_device.c: 663: if(UIRbits.URSTIF && UIEbits.URSTIE)
  4141  0011A4  B068               	btfsc	3944,0,c	;volatile
  4142  0011A6  A069               	btfss	3945,0,c	;volatile
  4143  0011A8  D005               	goto	l3917
  4144                           
  4145                           ;usb_device.c: 664: {
  4146                           ;usb_device.c: 665: USBDeviceInit();
  4147  0011AA  EC5D  F009         	call	_USBDeviceInit	;wreg free
  4148                           
  4149                           ;usb_device.c: 669: ;
  4150                           ;usb_device.c: 671: USBDeviceState = DEFAULT_STATE;
  4151  0011AE  0E04               	movlw	4
  4152  0011B0  6E5A               	movwf	_USBDeviceState,c
  4153                           
  4154                           ;usb_device.c: 681: (UIR &= 0xFE);
  4155  0011B2  9068               	bcf	3944,0,c	;volatile
  4156  0011B4                     l3917:
  4157                           
  4158                           ;usb_device.c: 682: }
  4159                           ;usb_device.c: 687: if(UIRbits.IDLEIF && UIEbits.IDLEIE)
  4160  0011B4  B868               	btfsc	3944,4,c	;volatile
  4161  0011B6  A869               	btfss	3945,4,c	;volatile
  4162  0011B8  D002               	goto	l3923
  4163                           
  4164                           ;usb_device.c: 688: {
  4165                           ;usb_device.c: 694: USBSuspend();
  4166  0011BA  EC17  F014         	call	_USBSuspend	;wreg free
  4167  0011BE                     l3923:
  4168                           
  4169                           ;usb_device.c: 696: }
  4170                           ;usb_device.c: 708: if(UIRbits.SOFIF)
  4171  0011BE  AC68               	btfss	3944,6,c	;volatile
  4172  0011C0  D01E               	goto	l3941
  4173                           
  4174                           ;usb_device.c: 709: {
  4175                           ;usb_device.c: 711: if(UIEbits.SOFIE)
  4176  0011C2  AC69               	btfss	3945,6,c	;volatile
  4177  0011C4  D00E               	goto	l3929
  4178                           
  4179                           ;usb_device.c: 712: {
  4180                           ;usb_device.c: 713: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_SOF,0,1);
  4181  0011C6  0E00               	movlw	0
  4182  0011C8  6E0E               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event+1,c
  4183  0011CA  0E73               	movlw	115
  4184  0011CC  6E0D               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event,c
  4185  0011CE  0E00               	movlw	0
  4186  0011D0  6E0F               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata,c
  4187  0011D2  0E00               	movlw	0
  4188  0011D4  6E10               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata+1,c
  4189  0011D6  0E00               	movlw	0
  4190  0011D8  6E12               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size+1,c
  4191  0011DA  0E01               	movlw	1
  4192  0011DC  6E11               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size,c
  4193  0011DE  EC9E  F012         	call	_USER_USB_CALLBACK_EVENT_HANDLER	;wreg free
  4194  0011E2                     l3929:
  4195                           
  4196                           ;usb_device.c: 714: }
  4197                           ;usb_device.c: 715: (UIR &= 0xBF);
  4198  0011E2  9C68               	bcf	3944,6,c	;volatile
  4199                           
  4200                           ;usb_device.c: 718: USBIncrement1msInternalTimers();
  4201  0011E4  EC9E  F014         	call	_USBIncrement1msInternalTimers	;wreg free
  4202                           
  4203                           ;usb_device.c: 735: if(USBStatusStageTimeoutCounter != 0u)
  4204  0011E8  0100               	movlb	0	; () banked
  4205  0011EA  51F2               	movf	_USBStatusStageTimeoutCounter& (0+255),w,b
  4206  0011EC  B4D8               	btfsc	status,2,c
  4207  0011EE  D002               	goto	l3937
  4208                           
  4209                           ; BSR set to: 0
  4210                           ;usb_device.c: 736: {
  4211                           ;usb_device.c: 737: USBStatusStageTimeoutCounter--;
  4212  0011F0  0100               	movlb	0	; () banked
  4213  0011F2  07F2               	decf	_USBStatusStageTimeoutCounter& (0+255),f,b
  4214  0011F4                     l3937:
  4215                           
  4216                           ; BSR set to: 0
  4217                           ;usb_device.c: 738: }
  4218                           ;usb_device.c: 744: if(USBStatusStageTimeoutCounter == 0)
  4219  0011F4  0100               	movlb	0	; () banked
  4220  0011F6  51F2               	movf	_USBStatusStageTimeoutCounter& (0+255),w,b
  4221  0011F8  B4D8               	btfsc	status,2,c
  4222                           
  4223                           ; BSR set to: 0
  4224                           ;usb_device.c: 745: {
  4225                           ;usb_device.c: 746: USBCtrlEPAllowStatusStage();
  4226  0011FA  ECFE  F00C         	call	_USBCtrlEPAllowStatusStage	;wreg free
  4227  0011FE                     l3941:
  4228                           
  4229                           ;usb_device.c: 747: }
  4230                           ;usb_device.c: 749: }
  4231                           ;usb_device.c: 751: if(UIRbits.STALLIF && UIEbits.STALLIE)
  4232  0011FE  BA68               	btfsc	3944,5,c	;volatile
  4233  001200  AA69               	btfss	3945,5,c	;volatile
  4234  001202  D002               	goto	l3947
  4235                           
  4236                           ;usb_device.c: 752: {
  4237                           ;usb_device.c: 753: USBStallHandler();
  4238  001204  EC47  F013         	call	_USBStallHandler	;wreg free
  4239  001208                     l3947:
  4240                           
  4241                           ;usb_device.c: 754: }
  4242                           ;usb_device.c: 756: if(UIRbits.UERRIF && UIEbits.UERRIE)
  4243  001208  B268               	btfsc	3944,1,c	;volatile
  4244  00120A  A269               	btfss	3945,1,c	;volatile
  4245  00120C  D00F               	goto	l3955
  4246                           
  4247                           ;usb_device.c: 757: {
  4248                           ;usb_device.c: 758: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_BUS_ERROR,0,1);
  4249  00120E  0E7F               	movlw	127
  4250  001210  6E0E               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event+1,c
  4251  001212  680D               	setf	USER_USB_CALLBACK_EVENT_HANDLER@event,c
  4252  001214  0E00               	movlw	0
  4253  001216  6E0F               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata,c
  4254  001218  0E00               	movlw	0
  4255  00121A  6E10               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata+1,c
  4256  00121C  0E00               	movlw	0
  4257  00121E  6E12               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size+1,c
  4258  001220  0E01               	movlw	1
  4259  001222  6E11               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size,c
  4260  001224  EC9E  F012         	call	_USER_USB_CALLBACK_EVENT_HANDLER	;wreg free
  4261                           
  4262                           ;usb_device.c: 759: {UEIR = 0;};
  4263  001228  0E00               	movlw	0
  4264  00122A  6E6A               	movwf	3946,c	;volatile
  4265  00122C                     l3955:
  4266                           
  4267                           ;usb_device.c: 767: }
  4268                           ;usb_device.c: 774: if(USBDeviceState < DEFAULT_STATE)
  4269  00122C  0E04               	movlw	4
  4270  00122E  605A               	cpfslt	_USBDeviceState,c
  4271  001230  D002               	goto	l174
  4272                           
  4273                           ;usb_device.c: 775: {
  4274                           ;usb_device.c: 776: {PIR2bits.USBIF = 0;};
  4275  001232  9AA1               	bcf	4001,5,c	;volatile
  4276                           
  4277                           ;usb_device.c: 777: return;
  4278  001234  0012               	return	
  4279  001236                     l174:
  4280                           
  4281                           ;usb_device.c: 778: }
  4282                           ;usb_device.c: 783: if(UIEbits.TRNIE)
  4283  001236  A669               	btfss	3945,3,c	;volatile
  4284  001238  D03E               	goto	l175
  4285                           
  4286                           ;usb_device.c: 784: {
  4287                           ;usb_device.c: 785: for(i = 0; i < 4u; i++)
  4288  00123A  0E00               	movlw	0
  4289  00123C  6E1C               	movwf	USBDeviceTasks@i,c
  4290  00123E                     l3961:
  4291  00123E  0E03               	movlw	3
  4292  001240  641C               	cpfsgt	USBDeviceTasks@i,c
  4293  001242  D001               	goto	l176
  4294  001244  D038               	goto	l175
  4295  001246                     l176:
  4296                           
  4297                           ;usb_device.c: 786: {
  4298                           ;usb_device.c: 787: if(UIRbits.TRNIF)
  4299  001246  A668               	btfss	3944,3,c	;volatile
  4300  001248  D036               	goto	l175
  4301                           
  4302                           ;usb_device.c: 788: {
  4303                           ;usb_device.c: 790: USTATcopy.Val = USTAT;
  4304  00124A  CF6C F05F          	movff	3948,_USTATcopy	;volatile
  4305                           
  4306                           ;usb_device.c: 791: endpoint_number = USTATcopy.endpoint_number;
  4307  00124E  305F               	rrcf	_USTATcopy,w,c
  4308  001250  32E8               	rrcf	wreg,f,c
  4309  001252  32E8               	rrcf	wreg,f,c
  4310  001254  0B0F               	andlw	15
  4311  001256  0100               	movlb	0	; () banked
  4312  001258  6FF6               	movwf	_endpoint_number& (0+255),b
  4313                           
  4314                           ; BSR set to: 0
  4315                           ;usb_device.c: 793: (UIR &= 0xF7);
  4316  00125A  9668               	bcf	3944,3,c	;volatile
  4317                           
  4318                           ; BSR set to: 0
  4319                           ;usb_device.c: 798: if(USTATcopy.direction == 0)
  4320  00125C  B45F               	btfsc	_USTATcopy,2,c
  4321  00125E  D008               	goto	l3975
  4322                           
  4323                           ; BSR set to: 0
  4324                           ;usb_device.c: 799: {
  4325                           ;usb_device.c: 800: ep_data_out[endpoint_number].bits.ping_pong_state ^= 1;
  4326  001260  0100               	movlb	0	; () banked
  4327  001262  51F6               	movf	_endpoint_number& (0+255),w,b
  4328  001264  0D01               	mullw	1
  4329  001266  0EE7               	movlw	low _ep_data_out
  4330  001268  24F3               	addwf	prodl,w,c
  4331  00126A  6ED9               	movwf	fsr2l,c
  4332  00126C  0E00               	movlw	high _ep_data_out
  4333  00126E  D007               	goto	L8
  4334  001270                     l3975:
  4335                           
  4336                           ; BSR set to: 0
  4337                           ;usb_device.c: 802: else
  4338                           ;usb_device.c: 803: {
  4339                           ;usb_device.c: 804: ep_data_in[endpoint_number].bits.ping_pong_state ^= 1;
  4340  001270  0100               	movlb	0	; () banked
  4341  001272  51F6               	movf	_endpoint_number& (0+255),w,b
  4342  001274  0D01               	mullw	1
  4343  001276  0EE5               	movlw	low _ep_data_in
  4344  001278  24F3               	addwf	prodl,w,c
  4345  00127A  6ED9               	movwf	fsr2l,c
  4346  00127C  0E00               	movlw	high _ep_data_in
  4347  00127E                     L8:
  4348  00127E  20F4               	addwfc	prodh,w,c
  4349  001280  6EDA               	movwf	fsr2h,c
  4350  001282  0100               	movlb	0	; () banked
  4351  001284  70DF               	btg	indf2,0,c
  4352                           
  4353                           ; BSR set to: 0
  4354                           ;usb_device.c: 805: }
  4355                           ;usb_device.c: 810: if(endpoint_number == 0)
  4356                           
  4357                           ; BSR set to: 0
  4358  001286  0100               	movlb	0	; () banked
  4359  001288  51F6               	movf	_endpoint_number& (0+255),w,b
  4360  00128A  0100               	movlb	0	; () banked
  4361  00128C  A4D8               	btfss	status,2,c
  4362  00128E  D003               	goto	l3981
  4363                           
  4364                           ; BSR set to: 0
  4365                           ;usb_device.c: 811: {
  4366                           ;usb_device.c: 812: USBCtrlEPService();
  4367  001290  ECCF  F00F         	call	_USBCtrlEPService	;wreg free
  4368                           
  4369                           ;usb_device.c: 813: }
  4370  001294  D00E               	goto	l3983
  4371  001296                     l3981:
  4372                           
  4373                           ;usb_device.c: 814: else
  4374                           ;usb_device.c: 815: {
  4375                           ;usb_device.c: 816: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_TRANSFER,(uint8_t*)&USTATcopy.
      +                          Val,0);
  4376  001296  0E00               	movlw	0
  4377  001298  6E0E               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event+1,c
  4378  00129A  0E72               	movlw	114
  4379  00129C  6E0D               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event,c
  4380  00129E  0E5F               	movlw	low _USTATcopy
  4381  0012A0  6E0F               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata,c
  4382  0012A2  0E00               	movlw	high _USTATcopy
  4383  0012A4  6E10               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata+1,c
  4384  0012A6  0E00               	movlw	0
  4385  0012A8  6E12               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size+1,c
  4386  0012AA  0E00               	movlw	0
  4387  0012AC  6E11               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size,c
  4388  0012AE  EC9E  F012         	call	_USER_USB_CALLBACK_EVENT_HANDLER	;wreg free
  4389  0012B2                     l3983:
  4390  0012B2  2A1C               	incf	USBDeviceTasks@i,f,c
  4391  0012B4  D7C4               	goto	l3961
  4392  0012B6                     l175:
  4393                           
  4394                           ;usb_device.c: 822: }
  4395                           ;usb_device.c: 823: }
  4396                           ;usb_device.c: 824: }
  4397                           ;usb_device.c: 826: {PIR2bits.USBIF = 0;};
  4398  0012B6  9AA1               	bcf	4001,5,c	;volatile
  4399  0012B8  0012               	return		;funcret
  4400  0012BA                     __end_of_USBDeviceTasks:
  4401                           	opt stack 0
  4402                           tblptru	equ	0xFF8
  4403                           tblptrh	equ	0xFF7
  4404                           tblptrl	equ	0xFF6
  4405                           tablat	equ	0xFF5
  4406                           prodh	equ	0xFF4
  4407                           prodl	equ	0xFF3
  4408                           postinc0	equ	0xFEE
  4409                           wreg	equ	0xFE8
  4410                           indf1	equ	0xFE7
  4411                           postinc1	equ	0xFE6
  4412                           postdec1	equ	0xFE5
  4413                           fsr1h	equ	0xFE2
  4414                           fsr1l	equ	0xFE1
  4415                           indf2	equ	0xFDF
  4416                           postinc2	equ	0xFDE
  4417                           fsr2h	equ	0xFDA
  4418                           fsr2l	equ	0xFD9
  4419                           status	equ	0xFD8
  4420                           
  4421 ;; *************** function _USBWakeFromSuspend *****************
  4422 ;; Defined at:
  4423 ;;		line 2303 in file "usb/usb_device.c"
  4424 ;; Parameters:    Size  Location     Type
  4425 ;;		None
  4426 ;; Auto vars:     Size  Location     Type
  4427 ;;		None
  4428 ;; Return value:  Size  Location     Type
  4429 ;;                  1    wreg      void 
  4430 ;; Registers used:
  4431 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  4432 ;; Tracked objects:
  4433 ;;		On entry : 0/0
  4434 ;;		On exit  : 0/0
  4435 ;;		Unchanged: 0/0
  4436 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  4437 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  4438 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  4439 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  4440 ;;      Totals:         0       0       0       0       0       0       0       0       0       0
  4441 ;;Total ram usage:        0 bytes
  4442 ;; Hardware stack levels used:    1
  4443 ;; Hardware stack levels required when called:    4
  4444 ;; This function calls:
  4445 ;;		_USER_USB_CALLBACK_EVENT_HANDLER
  4446 ;; This function is called by:
  4447 ;;		_USBDeviceTasks
  4448 ;; This function uses a non-reentrant model
  4449 ;;
  4450                           
  4451                           	psect	text18
  4452  0027C8                     __ptext18:
  4453                           	opt stack 0
  4454  0027C8                     _USBWakeFromSuspend:
  4455                           	opt stack 25
  4456                           
  4457                           ;usb_device.c: 2305: USBBusIsSuspended = 0;
  4458                           
  4459                           ;incstack = 0
  4460  0027C8  0E00               	movlw	0
  4461  0027CA  0100               	movlb	0	; () banked
  4462  0027CC  6FED               	movwf	_USBBusIsSuspended& (0+255),b
  4463                           
  4464                           ; BSR set to: 0
  4465                           ;usb_device.c: 2311: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_RESUME,0,0);
  4466  0027CE  0E00               	movlw	0
  4467  0027D0  6E0E               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event+1,c
  4468  0027D2  0E74               	movlw	116
  4469  0027D4  6E0D               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event,c
  4470  0027D6  0E00               	movlw	0
  4471  0027D8  6E0F               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata,c
  4472  0027DA  0E00               	movlw	0
  4473  0027DC  6E10               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata+1,c
  4474  0027DE  0E00               	movlw	0
  4475  0027E0  6E12               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size+1,c
  4476  0027E2  0E00               	movlw	0
  4477  0027E4  6E11               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size,c
  4478  0027E6  EC9E  F012         	call	_USER_USB_CALLBACK_EVENT_HANDLER	;wreg free
  4479                           
  4480                           ;usb_device.c: 2318: UCONbits.SUSPND = 0;
  4481  0027EA  926D               	bcf	3949,1,c	;volatile
  4482                           
  4483                           ;usb_device.c: 2323: UIEbits.ACTVIE = 0;
  4484  0027EC  9469               	bcf	3945,2,c	;volatile
  4485                           
  4486                           ;usb_device.c: 2341: while(UIRbits.ACTVIF)
  4487  0027EE  D001               	goto	l3683
  4488  0027F0                     l3681:
  4489                           
  4490                           ;usb_device.c: 2343: {
  4491                           ;usb_device.c: 2344: (UIR &= 0xFB);
  4492  0027F0  9468               	bcf	3944,2,c	;volatile
  4493  0027F2                     l3683:
  4494  0027F2  B468               	btfsc	3944,2,c	;volatile
  4495  0027F4  D7FD               	goto	l3681
  4496                           
  4497                           ;usb_device.c: 2345: }
  4498                           ;usb_device.c: 2347: USBTicksSinceSuspendEnd = 0;
  4499  0027F6  0E00               	movlw	0
  4500  0027F8  0100               	movlb	0	; () banked
  4501  0027FA  6FF3               	movwf	_USBTicksSinceSuspendEnd& (0+255),b
  4502                           
  4503                           ; BSR set to: 0
  4504  0027FC  0012               	return		;funcret
  4505  0027FE                     __end_of_USBWakeFromSuspend:
  4506                           	opt stack 0
  4507                           tblptru	equ	0xFF8
  4508                           tblptrh	equ	0xFF7
  4509                           tblptrl	equ	0xFF6
  4510                           tablat	equ	0xFF5
  4511                           prodh	equ	0xFF4
  4512                           prodl	equ	0xFF3
  4513                           postinc0	equ	0xFEE
  4514                           wreg	equ	0xFE8
  4515                           indf1	equ	0xFE7
  4516                           postinc1	equ	0xFE6
  4517                           postdec1	equ	0xFE5
  4518                           fsr1h	equ	0xFE2
  4519                           fsr1l	equ	0xFE1
  4520                           indf2	equ	0xFDF
  4521                           postinc2	equ	0xFDE
  4522                           fsr2h	equ	0xFDA
  4523                           fsr2l	equ	0xFD9
  4524                           status	equ	0xFD8
  4525                           
  4526 ;; *************** function _USBSuspend *****************
  4527 ;; Defined at:
  4528 ;;		line 2245 in file "usb/usb_device.c"
  4529 ;; Parameters:    Size  Location     Type
  4530 ;;		None
  4531 ;; Auto vars:     Size  Location     Type
  4532 ;;		None
  4533 ;; Return value:  Size  Location     Type
  4534 ;;                  1    wreg      void 
  4535 ;; Registers used:
  4536 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  4537 ;; Tracked objects:
  4538 ;;		On entry : 0/0
  4539 ;;		On exit  : 0/0
  4540 ;;		Unchanged: 0/0
  4541 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  4542 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  4543 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  4544 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  4545 ;;      Totals:         0       0       0       0       0       0       0       0       0       0
  4546 ;;Total ram usage:        0 bytes
  4547 ;; Hardware stack levels used:    1
  4548 ;; Hardware stack levels required when called:    4
  4549 ;; This function calls:
  4550 ;;		_USER_USB_CALLBACK_EVENT_HANDLER
  4551 ;; This function is called by:
  4552 ;;		_USBDeviceTasks
  4553 ;; This function uses a non-reentrant model
  4554 ;;
  4555                           
  4556                           	psect	text19
  4557  00282E                     __ptext19:
  4558                           	opt stack 0
  4559  00282E                     _USBSuspend:
  4560                           	opt stack 25
  4561                           
  4562                           ;usb_device.c: 2270: UIEbits.ACTVIE = 1;
  4563                           
  4564                           ; BSR set to: 0
  4565                           ;incstack = 0
  4566  00282E  8469               	bsf	3945,2,c	;volatile
  4567                           
  4568                           ;usb_device.c: 2271: (UIR &= 0xEF);
  4569  002830  9868               	bcf	3944,4,c	;volatile
  4570                           
  4571                           ;usb_device.c: 2274: UCONbits.SUSPND = 1;
  4572  002832  826D               	bsf	3949,1,c	;volatile
  4573                           
  4574                           ;usb_device.c: 2277: USBBusIsSuspended = 1;
  4575  002834  0E01               	movlw	1
  4576  002836  0100               	movlb	0	; () banked
  4577  002838  6FED               	movwf	_USBBusIsSuspended& (0+255),b
  4578                           
  4579                           ; BSR set to: 0
  4580                           ;usb_device.c: 2278: USBTicksSinceSuspendEnd = 0;
  4581  00283A  0E00               	movlw	0
  4582  00283C  0100               	movlb	0	; () banked
  4583  00283E  6FF3               	movwf	_USBTicksSinceSuspendEnd& (0+255),b
  4584                           
  4585                           ; BSR set to: 0
  4586                           ;usb_device.c: 2285: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_SUSPEND,0,0);
  4587  002840  0E00               	movlw	0
  4588  002842  6E0E               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event+1,c
  4589  002844  0E75               	movlw	117
  4590  002846  6E0D               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event,c
  4591  002848  0E00               	movlw	0
  4592  00284A  6E0F               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata,c
  4593  00284C  0E00               	movlw	0
  4594  00284E  6E10               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata+1,c
  4595  002850  0E00               	movlw	0
  4596  002852  6E12               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size+1,c
  4597  002854  0E00               	movlw	0
  4598  002856  6E11               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size,c
  4599  002858  EC9E  F012         	call	_USER_USB_CALLBACK_EVENT_HANDLER	;wreg free
  4600  00285C  0012               	return		;funcret
  4601  00285E                     __end_of_USBSuspend:
  4602                           	opt stack 0
  4603                           tblptru	equ	0xFF8
  4604                           tblptrh	equ	0xFF7
  4605                           tblptrl	equ	0xFF6
  4606                           tablat	equ	0xFF5
  4607                           prodh	equ	0xFF4
  4608                           prodl	equ	0xFF3
  4609                           postinc0	equ	0xFEE
  4610                           wreg	equ	0xFE8
  4611                           indf1	equ	0xFE7
  4612                           postinc1	equ	0xFE6
  4613                           postdec1	equ	0xFE5
  4614                           fsr1h	equ	0xFE2
  4615                           fsr1l	equ	0xFE1
  4616                           indf2	equ	0xFDF
  4617                           postinc2	equ	0xFDE
  4618                           fsr2h	equ	0xFDA
  4619                           fsr2l	equ	0xFD9
  4620                           status	equ	0xFD8
  4621                           
  4622 ;; *************** function _USBStallHandler *****************
  4623 ;; Defined at:
  4624 ;;		line 2202 in file "usb/usb_device.c"
  4625 ;; Parameters:    Size  Location     Type
  4626 ;;		None
  4627 ;; Auto vars:     Size  Location     Type
  4628 ;;		None
  4629 ;; Return value:  Size  Location     Type
  4630 ;;                  1    wreg      void 
  4631 ;; Registers used:
  4632 ;;		wreg, fsr2l, fsr2h, status,2, status,0
  4633 ;; Tracked objects:
  4634 ;;		On entry : 0/0
  4635 ;;		On exit  : 0/0
  4636 ;;		Unchanged: 0/0
  4637 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  4638 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  4639 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  4640 ;;      Temps:          1       0       0       0       0       0       0       0       0       0
  4641 ;;      Totals:         1       0       0       0       0       0       0       0       0       0
  4642 ;;Total ram usage:        1 bytes
  4643 ;; Hardware stack levels used:    1
  4644 ;; This function calls:
  4645 ;;		Nothing
  4646 ;; This function is called by:
  4647 ;;		_USBDeviceTasks
  4648 ;; This function uses a non-reentrant model
  4649 ;;
  4650                           
  4651                           	psect	text20
  4652  00268E                     __ptext20:
  4653                           	opt stack 0
  4654  00268E                     _USBStallHandler:
  4655                           	opt stack 29
  4656                           
  4657                           ;usb_device.c: 2214: if(UEP0bits.EPSTALL == 1)
  4658                           
  4659                           ;incstack = 0
  4660  00268E  A070               	btfss	3952,0,c	;volatile
  4661  002690  D01D               	goto	l303
  4662                           
  4663                           ;usb_device.c: 2215: {
  4664                           ;usb_device.c: 2217: if((pBDTEntryEP0OutCurrent->STAT.Val == 0x80) && (pBDTEntryIn[0]->S
      +                          TAT.Val == (0x80|0x04)))
  4665  002692  C055  FFD9         	movff	_pBDTEntryEP0OutCurrent,fsr2l
  4666  002696  C056  FFDA         	movff	_pBDTEntryEP0OutCurrent+1,fsr2h
  4667  00269A  0E80               	movlw	128
  4668  00269C  18DE               	xorwf	postinc2,w,c
  4669  00269E  A4D8               	btfss	status,2,c
  4670  0026A0  D014               	goto	l3719
  4671  0026A2  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  4672  0026A6  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  4673  0026AA  0E84               	movlw	132
  4674  0026AC  18DE               	xorwf	postinc2,w,c
  4675  0026AE  A4D8               	btfss	status,2,c
  4676  0026B0  D00C               	goto	l3719
  4677                           
  4678                           ;usb_device.c: 2218: {
  4679                           ;usb_device.c: 2220: pBDTEntryEP0OutCurrent->STAT.Val = 0x00|(0x08 & 0x08)|0x04;
  4680  0026B2  C055  FFD9         	movff	_pBDTEntryEP0OutCurrent,fsr2l
  4681  0026B6  C056  FFDA         	movff	_pBDTEntryEP0OutCurrent+1,fsr2h
  4682  0026BA  0E0C               	movlw	12
  4683  0026BC  6EDF               	movwf	indf2,c
  4684                           
  4685                           ;usb_device.c: 2221: pBDTEntryEP0OutCurrent->STAT.Val |= 0x80;
  4686  0026BE  C055  FFD9         	movff	_pBDTEntryEP0OutCurrent,fsr2l
  4687  0026C2  C056  FFDA         	movff	_pBDTEntryEP0OutCurrent+1,fsr2h
  4688  0026C6  0E00               	movlw	0
  4689  0026C8  8EDB               	bsf	plusw2,7,c
  4690  0026CA                     l3719:
  4691                           
  4692                           ;usb_device.c: 2222: }
  4693                           ;usb_device.c: 2223: UEP0bits.EPSTALL = 0;
  4694  0026CA  9070               	bcf	3952,0,c	;volatile
  4695  0026CC                     l303:
  4696                           
  4697                           ;usb_device.c: 2224: }
  4698                           ;usb_device.c: 2226: (UIR &= 0xDF);
  4699  0026CC  9A68               	bcf	3944,5,c	;volatile
  4700  0026CE  0012               	return		;funcret
  4701  0026D0                     __end_of_USBStallHandler:
  4702                           	opt stack 0
  4703                           tblptru	equ	0xFF8
  4704                           tblptrh	equ	0xFF7
  4705                           tblptrl	equ	0xFF6
  4706                           tablat	equ	0xFF5
  4707                           prodh	equ	0xFF4
  4708                           prodl	equ	0xFF3
  4709                           postinc0	equ	0xFEE
  4710                           wreg	equ	0xFE8
  4711                           indf1	equ	0xFE7
  4712                           postinc1	equ	0xFE6
  4713                           postdec1	equ	0xFE5
  4714                           fsr1h	equ	0xFE2
  4715                           fsr1l	equ	0xFE1
  4716                           indf2	equ	0xFDF
  4717                           postinc2	equ	0xFDE
  4718                           plusw2	equ	0xFDB
  4719                           fsr2h	equ	0xFDA
  4720                           fsr2l	equ	0xFD9
  4721                           status	equ	0xFD8
  4722                           
  4723 ;; *************** function _USBIncrement1msInternalTimers *****************
  4724 ;; Defined at:
  4725 ;;		line 3025 in file "usb/usb_device.c"
  4726 ;; Parameters:    Size  Location     Type
  4727 ;;		None
  4728 ;; Auto vars:     Size  Location     Type
  4729 ;;		None
  4730 ;; Return value:  Size  Location     Type
  4731 ;;                  1    wreg      void 
  4732 ;; Registers used:
  4733 ;;		wreg, status,2, status,0
  4734 ;; Tracked objects:
  4735 ;;		On entry : 0/0
  4736 ;;		On exit  : 0/0
  4737 ;;		Unchanged: 0/0
  4738 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  4739 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  4740 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  4741 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  4742 ;;      Totals:         0       0       0       0       0       0       0       0       0       0
  4743 ;;Total ram usage:        0 bytes
  4744 ;; Hardware stack levels used:    1
  4745 ;; This function calls:
  4746 ;;		Nothing
  4747 ;; This function is called by:
  4748 ;;		_USBDeviceTasks
  4749 ;; This function uses a non-reentrant model
  4750 ;;
  4751                           
  4752                           	psect	text21
  4753  00293C                     __ptext21:
  4754                           	opt stack 0
  4755  00293C                     _USBIncrement1msInternalTimers:
  4756                           	opt stack 29
  4757                           
  4758                           ;usb_device.c: 3033: USB1msTickCount++;
  4759                           
  4760                           ;incstack = 0
  4761  00293C  0E01               	movlw	1
  4762  00293E  0100               	movlb	0	; () banked
  4763  002940  27D9               	addwf	_USB1msTickCount& (0+255),f,b
  4764  002942  0E00               	movlw	0
  4765  002944  23DA               	addwfc	(_USB1msTickCount+1)& (0+255),f,b
  4766  002946  23DB               	addwfc	(_USB1msTickCount+2)& (0+255),f,b
  4767  002948  23DC               	addwfc	(_USB1msTickCount+3)& (0+255),f,b
  4768                           
  4769                           ; BSR set to: 0
  4770                           ;usb_device.c: 3034: if(USBBusIsSuspended == 0)
  4771  00294A  0100               	movlb	0	; () banked
  4772  00294C  51ED               	movf	_USBBusIsSuspended& (0+255),w,b
  4773  00294E  A4D8               	btfss	status,2,c
  4774  002950  0012               	return	
  4775                           
  4776                           ; BSR set to: 0
  4777                           ;usb_device.c: 3035: {
  4778                           ;usb_device.c: 3036: USBTicksSinceSuspendEnd++;
  4779  002952  0100               	movlb	0	; () banked
  4780  002954  2BF3               	incf	_USBTicksSinceSuspendEnd& (0+255),f,b
  4781                           
  4782                           ; BSR set to: 0
  4783                           ;usb_device.c: 3038: if(USBTicksSinceSuspendEnd == 0)
  4784  002956  0100               	movlb	0	; () banked
  4785  002958  51F3               	movf	_USBTicksSinceSuspendEnd& (0+255),w,b
  4786  00295A  A4D8               	btfss	status,2,c
  4787  00295C  0012               	return	
  4788                           
  4789                           ; BSR set to: 0
  4790                           ;usb_device.c: 3039: {
  4791                           ;usb_device.c: 3040: USBTicksSinceSuspendEnd = 255;
  4792  00295E  0100               	movlb	0	; () banked
  4793  002960  69F3               	setf	_USBTicksSinceSuspendEnd& (0+255),b
  4794                           
  4795                           ; BSR set to: 0
  4796  002962  0012               	return	
  4797  002964                     __end_of_USBIncrement1msInternalTimers:
  4798                           	opt stack 0
  4799                           tblptru	equ	0xFF8
  4800                           tblptrh	equ	0xFF7
  4801                           tblptrl	equ	0xFF6
  4802                           tablat	equ	0xFF5
  4803                           prodh	equ	0xFF4
  4804                           prodl	equ	0xFF3
  4805                           postinc0	equ	0xFEE
  4806                           wreg	equ	0xFE8
  4807                           indf1	equ	0xFE7
  4808                           postinc1	equ	0xFE6
  4809                           postdec1	equ	0xFE5
  4810                           fsr1h	equ	0xFE2
  4811                           fsr1l	equ	0xFE1
  4812                           indf2	equ	0xFDF
  4813                           postinc2	equ	0xFDE
  4814                           plusw2	equ	0xFDB
  4815                           fsr2h	equ	0xFDA
  4816                           fsr2l	equ	0xFD9
  4817                           status	equ	0xFD8
  4818                           
  4819 ;; *************** function _USBDeviceInit *****************
  4820 ;; Defined at:
  4821 ;;		line 277 in file "usb/usb_device.c"
  4822 ;; Parameters:    Size  Location     Type
  4823 ;;		None
  4824 ;; Auto vars:     Size  Location     Type
  4825 ;;  i               1    8[COMRAM] unsigned char 
  4826 ;; Return value:  Size  Location     Type
  4827 ;;                  1    wreg      void 
  4828 ;; Registers used:
  4829 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  4830 ;; Tracked objects:
  4831 ;;		On entry : 0/0
  4832 ;;		On exit  : 0/0
  4833 ;;		Unchanged: 0/0
  4834 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  4835 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  4836 ;;      Locals:         1       0       0       0       0       0       0       0       0       0
  4837 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  4838 ;;      Totals:         1       0       0       0       0       0       0       0       0       0
  4839 ;;Total ram usage:        1 bytes
  4840 ;; Hardware stack levels used:    1
  4841 ;; Hardware stack levels required when called:    1
  4842 ;; This function calls:
  4843 ;;		_memset
  4844 ;; This function is called by:
  4845 ;;		_USBDeviceTasks
  4846 ;;		_main
  4847 ;; This function uses a non-reentrant model
  4848 ;;
  4849                           
  4850                           	psect	text22
  4851  0012BA                     __ptext22:
  4852                           	opt stack 0
  4853  0012BA                     _USBDeviceInit:
  4854                           	opt stack 28
  4855                           
  4856                           ;usb_device.c: 279: uint8_t i;
  4857                           ;usb_device.c: 281: {PIE2bits.USBIE = 0;};
  4858                           
  4859                           ; BSR set to: 0
  4860                           ;incstack = 0
  4861  0012BA  9AA0               	bcf	4000,5,c	;volatile
  4862                           
  4863                           ;usb_device.c: 285: ;
  4864                           ;usb_device.c: 288: {UEIR = 0;};
  4865  0012BC  0E00               	movlw	0
  4866  0012BE  6E6A               	movwf	3946,c	;volatile
  4867                           
  4868                           ;usb_device.c: 291: {UIR = 0;};
  4869  0012C0  0E00               	movlw	0
  4870  0012C2  6E68               	movwf	3944,c	;volatile
  4871                           
  4872                           ;usb_device.c: 294: UEP0 = 0;
  4873  0012C4  0E00               	movlw	0
  4874  0012C6  6E70               	movwf	3952,c	;volatile
  4875                           
  4876                           ;usb_device.c: 296: memset((void*)&UEP1,0x00,(1));;
  4877  0012C8  0E71               	movlw	113
  4878  0012CA  6E01               	movwf	memset@p1,c
  4879  0012CC  0E0F               	movlw	15
  4880  0012CE  6E02               	movwf	memset@p1+1,c
  4881  0012D0  0E00               	movlw	0
  4882  0012D2  6E04               	movwf	memset@c+1,c
  4883  0012D4  0E00               	movlw	0
  4884  0012D6  6E03               	movwf	memset@c,c
  4885  0012D8  0E00               	movlw	0
  4886  0012DA  6E06               	movwf	memset@n+1,c
  4887  0012DC  0E01               	movlw	1
  4888  0012DE  6E05               	movwf	memset@n,c
  4889  0012E0  EC74  F014         	call	_memset	;wreg free
  4890                           
  4891                           ;usb_device.c: 298: { UCFG = 0x10 | 0x00 | 0x04 | 0x02; UEIE = 0x9F; UIE = 0x39 | 0x40 |
      +                           0x02; };
  4892  0012E4  0E16               	movlw	22
  4893  0012E6  6E6F               	movwf	3951,c	;volatile
  4894  0012E8  0E9F               	movlw	159
  4895  0012EA  6E6B               	movwf	3947,c	;volatile
  4896  0012EC  0E7B               	movlw	123
  4897  0012EE  6E69               	movwf	3945,c	;volatile
  4898                           
  4899                           ;usb_device.c: 301: ;
  4900                           ;usb_device.c: 304: ;
  4901                           ;usb_device.c: 307: for(i = 0; i < (sizeof(BDT)/sizeof(BDT_ENTRY)); i++)
  4902  0012F0  0E00               	movlw	0
  4903  0012F2  6E09               	movwf	USBDeviceInit@i,c
  4904  0012F4                     l3615:
  4905  0012F4  0E07               	movlw	7
  4906  0012F6  6409               	cpfsgt	USBDeviceInit@i,c
  4907  0012F8  D001               	goto	l3619
  4908  0012FA  D00E               	goto	l148
  4909  0012FC                     l3619:
  4910                           
  4911                           ;usb_device.c: 308: {
  4912                           ;usb_device.c: 309: BDT[i].Val = 0x00;
  4913  0012FC  5009               	movf	USBDeviceInit@i,w,c
  4914  0012FE  0D04               	mullw	4
  4915  001300  0E00               	movlw	0
  4916  001302  24F3               	addwf	prodl,w,c
  4917  001304  6ED9               	movwf	fsr2l,c
  4918  001306  0E04               	movlw	4
  4919  001308  20F4               	addwfc	prodh,w,c
  4920  00130A  6EDA               	movwf	fsr2h,c
  4921  00130C  6ADE               	clrf	postinc2,c
  4922  00130E  6ADE               	clrf	postinc2,c
  4923  001310  6ADE               	clrf	postinc2,c
  4924  001312  6ADD               	clrf	postdec2,c
  4925  001314  2A09               	incf	USBDeviceInit@i,f,c
  4926  001316  D7EE               	goto	l3615
  4927  001318                     l148:
  4928                           
  4929                           ;usb_device.c: 310: }
  4930                           ;usb_device.c: 313: UCONbits.PPBRST = 1;
  4931  001318  8C6D               	bsf	3949,6,c	;volatile
  4932                           
  4933                           ;usb_device.c: 316: UADDR = 0x00;
  4934  00131A  0E00               	movlw	0
  4935  00131C  6E6E               	movwf	3950,c	;volatile
  4936                           
  4937                           ;usb_device.c: 319: UCONbits.PKTDIS = 0;
  4938  00131E  986D               	bcf	3949,4,c	;volatile
  4939                           
  4940                           ;usb_device.c: 322: UCONbits.PPBRST = 0;
  4941  001320  9C6D               	bcf	3949,6,c	;volatile
  4942  001322                     l3631:
  4943                           
  4944                           ;usb_device.c: 326: {
  4945                           ;usb_device.c: 327: (UIR &= 0xF7);
  4946  001322  9668               	bcf	3944,3,c	;volatile
  4947                           
  4948                           ;usb_device.c: 329: inPipes[0].info.Val = 0;
  4949  001324  0E00               	movlw	0
  4950  001326  6E4E               	movwf	_inPipes+3,c
  4951                           
  4952                           ;usb_device.c: 330: outPipes[0].info.Val = 0;
  4953  001328  0E00               	movlw	0
  4954  00132A  0100               	movlb	0	; () banked
  4955  00132C  6FD4               	movwf	(_outPipes+3)& (0+255),b
  4956                           
  4957                           ; BSR set to: 0
  4958                           ;usb_device.c: 331: outPipes[0].wCount.Val = 0;
  4959  00132E  0E00               	movlw	0
  4960  001330  0100               	movlb	0	; () banked
  4961  001332  6FD6               	movwf	(_outPipes+5)& (0+255),b
  4962  001334  0E00               	movlw	0
  4963  001336  6FD5               	movwf	(_outPipes+4)& (0+255),b
  4964                           
  4965                           ; BSR set to: 0
  4966                           ;usb_device.c: 332: }while(UIRbits.TRNIF == 1);
  4967  001338  B668               	btfsc	3944,3,c	;volatile
  4968  00133A  D7F3               	goto	l3631
  4969                           
  4970                           ; BSR set to: 0
  4971                           ;usb_device.c: 336: USBStatusStageEnabledFlag1 = 1;
  4972                           
  4973                           ; BSR set to: 0
  4974  00133C  0E01               	movlw	1
  4975  00133E  0100               	movlb	0	; () banked
  4976  001340  6FF0               	movwf	_USBStatusStageEnabledFlag1& (0+255),b	;volatile
  4977                           
  4978                           ;usb_device.c: 337: USBStatusStageEnabledFlag2 = 1;
  4979  001342  0E01               	movlw	1
  4980  001344  0100               	movlb	0	; () banked
  4981  001346  6FF1               	movwf	_USBStatusStageEnabledFlag2& (0+255),b	;volatile
  4982                           
  4983                           ;usb_device.c: 339: USBDeferINDataStagePackets = 0;
  4984  001348  0E00               	movlw	0
  4985  00134A  0100               	movlb	0	; () banked
  4986  00134C  6FEE               	movwf	_USBDeferINDataStagePackets& (0+255),b	;volatile
  4987                           
  4988                           ;usb_device.c: 340: USBDeferOUTDataStagePackets = 0;
  4989  00134E  0E00               	movlw	0
  4990  001350  0100               	movlb	0	; () banked
  4991  001352  6FEF               	movwf	_USBDeferOUTDataStagePackets& (0+255),b	;volatile
  4992                           
  4993                           ;usb_device.c: 341: USBBusIsSuspended = 0;
  4994  001354  0E00               	movlw	0
  4995  001356  0100               	movlb	0	; () banked
  4996  001358  6FED               	movwf	_USBBusIsSuspended& (0+255),b
  4997                           
  4998                           ;usb_device.c: 345: for(i = 0; i < (uint8_t)(1+1u); i++)
  4999  00135A  0E00               	movlw	0
  5000  00135C  6E09               	movwf	USBDeviceInit@i,c
  5001  00135E                     l3643:
  5002                           
  5003                           ; BSR set to: 0
  5004  00135E  0E01               	movlw	1
  5005  001360  6409               	cpfsgt	USBDeviceInit@i,c
  5006  001362  D001               	goto	l3647
  5007  001364  D02E               	goto	l3653
  5008  001366                     l3647:
  5009                           
  5010                           ;usb_device.c: 346: {
  5011                           ;usb_device.c: 347: pBDTEntryIn[i] = 0u;
  5012  001366  5009               	movf	USBDeviceInit@i,w,c
  5013  001368  0D02               	mullw	2
  5014  00136A  0E51               	movlw	low _pBDTEntryIn
  5015  00136C  24F3               	addwf	prodl,w,c
  5016  00136E  6ED9               	movwf	fsr2l,c
  5017  001370  0E00               	movlw	high _pBDTEntryIn
  5018  001372  20F4               	addwfc	prodh,w,c
  5019  001374  6EDA               	movwf	fsr2h,c
  5020  001376  0E00               	movlw	0
  5021  001378  6EDE               	movwf	postinc2,c
  5022  00137A  0E00               	movlw	0
  5023  00137C  6EDD               	movwf	postdec2,c
  5024                           
  5025                           ;usb_device.c: 348: pBDTEntryOut[i] = 0u;
  5026  00137E  5009               	movf	USBDeviceInit@i,w,c
  5027  001380  0D02               	mullw	2
  5028  001382  0EDD               	movlw	low _pBDTEntryOut
  5029  001384  24F3               	addwf	prodl,w,c
  5030  001386  6ED9               	movwf	fsr2l,c
  5031  001388  0E00               	movlw	high _pBDTEntryOut
  5032  00138A  20F4               	addwfc	prodh,w,c
  5033  00138C  6EDA               	movwf	fsr2h,c
  5034  00138E  0E00               	movlw	0
  5035  001390  6EDE               	movwf	postinc2,c
  5036  001392  0E00               	movlw	0
  5037  001394  6EDD               	movwf	postdec2,c
  5038                           
  5039                           ;usb_device.c: 349: ep_data_in[i].Val = 0u;
  5040  001396  5009               	movf	USBDeviceInit@i,w,c
  5041  001398  0D01               	mullw	1
  5042  00139A  0EE5               	movlw	low _ep_data_in
  5043  00139C  24F3               	addwf	prodl,w,c
  5044  00139E  6ED9               	movwf	fsr2l,c
  5045  0013A0  0E00               	movlw	high _ep_data_in
  5046  0013A2  20F4               	addwfc	prodh,w,c
  5047  0013A4  6EDA               	movwf	fsr2h,c
  5048  0013A6  0E00               	movlw	0
  5049  0013A8  6EDF               	movwf	indf2,c
  5050                           
  5051                           ;usb_device.c: 350: ep_data_out[i].Val = 0u;
  5052  0013AA  5009               	movf	USBDeviceInit@i,w,c
  5053  0013AC  0D01               	mullw	1
  5054  0013AE  0EE7               	movlw	low _ep_data_out
  5055  0013B0  24F3               	addwf	prodl,w,c
  5056  0013B2  6ED9               	movwf	fsr2l,c
  5057  0013B4  0E00               	movlw	high _ep_data_out
  5058  0013B6  20F4               	addwfc	prodh,w,c
  5059  0013B8  6EDA               	movwf	fsr2h,c
  5060  0013BA  0E00               	movlw	0
  5061  0013BC  6EDF               	movwf	indf2,c
  5062  0013BE  2A09               	incf	USBDeviceInit@i,f,c
  5063  0013C0  D7CE               	goto	l3643
  5064  0013C2                     l3653:
  5065                           
  5066                           ;usb_device.c: 351: }
  5067                           ;usb_device.c: 354: pBDTEntryIn[0] = (volatile BDT_ENTRY*)&BDT[2];
  5068  0013C2  0E08               	movlw	8
  5069  0013C4  6E51               	movwf	_pBDTEntryIn,c
  5070  0013C6  0E04               	movlw	4
  5071  0013C8  6E52               	movwf	_pBDTEntryIn+1,c
  5072                           
  5073                           ;usb_device.c: 356: UEP0 = 0x06|0x10;
  5074  0013CA  0E16               	movlw	22
  5075  0013CC  6E70               	movwf	3952,c	;volatile
  5076                           
  5077                           ;usb_device.c: 358: BDT[0].ADR = ((uint16_t)(&SetupPkt));
  5078  0013CE  0E04               	movlw	4
  5079  0013D0  0104               	movlb	4	; () banked
  5080  0013D2  6F03               	movwf	3,b	;volatile
  5081  0013D4  0E20               	movlw	32
  5082  0013D6  6F02               	movwf	2,b	;volatile
  5083                           
  5084                           ; BSR set to: 4
  5085                           ;usb_device.c: 359: BDT[0].CNT = 8;
  5086  0013D8  0E08               	movlw	8
  5087  0013DA  0104               	movlb	4	; () banked
  5088  0013DC  6F01               	movwf	1,b	;volatile
  5089                           
  5090                           ; BSR set to: 4
  5091                           ;usb_device.c: 360: BDT[0].STAT.Val = 0x00|0x04;
  5092  0013DE  0E04               	movlw	4
  5093  0013E0  0104               	movlb	4	; () banked
  5094  0013E2  6F00               	movwf	0,b	;volatile
  5095                           
  5096                           ; BSR set to: 4
  5097                           ;usb_device.c: 361: BDT[0].STAT.Val |= 0x80;
  5098  0013E4  0104               	movlb	4	; () banked
  5099  0013E6  8F00               	bsf	0,7,b	;volatile
  5100                           
  5101                           ; BSR set to: 4
  5102                           ;usb_device.c: 364: USBActiveConfiguration = 0;
  5103  0013E8  0E00               	movlw	0
  5104  0013EA  6E5D               	movwf	_USBActiveConfiguration,c
  5105                           
  5106                           ; BSR set to: 4
  5107                           ;usb_device.c: 366: USB1msTickCount = 0;
  5108  0013EC  0E00               	movlw	0
  5109  0013EE  0100               	movlb	0	; () banked
  5110  0013F0  6FD9               	movwf	_USB1msTickCount& (0+255),b
  5111  0013F2  0E00               	movlw	0
  5112  0013F4  6FDA               	movwf	(_USB1msTickCount+1)& (0+255),b
  5113  0013F6  0E00               	movlw	0
  5114  0013F8  6FDB               	movwf	(_USB1msTickCount+2)& (0+255),b
  5115  0013FA  0E00               	movlw	0
  5116  0013FC  6FDC               	movwf	(_USB1msTickCount+3)& (0+255),b
  5117                           
  5118                           ; BSR set to: 0
  5119                           ;usb_device.c: 367: USBTicksSinceSuspendEnd = 0;
  5120  0013FE  0E00               	movlw	0
  5121  001400  0100               	movlb	0	; () banked
  5122  001402  6FF3               	movwf	_USBTicksSinceSuspendEnd& (0+255),b
  5123                           
  5124                           ; BSR set to: 0
  5125                           ;usb_device.c: 370: USBDeviceState = DETACHED_STATE;
  5126  001404  0E00               	movlw	0
  5127  001406  6E5A               	movwf	_USBDeviceState,c
  5128                           
  5129                           ; BSR set to: 0
  5130  001408  0012               	return		;funcret
  5131  00140A                     __end_of_USBDeviceInit:
  5132                           	opt stack 0
  5133                           tblptru	equ	0xFF8
  5134                           tblptrh	equ	0xFF7
  5135                           tblptrl	equ	0xFF6
  5136                           tablat	equ	0xFF5
  5137                           prodh	equ	0xFF4
  5138                           prodl	equ	0xFF3
  5139                           postinc0	equ	0xFEE
  5140                           wreg	equ	0xFE8
  5141                           indf1	equ	0xFE7
  5142                           postinc1	equ	0xFE6
  5143                           postdec1	equ	0xFE5
  5144                           fsr1h	equ	0xFE2
  5145                           fsr1l	equ	0xFE1
  5146                           indf2	equ	0xFDF
  5147                           postinc2	equ	0xFDE
  5148                           postdec2	equ	0xFDD
  5149                           plusw2	equ	0xFDB
  5150                           fsr2h	equ	0xFDA
  5151                           fsr2l	equ	0xFD9
  5152                           status	equ	0xFD8
  5153                           
  5154 ;; *************** function _USBCtrlEPService *****************
  5155 ;; Defined at:
  5156 ;;		line 2372 in file "usb/usb_device.c"
  5157 ;; Parameters:    Size  Location     Type
  5158 ;;		None
  5159 ;; Auto vars:     Size  Location     Type
  5160 ;;		None
  5161 ;; Return value:  Size  Location     Type
  5162 ;;                  1    wreg      void 
  5163 ;; Registers used:
  5164 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru, prodl, prodh, cstack
  5165 ;; Tracked objects:
  5166 ;;		On entry : 0/0
  5167 ;;		On exit  : 0/0
  5168 ;;		Unchanged: 0/0
  5169 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  5170 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  5171 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  5172 ;;      Temps:          1       0       0       0       0       0       0       0       0       0
  5173 ;;      Totals:         1       0       0       0       0       0       0       0       0       0
  5174 ;;Total ram usage:        1 bytes
  5175 ;; Hardware stack levels used:    1
  5176 ;; Hardware stack levels required when called:    7
  5177 ;; This function calls:
  5178 ;;		_USBCtrlTrfInHandler
  5179 ;;		_USBCtrlTrfOutHandler
  5180 ;;		_USBCtrlTrfSetupHandler
  5181 ;;		_memcpy
  5182 ;; This function is called by:
  5183 ;;		_USBDeviceTasks
  5184 ;; This function uses a non-reentrant model
  5185 ;;
  5186                           
  5187                           	psect	text23
  5188  001F9E                     __ptext23:
  5189                           	opt stack 0
  5190  001F9E                     _USBCtrlEPService:
  5191                           	opt stack 22
  5192                           
  5193                           ;usb_device.c: 2378: USBStatusStageTimeoutCounter = (uint8_t)45;
  5194                           
  5195                           ; BSR set to: 0
  5196                           ;incstack = 0
  5197  001F9E  0E2D               	movlw	45
  5198  001FA0  0100               	movlb	0	; () banked
  5199  001FA2  6FF2               	movwf	_USBStatusStageTimeoutCounter& (0+255),b
  5200                           
  5201                           ; BSR set to: 0
  5202                           ;usb_device.c: 2382: if((USTATcopy.Val & ~0x02) == 0x00)
  5203  001FA4  C05F  F01B         	movff	_USTATcopy,??_USBCtrlEPService
  5204  001FA8  0EFD               	movlw	253
  5205  001FAA  161B               	andwf	??_USBCtrlEPService,f,c
  5206  001FAC  A4D8               	btfss	status,2,c
  5207  001FAE  D03B               	goto	l3739
  5208                           
  5209                           ; BSR set to: 0
  5210                           ;usb_device.c: 2383: {
  5211                           ;usb_device.c: 2386: pBDTEntryEP0OutCurrent = (volatile BDT_ENTRY*)&BDT[(USTATcopy.Val &
      +                           0x7E)>>1];
  5212  001FB0  C05F  F01B         	movff	_USTATcopy,??_USBCtrlEPService
  5213  001FB4  90D8               	bcf	status,0,c
  5214  001FB6  321B               	rrcf	??_USBCtrlEPService,f,c
  5215  001FB8  0E3F               	movlw	63
  5216  001FBA  161B               	andwf	??_USBCtrlEPService,f,c
  5217  001FBC  501B               	movf	??_USBCtrlEPService,w,c
  5218  001FBE  0D04               	mullw	4
  5219  001FC0  0E00               	movlw	0
  5220  001FC2  24F3               	addwf	prodl,w,c
  5221  001FC4  6E55               	movwf	_pBDTEntryEP0OutCurrent,c
  5222  001FC6  0E04               	movlw	4
  5223  001FC8  20F4               	addwfc	prodh,w,c
  5224  001FCA  6E56               	movwf	_pBDTEntryEP0OutCurrent+1,c
  5225                           
  5226                           ; BSR set to: 0
  5227                           ;usb_device.c: 2394: pBDTEntryEP0OutNext = pBDTEntryEP0OutCurrent;
  5228  001FCC  C055  F057         	movff	_pBDTEntryEP0OutCurrent,_pBDTEntryEP0OutNext
  5229  001FD0  C056  F058         	movff	_pBDTEntryEP0OutCurrent+1,_pBDTEntryEP0OutNext+1
  5230                           
  5231                           ; BSR set to: 0
  5232                           ;usb_device.c: 2396: pBDTEntryEP0OutNext = (volatile BDT_ENTRY*)(((uintptr_t)pBDTEntryEP
      +                          0OutNext) ^ 0x0004);
  5233  001FD4  0E04               	movlw	4
  5234  001FD6  1857               	xorwf	_pBDTEntryEP0OutNext,w,c
  5235  001FD8  6E57               	movwf	_pBDTEntryEP0OutNext,c
  5236  001FDA  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  5237  001FDC  6E58               	movwf	_pBDTEntryEP0OutNext+1,c
  5238                           
  5239                           ; BSR set to: 0
  5240                           ;usb_device.c: 2399: if(pBDTEntryEP0OutCurrent->STAT.PID == 0xD)
  5241  001FDE  C055  FFD9         	movff	_pBDTEntryEP0OutCurrent,fsr2l
  5242  001FE2  C056  FFDA         	movff	_pBDTEntryEP0OutCurrent+1,fsr2h
  5243  001FE6  30DF               	rrcf	indf2,w,c
  5244  001FE8  32E8               	rrcf	wreg,f,c
  5245  001FEA  0B0F               	andlw	15
  5246  001FEC  0A0D               	xorlw	13
  5247  001FEE  A4D8               	btfss	status,2,c
  5248  001FF0  D017               	goto	l3737
  5249                           
  5250                           ; BSR set to: 0
  5251                           ;usb_device.c: 2400: {
  5252                           ;usb_device.c: 2405: memcpy((uint8_t*)&SetupPkt, (uint8_t*)((void *)(pBDTEntryEP0OutCurr
      +                          ent->ADR)), 8);
  5253  001FF2  0E20               	movlw	32
  5254  001FF4  6E01               	movwf	memcpy@d1,c
  5255  001FF6  0E04               	movlw	4
  5256  001FF8  6E02               	movwf	memcpy@d1+1,c
  5257  001FFA  EE20 F002          	lfsr	2,2
  5258  001FFE  5055               	movf	_pBDTEntryEP0OutCurrent,w,c
  5259  002000  26D9               	addwf	fsr2l,f,c
  5260  002002  5056               	movf	_pBDTEntryEP0OutCurrent+1,w,c
  5261  002004  22DA               	addwfc	fsr2h,f,c
  5262  002006  CFDE F003          	movff	postinc2,memcpy@s1
  5263  00200A  CFDD F004          	movff	postdec2,memcpy@s1+1
  5264  00200E  0E00               	movlw	0
  5265  002010  6E06               	movwf	memcpy@n+1,c
  5266  002012  0E08               	movlw	8
  5267  002014  6E05               	movwf	memcpy@n,c
  5268  002016  EC88  F013         	call	_memcpy	;wreg free
  5269                           
  5270                           ;usb_device.c: 2408: USBCtrlTrfSetupHandler();
  5271  00201A  EC1B  F010         	call	_USBCtrlTrfSetupHandler	;wreg free
  5272                           
  5273                           ;usb_device.c: 2409: }
  5274  00201E  0012               	return	
  5275  002020                     l3737:
  5276                           
  5277                           ;usb_device.c: 2410: else
  5278                           ;usb_device.c: 2411: {
  5279                           ;usb_device.c: 2413: USBCtrlTrfOutHandler();
  5280  002020  EC43  F012         	call	_USBCtrlTrfOutHandler	;wreg free
  5281                           
  5282                           ;usb_device.c: 2414: }
  5283                           ;usb_device.c: 2415: }
  5284  002024  0012               	return	
  5285  002026                     l3739:
  5286                           
  5287                           ;usb_device.c: 2416: else if((USTATcopy.Val & ~0x02) == 0x04)
  5288  002026  505F               	movf	_USTATcopy,w,c
  5289  002028  0BFD               	andlw	253
  5290  00202A  0A04               	xorlw	4
  5291  00202C  A4D8               	btfss	status,2,c
  5292  00202E  0012               	return	
  5293                           
  5294                           ;usb_device.c: 2417: {
  5295                           ;usb_device.c: 2420: USBCtrlTrfInHandler();
  5296  002030  EC2F  F00E         	call	_USBCtrlTrfInHandler	;wreg free
  5297  002034  0012               	return	
  5298  002036                     __end_of_USBCtrlEPService:
  5299                           	opt stack 0
  5300                           tblptru	equ	0xFF8
  5301                           tblptrh	equ	0xFF7
  5302                           tblptrl	equ	0xFF6
  5303                           tablat	equ	0xFF5
  5304                           prodh	equ	0xFF4
  5305                           prodl	equ	0xFF3
  5306                           postinc0	equ	0xFEE
  5307                           wreg	equ	0xFE8
  5308                           indf1	equ	0xFE7
  5309                           postinc1	equ	0xFE6
  5310                           postdec1	equ	0xFE5
  5311                           fsr1h	equ	0xFE2
  5312                           fsr1l	equ	0xFE1
  5313                           indf2	equ	0xFDF
  5314                           postinc2	equ	0xFDE
  5315                           postdec2	equ	0xFDD
  5316                           plusw2	equ	0xFDB
  5317                           fsr2h	equ	0xFDA
  5318                           fsr2l	equ	0xFD9
  5319                           status	equ	0xFD8
  5320                           
  5321 ;; *************** function _memcpy *****************
  5322 ;; Defined at:
  5323 ;;		line 11 in file "C:\Program Files (x86)\Microchip\xc8\v1.38\sources\common\memcpy.c"
  5324 ;; Parameters:    Size  Location     Type
  5325 ;;  d1              2    0[COMRAM] PTR void 
  5326 ;;		 -> SetupPkt(8), 
  5327 ;;  s1              2    2[COMRAM] PTR const void 
  5328 ;;		 -> midiData(4), ReceivedDataBuffer(64), CtrlTrfData(8), RAM(2047), 
  5329 ;;		 -> SetupPkt(8), 
  5330 ;;  n               2    4[COMRAM] unsigned int 
  5331 ;; Auto vars:     Size  Location     Type
  5332 ;;  s               2    8[COMRAM] PTR const unsigned char 
  5333 ;;		 -> midiData(4), ReceivedDataBuffer(64), CtrlTrfData(8), RAM(2047), 
  5334 ;;		 -> SetupPkt(8), 
  5335 ;;  d               2    6[COMRAM] PTR unsigned char 
  5336 ;;		 -> SetupPkt(8), 
  5337 ;; Return value:  Size  Location     Type
  5338 ;;                  2    0[COMRAM] PTR void 
  5339 ;; Registers used:
  5340 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0
  5341 ;; Tracked objects:
  5342 ;;		On entry : 0/0
  5343 ;;		On exit  : 0/0
  5344 ;;		Unchanged: 0/0
  5345 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  5346 ;;      Params:         6       0       0       0       0       0       0       0       0       0
  5347 ;;      Locals:         4       0       0       0       0       0       0       0       0       0
  5348 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  5349 ;;      Totals:        10       0       0       0       0       0       0       0       0       0
  5350 ;;Total ram usage:       10 bytes
  5351 ;; Hardware stack levels used:    1
  5352 ;; This function calls:
  5353 ;;		Nothing
  5354 ;; This function is called by:
  5355 ;;		_USBCtrlEPService
  5356 ;; This function uses a non-reentrant model
  5357 ;;
  5358                           
  5359                           	psect	text24
  5360  002710                     __ptext24:
  5361                           	opt stack 0
  5362  002710                     _memcpy:
  5363                           	opt stack 28
  5364                           
  5365                           ;incstack = 0
  5366  002710  C003  F009         	movff	memcpy@s1,memcpy@s
  5367  002714  C004  F00A         	movff	memcpy@s1+1,memcpy@s+1
  5368  002718  C001  F007         	movff	memcpy@d1,memcpy@d
  5369  00271C  C002  F008         	movff	memcpy@d1+1,memcpy@d+1
  5370  002720  D00E               	goto	l3437
  5371  002722                     l3431:
  5372  002722  C009  FFD9         	movff	memcpy@s,fsr2l
  5373  002726  C00A  FFDA         	movff	memcpy@s+1,fsr2h
  5374  00272A  C007  FFE1         	movff	memcpy@d,fsr1l
  5375  00272E  C008  FFE2         	movff	memcpy@d+1,fsr1h
  5376  002732  CFDF FFE7          	movff	indf2,indf1
  5377  002736  4A09               	infsnz	memcpy@s,f,c
  5378  002738  2A0A               	incf	memcpy@s+1,f,c
  5379  00273A  4A07               	infsnz	memcpy@d,f,c
  5380  00273C  2A08               	incf	memcpy@d+1,f,c
  5381  00273E                     l3437:
  5382  00273E  0605               	decf	memcpy@n,f,c
  5383  002740  A0D8               	btfss	status,0,c
  5384  002742  0606               	decf	memcpy@n+1,f,c
  5385  002744  2805               	incf	memcpy@n,w,c
  5386  002746  E1ED               	bnz	l3431
  5387  002748  2806               	incf	memcpy@n+1,w,c
  5388  00274A  B4D8               	btfsc	status,2,c
  5389  00274C  0012               	return	
  5390  00274E  D7E9               	goto	l3431
  5391  002750                     __end_of_memcpy:
  5392                           	opt stack 0
  5393                           tblptru	equ	0xFF8
  5394                           tblptrh	equ	0xFF7
  5395                           tblptrl	equ	0xFF6
  5396                           tablat	equ	0xFF5
  5397                           prodh	equ	0xFF4
  5398                           prodl	equ	0xFF3
  5399                           postinc0	equ	0xFEE
  5400                           wreg	equ	0xFE8
  5401                           indf1	equ	0xFE7
  5402                           postinc1	equ	0xFE6
  5403                           postdec1	equ	0xFE5
  5404                           fsr1h	equ	0xFE2
  5405                           fsr1l	equ	0xFE1
  5406                           indf2	equ	0xFDF
  5407                           postinc2	equ	0xFDE
  5408                           postdec2	equ	0xFDD
  5409                           plusw2	equ	0xFDB
  5410                           fsr2h	equ	0xFDA
  5411                           fsr2l	equ	0xFD9
  5412                           status	equ	0xFD8
  5413                           
  5414 ;; *************** function _USBCtrlTrfSetupHandler *****************
  5415 ;; Defined at:
  5416 ;;		line 2465 in file "usb/usb_device.c"
  5417 ;; Parameters:    Size  Location     Type
  5418 ;;		None
  5419 ;; Auto vars:     Size  Location     Type
  5420 ;;		None
  5421 ;; Return value:  Size  Location     Type
  5422 ;;                  1    wreg      void 
  5423 ;; Registers used:
  5424 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru, prodl, prodh, cstack
  5425 ;; Tracked objects:
  5426 ;;		On entry : 0/0
  5427 ;;		On exit  : 0/0
  5428 ;;		Unchanged: 0/0
  5429 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  5430 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  5431 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  5432 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  5433 ;;      Totals:         0       0       0       0       0       0       0       0       0       0
  5434 ;;Total ram usage:        0 bytes
  5435 ;; Hardware stack levels used:    1
  5436 ;; Hardware stack levels required when called:    6
  5437 ;; This function calls:
  5438 ;;		_USBCheckStdRequest
  5439 ;;		_USBCtrlEPServiceComplete
  5440 ;;		_USER_USB_CALLBACK_EVENT_HANDLER
  5441 ;; This function is called by:
  5442 ;;		_USBCtrlEPService
  5443 ;; This function uses a non-reentrant model
  5444 ;;
  5445                           
  5446                           	psect	text25
  5447  002036                     __ptext25:
  5448                           	opt stack 0
  5449  002036                     _USBCtrlTrfSetupHandler:
  5450                           	opt stack 22
  5451                           
  5452                           ;usb_device.c: 2470: shortPacketStatus = 0;
  5453                           
  5454                           ;incstack = 0
  5455  002036  0E00               	movlw	0
  5456  002038  6E5C               	movwf	_shortPacketStatus,c
  5457                           
  5458                           ;usb_device.c: 2471: USBDeferStatusStagePacket = 0;
  5459  00203A  0E00               	movlw	0
  5460  00203C  6E59               	movwf	_USBDeferStatusStagePacket,c	;volatile
  5461                           
  5462                           ;usb_device.c: 2472: USBDeferINDataStagePackets = 0;
  5463  00203E  0E00               	movlw	0
  5464  002040  0100               	movlb	0	; () banked
  5465  002042  6FEE               	movwf	_USBDeferINDataStagePackets& (0+255),b	;volatile
  5466                           
  5467                           ;usb_device.c: 2473: USBDeferOUTDataStagePackets = 0;
  5468  002044  0E00               	movlw	0
  5469  002046  0100               	movlb	0	; () banked
  5470  002048  6FEF               	movwf	_USBDeferOUTDataStagePackets& (0+255),b	;volatile
  5471                           
  5472                           ;usb_device.c: 2474: BothEP0OutUOWNsSet = 0;
  5473  00204A  0E00               	movlw	0
  5474  00204C  0100               	movlb	0	; () banked
  5475  00204E  6FEB               	movwf	_BothEP0OutUOWNsSet& (0+255),b
  5476                           
  5477                           ;usb_device.c: 2475: controlTransferState = 0;
  5478  002050  0E00               	movlw	0
  5479  002052  6E5B               	movwf	_controlTransferState,c
  5480                           
  5481                           ; BSR set to: 0
  5482                           ;usb_device.c: 2484: pBDTEntryIn[0]->STAT.Val &= ~(0x80);
  5483  002054  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  5484  002058  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  5485  00205C  0E7F               	movlw	127
  5486  00205E  16DF               	andwf	indf2,f,c
  5487                           
  5488                           ; BSR set to: 0
  5489                           ;usb_device.c: 2486: pBDTEntryIn[0] = (volatile BDT_ENTRY*)(((uintptr_t)pBDTEntryIn[0]) 
      +                          ^ 0x0004);
  5490  002060  0E04               	movlw	4
  5491  002062  1851               	xorwf	_pBDTEntryIn,w,c
  5492  002064  6E51               	movwf	_pBDTEntryIn,c
  5493  002066  5052               	movf	_pBDTEntryIn+1,w,c
  5494  002068  6E52               	movwf	_pBDTEntryIn+1,c
  5495                           
  5496                           ; BSR set to: 0
  5497                           ;usb_device.c: 2487: pBDTEntryIn[0]->STAT.Val &= ~(0x80);
  5498  00206A  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  5499  00206E  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  5500  002072  0E7F               	movlw	127
  5501  002074  16DF               	andwf	indf2,f,c
  5502                           
  5503                           ; BSR set to: 0
  5504                           ;usb_device.c: 2488: pBDTEntryIn[0] = (volatile BDT_ENTRY*)(((uintptr_t)pBDTEntryIn[0]) 
      +                          ^ 0x0004);
  5505  002076  0E04               	movlw	4
  5506  002078  1851               	xorwf	_pBDTEntryIn,w,c
  5507  00207A  6E51               	movwf	_pBDTEntryIn,c
  5508  00207C  5052               	movf	_pBDTEntryIn+1,w,c
  5509  00207E  6E52               	movwf	_pBDTEntryIn+1,c
  5510                           
  5511                           ; BSR set to: 0
  5512                           ;usb_device.c: 2489: pBDTEntryEP0OutNext->STAT.Val &= ~(0x80);
  5513  002080  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  5514  002084  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  5515  002088  0E7F               	movlw	127
  5516  00208A  16DF               	andwf	indf2,f,c
  5517                           
  5518                           ; BSR set to: 0
  5519                           ;usb_device.c: 2491: inPipes[0].info.Val = 0;
  5520  00208C  0E00               	movlw	0
  5521  00208E  6E4E               	movwf	_inPipes+3,c
  5522                           
  5523                           ; BSR set to: 0
  5524                           ;usb_device.c: 2492: inPipes[0].wCount.Val = 0;
  5525  002090  0E00               	movlw	0
  5526  002092  6E50               	movwf	_inPipes+5,c
  5527  002094  0E00               	movlw	0
  5528  002096  6E4F               	movwf	_inPipes+4,c
  5529                           
  5530                           ; BSR set to: 0
  5531                           ;usb_device.c: 2493: outPipes[0].info.Val = 0;
  5532  002098  0E00               	movlw	0
  5533  00209A  0100               	movlb	0	; () banked
  5534  00209C  6FD4               	movwf	(_outPipes+3)& (0+255),b
  5535                           
  5536                           ; BSR set to: 0
  5537                           ;usb_device.c: 2494: outPipes[0].wCount.Val = 0;
  5538  00209E  0E00               	movlw	0
  5539  0020A0  0100               	movlb	0	; () banked
  5540  0020A2  6FD6               	movwf	(_outPipes+5)& (0+255),b
  5541  0020A4  0E00               	movlw	0
  5542  0020A6  6FD5               	movwf	(_outPipes+4)& (0+255),b
  5543                           
  5544                           ; BSR set to: 0
  5545                           ;usb_device.c: 2500: USBCheckStdRequest();
  5546  0020A8  EC91  F00C         	call	_USBCheckStdRequest	;wreg free
  5547                           
  5548                           ;usb_device.c: 2501: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_EP0_REQUEST,0,0);
  5549  0020AC  0E00               	movlw	0
  5550  0020AE  6E0E               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event+1,c
  5551  0020B0  0E03               	movlw	3
  5552  0020B2  6E0D               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event,c
  5553  0020B4  0E00               	movlw	0
  5554  0020B6  6E0F               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata,c
  5555  0020B8  0E00               	movlw	0
  5556  0020BA  6E10               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata+1,c
  5557  0020BC  0E00               	movlw	0
  5558  0020BE  6E12               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size+1,c
  5559  0020C0  0E00               	movlw	0
  5560  0020C2  6E11               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size,c
  5561  0020C4  EC9E  F012         	call	_USER_USB_CALLBACK_EVENT_HANDLER	;wreg free
  5562                           
  5563                           ;usb_device.c: 2514: USBCtrlEPServiceComplete();
  5564  0020C8  EC21  F00B         	call	_USBCtrlEPServiceComplete	;wreg free
  5565  0020CC  0012               	return		;funcret
  5566  0020CE                     __end_of_USBCtrlTrfSetupHandler:
  5567                           	opt stack 0
  5568                           tblptru	equ	0xFF8
  5569                           tblptrh	equ	0xFF7
  5570                           tblptrl	equ	0xFF6
  5571                           tablat	equ	0xFF5
  5572                           prodh	equ	0xFF4
  5573                           prodl	equ	0xFF3
  5574                           postinc0	equ	0xFEE
  5575                           wreg	equ	0xFE8
  5576                           indf1	equ	0xFE7
  5577                           postinc1	equ	0xFE6
  5578                           postdec1	equ	0xFE5
  5579                           fsr1h	equ	0xFE2
  5580                           fsr1l	equ	0xFE1
  5581                           indf2	equ	0xFDF
  5582                           postinc2	equ	0xFDE
  5583                           postdec2	equ	0xFDD
  5584                           plusw2	equ	0xFDB
  5585                           fsr2h	equ	0xFDA
  5586                           fsr2l	equ	0xFD9
  5587                           status	equ	0xFD8
  5588                           
  5589 ;; *************** function _USBCtrlEPServiceComplete *****************
  5590 ;; Defined at:
  5591 ;;		line 1616 in file "usb/usb_device.c"
  5592 ;; Parameters:    Size  Location     Type
  5593 ;;		None
  5594 ;; Auto vars:     Size  Location     Type
  5595 ;;		None
  5596 ;; Return value:  Size  Location     Type
  5597 ;;                  1    wreg      void 
  5598 ;; Registers used:
  5599 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru, cstack
  5600 ;; Tracked objects:
  5601 ;;		On entry : 0/0
  5602 ;;		On exit  : 0/0
  5603 ;;		Unchanged: 0/0
  5604 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  5605 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  5606 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  5607 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  5608 ;;      Totals:         0       0       0       0       0       0       0       0       0       0
  5609 ;;Total ram usage:        0 bytes
  5610 ;; Hardware stack levels used:    1
  5611 ;; Hardware stack levels required when called:    2
  5612 ;; This function calls:
  5613 ;;		_USBCtrlEPAllowDataStage
  5614 ;;		_USBCtrlEPAllowStatusStage
  5615 ;; This function is called by:
  5616 ;;		_USBCtrlTrfSetupHandler
  5617 ;; This function uses a non-reentrant model
  5618 ;;
  5619                           
  5620                           	psect	text26
  5621  001642                     __ptext26:
  5622                           	opt stack 0
  5623  001642                     _USBCtrlEPServiceComplete:
  5624                           	opt stack 25
  5625                           
  5626                           ;usb_device.c: 1622: UCONbits.PKTDIS = 0;
  5627                           
  5628                           ;incstack = 0
  5629  001642  986D               	bcf	3949,4,c	;volatile
  5630                           
  5631                           ;usb_device.c: 1628: if(inPipes[0].info.bits.busy == 0)
  5632  001644  BE4E               	btfsc	_inPipes+3,7,c
  5633  001646  D03C               	goto	l227
  5634                           
  5635                           ;usb_device.c: 1629: {
  5636                           ;usb_device.c: 1630: if(outPipes[0].info.bits.busy == 1)
  5637  001648  0100               	movlb	0	; () banked
  5638  00164A  AFD4               	btfss	(_outPipes+3)& (0+255),7,b
  5639  00164C  D00E               	goto	l3217
  5640                           
  5641                           ; BSR set to: 0
  5642                           ;usb_device.c: 1631: {
  5643                           ;usb_device.c: 1632: controlTransferState = 2;
  5644  00164E  0E02               	movlw	2
  5645  001650  6E5B               	movwf	_controlTransferState,c
  5646                           
  5647                           ;usb_device.c: 1643: if(USBDeferOUTDataStagePackets == 0)
  5648  001652  0100               	movlb	0	; () banked
  5649  001654  51EF               	movf	_USBDeferOUTDataStagePackets& (0+255),w,b	;volatile
  5650  001656  B4D8               	btfsc	status,2,c
  5651                           
  5652                           ; BSR set to: 0
  5653                           ;usb_device.c: 1644: {
  5654                           ;usb_device.c: 1645: USBCtrlEPAllowDataStage();
  5655  001658  EC34  F00F         	call	_USBCtrlEPAllowDataStage	;wreg free
  5656                           
  5657                           ;usb_device.c: 1646: }
  5658                           ;usb_device.c: 1650: USBStatusStageEnabledFlag2 = 0;
  5659  00165C  0E00               	movlw	0
  5660  00165E  0100               	movlb	0	; () banked
  5661  001660  6FF1               	movwf	_USBStatusStageEnabledFlag2& (0+255),b	;volatile
  5662                           
  5663                           ; BSR set to: 0
  5664                           ;usb_device.c: 1651: USBStatusStageEnabledFlag1 = 0;
  5665  001662  0E00               	movlw	0
  5666  001664  0100               	movlb	0	; () banked
  5667  001666  6FF0               	movwf	_USBStatusStageEnabledFlag1& (0+255),b	;volatile
  5668                           
  5669                           ;usb_device.c: 1652: }
  5670  001668  0012               	return	
  5671  00166A                     l3217:
  5672                           
  5673                           ; BSR set to: 0
  5674                           ;usb_device.c: 1653: else
  5675                           ;usb_device.c: 1654: {
  5676                           ;usb_device.c: 1659: pBDTEntryEP0OutNext->CNT = 8;
  5677  00166A  EE20 F001          	lfsr	2,1
  5678  00166E  5057               	movf	_pBDTEntryEP0OutNext,w,c
  5679  001670  26D9               	addwf	fsr2l,f,c
  5680  001672  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  5681  001674  22DA               	addwfc	fsr2h,f,c
  5682  001676  0E08               	movlw	8
  5683  001678  6EDF               	movwf	indf2,c
  5684                           
  5685                           ;usb_device.c: 1660: pBDTEntryEP0OutNext->ADR = ((uint16_t)(&SetupPkt));
  5686  00167A  EE20 F002          	lfsr	2,2
  5687  00167E  5057               	movf	_pBDTEntryEP0OutNext,w,c
  5688  001680  26D9               	addwf	fsr2l,f,c
  5689  001682  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  5690  001684  22DA               	addwfc	fsr2h,f,c
  5691  001686  0E20               	movlw	32
  5692  001688  6EDE               	movwf	postinc2,c
  5693  00168A  0E04               	movlw	4
  5694  00168C  6EDD               	movwf	postdec2,c
  5695                           
  5696                           ; BSR set to: 0
  5697                           ;usb_device.c: 1661: pBDTEntryEP0OutNext->STAT.Val = 0x00|(0x08 & 0x08)|0x04;
  5698  00168E  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  5699  001692  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  5700  001696  0E0C               	movlw	12
  5701  001698  6EDF               	movwf	indf2,c
  5702                           
  5703                           ; BSR set to: 0
  5704                           ;usb_device.c: 1662: pBDTEntryEP0OutNext->STAT.Val |= 0x80;
  5705  00169A  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  5706  00169E  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  5707  0016A2  0E00               	movlw	0
  5708  0016A4  8EDB               	bsf	plusw2,7,c
  5709                           
  5710                           ;usb_device.c: 1663: pBDTEntryIn[0]->STAT.Val = 0x04;
  5711  0016A6  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  5712  0016AA  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  5713  0016AE  0E04               	movlw	4
  5714  0016B0  6EDF               	movwf	indf2,c
  5715                           
  5716                           ; BSR set to: 0
  5717                           ;usb_device.c: 1664: pBDTEntryIn[0]->STAT.Val |= 0x80;
  5718  0016B2  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  5719  0016B6  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  5720  0016BA  0E00               	movlw	0
  5721  0016BC  8EDB               	bsf	plusw2,7,c
  5722                           
  5723                           ; BSR set to: 0
  5724                           ;usb_device.c: 1665: }
  5725                           ;usb_device.c: 1666: }
  5726  0016BE  0012               	return	
  5727  0016C0                     l227:
  5728                           
  5729                           ;usb_device.c: 1667: else
  5730                           ;usb_device.c: 1668: {
  5731                           ;usb_device.c: 1669: if(SetupPkt.DataDir == (0x80>>7))
  5732  0016C0  0104               	movlb	4	; () banked
  5733  0016C2  AF20               	btfss	32,7,b	;volatile
  5734  0016C4  D013               	goto	l3237
  5735                           
  5736                           ; BSR set to: 4
  5737                           ;usb_device.c: 1670: {
  5738                           ;usb_device.c: 1671: controlTransferState = 1;
  5739  0016C6  0E01               	movlw	1
  5740  0016C8  6E5B               	movwf	_controlTransferState,c
  5741                           
  5742                           ;usb_device.c: 1685: if(USBDeferINDataStagePackets == 0)
  5743  0016CA  0100               	movlb	0	; () banked
  5744  0016CC  51EE               	movf	_USBDeferINDataStagePackets& (0+255),w,b	;volatile
  5745  0016CE  B4D8               	btfsc	status,2,c
  5746                           
  5747                           ; BSR set to: 0
  5748                           ;usb_device.c: 1686: {
  5749                           ;usb_device.c: 1687: USBCtrlEPAllowDataStage();
  5750  0016D0  EC34  F00F         	call	_USBCtrlEPAllowDataStage	;wreg free
  5751                           
  5752                           ;usb_device.c: 1688: }
  5753                           ;usb_device.c: 1710: USBStatusStageEnabledFlag2 = 0;
  5754  0016D4  0E00               	movlw	0
  5755  0016D6  0100               	movlb	0	; () banked
  5756  0016D8  6FF1               	movwf	_USBStatusStageEnabledFlag2& (0+255),b	;volatile
  5757                           
  5758                           ; BSR set to: 0
  5759                           ;usb_device.c: 1711: USBStatusStageEnabledFlag1 = 0;
  5760  0016DA  0E00               	movlw	0
  5761  0016DC  0100               	movlb	0	; () banked
  5762  0016DE  6FF0               	movwf	_USBStatusStageEnabledFlag1& (0+255),b	;volatile
  5763                           
  5764                           ; BSR set to: 0
  5765                           ;usb_device.c: 1712: if(USBDeferStatusStagePacket == 0)
  5766  0016E0  5059               	movf	_USBDeferStatusStagePacket,w,c	;volatile
  5767  0016E2  A4D8               	btfss	status,2,c
  5768  0016E4  0012               	return	
  5769                           
  5770                           ; BSR set to: 0
  5771                           ;usb_device.c: 1713: {
  5772                           ;usb_device.c: 1714: USBCtrlEPAllowStatusStage();
  5773  0016E6  ECFE  F00C         	call	_USBCtrlEPAllowStatusStage	;wreg free
  5774                           
  5775                           ;usb_device.c: 1715: }
  5776                           ;usb_device.c: 1716: }
  5777  0016EA  0012               	return	
  5778  0016EC                     l3237:
  5779                           
  5780                           ;usb_device.c: 1717: else
  5781                           ;usb_device.c: 1718: {
  5782                           ;usb_device.c: 1729: controlTransferState = 2;
  5783  0016EC  0E02               	movlw	2
  5784  0016EE  6E5B               	movwf	_controlTransferState,c
  5785                           
  5786                           ;usb_device.c: 1732: pBDTEntryEP0OutNext->CNT = 8;
  5787  0016F0  EE20 F001          	lfsr	2,1
  5788  0016F4  5057               	movf	_pBDTEntryEP0OutNext,w,c
  5789  0016F6  26D9               	addwf	fsr2l,f,c
  5790  0016F8  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  5791  0016FA  22DA               	addwfc	fsr2h,f,c
  5792  0016FC  0E08               	movlw	8
  5793  0016FE  6EDF               	movwf	indf2,c
  5794                           
  5795                           ;usb_device.c: 1733: pBDTEntryEP0OutNext->ADR = ((uint16_t)(&SetupPkt));
  5796  001700  EE20 F002          	lfsr	2,2
  5797  001704  5057               	movf	_pBDTEntryEP0OutNext,w,c
  5798  001706  26D9               	addwf	fsr2l,f,c
  5799  001708  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  5800  00170A  22DA               	addwfc	fsr2h,f,c
  5801  00170C  0E20               	movlw	32
  5802  00170E  6EDE               	movwf	postinc2,c
  5803  001710  0E04               	movlw	4
  5804  001712  6EDD               	movwf	postdec2,c
  5805                           
  5806                           ;usb_device.c: 1734: pBDTEntryEP0OutNext->STAT.Val = 0x04;
  5807  001714  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  5808  001718  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  5809  00171C  0E04               	movlw	4
  5810  00171E  6EDF               	movwf	indf2,c
  5811                           
  5812                           ;usb_device.c: 1735: pBDTEntryEP0OutNext->STAT.Val |= 0x80;
  5813  001720  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  5814  001724  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  5815  001728  0E00               	movlw	0
  5816  00172A  8EDB               	bsf	plusw2,7,c
  5817                           
  5818                           ;usb_device.c: 1738: USBStatusStageEnabledFlag2 = 0;
  5819  00172C  0E00               	movlw	0
  5820  00172E  0100               	movlb	0	; () banked
  5821  001730  6FF1               	movwf	_USBStatusStageEnabledFlag2& (0+255),b	;volatile
  5822                           
  5823                           ; BSR set to: 0
  5824                           ;usb_device.c: 1739: USBStatusStageEnabledFlag1 = 0;
  5825  001732  0E00               	movlw	0
  5826  001734  0100               	movlb	0	; () banked
  5827  001736  6FF0               	movwf	_USBStatusStageEnabledFlag1& (0+255),b	;volatile
  5828                           
  5829                           ; BSR set to: 0
  5830                           ;usb_device.c: 1740: if(USBDeferStatusStagePacket == 0)
  5831  001738  5059               	movf	_USBDeferStatusStagePacket,w,c	;volatile
  5832  00173A  A4D8               	btfss	status,2,c
  5833  00173C  0012               	return	
  5834                           
  5835                           ; BSR set to: 0
  5836                           ;usb_device.c: 1741: {
  5837                           ;usb_device.c: 1742: USBCtrlEPAllowStatusStage();
  5838  00173E  ECFE  F00C         	call	_USBCtrlEPAllowStatusStage	;wreg free
  5839  001742  0012               	return	
  5840  001744                     __end_of_USBCtrlEPServiceComplete:
  5841                           	opt stack 0
  5842                           tblptru	equ	0xFF8
  5843                           tblptrh	equ	0xFF7
  5844                           tblptrl	equ	0xFF6
  5845                           tablat	equ	0xFF5
  5846                           prodh	equ	0xFF4
  5847                           prodl	equ	0xFF3
  5848                           postinc0	equ	0xFEE
  5849                           wreg	equ	0xFE8
  5850                           indf1	equ	0xFE7
  5851                           postinc1	equ	0xFE6
  5852                           postdec1	equ	0xFE5
  5853                           fsr1h	equ	0xFE2
  5854                           fsr1l	equ	0xFE1
  5855                           indf2	equ	0xFDF
  5856                           postinc2	equ	0xFDE
  5857                           postdec2	equ	0xFDD
  5858                           plusw2	equ	0xFDB
  5859                           fsr2h	equ	0xFDA
  5860                           fsr2l	equ	0xFD9
  5861                           status	equ	0xFD8
  5862                           
  5863 ;; *************** function _USBCtrlEPAllowDataStage *****************
  5864 ;; Defined at:
  5865 ;;		line 1488 in file "usb/usb_device.c"
  5866 ;; Parameters:    Size  Location     Type
  5867 ;;		None
  5868 ;; Auto vars:     Size  Location     Type
  5869 ;;		None
  5870 ;; Return value:  Size  Location     Type
  5871 ;;                  1    wreg      void 
  5872 ;; Registers used:
  5873 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru, cstack
  5874 ;; Tracked objects:
  5875 ;;		On entry : 0/0
  5876 ;;		On exit  : 0/0
  5877 ;;		Unchanged: 0/0
  5878 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  5879 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  5880 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  5881 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  5882 ;;      Totals:         0       0       0       0       0       0       0       0       0       0
  5883 ;;Total ram usage:        0 bytes
  5884 ;; Hardware stack levels used:    1
  5885 ;; Hardware stack levels required when called:    1
  5886 ;; This function calls:
  5887 ;;		_USBCtrlTrfTxService
  5888 ;; This function is called by:
  5889 ;;		_USBCtrlEPServiceComplete
  5890 ;; This function uses a non-reentrant model
  5891 ;;
  5892                           
  5893                           	psect	text27
  5894  001E68                     __ptext27:
  5895                           	opt stack 0
  5896  001E68                     _USBCtrlEPAllowDataStage:
  5897                           	opt stack 25
  5898                           
  5899                           ;usb_device.c: 1490: USBDeferINDataStagePackets = 0;
  5900                           
  5901                           ;incstack = 0
  5902  001E68  0E00               	movlw	0
  5903  001E6A  0100               	movlb	0	; () banked
  5904  001E6C  6FEE               	movwf	_USBDeferINDataStagePackets& (0+255),b	;volatile
  5905                           
  5906                           ;usb_device.c: 1491: USBDeferOUTDataStagePackets = 0;
  5907  001E6E  0E00               	movlw	0
  5908  001E70  0100               	movlb	0	; () banked
  5909  001E72  6FEF               	movwf	_USBDeferOUTDataStagePackets& (0+255),b	;volatile
  5910                           
  5911                           ; BSR set to: 0
  5912                           ;usb_device.c: 1493: if(controlTransferState == 2)
  5913  001E74  0E02               	movlw	2
  5914  001E76  185B               	xorwf	_controlTransferState,w,c
  5915  001E78  A4D8               	btfss	status,2,c
  5916  001E7A  D01F               	goto	l2997
  5917                           
  5918                           ; BSR set to: 0
  5919                           ;usb_device.c: 1494: {
  5920                           ;usb_device.c: 1496: pBDTEntryEP0OutNext->CNT = 8;
  5921  001E7C  EE20 F001          	lfsr	2,1
  5922  001E80  5057               	movf	_pBDTEntryEP0OutNext,w,c
  5923  001E82  26D9               	addwf	fsr2l,f,c
  5924  001E84  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  5925  001E86  22DA               	addwfc	fsr2h,f,c
  5926  001E88  0E08               	movlw	8
  5927  001E8A  6EDF               	movwf	indf2,c
  5928                           
  5929                           ;usb_device.c: 1497: pBDTEntryEP0OutNext->ADR = ((uint16_t)(&CtrlTrfData));
  5930  001E8C  EE20 F002          	lfsr	2,2
  5931  001E90  5057               	movf	_pBDTEntryEP0OutNext,w,c
  5932  001E92  26D9               	addwf	fsr2l,f,c
  5933  001E94  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  5934  001E96  22DA               	addwfc	fsr2h,f,c
  5935  001E98  0E28               	movlw	40
  5936  001E9A  6EDE               	movwf	postinc2,c
  5937  001E9C  0E04               	movlw	4
  5938  001E9E  6EDD               	movwf	postdec2,c
  5939                           
  5940                           ; BSR set to: 0
  5941                           ;usb_device.c: 1498: pBDTEntryEP0OutNext->STAT.Val = 0x40|(0x08 & 0x08);
  5942  001EA0  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  5943  001EA4  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  5944  001EA8  0E48               	movlw	72
  5945  001EAA  6EDF               	movwf	indf2,c
  5946                           
  5947                           ; BSR set to: 0
  5948                           ;usb_device.c: 1499: pBDTEntryEP0OutNext->STAT.Val |= 0x80;
  5949  001EAC  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  5950  001EB0  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  5951  001EB4  0E00               	movlw	0
  5952  001EB6  8EDB               	bsf	plusw2,7,c
  5953                           
  5954                           ;usb_device.c: 1500: }
  5955  001EB8  0012               	return	
  5956  001EBA                     l2997:
  5957                           
  5958                           ; BSR set to: 0
  5959                           ;usb_device.c: 1501: else
  5960                           ;usb_device.c: 1502: {
  5961                           ;usb_device.c: 1505: if(SetupPkt.wLength < inPipes[0].wCount.Val)
  5962  001EBA  504F               	movf	_inPipes+4,w,c
  5963  001EBC  0104               	movlb	4	; () banked
  5964  001EBE  5D26               	subwf	38,w,b	;volatile
  5965  001EC0  5050               	movf	_inPipes+5,w,c
  5966  001EC2  0104               	movlb	4	; () banked
  5967  001EC4  5927               	subwfb	39,w,b	;volatile
  5968  001EC6  B0D8               	btfsc	status,0,c
  5969  001EC8  D004               	goto	l3001
  5970                           
  5971                           ; BSR set to: 4
  5972                           ;usb_device.c: 1506: {
  5973                           ;usb_device.c: 1507: inPipes[0].wCount.Val = SetupPkt.wLength;
  5974  001ECA  C426 F04F          	movff	1062,_inPipes+4	;volatile
  5975  001ECE  C427 F050          	movff	1063,_inPipes+5	;volatile
  5976  001ED2                     l3001:
  5977                           
  5978                           ; BSR set to: 4
  5979                           ;usb_device.c: 1508: }
  5980                           ;usb_device.c: 1509: USBCtrlTrfTxService();
  5981  001ED2  EC65  F00D         	call	_USBCtrlTrfTxService	;wreg free
  5982                           
  5983                           ;usb_device.c: 1514: pBDTEntryIn[0]->ADR = ((uint16_t)(&CtrlTrfData));
  5984  001ED6  EE20 F002          	lfsr	2,2
  5985  001EDA  5051               	movf	_pBDTEntryIn,w,c
  5986  001EDC  26D9               	addwf	fsr2l,f,c
  5987  001EDE  5052               	movf	_pBDTEntryIn+1,w,c
  5988  001EE0  22DA               	addwfc	fsr2h,f,c
  5989  001EE2  0E28               	movlw	40
  5990  001EE4  6EDE               	movwf	postinc2,c
  5991  001EE6  0E04               	movlw	4
  5992  001EE8  6EDD               	movwf	postdec2,c
  5993                           
  5994                           ;usb_device.c: 1515: pBDTEntryIn[0]->STAT.Val = 0x40|(0x08 & 0x08);
  5995  001EEA  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  5996  001EEE  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  5997  001EF2  0E48               	movlw	72
  5998  001EF4  6EDF               	movwf	indf2,c
  5999                           
  6000                           ;usb_device.c: 1516: pBDTEntryIn[0]->STAT.Val |= 0x80;
  6001  001EF6  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  6002  001EFA  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  6003  001EFE  0E00               	movlw	0
  6004  001F00  8EDB               	bsf	plusw2,7,c
  6005  001F02  0012               	return	
  6006  001F04                     __end_of_USBCtrlEPAllowDataStage:
  6007                           	opt stack 0
  6008                           tblptru	equ	0xFF8
  6009                           tblptrh	equ	0xFF7
  6010                           tblptrl	equ	0xFF6
  6011                           tablat	equ	0xFF5
  6012                           prodh	equ	0xFF4
  6013                           prodl	equ	0xFF3
  6014                           postinc0	equ	0xFEE
  6015                           wreg	equ	0xFE8
  6016                           indf1	equ	0xFE7
  6017                           postinc1	equ	0xFE6
  6018                           postdec1	equ	0xFE5
  6019                           fsr1h	equ	0xFE2
  6020                           fsr1l	equ	0xFE1
  6021                           indf2	equ	0xFDF
  6022                           postinc2	equ	0xFDE
  6023                           postdec2	equ	0xFDD
  6024                           plusw2	equ	0xFDB
  6025                           fsr2h	equ	0xFDA
  6026                           fsr2l	equ	0xFD9
  6027                           status	equ	0xFD8
  6028                           
  6029 ;; *************** function _USBCheckStdRequest *****************
  6030 ;; Defined at:
  6031 ;;		line 2686 in file "usb/usb_device.c"
  6032 ;; Parameters:    Size  Location     Type
  6033 ;;		None
  6034 ;; Auto vars:     Size  Location     Type
  6035 ;;		None
  6036 ;; Return value:  Size  Location     Type
  6037 ;;                  1    wreg      void 
  6038 ;; Registers used:
  6039 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru, prodl, prodh, cstack
  6040 ;; Tracked objects:
  6041 ;;		On entry : 0/0
  6042 ;;		On exit  : 0/0
  6043 ;;		Unchanged: 0/0
  6044 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  6045 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  6046 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  6047 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  6048 ;;      Totals:         0       0       0       0       0       0       0       0       0       0
  6049 ;;Total ram usage:        0 bytes
  6050 ;; Hardware stack levels used:    1
  6051 ;; Hardware stack levels required when called:    5
  6052 ;; This function calls:
  6053 ;;		_USBStdFeatureReqHandler
  6054 ;;		_USBStdGetDscHandler
  6055 ;;		_USBStdGetStatusHandler
  6056 ;;		_USBStdSetCfgHandler
  6057 ;;		_USER_USB_CALLBACK_EVENT_HANDLER
  6058 ;; This function is called by:
  6059 ;;		_USBCtrlTrfSetupHandler
  6060 ;; This function uses a non-reentrant model
  6061 ;;
  6062                           
  6063                           	psect	text28
  6064  001922                     __ptext28:
  6065                           	opt stack 0
  6066  001922                     _USBCheckStdRequest:
  6067                           	opt stack 22
  6068                           
  6069                           ;usb_device.c: 2688: if(SetupPkt.RequestType != (0x00>>5)) return;
  6070                           
  6071                           ;incstack = 0
  6072  001922  0104               	movlb	4	; () banked
  6073  001924  3920               	swapf	32,w,b	;volatile
  6074  001926  32E8               	rrcf	wreg,f,c
  6075  001928  0B03               	andlw	3
  6076  00192A  0900               	iorlw	0
  6077  00192C  A4D8               	btfss	status,2,c
  6078  00192E  0012               	return	
  6079  001930  D043               	goto	l3335
  6080  001932                     l352:
  6081                           
  6082                           ; BSR set to: 4
  6083                           ;usb_device.c: 2693: inPipes[0].info.bits.busy = 1;
  6084  001932  8E4E               	bsf	_inPipes+3,7,c
  6085                           
  6086                           ; BSR set to: 4
  6087                           ;usb_device.c: 2694: USBDeviceState = ADR_PENDING_STATE;
  6088  001934  0E08               	movlw	8
  6089  001936  6E5A               	movwf	_USBDeviceState,c
  6090                           
  6091                           ;usb_device.c: 2696: break;
  6092  001938  0012               	return	
  6093  00193A                     l3305:
  6094                           
  6095                           ; BSR set to: 4
  6096                           ;usb_device.c: 2698: USBStdGetDscHandler();
  6097  00193A  EC05  F00A         	call	_USBStdGetDscHandler	;wreg free
  6098                           
  6099                           ;usb_device.c: 2699: break;
  6100  00193E  0012               	return	
  6101  001940                     l3307:
  6102                           
  6103                           ;usb_device.c: 2701: USBStdSetCfgHandler();
  6104  001940  EC23  F00C         	call	_USBStdSetCfgHandler	;wreg free
  6105                           
  6106                           ;usb_device.c: 2702: break;
  6107  001944  0012               	return	
  6108  001946                     l3309:
  6109                           
  6110                           ;usb_device.c: 2704: inPipes[0].pSrc.bRam = (uint8_t*)&USBActiveConfiguration;
  6111  001946  0E5D               	movlw	low _USBActiveConfiguration
  6112  001948  6E4B               	movwf	_inPipes,c
  6113  00194A  0E00               	movlw	high _USBActiveConfiguration
  6114  00194C  6E4C               	movwf	_inPipes+1,c
  6115                           
  6116                           ;usb_device.c: 2705: inPipes[0].info.bits.ctrl_trf_mem = 0x01;
  6117  00194E  804E               	bsf	_inPipes+3,0,c
  6118                           
  6119                           ;usb_device.c: 2706: inPipes[0].wCount.v[0] = 1;
  6120  001950  0E01               	movlw	1
  6121  001952  6E4F               	movwf	_inPipes+4,c
  6122                           
  6123                           ;usb_device.c: 2707: inPipes[0].info.bits.busy = 1;
  6124  001954  8E4E               	bsf	_inPipes+3,7,c
  6125                           
  6126                           ;usb_device.c: 2708: break;
  6127  001956  0012               	return	
  6128  001958                     l3317:
  6129                           
  6130                           ;usb_device.c: 2710: USBStdGetStatusHandler();
  6131  001958  EC90  F00E         	call	_USBStdGetStatusHandler	;wreg free
  6132                           
  6133                           ;usb_device.c: 2711: break;
  6134  00195C  0012               	return	
  6135  00195E                     l3319:
  6136                           
  6137                           ;usb_device.c: 2713: case 3:
  6138                           ;usb_device.c: 2714: USBStdFeatureReqHandler();
  6139  00195E  EC5A  F007         	call	_USBStdFeatureReqHandler	;wreg free
  6140                           
  6141                           ;usb_device.c: 2715: break;
  6142  001962  0012               	return	
  6143  001964                     l3321:
  6144                           
  6145                           ;usb_device.c: 2717: inPipes[0].pSrc.bRam = (uint8_t*)&USBAlternateInterface[SetupPkt.bI
      +                          ntfID];
  6146  001964  0104               	movlb	4	; () banked
  6147  001966  5124               	movf	36,w,b	;volatile
  6148  001968  0D01               	mullw	1
  6149  00196A  0E5E               	movlw	low _USBAlternateInterface
  6150  00196C  24F3               	addwf	prodl,w,c
  6151  00196E  6E4B               	movwf	_inPipes,c
  6152  001970  0E00               	movlw	high _USBAlternateInterface
  6153  001972  20F4               	addwfc	prodh,w,c
  6154  001974  6E4C               	movwf	_inPipes+1,c
  6155                           
  6156                           ; BSR set to: 4
  6157                           ;usb_device.c: 2718: inPipes[0].info.bits.ctrl_trf_mem = 0x01;
  6158  001976  804E               	bsf	_inPipes+3,0,c
  6159                           
  6160                           ; BSR set to: 4
  6161                           ;usb_device.c: 2719: inPipes[0].wCount.v[0] = 1;
  6162  001978  0E01               	movlw	1
  6163  00197A  6E4F               	movwf	_inPipes+4,c
  6164                           
  6165                           ; BSR set to: 4
  6166                           ;usb_device.c: 2720: inPipes[0].info.bits.busy = 1;
  6167  00197C  8E4E               	bsf	_inPipes+3,7,c
  6168                           
  6169                           ;usb_device.c: 2721: break;
  6170  00197E  0012               	return	
  6171  001980                     l361:
  6172                           
  6173                           ; BSR set to: 4
  6174                           ;usb_device.c: 2723: inPipes[0].info.bits.busy = 1;
  6175  001980  8E4E               	bsf	_inPipes+3,7,c
  6176                           
  6177                           ; BSR set to: 4
  6178                           ;usb_device.c: 2724: USBAlternateInterface[SetupPkt.bIntfID] = SetupPkt.bAltID;
  6179  001982  0104               	movlb	4	; () banked
  6180  001984  5124               	movf	36,w,b	;volatile
  6181  001986  0D01               	mullw	1
  6182  001988  0E5E               	movlw	low _USBAlternateInterface
  6183  00198A  24F3               	addwf	prodl,w,c
  6184  00198C  6ED9               	movwf	fsr2l,c
  6185  00198E  0E00               	movlw	high _USBAlternateInterface
  6186  001990  20F4               	addwfc	prodh,w,c
  6187  001992  6EDA               	movwf	fsr2h,c
  6188  001994  C422 FFDF          	movff	1058,indf2	;volatile
  6189                           
  6190                           ;usb_device.c: 2725: break;
  6191  001998  0012               	return	
  6192  00199A                     l3331:
  6193                           
  6194                           ; BSR set to: 4
  6195                           ;usb_device.c: 2727: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_SET_DESCRIPTOR,0,0);
  6196  00199A  0E00               	movlw	0
  6197  00199C  6E0E               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event+1,c
  6198  00199E  0E02               	movlw	2
  6199  0019A0  6E0D               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event,c
  6200  0019A2  0E00               	movlw	0
  6201  0019A4  6E0F               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata,c
  6202  0019A6  0E00               	movlw	0
  6203  0019A8  6E10               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata+1,c
  6204  0019AA  0E00               	movlw	0
  6205  0019AC  6E12               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size+1,c
  6206  0019AE  0E00               	movlw	0
  6207  0019B0  6E11               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size,c
  6208  0019B2  EC9E  F012         	call	_USER_USB_CALLBACK_EVENT_HANDLER	;wreg free
  6209                           
  6210                           ;usb_device.c: 2732: }
  6211                           
  6212                           ;usb_device.c: 2731: break;
  6213                           
  6214                           ;usb_device.c: 2730: default:
  6215                           
  6216                           ;usb_device.c: 2729: case 12:
  6217                           
  6218                           ;usb_device.c: 2728: break;
  6219  0019B6  0012               	return	
  6220  0019B8                     l3335:
  6221  0019B8  0104               	movlb	4	; () banked
  6222  0019BA  5121               	movf	33,w,b	;volatile
  6223                           
  6224                           ; Switch size 1, requested type "space"
  6225                           ; Number of cases is 11, Range of values is 0 to 12
  6226                           ; switch strategies available:
  6227                           ; Name         Instructions Cycles
  6228                           ; simple_byte           34    18 (average)
  6229                           ;	Chosen strategy is simple_byte
  6230  0019BC  0A00               	xorlw	0	; case 0
  6231  0019BE  B4D8               	btfsc	status,2,c
  6232  0019C0  D7CB               	goto	l3317
  6233  0019C2  0A01               	xorlw	1	; case 1
  6234  0019C4  B4D8               	btfsc	status,2,c
  6235  0019C6  D7CB               	goto	l3319
  6236  0019C8  0A02               	xorlw	2	; case 3
  6237  0019CA  B4D8               	btfsc	status,2,c
  6238  0019CC  D7C8               	goto	l3319
  6239  0019CE  0A06               	xorlw	6	; case 5
  6240  0019D0  B4D8               	btfsc	status,2,c
  6241  0019D2  D7AF               	goto	l352
  6242  0019D4  0A03               	xorlw	3	; case 6
  6243  0019D6  B4D8               	btfsc	status,2,c
  6244  0019D8  D7B0               	goto	l3305
  6245  0019DA  0A01               	xorlw	1	; case 7
  6246  0019DC  B4D8               	btfsc	status,2,c
  6247  0019DE  D7DD               	goto	l3331
  6248  0019E0  0A0F               	xorlw	15	; case 8
  6249  0019E2  B4D8               	btfsc	status,2,c
  6250  0019E4  D7B0               	goto	l3309
  6251  0019E6  0A01               	xorlw	1	; case 9
  6252  0019E8  B4D8               	btfsc	status,2,c
  6253  0019EA  D7AA               	goto	l3307
  6254  0019EC  0A03               	xorlw	3	; case 10
  6255  0019EE  B4D8               	btfsc	status,2,c
  6256  0019F0  D7B9               	goto	l3321
  6257  0019F2  0A01               	xorlw	1	; case 11
  6258  0019F4  B4D8               	btfsc	status,2,c
  6259  0019F6  D7C4               	goto	l361
  6260  0019F8  0A07               	xorlw	7	; case 12
  6261  0019FA  0012               	return	
  6262  0019FC                     __end_of_USBCheckStdRequest:
  6263                           	opt stack 0
  6264                           tblptru	equ	0xFF8
  6265                           tblptrh	equ	0xFF7
  6266                           tblptrl	equ	0xFF6
  6267                           tablat	equ	0xFF5
  6268                           prodh	equ	0xFF4
  6269                           prodl	equ	0xFF3
  6270                           postinc0	equ	0xFEE
  6271                           wreg	equ	0xFE8
  6272                           indf1	equ	0xFE7
  6273                           postinc1	equ	0xFE6
  6274                           postdec1	equ	0xFE5
  6275                           fsr1h	equ	0xFE2
  6276                           fsr1l	equ	0xFE1
  6277                           indf2	equ	0xFDF
  6278                           postinc2	equ	0xFDE
  6279                           postdec2	equ	0xFDD
  6280                           plusw2	equ	0xFDB
  6281                           fsr2h	equ	0xFDA
  6282                           fsr2l	equ	0xFD9
  6283                           status	equ	0xFD8
  6284                           
  6285 ;; *************** function _USBStdSetCfgHandler *****************
  6286 ;; Defined at:
  6287 ;;		line 1968 in file "usb/usb_device.c"
  6288 ;; Parameters:    Size  Location     Type
  6289 ;;		None
  6290 ;; Auto vars:     Size  Location     Type
  6291 ;;  i               1   20[COMRAM] unsigned char 
  6292 ;; Return value:  Size  Location     Type
  6293 ;;                  1    wreg      void 
  6294 ;; Registers used:
  6295 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  6296 ;; Tracked objects:
  6297 ;;		On entry : 0/0
  6298 ;;		On exit  : 0/0
  6299 ;;		Unchanged: 0/0
  6300 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  6301 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  6302 ;;      Locals:         1       0       0       0       0       0       0       0       0       0
  6303 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  6304 ;;      Totals:         1       0       0       0       0       0       0       0       0       0
  6305 ;;Total ram usage:        1 bytes
  6306 ;; Hardware stack levels used:    1
  6307 ;; Hardware stack levels required when called:    4
  6308 ;; This function calls:
  6309 ;;		_USER_USB_CALLBACK_EVENT_HANDLER
  6310 ;;		_memset
  6311 ;; This function is called by:
  6312 ;;		_USBCheckStdRequest
  6313 ;; This function uses a non-reentrant model
  6314 ;;
  6315                           
  6316                           	psect	text29
  6317  001846                     __ptext29:
  6318                           	opt stack 0
  6319  001846                     _USBStdSetCfgHandler:
  6320                           	opt stack 22
  6321                           
  6322                           ;usb_device.c: 1970: uint8_t i;
  6323                           ;usb_device.c: 1973: inPipes[0].info.bits.busy = 1;
  6324                           
  6325                           ;incstack = 0
  6326  001846  8E4E               	bsf	_inPipes+3,7,c
  6327                           
  6328                           ;usb_device.c: 1976: memset((void*)&UEP1,0x00,(1));;
  6329  001848  0E71               	movlw	113
  6330  00184A  6E01               	movwf	memset@p1,c
  6331  00184C  0E0F               	movlw	15
  6332  00184E  6E02               	movwf	memset@p1+1,c
  6333  001850  0E00               	movlw	0
  6334  001852  6E04               	movwf	memset@c+1,c
  6335  001854  0E00               	movlw	0
  6336  001856  6E03               	movwf	memset@c,c
  6337  001858  0E00               	movlw	0
  6338  00185A  6E06               	movwf	memset@n+1,c
  6339  00185C  0E01               	movlw	1
  6340  00185E  6E05               	movwf	memset@n,c
  6341  001860  EC74  F014         	call	_memset	;wreg free
  6342                           
  6343                           ;usb_device.c: 1979: memset((void*)&BDT[0], 0x00, sizeof(BDT));
  6344  001864  0E00               	movlw	0
  6345  001866  6E01               	movwf	memset@p1,c
  6346  001868  0E04               	movlw	4
  6347  00186A  6E02               	movwf	memset@p1+1,c
  6348  00186C  0E00               	movlw	0
  6349  00186E  6E04               	movwf	memset@c+1,c
  6350  001870  0E00               	movlw	0
  6351  001872  6E03               	movwf	memset@c,c
  6352  001874  0E00               	movlw	0
  6353  001876  6E06               	movwf	memset@n+1,c
  6354  001878  0E20               	movlw	32
  6355  00187A  6E05               	movwf	memset@n,c
  6356  00187C  EC74  F014         	call	_memset	;wreg free
  6357                           
  6358                           ;usb_device.c: 1982: UCONbits.PPBRST = 1;
  6359  001880  8C6D               	bsf	3949,6,c	;volatile
  6360                           
  6361                           ;usb_device.c: 1987: for(i = 0; i < (uint8_t)(1+1u); i++)
  6362  001882  0E00               	movlw	0
  6363  001884  6E15               	movwf	USBStdSetCfgHandler@i,c
  6364  001886                     l3017:
  6365  001886  0E01               	movlw	1
  6366  001888  6415               	cpfsgt	USBStdSetCfgHandler@i,c
  6367  00188A  D001               	goto	l3021
  6368  00188C  D016               	goto	l3027
  6369  00188E                     l3021:
  6370                           
  6371                           ;usb_device.c: 1988: {
  6372                           ;usb_device.c: 1989: ep_data_in[i].Val = 0u;
  6373  00188E  5015               	movf	USBStdSetCfgHandler@i,w,c
  6374  001890  0D01               	mullw	1
  6375  001892  0EE5               	movlw	low _ep_data_in
  6376  001894  24F3               	addwf	prodl,w,c
  6377  001896  6ED9               	movwf	fsr2l,c
  6378  001898  0E00               	movlw	high _ep_data_in
  6379  00189A  20F4               	addwfc	prodh,w,c
  6380  00189C  6EDA               	movwf	fsr2h,c
  6381  00189E  0E00               	movlw	0
  6382  0018A0  6EDF               	movwf	indf2,c
  6383                           
  6384                           ;usb_device.c: 1990: ep_data_out[i].Val = 0u;
  6385  0018A2  5015               	movf	USBStdSetCfgHandler@i,w,c
  6386  0018A4  0D01               	mullw	1
  6387  0018A6  0EE7               	movlw	low _ep_data_out
  6388  0018A8  24F3               	addwf	prodl,w,c
  6389  0018AA  6ED9               	movwf	fsr2l,c
  6390  0018AC  0E00               	movlw	high _ep_data_out
  6391  0018AE  20F4               	addwfc	prodh,w,c
  6392  0018B0  6EDA               	movwf	fsr2h,c
  6393  0018B2  0E00               	movlw	0
  6394  0018B4  6EDF               	movwf	indf2,c
  6395  0018B6  2A15               	incf	USBStdSetCfgHandler@i,f,c
  6396  0018B8  D7E6               	goto	l3017
  6397  0018BA                     l3027:
  6398                           
  6399                           ;usb_device.c: 1991: }
  6400                           ;usb_device.c: 1994: memset((void*)&USBAlternateInterface,0x00,1);
  6401  0018BA  0E5E               	movlw	low _USBAlternateInterface
  6402  0018BC  6E01               	movwf	memset@p1,c
  6403  0018BE  0E00               	movlw	high _USBAlternateInterface
  6404  0018C0  6E02               	movwf	memset@p1+1,c
  6405  0018C2  0E00               	movlw	0
  6406  0018C4  6E04               	movwf	memset@c+1,c
  6407  0018C6  0E00               	movlw	0
  6408  0018C8  6E03               	movwf	memset@c,c
  6409  0018CA  0E00               	movlw	0
  6410  0018CC  6E06               	movwf	memset@n+1,c
  6411  0018CE  0E01               	movlw	1
  6412  0018D0  6E05               	movwf	memset@n,c
  6413  0018D2  EC74  F014         	call	_memset	;wreg free
  6414                           
  6415                           ;usb_device.c: 1997: UCONbits.PPBRST = 0;
  6416  0018D6  9C6D               	bcf	3949,6,c	;volatile
  6417                           
  6418                           ;usb_device.c: 1999: pBDTEntryIn[0] = (volatile BDT_ENTRY*)&BDT[2];
  6419  0018D8  0E08               	movlw	8
  6420  0018DA  6E51               	movwf	_pBDTEntryIn,c
  6421  0018DC  0E04               	movlw	4
  6422  0018DE  6E52               	movwf	_pBDTEntryIn+1,c
  6423                           
  6424                           ;usb_device.c: 2002: pBDTEntryEP0OutCurrent = (volatile BDT_ENTRY*)&BDT[0];
  6425  0018E0  0E00               	movlw	0
  6426  0018E2  6E55               	movwf	_pBDTEntryEP0OutCurrent,c
  6427  0018E4  0E04               	movlw	4
  6428  0018E6  6E56               	movwf	_pBDTEntryEP0OutCurrent+1,c
  6429                           
  6430                           ;usb_device.c: 2003: pBDTEntryEP0OutNext = pBDTEntryEP0OutCurrent;
  6431  0018E8  C055  F057         	movff	_pBDTEntryEP0OutCurrent,_pBDTEntryEP0OutNext
  6432  0018EC  C056  F058         	movff	_pBDTEntryEP0OutCurrent+1,_pBDTEntryEP0OutNext+1
  6433                           
  6434                           ;usb_device.c: 2006: USBActiveConfiguration = SetupPkt.bConfigurationValue;
  6435  0018F0  C422 F05D          	movff	1058,_USBActiveConfiguration	;volatile
  6436                           
  6437                           ;usb_device.c: 2009: if(USBActiveConfiguration == 0)
  6438  0018F4  505D               	movf	_USBActiveConfiguration,w,c
  6439  0018F6  A4D8               	btfss	status,2,c
  6440  0018F8  D003               	goto	l3043
  6441                           
  6442                           ;usb_device.c: 2010: {
  6443                           ;usb_device.c: 2012: USBDeviceState = ADDRESS_STATE;
  6444  0018FA  0E10               	movlw	16
  6445  0018FC  6E5A               	movwf	_USBDeviceState,c
  6446                           
  6447                           ;usb_device.c: 2013: }
  6448  0018FE  0012               	return	
  6449  001900                     l3043:
  6450                           
  6451                           ;usb_device.c: 2014: else
  6452                           ;usb_device.c: 2015: {
  6453                           ;usb_device.c: 2017: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_CONFIGURED,(void*)&USBActiveC
      +                          onfiguration,1);
  6454  001900  0E00               	movlw	0
  6455  001902  6E0E               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event+1,c
  6456  001904  0E01               	movlw	1
  6457  001906  6E0D               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event,c
  6458  001908  0E5D               	movlw	low _USBActiveConfiguration
  6459  00190A  6E0F               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata,c
  6460  00190C  0E00               	movlw	high _USBActiveConfiguration
  6461  00190E  6E10               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@pdata+1,c
  6462  001910  0E00               	movlw	0
  6463  001912  6E12               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size+1,c
  6464  001914  0E01               	movlw	1
  6465  001916  6E11               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size,c
  6466  001918  EC9E  F012         	call	_USER_USB_CALLBACK_EVENT_HANDLER	;wreg free
  6467                           
  6468                           ;usb_device.c: 2022: USBDeviceState = CONFIGURED_STATE;
  6469  00191C  0E20               	movlw	32
  6470  00191E  6E5A               	movwf	_USBDeviceState,c
  6471  001920  0012               	return	
  6472  001922                     __end_of_USBStdSetCfgHandler:
  6473                           	opt stack 0
  6474                           tblptru	equ	0xFF8
  6475                           tblptrh	equ	0xFF7
  6476                           tblptrl	equ	0xFF6
  6477                           tablat	equ	0xFF5
  6478                           prodh	equ	0xFF4
  6479                           prodl	equ	0xFF3
  6480                           postinc0	equ	0xFEE
  6481                           wreg	equ	0xFE8
  6482                           indf1	equ	0xFE7
  6483                           postinc1	equ	0xFE6
  6484                           postdec1	equ	0xFE5
  6485                           fsr1h	equ	0xFE2
  6486                           fsr1l	equ	0xFE1
  6487                           indf2	equ	0xFDF
  6488                           postinc2	equ	0xFDE
  6489                           postdec2	equ	0xFDD
  6490                           plusw2	equ	0xFDB
  6491                           fsr2h	equ	0xFDA
  6492                           fsr2l	equ	0xFD9
  6493                           status	equ	0xFD8
  6494                           
  6495 ;; *************** function _memset *****************
  6496 ;; Defined at:
  6497 ;;		line 8 in file "C:\Program Files (x86)\Microchip\xc8\v1.38\sources\common\memset.c"
  6498 ;; Parameters:    Size  Location     Type
  6499 ;;  p1              2    0[COMRAM] PTR void 
  6500 ;;		 -> USBAlternateInterface(1), BDT(32), UEP1(1), 
  6501 ;;  c               2    2[COMRAM] int 
  6502 ;;  n               2    4[COMRAM] unsigned int 
  6503 ;; Auto vars:     Size  Location     Type
  6504 ;;  p               2    6[COMRAM] PTR unsigned char 
  6505 ;;		 -> USBAlternateInterface(1), BDT(32), UEP1(1), 
  6506 ;; Return value:  Size  Location     Type
  6507 ;;                  2    0[COMRAM] PTR void 
  6508 ;; Registers used:
  6509 ;;		wreg, fsr2l, fsr2h, status,2, status,0
  6510 ;; Tracked objects:
  6511 ;;		On entry : 0/0
  6512 ;;		On exit  : 0/0
  6513 ;;		Unchanged: 0/0
  6514 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  6515 ;;      Params:         6       0       0       0       0       0       0       0       0       0
  6516 ;;      Locals:         2       0       0       0       0       0       0       0       0       0
  6517 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  6518 ;;      Totals:         8       0       0       0       0       0       0       0       0       0
  6519 ;;Total ram usage:        8 bytes
  6520 ;; Hardware stack levels used:    1
  6521 ;; This function calls:
  6522 ;;		Nothing
  6523 ;; This function is called by:
  6524 ;;		_USBDeviceInit
  6525 ;;		_USBStdSetCfgHandler
  6526 ;; This function uses a non-reentrant model
  6527 ;;
  6528                           
  6529                           	psect	text30
  6530  0028E8                     __ptext30:
  6531                           	opt stack 0
  6532  0028E8                     _memset:
  6533                           	opt stack 28
  6534                           
  6535                           ;incstack = 0
  6536  0028E8  C001  F007         	movff	memset@p1,memset@p
  6537  0028EC  C002  F008         	movff	memset@p1+1,memset@p+1
  6538  0028F0  D008               	goto	l2891
  6539  0028F2                     l2887:
  6540  0028F2  C007  FFD9         	movff	memset@p,fsr2l
  6541  0028F6  C008  FFDA         	movff	memset@p+1,fsr2h
  6542  0028FA  C003  FFDF         	movff	memset@c,indf2
  6543  0028FE  4A07               	infsnz	memset@p,f,c
  6544  002900  2A08               	incf	memset@p+1,f,c
  6545  002902                     l2891:
  6546  002902  0605               	decf	memset@n,f,c
  6547  002904  A0D8               	btfss	status,0,c
  6548  002906  0606               	decf	memset@n+1,f,c
  6549  002908  2805               	incf	memset@n,w,c
  6550  00290A  E1F3               	bnz	l2887
  6551  00290C  2806               	incf	memset@n+1,w,c
  6552  00290E  B4D8               	btfsc	status,2,c
  6553  002910  0012               	return	
  6554  002912  D7EF               	goto	l2887
  6555  002914                     __end_of_memset:
  6556                           	opt stack 0
  6557                           tblptru	equ	0xFF8
  6558                           tblptrh	equ	0xFF7
  6559                           tblptrl	equ	0xFF6
  6560                           tablat	equ	0xFF5
  6561                           prodh	equ	0xFF4
  6562                           prodl	equ	0xFF3
  6563                           postinc0	equ	0xFEE
  6564                           wreg	equ	0xFE8
  6565                           indf1	equ	0xFE7
  6566                           postinc1	equ	0xFE6
  6567                           postdec1	equ	0xFE5
  6568                           fsr1h	equ	0xFE2
  6569                           fsr1l	equ	0xFE1
  6570                           indf2	equ	0xFDF
  6571                           postinc2	equ	0xFDE
  6572                           postdec2	equ	0xFDD
  6573                           plusw2	equ	0xFDB
  6574                           fsr2h	equ	0xFDA
  6575                           fsr2l	equ	0xFD9
  6576                           status	equ	0xFD8
  6577                           
  6578 ;; *************** function _USBStdGetStatusHandler *****************
  6579 ;; Defined at:
  6580 ;;		line 2129 in file "usb/usb_device.c"
  6581 ;; Parameters:    Size  Location     Type
  6582 ;;		None
  6583 ;; Auto vars:     Size  Location     Type
  6584 ;;  p               2    1[COMRAM] PTR struct __BDT
  6585 ;;		 -> RAM(2047), NULL(0), BDT(32), 
  6586 ;; Return value:  Size  Location     Type
  6587 ;;                  1    wreg      void 
  6588 ;; Registers used:
  6589 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh
  6590 ;; Tracked objects:
  6591 ;;		On entry : 0/0
  6592 ;;		On exit  : 0/0
  6593 ;;		Unchanged: 0/0
  6594 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  6595 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  6596 ;;      Locals:         2       0       0       0       0       0       0       0       0       0
  6597 ;;      Temps:          1       0       0       0       0       0       0       0       0       0
  6598 ;;      Totals:         3       0       0       0       0       0       0       0       0       0
  6599 ;;Total ram usage:        3 bytes
  6600 ;; Hardware stack levels used:    1
  6601 ;; This function calls:
  6602 ;;		Nothing
  6603 ;; This function is called by:
  6604 ;;		_USBCheckStdRequest
  6605 ;; This function uses a non-reentrant model
  6606 ;;
  6607                           
  6608                           	psect	text31
  6609  001D20                     __ptext31:
  6610                           	opt stack 0
  6611  001D20                     _USBStdGetStatusHandler:
  6612                           	opt stack 26
  6613                           
  6614                           ;usb_device.c: 2131: CtrlTrfData[0] = 0;
  6615                           
  6616                           ;incstack = 0
  6617  001D20  0E00               	movlw	0
  6618  001D22  0104               	movlb	4	; () banked
  6619  001D24  6F28               	movwf	40,b	;volatile
  6620                           
  6621                           ;usb_device.c: 2132: CtrlTrfData[1] = 0;
  6622  001D26  0E00               	movlw	0
  6623  001D28  0104               	movlb	4	; () banked
  6624  001D2A  6F29               	movwf	41,b	;volatile
  6625                           
  6626                           ;usb_device.c: 2134: switch(SetupPkt.Recipient)
  6627  001D2C  D039               	goto	l3099
  6628  001D2E                     l290:
  6629                           
  6630                           ; BSR set to: 4
  6631                           ;usb_device.c: 2137: inPipes[0].info.bits.busy = 1;
  6632  001D2E  8E4E               	bsf	_inPipes+3,7,c
  6633                           
  6634                           ; BSR set to: 4
  6635                           ;usb_device.c: 2145: }
  6636                           ;usb_device.c: 2147: if(RemoteWakeup == 1)
  6637                           
  6638                           ; BSR set to: 4
  6639                           
  6640                           ; BSR set to: 4
  6641                           ;usb_device.c: 2143: {
  6642                           ;usb_device.c: 2144: CtrlTrfData[0]|=0x01;
  6643                           
  6644                           ;usb_device.c: 2142: if(0 == 1)
  6645  001D30  0100               	movlb	0	; () banked
  6646  001D32  05EC               	decf	_RemoteWakeup& (0+255),w,b
  6647  001D34  A4D8               	btfss	status,2,c
  6648  001D36  D040               	goto	l293
  6649                           
  6650                           ; BSR set to: 0
  6651                           ;usb_device.c: 2148: {
  6652                           ;usb_device.c: 2149: CtrlTrfData[0]|=0x02;
  6653  001D38  0104               	movlb	4	; () banked
  6654  001D3A  8328               	bsf	40,1,b	;volatile
  6655                           
  6656                           ; BSR set to: 4
  6657                           ;usb_device.c: 2150: }
  6658                           ;usb_device.c: 2151: break;
  6659  001D3C  D03D               	goto	l293
  6660  001D3E                     l294:
  6661                           
  6662                           ; BSR set to: 4
  6663                           ;usb_device.c: 2153: inPipes[0].info.bits.busy = 1;
  6664  001D3E  8E4E               	bsf	_inPipes+3,7,c
  6665                           
  6666                           ;usb_device.c: 2154: break;
  6667  001D40  D03B               	goto	l293
  6668  001D42                     l295:
  6669                           
  6670                           ; BSR set to: 4
  6671                           ;usb_device.c: 2156: inPipes[0].info.bits.busy = 1;
  6672  001D42  8E4E               	bsf	_inPipes+3,7,c
  6673                           
  6674                           ;usb_device.c: 2160: {
  6675                           ;usb_device.c: 2161: BDT_ENTRY *p;
  6676                           ;usb_device.c: 2163: if(SetupPkt.EPDir == 0)
  6677  001D44  0104               	movlb	4	; () banked
  6678  001D46  BF24               	btfsc	36,7,b	;volatile
  6679  001D48  D00B               	goto	l3089
  6680                           
  6681                           ; BSR set to: 4
  6682                           ;usb_device.c: 2164: {
  6683                           ;usb_device.c: 2165: p = (BDT_ENTRY*)pBDTEntryOut[SetupPkt.EPNum];
  6684  001D4A  0104               	movlb	4	; () banked
  6685  001D4C  5124               	movf	36,w,b	;volatile
  6686  001D4E  0B0F               	andlw	15
  6687  001D50  6E01               	movwf	??_USBStdGetStatusHandler& (0+255),c
  6688  001D52  5001               	movf	??_USBStdGetStatusHandler,w,c
  6689  001D54  0D02               	mullw	2
  6690  001D56  0EDD               	movlw	low _pBDTEntryOut
  6691  001D58  24F3               	addwf	prodl,w,c
  6692  001D5A  6ED9               	movwf	fsr2l,c
  6693  001D5C  0E00               	movlw	high _pBDTEntryOut
  6694  001D5E  D00A               	goto	L9
  6695  001D60                     l3089:
  6696                           
  6697                           ; BSR set to: 4
  6698                           ;usb_device.c: 2167: else
  6699                           ;usb_device.c: 2168: {
  6700                           ;usb_device.c: 2169: p = (BDT_ENTRY*)pBDTEntryIn[SetupPkt.EPNum];
  6701  001D60  0104               	movlb	4	; () banked
  6702  001D62  5124               	movf	36,w,b	;volatile
  6703  001D64  0B0F               	andlw	15
  6704  001D66  6E01               	movwf	??_USBStdGetStatusHandler& (0+255),c
  6705  001D68  5001               	movf	??_USBStdGetStatusHandler,w,c
  6706  001D6A  0D02               	mullw	2
  6707  001D6C  0E51               	movlw	low _pBDTEntryIn
  6708  001D6E  24F3               	addwf	prodl,w,c
  6709  001D70  6ED9               	movwf	fsr2l,c
  6710  001D72  0E00               	movlw	high _pBDTEntryIn
  6711  001D74                     L9:
  6712  001D74  20F4               	addwfc	prodh,w,c
  6713  001D76  6EDA               	movwf	fsr2h,c
  6714  001D78  CFDE F002          	movff	postinc2,USBStdGetStatusHandler@p
  6715  001D7C  CFDD F003          	movff	postdec2,USBStdGetStatusHandler@p+1
  6716                           
  6717                           ; BSR set to: 4
  6718                           ;usb_device.c: 2170: }
  6719                           ;usb_device.c: 2172: if((p->STAT.UOWN == 1) && (p->STAT.BSTALL == 1))
  6720                           
  6721                           ; BSR set to: 4
  6722  001D80  C002  FFD9         	movff	USBStdGetStatusHandler@p,fsr2l
  6723  001D84  C003  FFDA         	movff	USBStdGetStatusHandler@p+1,fsr2h
  6724  001D88  AEDF               	btfss	indf2,7,c
  6725  001D8A  D016               	goto	l293
  6726                           
  6727                           ; BSR set to: 4
  6728  001D8C  C002  FFD9         	movff	USBStdGetStatusHandler@p,fsr2l
  6729  001D90  C003  FFDA         	movff	USBStdGetStatusHandler@p+1,fsr2h
  6730  001D94  A4DF               	btfss	indf2,2,c
  6731  001D96  D010               	goto	l293
  6732                           
  6733                           ; BSR set to: 4
  6734                           ;usb_device.c: 2173: CtrlTrfData[0]=0x01;
  6735  001D98  0E01               	movlw	1
  6736  001D9A  0104               	movlb	4	; () banked
  6737  001D9C  6F28               	movwf	40,b	;volatile
  6738                           
  6739                           ; BSR set to: 4
  6740                           ;usb_device.c: 2175: }
  6741                           ;usb_device.c: 2176: }
  6742                           
  6743                           ; BSR set to: 4
  6744                           ;usb_device.c: 2174: break;
  6745  001D9E  D00C               	goto	l293
  6746  001DA0                     l3099:
  6747                           
  6748                           ; BSR set to: 4
  6749  001DA0  0104               	movlb	4	; () banked
  6750  001DA2  5120               	movf	32,w,b	;volatile
  6751  001DA4  0B1F               	andlw	31
  6752                           
  6753                           ; Switch size 1, requested type "space"
  6754                           ; Number of cases is 3, Range of values is 0 to 2
  6755                           ; switch strategies available:
  6756                           ; Name         Instructions Cycles
  6757                           ; simple_byte           10     6 (average)
  6758                           ;	Chosen strategy is simple_byte
  6759  001DA6  0A00               	xorlw	0	; case 0
  6760  001DA8  B4D8               	btfsc	status,2,c
  6761  001DAA  D7C1               	goto	l290
  6762  001DAC  0A01               	xorlw	1	; case 1
  6763  001DAE  B4D8               	btfsc	status,2,c
  6764  001DB0  D7C6               	goto	l294
  6765  001DB2  0A03               	xorlw	3	; case 2
  6766  001DB4  B4D8               	btfsc	status,2,c
  6767  001DB6  D7C5               	goto	l295
  6768  001DB8                     l293:
  6769                           
  6770                           ;usb_device.c: 2178: if(inPipes[0].info.bits.busy == 1)
  6771  001DB8  AE4E               	btfss	_inPipes+3,7,c
  6772  001DBA  0012               	return	
  6773                           
  6774                           ;usb_device.c: 2179: {
  6775                           ;usb_device.c: 2180: inPipes[0].pSrc.bRam = (uint8_t*)&CtrlTrfData;
  6776  001DBC  0E28               	movlw	40
  6777  001DBE  6E4B               	movwf	_inPipes,c
  6778  001DC0  0E04               	movlw	4
  6779  001DC2  6E4C               	movwf	_inPipes+1,c
  6780                           
  6781                           ;usb_device.c: 2181: inPipes[0].info.bits.ctrl_trf_mem = 0x01;
  6782  001DC4  804E               	bsf	_inPipes+3,0,c
  6783                           
  6784                           ;usb_device.c: 2182: inPipes[0].wCount.v[0] = 2;
  6785  001DC6  0E02               	movlw	2
  6786  001DC8  6E4F               	movwf	_inPipes+4,c
  6787  001DCA  0012               	return	
  6788  001DCC                     __end_of_USBStdGetStatusHandler:
  6789                           	opt stack 0
  6790                           tblptru	equ	0xFF8
  6791                           tblptrh	equ	0xFF7
  6792                           tblptrl	equ	0xFF6
  6793                           tablat	equ	0xFF5
  6794                           prodh	equ	0xFF4
  6795                           prodl	equ	0xFF3
  6796                           postinc0	equ	0xFEE
  6797                           wreg	equ	0xFE8
  6798                           indf1	equ	0xFE7
  6799                           postinc1	equ	0xFE6
  6800                           postdec1	equ	0xFE5
  6801                           fsr1h	equ	0xFE2
  6802                           fsr1l	equ	0xFE1
  6803                           indf2	equ	0xFDF
  6804                           postinc2	equ	0xFDE
  6805                           postdec2	equ	0xFDD
  6806                           plusw2	equ	0xFDB
  6807                           fsr2h	equ	0xFDA
  6808                           fsr2l	equ	0xFD9
  6809                           status	equ	0xFD8
  6810                           
  6811 ;; *************** function _USBStdGetDscHandler *****************
  6812 ;; Defined at:
  6813 ;;		line 2043 in file "usb/usb_device.c"
  6814 ;; Parameters:    Size  Location     Type
  6815 ;;		None
  6816 ;; Auto vars:     Size  Location     Type
  6817 ;;		None
  6818 ;; Return value:  Size  Location     Type
  6819 ;;                  1    wreg      void 
  6820 ;; Registers used:
  6821 ;;		wreg, fsr1l, fsr1h, status,2, status,0, tblptrl, tblptrh, tblptru, prodl, prodh
  6822 ;; Tracked objects:
  6823 ;;		On entry : 0/0
  6824 ;;		On exit  : 0/0
  6825 ;;		Unchanged: 0/0
  6826 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  6827 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  6828 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  6829 ;;      Temps:          2       0       0       0       0       0       0       0       0       0
  6830 ;;      Totals:         2       0       0       0       0       0       0       0       0       0
  6831 ;;Total ram usage:        2 bytes
  6832 ;; Hardware stack levels used:    1
  6833 ;; This function calls:
  6834 ;;		Nothing
  6835 ;; This function is called by:
  6836 ;;		_USBCheckStdRequest
  6837 ;; This function uses a non-reentrant model
  6838 ;;
  6839                           
  6840                           	psect	text32
  6841  00140A                     __ptext32:
  6842                           	opt stack 0
  6843  00140A                     _USBStdGetDscHandler:
  6844                           	opt stack 26
  6845                           
  6846                           ;usb_device.c: 2045: if(SetupPkt.bmRequestType == 0x80)
  6847                           
  6848                           ;incstack = 0
  6849  00140A  0E80               	movlw	128
  6850  00140C  0104               	movlb	4	; () banked
  6851  00140E  1920               	xorwf	32,w,b	;volatile
  6852  001410  A4D8               	btfss	status,2,c
  6853  001412  0012               	return	
  6854                           
  6855                           ; BSR set to: 4
  6856                           ;usb_device.c: 2046: {
  6857                           ;usb_device.c: 2047: inPipes[0].info.Val = 0x00 | 0x80 | 0x40;
  6858  001414  0EC0               	movlw	192
  6859  001416  6E4E               	movwf	_inPipes+3,c
  6860                           
  6861                           ;usb_device.c: 2049: switch(SetupPkt.bDescriptorType)
  6862  001418  D07C               	goto	l3077
  6863  00141A                     l3051:
  6864                           
  6865                           ; BSR set to: 4
  6866                           ;usb_device.c: 2055: inPipes[0].pSrc.bRom = (const uint8_t*)&device_dsc;
  6867  00141A  0EBC               	movlw	low _device_dsc
  6868  00141C  6E4B               	movwf	_inPipes,c
  6869  00141E  0E08               	movlw	high _device_dsc
  6870  001420  6E4C               	movwf	_inPipes+1,c
  6871                           
  6872                           ; BSR set to: 4
  6873                           ;usb_device.c: 2057: inPipes[0].wCount.Val = sizeof(device_dsc);
  6874  001422  0E00               	movlw	0
  6875  001424  6E50               	movwf	_inPipes+5,c
  6876  001426  0E12               	movlw	18
  6877  001428  6E4F               	movwf	_inPipes+4,c
  6878                           
  6879                           ;usb_device.c: 2058: break;
  6880  00142A  0012               	return	
  6881  00142C                     l3055:
  6882                           
  6883                           ; BSR set to: 4
  6884                           ;usb_device.c: 2063: if(SetupPkt.bDscIndex < 1)
  6885  00142C  0104               	movlb	4	; () banked
  6886  00142E  5122               	movf	34,w,b	;volatile
  6887  001430  A4D8               	btfss	status,2,c
  6888  001432  D03E               	goto	l3063
  6889                           
  6890                           ; BSR set to: 4
  6891                           ;usb_device.c: 2064: {
  6892                           ;usb_device.c: 2066: inPipes[0].pSrc.bRom = *(USB_CD_Ptr+SetupPkt.bDscIndex);
  6893  001434  0104               	movlb	4	; () banked
  6894  001436  5122               	movf	34,w,b	;volatile
  6895  001438  0D02               	mullw	2
  6896  00143A  0E07               	movlw	low _USB_CD_Ptr
  6897  00143C  24F3               	addwf	prodl,w,c
  6898  00143E  6EF6               	movwf	tblptrl,c
  6899  001440  0E08               	movlw	high _USB_CD_Ptr
  6900  001442  20F4               	addwfc	prodh,w,c
  6901  001444  6EF7               	movwf	tblptrh,c
  6902  001446                     	if	0	;There are less than 3 active tblptr bytes
  6903  001446                     	endif
  6904  001446  0009               	tblrd		*+
  6905  001448  CFF5 F04B          	movff	tablat,_inPipes
  6906  00144C  000A               	tblrd		*-
  6907  00144E  CFF5 F04C          	movff	tablat,_inPipes+1
  6908                           
  6909                           ; BSR set to: 4
  6910                           ;usb_device.c: 2074: inPipes[0].wCount.byte.LB = *(inPipes[0].pSrc.bRom+2);
  6911  001452  0E02               	movlw	2
  6912  001454  244B               	addwf	_inPipes,w,c
  6913  001456  6E01               	movwf	??_USBStdGetDscHandler& (0+255),c
  6914  001458  0E00               	movlw	0
  6915  00145A  204C               	addwfc	_inPipes+1,w,c
  6916  00145C  6E02               	movwf	(??_USBStdGetDscHandler+1)& (0+255),c
  6917  00145E  C001  FFF6         	movff	??_USBStdGetDscHandler,tblptrl
  6918  001462  C002  FFF7         	movff	??_USBStdGetDscHandler+1,tblptrh
  6919  001466  6AF8               	clrf	tblptru,c
  6920  001468  0E07               	movlw	(high __ramtop+-1)
  6921  00146A  64F7               	cpfsgt	tblptrh,c
  6922  00146C  D003               	bra	u2107
  6923  00146E  0008               	tblrd		*
  6924  001470  50F5               	movf	tablat,w,c
  6925  001472  D005               	bra	u2100
  6926  001474                     u2107:
  6927  001474  CFF6 FFE1          	movff	tblptrl,fsr1l
  6928  001478  CFF7 FFE2          	movff	tblptrh,fsr1h
  6929  00147C  50E7               	movf	indf1,w,c
  6930  00147E                     u2100:
  6931  00147E  6E4F               	movwf	_inPipes+4,c
  6932                           
  6933                           ;usb_device.c: 2075: inPipes[0].wCount.byte.HB = *(inPipes[0].pSrc.bRom+3);
  6934  001480  0E03               	movlw	3
  6935  001482  244B               	addwf	_inPipes,w,c
  6936  001484  6E01               	movwf	??_USBStdGetDscHandler& (0+255),c
  6937  001486  0E00               	movlw	0
  6938  001488  204C               	addwfc	_inPipes+1,w,c
  6939  00148A  6E02               	movwf	(??_USBStdGetDscHandler+1)& (0+255),c
  6940  00148C  C001  FFF6         	movff	??_USBStdGetDscHandler,tblptrl
  6941  001490  C002  FFF7         	movff	??_USBStdGetDscHandler+1,tblptrh
  6942  001494  6AF8               	clrf	tblptru,c
  6943  001496  0E07               	movlw	(high __ramtop+-1)
  6944  001498  64F7               	cpfsgt	tblptrh,c
  6945  00149A  D003               	bra	u2117
  6946  00149C  0008               	tblrd		*
  6947  00149E  50F5               	movf	tablat,w,c
  6948  0014A0  D005               	bra	u2110
  6949  0014A2                     u2117:
  6950  0014A2  CFF6 FFE1          	movff	tblptrl,fsr1l
  6951  0014A6  CFF7 FFE2          	movff	tblptrh,fsr1h
  6952  0014AA  50E7               	movf	indf1,w,c
  6953  0014AC                     u2110:
  6954  0014AC  6E50               	movwf	_inPipes+5,c
  6955                           
  6956                           ;usb_device.c: 2076: }
  6957  0014AE  0012               	return	
  6958  0014B0                     l3063:
  6959                           
  6960                           ;usb_device.c: 2077: else
  6961                           ;usb_device.c: 2078: {
  6962                           ;usb_device.c: 2079: inPipes[0].info.Val = 0;
  6963  0014B0  0E00               	movlw	0
  6964  0014B2  6E4E               	movwf	_inPipes+3,c
  6965                           
  6966                           ;usb_device.c: 2080: }
  6967                           ;usb_device.c: 2081: break;
  6968  0014B4  0012               	return	
  6969  0014B6                     l3065:
  6970                           
  6971                           ;usb_device.c: 2086: if(SetupPkt.bDscIndex<3)
  6972  0014B6  0E03               	movlw	3
  6973  0014B8  0104               	movlb	4	; () banked
  6974  0014BA  6122               	cpfslt	34,b	;volatile
  6975  0014BC  D024               	goto	l3071
  6976                           
  6977                           ; BSR set to: 4
  6978                           ;usb_device.c: 2087: {
  6979                           ;usb_device.c: 2089: inPipes[0].pSrc.bRom = *(USB_SD_Ptr+SetupPkt.bDscIndex);
  6980  0014BE  0104               	movlb	4	; () banked
  6981  0014C0  5122               	movf	34,w,b	;volatile
  6982  0014C2  0D02               	mullw	2
  6983  0014C4  0E01               	movlw	low _USB_SD_Ptr
  6984  0014C6  24F3               	addwf	prodl,w,c
  6985  0014C8  6EF6               	movwf	tblptrl,c
  6986  0014CA  0E08               	movlw	high _USB_SD_Ptr
  6987  0014CC  20F4               	addwfc	prodh,w,c
  6988  0014CE  6EF7               	movwf	tblptrh,c
  6989  0014D0                     	if	0	;There are less than 3 active tblptr bytes
  6990  0014D0                     	endif
  6991  0014D0  0009               	tblrd		*+
  6992  0014D2  CFF5 F04B          	movff	tablat,_inPipes
  6993  0014D6  000A               	tblrd		*-
  6994  0014D8  CFF5 F04C          	movff	tablat,_inPipes+1
  6995                           
  6996                           ; BSR set to: 4
  6997                           ;usb_device.c: 2091: inPipes[0].wCount.Val = *inPipes[0].pSrc.bRom;
  6998  0014DC  C04B  FFF6         	movff	_inPipes,tblptrl
  6999  0014E0  C04C  FFF7         	movff	_inPipes+1,tblptrh
  7000  0014E4  6AF8               	clrf	tblptru,c
  7001  0014E6  0E07               	movlw	(high __ramtop+-1)
  7002  0014E8  64F7               	cpfsgt	tblptrh,c
  7003  0014EA  D003               	bra	u2137
  7004  0014EC  0008               	tblrd		*
  7005  0014EE  50F5               	movf	tablat,w,c
  7006  0014F0  D005               	bra	u2130
  7007  0014F2                     u2137:
  7008  0014F2  CFF6 FFE1          	movff	tblptrl,fsr1l
  7009  0014F6  CFF7 FFE2          	movff	tblptrh,fsr1h
  7010  0014FA  50E7               	movf	indf1,w,c
  7011  0014FC                     u2130:
  7012  0014FC  6E01               	movwf	??_USBStdGetDscHandler& (0+255),c
  7013  0014FE  5001               	movf	??_USBStdGetDscHandler,w,c
  7014  001500  6E4F               	movwf	_inPipes+4,c
  7015  001502  6A50               	clrf	_inPipes+5,c
  7016                           
  7017                           ;usb_device.c: 2092: }
  7018  001504  0012               	return	
  7019  001506                     l3071:
  7020                           
  7021                           ;usb_device.c: 2102: else
  7022                           ;usb_device.c: 2103: {
  7023                           ;usb_device.c: 2104: inPipes[0].info.Val = 0;
  7024  001506  0E00               	movlw	0
  7025  001508  6E4E               	movwf	_inPipes+3,c
  7026                           
  7027                           ;usb_device.c: 2105: }
  7028                           ;usb_device.c: 2106: break;
  7029  00150A  0012               	return	
  7030  00150C                     l3073:
  7031                           
  7032                           ;usb_device.c: 2108: inPipes[0].info.Val = 0;
  7033  00150C  0E00               	movlw	0
  7034  00150E  6E4E               	movwf	_inPipes+3,c
  7035                           
  7036                           ;usb_device.c: 2110: }
  7037                           
  7038                           ;usb_device.c: 2109: break;
  7039  001510  0012               	return	
  7040  001512                     l3077:
  7041  001512  0104               	movlb	4	; () banked
  7042  001514  5123               	movf	35,w,b	;volatile
  7043                           
  7044                           ; Switch size 1, requested type "space"
  7045                           ; Number of cases is 3, Range of values is 1 to 3
  7046                           ; switch strategies available:
  7047                           ; Name         Instructions Cycles
  7048                           ; simple_byte           10     6 (average)
  7049                           ;	Chosen strategy is simple_byte
  7050  001516  0A01               	xorlw	1	; case 1
  7051  001518  B4D8               	btfsc	status,2,c
  7052  00151A  D77F               	goto	l3051
  7053  00151C  0A03               	xorlw	3	; case 2
  7054  00151E  B4D8               	btfsc	status,2,c
  7055  001520  D785               	goto	l3055
  7056  001522  0A01               	xorlw	1	; case 3
  7057  001524  B4D8               	btfsc	status,2,c
  7058  001526  D7C7               	goto	l3065
  7059  001528  D7F1               	goto	l3073
  7060  00152A                     __end_of_USBStdGetDscHandler:
  7061                           	opt stack 0
  7062                           tblptru	equ	0xFF8
  7063                           tblptrh	equ	0xFF7
  7064                           tblptrl	equ	0xFF6
  7065                           tablat	equ	0xFF5
  7066                           prodh	equ	0xFF4
  7067                           prodl	equ	0xFF3
  7068                           postinc0	equ	0xFEE
  7069                           wreg	equ	0xFE8
  7070                           indf1	equ	0xFE7
  7071                           postinc1	equ	0xFE6
  7072                           postdec1	equ	0xFE5
  7073                           fsr1h	equ	0xFE2
  7074                           fsr1l	equ	0xFE1
  7075                           indf2	equ	0xFDF
  7076                           postinc2	equ	0xFDE
  7077                           postdec2	equ	0xFDD
  7078                           plusw2	equ	0xFDB
  7079                           fsr2h	equ	0xFDA
  7080                           fsr2l	equ	0xFD9
  7081                           status	equ	0xFD8
  7082                           
  7083 ;; *************** function _USBStdFeatureReqHandler *****************
  7084 ;; Defined at:
  7085 ;;		line 2754 in file "usb/usb_device.c"
  7086 ;; Parameters:    Size  Location     Type
  7087 ;;		None
  7088 ;; Auto vars:     Size  Location     Type
  7089 ;;  p               2   24[COMRAM] PTR struct __BDT
  7090 ;;		 -> RAM(2047), NULL(0), BDT(32), 
  7091 ;;  pUEP            2   21[COMRAM] PTR unsigned char 
  7092 ;;		 -> UEP0(1), 
  7093 ;;  current_ep_d    1   23[COMRAM] struct .
  7094 ;; Return value:  Size  Location     Type
  7095 ;;                  1    wreg      void 
  7096 ;; Registers used:
  7097 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  7098 ;; Tracked objects:
  7099 ;;		On entry : 0/0
  7100 ;;		On exit  : 0/0
  7101 ;;		Unchanged: 0/0
  7102 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  7103 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  7104 ;;      Locals:         5       0       0       0       0       0       0       0       0       0
  7105 ;;      Temps:          1       0       0       0       0       0       0       0       0       0
  7106 ;;      Totals:         6       0       0       0       0       0       0       0       0       0
  7107 ;;Total ram usage:        6 bytes
  7108 ;; Hardware stack levels used:    1
  7109 ;; Hardware stack levels required when called:    4
  7110 ;; This function calls:
  7111 ;;		_USER_USB_CALLBACK_EVENT_HANDLER
  7112 ;; This function is called by:
  7113 ;;		_USBCheckStdRequest
  7114 ;; This function uses a non-reentrant model
  7115 ;;
  7116                           
  7117                           	psect	text33
  7118  000EB4                     __ptext33:
  7119                           	opt stack 0
  7120  000EB4                     _USBStdFeatureReqHandler:
  7121                           	opt stack 22
  7122                           
  7123                           ;usb_device.c: 2756: BDT_ENTRY *p;
  7124                           ;usb_device.c: 2757: EP_STATUS current_ep_data;
  7125                           ;usb_device.c: 2761: unsigned char* pUEP;
  7126                           ;usb_device.c: 2799: if((SetupPkt.bFeature == 1)&&
  7127                           ;usb_device.c: 2800: (SetupPkt.Recipient == (0x00)))
  7128                           
  7129                           ;incstack = 0
  7130  000EB4  0104               	movlb	4	; () banked
  7131  000EB6  0522               	decf	34,w,b	;volatile
  7132  000EB8  A4D8               	btfss	status,2,c
  7133  000EBA  D011               	goto	l367
  7134                           
  7135                           ; BSR set to: 4
  7136  000EBC  0104               	movlb	4	; () banked
  7137  000EBE  5120               	movf	32,w,b	;volatile
  7138  000EC0  0B1F               	andlw	31
  7139  000EC2  0900               	iorlw	0
  7140  000EC4  A4D8               	btfss	status,2,c
  7141  000EC6  D00B               	goto	l367
  7142                           
  7143                           ; BSR set to: 4
  7144                           ;usb_device.c: 2801: {
  7145                           ;usb_device.c: 2802: inPipes[0].info.bits.busy = 1;
  7146  000EC8  8E4E               	bsf	_inPipes+3,7,c
  7147                           
  7148                           ; BSR set to: 4
  7149                           ;usb_device.c: 2803: if(SetupPkt.bRequest == 3)
  7150  000ECA  0E03               	movlw	3
  7151  000ECC  0104               	movlb	4	; () banked
  7152  000ECE  1921               	xorwf	33,w,b	;volatile
  7153  000ED0  A4D8               	btfss	status,2,c
  7154  000ED2  D002               	goto	l3117
  7155                           
  7156                           ; BSR set to: 4
  7157                           ;usb_device.c: 2804: RemoteWakeup = 1;
  7158  000ED4  0E01               	movlw	1
  7159  000ED6  D001               	goto	L10
  7160  000ED8                     l3117:
  7161                           
  7162                           ;usb_device.c: 2805: else
  7163                           ;usb_device.c: 2806: RemoteWakeup = 0;
  7164  000ED8  0E00               	movlw	0
  7165  000EDA                     L10:
  7166  000EDA  0100               	movlb	0	; () banked
  7167  000EDC  6FEC               	movwf	_RemoteWakeup& (0+255),b
  7168  000EDE                     l367:
  7169                           
  7170                           ;usb_device.c: 2807: }
  7171                           ;usb_device.c: 2810: if((SetupPkt.bFeature == 0)&&
  7172                           ;usb_device.c: 2811: (SetupPkt.Recipient == (0x02))&&
  7173                           ;usb_device.c: 2812: (SetupPkt.EPNum != 0) && (SetupPkt.EPNum <= 1)&&
  7174                           ;usb_device.c: 2813: (USBDeviceState == CONFIGURED_STATE))
  7175  000EDE  0104               	movlb	4	; () banked
  7176  000EE0  5122               	movf	34,w,b	;volatile
  7177  000EE2  A4D8               	btfss	status,2,c
  7178  000EE4  0012               	return	
  7179                           
  7180                           ; BSR set to: 4
  7181  000EE6  0104               	movlb	4	; () banked
  7182  000EE8  5120               	movf	32,w,b	;volatile
  7183  000EEA  0B1F               	andlw	31
  7184  000EEC  0A02               	xorlw	2
  7185  000EEE  A4D8               	btfss	status,2,c
  7186  000EF0  0012               	return	
  7187                           
  7188                           ; BSR set to: 4
  7189  000EF2  0104               	movlb	4	; () banked
  7190  000EF4  5124               	movf	36,w,b	;volatile
  7191  000EF6  0B0F               	andlw	15
  7192  000EF8  0900               	iorlw	0
  7193  000EFA  B4D8               	btfsc	status,2,c
  7194  000EFC  0012               	return	
  7195                           
  7196                           ; BSR set to: 4
  7197  000EFE  0104               	movlb	4	; () banked
  7198  000F00  5124               	movf	36,w,b	;volatile
  7199  000F02  0B0F               	andlw	15
  7200  000F04  6E15               	movwf	??_USBStdFeatureReqHandler& (0+255),c
  7201  000F06  0E02               	movlw	2
  7202  000F08  6015               	cpfslt	??_USBStdFeatureReqHandler,c
  7203  000F0A  0012               	return	
  7204                           
  7205                           ; BSR set to: 4
  7206  000F0C  0E20               	movlw	32
  7207  000F0E  185A               	xorwf	_USBDeviceState,w,c
  7208  000F10  A4D8               	btfss	status,2,c
  7209  000F12  0012               	return	
  7210                           
  7211                           ; BSR set to: 4
  7212                           ;usb_device.c: 2814: {
  7213                           ;usb_device.c: 2817: inPipes[0].info.bits.busy = 1;
  7214  000F14  8E4E               	bsf	_inPipes+3,7,c
  7215                           
  7216                           ;usb_device.c: 2820: if(SetupPkt.EPDir == 0)
  7217  000F16  0104               	movlb	4	; () banked
  7218  000F18  BF24               	btfsc	36,7,b	;volatile
  7219  000F1A  D01B               	goto	l3131
  7220                           
  7221                           ; BSR set to: 4
  7222                           ;usb_device.c: 2821: {
  7223                           ;usb_device.c: 2822: p = (BDT_ENTRY*)pBDTEntryOut[SetupPkt.EPNum];
  7224  000F1C  0104               	movlb	4	; () banked
  7225  000F1E  5124               	movf	36,w,b	;volatile
  7226  000F20  0B0F               	andlw	15
  7227  000F22  6E15               	movwf	??_USBStdFeatureReqHandler& (0+255),c
  7228  000F24  5015               	movf	??_USBStdFeatureReqHandler,w,c
  7229  000F26  0D02               	mullw	2
  7230  000F28  0EDD               	movlw	low _pBDTEntryOut
  7231  000F2A  24F3               	addwf	prodl,w,c
  7232  000F2C  6ED9               	movwf	fsr2l,c
  7233  000F2E  0E00               	movlw	high _pBDTEntryOut
  7234  000F30  20F4               	addwfc	prodh,w,c
  7235  000F32  6EDA               	movwf	fsr2h,c
  7236  000F34  CFDE F019          	movff	postinc2,USBStdFeatureReqHandler@p
  7237  000F38  CFDD F01A          	movff	postdec2,USBStdFeatureReqHandler@p+1
  7238                           
  7239                           ;usb_device.c: 2823: current_ep_data.Val = ep_data_out[SetupPkt.EPNum].Val;
  7240  000F3C  0104               	movlb	4	; () banked
  7241  000F3E  5124               	movf	36,w,b	;volatile
  7242  000F40  0B0F               	andlw	15
  7243  000F42  6E15               	movwf	??_USBStdFeatureReqHandler& (0+255),c
  7244  000F44  5015               	movf	??_USBStdFeatureReqHandler,w,c
  7245  000F46  0D01               	mullw	1
  7246  000F48  0EE7               	movlw	low _ep_data_out
  7247  000F4A  24F3               	addwf	prodl,w,c
  7248  000F4C  6ED9               	movwf	fsr2l,c
  7249  000F4E  0E00               	movlw	high _ep_data_out
  7250  000F50  D01A               	goto	L11
  7251  000F52                     l3131:
  7252                           
  7253                           ; BSR set to: 4
  7254                           ;usb_device.c: 2825: else
  7255                           ;usb_device.c: 2826: {
  7256                           ;usb_device.c: 2827: p = (BDT_ENTRY*)pBDTEntryIn[SetupPkt.EPNum];
  7257  000F52  0104               	movlb	4	; () banked
  7258  000F54  5124               	movf	36,w,b	;volatile
  7259  000F56  0B0F               	andlw	15
  7260  000F58  6E15               	movwf	??_USBStdFeatureReqHandler& (0+255),c
  7261  000F5A  5015               	movf	??_USBStdFeatureReqHandler,w,c
  7262  000F5C  0D02               	mullw	2
  7263  000F5E  0E51               	movlw	low _pBDTEntryIn
  7264  000F60  24F3               	addwf	prodl,w,c
  7265  000F62  6ED9               	movwf	fsr2l,c
  7266  000F64  0E00               	movlw	high _pBDTEntryIn
  7267  000F66  20F4               	addwfc	prodh,w,c
  7268  000F68  6EDA               	movwf	fsr2h,c
  7269  000F6A  CFDE F019          	movff	postinc2,USBStdFeatureReqHandler@p
  7270  000F6E  CFDD F01A          	movff	postdec2,USBStdFeatureReqHandler@p+1
  7271                           
  7272                           ;usb_device.c: 2828: current_ep_data.Val = ep_data_in[SetupPkt.EPNum].Val;
  7273  000F72  0104               	movlb	4	; () banked
  7274  000F74  5124               	movf	36,w,b	;volatile
  7275  000F76  0B0F               	andlw	15
  7276  000F78  6E15               	movwf	??_USBStdFeatureReqHandler& (0+255),c
  7277  000F7A  5015               	movf	??_USBStdFeatureReqHandler,w,c
  7278  000F7C  0D01               	mullw	1
  7279  000F7E  0EE5               	movlw	low _ep_data_in
  7280  000F80  24F3               	addwf	prodl,w,c
  7281  000F82  6ED9               	movwf	fsr2l,c
  7282  000F84  0E00               	movlw	high _ep_data_in
  7283  000F86                     L11:
  7284  000F86  20F4               	addwfc	prodh,w,c
  7285  000F88  6EDA               	movwf	fsr2h,c
  7286  000F8A  50DF               	movf	indf2,w,c
  7287  000F8C  6E18               	movwf	USBStdFeatureReqHandler@current_ep_data,c
  7288                           
  7289                           ; BSR set to: 4
  7290                           ;usb_device.c: 2829: }
  7291                           ;usb_device.c: 2835: if(current_ep_data.bits.ping_pong_state == 0)
  7292                           
  7293                           ; BSR set to: 4
  7294  000F8E  B018               	btfsc	USBStdFeatureReqHandler@current_ep_data,0,c
  7295  000F90  D006               	goto	l3137
  7296                           
  7297                           ; BSR set to: 4
  7298                           ;usb_device.c: 2836: {
  7299                           ;usb_device.c: 2837: p = (BDT_ENTRY*)(((uintptr_t)p) & (~0x0004));
  7300  000F92  0EFB               	movlw	251
  7301  000F94  1419               	andwf	USBStdFeatureReqHandler@p,w,c
  7302  000F96  6E19               	movwf	USBStdFeatureReqHandler@p,c
  7303  000F98  0EFF               	movlw	255
  7304  000F9A  141A               	andwf	USBStdFeatureReqHandler@p+1,w,c
  7305  000F9C  D004               	goto	L12
  7306  000F9E                     l3137:
  7307                           
  7308                           ; BSR set to: 4
  7309                           ;usb_device.c: 2839: else
  7310                           ;usb_device.c: 2840: {
  7311                           ;usb_device.c: 2841: p = (BDT_ENTRY*)(((uintptr_t)p) | 0x0004);
  7312  000F9E  0E04               	movlw	4
  7313  000FA0  1019               	iorwf	USBStdFeatureReqHandler@p,w,c
  7314  000FA2  6E19               	movwf	USBStdFeatureReqHandler@p,c
  7315  000FA4  501A               	movf	USBStdFeatureReqHandler@p+1,w,c
  7316  000FA6                     L12:
  7317  000FA6  6E1A               	movwf	USBStdFeatureReqHandler@p+1,c
  7318                           
  7319                           ; BSR set to: 4
  7320                           ;usb_device.c: 2842: }
  7321                           ;usb_device.c: 2847: if(SetupPkt.EPDir == 0)
  7322                           
  7323                           ; BSR set to: 4
  7324  000FA8  0104               	movlb	4	; () banked
  7325  000FAA  BF24               	btfsc	36,7,b	;volatile
  7326  000FAC  D00B               	goto	l3143
  7327                           
  7328                           ; BSR set to: 4
  7329                           ;usb_device.c: 2848: {
  7330                           ;usb_device.c: 2849: pBDTEntryOut[SetupPkt.EPNum] = (volatile BDT_ENTRY *)p;
  7331  000FAE  0104               	movlb	4	; () banked
  7332  000FB0  5124               	movf	36,w,b	;volatile
  7333  000FB2  0B0F               	andlw	15
  7334  000FB4  6E15               	movwf	??_USBStdFeatureReqHandler& (0+255),c
  7335  000FB6  5015               	movf	??_USBStdFeatureReqHandler,w,c
  7336  000FB8  0D02               	mullw	2
  7337  000FBA  0EDD               	movlw	low _pBDTEntryOut
  7338  000FBC  24F3               	addwf	prodl,w,c
  7339  000FBE  6ED9               	movwf	fsr2l,c
  7340  000FC0  0E00               	movlw	high _pBDTEntryOut
  7341  000FC2  D00A               	goto	L13
  7342  000FC4                     l3143:
  7343                           
  7344                           ; BSR set to: 4
  7345                           ;usb_device.c: 2851: else
  7346                           ;usb_device.c: 2852: {
  7347                           ;usb_device.c: 2853: pBDTEntryIn[SetupPkt.EPNum] = (volatile BDT_ENTRY *)p;
  7348  000FC4  0104               	movlb	4	; () banked
  7349  000FC6  5124               	movf	36,w,b	;volatile
  7350  000FC8  0B0F               	andlw	15
  7351  000FCA  6E15               	movwf	??_USBStdFeatureReqHandler& (0+255),c
  7352  000FCC  5015               	movf	??_USBStdFeatureReqHandler,w,c
  7353  000FCE  0D02               	mullw	2
  7354  000FD0  0E51               	movlw	low _pBDTEntryIn
  7355  000FD2  24F3               	addwf	prodl,w,c
  7356  000FD4  6ED9               	movwf	fsr2l,c
  7357  000FD6  0E00               	movlw	high _pBDTEntryIn
  7358  000FD8                     L13:
  7359  000FD8  20F4               	addwfc	prodh,w,c
  7360  000FDA  6EDA               	movwf	fsr2h,c
  7361  000FDC  C019  FFDE         	movff	USBStdFeatureReqHandler@p,postinc2
  7362  000FE0  C01A  FFDD         	movff	USBStdFeatureReqHandler@p+1,postdec2
  7363                           
  7364                           ; BSR set to: 4
  7365                           ;usb_device.c: 2854: }
  7366                           ;usb_device.c: 2857: if(SetupPkt.bRequest == 3)
  7367                           
  7368                           ; BSR set to: 4
  7369  000FE4  0E03               	movlw	3
  7370  000FE6  0104               	movlb	4	; () banked
  7371  000FE8  1921               	xorwf	33,w,b	;volatile
  7372  000FEA  A4D8               	btfss	status,2,c
  7373  000FEC  D02F               	goto	l3159
  7374                           
  7375                           ; BSR set to: 4
  7376                           ;usb_device.c: 2858: {
  7377                           ;usb_device.c: 2859: if(p->STAT.UOWN == 1)
  7378  000FEE  C019  FFD9         	movff	USBStdFeatureReqHandler@p,fsr2l
  7379  000FF2  C01A  FFDA         	movff	USBStdFeatureReqHandler@p+1,fsr2h
  7380  000FF6  AEDF               	btfss	indf2,7,c
  7381  000FF8  D01C               	goto	l3155
  7382                           
  7383                           ; BSR set to: 4
  7384                           ;usb_device.c: 2860: {
  7385                           ;usb_device.c: 2863: if(SetupPkt.EPDir == 0)
  7386  000FFA  0104               	movlb	4	; () banked
  7387  000FFC  BF24               	btfsc	36,7,b	;volatile
  7388  000FFE  D00B               	goto	l3153
  7389                           
  7390                           ; BSR set to: 4
  7391                           ;usb_device.c: 2864: {
  7392                           ;usb_device.c: 2865: ep_data_out[SetupPkt.EPNum].bits.transfer_terminated = 1;
  7393  001000  0104               	movlb	4	; () banked
  7394  001002  5124               	movf	36,w,b	;volatile
  7395  001004  0B0F               	andlw	15
  7396  001006  6E15               	movwf	??_USBStdFeatureReqHandler& (0+255),c
  7397  001008  5015               	movf	??_USBStdFeatureReqHandler,w,c
  7398  00100A  0D01               	mullw	1
  7399  00100C  0EE7               	movlw	low _ep_data_out
  7400  00100E  24F3               	addwf	prodl,w,c
  7401  001010  6ED9               	movwf	fsr2l,c
  7402  001012  0E00               	movlw	high _ep_data_out
  7403  001014  D00A               	goto	L14
  7404  001016                     l3153:
  7405                           
  7406                           ;usb_device.c: 2867: else
  7407                           ;usb_device.c: 2868: {
  7408                           ;usb_device.c: 2869: ep_data_in[SetupPkt.EPNum].bits.transfer_terminated = 1;
  7409  001016  0104               	movlb	4	; () banked
  7410  001018  5124               	movf	36,w,b	;volatile
  7411  00101A  0B0F               	andlw	15
  7412  00101C  6E15               	movwf	??_USBStdFeatureReqHandler& (0+255),c
  7413  00101E  5015               	movf	??_USBStdFeatureReqHandler,w,c
  7414  001020  0D01               	mullw	1
  7415  001022  0EE5               	movlw	low _ep_data_in
  7416  001024  24F3               	addwf	prodl,w,c
  7417  001026  6ED9               	movwf	fsr2l,c
  7418  001028  0E00               	movlw	high _ep_data_in
  7419  00102A                     L14:
  7420  00102A  20F4               	addwfc	prodh,w,c
  7421  00102C  6EDA               	movwf	fsr2h,c
  7422  00102E  0100               	movlb	0	; () banked
  7423  001030  82DF               	bsf	indf2,1,c
  7424  001032                     l3155:
  7425                           
  7426                           ;usb_device.c: 2870: }
  7427                           ;usb_device.c: 2871: }
  7428                           ;usb_device.c: 2874: p->STAT.Val |= 0x04;
  7429  001032  C019  FFD9         	movff	USBStdFeatureReqHandler@p,fsr2l
  7430  001036  C01A  FFDA         	movff	USBStdFeatureReqHandler@p+1,fsr2h
  7431  00103A  0E00               	movlw	0
  7432  00103C  84DB               	bsf	plusw2,2,c
  7433                           
  7434                           ;usb_device.c: 2875: p->STAT.Val |= 0x80;
  7435  00103E  C019  FFD9         	movff	USBStdFeatureReqHandler@p,fsr2l
  7436  001042  C01A  FFDA         	movff	USBStdFeatureReqHandler@p+1,fsr2h
  7437  001046  0E00               	movlw	0
  7438  001048  8EDB               	bsf	plusw2,7,c
  7439                           
  7440                           ;usb_device.c: 2876: }
  7441  00104A  0012               	return	
  7442  00104C                     l3159:
  7443                           
  7444                           ;usb_device.c: 2877: else
  7445                           ;usb_device.c: 2878: {
  7446                           ;usb_device.c: 2882: p = (BDT_ENTRY*)(((uintptr_t)p) ^ 0x0004);
  7447  00104C  0E04               	movlw	4
  7448  00104E  1819               	xorwf	USBStdFeatureReqHandler@p,w,c
  7449  001050  6E19               	movwf	USBStdFeatureReqHandler@p,c
  7450  001052  501A               	movf	USBStdFeatureReqHandler@p+1,w,c
  7451  001054  6E1A               	movwf	USBStdFeatureReqHandler@p+1,c
  7452                           
  7453                           ;usb_device.c: 2884: if(p->STAT.UOWN == 1)
  7454  001056  C019  FFD9         	movff	USBStdFeatureReqHandler@p,fsr2l
  7455  00105A  C01A  FFDA         	movff	USBStdFeatureReqHandler@p+1,fsr2h
  7456  00105E  AEDF               	btfss	indf2,7,c
  7457  001060  D01B               	goto	l3169
  7458                           
  7459                           ;usb_device.c: 2885: {
  7460                           ;usb_device.c: 2888: p->STAT.Val &= (~0x80);
  7461  001062  C019  FFD9         	movff	USBStdFeatureReqHandler@p,fsr2l
  7462  001066  C01A  FFDA         	movff	USBStdFeatureReqHandler@p+1,fsr2h
  7463  00106A  0E7F               	movlw	127
  7464  00106C  16DF               	andwf	indf2,f,c
  7465                           
  7466                           ;usb_device.c: 2889: p->STAT.Val |= 0x40;
  7467  00106E  C019  FFD9         	movff	USBStdFeatureReqHandler@p,fsr2l
  7468  001072  C01A  FFDA         	movff	USBStdFeatureReqHandler@p+1,fsr2h
  7469  001076  0E00               	movlw	0
  7470  001078  8CDB               	bsf	plusw2,6,c
  7471                           
  7472                           ;usb_device.c: 2890: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_TRANSFER_TERMINATED,p,sizeof(
      +                          p));
  7473  00107A  0E00               	movlw	0
  7474  00107C  6E0E               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event+1,c
  7475  00107E  0E05               	movlw	5
  7476  001080  6E0D               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event,c
  7477  001082  C019  F00F         	movff	USBStdFeatureReqHandler@p,USER_USB_CALLBACK_EVENT_HANDLER@pdata
  7478  001086  C01A  F010         	movff	USBStdFeatureReqHandler@p+1,USER_USB_CALLBACK_EVENT_HANDLER@pdata+1
  7479  00108A  0E00               	movlw	0
  7480  00108C  6E12               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size+1,c
  7481  00108E  0E02               	movlw	2
  7482  001090  6E11               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size,c
  7483  001092  EC9E  F012         	call	_USER_USB_CALLBACK_EVENT_HANDLER	;wreg free
  7484                           
  7485                           ;usb_device.c: 2891: }
  7486  001096  D006               	goto	l3171
  7487  001098                     l3169:
  7488                           
  7489                           ;usb_device.c: 2892: else
  7490                           ;usb_device.c: 2893: {
  7491                           ;usb_device.c: 2895: p->STAT.Val |= 0x40;
  7492  001098  C019  FFD9         	movff	USBStdFeatureReqHandler@p,fsr2l
  7493  00109C  C01A  FFDA         	movff	USBStdFeatureReqHandler@p+1,fsr2h
  7494  0010A0  0E00               	movlw	0
  7495  0010A2  8CDB               	bsf	plusw2,6,c
  7496  0010A4                     l3171:
  7497                           
  7498                           ;usb_device.c: 2896: }
  7499                           ;usb_device.c: 2900: p = (BDT_ENTRY*)(((uintptr_t)p) ^ 0x0004);
  7500  0010A4  0E04               	movlw	4
  7501  0010A6  1819               	xorwf	USBStdFeatureReqHandler@p,w,c
  7502  0010A8  6E19               	movwf	USBStdFeatureReqHandler@p,c
  7503  0010AA  501A               	movf	USBStdFeatureReqHandler@p+1,w,c
  7504  0010AC  6E1A               	movwf	USBStdFeatureReqHandler@p+1,c
  7505                           
  7506                           ;usb_device.c: 2906: if((current_ep_data.bits.transfer_terminated != 0) || (p->STAT.UOWN
      +                           == 1))
  7507  0010AE  B218               	btfsc	USBStdFeatureReqHandler@current_ep_data,1,c
  7508  0010B0  D006               	goto	l386
  7509  0010B2  C019  FFD9         	movff	USBStdFeatureReqHandler@p,fsr2l
  7510  0010B6  C01A  FFDA         	movff	USBStdFeatureReqHandler@p+1,fsr2h
  7511  0010BA  AEDF               	btfss	indf2,7,c
  7512  0010BC  D031               	goto	l3185
  7513  0010BE                     l386:
  7514                           
  7515                           ;usb_device.c: 2907: {
  7516                           ;usb_device.c: 2908: if(SetupPkt.EPDir == 0)
  7517  0010BE  0104               	movlb	4	; () banked
  7518  0010C0  BF24               	btfsc	36,7,b	;volatile
  7519  0010C2  D00B               	goto	l3179
  7520                           
  7521                           ; BSR set to: 4
  7522                           ;usb_device.c: 2909: {
  7523                           ;usb_device.c: 2910: ep_data_out[SetupPkt.EPNum].bits.transfer_terminated = 0;
  7524  0010C4  0104               	movlb	4	; () banked
  7525  0010C6  5124               	movf	36,w,b	;volatile
  7526  0010C8  0B0F               	andlw	15
  7527  0010CA  6E15               	movwf	??_USBStdFeatureReqHandler& (0+255),c
  7528  0010CC  5015               	movf	??_USBStdFeatureReqHandler,w,c
  7529  0010CE  0D01               	mullw	1
  7530  0010D0  0EE7               	movlw	low _ep_data_out
  7531  0010D2  24F3               	addwf	prodl,w,c
  7532  0010D4  6ED9               	movwf	fsr2l,c
  7533  0010D6  0E00               	movlw	high _ep_data_out
  7534  0010D8  D00A               	goto	L15
  7535  0010DA                     l3179:
  7536                           
  7537                           ;usb_device.c: 2912: else
  7538                           ;usb_device.c: 2913: {
  7539                           ;usb_device.c: 2914: ep_data_in[SetupPkt.EPNum].bits.transfer_terminated = 0;
  7540  0010DA  0104               	movlb	4	; () banked
  7541  0010DC  5124               	movf	36,w,b	;volatile
  7542  0010DE  0B0F               	andlw	15
  7543  0010E0  6E15               	movwf	??_USBStdFeatureReqHandler& (0+255),c
  7544  0010E2  5015               	movf	??_USBStdFeatureReqHandler,w,c
  7545  0010E4  0D01               	mullw	1
  7546  0010E6  0EE5               	movlw	low _ep_data_in
  7547  0010E8  24F3               	addwf	prodl,w,c
  7548  0010EA  6ED9               	movwf	fsr2l,c
  7549  0010EC  0E00               	movlw	high _ep_data_in
  7550  0010EE                     L15:
  7551  0010EE  20F4               	addwfc	prodh,w,c
  7552  0010F0  6EDA               	movwf	fsr2h,c
  7553  0010F2  0100               	movlb	0	; () banked
  7554  0010F4  92DF               	bcf	indf2,1,c
  7555                           
  7556                           ; BSR set to: 0
  7557                           ;usb_device.c: 2915: }
  7558                           ;usb_device.c: 2917: p->STAT.Val &= ~(0x80 | 0x40 | 0x04);
  7559                           
  7560                           ; BSR set to: 0
  7561  0010F6  C019  FFD9         	movff	USBStdFeatureReqHandler@p,fsr2l
  7562  0010FA  C01A  FFDA         	movff	USBStdFeatureReqHandler@p+1,fsr2h
  7563  0010FE  0E3B               	movlw	59
  7564  001100  16DF               	andwf	indf2,f,c
  7565                           
  7566                           ; BSR set to: 0
  7567                           ;usb_device.c: 2920: USER_USB_CALLBACK_EVENT_HANDLER(EVENT_TRANSFER_TERMINATED,p,sizeof(
      +                          p));
  7568  001102  0E00               	movlw	0
  7569  001104  6E0E               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event+1,c
  7570  001106  0E05               	movlw	5
  7571  001108  6E0D               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@event,c
  7572  00110A  C019  F00F         	movff	USBStdFeatureReqHandler@p,USER_USB_CALLBACK_EVENT_HANDLER@pdata
  7573  00110E  C01A  F010         	movff	USBStdFeatureReqHandler@p+1,USER_USB_CALLBACK_EVENT_HANDLER@pdata+1
  7574  001112  0E00               	movlw	0
  7575  001114  6E12               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size+1,c
  7576  001116  0E02               	movlw	2
  7577  001118  6E11               	movwf	USER_USB_CALLBACK_EVENT_HANDLER@size,c
  7578  00111A  EC9E  F012         	call	_USER_USB_CALLBACK_EVENT_HANDLER	;wreg free
  7579                           
  7580                           ;usb_device.c: 2921: }
  7581  00111E  D006               	goto	l3187
  7582  001120                     l3185:
  7583                           
  7584                           ;usb_device.c: 2922: else
  7585                           ;usb_device.c: 2923: {
  7586                           ;usb_device.c: 2925: p->STAT.Val &= ~(0x80 | 0x40 | 0x04);
  7587  001120  C019  FFD9         	movff	USBStdFeatureReqHandler@p,fsr2l
  7588  001124  C01A  FFDA         	movff	USBStdFeatureReqHandler@p+1,fsr2h
  7589  001128  0E3B               	movlw	59
  7590  00112A  16DF               	andwf	indf2,f,c
  7591  00112C                     l3187:
  7592                           
  7593                           ;usb_device.c: 2926: }
  7594                           ;usb_device.c: 2973: pUEP = (unsigned char*)(&UEP0+SetupPkt.EPNum);
  7595  00112C  0104               	movlb	4	; () banked
  7596  00112E  5124               	movf	36,w,b	;volatile
  7597  001130  0B0F               	andlw	15
  7598  001132  6E15               	movwf	??_USBStdFeatureReqHandler& (0+255),c
  7599  001134  5015               	movf	??_USBStdFeatureReqHandler,w,c
  7600  001136  0D01               	mullw	1
  7601  001138  0E70               	movlw	112
  7602  00113A  24F3               	addwf	prodl,w,c
  7603  00113C  6E16               	movwf	USBStdFeatureReqHandler@pUEP,c
  7604  00113E  0E0F               	movlw	15
  7605  001140  20F4               	addwfc	prodh,w,c
  7606  001142  6E17               	movwf	USBStdFeatureReqHandler@pUEP+1,c
  7607                           
  7608                           ; BSR set to: 4
  7609                           ;usb_device.c: 2977: *pUEP &= ~0x0001;
  7610  001144  C016  FFD9         	movff	USBStdFeatureReqHandler@pUEP,fsr2l
  7611  001148  C017  FFDA         	movff	USBStdFeatureReqHandler@pUEP+1,fsr2h
  7612  00114C  0EFE               	movlw	254
  7613  00114E  16DF               	andwf	indf2,f,c
  7614                           
  7615                           ; BSR set to: 4
  7616  001150  0012               	return	
  7617  001152                     __end_of_USBStdFeatureReqHandler:
  7618                           	opt stack 0
  7619                           tblptru	equ	0xFF8
  7620                           tblptrh	equ	0xFF7
  7621                           tblptrl	equ	0xFF6
  7622                           tablat	equ	0xFF5
  7623                           prodh	equ	0xFF4
  7624                           prodl	equ	0xFF3
  7625                           postinc0	equ	0xFEE
  7626                           wreg	equ	0xFE8
  7627                           indf1	equ	0xFE7
  7628                           postinc1	equ	0xFE6
  7629                           postdec1	equ	0xFE5
  7630                           fsr1h	equ	0xFE2
  7631                           fsr1l	equ	0xFE1
  7632                           indf2	equ	0xFDF
  7633                           postinc2	equ	0xFDE
  7634                           postdec2	equ	0xFDD
  7635                           plusw2	equ	0xFDB
  7636                           fsr2h	equ	0xFDA
  7637                           fsr2l	equ	0xFD9
  7638                           status	equ	0xFD8
  7639                           
  7640 ;; *************** function _USER_USB_CALLBACK_EVENT_HANDLER *****************
  7641 ;; Defined at:
  7642 ;;		line 28 in file "usb_events.c"
  7643 ;; Parameters:    Size  Location     Type
  7644 ;;  event           2   12[COMRAM] enum E4324
  7645 ;;  pdata           2   14[COMRAM] PTR void 
  7646 ;;		 -> RAM(2047), USTATcopy(1), USBActiveConfiguration(1), NULL(0), 
  7647 ;;		 -> BDT(32), 
  7648 ;;  size            2   16[COMRAM] unsigned int 
  7649 ;; Auto vars:     Size  Location     Type
  7650 ;;		None
  7651 ;; Return value:  Size  Location     Type
  7652 ;;                  1    wreg      unsigned char 
  7653 ;; Registers used:
  7654 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  7655 ;; Tracked objects:
  7656 ;;		On entry : 0/0
  7657 ;;		On exit  : 0/0
  7658 ;;		Unchanged: 0/0
  7659 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  7660 ;;      Params:         6       0       0       0       0       0       0       0       0       0
  7661 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  7662 ;;      Temps:          2       0       0       0       0       0       0       0       0       0
  7663 ;;      Totals:         8       0       0       0       0       0       0       0       0       0
  7664 ;;Total ram usage:        8 bytes
  7665 ;; Hardware stack levels used:    1
  7666 ;; Hardware stack levels required when called:    3
  7667 ;; This function calls:
  7668 ;;		_APP_DeviceAudioMIDIInitialize
  7669 ;; This function is called by:
  7670 ;;		_USBDeviceTasks
  7671 ;;		_USBStdSetCfgHandler
  7672 ;;		_USBSuspend
  7673 ;;		_USBWakeFromSuspend
  7674 ;;		_USBCtrlTrfSetupHandler
  7675 ;;		_USBCheckStdRequest
  7676 ;;		_USBStdFeatureReqHandler
  7677 ;; This function uses a non-reentrant model
  7678 ;;
  7679                           
  7680                           	psect	text34
  7681  00253C                     __ptext34:
  7682                           	opt stack 0
  7683  00253C                     _USER_USB_CALLBACK_EVENT_HANDLER:
  7684                           	opt stack 26
  7685                           
  7686                           ;usb_events.c: 30: switch( (int) event )
  7687                           
  7688                           ;incstack = 0
  7689  00253C  D003               	goto	l2899
  7690  00253E                     l2895:
  7691                           
  7692                           ;usb_events.c: 51: APP_DeviceAudioMIDIInitialize();
  7693  00253E  ECF4  F012         	call	_APP_DeviceAudioMIDIInitialize	;wreg free
  7694                           
  7695                           ;usb_events.c: 68: }
  7696                           
  7697                           ;usb_events.c: 67: break;
  7698                           
  7699                           ;usb_events.c: 66: default:
  7700                           
  7701                           ;usb_events.c: 64: break;
  7702                           
  7703                           ;usb_events.c: 63: case EVENT_TRANSFER_TERMINATED:
  7704                           
  7705                           ;usb_events.c: 61: break;
  7706                           
  7707                           ;usb_events.c: 60: case EVENT_BUS_ERROR:
  7708                           
  7709                           ;usb_events.c: 58: break;
  7710                           
  7711                           ;usb_events.c: 57: case EVENT_EP0_REQUEST:
  7712                           
  7713                           ;usb_events.c: 55: break;
  7714                           
  7715                           ;usb_events.c: 54: case EVENT_SET_DESCRIPTOR:
  7716                           
  7717                           ;usb_events.c: 52: break;
  7718  002542  0012               	return	
  7719  002544                     l2899:
  7720  002544  C00D  F013         	movff	USER_USB_CALLBACK_EVENT_HANDLER@event,??_USER_USB_CALLBACK_EVENT_HANDLER
  7721  002548  C00E  F014         	movff	USER_USB_CALLBACK_EVENT_HANDLER@event+1,??_USER_USB_CALLBACK_EVENT_HANDLER+1
  7722                           
  7723                           ; Switch on 2 bytes has been partitioned into a top level switch of size 1, and 2 sub-sw
      +                          itches
  7724                           ; Switch size 1, requested type "space"
  7725                           ; Number of cases is 2, Range of values is 0 to 127
  7726                           ; switch strategies available:
  7727                           ; Name         Instructions Cycles
  7728                           ; simple_byte            7     4 (average)
  7729                           ;	Chosen strategy is simple_byte
  7730  00254C  5014               	movf	??_USER_USB_CALLBACK_EVENT_HANDLER+1,w,c
  7731  00254E  0A00               	xorlw	0	; case 0
  7732  002550  B4D8               	btfsc	status,2,c
  7733  002552  D004               	goto	l4207
  7734  002554  0A7F               	xorlw	127	; case 127
  7735  002556  A4D8               	btfss	status,2,c
  7736  002558  0012               	return	
  7737  00255A  D018               	goto	l4209
  7738  00255C                     l4207:
  7739                           
  7740                           ; Switch size 1, requested type "space"
  7741                           ; Number of cases is 8, Range of values is 1 to 117
  7742                           ; switch strategies available:
  7743                           ; Name         Instructions Cycles
  7744                           ; simple_byte           25    13 (average)
  7745                           ;	Chosen strategy is simple_byte
  7746  00255C  5013               	movf	??_USER_USB_CALLBACK_EVENT_HANDLER,w,c
  7747  00255E  0A01               	xorlw	1	; case 1
  7748  002560  B4D8               	btfsc	status,2,c
  7749  002562  D7ED               	goto	l2895
  7750  002564  0A03               	xorlw	3	; case 2
  7751  002566  B4D8               	btfsc	status,2,c
  7752  002568  0012               	return	
  7753  00256A  0A01               	xorlw	1	; case 3
  7754  00256C  B4D8               	btfsc	status,2,c
  7755  00256E  0012               	return	
  7756  002570  0A06               	xorlw	6	; case 5
  7757  002572  B4D8               	btfsc	status,2,c
  7758  002574  0012               	return	
  7759  002576  0A77               	xorlw	119	; case 114
  7760  002578  B4D8               	btfsc	status,2,c
  7761  00257A  0012               	return	
  7762  00257C  0A01               	xorlw	1	; case 115
  7763  00257E  B4D8               	btfsc	status,2,c
  7764  002580  0012               	return	
  7765  002582  0A07               	xorlw	7	; case 116
  7766  002584  B4D8               	btfsc	status,2,c
  7767  002586  0012               	return	
  7768  002588  0A01               	xorlw	1	; case 117
  7769  00258A  0012               	return	
  7770  00258C                     l4209:
  7771                           
  7772                           ; Switch size 1, requested type "space"
  7773                           ; Number of cases is 1, Range of values is 255 to 255
  7774                           ; switch strategies available:
  7775                           ; Name         Instructions Cycles
  7776                           ; simple_byte            4     3 (average)
  7777                           ;	Chosen strategy is simple_byte
  7778  00258C  5013               	movf	??_USER_USB_CALLBACK_EVENT_HANDLER,w,c
  7779  00258E  0AFF               	xorlw	255	; case 255
  7780  002590  0012               	return	
  7781  002592                     __end_of_USER_USB_CALLBACK_EVENT_HANDLER:
  7782                           	opt stack 0
  7783                           tblptru	equ	0xFF8
  7784                           tblptrh	equ	0xFF7
  7785                           tblptrl	equ	0xFF6
  7786                           tablat	equ	0xFF5
  7787                           prodh	equ	0xFF4
  7788                           prodl	equ	0xFF3
  7789                           postinc0	equ	0xFEE
  7790                           wreg	equ	0xFE8
  7791                           indf1	equ	0xFE7
  7792                           postinc1	equ	0xFE6
  7793                           postdec1	equ	0xFE5
  7794                           fsr1h	equ	0xFE2
  7795                           fsr1l	equ	0xFE1
  7796                           indf2	equ	0xFDF
  7797                           postinc2	equ	0xFDE
  7798                           postdec2	equ	0xFDD
  7799                           plusw2	equ	0xFDB
  7800                           fsr2h	equ	0xFDA
  7801                           fsr2l	equ	0xFD9
  7802                           status	equ	0xFD8
  7803                           
  7804 ;; *************** function _APP_DeviceAudioMIDIInitialize *****************
  7805 ;; Defined at:
  7806 ;;		line 43 in file "midi.c"
  7807 ;; Parameters:    Size  Location     Type
  7808 ;;		None
  7809 ;; Auto vars:     Size  Location     Type
  7810 ;;		None
  7811 ;; Return value:  Size  Location     Type
  7812 ;;                  1    wreg      void 
  7813 ;; Registers used:
  7814 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  7815 ;; Tracked objects:
  7816 ;;		On entry : 0/0
  7817 ;;		On exit  : 0/0
  7818 ;;		Unchanged: 0/0
  7819 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  7820 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  7821 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  7822 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  7823 ;;      Totals:         0       0       0       0       0       0       0       0       0       0
  7824 ;;Total ram usage:        0 bytes
  7825 ;; Hardware stack levels used:    1
  7826 ;; Hardware stack levels required when called:    2
  7827 ;; This function calls:
  7828 ;;		_USBEnableEndpoint
  7829 ;;		_USBTransferOnePacket
  7830 ;; This function is called by:
  7831 ;;		_USER_USB_CALLBACK_EVENT_HANDLER
  7832 ;; This function uses a non-reentrant model
  7833 ;;
  7834                           
  7835                           	psect	text35
  7836  0025E8                     __ptext35:
  7837                           	opt stack 0
  7838  0025E8                     _APP_DeviceAudioMIDIInitialize:
  7839                           	opt stack 26
  7840                           
  7841                           ;midi.c: 45: USBTxHandle = (0);
  7842                           
  7843                           ;incstack = 0
  7844  0025E8  0E00               	movlw	0
  7845  0025EA  0100               	movlb	0	; () banked
  7846  0025EC  6FE3               	movwf	_USBTxHandle& (0+255),b
  7847  0025EE  0E00               	movlw	0
  7848  0025F0  0100               	movlb	0	; () banked
  7849  0025F2  6FE4               	movwf	(_USBTxHandle+1)& (0+255),b
  7850                           
  7851                           ;midi.c: 46: USBRxHandle = (0);
  7852  0025F4  0E00               	movlw	0
  7853  0025F6  0100               	movlb	0	; () banked
  7854  0025F8  6FE1               	movwf	_USBRxHandle& (0+255),b
  7855  0025FA  0E00               	movlw	0
  7856  0025FC  0100               	movlb	0	; () banked
  7857  0025FE  6FE2               	movwf	(_USBRxHandle+1)& (0+255),b
  7858                           
  7859                           ; BSR set to: 0
  7860                           ;midi.c: 48: pitch = 0x3C;
  7861  002600  0E3C               	movlw	60
  7862  002602  0100               	movlb	0	; () banked
  7863  002604  6FFB               	movwf	_pitch& (0+255),b
  7864                           
  7865                           ; BSR set to: 0
  7866                           ;midi.c: 49: sentNoteOff = 1;
  7867  002606  0E01               	movlw	1
  7868  002608  0100               	movlb	0	; () banked
  7869  00260A  6FFC               	movwf	_sentNoteOff& (0+255),b
  7870                           
  7871                           ; BSR set to: 0
  7872                           ;midi.c: 51: msCounter = 0;
  7873  00260C  0E00               	movlw	0
  7874  00260E  0100               	movlb	0	; () banked
  7875  002610  6FFA               	movwf	_msCounter& (0+255),b
  7876                           
  7877                           ; BSR set to: 0
  7878                           ;midi.c: 54: USBEnableEndpoint(1,0x04|0x02|0x10|0x08);
  7879  002612  0E1E               	movlw	30
  7880  002614  6E09               	movwf	USBEnableEndpoint@options,c
  7881  002616  0E01               	movlw	1
  7882  002618  ECC6  F013         	call	_USBEnableEndpoint
  7883                           
  7884                           ;midi.c: 57: USBRxHandle = USBTransferOnePacket(1,0,(uint8_t*)&ReceivedDataBuffer,64);
  7885  00261C  0E00               	movlw	0
  7886  00261E  6E01               	movwf	USBTransferOnePacket@dir,c
  7887  002620  0E00               	movlw	0
  7888  002622  6E02               	movwf	USBTransferOnePacket@data,c
  7889  002624  0E05               	movlw	5
  7890  002626  6E03               	movwf	USBTransferOnePacket@data+1,c
  7891  002628  0E40               	movlw	64
  7892  00262A  6E04               	movwf	USBTransferOnePacket@len,c
  7893  00262C  0E01               	movlw	1
  7894  00262E  ECA2  F00B         	call	_USBTransferOnePacket
  7895  002632  C001  F0E1         	movff	?_USBTransferOnePacket,_USBRxHandle
  7896  002636  C002  F0E2         	movff	?_USBTransferOnePacket+1,_USBRxHandle+1
  7897  00263A  0012               	return		;funcret
  7898  00263C                     __end_of_APP_DeviceAudioMIDIInitialize:
  7899                           	opt stack 0
  7900                           tblptru	equ	0xFF8
  7901                           tblptrh	equ	0xFF7
  7902                           tblptrl	equ	0xFF6
  7903                           tablat	equ	0xFF5
  7904                           prodh	equ	0xFF4
  7905                           prodl	equ	0xFF3
  7906                           postinc0	equ	0xFEE
  7907                           wreg	equ	0xFE8
  7908                           indf1	equ	0xFE7
  7909                           postinc1	equ	0xFE6
  7910                           postdec1	equ	0xFE5
  7911                           fsr1h	equ	0xFE2
  7912                           fsr1l	equ	0xFE1
  7913                           indf2	equ	0xFDF
  7914                           postinc2	equ	0xFDE
  7915                           postdec2	equ	0xFDD
  7916                           plusw2	equ	0xFDB
  7917                           fsr2h	equ	0xFDA
  7918                           fsr2l	equ	0xFD9
  7919                           status	equ	0xFD8
  7920                           
  7921 ;; *************** function _USBTransferOnePacket *****************
  7922 ;; Defined at:
  7923 ;;		line 995 in file "usb/usb_device.c"
  7924 ;; Parameters:    Size  Location     Type
  7925 ;;  ep              1    wreg     unsigned char 
  7926 ;;  dir             1    0[COMRAM] unsigned char 
  7927 ;;  data            2    1[COMRAM] PTR unsigned char 
  7928 ;;		 -> midiData(4), ReceivedDataBuffer(64), 
  7929 ;;  len             1    3[COMRAM] unsigned char 
  7930 ;; Auto vars:     Size  Location     Type
  7931 ;;  ep              1    8[COMRAM] unsigned char 
  7932 ;;  handle          2    9[COMRAM] PTR volatile struct __BD
  7933 ;;		 -> RAM(2047), NULL(0), BDT(32), 
  7934 ;; Return value:  Size  Location     Type
  7935 ;;                  2    0[COMRAM] PTR void 
  7936 ;; Registers used:
  7937 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh
  7938 ;; Tracked objects:
  7939 ;;		On entry : 0/0
  7940 ;;		On exit  : 0/0
  7941 ;;		Unchanged: 0/0
  7942 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  7943 ;;      Params:         4       0       0       0       0       0       0       0       0       0
  7944 ;;      Locals:         3       0       0       0       0       0       0       0       0       0
  7945 ;;      Temps:          4       0       0       0       0       0       0       0       0       0
  7946 ;;      Totals:        11       0       0       0       0       0       0       0       0       0
  7947 ;;Total ram usage:       11 bytes
  7948 ;; Hardware stack levels used:    1
  7949 ;; This function calls:
  7950 ;;		Nothing
  7951 ;; This function is called by:
  7952 ;;		_APP_DeviceAudioMIDIInitialize
  7953 ;;		_sendMIDINote
  7954 ;;		_processReceivedMIDI
  7955 ;;		_sendMIDIControl
  7956 ;; This function uses a non-reentrant model
  7957 ;;
  7958                           
  7959                           	psect	text36
  7960  001744                     __ptext36:
  7961                           	opt stack 0
  7962  001744                     _USBTransferOnePacket:
  7963                           	opt stack 28
  7964                           
  7965                           ;incstack = 0
  7966                           ;USBTransferOnePacket@ep stored from wreg
  7967  001744  6E09               	movwf	USBTransferOnePacket@ep,c
  7968                           
  7969                           ;usb_device.c: 997: volatile BDT_ENTRY* handle;
  7970                           ;usb_device.c: 1000: if(dir != 0)
  7971  001746  5001               	movf	USBTransferOnePacket@dir,w,c
  7972  001748  B4D8               	btfsc	status,2,c
  7973  00174A  D007               	goto	l2847
  7974                           
  7975                           ;usb_device.c: 1001: {
  7976                           ;usb_device.c: 1003: handle = pBDTEntryIn[ep];
  7977  00174C  5009               	movf	USBTransferOnePacket@ep,w,c
  7978  00174E  0D02               	mullw	2
  7979  001750  0E51               	movlw	low _pBDTEntryIn
  7980  001752  24F3               	addwf	prodl,w,c
  7981  001754  6ED9               	movwf	fsr2l,c
  7982  001756  0E00               	movlw	high _pBDTEntryIn
  7983  001758  D006               	goto	L16
  7984  00175A                     l2847:
  7985                           
  7986                           ;usb_device.c: 1005: else
  7987                           ;usb_device.c: 1006: {
  7988                           ;usb_device.c: 1008: handle = pBDTEntryOut[ep];
  7989  00175A  5009               	movf	USBTransferOnePacket@ep,w,c
  7990  00175C  0D02               	mullw	2
  7991  00175E  0EDD               	movlw	low _pBDTEntryOut
  7992  001760  24F3               	addwf	prodl,w,c
  7993  001762  6ED9               	movwf	fsr2l,c
  7994  001764  0E00               	movlw	high _pBDTEntryOut
  7995  001766                     L16:
  7996  001766  20F4               	addwfc	prodh,w,c
  7997  001768  6EDA               	movwf	fsr2h,c
  7998  00176A  CFDE F00A          	movff	postinc2,USBTransferOnePacket@handle
  7999  00176E  CFDD F00B          	movff	postdec2,USBTransferOnePacket@handle+1
  8000                           
  8001                           ;usb_device.c: 1009: }
  8002                           ;usb_device.c: 1013: if(handle == 0)
  8003  001772  500A               	movf	USBTransferOnePacket@handle,w,c
  8004  001774  100B               	iorwf	USBTransferOnePacket@handle+1,w,c
  8005  001776  A4D8               	btfss	status,2,c
  8006  001778  D005               	goto	l2855
  8007                           
  8008                           ;usb_device.c: 1014: {
  8009                           ;usb_device.c: 1015: return 0;
  8010  00177A  0E00               	movlw	0
  8011  00177C  6E01               	movwf	?_USBTransferOnePacket,c
  8012  00177E  0E00               	movlw	0
  8013  001780  6E02               	movwf	?_USBTransferOnePacket+1,c
  8014  001782  0012               	return	
  8015  001784                     l2855:
  8016                           
  8017                           ;usb_device.c: 1016: }
  8018                           ;usb_device.c: 1029: handle->ADR = ((uint16_t)(data));
  8019  001784  EE20 F002          	lfsr	2,2
  8020  001788  500A               	movf	USBTransferOnePacket@handle,w,c
  8021  00178A  26D9               	addwf	fsr2l,f,c
  8022  00178C  500B               	movf	USBTransferOnePacket@handle+1,w,c
  8023  00178E  22DA               	addwfc	fsr2h,f,c
  8024  001790  C002  FFDE         	movff	USBTransferOnePacket@data,postinc2
  8025  001794  C003  FFDD         	movff	USBTransferOnePacket@data+1,postdec2
  8026                           
  8027                           ;usb_device.c: 1030: handle->CNT = len;
  8028  001798  EE20 F001          	lfsr	2,1
  8029  00179C  500A               	movf	USBTransferOnePacket@handle,w,c
  8030  00179E  26D9               	addwf	fsr2l,f,c
  8031  0017A0  500B               	movf	USBTransferOnePacket@handle+1,w,c
  8032  0017A2  22DA               	addwfc	fsr2h,f,c
  8033  0017A4  C004  FFDF         	movff	USBTransferOnePacket@len,indf2
  8034                           
  8035                           ;usb_device.c: 1031: handle->STAT.Val &= 0x40;
  8036  0017A8  C00A  FFD9         	movff	USBTransferOnePacket@handle,fsr2l
  8037  0017AC  C00B  FFDA         	movff	USBTransferOnePacket@handle+1,fsr2h
  8038  0017B0  0E40               	movlw	64
  8039  0017B2  16DF               	andwf	indf2,f,c
  8040                           
  8041                           ;usb_device.c: 1032: handle->STAT.Val |= (0x08 & 0x08);
  8042  0017B4  C00A  FFD9         	movff	USBTransferOnePacket@handle,fsr2l
  8043  0017B8  C00B  FFDA         	movff	USBTransferOnePacket@handle+1,fsr2h
  8044  0017BC  0E00               	movlw	0
  8045  0017BE  86DB               	bsf	plusw2,3,c
  8046                           
  8047                           ;usb_device.c: 1033: handle->STAT.Val |= 0x80;
  8048  0017C0  C00A  FFD9         	movff	USBTransferOnePacket@handle,fsr2l
  8049  0017C4  C00B  FFDA         	movff	USBTransferOnePacket@handle+1,fsr2h
  8050  0017C8  0E00               	movlw	0
  8051  0017CA  8EDB               	bsf	plusw2,7,c
  8052                           
  8053                           ;usb_device.c: 1036: if(dir != 0)
  8054  0017CC  5001               	movf	USBTransferOnePacket@dir,w,c
  8055  0017CE  B4D8               	btfsc	status,2,c
  8056  0017D0  D018               	goto	l2867
  8057                           
  8058                           ;usb_device.c: 1037: {
  8059                           ;usb_device.c: 1039: pBDTEntryIn[ep] = (BDT_ENTRY*)(((uintptr_t)pBDTEntryIn[ep]) ^ 0x000
      +                          4);
  8060  0017D2  5009               	movf	USBTransferOnePacket@ep,w,c
  8061  0017D4  0D02               	mullw	2
  8062  0017D6  0E51               	movlw	low _pBDTEntryIn
  8063  0017D8  24F3               	addwf	prodl,w,c
  8064  0017DA  6ED9               	movwf	fsr2l,c
  8065  0017DC  0E00               	movlw	high _pBDTEntryIn
  8066  0017DE  20F4               	addwfc	prodh,w,c
  8067  0017E0  6EDA               	movwf	fsr2h,c
  8068  0017E2  CFDE F005          	movff	postinc2,??_USBTransferOnePacket
  8069  0017E6  CFDD F006          	movff	postdec2,??_USBTransferOnePacket+1
  8070  0017EA  0E04               	movlw	4
  8071  0017EC  1805               	xorwf	??_USBTransferOnePacket,w,c
  8072  0017EE  6E07               	movwf	(??_USBTransferOnePacket+2)& (0+255),c
  8073  0017F0  5006               	movf	??_USBTransferOnePacket+1,w,c
  8074  0017F2  6E08               	movwf	(??_USBTransferOnePacket+3)& (0+255),c
  8075  0017F4  5009               	movf	USBTransferOnePacket@ep,w,c
  8076  0017F6  0D02               	mullw	2
  8077  0017F8  0E51               	movlw	low _pBDTEntryIn
  8078  0017FA  24F3               	addwf	prodl,w,c
  8079  0017FC  6ED9               	movwf	fsr2l,c
  8080  0017FE  0E00               	movlw	high _pBDTEntryIn
  8081  001800  D017               	goto	L17
  8082  001802                     l2867:
  8083                           
  8084                           ;usb_device.c: 1041: else
  8085                           ;usb_device.c: 1042: {
  8086                           ;usb_device.c: 1044: pBDTEntryOut[ep] = (BDT_ENTRY*)(((uintptr_t)pBDTEntryOut[ep]) ^ 0x0
      +                          004);
  8087  001802  5009               	movf	USBTransferOnePacket@ep,w,c
  8088  001804  0D02               	mullw	2
  8089  001806  0EDD               	movlw	low _pBDTEntryOut
  8090  001808  24F3               	addwf	prodl,w,c
  8091  00180A  6ED9               	movwf	fsr2l,c
  8092  00180C  0E00               	movlw	high _pBDTEntryOut
  8093  00180E  20F4               	addwfc	prodh,w,c
  8094  001810  6EDA               	movwf	fsr2h,c
  8095  001812  CFDE F005          	movff	postinc2,??_USBTransferOnePacket
  8096  001816  CFDD F006          	movff	postdec2,??_USBTransferOnePacket+1
  8097  00181A  0E04               	movlw	4
  8098  00181C  1805               	xorwf	??_USBTransferOnePacket,w,c
  8099  00181E  6E07               	movwf	(??_USBTransferOnePacket+2)& (0+255),c
  8100  001820  5006               	movf	??_USBTransferOnePacket+1,w,c
  8101  001822  6E08               	movwf	(??_USBTransferOnePacket+3)& (0+255),c
  8102  001824  5009               	movf	USBTransferOnePacket@ep,w,c
  8103  001826  0D02               	mullw	2
  8104  001828  0EDD               	movlw	low _pBDTEntryOut
  8105  00182A  24F3               	addwf	prodl,w,c
  8106  00182C  6ED9               	movwf	fsr2l,c
  8107  00182E  0E00               	movlw	high _pBDTEntryOut
  8108  001830                     L17:
  8109  001830  20F4               	addwfc	prodh,w,c
  8110  001832  6EDA               	movwf	fsr2h,c
  8111  001834  C007  FFDE         	movff	??_USBTransferOnePacket+2,postinc2
  8112  001838  C008  FFDD         	movff	??_USBTransferOnePacket+3,postdec2
  8113                           
  8114                           ;usb_device.c: 1045: }
  8115                           ;usb_device.c: 1046: return (void*)handle;
  8116  00183C  C00A  F001         	movff	USBTransferOnePacket@handle,?_USBTransferOnePacket
  8117  001840  C00B  F002         	movff	USBTransferOnePacket@handle+1,?_USBTransferOnePacket+1
  8118  001844  0012               	return	
  8119  001846                     __end_of_USBTransferOnePacket:
  8120                           	opt stack 0
  8121                           tblptru	equ	0xFF8
  8122                           tblptrh	equ	0xFF7
  8123                           tblptrl	equ	0xFF6
  8124                           tablat	equ	0xFF5
  8125                           prodh	equ	0xFF4
  8126                           prodl	equ	0xFF3
  8127                           postinc0	equ	0xFEE
  8128                           wreg	equ	0xFE8
  8129                           indf1	equ	0xFE7
  8130                           postinc1	equ	0xFE6
  8131                           postdec1	equ	0xFE5
  8132                           fsr1h	equ	0xFE2
  8133                           fsr1l	equ	0xFE1
  8134                           indf2	equ	0xFDF
  8135                           postinc2	equ	0xFDE
  8136                           postdec2	equ	0xFDD
  8137                           plusw2	equ	0xFDB
  8138                           fsr2h	equ	0xFDA
  8139                           fsr2l	equ	0xFD9
  8140                           status	equ	0xFD8
  8141                           
  8142 ;; *************** function _USBEnableEndpoint *****************
  8143 ;; Defined at:
  8144 ;;		line 878 in file "usb/usb_device.c"
  8145 ;; Parameters:    Size  Location     Type
  8146 ;;  ep              1    wreg     unsigned char 
  8147 ;;  options         1    8[COMRAM] unsigned char 
  8148 ;; Auto vars:     Size  Location     Type
  8149 ;;  ep              1   11[COMRAM] unsigned char 
  8150 ;;  p               2    9[COMRAM] PTR unsigned char 
  8151 ;;		 -> UEP0(1), 
  8152 ;; Return value:  Size  Location     Type
  8153 ;;                  1    wreg      void 
  8154 ;; Registers used:
  8155 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  8156 ;; Tracked objects:
  8157 ;;		On entry : 0/0
  8158 ;;		On exit  : 0/0
  8159 ;;		Unchanged: 0/0
  8160 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  8161 ;;      Params:         1       0       0       0       0       0       0       0       0       0
  8162 ;;      Locals:         3       0       0       0       0       0       0       0       0       0
  8163 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  8164 ;;      Totals:         4       0       0       0       0       0       0       0       0       0
  8165 ;;Total ram usage:        4 bytes
  8166 ;; Hardware stack levels used:    1
  8167 ;; Hardware stack levels required when called:    1
  8168 ;; This function calls:
  8169 ;;		_USBConfigureEndpoint
  8170 ;; This function is called by:
  8171 ;;		_APP_DeviceAudioMIDIInitialize
  8172 ;; This function uses a non-reentrant model
  8173 ;;
  8174                           
  8175                           	psect	text37
  8176  00278C                     __ptext37:
  8177                           	opt stack 0
  8178  00278C                     _USBEnableEndpoint:
  8179                           	opt stack 26
  8180                           
  8181                           ;incstack = 0
  8182                           ;USBEnableEndpoint@ep stored from wreg
  8183  00278C  6E0C               	movwf	USBEnableEndpoint@ep,c
  8184                           
  8185                           ;usb_device.c: 880: unsigned char* p;
  8186                           ;usb_device.c: 884: if(options & 0x04)
  8187  00278E  A409               	btfss	USBEnableEndpoint@options,2,c
  8188  002790  D005               	goto	l2835
  8189                           
  8190                           ;usb_device.c: 885: {
  8191                           ;usb_device.c: 886: USBConfigureEndpoint(ep, 0);
  8192  002792  0E00               	movlw	0
  8193  002794  6E01               	movwf	USBConfigureEndpoint@direction,c
  8194  002796  500C               	movf	USBEnableEndpoint@ep,w,c
  8195  002798  EC67  F010         	call	_USBConfigureEndpoint
  8196  00279C                     l2835:
  8197                           
  8198                           ;usb_device.c: 887: }
  8199                           ;usb_device.c: 888: if(options & 0x02)
  8200  00279C  A209               	btfss	USBEnableEndpoint@options,1,c
  8201  00279E  D005               	goto	l2839
  8202                           
  8203                           ;usb_device.c: 889: {
  8204                           ;usb_device.c: 890: USBConfigureEndpoint(ep, 1);
  8205  0027A0  0E01               	movlw	1
  8206  0027A2  6E01               	movwf	USBConfigureEndpoint@direction,c
  8207  0027A4  500C               	movf	USBEnableEndpoint@ep,w,c
  8208  0027A6  EC67  F010         	call	_USBConfigureEndpoint
  8209  0027AA                     l2839:
  8210                           
  8211                           ;usb_device.c: 891: }
  8212                           ;usb_device.c: 899: p = (unsigned char*)(&UEP0+ep);
  8213  0027AA  500C               	movf	USBEnableEndpoint@ep,w,c
  8214  0027AC  0D01               	mullw	1
  8215  0027AE  0E70               	movlw	112
  8216  0027B0  24F3               	addwf	prodl,w,c
  8217  0027B2  6E0A               	movwf	USBEnableEndpoint@p,c
  8218  0027B4  0E0F               	movlw	15
  8219  0027B6  20F4               	addwfc	prodh,w,c
  8220  0027B8  6E0B               	movwf	USBEnableEndpoint@p+1,c
  8221                           
  8222                           ;usb_device.c: 901: *p = options;
  8223  0027BA  C00A  FFD9         	movff	USBEnableEndpoint@p,fsr2l
  8224  0027BE  C00B  FFDA         	movff	USBEnableEndpoint@p+1,fsr2h
  8225  0027C2  C009  FFDF         	movff	USBEnableEndpoint@options,indf2
  8226  0027C6  0012               	return		;funcret
  8227  0027C8                     __end_of_USBEnableEndpoint:
  8228                           	opt stack 0
  8229                           tblptru	equ	0xFF8
  8230                           tblptrh	equ	0xFF7
  8231                           tblptrl	equ	0xFF6
  8232                           tablat	equ	0xFF5
  8233                           prodh	equ	0xFF4
  8234                           prodl	equ	0xFF3
  8235                           postinc0	equ	0xFEE
  8236                           wreg	equ	0xFE8
  8237                           indf1	equ	0xFE7
  8238                           postinc1	equ	0xFE6
  8239                           postdec1	equ	0xFE5
  8240                           fsr1h	equ	0xFE2
  8241                           fsr1l	equ	0xFE1
  8242                           indf2	equ	0xFDF
  8243                           postinc2	equ	0xFDE
  8244                           postdec2	equ	0xFDD
  8245                           plusw2	equ	0xFDB
  8246                           fsr2h	equ	0xFDA
  8247                           fsr2l	equ	0xFD9
  8248                           status	equ	0xFD8
  8249                           
  8250 ;; *************** function _USBConfigureEndpoint *****************
  8251 ;; Defined at:
  8252 ;;		line 1543 in file "usb/usb_device.c"
  8253 ;; Parameters:    Size  Location     Type
  8254 ;;  EPNum           1    wreg     unsigned char 
  8255 ;;  direction       1    0[COMRAM] unsigned char 
  8256 ;; Auto vars:     Size  Location     Type
  8257 ;;  EPNum           1    5[COMRAM] unsigned char 
  8258 ;;  handle          2    6[COMRAM] PTR volatile struct __BD
  8259 ;;		 -> BDT(32), 
  8260 ;; Return value:  Size  Location     Type
  8261 ;;                  1    wreg      void 
  8262 ;; Registers used:
  8263 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh
  8264 ;; Tracked objects:
  8265 ;;		On entry : 0/0
  8266 ;;		On exit  : 0/0
  8267 ;;		Unchanged: 0/0
  8268 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  8269 ;;      Params:         1       0       0       0       0       0       0       0       0       0
  8270 ;;      Locals:         3       0       0       0       0       0       0       0       0       0
  8271 ;;      Temps:          4       0       0       0       0       0       0       0       0       0
  8272 ;;      Totals:         8       0       0       0       0       0       0       0       0       0
  8273 ;;Total ram usage:        8 bytes
  8274 ;; Hardware stack levels used:    1
  8275 ;; This function calls:
  8276 ;;		Nothing
  8277 ;; This function is called by:
  8278 ;;		_USBEnableEndpoint
  8279 ;; This function uses a non-reentrant model
  8280 ;;
  8281                           
  8282                           	psect	text38
  8283  0020CE                     __ptext38:
  8284                           	opt stack 0
  8285  0020CE                     _USBConfigureEndpoint:
  8286                           	opt stack 26
  8287                           
  8288                           ;incstack = 0
  8289                           ;USBConfigureEndpoint@EPNum stored from wreg
  8290  0020CE  6E06               	movwf	USBConfigureEndpoint@EPNum,c
  8291                           
  8292                           ;usb_device.c: 1545: volatile BDT_ENTRY* handle;
  8293                           ;usb_device.c: 1549: handle = (volatile BDT_ENTRY*)&BDT[0];
  8294  0020D0  0E00               	movlw	0
  8295  0020D2  6E07               	movwf	USBConfigureEndpoint@handle,c
  8296  0020D4  0E04               	movlw	4
  8297  0020D6  6E08               	movwf	USBConfigureEndpoint@handle+1,c
  8298                           
  8299                           ;usb_device.c: 1550: handle += (4*EPNum+2*direction+0u);
  8300  0020D8  5001               	movf	USBConfigureEndpoint@direction,w,c
  8301  0020DA  6E02               	movwf	??_USBConfigureEndpoint& (0+255),c
  8302  0020DC  6A03               	clrf	(??_USBConfigureEndpoint+1)& (0+255),c
  8303  0020DE  90D8               	bcf	status,0,c
  8304  0020E0  3602               	rlcf	??_USBConfigureEndpoint,f,c
  8305  0020E2  3603               	rlcf	??_USBConfigureEndpoint+1,f,c
  8306  0020E4  5006               	movf	USBConfigureEndpoint@EPNum,w,c
  8307  0020E6  6E04               	movwf	(??_USBConfigureEndpoint+2)& (0+255),c
  8308  0020E8  6A05               	clrf	(??_USBConfigureEndpoint+3)& (0+255),c
  8309  0020EA  90D8               	bcf	status,0,c
  8310  0020EC  3604               	rlcf	??_USBConfigureEndpoint+2,f,c
  8311  0020EE  3605               	rlcf	??_USBConfigureEndpoint+3,f,c
  8312  0020F0  90D8               	bcf	status,0,c
  8313  0020F2  3604               	rlcf	??_USBConfigureEndpoint+2,f,c
  8314  0020F4  3605               	rlcf	??_USBConfigureEndpoint+3,f,c
  8315  0020F6  5002               	movf	??_USBConfigureEndpoint,w,c
  8316  0020F8  2604               	addwf	??_USBConfigureEndpoint+2,f,c
  8317  0020FA  5003               	movf	??_USBConfigureEndpoint+1,w,c
  8318  0020FC  2205               	addwfc	??_USBConfigureEndpoint+3,f,c
  8319  0020FE  90D8               	bcf	status,0,c
  8320  002100  3604               	rlcf	??_USBConfigureEndpoint+2,f,c
  8321  002102  3605               	rlcf	??_USBConfigureEndpoint+3,f,c
  8322  002104  90D8               	bcf	status,0,c
  8323  002106  3604               	rlcf	??_USBConfigureEndpoint+2,f,c
  8324  002108  3605               	rlcf	??_USBConfigureEndpoint+3,f,c
  8325  00210A  5004               	movf	??_USBConfigureEndpoint+2,w,c
  8326  00210C  2607               	addwf	USBConfigureEndpoint@handle,f,c
  8327  00210E  5005               	movf	??_USBConfigureEndpoint+3,w,c
  8328  002110  2208               	addwfc	USBConfigureEndpoint@handle+1,f,c
  8329                           
  8330                           ;usb_device.c: 1552: handle->STAT.UOWN = 0;
  8331  002112  C007  FFD9         	movff	USBConfigureEndpoint@handle,fsr2l
  8332  002116  C008  FFDA         	movff	USBConfigureEndpoint@handle+1,fsr2h
  8333  00211A  9EDF               	bcf	indf2,7,c
  8334                           
  8335                           ;usb_device.c: 1557: if(direction == 0)
  8336  00211C  5001               	movf	USBConfigureEndpoint@direction,w,c
  8337  00211E  A4D8               	btfss	status,2,c
  8338  002120  D007               	goto	l2825
  8339                           
  8340                           ;usb_device.c: 1558: {
  8341                           ;usb_device.c: 1559: pBDTEntryOut[EPNum] = handle;
  8342  002122  5006               	movf	USBConfigureEndpoint@EPNum,w,c
  8343  002124  0D02               	mullw	2
  8344  002126  0EDD               	movlw	low _pBDTEntryOut
  8345  002128  24F3               	addwf	prodl,w,c
  8346  00212A  6ED9               	movwf	fsr2l,c
  8347  00212C  0E00               	movlw	high _pBDTEntryOut
  8348  00212E  D006               	goto	L18
  8349  002130                     l2825:
  8350                           
  8351                           ;usb_device.c: 1561: else
  8352                           ;usb_device.c: 1562: {
  8353                           ;usb_device.c: 1563: pBDTEntryIn[EPNum] = handle;
  8354  002130  5006               	movf	USBConfigureEndpoint@EPNum,w,c
  8355  002132  0D02               	mullw	2
  8356  002134  0E51               	movlw	low _pBDTEntryIn
  8357  002136  24F3               	addwf	prodl,w,c
  8358  002138  6ED9               	movwf	fsr2l,c
  8359  00213A  0E00               	movlw	high _pBDTEntryIn
  8360  00213C                     L18:
  8361  00213C  20F4               	addwfc	prodh,w,c
  8362  00213E  6EDA               	movwf	fsr2h,c
  8363  002140  C007  FFDE         	movff	USBConfigureEndpoint@handle,postinc2
  8364  002144  C008  FFDD         	movff	USBConfigureEndpoint@handle+1,postdec2
  8365                           
  8366                           ;usb_device.c: 1564: }
  8367                           ;usb_device.c: 1567: handle->STAT.DTS = 0;
  8368  002148  C007  FFD9         	movff	USBConfigureEndpoint@handle,fsr2l
  8369  00214C  C008  FFDA         	movff	USBConfigureEndpoint@handle+1,fsr2h
  8370  002150  9CDF               	bcf	indf2,6,c
  8371                           
  8372                           ;usb_device.c: 1568: (handle+1)->STAT.DTS = 1;
  8373  002152  EE20 F004          	lfsr	2,4
  8374  002156  5007               	movf	USBConfigureEndpoint@handle,w,c
  8375  002158  26D9               	addwf	fsr2l,f,c
  8376  00215A  5008               	movf	USBConfigureEndpoint@handle+1,w,c
  8377  00215C  22DA               	addwfc	fsr2h,f,c
  8378  00215E  8CDF               	bsf	indf2,6,c
  8379  002160  0012               	return		;funcret
  8380  002162                     __end_of_USBConfigureEndpoint:
  8381                           	opt stack 0
  8382                           tblptru	equ	0xFF8
  8383                           tblptrh	equ	0xFF7
  8384                           tblptrl	equ	0xFF6
  8385                           tablat	equ	0xFF5
  8386                           prodh	equ	0xFF4
  8387                           prodl	equ	0xFF3
  8388                           postinc0	equ	0xFEE
  8389                           wreg	equ	0xFE8
  8390                           indf1	equ	0xFE7
  8391                           postinc1	equ	0xFE6
  8392                           postdec1	equ	0xFE5
  8393                           fsr1h	equ	0xFE2
  8394                           fsr1l	equ	0xFE1
  8395                           indf2	equ	0xFDF
  8396                           postinc2	equ	0xFDE
  8397                           postdec2	equ	0xFDD
  8398                           plusw2	equ	0xFDB
  8399                           fsr2h	equ	0xFDA
  8400                           fsr2l	equ	0xFD9
  8401                           status	equ	0xFD8
  8402                           
  8403 ;; *************** function _USBCtrlTrfOutHandler *****************
  8404 ;; Defined at:
  8405 ;;		line 2538 in file "usb/usb_device.c"
  8406 ;; Parameters:    Size  Location     Type
  8407 ;;		None
  8408 ;; Auto vars:     Size  Location     Type
  8409 ;;		None
  8410 ;; Return value:  Size  Location     Type
  8411 ;;                  1    wreg      void 
  8412 ;; Registers used:
  8413 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  8414 ;; Tracked objects:
  8415 ;;		On entry : 0/0
  8416 ;;		On exit  : 0/0
  8417 ;;		Unchanged: 0/0
  8418 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  8419 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  8420 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  8421 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  8422 ;;      Totals:         0       0       0       0       0       0       0       0       0       0
  8423 ;;Total ram usage:        0 bytes
  8424 ;; Hardware stack levels used:    1
  8425 ;; Hardware stack levels required when called:    2
  8426 ;; This function calls:
  8427 ;;		_USBCtrlTrfRxService
  8428 ;; This function is called by:
  8429 ;;		_USBCtrlEPService
  8430 ;; This function uses a non-reentrant model
  8431 ;;
  8432                           
  8433                           	psect	text39
  8434  002486                     __ptext39:
  8435                           	opt stack 0
  8436  002486                     _USBCtrlTrfOutHandler:
  8437                           	opt stack 26
  8438                           
  8439                           ;usb_device.c: 2540: if(controlTransferState == 2)
  8440                           
  8441                           ;incstack = 0
  8442  002486  0E02               	movlw	2
  8443  002488  185B               	xorwf	_controlTransferState,w,c
  8444  00248A  A4D8               	btfss	status,2,c
  8445  00248C  D003               	goto	l3469
  8446                           
  8447                           ;usb_device.c: 2541: {
  8448                           ;usb_device.c: 2542: USBCtrlTrfRxService();
  8449  00248E  EC95  F00A         	call	_USBCtrlTrfRxService	;wreg free
  8450                           
  8451                           ;usb_device.c: 2543: }
  8452  002492  0012               	return	
  8453  002494                     l3469:
  8454                           
  8455                           ;usb_device.c: 2544: else
  8456                           ;usb_device.c: 2545: {
  8457                           ;usb_device.c: 2548: controlTransferState = 0;
  8458  002494  0E00               	movlw	0
  8459  002496  6E5B               	movwf	_controlTransferState,c
  8460                           
  8461                           ;usb_device.c: 2555: if(BothEP0OutUOWNsSet == 0)
  8462  002498  0100               	movlb	0	; () banked
  8463  00249A  51EB               	movf	_BothEP0OutUOWNsSet& (0+255),w,b
  8464  00249C  A4D8               	btfss	status,2,c
  8465  00249E  D01F               	goto	l3477
  8466                           
  8467                           ; BSR set to: 0
  8468                           ;usb_device.c: 2556: {
  8469                           ;usb_device.c: 2557: pBDTEntryEP0OutNext->CNT = 8;
  8470  0024A0  EE20 F001          	lfsr	2,1
  8471  0024A4  5057               	movf	_pBDTEntryEP0OutNext,w,c
  8472  0024A6  26D9               	addwf	fsr2l,f,c
  8473  0024A8  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  8474  0024AA  22DA               	addwfc	fsr2h,f,c
  8475  0024AC  0E08               	movlw	8
  8476  0024AE  6EDF               	movwf	indf2,c
  8477                           
  8478                           ;usb_device.c: 2558: pBDTEntryEP0OutNext->ADR = ((uint16_t)(&SetupPkt));
  8479  0024B0  EE20 F002          	lfsr	2,2
  8480  0024B4  5057               	movf	_pBDTEntryEP0OutNext,w,c
  8481  0024B6  26D9               	addwf	fsr2l,f,c
  8482  0024B8  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  8483  0024BA  22DA               	addwfc	fsr2h,f,c
  8484  0024BC  0E20               	movlw	32
  8485  0024BE  6EDE               	movwf	postinc2,c
  8486  0024C0  0E04               	movlw	4
  8487  0024C2  6EDD               	movwf	postdec2,c
  8488                           
  8489                           ; BSR set to: 0
  8490                           ;usb_device.c: 2559: pBDTEntryEP0OutNext->STAT.Val = 0x00|(0x08 & 0x08)|0x04;
  8491  0024C4  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  8492  0024C8  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  8493  0024CC  0E0C               	movlw	12
  8494  0024CE  6EDF               	movwf	indf2,c
  8495                           
  8496                           ; BSR set to: 0
  8497                           ;usb_device.c: 2560: pBDTEntryEP0OutNext->STAT.Val |= 0x80;
  8498  0024D0  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  8499  0024D4  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  8500  0024D8  0E00               	movlw	0
  8501  0024DA  8EDB               	bsf	plusw2,7,c
  8502                           
  8503                           ;usb_device.c: 2561: }
  8504  0024DC  0012               	return	
  8505  0024DE                     l3477:
  8506                           
  8507                           ; BSR set to: 0
  8508                           ;usb_device.c: 2562: else
  8509                           ;usb_device.c: 2563: {
  8510                           ;usb_device.c: 2564: BothEP0OutUOWNsSet = 0;
  8511  0024DE  0E00               	movlw	0
  8512  0024E0  0100               	movlb	0	; () banked
  8513  0024E2  6FEB               	movwf	_BothEP0OutUOWNsSet& (0+255),b
  8514                           
  8515                           ; BSR set to: 0
  8516  0024E4  0012               	return	
  8517  0024E6                     __end_of_USBCtrlTrfOutHandler:
  8518                           	opt stack 0
  8519                           tblptru	equ	0xFF8
  8520                           tblptrh	equ	0xFF7
  8521                           tblptrl	equ	0xFF6
  8522                           tablat	equ	0xFF5
  8523                           prodh	equ	0xFF4
  8524                           prodl	equ	0xFF3
  8525                           postinc0	equ	0xFEE
  8526                           wreg	equ	0xFE8
  8527                           indf1	equ	0xFE7
  8528                           postinc1	equ	0xFE6
  8529                           postdec1	equ	0xFE5
  8530                           fsr1h	equ	0xFE2
  8531                           fsr1l	equ	0xFE1
  8532                           indf2	equ	0xFDF
  8533                           postinc2	equ	0xFDE
  8534                           postdec2	equ	0xFDD
  8535                           plusw2	equ	0xFDB
  8536                           fsr2h	equ	0xFDA
  8537                           fsr2l	equ	0xFD9
  8538                           status	equ	0xFD8
  8539                           
  8540 ;; *************** function _USBCtrlTrfRxService *****************
  8541 ;; Defined at:
  8542 ;;		line 1852 in file "usb/usb_device.c"
  8543 ;; Parameters:    Size  Location     Type
  8544 ;;		None
  8545 ;; Auto vars:     Size  Location     Type
  8546 ;;  byteToRead      1    1[COMRAM] unsigned char 
  8547 ;;  i               1    0[COMRAM] unsigned char 
  8548 ;; Return value:  Size  Location     Type
  8549 ;;                  1    wreg      void 
  8550 ;; Registers used:
  8551 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  8552 ;; Tracked objects:
  8553 ;;		On entry : 0/0
  8554 ;;		On exit  : 0/0
  8555 ;;		Unchanged: 0/0
  8556 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  8557 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  8558 ;;      Locals:         2       0       0       0       0       0       0       0       0       0
  8559 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  8560 ;;      Totals:         2       0       0       0       0       0       0       0       0       0
  8561 ;;Total ram usage:        2 bytes
  8562 ;; Hardware stack levels used:    1
  8563 ;; Hardware stack levels required when called:    1
  8564 ;; This function calls:
  8565 ;;		_USBCtrlEPAllowStatusStage
  8566 ;; This function is called by:
  8567 ;;		_USBCtrlTrfOutHandler
  8568 ;; This function uses a non-reentrant model
  8569 ;;
  8570                           
  8571                           	psect	text40
  8572  00152A                     __ptext40:
  8573                           	opt stack 0
  8574  00152A                     _USBCtrlTrfRxService:
  8575                           	opt stack 26
  8576                           
  8577                           ;usb_device.c: 1854: uint8_t byteToRead;
  8578                           ;usb_device.c: 1855: uint8_t i;
  8579                           ;usb_device.c: 1859: byteToRead = pBDTEntryEP0OutCurrent->CNT;
  8580                           
  8581                           ;incstack = 0
  8582  00152A  EE20 F001          	lfsr	2,1
  8583  00152E  5055               	movf	_pBDTEntryEP0OutCurrent,w,c
  8584  001530  26D9               	addwf	fsr2l,f,c
  8585  001532  5056               	movf	_pBDTEntryEP0OutCurrent+1,w,c
  8586  001534  22DA               	addwfc	fsr2h,f,c
  8587  001536  50DF               	movf	indf2,w,c
  8588  001538  6E02               	movwf	USBCtrlTrfRxService@byteToRead,c
  8589                           
  8590                           ;usb_device.c: 1865: if(byteToRead > outPipes[0].wCount.Val)
  8591  00153A  5002               	movf	USBCtrlTrfRxService@byteToRead,w,c
  8592  00153C  0100               	movlb	0	; () banked
  8593  00153E  5DD5               	subwf	(_outPipes+4)& (0+255),w,b
  8594  001540  0E00               	movlw	0
  8595  001542  59D6               	subwfb	(_outPipes+5)& (0+255),w,b
  8596  001544  A0D8               	btfss	status,0,c
  8597                           
  8598                           ; BSR set to: 0
  8599                           ;usb_device.c: 1866: {
  8600                           ;usb_device.c: 1867: byteToRead = outPipes[0].wCount.Val;
  8601  001546  C0D5  F002         	movff	_outPipes+4,USBCtrlTrfRxService@byteToRead
  8602                           
  8603                           ; BSR set to: 0
  8604                           ;usb_device.c: 1868: }
  8605                           ;usb_device.c: 1870: outPipes[0].wCount.Val -= byteToRead;
  8606                           
  8607                           ; BSR set to: 0
  8608  00154A  5002               	movf	USBCtrlTrfRxService@byteToRead,w,c
  8609  00154C  0100               	movlb	0	; () banked
  8610  00154E  5FD5               	subwf	(_outPipes+4)& (0+255),f,b
  8611  001550  0E00               	movlw	0
  8612  001552  5BD6               	subwfb	(_outPipes+5)& (0+255),f,b
  8613                           
  8614                           ; BSR set to: 0
  8615                           ;usb_device.c: 1874: for(i=0;i<byteToRead;i++)
  8616  001554  0E00               	movlw	0
  8617  001556  6E01               	movwf	USBCtrlTrfRxService@i,c
  8618  001558  D012               	goto	l3271
  8619  00155A                     l3265:
  8620                           
  8621                           ; BSR set to: 0
  8622                           ;usb_device.c: 1875: {
  8623                           ;usb_device.c: 1876: *outPipes[0].pDst.bRam++ = CtrlTrfData[i];
  8624  00155A  5001               	movf	USBCtrlTrfRxService@i,w,c
  8625  00155C  0D01               	mullw	1
  8626  00155E  0E28               	movlw	40
  8627  001560  24F3               	addwf	prodl,w,c
  8628  001562  6ED9               	movwf	fsr2l,c
  8629  001564  0E04               	movlw	4
  8630  001566  20F4               	addwfc	prodh,w,c
  8631  001568  6EDA               	movwf	fsr2h,c
  8632  00156A  C0D1  FFE1         	movff	_outPipes,fsr1l
  8633  00156E  C0D2  FFE2         	movff	_outPipes+1,fsr1h
  8634  001572  CFDF FFE7          	movff	indf2,indf1
  8635                           
  8636                           ; BSR set to: 0
  8637  001576  0100               	movlb	0	; () banked
  8638  001578  4BD1               	infsnz	_outPipes& (0+255),f,b
  8639  00157A  2BD2               	incf	(_outPipes+1)& (0+255),f,b
  8640                           
  8641                           ; BSR set to: 0
  8642  00157C  2A01               	incf	USBCtrlTrfRxService@i,f,c
  8643  00157E                     l3271:
  8644                           
  8645                           ; BSR set to: 0
  8646  00157E  5002               	movf	USBCtrlTrfRxService@byteToRead,w,c
  8647  001580  5C01               	subwf	USBCtrlTrfRxService@i,w,c
  8648  001582  A0D8               	btfss	status,0,c
  8649  001584  D7EA               	goto	l3265
  8650                           
  8651                           ; BSR set to: 0
  8652                           ;usb_device.c: 1877: }
  8653                           ;usb_device.c: 1881: if(outPipes[0].wCount.Val > 0)
  8654                           
  8655                           ; BSR set to: 0
  8656  001586  0100               	movlb	0	; () banked
  8657  001588  51D5               	movf	(_outPipes+4)& (0+255),w,b
  8658  00158A  0100               	movlb	0	; () banked
  8659  00158C  11D6               	iorwf	(_outPipes+5)& (0+255),w,b
  8660  00158E  B4D8               	btfsc	status,2,c
  8661  001590  D032               	goto	l3287
  8662                           
  8663                           ; BSR set to: 0
  8664                           ;usb_device.c: 1882: {
  8665                           ;usb_device.c: 1883: pBDTEntryEP0OutNext->CNT = 8;
  8666  001592  EE20 F001          	lfsr	2,1
  8667  001596  5057               	movf	_pBDTEntryEP0OutNext,w,c
  8668  001598  26D9               	addwf	fsr2l,f,c
  8669  00159A  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  8670  00159C  22DA               	addwfc	fsr2h,f,c
  8671  00159E  0E08               	movlw	8
  8672  0015A0  6EDF               	movwf	indf2,c
  8673                           
  8674                           ;usb_device.c: 1884: pBDTEntryEP0OutNext->ADR = ((uint16_t)(&CtrlTrfData));
  8675  0015A2  EE20 F002          	lfsr	2,2
  8676  0015A6  5057               	movf	_pBDTEntryEP0OutNext,w,c
  8677  0015A8  26D9               	addwf	fsr2l,f,c
  8678  0015AA  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  8679  0015AC  22DA               	addwfc	fsr2h,f,c
  8680  0015AE  0E28               	movlw	40
  8681  0015B0  6EDE               	movwf	postinc2,c
  8682  0015B2  0E04               	movlw	4
  8683  0015B4  6EDD               	movwf	postdec2,c
  8684                           
  8685                           ; BSR set to: 0
  8686                           ;usb_device.c: 1885: if(pBDTEntryEP0OutCurrent->STAT.DTS == 0)
  8687  0015B6  C055  FFD9         	movff	_pBDTEntryEP0OutCurrent,fsr2l
  8688  0015BA  C056  FFDA         	movff	_pBDTEntryEP0OutCurrent+1,fsr2h
  8689  0015BE  BCDF               	btfsc	indf2,6,c
  8690  0015C0  D00D               	goto	l3283
  8691                           
  8692                           ; BSR set to: 0
  8693                           ;usb_device.c: 1886: {
  8694                           ;usb_device.c: 1887: pBDTEntryEP0OutNext->STAT.Val = 0x40|(0x08 & 0x08);
  8695  0015C2  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  8696  0015C6  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  8697  0015CA  0E48               	movlw	72
  8698  0015CC  6EDF               	movwf	indf2,c
  8699                           
  8700                           ; BSR set to: 0
  8701                           ;usb_device.c: 1888: pBDTEntryEP0OutNext->STAT.Val |= 0x80;
  8702  0015CE  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  8703  0015D2  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  8704  0015D6  0E00               	movlw	0
  8705  0015D8  8EDB               	bsf	plusw2,7,c
  8706                           
  8707                           ;usb_device.c: 1889: }
  8708  0015DA  0012               	return	
  8709  0015DC                     l3283:
  8710                           
  8711                           ; BSR set to: 0
  8712                           ;usb_device.c: 1890: else
  8713                           ;usb_device.c: 1891: {
  8714                           ;usb_device.c: 1892: pBDTEntryEP0OutNext->STAT.Val = 0x00|(0x08 & 0x08);
  8715  0015DC  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  8716  0015E0  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  8717  0015E4  0E08               	movlw	8
  8718  0015E6  6EDF               	movwf	indf2,c
  8719                           
  8720                           ; BSR set to: 0
  8721                           ;usb_device.c: 1893: pBDTEntryEP0OutNext->STAT.Val |= 0x80;
  8722  0015E8  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  8723  0015EC  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  8724  0015F0  0E00               	movlw	0
  8725  0015F2  8EDB               	bsf	plusw2,7,c
  8726                           
  8727                           ; BSR set to: 0
  8728                           ;usb_device.c: 1894: }
  8729                           ;usb_device.c: 1895: }
  8730  0015F4  0012               	return	
  8731  0015F6                     l3287:
  8732                           
  8733                           ; BSR set to: 0
  8734                           ;usb_device.c: 1896: else
  8735                           ;usb_device.c: 1897: {
  8736                           ;usb_device.c: 1901: pBDTEntryEP0OutNext->CNT = 8;
  8737  0015F6  EE20 F001          	lfsr	2,1
  8738  0015FA  5057               	movf	_pBDTEntryEP0OutNext,w,c
  8739  0015FC  26D9               	addwf	fsr2l,f,c
  8740  0015FE  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  8741  001600  22DA               	addwfc	fsr2h,f,c
  8742  001602  0E08               	movlw	8
  8743  001604  6EDF               	movwf	indf2,c
  8744                           
  8745                           ;usb_device.c: 1902: pBDTEntryEP0OutNext->ADR = ((uint16_t)(&SetupPkt));
  8746  001606  EE20 F002          	lfsr	2,2
  8747  00160A  5057               	movf	_pBDTEntryEP0OutNext,w,c
  8748  00160C  26D9               	addwf	fsr2l,f,c
  8749  00160E  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  8750  001610  22DA               	addwfc	fsr2h,f,c
  8751  001612  0E20               	movlw	32
  8752  001614  6EDE               	movwf	postinc2,c
  8753  001616  0E04               	movlw	4
  8754  001618  6EDD               	movwf	postdec2,c
  8755                           
  8756                           ; BSR set to: 0
  8757                           ;usb_device.c: 1906: pBDTEntryEP0OutNext->STAT.Val = 0x04;
  8758  00161A  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  8759  00161E  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  8760  001622  0E04               	movlw	4
  8761  001624  6EDF               	movwf	indf2,c
  8762                           
  8763                           ; BSR set to: 0
  8764                           ;usb_device.c: 1907: pBDTEntryEP0OutNext->STAT.Val |= 0x80;
  8765  001626  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  8766  00162A  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  8767  00162E  0E00               	movlw	0
  8768  001630  8EDB               	bsf	plusw2,7,c
  8769                           
  8770                           ; BSR set to: 0
  8771                           ;usb_device.c: 1926: }
  8772                           ;usb_device.c: 1927: outPipes[0].info.bits.busy = 0;
  8773                           
  8774                           ; BSR set to: 0
  8775  001632  0100               	movlb	0	; () banked
  8776  001634  9FD4               	bcf	(_outPipes+3)& (0+255),7,b
  8777                           
  8778                           ; BSR set to: 0
  8779                           ;usb_device.c: 1941: if(USBDeferStatusStagePacket == 0)
  8780  001636  5059               	movf	_USBDeferStatusStagePacket,w,c	;volatile
  8781  001638  A4D8               	btfss	status,2,c
  8782  00163A  0012               	return	
  8783                           
  8784                           ; BSR set to: 0
  8785                           ;usb_device.c: 1942: {
  8786                           ;usb_device.c: 1943: USBCtrlEPAllowStatusStage();
  8787  00163C  ECFE  F00C         	call	_USBCtrlEPAllowStatusStage	;wreg free
  8788  001640  0012               	return	
  8789  001642                     __end_of_USBCtrlTrfRxService:
  8790                           	opt stack 0
  8791                           tblptru	equ	0xFF8
  8792                           tblptrh	equ	0xFF7
  8793                           tblptrl	equ	0xFF6
  8794                           tablat	equ	0xFF5
  8795                           prodh	equ	0xFF4
  8796                           prodl	equ	0xFF3
  8797                           postinc0	equ	0xFEE
  8798                           wreg	equ	0xFE8
  8799                           indf1	equ	0xFE7
  8800                           postinc1	equ	0xFE6
  8801                           postdec1	equ	0xFE5
  8802                           fsr1h	equ	0xFE2
  8803                           fsr1l	equ	0xFE1
  8804                           indf2	equ	0xFDF
  8805                           postinc2	equ	0xFDE
  8806                           postdec2	equ	0xFDD
  8807                           plusw2	equ	0xFDB
  8808                           fsr2h	equ	0xFDA
  8809                           fsr2l	equ	0xFD9
  8810                           status	equ	0xFD8
  8811                           
  8812 ;; *************** function _USBCtrlEPAllowStatusStage *****************
  8813 ;; Defined at:
  8814 ;;		line 1416 in file "usb/usb_device.c"
  8815 ;; Parameters:    Size  Location     Type
  8816 ;;		None
  8817 ;; Auto vars:     Size  Location     Type
  8818 ;;		None
  8819 ;; Return value:  Size  Location     Type
  8820 ;;                  1    wreg      void 
  8821 ;; Registers used:
  8822 ;;		wreg, fsr2l, fsr2h, status,2, status,0
  8823 ;; Tracked objects:
  8824 ;;		On entry : 0/0
  8825 ;;		On exit  : 0/0
  8826 ;;		Unchanged: 0/0
  8827 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  8828 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  8829 ;;      Locals:         0       0       0       0       0       0       0       0       0       0
  8830 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  8831 ;;      Totals:         0       0       0       0       0       0       0       0       0       0
  8832 ;;Total ram usage:        0 bytes
  8833 ;; Hardware stack levels used:    1
  8834 ;; This function calls:
  8835 ;;		Nothing
  8836 ;; This function is called by:
  8837 ;;		_USBDeviceTasks
  8838 ;;		_USBCtrlEPServiceComplete
  8839 ;;		_USBCtrlTrfRxService
  8840 ;; This function uses a non-reentrant model
  8841 ;;
  8842                           
  8843                           	psect	text41
  8844  0019FC                     __ptext41:
  8845                           	opt stack 0
  8846  0019FC                     _USBCtrlEPAllowStatusStage:
  8847                           	opt stack 26
  8848                           
  8849                           ;usb_device.c: 1423: if(USBStatusStageEnabledFlag1 == 0)
  8850                           
  8851                           ;incstack = 0
  8852  0019FC  0100               	movlb	0	; () banked
  8853  0019FE  51F0               	movf	_USBStatusStageEnabledFlag1& (0+255),w,b	;volatile
  8854  001A00  A4D8               	btfss	status,2,c
  8855  001A02  0012               	return	
  8856                           
  8857                           ; BSR set to: 0
  8858                           ;usb_device.c: 1424: {
  8859                           ;usb_device.c: 1425: USBStatusStageEnabledFlag1 = 1;
  8860  001A04  0E01               	movlw	1
  8861  001A06  0100               	movlb	0	; () banked
  8862  001A08  6FF0               	movwf	_USBStatusStageEnabledFlag1& (0+255),b	;volatile
  8863                           
  8864                           ;usb_device.c: 1426: if(USBStatusStageEnabledFlag2 == 0)
  8865  001A0A  0100               	movlb	0	; () banked
  8866  001A0C  51F1               	movf	_USBStatusStageEnabledFlag2& (0+255),w,b	;volatile
  8867  001A0E  A4D8               	btfss	status,2,c
  8868  001A10  0012               	return	
  8869                           
  8870                           ; BSR set to: 0
  8871                           ;usb_device.c: 1427: {
  8872                           ;usb_device.c: 1428: USBStatusStageEnabledFlag2 = 1;
  8873  001A12  0E01               	movlw	1
  8874  001A14  0100               	movlb	0	; () banked
  8875  001A16  6FF1               	movwf	_USBStatusStageEnabledFlag2& (0+255),b	;volatile
  8876                           
  8877                           ; BSR set to: 0
  8878                           ;usb_device.c: 1432: if(controlTransferState == 2)
  8879  001A18  0E02               	movlw	2
  8880  001A1A  185B               	xorwf	_controlTransferState,w,c
  8881  001A1C  A4D8               	btfss	status,2,c
  8882  001A1E  D015               	goto	l2967
  8883                           
  8884                           ; BSR set to: 0
  8885                           ;usb_device.c: 1433: {
  8886                           ;usb_device.c: 1434: pBDTEntryIn[0]->CNT = 0;
  8887  001A20  EE20 F001          	lfsr	2,1
  8888  001A24  5051               	movf	_pBDTEntryIn,w,c
  8889  001A26  26D9               	addwf	fsr2l,f,c
  8890  001A28  5052               	movf	_pBDTEntryIn+1,w,c
  8891  001A2A  22DA               	addwfc	fsr2h,f,c
  8892  001A2C  0E00               	movlw	0
  8893  001A2E  6EDF               	movwf	indf2,c
  8894                           
  8895                           ; BSR set to: 0
  8896                           ;usb_device.c: 1435: pBDTEntryIn[0]->STAT.Val = 0x40|(0x08 & 0x08);
  8897  001A30  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  8898  001A34  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  8899  001A38  0E48               	movlw	72
  8900  001A3A  6EDF               	movwf	indf2,c
  8901                           
  8902                           ; BSR set to: 0
  8903                           ;usb_device.c: 1436: pBDTEntryIn[0]->STAT.Val |= 0x80;
  8904  001A3C  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  8905  001A40  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  8906  001A44  0E00               	movlw	0
  8907  001A46  8EDB               	bsf	plusw2,7,c
  8908                           
  8909                           ;usb_device.c: 1437: }
  8910  001A48  0012               	return	
  8911  001A4A                     l2967:
  8912                           
  8913                           ; BSR set to: 0
  8914                           ;usb_device.c: 1438: else if(controlTransferState == 1)
  8915  001A4A  045B               	decf	_controlTransferState,w,c
  8916  001A4C  A4D8               	btfss	status,2,c
  8917  001A4E  0012               	return	
  8918                           
  8919                           ; BSR set to: 0
  8920                           ;usb_device.c: 1439: {
  8921                           ;usb_device.c: 1440: BothEP0OutUOWNsSet = 0;
  8922  001A50  0E00               	movlw	0
  8923  001A52  0100               	movlb	0	; () banked
  8924  001A54  6FEB               	movwf	_BothEP0OutUOWNsSet& (0+255),b
  8925                           
  8926                           ; BSR set to: 0
  8927                           ;usb_device.c: 1445: pBDTEntryEP0OutCurrent->CNT = 8;
  8928  001A56  EE20 F001          	lfsr	2,1
  8929  001A5A  5055               	movf	_pBDTEntryEP0OutCurrent,w,c
  8930  001A5C  26D9               	addwf	fsr2l,f,c
  8931  001A5E  5056               	movf	_pBDTEntryEP0OutCurrent+1,w,c
  8932  001A60  22DA               	addwfc	fsr2h,f,c
  8933  001A62  0E08               	movlw	8
  8934  001A64  6EDF               	movwf	indf2,c
  8935                           
  8936                           ; BSR set to: 0
  8937                           ;usb_device.c: 1446: pBDTEntryEP0OutCurrent->ADR = ((uint16_t)(&SetupPkt));
  8938  001A66  EE20 F002          	lfsr	2,2
  8939  001A6A  5055               	movf	_pBDTEntryEP0OutCurrent,w,c
  8940  001A6C  26D9               	addwf	fsr2l,f,c
  8941  001A6E  5056               	movf	_pBDTEntryEP0OutCurrent+1,w,c
  8942  001A70  22DA               	addwfc	fsr2h,f,c
  8943  001A72  0E20               	movlw	32
  8944  001A74  6EDE               	movwf	postinc2,c
  8945  001A76  0E04               	movlw	4
  8946  001A78  6EDD               	movwf	postdec2,c
  8947                           
  8948                           ; BSR set to: 0
  8949                           ;usb_device.c: 1447: pBDTEntryEP0OutCurrent->STAT.Val = 0x04;
  8950  001A7A  C055  FFD9         	movff	_pBDTEntryEP0OutCurrent,fsr2l
  8951  001A7E  C056  FFDA         	movff	_pBDTEntryEP0OutCurrent+1,fsr2h
  8952  001A82  0E04               	movlw	4
  8953  001A84  6EDF               	movwf	indf2,c
  8954                           
  8955                           ; BSR set to: 0
  8956                           ;usb_device.c: 1448: pBDTEntryEP0OutCurrent->STAT.Val |= 0x80;
  8957  001A86  C055  FFD9         	movff	_pBDTEntryEP0OutCurrent,fsr2l
  8958  001A8A  C056  FFDA         	movff	_pBDTEntryEP0OutCurrent+1,fsr2h
  8959  001A8E  0E00               	movlw	0
  8960  001A90  8EDB               	bsf	plusw2,7,c
  8961                           
  8962                           ; BSR set to: 0
  8963                           ;usb_device.c: 1449: BothEP0OutUOWNsSet = 1;
  8964  001A92  0E01               	movlw	1
  8965  001A94  0100               	movlb	0	; () banked
  8966  001A96  6FEB               	movwf	_BothEP0OutUOWNsSet& (0+255),b
  8967                           
  8968                           ; BSR set to: 0
  8969                           ;usb_device.c: 1453: pBDTEntryEP0OutNext->CNT = 8;
  8970  001A98  EE20 F001          	lfsr	2,1
  8971  001A9C  5057               	movf	_pBDTEntryEP0OutNext,w,c
  8972  001A9E  26D9               	addwf	fsr2l,f,c
  8973  001AA0  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  8974  001AA2  22DA               	addwfc	fsr2h,f,c
  8975  001AA4  0E08               	movlw	8
  8976  001AA6  6EDF               	movwf	indf2,c
  8977                           
  8978                           ; BSR set to: 0
  8979                           ;usb_device.c: 1454: pBDTEntryEP0OutNext->ADR = ((uint16_t)(&SetupPkt));
  8980  001AA8  EE20 F002          	lfsr	2,2
  8981  001AAC  5057               	movf	_pBDTEntryEP0OutNext,w,c
  8982  001AAE  26D9               	addwf	fsr2l,f,c
  8983  001AB0  5058               	movf	_pBDTEntryEP0OutNext+1,w,c
  8984  001AB2  22DA               	addwfc	fsr2h,f,c
  8985  001AB4  0E20               	movlw	32
  8986  001AB6  6EDE               	movwf	postinc2,c
  8987  001AB8  0E04               	movlw	4
  8988  001ABA  6EDD               	movwf	postdec2,c
  8989                           
  8990                           ; BSR set to: 0
  8991                           ;usb_device.c: 1455: pBDTEntryEP0OutNext->STAT.Val = 0x80;
  8992  001ABC  C057  FFD9         	movff	_pBDTEntryEP0OutNext,fsr2l
  8993  001AC0  C058  FFDA         	movff	_pBDTEntryEP0OutNext+1,fsr2h
  8994  001AC4  0E80               	movlw	128
  8995  001AC6  6EDF               	movwf	indf2,c
  8996                           
  8997                           ; BSR set to: 0
  8998                           
  8999                           ; BSR set to: 0
  9000                           
  9001                           ; BSR set to: 0
  9002  001AC8  0012               	return	
  9003  001ACA                     __end_of_USBCtrlEPAllowStatusStage:
  9004                           	opt stack 0
  9005                           tblptru	equ	0xFF8
  9006                           tblptrh	equ	0xFF7
  9007                           tblptrl	equ	0xFF6
  9008                           tablat	equ	0xFF5
  9009                           prodh	equ	0xFF4
  9010                           prodl	equ	0xFF3
  9011                           postinc0	equ	0xFEE
  9012                           wreg	equ	0xFE8
  9013                           indf1	equ	0xFE7
  9014                           postinc1	equ	0xFE6
  9015                           postdec1	equ	0xFE5
  9016                           fsr1h	equ	0xFE2
  9017                           fsr1l	equ	0xFE1
  9018                           indf2	equ	0xFDF
  9019                           postinc2	equ	0xFDE
  9020                           postdec2	equ	0xFDD
  9021                           plusw2	equ	0xFDB
  9022                           fsr2h	equ	0xFDA
  9023                           fsr2l	equ	0xFD9
  9024                           status	equ	0xFD8
  9025                           
  9026 ;; *************** function _USBCtrlTrfInHandler *****************
  9027 ;; Defined at:
  9028 ;;		line 2592 in file "usb/usb_device.c"
  9029 ;; Parameters:    Size  Location     Type
  9030 ;;		None
  9031 ;; Auto vars:     Size  Location     Type
  9032 ;;  lastDTS         1    1[COMRAM] unsigned char 
  9033 ;; Return value:  Size  Location     Type
  9034 ;;                  1    wreg      void 
  9035 ;; Registers used:
  9036 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru, cstack
  9037 ;; Tracked objects:
  9038 ;;		On entry : 0/0
  9039 ;;		On exit  : 0/0
  9040 ;;		Unchanged: 0/0
  9041 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  9042 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  9043 ;;      Locals:         1       0       0       0       0       0       0       0       0       0
  9044 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  9045 ;;      Totals:         1       0       0       0       0       0       0       0       0       0
  9046 ;;Total ram usage:        1 bytes
  9047 ;; Hardware stack levels used:    1
  9048 ;; Hardware stack levels required when called:    1
  9049 ;; This function calls:
  9050 ;;		_USBCtrlTrfTxService
  9051 ;; This function is called by:
  9052 ;;		_USBCtrlEPService
  9053 ;; This function uses a non-reentrant model
  9054 ;;
  9055                           
  9056                           	psect	text42
  9057  001C5E                     __ptext42:
  9058                           	opt stack 0
  9059  001C5E                     _USBCtrlTrfInHandler:
  9060                           	opt stack 27
  9061                           
  9062                           ;usb_device.c: 2594: uint8_t lastDTS;
  9063                           ;usb_device.c: 2596: lastDTS = pBDTEntryIn[0]->STAT.DTS;
  9064                           
  9065                           ; BSR set to: 0
  9066                           ;incstack = 0
  9067  001C5E  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  9068  001C62  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  9069  001C66  0E00               	movlw	0
  9070  001C68  BCDF               	btfsc	indf2,6,c
  9071  001C6A  0E01               	movlw	1
  9072  001C6C  6E02               	movwf	USBCtrlTrfInHandler@lastDTS,c
  9073                           
  9074                           ;usb_device.c: 2599: pBDTEntryIn[0] = (volatile BDT_ENTRY*)(((uintptr_t)pBDTEntryIn[0]) 
      +                          ^ 0x0004);
  9075  001C6E  0E04               	movlw	4
  9076  001C70  1851               	xorwf	_pBDTEntryIn,w,c
  9077  001C72  6E51               	movwf	_pBDTEntryIn,c
  9078  001C74  5052               	movf	_pBDTEntryIn+1,w,c
  9079  001C76  6E52               	movwf	_pBDTEntryIn+1,c
  9080                           
  9081                           ;usb_device.c: 2604: if(USBDeviceState == ADR_PENDING_STATE)
  9082  001C78  0E08               	movlw	8
  9083  001C7A  185A               	xorwf	_USBDeviceState,w,c
  9084  001C7C  A4D8               	btfss	status,2,c
  9085  001C7E  D00B               	goto	l3493
  9086                           
  9087                           ;usb_device.c: 2605: {
  9088                           ;usb_device.c: 2606: UADDR = (SetupPkt.bDevADR & 0x7F);
  9089  001C80  0104               	movlb	4	; () banked
  9090  001C82  5122               	movf	34,w,b	;volatile
  9091  001C84  0B7F               	andlw	127
  9092  001C86  6E6E               	movwf	3950,c	;volatile
  9093                           
  9094                           ; BSR set to: 4
  9095                           ;usb_device.c: 2607: if(UADDR != 0u)
  9096  001C88  506E               	movf	3950,w,c	;volatile
  9097  001C8A  B4D8               	btfsc	status,2,c
  9098  001C8C  D002               	goto	l3491
  9099                           
  9100                           ; BSR set to: 4
  9101                           ;usb_device.c: 2608: {
  9102                           ;usb_device.c: 2609: USBDeviceState=ADDRESS_STATE;
  9103  001C8E  0E10               	movlw	16
  9104  001C90  D001               	goto	L19
  9105  001C92                     l3491:
  9106                           
  9107                           ; BSR set to: 4
  9108                           ;usb_device.c: 2611: else
  9109                           ;usb_device.c: 2612: {
  9110                           ;usb_device.c: 2613: USBDeviceState=DEFAULT_STATE;
  9111  001C92  0E04               	movlw	4
  9112  001C94                     L19:
  9113  001C94  6E5A               	movwf	_USBDeviceState,c
  9114  001C96                     l3493:
  9115                           
  9116                           ;usb_device.c: 2614: }
  9117                           ;usb_device.c: 2615: }
  9118                           ;usb_device.c: 2618: if(controlTransferState == 1)
  9119  001C96  045B               	decf	_controlTransferState,w,c
  9120  001C98  A4D8               	btfss	status,2,c
  9121  001C9A  D03A               	goto	l338
  9122                           
  9123                           ;usb_device.c: 2619: {
  9124                           ;usb_device.c: 2620: pBDTEntryIn[0]->ADR = ((uint16_t)(CtrlTrfData));
  9125  001C9C  EE20 F002          	lfsr	2,2
  9126  001CA0  5051               	movf	_pBDTEntryIn,w,c
  9127  001CA2  26D9               	addwf	fsr2l,f,c
  9128  001CA4  5052               	movf	_pBDTEntryIn+1,w,c
  9129  001CA6  22DA               	addwfc	fsr2h,f,c
  9130  001CA8  0E28               	movlw	40
  9131  001CAA  6EDE               	movwf	postinc2,c
  9132  001CAC  0E04               	movlw	4
  9133  001CAE  6EDD               	movwf	postdec2,c
  9134                           
  9135                           ;usb_device.c: 2621: USBCtrlTrfTxService();
  9136  001CB0  EC65  F00D         	call	_USBCtrlTrfTxService	;wreg free
  9137                           
  9138                           ;usb_device.c: 2627: if(shortPacketStatus == 2)
  9139  001CB4  0E02               	movlw	2
  9140  001CB6  185C               	xorwf	_shortPacketStatus,w,c
  9141  001CB8  A4D8               	btfss	status,2,c
  9142  001CBA  D00D               	goto	l3505
  9143                           
  9144                           ;usb_device.c: 2628: {
  9145                           ;usb_device.c: 2631: pBDTEntryIn[0]->STAT.Val = 0x04;
  9146  001CBC  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  9147  001CC0  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  9148  001CC4  0E04               	movlw	4
  9149  001CC6  6EDF               	movwf	indf2,c
  9150                           
  9151                           ;usb_device.c: 2632: pBDTEntryIn[0]->STAT.Val |= 0x80;
  9152  001CC8  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  9153  001CCC  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  9154  001CD0  0E00               	movlw	0
  9155  001CD2  8EDB               	bsf	plusw2,7,c
  9156                           
  9157                           ;usb_device.c: 2633: }
  9158  001CD4  0012               	return	
  9159  001CD6                     l3505:
  9160                           
  9161                           ;usb_device.c: 2634: else
  9162                           ;usb_device.c: 2635: {
  9163                           ;usb_device.c: 2636: if(lastDTS == 0)
  9164  001CD6  5002               	movf	USBCtrlTrfInHandler@lastDTS,w,c
  9165  001CD8  A4D8               	btfss	status,2,c
  9166  001CDA  D00D               	goto	l3511
  9167                           
  9168                           ;usb_device.c: 2637: {
  9169                           ;usb_device.c: 2638: pBDTEntryIn[0]->STAT.Val = 0x40|(0x08 & 0x08);
  9170  001CDC  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  9171  001CE0  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  9172  001CE4  0E48               	movlw	72
  9173  001CE6  6EDF               	movwf	indf2,c
  9174                           
  9175                           ;usb_device.c: 2639: pBDTEntryIn[0]->STAT.Val |= 0x80;
  9176  001CE8  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  9177  001CEC  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  9178  001CF0  0E00               	movlw	0
  9179  001CF2  8EDB               	bsf	plusw2,7,c
  9180                           
  9181                           ;usb_device.c: 2640: }
  9182  001CF4  0012               	return	
  9183  001CF6                     l3511:
  9184                           
  9185                           ;usb_device.c: 2641: else
  9186                           ;usb_device.c: 2642: {
  9187                           ;usb_device.c: 2643: pBDTEntryIn[0]->STAT.Val = 0x00|(0x08 & 0x08);
  9188  001CF6  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  9189  001CFA  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  9190  001CFE  0E08               	movlw	8
  9191  001D00  6EDF               	movwf	indf2,c
  9192                           
  9193                           ;usb_device.c: 2644: pBDTEntryIn[0]->STAT.Val |= 0x80;
  9194  001D02  C051  FFD9         	movff	_pBDTEntryIn,fsr2l
  9195  001D06  C052  FFDA         	movff	_pBDTEntryIn+1,fsr2h
  9196  001D0A  0E00               	movlw	0
  9197  001D0C  8EDB               	bsf	plusw2,7,c
  9198                           
  9199                           ;usb_device.c: 2645: }
  9200                           ;usb_device.c: 2646: }
  9201                           ;usb_device.c: 2647: }
  9202  001D0E  0012               	return	
  9203  001D10                     l338:
  9204                           
  9205                           ;usb_device.c: 2648: else
  9206                           ;usb_device.c: 2649: {
  9207                           ;usb_device.c: 2653: if(outPipes[0].info.bits.busy == 1)
  9208  001D10  0100               	movlb	0	; () banked
  9209  001D12  AFD4               	btfss	(_outPipes+3)& (0+255),7,b
  9210  001D14  D002               	goto	l3517
  9211                           
  9212                           ; BSR set to: 0
  9213                           ;usb_device.c: 2658: }
  9214                           ;usb_device.c: 2659: outPipes[0].info.bits.busy = 0;
  9215                           
  9216                           ; BSR set to: 0
  9217  001D16  0100               	movlb	0	; () banked
  9218  001D18  9FD4               	bcf	(_outPipes+3)& (0+255),7,b
  9219  001D1A                     l3517:
  9220                           
  9221                           ; BSR set to: 0
  9222                           ;usb_device.c: 2660: }
  9223                           ;usb_device.c: 2662: controlTransferState = 0;
  9224  001D1A  0E00               	movlw	0
  9225  001D1C  6E5B               	movwf	_controlTransferState,c
  9226  001D1E  0012               	return	
  9227  001D20                     __end_of_USBCtrlTrfInHandler:
  9228                           	opt stack 0
  9229                           tblptru	equ	0xFF8
  9230                           tblptrh	equ	0xFF7
  9231                           tblptrl	equ	0xFF6
  9232                           tablat	equ	0xFF5
  9233                           prodh	equ	0xFF4
  9234                           prodl	equ	0xFF3
  9235                           postinc0	equ	0xFEE
  9236                           wreg	equ	0xFE8
  9237                           indf1	equ	0xFE7
  9238                           postinc1	equ	0xFE6
  9239                           postdec1	equ	0xFE5
  9240                           fsr1h	equ	0xFE2
  9241                           fsr1l	equ	0xFE1
  9242                           indf2	equ	0xFDF
  9243                           postinc2	equ	0xFDE
  9244                           postdec2	equ	0xFDD
  9245                           plusw2	equ	0xFDB
  9246                           fsr2h	equ	0xFDA
  9247                           fsr2l	equ	0xFD9
  9248                           status	equ	0xFD8
  9249                           
  9250 ;; *************** function _USBCtrlTrfTxService *****************
  9251 ;; Defined at:
  9252 ;;		line 1771 in file "usb/usb_device.c"
  9253 ;; Parameters:    Size  Location     Type
  9254 ;;		None
  9255 ;; Auto vars:     Size  Location     Type
  9256 ;;  byteToSend      1    0[COMRAM] unsigned char 
  9257 ;; Return value:  Size  Location     Type
  9258 ;;                  1    wreg      void 
  9259 ;; Registers used:
  9260 ;;		wreg, fsr1l, fsr1h, fsr2l, fsr2h, status,2, status,0, tblptrl, tblptrh, tblptru
  9261 ;; Tracked objects:
  9262 ;;		On entry : 0/0
  9263 ;;		On exit  : 0/0
  9264 ;;		Unchanged: 0/0
  9265 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  9266 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  9267 ;;      Locals:         1       0       0       0       0       0       0       0       0       0
  9268 ;;      Temps:          0       0       0       0       0       0       0       0       0       0
  9269 ;;      Totals:         1       0       0       0       0       0       0       0       0       0
  9270 ;;Total ram usage:        1 bytes
  9271 ;; Hardware stack levels used:    1
  9272 ;; This function calls:
  9273 ;;		Nothing
  9274 ;; This function is called by:
  9275 ;;		_USBCtrlEPAllowDataStage
  9276 ;;		_USBCtrlTrfInHandler
  9277 ;; This function uses a non-reentrant model
  9278 ;;
  9279                           
  9280                           	psect	text43
  9281  001ACA                     __ptext43:
  9282                           	opt stack 0
  9283  001ACA                     _USBCtrlTrfTxService:
  9284                           	opt stack 25
  9285                           
  9286                           ;usb_device.c: 1773: uint8_t byteToSend;
  9287                           ;usb_device.c: 1777: byteToSend = 8;
  9288                           
  9289                           ;incstack = 0
  9290  001ACA  0E08               	movlw	8
  9291  001ACC  6E01               	movwf	USBCtrlTrfTxService@byteToSend,c
  9292                           
  9293                           ;usb_device.c: 1778: if(inPipes[0].wCount.Val < (uint8_t)8)
  9294  001ACE  5050               	movf	_inPipes+5,w,c
  9295  001AD0  E110               	bnz	l2923
  9296  001AD2  0E08               	movlw	8
  9297  001AD4  5C4F               	subwf	_inPipes+4,w,c
  9298  001AD6  B0D8               	btfsc	status,0,c
  9299  001AD8  D00C               	goto	l2923
  9300                           
  9301                           ;usb_device.c: 1779: {
  9302                           ;usb_device.c: 1780: byteToSend = inPipes[0].wCount.Val;
  9303  001ADA  C04F  F001         	movff	_inPipes+4,USBCtrlTrfTxService@byteToSend
  9304                           
  9305                           ;usb_device.c: 1787: if(shortPacketStatus == 0)
  9306  001ADE  505C               	movf	_shortPacketStatus,w,c
  9307  001AE0  A4D8               	btfss	status,2,c
  9308  001AE2  D002               	goto	l2919
  9309                           
  9310                           ;usb_device.c: 1788: {
  9311                           ;usb_device.c: 1789: shortPacketStatus = 1;
  9312  001AE4  0E01               	movlw	1
  9313  001AE6  D004               	goto	L20
  9314  001AE8                     l2919:
  9315                           
  9316                           ;usb_device.c: 1791: else if(shortPacketStatus == 1)
  9317  001AE8  045C               	decf	_shortPacketStatus,w,c
  9318  001AEA  A4D8               	btfss	status,2,c
  9319  001AEC  D002               	goto	l2923
  9320                           
  9321                           ;usb_device.c: 1792: {
  9322                           ;usb_device.c: 1793: shortPacketStatus = 2;
  9323  001AEE  0E02               	movlw	2
  9324  001AF0                     L20:
  9325  001AF0  6E5C               	movwf	_shortPacketStatus,c
  9326  001AF2                     l2923:
  9327                           
  9328                           ;usb_device.c: 1794: }
  9329                           ;usb_device.c: 1795: }
  9330                           ;usb_device.c: 1799: inPipes[0].wCount.Val -= byteToSend;
  9331  001AF2  5001               	movf	USBCtrlTrfTxService@byteToSend,w,c
  9332  001AF4  5E4F               	subwf	_inPipes+4,f,c
  9333  001AF6  0E00               	movlw	0
  9334  001AF8  5A50               	subwfb	_inPipes+5,f,c
  9335                           
  9336                           ;usb_device.c: 1804: pBDTEntryIn[0]->CNT = byteToSend;
  9337  001AFA  EE20 F001          	lfsr	2,1
  9338  001AFE  5051               	movf	_pBDTEntryIn,w,c
  9339  001B00  26D9               	addwf	fsr2l,f,c
  9340  001B02  5052               	movf	_pBDTEntryIn+1,w,c
  9341  001B04  22DA               	addwfc	fsr2h,f,c
  9342  001B06  C001  FFDF         	movff	USBCtrlTrfTxService@byteToSend,indf2
  9343                           
  9344                           ;usb_device.c: 1808: pDst = ( uint8_t*)CtrlTrfData;
  9345  001B0A  0E28               	movlw	40
  9346  001B0C  0100               	movlb	0	; () banked
  9347  001B0E  6FE9               	movwf	_pDst& (0+255),b
  9348  001B10  0E04               	movlw	4
  9349  001B12  0100               	movlb	0	; () banked
  9350  001B14  6FEA               	movwf	(_pDst+1)& (0+255),b
  9351                           
  9352                           ; BSR set to: 0
  9353                           ;usb_device.c: 1809: if(inPipes[0].info.bits.ctrl_trf_mem == 0x00)
  9354  001B16  A04E               	btfss	_inPipes+3,0,c
  9355  001B18  D01C               	goto	l2941
  9356  001B1A  D03A               	goto	l2951
  9357  001B1C                     l2933:
  9358                           
  9359                           ; BSR set to: 0
  9360                           ;usb_device.c: 1812: {
  9361                           ;usb_device.c: 1813: *pDst++ = *inPipes[0].pSrc.bRom++;
  9362  001B1C  C04B  FFF6         	movff	_inPipes,tblptrl
  9363  001B20  C04C  FFF7         	movff	_inPipes+1,tblptrh
  9364  001B24  6AF8               	clrf	tblptru,c
  9365  001B26  C0E9  FFD9         	movff	_pDst,fsr2l
  9366  001B2A  C0EA  FFDA         	movff	_pDst+1,fsr2h
  9367  001B2E  0E07               	movlw	(high __ramtop+-1)
  9368  001B30  64F7               	cpfsgt	tblptrh,c
  9369  001B32  D003               	bra	u1957
  9370  001B34  0008               	tblrd		*
  9371  001B36  50F5               	movf	tablat,w,c
  9372  001B38  D005               	bra	u1950
  9373  001B3A                     u1957:
  9374  001B3A  CFF6 FFE1          	movff	tblptrl,fsr1l
  9375  001B3E  CFF7 FFE2          	movff	tblptrh,fsr1h
  9376  001B42  50E7               	movf	indf1,w,c
  9377  001B44                     u1950:
  9378  001B44  6EDF               	movwf	indf2,c
  9379  001B46  4A4B               	infsnz	_inPipes,f,c
  9380  001B48  2A4C               	incf	_inPipes+1,f,c
  9381  001B4A  0100               	movlb	0	; () banked
  9382  001B4C  4BE9               	infsnz	_pDst& (0+255),f,b
  9383  001B4E  2BEA               	incf	(_pDst+1)& (0+255),f,b
  9384                           
  9385                           ; BSR set to: 0
  9386                           ;usb_device.c: 1814: byteToSend--;
  9387  001B50  0601               	decf	USBCtrlTrfTxService@byteToSend,f,c
  9388  001B52                     l2941:
  9389                           
  9390                           ; BSR set to: 0
  9391  001B52  5001               	movf	USBCtrlTrfTxService@byteToSend,w,c
  9392  001B54  B4D8               	btfsc	status,2,c
  9393  001B56  0012               	return	
  9394  001B58  D7E1               	goto	l2933
  9395  001B5A                     l2943:
  9396                           
  9397                           ; BSR set to: 0
  9398                           ;usb_device.c: 1820: {
  9399                           ;usb_device.c: 1821: *pDst++ = *inPipes[0].pSrc.bRam++;
  9400  001B5A  C04B  FFF6         	movff	_inPipes,tblptrl
  9401  001B5E  C04C  FFF7         	movff	_inPipes+1,tblptrh
  9402  001B62  6AF8               	clrf	tblptru,c
  9403  001B64  C0E9  FFD9         	movff	_pDst,fsr2l
  9404  001B68  C0EA  FFDA         	movff	_pDst+1,fsr2h
  9405  001B6C  0E07               	movlw	(high __ramtop+-1)
  9406  001B6E  64F7               	cpfsgt	tblptrh,c
  9407  001B70  D003               	bra	u1977
  9408  001B72  0008               	tblrd		*
  9409  001B74  50F5               	movf	tablat,w,c
  9410  001B76  D005               	bra	u1970
  9411  001B78                     u1977:
  9412  001B78  CFF6 FFE1          	movff	tblptrl,fsr1l
  9413  001B7C  CFF7 FFE2          	movff	tblptrh,fsr1h
  9414  001B80  50E7               	movf	indf1,w,c
  9415  001B82                     u1970:
  9416  001B82  6EDF               	movwf	indf2,c
  9417  001B84  4A4B               	infsnz	_inPipes,f,c
  9418  001B86  2A4C               	incf	_inPipes+1,f,c
  9419  001B88  0100               	movlb	0	; () banked
  9420  001B8A  4BE9               	infsnz	_pDst& (0+255),f,b
  9421  001B8C  2BEA               	incf	(_pDst+1)& (0+255),f,b
  9422                           
  9423                           ; BSR set to: 0
  9424                           ;usb_device.c: 1822: byteToSend--;
  9425  001B8E  0601               	decf	USBCtrlTrfTxService@byteToSend,f,c
  9426  001B90                     l2951:
  9427                           
  9428                           ; BSR set to: 0
  9429  001B90  5001               	movf	USBCtrlTrfTxService@byteToSend,w,c
  9430  001B92  B4D8               	btfsc	status,2,c
  9431  001B94  0012               	return	
  9432  001B96  D7E1               	goto	l2943
  9433  001B98                     __end_of_USBCtrlTrfTxService:
  9434                           	opt stack 0
  9435                           tblptru	equ	0xFF8
  9436                           tblptrh	equ	0xFF7
  9437                           tblptrl	equ	0xFF6
  9438                           tablat	equ	0xFF5
  9439                           prodh	equ	0xFF4
  9440                           prodl	equ	0xFF3
  9441                           postinc0	equ	0xFEE
  9442                           wreg	equ	0xFE8
  9443                           indf1	equ	0xFE7
  9444                           postinc1	equ	0xFE6
  9445                           postdec1	equ	0xFE5
  9446                           fsr1h	equ	0xFE2
  9447                           fsr1l	equ	0xFE1
  9448                           indf2	equ	0xFDF
  9449                           postinc2	equ	0xFDE
  9450                           postdec2	equ	0xFDD
  9451                           plusw2	equ	0xFDB
  9452                           fsr2h	equ	0xFDA
  9453                           fsr2l	equ	0xFD9
  9454                           status	equ	0xFD8
  9455                           
  9456 ;; *************** function _SYSTEM_Initialize *****************
  9457 ;; Defined at:
  9458 ;;		line 71 in file "system.c"
  9459 ;; Parameters:    Size  Location     Type
  9460 ;;  state           1    wreg     enum E4267
  9461 ;; Auto vars:     Size  Location     Type
  9462 ;;  state           1   10[COMRAM] enum E4267
  9463 ;; Return value:  Size  Location     Type
  9464 ;;                  1    wreg      void 
  9465 ;; Registers used:
  9466 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  9467 ;; Tracked objects:
  9468 ;;		On entry : 0/0
  9469 ;;		On exit  : 0/0
  9470 ;;		Unchanged: 0/0
  9471 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  9472 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  9473 ;;      Locals:         1       0       0       0       0       0       0       0       0       0
  9474 ;;      Temps:          1       0       0       0       0       0       0       0       0       0
  9475 ;;      Totals:         2       0       0       0       0       0       0       0       0       0
  9476 ;;Total ram usage:        2 bytes
  9477 ;; Hardware stack levels used:    1
  9478 ;; Hardware stack levels required when called:    2
  9479 ;; This function calls:
  9480 ;;		_sendLEDs
  9481 ;; This function is called by:
  9482 ;;		_main
  9483 ;; This function uses a non-reentrant model
  9484 ;;
  9485                           
  9486                           	psect	text44
  9487  002592                     __ptext44:
  9488                           	opt stack 0
  9489  002592                     _SYSTEM_Initialize:
  9490                           	opt stack 28
  9491                           
  9492                           ; BSR set to: 0
  9493                           ;incstack = 0
  9494                           ;SYSTEM_Initialize@state stored from wreg
  9495  002592  6E0B               	movwf	SYSTEM_Initialize@state,c
  9496                           
  9497                           ;system.c: 74: PORTA = 0b00000000;
  9498  002594  0E00               	movlw	0
  9499  002596  6E80               	movwf	3968,c	;volatile
  9500                           
  9501                           ;system.c: 75: PORTE = 0b00000000;
  9502  002598  0E00               	movlw	0
  9503  00259A  6E84               	movwf	3972,c	;volatile
  9504                           
  9505                           ;system.c: 77: ADCON1 = 0b00001111;
  9506  00259C  0E0F               	movlw	15
  9507  00259E  6EC1               	movwf	4033,c	;volatile
  9508                           
  9509                           ;system.c: 78: CMCON = 0b00000111;
  9510  0025A0  0E07               	movlw	7
  9511  0025A2  6EB4               	movwf	4020,c	;volatile
  9512                           
  9513                           ;system.c: 80: TRISA = 0b00110000;
  9514  0025A4  0E30               	movlw	48
  9515  0025A6  6E92               	movwf	3986,c	;volatile
  9516                           
  9517                           ;system.c: 81: TRISE = 0b00000011;
  9518  0025A8  0E03               	movlw	3
  9519  0025AA  6E96               	movwf	3990,c	;volatile
  9520                           
  9521                           ;system.c: 83: TRISB = 0b00010000;
  9522  0025AC  0E10               	movlw	16
  9523  0025AE  6E93               	movwf	3987,c	;volatile
  9524                           
  9525                           ;system.c: 84: TRISC = 0b00000000;
  9526  0025B0  0E00               	movlw	0
  9527  0025B2  6E94               	movwf	3988,c	;volatile
  9528                           
  9529                           ;system.c: 85: TRISD = 0b00000000;
  9530  0025B4  0E00               	movlw	0
  9531  0025B6  6E95               	movwf	3989,c	;volatile
  9532                           
  9533                           ;system.c: 90: INTCONbits.T0IE = 0;
  9534  0025B8  9AF2               	bcf	intcon,5,c	;volatile
  9535                           
  9536                           ;system.c: 91: INTCONbits.T0IF = 0;
  9537  0025BA  94F2               	bcf	intcon,2,c	;volatile
  9538                           
  9539                           ;system.c: 104: }
  9540                           
  9541                           ;system.c: 103: break;
  9542                           
  9543                           ;system.c: 102: case SYSTEM_STATE_USB_RESUME:
  9544                           
  9545                           ;system.c: 100: break;
  9546                           
  9547                           ;system.c: 99: case SYSTEM_STATE_USB_SUSPEND:
  9548                           
  9549                           ;system.c: 97: break;
  9550                           
  9551                           ;system.c: 95: {
  9552                           ;system.c: 96: case SYSTEM_STATE_USB_START:
  9553                           
  9554                           ;system.c: 94: switch(state)
  9555  0025BC  500B               	movf	SYSTEM_Initialize@state,w,c
  9556                           
  9557                           ; Switch size 1, requested type "space"
  9558                           ; Number of cases is 3, Range of values is 0 to 2
  9559                           ; switch strategies available:
  9560                           ; Name         Instructions Cycles
  9561                           ; simple_byte           10     6 (average)
  9562                           ;	Chosen strategy is simple_byte
  9563  0025BE  0A00               	xorlw	0	; case 0
  9564  0025C0  B4D8               	btfsc	status,2,c
  9565  0025C2  D003               	goto	l3997
  9566  0025C4  0A01               	xorlw	1	; case 1
  9567  0025C6  A4D8               	btfss	status,2,c
  9568  0025C8  0A03               	xorlw	3	; case 2
  9569  0025CA                     l3997:
  9570                           
  9571                           ;system.c: 106: _delay((unsigned long)((10)*(48000000/4000.0)));
  9572  0025CA  0E9C               	movlw	156
  9573  0025CC  6E0A               	movwf	??_SYSTEM_Initialize& (0+255),c
  9574  0025CE  0ED7               	movlw	215
  9575  0025D0                     u3687:
  9576  0025D0  2EE8               	decfsz	wreg,f,c
  9577  0025D2  D7FE               	goto	u3687
  9578  0025D4  2E0A               	decfsz	??_SYSTEM_Initialize& (0+255),f,c
  9579  0025D6  D7FC               	goto	u3687
  9580  0025D8  F000               	nop	
  9581                           
  9582                           ;system.c: 107: sendLEDs(global_leds);
  9583  0025DA  0E91               	movlw	low _global_leds
  9584  0025DC  6E04               	movwf	sendLEDs@leds,c
  9585  0025DE  0E00               	movlw	high _global_leds
  9586  0025E0  6E05               	movwf	sendLEDs@leds+1,c
  9587  0025E2  EC82  F00F         	call	_sendLEDs	;wreg free
  9588  0025E6  0012               	return		;funcret
  9589  0025E8                     __end_of_SYSTEM_Initialize:
  9590                           	opt stack 0
  9591                           tblptru	equ	0xFF8
  9592                           tblptrh	equ	0xFF7
  9593                           tblptrl	equ	0xFF6
  9594                           tablat	equ	0xFF5
  9595                           prodh	equ	0xFF4
  9596                           prodl	equ	0xFF3
  9597                           intcon	equ	0xFF2
  9598                           postinc0	equ	0xFEE
  9599                           wreg	equ	0xFE8
  9600                           indf1	equ	0xFE7
  9601                           postinc1	equ	0xFE6
  9602                           postdec1	equ	0xFE5
  9603                           fsr1h	equ	0xFE2
  9604                           fsr1l	equ	0xFE1
  9605                           indf2	equ	0xFDF
  9606                           postinc2	equ	0xFDE
  9607                           postdec2	equ	0xFDD
  9608                           plusw2	equ	0xFDB
  9609                           fsr2h	equ	0xFDA
  9610                           fsr2l	equ	0xFD9
  9611                           status	equ	0xFD8
  9612                           
  9613 ;; *************** function _sendLEDs *****************
  9614 ;; Defined at:
  9615 ;;		line 8 in file "outputs.c"
  9616 ;; Parameters:    Size  Location     Type
  9617 ;;  leds            2    3[COMRAM] PTR unsigned char [4]
  9618 ;;		 -> pressedButtonEff@leds(64), global_leds(64), 
  9619 ;; Auto vars:     Size  Location     Type
  9620 ;;  j               1    8[COMRAM] unsigned char 
  9621 ;;  i               1    7[COMRAM] unsigned char 
  9622 ;; Return value:  Size  Location     Type
  9623 ;;                  1    wreg      void 
  9624 ;; Registers used:
  9625 ;;		wreg, fsr2l, fsr2h, status,2, status,0, prodl, prodh, cstack
  9626 ;; Tracked objects:
  9627 ;;		On entry : 0/0
  9628 ;;		On exit  : 0/0
  9629 ;;		Unchanged: 0/0
  9630 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  9631 ;;      Params:         2       0       0       0       0       0       0       0       0       0
  9632 ;;      Locals:         2       0       0       0       0       0       0       0       0       0
  9633 ;;      Temps:          2       0       0       0       0       0       0       0       0       0
  9634 ;;      Totals:         6       0       0       0       0       0       0       0       0       0
  9635 ;;Total ram usage:        6 bytes
  9636 ;; Hardware stack levels used:    1
  9637 ;; Hardware stack levels required when called:    1
  9638 ;; This function calls:
  9639 ;;		_SPI_8bit
  9640 ;; This function is called by:
  9641 ;;		_bankChange
  9642 ;;		_channelChange
  9643 ;;		_colorChangeForPressedButton
  9644 ;;		_pressedButtonEff
  9645 ;;		_ledsIntro
  9646 ;;		_blinkLedAsync
  9647 ;;		_SYSTEM_Initialize
  9648 ;; This function uses a non-reentrant model
  9649 ;;
  9650                           
  9651                           	psect	text45
  9652  001F04                     __ptext45:
  9653                           	opt stack 0
  9654  001F04                     _sendLEDs:
  9655                           	opt stack 27
  9656                           
  9657                           ;outputs.c: 10: LATBbits.LATB2 = 0;
  9658                           
  9659                           ;incstack = 0
  9660  001F04  948A               	bcf	3978,2,c	;volatile
  9661                           
  9662                           ;outputs.c: 11: _delay((unsigned long)((1)*(48000000/4000.0)));
  9663  001F06  0E10               	movlw	16
  9664  001F08  6E06               	movwf	??_sendLEDs& (0+255),c
  9665  001F0A  0E94               	movlw	148
  9666  001F0C                     u3697:
  9667  001F0C  2EE8               	decfsz	wreg,f,c
  9668  001F0E  D7FE               	goto	u3697
  9669  001F10  2E06               	decfsz	??_sendLEDs& (0+255),f,c
  9670  001F12  D7FC               	goto	u3697
  9671  001F14  D000               	nop2	
  9672                           
  9673                           ;outputs.c: 14: SPI_8bit(0b00000000);
  9674  001F16  0E00               	movlw	0
  9675  001F18  EC2F  F014         	call	_SPI_8bit
  9676                           
  9677                           ;outputs.c: 15: SPI_8bit(0b00000000);
  9678  001F1C  0E00               	movlw	0
  9679  001F1E  EC2F  F014         	call	_SPI_8bit
  9680                           
  9681                           ;outputs.c: 16: SPI_8bit(0b00000000);
  9682  001F22  0E00               	movlw	0
  9683  001F24  EC2F  F014         	call	_SPI_8bit
  9684                           
  9685                           ;outputs.c: 17: SPI_8bit(0b00000000);
  9686  001F28  0E00               	movlw	0
  9687  001F2A  EC2F  F014         	call	_SPI_8bit
  9688                           
  9689                           ;outputs.c: 20: for (char i = 0; i < 16; i++) {
  9690  001F2E  0E00               	movlw	0
  9691  001F30  6E08               	movwf	sendLEDs@i,c
  9692  001F32                     l3399:
  9693  001F32  0E0F               	movlw	15
  9694  001F34  6408               	cpfsgt	sendLEDs@i,c
  9695  001F36  D001               	goto	l3403
  9696  001F38  D01F               	goto	l3419
  9697  001F3A                     l3403:
  9698                           
  9699                           ;outputs.c: 22: for (char j = 0; j < 4; j++) {
  9700  001F3A  0E00               	movlw	0
  9701  001F3C  6E09               	movwf	sendLEDs@j,c
  9702  001F3E                     l3405:
  9703  001F3E  0E03               	movlw	3
  9704  001F40  6409               	cpfsgt	sendLEDs@j,c
  9705  001F42  D001               	goto	l3409
  9706  001F44  D017               	goto	l3415
  9707  001F46                     l3409:
  9708                           
  9709                           ;outputs.c: 24: SPI_8bit(leds[i][j]);
  9710  001F46  5008               	movf	sendLEDs@i,w,c
  9711  001F48  0D04               	mullw	4
  9712  001F4A  C004  F006         	movff	sendLEDs@leds,??_sendLEDs
  9713  001F4E  C005  F007         	movff	sendLEDs@leds+1,??_sendLEDs+1
  9714  001F52  50F3               	movf	prodl,w,c
  9715  001F54  2606               	addwf	??_sendLEDs,f,c
  9716  001F56  50F4               	movf	prodh,w,c
  9717  001F58  2207               	addwfc	??_sendLEDs+1,f,c
  9718  001F5A  5009               	movf	sendLEDs@j,w,c
  9719  001F5C  0D01               	mullw	1
  9720  001F5E  50F3               	movf	prodl,w,c
  9721  001F60  2406               	addwf	??_sendLEDs,w,c
  9722  001F62  6ED9               	movwf	fsr2l,c
  9723  001F64  50F4               	movf	prodh,w,c
  9724  001F66  2007               	addwfc	??_sendLEDs+1,w,c
  9725  001F68  6EDA               	movwf	fsr2h,c
  9726  001F6A  50DF               	movf	indf2,w,c
  9727  001F6C  EC2F  F014         	call	_SPI_8bit
  9728  001F70  2A09               	incf	sendLEDs@j,f,c
  9729  001F72  D7E5               	goto	l3405
  9730  001F74                     l3415:
  9731  001F74  2A08               	incf	sendLEDs@i,f,c
  9732  001F76  D7DD               	goto	l3399
  9733  001F78                     l3419:
  9734                           
  9735                           ;outputs.c: 25: }
  9736                           ;outputs.c: 26: }
  9737                           ;outputs.c: 29: SPI_8bit(0b00000000);
  9738  001F78  0E00               	movlw	0
  9739  001F7A  EC2F  F014         	call	_SPI_8bit
  9740                           
  9741                           ;outputs.c: 30: SPI_8bit(0b00000000);
  9742  001F7E  0E00               	movlw	0
  9743  001F80  EC2F  F014         	call	_SPI_8bit
  9744                           
  9745                           ;outputs.c: 31: SPI_8bit(0b00000000);
  9746  001F84  0E00               	movlw	0
  9747  001F86  EC2F  F014         	call	_SPI_8bit
  9748                           
  9749                           ;outputs.c: 32: SPI_8bit(0b00000000);
  9750  001F8A  0E00               	movlw	0
  9751  001F8C  EC2F  F014         	call	_SPI_8bit
  9752                           
  9753                           ;outputs.c: 35: SPI_8bit(0b00000000);
  9754  001F90  0E00               	movlw	0
  9755  001F92  EC2F  F014         	call	_SPI_8bit
  9756                           
  9757                           ;outputs.c: 36: SPI_8bit(0b00000000);
  9758  001F96  0E00               	movlw	0
  9759  001F98  EC2F  F014         	call	_SPI_8bit
  9760  001F9C  0012               	return		;funcret
  9761  001F9E                     __end_of_sendLEDs:
  9762                           	opt stack 0
  9763                           tblptru	equ	0xFF8
  9764                           tblptrh	equ	0xFF7
  9765                           tblptrl	equ	0xFF6
  9766                           tablat	equ	0xFF5
  9767                           prodh	equ	0xFF4
  9768                           prodl	equ	0xFF3
  9769                           intcon	equ	0xFF2
  9770                           postinc0	equ	0xFEE
  9771                           wreg	equ	0xFE8
  9772                           indf1	equ	0xFE7
  9773                           postinc1	equ	0xFE6
  9774                           postdec1	equ	0xFE5
  9775                           fsr1h	equ	0xFE2
  9776                           fsr1l	equ	0xFE1
  9777                           indf2	equ	0xFDF
  9778                           postinc2	equ	0xFDE
  9779                           postdec2	equ	0xFDD
  9780                           plusw2	equ	0xFDB
  9781                           fsr2h	equ	0xFDA
  9782                           fsr2l	equ	0xFD9
  9783                           status	equ	0xFD8
  9784                           
  9785 ;; *************** function _SPI_8bit *****************
  9786 ;; Defined at:
  9787 ;;		line 41 in file "outputs.c"
  9788 ;; Parameters:    Size  Location     Type
  9789 ;;  data            1    wreg     unsigned char 
  9790 ;; Auto vars:     Size  Location     Type
  9791 ;;  data            1    1[COMRAM] unsigned char 
  9792 ;;  i               1    2[COMRAM] unsigned char 
  9793 ;; Return value:  Size  Location     Type
  9794 ;;                  1    wreg      void 
  9795 ;; Registers used:
  9796 ;;		wreg, status,2, status,0
  9797 ;; Tracked objects:
  9798 ;;		On entry : 0/0
  9799 ;;		On exit  : 0/0
  9800 ;;		Unchanged: 0/0
  9801 ;; Data sizes:     COMRAM   BANK0   BANK1   BANK2   BANK3   BANK4  BANK5h  BANK5l   BANK6   BANK7
  9802 ;;      Params:         0       0       0       0       0       0       0       0       0       0
  9803 ;;      Locals:         2       0       0       0       0       0       0       0       0       0
  9804 ;;      Temps:          1       0       0       0       0       0       0       0       0       0
  9805 ;;      Totals:         3       0       0       0       0       0       0       0       0       0
  9806 ;;Total ram usage:        3 bytes
  9807 ;; Hardware stack levels used:    1
  9808 ;; This function calls:
  9809 ;;		Nothing
  9810 ;; This function is called by:
  9811 ;;		_sendLEDs
  9812 ;; This function uses a non-reentrant model
  9813 ;;
  9814                           
  9815                           	psect	text46
  9816  00285E                     __ptext46:
  9817                           	opt stack 0
  9818  00285E                     _SPI_8bit:
  9819                           	opt stack 27
  9820                           
  9821                           ;incstack = 0
  9822                           ;SPI_8bit@data stored from wreg
  9823  00285E  6E02               	movwf	SPI_8bit@data,c
  9824                           
  9825                           ;outputs.c: 43: for (char i = 0; i < 8; i++) {
  9826  002860  0E00               	movlw	0
  9827  002862  6E03               	movwf	SPI_8bit@i,c
  9828  002864                     l3193:
  9829  002864  0E07               	movlw	7
  9830  002866  6403               	cpfsgt	SPI_8bit@i,c
  9831  002868  D001               	goto	l665
  9832  00286A  0012               	return	
  9833  00286C                     l665:
  9834                           
  9835                           ;outputs.c: 44: LATBbits.LATB2 = 0;
  9836  00286C  948A               	bcf	3978,2,c	;volatile
  9837                           
  9838                           ;outputs.c: 45: LATBbits.LATB1 = 0x01 & data;
  9839  00286E  C002  F001         	movff	SPI_8bit@data,??_SPI_8bit
  9840  002872  0E01               	movlw	1
  9841  002874  1601               	andwf	??_SPI_8bit,f,c
  9842  002876  4601               	rlncf	??_SPI_8bit,f,c
  9843  002878  508A               	movf	3978,w,c	;volatile
  9844  00287A  1801               	xorwf	??_SPI_8bit,w,c
  9845  00287C  0BFD               	andlw	-3
  9846  00287E  1801               	xorwf	??_SPI_8bit,w,c
  9847  002880  6E8A               	movwf	3978,c	;volatile
  9848                           
  9849                           ;outputs.c: 46: LATBbits.LATB2 = 1;
  9850  002882  848A               	bsf	3978,2,c	;volatile
  9851                           
  9852                           ;outputs.c: 48: data = data >> 1;
  9853  002884  90D8               	bcf	status,0,c
  9854  002886  3002               	rrcf	SPI_8bit@data,w,c
  9855  002888  6E02               	movwf	SPI_8bit@data,c
  9856  00288A  2A03               	incf	SPI_8bit@i,f,c
  9857  00288C  D7EB               	goto	l3193
  9858  00288E                     __end_of_SPI_8bit:
  9859                           	opt stack 0
  9860                           tblptru	equ	0xFF8
  9861                           tblptrh	equ	0xFF7
  9862                           tblptrl	equ	0xFF6
  9863                           tablat	equ	0xFF5
  9864                           prodh	equ	0xFF4
  9865                           prodl	equ	0xFF3
  9866                           intcon	equ	0xFF2
  9867                           postinc0	equ	0xFEE
  9868                           wreg	equ	0xFE8
  9869                           indf1	equ	0xFE7
  9870                           postinc1	equ	0xFE6
  9871                           postdec1	equ	0xFE5
  9872                           fsr1h	equ	0xFE2
  9873                           fsr1l	equ	0xFE1
  9874                           indf2	equ	0xFDF
  9875                           postinc2	equ	0xFDE
  9876                           postdec2	equ	0xFDD
  9877                           plusw2	equ	0xFDB
  9878                           fsr2h	equ	0xFDA
  9879                           fsr2l	equ	0xFD9
  9880                           status	equ	0xFD8
  9881                           tblptru	equ	0xFF8
  9882                           tblptrh	equ	0xFF7
  9883                           tblptrl	equ	0xFF6
  9884                           tablat	equ	0xFF5
  9885                           prodh	equ	0xFF4
  9886                           prodl	equ	0xFF3
  9887                           intcon	equ	0xFF2
  9888                           postinc0	equ	0xFEE
  9889                           wreg	equ	0xFE8
  9890                           indf1	equ	0xFE7
  9891                           postinc1	equ	0xFE6
  9892                           postdec1	equ	0xFE5
  9893                           fsr1h	equ	0xFE2
  9894                           fsr1l	equ	0xFE1
  9895                           indf2	equ	0xFDF
  9896                           postinc2	equ	0xFDE
  9897                           postdec2	equ	0xFDD
  9898                           plusw2	equ	0xFDB
  9899                           fsr2h	equ	0xFDA
  9900                           fsr2l	equ	0xFD9
  9901                           status	equ	0xFD8
  9902                           
  9903                           	psect	rparam
  9904  0000                     tblptru	equ	0xFF8
  9905                           tblptrh	equ	0xFF7
  9906                           tblptrl	equ	0xFF6
  9907                           tablat	equ	0xFF5
  9908                           prodh	equ	0xFF4
  9909                           prodl	equ	0xFF3
  9910                           intcon	equ	0xFF2
  9911                           postinc0	equ	0xFEE
  9912                           wreg	equ	0xFE8
  9913                           indf1	equ	0xFE7
  9914                           postinc1	equ	0xFE6
  9915                           postdec1	equ	0xFE5
  9916                           fsr1h	equ	0xFE2
  9917                           fsr1l	equ	0xFE1
  9918                           indf2	equ	0xFDF
  9919                           postinc2	equ	0xFDE
  9920                           postdec2	equ	0xFDD
  9921                           plusw2	equ	0xFDB
  9922                           fsr2h	equ	0xFDA
  9923                           fsr2l	equ	0xFD9
  9924                           status	equ	0xFD8


Data Sizes:
    Strings     0
    Constant    209
    Data        145
    BSS         66
    Persistent  0
    Stack       0

Auto Spaces:
    Space          Size  Autos    Used
    COMRAM           95     74      95
    BANK0           160      0     158
    BANK1           256      0      32
    BANK2           256      0       0
    BANK3           256      0       0
    BANK4           208      0       0
    BANK5h          124      0       0
    BANK5l           64      0       0
    BANK6           256      0       0
    BANK7           256      0       0

Pointer List with Targets:

    USER_USB_CALLBACK_EVENT_HANDLER@pdata	PTR void  size(2) Largest target is 2047
		 -> RAM(DATA[2047]), USTATcopy(COMRAM[1]), USBActiveConfiguration(COMRAM[1]), NULL(NULL[0]), 
		 -> BDT(BIGRAMl[32]), 

    memset@p1	PTR void  size(2) Largest target is 32
		 -> USBAlternateInterface(COMRAM[1]), BDT(BIGRAMl[32]), UEP1(SFR[1]), 

    memset@p	PTR unsigned char  size(2) Largest target is 32
		 -> USBAlternateInterface(COMRAM[1]), BDT(BIGRAMl[32]), UEP1(SFR[1]), 

    memcpy@d1	PTR void  size(2) Largest target is 8
		 -> SetupPkt(BIGRAMhl[8]), 

    memcpy@d	PTR unsigned char  size(2) Largest target is 8
		 -> SetupPkt(BIGRAMhl[8]), 

    memcpy@s1	PTR const void  size(2) Largest target is 2047
		 -> midiData(BIGRAMhhl[4]), ReceivedDataBuffer(BIGRAMhl[64]), CtrlTrfData(BIGRAMhl[8]), RAM(DATA[2047]), 
		 -> SetupPkt(BIGRAMhl[8]), 

    memcpy@s	PTR const unsigned char  size(2) Largest target is 2047
		 -> midiData(BIGRAMhhl[4]), ReceivedDataBuffer(BIGRAMhl[64]), CtrlTrfData(BIGRAMhl[8]), RAM(DATA[2047]), 
		 -> SetupPkt(BIGRAMhl[8]), 

    sendLEDs@leds	PTR unsigned char [4] size(2) Largest target is 64
		 -> pressedButtonEff@leds(COMRAM[64]), global_leds(BANK0[64]), 

    USBRxHandle	PTR void  size(2) Largest target is 2047
		 -> RAM(DATA[2047]), NULL(NULL[0]), BDT(BIGRAMl[32]), 

    USBTxHandle	PTR void  size(2) Largest target is 2047
		 -> RAM(DATA[2047]), NULL(NULL[0]), BDT(BIGRAMl[32]), 

    USBStdFeatureReqHandler@pUEP	PTR unsigned char  size(2) Largest target is 1
		 -> UEP0(SFR[1]), 

    USBStdFeatureReqHandler@p	PTR struct __BDT size(2) Largest target is 2047
		 -> RAM(DATA[2047]), NULL(NULL[0]), BDT(BIGRAMl[32]), 

    sp__memcpy	PTR void  size(2) Largest target is 8
		 -> SetupPkt(BIGRAMhl[8]), 

    USBStdGetStatusHandler@p	PTR struct __BDT size(2) Largest target is 2047
		 -> RAM(DATA[2047]), NULL(NULL[0]), BDT(BIGRAMl[32]), 

    pDst	PTR unsigned char  size(2) Largest target is 8
		 -> CtrlTrfData(BIGRAMhl[8]), NULL(NULL[0]), 

    USBConfigureEndpoint@handle	PTR volatile struct __BDT size(2) Largest target is 32
		 -> BDT(BIGRAMl[32]), 

    pBDTEntryEP0OutCurrent	PTR volatile struct __BDT size(2) Largest target is 32
		 -> NULL(NULL[0]), BDT(BIGRAMl[32]), 

    pBDTEntryEP0OutNext	PTR volatile struct __BDT size(2) Largest target is 2047
		 -> RAM(DATA[2047]), NULL(NULL[0]), BDT(BIGRAMl[32]), 

    USBTransferOnePacket@data	PTR unsigned char  size(2) Largest target is 64
		 -> midiData(BIGRAMhhl[4]), ReceivedDataBuffer(BIGRAMhl[64]), 

    sp__USBTransferOnePacket	PTR void  size(2) Largest target is 2047
		 -> RAM(DATA[2047]), NULL(NULL[0]), BDT(BIGRAMl[32]), 

    USBTransferOnePacket@handle	PTR volatile struct __BDT size(2) Largest target is 2047
		 -> RAM(DATA[2047]), NULL(NULL[0]), BDT(BIGRAMl[32]), 

    USBEnableEndpoint@p	PTR unsigned char  size(2) Largest target is 1
		 -> UEP0(SFR[1]), 

    pBDTEntryOut	PTR volatile struct __BDT[2] size(2) Largest target is 2047
		 -> RAM(DATA[2047]), NULL(NULL[0]), BDT(BIGRAMl[32]), 

    pBDTEntryIn	PTR volatile struct __BDT[2] size(2) Largest target is 2047
		 -> RAM(DATA[2047]), NULL(NULL[0]), BDT(BIGRAMl[32]), 

    S165$pFunc	PTR FTN()void  size(2) Largest target is 0

    outPipes.pFunc	PTR FTN()void  size(2) Largest target is 0

    S155$wRam	PTR unsigned int  size(2) Largest target is 0

    outPipes.pDst.wRam	PTR unsigned int  size(2) Largest target is 0

    S155$bRam	PTR unsigned char  size(2) Largest target is 0

    outPipes.pDst.bRam	PTR unsigned char  size(2) Largest target is 0

    S131$wRom	PTR const unsigned int  size(2) Largest target is 0

    inPipes.pSrc.wRom	PTR const unsigned int  size(2) Largest target is 0

    S131$wRam	PTR unsigned int  size(2) Largest target is 0

    inPipes.pSrc.wRam	PTR unsigned int  size(2) Largest target is 0

    S131$bRom	PTR const unsigned char  size(2) Largest target is 0

    inPipes.pSrc.bRom	PTR const unsigned char  size(2) Largest target is 0

    S131$bRam	PTR unsigned char  size(2) Largest target is 0

    inPipes.pSrc.bRam	PTR unsigned char  size(2) Largest target is 0

    sp__memset	PTR void  size(2) Largest target is 32
		 -> USBAlternateInterface(COMRAM[1]), BDT(BIGRAMl[32]), UEP1(SFR[1]), 

    USB_SD_Ptr	const PTR const unsigned char [3] size(2) Largest target is 52
		 -> sd002(CODE[26]), sd001(CODE[52]), sd000(CODE[4]), 

    USB_CD_Ptr	const PTR const unsigned char [1] size(2) Largest target is 101
		 -> configDescriptor1(CODE[101]), 


Critical Paths under _main in COMRAM

    _main->_pressedButtonEff
    _sendMatrixButtonsToMidi->_sendMIDINote
    _sendMIDINote->_USBTransferOnePacket
    _processSystemButtons->_bankChange
    _colorChangeForPressedButton->_blinkLedAsync
    _channelChange->_blinkLedAsync
    _turnOnAllLeds->_changeColor
    _bankChange->_blinkLedAsync
    _buttonPressed->_readMatrixButtons
    _blinkLedAsync->_sendLEDs
    _pressedButtonEff->_sendLEDs
    _ledsIntro->_sendLEDs
    _turnOffAllLeds->_changeColor
    _USBDeviceTasks->_USBCtrlEPService
    _USBWakeFromSuspend->_USER_USB_CALLBACK_EVENT_HANDLER
    _USBSuspend->_USER_USB_CALLBACK_EVENT_HANDLER
    _USBDeviceInit->_memset
    _USBCtrlEPAllowDataStage->_USBCtrlTrfTxService
    _USBCheckStdRequest->_USBStdFeatureReqHandler
    _USBStdSetCfgHandler->_USER_USB_CALLBACK_EVENT_HANDLER
    _USBStdFeatureReqHandler->_USER_USB_CALLBACK_EVENT_HANDLER
    _APP_DeviceAudioMIDIInitialize->_USBEnableEndpoint
    _USBEnableEndpoint->_USBConfigureEndpoint
    _USBCtrlTrfOutHandler->_USBCtrlTrfRxService
    _USBCtrlTrfInHandler->_USBCtrlTrfTxService
    _SYSTEM_Initialize->_sendLEDs
    _sendLEDs->_SPI_8bit

Critical Paths under _main in BANK0

    None.

Critical Paths under _main in BANK1

    None.

Critical Paths under _main in BANK2

    None.

Critical Paths under _main in BANK3

    None.

Critical Paths under _main in BANK4

    None.

Critical Paths under _main in BANK5h

    None.

Critical Paths under _main in BANK5l

    None.

Critical Paths under _main in BANK6

    None.

Critical Paths under _main in BANK7

    None.

Call Graph Tables:

 ---------------------------------------------------------------------------------
 (Depth) Function   	        Calls       Base Space   Used Autos Params    Refs
 ---------------------------------------------------------------------------------
 (0) _main                                                 0     0      0   84382
                  _SYSTEM_Initialize
                      _USBDeviceInit
                     _USBDeviceTasks
                          _ledsIntro
                   _pressedButtonEff
               _processSystemButtons
                  _readMatrixButtons
            _sendMatrixButtonsToMidi
 ---------------------------------------------------------------------------------
 (1) _sendMatrixButtonsToMidi                              3     3      0    1890
                                             15 COMRAM     3     3      0
                       _sendMIDINote
 ---------------------------------------------------------------------------------
 (2) _sendMIDINote                                         4     2      2    1712
                                             11 COMRAM     4     2      2
               _USBTransferOnePacket
 ---------------------------------------------------------------------------------
 (1) _processSystemButtons                                 0     0      0   34247
                         _bankChange
                      _channelChange
        _colorChangeForPressedButton
 ---------------------------------------------------------------------------------
 (2) _colorChangeForPressedButton                          4     4      0   10572
                                             18 COMRAM     4     4      0
                      _blinkLedAsync
                      _buttonPressed
                        _changeColor
                           _sendLEDs
                _systemButtonPressed
                     _turnOffAllLeds
 ---------------------------------------------------------------------------------
 (2) _channelChange                                        2     2      0   13057
                                             18 COMRAM     2     2      0
                      _blinkLedAsync
                      _buttonPressed
                        _changeColor
                           _sendLEDs
                _systemButtonPressed
                     _turnOffAllLeds
                      _turnOnAllLeds
 ---------------------------------------------------------------------------------
 (3) _turnOnAllLeds                                        4     3      1    2597
                                              3 COMRAM     4     3      1
                        _changeColor
 ---------------------------------------------------------------------------------
 (2) _bankChange                                           6     6      0   10618
                                             18 COMRAM     6     6      0
                      _blinkLedAsync
                      _buttonPressed
                        _changeColor
                           _sendLEDs
                _systemButtonPressed
                     _turnOffAllLeds
 ---------------------------------------------------------------------------------
 (3) _systemButtonPressed                                  1     1      0      27
                                              0 COMRAM     1     1      0
 ---------------------------------------------------------------------------------
 (3) _buttonPressed                                        3     3      0     182
                                              2 COMRAM     3     3      0
                  _readMatrixButtons
 ---------------------------------------------------------------------------------
 (1) _readMatrixButtons                                    2     2      0      68
                                              0 COMRAM     2     2      0
 ---------------------------------------------------------------------------------
 (3) _blinkLedAsync                                        9     6      3    4338
                                              9 COMRAM     9     6      3
                        _changeColor
                            _delayMs
                           _sendLEDs
 ---------------------------------------------------------------------------------
 (1) _pressedButtonEff                                    65    65      0    2474
                                              9 COMRAM    65    65      0
                           _sendLEDs
 ---------------------------------------------------------------------------------
 (1) _ledsIntro                                            4     4      0    6003
                                              9 COMRAM     4     4      0
                        _changeColor
                            _delayMs
                           _sendLEDs
                     _turnOffAllLeds
 ---------------------------------------------------------------------------------
 (3) _turnOffAllLeds                                       2     2      0    2464
                                              3 COMRAM     2     2      0
                        _changeColor
 ---------------------------------------------------------------------------------
 (4) _changeColor                                          3     1      2    2396
                                              0 COMRAM     3     1      2
 ---------------------------------------------------------------------------------
 (4) _delayMs                                              6     6      0      46
                                              0 COMRAM     6     6      0
 ---------------------------------------------------------------------------------
 (1) _USBDeviceTasks                                       1     1      0   37351
                                             27 COMRAM     1     1      0
          _USBCtrlEPAllowStatusStage
                   _USBCtrlEPService
                      _USBDeviceInit
      _USBIncrement1msInternalTimers
                    _USBStallHandler
                         _USBSuspend
                 _USBWakeFromSuspend
    _USER_USB_CALLBACK_EVENT_HANDLER
 ---------------------------------------------------------------------------------
 (2) _USBWakeFromSuspend                                   0     0      0    4780
    _USER_USB_CALLBACK_EVENT_HANDLER
 ---------------------------------------------------------------------------------
 (2) _USBSuspend                                           0     0      0    4780
    _USER_USB_CALLBACK_EVENT_HANDLER
 ---------------------------------------------------------------------------------
 (2) _USBStallHandler                                      1     1      0       0
                                              0 COMRAM     1     1      0
 ---------------------------------------------------------------------------------
 (2) _USBIncrement1msInternalTimers                        0     0      0       0
 ---------------------------------------------------------------------------------
 (2) _USBDeviceInit                                        1     1      0    1366
                                              8 COMRAM     1     1      0
                             _memset
 ---------------------------------------------------------------------------------
 (2) _USBCtrlEPService                                     1     1      0   21599
                                             26 COMRAM     1     1      0
                _USBCtrlTrfInHandler
               _USBCtrlTrfOutHandler
             _USBCtrlTrfSetupHandler
                             _memcpy
 ---------------------------------------------------------------------------------
 (3) _memcpy                                              10     4      6     387
                                              0 COMRAM    10     4      6
 ---------------------------------------------------------------------------------
 (3) _USBCtrlTrfSetupHandler                               0     0      0   20983
                 _USBCheckStdRequest
           _USBCtrlEPServiceComplete
    _USER_USB_CALLBACK_EVENT_HANDLER
 ---------------------------------------------------------------------------------
 (4) _USBCtrlEPServiceComplete                             0     0      0      92
            _USBCtrlEPAllowDataStage
          _USBCtrlEPAllowStatusStage
 ---------------------------------------------------------------------------------
 (5) _USBCtrlEPAllowDataStage                              0     0      0      92
                _USBCtrlTrfTxService
 ---------------------------------------------------------------------------------
 (4) _USBCheckStdRequest                                   0     0      0   16111
            _USBStdFeatureReqHandler
                _USBStdGetDscHandler
             _USBStdGetStatusHandler
                _USBStdSetCfgHandler
    _USER_USB_CALLBACK_EVENT_HANDLER
 ---------------------------------------------------------------------------------
 (5) _USBStdSetCfgHandler                                  1     1      0    6034
                                             20 COMRAM     1     1      0
    _USER_USB_CALLBACK_EVENT_HANDLER
                             _memset
 ---------------------------------------------------------------------------------
 (3) _memset                                               8     2      6    1164
                                              0 COMRAM     8     2      6
 ---------------------------------------------------------------------------------
 (5) _USBStdGetStatusHandler                               3     3      0      46
                                              0 COMRAM     3     3      0
 ---------------------------------------------------------------------------------
 (5) _USBStdGetDscHandler                                  2     2      0       0
                                              0 COMRAM     2     2      0
 ---------------------------------------------------------------------------------
 (5) _USBStdFeatureReqHandler                              6     6      0    5251
                                             20 COMRAM     6     6      0
    _USER_USB_CALLBACK_EVENT_HANDLER
 ---------------------------------------------------------------------------------
 (2) _USER_USB_CALLBACK_EVENT_HANDLER                      8     2      6    4780
                                             12 COMRAM     8     2      6
      _APP_DeviceAudioMIDIInitialize
 ---------------------------------------------------------------------------------
 (3) _APP_DeviceAudioMIDIInitialize                        0     0      0    2088
                  _USBEnableEndpoint
               _USBTransferOnePacket
 ---------------------------------------------------------------------------------
 (3) _USBTransferOnePacket                                11     7      4    1444
                                              0 COMRAM    11     7      4
 ---------------------------------------------------------------------------------
 (4) _USBEnableEndpoint                                    4     3      1     644
                                              8 COMRAM     4     3      1
               _USBConfigureEndpoint
 ---------------------------------------------------------------------------------
 (5) _USBConfigureEndpoint                                 8     7      1     400
                                              0 COMRAM     8     7      1
 ---------------------------------------------------------------------------------
 (3) _USBCtrlTrfOutHandler                                 0     0      0     114
                _USBCtrlTrfRxService
 ---------------------------------------------------------------------------------
 (4) _USBCtrlTrfRxService                                  2     2      0     114
                                              0 COMRAM     2     2      0
          _USBCtrlEPAllowStatusStage
 ---------------------------------------------------------------------------------
 (5) _USBCtrlEPAllowStatusStage                            0     0      0       0
 ---------------------------------------------------------------------------------
 (3) _USBCtrlTrfInHandler                                  1     1      0     115
                                              1 COMRAM     1     1      0
                _USBCtrlTrfTxService
 ---------------------------------------------------------------------------------
 (6) _USBCtrlTrfTxService                                  1     1      0      92
                                              0 COMRAM     1     1      0
 ---------------------------------------------------------------------------------
 (1) _SYSTEM_Initialize                                    2     2      0     983
                                              9 COMRAM     2     2      0
                           _sendLEDs
 ---------------------------------------------------------------------------------
 (3) _sendLEDs                                             6     4      2     961
                                              3 COMRAM     6     4      2
                           _SPI_8bit
 ---------------------------------------------------------------------------------
 (4) _SPI_8bit                                             3     3      0      91
                                              0 COMRAM     3     3      0
 ---------------------------------------------------------------------------------
 Estimated maximum stack depth 6
 ---------------------------------------------------------------------------------

 Call Graph Graphs:

 _main (ROOT)
   _SYSTEM_Initialize
     _sendLEDs
       _SPI_8bit
   _USBDeviceInit
     _memset
   _USBDeviceTasks
     _USBCtrlEPAllowStatusStage
     _USBCtrlEPService
       _USBCtrlTrfInHandler
         _USBCtrlTrfTxService
       _USBCtrlTrfOutHandler
         _USBCtrlTrfRxService
           _USBCtrlEPAllowStatusStage
       _USBCtrlTrfSetupHandler
         _USBCheckStdRequest
           _USBStdFeatureReqHandler
             _USER_USB_CALLBACK_EVENT_HANDLER
               _APP_DeviceAudioMIDIInitialize
                 _USBEnableEndpoint
                   _USBConfigureEndpoint
                 _USBTransferOnePacket
           _USBStdGetDscHandler
           _USBStdGetStatusHandler
           _USBStdSetCfgHandler
             _USER_USB_CALLBACK_EVENT_HANDLER
               _APP_DeviceAudioMIDIInitialize
                 _USBEnableEndpoint
                   _USBConfigureEndpoint
                 _USBTransferOnePacket
             _memset
           _USER_USB_CALLBACK_EVENT_HANDLER
             _APP_DeviceAudioMIDIInitialize
               _USBEnableEndpoint
                 _USBConfigureEndpoint
               _USBTransferOnePacket
         _USBCtrlEPServiceComplete
           _USBCtrlEPAllowDataStage
             _USBCtrlTrfTxService
           _USBCtrlEPAllowStatusStage
         _USER_USB_CALLBACK_EVENT_HANDLER
           _APP_DeviceAudioMIDIInitialize
             _USBEnableEndpoint
               _USBConfigureEndpoint
             _USBTransferOnePacket
       _memcpy
     _USBDeviceInit
       _memset
     _USBIncrement1msInternalTimers
     _USBStallHandler
     _USBSuspend
       _USER_USB_CALLBACK_EVENT_HANDLER
         _APP_DeviceAudioMIDIInitialize
           _USBEnableEndpoint
             _USBConfigureEndpoint
           _USBTransferOnePacket
     _USBWakeFromSuspend
       _USER_USB_CALLBACK_EVENT_HANDLER
         _APP_DeviceAudioMIDIInitialize
           _USBEnableEndpoint
             _USBConfigureEndpoint
           _USBTransferOnePacket
     _USER_USB_CALLBACK_EVENT_HANDLER
       _APP_DeviceAudioMIDIInitialize
         _USBEnableEndpoint
           _USBConfigureEndpoint
         _USBTransferOnePacket
   _ledsIntro
     _changeColor
     _delayMs
     _sendLEDs
       _SPI_8bit
     _turnOffAllLeds
       _changeColor
   _pressedButtonEff
     _sendLEDs
       _SPI_8bit
   _processSystemButtons
     _bankChange
       _blinkLedAsync
         _changeColor
         _delayMs
         _sendLEDs
           _SPI_8bit
       _buttonPressed
         _readMatrixButtons
       _changeColor
       _sendLEDs
         _SPI_8bit
       _systemButtonPressed
       _turnOffAllLeds
         _changeColor
     _channelChange
       _blinkLedAsync
         _changeColor
         _delayMs
         _sendLEDs
           _SPI_8bit
       _buttonPressed
         _readMatrixButtons
       _changeColor
       _sendLEDs
         _SPI_8bit
       _systemButtonPressed
       _turnOffAllLeds
         _changeColor
       _turnOnAllLeds
         _changeColor
     _colorChangeForPressedButton
       _blinkLedAsync
         _changeColor
         _delayMs
         _sendLEDs
           _SPI_8bit
       _buttonPressed
         _readMatrixButtons
       _changeColor
       _sendLEDs
         _SPI_8bit
       _systemButtonPressed
       _turnOffAllLeds
         _changeColor
   _readMatrixButtons
   _sendMatrixButtonsToMidi
     _sendMIDINote
       _USBTransferOnePacket

 Address spaces:
Name               Size   Autos  Total    Cost      Usage
BIGRAMl            3FF      0       0      26        0.0%
BIGRAMhhh          27C      0       0      23        0.0%
EEDATA             100      0       0       0        0.0%
BITBANK7           100      0       0      22        0.0%
BANK7              100      0       0      20        0.0%
BITBANK6           100      0       0      18        0.0%
BANK6              100      0       0      19        0.0%
BITBANK3           100      0       0      10        0.0%
BANK3              100      0       0      11        0.0%
BITBANK2           100      0       0       8        0.0%
BANK2              100      0       0       9        0.0%
BITBANK1           100      0       0       6        0.0%
BANK1              100      0      20       7       12.5%
BIGRAMhl            D0      0       0      25        0.0%
BITBANK4            D0      0       0      12        0.0%
BANK4               D0      0       0      13        0.0%
BITBANK0            A0      0       0       4        0.0%
BANK0               A0      0      9E       5       98.8%
BANK5h              7C      0       0      16        0.0%
BITBANK5h           7C      0       0      14        0.0%
BITCOMRAM           5F      0       0       0        0.0%
COMRAM              5F     4A      5F       1      100.0%
BIGRAMhhl           40      0       0      24        0.0%
BITBANK5l           40      0       0      15        0.0%
BANK5l              40      0       0      17        0.0%
BITSFR               0      0       0      40        0.0%
SFR                  0      0       0      40        0.0%
STACK                0      0       0       2        0.0%
NULL                 0      0       0       0        0.0%
ABS                  0      0     11D      21        0.0%
DATA                 0      0     11D       3        0.0%
CODE                 0      0       0       0        0.0%


Microchip Technology PIC18 Macro Assembler V1.38 build -256452561 
Symbol Table                                                                                   Tue Feb 25 11:19:55 2020

                              _USB_SD_Ptr 0801                               __CFG_BOR$ON 000000  
    __size_of_colorChangeForPressedButton 008C                             _USBDeviceInit 12BA  
                             __CFG_BORV$3 000000                              __CFG_CP0$OFF 000000  
                            __CFG_CP1$OFF 000000                              __CFG_CP2$OFF 000000  
                            __CFG_CP3$OFF 000000      USER_USB_CALLBACK_EVENT_HANDLER@event 000D  
    USER_USB_CALLBACK_EVENT_HANDLER@pdata 000F                                       l303 26CC  
                                     l160 116E                                       l227 16C0  
                                     l148 1318                                       l165 11A4  
             __end_of_USBStdGetDscHandler 152A                                       l174 1236  
                                     l175 12B6                                       l159 1170  
                                     l352 1932                                       l176 1246  
                                     l361 1980                                       l338 1D10  
                                     l290 1D2E                                       l293 1DB8  
                                     l437 2938                                       l294 1D3E  
                                     l550 21A6                                       l367 0EDE  
                                     l295 1D42                                       l529 1C14  
                                     l386 10BE                                       l563 1E1C  
                                     l672 282C                                       l665 286C  
                                     _BDT 000400                                       l677 28BA  
                            __CFG_CPB$OFF 000000                              __CFG_CPD$OFF 000000  
                                     _UIE 000F69                                       _UIR 000F68  
                    changeColor@intensity 0002                                _USBSuspend 282E  
                            SPI_8bit@data 0002                      USBStdSetCfgHandler@i 0015  
                             _USBRxHandle 00E1                                       prod 000FF3  
                                     wreg 000FE8                            _USBDeviceTasks 1152  
                          _USBDeviceState 005A                               _USBTxHandle 00E3  
                   ??_USBCtrlTrfRxService 0001                  USBEnableEndpoint@options 0009  
                            __CFG_LVP$OFF 000000                      buttonPressed@pressed 0003  
                            __CFG_WDT$OFF 000000                                      l3001 1ED2  
                                    l3021 188E                                      l3017 1886  
                                    l3131 0F52                                      l3051 141A  
                                    l3043 1900                                      l3027 18BA  
                                    l4011 23DC                                      l3117 0ED8  
                                    l4005 23C4                                      l4101 1DD8  
                                    l3143 0FC4                                      l3071 1506  
                                    l3063 14B0                                      l3055 142C  
                                    l4015 23EC                                      l4111 1E64  
                                    l3153 1016                                      l3137 0F9E  
                                    l3073 150C                                      l3065 14B6  
                                    l3321 1964                                      l3305 193A  
                                    l3217 166A                                      l4025 2412  
                                    l4009 23D4                                      l3403 1F3A  
                                    l3171 10A4                                      l3155 1032  
                                    l3331 199A                                      l3307 1940  
                                    l4051 0CCA                                      l4043 0C1C  
                                    l4035 0BE8                USBConfigureEndpoint@handle 0007  
                                    l3405 1F3E                                      l3077 1512  
                                    l3317 1958                                      l3309 1946  
                                    l3237 16EC                                      l4029 2418  
                                    l4053 0D02                                      l4045 0C38  
                                    l4061 0DAC                                      l4117 28CA  
                                    l3415 1F74                                      l3511 1CF6  
                                    l3271 157E                                      l4207 255C  
                                    l3159 104C                                      l3319 195E  
                                    l3335 19B8                                      l3431 2722  
                                    l3423 275C                                      l4055 0D3C  
                                    l4047 0C70                                      l4063 0DE2  
                                    l4039 0BF0                                      l3351 24FE  
                                    l3193 2864                                      l3409 1F46  
                                    l3505 1CD6                                      l3265 155A  
                                    l4209 258C                                      l3185 1120  
                                    l3169 1098                                      l3089 1D60  
                                    l4057 0D74                                      l4049 0CAA  
                                    l4065 0EA2                                      l3419 1F78  
                                    l3283 15DC                                      l3187 112C  
                                    l3179 10DA                                      l3099 1DA0  
                                    l3427 2770                                      l3371 0A02  
                                    l3347 24F6                                      l3517 1D1A  
                                    l3437 273E                                      l3373 0A58  
                                    l3365 08EC                                      l4069 0EA6  
                                    l3533 2706                                      l3525 26E0  
                                    l3287 15F6                                      l3631 1322  
                                    l3615 12F4                                      l3375 0AAE  
                                    l3367 0956                                      l3383 0BB0  
                                    l3551 2928                                      l4087 2670  
                                    l4079 2656                                      l2825 2130  
                                    l3377 0B04                                      l3369 09AC  
                                    l3537 270C                                      l3529 26F0  
                                    l4097 1DD0                                      l2923 1AF2  
                                    l3491 1C92                                      l2835 279C  
                                    l3643 135E                                      l3619 12FC  
                                    l3379 0B5A                                      l3563 2358  
                                    l3555 2930                                      l3547 2920  
                                    l2933 1B1C                                      l2941 1B52  
                                    l3493 1C96                                      l3477 24DE  
                                    l3469 2494                                      l3653 13C2  
                                    l3399 1F32                                      l2943 1B5A  
                                    l2951 1B90                                      l2919 1AE8  
                                    l2839 27AA                                      l2855 1784  
                                    l2847 175A                                      l3647 1366  
                                    l3719 26CA                                      l3583 28A6  
                                    l3575 239C                                      l3591 2808  
                                    l3807 233C                                      l3823 2186  
                                    l3737 2020                                      l3681 27F0  
                                    l3905 119C                                      l3761 1BE4  
                                    l3745 1BA8                                      l2867 1802  
                                    l2891 2902                                      l3739 2026  
                                    l3683 27F2                                      l3923 11BE  
                                    l3579 2896                                      l3755 1BCC  
                                    l3595 2818                                      l3843 21DE  
                                    l3819 2176                                      l3941 11FE  
                                    l3917 11B4                                      l3781 1C4C  
                                    l3757 1BD4                                      l3749 1BB8  
                                    l3829 219A                                      l2967 1A4A  
                                    l2895 253E                                      l2887 28F2  
                                    l3767 1BF8                                      l3855 220E  
                                    l3961 123E                                      l3937 11F4  
                                    l3929 11E2                                      l2899 2544  
                                    l3955 122C                                      l3947 1208  
                                    l3795 230A                                      l2997 1EBA  
                                    l3981 1296                                      l3869 2266  
                                    l3983 12B2                                      l3975 1270  
                                    l3887 1178                                      l3897 1190  
                                    l3997 25CA                                      u2100 147E  
                                    u2110 14AC                                      u2130 14FC  
                                    u2107 1474                                      u2117 14A2  
                                    u2137 14F2                                      u2530 252A  
                                    u2536 252C                                      u1950 1B44  
                                    u1970 1B82                                      u1957 1B3A  
                                    u1977 1B78                                      u3657 24EA  
                                    u3667 2532                                      u3677 2762  
                                    u3687 25D0                                      u3697 1F0C  
                   ??_USBCtrlTrfTxService 0001                                      _UCFG 000F6F  
                                    _UEP0 000F70                                      _UEP1 000F71  
                                    _UEIE 000F6B                                      _UEIR 000F6A  
                                    _UCON 000F6D    USBStdFeatureReqHandler@current_ep_data 0018  
                                    _bank 00F4                                      _pDst 00E9  
                                    _main 28BC                                      fsr1h 000FE2  
                                    fsr2h 000FDA                                      indf1 000FE7  
                                    fsr1l 000FE1                                      indf2 000FDF  
                                    fsr2l 000FD9                                      prodh 000FF4  
                                    prodl 000FF3                                      start 0000  
                           __CFG_IESO$OFF 000000                __end_of_USBCheckStdRequest 19FC  
                  ??_USBCtrlTrfOutHandler 0003                             __CFG_MCLRE$ON 000000  
                            ___param_bank 000010                 ??_USBStdFeatureReqHandler 0015  
                   __end_of_channelChange 234C                  ??_USBStdGetStatusHandler 0001  
                          ?_USBDeviceInit 0001                       blinkLedAsync@xtimes 000A  
                           __CFG_PLLDIV$5 000000                            __CFG_CCP2MX$ON 000000  
                                   ?_main 0001         __size_of_USBCtrlEPServiceComplete 0102  
                                   _CMCON 000FB4                    __end_of_USBDeviceTasks 12BA  
               ?_USBCtrlEPServiceComplete 0001                                     _UADDR 000F6E  
                                   _PORTA 000F80                                     _PORTE 000F84  
                           __CFG_USBDIV$2 000000                                     _TRISA 000F92  
                                   _TRISB 000F93                                     _TRISC 000F94  
                                   _TRISD 000F95                                     _TRISE 000F96  
                                   _USTAT 000F6C                             __CFG_PWRT$OFF 000000  
                         __end_of_delayMs 278C                             __CFG_WRT0$OFF 000000  
      __size_of_USBCtrlEPAllowStatusStage 00CE                             __CFG_WRT1$OFF 000000  
                           __CFG_WRT2$OFF 000000                             __CFG_WRT3$OFF 000000  
                          __CFG_EBTR0$OFF 000000                            __CFG_FCMEN$OFF 000000  
                          __CFG_EBTR1$OFF 000000                            __CFG_EBTR2$OFF 000000  
                          __CFG_EBTR3$OFF 000000                      __size_of_changeColor 0310  
         __end_of_USBCtrlEPAllowDataStage 1F04                                     _sd000 08CE  
                                   _sd001 086E                                     _sd002 08A2  
                           __CFG_WRTB$OFF 000000            ?_USBIncrement1msInternalTimers 0001  
                           __CFG_WRTC$OFF 000000                             __CFG_WRTD$OFF 000000  
   __end_of_APP_DeviceAudioMIDIInitialize 263C    __size_of_APP_DeviceAudioMIDIInitialize 0054  
           _APP_DeviceAudioMIDIInitialize 25E8                            __CFG_EBTRB$OFF 000000  
                        __end_of_SPI_8bit 288E                                     _pitch 00FB  
                    _processSystemButtons 263C               __end_of_systemButtonPressed 293C  
                                   tablat 000FF5                                     plusw2 000FDB  
                                   status 000FD8                            __CFG_ICPRT$OFF 000000  
                        changeColor@color 0001              __size_of_USBStdSetCfgHandler 00DC  
                        blinkLedAsync@led 0012                           __initialization 2424  
                            __end_of_main 28E8                          _pressedButtonEff 0BE4  
               __size_of_USBCtrlEPService 0098                                    ??_main 004B  
                           __activetblptr 000002                           ?_USBDeviceTasks 0001  
            colorChangeForPressedButton@i 0015                               ?_USBSuspend 0001  
                    pressedButtonEff@leds 000A                                    _ADCON1 000FC1  
                   ?_processSystemButtons 0001                    SYSTEM_Initialize@state 000B  
                       _readMatrixButtons 24E6                    __size_of_turnOnAllLeds 0030  
                      ?_readMatrixButtons 0001                            __CFG_VREGEN$ON 000000  
                       _shortPacketStatus 005C                            __CFG_XINST$OFF 000000  
        __size_of_sendMatrixButtonsToMidi 009C                           USBDeviceTasks@i 001C  
             USBStdFeatureReqHandler@pUEP 0016                  USBTransferOnePacket@data 0002  
              USBCtrlTrfInHandler@lastDTS 0002                           ??_USBDeviceInit 0009  
                          __CFG_STVREN$ON 000000                       ??_readMatrixButtons 0001  
                       _USBEnableEndpoint 278C                    turnOnAllLeds@intensity 0004  
         __size_of_USBStdGetStatusHandler 00AC                    __size_of_buttonPressed 0040  
                                  _memcpy 2710                                    _memset 28E8  
                                  clear_0 246A                                    clear_1 2476  
                   __end_of_blinkLedAsync 23B8                                 ??_delayMs 0001  
                        __end_of_sendLEDs 1F9E                        ?_USBEnableEndpoint 0009  
           __size_of_USBTransferOnePacket 0102                              __mediumconst 0000  
                                  tblptrh 000FF7                                    tblptrl 000FF6  
                                  tblptru 000FF8                       ??_USBEnableEndpoint 000A  
                           ?_sendMIDINote 000C                 __end_of_readMatrixButtons 253C  
                             _CtrlTrfData 000428                      _controlTransferState 005B  
                       _SYSTEM_Initialize 2592                                __accesstop 0060  
                 __end_of__initialization 247C                           __CFG_PBADEN$OFF 000000  
                      ?_SYSTEM_Initialize 0001                             ___rparam_used 000001  
                __size_of_USBStallHandler 0042                       __size_of_USBSuspend 0030  
                          __pcstackCOMRAM 0001                 __end_of_USBEnableEndpoint 27C8  
                           __end_of_sd000 08D2                             __end_of_sd001 08A2  
                           __end_of_sd002 08BC                              __pidataBANK0 226A  
                            __pidataBANK1 2964                       ??_SYSTEM_Initialize 000A  
        __size_of_USBCtrlEPAllowDataStage 009C             __size_of_USBConfigureEndpoint 0094  
             __end_of_USBCtrlTrfInHandler 1D20                                 ?_SPI_8bit 0001  
                          blinkLedAsync@i 0010                                _bankChange 1B98  
                           _turnOnAllLeds 27FE                    ??_processSystemButtons 0019  
                ??_USBCtrlTrfSetupHandler 001B                            ??_sendMIDINote 000E  
                 _USBTicksSinceSuspendEnd 00F3                 __end_of_SYSTEM_Initialize 25E8  
                  _USBStdGetStatusHandler 1D20       __end_of_colorChangeForPressedButton 21EE  
             _colorChangeForPressedButton 2162                        __size_of_ledsIntro 006C  
                           _buttonPressed 26D0                                __pbssBANK0 00D1  
             __size_of_USBWakeFromSuspend 0036                               _pBDTEntryIn 0051  
        __end_of_USBCtrlEPServiceComplete 1744                      USBCtrlTrfRxService@i 0001  
                                 ?_memcpy 0001                                ??_SPI_8bit 0001  
                                 ?_memset 0001                                _device_dsc 08BC  
                          ?_turnOnAllLeds 0004                          _USBCtrlEPService 1F9E  
                              _ep_data_in 00E5               __end_of_USBCtrlTrfRxService 1642  
                      _USBCheckStdRequest 1922                         _configDescriptor1 0809  
             __end_of_USBCtrlTrfTxService 1B98                       _USBStdSetCfgHandler 1846  
                     ?_USBCheckStdRequest 0001                            ?_buttonPressed 0001  
            __size_of_USBStdGetDscHandler 0120                        readMatrixButtons@i 0002  
              __size_of_readMatrixButtons 0056                                   _UIEbits 000F69  
                __end_of_pressedButtonEff 0EB4                                   _UIRbits 000F68  
                               SPI_8bit@i 0003                   __size_of_turnOffAllLeds 002E  
                         turnOffAllLeds@i 0004                                 ?_sendLEDs 0004  
                 _sendMatrixButtonsToMidi 1DCC                                   __Hparam 0000  
         ??_USBIncrement1msInternalTimers 0001                      ?_USBStdSetCfgHandler 0001  
                                 __Lparam 0000                __size_of_USBEnableEndpoint 003C  
                    ??_USBCheckStdRequest 001B             __size_of_USBCtrlTrfOutHandler 0060  
                        ??_USBDeviceTasks 001C                         ??_USBStallHandler 0001  
                       __end_of_ledsIntro 2424                              __psmallconst 0800  
                                 _channel 00F5                                   __pcinit 2424  
                         __size_of_memcpy 0040                                   _delayMs 2750  
                         __size_of_memset 002C                 __end_of_configDescriptor1 086E  
                             ?_bankChange 0001                                   __ramtop 0800  
                                 __ptext0 28BC                                   __ptext1 1DCC  
                                 __ptext2 21EE                                   __ptext3 263C  
                                 __ptext4 2162                                   __ptext5 22DC  
                                 __ptext6 27FE                                   __ptext7 1B98  
                                 __ptext8 2914                                   __ptext9 26D0  
                                 _inPipes 004B               _USBDeferOUTDataStagePackets 00EF  
                           ??_changeColor 0003                                   _in_mode 00F7  
                            ??_USBSuspend 0015                          bankChange@i_1855 0016  
                      __end_of_USB_CD_Ptr 0809                __size_of_SYSTEM_Initialize 0056  
         __size_of_USBCtrlTrfSetupHandler 0098                      end_of_initialization 247C  
                  __size_of_channelChange 0070                        __end_of_USB_SD_Ptr 0807  
                                 memcpy@d 0007                                   memcpy@n 0005  
                                 memcpy@s 0009                       _pBDTEntryEP0OutNext 0057  
                                 memset@c 0003                                   memset@n 0005  
                                 memset@p 0007                             __Lmediumconst 0000  
                         _USB1msTickCount 00D9                  ?_USBStdFeatureReqHandler 0001  
                              ??_sendLEDs 0006                     ??_USBStdSetCfgHandler 0015  
            __size_of_systemButtonPressed 0028                        __end_of_USBSuspend 285E  
                 _USBCtrlEPAllowDataStage 1E68                                   postdec1 000FE5  
                                 postdec2 000FDD                                   postinc0 000FEE  
                                 postinc1 000FE6                                   postinc2 000FDE  
                    __end_of_sendMIDINote 226A                           ??_turnOnAllLeds 0005  
                _USBCtrlEPServiceComplete 1642                _USBStatusStageEnabledFlag1 00F0  
              _USBStatusStageEnabledFlag2 00F1                        USBEnableEndpoint@p 000A  
                               _PORTAbits 000F80                                 _PORTBbits 000F81  
                               _PORTEbits 000F84                           ??_buttonPressed 0003  
                      _ReceivedDataBuffer 000500                        _BothEP0OutUOWNsSet 00EB  
                     __end_of_changeColor 0BE4                 USBConfigureEndpoint@EPNum 0006  
              ?_USBCtrlEPAllowStatusStage 0001       USER_USB_CALLBACK_EVENT_HANDLER@size 0011  
                               _USTATcopy 005F                 ??_sendMatrixButtonsToMidi 0010  
            __end_of_USBTransferOnePacket 1846                       __size_of_bankChange 00C6  
                          changeColor@pos 0003                        blinkLedAsync@color 000B  
                  _USBCtrlTrfSetupHandler 2036                systemButtonPressed@pressed 0001  
                              ledsIntro@i 000C                     __end_of_USBDeviceInit 140A  
                              ledsIntro@j 000A     __end_of_USBIncrement1msInternalTimers 2964  
  __size_of_USBIncrement1msInternalTimers 0028             _USBIncrement1msInternalTimers 293C  
                           _channelChange 22DC                            __end_of_memcpy 2750  
                  blinkLedAsync@intensity 000C                            __end_of_memset 2914  
                       __size_of_SPI_8bit 0030                         _USBBusIsSuspended 00ED  
                            sendLEDs@leds 0004                       start_initialization 2424  
                 ?_USBStdGetStatusHandler 0001             USBCtrlTrfRxService@byteToRead 0002  
            __end_of_USBConfigureEndpoint 2162                            _turnOffAllLeds 288E  
                      _pressedButtonColor 0090           __end_of_USBStdFeatureReqHandler 1152  
       __end_of_USBCtrlEPAllowStatusStage 1ACA                  __end_of_USBCtrlEPService 2036  
                  __size_of_blinkLedAsync 006C                 ??_USBCtrlEPAllowDataStage 0002  
                          USBDeviceInit@i 0009                    _pBDTEntryEP0OutCurrent 0055  
                 USBTransferOnePacket@dir 0001                   USBTransferOnePacket@len 0004  
                     _USBStdGetDscHandler 140A                            ?_channelChange 0001  
                             __pdataBANK0 0060                               __pdataBANK1 0100  
                        __CFG_LPT1OSC$OFF 000000                              _in_user_mode 00F9  
                                ??_memcpy 0007                                  ??_memset 0007  
         __end_of_sendMatrixButtonsToMidi 1E68                    _USBActiveConfiguration 005D  
          __end_of_USBStdGetStatusHandler 1DCC                               _changeColor 08D4  
                             __pbssCOMRAM 004B              __size_of_USBCtrlTrfInHandler 00C2  
                  __end_of_turnOffAllLeds 28BC                      ?_USBStdGetDscHandler 0001  
           __size_of_processSystemButtons 0052                         ?_pressedButtonEff 0001  
              __end_of_USBWakeFromSuspend 27FE                           _USBStallHandler 268E  
                            _pBDTEntryOut 00DD                        ??_pressedButtonEff 000A  
                   __size_of_sendMIDINote 007C            ?_APP_DeviceAudioMIDIInitialize 0001  
                       __size_of_sendLEDs 009A                                  ?_delayMs 0001  
                            ??_bankChange 0013                            turnOnAllLeds@i 0006  
                           _blinkLedAsync 234C                                 _mb_values 0080  
                    _USBTransferOnePacket 1744                                 _ledsIntro 23B8  
                             __smallconst 0800                                 _m_buttons 0070  
                sendMatrixButtonsToMidi@i 0012                       _systemButtonPressed 2914  
                               _msCounter 00FA                               bankChange@i 0014  
            __end_of_USBCtrlTrfOutHandler 24E6                           ?_turnOffAllLeds 0001  
                   ??_USBStdGetDscHandler 0001                               _ep_data_out 00E7  
                               _buttonMap 0060              __size_of_USBCtrlTrfRxService 0118  
           USBConfigureEndpoint@direction 0001                              _sendMIDINote 21EE  
            __size_of_USBCtrlTrfTxService 00CE                                  _LATBbits 000F8A  
                                _LATDbits 000F8C                ??_USBCtrlEPServiceComplete 0002  
                      __end_of_bankChange 1C5E                                  _PIE2bits 000FA0  
                    ?_systemButtonPressed 0001                                  _PIR2bits 000FA1  
                         ??_channelChange 0013                          __CFG_WDTPS$32768 000000  
                                _UEP0bits 000F70                _USBDeferINDataStagePackets 00EE  
             __size_of_USBCheckStdRequest 00DA                                  _UCONbits 000F6D  
                    _USBConfigureEndpoint 20CE                                  _SPI_8bit 285E  
                          ?_blinkLedAsync 000A                           _in_setting_mode 00F8  
        __size_of_USBStdFeatureReqHandler 029E                     ?_USBTransferOnePacket 0001  
                              ?_ledsIntro 0001                              _RemoteWakeup 00EC  
                             _global_leds 0091                   __end_of_USBStallHandler 26D0  
                               copy_data0 2438                                 copy_data1 2458  
             ??_USBCtrlEPAllowStatusStage 0001               __end_of_USBStdSetCfgHandler 1922  
                          buttonPressed@i 0004                        __end_of_device_dsc 08CE  
                   ??_systemButtonPressed 0001                   ?_USBCtrlTrfSetupHandler 0001  
                 USBStdGetStatusHandler@p 0002                                  __Hrparam 0000  
                                __Lrparam 0000                    USBTransferOnePacket@ep 0009  
                                _SetupPkt 000420                     ?_USBConfigureEndpoint 0001  
                   __end_of_turnOnAllLeds 282E                                 sendLEDs@i 0008  
                               sendLEDs@j 0009                          __size_of_delayMs 003C  
              channelChange@pressedButton 0013                   __size_of_USBDeviceTasks 0168  
                                __ptext10 24E6                                  __ptext11 234C  
                                __ptext20 268E                                  __ptext12 0BE4  
                                __ptext21 293C                                  __ptext13 23B8  
                                __ptext30 28E8                                  __ptext22 12BA  
                                __ptext14 288E                                  __ptext31 1D20  
                                __ptext23 1F9E                                  __ptext15 08D4  
                                __ptext40 152A                                  __ptext32 140A  
                                __ptext24 2710                                  __ptext16 2750  
                                __ptext41 19FC                                  __ptext33 0EB4  
                                __ptext25 2036                                  __ptext17 1152  
                                __ptext42 1C5E                                  __ptext34 253C  
                                __ptext26 1642                                  __ptext18 27C8  
                                __ptext43 1ACA                                  __ptext35 25E8  
                                __ptext27 1E68                                  __ptext19 282E  
                                __ptext44 2592                                  __ptext36 1744  
                                __ptext28 1922                                  __ptext45 1F04  
                                __ptext37 278C                                  __ptext29 1846  
                                __ptext46 285E                                  __ptext38 20CE  
                                __ptext39 2486                channelChange@pressedSysBtn 0014  
                   __end_of_buttonPressed 2710                                  _btn_ctrl 0100  
                                _btn_note 0110              ?_colorChangeForPressedButton 0001  
                                _midiData 000580            __end_of_USBCtrlTrfSetupHandler 20CE  
                           __size_of_main 002C                         ?_USBCtrlEPService 0001  
                                _sendLEDs 1F04                                  delayMs@i 0005  
                                delayMs@x 0004                        ??_USBCtrlEPService 001B  
                     _USBCtrlTrfInHandler 1C5E                                  _outPipes 00D1  
                                _velocity 00FD                          sendMIDINote@note 000E  
                        sendMIDINote@sent 000F                      _USBCtrlTrfOutHandler 2486  
                         ??_blinkLedAsync 000D                 _USBCtrlEPAllowStatusStage 19FC  
                  ??_USBTransferOnePacket 0005                     __CFG_CPUDIV$OSC1_PLL2 000000  
                             ??_ledsIntro 000A                              ?_changeColor 0001  
               _USBDeferStatusStagePacket 0059                                _INTCONbits 000FF2  
                       pressedButtonEff@i 004A                      ?_USBCtrlTrfInHandler 0001  
                                memcpy@d1 0001                                  memcpy@s1 0003  
           USBCtrlTrfTxService@byteToSend 0001                                  memset@p1 0001  
                ?_sendMatrixButtonsToMidi 0001                          ?_USBStallHandler 0001  
                USBStdFeatureReqHandler@p 0019                    __size_of_USBDeviceInit 0150  
 __end_of_USER_USB_CALLBACK_EVENT_HANDLER 2592  __size_of_USER_USB_CALLBACK_EVENT_HANDLER 0056  
       ??_USER_USB_CALLBACK_EVENT_HANDLER 0013          ?_USER_USB_CALLBACK_EVENT_HANDLER 000D  
         _USER_USB_CALLBACK_EVENT_HANDLER 253C             ??_colorChangeForPressedButton 0013  
                             _sentNoteOff 00FC                    ??_USBConfigureEndpoint 0002  
                   ?_USBCtrlTrfOutHandler 0001              __end_of_processSystemButtons 268E  
                     _USBCtrlTrfRxService 152A                        _USBWakeFromSuspend 27C8  
               __size_of_pressedButtonEff 02D0                   _USBStdFeatureReqHandler 0EB4  
                      turnOnAllLeds@color 0005                       _USBCtrlTrfTxService 1ACA  
colorChangeForPressedButton@pressedButton 0014                          ??_turnOffAllLeds 0004  
         ??_APP_DeviceAudioMIDIInitialize 000D                       ?_USBWakeFromSuspend 0001  
colorChangeForPressedButton@pressedSysBtn 0013                     ??_USBCtrlTrfInHandler 0002  
                   _USBAlternateInterface 005E                       sendMIDINote@channel 000D  
                    sendMIDINote@velocity 000C                       USBEnableEndpoint@ep 000C  
                         _endpoint_number 00F6                      ?_USBCtrlTrfRxService 0001  
                 bankChange@pressedButton 0018                        __CFG_FOSC$HSPLL_HS 000000  
                ?_USBCtrlEPAllowDataStage 0001                      ?_USBCtrlTrfTxService 0001  
                 bankChange@pressedSysBtn 0013              _USBStatusStageTimeoutCounter 00F2  
                    ??_USBWakeFromSuspend 0015                USBTransferOnePacket@handle 000A  
                              _USB_CD_Ptr 0807  
