USB-MCU-USB loop

Status
Not open for further replies.
You can get it here Downloads - jallib - Project Hosting on Google Code Jalv2 works with MPLAB sim so I would think you could use Proteus to. It let's you use @asm it makes good code. The jalv2 compiler make the best asm files I have seen have a look
Code:
datahi_set macro val
  bsf 3, 6 ; STATUS<rp1>
  endm
datahi_clr macro val
  bcf 3, 6 ; STATUS<rp1>
  endm
datalo_set macro val
  bsf 3, 5 ; STATUS<rp0>
  endm
datalo_clr macro val
  bcf 3, 5 ; STATUS<rp0>
  endm
irp_clr macro
  bcf 3, 7 ; STATUS<irp>
  endm
irp_set macro
  bsf 3, 7 ; STATUS<irp>
  endm
branchhi_set macro lbl
    bsf 10, 4 ; PCLATH<4>
  endm
branchhi_clr macro lbl
    bcf 10, 4 ; PCLATH<4>
  endm
branchlo_set macro lbl
    bsf 10, 3 ; PCLATH<3>
  endm
branchlo_clr macro lbl
    bcf 10, 3 ; PCLATH<3>
  endm

                               org      0
l__main
; C:\JALPack\lib/16f690.jal
;  271 var          byte  _PORTC_shadow        = PORTC
                               movf     v_portc,w
                               movwf    v__portc_shadow
; C:\JALPack\testing\sirc_receiver.jal
;   58 enable_digital_io()                          -- no analog pins used in this sample
; C:\JALPack\lib/16f690.jal
;  844    ANSEL  = 0b0000_0000       -- all digital
                               datahi_set v_ansel
                               clrf     v_ansel
;  845    ANSELH = 0b0000_0000       -- all digital
                               clrf     v_anselh

;  852    ADCON0 = 0b0000_0000         -- disable ADC
                               datahi_clr v_adcon0
                               clrf     v_adcon0
;  853    ADCON1 = 0b0000_0000
                               datalo_set v_adcon1
                               clrf     v_adcon1
; C:\JALPack\testing\sirc_receiver.jal
;   58 enable_digital_io()                          -- no analog pins used in this sample
; C:\JALPack\lib/16f690.jal
;  869    adc_off()
; C:\JALPack\testing\sirc_receiver.jal
;   58 enable_digital_io()                          -- no analog pins used in this sample
; C:\JALPack\lib/16f690.jal
;  860    CM1CON0 = 0b0000_0000       -- disable comparator
                               datalo_clr v_cm1con0
                               datahi_set v_cm1con0
                               clrf     v_cm1con0

; C:\JALPack\lib/16f690.jal
;  378    _PORTC_flush()
; C:\JALPack\testing\sirc_receiver.jal
;   83 Red_1 = 0
;   84 Green = 0
                               bcf      v__portc_shadow, 1 ; x67
; C:\JALPack\lib/16f690.jal
;  275    PORTC = _PORTC_shadow
                               movf     v__portc_shadow,w
                               movwf    v_portc
; C:\JALPack\testing\sirc_receiver.jal
;   84 Green = 0
; C:\JALPack\lib/16f690.jal
;  368    _PORTC_flush()
; C:\JALPack\testing\sirc_receiver.jal
;   84 Green = 0
;   85 Yellow = 0
                               bcf      v__portc_shadow, 2 ; x68
; C:\JALPack\lib/16f690.jal
;  275    PORTC = _PORTC_shadow
                               movf     v__portc_shadow,w
                               movwf    v_portc
; C:\JALPack\testing\sirc_receiver.jal
;   85 Yellow = 0
; C:\JALPack\lib/16f690.jal
;  358    _PORTC_flush()
; C:\JALPack\testing\sirc_receiver.jal
;   85 Yellow = 0
;   86 Red_2 = 0
                               bcf      v__portc_shadow, 3 ; x69
; C:\JALPack\lib/16f690.jal
;  275    PORTC = _PORTC_shadow
                               movf     v__portc_shadow,w
                               movwf    v_portc
; C:\JALPack\testing\sirc_receiver.jal
;   86 Red_2 = 0
; C:\JALPack\lib/16f690.jal
;  347    _PORTC_flush()
; C:\JALPack\testing\sirc_receiver.jal
;   86 Red_2 = 0
;   89 Procedure Get_SIRC(byte out my_add, byte out my_cmd)  is
                               goto     l__l190
