Obsah
1. Historie vývoje textových editorů: XEDIT a programovací jazyk Rexx
2. Od hloupých terminálů k terminálům blokovým
3. Základní vlastnosti blokových terminálů IBM 3270
4. Datové oblasti na obrazovce terminálu
7. Moderní reinkarnace textového editoru XEDIT
1. Historie vývoje textových editorů: XEDIT a programovací jazyk Rexx
V seriálu o historii vývoje textových editorů jsme se již zabývali oběma dominantními rodinami editorů, tj. jak rodinou editorů Emacs, tak i rodinou Vi/Vim, přičemž vznik obou těchto vývojových větví lze sledovat téměř až na začátek sedmdesátých let minulého století. Zatímco základy Emacsu je možné hledat v legendární AI Lab na MITu a na počítačích specializovaných pro použití programovacího jazyka LISP, textový editor Vi prošel dlouhým vývojem od prostých řádkových editorů až po celoobrazovkový editor Visual a jeho vývoj je do značné míry spojen s Unixem a taktéž s programovacím jazykem C. Nesmíme ovšem zapomenout na to, že v době, kdy obě zmíněné větve textových editorů vznikaly a pomalu se prosazovaly, existovala na světě jedna firma dominující jak hardwaru (mainframům a později i mikropočítačům) tak i softwaru (operační systémy, uživatelské programy pro velké korporace atd.). Tato firma se samozřejmě jmenuje IBM a mezi její velmi rozsáhlé portfolio patřily i textové editory, kterých v IBM v průběhu přibližně čtyřiceti let pravděpodobně vzniklo několik desítek. Některé z těchto aplikací se používaly pouze pro interní potřeby, další editory však byly nabízeny jako součást OS či dalších programů.
Obrázek 1: Typická klávesnice používaná u terminálů firmy IBM. Povšimněte si jak kurzorových kláves, tak i bloku funkčních kláves PF1 až PF24. Právě z toho důvodu, že terminály IBM měly jak kurzorové klávesy, tak i sadu funkčních kláves, nemusely se v textových editorech používat klávesové zkratky používající Ctrl či Alt (na ergonomii se příliš nedbalo).
Jmenujme například různé textové editory se čtyřpísmennými názvy (psanými kapitálkami): ICCF, LEXX, LPEX, STET, ISPF. V pozdější době, konkrétně v osmdesátých letech minulého století, firma IBM dodávala textové editory nazvané E, E2 a E3 (poslední zmíněný editor byl konkrétně součástí IBM DOSu). I Přes mnohé rozdíly najdeme mezi těmito editory společné vlastnosti, především použití kurzorových kláves (na rozdíl od Vi a Emacsu), funkčních kláves namísto kombinací Ctrl+ a Alt+ a zejména pak přítomnost příkazové řádky. Nesmíme ovšem zapomenout ani na nejslavnější a s velkou pravděpodobností nejoblíbenější textový editor firmy IBM vůbec. Tento editor se jmenuje XEDIT a jedná se o aplikaci natolik oblíbenou, že vzniklo hned několik komerčních i nekomerčních klonů XEDITu, například níže zmíněný editor THE neboli The Hessling Editor (jedním z důvodů, proč se XEDIT častěji nezmiňuje ve flamewars o textových editorech, může být i fakt, že jeho skalní uživatelé jsou starší programátoři, kteří se internetových diskusí příliš nezúčastní, protože vydělávají na svoji druhou jachtu :-). V případě editoru XEDIT se společnosti IBM velmi úspěšně podařilo sloučit tři zajímavé technologie: celoobrazovkový textový editor s příkazovým řádkem, blokový terminál a programovací jazyk Rexx, o němž se níže taktéž zmiňuji.
Obrázek 2: Odlišná klávesnice, tentokrát navíc doplněná o numerický blok vpravo.
2. Od hloupých terminálů k terminálům blokovým
Již v úvodních dvou dílech tohoto seriálu jsme se alespoň ve stručnosti zmínili o dosti podstatném vlivu použitých terminálů na vlastnosti textových procesorů (tento vliv je dnes možná poněkud podceňován, ale právě kvůli různým omezením terminálů vznikly klávesové zkratky editorů Vi i Emacsu). Ostatně jeden z hlavních důvodů, proč se v dávné počítačové minulosti používaly převážně řádkové textové editory, spočíval v tom, že terminály byly k počítačům (typicky sálovým počítačům či minipočítačům) připojeny s využitím relativně pomalých sériových linek (vzdálené terminály pak ještě pomocí modemů). K tomuto faktoru je zapotřebí připočíst i to, že se většinou jednalo o „hloupé“ terminály, které pouze opisovaly znaky, které jim byly po sériové lince poslány (Glass TTY). Při přenosové rychlosti 300 bps trvalo jen překreslení jednoho textového řádku téměř tři sekundy. Poněkud lepší byla situace u terminálů připojených po lince s rychlostí 1200 bps: zde překreslení jednoho řádku proběhlo pod dobu trvání jedné sekundy, ovšem přepis celé obrazovky (typická velikost u profi zařízení byla 80×24 znaků) přibližně 12 až 16 sekund, což je pro interaktivní práci příliš dlouho.
Obrázek 3: Terminál VT52 společnosti Digital Equipment Corporation (DEC).
Autor fotografie: Clickrick.
Navíc ještě někteří výrobci terminálů zavedli technologii zvanou „echo negotiation“ (ostatně používanou pod jiným názvem dodnes). Tato technologie spočívala v tom, že terminál pouze sám opisoval znaky zadávané z klávesnice a teprve po stisku speciální klávesy (typicky Enter či Return) se všechny znaky přenesly na řídicí počítač. Pro zadávání příkazů v shellu byl tento režim poměrně výhodný, protože řídicí počítač nemusel zpracovat každý zapsaný znak (což pro něj znamenalo přerušení, přepnutí do jiného procesu atd.), ovšem pro celoobrazovkové editory se příliš nehodil. Zcela jiný princip byl použit u takzvaných „blokových terminálů“, které vznikly později, protože jejich řídicí elektronika již byla poměrně složitá a typicky obsahovala nějaký osmibitový či dokonce šestnáctibitový mikroprocesor. U blokových terminálů mohli programátoři popsat strukturu obrazovky složené ze statického textu a taktéž z datových oblastí (data field) vyplňovaných uživatelem. Dobrým příkladem může být formulář, do něhož se pouze vyplňovala některá textová a numerická políčka. Až po vyplnění všech políček se jejich obsah (a pouze jejich obsah) přenesl do počítače a tam dále zpracoval. Jedná se o techniku, která se vlastně do značné míry podobá klasickým webovým aplikacím a po mírné úpravě ji bylo možné použít i pro implementaci textového editoru.
Obrázek 4: Terminál VT78 se „zlatou klávesou“ (to je ta žlutá klávesa :-), která se používala pro spouštění maker či dalších funkcí, fungovala tedy trošku podobně jako Ctrl+X v Emacsu. Ostatně názvy volaných funkcí můžete vidět na předním potisku kláves (žlutá/zlatá barva).
3. Základní vlastnosti blokových terminálů IBM 3270
Terminály IBM 3270 patřily mezi skupinu blokových terminálů, o nichž jsme se zmínili v předchozí kapitole. To znamená, že tyto terminály neakceptovaly pouhý proud znaků s případnými řídicími znaky, ale používal se u nich poměrně sofistikovaný přenosový protokol, který mj. vyžadoval, aby terminál obsahoval procesorovou jednotku a nikoli jen obvody LSI, tak, jako některé starší hloupé terminály. Obrazovka terminálu řady 3270 dokázala podle konkrétního typu zobrazit různý počet znaků, ovšem nejtypičtější byl textový rastr 80×24 znaků (IBM 3270 model 2), což znamená celkem 1920 znaků. Při požadavku na vykreslení obrazovky se do terminálu přenesla sekvence bajtů obsahujících vždy řídicí bajt a poté libovolný počet definicí datových oblastí i statických dat (neměnného textu umístěného mezi datové oblasti). Formát datových oblastí si stručně popíšeme v navazující kapitole.
Obrázek 5: Původní verze terminálu IBM 3270 (mimochodem, pod monitorem je nalepena zajímavá poznámka, tento terminál byl pravděpodobně použit někde na univerzitě).
Autor fotografie: Gavin Eadie.
Terminály IBM 3270 taktéž rozpoznávaly některé řídicí příkazy, zejména pak změnu adresy aktuálně zpracovávaného (zapisovaného) znaku na obrazovce (index 0..1919), změnu pozice kurzoru, přesun na vybranou datovou oblast a mj. i užitečný příkaz „Repeat To Address“, sloužící pro opakování libovolného zvoleného znaku n-krát. Co to znamenalo v praxi? Pokud bylo zapotřebí smazat celou obrazovku terminálu, postačilo na to jen několik řídicích kódů: přesun na začátek obrazovky (index znaku 0) a příkaz „Repeat To Address“ se znakem „mezera“ opakovaným 1920×. Také například tvorba tabulek ze znaků „-“ byla jednoduchá a nebylo zapotřebí otrocky přenášet například 80 znaků „-“. Pozdější varianty těchto terminálů byly dále rozšířeny o možnost používat blikající text, inverzní text, podtržení a u některých modelů bylo možné znaky obarvit jednou z osmi základních barev.
Obrázek 6: Editor pro zápis COBOLovských programů, na kterém je mj. patrné i rozdělení řádků na jednotlivé části (číslo sekvence, sedmý sloupec, sekce A, sekce B) i omezení délky jednotlivých textových řádků na 72 znaků na řádek.
4. Datové oblasti na obrazovce terminálu
Jak již víme z předchozích odstavců, skládala se obrazovka blokových terminálů IBM 3270 ze statických textů a dále pak z datových oblastí (data fields). Každá datová oblast byla reprezentována speciálním znakem (bajtem) následovaným řetězcem s proměnnou délkou. Jednotlivé bity speciálního znaku umožňovaly specifikovat:
- Zda má být datová oblast editovatelná či naopak chráněná proti uživatelskému vstupu.
- Zda se má u editovatelných oblastí povolit vstup jen numerických znaků či všech alfanumerických znaků.
- Způsob zobrazení datové oblasti (původně se jen dala zvýšit intenzita textu nebo text skrýt).
- Chování textového kurzoru (má oblast přeskočit či nikoli?).
- MDT (Modified Data Tag) – speciální význam, protože je použit při zpětném přenosu dat do počítače.
Po přenesení popisu celé obrazovky na terminál se aktivita přesunula směrem k terminálu a k jeho uživateli – počítač se této fáze vůbec nezúčastnil a mohl svůj drahocenný strojový čas věnovat zpracování dalších úloh. Mezitím mohl uživatel přesouvat textový kurzor mezi jednotlivými datovými oblastmi a editovat v nich zapsaný text. Terminál si obsah datových položek pamatoval, uživatel dokonce mohl u víceřádkových položek použít klávesu Return pro odřádkování. Speciální význam měly jen některé klávesy, zejména Enter (rozdíl od Return!), Clear a funkční klávesy PF1..PF24. Po stisku těchto kláves terminál poslal zpět na počítač veškeré relevantní informace: pozici kurzoru, kód klávesy, která poslání dat zapříčinila a zejména pak obsah všech datových oblastí, které měly nastavený výše zmíněný bit MDT. Program v počítači tato data zpracoval a reagoval typicky překreslením obrazovky nebo její části. Ve výsledku tedy byl počítač méně vytížen a uživatel dostával rychlejší odezvu (ve chvíli, kdy se data neposílala do počítače, ale jen zpracovávala lokálně).
Obrázek 7: Program typu „Hello World!“ zapsaný v COBOLu. Tento screenshot ukazuje obrazovku terminálu připojeného k mainframu.
5. Textový editor XEDIT
Konečně se dostáváme k popisu textového editoru XEDIT. Jeho autorem je Xavier de Lamberterie, ostatně právě podle něho dostal tento editor své jméno. Původní XEDIT podporoval interaktivní editaci textů s využitím prakticky celé obrazovky (a s ohledem na výše zmíněné možnosti blokových terminálů), ovšem jeho největším přínosem byla podpora pro makra, která mohlo být psána v jazyku EXEC 2 a později v jazyku Rexx. První verze textového editoru XEDIT byla společností IBM vydána koncem roku 1980, a to původně pro systém VM/CMS. Podle některých autorů bylo právě zařazení XEDITu jedním z důvodů obliby CMS, protože postupně začaly vznikat různé utility i rozsáhlejší programy založené právě na použití XEDITu – to vše bylo umožněno právě podporou uživatelských maker, zatímco samotné jádro editoru zůstávalo relativně malé a kompaktní (právě proto nemá valný význam porovnávat jeho základní funkce s dalšími editory, což ostatně platí i pro mnoho dalších aplikací, které lze pomocí skriptů dále rozšiřovat).
Obrázek 8: Rozdělení obrazovky na různé oblasti používané textovým editorem XEDIT.
Zdroj: původní dokumentace IBM.
Pro XEDIT je typické rozdělení plochy obrazovky do několika oblastí, což je patrné z obrázku číslo 8 a taktéž ze screenshotu číslo 9. Editor podporoval dva režimy vstupu, běžný zápis znaků (každý řádek má prefix, do kterého se zapisují příkazy, velmi zajímavá myšlenka) a tzv. power input (zde se používá automatický wrapping a jednotlivé odstavce se typicky oddělovaly znakem # a ne Enterem – důvod již známe). Dále pak obsahuje příkazový řádek, ovšem mnoho funkcí editoru je napojeno na funkční klávesy (split, join, home, end apod.). Poměrně velké množství základních příkazů je orientováno na práci s celými řádky textu, takže zde nalezneme příkaz A (add line), D (delete line), REC (recover line), " (duplicate line) atd. Řádky je taktéž možné několika příkazy přesunovat a kopírovat (M, C). Některé příkazy vzdáleně připomínají editor Vi: například ===A5 zadaný do prefixového políčka vedl k vytvoření pěti prázdných textových řádků. XEDIT je jeden z prvních editorů, v nichž se ve velké míře začal používat folding; teprve později se tato vlastnost rozšířila i do dalších editorů (Vim apod.).
Obrázek 9: Obrazovka XEDITu po spuštění (screenshot terminálu).
6. Skriptovací jazyk Rexx
S textovým editorem XEDIT, přesněji řečeno především s jeho pozdějšími verzemi, je poměrně úzce spojen i skriptovací jazyk nazvaný Rexx neboli REstructured eXtended eXecutor. Z plného názvu je zřejmé, že tento název vznikl především proto, aby se „vlezl“ do úderně znějící zkratky „Rexx“ (někdy psáno i kapitálkami „REXX“), a to jen z toho důvodu, že zkratka „Rex“ již byla používána jinými produkty. První verze tohoto interpretovaného, procedurálního a vysokoúrovňového programovacího jazyka vznikla již v roce 1979 a jeho autorem byl známý anglický programátor Mike Cowlishaw, který v té době spolupracoval se společností IBM. Firma IBM následně interpretry jazyka Rexx poměrně intenzivně používala, a to v mnoha svých operačních systémech (VM/CMS, MVS, AS/400, někteří čtenáři si možná pamatují na OS/2 pro PC) i v uživatelských aplikacích, takže se zejména v osmdesátých letech minulého století jednalo o jeden z velmi populárních a současně i rozšířených jazyků (později firma IBM ve své éře přepisu všeho možného do Javy vydala NetRexx určený pro běh ve virtuálním stroji Javy, což vlastně vůbec není špatný počin).
Obrázek 10: Makro pro textový editor XEDIT.
A nutno říci, že Rexx či jeho více či méně upravené verze nebyl použit pouze v produktech firmy IBM. Rexx se totiž ve variantě pojmenované ARexx objevil v operačním systému slavných osobních mikropočítačů Amiga, kde se kromě jiného používal i pro ovládání a komunikaci mezi různými programy (plnil tedy podobnou funkci jako například PowerShell). Každý program využívající služby operačního systému (AmigaOS) totiž mohl obsahovat rozhraní, přes nějž ho bylo možné ovládat či jen načítat vypočtené hodnoty atd. Podobně jako je tomu v unixech a programech spojovaných přes svůj standardní vstup a výstup, i v případě ARexxu bylo možné vhodným spojením jednoúčelových programů vytvořit i poměrně složitou aplikaci. Podobně jako další skriptovací jazyky je i ARexx do značné míry beztypový, což ale nebyla nevýhoda, neboť to usnadňovalo komunikaci mezi aplikacemi. O důležitosti jazyka Rexx svědčí i to, že v roce 1996 získal svoji oficiální specifikaci v podobě ANSI normy X3.274–1996 „Information Technology – Programming Language REXX“ a ještě později vznikla jeho objektově orientovaná varianta nazvaná Object Rexx.
Obrázek 11: Výpočet Mandelbrotovy množiny implementovaný v jazyku Rexx. Jak je patrné, jedná se o dobře čitelný jazyk.
7. Moderní reinkarnace textového editoru XEDIT
Vzhledem k poměrně propracovanému rozhraní textového editoru XEDIT a jeho podpoře mnohdy velmi složitých a přitom dobře čitelných maker existuje i dnes velké množství programátorů, kteří tento klasický editor chtějí používat nejenom na mainframech společnosti IBM, ale i na svých osobních počítačích a laptopech. Z tohoto důvodu vzniklo hned několik komerčních i open source klonů XEDITu. Například se jedná o komerční klon nazvaný KEDIT, jehož první verze byla společností Mansfield Software Group vydána již v roce 1983, tj. vlastně jen několik let po vzniku původního XEDITu. KEDIT používal podmnožinu programovacího jazyka Rexx, takže byl alespoň částečně zpětně kompatibilní. Dalším klonem je SEDIT pocházející z konce osmdesátých let minulého století. I tento editor podporoval podmnožinu programovacího jazyka Rexx, ten se zde nazýval S/REXX.
Obrázek 12: Jedna z moderních variant na textový editor XEDIT.
8. THE: The Hessling Editor
THE was originally written to be used by people already familiar with the above editors. For this reason, the documentation provides limited information on using THE, and concentrates more on reference material, such as command syntax and configuration.
Obrázek 13: Editor THE v Linuxu.
Nejenom na Linuxu je pro znalce původního editoru XEDIT či jeho klonu KEDIT dostupný textový editor nazvaný jednoduše THE neboli The Hessling Editor. Jedná se o aplikaci vyvíjenou již 25 let a zajímavostí je použití volně dostupného interpretru jazyka Rexx nazvaného Regina, alternativně je však možné použít i interpret Open Object Rexx či uni-Rex. Editor THE využívá pro zobrazení svého uživatelského rozhraní textový terminál a u některých typů souborů (například u zdrojových kódu psaných v jazyku C) umožňuje zvýraznění syntaxe.
xyzzy
Obrázek 14: První kapitola tohoto článku otevřená v editoru THE.
9. Odkazy na Internetu
- XEDIT na TextEditors.org
http://texteditors.org/cgi-bin/wiki.pl?XEDIT - XEDIT pro Windows (klon)
http://digilander.libero.it/ambusy/computer.html - XEDIT commands
http://digilander.libero.it/ambusy/PcXeditHlp.html - XEDIT User's Guide
http://www-05.ibm.com/e-business/linkweb/publications/servlet/pbi.wss?SSN=15ITR0004123323009&PAG=X03&SELPBL=SC24–5972–00&REF=DLD# - 3270 Data Stream Programming
http://www.tommysprinkle.com/mvs/P3270/ - IBM 3270
https://en.wikipedia.org/wiki/IBM_3270 - Block-oriented terminal
https://en.wikipedia.org/wiki/Block-oriented_terminal - Klávesnice 3270
http://www.seasip.info/VintagePC/ibm_6110344.html - Klávesnice IBM
http://www.9999hp.net/keyboard/temp/ - REXX (Wikipedia)
https://en.wikipedia.org/wiki/REXX - Vladimir Zabrodsky REXX Page
http://dhost.info/zabrodskyvlada/ - Rexx tutorials
http://www.rexxinfo.org/html/rexxinfo1.html - A Quick Rexx Tutorial
http://www.informit.com/articles/article.aspx?p=461086&seqNum=1 - Emacs timeline
http://www.jwz.org/doc/emacs-timeline.html - EINE (Emacs Wiki)
http://www.emacswiki.org/emacs/EINE - EINE (Texteditors.org)
http://texteditors.org/cgi-bin/wiki.pl?EINE - ZWEI (Emacs Wiki)
http://www.emacswiki.org/emacs/ZWEI - ZWEI (Texteditors.org)
http://texteditors.org/cgi-bin/wiki.pl?ZWEI - Zmacs (Wikipedia)
https://en.wikipedia.org/wiki/Zmacs - Zmacs (Texteditors.org)
http://texteditors.org/cgi-bin/wiki.pl?Zmacs - TecoEmacs (Emacs Wiki)
http://www.emacswiki.org/emacs/TecoEmacs - Micro Emacs
http://www.emacswiki.org/emacs/MicroEmacs - Micro Emacs (Wikipedia)
https://en.wikipedia.org/wiki/MicroEMACS - EmacsHistory
http://www.emacswiki.org/emacs/EmacsHistory - Seznam editorů s ovládáním podobným Emacsu či kompatibilních s příkazy Emacsu
http://www.finseth.com/emacs.html - George R. R. Martin writes with a DOS word processor
http://www.cnet.com/news/george-r-r-martin-writes-with-a-dos-word-processor/#! - Apple Writer
http://apple2history.org/history/ah18/#08 - COMPUTER PROGRAMMING by Paul Lutus
http://www.atariarchives.org/deli/cottage_computer_programming.php - Verze textového editoru D-Text
http://wiki.oldcomp.cz/index.php?title=Verze_textového_editoru_D-Text - The Writer (World of Spectrum)
http://www.worldofspectrum.org/infoseekid.cgi?id=0008989 - Tasword Two (World of Spectrum)
http://www.worldofspectrum.org/infoseekid.cgi?id=0008856 - SpeedScript source code
http://www.atariarchives.org/speedscript/ch3.php - SpeedScript 3.0: All Machine Language Word Processor For the Atari
http://www.atariarchives.org/speedscript/ch1.php - Čapek verze 3.1 (oskenovaný návod)
http://www.atari8.cz/calp/data/misc_cap/index.php - Čížek V.3 (oskenovaný návod)
http://www.atari8.cz/calp/data/br_man_ciz/ - Editor O26 (příkazy)
http://www.museumwaalsdorp.nl/computer/comp789_o26.html - Editor O26 (stránka na texteditors.org)
http://texteditors.org/cgi-bin/wiki.pl?O26 - Editor O26 (text editor, Wikipedia)
https://en.wikipedia.org/wiki/O26_%28text_editor%29 - Textové editory pro mainframy
http://texteditors.org/cgi-bin/wiki.pl?MainframeEditorFamily - IDA
http://texteditors.org/cgi-bin/wiki.pl?IDA_Editor - qed
http://texteditors.org/cgi-bin/wiki.pl?Qed - qed (description)
http://www.qef.com/html/toolsdesc.html#qed - Text editor (Wikipedia)
https://en.wikipedia.org/wiki/Text_editor - Line editor (Wikipedia)
https://en.wikipedia.org/wiki/Line_editor - The Vi Editor and its clones and programs with a vi like interface
http://www.guckes.net/vi/ - www.vim.org: obsahuje verze Vimu i pro Amigu
http://www.vim.org/ - Články o Vimu na Root.cz:
http://www.root.cz/n/vim/clanky/ - Vim sedm – první část
http://www.root.cz/clanky/vim-sedm-prvni-cast/ - vim2elvis (1.část)
http://www.root.cz/clanky/vim2elvis-1/ - vim2elvis (2.část)
http://www.root.cz/clanky/vim2elvis-2/ - History of the Text Editor
http://vanstee.me/history-of-the-text-editor.html - Interview with Bill Joy
http://web.cecs.pdx.edu/~kirkenda/joy84.html - Hex Editors for Lin/unix
http://blog.sourcepole.com/2006/09/07/hex-editors/ - bvi Home Page
http://bvi.sourceforge.net/ - bvi (Wikipedia)
https://en.wikipedia.org/wiki/Bvi - vim (man page)
http://www.linux-tutorial.info/modules.php?name=ManPage&sec=1&manpage=vim - An incomplete history of the QED Text Editor
http://ned.rubyforge.org/doc/qed.html - QED Text Editor
http://ned.rubyforge.org/doc/qedman.html - Wang 1200
http://www.wang1200.org/ - Wang Laboratories
http://en.wikipedia.org/wiki/Wang_Labs - Wang OIS Emulator
http://www.cass.net/~jdonoghu/oisemul.html - SpeedScript 3.2 for the Commodore 64
http://www.atarimagazines.com/compute/gazette/198705-speedscript.html - Opravdoví programátoři nepoužívají Pascal
http://www.logix.cz/michal/humornik/Pojidaci.Kolacu.xp - A Brief History of Word Processing
http://www.stanford.edu/~bkunde/fb-press/articles/wdprhist.html - XyWrite
http://en.wikipedia.org/wiki/XyWrite - W.E.Pete Peterson
http://www.wordplace.com/ap/ - Orthodox Editors
http://www.softpanorama.org/Articles/orthodox_editors.shtml - Mainframe Museum ‚Where we started‘
http://www.techsystemsps.com/Mainframe-Museum.htm - IBM Mainframe album
http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_album.html - Mainframe computer
http://en.wikipedia.org/wiki/Mainframe_computer - IBM mainframe
http://en.wikipedia.org/wiki/IBM_mainframe - IBM 700/7000 series
http://en.wikipedia.org/wiki/IBM700/7000_series - IBM System/360
http://en.wikipedia.org/wiki/IBM_System/360 - IBM System/370
http://en.wikipedia.org/wiki/IBM_System/370 - Datamatic 1000 by DATAmatic Corporation (1955)
http://www.computermuseum.li/Testpage/Datamatic-1000.html - Burroughs – Third Generation Computers
https://wiki.cc.gatech.edu/folklore/index.php/Burroughs_Third-Generation_Computers - Burroughs B5000, B5500 and B5700 (original) documentation
http://www.bitsavers.org/pdf/burroughs/B5000_5500_5700/ - Burroughs B6500 and B6700 (original) documentation
http://www.bitsavers.org/pdf/burroughs/B6500_6700/ - Burroughs B8500 (original) documentation
http://www.bitsavers.org/pdf/burroughs/B8500/ - General Electric GE-400
http://www.feb-patrimoine.com/PROJET/ge400/ge-400.htm - GE-400 Time-sharing information systems:
http://www.computerhistory.org/collections/accession/102646147 - PDP-10
http://en.wikipedia.org/wiki/PDP-10 - GNU Readline
http://web.mit.edu/gnu/doc/html/rlman1.html