Autor Tópico: Firmware do LG DV256k  (Lida 72584 vezes)

0 Membros e 2 Visitantes estão vendo este tópico.

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV256k
« Responder #60 Online: Setembro 05, 2008, 12:42:14 am »
Substitui 7E e 20 por FF 00 na sequencia acima e não funcionou. Continua exibindo apenas "_" nos lugar dos carcteres acentuados. Estou pensando em fazer a substituição nas outras 6 sequências...


Troquei os 2 bytes nas 7 sequencias que encontrei e não funcionou...  :(
Parece que está ficando sem saída... Vou dar um tempo, tentar rever todas as modificações que fiz até agora para ver se não cometi nenhuma falha. Qualquer novidade eu posto aqui...

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV256k
« Responder #61 Online: Setembro 21, 2008, 11:07:19 pm »
Depois de muito penar nessas últimas semanas, tentando achar uma solução, acabei conseguindo implementar Caracteres Especiais (e Acentuados) no File Browser e nas ID3 Tags.  :yahoo!: Descobri que realmente existe um filtro no 8032 que tinha que ser alterado. Estava dificil achar, pois os limites não eram 20 e 7E (como em outros firmwares), mas sim 20 e 5F. Vou fazer mais uns testes para ver se está tudo certo e depois detalharei tudo no Log de Descobertas, já que isso poderá ser útil para os novo LGs também. Observação: os trechos que tiveram que ser alterados são praticamente idênticos aos dos LGs 8XXX e 9XXX.

B3:99F0             ; ---------------------------------------------------------------------------
B3:99F0
B3:99F0             B3_99F0:                                ; CODE XREF: B3_9982+69j
B3:99F0 90 FB DA                    mov     DPTR, #XRAM_FBDA
B3:99F3 E0                          movx    A, @DPTR
B3:99F4 FF                          mov     R7, A
B3:99F5 A3                          inc     DPTR
B3:99F6 E0                          movx    A, @DPTR
B3:99F7 FC                          mov     R4, A
B3:99F8 A3                          inc     DPTR
B3:99F9 E0                          movx    A, @DPTR
B3:99FA FD                          mov     R5, A
B3:99FB 12 05 C5                    lcall   B3_BS_122_B0_ECF2
B3:99FE 90 FB D5                    mov     DPTR, #XRAM_FBD5
B3:9A01 EF                          mov     A, R7
B3:9A02 F0                          movx    @DPTR, A
B3:9A03 90 FB D8                    mov     DPTR, #XRAM_FBD8
B3:9A06 E0                          movx    A, @DPTR
B3:9A07 60 15                       jz      B3_9A1E
B3:9A09 90 FB D6                    mov     DPTR, #XRAM_FBD6
B3:9A0C E0                          movx    A, @DPTR
B3:9A0D 90 30 24                    mov     DPTR, #B3_3024
B3:9A10 93                          movc    A, @A+DPTR
B3:9A11 FF                          mov     R7, A
B3:9A12 90 FB D5                    mov     DPTR, #XRAM_FBD5
B3:9A15 E0                          movx    A, @DPTR
B3:9A16 6F                          xrl     A, R7
B3:9A17 60 05                       jz      B3_9A1E
B3:9A19 E4                          clr     A
B3:9A1A 90 FB D8                    mov     DPTR, #XRAM_FBD8
B3:9A1D F0                          movx    @DPTR, A
B3:9A1E
B3:9A1E             B3_9A1E:                                ; CODE XREF: B3_9982+85j
B3:9A1E                                                     ; B3_9982+95j
B3:9A1E 90 FB D5                    mov     DPTR, #XRAM_FBD5
B3:9A21 E0                          movx    A, @DPTR
B3:9A22 FF                          mov     R7, A
B3:9A23 64 20                       xrl     A, #0x20
B3:9A25 60 36                       jz      B3_9A5D
B3:9A27 EF                          mov     A, R7
B3:9A28 64 5F                       xrl     A,#0x5F
B3:9A2A 60 31                       jz      B3_9A5D
B3:9A2C EF                          mov     A, R7
B3:9A2D D3                          setb    C
B3:9A2E 94 2B                       subb    A, #0x2B ; '+'
B3:9A30 40 05                       jc      B3_9A37
B3:9A32 EF                          mov     A, R7
B3:9A33 94 3A                       subb    A, #0x3A ; ':'
B3:9A35 40 26                       jc      B3_9A5D
B3:9A37
B3:9A37             B3_9A37:                                ; CODE XREF: B3_9982+AEj
B3:9A37 EF                          mov     A, R7
B3:9A38 D3                          setb    C
B3:9A39 94 40                       subb    A, #0x40 ; '@'
B3:9A3B 40 05                       jc      B3_9A42
B3:9A3D EF                          mov     A, R7
B3:9A3E 94 5B                       subb    A, #0x5B ; '['
B3:9A40 40 1B                       jc      B3_9A5D
B3:9A42
B3:9A42             B3_9A42:                                ; CODE XREF: B3_9982+B9j
B3:9A42 EF                          mov     A, R7
B3:9A43 D3                          setb    C
B3:9A44 94 60                       subb    A, #0x60 ; '`'
B3:9A46 40 05                       jc      B3_9A4D
B3:9A48 EF                          mov     A, R7
B3:9A49 94 7B                       subb    A, #0x7B ; '{'
B3:9A4B 40 10                       jc      B3_9A5D
B3:9A4D
B3:9A4D             B3_9A4D:                                ; CODE XREF: B3_9982+C4j
B3:9A4D 90 FB DA                    mov     DPTR, #XRAM_FBDA
B3:9A50 E0                          movx    A, @DPTR
B3:9A51 FF                          mov     R7, A
B3:9A52 A3                          inc     DPTR
B3:9A53 E0                          movx    A, @DPTR
B3:9A54 FC                          mov     R4, A
B3:9A55 A3                          inc     DPTR
B3:9A56 E0                          movx    A, @DPTR
B3:9A57 FD                          mov     R5, A
B3:9A58 7B 5F                       mov     R3, #0x5F ; '_'
B3:9A5A 12 0B EF                    lcall   B3_BS_385_B0_F304
B3:9A5D
B3:9A5D             B3_9A5D:                                ; CODE XREF: B3_9982+A3j
B3:9A5D                                                     ; B3_9982+A8j ...
B3:9A5D 90 FB D6                    mov     DPTR, #XRAM_FBD6
B3:9A60 E0                          movx    A, @DPTR
B3:9A61 04                          inc     A
B3:9A62 F0                          movx    @DPTR, A
B3:9A63 90 FB D9                    mov     DPTR, #XRAM_FBD9
B3:9A66 E0                          movx    A, @DPTR
B3:9A67 FC                          mov     R4, A
B3:9A68 A3                          inc     DPTR
B3:9A69 E0                          movx    A, @DPTR
B3:9A6A FD                          mov     R5, A
B3:9A6B A3                          inc     DPTR
B3:9A6C E0                          movx    A, @DPTR
B3:9A6D FE                          mov     R6, A
B3:9A6E A3                          inc     DPTR
B3:9A6F E0                          movx    A, @DPTR
B3:9A70 24 01                       add     A, #1
B3:9A72 FF                          mov     R7, A
B3:9A73 E4                          clr     A
B3:9A74 3E                          addc    A, R6
B3:9A75 FE                          mov     R6, A
B3:9A76 E4                          clr     A
B3:9A77 3D                          addc    A, R5
B3:9A78 FD                          mov     R5, A
B3:9A79 E4                          clr     A
B3:9A7A 3C                          addc    A, R4
B3:9A7B FC                          mov     R4, A
B3:9A7C 90 FB D9                    mov     DPTR, #XRAM_FBD9
B3:9A7F 12 21 06                    lcall   B3_?C?LSTXDATA
B3:9A82 02 99 E0                    ljmp    B3_99E0
B3:9A85             ; ------------------------------------------------------------------------


B3:DB18             ; ---------------------------------------------------------------------------
B3:DB18
B3:DB18             B3_DB18:                                ; CODE XREF: B3_DAF0+23j
B3:DB18 90 FB C7                    mov     DPTR, #XRAM_FBC7
B3:DB1B F0                          movx    @DPTR, A
B3:DB1C
B3:DB1C             B3_DB1C:                                ; CODE XREF: B3_DAF0+A5j
B3:DB1C 90 FB C6                    mov     DPTR, #XRAM_FBC6
B3:DB1F E0                          movx    A, @DPTR
B3:DB20 FF                          mov     R7, A
B3:DB21 A3                          inc     DPTR
B3:DB22 E0                          movx    A, @DPTR
B3:DB23 C3                          clr     C
B3:DB24 9F                          subb    A, R7
B3:DB25 50 70                       jnc     B3_DB97
B3:DB27 90 FB C9                    mov     DPTR, #XRAM_FBC9
B3:DB2A E0                          movx    A, @DPTR
B3:DB2B FF                          mov     R7, A
B3:DB2C A3                          inc     DPTR
B3:DB2D E0                          movx    A, @DPTR
B3:DB2E FC                          mov     R4, A
B3:DB2F A3                          inc     DPTR
B3:DB30 E0                          movx    A, @DPTR
B3:DB31 FD                          mov     R5, A
B3:DB32 12 05 C5                    lcall   B3_BS_122_B0_ECF2
B3:DB35 EF                          mov     A, R7
B3:DB36 64 20                       xrl     A, #0x20
B3:DB38 60 38                       jz      B3_DB72
B3:DB3A EF                          mov     A, R7
B3:DB3B 64 5F                       xrl     A, #0x5F
B3:DB3D 60 33                       jz      B3_DB72
B3:DB3F EF                          mov     A, R7
B3:DB40 60 30                       jz      B3_DB72
B3:DB42 D3                          setb    C
B3:DB43 94 2B                       subb    A, #0x2B ; '+'
B3:DB45 40 05                       jc      B3_DB4C
B3:DB47 EF                          mov     A, R7
B3:DB48 94 3A                       subb    A, #0x3A ; ':'
B3:DB4A 40 26                       jc      B3_DB72
B3:DB4C
B3:DB4C             B3_DB4C:                                ; CODE XREF: B3_DAF0+55j
B3:DB4C EF                          mov     A, R7
B3:DB4D D3                          setb    C
B3:DB4E 94 40                       subb    A, #0x40 ; '@'
B3:DB50 40 05                       jc      B3_DB57
B3:DB52 EF                          mov     A, R7
B3:DB53 94 5B                       subb    A, #0x5B ; '['
B3:DB55 40 1B                       jc      B3_DB72
B3:DB57
B3:DB57             B3_DB57:                                ; CODE XREF: B3_DAF0+60j
B3:DB57 EF                          mov     A, R7
B3:DB58 D3                          setb    C
B3:DB59 94 60                       subb    A, #0x60 ; '`'
B3:DB5B 40 05                       jc      B3_DB62
B3:DB5D EF                          mov     A, R7
B3:DB5E 94 7B                       subb    A, #0x7B ; '{'
B3:DB60 40 10                       jc      B3_DB72
B3:DB62
B3:DB62             B3_DB62:                                ; CODE XREF: B3_DAF0+6Bj
B3:DB62 90 FB C9                    mov     DPTR, #XRAM_FBC9
B3:DB65 E0                          movx    A, @DPTR
B3:DB66 FF                          mov     R7, A
B3:DB67 A3                          inc     DPTR
B3:DB68 E0                          movx    A, @DPTR
B3:DB69 FC                          mov     R4, A
B3:DB6A A3                          inc     DPTR
B3:DB6B E0                          movx    A, @DPTR
B3:DB6C FD                          mov     R5, A
B3:DB6D 7B 5F                       mov     R3, #0x5F ; '_'
B3:DB6F 12 0B EF                    lcall   B3_BS_385_B0_F304
B3:DB72
B3:DB72             B3_DB72:                                ; CODE XREF: B3_DAF0+48j
B3:DB72                                                     ; B3_DAF0+4Dj ...
B3:DB72 90 FB C7                    mov     DPTR, #XRAM_FBC7
B3:DB75 E0                          movx    A, @DPTR
B3:DB76 04                          inc     A
B3:DB77 F0                          movx    @DPTR, A
B3:DB78 A3                          inc     DPTR
B3:DB79 E0                          movx    A, @DPTR
B3:DB7A FC                          mov     R4, A
B3:DB7B A3                          inc     DPTR
B3:DB7C E0                          movx    A, @DPTR
B3:DB7D FD                          mov     R5, A
B3:DB7E A3                          inc     DPTR
B3:DB7F E0                          movx    A, @DPTR
B3:DB80 FE                          mov     R6, A
B3:DB81 A3                          inc     DPTR
B3:DB82 E0                          movx    A, @DPTR
B3:DB83 24 01                       add     A, #1
B3:DB85 FF                          mov     R7, A
B3:DB86 E4                          clr     A
B3:DB87 3E                          addc    A, R6
B3:DB88 FE                          mov     R6, A
B3:DB89 E4                          clr     A
B3:DB8A 3D                          addc    A, R5
B3:DB8B FD                          mov     R5, A
B3:DB8C E4                          clr     A
B3:DB8D 3C                          addc    A, R4
B3:DB8E FC                          mov     R4, A
B3:DB8F 90 FB C8                    mov     DPTR, #XRAM_FBC8
B3:DB92 12 21 06                    lcall   B3_?C?LSTXDATA
B3:DB95 80 85                       sjmp    B3_DB1C
B3:DB97             ; ---------------------------------------------------------------------------



Ryan, você que tem o LG8XXX com firmware brOMax, poderia me confirmar se, além de exibir os caracteres especiais no File Browser (Pastas e Arquivos) e também nas ID3 Tags (ao se pressionar DISPLAY), ele também exibe os dados referentes ao arquivo em execução corretamente, ou assim:
Ex: Oswaldo Montenegro/Millenium/20- Drops de Hortel_.mp3
Caso exiba corretamente terei que pesquisar como fazer isso (deve ter outro filtro...)
Após concluir todos os testes enviarei nova versão do firmware para quem tiver interesse.

« Última modificação: Setembro 21, 2008, 11:09:27 pm por zeurt »

FORUM.RYAN.COM.BR

Re: Firmware do LG DV256k
« Responder #61 Online: Setembro 21, 2008, 11:07:19 pm »

Offline jmaraujo

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 409
  • Aprovação: +41/-0
  • Saudações desde Rivera, Uruguay!!! ;)
    • Ver Perfil
    • Fórum DVP5100K
