29Bře2017
 

Když jsem se kdysi dávno dostal k počítačům, bylo to samozřejmě jako většina lidí přes hry. Měli jsme jen pár kazet nahraných hrami. Mezi nimi se objevila hra, která mě úplně pohltila. Na inzerát se daly sehnat nahrané kazety s hrami a mě vždy potom bavila každá, která vypadala jako ta moje oblíbená. Nelíbily se mi násilné střílecí hry, možná to bylo výchovou, možná celkovou atmosférou tehdejší výchovy mládeže obecně, možná povahou. A tato hra byla ideální, nikdo v ní nestřílel, byla obestřená takovým zvláštním tajemnem a hlavní hrdina v ní měl za úkol uklidit dům, což je bezesporu prospěšná činnost. Ti bystřejší z vás jistě poznali, že mluvím o Jet Set Willym. Tuto hru jsem nějakou shodou okolností uviděl a hrál dokonce ještě před tím, než jsem se setkal s Manic Minerem, který byl na jiné kazetě a u kterého mi později vadilo, že se nedá přecházet z místnosti do místnosti. JSW je pro mě hra, která ve mě budí nejvíc vzpomínek a pocitů. Nikdy jsem neměl potřebu žádnou hru dohrát. Líbila se mi atmosféra, grafika, případně hudba, ale to bylo všechno. A tak jsem se ve hrách jen tak procházel a objevoval další záhadná zákoutí. Když se k nám dostaly tehdejší zpravodaje z Karolinky a první černobílé Mikrobáze, hltal jsem v nich mimo článku o tricích v BASICu i krátké shrnutí o hrách a jejich úpravách na nekonečné životy. Četl jsem si ho pořád dokola. Byly tam pouky na známé hry a jako pěst na oko se tam vyjímal seznam pouků na Jet Set Willyho, který svou obsáhlostí převyšoval všechny ostatní hry. Pomocí POKE šla hra upravit nejen na neubývající životy, ale např. i na pád z výšky, který Willyho nezabije, zmizení Marie z ložnice, různé debuggerské úpravy, neboť hra vyšla s mnoha bugy a díky nim byla nedohratelná (což jsem tehdy ale ještě nevěděl). Vysvětlivky u pouků byly strohé a tak jsem až po mnoha letech přišel na to, kde se ukrývají skryté a nesebratelné předměty a díky tomu, že se ze hry stal zejména v Británii velký fenomén, v dostupném editoru vznikly desítky klonů s novými postavičkami a místnostmi atd. Mysteričnosti přispěl i samotný autor Matthew Smith, který po dokončení JSW začal žít bohémským životem a zmizel na mnoho let ze scény počítačových her, aby se nakonec objevil a stala se z něj celebrita. Tehdejší povídačky o tom, co se připravuje, mě vždycky bavily. Vedly se nejen o JSW a jeho údajném pokračování Willy Meets The Taxman, ale i o jiných hrách. Nejtypičtějším příkladem je nikdy nevydaná Mire Mare od Ultimate. Když se ale vrátím k JSW, skutečně to byla tehdy svým rozsahem zábava na spoustu večerů. Jednak tím, jakým způsobem šla modifikovat a druhak svou pěkně animovanou grafikou a nutností hru postupně prozkoumávat a hledat triky, jak se kam dostat. Protože jsme tehdy počítačem okupovali televizi v obýváku, bylo hraní na počítači speciální událost, takový obřad.

