Cau,
prosim o pomoc. Paco canada na svych strankach uverejnil schema + dokumentaci k funkcnimu dekoderu (zejm. pro osvetleni) - viz zde: http://usuaris.tinet.cat/fmco/dccfunc_en.html#dccfunc. Tento dekoder ovsem nema "decoder lock" realizovany pomoci CV15 a CV16, coz mi ponekud vadilo. Paco mi na maily neodpovidal, tak jsem disassembloval HEX a preznacil / okomentoval co jsem dokazal vydedukovat - viz https://github.com/svatoun/dcc-fndecoder/blob/master/main.asm. Takto upraveny ASM, kdyz jej prelozim, je totozny s originalem (az na zaverecne 2x RETLW 0, coz myslim generuje linker Microchip IDE a nechava mne to chladnym). Tzn. tato verze se da povazovat za zaklad pro dalsi upravy (resp. pro diffovani dalsich uprav).
Potiz je, ze kod je velky tesne pod limit FLASH pameti PIC 12F629. Inu zkusil jsem zapremyslet nad nekterymi pasazemi, a vysledek jsem napral do branche -- soubor main.asm. Jsou tam #undefine, ktere, kdyz se zapnou, prelozi alternativni kod, ktery je kratsi. Tedy se do PICu vejde i pridany kod na kontrolu shody CV15/16 = CV decoder lock.
Diff viz zde: https://github.com/svatoun/dcc-fndecoder/commit/860d0d08c54a3889a42c4b7751995db541255f6f
Moc by mi pomohlo, kdyby se na navrzene upravy (zkraceni) kodu podival nekdo kdo ma programovani pro PICy v malicku, kvuli overeni, ze jsem nezmenil semantiku. Diky.