Re: Firmware do LG DV256k
« Responder #62 Online: Setembro 22, 2008, 12:45:48 am »
Muito bom, parabéms!  :yahoo!:

Sinto muito não ter podido ajudar mais. Fui checar agora e o meu firmware não tem esse código...

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV256k
« Responder #63 Online: Setembro 22, 2008, 06:34:14 pm »
Sinto muito não ter podido ajudar mais. Fui checar agora e o meu firmware não tem esse código...
Não tem problema jmaraujo, muito obrigado pela ajuda!

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV256k
« Responder #64 Online: Janeiro 02, 2009, 01:51:55 pm »
Como alterar a região do DVD através do Firmware

Para alterar a Região do DVD do LG DV256K, deve-se alterar apenas 1 byte. A opção default é armazenada no endereço EEPROM correspondente de maneira diferente, em relação a outros players (Philips, Proview, etc.). A opção não é armazenada numa estrutura de menu.
É assim:

B2:53E9 90 FB BA                    mov     DPTR, #XRAM_FBBA
B2:53EC E0                          movx    A, @DPTR
B2:53ED B4 04 1E                    cjne    A, #4, B2_540E
B2:53F0 7D 04                       mov     R5, #4
B2:53F2 7F 2A                       mov     R7, #0x2A ; '*'
B2:53F4 7E 00                       mov     R6, #0
B2:53F6 12 08 E9                    lcall   B2_BS_256_B1_B2D1

