UOC-Leader — упрощённо говоря, это семейство UOC в которых видеопроцессор (Octava) такой же как в обычных UOC, а вот контроллер с OSD сделан более дешёвым способом, чем в UOC или в UOC3: кодовая и символьная память физически одно целое, NXP называет ИМС семейства UOC-Leader, как Split Memory Device’s. Многообразие типов UOC-Leader также, как и в UOC/UOC+ достигается инициализацией «секретного» регистра 0xFF видеопроцессора: подробнее об этом написано здесь.
Но, несмотря на то, что идея, лежащая в основе многообразия типов ИМС, та же, но инициализация в UOC-Leader выглядит иначе. Ниже приводится код инициализации для TDA9341.
823A E4 clr A 823B F5 2B mov RAM_2B, A 823D 85 A2 2C mov RAM_2C, TXT32 8240 12 A8 F0 lcall i2c_disable 8243 loc_8243: 8243 7F 01 mov R7, #1 8245 12 8E BF lcall uoc_rdstatus 8248 EF mov A, R7 8249 20 E7 F7 jb ACC7, loc_8243 ; POR-check 824C AD 2C mov R5, RAM_2C 824E 7F FF mov R7, #0xFF 8250 12 8C B8 lcall uoc_wrbyte
Как видно из приведённого фрагмента, значение boot-регистра выбирается сразу из TXT32, а не формируется с помощью табличного алгоритма, как в UOC/UOC+. Значение TXT32 формируется на основе значений ячеек CHARROM по адресам 0x7FF8(GPF1) и 0x7FF9(GPF2). Интерпретация битов boot-регистра такая же, как и для UOC/UOC+:
b.6 — QSS
b.5 — FMradio
b.4 — East/West
b.3 — AM detector
b.2 — SECAM
b.1 — NTSC
b.0 — PAL
Как и в случае с UOC/UOC+, когда у Вас нет под рукой требуемой болванки, достаточно пропатчить код прошивки, чтобы она нормально работала в другой болванке. В данном случае, чтобы прошивка из TDA9341 нормально работала в болванке TDA9377 достаточно по адресу 0x823D вписать команду mov RAM_2C, #7 (код: 75 2C 07) вместо старой команды mov RAM_2C, TXT32.
Замечу, что по спецификации семейство TDA937x вообще не имеет декодера SECAM-а, а TDA9377 вообще имеет на борту только декодер NTSC, однако, после такого патча отлично работает работает и с SECAM-ом в качестве TDA9341.