Digitální fotoaparát Canon PowerShot A70

      7.12.2003 Jak se říká, s jídlem roste chuť. A tak jsem se po seznámení s digitální fotografií (a fotografováním vůbec) prostřednictvím kompaktu Olympus C-1 Zoom poohlédl po něčem lepším. Nehledě k tomu, za ty dva roky udělaly digitální fotoaparáty obrovský pokrok. Kamarád Zdeněk si mezitím koupil kompakt Canon PowerShot A40, který mě upoutal množstvím funkcí a nízkým šumem. Rozhodoval jsem se mezi řadou Canon Axx a Olympus Ultrazoom 7xx, nakonec jsem za slušnou cenu koupil z druhé ruky Canon PowerShot A70 s 32MB CompactFlash kartou.
      A70 vychází z A40, tvarem je velice podobný (dokonce o 1 cm užší) a k tomu přidává nové funkce a hlavně 3,2 megapixelový snímač. Kastle je převážně plastová, pouze přední díl je z matného hliníku a obroučka na čele objektivu z lesklého. Myslím, že by takto vybavenému foťáku slušelo celokovové provedení. Vzhledem ke hmotnosti 4 nabíjecích akumulátorů AA by to už znatelně nepřitížilo. Část objektivu mírně vyčuhuje z těla, takže ho nelze skrýt za posuvná dvířka jako u Olympusu, která by ho ochránila. Čočku zakrývají dvě lamely, které se mi zdají trochu křehké, proto nelze než doporučit odkládat foťák pěkně do pouzdra. Objektiv má trojnásobný optický zoom a je poměrně světelný. Po sundání kroužku kolem objektivu lze použít různé předsádky, nebo třeba upevnit foťák k astronomickému dalekohledu. Blesk není vyskakovací, ale je zabudován přímo v těle, což červeným očím moc neprospěje. Na levém boku jsou pod gumovou krytkou konektory USB, TV-out, napájení a také malá lithiová baterie udržující hodiny a uživatelské nastavení. Na pravém boku jsou dvířka pro CF kartu typu I. Nahoře je tlačítko spouště, ovladač zoomu, otočný programový volič a tlačítko zapínání/vypínání, které je třeba podržet asi 1 s, čímž se omezí nechtěné zapnutí. Na zadní straně je pak klasická křížová čtyřka, která mj. umožňuje rychle přepínat makrorežim a vypínat blesk, přepínač focení/prohlížení, další 4 funkční tlačítka (SET, MENU, DISPLAY, FUNCTION) a 1,5" LCD displej s rozlišením 320 x 240 (tedy asi 300 dpi). Zde bych měl vážnou konstrukční výhradu, proč displej nezapustili alespoň o 1 mm dovnitř a neopatřili nějakou antireflexní vrstvou? Takhle je na něm vidět sebemenší škrábanec. V tomto ohledu to měl Olympus jednoznačně vyřešené lépe. Nechybí ani klasický průhledový hledáček + 2 LED signalizující zaostření a nedostatečné osvětlení.
      Co se týče ovládání a funkcí, tak zde jsem maximálně spokojen. Snad jedinou funkci, na kterou canon zapomněl, je nastavení jasu LCD (hmm, LCD vůbec zřejmě nebude silná stránka canonu, ale koneckonců LCD přece nefotí). Menu jsou bohatá, avšak přehledná, zachvilku jsem se s ovládáním nového foťáku sžil. Na otočném programovém voliči je celkem 12 programů od plné automatiky až po manuál a videosekvence. Možnost snímat videosekvence je pro mě vítanou novinkou. V rozlišení 640 x 480 umožňuje zaznamenat 30 s MJPEG videa o 15 FPS. Při 320 x 240 to je pak tuším až 3 minuty a při 160 x 120 ani nevím. S videem se zaznamenává i zvukový doprovod PCM 11 kHz / 8 bit, který se i vestavěným minichrchlátkem celkem obstojně přehrává. Video lze v režimu prohlížení dokonce i jednoduše sestříhat a uvolnit tak místo na kartě.
      V režimu manuálního focení lze nastavovat spoustu věcí. Rozlišení lze vybrat ze 4 hodnot od 640 x 480 až po 2048 x 1536 a k tomu 3 stupně komprese. Nekomprimovaný formát A70 nepodporuje. Na max. rozlišení a kvalitu je velikost snímku 0,9 - 1,5 MB. Dále 3 stupně intenzity blesku, vyvážení bílé včetně jedné uživatelské hodnoty, citlivost ISO 50, 100, 200 a 400 (doporučuju používat 50 - 100 kvůli šumu). Pak tu máme 3 režimy měření expozice, jakési záhadné efekty mezi nimiž je např. černobílá fotografie a pod. nesmysly, které lépe spácháme v oblíbeném bitmapovém editoru. Samospoušť lze nastavit buď na 2 s nebo 10 s (přijde vhod při delších expozicích na stativu). Také je možno snímat sekvenčně asi 2 FPS. Ostření lze buď nechat na automatickém AiAF, které si díky přisvětlení superLED poradí i ve špatných světelných podmínkách, nebo přepnout na manuální. Problém je, že na LCD s malým rozlišením člověk stejně prd pozná, jestli je to správně zaostřeno nebo ne. Navíc se na displeji neukazuje aktuální hodnota vzdálenosti ale jen bargraf, který je nahoře popsán 3-mi hodnotami (ostřících kroků je přitom podstatně víc). Nicméně se tato funkce hodí, pokud chceme donutit ve tmě foťák koukat do nekonečna. A nakonec to, co je pro mě na manuálu nejzajímavější - doba expozice 1/2000 až 15 s a clona 2,8 - 8 a 4,8 - 8 při 3x zoomu. Při expozicích delších než 1 s se zapne režim potlačování šumu, který po nafocení snímku ještě exponuje tmu, resp. vlastní šum CCD, který pak použije k odečtení od snímku exponovaného předtím.
      Dále už jen stručný průlet menu: zamykání fotek proti nechtěnému smazání, otáčení po 90°, nahrávání zvukové poznámky, kompletní výmaz karty, nastavení pořadí v tisku a stahování, nastavení datumu a času, nastavení zvuků (komu by se stýskalo po klasice, tak si může nastavit pro spoušť zvuk převíjejícího se filmu :-), formátování CF, nastavení jazyka a jednotek, nastavení TV normy PAL/NSTC pro TV-out, vypínání autoostření a přisvěcování, červené oči, digital zoom, upgrade firmwaru a další.
      Jak už jsem se zmínil, A70 je napájen 4-mi AA bateriemi. S foťákem jsem dostal podezřele lehké avšak výkonné alkalické baterie Energizer Lithium Technology L91. Nicméně jsem v GME koupil 4 NiMH NexCel 2100 mAh za á 70,- Kč. Akumulátory jsou znatelně těžší, jeden váží tolik, co všechny čtyři Energizery. Příjemným zjištěním byla docela slušná výdrž, díky které bych se mohl na týdenní dovolené obejít bez nabíječky či další sady. Ještě to bude chtít pořádnou CF kartu, zejména video si ukousne docela hodně, ale zatím pokud jsem v dosahu PC tak to nehoří.
      Co se týče kvality fotek, tak výrazný rozdíl jsem zaznamenal okamžitě. Nehledě na rozlišení, podstatně méně šumu v obraze, díky dlouhým expozicím a stativu můžu dělat fotky, které by se na C-1Z totálně utopily v šumu. Snímky jsou ostré. Automatika vyvážení bíle to vždycky nevychytá a barvy jsou posunuty ke studenějším tónům. Ale na to je manuální kalibrace se kterou jsem zatím ještě moc neexperimentoval. Práce s A70 je rychlá, snímky scroluje a zoomuje jako blesk, za což vděčí rychlému procesoru DiG!C. BTW jesm se dozvěděl, že na něm běží Datalight ROM-DOS. Abych nezapomněl, nakonec musím ještě zkritizovat USB komunikaci, neboť Canony z nějakého nepochopitelného důvodu nepodporují USB Mass Storage class (režim, kdy se karta ve foťáku chová jako výměnný disk a lze na ni přistupovat libovolným programem), ale vnucují uživateli vlastní úplně tupý TWAIN drivery (při velikosti instalace ~5 MB umožní stáhnout jen JPEGy, ale nikoli video a o uploadu si můžou nechat jen zdát) a nepohodlný software. Naštěstí jsou na Internetu dostupné alternativy jako třeba BreezeSys Downloader Pro nebo plug-in CanonCam do souborového manažeru FAR. Za zmínku stojí také program BreezeSys PSRemote, který umožňuje ovládat foťák přes počítač a fotky stahovat přímo na disk.

