SORD m.5

[strana 1] [strana 2] [strana 3] [strana 4]

Assembler Z80 a SORD m.5

Jsem docela rád, že se mi podařilo do dnešních dnů uchovat a nepozbýt některá historická data. Za nejzajímavější z nich považuji program Disassembler Z80 napsaný v jazyce ESI Pascal na počítači DEC PDP11/23+ s běžícím operačním systémem DEC RT-11. Tento počítač neměl ani obrazovku, ani klávesnici, ani disketovou mechaniku ani hard disk, ani BASIC, prostě nic z toho, co jsme tehdy znali z 8mi bitů a ani nic z toho, co známe dnes z PCček. Byla to bedýnka, ke které se sériovými linkami připojily terminály a tiskárny, a sběrnicí se připojila 8" (ano, OSM palců) disketová mechanika a případně dok pro výměnné velkokapactiní disky (mělo to rozměry asi jako kolo z motorky a vešlo se na to neuvěřitelných 10 MB! Oproti 8" disketě s 180 KB to byla nedozírná kapacita).

A zde jsou některé (bohužel né všechny) výsledky práce tohoto programu/stroje:

Dlužno podotknout, že "pitvu" firmware FD-5 provedl teamový kolega Luděk. Já jsem v tomto případě pouze sesbíral všechny dostupné poznámky a materiály a sepsal povídání o FD-5.

Protože jsme na SORDovi měli i emulátor počítače ZX Spectrum, dal jsem si tu práci a přepsal a naformátoval pro tisk disassemblovaný a plně okomentovaný výpis a popis ROMky klasického gumáka.

No a toto zde je můj pokus o publikování rozsáhlejšího příspěvku:

tuším že v časopise Elektronika.

Poznámka:
co znamenají ty nesmyslné znaky v řídících a ZXS souborech? Z disassemblovaných výpisů (pro WWW nemají smysl) jsem je vymazal, ale původně byly i tam jako první znaky v ASCII souboru. A neměly žádný jiný význam, než jako ESCAPE sekvence pro tiskárnu, na které se výpis tiskl. ESCAPE sekvence nastavila na tiskárně řádkování, stránkování, velikost písma atd. V té době totiž WYSIWYG neexistovalo: editoval se ASCII PLAIN text v ASII textovém editoru na ASCII terminálu a formátovat se dalo tak akorát změnou velikosti písma a mezerama. A i přesto jsme takto dokázali vyrábět příručky i s "grafikou" (dneska se tomu říká ASCII ART - umění namalovat pomocí ASCII znaků obrázek). A abyste tomu lépe rozuměli: tiskárna byla totožná s ASCII terminálem (terminál: obrazovka, klávesnice, sériová linka) s jediným rozdílem, písmenka netiskla na obrazovku, ale na papír - tzn. měla i plnou klávesnici! Kam se na ní hrabou dnešní tiskárny :-).

Asztali grafikus mozaiknyomtató

No a když už jsme u toho assembleru, nejen v SORDovi bilo srdce Zilog Z80CPU, ale i v maďarské devítijehličkové tiskárně DATACOOP DCD PRT-42G.

Ovšem nejprve si musíme říci něco o její předchůdkyni, kterou jsem měl k SORDovi připojenou předtím. Tou byla parodie na tiskárnu: jednojehličkoná (!) tiskárna BT100. Na té se tisklo tak, že se na ní položil průklepový papír a na něj teprve papír, na kterém měl být text vytištěn. Toto se pak shora zatížilo přítlačným válečkem, který se při tisku pomalu otáčel (posuv papíru). Žádný zásobník pro listy papíru, nic takového. Vyžadovalo to jistou zručnost, jinak se papír zastavil a tisklo se na jedno místo tak dlouho, až se kopírák i papír proděravěl skrz na skrz. Jo, a abych nezapomněl: 1 strana A4 se tiskla tak slabou hodinku...