Letos před Foreverem mě Wotnau pověřil vymyslet několik otázek do svého kvízu Master Blaster’s Revenge, což bylo to, že měl soutěžící uhodonut, co je na daném screenshotu ze hry jinak, tedy např. postavička u jiné hry, která tam nepatří, apod. Hned podvědomě mě napadl Jet Set Willy a místnost Out on a Limb, kde se Willy dostává na větev megastromu (Mega Tree) s ptačím hnízdem a schůdky v podobě zelených lístků. Tak jsem Wotnauovi navrhl – “Což tak otočit lístky zrcadlově? Mohl by to být docela pěkný chyták.” A taky, že byl. Záměnu neuhodl nikdo, díky čemu jsem se mohl jen tak pro sebe malinko škodolibě zasmát. Obrázek jsem narychlo vyhledal Googlem a uvedený screenshot je típnutý s cheatem, protože časové údaje na něm nejsou reálné (Willy se nemá šanci dostat za tři herní minuty do této místnosti) a také počítadlo předmětů ukazuje nulu.

Po několika dnech mi to nedalo a začal jsem přemýšlet, jestli by se tento stav dal navodit normálním hraním bez žádných pouků a cheatů. Tedy časový údaj 7:03am ponechme stranou, ten nereálný je, ale spíš mě zajímalo, zda se dá do místnosti dostat, aniž by se po cestě sebral nějaký předmět. A tak jsem si pustil emulátor a začal zkoušet různé varianty, z čehož jsem zjistil, že to jde. S nula předměty jednou, pekelně těžkou cestou a s jedním předmětem rovněž 0 předměty druhou, lehčí cestou. Tedy kromě běžné cesty, kdy ale Willy musí chtě nechtě v místnosti Ballroom West sebrat minimálně 5 předmětů (existuje i třetí cesta se dvěma předměty, viz poslední odstavec článku).

První, těžká cesta, vede z koupelny přes kuchyň, The Cold Store, Back Stairway a přes The Wine Cellar doprava, kde první vážnější problém nastává v The Forgotten Abbey, kde musíte mít předem nacvičené přeskakování potvor ve spodní části. Následuje projití The Security Guard spodem a přes Tree Root a Under The Drive se dostanete na The Drive, odkud se dostanete k cíli už poměrně snadno.

Druhá cesta je snažší, ale seberete v ní jeden předmět. Z koupelny jděte opět dolů a přes kuchyň se dostaňte na Back Stairway, ale jděte po schodišti až nahoru a v místnosti We must perform a Quirkafleeg vylezte po laně nahoru. Octnete se na Watch Tower, kde vyskákejte uplně nahoru na jezdící plošinku a při přeskakování nástrahy seberete jeden předmět vlevo. Na horní jezdící plošince nezapomeňte vyskočit, což vás přenese do místnosti The Off Licence, úplně na jiném konci domu. Odtud jděte vlevo a dojdete k megastromu z druhé strany.

Pro představu kudy jít uvádím link na mapu hry od Pavera.

[UPDATE] Balamutil jsem vás, a nikdo si toho nevšiml! Styďte se. Za prvé, předmět v místnosti Watch Tower lze nesebrat a to tak, že se dá šikovně přeskočit. Za druhé, existuje ještě třetí cesta, kde ale už opravdu musíte sebrat dva předměty. Cesta je stejná, vrchem přes střechu, ale ve We must perform a Quirkafleeg nešplhejte po laně nahoru, ale pokračujte dál doprava až do místnosti Rescue Esmeralda. Tady osvoboďte Esmeraldu, čili seberte mříže (ony dva předměty) a ze žluté jezdící plošinky vyskočte nahoru doprava. To vás propasíruje do místnosti Ballroom East, odkud už stačí jen vymotat z koberce a pokračovat doprava přes The Hall, The Front Door, The Security Guard, atd. Text v článku jsem opravil.

 

24Bře2017
 