A70 předek A70 zadek A70 vršek

      Před prázdnimami jsem usoudil, že by bylo dobré konečně koupit větší CompactFlash kartu. Nakonec jsem se rozhodl pro Pretec 256 MB HighSpeed (koupenou v Czech Computeru za 1540,- Kč), na kterou je doživotní záruka. Jak jsem zjistil, tak výrobci CF karet převzali "korektní" značení kapacity od kolegů výrobců HDD, takže karta má ve skutečnosti 243 MB, ale čert to vem, hlavně když se na ní neudělají Béčka. Přenosová rychlost po USB kabelu zůstala stejná, tj. asi 350 kB/s ačkoli USB 1.1 by mělo teoreticky zvládat tuším 12 Mb/s.
      Dále jsem vypozoroval, žel LCD hledáček zobrazuje obraz poněkud přesvětlený, takže ikdyž se fotka zdá přepálená, tak na monitoru není. To už jsem se naučil celkem odhadovat. A ještě jedna poznámka ke konstrukci se týká prachotěsnosti - otevřeným otvorem pro CF kartu a pravděpodobně netěsností kolem optického hledáčku mohou proniknout dovnitř drobná smítka, která jsou pak vidět na LCD displeji. Zajímalo by mě, jestli mají tenhle problém i ostatní, nebo je to jen u mého kusu. Foťák mám samozřejmě po většinu doby v pouzdru.

      22.9.2006 Už dříve se mi občas u mojeho PowerShotu A70 stávalo, že se (asi 1 z 200 fotek) v horní části fotky objevil podivný barevný (napůl průhledný) pruh, ale pak se najednou z ničeho nic stalo, že foťák začal fotit už jen tmavé pruhaté fleky, v kterých se ztěží daly rozeznat obrysy původní scény. Obraz byl špatný na LCD i v JPG souboru, ve všech programech včetně videa. Napadlo mě, že by to mohl být nějaký vakl v CCD konektoru nebo studeňák. Asi 2 hod. jsem foťák rozebíral, vyndal jsem CCD a propájel jeho kontakty na ohebném propojovací fólii a zhruba stejnou dobu zase skládal. Po složení foťák fotil, ale zas nefungoval LCD. Někdy ve 4 ráno už sem neměl další síly to znova rozebírat, později se ale ukázalo, že jsem jen zapomněl zastrčit kšandu pro napájení podsvícení LCD :). Zde je pár obrázků z rozebírání mojeho A70 a zmiňované poškozené snímky. Po pár dnech se ale výpadky CCD vrátili. Zjistil sem, že mírným poklepáním na tělo foťáku zas obraz naskočí. Do dalšího rozebírání se mi zrovna moc nechce, zvlášť když jsem si pak přečetl o této závadě, kterou reportoval přímo Canon. Dokonce nabízejí výměnu CCD zdarma. Akorát nevím, jak by se v servisu tvářili na můj rozvrtaný foťák, který nese jak na SW tak HW jasné známky neautorizovaného zásahu :) Takže jsem to prozatím vzdal, stejně teď fotím s lepším A95. Tenhle polovrak můžu aspoň v kliku používat na testování SW a FW.

      9.10.2016 Někdy před 2 lety jsem koupil náhradní CCD z eBay za 169 Kč, ale jaksi jsem neměl čas a chuť znovu podstoupit to mechanické martyrium s rozebíráním foťáku. Když jsem se dnes večer konečně pustil do výměny CCD u PowerShotu A95, která však dopadla neúspěšně, vzpomněl jsem si, že mám koupený i snímač pro PowerShot A70 a s vědomím, že to už hůře dopadnout nemůže, jsem se pustil do druhé výměny. Jako inspiraci pro rozborku jsem našel toto video na YouTube, zde jsou výkresy mechaniky a zde je kompletní servisní manuál. Při rozdělávání se mi v ruce rozsypala gumová krytka konektorů, asi byla vyrobená z nějakého ekologického samorozložitelného materiálu. Přístup k CCD je o něco komplikovanější než u A95 a je zajištěn 3 hvězdičkovými šroubky, které jsem musel vytočit kleštěmi a následně je vyměnil za křížáky. Po složení a zapnutí jsem uviděl v hledáčku normální obraz a dle prvních pár testovacích fotek to vypadá, že je vše v pořádku. Otázka je, jak dlouho to vydrží fungovat, v A95 už mám třetí vadný CCD...

PowerShot A70 disassembly PowerShot A70 disassembly PowerShot A70 CCD replacement


