Saturday, May 21, 2016

Authentic terminál CGA

80 znakový terminál bol krvý krok. Lenže ja som miloval PC/XT s CGA kartou a chcel som mať terminál, ktorý vyzerá rovnako. No a chcel som sa aj pohrať s PIC32MX. Takže som vyextrahoval font 8x8 z CGA ROM, pomenil framebuffer, upravil časovanie, pohral som sa s PLL a deličkami a podarilo sa. Prikladám foto obrazovky z CP/M s PC/XT CGA lookom. Stačí si upgradnuť firmware v ASCII termináli a užívať si nový retro vzhľad. Krásne je vidno riedke riadkovanie (192 viditeľných riadkov), typický to znak CGA. Keď už som mal CGA font, tak som to dotiahol do konca. Teraz je aj kurzor hrubý cez dva riadky a bliká rýchlejšie, tak ako na CGA, ale to na foto už nie je vidno.


Nový firmware je na starej adrese stále tu
VGA rozhranie terminálu s PC lookom je tiež možné, ale nie s 8MHz kryštálom a teda bez úpravy hardware ASCII Terminálu.

Wednesday, May 4, 2016

Authentic terminál

Kedysi v časoch domácich 8-bitových počítačov bolo znakom tých domácich to, že mali malý (to je krása slovenčiny) počet znakov na riadok obrazovky. To preto, lebo CRT televízory PAL, ani nehovorím o USA (v tomto smere vždy troška zaostalejších) a ich NTSC umožňovali čitateľné zobrazenie len niečo viac ako 40 znakov. Profesionálne počítače odlišovalo to, že zobrazili 80 znakov, čo bola podmienka, aby sa dala zobraziť celá šírka riadku ako na výstupe tlačiarne. Už prvé PC vedeli 80 znakov, takže boli profi. Môj úplne prvý počítač bol profi. PP-06 s CGA kartou vedelo 80 znakov. Samozrejme nie na televízii, ale monitore. Mal som zelenučký monitor. Bol vykuchaný z ASCII terminálu SMEP, a teda bez krytov, ale prehodený obrus cez kovové profily a zmes dosiek a káblov to spravili. Bol som profi. CP/M bolo samozrejme tiež profi, predpokladalo 80 znakov.

PC so zelenou obrazovkou bola klasika. V školách sa tiež vyskytovala, ale bez obrusu a s ozajstnými monitormi. Dnes sa v rámci zmenšovania pripájame z notebookov cez HyperTerminál, prípadne TeraTerm. Ale CP/M klasika profi by bola s vyšívaným obrusom :-) OK, stačí aj bez obrusu ale so zeleným prípadne jantárovým monitorom s dlhým dosvitom.

Takže keď som objavil Geoff ASCII Terminál vyskúšal som. Je založený na kóde z knižky Programming PIC32. Zobrazovanie, USB, emuláciu VT100 aj sériový adaptér obsluhuje jeden 40MHz 28-pinový DIP chrobák. Na vykresľovanie obrazu využíva periférie. SPI na serializáciu a DMA na prenos riadku z RAM do SPI. Synchronizačné pulzy o presnej dĺžke má na starosti tretia periféria Output Compare. Back porch interval je dosiahnutý zreťazenými DMA. Najskôr v BACK porch intervale sa prenášajú nuly a po dokončení prenosu, sa reťazovo odpáli druhé DMA, ktoré už prenáša dáta z buffra. SPI je spúšťané v tzv. framed móde, vzostupnou hranou synchronizačného pulzu. Čiže všetko pekne pospájané hardwarowo, CPU sa v podstate fláka, má na starosti len emuláciu VT100 a zápis znakov do video buffra. Originál Geoffova verzia ale nevie 80 znakov ani 24 riadkov pri výstupe na composit video. Počíta sa s pripojením na TV.

Ja mám starý Philips analógový monitor s compozit vstupom. Hravo zvláda veľa znakov na riadok. Tak ma napadlo využiť ho ako zobrazovač pre Geoffov ASCII Terminál. Takto profi to vyzerá. Firmware v PIC32 som upravil na 80 znakov, 24 riadkov. Font som upravil kozmeticky približne ako na VT100. Rozmery sú 6x12. Rozlíšenie je 480x264. Časovanie spĺňa PAL štandard. Monitor sa v pohode zosynchronizuje.

Philips so zeleným fosforom


Ako vždy je tu nejaký zádrhel. HyperTerminál na WIN7 64 sa nechce pripojiť na virtuálny sériový port cez USB. Ale TeraTerm bez problémov. Skúšal som aj WinXP 32bit, aj Win2000, nikde ten PIC32 nefunguje s HyperTerminálom.

Tera Term s farbičkou jantáru


Samotná doštička ASCII Terminálu má tiež vstup na klávesnicu. Pri aktívnom TeraTerme na Windows cez USB a zapojenej druhej klávesnici v ASCII Termináli tak vznikajú pomerne šialené kombinácie dvoch klávesníc a dvoch obrazoviek. Dá sa písať naraz na obidvoch klávesniciach a text sa samozrejme zobrazuje naraz v jantárovom PC Tera Terme a aj na profi zelenej obrazovke.

Knižka aj upravený firmvare pre 80 znakov VT100 je na stiahnutie tu. Updatuje sa podľa manuálu na Geoffovej stránke, ako pri upgrade na verziu 1.3. Návrat z VT100 na V1.3 je samozrejme kedykoľvek možný.

Skúšal som tam nahodiť font z CGA karty. CGA má font o rozmeroch 8x8. PC-CGA look by sa mi celkom páčil :-) Lenže treba upraviť riadok na 640 pixelov a znížiť počet riadkov. Vychádza to na NTSC časovanie. Treba zrýchliť SPI a tu už narážam na možnosti deličiek, frekvencie kryštálu, PLL a podobných problémov. Je to zatiaľ nedokonalé, riadok končí v 3/4 obrazovky. Písmenká su moc úzke. Pracujem na tom (možno) podľa chuti.

Dalo by sa aj viacej farieb, kedže PIC32 má 4 SPI kanály. Všetky štyri sa dajú odpáliť naraz vo framed móde. Colormite využíva tri a má osem farieb. Ale na to treba viac pinov a viac RAM ako má 28-pinový drobček.