S Atari na Internet

a do vod Unixových

Jiří Svoboda

Čas od času koketuji s myšlenkou, jak připojit malé Atari k síti sítí. Zatím vždy jsem tuto myšlenku po nějaké době dočasně zavrhl, postupem času však nacházím stále méně a méně důvodů bránících realizaci. Pro hovoří například existence nejmenšího web serveru na světě, běžícího na mikroprocesoru PIC (velikosti hlavičky zápalky), jehož TCP/IP stack je nacpaný do 256 bajtů paměti.

I když jsem vždy uvažoval spíše o vlastním řešení, byly tyto mé myšlenky vždy spjaty s pátráním po podobných projektech na Internetu. Při mém posledním pátrání jsem objevil několik pro mě nových projektů. O informace o zajímavějších z nich bych se s vámi nyní prostřednictvím FLOPu rád podělil.

"Webserver" na Atari

Začnu trošku od konce. Velkým překvapením a zároveň velkým zklamáním (tohle jsem přece první chtěl udělat jááá) pro mě bylo objevení webserveru, běžícího na Atari 800. Při bližším pohledu jsem však zjistil, že se nejedná o žádný plnohodnotný webserver. Atari 800, vybavené Atari 850 interface modulem (ten poskytuje zařízení R:), je sériovou linkou připojeno ke speciálně nakonfigurovanému počítači (tzv. terminal serveru), který v okamžiku příchodu http požadavku nastaví malému Atari na sériovém portu jeden ze signálů a to jednoduchým BASICovým programem bezmyšlenkovitě "vysype" data na sériový port. Takže na naprogramování prvního skutečného webserveru ještě místo je.

Na ukázku přikládám část kódu BASICového "jakobywebserveru":

1015 XIO 40,#1,0,0,"R1:"
1030 PRINT #1;"HTTP/1.1 200 OK"
1040 PRINT #1;"Content-type: text/html"
1050 PRINT #1;
1060 PRINT #1;"<HTML><HEAD><TITLE>Atari 800 web server</TITLE></HEAD>"
1070 PRINT #1;"<BODY BGCOLOR=#000000><CENTER><FONT COLOR=#EFEFEF>"
1071 PRINT #1;"<H2>Welcome to the Atari 800 web server</H2>"

Bližší informace najdete na http://kl.net/atari/. Je tam i odkaz na stránku, kterou poskytuje toto Atari, v době psaní tohoto článku však nebyla dostupná.

Pro doplnění, na těchto stránkách jsem se dověděl několik málo pro mě nových informací, o velmi zřídka se vyskytující Atari 850 interface modulu. Konkrétně že poskytuje jeden paralelní a čtyři sériové porty s maximální rychlostí 9600 baudů.

Projekt ICE

aneb "Internet Connectivity for Eight-bit ataris" je projektem jistého Kennetha Siderse. Ten začal pracovat v první fázi na základní konektivitě k Internetu a doufá, že časem nabídne telnet klienta, jednoduchý browser a možná i e-mail klienta či IRC. V současné jsou funkční protokoly TCP/IP a PPP a po připojení k poskytovateli (modemem) lze používat textový terminál. Ovšem je potřeba zařízení "R:" (což možná nakonec nebude takový problém, viz. níže).

Stránky projektu jsou na http://home.columbus.rr.com/ksiders/ice.htm. Zdrojové kódy nejsou běžně dostupné.

TCP/IP stack pro 6502

Na http://www.tazenda.demon.co.uk/phil/iprom.S se nachází zdrojový kód TCP/IP pro procesory 6502. Zde jsem blíže nepátral.

Kde přijít k "R:" a
je to vůbec nutné?

Originální Atari 850 interface modul je věc velice vzácná a nesehnatelná. Narazil jsem však na jistou náhradu. Jde o tzv. RVerter. Výhodou je vyšší rychlost spojení (19200 baudů), nevýhodou pak blokování SIO Atari pro jiné použití. Rovněž je třeba vyrobit speciální RVerter kabel s interfacem, velmi podobný SIO2PC. Hardwareový handshaking (RTS/CTS) není k dispozici, takže se používá Xon/Xoff. Vlastní handler (RVERTER.COM) je k dispozici na originální disketě s programem Bobterm (VT-52 terminál pro malé Atari).