l_get_sirc
;   96 asm StartLook:
l_startlook
;   99     ir_add = 0
                               clrf     v_ir_add
;  100     ir_cmd = 0
                               clrf     v_ir_cmd
;  102     while(IR_pin == 1) loop
l__l192
                               btfss    v_porta, 2 ; pin_a2
                               goto     l__l193
;  103     lTime = 0
                               clrf     v_ltime
;  105     end loop
                               goto     l__l192
l__l193
;  107     while(IR_pin == 0) loop
l__l195
                               btfsc    v_porta, 2 ; pin_a2
                               goto     l__l196
;  109         lTime = lTime + 1   -- increment every 200uS until pin is high
                               incf     v_ltime,f
;  110         _usec_delay (200)
                               datalo_clr v__pic_temp
                               datahi_clr v__pic_temp
                               movlw    131
                               movwf    v__pic_temp
                               branchhi_clr l__l271
                               branchlo_clr l__l271
l__l271
                               decfsz   v__pic_temp,f
                               goto     l__l271
                               nop      
                               nop      
;  111     end loop
                               goto     l__l195
l__l196
;  113     if (lTime <= 10) then asm goto StartLook  end if
                               movlw    10
                               subwf    v_ltime,w
                               btfsc    v__status, v__z
                               goto     l__l273
                               btfsc    v__status, v__c
                               goto     l__l199
l__l273
                               goto     l_startlook
l__l199
;  114     if (lTime >= 14) then asm goto StartLook  end if
                               movlw    14
                               subwf    v_ltime,w
                               btfsc    v__status, v__z
                               goto     l__l275
                               btfss    v__status, v__c
                               goto     l__l201
l__l275
                               goto     l_startlook
l__l201
;  117   lTime = 0
                               clrf     v_ltime
;  120 for 7 loop  -- repeat 7 times for command
                               clrf     v__floop4
l__l202
;  121   ir_cmd = ir_cmd >> 1
                               bcf      v__status, v__c
                               rrf      v_ir_cmd,f
;  123  while(IR_pin == 1) loop -- wait for it to be low and reset the counter
l__l205
                               btfss    v_porta, 2 ; pin_a2
                               goto     l__l206
;  124  lTime = 0
                               clrf     v_ltime
;  125  end loop
                               goto     l__l205
l__l206
;  127         while(IR_pin == 0) loop -- while the pin is low which is our pulse count
l__l208
                               btfsc    v_porta, 2 ; pin_a2
                               goto     l__l209
;  128             lTime = lTime + 1    -- increment every 200uS until pin is high
                               incf     v_ltime,f
;  129             _usec_delay (200)    -- 200uS delay
                               datalo_clr v__pic_temp
                               datahi_clr v__pic_temp
                               movlw    131
                               movwf    v__pic_temp
                               branchhi_clr l__l276
                               branchlo_clr l__l276
l__l276
                               decfsz   v__pic_temp,f
                               goto     l__l276
                               nop      
                               nop      
;  130             end loop
                               goto     l__l208
l__l209
;  132         if (lTime >= 6) then ir_cmd = (ir_cmd | 0x40) end if
                               movlw    6
                               subwf    v_ltime,w
                               btfsc    v__status, v__z
                               goto     l__l278
                               btfss    v__status, v__c
                               goto     l__l212
l__l278
                               bsf      v_ir_cmd, 6
l__l212
;  136 end loop
                               incf     v__floop4,f
                               movlw    7
                               subwf    v__floop4,w
                               btfss    v__status, v__z
                               goto     l__l202
;  139 for 5 loop  -- repeat 5 times for address/device
                               clrf     v__floop5
l__l213
;  140  ir_add = ir_add >> 1
                               bcf      v__status, v__c
                               rrf      v_ir_add,f
;  142         while(IR_pin == 1) loop
l__l216
                               btfss    v_porta, 2 ; pin_a2
                               goto     l__l217
;  143           lTime = 0   -- wait for it to be low reset the counter
                               clrf     v_ltime
;  144         end loop
                               goto     l__l216
l__l217
;  146         while(IR_pin == 0) loop -- while the pin is low which is our pulse count
l__l219
                               btfsc    v_porta, 2 ; pin_a2
                               goto     l__l220
;  147           lTime = lTime + 1     -- increment every 200uS until pin is high
                               incf     v_ltime,f
;  148           _usec_delay (200)     -- 200uS delay
                               datalo_clr v__pic_temp
                               datahi_clr v__pic_temp
                               movlw    131
                               movwf    v__pic_temp
                               branchhi_clr l__l279
                               branchlo_clr l__l279
