Autor Tópico: Firmware MT13x9: Log de Descobertas  (Lida 272409 vezes)

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

Offline jmaraujo

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 409
  • Aprovação: +41/-0
  • Saudações desde Rivera, Uruguay!!! ;)
    • Ver Perfil
    • Fórum DVP5100K
Re: Firmware: log de descobertas
« Responder #170 Online: Agosto 18, 2007, 12:38:24 pm »
 :yahoo!: Funcionou perfeitamente. Agora o firmware permite a troca das cores (14 cores) e fontes (8 fontes). Obrigadão mesmo!!!  ;D

Mais tarde vou postear alguma fotografía e nos próximos días postearei o firmware (alternativo 2.3) aquí no fórum.

Um abraço,
jmaraujo

Offline jmaraujo

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 409
  • Aprovação: +41/-0
  • Saudações desde Rivera, Uruguay!!! ;)
    • Ver Perfil
    • Fórum DVP5100K
Re: Firmware: log de descobertas
« Responder #171 Online: Agosto 18, 2007, 11:23:38 pm »
Olá, Jefferson. O menú de escolha de cores está funcionando perfeitamente... Já com as fontes estou tendo um comportamente meio esquisito: Se você trocar a fonte mais de duas vezes a fonte começa a ficar sempre a mesma (e algumas vezes o player trava produzindo um som bem agudo nos altofalantes).

Por agora estou usando 3 fontes (uma a mais que o firmware original) trocando o byte 11 por o valor de uma nova fonte inserida:

B1:CFC4             B1_CFC4:                      ; CODE XREF: SUB_Style+42j
B1:CFC4 7F 59       mov     R7, #0x59 ; 'Y'       ; Lê o valor de "DivX Subtitle" na eeprom
B1:CFC6 7E 00       mov     R6, #0
B1:CFC8 12 05 D7    lcall   Pref_Getchar_B1BS
B1:CFCB BF 02 07    cjne    R7, #2, B1_CFD5
B1:CFCE 7F 11       mov     R7, #0x11             ; Se for 2, uso a fonte 0x11
B1:CFD0 12 08 59    lcall   Sub_SetFont_B1BS
B1:CFD3 80 05       sjmp    B1_CFDA


Vou ver se hoje a noite adiciono algumas fontes mais, usando esse mesmo padrão.

Algumas fotografías do firmware:






FORUM.RYAN.COM.BR

Re: Firmware: log de descobertas
« Responder #171 Online: Agosto 18, 2007, 11:23:38 pm »

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware: log de descobertas
« Responder #172 Online: Agosto 18, 2007, 11:40:34 pm »
Anexe o firmware com o problema das fontes para que eu possa testar aqui.
http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

Offline jmaraujo

  • Seeder
  • Colaboradores
  • Papagaio
  • *
  • Mensagens: 409
  • Aprovação: +41/-0
  • Saudações desde Rivera, Uruguay!!! ;)
    • Ver Perfil
    • Fórum DVP5100K
Re: Firmware: log de descobertas
« Responder #173 Online: Agosto 19, 2007, 12:09:53 am »

Anexe o firmware com o problema das fontes para que eu possa testar aqui.


Já vou anexar (tenho que ver qual exatamente é o arquivo do problema), mas básicamente o que eu fiz foi:

    * Fazer um call para Sub_SetFont e nopear parte da rutina substyle (de CFAC a CFD9).
    * Adicionar fontes mantendo a estrutura (a fonte dos ícones continúa sendo 0x0C).

    * Fontes: 00 (também usada pelo filebrowser), 02, 04, 06, 08, 0A, 0C (incambiada, ícones), 0D e 0F).

    * Criar um menú para as fontes usando como opção os valores das fontes.