B2:540E             B2_540E:                                ; CODE XREF: BankSw_428_B2_5350+9Dj
B2:540E 90 FB BA                    mov     DPTR, #XRAM_FBBA
B2:5411 E0                          movx    A, @DPTR
B2:5412 64 02                       xrl     A, #2
B2:5414 70 33                       jnz     B2_5449
B2:5416 7D 04                       mov     R5, #4
B2:5418 7F 2A                       mov     R7, #0x2A ; '*'
B2:541A FE                          mov     R6, A
B2:541B 12 08 E9                    lcall   B2_BS_256_B1_B2D1


B2:08E9             ; =============== S U B R O U T I N E =======================================
B2:08E9
B2:08E9
B2:08E9             B2_BS_256_B1_B2D1:                      ; CODE XREF: B2_1952+7Dp
B2:08E9                                                     ; B2_1952+89p ...
B2:08E9 90 B2 D1                    mov     DPTR, #PREF_SetChar
B2:08EC 02 02 40                    ljmp    B2_Bank_1
B2:08EC             ; End of function B2_BS_256_B1_B2D1
B2:08EC
B2:08EF


Deve-se alterar o byte em 253F1 de 04 para o número da região desejada (00, no caso de Region Free)

Isso funciona da mesma maneira para o LG9XXX e para o LGDK194g, inclusive é usado o mesmo endereço EEPROM (2A). Para outros LGs existem diferenças. Pretendo estudar um pouco mais e dar detalhes no Log de Descobertas.

