0 Members and 3 Guests are viewing this topic.
Legal Ronison,Que bom que você já está conseguindo se virar com esta área.Desabafo: Como ARM é bem mais complicado que 8051 hein!Será que a gente conseguiria neste espaço alocar (no Philips 5965K/55) nomes longos a partir da USB + Word Wrap (algoritmo Danny Moroz) sem perder nenhuma funcionalidade (principalmente o HDMI)?Bom, vou seguir a minha pesquisa sobre MtkArmResizer em paralelo, pode ser útil em algum momento para nós (ou para alguém da comunidade).Estou querendo contribuir e documentar o Word Wrap com algoritmo Danny Moroz para a comunidade.
Caso seu word wrap seja Danny Moroz, esteja pronto e você tenha tempo (e não seja um incômodo) poderia disponibilizar as dicas no tópico específico que abri para isso neste fórum, dentro da seção Philips 5965K/55?Obrigado
O programa usa as células... O problema é que eu somente posso modificar as células visíveis. Eu chequei o firmware após usar o programa e todas as 20 cores tinham sido corretamente trocadas...
Por outro lado, tentei agrandar a janela com os dois programas sugeridos no tópico do MTK Patcher (ResourceHacker e XNResourceEditor), mas nenhúm deles funciona corretamente com o arquivo executável do MTK Windows.
Caracteres especiais estão sendo substituídos por "_". Já vi muita coisa aqui e fiquei com uma dúvida: o UnicodeToCP (ARM) descrito no documento "Patching_HU3899_from_A_to_Z.txt" resolve este problema nos philips?
ROM:0000DCF4 FF 22 MOV R2, #0xFFROM:0000DCF6 00 21 MOV R1, #0
Só para complementar, existe um modo, um tanto deselegante, de passar por cima da definição do tamanho da janela feita por New Age.Mude os valores de ClientWidth e ClientHeightApague a linha OnShow = FormShowVocê verá que, antes de carregar qualquer firmware as duas novas dimensões são respeitadas, mas a altura é redefinida automaticamente quando é carregado um firmware. É possível que na sua versão experimental com mais células a altura acompanhe o número de células (eu acho difícil), mas isso é algo que você mesmo precisa testar.
Quote from: ronison on February 07, 2008, 07:23:23 PMCaracteres especiais estão sendo substituídos por "_". Já vi muita coisa aqui e fiquei com uma dúvida: o UnicodeToCP (ARM) descrito no documento "Patching_HU3899_from_A_to_Z.txt" resolve este problema nos philips?O CP125x que eu estou usando é bem simplezinho, mas não é a solução ao seu problema. O meu patch o que faz e trocar os carateres 250-255 por 0-5 (Há uma explicação técnica do Mabreaker sobre o porqué os carateres 250-255 não são lidos, o que não vem ao caso).O seu problema é o filtro dos caracteres, então o mais fácil é mudar esse filtro.¿O que o tal filtro faz? Ele verifica se o caractere pasado ao Arm é menor do que '20' (espaço), ou maior do que '7E' (~). Se for menor do que 20, ou maior do que 7E, o caracter e sustituido por um '_'.O que você tem que fazer e mudar o '20' por '00', e o '7E' por 'FF', desse jeito ele vai buscar por carateres menores que 00 ou maiores que FF, o que claro, não existem.Procedimento: Busque no bloco ArmCode completo a seqüencia "7E 22 20 21". No meu firmware (os valores já foram trocados):ROM:0000DCF4 FF 22 MOV R2, #0xFFROM:0000DCF6 00 21 MOV R1, #0Isso é tudo.
O filtro deve estar no 8052, certo? Pois bem, como eu falei não existe a definição dos limites (20 e 7E) neste código. Entretanto, você fala em buscar no ARM Code uma sequência? O filtro então estaria no ARM Code?
O filtro está no ArmCodes.Os firmwares Philips não tem o filtro no 8032.
B7:C31C B7_C31C: ; CODE XREF: BankSw_455_B7_C2D8+1AjB7:C31C 90 FC 94 mov DPTR, #XRAM_FC94B7:C31F E0 movx A, @DPTRB7:C320 FD mov R5, AB7:C321 25 E0 add A, ACC ; AccumulatorB7:C323 24 84 add A, #0x84 ; 'ä'B7:C325 F5 82 mov DPL, A ; Data Pointer, Low ByteB7:C327 E4 clr AB7:C328 34 2B addc A, #0x2B ; '+'B7:C32A F5 83 mov DPH, A ; Data Pointer, High Byte
Jefferson, você tem idéia de como e feito o "hold & press" (como NA chama a função que controla as teclas do controle remoto quando apretadas por um par de segundos)?O DVP5100 não tem tal função... Mas o "stop" funciona como "eject" se apertado por dois segundos... Ainda não achei como e feito essa mudança de "14" para "7E".Já fiz uma busca de texto por "0x14" ou "0x7E", mas sem resultados conclusivos...
Sei que parece óbvio, mas você já tentou rastrear o fluxo de execução da tecla Stop?
B7:14B8 B7_14B8: ; CODE XREF: BankSw_64_B7_13FC+37jB7:14B8 90 FC BC mov DPTR, #XRAM_FCBC ; NUM_Janela?B7:14BB E0 movx A, @DPTRB7:14BC 14 dec AB7:14BD B4 12 00 cjne A, #0x12, B7_14C0B7:14C0B7:14C0 B7_14C0:B7:14C0 40 03 jc EscolhePaleteB7:14C0B7:14C2 02 19 E8 ljmp RETB7:14C2B7:14C5 ; ---------------------------------------------------------------------------B7:14C5B7:14C5 EscolhePalete: ; CODE XREF: BankSw_64_B7_13FC:B7_14C0jB7:14C5 90 14 CC mov DPTR, #0x14CCB7:14C8 F8 mov R0, A ; Aqui o conteúdo de A deve ser de 0 a 17 (0 a 0x11)B7:14C9 28 add A, R0B7:14CA 28 add A, R0 ; Ao chegar aqui, o conteúdo do acumulador foi multiplicado por trêsB7:14CB 73 jmp @A+DPTRB7:14CBB7:14CC ; ---------------------------------------------------------------------------B7:14CC 02 15 7A ljmp CarregaPalete02B7:14CCB7:14CF ; ---------------------------------------------------------------------------B7:14CF 02 15 02 ljmp CarregaPalete01B7:14CFB7:14D2 ; ---------------------------------------------------------------------------B7:14D2 02 15 E4 ljmp CarregaPalete03B7:14D2B7:14D5 ; ---------------------------------------------------------------------------B7:14D5 02 17 22 ljmp CarregaPalete07B7:14D5B7:14D8 ; ---------------------------------------------------------------------------B7:14D8 02 17 45 ljmp CarregaPalete08B7:14D8B7:14DB ; ---------------------------------------------------------------------------B7:14DB 02 19 07 ljmp CarregaPalete19B7:14DBB7:14DE ; ---------------------------------------------------------------------------B7:14DE 02 18 E4 ljmp CarregaPalete15B7:14DEB7:14E1 ; ---------------------------------------------------------------------------B7:14E1 02 19 61 ljmp CarregaPalete04B7:14E1B7:14E4 ; ---------------------------------------------------------------------------B7:14E4 02 18 7E ljmp CarregaPalete05_2B7:14E4B7:14E7 ; ---------------------------------------------------------------------------B7:14E7 02 16 1B ljmp CarregaPalete05_1B7:14E7B7:14EA ; ---------------------------------------------------------------------------B7:14EA 02 16 EB ljmp CarregaPalete06B7:14EAB7:14ED ; ---------------------------------------------------------------------------B7:14ED 02 16 85 ljmp CarregaPalete05_3B7:14EDB7:14F0 ; ---------------------------------------------------------------------------B7:14F0 02 17 AC ljmp CarregaPalete09B7:14F0B7:14F3 ; ---------------------------------------------------------------------------B7:14F3 02 17 CF ljmp CarregaPalete12B7:14F3B7:14F6 ; ---------------------------------------------------------------------------B7:14F6 02 17 F2 ljmp CarregaPalete11B7:14F6B7:14F9 ; ---------------------------------------------------------------------------B7:14F9 02 18 15 ljmp CarregaPalete13B7:14F9B7:14FC ; ---------------------------------------------------------------------------B7:14FC 02 18 38 ljmp CarregaPalete10B7:14FCB7:14FF ; ---------------------------------------------------------------------------B7:14FF 02 18 5B ljmp CarregaPalete14B7:14FFB7:1502 ; ---------------------------------------------------------------------------B7:1502
Não. Como faço isso? :oops:
Seria seguir o fluxo de execução desde a decodificação da tecla Stop até a execução da rotina de tratamento. Fiz um ensaio e encontrei um local bem suspeito de ser o que você está procurando. Pelo fluxo que segui, chega um ponto onde ele decide se vai repassar o código 5 (P&H + 1) ou o código 15 (Stop + 1) para o tratamento. A decisão é tomada baseando-se num valor lido 3 vezes num único endereço (acredito que este valor seja o tempo de pressionamento da tecla).O que fiz:1. Fui numa tabela de tratamento de códigos do RC (aquela usada no Auto Load).2. Peguei o código #14 (Stop) e segui o fluxo.Depois eu posto o código aqui, caso haja interesse.
O que você tem que fazer e mudar o '20' por '00', e o '7E' por 'FF', desse jeito ele vai buscar por carateres menores que 00 ou maiores que FF, o que claro, não existem.Procedimento: Busque no bloco ArmCode completo a seqüencia "7E 22 20 21". [...] Isso é tudo.
Em algums firmwares existe um filtro no 8032 também. [...] e como a v43 do firmware do 5980 é um pouco diferente, quem sabe ela tenha o tal filtro...
Estamos manejando duas hipóteses:- A sugerida por ele usa o mesmo método do patch Unicode.Criase uma fonte extendida com carateres normais nas posições normais, e carateres em itálico nas posições extendidas. Quando o Arm detecta a apertura do tag, soma-se um valor X ao valor de cada caratere, coincidindo com o mesmo caracter em itálico. Quando o Arm detecta o fechamento do tag, usa-se os carateres normais.Se entendí bem, o sugerido por ele é o mesmo que o sugerido por você.- O que eu sugerí foi: Criar quatro fontes normais e as quatro correspondentes em itálico. E no menu por somente escolha de quatro fontes (as fontes "normais": 1, 3, 5 e 7).Exemplo:Fonte 1: Fonte 1 normalFonte 2: Fonte 1 itálicoFonte 3: Fonte 2 normalFonte 4: Fonte 2 itálicoFonte 5: Fonte 3 normalFonte 6: Fonte 3 itálicoFonte 7: Fonte 4 normalFonte 8: Fonte 4 itálicoQuando o Arm detecta a apertura do tag, soma 1 ao valor da fonte em uso. Quando detecta o fechamento do tag, resta (sustraí?) 1 ao valor da fonte...Por enqüanto é tudo em teoría...
É bom também tomar cuidado com as posições 0x01, 0x02 e 0x03. Mudar qualquer um dos valores nessas posições faz com que o aparelho execute uma espécie de RESET onde dezenas de bytes são alterados e as posições 0x04 e 0x05 recebem os valores correspondentes ao DVP5980K_78.