Apple-1: revoluce, Replica-1: evoluce

Málo kódu v historii lidstva bylo tak důležitého a významného, jako těch 256 bajtů začínajících D8, 58, A0, F7, …

.Ano, je to začátek ROMky Apple I. Tento počítač se sice během necelého roku z jednoduchého stroje s monochromatickým textovým terminálem teoreticky rozšiřitelného čtyřmi sloty převtělil po dalších Wozniakových zásazích v Apple II, nabušenou mašinu s VideoRAM s přímým přístupem procesoru, barvami, grafikou, zvukem a sedmi stoly pro rozšíření, ale jak už je z číselného označení strojů patrné, ten první tu prostě byl první.
Jednak proto, a druhak pak z důvodu toho, že Apple majitelům Apple I nabídla jejich výměnu za Apple II, jde dnes o stroj vzácný, prodávaný za desítky až stovky tisíc dolarů.
jenže, Apple I byl především počítač prolidi, pro obyčejné lidi, a ne pro sběratele z řad zbohatlíků. Proto taky Steve Wozniak souhlasil s produkcí repliky od Vince Briela.
Replica-1, jak se stroj jmenuje,není přesnou napodobeninou ze shodných součástek a na stejné desce. Věřili byste, že její poslední verze má pouhých 11 integrovaných obvodů? Je to produkt moderní doby. Ale stále má vlastnosti i ducha prvního průkopnického Apple I.
Podívejme se, jak se Replica během času měnila.