Além disso, as próximas versões do Firmware Alternativo poderão já vir com a região desbloqueada.

« Última modificação: Janeiro 02, 2009, 02:01:44 pm por zeurt »

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV256k
« Responder #65 Online: Março 29, 2009, 01:38:07 am »
Aqui está a rotina de seleção das fontes de legendas no DV256K (encontrei essa rotina por semelhança com a rotina descrita pelo rictad no tópico do DV397H):

Código: [Selecionar]
B4:E337             ; =============== S U B R O U T I N E =======================================
B4:E337
B4:E337
B4:E337             BankSw_229_B4_E337:                     ; DATA XREF: B0:B0_BS_229_B4_E337o
B4:E337                                                     ; B1:B1_BS_229_B4_E337o ...
B4:E337 90 FB 00                    mov     DPTR, #XRAM_FB00
B4:E33A E0                          movx    A, @DPTR
B4:E33B 24 F2                       add     A, #0xF2 ; '='
B4:E33D 60 20                       jz      B4_E35F
B4:E33F 14                          dec     A
B4:E340 60 33                       jz      B4_E375
B4:E342 24 E6                       add     A, #0xE6 ; 'µ'
B4:E344 60 2F                       jz      B4_E375
B4:E346 24 C8                       add     A, #0xC8 ; '+'
B4:E348 60 10                       jz      B4_E35A
B4:E34A 14                          dec     A
B4:E34B 60 0D                       jz      B4_E35A
B4:E34D 24 BC                       add     A, #0xBC ; '+'
B4:E34F 60 04                       jz      B4_E355
B4:E351 24 95                       add     A, #0x95 ; 'ò'
B4:E353 70 35                       jnz     B4_E38A
B4:E355
B4:E355             B4_E355:                                ; CODE XREF: BankSw_229_B4_E337+18j
B4:E355 12 04 FF                    lcall   B4_BS_89_B2_FC64
B4:E358 D3                          setb    C
B4:E359 22                          ret
B4:E35A             ; ---------------------------------------------------------------------------
B4:E35A
B4:E35A             B4_E35A:                                ; CODE XREF: BankSw_229_B4_E337+11j
B4:E35A                                                     ; BankSw_229_B4_E337+14j
B4:E35A 12 04 FF                    lcall   B4_BS_89_B2_FC64
B4:E35D C3                          clr     C
B4:E35E 22                          ret
B4:E35F             ; ---------------------------------------------------------------------------
B4:E35F
B4:E35F             B4_E35F:                                ; CODE XREF: BankSw_229_B4_E337+6j
B4:E35F 90 FD B6                    mov     DPTR, #XRAM_FDB6
B4:E362 E0                          movx    A, @DPTR
B4:E363 D3                          setb    C
B4:E364 94 00                       subb    A, #0
B4:E366 40 05                       jc      B4_E36D
B4:E368 E0                          movx    A, @DPTR
B4:E369 14                          dec     A
B4:E36A F0                          movx    @DPTR, A
B4:E36B 80 1F                       sjmp    B4_E38C
B4:E36D             ; ---------------------------------------------------------------------------
B4:E36D
B4:E36D             B4_E36D:                                ; CODE XREF: BankSw_229_B4_E337+2Fj
B4:E36D 90 FD B6                    mov     DPTR, #XRAM_FDB6
B4:E370 74 08                       mov     A, #8
B4:E372 F0                          movx    @DPTR, A
B4:E373 80 17                       sjmp    B4_E38C
B4:E375             ; ---------------------------------------------------------------------------
B4:E375
B4:E375             B4_E375:                                ; CODE XREF: BankSw_229_B4_E337+9j
B4:E375                                                     ; BankSw_229_B4_E337+Dj
B4:E375 90 FD B6                    mov     DPTR, #XRAM_FDB6
B4:E378 E0                          movx    A, @DPTR
B4:E379 C3                          clr     C
B4:E37A 94 08                       subb    A, #8
B4:E37C 50 05                       jnc     B4_E383
B4:E37E E0                          movx    A, @DPTR
B4:E37F 04                          inc     A
B4:E380 F0                          movx    @DPTR, A
B4:E381 80 09                       sjmp    B4_E38C
B4:E383             ; ---------------------------------------------------------------------------
B4:E383
B4:E383             B4_E383:                                ; CODE XREF: BankSw_229_B4_E337+45j
B4:E383 E4                          clr     A
B4:E384 90 FD B6                    mov     DPTR, #XRAM_FDB6
B4:E387 F0                          movx    @DPTR, A
B4:E388 80 02                       sjmp    B4_E38C
B4:E38A             ; ---------------------------------------------------------------------------
B4:E38A
B4:E38A             B4_E38A:                                ; CODE XREF: BankSw_229_B4_E337+1Cj
B4:E38A D3                          setb    C
B4:E38B 22                          ret
B4:E38C             ; ---------------------------------------------------------------------------
B4:E38C
B4:E38C             B4_E38C:                                ; CODE XREF: BankSw_229_B4_E337+34j
B4:E38C                                                     ; BankSw_229_B4_E337+3Cj ...
B4:E38C 90 FD B6                    mov     DPTR, #XRAM_FDB6
B4:E38F E0                          movx    A, @DPTR
B4:E390 25 E0                       add     A, ACC          ; Accumulator
B4:E392 24 08                       add     A, #8
B4:E394 FF                          mov     R7, A
B4:E395 12 EF F9                    lcall   BankSw_395_B4_EFF9
B4:E398 90 FD B6                    mov     DPTR, #XRAM_FDB6
B4:E39B E0                          movx    A, @DPTR
B4:E39C FF                          mov     R7, A
B4:E39D 12 E7 2C                    lcall   B4_E72C
B4:E3A0 D3                          setb    C
B4:E3A1 22                          ret
B4:E3A1             ; End of function BankSw_229_B4_E337
B4:E3A1