Asi tušíte správně, řeč bude o programovacím jazyku BASIC V2, který je implementovaný v počítači Commodore 64. Jeho kvality bych vám rád v kostce popsal. Předně ale něco z historie. Jak se takový softwarový zmetek ocitl v tak sofistikovaném stroji, jakým je Commodore 64? Za všechno můžou samozřejmě peníze. Náš milý, tlustý a ošklivý Jack Tramiel, majitel firmy Commodore, se v sedmdesátých letech rozhodl, že se bude zabývat výrobou počítačů, protože v tom viděl lukrativní příležitost. To mu nakonec vyšlo, o tom není pochyb. Protože to byl ale velký skrblík, obracel v kapse každý dolar a každou kupní smlouvu firmy osobně revidoval a schvaloval. Stalo se, že do svých prvních počítačů potřeboval programovací jazyk. Tehdy se všeobecně dával BASIC. A kdo jiný uměl BASIC nejlépe, než Microsoft? Microsoft ale svůj software licencoval. Mohli jste použít jejich BASIC, ale platili jste jim za to výpalné. Bill Gates tehdy Tramielovi nabízel $3 za jednu licenci, na což mu Jack odpověděl, že již ženatý je a tak Commodore nakonec získal základní interpret BASICu za $25 000 a mohl si s ním dělat, co chtěl. Inženýři v Commodoru dostali za úkol zakoupený software upravit pro potřeby počítačů Commodore a ten se objevil v počítači PET 2001 ve verzi 1.0, která ale nebyla oficiální. Prvním oficiálním BASICem od Commodoru je právě verze 2.0.  Následovala verze 4.0, která byla rovněž v řadě PET. Na začátku osmdesátých let, po úspěchu VIC-20 s BASICem 2.0 přišel o dost vylepšený počítač Commodore 64 (64 v názvu určuje velikost paměti v kilobajtech, a 64kB bylo tehdy opravdu ohromně moc, proto se marketing rozhodl pro toto číslo přímo do názvu). Jak byl a je C64 dobrý, BASIC V2.0 je jedna z jeho nejslabších stránek. Je pravda, že dnes už je to jedno, prakticky všichni, kteří chtějí s tímto počítačem dělat něco seriózního, programují ve strojovém kódu, nicméně nic to nemění na faktu, že tento BASIC je velmi špatný. Není špatný na to, abyste se naučili základům programování, ale jakmile budete chtít programovat hardware počítače, jako je grafický nebo zvukový čip, BASIC V2.0 vám to na rozdíl od konkurenčních počítačů té doby (Atari, ZX Spectrum, Amstrad) neumožní a chtě nechtě budete muset sáhnout po příkazu POKE a adresovat přímo hardware.

Začnu tím, co je na BASICu V2 na Commodoru 64 dobré.

– Okamžitá dostupnost po zapnutí počítače. Zapnete C64 a naskočí BASIC. Možná řeknete, že to je běžná věc, ale není, viz. Sharp MZ, Atari.
– Celoobrazovkový editor, který je zvládnutý velmi dobře. Pro editaci řádku hotového programu i jednotlivého již napsaného příkazu stačí najet kurzorem na něj, provést změnu a odRETURNovat.
– Pohodlné psaní, pohodlné umístění důležitých interpunkčních znamének (+-*/) na klávesnici, klávesnice C64 je nejkvalitnější z dobových stejně rozšířených osmibitů.

…no, a to je asi tak všechno. Bod jedna se tak nějak předpokládá, poslední bod se netýká ani tak BASICu samotného, jako hardwaru, na kterém běží. Moc toho není, že?

Tak a teď nevýhody. Ale že jich je.

– Na jednom programovém řádku může být pouze 80 znaků včetně odřádkování, čili 79.
– Uvozovkový režim (vkládání řídících znaků za uvozovky, např. změna barev) a neuvozovkový režim je nepřehledný. Zvlášť pak to, že uživatel neví, ve kterém módu se zrovna nachází, pokud si nepamatuje svůj poslední krok, to zjistíte jen třeba stisknutím šipky. Pokud se vypíše řídící znak v podobě nějakého symbolu semigrafiky, je režim aktivní. Uvozovkový režim lze ukončit stiskem SHIFT+RETURN.
– Výpis programu příkazem LIST nezastavuje, pouze jde pozdržet klávesou CTRL nebo úplně zastavit klávesou RUN/STOP.
– Názvy proměnných můžou mít pouze dva znaky, AA-ZZ, F2$, X8, QC$, apod., kromě TI a TI$, které jsou definované předem a nelze je měnit. Pokud použijete delší název, BASIC to spapá, ale v potaz bere pouze první dva znaky. Příklad:

