211
Firmware Mediatek MT13x9 - Desenvolvimento / Re: Firmware do LG DV397H
« Online: Fevereiro 12, 2009, 07:10:08 pm »Mas estou tentando agora fazer o file browser mostrar os caracteres acentuados. Alterei o filtro no ARM (caracteres no intervalo 20 a 7E) e aqueles dois no 8032 que são iguais aos do DV256K (20 a 5F). Mas não funciona. Continua mostrando "_" no lugar dos caracteres acentuados. Também alterei a fonte do filebrowser, que no DV391H é a número 14 e não possui acentos, mas de nada adiantou. Eu não entendi direito se só isso foi suficiente no DV256K, ou ainda foi necessário implementar a rotina de conversão Unicode.
É necessário:
1- Modificar os 2 filtros do 8032 como expliquei aqui: http://ryan.com.br/smf/index.php?topic=232.msg9175428#msg9175428
2- Implementar a Rotina de Conversão Unicode. Ver a introdução aqui: http://ryan.com.br/smf/index.php?topic=232.msg9175252#msg9175252. Seguir os passos:
a-) Encontrar os 2 pontos que chamarão a nova rotina.
b-) Usei a Rotina de Conversão Unicode criada pelo br0max para os LGs8xxx. Estou enviando essa rotina abaixo:
Código: [Selecionar]
ROM:0000FD98 ; =============== S U B R O U T I N E =======================================
ROM:0000FD98
ROM:0000FD98
ROM:0000FD98 sub_FD98 ; CODE XREF: sub_24258+132p
ROM:0000FD98 ; sub_24258+166p
ROM:0000FD98 01 B4 PUSH {R0}
ROM:0000FD9A 10 39 SUBS R1, #0x10
ROM:0000FD9C 88 7B LDRB R0, [R1,#0xE]
ROM:0000FD9E C9 7B LDRB R1, [R1,#0xF]
ROM:0000FDA0 21 28 CMP R0, #0x21 ; '!'
ROM:0000FDA2 03 D1 BNE loc_FDAC
ROM:0000FDA4 22 29 CMP R1, #0x22 ; '"'
ROM:0000FDA6 01 D1 BNE loc_FDAC
ROM:0000FDA8 99 21 MOVS R1, #0x99 ; 'Ö'
ROM:0000FDAA 19 E0 B loc_FDE0
ROM:0000FDAC ; ---------------------------------------------------------------------------
ROM:0000FDAC
ROM:0000FDAC loc_FDAC ; CODE XREF: sub_FD98+Aj
ROM:0000FDAC ; sub_FD98+Ej
ROM:0000FDAC 20 28 CMP R0, #0x20 ; ' '
ROM:0000FDAE 11 D1 BNE loc_FDD4
ROM:0000FDB0 18 29 CMP R1, #0x18
ROM:0000FDB2 03 D3 BCC loc_FDBC
ROM:0000FDB4 19 29 CMP R1, #0x19
ROM:0000FDB6 01 D8 BHI loc_FDBC
ROM:0000FDB8 79 31 ADDS R1, #0x79 ; 'y'
ROM:0000FDBA 11 E0 B loc_FDE0
ROM:0000FDBC ; ---------------------------------------------------------------------------
ROM:0000FDBC
ROM:0000FDBC loc_FDBC ; CODE XREF: sub_FD98+1Aj
ROM:0000FDBC ; sub_FD98+1Ej
ROM:0000FDBC 1A 29 CMP R1, #0x1A
ROM:0000FDBE 01 D1 BNE loc_FDC4
ROM:0000FDC0 82 21 MOVS R1, #0x82 ; 'é'
ROM:0000FDC2 0D E0 B loc_FDE0
ROM:0000FDC4 ; ---------------------------------------------------------------------------
ROM:0000FDC4
ROM:0000FDC4 loc_FDC4 ; CODE XREF: sub_FD98+26j
ROM:0000FDC4 39 29 CMP R1, #0x39 ; '9'
ROM:0000FDC6 01 D1 BNE loc_FDCC
ROM:0000FDC8 8B 21 MOVS R1, #0x8B ; 'ï'
ROM:0000FDCA 09 E0 B loc_FDE0
ROM:0000FDCC ; ---------------------------------------------------------------------------
ROM:0000FDCC
ROM:0000FDCC loc_FDCC ; CODE XREF: sub_FD98+2Ej
ROM:0000FDCC 3A 29 CMP R1, #0x3A ; ':'
ROM:0000FDCE 05 D1 BNE loc_FDDC
ROM:0000FDD0 9B 21 MOVS R1, #0x9B ; 'ø'
ROM:0000FDD2 05 E0 B loc_FDE0
ROM:0000FDD4 ; ---------------------------------------------------------------------------
ROM:0000FDD4
ROM:0000FDD4 loc_FDD4 ; CODE XREF: sub_FD98+16j
ROM:0000FDD4 01 28 CMP R0, #1
ROM:0000FDD6 01 D0 BEQ loc_FDDC
ROM:0000FDD8 02 28 CMP R0, #2
ROM:0000FDDA 01 D1 BNE loc_FDE0
ROM:0000FDDC
ROM:0000FDDC loc_FDDC ; CODE XREF: sub_FD98+36j
ROM:0000FDDC ; sub_FD98+3Ej
ROM:0000FDDC 01 48 LDR R0, =unk_280B0
ROM:0000FDDE 41 5C LDRB R1, [R0,R1]
ROM:0000FDE0
ROM:0000FDE0 loc_FDE0 ; CODE XREF: sub_FD98+12j
ROM:0000FDE0 ; sub_FD98+22j ...
ROM:0000FDE0 01 BC POP {R0}
ROM:0000FDE2 70 47 BX LR
ROM:0000FDE2 ; End of function sub_FD98
ROM:0000FDE2
ROM:0000FDE2 ; ---------------------------------------------------------------------------
ROM:0000FDE4 B0 80 02 00 off_FDE4 DCD unk_280B0 ; DATA XREF: sub_FD98:loc_FDDCr
ROM:0000FDE8 00 DCB 0
ROM:0000FDE9 00 DCB 0
ROM:0000FDEA 00 DCB 0
ROM:0000FDEB 00 DCB 0
ROM:0000FDEC 00 DCB 0
ROM:0000FDED 00 DCB 0
ROM:0000FDEE 00 DCB 0
ROM:0000FDEF 00 DCB 0
ROM:0000FDF0 00 DCB 0
ROM:0000FDF1 00 DCB 0
ROM:0000FDF2 00 DCB 0
ROM:0000FDF3 00 DCB 0
ROM:0000FDF4 00 DCB 0
ROM:0000FDF5 00 DCB 0
ROM:0000FDF6 00 DCB 0
ROM:0000FDF7 00 DCB 0
ROM:0000FDF8 00 DCB 0
ROM:0000FDF9 00 DCB 0
ROM:0000FDFA 00 DCB 0
ROM:0000FDFB 00 DCB 0
ROM:0000FDFC 00 DCB 0
ROM:0000FDFD 00 DCB 0
ROM:0000FDFE 00 DCB 0
ROM:0000FDFF 00 DCB 0
ROM:0000FE00 00 DCB 0
ROM:0000FE01 00 DCB 0
ROM:0000FE02 00 DCB 0
ROM:0000FE03 00 DCB 0
ROM:0000FE04 00 DCB 0
ROM:0000FE05 00 DCB 0
ROM:0000FE06 00 DCB 0
ROM:0000FE07 00 DCB 0
ROM:0000FE08 00 DCB 0
ROM:0000FE09 00 DCB 0
ROM:0000FE0A 00 DCB 0
ROM:0000FE0B 00 DCB 0
ROM:0000FE0C 00 DCB 0
ROM:0000FE0D 00 DCB 0
ROM:0000FE0E 00 DCB 0
ROM:0000FE0F 00 DCB 0
ROM:0000FE10
ROM:000280B0 5F unk_280B0 DCB 0x5F ; _ ; DATA XREF: ROM:off_FDE4o
ROM:000280B0 ; sub_256B0+10o
ROM:000280B1 5F DCB 0x5F ; _
ROM:000280B2 C3 DCB 0xC3 ; +
ROM:000280B3 E3 DCB 0xE3 ; Ò
ROM:000280B4 A5 DCB 0xA5 ; Ñ
ROM:000280B5 B9 DCB 0xB9 ; ¦
ROM:000280B6 C6 DCB 0xC6 ; ã
ROM:000280B7 E6 DCB 0xE6 ; µ
ROM:000280B8 5F DCB 0x5F ; _
ROM:000280B9 5F DCB 0x5F ; _
ROM:000280BA 5F DCB 0x5F ; _
ROM:000280BB 5F DCB 0x5F ; _
ROM:000280BC C8 DCB 0xC8 ; +
ROM:000280BD E8 DCB 0xE8 ; Þ
ROM:000280BE CF DCB 0xCF ; ¤
ROM:000280BF EF DCB 0xEF ; ´
ROM:000280C0 D0 DCB 0xD0 ; ð
ROM:000280C1 F0 DCB 0xF0 ;
ROM:000280C2 5F DCB 0x5F ; _
ROM:000280C3 96 DCB 0x96 ; û
ROM:000280C4 97 DCB 0x97 ; ù
ROM:000280C5 5F DCB 0x5F ; _
ROM:000280C6 5F DCB 0x5F ; _
ROM:000280C7 5F DCB 0x5F ; _
ROM:000280C8 CA DCB 0xCA ; -
ROM:000280C9 EA DCB 0xEA ; Û
ROM:000280CA CC DCB 0xCC ; ¦
ROM:000280CB EC DCB 0xEC ; ý
ROM:000280CC 93 DCB 0x93 ; ô
ROM:000280CD 94 DCB 0x94 ; ö
ROM:000280CE 84 DCB 0x84 ; ä
ROM:000280CF 5F DCB 0x5F ; _
ROM:000280D0 86 DCB 0x86 ; å
ROM:000280D1 87 DCB 0x87 ; ç
ROM:000280D2 95 DCB 0x95 ; ò
ROM:000280D3 5F DCB 0x5F ; _
ROM:000280D4 5F DCB 0x5F ; _
ROM:000280D5 5F DCB 0x5F ; _
ROM:000280D6 85 DCB 0x85 ; à
ROM:000280D7 5F DCB 0x5F ; _
ROM:000280D8 5F DCB 0x5F ; _
ROM:000280D9 5F DCB 0x5F ; _
ROM:000280DA 5F DCB 0x5F ; _
ROM:000280DB 5F DCB 0x5F ; _
ROM:000280DC 5F DCB 0x5F ; _
ROM:000280DD 5F DCB 0x5F ; _
ROM:000280DE 5F DCB 0x5F ; _
ROM:000280DF 5F DCB 0x5F ; _
ROM:000280E0 89 DCB 0x89 ; ë
ROM:000280E1 5F DCB 0x5F ; _
ROM:000280E2 5F DCB 0x5F ; _
ROM:000280E3 5F DCB 0x5F ; _
ROM:000280E4 5F DCB 0x5F ; _
ROM:000280E5 5F DCB 0x5F ; _
ROM:000280E6 5F DCB 0x5F ; _
ROM:000280E7 5F DCB 0x5F ; _
ROM:000280E8 5F DCB 0x5F ; _
ROM:000280E9 C5 DCB 0xC5 ; +
ROM:000280EA E5 DCB 0xE5 ; Õ
ROM:000280EB 5F DCB 0x5F ; _
ROM:000280EC 5F DCB 0x5F ; _
ROM:000280ED BC DCB 0xBC ; +
ROM:000280EE BE DCB 0xBE ; ¥
ROM:000280EF 5F DCB 0x5F ; _
ROM:000280F0 5F DCB 0x5F ; _
ROM:000280F1 A3 DCB 0xA3 ; ú
ROM:000280F2 B3 DCB 0xB3 ; ¦
ROM:000280F3 D1 DCB 0xD1 ; Ð
ROM:000280F4 F1 DCB 0xF1 ; ±
ROM:000280F5 5F DCB 0x5F ; _
ROM:000280F6 5F DCB 0x5F ; _
ROM:000280F7 D2 DCB 0xD2 ; Ê
ROM:000280F8 F2 DCB 0xF2 ; =
ROM:000280F9 5F DCB 0x5F ; _
ROM:000280FA 5F DCB 0x5F ; _
ROM:000280FB 5F DCB 0x5F ; _
ROM:000280FC 5F DCB 0x5F ; _
ROM:000280FD 5F DCB 0x5F ; _
ROM:000280FE 5F DCB 0x5F ; _
ROM:000280FF 5F DCB 0x5F ; _
ROM:00028100 D5 DCB 0xD5 ; i
ROM:00028101 F5 DCB 0xF5 ; §
ROM:00028102 5F DCB 0x5F ; _
ROM:00028103 5F DCB 0x5F ; _
ROM:00028104 C0 DCB 0xC0 ; +
ROM:00028105 E0 DCB 0xE0 ; Ó
ROM:00028106 5F DCB 0x5F ; _
ROM:00028107 5F DCB 0x5F ; _
ROM:00028108 D8 DCB 0xD8 ; Ï
ROM:00028109 F8 DCB 0xF8 ; °
ROM:0002810A 8C DCB 0x8C ; î
ROM:0002810B 9C DCB 0x9C ; £
ROM:0002810C 5F DCB 0x5F ; _
ROM:0002810D 5F DCB 0x5F ; _
ROM:0002810E AA DCB 0xAA ; ¬
ROM:0002810F BA DCB 0xBA ; ¦
ROM:00028110 8A DCB 0x8A ; è
ROM:00028111 9A DCB 0x9A ; Ü
ROM:00028112 DE DCB 0xDE ; Ì
ROM:00028113 FE DCB 0xFE ; ¦
ROM:00028114 8D DCB 0x8D ; ì
ROM:00028115 9D DCB 0x9D ; Ø
ROM:00028116 5F DCB 0x5F ; _
ROM:00028117 5F DCB 0x5F ; _
ROM:00028118 5F DCB 0x5F ; _
ROM:00028119 5F DCB 0x5F ; _
ROM:0002811A 5F DCB 0x5F ; _
ROM:0002811B 5F DCB 0x5F ; _
ROM:0002811C 5F DCB 0x5F ; _
ROM:0002811D 5F DCB 0x5F ; _
ROM:0002811E D9 DCB 0xD9 ; +
ROM:0002811F F9 DCB 0xF9 ; ¨
ROM:00028120 DB DCB 0xDB ; ¦
ROM:00028121 FB DCB 0xFB ; ¹
ROM:00028122 5F DCB 0x5F ; _
ROM:00028123 5F DCB 0x5F ; _
ROM:00028124 5F DCB 0x5F ; _
ROM:00028125 5F DCB 0x5F ; _
ROM:00028126 5F DCB 0x5F ; _
ROM:00028127 5F DCB 0x5F ; _
ROM:00028128 5F DCB 0x5F ; _
ROM:00028129 8F DCB 0x8F ; Å
ROM:0002812A 9F DCB 0x9F ; ƒ
ROM:0002812B AF DCB 0xAF ; »
ROM:0002812C BF DCB 0xBF ; +
ROM:0002812D 8E DCB 0x8E ; Ä
ROM:0002812E 9E DCB 0x9E ; ×
ROM:0002812F 5F DCB 0x5F ; _
ROM:00028130 5F DCB 0x5F ; _
ROM:00028131 5F DCB 0x5F ; _
ROM:00028132 5F DCB 0x5F ; _
ROM:00028133 5F DCB 0x5F ; _
ROM:00028134 5F DCB 0x5F ; _
ROM:00028135 5F DCB 0x5F ; _
ROM:00028136 5F DCB 0x5F ; _
ROM:00028137 5F DCB 0x5F ; _
ROM:00028138 5F DCB 0x5F ; _
ROM:00028139 5F DCB 0x5F ; _
ROM:0002813A 5F DCB 0x5F ; _
ROM:0002813B 5F DCB 0x5F ; _
ROM:0002813C 5F DCB 0x5F ; _
ROM:0002813D 5F DCB 0x5F ; _
ROM:0002813E 5F DCB 0x5F ; _
ROM:0002813F 5F DCB 0x5F ; _
ROM:00028140 5F DCB 0x5F ; _
ROM:00028141 5F DCB 0x5F ; _
ROM:00028142 5F DCB 0x5F ; _
ROM:00028143 5F DCB 0x5F ; _
ROM:00028144 5F DCB 0x5F ; _
ROM:00028145 5F DCB 0x5F ; _
ROM:00028146 5F DCB 0x5F ; _
ROM:00028147 5F DCB 0x5F ; _
ROM:00028148 5F DCB 0x5F ; _
ROM:00028149 5F DCB 0x5F ; _
ROM:0002814A 5F DCB 0x5F ; _
ROM:0002814B 5F DCB 0x5F ; _
ROM:0002814C 5F DCB 0x5F ; _
ROM:0002814D 5F DCB 0x5F ; _
ROM:0002814E 5F DCB 0x5F ; _
ROM:0002814F 5F DCB 0x5F ; _
ROM:00028150 5F DCB 0x5F ; _
ROM:00028151 5F DCB 0x5F ; _
ROM:00028152 5F DCB 0x5F ; _
ROM:00028153 5F DCB 0x5F ; _
ROM:00028154 5F DCB 0x5F ; _
ROM:00028155 5F DCB 0x5F ; _
ROM:00028156 5F DCB 0x5F ; _
ROM:00028157 5F DCB 0x5F ; _
ROM:00028158 5F DCB 0x5F ; _
ROM:00028159 5F DCB 0x5F ; _
ROM:0002815A 5F DCB 0x5F ; _
ROM:0002815B 5F DCB 0x5F ; _
ROM:0002815C 80 DCB 0x80 ; Ç
ROM:0002815D 5F DCB 0x5F ; _
ROM:0002815E 5F DCB 0x5F ; _
ROM:0002815F 5F DCB 0x5F ; _
ROM:00028160 5F DCB 0x5F ; _
ROM:00028161 5F DCB 0x5F ; _
ROM:00028162 5F DCB 0x5F ; _
ROM:00028163 5F DCB 0x5F ; _
ROM:00028164 5F DCB 0x5F ; _
ROM:00028165 5F DCB 0x5F ; _
ROM:00028166 5F DCB 0x5F ; _
ROM:00028167 5F DCB 0x5F ; _
ROM:00028168 5F DCB 0x5F ; _
ROM:00028169 5F DCB 0x5F ; _
ROM:0002816A 5F DCB 0x5F ; _
ROM:0002816B 5F DCB 0x5F ; _
ROM:0002816C 5F DCB 0x5F ; _
ROM:0002816D 5F DCB 0x5F ; _
ROM:0002816E 5F DCB 0x5F ; _
ROM:0002816F 5F DCB 0x5F ; _
ROM:00028170 5F DCB 0x5F ; _
ROM:00028171 5F DCB 0x5F ; _
ROM:00028172 5F DCB 0x5F ; _
ROM:00028173 5F DCB 0x5F ; _
ROM:00028174 5F DCB 0x5F ; _
ROM:00028175 5F DCB 0x5F ; _
ROM:00028176 5F DCB 0x5F ; _
ROM:00028177 A1 DCB 0xA1 ; í
ROM:00028178 5F DCB 0x5F ; _
ROM:00028179 5F DCB 0x5F ; _
ROM:0002817A 5F DCB 0x5F ; _
ROM:0002817B 5F DCB 0x5F ; _
ROM:0002817C 5F DCB 0x5F ; _
ROM:0002817D 5F DCB 0x5F ; _
ROM:0002817E 5F DCB 0x5F ; _
ROM:0002817F 5F DCB 0x5F ; _
ROM:00028180 5F DCB 0x5F ; _
ROM:00028181 5F DCB 0x5F ; _
ROM:00028182 5F DCB 0x5F ; _
ROM:00028183 5F DCB 0x5F ; _
ROM:00028184 5F DCB 0x5F ; _
ROM:00028185 5F DCB 0x5F ; _
ROM:00028186 5F DCB 0x5F ; _
ROM:00028187 5F DCB 0x5F ; _
ROM:00028188 A2 DCB 0xA2 ; ó
ROM:00028189 FF DCB 0xFF
ROM:0002818A 5F DCB 0x5F ; _
ROM:0002818B B2 DCB 0xB2 ; ¦
ROM:0002818C 5F DCB 0x5F ; _
ROM:0002818D BD DCB 0xBD ; ¢
ROM:0002818E 5F DCB 0x5F ; _
ROM:0002818F 5F DCB 0x5F ; _
ROM:00028190 5F DCB 0x5F ; _
ROM:00028191 5F DCB 0x5F ; _
ROM:00028192 5F DCB 0x5F ; _
ROM:00028193 5F DCB 0x5F ; _
ROM:00028194 5F DCB 0x5F ; _
ROM:00028195 5F DCB 0x5F ; _
ROM:00028196 5F DCB 0x5F ; _
ROM:00028197 5F DCB 0x5F ; _
ROM:00028198 5F DCB 0x5F ; _
ROM:00028199 5F DCB 0x5F ; _
ROM:0002819A 5F DCB 0x5F ; _
ROM:0002819B 5F DCB 0x5F ; _
ROM:0002819C 5F DCB 0x5F ; _
ROM:0002819D 5F DCB 0x5F ; _
ROM:0002819E 5F DCB 0x5F ; _
ROM:0002819F 5F DCB 0x5F ; _
ROM:000281A0 5F DCB 0x5F ; _
ROM:000281A1 5F DCB 0x5F ; _
ROM:000281A2 5F DCB 0x5F ; _
ROM:000281A3 5F DCB 0x5F ; _
ROM:000281A4 5F DCB 0x5F ; _
ROM:000281A5 5F DCB 0x5F ; _
ROM:000281A6 5F DCB 0x5F ; _
ROM:000281A7 5F DCB 0x5F ; _
ROM:000281A8 5F DCB 0x5F ; _
ROM:000281A9 5F DCB 0x5F ; _
ROM:000281AA 5F DCB 0x5F ; _
ROM:000281AB 5F DCB 0x5F ; _
ROM:000281AC 5F DCB 0x5F ; _
ROM:000281AD 5F DCB 0x5F ; _
ROM:000281AE 5F DCB 0x5F ; _
Como se pode ver, essa rotina usa uma tabela com 256 bytes (acho que tem relação com os caracteres, mas eu nem cheguei a procurar entender com detalhes o funcionamento disso).
c-) Agora é necessário encontrar espaço para colocar a rotina e a tabela. Encontrei 2 áreas de erros no DV256K, e coloquei a rotina em uma, e a tabela na outra. Para encontrar as rotinas de erros, de uma olhada nesses 2 trechos do DV256K para depois achar os equivalentes no DV397H: 270F6 e 298B4.
d-) Observação: Usar o BCalc, para calcular o salto entre os 2 pontos que chamarão a rotina e o local que você decidiu colocá-la.
e-) Não é necessário mexer em nehum filtro do ARM, nem alterar nehuma fonte.