No DV256K a fonte 13 do firmware, que é a CP1255, apresenta o seguinte problema: mesmo colocando uma fonte CP1252 no lugar, os caracteres acentuados aparecem de maneira errada e estranha. Portanto, concluo que existe um processamento especial em relação a essa fonte.
Inicialmente pensei que reduzindo o número de fontes de 9 para 8, e eliminando a fonte 13, isso se resolveria. Fiz isso, e percebi que estava errado: não adiantou nada, pois a fonte 14 passou a ocupar o lugar da fonte 13 e o problema com os caracteres acentuados passaram a ocorrer com essa fonte.

Código: [Selecionar]
As fontes do DV256K são as seguintes:
No player:    No firmware:
CP1250        8
CP1251        9
CP1252        10
CP1253        11
CP1254        12
CP1255        13
8859-2        14
8859-5        15
KOI8-R        16

Para não ter mais problema com isso, eu teria que reduzir o número de fontes de 9 para 5. Só assim, a fonte 13 não participaria mais da seleção (apenas as fontes de 8 a 12). Porém, acho essa solução meio radical: seria melhor deixar do jeito que está (com uma fonte não funcionando), do que ter que eliminar 4 fontes (para ficar com todas funcionando).
Tentei entender a rotina, buscando onde o processamento extra da fonte 13 poderia ocorrer, mas estou meio perdido...  :dashhead1: Rictad, como foi você que descobriu essa rotina (e outras relacionadas), você teria alguma idéia a respeito de uma possível correção para esse problema? Obrigado!