Canon PowerShot A70 firmware hacking

      26.7.2004 - I když je Canon PS A70 dobrým a bohatě funkcemi vybaveným fotoaparátem, je na něm stále co zlepšovat. Například limitace maximální délky videa v rozlišení 640 x 480 na 30 sekund je dnes trochu out, když skoro všechny konkurenční foťáky nabízí délku omezenou jen kapacitou karty. Jak se navíc ukázalo, je toto omezení čistě marketingový tah a nikoli neschopnost hardware foťáku. Vzhledem k tomu, že Canon s vydáváním nových firmware moc nepospíchá a že A70 je velmi oblíbený a rozšířený model, dalo se očekávat že dříve či později se objeví nějaký neoficiální firmware hack/patch... A tak se i stalo. Na stránce http://nostromo.dynalias.org/canonhacking, [local mirror] jsem narazil na jednoduchý návod, jak změnou 6 Bajtů v originálním souboru firmware verze 2.0.0.0 zvětšit limit videa z 30 s na 180 s.
      Tak jsem neváhal, nabušil to do hexaeditoru a flashnul. Předem upozorňuji, že se tím poruší licenční ujednání Canonu odsouhlasené při downloadu firmware a taky tím přijdete o záruku. Flashování je popsáno v readme originálního firmware, takže jen stručně. Update program do foťáku na prázdnou CF nakopíruje soubor s firmware, pak foťák vypnete a odpojíte kabel. Přepnete do režimu prohlížení a zapnete foťák a v menu vyberete firmware update a OK. Flashování trvá přes dvě minuty, takže je nanejvýš vhodné mít nabité baterie nebo připojený napájecí adaptér. Při flashování poblikávají LED jako při přenosu souborů a nakonec se foťák sám vypne. Po zapnutí je třeba provést znovu nastavení. Nyní je možno točit videa až 180 s dlouhá. Jediný zádrhel je, že ty delší nejdou ve foťáku přehrát. Zobrazí se jen náhled a hláška "unknown image". Jinak v počítači samozřejmě jde přehrát v plné délce. V mém případě proběhlo nahrání upraveného firmware hladce a zatím nepozoruji, že by to mělo nějaké negativní vedlejší účinky. Nicméně autor upozorňuje, že to není důkladně otestováno, takže jistá obezřetnost je na místě. Pro lenochy, kteří nechtějí hexaeditovat fajl, jsem napsal tento patch, který zařídí změnu potřebných Byte (provádí i kontrolu originálního souboru).
      Dále uvedu pár technických detailů, které se mi zatím podařilo zjistit. Hardware foťáku využívá hned tří procesorů. Jednak je to nějaké hradlové pole od NECu, které mimo jiné emuluje procesor NEC V30 (obdoba intelácké 80186). Dále je zde zákaznický čip DiG!C přímo od Canonu, který patrně zastává všechnu práci s grafikou a ještě Motorola 68HC12. Také se potvrdilo, že na tom NECu běží skutečně Datalight ROM-DOS a nějaké další DOSové aplikace.
      Informace o verzi firmware lze zobrazit na displeji následujícím postupem: v kořenovém adresáři CF karty vytvoříme soubor ver.req s libovolným obsahem (může být i prázdný) a po zapnutí stiskneme a držíme tlačítko SET a k tomu ještě zmáčkneme tlačítko DISP. a mělo by se zobrazit info o verzi a chybový kód (0 je OK). Na mém A70 to vypsalo:

Canon PowerShot A70
P-ID:3073 NT

Firmware Version 2.00E
Error 0000
Aug 20 2003  13:43:19

      Soubor firmware, který si stáhnete od Canonu (PS_A70.FIR), je kódovaný pomocí funkce XOR a dvou polí konstant. Tento algoritmus je reciproký, takže po prvním průchodu se soubor dekóduje, druhým průchodem se opět zakóduje (je shodný s originálem) a tak dále. Zdroják kodéru/dekodéru je zde: fwdecr.zip. V rozkódovaném souboru lze už nalézt spoustu textových řetězců. Soubor na začátku obsahuje hlavičku a dále pak jednotlivé dílčí soubory, ze kterých byl sestaven. Tímto programem fwdecunp.zip je lze rozbalit do adresáře (provádí i dekódování jako první program). Detailní popis jednotlivých souborů jsem zatím ale nenašel. Některé soubory jsou i textové (*.ini). Pro úspěšnou modifikaci však bude ještě potřeba nějaký program, který soubory opět spakuje do jednoho a doplní správně hlavičku. Ale zatím jsem nic takového nenašel. Až zjistím nějaké další informace, tak je sem určitě přidám. Doufám, že jak se tímto otevřela cesta k modifikaci firmware, se můžeme časem těšit na nějaké další vychytávky... Více informací na IXBT fóru.

      30.8.2004 - Po dekódování a rozbalení firmware (FIR souboru) jsem si prohlédl jednotlivé moduly a sestavil výpis se stručným popisem. Za zmínku stojí dva soubory diska.img a diskb.img jenž jsou obrazy interních jednotek A: a B: se souborovým systémem FAT. Diska.img obsahuje jediný soubor camera.exe, který je zřejmě hlavním řídicím programem fotoaparátu (výše zmíněný patch modifikuje právě tento soubor). Diskb.img pak obsahuje adresář DATA a v něm soubory s defaultním tématem (logo, zvuky). Startup logo (modré pruhy s bílým nápisem Canon) je ve formátu JPEG 320 x 240 / 16M a má velikost 10662 B. Toto logo jsem si přehrál svým vlastním.

original startup logo moje startup logo (Rhapsody)

Zvuky závěrky, spuštění, pípnutí a samospouště jsou ve formátu WAV 11025Hz/8bit mono. Jinak postupem podle manuálu lze nahrát do foťáku vlastní uživatelská témata celkem jednoduše. Stačí soubory s obrázky a zvuky v daném formátu nahrát na CF kartu (např. pomocí CanonCam). V menu My Camera pak u jednotlivých položek přibude volba disp., kterou lze zobrazit obrázky z CF karty a zaregistrovat je tlačítkem SET. Tím se přenesou z CF karty do FlashROM. Zajímavé je to, že firmware soubor neobsahuje tato uživatelská témata, která jsou zřejmě nahrána v jiné části FlashROM, kterou firmware update nepřepisuje. To, že firmware update soubor není kompletním obrazem Flash, je zřejmé i z toho, že FIR soubor nikde neobsahuje Dataligh ROM-DOS na kterém foťák běží.
      Kromě souborů default theme obsahuje diskb.img i důležitý soubor st104nt.bin, který obsahuje všechny jazykové mutace menu. Soubor je binární, ale jsou v něm jasně vidět nulou ukončené řetězce s jednotlivými hláškami. Takže by bylo vcelku dobře možné nějaký jazyk přepsat češtinou. K tomu je ale třeba znaků s diakritikou. Otázka je, zda-li je interní font obsahuje. Zatím jsem zjistil pouze přítomnost znaků ó, ú, é s ASCII kódy F3, FA, E9, což neodpovídá žádné, mě známé, kódové stránce. Jsou zde ale dva jazyky, které používají japonské klikiháhy, které jsou uloženy v extra souboru jpn4424r.fnt. Tyto by šlo přepsat českým fontem a pak už by nic nestálo v cestě počeštění menu. Zde pro ukázku jsou všechny řetězce anglického menu vyextrahované z st104nt.bin. Jak vidíte, není jich zrovna málo. Ještě by mě zajímalo jak a nakolik lze měnit délku řetězců, patrně bude nutné zachovat celkový objem dat původního jazyka (jednotlivé jazyky se velikostí liší).

      10.9.2004 - Tak jsem zjistil další podrobnosti ohledně fontů. Všechny jazyky kromě Japonštiny používají rastrový font asc2224r.fnt v rozlišení 22x24 pixelů. Font je ovšem pro jednodušší manipulaci s daty organizován jako pole 24x24 bitů, tedy 3 Bajty na řádek po 24 řádcích, celkem tedy 72 B/znak. Jak je z velikosti souboru patrné, nejsou v něm uloženy všechny znaky ASCII tabulky, ale pouze tisknutelné znaky s kódy 32 - 255. Japonský font jpn4424r.fnt má dvojnásobnou šířku - 44x24 pixelů a znak je uložen jako 6 Bajtů na řádek po 24 řádcích, celkem tedy 144 B/znak. Tento font obsahuje 621 znaků. ASCII 128 - 255 odpovídá západoevropskému kódování Windows CP a obsahuje pouze čárkované znaky, nikoli háčkované. Znaky s ASCII kódy 80h - A0h jsou ve fontu prázdné, takže lze tyto pozice (33 míst) využít pro umístění vlastních národních znaků. Pro tento účel jsem si v DJGPP napsal jednoduchý editor fontů s funkcí copy/paste a doplnil tak font o háčkované české znaky. Zde je kompletní ASCII tabulka:

