Yes, that will always work. So with p74 it's not booting normally?
Doesnt make sense, it's the exactly the same code as the previously working test, except it's just reading a different pin!
sub_7f00: ; From bootloader
br !llab_7fdb ;7f00 9b db 7f ; Go to failsafe check
lab_7fdb: ; Failsafe check
mov pm7,#0xf0 ;7fdb 13 27 f0 ; Set P7.7-4 as input, P7.3-0 as output
mov pu7,#0xf0 ;7fde 13 37 f0 ; Enable P7.7-4 pullups
mov p7,#0x00 ;7fe1 11 07 00 ; P7.3-0 outputs low
movw ax,#0x0100 ;7fe4 10 00 01 ; Much smaller delay
lab_7fe7:
subw ax,#0x0001 ;7fe7 da 01 00
bnz lab_7fe7 ;7fea bd fb
bt p7.4,lab_7ff0 ;7fec cc 07 01 ; If P7.4 reads 1, button is not pressed
ret ;7fef af ; Button pressed, return to bootloader (Enter update mode)
lab_7ff0: ; Button not pressed
mov p7,#0x0f ;7ff0 11 07 0f ; All outputs high (Same as the app init)
br !lab_3015 ;7ff3 9b 15 30 ; Jump to main app