vPlayerShowLogoEsta rotina é responsável pela exibição das imagens de background.
Minha investigação teve como ponto de partida
este post de teo_abs. A seqüência indicada por ele não funcionou comigo, mas foi fácil adaptá-la.
Exemplo do DVP5960/37:
Nota: analisar esta rotina não é realmente importante. Estou transcrevendo-a aqui para que se possa tentar localizá-la por comparação, se minha seqüência de busca não funcionar em algum firmware específico.
[size=08pt]
B3:BE2E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
B3:BE2E
B3:BE2E
B3:BE2E vPlayerShowLogo: ; DATA XREF: B0:B0_BS_162_B3_BE2Eo
B3:BE2E ; vPlayerShowLogoB1_BSo ...
B3:BE2E 90 FB B4 mov DPTR, #XRAM_FBB4
B3:BE31 EF mov A, R7
B3:BE32 F0 movx @DPTR, A
B3:BE33 A3 inc DPTR
B3:BE34 EC mov A, R4
B3:BE35 F0 movx @DPTR, A
B3:BE36 A3 inc DPTR
B3:BE37 ED mov A, R5
B3:BE38 F0 movx @DPTR, A
B3:BE39 90 FB B4 mov DPTR, #XRAM_FBB4
B3:BE3C E0 movx A, @DPTR
B3:BE3D FF mov R7, A
B3:BE3E 64 04 xrl A, #4
B3:BE40 70 03 jnz B3_BE45
B3:BE42 02 BE F1 ljmp B3_BEF1
B3:BE45 ; ---------------------------------------------------------------------------
B3:BE45
B3:BE45 B3_BE45: ; CODE XREF: vPlayerShowLogo+12j
B3:BE45 EF mov A, R7
B3:BE46 64 03 xrl A, #3
B3:BE48 60 03 jz B3_BE4D
B3:BE4A 02 BE DD ljmp B3_BEDD
B3:BE4D ; ---------------------------------------------------------------------------
B3:BE4D
B3:BE4D B3_BE4D: ; CODE XREF: vPlayerShowLogo+1Aj
B3:BE4D 90 FB B6 mov DPTR, #XRAM_FBB6
B3:BE50 E0 movx A, @DPTR
B3:BE51 54 0F anl A, #0xF
B3:BE53 C4 swap A
B3:BE54 F8 mov R0, A
B3:BE55 54 0F anl A, #0xF
B3:BE57 C8 xch A, R0
B3:BE58 68 xrl A, R0
B3:BE59 FF mov R7, A
B3:BE5A E4 clr A
B3:BE5B C4 swap A
B3:BE5C 54 F0 anl A, #0xF0
B3:BE5E 48 orl A, R0
B3:BE5F A3 inc DPTR
B3:BE60 EF mov A, R7
B3:BE61 F0 movx @DPTR, A
B3:BE62 FD mov R5, A
B3:BE63 7F 50 mov R7, #0x50 ; 'P'
B3:BE65 7E 00 mov R6, #0
B3:BE67 12 1B A8 lcall B3_BS_104_B0_E9CC
B3:BE6A 90 FB B5 mov DPTR, #XRAM_FBB5
B3:BE6D E0 movx A, @DPTR
B3:BE6E C4 swap A
B3:BE6F F8 mov R0, A
B3:BE70 54 F0 anl A, #0xF0
B3:BE72 C8 xch A, R0
B3:BE73 68 xrl A, R0
B3:BE74 FE mov R6, A
B3:BE75 A3 inc DPTR
B3:BE76 E0 movx A, @DPTR
B3:BE77 C4 swap A
B3:BE78 54 0F anl A, #0xF
B3:BE7A 48 orl A, R0
B3:BE7B FF mov R7, A
B3:BE7C 90 FB B5 mov DPTR, #XRAM_FBB5
B3:BE7F EE mov A, R6
B3:BE80 F0 movx @DPTR, A
B3:BE81 A3 inc DPTR
B3:BE82 EF mov A, R7
B3:BE83 F0 movx @DPTR, A
B3:BE84 54 0F anl A, #0xF
B3:BE86 C4 swap A
B3:BE87 F8 mov R0, A
B3:BE88 54 0F anl A, #0xF
B3:BE8A C8 xch A, R0
B3:BE8B 68 xrl A, R0
B3:BE8C FF mov R7, A
B3:BE8D E4 clr A
B3:BE8E C4 swap A
B3:BE8F 54 F0 anl A, #0xF0
B3:BE91 48 orl A, R0
B3:BE92 A3 inc DPTR
B3:BE93 EF mov A, R7
B3:BE94 F0 movx @DPTR, A
B3:BE95 FD mov R5, A
B3:BE96 7F 51 mov R7, #0x51 ; 'Q'
B3:BE98 7E 00 mov R6, #0
B3:BE9A 12 1B A8 lcall B3_BS_104_B0_E9CC
B3:BE9D 90 FB B5 mov DPTR, #XRAM_FBB5
B3:BEA0 E0 movx A, @DPTR
B3:BEA1 C4 swap A
B3:BEA2 F8 mov R0, A
B3:BEA3 54 F0 anl A, #0xF0
B3:BEA5 C8 xch A, R0
B3:BEA6 68 xrl A, R0
B3:BEA7 FE mov R6, A
B3:BEA8 A3 inc DPTR
B3:BEA9 E0 movx A, @DPTR
B3:BEAA C4 swap A
B3:BEAB 54 0F anl A, #0xF
B3:BEAD 48 orl A, R0
B3:BEAE FF mov R7, A
B3:BEAF 90 FB B5 mov DPTR, #XRAM_FBB5
B3:BEB2 EE mov A, R6
B3:BEB3 F0 movx @DPTR, A
B3:BEB4 A3 inc DPTR
B3:BEB5 EF mov A, R7
B3:BEB6 F0 movx @DPTR, A
B3:BEB7 54 0F anl A, #0xF
B3:BEB9 C4 swap A
B3:BEBA F8 mov R0, A
B3:BEBB 54 0F anl A, #0xF
B3:BEBD C8 xch A, R0
B3:BEBE 68 xrl A, R0
B3:BEBF FF mov R7, A
B3:BEC0 E4 clr A
B3:BEC1 C4 swap A
B3:BEC2 54 F0 anl A, #0xF0
B3:BEC4 48 orl A, R0
B3:BEC5 A3 inc DPTR
B3:BEC6 EF mov A, R7
B3:BEC7 F0 movx @DPTR, A
B3:BEC8 FD mov R5, A
B3:BEC9 7F 52 mov R7, #0x52 ; 'R'
B3:BECB 7E 00 mov R6, #0
B3:BECD 12 1B A8 lcall B3_BS_104_B0_E9CC
B3:BED0 E4 clr A
B3:BED1 90 FB F5 mov DPTR, #XRAM_FBF5
B3:BED4 F0 movx @DPTR, A
B3:BED5 FB mov R3, A
B3:BED6 7D 03 mov R5, #3
B3:BED8 7F 30 mov R7, #0x30 ; '0'
B3:BEDA 02 DE 81 ljmp BankSw_102_B3_DE81
B3:BEDD ; ---------------------------------------------------------------------------
B3:BEDD
B3:BEDD B3_BEDD: ; CODE XREF: vPlayerShowLogo+1Cj
B3:BEDD 90 FB B4 mov DPTR, #XRAM_FBB4
B3:BEE0 E0 movx A, @DPTR
B3:BEE1 FD mov R5, A
B3:BEE2 90 FB B6 mov DPTR, #XRAM_FBB6
B3:BEE5 E0 movx A, @DPTR
B3:BEE6 FB mov R3, A
B3:BEE7 E4 clr A
B3:BEE8 90 FB F5 mov DPTR, #XRAM_FBF5
B3:BEEB F0 movx @DPTR, A
B3:BEEC 7F 30 mov R7, #0x30 ; '0'
B3:BEEE 12 DE 81 lcall BankSw_102_B3_DE81
B3:BEF1
B3:BEF1 B3_BEF1: ; CODE XREF: vPlayerShowLogo+14j
B3:BEF1 22 ret
B3:BEF1 ; End of function vPlayerShowLogo
[/size]
Para encontrá-la, procure por:
90 ? ? EF F0 A3 EC F0 A3 ED F0 90 ? ? E0 FF 64 04 70 03 02 ? ? EF
Esta seqüência aparece uma vez em todos os firmwares que testei, no topo da rotina vPlayerShowLogo
Testado com: - Philips DVP3040K/55
- Philips DVP5100K/78
- Philips DVP5960/37
- Philips DVP5965K/55
- Philips DVP5980/12
- Philips DVP5140/37
- Proview DVP-858
- Lenoxx DV-406
Não funcionou com:
Para exibir o background à sua escolha entre os existentes no firmware, basta chamar a rotina assim:
B1:5667 7D 02 mov R5, #2 //02 é o número do background (veja no mtkRemaker)
B1:5669 7C 00 mov R4, #0
B1:566B 7F 01 mov R7, #1
B1:566D 12 1D 04 lcall vPlayerShowLogoB1_BS