Novo menú:

  1. No Pic. | Subtitle font | Set the subtitle font
     0008 FFFF 056A 05B3 0059 0000 0007 000D FFF8E7 0000 - ROM:F8B4
 => 1. Font 1 | Font 1 | [00]
       05A0 05A0 0561 0D - ROM:F8A0
    2. Font 2 | Font 2 | [00]
       05A1 05A1 0561 0F - ROM:F8A7
    3. Font 3 | Font 3 | [00]
       05B0 05B0 0561 02 - ROM:FBFC
    4. Font 4 | Font 4 | [00]
       05B1 05B1 0561 04 - ROM:FC03
    5. Font 5 | Font 5 | [00]
       05B4 05B4 0561 06 - ROM:FC0A
    6. Font 6 | Font 6 | [00]
       05B5 05B5 0561 08 - ROM:FC11
    7. Font 7 | Font 7 | [00]
       05B6 05B6 0561 0A - ROM:FC18
    8. Font 8 | Font 8 | [00]
       05B7 05B7 0561 00 - ROM:FC1F

Nos próximos minutos estarei anexando o firmware para analise.



Editado por Jefferson: Eu modifiquei seu post em vez de responder. Tive que refazer a partir de uma cópia.
« Última modificação: Agosto 19, 2007, 12:57:08 am por Jefferson »

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware: log de descobertas
« Responder #174 Online: Agosto 19, 2007, 01:34:38 am »
jmaraujo,

Eu ainda não chequei o firmware que você me mandou por PM, mas eu acho que sei o que pode estar havendo.

Existe outra rotina no firmware DVP5100 que seleciona a fonte baseado no valor da eeprom:

B1:DFEA             ; START OF FUNCTION CHUNK FOR BankSw_337_B1_F2FD
B1:DFEA
B1:DFEA             B1_DFEA:                      ; CODE XREF: BankSw_337_B1_F2FD:B1_F317j
B1:DFEA 7F E2       mov     R7, #0xE2 ; 'Ô'
B1:DFEC 7E 07       mov     R6, #7
B1:DFEE 12 04 7B    lcall   ARM_Getchar_B1BS
B1:DFF1 BF 01 05    cjne    R7, #1, B1_DFF9
B1:DFF4 D2 74       setb    RAM_2E.4
B1:DFF6 12 A1 CD    lcall   BankSw_578_B1_A1CD
B1:DFF9
B1:DFF9             B1_DFF9:                      ; CODE XREF: BankSw_337_B1_F2FD-130Cj
B1:DFF9 7F 59       mov     R7, #0x59 ; 'Y'       ; Lê o valor de "DivX Subtitle" na eeprom
B1:DFFB 7E 00       mov     R6, #0
B1:DFFD 12 05 D7    lcall   Pref_Getchar_B1BS
B1:E000 BF 01 07    cjne    R7, #1, B1_E00A
B1:E003 7F 0F       mov     R7, #0xF              ; Se for 1, uso a fonte 0xF
B1:E005 12 08 59    lcall   Sub_SetFont_B1BS
B1:E008 80 27       sjmp    B1_E031
B1:E00A             ; ---------------------------------------------------------------------------
B1:E00A
B1:E00A             B1_E00A:                      ; CODE XREF: BankSw_337_B1_F2FD-12FDj
B1:E00A 7F 59       mov     R7, #0x59 ; 'Y'       ; Lê o valor de "DivX Subtitle" na eeprom
B1:E00C 7E 00       mov     R6, #0
B1:E00E 12 05 D7    lcall   Pref_Getchar_B1BS
B1:E011 EF          mov     A, R7
B1:E012 70 07       jnz     B1_E01B
B1:E014 7F 0D       mov     R7, #0xD              ; Se for 0, uso a fonte 0xD
B1:E016 12 08 59    lcall   Sub_SetFont_B1BS
B1:E019 80 16       sjmp    B1_E031
B1:E01B             ; ---------------------------------------------------------------------------
B1:E01B
B1:E01B             B1_E01B:                      ; CODE XREF: BankSw_337_B1_F2FD-12EBj
B1:E01B 7F 59       mov     R7, #0x59 ; 'Y'       ; Lê o valor de "DivX Subtitle" na eeprom
B1:E01D 7E 00       mov     R6, #0
B1:E01F 12 05 D7    lcall   Pref_Getchar_B1BS
B1:E022 BF 02 07    cjne    R7, #2, B1_E02C
B1:E025 7F 11       mov     R7, #0x11             ; Se for 2, uso a fonte 0x11
B1:E027 12 08 59    lcall   Sub_SetFont_B1BS
B1:E02A 80 05       sjmp    B1_E031
B1:E02C             ; ---------------------------------------------------------------------------
B1:E02C
B1:E02C             B1_E02C:                      ; CODE XREF: BankSw_337_B1_F2FD-12DBj
B1:E02C 7F 0D       mov     R7, #0xD              ; Se for maior que 2, uso a fonte 0xD
B1:E02E 12 08 59    lcall   Sub_SetFont_B1BS
B1:E031
B1:E031             B1_E031:                      ; CODE XREF: BankSw_337_B1_F2FD-12F5j
B1:E031                                           ; BankSw_337_B1_F2FD-12E4j ...
B1:E031 7F 11       mov     R7, #0x11
B1:E033 12 08 23    lcall   OSD_TextInit_B1BS
B1:E036 7F 11       mov     R7, #0x11
B1:E038 02 08 29    ljmp    B1_BS_224_B3_F310
B1:E038             ; END OF FUNCTION CHUNK FOR BankSw_337_B1_F2FD