proměnné

– Příkaz PRINT lze sice nahradit znakem ? a ušetřit si tím práci, ale interpret jej stejně sám po odřádkování přeloží do podoby PRINT. To se dá využít v případě, že chcete na jeden programový řádek vměstnat víc, než 79 znaků. Pokud ve psaný řádek obsahuje jeden nebo víc PRINTů, lze místo nich použít otazníky a přitom se vejít do regulerních 80 znaků. Po odřádkování (RETURN) a vylistování vidíme, že řádek je delší, než 80 znaků (přibyly PRINTy místo otazníků), ale řádek je stále funkční. To samé platí i pro příkazové zkratky typu rU (RUN), lI (LIST), nE (NEXT), apod. Po znovueditaci takto uloženého řádku se ale uloží jen 79 znaků, takže je třeba řádek napsat zkratkami znovu.

Screen Shot 2017-03-23 at 17.48.58

– V celém programu může existovat pouze jedna skupina příkazů READ/DATA/RESTORE. Interpret totiž neumí syntaxi RESTORE číslo_řádku, jako tomu je v jiných BASICích.
– Nelze jednoduše nastavit pozici kurzoru na libovolném místě obrazovky, myšleno programově. Neexistuje příkaz, který by to dělal, např. POSITION, LOCATE, PRINT AT, atd. Namísto toho je třeba použít buď řídící znaky v uvozovkovém režimu, což značně znepřehledňuje program a naráží na omezení 80 znaků na řádek nebo použít příkaz POKE a nastavit kurzor hardwarově.
– Nelze kreslit grafiku ani sprajty. Neexistuje na to příkaz. Jediné, co můžete, je namalovat si nějaký PETSCII art znakovou grafikou, dostupnou přes různé shifty z klávesnice.
– Nelze ovládat zvukový čip. Řešení je opět jen POKE přímo na hardware.
– Neexistuje Key Repeat, tedy psaní více znaků za sebou pouhým držením klávesy. Toto jde pouze u mezerníku, Backspace a Insertu. Keyrepeat se ale dá pomocí POKE nastavit.
– Pokud napíšete PRINTem (nebo ?) textový řádek, který chcete mít na obrazovce tak, aby začínal v úplně levém rohu (sloupec 0) a končil úplně napravo (sloupec 39) a pod ním chcete mít další takový řádek, je nutné takový PRINT ukončit středníkem, jinak si bude BASIC myslet, že má odřádkovat a udělá mezi takovými řádky mezeru.

Screen Shot 2017-03-23 at 18.06.35

Screen Shot 2017-03-23 at 18.08.22– BASIC V2.0 vloží vše, co napíšete a jak to napíšete (kromě ?, který přeloží na PRINT a ostatních příkazových zkratek). Takže pokud budete psát neúsporně, může se stát, že vám jednoho dne dojde paměť, a to úplně zbytečně.

Screen Shot 2017-03-23 at 18.18.51– BASIC, který na C64 začíná víceméně skoro na začátku adresního prostoru paměti, si vaše proměnné ukládá do paměti úplně na konec a tak čím máte v programu víc proměnných, tím méně máte paměťového prostoru na váš program a tvoří se jakési pomyslné zavírající se nůžky, kdy zdola se paměť zaplňuje psaným programem a shora se plní proměnnými. Je to dost nevhodné řešení např. pro případné vložení externího kódu, jako je hudba, font či jiná grafika nebo rutina ve strojovém kódu. Další zádrhel je v tom, že proměnné se do paměti zapíší až po spuštění programu, což je celkem logické, ale je třeba s tím předem počítat.