ASCII table of 22x24 Canon font

      Dále jsem se podíval na zoubek textovým řetězcům jazyka v st104nt.bin. Každá hláška je uložena jako (minimálně jednou) nulou ukončený řetězec. Před shukem vlastních hlášek je ještě pole dvoubajtových pointerů ukazujících na první znak každé hlášky. Díky tomu je možná změna velikosti jedné hlášky na úkor ostatních s tím, že se opraví odpovídající pointer. Dal jsem si tu práci a přeložil téměř všechny hlášky do Češtniny. Tou jsem přepsal původní Finštinu, kterou snad nikdo postrádat nebude. Pro snadnou aplikaci češtiny na stáhnutý firmware jsem napsal tento patch: a70patch.zip [121 kB], který zahrnuje i výše zmíněný patch na prodloužení videa v 640 x 480. Pokyny jsou v readme.txt. Po patchnutí se v menu pro výběr jazyka v levém dolním rohu zobrazí volba "Česky". Zde je ukázka jak vypadá čeština v praxi, vpravo je výpis mojeho jednoduchého SysInfa.

A70 CZ menu A70 SysInfo

      Jak už jsem napsal výše, A70 je "normální" DOSový stroj a lze na něm také spouštět DOSové programy (samozřejmě je třeba brát ohled na dostupnou paměť, nestandardní I/O, BIOS, atd.). A to poměrně jednoduše. Stačí nahrát daný EXE soubor + INI soubor do adresáře \DC97\MISC na CF kartu. Jak jsem zjistil, tak pokud se na kartu nahrají víc jak 4 programy, tak se v menu zobrazí jen první 4, asi nějaké omezení položek menu. K tomu lze použít buď čtečku karet a nebo linuxový program S10SH. Ten navíc umí číst i obsah disků A: a B:. CF kartu zobrazuje jako disk D:. Zde si můžete stáhnout přeloženou verzi pro Debian/GNU Linux (doufám že pojede i na jiných distribucích) s dodělanou podporou pro A70, A75, A80 a A95: s10sh [46 kB]. Program je třeba spustit s parametrem -u, aby komunikoval po USB a ne po sériové lince. Je to vlastně takový jednoduchý shell, který pomocí příkazů zadávaných z příkazové řádky umožňuje vytvářet a mazat adresářové struktury, nahrávat a stahovat soubory,... Všechny příkazy se zobrazí po zadání příkazu help, ukončí se příkazem quit. Pokud máte zájem v Linuxu tento program používat se svým novějším foťákem, napište mi product ID číslo vašeho foťáku, které zjistíte příkazem s10sh -uD, a já se to pokusím do s10sh přidat. Např. A70 má product ID 3073h.
      Spolu s EXE souborem je třeba nahrát také INI soubor stejného jména, podle nějž firmware foťáku pozná co je to zač. Formát INI souboru je velice jednoduchý, jde o jediný řádek:
Canon DigitalEye executable:VERSION=0001:jméno programu
kde jméno programu je text 15 znaků dlouhý (nevyužité znaky jsou zapsány jako mezery), který se zobrazí v Play Menu foťáku (v režimu prohlížení) jako název programu. Spouští se pak tlačítkem SET. Dostupných programů zatím není mnoho a ani nic moc užitečného nedělají, protože ještě není znám způsob programování hardware a I/O. To, co jsem našel, bylo většinou v assembleru, ale lze použít i Pascal, C a BASIC. Zde je jeden ukázkový prográmek, který asi na 1/2 s vypíše na displej "Hello World". Chtělo by to postupně se získanými informacemi o hardware vytvořit nějakou standardní C knihovnu pro I/O operace, ne každý je HC ASM coder.
      A nyní něco pro hardweráře. Na Yahoo fóru se objevily fotky rozebraného PowerShotu A60, předpokládám že A70 se nijak výrazně lišit nebude. Na fotkách je vidět DSP DiG!C, FPGA NEC emulující 186, 16 MB FlashROM, 10-bit A/D převodník HD49340 a další brouci.

Odkrytovaný A60 Mainboard strana1. Mainboard strana1. DSP Digic FPGA NEC