« Última modificação: Março 29, 2009, 01:39:45 am por zeurt »

Offline rictad

  • Hacker Honorário
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 285
  • Aprovação: +59/-0
    • Ver Perfil
Re: Firmware do LG DV256k
« Responder #66 Online: Março 29, 2009, 02:21:55 am »
Interessante é que no final não há nenhuma verificação seletiva para escolher a fonte (como no DV397H). A escolha é feita pelo caminho direto. Veja:

Código: [Selecionar]
B4:E390 25 E0                       add     A, ACC          ; Accumulator
B4:E392 24 08                       add     A, #8
....

Ele dobra o valor da escolha (add A, ACC = A+A) e depois soma 8. Isso é feito sempre, para todas as opções. No 397H, dobra-se e soma 10 para as 5 primeiras. Para as outras duas (inclusive a repetida) faz-se outra operação.

Bom, voltando ao 256K, parece que o problema é que a fonte 13 não é a última. Assim, você terá que colocar uma espécie de "if then" no meio do código para pular a fonte 13. Segundo a sua tabela, a seleção dela ocorre quando o acumulador atinge o valor 5 nos seguintes trechos:

Código: [Selecionar]
B4:E368 E0                          movx    A, @DPTR
B4:E369 14                          dec     A
B4:E36A F0                          movx    @DPTR, A
B4:E36B 80 1F                       sjmp    B4_E38C
...