Nabízí se tu však také možnost zcela jiná než jít cestou standardního Atari OS. Nějaký modernější alternativní OS. I tuto možnost jsem od začátku bral v potaz a neočekávaně jsem narazil na dva zajímavé projekty.

GeckOS/A65 Operating System

je multitaskový multithreadový operační systém pro počítače s CPU řady 65xx. Autorem je André Fachat, který si tento OS napsal pro počítače vlastní výroby a rovněž je portovaný např. na počítače Commodore. Atari port sice není k dispozici, ale vzhledem k dostupnosti zdrojových kódů není vyloučeno, že se do něj někdo nepustí (i když tomu příliš nevěřím). Adresa? http://www.6502.org/users/andre/osa/.

LUnix, dnes LNG

(Little Unix, po kompletním přepsání LUnix Next Generation) vypadá pro Atari mnohem nadějněji. Ačkoli i tento operační systém je primárně vyvíjen pro počítače Commodore (věděl jsem, že pro počítače Commodore existuje nějaký unixový operační systém, nikdy jsem však blíže nepátral), na portu pro Atari se již začalo před několika měsíci také pracovat. Konkrétně polák Maciej Witkowiak. Vývoj však má k překotnosti velmi daleko a tak je v současné době k dispozici pouze funkční kernel (jádro operačního systému). Moduly ani binárky zatím nejsou podporovány (stejně by je nebylo z čeho nahrát, protože rovněž neexistuje diskový ovladač). Uznávám, že to zatím není prakticky použitelné, ale i tak jsem nadšen!

Z vlastností systému vybírám:

V případě zájmu vás odkazuji na http://lng.sourceforge.net/.

Protože jsme se v redakci FLOPu shodli, že nemá cenu zabírat místo sice funkční, leč zatím nepoužitelnou záležitostí, nabízíme vám alespoň "screenshot" běžícího systému aktuální verze (0.19).

Závěr - mé představy a skutečnost

Původně měl být tento článek úvahou nad tím, jak bych Atari k Internetu připojoval já. Při svých pátráních před napsáním tohoto článku jsem však nalezl tolik konkrétních informací, že by bylo hanbou se o ně nepodělit. Navíc jsem zjistil, že mé úvahy se v mnoha bodech setkávají s již realizovaným.

Jaké tedy byly mé původní úvahy (a jak se dotýkají výše napsaného)?

  1. fyzické propojení
    Uvažoval jsem pouze o jakési "první fázi", tj. přímým propojením a nikoliv připojením modemem. Nějaké speciální, příliš složité hardwareové udělátko nepřipadá v úvahu, takže jedinou rozumnou možností je propojení Atari SIO se sériovým portem většího počítače.
  2. handshaking
    Atari SIO nemá podporu hardwareového handshakingu, takže připadá v úvahu pouze Xon/Xoff, to by neměl být problém realizovat (ejhle, tak to má RVerter).
  3. jak pustit IP po sériové lince
    Používají se dvě možnosti, protokoly SLIP a modernější PPP. Nejdříve jsem uvažoval nad PPP, ten je však výrazně složitější než SLIP. PPP je sice nutností pro připojení k většině současných internet providerů, při přímém propojení s větším počítačem však vyhovuje jednodušší SLIP. (Projekt ICE používá PPP; LUnix má SLIP i PPP a GeckOS/A65 má SLIP, oba systémy i ve formě zdrojových kódů.)
  4. TCP/IP stack
    jsem chtěl původně naprogramovat. (ICE ho má logicky v sobě; LUnix i GeckOS/A65 ho mají i ve formě zdrojových kódů.)
  5. vlastní aplikace
    To je až to poslední. Horší je:
  6. jak to všechno zkloubit?
    Ano, je možné napsat aplikaci, která bude mít podporu všeho výše zmíněného přímo v sobě. Ano je možno napsat nějaký "internetový modul", který se nahraje do paměti a pak se již budou spouštět jednotlivé aplikace. Mě osobně se to všechno zdálo příliš komplikované a začal jsem spíše uvažovat nad primitivním multitaskovým kernelem (ale funkční multitaskový kernel je přece již také k dispozici; vlastně dokonce dva - LUnix a GeckOS/A65!).

Zde bych tento článek ukončil s tím, že v krátké době hodlám podniknout další pokusy v této oblasti. V příštím FLOPu se tedy, doufám, opět sejdeme, tentokrát již u nějakého plně funkčního řešení.