diff --git a/cic/supercic/supercic-key.asm b/cic/supercic/supercic-key.asm index ba2cd57..c6ceeda 100644 --- a/cic/supercic/supercic-key.asm +++ b/cic/supercic/supercic-key.asm @@ -444,6 +444,7 @@ mangle_key_withskip bcf GPIO, 0 movf GPIO, w movwf 0x5e + btfsc GPIO, 3 bsf GPIO, 0 movf GPIO, w movwf 0x5f @@ -451,7 +452,6 @@ mangle_key_withskip nop nop nop - nop btfss 0x20, 4 ; skip if half-byte carry goto mangle_return ; +2 cycles in return movf 0x20, w ; restore w (previously destroyed) @@ -622,6 +622,8 @@ mangle_lock_withskip goto scic_pair_skip1 btfsc 0x5f, 1 goto scic_pair_skip2 + btfss GPIO, 3 + goto scic_pair_skip3 goto supercic_pairmode scic_pair_skip1 nop @@ -629,6 +631,7 @@ scic_pair_skip1 scic_pair_skip2 nop nop +scic_pair_skip3 nop nop nop diff --git a/cic/supercic/supercic-lock.asm b/cic/supercic/supercic-lock.asm index 61e221c..63d49ea 100644 --- a/cic/supercic/supercic-lock.asm +++ b/cic/supercic/supercic-lock.asm @@ -595,6 +595,7 @@ mangle_key_withskip bsf PORTC, 1 movf PORTC, w movwf 0x5e + nop bcf PORTC, 1 movf PORTC, w movwf 0x5f @@ -602,7 +603,6 @@ mangle_key_withskip nop nop nop - nop btfss 0x20, 4 ; skip if half-byte carry goto mangle_return ; +2 cycles in return movf 0x20, w ; restore w (previously destroyed)