Código: [Selecionar]
B4:E37E E0                          movx    A, @DPTR
B4:E37F 04                          inc     A
B4:E380 F0                          movx    @DPTR, A
B4:E381 80 09                       sjmp    B4_E38C
...

Em cada um, faça um desvio para uma verificação (de comparação). No primeiro, no dec, verifique se A=5. Se for, decremente mais uma vez (para 4). No segundo, se A=5, incremente mais uma vez. Assim, você terá a seguinte tabela:

Código: [Selecionar]
No player:    No firmware:
CP1250        8
CP1251        9
CP1252        10
CP1253        11
CP1254        12
8859-2        14
8859-5        15
KOI8-R        16

A verificação no decremento pode ser feita com algo do tipo:

Código: [Selecionar]
        B4 05 01   cjne    A, #5, YYYY
        14         dec A
YYYY:   22         ret

E no incremento, de forma análoga.

EDIT: Se 5 não corresponder à fonte 13, outra será "removida". Então vai testando outros valores.
« Última modificação: Março 29, 2009, 04:18:41 am por rictad »

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV256k
« Responder #67 Online: Março 29, 2009, 02:38:33 am »
'Brigadão rictad!  :)

Eu cheguei a imaginar que talvez tivesse que "pular" a fonte 13 com algum "if then", mas não tinha conseguido identificar os pontos para fazer isso. Vou testar e depois comento os resultados.

Offline zeurt

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 333
  • Aprovação: +47/-0
    • Ver Perfil
Re: Firmware do LG DV256k
« Responder #68 Online: Março 29, 2009, 10:20:39 pm »
Depois de alguns ajustes no trecho de verificação "if then" para pular a fonte 13, consegui eliminar essa fonte. Na parte que incrementa é necessário por #4 (a fonte anterior a que queremos eliminar, de baixo para cima), e na parte que decrementa é necessário por #6 (a fonte anterior a que queremos eliminar, de cima para baixo).
Obrigado novamente rictad!  :)
Código: [Selecionar]
E368  02 F4 A3     LJMP  F4A3

E37E  02 F4 C0     LJMP  F4C0

F4A3  E0           MOVX  A, @DPTR
F4A4  B4 06 01     CJNE  A, #06, F4A8
F4A7  14           DEC   A
F4A8  14           DEC   A
F4A9  F0           MOVX  @DPTR, A
F4AA  02 E3 6B     LJMP  E36B


F4C0  E0           MOVX  A, @DPTR
F4C1  B4 04 01     CJNE  A, #04, F4C5
F4C4  04           INC   A
F4C5  04           INC   A
F4C6  F0           MOVX  @DPTR, A
F4C7  02 E3 81     LJMP  E381



Offline rictad

  • Hacker Honorário
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 285
  • Aprovação: +59/-0
    • Ver Perfil
Re: Firmware do LG DV256k
« Responder #69 Online: Março 29, 2009, 11:24:05 pm »
Depois de alguns ajustes no trecho de verificação "if then" para pular a fonte 13, consegui eliminar essa fonte. Na parte que incrementa é necessário por #4 (a fonte anterior a que queremos eliminar, de baixo para cima), e na parte que decrementa é necessário por #6 (a fonte anterior a que queremos eliminar, de cima para baixo).
Obrigado novamente rictad!  :)

De nada zeurt! É isso aí! Para deixar o #5 na comparação, deve-se colocar o jump após o dec inicial (ou inc) e o outro dec (ou inc) somente depois do desvio. Por exemplo, para o dec:

Código: [Selecionar]
E368 E0              movx    A, @DPTR
E369 14              dec     A
E36A 02 F4 A3        ljmp    B4_F4A3

F4A3  B4 05 01       cjne    A, #05, F4A7
F4A6  14             dec     A
F4A7  F0             movx    @DPTR, A
F4A8  02 E3 8C       ljmp    B4_E38C

Acabei não deixando claro isso antes, mas você implementou de um jeito equivalente. :clapping:
« Última modificação: Março 29, 2009, 11:34:34 pm por rictad »

FORUM.RYAN.COM.BR

Re: Firmware do LG DV256k
« Responder #69 Online: Março 29, 2009, 11:24:05 pm »