A zde jsem našel fotky přímo A70, v dobré kvalitě a je jich pěkná kupa! Je to vlastně taková fotodokumentace jak foťák rozebrat. Autor tak zřejmě činil za účelem odstranění chyby E18, což je chyba servomechanismu objektivu. Někdy jen stačí vyčistit a je vše OK. Dále jsem našel ještě oficiální canoňácký soupis mechanických dílů různých digitálních i kinofilmových foťáků + příslušenství, který taky velice dobře poslouží při rozebírání a skládání dohromady.

      17.9.2004 - Dnes mi přišel mejlem slovenský překlad od Mira. Přeloženo je asi 75% textu, zbytek je v Češtině. Soubory se Slovenštinou jsem přidal do patche, který je ke stažení výše a updatnul jsem mapu znaků.

      10.10.2004 - Jukka Laurila portoval patch na prodloužení videa v 640 x 480 na další foťáky a to sice A75 a Ixus v3. Zajímavé je, že Ixus umí videa delší než 30 s i přehrát. Informace jak patchnout firmware jsou zde: http://nostromo.dynalias.org/canonhacking, [local mirror] Canon také vydal oficiální firmware update 1.0.1.0 pro A75 opravující nechtěnou změnu clony v manuálním režimu. I tak ale zůstavají další mouchy.
      Jak jsem zmínil výše, foťák umožňuje spustit uživatelský program z adresáře \DC97\MISC na CF kartě. Při spuštění mu systém předává dva argumenty: argv[0]="plna cesta k programu" a argv[1]="plna cesta k .ini file". Také jsou nastaveny proměnné prostředí PROMPT=$P$G a PATH= (prázdná cesta) Program může být napsán v Assembleru, C, Pascalu, BASICu... Na tom až tak nezáleží, ale podmínkou je, aby výsledný kód používal instrukční sadu 8086/80186. Programátor může využívat služby DOSu k různým souborovým operacím. Horší je to ale s obrazem a vstupy. Int 10h pro videoslužby zde nefunguje. Na základě informací od Lexeicha jsem se pustil do pragramování C knihovny, která by měla obsahovat funkce pro základní I/O operace foťáku. Ke stažení je zde: PSIOlib 1.2 [12 kB], obsahuje C zdroják, přeložený EXE soubor a INI soubor pro foťák. Zdroják lze přeložit v Borland/Turbo C. Jak funguje volání těchto systémových funkcí je patrné z tohoto popisu (který je anglicky kvůli dalším lidem z Yahoo group). Zde je třeba poznamenat, že ač má LCD rozlišení 320 x 240, tak interně se pracuje s rozlišením 704 x 481 (což trochu připomíná PAL, ale liší se to typ od typu, např. u S400 je to 720 x 540), které se pak downsampluje a posílá na LCD. To je kvůli většímu rozlišení pro výstup na TV.
      Vyskytlo se taky pár problémů. Nejzávažnější je, že uživatelský program může běžet maximálně asi 16 s a potom se foťák vypne. Foťák zřejmě obsahuje watchdog, který pokud se nenuluje, tak dojde k přetečení a vypnutí (ochrana proti zatuhnutí programu). To se mi už podařilo odstranit funkcí ps_get_status(), kterou je třeba volat při delších pauzách. Další podivnou věcí je, že při přečtení systémového datumu a času se tato hodnota dále neaktualizuje a funkce vrací stále tytéž hodnoty dokud se foťák nevypne a znovu nezapne. Pak jsem také zatím nepochopil formát položek barevné palety. Paleta obsahuje 16 barev, každou 2B velkou. V nižším Byte je význam bitů celkem zřejmý - GBBBGRRR, vyšší Byte pak nějak ovlivňuje jas všech složek naráz, ale jen dolních 6 bitů. Tedy něco jako ??YYYYYY.

      3.4.2005 - Tak po delší době opět pár novinek: Miro mi poslal update slovenčiny pro PowerShot A70, kterou jsem zahrnul do kumulativního patche (čeština a video-patch).
      Na základě dalších informací z Yahoo fóra (hlavně díky projektu Tearless SDK release 0.1 by Nick T Tate) jsem rozšířil a předělal svoji knihovnu PSIOlib 2.0 [8 kB]. Nyní se API funkce volají přímo pomocí svých funkčních prototypů místo assemblerského kódu. Pro správnou inicializaci pointerů na funkce API je bezpodmínečně nutné zavolat na začátku programu funkci ps_init(). Dále přibyly funkce pro práci s barevnou a funkce na čtení stavu tlačítek, jejichž pomocí lze ovládat vlastní program. Také jsem vyřešil automatické vypínání foťáku - v déle běžícím programu je třeba pravidelně volat funkci ps_get_status() (pro jistotu řekněme každých 5 s).
      Knihovnu PSIOlib jsem hned použil v dalším softwarovém projektu - Offline histogram, který se může hodit uživatelům starších PowerShotů, jejichž firmware tuto funkci neobsahuje (nelze ji tedy nijak zapnout). Novější PowerShoty od A75 již histogram mají (i když taky jen offline). Můj histogram je tedy externí program, který se po nahrání na CF kartu objeví v Play Menu a po jeho spuštění lze nacvakat jméno souboru s fotkou (nebo použít jméno posledně prohlížené fotky) a následně je během 5 - 10 s vypočten a zobrazen 64-úrovňový histogram (který se aktualizuje už v průběhu výpočtu).
      Jak program funguje? Protože není dosud známá API funkce na dekódování JPEGu, musel jsem použít softwarový JPEG dekodér. Po vyřešení pár problémů s přetékáním proměnných (při portování z 32-bit GCC do prostředí 16bit překladače Borland C) se mi podařilo rozchodit JPEG dekodér 1.0318 od Dmitry Branta, který byl původně určený pro GameBoy Advance. Jeho kód byl značně kratší a jednodušší než knihovna IJG LibJPEG, která ani na PowerShotu nefungovala (zřejmě kvůli paměťovým nárokům). Jistě existují i lepší a rychlejší dekodéry, ale dotyční je nemají zájem dát volně k dispozici. Nevýhoda SW řešení je jasná - Zatímco grafické API funkce má na starosti rychlý procesor DiG!C, tak SW dekodér běží na pomalém x86 procesoru. Protože by dekódování obrázku v plném rozlišení trvalo neúnosně dlouho (řádově minuty až desítky minut), upravil jsem dekodér tak, aby načítal pouze náhled. Ten je přítomný na začátku každého JPEG souboru, který foťák vyprodukuje. Jeho rozlišení je 160 x 120 a velikost typicky kolem 5 kB. Takovéto množství dat už je zvládnutelné. Dalšího urychlení jsem dosáhl tím, že jsem z dekodéru vyhodil zpracování chrominanční složky a nechal pouze jas. Pak už jen stačí počítat příspěvky od různých jasových úrovní, znormovat a výsledek vykreslit jako sloupcový graf. Z tohoto plyne další nevýhoda, že takto vypočtený histogram je méně přesný, než by byl při výpočtu z kompletních dat. Vezmeme-li extrémní případ, že vyfotíme jemnou černobílou šachovnici, měl by mít histogram 2 stejné čáry v krajích. Náhled ovšem tyto malé obrazové elementy zprůměruje do šedé barvy, takže výsledkem bude jedna čára uprostřed. Ve většině normálních případů ale přesnost pro orientační zobrazení stačí. Tedy hned vidíme jestli je snímek přepálený nebo je tam naopak velká rezerva a tmavé odstíny se nám tak topí v šumu. Máme tak možnost zanalyzovat snímek přímo na místě a případně ho po korekci expozice pořídit znovu.
      Aby nebylo potřeba pokaždé ručně zadávat jméno souboru, pokusil jsem se zjistit název naposledy prohlíženého obrázku. Prohledal jsem obsah celé RAM (dolní 1 MB) a našel ono jméno na adrese 0000:B4D7h. To je však nastaveno až tehdy, když v režimu prohlížení přejdeme alespoň o jednu fotku dopředu/dozadu, jinak je hodnota neinicializovaná a pak se automaticky nastaví defaultní název IMG_0001.JPG. Tato finta ale bude nejspíš fungovat jen na A70 s FW 2.0.0.0 a ne jiných, rád bych o tom získal další informace.

Histogram file menu Histogram mode 1 Histogram mode 2

      Na závěr trochu smutná zpráva: Canon zřejmě končí s platformou x86 a ROM-DOS. Nové fotoaparáty jako např. PowerShot A6xx/7xx jsou vybaveny čipem DiG!C II/III, jenž v sobě integruje obrazový DSP a jádro ARM9, na němž běží unixový RTOS VxWorks 5.5, který se používá např. v síťových a průmyslových zařízeních a nově DRYOS, který vyvinul přímo Canon. Otázka je, jestli je i nadále zachována možnost spouštění uživatelských programů z paměťové karty. Tato otázka je nyní zodpovězena, ruští hackeři už rozběhli na těchto digitálech vlastní ELF kód z CF karty.

      8-10.4.2005 proběhl v Červeném Újezdě u Prahy 2. ročník demopárty Marast (pár fotek zde), kde jsem po promítnuní oficiální produkce pustil na foťáku (připojeném přes videovýstup na projektor) jako bonus svoje první canoňácké demo A small tribute to Second Reality. Jde o malou vzpomínku na výše zmíněné demo od grupy Future Crew, vydané 1993 na Assembly ve Finsku. Demo které dokázalo vydupat nemožné z tehdejších 386tek. Jedno z prvních, co jsem viděl (až několik let po jeho vydání), které mě nadchlo tak, že i dnes je stále moje nejoblíbenější. Pokusil jsem se tedy přepracovat alespoň první scénu na Canon. Narážel jsem přitom na řadu omezení jako malý výkon procesoru, nemožnost přímého přístupu do videopaměti displeje (veškerá geometrie je kreslená pomocí funkce API na vyplněný obdélník, tedy i samotný pixel se kreslí jako obdélník a zde je omezení rychlosti asi na 2000 obdélníků/sec. - to výrazně omezuje komplexnost scény) a pouze 16-ti barevné palety. Celé demo se mi podařilo vměstnat do necelých 16 kB kódu (včetně závěrečné bitmapy). Pro ostatní, kteří nemají foťák od Canonu (nebo mají nový model s OS VxWorks) jsem přibalil 2 verze pro spuštění na PC (DOS/DJGPP 32-bit verze a Win32/SDL 32-bit verze).