l__l279
                               decfsz   v__pic_temp,f
                               goto     l__l279
                               nop      
                               nop      
;  149         end loop
                               goto     l__l219
l__l220
;  151         if(lTime >= 6) then ir_add = (ir_add | 0x10) end if
                               movlw    6
                               subwf    v_ltime,w
                               btfsc    v__status, v__z
                               goto     l__l281
                               btfss    v__status, v__c
                               goto     l__l223
l__l281
                               bsf      v_ir_add, 4
l__l223
;  155 end loop
                               incf     v__floop5,f
                               movlw    5
                               subwf    v__floop5,w
                               btfss    v__status, v__z
                               goto     l__l213
;  157 my_cmd = ir_cmd
                               movf     v_ir_cmd,w
                               movwf    v___my_cmd_2
;  158 my_add = ir_add
                               movf     v_ir_add,w
                               movwf    v___my_add_2
;  160 end procedure
                               movf     v___my_add_2,w
                               return   
l__l190
;  163 forever loop
l__l224
;  165 if IR_pin == 0 then
                               btfsc    v_porta, 2 ; pin_a2
                               goto     l__l227
;  167     Get_SIRC(my_add,my_cmd)
                               call     l_get_sirc
                               datalo_clr v_my_add
                               datahi_clr v_my_add
                               movwf    v_my_add
                               movf     v___my_cmd_2,w
                               movwf    v_my_cmd
;  169 end if
l__l227
;  171   if (my_add == 01) & (my_cmd == 16) then
                               movlw    1
                               subwf    v_my_add,w
                               bcf      v__bitbucket, 1 ; _btemp19
                               btfsc    v__status, v__z
                               bsf      v__bitbucket, 1 ; _btemp19
                               movlw    16
                               subwf    v_my_cmd,w
                               bcf      v__bitbucket, 2 ; _btemp20
                               btfsc    v__status, v__z
                               bsf      v__bitbucket, 2 ; _btemp20
                               bsf      v__bitbucket, 3 ; _btemp21
                               btfsc    v__bitbucket, 1 ; _btemp19
                               btfss    v__bitbucket, 2 ; _btemp20
                               bcf      v__bitbucket, 3 ; _btemp21
                               btfss    v__bitbucket, 3 ; _btemp21
                               goto     l__l229
;  172    Red_1 = !Red_1
                               btfss    v_portc, 0 ; pin_c0
                               goto     l__l285
                               bcf      v__bitbucket, 4 ; _btemp22
                               goto     l__l284
l__l285
                               bsf      v__bitbucket, 4 ; _btemp22
l__l284
                               bcf      v__portc_shadow, 0 ; x70
                               btfsc    v__bitbucket, 4 ; _btemp22
                               bsf      v__portc_shadow, 0 ; x70
; C:\JALPack\lib/16f690.jal
;  275    PORTC = _PORTC_shadow
                               movf     v__portc_shadow,w
                               movwf    v_portc
; C:\JALPack\testing\sirc_receiver.jal
;  172    Red_1 = !Red_1
; C:\JALPack\lib/16f690.jal
;  378    _PORTC_flush()
; C:\JALPack\testing\sirc_receiver.jal
;  172    Red_1 = !Red_1
;  173   end if
l__l229
;  175   if (my_add == 01) & (my_cmd == 17) then
                               movlw    1
                               subwf    v_my_add,w
                               bcf      v__bitbucket, 5 ; _btemp23
                               btfsc    v__status, v__z
                               bsf      v__bitbucket, 5 ; _btemp23
                               movlw    17
                               subwf    v_my_cmd,w
                               bcf      v__bitbucket, 6 ; _btemp24
                               btfsc    v__status, v__z
                               bsf      v__bitbucket, 6 ; _btemp24
                               bsf      v__bitbucket, 7 ; _btemp25
                               btfsc    v__bitbucket, 5 ; _btemp23
                               btfss    v__bitbucket, 6 ; _btemp24
                               bcf      v__bitbucket, 7 ; _btemp25
                               btfss    v__bitbucket, 7 ; _btemp25
                               goto     l__l233
;  176    Green = !Green
                               btfss    v_portc, 1 ; pin_c1
                               goto     l__l289
                               bcf      v__bitbucket+1, 0 ; _btemp26
                               goto     l__l288
l__l289
                               bsf      v__bitbucket+1, 0 ; _btemp26