V Commodoru si nešikovnost zakoupeného BASICu od Microsoftu nicméně asi uvědomili a vybavili jej různými divnostmi a obezličkami, kterými lze některá omezení obejít:

– Příkazové zkratky

Příkazy lze psát úsporněji, většinou prvními dvěma znaky, přičemž druhý znak se zadává se SHIFTem. Tedy např. příkaz RUN lze napsat jako rU, příkaz RESTORE jako reS, NEXT jako nE, POKE jako pO, atd. Při nastavené velké znakové sadě, např. po zapnutí C64, se tyto zkratky jeví jako písmeno a znak semigrafiky.

– Nepovinný příkaz LET

Příkaz LET je nepovinný ve většině BASICů nejen na Commodoru. Lze jej vynechat a přímo psát název proměnné.

– Nepovinné uvozovky na konci příkazového řádku

Pokud máte v programu řádek, který obsahuje nějaký příkaz používající řetězec v uvozovkách a tento příkaz je na daném řádku jako poslední, nemusíte uvozovky uzavírat. Např. ?”AHOJ nebo C$=”RETEZEC

– Nepovinné středníky

V obecné syntaxi BASICu je dáno, že pokud chcete připojit k řetězci nějaký jiný řetězec nebo jej chcete přerušit a navázat na něj později, případně použijete nějakou funkci ve spojení s řetězcem, vložíte do zápisu středník. Např. 10 PRINT TAB(5);”AHOJ”. BASIC V2.0 vám ale umožní tento zápis: 10 PRINT TAB(5)”AHOJ”.

– 64000 řádků

Nevýhodu 80 znaků se zřejmě pokusili napravit také tím, že BASIC umožňuje vložení až 64000 řádků kódu, přesněji 0-63999. Tolik řádků se do paměti vyhrazené pro BASIC (38911 bajtů) nevejde ani prázdných, natož s nějakým programem.

Nakonec na C64 existuje v BASICu i takový Easter Egg. Po stisku kláves RUN/STOP a RESTORE a zadání POKE781,96:SYS58251 se začnou dít věci. Původní Easter Egg od Microsoftu, kdy se po zadání příkazu WAIT 6502,1 vypsal text MICROSOFT na C64 nefunguje.

Můžete také vyzkoušet zajímavý trik, vykreslující na obrazovku semigrafikou náhodně generované bludiště:
10 PRINT CHR$(205.5+RND(1));:GOTO 10

I když toho BASIC V2.0 moc neumí, dají se v něm s pomocí všemocného POKE a strojového kódu dělat věci, které by do něj leckdo neřekl. Ještě přidávám poděkování Silliconovi za postřehy, které jsem do článku doplnil.

07Lis2016
 