Canon demo-intro Canon demo-starsky
Canon demo-spaceship Canon demo-photo

      14.4.2005 - Na základě pár připomínek k histogramu jsem vydal další vylepšenou verzi 1.05. Jako hlavní vylepšení jsem přidal alternativní mód zobrazení histogramu, kdy se zobrazuje malý histogram v pravém horním rohu s průhledným pozadím tak, že je pod ním vidět naposled prohlížená fotka. Mezi oběma režimy lze přepínat tlačítkem SET. dále jsem vylepšil získávání jména soboru i adresáře tak, že by neměl být problém ani při kontinuálním číslování snímků (program detekuje adresář \DCIM\???CANON s nejvyšším číslem). Také jsem přidal zobrazení velikosti souboru v úvodní obrazovce.
      Odpoledne jsem se byl na výstavě Interkamera 2005 pomazlit s novinkami od Canonu, které si bylo možno osahat a na vlastní CF si nafotit pár vzorků. Jak jsem zjistil, tak nové zrcadlovky EOS 20D a 350D už také neběží na DOSu, ale fotí opravdu pěkně :). Všiml jsem si také, že ignorance Canonu vůči českému trhu poněkud polevila, když se u pár PowerShotů (A5xx a Ixus) na informační cedulce objevil velký nápis "Mluvím česky!". Skutečně v menu pro výběr jazyků přibyl další sloupec šesti jazyků včetně češtiny. Ještě kdyby tak přestali lidem házet klacky pod nohy svým nestandardním PTP protokolem a naimplementovali USB Mass-Storage...

      18.4.2005 - Jsem na jednom ruském fóru objevil odkaz na port linuxového komunikačního programu S10SH pro windows - WinS10SH: http://wins10sh.narod.ru Alexeje Polushina. První verze, kterou jsem odtamtud stáhl, vyžadovala ještě stažení a instalaci knihovny libusb-win32 mi bohužel nefungovala ani po vlastní kompilaci. Další build z 22.4.2005 již funguje správně jak pod Win98, tak Win2000 a navíc není třeba již nic instalovat. Takže paráda, teď můžu mít při programování spuštěné současně DJGPP, Borland C a ještě to hned ládovat po kabelu do foťáku. Taky jsem našel novější verzi Fayova programu DirView 1.013, který kromě práci se soubory umí také prohlížet a ukládat paměť a I/O porty.

      6.5.2005 - Tak jsem si řekl, že bych mohl pro legraci udělat ještě nějakou hru. V úvahu připadaly buď žížalky nebo tetris. Obě jsou celkem jednoduché a využívají pravoúhlých elementů, avšak ani jedno jsem nikdy neprogramoval. Nakonec jsem se rozhodl pro Tetris (ver. 1.00), který si sem tam zahraju - ten co je vestavěný v Dos Navigatoru. Hrací pole je implementované jako 2-rozměrné pole do kterého ukládá barva čtverečků. Okraj pole je vyplněn jednou určitou barvou, která se jinde nevyskytuje a slouží pro detekci kolizí okraje a hrací kostičky. Ta se generuje jako matice 4x4 nebo 3x3 jako jeden z náhodně vybraných prototypů. Na matici je aplikovaná translace nebo rotace o 90° a po detekci kolizí je překopírovaná do hracího pole. To se pak vykresluje na LCD funkcí ps_draw_frect. Pokud už matici nelze posouvat dále dolů, je umístěna v poli natrvalo a generuje se nová. Mezitím se také detekuje přítomnost plných řádků, které jsou z pole odstraňovány a celý obsah nad uvolněným řádkem se posune dolů. Mno nebylo to až tak triviální jak jsem čekal, jak se mi to povedlo si můžete vyzkoušet sami, ukázka viz foto níže (na Zdendově A75 - větší displej).
      Dále jsem si na zkoumání firmware za běhu napsal pomůcku na vyhledávání řetězce v paměti (dolní 1 MB). Řetězec může být až 12 znaků dlouhý a lze nastavit rozlišování velkých a malých písmen. Protože počet uživatelských programů v menu foťáku je omezený, integroval jsem do programu také předchozí programy SysInfo, Prime benchmark a Color mixer. Dohromady se balík jmenuje SysTools 1.00.