A rotina acima é exatamente igual, byte por byte, à que existe em Sub_Style.

String hexa:
7F 59 7E 00 12 05 D7 BF 01 07 7F 0F 12 08 59 80 27 7F 59 7E 00 12 05 D7 EF 70 07 7F 0D 12 08 59 80 16 7F 59 7E 00 12 05 D7 BF 02 07 7F 11 12 08 59 80 05 7F 0D 12 08 59 7F 11 12 08 23 7F 11 02 08 29

Substitua por:
7F 59 7E 00 12 05  D7 12 08 59 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7F 11 12 08 23 7F 11 12 08 29

Se meu palpite estiver correto, é quando esta rotina é chamada que o firmware trava. E estudando as condições do travamento poderemos saber em que condições essa rotina é chamada..

E fazer o mesmo patch da Sub_Style aqui deve resolver o problema.

Essa duplicidade de rotinas também ocorre no DVP5960/DVP5965.

« Última modificação: Agosto 19, 2007, 01:59:21 am por Jefferson »
http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware: log de descobertas
« Responder #175 Online: Agosto 19, 2007, 02:02:08 am »
Está parecendo que esta segunda rotina é chamada quando entramos e saímos do setup apenas.
http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware: log de descobertas
« Responder #176 Online: Agosto 19, 2007, 02:48:40 am »
Confirmado. A rotina é mesmo executada quando você entra e sai do setup.

Eu fiz o patch aqui e parece estar OK. Se bem que mesmo antes de fazer o patch eu não consegui fazer travar nenhuma vez.

Mas como a rotina é chamada ao sair do setup e na modificação existiam valores maiores que 1 na eeprom, ao passar por essa rotina estavam sendo chamadas as fontes 0xD (inválida para legendas) e 0x11 (inexistente) dependendo da fonte escolhida no setup.

http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware: log de descobertas
« Responder #177 Online: Agosto 19, 2007, 04:33:20 am »
Finalmente, Sub_Style do DVP-3040K


B1:EDC3             Sub_Style:                    ; CODE XREF: B1_DD81+3Ep
B1:EDC3 90 FB 46    mov     DPTR, #XRAM_FB46
B1:EDC6 EE          mov     A, R6
B1:EDC7 F0          movx    @DPTR, A
B1:EDC8 A3          inc     DPTR
B1:EDC9 EF          mov     A, R7
B1:EDCA F0          movx    @DPTR, A
B1:EDCB 7F 03       mov     R7, #3
B1:EDCD 12 07 15    lcall   B1_BS_178_B3_4B4F
B1:EDD0 7F 01       mov     R7, #1
B1:EDD2 12 07 15    lcall   B1_BS_178_B3_4B4F
B1:EDD5 7F 03       mov     R7, #3
B1:EDD7 12 F3 52    lcall   B1_F352
B1:EDDA 7B FF       mov     R3, #0xFF
B1:EDDC 7D EB       mov     R5, #0xEB ; 'Ù'
B1:EDDE 7C 01       mov     R4, #1
B1:EDE0 74 01       mov     A, #1
B1:EDE2 FF          mov     R7, A
B1:EDE3 FE          mov     R6, A
B1:EDE4 12 06 5B    lcall   OSD_DISpMSG2_B1BS
B1:EDE7 7F 0E       mov     R7, #0xE
B1:EDE9 12 06 F1    lcall   B1_BS_172_B4_EE0F
B1:EDEC 12 D4 17    lcall   SetMeg4SubtitleParams
B1:EDEF 7F 11       mov     R7, #0x11
B1:EDF1 12 08 17    lcall   OSD_TextInit_B1BS
B1:EDF4 7F 11       mov     R7, #0x11
B1:EDF6 12 08 1D    lcall   B1_BS_222_B3_EFBB
B1:EDF9 22          ret
B1:EDF9             ; End of function Sub_Style


Note a chamada para SetMeg4SubtitleParams.

Agora, o complemento (Sub_Style_2) em OSD_Text_Init:

B3:593C             Sub_Style_2:                  ; DATA XREF: OSD_Text_Init+63o
B3:593C 90 FB 88    mov     DPTR, #XRAM_FB88      ; FB88 sempre será 11 nesta rotina
B3:593F E0          movx    A, @DPTR
B3:5940 FF          mov     R7, A
B3:5941 D2 45       setb    RAM_28.5
B3:5943 12 28 40    lcall   OSD_Text_Params_ARM
B3:5946 90 FB 88    mov     DPTR, #XRAM_FB88      ; Armazena o número da janela (OSD_Text_Init)
B3:5949 E0          movx    A, @DPTR
B3:594A FF          mov     R7, A
B3:594B 12 6C EF    lcall   OSD_Text_Params
B3:594E 90 FB 88    mov     DPTR, #XRAM_FB88      ; Armazena o número da janela (OSD_Text_Init)
B3:5951 E0          movx    A, @DPTR
B3:5952 FF          mov     R7, A
B3:5953 E4          clr     A
B3:5954 90 FB A5    mov     DPTR, #XRAM_FBA5      ; OSD_Colors
B3:5957 F0          movx    @DPTR, A
B3:5958 A3          inc     DPTR
B3:5959 74 02       mov     A, #2
B3:595B F0          movx    @DPTR, A
B3:595C 7B 03       mov     R3, #3
B3:595E E4          clr     A
B3:595F FD          mov     R5, A
B3:5960 12 D1 B9    lcall   OSD_Text_Color
B3:5963 90 FB 88    mov     DPTR, #XRAM_FB88      ; Armazena o número da janela (OSD_Text_Init)
B3:5966 E0          movx    A, @DPTR
B3:5967 FF          mov     R7, A
B3:5968 E4          clr     A
B3:5969 FD          mov     R5, A
B3:596A 02 EC 82    ljmp    OSD_TextInit_END


Note que é a mesma rotina encontrada no DVP5100. Eu já testei o suporte ao patch para a mudança de cor da fonte e funcionou como esperado. Mudando esta rotina podemos ter fontes normais também para o DVP_3040K.

Sub_Style chama uma versão estranha de SetMpeg4SubtitleParams, que é uma mistura da rotina que já conhecemos, com as rotinas de escolha de fontes da Philips:

B1:D417             ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
B1:D417
B1:D417
B1:D417             SetMeg4SubtitleParams:        ; CODE XREF: Sub_Style+29p
B1:D417                                           ; BankSw_335_B1_F4CB:B1_F7D9p
B1:D417 E4          clr     A
B1:D418 90 FB ED    mov     DPTR, #XRAM_FBED      ; Coordenada Horizontal (HI)
B1:D41B F0          movx    @DPTR, A
B1:D41C A3          inc     DPTR
B1:D41D F0          movx    @DPTR, A
B1:D41E 90 FB F0    mov     DPTR, #XRAM_FBF0      ; Coordenada Vertical (HI)
B1:D421 F0          movx    @DPTR, A
B1:D422 A3          inc     DPTR
B1:D423 F0          movx    @DPTR, A
B1:D424 90 FB F4    mov     DPTR, #XRAM_FBF4      ; wX2.high
B1:D427 74 02       mov     A, #2
B1:D429 F0          movx    @DPTR, A
B1:D42A A3          inc     DPTR
B1:D42B 74 30       mov     A, #0x30 ; '0'        ; 0x230=560
B1:D42D F0          movx    @DPTR, A
B1:D42E 90 FB F8    mov     DPTR, #XRAM_FBF8      ; wY2.high (define a altura)
B1:D431 E4          clr     A
B1:D432 F0          movx    @DPTR, A
B1:D433 A3          inc     DPTR
B1:D434 74 60       mov     A, #0x60 ; '`'        ; Altura da janela
B1:D436 F0          movx    @DPTR, A
B1:D437 E4          clr     A
B1:D438 FD          mov     R5, A
B1:D439 7F 17       mov     R7, #0x17
B1:D43B 7E 01       mov     R6, #1
B1:D43D 12 05 F5    lcall   ARM_PutChar_B1BS
B1:D440 7F 03       mov     R7, #3                ; Este ponto define a fonte usada nas legendas
B1:D442 12 08 4D    lcall   OSD_SetFont?_B1BS
B1:D445 E4          clr     A
B1:D446 90 FB 5F    mov     DPTR, #XRAM_FB5F      ; Espaço entre linhas
B1:D449 F0          movx    @DPTR, A
B1:D44A 7B 09       mov     R3, #9                ; 9=Todos 256 caracteres + Bottom align
B1:D44C 7D 01       mov     R5, #1                ; alinhamento = 0x00 (esquerda), 0x01 (Centro), 0x02 (Direita)
B1:D44E 7F 11       mov     R7, #0x11             ; Janela da legenda
B1:D450 12 92 42    lcall   PSB_Set_Param
B1:D453 7F 59       mov     R7, #0x59 ; 'Y'       ; Verifica "DivX Subtitle" na eeprom
B1:D455 7E 00       mov     R6, #0
B1:D457 12 04 E7    lcall   Pref_Getchar_B1BS
B1:D45A EF          mov     A, R7                 ; A sempre será zero
B1:D45B 24 FE       add     A, #0xFE ; '¦'
B1:D45D 60 11       jz      B1_D470               ; Dependendo da fonte, faria uma outra escolha de parâmetros
B1:D45F 14          dec     A
B1:D460 60 09       jz      B1_D46B
B1:D462 24 02       add     A, #2
B1:D464 70 18       jnz     B1_D47E
B1:D466 7F 05       mov     R7, #5
B1:D468 02 08 4D    ljmp    OSD_SetFont?_B1BS
B1:D46B             ; ---------------------------------------------------------------------------
B1:D46B
B1:D46B             B1_D46B:                      ; CODE XREF: SetMeg4SubtitleParams+49j
B1:D46B 7F 07       mov     R7, #7
B1:D46D 02 08 4D    ljmp    OSD_SetFont?_B1BS
B1:D470             ; ---------------------------------------------------------------------------
B1:D470
B1:D470             B1_D470:                      ; CODE XREF: SetMeg4SubtitleParams+46j
B1:D470 E4          clr     A                     ; Este trecho nunca é chamado, porque o número da fonte nunca coincide
B1:D471 90 FB 5F    mov     DPTR, #XRAM_FB5F      ; Espaço entre linhas
B1:D474 F0          movx    @DPTR, A
B1:D475 7B 01       mov     R3, #1
B1:D477 7D 01       mov     R5, #1                ; alinhamento = 0x00 (esquerda), 0x01 (Centro)
B1:D479 7F 11       mov     R7, #0x11             ; Janela da legenda
B1:D47B 12 92 42    lcall   PSB_Set_Param
B1:D47E
B1:D47E             B1_D47E:                      ; CODE XREF: SetMeg4SubtitleParams+4Dj
B1:D47E 22          ret
B1:D47E             ; End of function SetMeg4SubtitleParams


Note o ponto destacado em vermelho. Mudando seu valor podemos escolher a fonte usada nas legendas Eu já testei selecionando duas fontes mas talvez não dê para selecionar muito mais que isso por causa da limitação no tamanho deste firmware, que só pode ter até 1MB.

A seleção de fontes, como no DVP5960 e no DVP5965, está completamente desativada porque o valor na eeprom é sempre zero. Apagando o código inoperante deve sobrar espaço suficiente em SetMeg4SubtitleParams para fazer o patch de escolha de altura. Por sorte, existe também bastante espaço livre no banco 2 que podemos usar para criar um menu de seleção de fontes e cores tão comlpeto quanto o que fiz para o Proview DVP-858. Faltam apenas os endereços de eeprom extras para armazenar a cor e a altura.


« Última modificação: Agosto 19, 2007, 05:37:14 am por Jefferson »
http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware: log de descobertas
« Responder #178 Online: Agosto 19, 2007, 05:59:37 am »
Como encontrar OSD_SetFont em aparelhos Philips

  • DVP5100
  • DVP5140
  • DVP3040K
  • PET725

C2 AF 30 ? 0A 90 F8 86 E0 30 E3 03 20 ? F6 90 F8 E0
E4 F0 A3 74 37 F0 A3 EF F0 30 ? 0D 90 F8 60 E0 20 E5 F9 90 F8 86 74 08 F0 D2 AF 22

  • DVP5980
  • DVP5965
  • DVP5960

A rotina é radicalmente diferente

E4 FD 7F E0 FE 12 19 ? 7D 37 7F E1 7E 00 12 19 ? 90 FB ? E0 FD 7F E2 7E 00
12 19 ? 30 ? 14 7F 60 7E 00 12 19 ? EF 20 E5 F5 7D 08 7F 86 7E 00 12 19 ? D2 AF 22


Exemplo do DVP3040K:

B3:F045             OSD_SetFont:                  ; CODE XREF: B3_9091+6Fp
B3:F045                                           ; DATA XREF: B0:OSD_SetFont?_B0BSo ...
B3:F045 C2 AF       clr     IEN0.7                ; Interrupt Enable Register 0
B3:F047 30 1C 0A    jnb     RAM_23.4, B3_F054
B3:F04A
B3:F04A             B3_F04A:                      ; CODE XREF: OSD_SetFont+Cj
B3:F04A 90 F8 86    mov     DPTR, #BIM_ASSI       ; Assert RISC Interrupt Register
B3:F04D E0          movx    A, @DPTR
B3:F04E 30 E3 03    jnb     ACC.3, B3_F054        ; Accumulator
B3:F051 20 1C F6    jb      RAM_23.4, B3_F04A
B3:F054
B3:F054             B3_F054:                      ; CODE XREF: OSD_SetFont+2j
B3:F054                                           ; OSD_SetFont+9j
B3:F054 90 F8 E0    mov     DPTR, #BIM_GPR0       ; General Purpose Registers 0
B3:F057 E4          clr     A
B3:F058 F0          movx    @DPTR, A
B3:F059 A3          inc     DPTR
B3:F05A 74 37       mov     A, #0x37 ; '7'
B3:F05C F0          movx    @DPTR, A
B3:F05D A3          inc     DPTR
B3:F05E EF          mov     A, R7
B3:F05F F0          movx    @DPTR, A
B3:F060 30 1C 0D    jnb     RAM_23.4, B3_F070
B3:F063
B3:F063             B3_F063:                      ; CODE XREF: OSD_SetFont+22j
B3:F063 90 F8 60    mov     DPTR, #BIM_STAT
B3:F066 E0          movx    A, @DPTR
B3:F067 20 E5 F9    jb      ACC.5, B3_F063        ; Accumulator
B3:F06A 90 F8 86    mov     DPTR, #BIM_ASSI       ; Assert RISC Interrupt Register
B3:F06D 74 08       mov     A, #8
B3:F06F F0          movx    @DPTR, A
B3:F070
B3:F070             B3_F070:                      ; CODE XREF: OSD_SetFont+1Bj
B3:F070 D2 AF       setb    IEN0.7                ; Interrupt Enable Register 0
B3:F072 22          ret
B3:F072             ; End of function OSD_SetFont



Exemplo do DVP5965[/b]

B3:E9FE             OSD_SetFont:                  ; CODE XREF: B3_99EC+F8p
B3:E9FE                                           ; DATA XREF: B0:B0_BS_240_B3_E9FEo ...
B3:E9FE 90 FB B6    mov     DPTR, #XRAM_FBB6
B3:EA01 EF          mov     A, R7
B3:EA02 F0          movx    @DPTR, A
B3:EA03 C2 AF       clr     IEN0.7                ; Interrupt Enable Register 0
B3:EA05 30 1E 0E    jnb     RAM_23.6, B3_EA16
B3:EA08
B3:EA08             B3_EA08:                      ; CODE XREF: OSD_SetFont+15j
B3:EA08 7F 86       mov     R7, #0x86 ; 'å'
B3:EA0A 7E 00       mov     R6, #0
B3:EA0C 12 19 3E    lcall   B3_BS_1_B0_F320
B3:EA0F EF          mov     A, R7
B3:EA10 30 E3 03    jnb     ACC.3, B3_EA16        ; Accumulator
B3:EA13 20 1E F2    jb      RAM_23.6, B3_EA08
B3:EA16
B3:EA16             B3_EA16:                      ; CODE XREF: OSD_SetFont+7j
B3:EA16                                           ; OSD_SetFont+12j
B3:EA16 E4          clr     A
B3:EA17 FD          mov     R5, A
B3:EA18 7F E0       mov     R7, #0xE0 ; 'Ó'
B3:EA1A FE          mov     R6, A
B3:EA1B 12 19 50    lcall   B3_BS_4_B0_F32C
B3:EA1E 7D 37       mov     R5, #0x37 ; '7'
B3:EA20 7F E1       mov     R7, #0xE1 ; 'ß'
B3:EA22 7E 00       mov     R6, #0
B3:EA24 12 19 50    lcall   B3_BS_4_B0_F32C
B3:EA27 90 FB B6    mov     DPTR, #XRAM_FBB6
B3:EA2A E0          movx    A, @DPTR
B3:EA2B FD          mov     R5, A
B3:EA2C 7F E2       mov     R7, #0xE2 ; 'Ô'
B3:EA2E 7E 00       mov     R6, #0
B3:EA30 12 19 50    lcall   B3_BS_4_B0_F32C
B3:EA33 30 1E 14    jnb     RAM_23.6, B3_EA4A
B3:EA36
B3:EA36             B3_EA36:                      ; CODE XREF: OSD_SetFont+40j
B3:EA36 7F 60       mov     R7, #0x60 ; '`'
B3:EA38 7E 00       mov     R6, #0
B3:EA3A 12 19 3E    lcall   B3_BS_1_B0_F320
B3:EA3D EF          mov     A, R7
B3:EA3E 20 E5 F5    jb      ACC.5, B3_EA36        ; Accumulator
B3:EA41 7D 08       mov     R5, #8
B3:EA43 7F 86       mov     R7, #0x86 ; 'å'
B3:EA45 7E 00       mov     R6, #0
B3:EA47 12 19 50    lcall   B3_BS_4_B0_F32C
B3:EA4A
B3:EA4A             B3_EA4A:                      ; CODE XREF: OSD_SetFont+35j
B3:EA4A D2 AF       setb    IEN0.7                ; Interrupt Enable Register 0
B3:EA4C 22          ret
B3:EA4C             ; End of function OSD_SetFont


Localizar OSD_SetFont foi essencial para que eu pudesse localizar Sub_style no DVP3040K, no Pet725 e no DVP5140.

« Última modificação: Agosto 19, 2007, 07:30:31 am por Jefferson »
http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

Offline Jefferson

  • Zelador
  • Hero Member
  • *****
  • Mensagens: 1854
  • Aprovação: +0/-0
    • Ver Perfil
    • http://ryan.com.br
Re: Firmware: log de descobertas
« Responder #179 Online: Agosto 19, 2007, 06:07:02 am »
SUB_Style do Philips PET_725


B1:C16B             Sub_Style:                    ; CODE XREF: B1_D2D5+31p
B1:C16B 90 FB AF    mov     DPTR, #XRAM_FBAF
B1:C16E EE          mov     A, R6
B1:C16F F0          movx    @DPTR, A
B1:C170 A3          inc     DPTR
B1:C171 EF          mov     A, R7
B1:C172 F0          movx    @DPTR, A
B1:C173 7F 0F       mov     R7, #0xF
B1:C175 12 06 4F    lcall   B1_BS_145_B3_DE0F
B1:C175
B1:C178 7F 0E       mov     R7, #0xE
B1:C17A 12 06 4F    lcall   B1_BS_145_B3_DE0F
B1:C17A
B1:C17D 7F 01       mov     R7, #1
B1:C17F 12 06 4F    lcall   B1_BS_145_B3_DE0F
B1:C17F
B1:C182 7F 04       mov     R7, #4
B1:C184 12 05 0B    lcall   B1_BS_91_B3_2949
B1:C184
B1:C187 7F 02       mov     R7, #2
B1:C189 12 05 FB    lcall   OSD_TextInit_B1BS
B1:C189
B1:C18C 7F 02       mov     R7, #2
B1:C18E 12 06 01    lcall   B1_BS_132_B3_E31B
B1:C18E
B1:C191 7F 03       mov     R7, #3
B1:C193 12 DD 55    lcall   B1_DD55
B1:C193
B1:C196 E4          clr     A
B1:C197 FF          mov     R7, A
B1:C198 12 06 49    lcall   OSD_SetFont_B1BS
B1:C198
B1:C19B D2 49       setb    RAM_29.1
B1:C19D 7F 12       mov     R7, #0x12
B1:C19F 12 05 DD    lcall   B1_BS_126_B3_400F
B1:C19F
B1:C1A2 7F 12       mov     R7, #0x12
B1:C1A4 12 05 E3    lcall   B1_BS_127_B3_5B71
B1:C1A4
B1:C1A7 90 FB F1    mov     DPTR, #XRAM_FBF1      ; OSD_Colors
B1:C1AA 74 06       mov     A, #6                 ; Cor de contorno = 6
B1:C1AC F0          movx    @DPTR, A
B1:C1AD A3          inc     DPTR
B1:C1AE 74 02       mov     A, #2                 ; Cor do preenchimento = 2
B1:C1B0 F0          movx    @DPTR, A
B1:C1B1 7B 06       mov     R3, #6                ; Cor do background
B1:C1B3 E4          clr     A
B1:C1B4 FD          mov     R5, A
B1:C1B5 7F 12       mov     R7, #0x12             ; Janela
B1:C1B7 12 05 1D    lcall   OSD_TextColor_B1BS
B1:C1B7
B1:C1BA E4          clr     A
B1:C1BB FD          mov     R5, A
B1:C1BC 7F 12       mov     R7, #0x12
B1:C1BE 12 06 9D    lcall   B1_BS_158_B3_E074
B1:C1BE
B1:C1C1 7F 12       mov     R7, #0x12
B1:C1C3 12 05 FB    lcall   OSD_TextInit_B1BS
B1:C1C3
B1:C1C6 7F 12       mov     R7, #0x12
B1:C1C8 12 06 01    lcall   B1_BS_132_B3_E31B
B1:C1C8
B1:C1CB 90 FC 71    mov     DPTR, #XRAM_FC71
B1:C1CE E0          movx    A, @DPTR
B1:C1CF 54 C7       anl     A, #0xC7
B1:C1D1 F0          movx    @DPTR, A
B1:C1D2 22          ret
B1:C1D2
B1:C1D2             ; End of function Sub_Style


Como o PET725 tem espaço sobrando, com essa informação já é possível eliminar o background (tornando as fontes "normais") e criar menus de escolha de fontes e cores.

Mesmo sem ter o trabalho de fazer menus já dá para separar a fonte das legendas da usada no browser e corrigir as cores da fonte.

Note que pode existir uma Sub_Style_Sec, que não encontrei ainda.
« Última modificação: Agosto 19, 2007, 06:10:08 am por Jefferson »
http://jefferson-ryan.blogspot.com
http://ryan.com.br

Se o que você escreve não merece sua atenção, vai merecer a atenção de quem?!

FORUM.RYAN.COM.BR

Re: Firmware: log de descobertas
« Responder #179 Online: Agosto 19, 2007, 06:07:02 am »