Skvělý článek. Paradoxem je, že ačkoli jsem používal Atari celé své dětství, nikdy jsem nepřipojil přes SIO nic jiného, než XC12 (dataset). A dnes SIO2SD. Tiskárnu jsme měli BT100, a ta se připojovala přes joystickové porty. Modem byl věc z říše sci-fi, a disketovka ze snů. Na Atari se mi vlastně nepoštěstilo vlastnit disketovku dodnes, mám to jako rest, musím někdy nějakou vydražit, abych se konečně dočkal toho vysněného komba.
Když už tu je řeč o Atari, nedávno jsem objevil kanela, kde se zabývá opravou těchto retro skvostů - Andrew Tesla:
youtu.be/Wed2qN-QDMU?si=gU1iDffaZ8TEE97t
Andrew Tesla kanál jsem postoval pod minulým článkem, on se věnuje hlavně československým počítačům, Atari tam měl zatím pouze ST a spíš jako kuriozitu. Víc se věnuje Ondrům, IQ-151, PMD, SAPI atp.
Jinak pokoukání je to dobré.
Je to trosku OT, ale osmibitova atarka se vyrabela nejakych 13 let a SIO zustal porad stejne (dobry). Zato paralelni port/sbernice nebo jak to nazvat, tam to menily s kazdym modelem. Tusi nekdo proc? Zrovna na tom obrazku u clanku jsou pravo dve ruzne varianty a 800 XL melo navic "schovanou" snad uplnou paralelni sbernici (ale to jsem nikdy nevidel pripojene).
Původní XL model měl PBI (Parallel Bus Interface), model 130XE měl nástupce ECI (Enhanced Cartridge Interface). Model 65XE neměl původně nic, ale později se z důvodu šetření začala vyrábět pouze jedna varianta desky, a to z modelu 130, jen se osadila méně pamětí, takže i pozdější 65 měly ECI.
https://en.wikipedia.org/wiki/Parallel_Bus_Interface
Z pohledu funkcí jsou si velmi podobné, ECI je zkompaktněná varianta, o něco málo ořezaná.
hmm jo, ale to efektivně znamenalo, že pro to nikdo nedělal HW ne? Už tak malej trh se ještě rozdrobil. Kdežto pro SIO se dělaly periferie od dob modelů 400 a 800 (bez XL/XE). I když asi pro většinu věcí bylo to SIO rychlé dostatečně...
Já osobně jsem ten port nikdy nepoužil. Existovaly pro to snad nějaká rozšíření paměti, nějaká moderní datová úložiště...
Nevím jestli existovaly nějaké desky např. s Turbem atp. Takové jsem měl, ale ty pro změnu používaly slot pro catridge, ne tuto sběrnici.
Možná to spíš byla záležitost výrobců nějakého specifického příslušentví a bastlířů, přeci jen to byla vyvedená systémová sběrnice, což mohlo umožnit leckajá kouzla.
Zařízení na PBI bylo skutečně minimum. Teď jsem si oblíbil cartridge AVGCART, která volitelně PBI a ECI využívá.
Našel jsem dvě zajímavá "zařízení", která využívají signály Proceed a Interrupt. Jsou to magnetony s britským a německým turbem.
Já jsem teď investoval do SubCart, tedy vylepšené AVGCART, s kompletní kabeláží, tedy kabel do.SIO, kabel do ECI a DAC a je to naprosto geniální.
Na zacatku clanku se skoro omlouvas za pouziti slova MASTER (nemas se za co omlouvat), ale pak ho pouzivas i v pripade USB. Tam je ovsem oficialni nomenklatura HOST, HUB a DEVICE, pricemze HUB je definovan jako "special class of device". Neni to zadny newspeak, je to podle dokumentace z roku 1998.
Osobne se mi strasne nelibi jak nekteri aktivisti prejmenovavaji uplne vsechno co se da. Hlavne master branch na gitu. Ted je to main. Abych byl uprimny, kdybych si mel pred 20 lety vybrat mezi main a master, asi bych si vybral main. Ale nemuzou mi menit ustaleny nazev pod rukama. Pokud maji nektere projekty master branch, ktery se jmenuje master a jine maji master branch, ktery se jmenuje main, je to tak na navstiveni WC.
Taky čekám, že BUSMASTER půjde do kelu, stejně tak obvody MASTER/SLAVE. Prostě s woke dítětem vylili i vaničku.
Už byla i snaha přejmenovat master / pre-master secret na main a preliminary secret.
Blacklist je už v nemilosti přes 20 let.
to ani tak nebyla omluva, jako spíš ohlédnutí pár let nazad. To se dokonce u nás grepovaly repositáře na určitá slova, takže jsme odstraňovali například i "master password" při popisu konfigurace Postgresu (a to je terminus technicus...)
Díky, SIO jsem nikdy nezkoumal pořádně (kvůli proprietárnímu konektoru, který účinně bránil jakýmkoliv amatérským zařízením) a tak si rád počtu - už se těším na další díl.
Ohledně rozdělení zařízení to muselo být maličko složitější, ne? Zařízení ukončující větev a magnetofon nemusí být vždy totéž, existoval totiž i magnetofon XC-11, který byl sice starší a už si nepamatuju, čím vším se z hlediska výkonu apod. lišil od modernější XC-12 (ani nevím, jestli pro něj pan Richter dělal Turbo), ale měl tu výhodu, že obsahoval ten SIO konektor, aby mohl být "průchozí" a mohlo se za něj připojit další zařízení.
https://www.homecomputermuseum.nl/en/collectie/atari/atari-xc11/
https://www.atarimania.com/documents/Atari%20XC11%20Program%20Recorder%20Owners%20manual.pdf
strana 5 (v dokumentu značená jako 3)
Průchozí magnetofon samozřejmě nemusel být na konci SIO řetězce. To omezení platilo jen pro neprůchozí modely XC12 a jeho deriváty a také pro XL12. Hlavně nemělo smysl mít v řetězci víc než jeden magnetofon, protože je nešlo nijak rozlišit.
Jsem asi nepochopil ten magnetofon, v konektoru je pouze AudioIn, je to nějak rozlišováno commandem, nebo nešlo na dataset nahrávat? Atari jsem neměl, ale na Spectru byly konektory dva, proto se ptám, co jsem přesně nepochopil :-)
Magnetofon z pohledu SIO funguje celkem jednoduše. Magnetofon se na sběrnici "zviditelní", jen když je signál MOTOR CTRL aktivní. Signál COMMAND je magnetofonem ignorován, u levnějších modelů jen s jedním konektorem není ani zapojen.
Při čtení dat z magnetofonu (pravá stopa) proudí do počítače přes FSK demodulátor v magnetofonu signál na pin DATA IN. Až na několik drobných odlišností je to běžný sériový signál. Start bit, datové bity, stop bit. Signál zpracovává POKEY. Zároveň do počítače proudí analogový audio signál (levá stopa) na pin AUDIO IN. Ten je ale jen předán na analogové výstupy pro TV a monitor.
Při zápisu dat na magnetofon je signál MOTOR CTRL aktivní. POKEY pak v dvoutónovém režimu posílá na DATA OUT signál o frekvencích 3,9 kHz (nula) a 5,3 kHz (jednička). Signál jde přes jednoduchý obvod přímo do magnetofonové hlavy.
Takže magnetofon vystačí s MOTOR CTRL, DATA IN, DATA OUT a některé modely ještě potřebují napájení 5V. Právě proto je "hloupý", protože nepoužívá COMMAND a umí jen číst a zapisovat.
Poznámka nakonec: U některých turbo úprav (zejména těch československých) se signál COMMAND využívá pro přepnutí magnetofonu do režimu turbo. Je to proto, že kombinace MOTOR CTRL a COMMAND by při jinak běžném použití byla nesmyslná.
Ne nutně pro monitoring. Traduje se, že některé originální hry na kazetě prostě při nahrávání (myslím LOADing programu) normálně přehrávaly nějakou melodii (jeden kanál data, druhý analogové audio). Ale víme jak... tady se v době Turba nějaké originální kazety moc neobjevovaly ... (a na bohatším západě měli cartridge nebo diskety).
16. 7. 2026, 15:52 editováno autorem komentáře
Datové magnetofony samozřejmě neuměly na levou stopu nahrávat.
To znamená, že příprava kazet s oběma stopami musela probíhat metodami podobnými přípravě běžných zvukových pořadů. Tedy v 80. letech s pomocí pokročilejších vícestopých magnetofonů. Dnes lze samozřejmě takovou kazetu připravit jednoduše v PC s pomocí editorů digitalizovaného zvuku. Tak byla připravena třeba speciální kazetová verze hry Yoomp! z roku 2007. Při zavádění hry z kazety hraje v levém kanálu hezká hudba.
Mám několik poznámek ke sběrnici I2C (Inter-Integrated Circuit https://en.wikipedia.org/wiki/I2C) neboť jsem s ní hodně pracoval a třeba na infůzních dávkovačích IPA/IPB 2050 byly propojené přes jednu sběrnici dva procesory Philips 87552, EEPROM paměť a až dva segmentové displeje, přitom procesory si vzájemně v roli master posílali cyklicky zprávy stylem ping-pong, kde celý cyklus výměny kompletních dat byl 8+8 přenosů, viz https://gitlab.com/pikron/projects/sw51-pbproj/-/blob/master/id/id_com.txt. Zároveň jeden z procesorů asynchronně s přenosovými cykly přistupoval na jeden nebo dva řadiče LCD segmentů čtyřmístných displejů a EEPROM s parametry.
I2C směrnice byla od začátku navržená velmi chytře, jedná se o dvě linky v režimu otevřeného kolektoru, jedna SDA pro data, která se kromě start a stop značky mění jen při SCL low. Přitom pro SCL platí, že nejkratší doba high stavu je definovaná pro danou rychlostní verzi standardem a doba low trvá tak dlouho, jak nejpomalejší zařízení potřebuje pro zpracování/vystavení daného bitu. Přitom při vysílání adresy a dat ten, kdo vysílá low (nula), open kolektor transistor zapnutý, vždy vyhrává arbitraci nad tím, kdo by chtěl vyslat high (jedna). Přitom tato pravidla platí i během předávání dat, takže i dvě master zařízení mohou zapisovat do stejného cílového prvku, jeden pak při rozdílu dat vypadne a pokud by měl náhodou adresu, kterou i vysílal, tak by měl přijmout data od druhého. Jen pokud oba zapisují přesně totéž, tak se kolize nerozpozná, ale cílové zařízení jen dostane data jednou místo dvakrát. Pokud se jedná o přenos stavu, ta je to v pořádku.
Dobře navržených řadičů I2C sběrnice se objevuje velmi málo, správně napsaného SW, který plně podporuje obě role a správně přejde na příjem, když dojde k jeho odstavení při arbitraci asi ještě méně. Na PC se pak pro identifikaci pamětí, řízení ventilátorů, měření teplot a další používá varianta SMBUS je často implementovaná ještě omezeněji. Ale třeba ten řadič integrovaný na 80552 byl velmi kvalitní, snadno se nastavilo, které adresy přijímá jako cíl, správně přecházel z vysílání na příje atd. Jen to znamenalo správně napsat, v 8kB OTP (E)PROM čipu v assembleru https://gitlab.com/pikron/projects/sw51-pbproj/-/blob/master/id/ii_iic.asm.
Takže u I2C se jedná o plnohodnotný, plně distribuovaný multimaster s plně deterministickou a arbitrací s v zásadě plnou možností přibrždění komunikace, když kdokoli na sběrnici nestíhá.
Naopak bych byl opatrný s tím přízviském průmyslová sběrnice, ano je to pěkný standard, ale ti, kdo použijí I2C mimo jednu desku nebo maximálně několik desek zemněných na jednom šasi nebo jinak dobře a krátce spojeném celku, tak s velmi zahrávají, otevřené kolektory jsou citlivé na zarušení, piny vedoucí typicky přímo na procesorové a další nízko-voltové čipy s jen běžnou pin I/O ochranou, ještě do plusu většinou zrušenou, aby uspaný čip s vypnutým napájením sběrnici neblokoval, jsou velmi ohrožené při posunech zemí, zapojování atd. Takže by se opravdu měla I2C používat jen lokálně, kam byla navržená. Původní návrh byl předeším pro spotřební audio/video techniku, tedy propojení procesoru s čipy tuner, audio zesilovači s digitálně řízeným zesílením/hlasitostí, atd. v rámci jednoho televizoru, rádia. Ano existují obousměrné převodníky I2C na odolnější fyzikou vrstvu ale primárně pro to standard I2C není určený.
Mimochodem plná distribuovaní deterministická arbitrace na I2C mi byla vzorem, že toho lze docílit plného determinimu při distribuované arbitraci mi byla vzorem při návrhu https://ulan.sourceforge.net/, kde je zaručená do 64 multi-master zařízení, kde je přidané rotace priority při arbitraci média 16 aktivních master účastníků.