Tetris game Tetris game over

      13.5.2005 - L.Meijvogel provedl optimalizace JPEG dekodéru ve stávajícím histogramu 1.05. Na základě jeho úprav jsem vydal novou verzi 1.11, která je asi o 1 - 1,5 s rychlejší. Dále jsem umožnil konfigurovat některé důležité proměnné histogramu prostřednictvím .INI souboru. Zejména je pak důležitá adresa řetězce s cestou k prohlíženému souboru, pokud stávající nefunguje, je třeba ji najít pomocí SysTools 1.01 (hledat řetězec "D:\DCI", měl by se nalézat někde na adrese 2xxxxh). Při editaci INI souboru je důležité zachovat délku 1. řádky na 57 znaků (dorovnání mezerami). Také jsem upravil definice tlačítek v PSIOLib 2.3 aby fungovaly s více typy foťáků - definuje se ještě před inkludováním knihovny pomocí #define CAMERA_xxx.

      1.8.2005 - Při disassemblování programu update.exe, kdy jsem se snažil najít port, kterým se ovládají LED, jsem náhodou narazil na tónový generátor (port LED jsem zatím ale nenašel). Zápisem do horních 8-mi bitů portu F05Eh se nastaví dělitel základního kmitočtu 15625 Hz a dolními 2-ma bity se signál hradluje a zapíná celý sound systém. Z uvedeného plyne minimální frekvence 61 Hz, což dává celkem slušný frekvenční rozsah. Z legrace jsem tedy zkusil naprogramovat jednoduchý přehrávač melodií NotePlay 1.0, který umí číst notový zápis z textového souboru (je kompatabilní se zápisem melodií pro mobily Siemens).
      Do knihovny PSIOlib 2.5 jsem přidal nové funkce ps_sound, ps_nosound, ps_beep, definice not a funkci na vykreslení barevného kurzoru místo dříve používaného markeru ps_draw_cursor.
      L.Meijvogel opět zapracoval na optimalizaci JPEG dekodéru (Huffman, IDTC, ...), což přineslo asi 40% zrychlení v nové verzi Histogramu 1.14. Dále jsem rozšířil možnosti nezávislého nastavení režimů zobrazení pro náhled a finální podobu histogramu. Pro náhled lze nyní použít celoobrazovkový 32-sloupcový histogram, který se vykresluje výrazně rychleji než 64-sloupcový a nakonec je možno použít malý transparentní histogram. Pro finální zobrazení lze vybrat buď 64-sloupcový nebo malý transparentní histogram, mezi kterými lze přepínat jako dříve. Nastavení se provádí v .INI souboru.
      Alexey Polushin našel způsob, jak jednoduše spustit hlavní program camera.exe z kořenového adresáře CF karty místo z ROM (firmware). Stačí do bootsectoru CF karty zapsat řetězec "BOOTDISK" (bez ukončovací \0) na offset 40h. Změna se projeví při dalším zapnutí foťáku. Předem upozorňuji, že je třeba mít nějakou čtečku CF karet, protože pokud foťák nebude moci z CF karty nastartovat, tak nebude moci kartu ani zformátovat (a bez karty foťák taky nenajede, navíc si hlídá otevření dvířek). Nicméně tato možnost velice zjednodušuje testování upraveného firmware (camera.exe), kdy místo zdlouhavého flashování celého firmware, stačí nahrát upravený soubor na CF kartu a bezpečně otestovat. Samozřejmě mě hned napadlo vyzkoušet, jestli by se foťák nerozběhl s camera.exe z A75 nebo A80, ale bez šance - je vidět že rozdíly ve firmwarech nebudou malé (nebo si program nějak identifikuje typ hardware). V nové verzi SysTools 1.10 jsem tedy přidal položku, která podle výše zmíněného postupu modifikuje bootsector CF karty. Pro návrat do normálního stavu stačí ve čtečce nahrát na CF kartu soubor RESTORE\camera.exe (vymaže boot signaturu a restartuje foťák), který je v balíčku SysTools, nebo můžete kartu zformátovat.
      Pro představu jsem se pokusil sestavit jednoduchou mapu paměti (dolní 1 MB) na A70 FW verze 2.0.0.0, kterou se budu dále snažit upřesňovat. Za zmínku stojí okno E0000 - EFFFFh, které slouží k mapování paměti nad 1 MB a ovládá se přes I/O porty FED0h, FED2h, FED4h a FED6h, ale zatím jsem s tím neexperimentoval. Některé dumpery paměti (jako třeba ten v DirView) toho úspěšně využívají k dumpu celých 16 MB paměti. Camera.exe si tímto způsobem mapuje další moduly firmware BankProg, aby je mohl spustit. Do rozsahu 80000 - DE5FFh je mapován RAMDISK A:, který obsahuje hlavní program camera.exe. Formát RXE umožňuje běh z RAMDISKu, takže není třeba další relokace. V oblasti 4F000 - 684FFh leží FrameBuffer. Jeho rozlišení je 720 x 288 / 4 bity na pixel, celková velikost 103680 B. Pixely jsou ukládány 2 do jednoho Byte od levého horního rohu po řádkách dolů. Hodnota pixelu představuje index do palety. Tímto tedy padá výrazné omezení API, které neumožňovalo kreslit po jednotlivých pixelech. U různých modelů se ale může umístění a organizace FrameBufferulišit. Zatím to mám vyzkoušeno na A70, A75 a A95. Na začátku paměti je klasicky tabulka vektorů přerušení obsahující 256 pointerů SEGMENT:OFFSET na obslužné rutiny daných přerušení

A70 memory map

      12.11.2006 jsem byl požádán o úpravu patche na české menu pro foťák PowerShot A60. Do nového překladu bych se nepouštěl, ale při analýze firmware A60 jsem zjistil, že používá úplně stejný jazykový soubor st104nt.bin jako A70. Takže stačilo jen najít správné offsety v souboru firmware a podle toho upravit dávkový soubor patche, jenž vloží do firmware zvolený jazyk a český font. Patch byl poté uživatelkou úspěšně odzkoušen.

      26.7.2007 Potěšilo mě, že se najdou i takoví, kteří dokážou nejen brát ale i dávat a přiložit ruku k dílu. Díky patří Honzovi, který po úvodní konzultaci sám přeložil české menu na digitál Canon PowerShot A95. Přeloženy jsou téměř všechny hlášky (až na 2) včetně počeštěného fontu s diakritikou. Firmware vychází z modu Alexeje Polushina 1.0.0.1, takže v sobě automaticky zahrnuje i patch na prodloužené video v 640 x 480. Upravený firmware je ke stažení zde. Soubor je potřeba rozzipovat, PS_A95.FIR nahrát do kořene CF karty a v menu zvolit "Firmware Update". Osobně ho provozuju bez problémů půl roku.

      3.1.2008 Jen houšť a větší kapky, našel se další dobrovolník, který s mou počáteční pomocí přeložil české menu pro Canon PowerShot S45. Budulínek nám počeštil všechny hlášky včetně fontu s přidanou diakritikou. Pro aplikaci patche je potřeba si stáhnout originální firmware 1.0.2.0, další podrobnosti viz přiložený readme.txt.

      26.1.2008 Před časem jsem se zde zmiňoval změně vnitřní architektury nových digitálů Canonu na DiG!C II/III s ARM9 jádrem a operačním systémem VxWorks. Ani tato nová architektura neodolala firmware hackerům, kterým se podařilo do systému proniknout a přidat vlastní rozšíření funkcí. Výsledkem jejich snahy je rozšíření CHDK firmware, který přináší v první řadě focení do formátu RAW, dále živý histogram na LCD, indikátor přepálených oblastí, rozšíření expozičních časů, online kalkulátor DOF, ukazatel stavu baterie, spouštění vlastních skriptů v mikroBASICu, textový prohlížeč, kalendář a nějaké hry. Nejedná se přitom o modifikaci stávajícího firmware ve FlashROM, ale o externí modul, který se ručně nebo automaticky při bootu zavádí z paměťové karty, takže je velmi snadné foťák uvést do původního stavu. V současnosti je CHDK podporován na: PowerShot A560, A570, A610, A620, A630, A640, A700, A710, S2 IS, S3 IS, G7 a nadále se rozšiřuje. Další info na CHDK fóru.


Download