Aby tady něco bylo, tak vám napíšu, čím jsem se zabýval o víkendu. Už dlouhou dobu jsem plánoval migraci dat z již nedostačující 4GB Compact flash karty na větší 8GB. Systém jsem měl naformátovaný na SFS (Smart File System) a tento filesystém jsem chtěl zachovat i na nové CF. Připravil jsem si důležité diskety s Workbenchem 3.1, tj. Workbench a Install. Protože jsem měl data z původní CF zálohovaná na jiné CF zastrčené ve čtečce PCMCIA, potřeboval jsem, aby byla čtečka funkční po nabootování z diskety. Proto jsem disketu s Workbenchem trochu upravil, smazal pár náhodných nepotřebných souborů a místo nich nahrál ovladač pro čtečku compactflash.device, Devs/CF0, abych na ní měl přístup i bez HDD a mohl z ní nakopírovat data na novou CF. Protože jsem ale chtěl novou CF také s SFS, musel jsem ji pro to připravit pomocí opatchovaného scsi.device, které si rozumí s disky většími než 4GB. Stáhnul jsem z Aminetu balík se SFS a připravil si prázdnou disketu, na kterou jsem nahrál soubory L:SmartFileSystem a SFSFormat z tohoto balíku. K tomu jsem ale musel ještě stáhnout utilitu Loadmodule a opatchované scsi.device (verze 44.20). Pak následovalo odpojení staré CF (disku) a připojení nové, nenaformátované. Po bootu z diskety Install jsem z diskety se SFS sobory, kterou jsem si před tím připravil spustil příkaz Loadmodule scsi.device.44.20. Tím se počítač rebootnul s opatchovaným scsi.device, abych mohl následně bootnout opět z diskety Install a spustit z ní HDToolBox a začít s přípravou disku. Z diskety se SFS jsem si do RAM disku zkopíroval soubor SmartFileSystem, který jsem následně podstrčil HDToolBoxu a nastavil potřebné parametry jako masku a DOSType. Potřebné informace jsem získal v tomto videu. Novou 8GB CF kartu jsem rozdělil na 1000MB pro bootovací oddíl DH0 (“System”)  a zbytek karty po zhruba 3,5GB na DH1 a DH2 (“Work” a “Temp”), abych zachoval rozdělení i pojmenování své staré CF karty. Po dokončení přípravy disku následoval reboot a nabootoval jsem z diskety Workbench, kde jsem nejdřív opět spustil z připravené diskety program Loadmodule a po rebootu a bootu opět do Workbenche připojil zařízení CF0 a z diskety si do RAM disku nakopíroval příkaz SFSFormat, kterým jsem postupně zformátoval všechny tři oddíly. Následovalo kopírování dat ze zálohy na kartě v zařízení CF0 na nově zformátované oddíly přetažením ikon. Příkazem AddBuffers jsem si trochu zvýšil cache všech disků, aby kopírování trvalo kratší dobu. Po nakopírování všech dat na své místo jsem ještě řešil, aby Amiga po bootu zaváděla i nový scsi.device.44.20, ale jak jsem zjistil, vůbec jsem to nemusel řešit, protože SetPatch to řeší sám, takže ho stačí mít na prvním místě ve Startup-Sequenci (nebo na druhém po Blizzkicku?) a po náběhu jsou viditelné všechny oddíly velkého disku.

21Zář2016
 
ruka

Začal mě bolet prostředníček na pravé ruce. Od kolečka myši. Už několik let používám v práci i doma laserovou myš Dell K251D. Jde o normální myš běžného tvaru, nic extra, ale zvykl jsem si na ni. V poslední době mě začíná sužovat bolest pravé ruky, avšak nikoliv zápěstí, ale prstu. Včera večer to došlo až tak daleko, že mě prst při jakémkoli ohnutí nepříjemně bolí. Znám příčinu: kolečko myši. Protože jsem při koupi iMacu z druhé ruky před dvěma lety dostal kromě externí DVD mechaniky i Magic Trackpad první generace, rozhodl jsem se jím nahradit myš. Jeho používání je s patřičným nastavením méně fyzicky náročné. Ono by to bylo v pohodě, použít ho k Macu. Jenže největší potíže s bolestmi ruky mám v práci a tak jsem si jej odnesl tam s tím, že se jej pokusím rozchodit na pracovním PC ve Windows 10. Vyhrabal jsem ve skříni bluetooth dongle od Trustu, zapojil ho do PC a stáhnul a nainstaloval driver. Magic Trackpad se ohlásil a začal fungovat. Tedy, funkcionalita je omezená na pohyb kurzorem a levý klik. Gesta, pravé tlačítko nebo cokoliv navíc nejde. Pátral jsem a našel jsem utilitu Magic Trackpad Control Panel. Je sice placená, ale má 28-denní trial. Podle popisu má po nainstalování chybějící funkce trackpadu zpřístupnit. Bohužel, neudělá to. Aspoň ne na mém PC. Po spuštění jsou všechny volby zašedlé a nahoře svítí chybová hláška:

