Setting Orange, the 70 day of Chaos in the YOLD 3177
Kreativ nostalgi med Atari ST, Blit, MGR, UW och DNet
1988 hade min begagnade Luxor ABC 1600 just gått sönder. Jag hade visserligen haft 1600:n en ganska kort tid men hade redan fått smak på både Unix, högupplöst knivskarp grafik (till skillnad från den tidens färgskärmar och hemdatorers koppling till TV-apparater) och till viss del också fönstersystem. Jag hade blivit lite bortskämd.
Jag visste inte hur jag skulle laga 1600:n och bestämde mig att i stället köpa en ny dator. Jag hade en hel del pengar från sommarjobbet och försäljningen av min moped (även känd som Mopeden från Helvetet!!!!111!! eftersom den verkade vara ute efter mig).
Om någon förresten vet något alls om 1600:ns fönstersystem så meddela gärna mig! Manualer är bra, källkod bäst!
Eftersom det inte fanns någon datorbutik för privatpersoner överhuvudtaget i Hudiksvall på den tiden åkte jag ofta på små pilgrimsfärder till den stora staden Sundsvall för att besöka datorbutikerna där. Där fanns både butiker riktade till privatpersoner och mer företagsorienterade butiker som i alla fall inte omedelbart kastade ut tonåringar på besök.
Jag och min kompis Peter brukade hänga bland annat på Televerkets butik, som på den tiden sålde datorer (Spectravideo 728, om någon minns den), och prata med andra entusiaster. Någon gång 1986 eller 1987(?) såg jag också min första Amiga 1000. Den kraschade nästan direkt då jag petade på den, tyvärr.
När det var dags att shoppa ny dator blev jag speciellt intresserad av Atari Mega ST, särskilt med dess relativt högupplösta monokroma skärm. Jag vet inte vilken av Mega-modellerna det kan ha varit men det var alltså någon gång 1988. Den jag tittade på kom med en separat hårddisk på, tror jag, 20 megabyte och alltså en monokrom skärm med 640x400 i 72Hz. Knivskarp. Inte lika kul som 1600:ns vridbara skärm med 1024x768, förstås, men 1600:n kostade å andra sidan ny nästan 50 000 kronor (motsvarande 93,5 k idag), och det kan kanske inte jämföras med något för omkring 10 000.
Om jag minns rätt skulle paketet med hårddisk gå på omkring 14 000 kronor (~24 k idag). Jag tvekade. Jag minns inte riktigt varför jag tvekade. Det kan ha haft något med bristen på multi-tasking att göra. Om det var så måste jag ha varit helt slut i huvudet när jag till slut gav upp och köpte mig en PC/AT-klon med 20 meg disk, Hercules-grafik, monokrom (amber) skärm och MS-DOS för samma summa!
Jag gjorde dessutom precis som nästan alla andra och körde den bara som en snabbare PC, utan att ens försöka utnyttja 286:an till något spännande. Jag nöjde mig alltså med att köra MS-DOS! Befängt! Till och med en liten Forth som utnyttjade 286-instruktioner hade varit bättre.
Min retardering varade visserligen bara till -91 eller -92 då jag till min stora lycka fick tag i inte mindre än två begagnade Sun 3/60 och ordningen var återställd. För mer om det, se MC's Centre for Geek Pr0n.
Då och då har jag funderat på hur det hade varit om jag hade slagit till och köpt den där Atarin, i alla fall.
I helgen satt jag och lekte med ST-emulatorn hatari. Systemet är förvånansvärt rappt i användargränssnittet även om det påstås att emulatorn skall vara skapligt cykelexakt. Kanske var det grafiska gränssnittet så pass snabbt?
Jag drog ner lite utvecklingsmiljöer, däribland Pure C och assemblermiljön Hisoft Devpack. Jag har hunnit skriva några exempelprogram i C men ännu inte gett mig på assemblern. Vi får se om jag hittar någon tid till det.
Fönstersystemets API är förvånansvärt rättframt och det är enkelt att göra något i C även om jag erkänner att jag slogs lite grann mot Pure C:s egna motsvarighet till Make-filer.
I en gammal Byte från 1986 jag har liggande, troligen min första Byte någonsin, såg jag dessutom nyligen en annons för en annan C-kompilator till Atari, Mark Williams C:
Hade jag känt till vad jag känner till idag på den tiden hade jag definitivt köpte en Atari! Om någon råkar ha en kopia av Mark Williams C till Atari ST så är jag intresserad. Jag hittade också en fascinerande recension av MWC här:
http://www.atarimagazines.com/startv2n2/markwilliamsc.html
Vad tänkte jag göra med ST-emulatorn? Jag tänkte ägna mig åt lite kreativ nostalgi: Se vad jag med min kunskap idag skulle kunna ha gjort då om jag hade skaffat mig en ST. Jag är medveten om att det här inte alls är realistiskt men det har i alla fall potential att bli lite roligt.
Min första tanke var att skriva ett terminalprogram med flera samtidigt uppkopplade fönster mot värddatorn, ungefär i samma anda som Bell Labs Blit och dess efterföljare (Teletype 5620, AT&T 630, et cetera). Här nedan en 630, introducerad 1987, från omslaget till manulen på Bitsavers.
Blit och dess efterföljare var strikt talat inte grafiska terminaler och inte heller bara terminaler. Blit använder ett protokoll med paket med etiketter som talar om vilket fönster de skall till. Eftersom det är ett vanligt seriesnöre, möjligen över modem, behövs också felkorrigering och flödeskontroll.
Grafik görs inte med protokollet eller ESC-sekvenser, som på en vanlig grafikterminal, utan med nedladdade program som kör i egna fönster. Det är alltså egentligen en slags disklös arbetstation. Ofta använde man tvådelade program, där en del laddades ner och kördes lokalt i terminalen och den andra delen körde på servern. Ett typexempel på program som visar det här beteendet är texteditorn Sam, som fortfarande lever, fast nu under antingen Plan 9 eller i sin X-variant. Jag har hört talas om att den till och med finns portad till Windows!
Rob Pike beskriver Blit i The Blit: A Multiplexed Graphics Terminal och det finns en film bevarad från 1982, tror jag, där de förklarar hur den användes, inklusive en rolig bit där de visar hur en mus fungerar. Filmen finns till exempel på Youtube här:
http://www.youtube.com/watch?v=waTL1abCm9I
OS:et i Blit var strax över 1000 rader C och kanske några hundra rader assembler. Det var multitaskande man saknade minnesskydd. Rätt imponerande, tycker jag.
Blit kommersialiserades först som AT&T Teletype 5620, fast med en annan processor än originalets 68k. 1987 kom efterföljaren AT&T 630 MTG, nu återigen med en 68k. 630:n hade en 16" monokrom skärm med 1024x1024. En bunt AT&T 630 MTG hade varit fina att ha i datorsalen på gymnasiet!
Som många läsare säkert redan känner till skrev jag 2003 en text jag kallade Datorn i skolan enligt MC. I den skissade jag bland annat på vad jag då önskade att min gymnasieskola hade satsat på när de förnyade maskinparken över sommaren mellan mitt första och andra år.
Jag blev så arg när jag kom tillbaka efter sommaren och insåg att de utan medverkan av eller ens förvarning till eleverna hade slösat 1,5 miljon (idag ungefär 2,6 miljoner enligt SCB) på en massa IBM PS/2:or!
I texten föreslår jag att gymnasieskolan kunde ha köpt en VAX och kört någon unixsmak i stället för en bunt oerhört underuttnyttjade IBM PS/2. På det viset hade vi fått en mycket mer tillfredsställande användarupplevelse för de allra flesta användarna, möjligen med undantag för de stackars CAD-användarna som kanske var lite väl sålda på AutoCAD.
Det är inte så lite önsketänkande i texten, för jag föreslår att man skall använda BSD. Mer realistiskt hade det kanske ändå varit med Ultrix, så hade man fått kanske fått support från leverantören, men det hade varit på bekostnad av tillgång till källkoden. Till och med VMS (eller rent av en Prime med PRIMOS) hade varit ett stort lyft jämfört med den dystra verkligheten. Det enda jag på rak arm kan komma på var positivt med PS/2:orna var de trevliga Model M-tangentborden!
Jag tänkte mig hur som helst när jag skrev texten att användare typiskt skulle sitta vid teckenterminaler. Jag nämner som exempel DEC:s egen VT320 eller kanske någon av Facits terminaler, exempelvis den trevliga Twist-terminalen.
När jag läser om den idag känns det som att riktiga terminaler kanske skulle ha blivit för dyrt. En Facit Twist kostade till exempel vid lanseringen 1986 över 12 000 kronor, vilket motsvarar ~23 000 idag. Jag gissar att DEC:s originalterminaler, som den VT320 jag nämnde, kostade mycket mer. Även om PS/2:orna kostade över 30 000 kronor i styck i den tidens penningvärde så är det rätt mycket begärt att betala nästan lika mycket för en bra mycket dummare teckenterminal.
Vad kostade då AT&T 630, som hade varit mycket trevligare? Det vet jag inte. Min Google-Fu är tydligen inte stark nog att hitta en prislista från AT&T. Någon?
Det uppenbara alternativet, när vi nu alltså pratar Atari ST-hackande och terminalemulering, är att trycka in en massa Atari ST som terminaler i stället. Mega ST-varianten med trevligare separat tangentbord hade nog varit trevligast. Utan hårddisk men med monokrom monitor kostade de omkring 10 000 kronor. Fläktlösa. Tysta. Aaah. Precis som teckenterminaler, AT&T:s Blit och 630:n. VAXen kan stå och brusa för sig själv.
Burkarna borde ha varit, just det, utrustade för att köra något slags fönsterbaserat terminalsystem, troligen också med inbyggd filöverföring. Ett sådant system hade varit billigt och troligen också så billigt att lärare och i alla fall de mest intresserade eleverna kunde ha samma slags 'terminal' hemma även om det antagligen inte hade varit riktigt lika roligt över 1200 eller 2400 bit/s som över 9600 eller 19200 b/s, som man troligen hade kunnat köra på skolan.
Jag skrev själv en VT100-emulator på skolans uppdrag som sedan användes i biblioteket för att automatiskt ringa upp och logga in på stadsbibliotekets Unix-dator för sökningar. Det var förstås på en PC med MS-DOS, men jag har svårt att föreställa mig att det hade varit så mycket svårare på en ST.
Den eller de gymnasieeleveer som blev satta att utföra jobbet hade ju ju inte nödvändigtvis behövt börja med att skriva ett eget operativsystem som Rob Pike, även om det naturligtvis i längden kanske hade varit både bra och roligt. Man behövde inte ens köra flera terminalfönster samtidigt till att börja med. I den absoluta början kanske till och med den VT52-emulerande terminalen som följer med systemet i en Atari ST kan duga, tills man fått upp farten på den egna emulatorn.
Hur som helst hade jag tänkt att detta skulle bli min första uppgift på Atari-emulatorn: ett program på ST:n som ger mig flera samtidiga terminaler och som pratar något enkelt protokoll över seriesnöret till program nummer två som sitter på lagom unixhoj och ger mig pty:er för varje fönster och pratar samma protokoll. Fönstren kunde sedan vara antingen vanliga teckenterminaler eller rent av ha stöd för några grafiska primitiver för att rita linjer eller geometriska figurer eller för att placera en bitmap på någon lagom pixelposition.
Jag letade först runt efter befintliga program och hittade utan större problem att fönstersystemet MGR som jag en gång i tiden använde mycket finns portat till MiNT på Atari ST. MGR innehåller också en mux för att multiplexa MGR-trafik över godtyckliga förbindelser, alltså även över vanlig seriellport. Det hade faktiskt fungerat. MiNT lanserades dock något för sent för min nostalgiska tripp.
För den intresserade nostalgikern så finns MGR för MiNT här:
ftp://ftp.funet.fi/pub/atari/INDEX
atarimgr.zoo
är den ni söker. Sedan tillkomer rmgr.arc
eller
rmgr.lzh
som förklaras i indexet som ”Howard's remote windows manager”
och ”Multiple remote sessions thru a serial line”. Programmet rmgr ingår
också i den MGR-distribution jag har liggande. Howard som nämns är
Howard Chu enligt vad jag kan se i MGR-distributionen. Han skrev rmgr
1990 och baserade den på kod från screen, ett program jag liksom
alldeles säkert många läsare fortfarande använder mycket.
I samma indexfil finns också:
uw.tar.Z Unix Windows source for host uwbin.arc Unix Windows binaries for ST
Det här är John Bruners UW, ”a multiple-window interface to UNIX for the Macintosh computer”, där klientdelen för Atari ST är skriven av Hans-Martin Mosner, Brad Bosch och Brian Katzung. Datumet på README-filen är -85! Senaste filen är från -89.
Jag har tagit ner UW och startat i alla fall klientdelen under hatari. Jag har inte testat mot en seriellport än men resten av programmet ser ut att fungera.
Här med defaultfonten 7x13. Det finns en pyttefont på 4x7 som faktiskt ändå är läsbar som nog hade varit mer användbar på riktig hårdvara. Det går tyvärr inte att ta bort menyraden i programmet men det kanske kan fixas.
Källkoden på Unix-sidan ser ganska rättfram ut men kan inte kompilera rätt av under FreeBSD. Det ser ut att vara pty-problem men det går nog att ordna. I allra värsta fall kan man använda samma protokoll och skriva en ny serversida.
Precis det jag hade tänkt göra är alltså redan gjort! Det där hade varit väldigt användbart på 80-talet och en bra bit in på 90-talet, skulle jag tro. Det kanske är ett välkänt program i Atari-kretsar? Varför har det inte spridit sig mer, till andra plattformar? rmgr fanns, förvisso, som en del av MGR men det är heller inte så känt.
Jag har ännu inte hittat källkoden till UW-klienten för Atari ST. Om någon sitter på den, meddela gärna mig.
Jag vet inte riktigt vad nästa steg är. Troligen försöker jag få Unix-sidan att fungera och försöker sedan lista ut hur jag får hatari att prata seriellport, fast kanske bara på låtsas utan att faktiskt blanda in riktiga seriellportar. Jag tänkte köra mot min bärbara för att testa att köra UW.
I förbigående sagt fick jag också tips från Marcus Comstedt om Matt Dillons DNet:
Till Amiga finns DNet, som använder en serielina för att multiplexa olika tjänster, t.ex. filöverföringar men även "terminalfönster". http://aminet.net/comm/net/dnet2.10.13.lha (innehåller full källkod, dokumentation, samt även en implementation för Unix).
Det verkar också väldigt lovande.
Det vore också kul att experimentera med alternativa OS till Atari ST. Jag tog ner en install-image för Minix men lyckades inte boota från floppy. Skit bakom spakarna, troligen. Vore kul att se hur det fungerar. Det vore också roligt att se om jag kan få något litet eget att boota på bara metallen…
Happy hacking,
MC.