18. srpna 1988 jsem si koupil magnetofon Tesla SP 210T s vestavěnou BT100 za 4900,- Kčs. Hned jsem si vyrobil potřebný interface (OUT přes port tiskárny, INP přes vstup pro JOY) a zkusil vytisknout rovnou čáru. Povedlo se. Poté nastaly marné pokusy vytisknout i něco jiného, třeba přerušovanou čáru. Nepovedlo se.

Když si uvědomím, že tiskárna (bez kazetového magnetofonu ve kterém byla zabudovaná) mě stála polovinu měsíčního platu ... darmo mluvit. Ovšem kdybych chtěl opravdovou tiskárnu, musel bych v Tuzexu vysolit částku rovnající se asi tak 10ti platům! Takže BT100 jsem na čas odložil k ledu.

Software, který uměl (na tomto malém zázraku poloamatérské výroby nějakého JZD) tisknout, existoval pro ZX Spectrum a možná i další osmibity. Někdo šikovný dokázal napsat základní tiskovou rutinu i pro SORDa (program jsem získal 21. února 1989), ale připojení tiskárny bylo přes PI-5, které jsem neměl. Tedy nezbylo, než program "přeorat" a za týden už jsem vesele tiskl ze všech programů, ze kterých jsem to potřeboval (předělal jsem i je). Jelikož mi toto minimum nepostačovalo, nechával jsem v sobě uzrávat nápad, jak místo speciálního programu pro tisk napsat plnohodnotný ovladač tiskárny. Ve stejné době jsem pracoval na programu Machine Code PET, takže myšlenka zrála dost dlouho. Navíc se mi i rozpadl provizorně zbastlený interface.

Po dokončení MCP jsem v říjnu 1989 vyrobil poněkud pečlivěji ten samý interface a začal psát ovladač. 16. října 1989 jsem měl hotovou třicátou pátou verzi programu a začal jí považovat za snad už poslední. Dnes mi přijde až neuvěřitelné, že jsem tam zapracoval i takovou fajnovost jako ESCcape sekvence, vysoce kvalitní tisk (NLQ - Near Letter Quality, ale byl 2x pomalejší), download a PrintScreen (byť se to jmenovalo jinak - GCOPY). Dokonce jsem si pro ovladač "namaloval" několik sad písem pro download.

Měsíc jsem s touto verzí tiskl, objevil pár kosmetických vad a 16. listopadu 1989, den před masakrem na Národní třídě jsem si do svého zápisníku zaznamenal několik poznámek co napsat do návodu k ovladači BT100, poznámku o tom, že již několik hodin v kuse tisknu poslední verzi zdrojáku ovladače (assembler) a také několik ekonomicko-politických poznámek o nevídaných-neslýchaných událostech, které zatřásly komunistickým režimem (sjednocení Německa, Anežka Přemyslovna prohlášena za svatou, sjezd SSM s radikálními požadavky, atd). Tyto infomace jsem měl z polské TV, neb naše HSP se takto ožehavým tématům taktně vyhýbaly. A to jsem ani náhodou netušil, co všechno přinese příští týden. Tímto mé zápisky o BT100 končí, protože je nahradily zápisky zachycující lavinu překotných změn, spojených s pádem režimu a také mého "procitnutí" ze socialistického snu. Další poznámka je až z 1. 2. 1990, kdy jsem si poznamenal, že jsem vyřešil tisk z TASWORDu a další pak z 8. března 1990, kdy píšu, že se mi v BT100 přetrhla nit a po výměně za novou mám problémy s tiskem. Tudíž opět nutný zásah do ovladače.

Co všechno se dalo s tiskárnou dělat a jak se připojovala k SORDu jsem pak nakonec popsal v tomto návodu. Protože týmový kolega Luděk tuto tiskárnu neměl, tak se na vývoji ovladače moc nepodílel (navíc byl tou dobou na vojně).

Poslední papír vytištěný na BT100, který jsem doma našel, nese datum 24. května 1990. Co bylo s tiskárnou po té, si dnes již nevybavuji. PRT-42G, kterou jsem si koupil 12. března 1991 pro mne pak byla "rychlotisknoucím" vysvobozením (kolega Luděk si jí koupil taky). A navíc v sobě měla toho zajloga...

