XBMC USB Controller solderpad
xbmc-usb-controller / Firmware / mcci.asm
_GetRotaryState: ;mcci.c,45 :: void GetRotaryState() ;mcci.c,47 :: if(PORTD.B1 != rotery_mode) BTFSC PORTD+0, 1 GOTO L__GetRotaryState74 BTFSS _rotery_mode+0, BitPos(_rotery_mode+0) GOTO L_GetRotaryState0 GOTO L__GetRotaryState75 L__GetRotaryState74: BTFSS _rotery_mode+0, BitPos(_rotery_mode+0) GOTO L__GetRotaryState75 GOTO L_GetRotaryState0 L__GetRotaryState75: ;mcci.c,49 :: Delay_us(25); MOVLW 99 MOVWF R13, 0 L_GetRotaryState1: DECFSZ R13, 1, 1 BRA L_GetRotaryState1 NOP NOP ;mcci.c,50 :: remote_command = 1; MOVLW 1 MOVWF _remote_command+0 ;mcci.c,51 :: if(PORTD.B0 == 0) BTFSC PORTD+0, 0 GOTO L_GetRotaryState2 ;mcci.c,52 :: remote_id = 1; MOVLW 1 MOVWF _remote_id+0 MOVLW 0 MOVWF _remote_id+1 GOTO L_GetRotaryState3 L_GetRotaryState2: ;mcci.c,54 :: remote_id = 2; MOVLW 2 MOVWF _remote_id+0 MOVLW 0 MOVWF _remote_id+1 L_GetRotaryState3: ;mcci.c,55 :: rotery_mode = PORTD.B1; BTFSC PORTD+0, 1 GOTO L__GetRotaryState76 BCF _rotery_mode+0, BitPos(_rotery_mode+0) GOTO L__GetRotaryState77 L__GetRotaryState76: BSF _rotery_mode+0, BitPos(_rotery_mode+0) L__GetRotaryState77: ;mcci.c,56 :: } L_GetRotaryState0: ;mcci.c,57 :: if(PORTD.B2 != rotery_push) BTFSC PORTD+0, 2 GOTO L__GetRotaryState78 BTFSS _rotery_push+0, BitPos(_rotery_push+0) GOTO L_GetRotaryState4 GOTO L__GetRotaryState79 L__GetRotaryState78: BTFSS _rotery_push+0, BitPos(_rotery_push+0) GOTO L__GetRotaryState79 GOTO L_GetRotaryState4 L__GetRotaryState79: ;mcci.c,59 :: if(PORTD.B2 == 0) BTFSC PORTD+0, 2 GOTO L_GetRotaryState5 ;mcci.c,61 :: remote_command = 2; MOVLW 2 MOVWF _remote_command+0 ;mcci.c,62 :: remote_id = 0; CLRF _remote_id+0 CLRF _remote_id+1 ;mcci.c,63 :: } L_GetRotaryState5: ;mcci.c,64 :: rotery_push = PORTD.B2; BTFSC PORTD+0, 2 GOTO L__GetRotaryState80 BCF _rotery_push+0, BitPos(_rotery_push+0) GOTO L__GetRotaryState81 L__GetRotaryState80: BSF _rotery_push+0, BitPos(_rotery_push+0) L__GetRotaryState81: ;mcci.c,65 :: } L_GetRotaryState4: ;mcci.c,66 :: if(PORTD.B4 != home_sw) BTFSC PORTD+0, 4 GOTO L__GetRotaryState82 BTFSS _home_sw+0, BitPos(_home_sw+0) GOTO L_GetRotaryState6 GOTO L__GetRotaryState83 L__GetRotaryState82: BTFSS _home_sw+0, BitPos(_home_sw+0) GOTO L__GetRotaryState83 GOTO L_GetRotaryState6 L__GetRotaryState83: ;mcci.c,68 :: if(PORTD.B4 == 0) BTFSC PORTD+0, 4 GOTO L_GetRotaryState7 ;mcci.c,70 :: remote_command = 2; MOVLW 2 MOVWF _remote_command+0 ;mcci.c,71 :: remote_id = 1; MOVLW 1 MOVWF _remote_id+0 MOVLW 0 MOVWF _remote_id+1 ;mcci.c,72 :: } L_GetRotaryState7: ;mcci.c,73 :: home_sw = PORTD.B4; BTFSC PORTD+0, 4 GOTO L__GetRotaryState84 BCF _home_sw+0, BitPos(_home_sw+0) GOTO L__GetRotaryState85 L__GetRotaryState84: BSF _home_sw+0, BitPos(_home_sw+0) L__GetRotaryState85: ;mcci.c,74 :: } L_GetRotaryState6: ;mcci.c,75 :: if(PORTD.B5 != back_sw) BTFSC PORTD+0, 5 GOTO L__GetRotaryState86 BTFSS _back_sw+0, BitPos(_back_sw+0) GOTO L_GetRotaryState8 GOTO L__GetRotaryState87 L__GetRotaryState86: BTFSS _back_sw+0, BitPos(_back_sw+0) GOTO L__GetRotaryState87 GOTO L_GetRotaryState8 L__GetRotaryState87: ;mcci.c,77 :: if(PORTD.B5 == 0) BTFSC PORTD+0, 5 GOTO L_GetRotaryState9 ;mcci.c,79 :: remote_command = 2; MOVLW 2 MOVWF _remote_command+0 ;mcci.c,80 :: remote_id = 2; MOVLW 2 MOVWF _remote_id+0 MOVLW 0 MOVWF _remote_id+1 ;mcci.c,81 :: } L_GetRotaryState9: ;mcci.c,82 :: back_sw = PORTD.B5; BTFSC PORTD+0, 5 GOTO L__GetRotaryState88 BCF _back_sw+0, BitPos(_back_sw+0) GOTO L__GetRotaryState89 L__GetRotaryState88: BSF _back_sw+0, BitPos(_back_sw+0) L__GetRotaryState89: ;mcci.c,83 :: } L_GetRotaryState8: ;mcci.c,84 :: } RETURN 0 ; end of _GetRotaryState _GetSIRCValue: ;mcci.c,86 :: void GetSIRCValue() ;mcci.c,88 :: char pos = 0; CLRF GetSIRCValue_pos_L0+0 ;mcci.c,90 :: remote_command = 0; CLRF _remote_command+0 ;mcci.c,91 :: remote_id = 0; CLRF _remote_id+0 CLRF _remote_id+1 ;mcci.c,92 :: while((PORTE.B0 == 0) && (pos < 26)) L_GetSIRCValue10: BTFSC PORTE+0, 0 GOTO L_GetSIRCValue11 MOVLW 26 SUBWF GetSIRCValue_pos_L0+0, 0 BTFSC STATUS+0, 0 GOTO L_GetSIRCValue11 L__GetSIRCValue71: ;mcci.c,94 :: Delay_us(100); MOVLW 2 MOVWF R12, 0 MOVLW 141 MOVWF R13, 0 L_GetSIRCValue14: DECFSZ R13, 1, 1 BRA L_GetSIRCValue14 DECFSZ R12, 1, 1 BRA L_GetSIRCValue14 NOP NOP ;mcci.c,95 :: pos++; INCF GetSIRCValue_pos_L0+0, 1 ;mcci.c,96 :: } GOTO L_GetSIRCValue10 L_GetSIRCValue11: ;mcci.c,97 :: if(pos == 25) MOVF GetSIRCValue_pos_L0+0, 0 XORLW 25 BTFSS STATUS+0, 2 GOTO L_GetSIRCValue15 ;mcci.c,99 :: for(i = 0; i < 21; i++) CLRF R3 L_GetSIRCValue16: MOVLW 21 SUBWF R3, 0 BTFSC STATUS+0, 0 GOTO L_GetSIRCValue17 ;mcci.c,101 :: tmp_out = 0; CLRF _tmp_out+0 CLRF _tmp_out+1 ;mcci.c,102 :: while((PORTE.B0 == 1) && (tmp_out < 12001)) L_GetSIRCValue19: BTFSS PORTE+0, 0 GOTO L_GetSIRCValue20 MOVLW 128 XORWF _tmp_out+1, 0 MOVWF R0 MOVLW 128 XORLW 46 SUBWF R0, 0 BTFSS STATUS+0, 2 GOTO L__GetSIRCValue90 MOVLW 225 SUBWF _tmp_out+0, 0 L__GetSIRCValue90: BTFSC STATUS+0, 0 GOTO L_GetSIRCValue20 L__GetSIRCValue70: ;mcci.c,104 :: Delay_us(1); MOVLW 3 MOVWF R13, 0 L_GetSIRCValue23: DECFSZ R13, 1, 1 BRA L_GetSIRCValue23 NOP NOP ;mcci.c,105 :: tmp_out++; INFSNZ _tmp_out+0, 1 INCF _tmp_out+1, 1 ;mcci.c,106 :: } GOTO L_GetSIRCValue19 L_GetSIRCValue20: ;mcci.c,107 :: if(tmp_out<12001) MOVLW 128 XORWF _tmp_out+1, 0 MOVWF R0 MOVLW 128 XORLW 46 SUBWF R0, 0 BTFSS STATUS+0, 2 GOTO L__GetSIRCValue91 MOVLW 225 SUBWF _tmp_out+0, 0 L__GetSIRCValue91: BTFSC STATUS+0, 0 GOTO L_GetSIRCValue24 ;mcci.c,109 :: pos = 0; CLRF GetSIRCValue_pos_L0+0 ;mcci.c,110 :: while((PORTE.B0 == 0) && (pos < 20)) L_GetSIRCValue25: BTFSC PORTE+0, 0 GOTO L_GetSIRCValue26 MOVLW 20 SUBWF GetSIRCValue_pos_L0+0, 0 BTFSC STATUS+0, 0 GOTO L_GetSIRCValue26 L__GetSIRCValue69: ;mcci.c,112 :: Delay_us(100); MOVLW 2 MOVWF R12, 0 MOVLW 141 MOVWF R13, 0 L_GetSIRCValue29: DECFSZ R13, 1, 1 BRA L_GetSIRCValue29 DECFSZ R12, 1, 1 BRA L_GetSIRCValue29 NOP NOP ;mcci.c,113 :: pos++; INCF GetSIRCValue_pos_L0+0, 1 ;mcci.c,114 :: } GOTO L_GetSIRCValue25 L_GetSIRCValue26: ;mcci.c,115 :: if(pos > 10) MOVF GetSIRCValue_pos_L0+0, 0 SUBLW 10 BTFSC STATUS+0, 0 GOTO L_GetSIRCValue30 ;mcci.c,117 :: if(i<8) MOVLW 8 SUBWF R3, 0 BTFSC STATUS+0, 0 GOTO L_GetSIRCValue31 ;mcci.c,118 :: remote_command |= (1<<i); MOVF R3, 0 MOVWF R1 MOVLW 1 MOVWF R0 MOVF R1, 0 L__GetSIRCValue92: BZ L__GetSIRCValue93 RLCF R0, 1 BCF R0, 0 ADDLW 255 GOTO L__GetSIRCValue92 L__GetSIRCValue93: MOVF R0, 0 IORWF _remote_command+0, 1 GOTO L_GetSIRCValue32 L_GetSIRCValue31: ;mcci.c,120 :: remote_id |= (1<<(i-8)); MOVLW 8 SUBWF R3, 0 MOVWF R0 CLRF R1 MOVLW 0 SUBWFB R1, 1 MOVF R0, 0 MOVWF R2 MOVLW 1 MOVWF R0 MOVLW 0 MOVWF R1 MOVF R2, 0 L__GetSIRCValue94: BZ L__GetSIRCValue95 RLCF R0, 1 BCF R0, 0 RLCF R1, 1 ADDLW 255 GOTO L__GetSIRCValue94 L__GetSIRCValue95: MOVF R0, 0 IORWF _remote_id+0, 1 MOVF R1, 0 IORWF _remote_id+1, 1 L_GetSIRCValue32: ;mcci.c,121 :: } L_GetSIRCValue30: ;mcci.c,122 :: } GOTO L_GetSIRCValue33 L_GetSIRCValue24: ;mcci.c,125 :: remote_command = 0; CLRF _remote_command+0 ;mcci.c,126 :: break; GOTO L_GetSIRCValue17 ;mcci.c,127 :: } L_GetSIRCValue33: ;mcci.c,99 :: for(i = 0; i < 21; i++) INCF R3, 1 ;mcci.c,128 :: } GOTO L_GetSIRCValue16 L_GetSIRCValue17: ;mcci.c,129 :: } L_GetSIRCValue15: ;mcci.c,130 :: } RETURN 0 ; end of _GetSIRCValue _ResetLCD: ;mcci.c,132 :: void ResetLCD() ;mcci.c,134 :: Lcd_Cmd(_LCD_CLEAR); MOVLW 1 MOVWF FARG_Lcd_Cmd_out_char+0 CALL _Lcd_Cmd+0, 0 ;mcci.c,135 :: Lcd_Out(1,1,"Welcome to XBMC"); MOVLW 1 MOVWF FARG_Lcd_Out_row+0 MOVLW 1 MOVWF FARG_Lcd_Out_column+0 MOVLW ?lstr1_mcci+0 MOVWF FARG_Lcd_Out_text+0 MOVLW hi_addr(?lstr1_mcci+0) MOVWF FARG_Lcd_Out_text+1 CALL _Lcd_Out+0, 0 ;mcci.c,136 :: } RETURN 0 ; end of _ResetLCD _EchoUSBInfo: ;mcci.c,138 :: void EchoUSBInfo() ;mcci.c,141 :: is_advance = 1; BSF _is_advance+0, BitPos(_is_advance+0) ;mcci.c,142 :: for(pos_ = 0; pos_ < 17; pos_++) CLRF EchoUSBInfo_pos__L0+0 L_EchoUSBInfo34: MOVLW 17 SUBWF EchoUSBInfo_pos__L0+0, 0 BTFSC STATUS+0, 0 GOTO L_EchoUSBInfo35 ;mcci.c,143 :: if(readbuff[4+ren_pointer+pos_]==0) MOVF _ren_pointer+0, 0 ADDLW 4 MOVWF R0 CLRF R1 MOVLW 0 ADDWFC R1, 1 MOVF EchoUSBInfo_pos__L0+0, 0 ADDWF R0, 1 MOVLW 0 ADDWFC R1, 1 MOVLW _readbuff+0 ADDWF R0, 0 MOVWF FSR0L MOVLW hi_addr(_readbuff+0) ADDWFC R1, 0 MOVWF FSR0H MOVF POSTINC0+0, 0 XORLW 0 BTFSS STATUS+0, 2 GOTO L_EchoUSBInfo37 ;mcci.c,145 :: is_advance = 0; BCF _is_advance+0, BitPos(_is_advance+0) ;mcci.c,146 :: Lcd_Chr(2, pos_+1, ' '); MOVLW 2 MOVWF FARG_Lcd_Chr_row+0 MOVF EchoUSBInfo_pos__L0+0, 0 ADDLW 1 MOVWF FARG_Lcd_Chr_column+0 MOVLW 32 MOVWF FARG_Lcd_Chr_out_char+0 CALL _Lcd_Chr+0, 0 ;mcci.c,147 :: } GOTO L_EchoUSBInfo38 L_EchoUSBInfo37: ;mcci.c,149 :: Lcd_Chr(2, pos_+1, readbuff[4+ren_pointer+pos_]); MOVLW 2 MOVWF FARG_Lcd_Chr_row+0 MOVF EchoUSBInfo_pos__L0+0, 0 ADDLW 1 MOVWF FARG_Lcd_Chr_column+0 MOVF _ren_pointer+0, 0 ADDLW 4 MOVWF R0 CLRF R1 MOVLW 0 ADDWFC R1, 1 MOVF EchoUSBInfo_pos__L0+0, 0 ADDWF R0, 1 MOVLW 0 ADDWFC R1, 1 MOVLW _readbuff+0 ADDWF R0, 0 MOVWF FSR0L MOVLW hi_addr(_readbuff+0) ADDWFC R1, 0 MOVWF FSR0H MOVF POSTINC0+0, 0 MOVWF FARG_Lcd_Chr_out_char+0 CALL _Lcd_Chr+0, 0 L_EchoUSBInfo38: ;mcci.c,142 :: for(pos_ = 0; pos_ < 17; pos_++) INCF EchoUSBInfo_pos__L0+0, 1 ;mcci.c,149 :: Lcd_Chr(2, pos_+1, readbuff[4+ren_pointer+pos_]); GOTO L_EchoUSBInfo34 L_EchoUSBInfo35: ;mcci.c,150 :: ren_pointer = (is_advance==1) ? (ren_pointer+1) : 0; CLRF R1 BTFSC _is_advance+0, BitPos(_is_advance+0) INCF R1, 1 MOVF R1, 0 XORLW 1 BTFSS STATUS+0, 2 GOTO L_EchoUSBInfo39 MOVF _ren_pointer+0, 0 ADDLW 1 MOVWF R0 MOVLW 0 MOVWF R1 GOTO L_EchoUSBInfo40 L_EchoUSBInfo39: CLRF R0 CLRF R1 L_EchoUSBInfo40: MOVF R0, 0 MOVWF _ren_pointer+0 ;mcci.c,151 :: } RETURN 0 ; end of _EchoUSBInfo _PrintUSBInfo: ;mcci.c,153 :: void PrintUSBInfo() ;mcci.c,156 :: if((readbuff[1]>67) || (readbuff[1]<65)) MOVF 1281, 0 SUBLW 67 BTFSS STATUS+0, 0 GOTO L__PrintUSBInfo72 MOVLW 65 SUBWF 1281, 0 BTFSS STATUS+0, 0 GOTO L__PrintUSBInfo72 GOTO L_PrintUSBInfo43 L__PrintUSBInfo72: ;mcci.c,157 :: ResetLCD(); CALL _ResetLCD+0, 0 GOTO L_PrintUSBInfo44 L_PrintUSBInfo43: ;mcci.c,160 :: Lcd_Cmd(_LCD_CLEAR); MOVLW 1 MOVWF FARG_Lcd_Cmd_out_char+0 CALL _Lcd_Cmd+0, 0 ;mcci.c,161 :: switch(readbuff[1]) GOTO L_PrintUSBInfo45 ;mcci.c,163 :: case 65 : Lcd_Out(1,1, "Audio"); break; L_PrintUSBInfo47: MOVLW 1 MOVWF FARG_Lcd_Out_row+0 MOVLW 1 MOVWF FARG_Lcd_Out_column+0 MOVLW ?lstr2_mcci+0 MOVWF FARG_Lcd_Out_text+0 MOVLW hi_addr(?lstr2_mcci+0) MOVWF FARG_Lcd_Out_text+1 CALL _Lcd_Out+0, 0 GOTO L_PrintUSBInfo46 ;mcci.c,164 :: case 66 : Lcd_Out(1,1, "Video"); break; L_PrintUSBInfo48: MOVLW 1 MOVWF FARG_Lcd_Out_row+0 MOVLW 1 MOVWF FARG_Lcd_Out_column+0 MOVLW ?lstr3_mcci+0 MOVWF FARG_Lcd_Out_text+0 MOVLW hi_addr(?lstr3_mcci+0) MOVWF FARG_Lcd_Out_text+1 CALL _Lcd_Out+0, 0 GOTO L_PrintUSBInfo46 ;mcci.c,165 :: case 67 : Lcd_Out(1,1, "Picture"); break; L_PrintUSBInfo49: MOVLW 1 MOVWF FARG_Lcd_Out_row+0 MOVLW 1 MOVWF FARG_Lcd_Out_column+0 MOVLW ?lstr4_mcci+0 MOVWF FARG_Lcd_Out_text+0 MOVLW hi_addr(?lstr4_mcci+0) MOVWF FARG_Lcd_Out_text+1 CALL _Lcd_Out+0, 0 GOTO L_PrintUSBInfo46 ;mcci.c,166 :: } L_PrintUSBInfo45: MOVF 1281, 0 XORLW 65 BTFSC STATUS+0, 2 GOTO L_PrintUSBInfo47 MOVF 1281, 0 XORLW 66 BTFSC STATUS+0, 2 GOTO L_PrintUSBInfo48 MOVF 1281, 0 XORLW 67 BTFSC STATUS+0, 2 GOTO L_PrintUSBInfo49 L_PrintUSBInfo46: ;mcci.c,167 :: switch(readbuff[2]) GOTO L_PrintUSBInfo50 ;mcci.c,169 :: case 66 : Lcd_Out(1,9, ": Play"); break; L_PrintUSBInfo52: MOVLW 1 MOVWF FARG_Lcd_Out_row+0 MOVLW 9 MOVWF FARG_Lcd_Out_column+0 MOVLW ?lstr5_mcci+0 MOVWF FARG_Lcd_Out_text+0 MOVLW hi_addr(?lstr5_mcci+0) MOVWF FARG_Lcd_Out_text+1 CALL _Lcd_Out+0, 0 GOTO L_PrintUSBInfo51 ;mcci.c,170 :: case 67 : Lcd_Out(1,9, ": Pause"); break; L_PrintUSBInfo53: MOVLW 1 MOVWF FARG_Lcd_Out_row+0 MOVLW 9 MOVWF FARG_Lcd_Out_column+0 MOVLW ?lstr6_mcci+0 MOVWF FARG_Lcd_Out_text+0 MOVLW hi_addr(?lstr6_mcci+0) MOVWF FARG_Lcd_Out_text+1 CALL _Lcd_Out+0, 0 GOTO L_PrintUSBInfo51 ;mcci.c,171 :: } L_PrintUSBInfo50: MOVF 1282, 0 XORLW 66 BTFSC STATUS+0, 2 GOTO L_PrintUSBInfo52 MOVF 1282, 0 XORLW 67 BTFSC STATUS+0, 2 GOTO L_PrintUSBInfo53 L_PrintUSBInfo51: ;mcci.c,172 :: update_lcd = ((readbuff[1]<67) && (readbuff[2]>65)); MOVLW 67 SUBWF 1281, 0 BTFSC STATUS+0, 0 GOTO L_PrintUSBInfo55 MOVF 1282, 0 SUBLW 65 BTFSC STATUS+0, 0 GOTO L_PrintUSBInfo55 MOVLW 1 MOVWF R0 GOTO L_PrintUSBInfo54 L_PrintUSBInfo55: CLRF R0 L_PrintUSBInfo54: BTFSC R0, 0 GOTO L__PrintUSBInfo96 BCF _update_lcd+0, BitPos(_update_lcd+0) GOTO L__PrintUSBInfo97 L__PrintUSBInfo96: BSF _update_lcd+0, BitPos(_update_lcd+0) L__PrintUSBInfo97: ;mcci.c,173 :: if(update_lcd) BTFSS _update_lcd+0, BitPos(_update_lcd+0) GOTO L_PrintUSBInfo56 ;mcci.c,175 :: ren_pointer = 0; CLRF _ren_pointer+0 ;mcci.c,176 :: EchoUSBInfo(); CALL _EchoUSBInfo+0, 0 ;mcci.c,177 :: ren_timer = 0; CLRF _ren_timer+0 CLRF _ren_timer+1 ;mcci.c,178 :: update_lcd = 1; BSF _update_lcd+0, BitPos(_update_lcd+0) ;mcci.c,179 :: } L_PrintUSBInfo56: ;mcci.c,180 :: } L_PrintUSBInfo44: ;mcci.c,181 :: } RETURN 0 ; end of _PrintUSBInfo _interrupt: ;mcci.c,183 :: void interrupt() ;mcci.c,185 :: USB_Interrupt_Proc(); CALL _USB_Interrupt_Proc+0, 0 ;mcci.c,186 :: } L__interrupt98: RETFIE 1 ; end of _interrupt _main: ;mcci.c,188 :: void main(void) ;mcci.c,190 :: ADCON1 |= 0x0F; MOVLW 15 IORWF ADCON1+0, 1 ;mcci.c,191 :: CMCON |= 7; MOVLW 7 IORWF CMCON+0, 1 ;mcci.c,192 :: TRISE = 7; MOVLW 7 MOVWF TRISE+0 ;mcci.c,193 :: TRISA = 0; CLRF TRISA+0 ;mcci.c,194 :: TRISD = 127; MOVLW 127 MOVWF TRISD+0 ;mcci.c,196 :: ren_pointer = 0; CLRF _ren_pointer+0 ;mcci.c,197 :: rotery_mode = 0; BCF _rotery_mode+0, BitPos(_rotery_mode+0) ;mcci.c,198 :: rotery_push = 0; BCF _rotery_push+0, BitPos(_rotery_push+0) ;mcci.c,199 :: update_lcd = 0; BCF _update_lcd+0, BitPos(_update_lcd+0) ;mcci.c,200 :: disp_switch = 0; BCF _disp_switch+0, BitPos(_disp_switch+0) ;mcci.c,201 :: home_sw = 0; BCF _home_sw+0, BitPos(_home_sw+0) ;mcci.c,202 :: back_sw = 0; BCF _back_sw+0, BitPos(_back_sw+0) ;mcci.c,204 :: HID_Enable(&readbuff, &writebuff); MOVLW _readbuff+0 MOVWF FARG_HID_Enable_readbuff+0 MOVLW hi_addr(_readbuff+0) MOVWF FARG_HID_Enable_readbuff+1 MOVLW _writebuff+0 MOVWF FARG_HID_Enable_writebuff+0 MOVLW hi_addr(_writebuff+0) MOVWF FARG_HID_Enable_writebuff+1 CALL _HID_Enable+0, 0 ;mcci.c,205 :: for(cnt=0;cnt<64;cnt++) CLRF _cnt+0 L_main57: MOVLW 64 SUBWF _cnt+0, 0 BTFSC STATUS+0, 0 GOTO L_main58 ;mcci.c,206 :: writebuff[cnt]= 0; MOVLW _writebuff+0 MOVWF FSR1L MOVLW hi_addr(_writebuff+0) MOVWF FSR1H MOVF _cnt+0, 0 ADDWF FSR1L, 1 BTFSC STATUS+0, 0 INCF FSR1H, 1 CLRF POSTINC1+0 ;mcci.c,205 :: for(cnt=0;cnt<64;cnt++) INCF _cnt+0, 1 ;mcci.c,206 :: writebuff[cnt]= 0; GOTO L_main57 L_main58: ;mcci.c,207 :: Lcd_Init(); CALL _Lcd_Init+0, 0 ;mcci.c,208 :: Lcd_Cmd(_LCD_CURSOR_OFF); MOVLW 12 MOVWF FARG_Lcd_Cmd_out_char+0 CALL _Lcd_Cmd+0, 0 ;mcci.c,209 :: ResetLCD(); CALL _ResetLCD+0, 0 ;mcci.c,211 :: mainloop: ___main_mainloop: ;mcci.c,213 :: if(HID_Read() > 0) CALL _HID_Read+0, 0 MOVF R0, 0 SUBLW 0 BTFSC STATUS+0, 0 GOTO L_main60 ;mcci.c,214 :: PrintUSBInfo(); CALL _PrintUSBInfo+0, 0 L_main60: ;mcci.c,216 :: GetSIRCValue(); CALL _GetSIRCValue+0, 0 ;mcci.c,217 :: if(remote_command == 0) MOVF _remote_command+0, 0 XORLW 0 BTFSS STATUS+0, 2 GOTO L_main61 ;mcci.c,218 :: GetRotaryState(); CALL _GetRotaryState+0, 0 L_main61: ;mcci.c,220 :: if(remote_command != 0) MOVF _remote_command+0, 0 XORLW 0 BTFSC STATUS+0, 2 GOTO L_main62 ;mcci.c,222 :: writebuff[0] = 184; MOVLW 184 MOVWF 1344 ;mcci.c,223 :: writebuff[1] = 1; MOVLW 1 MOVWF 1345 ;mcci.c,224 :: writebuff[2] = remote_command; MOVF _remote_command+0, 0 MOVWF 1346 ;mcci.c,225 :: writebuff[3] = Lo(remote_id); MOVF _remote_id+0, 0 MOVWF 1347 ;mcci.c,226 :: writebuff[4] = Hi(remote_id); MOVF _remote_id+1, 0 MOVWF 1348 ;mcci.c,228 :: while(!HID_Write(&writebuff,64)); L_main63: MOVLW _writebuff+0 MOVWF FARG_HID_Write_writebuff+0 MOVLW hi_addr(_writebuff+0) MOVWF FARG_HID_Write_writebuff+1 MOVLW 64 MOVWF FARG_HID_Write_len+0 CALL _HID_Write+0, 0 MOVF R0, 1 BTFSS STATUS+0, 2 GOTO L_main64 GOTO L_main63 L_main64: ;mcci.c,229 :: } L_main62: ;mcci.c,231 :: disp_switch = !disp_switch; BTG _disp_switch+0, BitPos(_disp_switch+0) ;mcci.c,232 :: if(update_lcd && disp_switch) BTFSS _update_lcd+0, BitPos(_update_lcd+0) GOTO L_main67 BTFSS _disp_switch+0, BitPos(_disp_switch+0) GOTO L_main67 L__main73: ;mcci.c,234 :: ren_timer++; INFSNZ _ren_timer+0, 1 INCF _ren_timer+1, 1 ;mcci.c,235 :: if(ren_timer >= 45000) MOVLW 175 SUBWF _ren_timer+1, 0 BTFSS STATUS+0, 2 GOTO L__main99 MOVLW 200 SUBWF _ren_timer+0, 0 L__main99: BTFSS STATUS+0, 0 GOTO L_main68 ;mcci.c,237 :: ren_timer = 0; CLRF _ren_timer+0 CLRF _ren_timer+1 ;mcci.c,238 :: EchoUSBInfo(); CALL _EchoUSBInfo+0, 0 ;mcci.c,239 :: } L_main68: ;mcci.c,240 :: } L_main67: ;mcci.c,241 :: goto mainloop; GOTO ___main_mainloop ;mcci.c,242 :: } GOTO $+0 ; end of _main