l__l288
                               bcf      v__portc_shadow, 1 ; x71
                               btfsc    v__bitbucket+1, 0 ; _btemp26
                               bsf      v__portc_shadow, 1 ; x71
; C:\JALPack\lib/16f690.jal
;  275    PORTC = _PORTC_shadow
                               movf     v__portc_shadow,w
                               movwf    v_portc
; C:\JALPack\testing\sirc_receiver.jal
;  176    Green = !Green
; C:\JALPack\lib/16f690.jal
;  368    _PORTC_flush()
; C:\JALPack\testing\sirc_receiver.jal
;  176    Green = !Green
;  177   end if
l__l233
;  179   if (my_add == 01) & (my_cmd == 18) then
                               movlw    1
                               subwf    v_my_add,w
                               bcf      v__bitbucket+1, 1 ; _btemp27
                               btfsc    v__status, v__z
                               bsf      v__bitbucket+1, 1 ; _btemp27
                               movlw    18
                               subwf    v_my_cmd,w
                               bcf      v__bitbucket+1, 2 ; _btemp28
                               btfsc    v__status, v__z
                               bsf      v__bitbucket+1, 2 ; _btemp28
                               bsf      v__bitbucket+1, 3 ; _btemp29
                               btfsc    v__bitbucket+1, 1 ; _btemp27
                               btfss    v__bitbucket+1, 2 ; _btemp28
                               bcf      v__bitbucket+1, 3 ; _btemp29
                               btfss    v__bitbucket+1, 3 ; _btemp29
                               goto     l__l237
;  180    Yellow = !Yellow
                               btfss    v_portc, 2 ; pin_c2
                               goto     l__l293
                               bcf      v__bitbucket+1, 4 ; _btemp30
                               goto     l__l292
l__l293
                               bsf      v__bitbucket+1, 4 ; _btemp30
l__l292
                               bcf      v__portc_shadow, 2 ; x72
                               btfsc    v__bitbucket+1, 4 ; _btemp30
                               bsf      v__portc_shadow, 2 ; x72
; C:\JALPack\lib/16f690.jal
;  275    PORTC = _PORTC_shadow
                               movf     v__portc_shadow,w
                               movwf    v_portc
; C:\JALPack\testing\sirc_receiver.jal
;  180    Yellow = !Yellow
; C:\JALPack\lib/16f690.jal
;  358    _PORTC_flush()
; C:\JALPack\testing\sirc_receiver.jal
;  180    Yellow = !Yellow
;  181   end if
l__l237
;  183   if (my_add == 01) & (my_cmd == 19) then
                               movlw    1
                               subwf    v_my_add,w
                               bcf      v__bitbucket+1, 5 ; _btemp31
                               btfsc    v__status, v__z
                               bsf      v__bitbucket+1, 5 ; _btemp31
                               movlw    19
                               subwf    v_my_cmd,w
                               bcf      v__bitbucket+1, 6 ; _btemp32
                               btfsc    v__status, v__z
                               bsf      v__bitbucket+1, 6 ; _btemp32
                               bsf      v__bitbucket+1, 7 ; _btemp33
                               btfsc    v__bitbucket+1, 5 ; _btemp31
                               btfss    v__bitbucket+1, 6 ; _btemp32
                               bcf      v__bitbucket+1, 7 ; _btemp33
                               btfss    v__bitbucket+1, 7 ; _btemp33
                               goto     l__l224
;  184    Red_2 = !Red_2
                               btfss    v_portc, 3 ; pin_c3
                               goto     l__l297
                               bcf      v__bitbucket+2, 0 ; _btemp34
                               goto     l__l296
l__l297
                               bsf      v__bitbucket+2, 0 ; _btemp34
l__l296
                               bcf      v__portc_shadow, 3 ; x73
                               btfsc    v__bitbucket+2, 0 ; _btemp34
                               bsf      v__portc_shadow, 3 ; x73
; C:\JALPack\lib/16f690.jal
;  275    PORTC = _PORTC_shadow
                               movf     v__portc_shadow,w
                               movwf    v_portc
; C:\JALPack\testing\sirc_receiver.jal
;  184    Red_2 = !Red_2
; C:\JALPack\lib/16f690.jal
;  347    _PORTC_flush()
; C:\JALPack\testing\sirc_receiver.jal
;  184    Red_2 = !Red_2
;  185   end if
;  188 end loop
                               goto     l__l224
                               end
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…