První verze Replica-1 (mluvme o verzi 1, revizi C, kterou znám nejlépe) obsahovala, stejně jako všechny pozdější verze, procesor 6502, čip pro paralelní komunikaci 6821, zajišťující spojení s klávesnicí a terminálem (a tiskárnou – existuje Wozniakem navržený způsob, jak ji připojit). Tedy totéž, co Apple I.
Co se týče RAMky, tak všechny verze Replicy obsahují full kotel 32 kB RAM, maximum toho, na co bylo Apple-I navrženo.
Zbývá sice volno ve slotech A, B, C, a částečně D, ale ty je lepší neobsazovat hned pamětí, ale nechat je pro užitečné periferie (kterých je, jak zjistíte, víc než slotů).
Do slotu E byla na skutečném Apple-I přemapována část paměti, do které se nahrával Wozniakův Basic. Replica-1 obsahuje 8 kB EEPROM, takže ty 4 kB Basicu ve slotu E tvoří polovina EEPROMky. Basicu to nevadí, byl napsán tak, že nepřepisuje sám sebe, ale využívá pro své proměnné část zeropage a pak oblast v paměti definovanou právě systémovými proměnnými (proto uložení programu v Basicu na standardní kazetu není jednoduché, musí se provádět ve dvou blocích, a šikovněji to řeší až CFFA-1). Naopak, výhodou je, že je Basic k dispozici hned po zapnutí. Ve druhých 4 kB EEPROM, mapovaných do slotu F, je uloženo 256 bajtů originální Apple-I ROM (Wozniakův monitor strojového kódu). Zbytek ze 4 kB je volný – a asi proto byl hned v dalších verzích využit pro uložení vynikajícího assembleru Krusader.
Místo diskrétních obvodů zajiš’tujících zobrazování a výstupní terminál, má první verze Replica-1 procesor Atmega 8515. Ten zajišťuje totéž, co původní obvody Apple-I, ale v jediném čipu místo původních mnoha. tedy, provádí zobrazování monochromatického textu (bílé písmo na černém pozadí) shodným fontem, jako Apple-I, v normě NTSC. Vylepšením je, že umí i malá písmena, umí softwarově mazat obrazovku (kódem CLEAR SCREEN, #2 / #82) a vrátit kurzor na začátek obrazovky bez jejího smazání (CURSOR HOME, #3 / #83) a kurzor místo blikajícího zavináče dostal podobu normálního blokového kurzoru, jako na Apple II. Hardwarové tlačítko pro mazání obrazovky, stejné, jako na původním Apple-I, zůstalo zde i ve všech dalších verzích Replicy.
Kromě možnostii připojit původní ASCII klávesnici (posílá kódy znaků po paralelním spojení) přibyl konektor pro PS/2 klávesnici, jejíž dekódování zajišťuje další čip, Atmega 8. V této verzi se klávesnice (ASCII / PS/2) volí jumperem.
Napájení první verze Replicy bylo řešeno písíčkovým AT zdrojem (to je důvood, proč stále sháním pěkný malý a nejlépe nehlučný AT zdroj, ty větrákové hlučné příšery se k osmibitu prostě nehodí).

Zcela separátně, jako přídavná karta, byl k dostání séroiový interface.
Zajiš’toval to, že veškerá komunikace z čipu 6821 (do jehož patice se celá destička zasouvala) byla směrována pomocí dalšího Atmega 8515 a MAX 232 směrována na RS-232.
zde žádný jumper nebyl a RS-232 šlo používat současně s klávesnicí a terminálem. Co jste do počítače poslali po RS-232, bylo, jako kdybyste tonapsali na klávesnici, a co bylo posláno na monitor terminálu, bylo z Replicy odesláno po RS-232. Takhle bylo možné po RS-232 ovládat celou replicu a hlavně uchovávat programy. Výpis obsahu paměti má na Apple-I totiž stejný formát, jako když chcete data vložit. Stačilo poslat obsah paměti na obrazovku a RS-232, kde se uložilo na disk připojeného PC,a pakzase v případě potřeby poslat uložený text zpátky do Replicy stejně, jako by byl vkládán z klávesnice.
Vzhledem k tomu, že to nebylo nějaké Replica-speccific rozšíření, ale o desku zasouvanou do slotu 6821, bylo možné tuto destičku použít i na skutečném Apple-I.

Je dobré neplést si toto RS-232 s jiným RS-232, které je součástí Multi I/O card. To není směrováno na klávesnici a terminál, ale visí normálně v paměťovém (paměťoportovém) prostoru a musí se ovládat programem. Jakýkoliv software, který pro výstup a vstup používá rutiny v ROM nebo zápis na port terminálu / čtení z protu klávesnice, pokud má komunikovat přes Multi I/O card, by musel být předělán.
Takže se hned rýsuje dvojí použití těchto sériáků: Serial card slouží k tomu, aby Replica fungovala jako server (a byla ovládána ze vzdáleného terminálu), zatímco sériák na Multi I/O card se dá použít spíš k tomu, udělat terminál naopak z Replicy (mohla by třeba dělat terminál k UNiXovému či CP/M počítači, nebo k Micro-KIMu).
Každopádně, Serial card je věc tak užitečná, že si bez ní Replicu neumím představit – a Vince Briel to nejspíš taky nedokázal.

Hned následující verze, Replica-1 SE (jako Second Edition) má totiž RS-232 přidané na desce. Objevil se i vypínač a nový způsob napájení, dokonce hned tři, mezi nimiž se dalo volit jumperem: ATX zdroj, stejnosměrný napáječ do zásuvky, nebo napájení přes USB. Osazený USB konektor byl vlastně jen přes RS-232/USB převodník zapojený výstup sériáku, Replica-1 zapojená přes USB se tak hlásila jako USB serial.
Na desce byly všechny čtyři procesory. Jak 6502, tak i tři Atmely, shodné s verzí 1. V této verzi Replicy se už v EEPROMce objevil Krusader (díky tomu, že je to 8 kB EEPROM, a že pro Replicu existuje programátor 8kB EEPROM, který je součástí Multi I/O card, není problém si ho naprogramovat i do starší verze Replicy).
Zda tato verze zobrazuje kurzor jako blokový kurzor, či blikající zavináč, nevím, protože fyzicky jsem ji v ruce neměl. Vše ostatní v zobrazování je ale shodné jako u verze 1.
Rozšiřující konektor Apple-I byl dvojí: něco podobného ISA slotu a přímý konektor se stejným zapojením, na nějž Wozniak plánoval zapojit expander s dalšími třemi sloty (celkem 4 pro zařízení adresovaná do paměťových slotů A, B, C, D, ale jediné oficiální od Apple bylo Wozniakovo kazetové interface). Replica-I první verze i SE má ale místo toho pinovou lištu- konektor takový, jako pro připojení 3.5″ disketové jednotky nebo 3.5″ IDE kabelu (přesnou šířku jsem neměřil).

Nejnovější verze se jmenuje Replica-I TE (Third Edition). Přináší další novinky:
Jednak vedle rozšiřujícího konektoru – pinové lišty se objevují i oba konektory shodné s Apple-I, takže jakoukoliv rozšiřující kartu pro Replicu nebo Apple-I (mají Applovský konektor) připojíte bez použití redukce, a expander o další tři sloty taky připojíte přímo – na předchozích verzích Replicy bylo nutno použít pro spojení plochý kabel (expander od Vince Briela obsahuje krom Applovských konektorů i pinovou lištu prospojení s Replicou).
Zůstalo napájení přes ATX zdroj nebo napaječ dozásuvky,stejně jako vypínač, ale není přítomen žádný jumper. USB konektor a USB to serial převodník zmizel, není tedy využit ani pro napájení.
Dále, dramaticky se zredukoval počet čipů – na Replice TE jsou jen dva procesory: 6502 a Parallax P8X32A, který se stará o všechno: o zobrazování, dekódování klávesnice, obsluhu RS-232. Takže, i pokud počítám adresovací LSka a MAX 232, je všech čipů (ROM, RAM, 6502, 6821, Parallax, …) opravdu jen 11.
Parallax pochopitelně obsahuje jiný firmware než Atmega.
Zobrazení by mělo zůstat v původních barvách, ale třeba mně se zobrazuje jinak barevné, a to bílé písmo na MODRÉM pozadí s černým okrajem (border), což je chyba nějaké napětové úrovně a toho, jak ji monitor vezme, ale ne formwaru (na jiných monitorech zobrazuje správně, zatímco na mém LCD má problém třeba i mikropočítač Ondra). Dále kurzor má opět tvar blikajícího zavináče (asi si tradicionalisti vymohli jeho návrat, ale podle mne se na blok lépe koukalo). Mám taky dojem, že zobrazování je díky rychlejšímu přijímání znaků terminálem celkově rychlejší.
Firmware obsahuje drobnou chybu, která nemá na funkci počítače vliv – při rychlém posílání znaků s častým enterováním a scrollování obrazovky se občas stane, že kurzor odscrolluje nahoru spolu s textem (přitom se ale stále vypisuje dole ta, kde má být, na obrazovce jsou v té době zavináče dva). Jinak ale Replicca TE nemá daleko do dokonalosti. Už jsem o chybce Vincovi psal, otázka je, co s tím udělá (má i jiné věci nq práci).
Ani volba klávesnice se už neprovádí jumperem. Prostě připojíte buď PS/2, nebo ASCII, Parallax si to pohlídá sám.

Replica-1 (nebo originální Apple-I) je ještě lepší, když má nějaké ty periferie. Sice jsem o nich kdysi psal, ale vyjmenuji je znovu.
Serial card se už neprodává, ke smůle majitelů skutečných Apple-I a Replicy první verze, kteří si ji nestačili pořídit. nevadí, nové Replicy ji už mají osazenou přímo na palubě. Už jsem ji popsal v předchozím textu.
Adaptér z replikovského konektoru na Apple-I a expandér o tři sloty v prodeji ještě jsou.
Vzhledem k tomu, jak je expandér zapojen, rozšíří při zapojení do Apple-I nebo Replicy TE stroj o tři sloty, ale při spojení přes kabel (se všemi Replicami) rozšíří stroj o 4 sloty. Vzhledem k tomu, že mít připojenu jen jednu kartu je možné, lze využít samotný konvertor z pinové lišty na Apple konektor, ale podle mne je vždycky lepší mít volný slot pro budoucí rozšíření (mně by už méně než 2 sloty nestačily). Takže doporučuji spíš expander. Vzhledem k tomu, že Replica má jen jeden expanzní konektor, nemá smysl snažit se kombinovat redukci a expander dohromady.
Kazetový interaface, kopie toho od Wozniaka, je sice ve vývoji, ale zatím nikdy nefungoval. Je určen do slotu C.
Místo kazet existují užitečnější periferie. Jednak RS-232, takže zálohovat můžete na PC, a stejnou cestou dostat do Replicy i software stažený z internetu, druhak CFFA-1, což je zařízení, které slouží především k zápisu a čtení programů z Compact Flash karty.
Navíc obsahuje rozšíření paměti na plných 32 kB pro Apple-I (takže to má pak stejně paměti jako Replica, na Replice je třeba tuto featuru vypnout). Používá formát ProDOSu (známý z Apple II, Apple II GS a umího i klasické Macintoshe) s adresáři, maximálně ale 32 MB (což bohatě stačí). Uživatelský přístup je přes šikovné menu (podobně jako “DOS” 2.5 na Atari) přístupné při volání 9000 (nebo 9003, má-li se z
menu vrátit do Basicu). Pro využití ve vlastních programech existují pěkně provedené definované služby. Jediná nevýhoda, na kterou jsem narazil, je čtení celých 512 byte sektorů (v paměti se i při načítání jednoho bajtu přepíše 512 byte). Naštěstí DOS má velký vlastní buffer a sám umí nahrát a uložit program v Basicu včetně jeho proměnných v zeropage, takže se nemusíte bát, že se zeropage přepíšete i zásobník.
Jako bonbónek byl na Replicu převeden i (microsoftí) Applesoft Basic z Apple II, a příkazy LOAD a SAVE byly přesměrovány právě na CFFA. Applesoft Basic lze nahrát buď do RAM, nebo jím nahradit původní ROM s (Wozniakovým) Integer Basicem, monitorem a Krusaderem (pokud je v ROM přítomen).
Nevýhodou CFFA-1 je, že zabere spoustu pamě’tového prostoru. Obsazuje navíc jinak nevyužívanné sloty 8 a 9. Ve slotu 8 je buffer, ve slotech 9 a A je firmware s DOSem.
Hodně silná periferie je Multi I/O card.
Obsahuje programátor 8kB EEPROM, který bohužel koliduje s CFFA-1 ve slotu A (sám obsazuje sloty A a B, je postaven tak, že se do EEPROM z uživatelského zapisuje jako do normální paměti v RAM prostoru od A000, a sériový převodník se pak o naprogramování postará sám).
Dále je zde rychlý RS-232 port, dva osmibitové paralelní porty (plus 4 dráty na handshaking, celkem 20 vstupů a výstupů) a slot pro osazení mluvícího čipu Speakjet. Ještě jsem si s ním moc nehrál, ale moje Replica po každém resetu řekne “ready” a tak vím, že Speakjet funguje. Podlle dokumentace umí krom základních alofonů měnit i tóninu hlasu (imitovat mužský, ženský, dětský hlas nebo zpěv), různé jednoduché zvukové efekty a tónové telefonní vytáčení. Navíc umí odříkávat data, která pošlete na sériový port. Jen bych doporučoval místo jumperu, kterým se Speakjet zapíná a vypíná, dát spíš přepínač (jumper se může ztratit, spínač ne).

Sami vidíte, že s tímto vybavením je z Replicy nebo Apple-I skutečný a velice schopný počítač. A je jedno, jesti si na něm pustíte Forth, assembler, šachy nebo nějakou z klasických her.
Pokud tento stroj ještě nemáte, a historie, osmibity, sedmdesátky a osmdesátky vám něco říkají, tak si ho určitě KUPTE.

Poslední, co bych měl zmínit, je způsob, jakým Wozniak navrhoval připojit tiskárnu.
Američani neznali žádné splašené hřebíky a podobné socialistické improvizace,rozšířené u nás (i když na takovou Gamacentrumku nedám dopustit). I amatéři a kutilové měli k dispozici levnou stavebnici devítijehličkové tiskárny s elektronikou, dokteré stačilo po paralelní lince poslat znak. Tiskárna se k Apple-I připojovala na 6821 paralelně s terminálem přes dvou- či třípolový přepínač na strobovacím signálu. Tedy podobně, jako Serial card pro vzdálené ovládání Replicy.
Na tiskárnu tak odcházelo všechno to, co bylo posláno na obrazovku.
Přepínač sloužil k tomu, že zapnul výstup buď jenna terminál, nebona terminál i tiskárnu, nebo (protože se zjistilo, že tiskárna odebírá znaky mnohem rychleji než terminál a ten ji tak v tisku zdržuje) jen na tiskárnu (v případě třípólového přepínače). Hezké, čisté, systémové. Výstup na tiskárnu sice nebylo možné ovládat samostatně programem, ale v tehdejších dobách byly tiskárny určeny hlavně k ladícím a dokumentačním výpisům, a to tento způsob zapojení naprosto splňoval.