Trackpad paired. Trackpad support not running. Please reinstall.

okno
Prosté vyhovění žádosti o přeinstalování samozřejmě nezabírá. Pátral jsem, čím to může být, když je trackpad spárovaný a funguje, ale nepřišel jsem na nic. Zkoušel jsem jak verzi pro Magic Trackpad 2, tak úplně jiné řešení, které mi mimo jiné totálně zasvinilo počítač. Apple sice pro Windows vydal driver a ovládací aplikaci, ale ta podle všeho funguje jen na Macu s Bootcampem. Otázka je, jak mám chápat hlášku Trackpad support not running a Please reinstall. Reinstalovat aplikaci nebo BT driver? Je Trackpad support myšleno jako nepodpora ovladače v OS nebo nepodpora té aplikace? Poslední možnost je asi zkusit nějaký jiný driver, případně úplně jiný BT dongle a driver.

Nepustilo mě to a zkoušel jsem dál. Na stránkách Trustu byl ještě jeden, starší ovladač. Po jeho nainstalování se jevil stejně, jako ten novější, ale touchpad byl mrtvý, vyhledávání nového BT hardwaru bylo neúspěšné. Zkusil jsem ho nahradit generickým ovladačem od Mrkvosoftu. Překvapivě ho systém rozpoznal jako správný, narozdíl od stejného pokusu s novějším driverem od Trustu, ale touchpad stále dead. Kromě Generic Bluetooth Radio sama přibyla ještě dvojice Microsoft Bluetooth Enumerator a Microfost Bluetooth LE Enumerator, čert ví, k čemu to je. Stále však nic. Zkusil jsem tedy místo Generic Bluetooth Radio dát Generic Bluetooth Adapter. A ejhle, po spuštění aplikace Magic Trackpad 1 Control Panel červený nápis s chybou zmizel a všechny volby byly aktivní! Ale trackpad byl stále mrtvý, i když jej už systém našel a rozpoznal jako Kiosk – trackpad. Co teď. Jsou to Widle, tak třeba restart… Nečekané se stalo reálným Magic Trackpad s podporou programu Magic Trackpad 1 Control Panel funguje na obyčejném PC! Sice jen 28 dní, ale do té doby mě snad přestane bolet prst.

01Zář2016
 

Narazil jsem na zajímavý problém. Mám iMac umístěný na pracovním stole, který je pod palandou, na níž spím. Na protější stěně je skříň se zrcadlovými pojízdnými dveřmi. Když se z postele dívám dolů, vidím v zrcadle obraz z Maca. Občas se na videa na počítači dívám z postele přes to zrcadlo. Ale všechno je v zrcadle pochopitelně obráceně, takže pokud se třeba dívám na film s titulky, nedají se číst. Jak z toho ven? Hledal jsem nějakou možnost, jak obraz překlopit v systému, nicméně taková možnost v Mountain Lionu zjevně není. Google chápe zadání hesla ‘screen mirroring’ jako funkci duplikace hlavní obrazovky na dalších připojených displejích. Pak jsem ale přecejen našel něco, co můj požadavek aspoň částečně splňuje. Utilita WindowMirror umožňuje překlopit horizontálně jekékoli okno, stačí ho mít ve fokusu a stisknout kombinaci Control+Option+Command+M. Funguje to, ale na videa moc ne, tedy ano, když je necháte běžet jen tak v původním okně. Ne, když se pokusíte o fullcreen. Dá se to ale obejít systémovou funkcí zvětšení obrazovky (Control+kolečko myši). Další nedostatek je, že po ukončení programu někdy otočené okno zůstane na ploše jako otisk a nejde s ním nic dělat, nepomáhá ani Clean up ve Finderu. Nicméně program posloužil a kdo chce z jakéhokoliv důvodu koukat na obrazovku Maca přes zrcadlo, může ho vyzkoušet.