We believe that there is bug in Winbond's W78C438CP (at least for batch numbers 312AB21090870-832SB and 306AB21090870-822SB).
The built-in "chip select logic" fails in case of MOVC A,@A+DPTR and makes our debugger fails to function correctly.
Here is a POSSIBLE solution to this problem. Replace each occurrence of MOVC A,@A+DPTR by the following codes:
MOV 0A2h,#11111101b ; 0A2h is the address of the Extended Program Memory Address (EPMA) register
; Use #11111101b if target of table lookup is within 4000h-7FFFh
; Use #11111011b if target of table lookup is within 8000h-BFFFh