Jediná výhoda tiskárny BT100 spočívala v tom, že jsem si na ní mohl tisknout libovolným typem písma (včetně švabachu), omezen jsem byl jen svou fantazií a trpělivostí při "malování" písma. Ve stejné době jsme měli v práci k dispozici stále jen ASCII tiskárnu, později pak PC s T602. Doba DTP programů na PC měla teprve vypuknout...

obal příručky

Schema zapojení 1. část

Schema zapojení 2. část

Tiskárna se Zilogem, to přímo volalo po průzkumu! Tudíž jsme neváhali, přečetli obsahy obou EPROMek, podrobili zkoumání a výsledkem bylo něco, co podle mého názoru nemá na celém světě obdoby: kromě změny znakového generátoru jsme přepsali i část firmware tak, aby tiskárna uměla download nových znaků (původně neuměla) a uměla download programu v assembleru Z80 (!), kterým se daly rozšířit tiskové funkce. Počet funkcí tiskárny jsme také rozšířili. Například šikmé písmo šlo dělat nejen klasicky fontem italic, ale i matematicky zešikmením textu v tiskovém bafru (výsledek vypadal mnohem lépe než italic).

Za slovy Tudíž jsme neváhali, přečetli obsahy obou EPROMek... je zapotřebí vidět toto: vymul jsem EPROMky z tiskárny a na EPROM programátoru připojeném k PC 286 s MS-DOSem je přečetl a obsah zapsal na 5,25" disketu. S tou jsem pak šel na jiné PC pracoviště (opět 286ka s MS-DOSem), které bylo připojeno sériovou linkou k počítači SMEP SM 4/20 s OS RSX-11M. Zde se odehrál transfer dat z diskety v PC do SMEPu po sériové lince. Pak jsem šel ke SMEPu a tam jsem data přehrál na 8" disketu s filesystémem RT-11 (to RSX uměl) a přenesl jí k PDP11/23+ s OS RT-11. A tam se teprve odehrálo všechno ostatní. Až byl výsledek hotov, stejně krkolomnou cestou se data dostala zpět do EPROM. A to samozřejmě několikrát, než se dílo podařilo odladit.

4. května 1991 jsem si poznamenal: ...nebylo to nic jednoduchého, trvalo nám to asi 4 neděle...

1. června 1991 jsem si opět poznamenal: Jelikož se nám úpravy tiskáren zdařily, rozhodl jsem se pro další vylepšení. Přibyly zase nějaké "eskejpy", nové tvary a tiskárna teď umí víc znaků na 1 řádek, má jeden druh písma navíc, různou šířku písma a pod.

V tomto návodu je popsáno, co všechno nového tiskárna s naším firmwarem uměla.

Postup, jak se dopracovat k výsledku (pominu-li nezbytné "reverzní inženýrství" při pitvání firmware) byl neobyčejně složitý a proto jsem na něj musel napsat tento návod. V návodu jsou odkazy na potřebné programy pro konverzi dat, tedy na jejich zdrojové texty. Programy byly napsány v ESI Pascalu.

Konečná verze nového firmware vypadala takto:

Na tomto místě musím říci, že "reverzní inženýrství" v tomto případě provedl z větší části teamový kolega Luděk.


Pokračování na další straně. Začátek je pochopitelně na první straně.


[strana 1] [strana 2] [strana 3] [strana 4]


Announcement:
o všech informacích zde uvedených platí, že nutně nemusí být 100% správné.
Stránka byla vytvořena pomocí programu NOTEPAD.EXE, což je jediná správná cesta, jak tvořit HTML.
Obrázky obrazovek byly nasnímány za prostého užití čudlíku [PrintScreen], dokumenty byly nasnímány scannerem Hewlett-Packard ScanJet 6100 a fotografie byly pořízeny digitálním fotoaparátem Olympus Camedia C-3030 Zoom.
Obrazový materiál byl následně zpracován a případné ostatní obrázky i namalovány v programu Corel PhotoPaint.

Home


© 2001, K5