Firmware, patche a nástroje:
 A70ORIG.ZIP [1881 kB]  Originální firmware update 2.0.0.0 pro A70 od Canonu
 FWPATCH.EXE [35 kB]  Patch na prodloužení videa v 640 x 480 na 180 s pro A70, FW 2.0.0.0
 A70PATCH.ZIP [121 kB]  Kumulativní patch obsahující předchozí patch na prodloužení videa a české a slovenské menu pro A70, FW 2.0.0.0
 A95MODFW.ZIP [1922 kB]  Upravený firmware 1.0.0.1 pro A95 od Alexeje Polushina s prodlouženým videem v 640 x 480 a českým menu od Honzy
 A60PATCH.ZIP [87 kB]  Patch na české a slovenské menu pro A60, FW 2.0.0.0
 S45PATCH.ZIP [83 kB]  Patch na české menu pro S45 od Budulínka, FW 1.0.2.0
 A510PTCH.ZIP [16 kB]  Patch na prodloužení videa v 640 x 480 na 180 s pro A510, FW 1.0.0.1
 FWDECR.ZIP [32 kB]  Firmware Decrypter - EXE + zdrojový kód v C (DJGPP)
 FWDECUNP.ZIP [42 kB]  Firmware Decrypter & Unpacker - EXE + zdrojový kód v C (DJGPP)
 FWDECUN2.ZIP [34 kB]  Firmware Decrypter & Unpacker upravený pro novější firmwary jako třeba PowerShot S1-IS - EXE + zdrojový kód v C (DJGPP)
 FWENCPAK.ZIP [37 kB]  Firmware Packer & Encrypter pro zpětné sestavení .FIR souboru - EXE + zdrojový kód v C (DJGPP)
 FONTEDIT.ZIP [37 kB]  Editor rastrového fontu firmware 22x24 - EXE + zdrojový kód v C (DJGPP)
 CWSDPMI6.ZIP [55 kB]  CWSDPMI server potřebný pro běh programů z DJGPP, není potřeba při spouštění programů pod Windows
 S10SH [46 kB]  Komunikační program S10SH v. 0.2.3 pro Linux pro přenos souborů z/do foťáku přes USB kabel (doplnil jsem podporu pro A70, A75, A80, A95 a Ixus 330) - ELF binary
 WINS10SH.EXE [38 kB]  Komunikační program WinS10SH v. 0.2.3 (port Linuxové verze) pro přenos souborů z/do foťáku přes USB kabel - EXE (Win32)
 FWLIST.TXT [4 kB]  Výpis souborů obsažených ve firmware update 2.0.0.0 pro A70 se stručným popisem
 SYSFUNCS.HTM [12 kB]  Popis některých systémových funkcí API, dále neaktualizováno

Programy pro fotoaparát (nahrát do \DC97\MISC na CF):
Programs for camera (upload .EXE and .INI files to \DC97\MISC directory on CF):
 PSIOLIB.ZIP [10 kB]  PowerShot I/O library 2.5 (knihovna funkcí pro programování) - zdrojový kód v C (Borland C)
This open source library contains a lot of useful functions to control the camera's I/O (displaying text and gfx, key input and more) - Borland C source code
 HISTOGR.ZIP [49 kB]  Offline histogram 1.14 pro starší modely bez této vymoženosti, ovládá se pomocí tlačítek - EXE (Borland C)
The offline histogram is designed for older cameras without this feature. It contains a software JPEG decoder which processes image thumbnail and calculates the histogram - EXE (Borland C build)
 TETRIS.ZIP [67 kB]  Hra Tetris 1.02 - EXE (Borland C, DJGPP)
A Tetris game, similar to the Dos Navigator one. Now you won't be bored with your camera when there is nothing to photograph around. :) - EXE (Borland C build for camera, DJGPP build for PC [DOS])
 DEMO2NDR.ZIP [181 kB]  Demo "A small tribute to Second Reality" - EXE (Borland C, DJGPP, MinGW32)
Do you remember the legendary demo Second Reality by Future Crew released in 1993? This is my attempt to remake of first scene of that demo, also presented on Czech demoparty Marast 2005 - EXE (Borland C build for camera, DJGPP and MinGW32 builds for PC [DOS/Win32])
 SYSTOOLS.ZIP [27 kB]  SysTools 1.10 integruje dohromady SysInfo, Memory search (nástroj na hledání řetězce v paměti), Prime benchmark, Color mixer, Tone Generator a Make CF bootable - EXE (Borland C)
This program integrates SysInfo, Memory search (a tool for search a string in a camera's memory [1 MB]), Prime benchmark, Color mixer, Tone Generator and Make CF bootable together - EXE (Borland C build)
 NOTEPLAY.ZIP [25 kB]  NotePlay 1.0 - přehraje monofonní melodii podle notového zápisu v textovém souboru, který je kompatabilní se zápisem melodií pro mobilní telefony Siemens. Další melodie lze stáhnout např. zde - EXE + zdrojový kód v C (Borland C)
A simple note-track player which can play a melody written as note sequence in text file (compatible with Siemens phone melodies - see here) - EXE + C source code (Borland C)
 COLORMIX.ZIP [8 kB]  Program na míchání barev do palety, ovládá se pomocí tlačítek, vývoj ukončen - EXE + zdrojový kód v C (Borland C)
This program allows you to mix one color in system palette via changing color bits using buttons, obsolete - EXE + C source code (Borland C)
 SYSINFO.ZIP [8 kB]  Zobrazí informace o foťáku a aktuální barevnou paletu, ovládá se pomocí tlačítek, vývoj ukončen - EXE + zdrojový kód v C (Borland C)
It displays a system information about camera (e.g. FW version, PID, name, free disk space, date/time, current color palette...), obsolete - EXE + C source code (Borland C)
 PSBENCH.ZIP [8 kB]  Program na počítání prvočísel a měření výkonu, vývoj ukončen - EXE + zdrojový kód v C (Borland C)
A simple prime benchmark (displays few primes and measure system speed), obsolete - EXE + C source code (Borland C)
 KEYS.ZIP [8 kB]  Program na zobrazení flagu tlačítek - EXE + zdrojový kód v C (Borland C)
This small program displays key-state flag - EXE + C source code (Borland C)
 UNIBATT.ZIP [30 kB]  UniBatt 0.4M - šikovný prográmek, který zobrazí aktuální napětí baterie, zbývající náboj a teplotu CCD od Alexeye Goncharovskyho (více na: http://forum.ixbt.com/topic.cgi?id=20:11661) - EXE + zdrojový kód v C (Borland C)
This utility allows you to monitor current battery voltage, remaining charge and CCD temperature by Alexey Goncharovsky - EXE + C source code (Borland C)
 DOF_CALC.ZIP [26 kB]  Depth of Field Calculator 0.6d - program na výpočet hloubky ostrosti z vyfocených JPEGů od Alexeye Goncharovskyho (více na: http://forum.ixbt.com/topic.cgi?id=20:11661) - EXE + zdrojový kód v C (Borland C)
A tool for calculating depth of field of stored JPEG photos by Alexey Goncharovsky - EXE + C source code (Borland C)
 DIRVIEW.ZIP [15 kB]  DirViewer 1.014 - jednoduchý souborový manažer, prohlížeč a dumper paměti a I/O portů (Andrey Logvinenko, fay.nm.ru) - EXE + zdrojový kód v Pascalu
Simple file manager, memory and I/O ports viewer and dumper utility - EXE + Pascal source code
 SHOWHW.ZIP [2 kB]  Zobrazí na displeji "Hello World!" (první program pro Canony z Ruska) - EXE + zdrojový kód v assembleru
Displays "Hello World!" on camera's LCD (the 1st program for Canon from Russia) - EXE + assembler source code



Zpět

Aktualizováno 9.10.2016 v 16:49