Geoff’s ASCII Video Terminal

Hodně konstrukcí počítačů, hlavně jednodeskových nebo opravdu historických, používá pro svůj vstup a výstup terminál přes sériovou linku. Typicky například CP/M je takto navržena a umí s přesměrováváním zařízení sympatická kouzla. Skutečný Terminál, jako je např. známý VT100, je celkem neskladná a drahá věc. Nejjednodušší je použít PC a sériový port. Ovšem, co dělat, když chcete reálnou obrazovku a klávesnici a starý dobrý CRT video terminál nechcete tahat? Sáhnete po nějakém moderním terminálovém simulátoru, který připojíte na VGA. Jednou z asi nejjednodušších konstrukcí, které znám je ASCII Video Terminal od Geoffa Grahama.

GeoffTerminal_Martin_finished   GeoffTerminal_Help-scr

Když se pozorně podíváte na desku, zjistíte, že je na ní jeden jediný integrovaný obvod –  PIC32MX250F128B v pouzdru DIL. Dobře kecám, je tam ještě 3.3V stabík, ale ten nepočítám Mrkající veselý obličej. PIC32 má na starosti úplně všechno. Komunikuje po sériové lince i USB, čte PS/2 klávesnici a generuje VGA nebo kompozitní obraz. Kompozitní výstup má menší rozlišení a tedy i méně znaků na řádek. U VGA můžete v nastavení volit 24 nebo 36 řádků.

GeoffTerminal_VGA-scr   GeoffTerminal_PAL-scr

Ostatní součástky se tam smrskly na krystal, pasiv a konektory. I RS-232C je řešené hodně jednoduše. Na desce chybí klasický DSub (Canon) konektor, ale najdete na ní jen 4 piny pro sériový TTL interface, ani TTL to vlastně není, protože signálové úrovně jsou 3,3V a ne 5V. Přesto si poradí i s +/-12V signálem z klasického RS-232C. Na RX signálu jsou odpory, které signál omezí tak, aby příslušný pin procesoru přežil a dle autora 3.3V na TX většině implementací sériového portu stačí. Zkoušel jsem různá zařízení a stačilo to všude. Za zmínku stojí ještě to, že +12V na RS-232C je správně logická 0 je +3 V až +15 V a logická 1 je -3 V až -15 V. Toto autor řeší možností inverze signálů v setupu a fakt to kupodivu stačí. Já tedy plánuju využití převážně tam, kde je TTL seriák, ale je dobré vědět, že to jde použít i normálně.

GeoffTerminal_Martin_finished_front-angle   GeoffTerminal_Martin_finished_back-angle

Zapájet těch pár součástek je hračka a naprogramování procesoru také. Vyžaduje to jen vlastnictví PicKit 3 nebo PicKit 4, jejichž klonů je plná eBay a jsou za pár korun. Terminál fungoval na první zapojení.

GeoffTerminal_Martin_working   GeoffTerminal_Martin_working-detail

Kdo by chtěl desku, tak mám k dispozici nějaké navíc.

Pokud by Vám nevyhovoval 3.3V TTL vstup/výstup, který není tak úplně podle normy Mrkající veselý obličej, tak  Geoff’s ASCII Video Terminal existuje i ve variantě s klasickým sériovým D-SUB 9 portem nazvané Graham Video Terminal. Tato verze má také místo USB B konektoru pro připojení do PC konektoru USB A pro připojení USB klávesnice. Nejste tak odkázáni na PS/2 klávesnici. Desku upravil Gary Kaufman a firmware následně David Hansel.

Podobných řešení existuje více. Kdysi hodně populární byl PockeTerm Vince Briela, který používá zajímavý 8-jádrový Parallax Propeller, ale dnes už asi nekoupíte a podklady na desky nejsou volně k dispozici, byť schéma a firmware ano. Velice vymazlený je Spare Time Gizmos‘ Video Terminal, který si hraje i s takovými detaily, jako jsou použité fonty, ale je technicky hodně složitý a také ho už nekoupíte.

Příspěvek byl publikován v rubrice Moderní projekty se štítky , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

7 komentářů: Geoff’s ASCII Video Terminal

  1. vanthomas napsal:

    Ať je to komplet, určitě ještě stojí za zmínku Romanova úprava pro 80 znaků na kompozitním výstupu.
    http://archeocomp.blogspot.com/2016/05/authentic-terminal.html

  2. Diego napsal:

    Ahoj, tenhle terminal je presne to co potrebuju. Myslis ze bysi mel navic jeden naprogramovany PIC? Pripadne by sme se domluvili? Zaplatim

  3. microlan napsal:

    Díky Martine za boot-radu! Nestačí nahrát upgrade firmveru, musí se nahrát FW + BL z ConstructioPack

Napsat komentář: Martin Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *