0 Members and 2 Guests are viewing this topic.
7F 71 mov R7, #0x71 ; 'q' ; Endereço 0x71 da eeprom7E 00 mov R6, #012 19 E4 lcall Pref_Getchar_B1BS
EF mov A, R7FD mov R5, A90 FB A4 mov DPTR, #XRAM_FBA4
74 02 mov A, #2F0 movx @DPTR, AA3 inc DPTRED mov A, R5F0 movx @DPTR, A
E4 clr A7B 03 mov R3, #3 FD mov R5, A
90 FB 8D mov DPTR, #XRAM_FB8D ; Window_ID?E0 movx A, @DPTRFF mov R7, A22 ret
B3:545E Sub_StyleSec: ; DATA XREF: BankSw_223_B3_519C+63oB3:545E 90 FB 8D mov DPTR, #XRAM_FB8D ; Window_ID?B3:5461 E0 movx A, @DPTRB3:5462 FF mov R7, AB3:5463 D2 75 setb RAM_2E.5B3:5465 12 28 F1 lcall BankSw_217_B3_28F1B3:5468 90 FB 8D mov DPTR, #XRAM_FB8D ; Window_ID?B3:546B E0 movx A, @DPTRB3:546C FF mov R7, AB3:546D 12 68 22 lcall BankSw_218_B3_6822B3:5470 12 xx xx lcall Endereço_da_rotinaB3:5473 nopB3:5474 nopB3:5475 nopB3:5476 nopB3:5479 nopB3:547A nopB3:547B nopB3:547D nopB3:547E nopB3:5480 nopB3:5481 nop B3:5482 12 D4 73 lcall OSD_TextColorB1BS
OBS: (B1:56C0 e B1:FA32) ao inves de mostrar (mov A,) aqui estar aparecendo (mov R7,) isto é normal?
ROM:000879DA E2 4A LDR R2, =0xFFFDFFF8 ; Prohibit Filter MaskROM:000879DA ; bit22=angle, bit21=subtitleROM:000879DA ; bit20=audioROM:000879DA ; bit='0': prohibit disableROM:000879DA ; bit='1': prohibit enable
ROM:00087D64 F8 FF CD FF dword_87D64 DCD 0xFFCDFFF8
ROM:0008799E CA F7 0F F9 BL PATCH_ProhibitFilter
ROM:00051BC0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ROM:00051BC0ROM:00051BC0ROM:00051BC0 PATCH_ProhibitFilter ; CODE XREF: sub_8798C+12_pROM:00051BC0 41 7A LDRB R1, [R0,#9]ROM:00051BC2 02 4A LDR R2, =0xFFFFFFCFROM:00051BC4 11 40 AND R1, R2ROM:00051BC6 A1 76 STRB R1, [R4,#0x1A]ROM:00051BC8 70 47 BX LRROM:00051BC8 ; End of function PATCH_ProhibitFilterROM:00051BC8ROM:00051BC8 ; ----------------------------------------------ROM:00051BCA FF DCB 0xFFROM:00051BCB FF DCB 0xFFROM:00051BCC CF FF FF FF dword_51BCC DCD 0xFFFFFFCF ; DATA XREF: PATCH_ProhibitFilter+2_r
Então fiquei restrito à nova máscara. Se alguém tiver alguma sugestão, fico grato.
Archivo_1ROM:22B5 00 3E .word 0x3E ; Y1 = 62ROM:22B7 02 22 .word 0x0222 ; X2 = 546ROM:22B9 00 7C .word 0x7C ; Y2 = 92Archivo_2ROM:22BD 00 5E .word 0x5E ; Y1 = 94ROM:22BF 02 22 .word 0x0222 ; X2 = 546ROM:22C1 00 7C .word 0x7C ; Y2 = 124Archivo_3ROM:22C5 00 7E .word 0x7E ; Y1 = 126ROM:22C7 02 22 .word 0x0222 ; X2 = 546ROM:22C9 00 9C .word 0x9C ; Y2 = 156Archivo_4ROM:22CD 00 9E .word 0x9E ; Y1 = 158ROM:22CF 02 22 .word 0x0222 ; X2 = 546ROM:22D1 00 BC .word 0xBC ; Y2 = 188
Infelizmente ese patch não funciona em todos os casos, mas permite pular trailers, warnings, etcétera, onde anteriormente não era possivel.
ROM:0008799A 01 7A LDRB R1, [R0,#8] ; R1 = Prohibit Byte 3...ROM:0008799E 41 7A LDRB R1, [R0,#9] ; R1 = Prohibit Byte 2...ROM:000879A2 81 7A LDRB R1, [R0,#0xA] ; R1 = Prohibit Byte 1...ROM:000879A6 C0 7A LDRB R0, [R0,#0xB] ; R1 = Prohibit Byte 0...ROM:000879CC 08 43 ORR R0, R1...ROM:000879F4 08 43 ORR R0, R1...ROM:00087D64 F8 FF FD FF dword_87D64 DCD 0xFFFDFFF8
ROM:0008799A 00 21 MOV R1, #0...ROM:0008799E 00 21 MOV R1, #0...ROM:000879A2 00 21 MOV R1, #0...ROM:000879A6 00 21 MOV R1, #0...ROM:000879CC 00 21 MOV R1, #0...ROM:000879F4 00 21 MOV R1, #0...ROM:00087D64 F8 FF CD FF dword_87D64 DCD 0xFFCDFFF8
B3:BE2E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦B3:BE2EB3:BE2EB3:BE2E vPlayerShowLogo: ; DATA XREF: B0:B0_BS_162_B3_BE2EoB3:BE2E ; vPlayerShowLogoB1_BSo ...B3:BE2E 90 FB B4 mov DPTR, #XRAM_FBB4B3:BE31 EF mov A, R7B3:BE32 F0 movx @DPTR, AB3:BE33 A3 inc DPTRB3:BE34 EC mov A, R4B3:BE35 F0 movx @DPTR, AB3:BE36 A3 inc DPTRB3:BE37 ED mov A, R5B3:BE38 F0 movx @DPTR, AB3:BE39 90 FB B4 mov DPTR, #XRAM_FBB4B3:BE3C E0 movx A, @DPTRB3:BE3D FF mov R7, AB3:BE3E 64 04 xrl A, #4B3:BE40 70 03 jnz B3_BE45B3:BE42 02 BE F1 ljmp B3_BEF1B3:BE45 ; ---------------------------------------------------------------------------B3:BE45B3:BE45 B3_BE45: ; CODE XREF: vPlayerShowLogo+12jB3:BE45 EF mov A, R7B3:BE46 64 03 xrl A, #3B3:BE48 60 03 jz B3_BE4DB3:BE4A 02 BE DD ljmp B3_BEDDB3:BE4D ; ---------------------------------------------------------------------------B3:BE4DB3:BE4D B3_BE4D: ; CODE XREF: vPlayerShowLogo+1AjB3:BE4D 90 FB B6 mov DPTR, #XRAM_FBB6B3:BE50 E0 movx A, @DPTRB3:BE51 54 0F anl A, #0xFB3:BE53 C4 swap AB3:BE54 F8 mov R0, AB3:BE55 54 0F anl A, #0xFB3:BE57 C8 xch A, R0B3:BE58 68 xrl A, R0B3:BE59 FF mov R7, AB3:BE5A E4 clr AB3:BE5B C4 swap AB3:BE5C 54 F0 anl A, #0xF0B3:BE5E 48 orl A, R0B3:BE5F A3 inc DPTRB3:BE60 EF mov A, R7B3:BE61 F0 movx @DPTR, AB3:BE62 FD mov R5, AB3:BE63 7F 50 mov R7, #0x50 ; 'P'B3:BE65 7E 00 mov R6, #0B3:BE67 12 1B A8 lcall B3_BS_104_B0_E9CCB3:BE6A 90 FB B5 mov DPTR, #XRAM_FBB5B3:BE6D E0 movx A, @DPTRB3:BE6E C4 swap AB3:BE6F F8 mov R0, AB3:BE70 54 F0 anl A, #0xF0B3:BE72 C8 xch A, R0B3:BE73 68 xrl A, R0B3:BE74 FE mov R6, AB3:BE75 A3 inc DPTRB3:BE76 E0 movx A, @DPTRB3:BE77 C4 swap AB3:BE78 54 0F anl A, #0xFB3:BE7A 48 orl A, R0B3:BE7B FF mov R7, AB3:BE7C 90 FB B5 mov DPTR, #XRAM_FBB5B3:BE7F EE mov A, R6B3:BE80 F0 movx @DPTR, AB3:BE81 A3 inc DPTRB3:BE82 EF mov A, R7B3:BE83 F0 movx @DPTR, AB3:BE84 54 0F anl A, #0xFB3:BE86 C4 swap AB3:BE87 F8 mov R0, AB3:BE88 54 0F anl A, #0xFB3:BE8A C8 xch A, R0B3:BE8B 68 xrl A, R0B3:BE8C FF mov R7, AB3:BE8D E4 clr AB3:BE8E C4 swap AB3:BE8F 54 F0 anl A, #0xF0B3:BE91 48 orl A, R0B3:BE92 A3 inc DPTRB3:BE93 EF mov A, R7B3:BE94 F0 movx @DPTR, AB3:BE95 FD mov R5, AB3:BE96 7F 51 mov R7, #0x51 ; 'Q'B3:BE98 7E 00 mov R6, #0B3:BE9A 12 1B A8 lcall B3_BS_104_B0_E9CCB3:BE9D 90 FB B5 mov DPTR, #XRAM_FBB5B3:BEA0 E0 movx A, @DPTRB3:BEA1 C4 swap AB3:BEA2 F8 mov R0, AB3:BEA3 54 F0 anl A, #0xF0B3:BEA5 C8 xch A, R0B3:BEA6 68 xrl A, R0B3:BEA7 FE mov R6, AB3:BEA8 A3 inc DPTRB3:BEA9 E0 movx A, @DPTRB3:BEAA C4 swap AB3:BEAB 54 0F anl A, #0xFB3:BEAD 48 orl A, R0B3:BEAE FF mov R7, AB3:BEAF 90 FB B5 mov DPTR, #XRAM_FBB5B3:BEB2 EE mov A, R6B3:BEB3 F0 movx @DPTR, AB3:BEB4 A3 inc DPTRB3:BEB5 EF mov A, R7B3:BEB6 F0 movx @DPTR, AB3:BEB7 54 0F anl A, #0xFB3:BEB9 C4 swap AB3:BEBA F8 mov R0, AB3:BEBB 54 0F anl A, #0xFB3:BEBD C8 xch A, R0B3:BEBE 68 xrl A, R0B3:BEBF FF mov R7, AB3:BEC0 E4 clr AB3:BEC1 C4 swap AB3:BEC2 54 F0 anl A, #0xF0B3:BEC4 48 orl A, R0B3:BEC5 A3 inc DPTRB3:BEC6 EF mov A, R7B3:BEC7 F0 movx @DPTR, AB3:BEC8 FD mov R5, AB3:BEC9 7F 52 mov R7, #0x52 ; 'R'B3:BECB 7E 00 mov R6, #0B3:BECD 12 1B A8 lcall B3_BS_104_B0_E9CCB3:BED0 E4 clr AB3:BED1 90 FB F5 mov DPTR, #XRAM_FBF5B3:BED4 F0 movx @DPTR, AB3:BED5 FB mov R3, AB3:BED6 7D 03 mov R5, #3B3:BED8 7F 30 mov R7, #0x30 ; '0'B3:BEDA 02 DE 81 ljmp BankSw_102_B3_DE81B3:BEDD ; ---------------------------------------------------------------------------B3:BEDDB3:BEDD B3_BEDD: ; CODE XREF: vPlayerShowLogo+1CjB3:BEDD 90 FB B4 mov DPTR, #XRAM_FBB4B3:BEE0 E0 movx A, @DPTRB3:BEE1 FD mov R5, AB3:BEE2 90 FB B6 mov DPTR, #XRAM_FBB6B3:BEE5 E0 movx A, @DPTRB3:BEE6 FB mov R3, AB3:BEE7 E4 clr AB3:BEE8 90 FB F5 mov DPTR, #XRAM_FBF5B3:BEEB F0 movx @DPTR, AB3:BEEC 7F 30 mov R7, #0x30 ; '0'B3:BEEE 12 DE 81 lcall BankSw_102_B3_DE81B3:BEF1B3:BEF1 B3_BEF1: ; CODE XREF: vPlayerShowLogo+14jB3:BEF1 22 retB3:BEF1 ; End of function vPlayerShowLogo
B1:565C MP3_TagDisplay: ; CODE XREF: B1_6AC0:B1_6BF4jB1:565C ; B1_AB8D+B1pB1:565C ; DATA XREF: ...B1:565C E4 clr A ; Rotina de exibiþÒo das TAGS ID3B1:565D 90 FB B3 mov DPTR, #XRAM_FBB3B1:5660 F0 movx @DPTR, AB1:5661 90 FB AC mov DPTR, #XRAM_FBACB1:5664 74 06 mov A, #6 B1:5666 F0 movx @DPTR, AB1:5667 7D 02 mov R5, #2B1:5669 7C 00 mov R4, #0B1:566B 7F 01 mov R7, #1B1:566D 12 1D 04 lcall vPlayerShowLogoB1_BS
Não compreendi onde deve ser modificado na rotina acima (os 3 bytes) e por qual valor.
Para inserir varios background usando o remaker, eu substituo o parte SKIN toda com outra que possui varias imagens MPEG.
O firmware que tem mais imagens MPEG que eu ja vir, é o LG_DK194g , que possui 18 imagens MPEG.
Ryan, você conseguiu que a altura da legenda ficasse selecionavel via menu no Proview?
Primeiramente, obrigado eneris, testei e funcionou aqui. Ryan, eu utilizo o Firefox 2.0.0.6 e o texto aparece todo igual (sem negrito), testei tambem em outro computador com o Internet Explorer 7, e tambem nao é exibido o negrito nos 3 bytes.
Quote from: jmaraujo on July 30, 2007, 09:44:12 AMJefferson, ¿cómo voçê fez as mudanças do seu background? ¿Foi "a olho" mesmo, ou voçê calculou as coordenadas?Foi a olho. Eu fiz umas 4 imagens até posicionar corretamente.
Jefferson, ¿cómo voçê fez as mudanças do seu background? ¿Foi "a olho" mesmo, ou voçê calculou as coordenadas?
Acabo de perceber que no mtkModToolbox tem uma seção ("Dedução de coordenadas com auxílio de screenshot") que resulta muito útil para este tipo de tarefas...Com essa ajuda fica bem mais fácil.
Aquela seção era só um experimento. Se você achou úitl então vai babar com o que eu estou preparando, neste exato momento
Excelente noticia! Se planejar tradução, novamente me ofereço como voluntario para traduzir ao espanhol...
B4:83A2B4:83A2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦B4:83A2B4:83A2B4:83A2 BankSw_240_B4_83A2: ; DATA XREF: B0:B0_BS_240_B4_83A2oB4:83A2 ; B1_BS_240_B4_83A2o ...B4:83A2 90 FB A0 mov DPTR, #XRAM_FBA0B4:83A5 EC mov A, R4B4:83A6 F0 movx @DPTR, AB4:83A7 A3 inc DPTRB4:83A8 ED mov A, R5B4:83A9 F0 movx @DPTR, AB4:83AA CB xch A, R3B4:83AB EF mov A, R7B4:83AC CB xch A, R3B4:83AD CA xch A, R2B4:83AE EE mov A, R6B4:83AF CA xch A, R2B4:83B0 22 retB4:83B0 ; End of function BankSw_240_B4_83A2B4:83B0B4:83B1 ; ---------------------------------------------------------------------------B4:83B1 90 FB A0 mov DPTR, #XRAM_FBA0 ; Função orfã!!!!!!!!!!!!!B4:83B4 E0 movx A, @DPTRB4:83B5 FC mov R4, AB4:83B6 A3 inc DPTRB4:83B7 E0 movx A, @DPTRB4:83B8 FD mov R5, AB4:83B9 64 01 xrl A, #1B4:83BB 4C orl A, R4B4:83BC 70 12 jnz B4_83D0B4:83BE 90 FB A4 mov DPTR, #XRAM_FBA4B4:83C1 F0 movx @DPTR, AB4:83C2 A3 inc DPTRB4:83C3 74 B6 mov A, #0xB6 ; 'Â'B4:83C5 F0 movx @DPTR, AB4:83C6 E4 clr AB4:83C7 90 FB A2 mov DPTR, #XRAM_FBA2B4:83CA F0 movx @DPTR, AB4:83CB A3 inc DPTRB4:83CC F0 movx @DPTR, AB4:83CD 02 84 8A ljmp DIR_DispScrollBar
B4:6602 ; ---------------------------------------------------------------------------B4:6602 ; START OF FUNCTION CHUNK FOR BankSw_210_B4_DD71B4:6602B4:6602 BankSw_214_B4_6602: ; CODE XREF: BankSw_210_B4_DD71+2jB4:6602 ; DATA XREF: B0:B0_BS_214_B4_6602o ...B4:6602 90 FB 9D mov DPTR, #XRAM_FB9DB4:6605 EC mov A, R4B4:6606 F0 movx @DPTR, AB4:6607 A3 inc DPTRB4:6608 ED mov A, R5B4:6609 F0 movx @DPTR, AB4:660A CB xch A, R3B4:660B EF mov A, R7B4:660C CB xch A, R3B4:660D CA xch A, R2B4:660E EE mov A, R6B4:660F CA xch A, R2B4:6610 90 FB 9D mov DPTR, #XRAM_FB9DB4:6613 E0 movx A, @DPTRB4:6614 FE mov R6, AB4:6615 A3 inc DPTRB4:6616 E0 movx A, @DPTRB4:6617 FF mov R7, AB4:6618 4E orl A, R6B4:6619 70 03 jnz B4_661EB4:661B 02 67 7D ljmp B4_677DB4:661E ; ---------------------------------------------------------------------------B4:661EB4:661E B4_661E: ; CODE XREF: BankSw_210_B4_DD71-7758jB4:661E C3 clr CB4:661F EF mov A, R7B4:6620 9B subb A, R3B4:6621 EE mov A, R6B4:6622 9A subb A, R2B4:6623 50 03 jnc B4_6628B4:6625 02 67 7D ljmp B4_677DB4:6628 ; ---------------------------------------------------------------------------B4:6628B4:6628 B4_6628: ; CODE XREF: BankSw_210_B4_DD71-774EjB4:6628 90 FB 9D mov DPTR, #XRAM_FB9DB4:662B E0 movx A, @DPTRB4:662C FC mov R4, AB4:662D A3 inc DPTRB4:662E E0 movx A, @DPTRB4:662F FD mov R5, AB4:6630 64 01 xrl A, #1B4:6632 4C orl A, R4B4:6633 70 12 jnz B4_6647B4:6635 90 FB A1 mov DPTR, #XRAM_FBA1B4:6638 F0 movx @DPTR, AB4:6639 A3 inc DPTRB4:663A 74 B6 mov A, #0xB6 ; 'Â'B4:663C F0 movx @DPTR, AB4:663D E4 clr AB4:663E 90 FB 9F mov DPTR, #XRAM_FB9FB4:6641 F0 movx @DPTR, AB4:6642 A3 inc DPTRB4:6643 F0 movx @DPTR, AB4:6644 02 67 01 ljmp Dir_DispScrollBarB4:6647 ; ---------------------------------------------------------------------------B4:6647
Como ja disse, anteriormente não tinha percebido esse comportamento porque o máximo do firmware era 42 (não fazía muita diferença). Agora que ampliei o número de caracteres para 50 o problema ficou evidente... ¿Voçê tem ideia de quál possa ser esse problema?
A minha outra dúvida é relativa a "selection bar": Agora que os arquivos ficam um pouco mais acima no filebrowser, estou tendo um comportamento estranho da "selection bar" do filebrowser:
E meus testes estão limitados, porque o meu único DVP5100 que está funcionando não lê nem CD-RW nem DVDs. Além disso, por algum estranho motivo não exibe mais pastas, não importa que firmware eu coloque nele. Todos os arquivos ficam misturados na raiz.
Sem menu: Selecione esta função para exibir todos os arquivos contidos no CD.Com menu: Selecione esta função para exibir somente o menu de pastas do CD.
¿Tem certeza que não é na configuração, na opção "Nav mp3/jpeg"? (PÁG. PREFERÊNCIAS -> Nav MP3/JPEG).
Ryan, a string hexa pode ser inserida apenas em 2EC00 se sim, qual a razão? Caso eu possa inserir onde eu quiser no banco 2 a string hexa, preciso fazer alguma alteração em outro lugar?help
Uma dúvida: Movendo a rotina FF00 para outro endereço é necessário alguma mudança na string hexa?
Quote from: eneris on August 02, 2007, 07:13:51 PMUma dúvida: Movendo a rotina FF00 para outro endereço é necessário alguma mudança na string hexa?Não. Tirando os endereços de EEPROM, a string do menu é completamente independente da modificação no assembly.
PS: Alterei 3 bytes no ARM e agora conseguir que legendas SRT sejam exibidas no browser, só ainda não encontrei uma funcionalidade pra isso.
B2:3D8A 46 .byte 0x46 ; FB2:3D8B 55 .byte 0x55 ; UB2:3D8C 4C .byte 0x4C ; LB2:3D8D 4C .byte 0x4C ; LB2:3D8E 03 B2_3D8E:.byte 3 ; DATA XREF: BankSw_223_B2_2949:B2_2B0FoB2:3D8E ; BankSw_223_B2_2949+1D6oB2:3D8F 33 .byte 0x33 ; 3B2:3D90 2F .byte 0x2F ; /B2:3D91 34 .byte 0x34 ; 4B2:3D92 03 B2_3D92:.byte 3 ; DATA XREF: BankSw_223_B2_2949:B2_2B58oB2:3D92 ; BankSw_223_B2_2949+21FoB2:3D93 31 .byte 0x31 ; 1B2:3D94 2F .byte 0x2F ; /B2:3D95 32 .byte 0x32 ; 2B2:3D96 03 B2_3D96:.byte 3 ; DATA XREF: BankSw_223_B2_2949:B2_2BA1oB2:3D96 ; BankSw_223_B2_2949+268oB2:3D97 31 .byte 0x31 ; 1B2:3D98 2F .byte 0x2F ; /B2:3D99 34 .byte 0x34 ; 4B2:3D9A 03 B2_3D9A:.byte 3 ; DATA XREF: BankSw_223_B2_2949:B2_2C5DoB2:3D9A ; BankSw_223_B2_2949+324oB2:3D9B 4F .byte 0x4F ; OB2:3D9C 46 .byte 0x46 ; FB2:3D9D 46 .byte 0x46 ; F
B0:E568 Esta rotina retorna "2" se encontrar "DISC UPGRADE" na memóriaB0:E568 "1" se encontrar "MT1369 RESET" e "0" se não encontrar nada.B0:E568B0:E568 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦B0:E568B0:E568B0:E568 B0_E568: ; CODE XREF: B0_E26BpB0:E568 E4 clr A ; Verifica se "MT1369 RESET" está na memóriaB0:E569 F5 35 mov RAM_35, A ; RAM_35 conta as interações pelo loopB0:E56BB0:E56B B0_E56B: ; CODE XREF: B0_E568+1EjB0:E56B E5 35 mov A, RAM_35B0:E56D 24 97 add A, #0x97 ; 'ù'B0:E56F FF mov R7, A ; Primeira passagem: R7=97B0:E570 E4 clr AB0:E571 33 rlc A ; Neste ponto A sempre tem "1"B0:E572 FE mov R6, AB0:E573 12 F3 20 lcall BankSw_1_B0_F320 ; Lê a XRAM, 0xC bytes desde F997, com retorno em R7B0:E576 E5 35 mov A, RAM_35B0:E578 90 18 5B mov DPTR, #B0_185BB0:E57B 93 movc A, @A+DPTRB0:E57C 6F xrl A, R7B0:E57D 70 09 jnz B0_E588 ; Salta se não correspondeB0:E57F 05 35 inc RAM_35B0:E581 E5 35 mov A, RAM_35B0:E583 C3 clr CB0:E584 94 0C subb A, #0xC ; "RESET MT13x9" tem 0xC caracteresB0:E586 40 E3 jc B0_E56BB0:E588B0:E588 B0_E588: ; CODE XREF: B0_E568+15jB0:E588 E5 35 mov A, RAM_35B0:E58A B4 0C 08 cjne A, #0xC, Disc_Upgrade? ; Verifica se o loop chegou a ser completadoB0:E58A ; (todos os caracteres encontrados). Se negativo salta para a próxima.B0:E58A ; Se positivo, encerra.B0:E58D C2 34 clr RAM_26.4 ; Determina o apagamento da stringB0:E58F 12 AE 60 lcall B0_AE60 ; Grava (ou apaga) "MT1369 RESET" de XRAM_F897 a XRAM_F8A2B0:E592 7F 01 mov R7, #1 ; 1 = "MT1369 RESET"B0:E594 22 retB0:E595 ; ---------------------------------------------------------------------------B0:E595B0:E595 Disc_Upgrade?: ; CODE XREF: B0_E568+22jB0:E595 E4 clr A ; verifica se a string "DISC UPGRADE" está na memóriaB0:E596 F5 35 mov RAM_35, A ; RAM_35 conta as interações pelo loopB0:E598B0:E598 B0_E598: ; CODE XREF: B0_E568+4BjB0:E598 E5 35 mov A, RAM_35B0:E59A 24 97 add A, #0x97 ; 'ù'B0:E59C FF mov R7, A ; Primeira passagem: R7=97B0:E59D E4 clr AB0:E59E 33 rlc A ; Neste ponto A sempre tem "1"B0:E59F FE mov R6, AB0:E5A0 12 F3 20 lcall BankSw_1_B0_F320 ; Lê a XRAM, 0xC bytes desde F997, com retorno em R7B0:E5A3 E5 35 mov A, RAM_35B0:E5A5 90 18 67 mov DPTR, #DISC_UPGRADEB0:E5A8 93 movc A, @A+DPTRB0:E5A9 6F xrl A, R7B0:E5AA 70 09 jnz B0_E5B5 ; Salta se não correspondeB0:E5AC 05 35 inc RAM_35B0:E5AE E5 35 mov A, RAM_35B0:E5B0 C3 clr CB0:E5B1 94 0C subb A, #0xC ; "DISC UPGRADE" tem 0xC caracteresB0:E5B3 40 E3 jc B0_E598B0:E5B5B0:E5B5 B0_E5B5: ; CODE XREF: B0_E568+42jB0:E5B5 E5 35 mov A, RAM_35B0:E5B7 B4 0C 08 cjne A, #0xC, B0_E5C2 ; Verifica se o loop chegou a ser completado (todos os caracteres encontrados)B0:E5BA C2 34 clr RAM_26.4 ; Determina o apagamento da stringB0:E5BC 12 AE 60 lcall B0_AE60 ; Grava (ou apaga) "MT1369 RESET" de XRAM_F897 a XRAM_F8A2B0:E5BF 7F 02 mov R7, #2 ; 2= "DISC UPGRADE" estava na memóriaB0:E5C1 22 retB0:E5C2 ; ---------------------------------------------------------------------------B0:E5C2B0:E5C2 B0_E5C2: ; CODE XREF: B0_E568+4FjB0:E5C2 7F 00 mov R7, #0B0:E5C4 22 retB0:E5C4 ; End of function B0_E568
B0:AE60 Se esta rotina for chamada com bit RAM_26.4 setado, aB0:AE60 string será escrita. Se o bit estiver estiver resetado,B0:AE60 os 0xC bytes serão zerados.B0:AE60B0:AE60 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦B0:AE60B0:AE60 ; Grava (ou apaga) "MT1369 RESET" de XRAM_F897 a XRAM_F8A2B0:AE60B0:AE60 B0_AE60: ; CODE XREF: B0_8F1D+E2pB0:AE60 ; B0_8F1D+189j ...B0:AE60 20 34 03 jb RAM_26.4, B0_AE66 ; "1", escreve, "0", apaga.B0:AE63 02 AF 02 ljmp B0_AF02 ; Zera a memória de XRAM_F897 a XRAM_F8A2B0:AE66 ; ---------------------------------------------------------------------------B0:AE66B0:AE66 B0_AE66: ; CODE XREF: B0_AE60jB0:AE66 90 18 5B mov DPTR, #B0_185B ; MB0:AE69 E4 clr AB0:AE6A 93 movc A, @A+DPTRB0:AE6B FD mov R5, AB0:AE6C 7F 97 mov R7, #0x97 ; 'ù'B0:AE6E 7E 00 mov R6, #0B0:AE70 12 F3 2C lcall BankSw_3_B0_F32CB0:AE73 90 18 5C mov DPTR, #B0_185C ; TB0:AE76 E4 clr AB0:AE77 93 movc A, @A+DPTRB0:AE78 FD mov R5, AB0:AE79 7F 98 mov R7, #0x98 ; 'ÿ'B0:AE7B 7E 00 mov R6, #0B0:AE7D 12 F3 2C lcall BankSw_3_B0_F32CB0:AE80 90 18 5D mov DPTR, #B0_185D ; 1B0:AE83 E4 clr AB0:AE84 93 movc A, @A+DPTRB0:AE85 FD mov R5, AB0:AE86 7F 99 mov R7, #0x99 ; 'Ö'B0:AE88 7E 00 mov R6, #0B0:AE8A 12 F3 2C lcall BankSw_3_B0_F32CB0:AE8D 90 18 5E mov DPTR, #B0_185E ; 3B0:AE90 E4 clr AB0:AE91 93 movc A, @A+DPTRB0:AE92 FD mov R5, AB0:AE93 7F 9A mov R7, #0x9A ; 'Ü'B0:AE95 7E 00 mov R6, #0B0:AE97 12 F3 2C lcall BankSw_3_B0_F32CB0:AE9A 90 18 5F mov DPTR, #B0_185F ; 6B0:AE9D E4 clr AB0:AE9E 93 movc A, @A+DPTRB0:AE9F FD mov R5, AB0:AEA0 7F 9B mov R7, #0x9B ; 'ø'B0:AEA2 7E 00 mov R6, #0B0:AEA4 12 F3 2C lcall BankSw_3_B0_F32CB0:AEA7 90 18 60 mov DPTR, #B0_1860 ; 9B0:AEAA E4 clr AB0:AEAB 93 movc A, @A+DPTRB0:AEAC FD mov R5, AB0:AEAD 7F 9C mov R7, #0x9C ; '£'B0:AEAF 7E 00 mov R6, #0B0:AEB1 12 F3 2C lcall BankSw_3_B0_F32CB0:AEB4 90 18 61 mov DPTR, #B0_1861 ; " "B0:AEB7 E4 clr AB0:AEB8 93 movc A, @A+DPTRB0:AEB9 FD mov R5, AB0:AEBA 7F 9D mov R7, #0x9D ; 'Ø'B0:AEBC 7E 00 mov R6, #0B0:AEBE 12 F3 2C lcall BankSw_3_B0_F32CB0:AEC1 90 18 62 mov DPTR, #B0_1862 ; RB0:AEC4 E4 clr AB0:AEC5 93 movc A, @A+DPTRB0:AEC6 FD mov R5, AB0:AEC7 7F 9E mov R7, #0x9E ; '×'B0:AEC9 7E 00 mov R6, #0B0:AECB 12 F3 2C lcall BankSw_3_B0_F32CB0:AECE 90 18 63 mov DPTR, #B0_1863 ; EB0:AED1 E4 clr AB0:AED2 93 movc A, @A+DPTRB0:AED3 FD mov R5, AB0:AED4 7F 9F mov R7, #0x9F ; 'ƒ'B0:AED6 7E 00 mov R6, #0B0:AED8 12 F3 2C lcall BankSw_3_B0_F32CB0:AEDB 90 18 64 mov DPTR, #B0_1864 ; SB0:AEDE E4 clr AB0:AEDF 93 movc A, @A+DPTRB0:AEE0 FD mov R5, AB0:AEE1 7F A0 mov R7, #0xA0 ; 'á'B0:AEE3 7E 00 mov R6, #0B0:AEE5 12 F3 2C lcall BankSw_3_B0_F32CB0:AEE8 90 18 65 mov DPTR, #B0_1865 ; EB0:AEEB E4 clr AB0:AEEC 93 movc A, @A+DPTRB0:AEED FD mov R5, AB0:AEEE 7F A1 mov R7, #0xA1 ; 'í'B0:AEF0 7E 00 mov R6, #0B0:AEF2 12 F3 2C lcall BankSw_3_B0_F32CB0:AEF5 90 18 66 mov DPTR, #B0_1866 ; TB0:AEF8 E4 clr AB0:AEF9 93 movc A, @A+DPTRB0:AEFA FD mov R5, AB0:AEFB 7F A2 mov R7, #0xA2 ; 'ó'B0:AEFD 7E 00 mov R6, #0B0:AEFF 02 F3 2C ljmp BankSw_3_B0_F32C ; Neste ponto os registradores tem a string "MT1369 RESET"B0:AEFF ; Atente para o fato de que aqui a instrução é "ljmp" e não "lcall"B0:AEFF ; Por isso o RET não é necessário (já existe um na rotina)B0:AF02 ; ---------------------------------------------------------------------------B0:AF02B0:AF02 B0_AF02: ; CODE XREF: B0_AE60+3jB0:AF02 E4 clr A ; Zera a memória de XRAM_F897 a XRAM_F8A2B0:AF03 FD mov R5, AB0:AF04 7F 97 mov R7, #0x97 ; 'ù'B0:AF06 FE mov R6, AB0:AF07 12 F3 2C lcall BankSw_3_B0_F32CB0:AF0A E4 clr AB0:AF0B FD mov R5, AB0:AF0C 7F 98 mov R7, #0x98 ; 'ÿ'B0:AF0E FE mov R6, AB0:AF0F 12 F3 2C lcall BankSw_3_B0_F32CB0:AF12 E4 clr AB0:AF13 FD mov R5, AB0:AF14 7F 99 mov R7, #0x99 ; 'Ö'B0:AF16 FE mov R6, AB0:AF17 12 F3 2C lcall BankSw_3_B0_F32CB0:AF1A E4 clr AB0:AF1B FD mov R5, AB0:AF1C 7F 9A mov R7, #0x9A ; 'Ü'B0:AF1E FE mov R6, AB0:AF1F 12 F3 2C lcall BankSw_3_B0_F32CB0:AF22 E4 clr AB0:AF23 FD mov R5, AB0:AF24 7F 9B mov R7, #0x9B ; 'ø'B0:AF26 FE mov R6, AB0:AF27 12 F3 2C lcall BankSw_3_B0_F32CB0:AF2A E4 clr AB0:AF2B FD mov R5, AB0:AF2C 7F 9C mov R7, #0x9C ; '£'B0:AF2E FE mov R6, AB0:AF2F 12 F3 2C lcall BankSw_3_B0_F32CB0:AF32 E4 clr AB0:AF33 FD mov R5, AB0:AF34 7F 9D mov R7, #0x9D ; 'Ø'B0:AF36 FE mov R6, AB0:AF37 12 F3 2C lcall BankSw_3_B0_F32CB0:AF3A E4 clr AB0:AF3B FD mov R5, AB0:AF3C 7F 9E mov R7, #0x9E ; '×'B0:AF3E FE mov R6, AB0:AF3F 12 F3 2C lcall BankSw_3_B0_F32CB0:AF42 E4 clr AB0:AF43 FD mov R5, AB0:AF44 7F 9F mov R7, #0x9F ; 'ƒ'B0:AF46 FE mov R6, AB0:AF47 12 F3 2C lcall BankSw_3_B0_F32CB0:AF4A E4 clr AB0:AF4B FD mov R5, AB0:AF4C 7F A0 mov R7, #0xA0 ; 'á'B0:AF4E FE mov R6, AB0:AF4F 12 F3 2C lcall BankSw_3_B0_F32CB0:AF52 E4 clr AB0:AF53 FD mov R5, AB0:AF54 7F A1 mov R7, #0xA1 ; 'í'B0:AF56 FE mov R6, AB0:AF57 12 F3 2C lcall BankSw_3_B0_F32CB0:AF5A E4 clr AB0:AF5B FD mov R5, AB0:AF5C 7F A2 mov R7, #0xA2 ; 'ó'B0:AF5E FE mov R6, AB0:AF5F 12 F3 2C lcall BankSw_3_B0_F32CB0:AF62 22 retB0:AF62 ; End of function B0_AE60
B0:EAAA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦B0:EAAAB0:EAAAB0:EAAA B0_EAAA: ; CODE XREF: B0_B617+B0pB0:EAAA ; B0_B617+DDp ...B0:EAAA EF mov A, R7B0:EAAB 24 FE add A, #0xFE ; '¦'B0:EAAD 60 22 jz B0_EAD1 ; Grava "DISC UPGRADE" em XRAM_F997B0:EAAF 04 inc AB0:EAB0 70 3E jnz B0_EAF0 ; Apaga os registradores de XRAM_F897 a XRAM_F8A2B0:EAB2 E4 clr A ; Grava "MT1369 RESET" em XRAM_F997B0:EAB3 F5 40 mov RAM_40, AB0:EAB5B0:EAB5 B0_EAB5: ; CODE XREF: B0_EAAA+24jB0:EAB5 E5 40 mov A, RAM_40B0:EAB7 24 97 add A, #0x97 ; 'ù'B0:EAB9 FF mov R7, AB0:EABA E4 clr AB0:EABB 33 rlc AB0:EABC FE mov R6, AB0:EABD E5 40 mov A, RAM_40B0:EABF 90 18 5B mov DPTR, #B0_185BB0:EAC2 93 movc A, @A+DPTRB0:EAC3 FD mov R5, AB0:EAC4 12 F3 2C lcall BankSw_3_B0_F32CB0:EAC7 05 40 inc RAM_40B0:EAC9 E5 40 mov A, RAM_40B0:EACB C3 clr CB0:EACC 94 0C subb A, #0xCB0:EACE 40 E5 jc B0_EAB5B0:EAD0 22 retB0:EAD1 ; ---------------------------------------------------------------------------B0:EAD1B0:EAD1 B0_EAD1: ; CODE XREF: B0_EAAA+3jB0:EAD1 E4 clr A ; Grava "DISC UPGRADE" em XRAM_F997B0:EAD2 F5 40 mov RAM_40, AB0:EAD4B0:EAD4 B0_EAD4: ; CODE XREF: B0_EAAA+43jB0:EAD4 E5 40 mov A, RAM_40B0:EAD6 24 97 add A, #0x97 ; 'ù'B0:EAD8 FF mov R7, AB0:EAD9 E4 clr AB0:EADA 33 rlc AB0:EADB FE mov R6, AB0:EADC E5 40 mov A, RAM_40B0:EADE 90 18 67 mov DPTR, #DISC_UPGRADEB0:EAE1 93 movc A, @A+DPTRB0:EAE2 FD mov R5, AB0:EAE3 12 F3 2C lcall BankSw_3_B0_F32CB0:EAE6 05 40 inc RAM_40B0:EAE8 E5 40 mov A, RAM_40B0:EAEA C3 clr CB0:EAEB 94 0C subb A, #0xCB0:EAED 40 E5 jc B0_EAD4B0:EAEF 22 retB0:EAF0 ; ---------------------------------------------------------------------------B0:EAF0B0:EAF0 B0_EAF0: ; CODE XREF: B0_EAAA+6jB0:EAF0 C2 34 clr RAM_26.4 ; Apaga os registradores de XRAM_F897 a XRAM_F8A2B0:EAF2 12 AE 60 lcall B0_AE60 ; Grava (ou apaga) "MT1369 RESET" de XRAM_F897 a XRAM_F8A2B0:EAF5 22 retB0:EAF5 ; End of function B0_EAAA
B1:F4DD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦B1:F4DDB1:F4DDB1:F4DD SetMPeg4SubtitleParams: ; CODE XREF: BankSw_263_B1_E1E7+10pB1:F4DD E4 clr AB1:F4DE 90 FC 44 mov DPTR, #XRAM_FC44 ; wX1.highB1:F4E1 F0 movx @DPTR, AB1:F4E2 A3 inc DPTRB1:F4E3 F0 movx @DPTR, AB1:F4E4 90 FC 46 mov DPTR, #XRAM_FC46 ; wY1.highB1:F4E7 F0 movx @DPTR, AB1:F4E8 A3 inc DPTRB1:F4E9 F0 movx @DPTR, AB1:F4EA 90 FC 49 mov DPTR, #XRAM_FC49 ; wX2.highB1:F4ED 74 02 mov A, #2B1:F4EF F0 movx @DPTR, AB1:F4F0 A3 inc DPTRB1:F4F1 74 30 mov A, #0x30 ; '0' ; 0x230 = 560B1:F4F3 F0 movx @DPTR, AB1:F4F4 90 FC 4D mov DPTR, #XRAM_FC4D ; wY2.highB1:F4F7 E4 clr AB1:F4F8 F0 movx @DPTR, AB1:F4F9 A3 inc DPTRB1:F4FA 74 5A mov A, #0x5A ; 'Z'B1:F4FC F0 movx @DPTR, AB1:F4FD E4 clr AB1:F4FE 90 FB 8E mov DPTR, #XRAM_FB8E ; Espaço entre linhasB1:F501 F0 movx @DPTR, AB1:F502 7B 08 mov R3, #8 ; Ansi Codepage = 0x08 (all chars)B1:F504 7D 01 mov R5, #1 ; alinhamento = 0x00 (esquerda), 0x01 (Centro)B1:F506 7F 13 mov R7, #0x13 ; Janela da legendaB1:F508 12 1E B8 lcall PSB_Set_Param_B1_BSB1:F50B D3 setb CB1:F50C 22 retB1:F50C ; End of function SetMPeg4SubtitleParams
Porque eu fugi das aulas de programação e lógica no colegial ?
Bom que tal mudar isso pra Patching MediaTek FirmWare From A to Z !
Quer saber qual vai ser a "surpresa" do suposto engenheiro da Proview ?? Um emprego pro Ryan pra trabalhar com FirmWare de DivX
B1:A4EC EF mov A, R7B1:A4ED 70 07 jnz DIR_FB_HasParent?B1:A4EF D2 45 setb RAM_28.5B1:A4F1 12 78 FB lcall Dir_Disp_DirlineB1:A4F4 80 05 sjmp DIR_FB_SetColorB1:A4F6 ; ---------------------------------------------------------------------------B1:A4F6B1:A4F6 DIR_FB_HasParent?: ; CODE XREF: DIR_FileBrowser+6CjB1:A4F6 C2 45 clr RAM_28.5B1:A4F8 12 78 FB lcall Dir_Disp_DirlineB1:A4FBB1:A4FB DIR_FB_SetColor: ; CODE XREF: DIR_FileBrowser+55jB1:A4FB ; DIR_FileBrowser+73jB1:A4FB 90 FD 86 mov DPTR, #XRAM_FD86B1:A4FE E0 movx A, @DPTRB1:A4FF 54 F7 anl A, #0xF7B1:A501 F0 movx @DPTR, AB1:A502 90 FC 07 mov DPTR, #XRAM_FC07 ; OSD_ColorsB1:A505 74 02 mov A, #2B1:A507 F0 movx @DPTR, AB1:A508 A3 inc DPTRB1:A509 04 inc AB1:A50A F0 movx @DPTR, AB1:A50B E4 clr AB1:A50C FB mov R3, AB1:A50D FD mov R5, AB1:A50E 7F 10 mov R7, #0x10B1:A510 12 1D E0 lcall OSD_TextColor_B1BSB1:A513 E4 clr AB1:A514 90 FB 98 mov DPTR, #XRAM_FB98B1:A517 F0 movx @DPTR, A
Alguns Scripts IDAUma coisa que me aborrece terrivelmente é que depois de localizar rotinas em um determinado firmware, é preciso fazer todas as identificações em todos os outros fimrwares compatíveis, incluindo outras versões do mesmo firmware, por isso decidi aprender a fazer alguns scripts do IDA para automatizar as tarefas, assim toda vez que eu abrir um firmware posso rapidamente incluir nele uma parte do que já aprendi com outros.
Jmaraujo você tentou com a nova versão do IDA? Eu vinha recebendo esta mensagem na versão 5.0, dai baixei a nova versão ontem, e testei, e o problema se foi.Tente aí com a versão 5.1 e veja se o problema não é sanado.
B2:C31B Show_ZOOM_MSG: ; CODE XREF: BankSw_485_B2_C2AA+2DjB2:C31B 90 FB 8A mov DPTR, #XRAM_FB8AB2:C31E E0 movx A, @DPTRB2:C31F D3 setb CB2:C320 94 00 subb A, #0B2:C322 40 3D jc B2_C361B2:C324 90 FC AB mov DPTR, #XRAM_FCAB ; Tipo de mídia em execução 3=ISOB2:C327 E0 movx A, @DPTRB2:C328 B4 03 1B cjne A, #3, Show_ZOOM_MSG_DVDB2:C32B 90 FB FC mov DPTR, #XRAM_FBFC ; Aqui é exibida a mensagem do ZOOM para ISOB2:C32E 74 01 mov A, #1B2:C330 F0 movx @DPTR, AB2:C331 A3 inc DPTRB2:C332 74 FB mov A, #0xFB ; '¹'B2:C334 F0 movx @DPTR, AB2:C335 A3 inc DPTRB2:C336 74 8A mov A, #0x8A ; 'è'B2:C338 F0 movx @DPTR, AB2:C339 7B FF mov R3, #0xFF ; Tempo de exibição. "FF": permanenteB2:C33B 7D 29 mov R5, #0x29 ; ')' ; 0x0229 é o código da mensagem de ZOOM. Depende do Language Code.B2:C33D 7C 02 mov R4, #2B2:C33F 7F 15 mov R7, #0x15 ; Os valores em R6 e R7 determinam onde a mensagem será exibidaB2:C33F ; Consulte a aba "OSD Messages Positions" do mtkWindowsB2:C341 7E 00 mov R6, #0B2:C343 02 1E 40 ljmp OSD_DispMsg2_B2_BSB2:C346 ; ---------------------------------------------------------------------------B2:C346B2:C346 Show_ZOOM_MSG_DVD: ; CODE XREF: BankSw_485_B2_C2AA+7EjB2:C346 90 FB FC mov DPTR, #XRAM_FBFC ; Aqui é exibida a mensagem do ZOOM para DVD-VideoB2:C349 74 01 mov A, #1B2:C34B F0 movx @DPTR, AB2:C34C A3 inc DPTRB2:C34D 74 FB mov A, #0xFB ; '¹'B2:C34F F0 movx @DPTR, AB2:C350 A3 inc DPTRB2:C351 74 8A mov A, #0x8A ; 'è'B2:C353 F0 movx @DPTR, AB2:C354 7B FF mov R3, #0xFFB2:C356 7D 29 mov R5, #0x29 ; ')'B2:C358 7C 02 mov R4, #2B2:C35A 7F 08 mov R7, #8B2:C35C 7E 00 mov R6, #0B2:C35E 12 1E 40 lcall OSD_DispMsg2_B2_BSB2:C361B2:C361 B2_C361: ; CODE XREF: BankSw_485_B2_C2AA+78jB2:C361 22 ret
B3:545E Sub_Style_2: ; DATA XREF: OSD_Text_Init+63oB3:545E 90 FB 8D mov DPTR, #XRAM_FB8D ; Guarda número da janela (OSD_TextInit)?B3:5461 E0 movx A, @DPTRB3:5462 FF mov R7, AB3:5463 D2 75 setb RAM_2E.5B3:5465 12 28 F1 lcall OSD_Text_Params_ARMB3:5468 90 FB 8D mov DPTR, #XRAM_FB8D ; Guarda número da janela (OSD_TextInit)?B3:546B E0 movx A, @DPTRB3:546C FF mov R7, AB3:546D 12 68 22 lcall OSD_Text_ParamsB3:5470 90 FB 8D mov DPTR, #XRAM_FB8D ; Guarda número da janela (OSD_TextInit)?B3:5473 E0 movx A, @DPTRB3:5474 FF mov R7, AB3:5475 E4 clr AB3:5476 90 FB A4 mov DPTR, #XRAM_FBA4 ; OSD_ColorsB3:5479 F0 movx @DPTR, AB3:547A A3 inc DPTRB3:547B 74 02 mov A, #2B3:547D F0 movx @DPTR, A ; Cor de contorno=0; cor de preenchimento = 2B3:547E 7B 03 mov R3, #3 ; Cor de backgroundB3:5480 E4 clr AB3:5481 FD mov R5, AB3:5482 12 D4 73 lcall OSD_Text_ColorB3:5485 90 FB 8D mov DPTR, #XRAM_FB8D ; Guarda número da janela (OSD_TextInit)?B3:5488 E0 movx A, @DPTRB3:5489 FF mov R7, AB3:548A E4 clr AB3:548B FD mov R5, AB3:548C 02 EF D7 ljmp OSD_Text_Init_EndB3:548F ; ---------------------------------------------------------------------------
B3:5475 74 03 mov A, #3B3:5477 90 FB A4 mov DPTR, #XRAM_FBA4 ; OSD_ColorsB3:547A F0 movx @DPTR, AB3:547B A3 inc DPTRB3:547C 74 02 mov A, #2B3:547E F0 movx @DPTR, A ; Cor de contorno=3; cor de preenchimento = 2B3:547F E4 clr A B3:5480 FB mov R3, A ; Cor de background=0
B3:545E Sub_Style_2: ; DATA XREF: OSD_Text_Init+63oB3:545E 7F 11 mov R7, #0x11B3:5460 D2 75 setb RAM_2E.5B3:5462 12 28 F1 lcall OSD_Text_Params_ARMB3:5462B3:5465 7F 11 mov R7, #0x11B3:5467 12 68 22 lcall OSD_Text_ParamsB3:5467B3:546A 00 nopB3:546B 00 nopB3:546C 00 nopB3:546D 00 nopB3:546E 00 nopB3:546F 7F 06 mov R7, #6 ; Cor de Preenchimento=6 (azul)B3:5471 90 FB A4 mov DPTR, #XRAM_FBA4 ; OSD_ColorsB3:5474 74 03 mov A, #3 ; Cor de Contorno=3 (preto)B3:5476 F0 movx @DPTR, AB3:5477 A3 inc DPTRB3:5478 EF mov A, R7B3:5479 F0 movx @DPTR, AB3:547A E4 clr AB3:547B FB mov R3, AB3:547C FD mov R5, AB3:547D 7F 11 mov R7, #0x11B3:547F 12 D4 73 lcall OSD_Text_ColorB3:547FB3:5482 7F 11 mov R7, #0x11B3:5484 E4 clr AB3:5485 FD mov R5, AB3:5486 00 nopB3:5487 00 nopB3:5488 00 nopB3:5489 00 nopB3:548A 00 nopB3:548B 00 nopB3:548C 02 EF D7 ljmp OSD_Text_Init_EndB3:548CB3:548F ; ---------------------------------------------------------------------------
7F xx mov R7, #xx ;onde "xx" é o endereço de eeprom7E 00 mov R6, #012 05 D7 lcall Pref_GetChar
B0:2958 ; ---------------------------------------------------------------------------B0:2958B0:2958 B0_BS_688_B3_F49A:B0:2958 90 F4 9A mov DPTR, #BankSw_688_B3_F49AB0:295B 02 18 BF ljmp B0_Bank_3B0:295E ; ---------------------------------------------------------------------------B0:295EB0:295E B0_BS_689_B3_AEB8:B0:295E 90 AE B8 mov DPTR, #set_Volume_2B0:2961 02 18 BF ljmp B0_Bank_3B0:2964 ; ---------------------------------------------------------------------------
90 5B 99 mov DPTR, #5B9902 18 BF ljmp B0_Bank_3
B3:5B87 Sub_Style_Sec: ; DATA XREF: OSD_Text_Init+6BoB3:5B87 7F 12 mov R7, #0x12B3:5B89 D2 75 setb RAM_2E.5B3:5B8B 12 4C F4 lcall OSD_Text_Params_ARMB3:5B8BB3:5B8E 7F 12 mov R7, #0x12B3:5B90 12 72 CE lcall OSD_Text_ParamsB3:5B90B3:5B93 12 5B 98 lcall B3_5B98B3:5B93B3:5B96 80 19 sjmp B3_5BB1B3:5B96B3:5B98 ; ---------------------------------------------------------------------------B3:5B98B3:5B98 B3_5B98: ; CODE XREF: OSD_Text_Init+2D9pB3:5B98 00 nopB3:5B99 00 nopB3:5B9A 00 nopB3:5B9B 00 nopB3:5B9C 00 nopB3:5B9D 7F 02 mov R7, #2 ; PreenchimentoB3:5B9F 90 FC 1E mov DPTR, #XRAM_FC1E ; OSD_ColorsB3:5BA2 74 03 mov A, #3 ; ContornoB3:5BA4 F0 movx @DPTR, AB3:5BA5 A3 inc DPTRB3:5BA6 EF mov A, R7B3:5BA7 F0 movx @DPTR, A ; Preenchimento=2, contorno=3B3:5BA8 E4 clr AB3:5BA9 FB mov R3, AB3:5BAA FD mov R5, AB3:5BAB 7F 12 mov R7, #0x12B3:5BAD 12 C3 50 lcall OSD_Text_ColorB3:5BADB3:5BB0 22 retB3:5BB0B3:5BB1 ; ---------------------------------------------------------------------------B3:5BB1B3:5BB1 B3_5BB1: ; CODE XREF: OSD_Text_Init+2DCjB3:5BB1 7F 12 mov R7, #0x12B3:5BB3 E4 clr AB3:5BB4 FD mov R5, AB3:5BB5 02 E4 1D ljmp OSD_Text_Init_EndB3:5BB5B3:5BB8 ; ---------------------------------------------------------------------------B3:5BB8
B1:D2BC Sub_Style: ; CODE XREF: B1_8883+5CpB1:D2BC EF mov A, R7B1:D2BD 24 FE add A, #0xFE ; '¦'B1:D2BF 60 5B jz B1_D31CB1:D2BFB1:D2C1 14 dec AB1:D2C2 60 58 jz B1_D31CB1:D2C2B1:D2C4 14 dec AB1:D2C5 60 61 jz B1_D328B1:D2C5B1:D2C7 24 03 add A, #3B1:D2C9 70 60 jnz B1_D32BB1:D2C9B1:D2CB E4 clr AB1:D2CC FF mov R7, AB1:D2CD 12 1E EA lcall OSD_SetFont_B1BSB1:D2CDB1:D2D0 D2 75 setb RAM_2E.5B1:D2D2 7F 12 mov R7, #0x12B1:D2D4 12 1D 6A lcall OSD_Text_Params_ARM_B1BSB1:D2D4B1:D2D7 7F 12 mov R7, #0x12B1:D2D9 12 1D 70 lcall OSD_Text_Params_B1BSB1:D2D9B1:D2DC 90 5B 99 mov DPTR, #0x5B99B1:D2DF 02 18 BF ljmp B1_Bank_3B1:D2DFB1:D2DF ; ---------------------------------------------------------------------------B1:D2E2 00 .byte 0B1:D2E3 00 .byte 0B1:D2E4 00 .byte 0B1:D2E5 00 .byte 0B1:D2E6 00 .byte 0B1:D2E7 00 .byte 0B1:D2E8 00 .byte 0B1:D2E9 00 .byte 0B1:D2EA 00 .byte 0B1:D2EB 00 .byte 0B1:D2EC 00 .byte 0B1:D2ED 00 .byte 0B1:D2EE ; ---------------------------------------------------------------------------B1:D2EE E4 clr AB1:D2EF FD mov R5, AB1:D2F0 7F 12 mov R7, #0x12B1:D2F2 12 1F 50 lcall OSD_Text_Init_End_B1BS
B1:E5B3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦B1:E5B3B1:E5B3B1:E5B3 BankSw_681_B1_E5B3: ; DATA XREF: B0:B0_BS_681_B1_E5B3oB1:E5B3 ; B1:B1_BS_681_B1_E5B3o ...B1:E5B3 7F E2 mov R7, #0xE2 ; 'Ô'B1:E5B5 7E 07 mov R6, #7B1:E5B7 12 1B 96 lcall ARM_GetChar_B1_BSB1:E5BA BF 01 05 cjne R7, #1, B1_E5C2B1:E5BD D2 74 setb RAM_2E.4B1:E5BF 12 1D 2E lcall B1_BS_169_B4_AB59B1:E5C2B1:E5C2 B1_E5C2: ; CODE XREF: BankSw_681_B1_E5B3+7jB1:E5C2 7F 44 mov R7, #0x44 ; 'D' ; Verifica o valor de "DivX Subtitle" na eeprom (sempre "0")B1:E5C4 7E 00 mov R6, #0B1:E5C6 12 1B A2 lcall Pref_GetChar_B1BSB1:E5C9 BF 01 07 cjne R7, #1, B1_E5D3B1:E5CC 7F 0B mov R7, #0xB ; Se for "1" (nunca é)B1:E5CE 12 1E EA lcall OSD_SetFont_B1_BSB1:E5D1 80 27 sjmp B1_E5FAB1:E5D3 ; ---------------------------------------------------------------------------B1:E5D3B1:E5D3 B1_E5D3: ; CODE XREF: BankSw_681_B1_E5B3+16jB1:E5D3 7F 44 mov R7, #0x44 ; 'D'B1:E5D5 7E 00 mov R6, #0B1:E5D7 12 1B A2 lcall Pref_GetChar_B1BSB1:E5DA EF mov A, R7B1:E5DB 70 07 jnz B1_E5E4B1:E5DD 7F 0B mov R7, #0xB ; Se for "0" (sempre é)B1:E5DF 12 1E EA lcall OSD_SetFont_B1_BSB1:E5E2 80 16 sjmp B1_E5FAB1:E5E4 ; ---------------------------------------------------------------------------B1:E5E4B1:E5E4 B1_E5E4: ; CODE XREF: BankSw_681_B1_E5B3+28jB1:E5E4 7F 44 mov R7, #0x44 ; 'D'B1:E5E6 7E 00 mov R6, #0B1:E5E8 12 1B A2 lcall Pref_GetChar_B1BSB1:E5EB BF 02 07 cjne R7, #2, B1_E5F5B1:E5EE 7F 0B mov R7, #0xB ; Se for "2" (nunca é)B1:E5F0 12 1E EA lcall OSD_SetFont_B1_BSB1:E5F3 80 05 sjmp B1_E5FAB1:E5F5 ; ---------------------------------------------------------------------------B1:E5F5B1:E5F5 B1_E5F5: ; CODE XREF: BankSw_681_B1_E5B3+38jB1:E5F5 7F 0B mov R7, #0xB ; Se for qualquer valor maior que "2" (nunca é)B1:E5F7 12 1E EA lcall OSD_SetFont_B1_BSB1:E5FAB1:E5FA B1_E5FA: ; CODE XREF: BankSw_681_B1_E5B3+1EjB1:E5FA ; BankSw_681_B1_E5B3+2Fj ...B1:E5FA 7F 12 mov R7, #0x12B1:E5FC 12 1D 7C lcall OSD_Text_Init_B1BSB1:E5FF 7F 12 mov R7, #0x12B1:E601 02 1D 82 ljmp B1_BS_183_B3_E8F5B1:E601 ; End of function BankSw_681_B1_E5B3
B1:E60B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦B1:E60BB1:E60BB1:E60B BankSw_681_B1_E60B: ; DATA XREF: B0:B0_BS_681_B1_E60BoB1:E60B ; B1:B1_BS_681_B1_E60Bo ...B1:E60B 7F E2 mov R7, #0xE2 ; 'Ô'B1:E60D 7E 07 mov R6, #7B1:E60F 12 1B 84 lcall ARM_GetChar_B1_BSB1:E612 BF 01 05 cjne R7, #1, B1_E61AB1:E615 D2 74 setb RAM_2E.4B1:E617 12 1D 1C lcall B1_BS_166_B4_ABBBB1:E61AB1:E61A B1_E61A: ; CODE XREF: BankSw_681_B1_E60B+7jB1:E61A 7F 44 mov R7, #0x44 ; 'D' ; Verifica o valor de "DivX Subtitle" na eeprom (sempre "0")B1:E61C 7E 00 mov R6, #0B1:E61E 12 1B 90 lcall Pref_GetChar_B1BSB1:E621 BF 01 07 cjne R7, #1, B1_E62BB1:E624 7F 0B mov R7, #0xB ; Se for "1" (nunca é)B1:E626 12 1E D8 lcall OSD_SetFont_B1_BSB1:E629 80 27 sjmp B1_E652B1:E62B ; ---------------------------------------------------------------------------B1:E62BB1:E62B B1_E62B: ; CODE XREF: BankSw_681_B1_E60B+16jB1:E62B 7F 44 mov R7, #0x44 ; 'D' ; Verifica o valor de "DivX Subtitle" na eeprom (sempre "0")B1:E62D 7E 00 mov R6, #0B1:E62F 12 1B 90 lcall Pref_GetChar_B1BSB1:E632 EF mov A, R7B1:E633 70 07 jnz B1_E63CB1:E635 7F 0B mov R7, #0xB ; Se for "0" (sempre é)B1:E637 12 1E D8 lcall OSD_SetFont_B1_BSB1:E63A 80 16 sjmp B1_E652B1:E63C ; ---------------------------------------------------------------------------B1:E63CB1:E63C B1_E63C: ; CODE XREF: BankSw_681_B1_E60B+28jB1:E63C 7F 44 mov R7, #0x44 ; 'D' ; Verifica o valor de "DivX Subtitle" na eeprom (sempre "0")B1:E63E 7E 00 mov R6, #0B1:E640 12 1B 90 lcall Pref_GetChar_B1BSB1:E643 BF 02 07 cjne R7, #2, B1_E64DB1:E646 7F 0B mov R7, #0xB ; Se for "2" (nunca é)B1:E648 12 1E D8 lcall OSD_SetFont_B1_BSB1:E64B 80 05 sjmp B1_E652B1:E64D ; ---------------------------------------------------------------------------B1:E64DB1:E64D B1_E64D: ; CODE XREF: BankSw_681_B1_E60B+38jB1:E64D 7F 0B mov R7, #0xB ; Se for qualquer valor maior que "2" (nunca é)B1:E64F 12 1E D8 lcall OSD_SetFont_B1_BSB1:E652B1:E652 B1_E652: ; CODE XREF: BankSw_681_B1_E60B+1EjB1:E652 ; BankSw_681_B1_E60B+2Fj ...B1:E652 7F 12 mov R7, #0x12B1:E654 12 1D 6A lcall OSD_Text_Init_B1BSB1:E657 7F 12 mov R7, #0x12B1:E659 02 1D 70 ljmp B1_BS_180_B3_E9AFB1:E659 ; End of function BankSw_681_B1_E60B
B1:CF79 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦B1:CF79B1:CF79B1:CF79 SUB_Style: ; CODE XREF: B1_DBA6+3EpB1:CF79 90 FB 60 mov DPTR, #XRAM_FB60B1:CF7C EE mov A, R6B1:CF7D F0 movx @DPTR, AB1:CF7E A3 inc DPTRB1:CF7F EF mov A, R7B1:CF80 F0 movx @DPTR, AB1:CF81 7F 03 mov R7, #3B1:CF83 12 07 21 lcall B1_BS_180_B3_11FCB1:CF86 7F 01 mov R7, #1B1:CF88 12 07 21 lcall B1_BS_180_B3_11FCB1:CF8B 7F 03 mov R7, #3B1:CF8D 12 F1 84 lcall B1_F184B1:CF90 7B FF mov R3, #0xFFB1:CF92 7D EB mov R5, #0xEB ; 'Ù'B1:CF94 7C 01 mov R4, #1B1:CF96 74 01 mov A, #1B1:CF98 FF mov R7, AB1:CF99 FE mov R6, AB1:CF9A 12 06 5B lcall OSD_DispMSG2_B1BSB1:CF9D 7F 0E mov R7, #0xEB1:CF9F 12 06 FD lcall B1_BS_174_B4_E80BB1:CFA2 7F 59 mov R7, #0x59 ; 'Y' ; Lê o valor de "DivX Subtitle" na eepromB1:CFA4 7E 00 mov R6, #0B1:CFA6 12 05 D7 lcall Pref_Getchar_B1BSB1:CFA9 BF 01 07 cjne R7, #1, B1_CFB3B1:CFAC 7F 0F mov R7, #0xF ; Se for 1, uso a fonte 0xFB1:CFAE 12 08 59 lcall Sub_SetFont_B1BSB1:CFB1 80 27 sjmp B1_CFDAB1:CFB3 ; ---------------------------------------------------------------------------B1:CFB3B1:CFB3 B1_CFB3: ; CODE XREF: SUB_Style+30jB1:CFB3 7F 59 mov R7, #0x59 ; 'Y' ; Lê o valor de "DivX Subtitle" na eepromB1:CFB5 7E 00 mov R6, #0B1:CFB7 12 05 D7 lcall Pref_Getchar_B1BSB1:CFBA EF mov A, R7B1:CFBB 70 07 jnz B1_CFC4B1:CFBD 7F 0D mov R7, #0xD ; Se for 0, uso a fonte 0xDB1:CFBF 12 08 59 lcall Sub_SetFont_B1BSB1:CFC2 80 16 sjmp B1_CFDAB1:CFC4 ; ---------------------------------------------------------------------------B1:CFC4B1:CFC4 B1_CFC4: ; CODE XREF: SUB_Style+42jB1:CFC4 7F 59 mov R7, #0x59 ; 'Y' ; Lê o valor de "DivX Subtitle" na eepromB1:CFC6 7E 00 mov R6, #0B1:CFC8 12 05 D7 lcall Pref_Getchar_B1BSB1:CFCB BF 02 07 cjne R7, #2, B1_CFD5B1:CFCE 7F 11 mov R7, #0x11 ; Se for 2, uso a fonte 0x11B1:CFD0 12 08 59 lcall Sub_SetFont_B1BSB1:CFD3 80 05 sjmp B1_CFDAB1:CFD5 ; ---------------------------------------------------------------------------B1:CFD5B1:CFD5 B1_CFD5: ; CODE XREF: SUB_Style+52jB1:CFD5 7F 0D mov R7, #0xD ; Se for maior que 2, uso a fonte 0xDB1:CFD7 12 08 59 lcall Sub_SetFont_B1BSB1:CFDAB1:CFDA B1_CFDA: ; CODE XREF: SUB_Style+38jB1:CFDA ; SUB_Style+49j ...B1:CFDA 7F 11 mov R7, #0x11B1:CFDC 12 08 23 lcall OSD_TextInit_B1BSB1:CFDF 7F 11 mov R7, #0x11B1:CFE1 12 08 29 lcall B1_BS_224_B3_F310B1:CFE4 22 retB1:CFE4 ; End of function SUB_Style
B1:CF79 Sub_Style: ; CODE XREF: B1_DBA6+3EpB1:CF79 90 FB 60 mov DPTR, #XRAM_FB60B1:CF7C EE mov A, R6B1:CF7D F0 movx @DPTR, AB1:CF7E A3 inc DPTRB1:CF7F EF mov A, R7B1:CF80 F0 movx @DPTR, AB1:CF81 7F 03 mov R7, #3B1:CF83 12 07 21 lcall B1_BS_180_B3_11FCB1:CF83B1:CF86 7F 01 mov R7, #1B1:CF88 12 07 21 lcall B1_BS_180_B3_11FCB1:CF88B1:CF8B 7F 03 mov R7, #3B1:CF8D 12 F1 84 lcall B1_F184B1:CF8DB1:CF90 7B FF mov R3, #0xFFB1:CF92 7D EB mov R5, #0xEB ; 'Ù'B1:CF94 7C 01 mov R4, #1B1:CF96 74 01 mov A, #1B1:CF98 FF mov R7, AB1:CF99 FE mov R6, AB1:CF9A 12 06 5B lcall OSD_DispMSG2_B1BSB1:CF9AB1:CF9D 7F 0E mov R7, #0xEB1:CF9F 12 06 FD lcall B1_BS_174_B4_E80BB1:CF9FB1:CFA2 7F 59 mov R7, #0x59 ; 'Y' ; Lê o valor de "DivX Subtitle" na eepromB1:CFA4 7E 00 mov R6, #0B1:CFA6 12 05 D7 lcall Pref_Getchar_B1BSB1:CFA6B1:CFA9 12 08 59 lcall Sub_SetFont_B1BS ; Uso diretamente o valor armazenado na eepromB1:CFA9 ; para definir a fonte. Lembre-se de que Pref_GetcharB1:CFA9 ; devolve o valor em R7 e que Sub_SetFont recebeB1:CFA9 ; o valor também em R7. Daí é possível cascatearB1:CFA9 ; as rotinas.B1:CFAC 00 nopB1:CFAD 00 nopB1:CFAE 00 nopB1:CFAF 00 nopB1:CFB0 00 nopB1:CFB1 00 nopB1:CFB2 00 nopB1:CFB3 00 nopB1:CFB4 00 nopB1:CFB5 00 nopB1:CFB6 00 nopB1:CFB7 00 nopB1:CFB8 00 nopB1:CFB9 00 nopB1:CFBA 00 nopB1:CFBB 00 nopB1:CFBC 00 nopB1:CFBD 00 nopB1:CFBE 00 nopB1:CFBF 00 nopB1:CFC0 00 nopB1:CFC1 00 nopB1:CFC2 00 nopB1:CFC3 00 nopB1:CFC4 00 nopB1:CFC5 00 nopB1:CFC6 00 nopB1:CFC7 00 nopB1:CFC8 00 nopB1:CFC9 00 nopB1:CFCA 00 nopB1:CFCB 00 nopB1:CFCC 00 nopB1:CFCD 00 nopB1:CFCE 00 nopB1:CFCF 00 nopB1:CFD0 00 nopB1:CFD1 00 nopB1:CFD2 00 nopB1:CFD3 00 nopB1:CFD4 00 nopB1:CFD5 00 nopB1:CFD6 00 nopB1:CFD7 00 nopB1:CFD8 00 nopB1:CFD9 00 nopB1:CFDA 7F 11 mov R7, #0x11B1:CFDC 12 08 23 lcall OSD_TextInit_B1BSB1:CFDCB1:CFDF 7F 11 mov R7, #0x11B1:CFE1 12 08 29 lcall B1_BS_224_B3_F310B1:CFE1B1:CFE4 22 ret
Anexe o firmware com o problema das fontes para que eu possa testar aqui.
B1:DFEA ; START OF FUNCTION CHUNK FOR BankSw_337_B1_F2FDB1:DFEAB1:DFEA B1_DFEA: ; CODE XREF: BankSw_337_B1_F2FD:B1_F317jB1:DFEA 7F E2 mov R7, #0xE2 ; 'Ô'B1:DFEC 7E 07 mov R6, #7B1:DFEE 12 04 7B lcall ARM_Getchar_B1BSB1:DFF1 BF 01 05 cjne R7, #1, B1_DFF9B1:DFF4 D2 74 setb RAM_2E.4B1:DFF6 12 A1 CD lcall BankSw_578_B1_A1CDB1:DFF9B1:DFF9 B1_DFF9: ; CODE XREF: BankSw_337_B1_F2FD-130CjB1:DFF9 7F 59 mov R7, #0x59 ; 'Y' ; Lê o valor de "DivX Subtitle" na eepromB1:DFFB 7E 00 mov R6, #0B1:DFFD 12 05 D7 lcall Pref_Getchar_B1BSB1:E000 BF 01 07 cjne R7, #1, B1_E00AB1:E003 7F 0F mov R7, #0xF ; Se for 1, uso a fonte 0xFB1:E005 12 08 59 lcall Sub_SetFont_B1BSB1:E008 80 27 sjmp B1_E031B1:E00A ; ---------------------------------------------------------------------------B1:E00AB1:E00A B1_E00A: ; CODE XREF: BankSw_337_B1_F2FD-12FDjB1:E00A 7F 59 mov R7, #0x59 ; 'Y' ; Lê o valor de "DivX Subtitle" na eepromB1:E00C 7E 00 mov R6, #0B1:E00E 12 05 D7 lcall Pref_Getchar_B1BSB1:E011 EF mov A, R7B1:E012 70 07 jnz B1_E01BB1:E014 7F 0D mov R7, #0xD ; Se for 0, uso a fonte 0xDB1:E016 12 08 59 lcall Sub_SetFont_B1BSB1:E019 80 16 sjmp B1_E031B1:E01B ; ---------------------------------------------------------------------------B1:E01BB1:E01B B1_E01B: ; CODE XREF: BankSw_337_B1_F2FD-12EBjB1:E01B 7F 59 mov R7, #0x59 ; 'Y' ; Lê o valor de "DivX Subtitle" na eepromB1:E01D 7E 00 mov R6, #0B1:E01F 12 05 D7 lcall Pref_Getchar_B1BSB1:E022 BF 02 07 cjne R7, #2, B1_E02CB1:E025 7F 11 mov R7, #0x11 ; Se for 2, uso a fonte 0x11B1:E027 12 08 59 lcall Sub_SetFont_B1BSB1:E02A 80 05 sjmp B1_E031B1:E02C ; ---------------------------------------------------------------------------B1:E02CB1:E02C B1_E02C: ; CODE XREF: BankSw_337_B1_F2FD-12DBjB1:E02C 7F 0D mov R7, #0xD ; Se for maior que 2, uso a fonte 0xDB1:E02E 12 08 59 lcall Sub_SetFont_B1BSB1:E031B1:E031 B1_E031: ; CODE XREF: BankSw_337_B1_F2FD-12F5jB1:E031 ; BankSw_337_B1_F2FD-12E4j ...B1:E031 7F 11 mov R7, #0x11B1:E033 12 08 23 lcall OSD_TextInit_B1BSB1:E036 7F 11 mov R7, #0x11B1:E038 02 08 29 ljmp B1_BS_224_B3_F310B1:E038 ; END OF FUNCTION CHUNK FOR BankSw_337_B1_F2FD
B1:EDC3 Sub_Style: ; CODE XREF: B1_DD81+3EpB1:EDC3 90 FB 46 mov DPTR, #XRAM_FB46B1:EDC6 EE mov A, R6B1:EDC7 F0 movx @DPTR, AB1:EDC8 A3 inc DPTRB1:EDC9 EF mov A, R7B1:EDCA F0 movx @DPTR, AB1:EDCB 7F 03 mov R7, #3B1:EDCD 12 07 15 lcall B1_BS_178_B3_4B4FB1:EDD0 7F 01 mov R7, #1B1:EDD2 12 07 15 lcall B1_BS_178_B3_4B4FB1:EDD5 7F 03 mov R7, #3B1:EDD7 12 F3 52 lcall B1_F352B1:EDDA 7B FF mov R3, #0xFFB1:EDDC 7D EB mov R5, #0xEB ; 'Ù'B1:EDDE 7C 01 mov R4, #1B1:EDE0 74 01 mov A, #1B1:EDE2 FF mov R7, AB1:EDE3 FE mov R6, AB1:EDE4 12 06 5B lcall OSD_DISpMSG2_B1BSB1:EDE7 7F 0E mov R7, #0xEB1:EDE9 12 06 F1 lcall B1_BS_172_B4_EE0FB1:EDEC 12 D4 17 lcall SetMeg4SubtitleParamsB1:EDEF 7F 11 mov R7, #0x11B1:EDF1 12 08 17 lcall OSD_TextInit_B1BSB1:EDF4 7F 11 mov R7, #0x11B1:EDF6 12 08 1D lcall B1_BS_222_B3_EFBBB1:EDF9 22 retB1:EDF9 ; End of function Sub_Style
B3:593C Sub_Style_2: ; DATA XREF: OSD_Text_Init+63oB3:593C 90 FB 88 mov DPTR, #XRAM_FB88 ; FB88 sempre será 11 nesta rotinaB3:593F E0 movx A, @DPTRB3:5940 FF mov R7, AB3:5941 D2 45 setb RAM_28.5B3:5943 12 28 40 lcall OSD_Text_Params_ARMB3:5946 90 FB 88 mov DPTR, #XRAM_FB88 ; Armazena o número da janela (OSD_Text_Init)B3:5949 E0 movx A, @DPTRB3:594A FF mov R7, AB3:594B 12 6C EF lcall OSD_Text_ParamsB3:594E 90 FB 88 mov DPTR, #XRAM_FB88 ; Armazena o número da janela (OSD_Text_Init)B3:5951 E0 movx A, @DPTRB3:5952 FF mov R7, AB3:5953 E4 clr AB3:5954 90 FB A5 mov DPTR, #XRAM_FBA5 ; OSD_ColorsB3:5957 F0 movx @DPTR, AB3:5958 A3 inc DPTRB3:5959 74 02 mov A, #2B3:595B F0 movx @DPTR, AB3:595C 7B 03 mov R3, #3B3:595E E4 clr AB3:595F FD mov R5, AB3:5960 12 D1 B9 lcall OSD_Text_ColorB3:5963 90 FB 88 mov DPTR, #XRAM_FB88 ; Armazena o número da janela (OSD_Text_Init)B3:5966 E0 movx A, @DPTRB3:5967 FF mov R7, AB3:5968 E4 clr AB3:5969 FD mov R5, AB3:596A 02 EC 82 ljmp OSD_TextInit_END
B1:D417 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦B1:D417B1:D417B1:D417 SetMeg4SubtitleParams: ; CODE XREF: Sub_Style+29pB1:D417 ; BankSw_335_B1_F4CB:B1_F7D9pB1:D417 E4 clr AB1:D418 90 FB ED mov DPTR, #XRAM_FBED ; Coordenada Horizontal (HI)B1:D41B F0 movx @DPTR, AB1:D41C A3 inc DPTRB1:D41D F0 movx @DPTR, AB1:D41E 90 FB F0 mov DPTR, #XRAM_FBF0 ; Coordenada Vertical (HI)B1:D421 F0 movx @DPTR, AB1:D422 A3 inc DPTRB1:D423 F0 movx @DPTR, AB1:D424 90 FB F4 mov DPTR, #XRAM_FBF4 ; wX2.highB1:D427 74 02 mov A, #2B1:D429 F0 movx @DPTR, AB1:D42A A3 inc DPTRB1:D42B 74 30 mov A, #0x30 ; '0' ; 0x230=560B1:D42D F0 movx @DPTR, AB1:D42E 90 FB F8 mov DPTR, #XRAM_FBF8 ; wY2.high (define a altura)B1:D431 E4 clr AB1:D432 F0 movx @DPTR, AB1:D433 A3 inc DPTRB1:D434 74 60 mov A, #0x60 ; '`' ; Altura da janelaB1:D436 F0 movx @DPTR, AB1:D437 E4 clr AB1:D438 FD mov R5, AB1:D439 7F 17 mov R7, #0x17B1:D43B 7E 01 mov R6, #1B1:D43D 12 05 F5 lcall ARM_PutChar_B1BSB1:D440 7F 03 mov R7, #3 ; Este ponto define a fonte usada nas legendasB1:D442 12 08 4D lcall OSD_SetFont?_B1BSB1:D445 E4 clr AB1:D446 90 FB 5F mov DPTR, #XRAM_FB5F ; Espaço entre linhasB1:D449 F0 movx @DPTR, AB1:D44A 7B 09 mov R3, #9 ; 9=Todos 256 caracteres + Bottom alignB1:D44C 7D 01 mov R5, #1 ; alinhamento = 0x00 (esquerda), 0x01 (Centro), 0x02 (Direita)B1:D44E 7F 11 mov R7, #0x11 ; Janela da legendaB1:D450 12 92 42 lcall PSB_Set_ParamB1:D453 7F 59 mov R7, #0x59 ; 'Y' ; Verifica "DivX Subtitle" na eepromB1:D455 7E 00 mov R6, #0B1:D457 12 04 E7 lcall Pref_Getchar_B1BSB1:D45A EF mov A, R7 ; A sempre será zeroB1:D45B 24 FE add A, #0xFE ; '¦'B1:D45D 60 11 jz B1_D470 ; Dependendo da fonte, faria uma outra escolha de parâmetrosB1:D45F 14 dec AB1:D460 60 09 jz B1_D46BB1:D462 24 02 add A, #2B1:D464 70 18 jnz B1_D47EB1:D466 7F 05 mov R7, #5B1:D468 02 08 4D ljmp OSD_SetFont?_B1BSB1:D46B ; ---------------------------------------------------------------------------B1:D46BB1:D46B B1_D46B: ; CODE XREF: SetMeg4SubtitleParams+49jB1:D46B 7F 07 mov R7, #7B1:D46D 02 08 4D ljmp OSD_SetFont?_B1BSB1:D470 ; ---------------------------------------------------------------------------B1:D470B1:D470 B1_D470: ; CODE XREF: SetMeg4SubtitleParams+46jB1:D470 E4 clr A ; Este trecho nunca é chamado, porque o número da fonte nunca coincideB1:D471 90 FB 5F mov DPTR, #XRAM_FB5F ; Espaço entre linhasB1:D474 F0 movx @DPTR, AB1:D475 7B 01 mov R3, #1B1:D477 7D 01 mov R5, #1 ; alinhamento = 0x00 (esquerda), 0x01 (Centro)B1:D479 7F 11 mov R7, #0x11 ; Janela da legendaB1:D47B 12 92 42 lcall PSB_Set_ParamB1:D47EB1:D47E B1_D47E: ; CODE XREF: SetMeg4SubtitleParams+4DjB1:D47E 22 retB1:D47E ; End of function SetMeg4SubtitleParams
B3:F045 OSD_SetFont: ; CODE XREF: B3_9091+6FpB3:F045 ; DATA XREF: B0:OSD_SetFont?_B0BSo ...B3:F045 C2 AF clr IEN0.7 ; Interrupt Enable Register 0B3:F047 30 1C 0A jnb RAM_23.4, B3_F054B3:F04AB3:F04A B3_F04A: ; CODE XREF: OSD_SetFont+CjB3:F04A 90 F8 86 mov DPTR, #BIM_ASSI ; Assert RISC Interrupt RegisterB3:F04D E0 movx A, @DPTRB3:F04E 30 E3 03 jnb ACC.3, B3_F054 ; AccumulatorB3:F051 20 1C F6 jb RAM_23.4, B3_F04AB3:F054B3:F054 B3_F054: ; CODE XREF: OSD_SetFont+2jB3:F054 ; OSD_SetFont+9jB3:F054 90 F8 E0 mov DPTR, #BIM_GPR0 ; General Purpose Registers 0B3:F057 E4 clr AB3:F058 F0 movx @DPTR, AB3:F059 A3 inc DPTRB3:F05A 74 37 mov A, #0x37 ; '7'B3:F05C F0 movx @DPTR, AB3:F05D A3 inc DPTRB3:F05E EF mov A, R7B3:F05F F0 movx @DPTR, AB3:F060 30 1C 0D jnb RAM_23.4, B3_F070B3:F063B3:F063 B3_F063: ; CODE XREF: OSD_SetFont+22jB3:F063 90 F8 60 mov DPTR, #BIM_STATB3:F066 E0 movx A, @DPTRB3:F067 20 E5 F9 jb ACC.5, B3_F063 ; AccumulatorB3:F06A 90 F8 86 mov DPTR, #BIM_ASSI ; Assert RISC Interrupt RegisterB3:F06D 74 08 mov A, #8B3:F06F F0 movx @DPTR, AB3:F070B3:F070 B3_F070: ; CODE XREF: OSD_SetFont+1BjB3:F070 D2 AF setb IEN0.7 ; Interrupt Enable Register 0B3:F072 22 retB3:F072 ; End of function OSD_SetFont
B3:E9FE OSD_SetFont: ; CODE XREF: B3_99EC+F8pB3:E9FE ; DATA XREF: B0:B0_BS_240_B3_E9FEo ...B3:E9FE 90 FB B6 mov DPTR, #XRAM_FBB6B3:EA01 EF mov A, R7B3:EA02 F0 movx @DPTR, AB3:EA03 C2 AF clr IEN0.7 ; Interrupt Enable Register 0B3:EA05 30 1E 0E jnb RAM_23.6, B3_EA16B3:EA08B3:EA08 B3_EA08: ; CODE XREF: OSD_SetFont+15jB3:EA08 7F 86 mov R7, #0x86 ; 'å'B3:EA0A 7E 00 mov R6, #0B3:EA0C 12 19 3E lcall B3_BS_1_B0_F320B3:EA0F EF mov A, R7B3:EA10 30 E3 03 jnb ACC.3, B3_EA16 ; AccumulatorB3:EA13 20 1E F2 jb RAM_23.6, B3_EA08B3:EA16B3:EA16 B3_EA16: ; CODE XREF: OSD_SetFont+7jB3:EA16 ; OSD_SetFont+12jB3:EA16 E4 clr AB3:EA17 FD mov R5, AB3:EA18 7F E0 mov R7, #0xE0 ; 'Ó'B3:EA1A FE mov R6, AB3:EA1B 12 19 50 lcall B3_BS_4_B0_F32CB3:EA1E 7D 37 mov R5, #0x37 ; '7'B3:EA20 7F E1 mov R7, #0xE1 ; 'ß'B3:EA22 7E 00 mov R6, #0B3:EA24 12 19 50 lcall B3_BS_4_B0_F32CB3:EA27 90 FB B6 mov DPTR, #XRAM_FBB6B3:EA2A E0 movx A, @DPTRB3:EA2B FD mov R5, AB3:EA2C 7F E2 mov R7, #0xE2 ; 'Ô'B3:EA2E 7E 00 mov R6, #0B3:EA30 12 19 50 lcall B3_BS_4_B0_F32CB3:EA33 30 1E 14 jnb RAM_23.6, B3_EA4AB3:EA36B3:EA36 B3_EA36: ; CODE XREF: OSD_SetFont+40jB3:EA36 7F 60 mov R7, #0x60 ; '`'B3:EA38 7E 00 mov R6, #0B3:EA3A 12 19 3E lcall B3_BS_1_B0_F320B3:EA3D EF mov A, R7B3:EA3E 20 E5 F5 jb ACC.5, B3_EA36 ; AccumulatorB3:EA41 7D 08 mov R5, #8B3:EA43 7F 86 mov R7, #0x86 ; 'å'B3:EA45 7E 00 mov R6, #0B3:EA47 12 19 50 lcall B3_BS_4_B0_F32CB3:EA4AB3:EA4A B3_EA4A: ; CODE XREF: OSD_SetFont+35jB3:EA4A D2 AF setb IEN0.7 ; Interrupt Enable Register 0B3:EA4C 22 retB3:EA4C ; End of function OSD_SetFont
B1:C16B Sub_Style: ; CODE XREF: B1_D2D5+31pB1:C16B 90 FB AF mov DPTR, #XRAM_FBAFB1:C16E EE mov A, R6B1:C16F F0 movx @DPTR, AB1:C170 A3 inc DPTRB1:C171 EF mov A, R7B1:C172 F0 movx @DPTR, AB1:C173 7F 0F mov R7, #0xFB1:C175 12 06 4F lcall B1_BS_145_B3_DE0FB1:C175B1:C178 7F 0E mov R7, #0xEB1:C17A 12 06 4F lcall B1_BS_145_B3_DE0FB1:C17AB1:C17D 7F 01 mov R7, #1B1:C17F 12 06 4F lcall B1_BS_145_B3_DE0FB1:C17FB1:C182 7F 04 mov R7, #4B1:C184 12 05 0B lcall B1_BS_91_B3_2949B1:C184B1:C187 7F 02 mov R7, #2B1:C189 12 05 FB lcall OSD_TextInit_B1BSB1:C189B1:C18C 7F 02 mov R7, #2B1:C18E 12 06 01 lcall B1_BS_132_B3_E31BB1:C18EB1:C191 7F 03 mov R7, #3B1:C193 12 DD 55 lcall B1_DD55B1:C193B1:C196 E4 clr AB1:C197 FF mov R7, AB1:C198 12 06 49 lcall OSD_SetFont_B1BSB1:C198B1:C19B D2 49 setb RAM_29.1B1:C19D 7F 12 mov R7, #0x12B1:C19F 12 05 DD lcall B1_BS_126_B3_400FB1:C19FB1:C1A2 7F 12 mov R7, #0x12B1:C1A4 12 05 E3 lcall B1_BS_127_B3_5B71B1:C1A4B1:C1A7 90 FB F1 mov DPTR, #XRAM_FBF1 ; OSD_ColorsB1:C1AA 74 06 mov A, #6 ; Cor de contorno = 6B1:C1AC F0 movx @DPTR, AB1:C1AD A3 inc DPTRB1:C1AE 74 02 mov A, #2 ; Cor do preenchimento = 2B1:C1B0 F0 movx @DPTR, AB1:C1B1 7B 06 mov R3, #6 ; Cor do backgroundB1:C1B3 E4 clr AB1:C1B4 FD mov R5, AB1:C1B5 7F 12 mov R7, #0x12 ; JanelaB1:C1B7 12 05 1D lcall OSD_TextColor_B1BSB1:C1B7B1:C1BA E4 clr AB1:C1BB FD mov R5, AB1:C1BC 7F 12 mov R7, #0x12B1:C1BE 12 06 9D lcall B1_BS_158_B3_E074B1:C1BEB1:C1C1 7F 12 mov R7, #0x12B1:C1C3 12 05 FB lcall OSD_TextInit_B1BSB1:C1C3B1:C1C6 7F 12 mov R7, #0x12B1:C1C8 12 06 01 lcall B1_BS_132_B3_E31BB1:C1C8B1:C1CB 90 FC 71 mov DPTR, #XRAM_FC71B1:C1CE E0 movx A, @DPTRB1:C1CF 54 C7 anl A, #0xC7B1:C1D1 F0 movx @DPTR, AB1:C1D2 22 retB1:C1D2B1:C1D2 ; End of function Sub_Style
B1:F16C Sub_Style: ; CODE XREF: B1_E132+3EpB1:F16C 90 FB 46 mov DPTR, #XRAM_FB46B1:F16F EE mov A, R6B1:F170 F0 movx @DPTR, AB1:F171 A3 inc DPTRB1:F172 EF mov A, R7B1:F173 F0 movx @DPTR, AB1:F174 7F 03 mov R7, #3B1:F176 12 07 1B lcall B1_BS_179_B3_4B4FB1:F176B1:F179 7F 01 mov R7, #1B1:F17B 12 07 1B lcall B1_BS_179_B3_4B4FB1:F17BB1:F17E 7F 03 mov R7, #3B1:F180 12 F6 C7 lcall B1_F6C7B1:F180B1:F183 7B FF mov R3, #0xFFB1:F185 7D EB mov R5, #0xEB ; 'Ù'B1:F187 7C 01 mov R4, #1B1:F189 74 01 mov A, #1B1:F18B FF mov R7, AB1:F18C FE mov R6, AB1:F18D 12 06 61 lcall OSD_DispMSG2_B1BSB1:F18DB1:F190 7F 0E mov R7, #0xEB1:F192 12 06 F7 lcall B1_BS_173_B4_EE4AB1:F192B1:F195 12 D7 CA lcall SetMeg4SubtitleParamsB1:F195B1:F198 7F 11 mov R7, #0x11B1:F19A 12 08 1D lcall OSD_textInit_B1BSB1:F19AB1:F19D 7F 11 mov R7, #0x11B1:F19F 12 08 23 lcall B1_BS_223_B3_F09FB1:F19FB1:F1A2 22 retB1:F1A2B1:F1A2 ; End of function Sub_Style
B3:593C Sub_Style_Sec: ; DATA XREF: OSD_Text_Init+63oB3:593C 90 FB 88 mov DPTR, #XRAM_FB88 ; Tem o número da janela (OSD_Text_Init)B3:593F E0 movx A, @DPTRB3:5940 FF mov R7, AB3:5941 D2 45 setb RAM_28.5B3:5943 12 28 67 lcall OSD_Text_Params_ARMB3:5943B3:5946 90 FB 88 mov DPTR, #XRAM_FB88 ; Tem o número da janela (OSD_Text_Init)B3:5949 E0 movx A, @DPTRB3:594A FF mov R7, AB3:594B 12 6C EF lcall OSD_Text_ParamsB3:594BB3:594E 90 FB 88 mov DPTR, #XRAM_FB88 ; Tem o número da janela (OSD_Text_Init)B3:5951 E0 movx A, @DPTRB3:5952 FF mov R7, AB3:5953 E4 clr AB3:5954 90 FB A5 mov DPTR, #XRAM_FBA5 ; OSD ColorsB3:5957 F0 movx @DPTR, AB3:5958 A3 inc DPTRB3:5959 74 02 mov A, #2B3:595B F0 movx @DPTR, AB3:595C 7B 03 mov R3, #3B3:595E E4 clr AB3:595F FD mov R5, AB3:5960 12 D2 9D lcall OSD_Text_ColorB3:5960B3:5963 90 FB 88 mov DPTR, #XRAM_FB88 ; Tem o número da janela (OSD_Text_Init)B3:5966 E0 movx A, @DPTRB3:5967 FF mov R7, AB3:5968 E4 clr AB3:5969 FD mov R5, AB3:596A 02 ED 66 ljmp OSD_Text_Init_End
B1:D7CA SetMeg4SubtitleParams: ; CODE XREF: Sub_Style+29pB1:D7CA ; BankSw_336_B1_F860:B1_FB4FpB1:D7CA E4 clr AB1:D7CB 90 FB ED mov DPTR, #XRAM_FBED ; wX1.highB1:D7CE F0 movx @DPTR, AB1:D7CF A3 inc DPTRB1:D7D0 F0 movx @DPTR, AB1:D7D1 90 FB F0 mov DPTR, #XRAM_FBF0 ; wY1.highB1:D7D4 F0 movx @DPTR, AB1:D7D5 A3 inc DPTRB1:D7D6 F0 movx @DPTR, AB1:D7D7 90 FB F4 mov DPTR, #XRAM_FBF4 ; wX2.highB1:D7DA 74 02 mov A, #2B1:D7DC F0 movx @DPTR, AB1:D7DD A3 inc DPTRB1:D7DE 74 30 mov A, #0x30 ; '0' ; 0x230 = 560B1:D7E0 F0 movx @DPTR, AB1:D7E1 90 FB F8 mov DPTR, #XRAM_FBF8 ; wY2.high (define a altura)B1:D7E4 E4 clr AB1:D7E5 F0 movx @DPTR, AB1:D7E6 A3 inc DPTRB1:D7E7 74 60 mov A, #0x60 ; '`' ; Altura da janelaB1:D7E9 F0 movx @DPTR, AB1:D7EA E4 clr AB1:D7EB FD mov R5, AB1:D7EC 7F 17 mov R7, #0x17B1:D7EE 7E 01 mov R6, #1B1:D7F0 12 05 FB lcall Arm_PutChar_B1BSB1:D7F0B1:D7F3 7F 03 mov R7, #3 ; Determina a fonte usada nas legendasB1:D7F5 12 08 53 lcall OSD_SetFont_B1BSB1:D7F5B1:D7F8 E4 clr AB1:D7F9 90 FB 5F mov DPTR, #XRAM_FB5F ; Espaço entre linhasB1:D7FC F0 movx @DPTR, AB1:D7FD 7B 09 mov R3, #9 ; 9= todos 255 caracteres + alinhamento bottomB1:D7FF 7D 01 mov R5, #1 ; alinhamento = 0x00 (esquerda), 0x01 (Centro), 0x02 (Direita)B1:D801 7F 11 mov R7, #0x11 ; Janela da legendaB1:D803 12 94 46 lcall PSB_Set_ParamB1:D803B1:D806 7F 59 mov R7, #0x59 ; 'Y' ; Pega o valor de "DivX Subtitle" na eepromB1:D808 7E 00 mov R6, #0B1:D80A 12 04 ED lcall Pref_Getchar_B1BSB1:D80AB1:D80D EF mov A, R7B1:D80E 24 FE add A, #0xFE ; '¦'B1:D810 60 11 jz B1_D823B1:D810B1:D812 14 dec AB1:D813 60 09 jz B1_D81EB1:D813B1:D815 24 02 add A, #2B1:D817 70 18 jnz B1_D831B1:D817B1:D819 7F 05 mov R7, #5B1:D81B 02 08 53 ljmp OSD_SetFont_B1BSB1:D81BB1:D81E ; ---------------------------------------------------------------------------B1:D81EB1:D81E B1_D81E: ; CODE XREF: SetMeg4SubtitleParams+49jB1:D81E 7F 07 mov R7, #7B1:D820 02 08 53 ljmp OSD_SetFont_B1BSB1:D820B1:D823 ; ---------------------------------------------------------------------------B1:D823B1:D823 B1_D823: ; CODE XREF: SetMeg4SubtitleParams+46jB1:D823 E4 clr AB1:D824 90 FB 5F mov DPTR, #XRAM_FB5F ; Espaço entre linhasB1:D827 F0 movx @DPTR, AB1:D828 7B 01 mov R3, #1 ; Alinhamento bottom. Apenas 127 charsB1:D82A 7D 01 mov R5, #1 ; alinhamento = 0x00 (esquerda), 0x01 (Centro), 0x02 (Direita)B1:D82C 7F 11 mov R7, #0x11 ; Janela da legendaB1:D82E 12 94 46 lcall PSB_Set_ParamB1:D82EB1:D831B1:D831 B1_D831: ; CODE XREF: SetMeg4SubtitleParams+4DjB1:D831 22 retB1:D831B1:D831 ; End of function SetMeg4SubtitleParams
B1:F366 SetMpeg4SubtitleParams2: ; CODE XREF: BankSw_250_B1_D832+10pB1:F366 E4 clr AB1:F367 90 FB ED mov DPTR, #XRAM_FBED ; wX1.highB1:F36A F0 movx @DPTR, AB1:F36B A3 inc DPTRB1:F36C F0 movx @DPTR, AB1:F36D 90 FB F0 mov DPTR, #XRAM_FBF0 ; wY1.highB1:F370 F0 movx @DPTR, AB1:F371 A3 inc DPTRB1:F372 F0 movx @DPTR, AB1:F373 90 FB F4 mov DPTR, #XRAM_FBF4 ; wX2.highB1:F376 74 02 mov A, #2B1:F378 F0 movx @DPTR, AB1:F379 A3 inc DPTRB1:F37A 74 30 mov A, #0x30 ; '0' ; 0x230 = 560B1:F37C F0 movx @DPTR, AB1:F37D 90 FB F8 mov DPTR, #XRAM_FBF8 ; wY2.highB1:F380 E4 clr AB1:F381 F0 movx @DPTR, AB1:F382 A3 inc DPTRB1:F383 74 60 mov A, #0x60 ; '`' ; Altura da janelaB1:F385 F0 movx @DPTR, AB1:F386 E4 clr AB1:F387 90 FB 5F mov DPTR, #XRAM_FB5F ; Espaço entre linhasB1:F38A F0 movx @DPTR, AB1:F38B 7B 09 mov R3, #9B1:F38D 7D 01 mov R5, #1B1:F38F 7F 11 mov R7, #0x11B1:F391 12 94 46 lcall PSB_Set_ParamB1:F391B1:F394 D3 setb CB1:F395 22 retB1:F395B1:F395 ; End of function SetMpeg4SubtitleParams2
B1:F6FE Sub_Style: ; DATA XREF: B0:B0_BS_689_B1_F6FEoB1:F6FE ; B1:B1_BS_689_B1_F6FEo ...B1:F6FE 90 FB D2 mov DPTR, #XRAM_FBD2B1:F701 EE mov A, R6B1:F702 F0 movx @DPTR, AB1:F703 A3 inc DPTRB1:F704 EF mov A, R7B1:F705 F0 movx @DPTR, AB1:F706 E4 clr AB1:F707 FD mov R5, A ; Carrega o background zeroB1:F708 FC mov R4, AB1:F709 7F 01 mov R7, #1B1:F70B 12 1D 2A lcall vPlayerShowLogo_B1BSB1:F70BB1:F70E 7F 03 mov R7, #3B1:F710 12 1D 30 lcall B1_BS_173_B3_4C8FB1:F710B1:F713 7F 01 mov R7, #1B1:F715 12 1D 30 lcall B1_BS_173_B3_4C8FB1:F715B1:F718 7F 03 mov R7, #3B1:F71A 12 1F 0A lcall B1_BS_252_B4_EA05B1:F71AB1:F71D 12 E2 25 lcall SetMPeg4SubtitleParamsB1:F71DB1:F720 7F 12 mov R7, #0x12B1:F722 12 1E 50 lcall OSD_TextInit_B1BSB1:F722B1:F725 7F 12 mov R7, #0x12B1:F727 12 1E 56 lcall B1_BS_222_B3_CE38B1:F727B1:F72A 22 ret
B3:16B7 Sub_Style_Sec: ; DATA XREF: OSD_Text_Init+6BoB3:16B7 90 FC 5B mov DPTR, #XRAM_FC5B ; Tem o número da janela (OSD_Text_Init)B3:16BA E0 movx A, @DPTRB3:16BB FF mov R7, AB3:16BC D2 49 setb RAM_29.1B3:16BE 12 51 4D lcall OSD_Text_Params_ARMB3:16BEB3:16C1 90 FC 5B mov DPTR, #XRAM_FC5B ; Tem o número da janela (OSD_Text_Init)B3:16C4 E0 movx A, @DPTRB3:16C5 FF mov R7, AB3:16C6 12 73 23 lcall OSD_Text_ParamsB3:16C6B3:16C9 90 FC 5B mov DPTR, #XRAM_FC5B ; Tem o número da janela (OSD_Text_Init)B3:16CC E0 movx A, @DPTRB3:16CD FF mov R7, AB3:16CE E4 clr A ; Cor de contorno = 0B3:16CF 90 FC 60 mov DPTR, #XRAM_FC60 ; OSD_ColorsB3:16D2 F0 movx @DPTR, AB3:16D3 A3 inc DPTRB3:16D4 74 02 mov A, #2 ; Cor de Preenchimento = 2B3:16D6 F0 movx @DPTR, AB3:16D7 7B 03 mov R3, #3 ; Cor do fundoB3:16D9 E4 clr AB3:16DA FD mov R5, AB3:16DB 12 AE CA lcall OSD_Text_ColorB3:16DBB3:16DE 90 FC 5B mov DPTR, #XRAM_FC5B ; Tem o número da janela (OSD_Text_Init)B3:16E1 E0 movx A, @DPTRB3:16E2 FF mov R7, AB3:16E3 E4 clr AB3:16E4 FD mov R5, AB3:16E5 02 C9 50 ljmp BankSw_268_B3_C950
B1:E225 SetMPeg4SubtitleParams: ; CODE XREF: BankSw_689_B1_F6FE+1FpB1:E225 ; BankSw_698_B1_FB93:B1_FBA2pB1:E225 E4 clr A ; Rotina onde podem ser ajustada a posicao das legendas, altura das linhas, etcB1:E226 90 FC BD mov DPTR, #XRAM_FCBD ; wX1.highB1:E229 F0 movx @DPTR, AB1:E22A A3 inc DPTRB1:E22B F0 movx @DPTR, AB1:E22C 90 FC C0 mov DPTR, #XRAM_FCC0 ; wY1.highB1:E22F F0 movx @DPTR, AB1:E230 A3 inc DPTRB1:E231 F0 movx @DPTR, AB1:E232 90 FC C3 mov DPTR, #XRAM_FCC3 ; wX2.highB1:E235 74 02 mov A, #2B1:E237 F0 movx @DPTR, AB1:E238 A3 inc DPTRB1:E239 74 30 mov A, #0x30 ; '0'B1:E23B F0 movx @DPTR, AB1:E23C 90 FC C7 mov DPTR, #XRAM_FCC7 ; wY2.highB1:E23F E4 clr AB1:E240 F0 movx @DPTR, AB1:E241 A3 inc DPTRB1:E242 74 60 mov A, #0x60 ; '`' ; Altura da janela. Aumente se linhas estiverem deixando de aparecerB1:E244 F0 movx @DPTR, AB1:E245 E4 clr AB1:E246 FD mov R5, AB1:E247 7F 1D mov R7, #0x1DB1:E249 7E 01 mov R6, #1B1:E24B 12 19 E8 lcall B1_BS_33_B6_B7A7B1:E24BB1:E24E 7F 0A mov R7, #0xA ; Fonte para as legendas DivXB1:E250 12 1E BC lcall OSD_SetFont_B1BSB1:E250B1:E253 E4 clr AB1:E254 90 FB E6 mov DPTR, #XRAM_FBE6 ; Espaço entre linhasB1:E257 F0 movx @DPTR, AB1:E258 7B 09 mov R3, #9 ; bit optionsB1:E25A 7D 01 mov R5, #1B1:E25C 7F 12 mov R7, #0x12B1:E25E 12 1F 7C lcall PSB_Set_Param_B1BSB1:E25EB1:E261 7F 2C mov R7, #0x2C ; ','B1:E263 7E 00 mov R6, #0B1:E265 12 1B C8 lcall B1_BS_113_B5_DB60B1:E265B1:E268 EF mov A, R7B1:E269 24 FE add A, #0xFE ; '¦'B1:E26B 60 0C jz B1_E279B1:E26BB1:E26D 14 dec AB1:E26E 60 0E jz B1_E27EB1:E26EB1:E270 24 02 add A, #2B1:E272 70 18 jnz B1_E28CB1:E272B1:E274 7F 0E mov R7, #0xEB1:E276 02 1E BC ljmp OSD_SetFont_B1BSB1:E276B1:E279 ; ---------------------------------------------------------------------------B1:E279B1:E279 B1_E279: ; CODE XREF: SetMPeg4SubtitleParams+46jB1:E279 7F 0C mov R7, #0xCB1:E27B 02 1E BC ljmp OSD_SetFont_B1BSB1:E27BB1:E27E ; ---------------------------------------------------------------------------B1:E27EB1:E27E B1_E27E: ; CODE XREF: SetMPeg4SubtitleParams+49jB1:E27E E4 clr AB1:E27F 90 FB E6 mov DPTR, #XRAM_FBE6 ; Espaço entre linhasB1:E282 F0 movx @DPTR, AB1:E283 7B 01 mov R3, #1 ; bit OptionsB1:E285 7D 01 mov R5, #1B1:E287 7F 12 mov R7, #0x12B1:E289 12 1F 7C lcall PSB_Set_Param_B1BSB1:E289B1:E28CB1:E28C B1_E28C: ; CODE XREF: SetMPeg4SubtitleParams+4DjB1:E28C 22 retB1:E28CB1:E28C ; End of function SetMPeg4SubtitleParams
B1:F646 SetMPeg4SubtitleParams_2: ; DATA XREF: B0:B0_BS_682_B1_F646oB1:F646 ; B1:B1_BS_682_B1_F646o ...B1:F646 E4 clr A ; Rotina onde podem ser ajustada a posicao das legendas, altura das linhas, etcB1:F647 90 FC BD mov DPTR, #XRAM_FCBD ; wX1.highB1:F64A F0 movx @DPTR, AB1:F64B A3 inc DPTRB1:F64C F0 movx @DPTR, AB1:F64D 90 FC C0 mov DPTR, #XRAM_FCC0 ; wY1.highB1:F650 F0 movx @DPTR, AB1:F651 A3 inc DPTRB1:F652 F0 movx @DPTR, AB1:F653 90 FC C3 mov DPTR, #XRAM_FCC3 ; wX2.highB1:F656 74 02 mov A, #2B1:F658 F0 movx @DPTR, AB1:F659 A3 inc DPTRB1:F65A 74 30 mov A, #0x30 ; '0'B1:F65C F0 movx @DPTR, AB1:F65D 90 FC C7 mov DPTR, #XRAM_FCC7 ; wY2.highB1:F660 E4 clr AB1:F661 F0 movx @DPTR, AB1:F662 A3 inc DPTRB1:F663 74 60 mov A, #0x60 ; '`' ; Altura da janela. Aumente se linhas estiverem deixando de aparecerB1:F665 F0 movx @DPTR, AB1:F666 E4 clr AB1:F667 90 FB E6 mov DPTR, #XRAM_FBE6 ; Espaço entre linhasB1:F66A F0 movx @DPTR, AB1:F66B 7B 09 mov R3, #9 ; Bit OptionsB1:F66D 7D 01 mov R5, #1 ; alinhamento = 0x00 (esquerda), 0x01 (Centro)B1:F66F 7F 12 mov R7, #0x12 ; Janela da legendaB1:F671 12 1F 7C lcall PSB_Set_Param_B1BSB1:F671B1:F674 D3 setb CB1:F675 22 retB1:F675B1:F675 ; End of function SetMPeg4SubtitleParams_2
[/b]Você não precisa do IDA. Se você souber usar qualquer editor hexadecimal que faça buscas de strings hexa você pode localizar as senhas adaptando as strings que vou fornecer para a sintaxe do editor. No XVI32, por exemplo, basta susbstituir todos os "?" das strings por "2E" para fazer a busca.
Eu acabo de instalar o firmware do DVP5140 no DVP3040K e adivinhem...Tá tudo funcionando!Eu sou o feliz proprietário do primeiro DVP3040K do mundo com suporte a DivX Ultra!
Hola Jmaraujo.... en Ultraedit, elije la opcion de "regular expressions" y luego utiliza "?" como wild card
Quote from: fabianr on August 19, 2007, 10:59:50 PMHola Jmaraujo.... en Ultraedit, elije la opcion de "regular expressions" y luego utiliza "?" como wild cardO UltraEdit dix "Expresões regulares (ASCII somente)" e eu preciso poder usar um wildcard nas buscas hexadecimais.El UltraEdit señala "Expresiones regulares (solamente ASCII)" y yo necesito el uso de un wildcard para las búsquedas hexadecimales.
Ahora una duda... estuve probando tu mtkModToolbox, informa que el tamaño del frimware 5140 y 3040,es de 1MB... al menos los dos que estan en tu "pack de firmwares de referencia".Como te diste cuenta que tu 3040k tiene 2MB?
Interessante... ¿Você sabe qual é o wildcard '?' no UltraEdit?Faz um tempão que estou buscando (já li a ajuda, busquei no Google e nada...)
Firmwares Philips: Improvisando uma mensagem de versãoComo todos vocês que tem um aparelho da Philips devem saber, ao apertar EJECT + 55 é exibido na tela o nome do arquivo que o aparelho espera encontrar no CD de upgrade. Até esta semana, eu achava que o nome exibido vinha da mesma string usada para fazer a conferência, mas não vem!
mosarella fez um patch similar onde adiciona os detalhes do firmware em outra linha:> http://tech.groups.yahoo.com/group/mt13x9/message/3871> http://tech.groups.yahoo.com/group/mt13x9/message/3878
DVP3040K/55 : 1MB sobrando na flash!Eu não sei porque raios eu estive assumindo até agora que o DVP3040K tinha apenas 1MB de flash.(...)Mas o fato é que a flash do meu tem 2MB!Vai dar para fazer muuuita coisa com o bicho!
Hola Jefferson, podrias por favor probar si es posible instalar el firmware del DVP5140 en el DVP3040 mediante CD (cambiándole el nombre al archivo DVP5140_37.BIN a DVP3040K_55.BIN (FW 5140 renombrado) y luego probar si se puede regresar al firmware del DVP3040, esta vez cambiándole de nombre al archivo DVP3040k_55.BIN a DVP5140_37.BIN (FW 3040 renombrado). Quiero confirmar si es un proceso seguro pues yo no tengo cable serial.
Tambien si podrias habilitar el parche GOTO para DVP5140 en el MTK MODToolbox. Gracias de antemano.
¿Haz logrado instalar un firmware de mas de 1MB? Cuando yo lo hago (con CD) siempre me sale con errores, especialmente en el filebrowser. Quizas realmente el DVP3040K/55 tiene 2MB de flash de hardware, pero es el firmware mismo el que no permite actualizar correctamente más de 1 MB.Saludos.
Quote from: jmaraujo on August 19, 2007, 10:40:41 PMInteressante... ¿Você sabe qual é o wildcard '?' no UltraEdit?Faz um tempão que estou buscando (já li a ajuda, busquei no Google e nada...) Desculpe. Eu estava tão acostumado com o XVI que achei que fosse algo "natural" em qualquer editor hexadecimal.Até olhei agora o Hex Workshop e também não encontrei opção nem no software e nem no help para usar wildcards. O danado é que me parece "absurdo", porque até o mtkModToolbox faz busca baseado em wildcards. Não é nenhum segredo o algoritmo para se fazer isso.
Já testei.Instalado via cabo o firmware de 1.5MB funciona sem problema aparente. Instalado via CD dá vários problemas. É possível até que a rotina de upgrade por CD esteja lendo apenas 1MB, dos 1,5MB do arquivo.Vou estudar uma maneira de resolver isso. Mas pode demorar.