FORUM.RYAN.COM.BR
Video e Audio => DivX Players => Firmware Mediatek MT13x9 - Desenvolvimento => Topic started by: dcampos on January 23, 2008, 10:30:22 PM
-
Postarei a partir daqui, as rotinas básicas do firmware original do Proview DVP-816.
Jefferson, Se você achar que este tópico vai ficar muito "espalhado" pelo fórum, sinta-se a vontade para criar um "Child Board" e reunir esses tópicos sobre o DVP-816.
[]'s
Daniel
-
Sub_Style - DVP-816
Primária:
B1:C6D1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
B1:C6D1
B1:C6D1
B1:C6D1 Sub_Style: ; CODE XREF: B1_E3E6:@@p
B1:C6D1 EF mov A, R7
B1:C6D2 24 FE add A, #0xFE ; '¦'
B1:C6D4 60 69 jz B1_C73F
B1:C6D6 14 dec A
B1:C6D7 60 66 jz B1_C73F
B1:C6D9 24 02 add A, #2
B1:C6DB 70 6E jnz B1_C74B
B1:C6DD 7F C9 mov R7, #0xC9 ; '+'
B1:C6DF 7E 00 mov R6, #0
B1:C6E1 12 04 93 lcall B1_BS_71_B0_EB5C
B1:C6E4 EF mov A, R7
B1:C6E5 60 33 jz B1_C71A
B1:C6E7 E4 clr A ; Determina a fonte (0x0)
B1:C6E8 FF mov R7, A
B1:C6E9 12 07 1B lcall B1_BS_179_B3_EF79
B1:C6EC D2 46 setb RAM_28.6
B1:C6EE 7F 12 mov R7, #0x12
B1:C6F0 12 06 BB lcall B1_BS_163_B3_13FF
B1:C6F3 7F 12 mov R7, #0x12
B1:C6F5 12 06 C1 lcall B1_BS_164_B3_70CC
B1:C6F8 90 FB CB mov DPTR, #XRAM_FBCB
B1:C6FB 74 03 mov A, #3
B1:C6FD F0 movx @DPTR, A
B1:C6FE A3 inc DPTR
B1:C6FF 14 dec A
B1:C700 F0 movx @DPTR, A
B1:C701 E4 clr A
B1:C702 FB mov R3, A
B1:C703 FD mov R5, A
B1:C704 7F 12 mov R7, #0x12
B1:C706 12 06 C7 lcall B1_BS_165_B3_D3BD
B1:C709 E4 clr A
B1:C70A FD mov R5, A
B1:C70B 7F 12 mov R7, #0x12
B1:C70D 12 07 6F lcall B1_BS_193_B3_EBB6
B1:C710 7F 12 mov R7, #0x12
B1:C712 12 06 D3 lcall B1_BS_167_B3_5B23
B1:C715 7F 12 mov R7, #0x12
B1:C717 12 06 D9 lcall B1_BS_168_B3_EEEF
B1:C71A
B1:C71A B1_C71A: ; CODE XREF: Sub_Style_0+14j
B1:C71A 7D 67 mov R5, #0x67 ; 'g'
B1:C71C 7F CB mov R7, #0xCB ; '-'
B1:C71E 7E 00 mov R6, #0
B1:C720 12 04 57 lcall B1_BS_61_B0_EE99
B1:C723 7D 62 mov R5, #0x62 ; 'b'
B1:C725 7F CC mov R7, #0xCC ; '¦'
B1:C727 7E 00 mov R6, #0
B1:C729 12 04 57 lcall B1_BS_61_B0_EE99
B1:C72C 74 FF mov A, #0xFF
B1:C72E 90 FC E3 mov DPTR, #XRAM_FCE3
B1:C731 F0 movx @DPTR, A
B1:C732 A3 inc DPTR
B1:C733 F0 movx @DPTR, A
B1:C734 90 FC E8 mov DPTR, #XRAM_FCE8
B1:C737 F0 movx @DPTR, A
B1:C738 A3 inc DPTR
B1:C739 F0 movx @DPTR, A
B1:C73A C2 45 clr RAM_28.5
B1:C73C 02 97 23 ljmp B1_9723
B1:C73F ; ---------------------------------------------------------------------------
Secundária:
B1:E483 ; START OF FUNCTION CHUNK FOR BankSw_297_B1_F49F
B1:E483
B1:E483 Sub_StyleSec: ; CODE XREF: BankSw_297_B1_F49F:B1_F4B9j
B1:E483 7F E2 mov R7, #0xE2 ; 'G'
B1:E485 7E 07 mov R6, #7
B1:E487 12 04 93 lcall B1_BS_71_B0_EB5C
B1:E48A BF 01 05 cjne R7, #1, B1_E492
B1:E48D D2 45 setb RAM_28.5
B1:E48F 12 97 23 lcall B1_9723
B1:E492
B1:E492 B1_E492: ; CODE XREF: BankSw_297_B1_F49F-1015j
B1:E492 90 FC 45 mov DPTR, #XRAM_FC45
B1:E495 E0 movx A, @DPTR
B1:E496 64 03 xrl A, #3
B1:E498 70 35 jnz B1_E4CF
B1:E49A 7F 06 mov R7, #6
B1:E49C 12 9D 97 lcall BankSw_209_B1_9D97
B1:E49F 50 2E jnc B1_E4CF
B1:E4A1 D2 46 setb RAM_28.6
B1:E4A3 7F 12 mov R7, #0x12
B1:E4A5 12 06 BB lcall B1_BS_163_B3_13FF
B1:E4A8 7F 12 mov R7, #0x12
B1:E4AA 12 06 C1 lcall B1_BS_164_B3_70CC
B1:E4AD 90 FB CB mov DPTR, #XRAM_FBCB
B1:E4B0 74 03 mov A, #3
B1:E4B2 F0 movx @DPTR, A
B1:E4B3 A3 inc DPTR
B1:E4B4 14 dec A
B1:E4B5 F0 movx @DPTR, A
B1:E4B6 E4 clr A
B1:E4B7 FB mov R3, A
B1:E4B8 FD mov R5, A
B1:E4B9 7F 12 mov R7, #0x12
B1:E4BB 12 06 C7 lcall B1_BS_165_B3_D3BD
B1:E4BE E4 clr A
B1:E4BF FD mov R5, A
B1:E4C0 7F 12 mov R7, #0x12
B1:E4C2 12 07 6F lcall B1_BS_193_B3_EBB6
B1:E4C5 7F 12 mov R7, #0x12
B1:E4C7 12 06 D3 lcall B1_BS_167_B3_5B23
B1:E4CA 7F 12 mov R7, #0x12
B1:E4CC 12 06 D9 lcall B1_BS_168_B3_EEEF
B1:E4CF
B1:E4CF B1_E4CF: ; CODE XREF: BankSw_297_B1_F49F-1007j
B1:E4CF ; BankSw_297_B1_F49F-1000j
B1:E4CF 22 ret
-
Dir_Disp_Dirline - DVP-816
B1:6FC5 B1_6FC5: ; CODE XREF: Dir_Disp_Dirlinej
B1:6FC5 7F 2B mov R7, #0x2B ; '+'
B1:6FC7 7E 02 mov R6, #2
B1:6FC9 12 D7 60 lcall B1_D760
B1:6FCC 90 FB 5D mov DPTR, #XRAM_FB5D
B1:6FCF 12 20 41 lcall B1_?C?LSTXDATA
B1:6FD2 90 FB 5D mov DPTR, #XRAM_FB5D
B1:6FD5 E0 movx A, @DPTR
B1:6FD6 FC mov R4, A
B1:6FD7 A3 inc DPTR
B1:6FD8 E0 movx A, @DPTR
B1:6FD9 FD mov R5, A
B1:6FDA A3 inc DPTR
B1:6FDB E0 movx A, @DPTR
B1:6FDC FE mov R6, A
B1:6FDD A3 inc DPTR
B1:6FDE E0 movx A, @DPTR
B1:6FDF 24 02 add A, #2
B1:6FE1 FF mov R7, A
B1:6FE2 E4 clr A
B1:6FE3 3E addc A, R6
B1:6FE4 FE mov R6, A
B1:6FE5 E4 clr A
B1:6FE6 3D addc A, R5
B1:6FE7 FD mov R5, A
B1:6FE8 E4 clr A
B1:6FE9 3C addc A, R4
B1:6FEA FC mov R4, A
B1:6FEB 90 FB 5D mov DPTR, #XRAM_FB5D
B1:6FEE 12 20 41 lcall B1_?C?LSTXDATA
B1:6FF1 90 FB 5E mov DPTR, #XRAM_FB5E
B1:6FF4 E0 movx A, @DPTR
B1:6FF5 FF mov R7, A
B1:6FF6 A3 inc DPTR
B1:6FF7 E0 movx A, @DPTR
B1:6FF8 FC mov R4, A
B1:6FF9 A3 inc DPTR
B1:6FFA E0 movx A, @DPTR
B1:6FFB FD mov R5, A
B1:6FFC 12 06 DF lcall B1_BS_169_B0_EC66
B1:6FFF 90 FB 5B mov DPTR, #XRAM_FB5B
B1:7002 EF mov A, R7
B1:7003 F0 movx @DPTR, A
B1:7004 90 FC 07 mov DPTR, #XRAM_FC07
B1:7007 E4 clr A
B1:7008 F0 movx @DPTR, A
B1:7009 A3 inc DPTR
B1:700A 74 22 mov A, #0x22 ; '"'
B1:700C F0 movx @DPTR, A
B1:700D 90 FC 09 mov DPTR, #XRAM_FC09
B1:7010 E4 clr A
B1:7011 F0 movx @DPTR, A
B1:7012 A3 inc DPTR
B1:7013 74 06 mov A, #6
B1:7015 F0 movx @DPTR, A
B1:7016 7D 07 mov R5, #7
B1:7018 7F 0F mov R7, #0xF
B1:701A 12 06 E5 lcall B1_BS_170_B3_C897
B1:701D 90 FC 09 mov DPTR, #XRAM_FC09
B1:7020 E4 clr A
B1:7021 F0 movx @DPTR, A
B1:7022 A3 inc DPTR
B1:7023 74 04 mov A, #4
B1:7025 F0 movx @DPTR, A
B1:7026 90 FC 08 mov DPTR, #XRAM_FC08
B1:7029 E0 movx A, @DPTR
B1:702A 24 32 add A, #0x32 ; '2'
B1:702C F0 movx @DPTR, A
B1:702D 90 FC 07 mov DPTR, #XRAM_FC07
B1:7030 E0 movx A, @DPTR
B1:7031 34 00 addc A, #0
B1:7033 F0 movx @DPTR, A
B1:7034 74 04 mov A, #4
B1:7036 24 1E add A, #0x1E
B1:7038 90 FC 12 mov DPTR, #XRAM_FC12
B1:703B F0 movx @DPTR, A
B1:703C E4 clr A
B1:703D 33 rlc A
B1:703E 90 FC 11 mov DPTR, #XRAM_FC11
B1:7041 F0 movx @DPTR, A
B1:7042 90 FC 0D mov DPTR, #XRAM_FC0D
B1:7045 74 02 mov A, #2
B1:7047 F0 movx @DPTR, A
B1:7048 A3 inc DPTR
B1:7049 74 56 mov A, #0x56 ; 'V'
B1:704B F0 movx @DPTR, A
B1:704C D2 47 setb RAM_28.7
B1:704E E4 clr A
B1:704F 90 FB CE mov DPTR, #XRAM_FBCE
B1:7052 F0 movx @DPTR, A
B1:7053 FB mov R3, A
B1:7054 FD mov R5, A
B1:7055 7F 0F mov R7, #0xF
B1:7057 12 07 03 lcall B1_BS_175_B3_C77D
B1:705A E4 clr A
B1:705B FF mov R7, A
B1:705C 12 07 1B lcall B1_BS_179_B3_EF79
B1:705F 90 FB CB mov DPTR, #XRAM_FBCB
B1:7062 74 03 mov A, #3
B1:7064 F0 movx @DPTR, A
B1:7065 A3 inc DPTR
B1:7066 14 dec A
B1:7067 F0 movx @DPTR, A
B1:7068 E4 clr A
B1:7069 FB mov R3, A
B1:706A FD mov R5, A
B1:706B 7F 0F mov R7, #0xF
B1:706D 12 06 C7 lcall B1_BS_165_B3_D3BD
B1:7070 90 FB 5B mov DPTR, #XRAM_FB5B
B1:7073 E0 movx A, @DPTR
B1:7074 FF mov R7, A
B1:7075 D3 setb C
B1:7076 94 3C subb A, #0x3C => Primeiro lugar a mudar para aumentar a linha de diretório
B1:7078 40 31 jc B1_70AB
B1:707A 90 FB 5D mov DPTR, #XRAM_FB5D
B1:707D E0 movx A, @DPTR
B1:707E F8 mov R0, A
B1:707F A3 inc DPTR
B1:7080 E0 movx A, @DPTR
B1:7081 F9 mov R1, A
B1:7082 A3 inc DPTR
B1:7083 E0 movx A, @DPTR
B1:7084 FA mov R2, A
B1:7085 A3 inc DPTR
B1:7086 E0 movx A, @DPTR
B1:7087 FB mov R3, A
B1:7088 EF mov A, R7
B1:7089 24 C4 add A, #0xC4 ; '-'
B1:708B FF mov R7, A
B1:708C E4 clr A
B1:708D 34 FF addc A, #0xFF
B1:708F FE mov R6, A
B1:7090 E4 clr A
B1:7091 FC mov R4, A
B1:7092 FD mov R5, A
B1:7093 EB mov A, R3
B1:7094 2F add A, R7
B1:7095 FF mov R7, A
B1:7096 EA mov A, R2
B1:7097 3E addc A, R6
B1:7098 FE mov R6, A
B1:7099 ED mov A, R5
B1:709A 39 addc A, R1
B1:709B FD mov R5, A
B1:709C EC mov A, R4
B1:709D 38 addc A, R0
B1:709E FC mov R4, A
B1:709F 90 FB 5D mov DPTR, #XRAM_FB5D
B1:70A2 12 20 41 lcall B1_?C?LSTXDATA
B1:70A5 90 FB 5B mov DPTR, #XRAM_FB5B
B1:70A8 74 3C mov A, #0x3C ; '<' => Segundo lugar a mudar para aumentar a linha de diretório
B1:70AA F0 movx @DPTR, A
B1:70AB
B1:70AB B1_70AB: ; CODE XREF: Dir_Disp_Dirline+B9j
B1:70AB 7F 28 mov R7, #0x28 ; '('
B1:70AD 7E 02 mov R6, #2
B1:70AF 12 04 93 lcall B1_BS_71_B0_EB5C
B1:70B2 90 FB 73 mov DPTR, #XRAM_FB73
B1:70B5 EF mov A, R7
B1:70B6 F0 movx @DPTR, A
B1:70B7 90 FB 5D mov DPTR, #XRAM_FB5D
B1:70BA E0 movx A, @DPTR
B1:70BB FC mov R4, A
B1:70BC A3 inc DPTR
B1:70BD E0 movx A, @DPTR
B1:70BE FD mov R5, A
B1:70BF A3 inc DPTR
B1:70C0 E0 movx A, @DPTR
B1:70C1 FE mov R6, A
B1:70C2 A3 inc DPTR
B1:70C3 E0 movx A, @DPTR
B1:70C4 24 01 add A, #1
B1:70C6 FF mov R7, A
B1:70C7 E4 clr A
B1:70C8 3E addc A, R6
B1:70C9 FE mov R6, A
B1:70CA E4 clr A
B1:70CB 3D addc A, R5
B1:70CC FD mov R5, A
B1:70CD E4 clr A
B1:70CE 3C addc A, R4
B1:70CF FC mov R4, A
B1:70D0 90 FB 6E mov DPTR, #XRAM_FB6E
B1:70D3 12 20 41 lcall B1_?C?LSTXDATA
B1:70D6 E4 clr A
B1:70D7 90 FB 72 mov DPTR, #XRAM_FB72
B1:70DA F0 movx @DPTR, A
B1:70DB 90 FB 5B mov DPTR, #XRAM_FB5B
B1:70DE E0 movx A, @DPTR
B1:70DF FD mov R5, A
B1:70E0 7F 0F mov R7, #0xF
B1:70E2 12 8D B2 lcall B1_8DB2
B1:70E5 E4 clr A
B1:70E6 FF mov R7, A
B1:70E7 02 07 1B ljmp B1_BS_179_B3_EF79
B1:70EA ; ---------------------------------------------------------------------------
B1:70EA
B1:70EA B1_70EA: ; CODE XREF: Dir_Disp_Dirline+3j
B1:70EA 90 FC 07 mov DPTR, #XRAM_FC07
B1:70ED E4 clr A
B1:70EE F0 movx @DPTR, A
B1:70EF A3 inc DPTR
B1:70F0 74 22 mov A, #0x22 ; '"'
B1:70F2 F0 movx @DPTR, A
B1:70F3 90 FC 09 mov DPTR, #XRAM_FC09
B1:70F6 E4 clr A
B1:70F7 F0 movx @DPTR, A
B1:70F8 A3 inc DPTR
B1:70F9 74 06 mov A, #6
B1:70FB F0 movx @DPTR, A
B1:70FC 7B 1E mov R3, #0x1E
B1:70FE 7A 00 mov R2, #0
B1:7100 7D 68 mov R5, #0x68 ; 'h'
B1:7102 7C 02 mov R4, #2
B1:7104 7F 0F mov R7, #0xF
B1:7106 12 07 09 lcall B1_BS_176_B3_B785
B1:7109 22 ret
B1:7109 ; End of function Dir_Disp_Dirline
-
SetMPeg4SubtitleParams - DVP-816
B1:F01D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
B1:F01D
B1:F01D
B1:F01D B1_F01D: ; CODE XREF: BankSw_229_B1_DB29+10p
B1:F01D SetMPeg4SubtitleParams:
B1:F01D E4 clr A
B1:F01E 90 FC 07 mov DPTR, #XRAM_FC07
B1:F021 F0 movx @DPTR, A
B1:F022 A3 inc DPTR
B1:F023 F0 movx @DPTR, A
B1:F024 90 FC 09 mov DPTR, #XRAM_FC09
B1:F027 F0 movx @DPTR, A
B1:F028 A3 inc DPTR
B1:F029 F0 movx @DPTR, A
B1:F02A 90 FC 0D mov DPTR, #XRAM_FC0D
B1:F02D 74 02 mov A, #2
B1:F02F F0 movx @DPTR, A
B1:F030 A3 inc DPTR
B1:F031 74 6C mov A, #0x6C ; 'l'
B1:F033 F0 movx @DPTR, A
B1:F034 90 FC 11 mov DPTR, #XRAM_FC11
B1:F037 E4 clr A
B1:F038 F0 movx @DPTR, A
B1:F039 A3 inc DPTR
B1:F03A 74 5A mov A, #0x5A ; 'Z'
B1:F03C F0 movx @DPTR, A
B1:F03D E4 clr A
B1:F03E 90 FB 53 mov DPTR, #XRAM_FB53
B1:F041 F0 movx @DPTR, A
B1:F042 7B 08 mov R3, #8
B1:F044 7D 01 mov R5, #1
B1:F046 7F 12 mov R7, #0x12
B1:F048 12 8A F7 lcall B1_8AF7
B1:F04B D3 setb C
B1:F04C 22 ret
B1:F04C ; End of function B1_F01D
-
Finalmente consegui algum tempo para poder me dedicar a análise do firmware do meu aparelho. ;D
Já consegui algum sucesso em modificar certos detalhes já documentados no post "log de descobertas":
- Separei a fonte das legendas Mpeg4 da fonte do browser e setup do aparelho;
- Aumentei o número de caracteres exibíveis na linha de diretório do browser;
- Adicionei a patch para remoção do tempo decorrido durante e execução de Mpeg4. (Agradeço ao tutorial do amigo evb62, Obrigado!)
- Criei uma palete exclusiva para a janela de exibição de Mpeg4. Fonte agora com legendas amarelas de verdade! :laugh:
Em breve, postarei um novo firmware para download com todas essas (e outras) melhorias já inclusas.
[]'s
Daniel