Sunday, December 25, 2016

Jára Cimrman 8-bitový, alebo teď tady byl..


Veľký český vynálezca a talentovaný mladý inžinier správne už v 19.storočí stanovil, že základnou veľkosťou informácie bude 8-bitov, čiže jeden byte. Vychádzal z toho, že 10 ako počet prstov je nedosiahnuteľný ideálny stav. Preto jeden prst nechával pre kontrolu parity a druhý pre funkciu z Cimrmanovskej algebry "tesne míňa", tvorenú produktom čiastočných hodnôt skoro všetkých bitov.

Jára bol vždy presvedčený zástanca 8-bitov. Veľmi správne argumentoval, že akademikmi navrhované zdvojnásobenie byte na slovo 16-bit je proti prírode a zdvihne sa veľká vlna odporu. Potvrdením jeho jasnozrivosti nie je len to, že 16 bitov dnes už prakticky vymizlo aj z mikrokontrolérov, ale aj to ako vášnivo sa stavajú účastníci old comp párty k počítačom triedy PC. Predaj tričiek s obrázkom PC/AT nikdy ani nezačal.

Vypracoval vysoko cenený príspevok do matematickej teórie hier, kde na rozdiel od klasických problémov so stratégiami vedúcimi k porážke protivníka postuloval, že v budúcnosti bude možné hrať aj hry s jedným hráčom, kde je cieľom hry prežit, "preskákať si" niečo a dokonca mať pri tom zábavu. Položil tak základy novej vednej disciplíny platformové hry, ktorej dôstojnou realizáciou v praxi sa stal 111 rokov po jeho narodení Manic Miner. Na počesť Cimrmanovho priateľa a suseda z detských rokov Krakonoša, bola špeciálne pre túto aplikáciu skomponovaná melódia "V jeskyni krále hor". Úplne revolučné bolo Cimrmanove poznanie, že hráč može mať aj viac životov. Predpovedal aj vynález cheatov, ktoré v budúcnosti zvýšia počet životov z tri na osem. Je autorom legendárneho výroku "Osem životov musí stačiť každému".

Dávno pred vznikom kybernetiky ako nového oboru v 50tych rokoch 20.storočia, predpovedal a v nehonorovanom článku do Technických novín s predstihom fundovane vyvrátil budúce ruské tvrdenie, že "kybernetika je buržoázna paveda".

PVaŠNR

Thursday, October 27, 2016

8" MOM MF6400

Maďari, to bol pre nás z ČSSR v rokoch 80tych západ. V Budapešti na trhoch mali platne západných kapiel, rifle, tričká, magneťáky, kazety, tovar o akom sme u nás ani neslýchali. Kedže pri pokuse o vycestovanie do MĽR sa nestrieľalo, tak Čechoslováci jazdili tam. Aj ja som mal tričko a rifle z Maďarska! Západňarsky to bolo aj s disketovými jednotkami.

Podľa obrázkov z webu som po cca 30 rokoch vedel, že MOM (Magyar Optikai Müvek) sú tie pravé SMEP mechaniky. Našiel som len stručné info, zistil som, že boli dva typy MF3200 a MF6400. Tým menej pravdepodobné bolo, že sa nájde papierová dokumentácia od maďarskej mechaniky spred toľko rokov. No a raz mi pri rozhovore EC1045 len tak s úsmevom utrúsil, že má také niečo doma na stole :-) Šťastnou náhodou išlo o dokumentáciu k MF6400. Ochotne mi ju naskenoval, za čo mu týmto tisíc krát ďakujem. Povzbudený som sa rozhodol, že si nejakú MF6400 od lenochoda kúpim. MF6400 na rozdiel od MF3200 dokáže aj MFM, nie iba FM záznam. Kedže sa jedná o jednostranné mechaniky, je kapacita jednej diskety 500,5kB. Interface MOM MF6400 je Shuggart, stačí nasunúť 50 pin konektor.

MOM Budapešt dokázala vyrobiť obojstranné plošné spoje so zelenou maskou a bielymi popiskami. Kabeláž realizovali americkými MOLEX, AMP a TE konektormi. ČSSR počítače sa museli uspokojiť s čokoládkami, maska na plošnom spoji nebola ani zelená ani žiadna. Disketové mechaniky MOM mali formu a fazónu. Designové predné čelo z plastu, premyslený a vymazlený systém uchopenia a centrovania diskety a zatvárania vstupného okienka. Boli vybavené blokovaním otvorenia počas aktivity. Čítací zosilovač realizovaný jediným čipom MC3470. Vyvinuté v spolupráci so SAGEM. Mechanika má optický snímač polohy, kde sa nachádza hlava a sama si generuje signál TG43. Remeň a všetky pružné časti sú aj po rokoch ako nové.


takto prišli od lenochoda (zabudované v Robotron 8-Zoll Beistellgerät für den PC1715)

Na stránkach robotrontechnik.de sa píše, že sú známe iba 4 exempláre tohoto dvojdecku:-) Ale ja viem minimálne o ďalších troch, ktoré toto leto lenochod predal. Tým myslím, okrem toho mojeho - štvrtého. No a keďže robotroňáci nad jeho ponukou na ebay krútili nosom, tak som s čistým svedomím kúpil a rozoberal. Ďalej tam píšu, že v súčasnosti je známych 7 exemplárov samotných MF6400. Nuž je ich o dosť viac. Okrem 4x2 kusov z dvojdeckov, predal lenochod toto leto aj samotných MF6400 cca 4kusy. Ešte viem o jednom exemplári v Brne a min. jednom niekde v Banskej Bystrici. EDIT: Nedávno(leto 2017) sa mi ohlásil zo Zlína majiteľ dvoch kusov MF6400, jedného kusu Robotron dvojdecku s ďalšími dvoma MF6400 a jednej MF3200.

Doska umožňuje široké možnosti prispôsobenia a využívania aj neštandardných signálov. Konfiguruje sa pomocou jumperovateľných headrov. Výrobca namiesto zvyčajného osadenia jumperov použil wire-wrap s americkým drôtikom KYNAR AWG30. Neviem či v tomto prípade už narazil na limity socialistického hospodárstva a jednoducho nemal jumpre, alebo to bol zámer. V každom prípade zvolil prácnejšiu, drahšiu ale spoľahlivejšiu variantu.


foto wire-wrap na headroch, napravo pole testovacích bodov


foto dosky elektroniky


doska elektroniky sa dá vyklápať

Pretože MF6400 nepotrebuje signál TG43 z radiča, je ideálna na pripájanie k PC radičom. Stačí len správne poprepájať signály na bežný 34 pinový PC kábel a dá sa korektne čítať aj zapisovať. V lete, keď som navrhoval adaptér na 8" mechaniky, som ešte žiadnu MF6400 nevlastnil:-)

Po zapnutí nefungovala ani jedna, čo EC1045 správne aj predpokladal a pred čím ma varoval. Zdroj nenabiehal, zjavne bol skrat na 24V. Príčinou boli 1.5uF/35V filtračné tantaly. Boli aj iné závady, jeden ruský 7406, na inej doske zase ruský 7474, chýbajúci klzný filc na ramienku prítlaku na hlavu, ulomené kondíky, nespoľahlivý mikrospínač a iné. Našťastie jedna z dosiek ktoré som mal, po odstránení viditeľných poškodení, fungovala na sto pro. Od tejto som sa už potom odchytil. Všetko som vyčistil, premazal, premeral, pomenil, nahradil a mechaniky už šlapú. Zapojenú mám jednu pod CP/M na NCD85. Fungujú spoľahlivo a je to zážitok sledovať ich činnosť. Ešte musím popracovať na vhodnom šasi.

Okrem informácii a foto na robotrontechnik.de som našiel niečo v Amatérskom Rádiu 8/89 v článku s názvom Diskety a disketové jednotky. Ďalšia dokumentácia (okrem tej od EC1045) a výborné fotografie sa nachádza tu/tady a tu/tady a tu/tady.

Saturday, October 22, 2016

SMEP doba - SM50/50

Boli to roky 80te. Gorbačov zaviedol perestrojku a ČSSR zavádzalo PMD85:-) Ale na Dubnickej priemyslovke PMD85 ešte nebolo. Bol tam 1, slovom jeden, počítač. Čakal som mikropočítač do 2-3kg. (červený ovál vpravo hore) Namiesto toho mi predviedli MINI počítač (to v popredí).


Obrázok som si požičal z prezentácie dejiny výpočtovej techniky SAV.

MINI znamenalo, že už to nebol kolos vážiaci niekoľko ton a vyžadujúci klimatizovanú sálu s armádou operátorov v bielych plášťoch. MINI sa rozkladalo "iba" na dvoch oceľových stolíkoch. Na jednom bolo čosi veľké s dvomi rúčkami a dvomi červenými LED. Vraj floppy disky. Na druhom bola krabica s obrazovkou a profi klávesnicou. Bol to upravený terminál CM7202. Upravený bol tak, že doňho pridali 16-bitový počítač. Miesto pre nové dosky elektroniky vzniklo tak, že starý transformátorový zdroj s obrími kondenzátormi a chladičmi bol nahradený moderným spínaným, ktorý je oveľa menší a účinnejší. Výsledok úpravy sa nazýval SM50/50. Floppy disky boli mimochodom väčšie (pozri napravo od PLAN80) ako samotná SM50/50. Myslím, že na treťom stolíku (je to už skoro 30 rokov) bola tlačiareň, IIRC bol to Robotron. Mala sedmokráskové koliesko s písmenkami - daisy wheel. Pri tlači sa vždy natočilo pred kladivko správne písmenko a potom bum a otlačilo sa na papier cez farbiacu pásku, presne ako keď sa píše písacom stroji.

Jednalo sa o počítač z rady SMEP - systém malých elektronických počítačov. Kópia agresívneho útočného amerického DEC PDP11 zo zahnívajúceho kapitalizmu. Ako to už u kópií z pokrokových krajín mierového socialistického tábora bývalo, ich spoľahlivosť proti buržoázno reakčným originálom bola marxisticko dialektická. Čiže bezútešne žalostná. SM50/50 zodpovedal asi najlepšie PDP11/23. 64kB RAM. Processor 16-bit, s ortogonálnou inštrukčnou sadou bol realizovaný na jednej doske čipmi LSI. Operačné systémy pre radu SMEP boli FOBOS, DOS RV, DIAMS atď. Kópie RT11, RSX11 atď. Pod Fobosom 2(RT11 v3), ktorý sme mali na SM50/50, mohli bežať naraz dve úlohy. Pod DOS RV ich mohlo byť veľa. DIAMS bol databázový OS. To, že sa v zmysle najlepších leninských tradícií jednalo o ukradnuté kópie hardware a software z imperialistického USA nebolo nikde napísané/priznané. Načo aj, opustenie prekvitajúcej, bratskými vojskami okupovanej republiky bol trestný čin a na hraniciach sa do utekajúcich ľudí strieľalo :-(

Po prvotnom sklamaní mi starší spolužiak na tejto mašine v BASICu spustil pristátie na mesiaci (Lunar Landing) a môj dovtedy nevyjasnený ideový postoj sa postupne menil na budovateľské nadšenie. Táto prefíkaná mašina si dokázala na rozdiel od PMD85 sama vyhľadať na diskete program a spustiť ho. Už žiadne prevíjanie kaziet Emgeton:-) Môj svet sa zmenil, zrazu tu boli disky DX0 a DX1, BASIC, možnosť tlače a možnosť úlohy na pozadí. Bola to paráda.

Potom síce prišla doba PMD85-1 a Manic Minera. Celé dni, týždne a mesiace sme pilovali melódiu In the Hall of the Mountain King. Ale na SM50/50ku bez grafiky iba s písmenkami a bez zvukov som nezabudol. Bola síce odprataná z dohľadu do zaprášeného skladokabinetu, ale stále fungovala. Občas som si k nej sadol a užíval vietor ventilátorov, blikanie LEDiek a hlavne, to najlepšie - hlasité cvakanie disketových jednotiek. Pretože u osempalcových jednotiek sa motor a disketa točili stále, museli sa šetriť hlavy iným spôsobom. Elektromagnet pritlačil disketu na hlavu iba v prípade aktívnej činnosti.

Disketovky pre SM50/50 boli typu MOM MF3200, 77 stôp, 26 sektorov, sektor 128 byte. Kapacita DX0 250kB. DX1 taktiež. Na aukro lenochod občas ponúka na predaj starú ČSSR výpočtovú techniku. Tak som si v roku 2016 konečne kúpil MOM MF6400. Kazety mi už kapacitne nestačia:-) Podrobnejšie popíšem v ďalšom článku.

Sunday, October 2, 2016

8" adapter

Prvé floppy disketové mechaniky používali štandard Shuggart. Alan Shuggart bol v časoch 8 palcových mechaník taký úspešný, že jeho prevedenie konektora a zbernice sa stalo de facto štandardom. Neskôr predal svoju firmu Shuggart Associates XEROXu, ktorý ju úspešne doviedol do krachu. Alan neskôr založil ďalšiu firmu Shuggart Technology, ktorá kvôli sporom s Xeroxom musela zmeniť meno na Seagate Technology. A tú už pozná aj dnes kdekto:-)

8 palcový štandard používa 50 pinový ribbon kábel na konci s hranovým konektorom na plošný spoj. Podobne ako u 34 pinového PC štandardu je jedna strana konektoru vyhradená pre zemniace vodiče. Ostatných signálov tam nie je až tak veľa. Dátové READ DATA, WRITE DATA. Na riadenie mechaniky DRIVE SELECT, SIDE SELECT, MOTOR ON/HEAD LOAD, WRITE GATE, na krokovanie DIR a STEP. Stavové signály z mechaniky sú INDEX, TRACK 0, WRITE PROTECT, READY, DISK CHANGE.


Na jednoduché pripájanie 8 palcových mechaník som si vyrobil adaptér. Adaptér je obojsmerný. Umožňuje pripojiť 8" mechaniku na 34 pinový kábel a naopak 34 pinové mechaniky na 8" 50 pinový kábel. Zapojenie je podľa obrázku. Niektoré piny môžu mať na rôznych mechanikách odlišný význam.

Niektoré 8" mechaniky potrebujú na pine 2 signalizáciu, že sa zapisuje na stopu vyššiu ako 43. Vtedy znížia prúd do hláv. Adaptér tento signál generuje. Je zavesený na signáloch TRACK 0, DIR a STEP a z toho vie vypočítať kde sa hlava práve nachádza. Info napr. tu Daves Old Computers - Connecting drives to PC

Pre pripájanie 5.25" a 3.5" mechaník, ktoré negenerujú signál READY na 8" radič FDD, ktorý by tento signál potreboval je aj tento syntetizovaný. Kaskádovito za sebou dva monostabilné klopné obvody natiahnu signál INDEX tak, aby pri založenej a otáčajúcej diskete bol tento signál trvale v aktívnom stave. (Napríklad ale notebooková 3.5" mechanika TEAC FD-05HG READY signál má. S adaptérom popísaným minule sa dá cez adaptér popisovaný v tomto článku priamo pripojiť na 8" radič)

Pri ľahkú vizuálnu kontrolu funkčnosti mechaniky (motora a stavových snímačov) sú pridané aj blikátka. LEDky sú na signáloch WRITE PROTECT, TRACK 0, INDEX, TG43 a READY. Na LCD display sú pre kontrolu zobrazené otáčky diskety a číslo stopy.

Na prepojenie 8" mechaniky na 34 pin radič potrebujeme dva káble. Jeden 34 pin ktorý ide do adaptéra. Z adaptéra potom jeden 50 pin do 8" mechaniky. Na doske sú dve 34 pinové konektory. Teoreticky by bolo možné pripojiť teda až štyri 34 pinové mechaniky. Ale tie dve 34 pozície je možné zapojiť aj ako iba pasívny medzikus na potreby monitoringu 34 pinovej mechaniky.



Video v činnosti (žltá LED vľavo je TRACK0, blikajúca modrá je INDEX, zelená je TG43 a oranžová je syntetizované READY):

Schéma aj program je na stiahnutie tu/zde. Plošák má rozmery 5x10cm. Tým sa vojde do free verzie známeho CAD programu. Na plošáku sú dve chyby. Zabudol som na 2x 33pF kondenzátor pre kryštál AT85C1051. Dá sa jednoducho priletovať priamo na nožičky kryštálu zo strany súčiastok. Druhá chyba je popiska pri C1. Asi bude potreba 6.8uF kondenzátor namiesto 2.2uF na dostatočné predĺženie READY signálu. Ja mám 6.8uF a je to OK. Kto má poruke 4.7uF môže skúsiť, možno to bude stačiť. C4 som osadil 2.2uF, ale LED INDEX viditeľne bliká už aj pri 1uF.

To ako sa poprepájajú jednotlivé body záleží od konkrétneho nasadenia, typu mechaniky, smeru konverzie atď. Je treba si premyslieť čo a kam má viesť. Niečo sa dá realizovať jumprami, niečo bude možno treba realizovať drátikmi. Odpory je treba 5mm, alebo väčšie a dať ich na výšku. Dosky ponúkam za poštovné. Dodám aj schému v známom CAD programe, aby si každý mohol vysvietiť, kde sa ktorý prepojovací bod nachádza.

Program je napísaný v kombinácii C/ASM. Použitý kompiler je SDCC. Skompilovaný kód má 1021 byte. Preto sa dajú využiť aj šuflíkové zásoby starých AT89C1051.

Sunday, September 18, 2016

Notebook Floppy

Na doske NCD85 sú diery na montáž 3.5" floppy mechaniky. Na vyskúšanie je to OK. Na montáž 2x mechaník už nie tak celkom. Videl som to na Foreveri a dve mechaniky na sebe už sú teda dosť vysoké a aj ťažké, čo nie len že nelahodí oku, ale aj zaťažuje plošák.

Mal som doma zopár nevyužitých mechaník z notebookov 386/486. Notebookové mechaniky vyrábalo viac výrobcov. V priebehu času sa znižovali z 2/3 výšky bežnej až na polovičnú výšku. Konektory na pripojenie boli tiež rôzne, s rôznym počom pinov a s rozdielnym rozostupom. Väčšinou už využívali FFC/FPC konektor na vodivý pásik. Posledné mechaniky už boli všetky polovičnej výšky, a s konektorom 26-pin FFC/FPC s dosť štandardizovaným pinoutom. Preto som ich chcel vyskúšať pripojiť na NCD85. NCD85 má klasický konektor 34pin na ribbon kábel s IDC konektormi.

Na rozdiel od 5.25" mechaník sa výrobcovia pri niektorých 3.5" vrátili ku signálom, aké boli bežné pri 8" mechanikách. Znova začali implementovať signály DSKCHG, READY a podobne. V prípade mechaník TEAC FD-05HG je pridaná aj voľba otáčok. V 2.0MB móde je to štandardných 300rpm. V móde 1.6MB je to 360rpm. Toto je mód, kedy je mechanika voči radiču na nerozpoznanie od 5.25" 1.2M HD mechaniky a samozrejme aj od 8" DS/DD mechaniky. Navyše na rozdiel od 5.25" máme aj READY a ďalšie 8" signály. Tieto mechaniky sa okrem iného nachádzajú v kombinovaných čítačkách kariet s floppy mechanikou do štandardnej pozície 3.5" v PC. Možno sú aj v niektorých externých USB 3.5" mechanikách.

Navrhol som doštičku 4x5 cm s jedným IDC 34-pin konektorom a dvomi 26-pin FFC/FPC konektormi na pripojenie dvoch 26-pin mechaník. Ešte som pridal na dosku aj konektor pre +5V napájanie a dve LED a dva jumpre. LED slúžia na indikáciu signálov DISK CHANGE a READY. Jeden jumper umožňuje voľby pripojenia jedného z týchto dvoch signálov (alebo žiadneho) na pin 34. Druhý jumper umožňuje prepínať na mód 1.6MB kedy sú otáčky 360rpm.


Dve mechaniky majú výšku jednej :-)

Pripájajú sa dvomi FFC 26pin/1mm pásikmi. Tu treba dávať pozor, keď sú pásiky invertované (na protiľahlých koncoch majú vodivé plôšky na opačných stranách), je treba použiť konektory s top kontaktom - platí pre moje TEAC FD-05HG. Existujú aj konektory s bottom kontaktom.


Ozaj je to mini. Jednej mechanike chýba čelný rámik.

Plošný spoj 4 x 5cm. Zopár ich môžem poskytnúť. Známym len za poštovné. Mám naviac aj konektory a pásiky.

Pri prepnutí do módu 1.6MB dostaneme kompatibilnú radu 8", 5.25" a 3.5" mechaník, kde je možné bez zmeny používať ten istý fyzický layout sektorov na diskete. Z pohľadu radiča sa javia všetky ako klasika IBM 8" 53FD / Shugart 850. Niekorí výrobcovia software dodávali na všetkých troch médiach ten istý obraz systému :-)

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.

Wednesday, April 27, 2016

Floppy Types

Kedysi sa používali 8 palcové diskety a mali kapacitu cca 80kB. Kódovanie dát bolo FM, prípadne GCR, prípadne niečo iné. Preskočme úplný pravek a poďme do dôb našeho mládí. PMD85 diskety nemalo. ATARI 800XL malo 5.25 palcovú disketu o kapacite 80kB. V ATARI ST a AMIGE sa používali DD 720kB diskety. Mali rozmer 3.5". Vtedy sa už prechádzalo na MFM kódovanie. Občas sa požívali aj v PC. Ale väčšina PC diskiet bola HD s kapacitou 1.44MB. Vysvetlím čo je DD a HD, počet stôp a čo ovplyvňujú otáčky. Vysvetlím aj prečo je rozdiel medzi 5.25" 720kB disketami v DD a HD mechanike.

RozmerHustotaStopySektoryKapacitaOtáčkykbps
5.25"DD409360kB300250
5.25"HD80151.2MB360500
3.5"DD809720kB300250
3.5"HD80181.44MB300500

Počet sektorov platí pre PC. Sektory mali veľkosť 512 byte.

Zaujímavé sú stĺpce sektory, otáčky a kbps (bits per second). Porovnaním 1 alebo 3 so 4 riadkom tabuľky vidno, že počet sektorov je dvojnásobný, preto je aj dvojnásobná bit rate. Porovnaním 1 a 2 riadku tabuľky vidno, že počet sektorov nie je dvojnásobný. 15/9 nie je 2. Ale je vyššia rýchlosť otáčania. Výpočtom (15/9) x (360/300) dostaneme 2. Preto je aj hodnota bit rate 500kps v druhom riadku správna.

Niektoré 8" diskety sú označené SD. Znamená to single density. V podstate to označenie nemá význam. Pretože hovorí len to, že disketa je vhodná pre zápis kódovaním FM (360rpm, 26 sektorov, veľkosť sektora 128 byte), bit rate 250kbps. DD znamená double density. Odvodené je to od prechodu z FM na MFM kódovanie. Prechodom na MFM (elimináciou clock pulzov) je pri tej istej frekvencii záznamu/hustote magnetických prechodov zdvojnásobená hustota informácie/kapacita a tým aj bit rate. Pri 8" to znamenalo 500kps a dvakrát vyššiu kapacitu (26 sektorov po 256 byte). Kedže bolá tá istá frekvencia, tak aj materiál diskiet ostal rovnaký. Len sa začali označovať ako DD a predávali sa drahšie :-)

Späť ku menším rozmerom 5.25" a 3.5". Počet sektorov je tu nižší, bit rate polovičné. Už sa používalo iba MFM. DD diskety boli základné. Umožňovali pri určitej rýchlosti povrchu média (300rpm a menší priemer 5.25" vs 360rpm a priemer 8")bit rate 250kbps. HD(high density) pri tej istej rýchlosti média 500kbps. (riadky tabuľky 2,4) Keď zvýšime otáčky, musíme ubrať počet sektorov. To je prípad riadku 2. Pri vyššej kontaktnej rýchlosti hláv, sú nižšie nároky na kvalitu média. Vyššiu hustotu záznamu HD umožňuje vyššia koercivita média a kvalitnejšie hlavy schopné vyššieho prúdu zápisu a tým silnejšieho magnetického poľa. (pamätá si ešte niekto na Metal kazety Type IV? max 22000Hz)(R2R dosiahol 30000Hz aj na normálkach páskach, ale rýchlost 38cm/s)

Koercivita floppy diskiet:
8" all formats: 300 oersteds
5.25" double density (360 KB): 300 oersteds
5.25" quad density (720 KB): 300 oersteds
5.25" high density (1.2 MB): 600 oersteds

3.5" double density (720 KB): 665 oersteds
3.5" high density (1.44 MB): 720 oersteds
3.5" extra-high density (2.88 MB): 900 or 1200 oersteds (unconfirmed)

Mechaniky 3.5" majú vždy 300rpm. Sektorov je buď 9 pri DD, alebo 18 pri HD. Bit rate 250kbps pri DD a 500kbps pri HD.

Mechaniky 5.25" sa otáčajú ako ktorá, ako kedy. DD majú 300rpm. HD majú 360rpm. Ale je tu ale. Niektoré HD sa dajú naswitchovať aj na 300rpm. Prípadne ešte lepšie, niektoré sa dajú naswitchovať inteligentne, aby pre HD diskety (DENSEL signál) mali 360rpm a pre DD diskety mali 300rpm. Ale to nie je štandard. Vždy treba čítať manuál ku konkrétnemu typu mechaniky.

Čo sa stane ak vložíme do 5.25" HD mechaniky DD disketu? V CP/M sa využije 80 tracks/stôp a teda budeme mať pekných 720kB kapacitu (to je tá quad density). Kedže ale HD mechaniky majú otáčky 360rpm, rýchlosť prenosu nebude 250kbps, ale 300kbps. Preto je potrebné mať v BIOS rozdielne parametre pre 720kB v DD alebo HD mechanike. Existujú aj špeciálne 5.25" DD mechaniky s 80 stopami a 300rpm. Napríklad TEAC FD-55F. Pri nej by bola bit rate štandardných 250kpbs a kapacita 720kB. Takže tá istá disketa môže mať rôzne bit rates, podľa toho ako rýchlo sa v mechanike otáča.

Tuesday, April 26, 2016

CP/M BIOS FDD + PMD32SD

CP/M na NCB85 funguje buď s PMD32SD, alebo s disketovými mechanikami, alebo s obidvomi. Osobne mám rád buď jedno alebo druhé. Driver pre každé zariadenie zaberá zbytočné miesto v RAM. Pre PMD32SD stačí nahrať na SD kartu správny obraz a CP/M nabootuje z SD karty. Pre samotné diskety je BIOS tak malý, že sa zmestí aj s CP/M do jednej EPROM a odtiaľ aj nabootuje. Problém je, že je potrebné mať pracovnú disketu CP/M.

Disketu si je možné naformátovať programom FDC.COM. To sa dá aj vtedy ak CP/M nabootuje z PMD32SD s BIOSom pre PMD32SD. Keď potom prejdeme na BIOS iba pre disketovky, tak CP/M nabehne z EPROM a prečíta obsah adresára na diskete. Funguje. CP/M je perfektne spokojné s čistučkou naformátovanou disketou. Ale je tu problém. Pretože disketa je prázdna. Okrem zabudovaných príkazov dir, type, ren, save by nič iné nebolo k dispozícii. Je potrebné dostať na disketu aspoň XMODEM. Pomocou XMODEM už je možné potom preniesť z PC na disketu čokoľvek. Aj CP/M programy ako ASM.COM, DDT.COM, PIP.COM, STAT.COM atď. A samozrejme aj vlastné programy, hry, compilátory, editory, WordStar, BASIC atď.

Lenže ako dostať na disketu ten XMODEM? Pripravil som "quick and dirty" BIOS pre rýchle odskúšanie floppy a prípravu naformátovaných disket. Bootuje z SD karty. Podporuje štyri typy diskiet. Pri boote vypíše menu.


Voľbou čísla sa nastaví typ disketovky. Tento BIOS je veľký. Moc sa mi nechcelo sa s tým hrať a preto obsahuje tabuľky pre všetky štyri typy. Napísal som ho ozaj len na nevyhnutné vytvorenie štartovacej diskety. Dalo by sa to ofajčiť placeholder tabuľkou pre jeden typ a dohratím správnych dát zvoleného typu z EPROM po voľbe.

Takže to zhrniem. Je treba nakopíropvať na SD kartu dodaný image. Potom pripojiť PMD32SD a aspoň jednu disketovú mechaniku. Nabootovať z PMD32SD, zvoliť správny typ diskety. Spustiť FDC. Naformátovať disketu, spustiť kontrolné čítanie. Ukončiť FDC. Prekopírovať na disketu XMODEM (XM5.COM a XM5V2.COM). XM5 používa sériový port 8251, XM5V2 sériový port 16552.

Vypnúť NCB85. Odpojiť PMD32SD. Dať pripravenú disketu do prvej mechaniky. Dať do NCB85 EPROM s BIOSom pre vybraný typ diskety. BIOS pre FDD je na github vo verzii 2.2

Potom sa už dá nabootovať bez PMD32SD z diskety a cez XMODEM dohrať zvyšné programy. Cez FDC si naformátovať ďalšie diskety. Prekopírovať na ne obsah už zaplnenej. Atď.

"quick and dirty" BIOS je na stiahnutie tu/tady aj s obrazom pre PMD32SD.

Typ 1 je pre 5.25" DD diskety 720kB v HD mechanike. Teda niečo čo v PC možné nebolo. V CP/M sa využije 80 tracks/stôp a tak budeme mať pekných 720kB kapacitu. Takto je možné využívať DD diskety (a dokonca výhodnejšie s dvojnásobnou kapacitou) aj vtedy ak sú k dispozícii iba HD mechaniky.

Na github je aj starší BIOS, ktorý podporuje naraz PMD32SD a jeden typ diskiet. Typ diskety sa musí voliť v kóde a skompilovať do HEX. Tento BIOS je úspornejší a nezaberá toľko miesta, pretože má iba tabuľku pre jeden typ diskiet.

Sunday, February 14, 2016

Programátor GAL22V10 za 3,- EUR

Mám čínsky programátor TL866, s ktorým som spokojný. Za tú cenu.. V zozname podporovaných obvodov má samozrejme aj GAL16V8, 20V8 a 22V10. A tak, keď mi Radek Suk ponúkal dosku na GalBlast programátor som s vďakou odmietol. To sa ukázalo ako chyba. Pretože TL866 v pohode programuje obvody 22V10 v PLCC puzdre, ale s DIL verziou si neporadí. Nerozumiem tomu. Skúšal som kúpiť GAL od troch rôznych predajcov a všetky sa správali rovnako. GAL16V8 by podľa správ z fóra mali fungovať v poriadku. Lenže GAL22V10 sú z Číny najlacnejšie.

Našiel som túto stránku http://www.bhabbott.net.nz/atfblast.html a uvedomil si, že mám v šuflíku ZIF24, konektor na DB25 ešte zo socíkovských čias a lacnú univerzálnu dosku. Pridal som KC508, BC177 a ešte nejaké odpory a jediné čo som musel kúpiť boli rezistorové siete 4k7. Po pár hodinách letovania som to premeral, opravil chyby a išlo sa na vec.



Pripojil som ho na ThinkPad600 s WIN98. Funguje skvele, akurát verify hlási chybu pri asi polovici obvodov. Ale nevyhodil som ich. Vŕtalo mi to v hlave, pretože Martin mi kedysi skúšal zopár tých obvodov a všetky fungovali. Tak ma na druhý deň napadlo, skúsiť tie akože vadné na skúšku prečítať v TL866. A všetky boli OK. Následne som ich skúsil v NCD85 a fungovali. Takže programovanie na GALBLAST prípravku a verifikácia na TL866 je tá správna kombinácia :-) Všimol som si, že pri spätnom čítaní je vo výsledku viac jednotiek ako má byť. A v GALBLAST boli originál pull up odpory 10k. Tak to bude asi tým. S 10k by to mohlo šlapať bez chyby.

Prekreslil som to aj do CADu a navrhol miniatúrny plošák 4,9x6,6cm. Dal som 2xLM317 + 7805. Tak sa dajú napätia na 12V a 14,5V doregulovať. Napájať sa to dá univerzálnym adaptérom 18-30V. Ak by sa našiel dostatok záujemcov, tak by som pár dosiek mohol dať vyrobiť, alebo poskytnúť podklady. Cena v Seedstudio by bola 15,90USD za 5 dosiek alebo 18,90 za 10. Plus poštovné atď .. Zatiaľ mi stačí aj to čo mám.

Monday, January 25, 2016

NCD85 4. MUART 8256 - 8080 Interrupts

Odskúšané, famózné, úžasné, ono to fakt funguje. 8256 dokáže spracovávať INTA signál a v správnom okamihu poslať na zbernicu patričnú RST inštrukciu. Paráda. Na skúšku som spustil 16-bitový timer T24, nastavil mu 1ms takt, 5000 ako začiatočnú hodnotu a bum. Po 5s sa vyvolalo prerušenie RST 6, blikla INTA LEDka a spustila rutina na obsluhu prerušenia. V nej je potrebné znova nastaviť timeout a v mask registri zase povoliť prerušenie od T24. To preto lebo prerušenia od timerov v 8256 sú iba jednorázové, hneď sa vypne príslušný bit v mask registri, aby nedochádzalo k opakovanému spúšťaniu. Ďalšia podivná vec je, že timer dopočíta do nuly a potom pretečie a ide od FFFF .. preto treba nastaviť aj novú začiatočnú hodnotu timeoutu.

Krásne to bliká, pretože na kratulinký signál INTA je pripojená "predlžovačka" impulzov 74123. Takže v takte 5s na mňa pomrkáva LEDka. Vyskúšal som aj prerušenie od sériového portu. Podľa očakávania, pri príjme znaku sa vyvolá príslušná rutina RST 4 a samozrejme blikne INTA LEDka.

Updatol som fotky v blogu o NCD85 1. Floppy radič, teraz sú už s takmer plne osadeným NCD85.

Pri ladení a testovaní prerušení som objavil chybu popisky na NCD. Popiska pri JUM4 je naopak, v polohe RST7.5 je v skutočnosti INT a naopak. Doplnil som to aj v blogu o NCD. Uvedomil som si ešte jeden zádrhel s konfliktným pripojením INTA signálu do PCF8584.

PCF8584 totižto tiež vie prerušovať a generovať RST inštrukciu. Zatiaľ to ani najmenej nevadí, pretože PCF používam ako I2C bus mastera a v polling režime. Ale ak by som niekedy chcel aby PCF8584 fungovalo aj ako slave (zatiaľ nechcem, napadá ma iba jedno jediné praktické využitie), tak by bolo vhodné aby pri oslovení iným masterom vyvolalo prerušenie CPU. Ak by niekto mal iba PCF8584 bez osadenej 8256, tak nie je žiadny problém. Jumper JUM3 sa nastaví na PCF (popiska INT). PCF pošle žiadosť o prerušenie a pri signále INTA vygeneruje RST 0 a všetko funguje ako má.

Ale pri osadení obidvoch obvodov PCF8584 aj 8256, sa musí kaskádovať prerušenie z PCF do vstupu EXTINT na 8256. Jumper JUM3 sa prehodí na polohu 8256. Vtedy je signál INT z PCF vedený do EXTINT vstupu 8256. Následne 8256 vygeneruje signál INT ktorý je pripojený na vstup CPU. A pri prijatí prerušenia na CPU by chceli obidvaja reagovať na signál INTA. A to by bol konflikt. Pri signále INTA som na jumper nemyslel. Tak sa asi bude musieť preškriabnuť INTA do PCFka .. a v software sa pollne interrupt register 8256, aby sa detektlo že ide o externý interrupt z PCFka. Vstup INTA na PCF mal ísť na jumper a mal sa dať voliť medzi VCC a signálom INTA z CPU.

Friday, January 22, 2016

NCD85 3. MUART 8256

Z doby pozdného socíku si ešte pamätám, ako som študoval z časákov vnútornú štruktúru 8255 a 8253. Poznal som aj 8251 aj keď už menej podrobne. Sériový port bol v dobe kazeťákov a televízii ako jediných dostupných periférií dosť nepraktický. A podrobnosti o 8259 som si už nevedel nijako vybaviť, len som vedel že slúžila ako radič prerušení. No a tak sa logicky dostávame ku 8256 :-) :-). Skrátka zopár ich mám, a urobil som im miesto na NCD, pretože je to zaujímavý obvod a chcem ho preskúmať. On totiž má z každého zo spomenutých obvodov niečo. Dva 8-bitové IO porty s handshaking, ako má 8255. Päť 8-bitových časovačov, prípadne po zlúčení štyroch z nich do dvoch dvojíc, jeden osembitový a dva 16-bitové. Sériový port. A radič prerušení, ktorý môže pracovať v "normálnom" prípadne "nested" režime. Zatial som vyskúšal UART a PIO.

Brány sú dve P1 a P2. P1 je pin konfigurovateľná, každý pin môže byť nastavený na vstup alebo výstup. P2 je nibble konfigurovateľná, každá štvorica bitov môže byť nastavená ako vstup alebo výstup. P1 môže mať aj alternatívne využitie, ako riadiace signály pre handshaking spolu s portom 2, externé prerušenie, vstupy do counterov atď.

Sériový port má rovnakú štruktúru ako v UART8251. Je double buffered. Má v status registri príznaky Transmit Buffer Empty, Receive Buffer Full prípadne sa dajú využiť aj ďalšie ako Overrun Error a Parity Error. Riadenie toku dát je preto úplne jednoduché. NCB má teda na doske NCD už štvrtý sériový port, a je to druhý sériový port s prerušením. Na dosiahnutie presných normalizovaných prenosových rýchlostí je potrebné aby MUART mal hodiny 1.024, 2.048, 3.072 alebo 5.12MHz. Preto som prešiel na NCB85v2 z hodín 8MHz (kryštál 16MHz) na nižšiu rýchlosť 5.12MHz. Pre jednu z normalizovaných frekvencií je potrebné príslušne nastaviť bity v command registri 2. Dalo by sa aj pretaktovávať, kryštál 12.288MHz mám v šuflíku, niekedy možno vyskúšam. Potom by boli baud rates (s konštantou pre 3.072MHz) dvojnásobné. Existujú aj kryštály s 15.36 a 16.384MHz :-)

Timre majú voliteľný takt 1/16ms alebo 1ms, čo pri 16-bitoch dáva možnosť generovania/merania 65,536 sekundy.. Reload signál timerov prípadne vstupy do counterov sú na pinoch portu P1. Na dosiahnutie presných časových konštánt 1/16 alebo 1ms je tiež potrebné aby MUART mal hodiny 1.024, 2.048, 3.072 alebo 5.12MHz. Pri zlúčení do 16-bitových timerov T24 a T35, predstavujú registre 2 a 3 nižší byte a registre 4 a 5 vyšší byte.

Stará dobrá 8080 poznala 8 prerušení. RST0 až RST7. Rutiny prerušení majú pevnú adresu N x 8. Podľa čísla prerušenia. Malo to len jednu chybu. 8080 v skutočnosti prerušovať nevedela a preto som na PMD85 mohol o prerušeniach iba snívať. Na prerušenia bol potrebný radič 8259 ktorý na zbernicu vygeneroval patričnú inštrukkciu. A ten v PMD a podobných nebol. Tesla nevyrábala. Zo západu sa nedovážal. Potom prišla zázračná 8085 a tá už mala 5 prerušovacích vstupov. INT ako 8080 a štyri nové. RST5.5, 6.5 ,7.5 a TRAP. Pre nové prerušenia si vedela vygenerovať patričnú inštrukciu, pre staré prerušenia ostala odkázaná na radič. Nové prerušenia dostali adresy medzi pôvodnými 5,6,7.


MUART 8256 má v sebe aj radič prerušení. Prerušenia od rôznych zdrojov majú pevne danú prioritu. Priorita zároveň zodpovedá aj číslu N v generovanej RST inštrukcii.

Radič prerušení vie pracovať v dvoch režimoch: normálnom a nested. V normálnom móde je vždy rozpracované iba jedno prerušenie a ďalšie aj keď majú vyššiu prioritu musia počkať. V nested móde sa preruší aj aktuálne vykonávané prerušenie, ak príde požiadavka na prerušenie s vyššou prioritou.

Dokumentácia k 8256 je tu: MUART 8256

Saturday, January 9, 2016

NCD85 2. I2C bus

A je to hotové :-) Vianočný čas už "tradične" využívam na bastlenie a hobby. Môj odhad na rozbehanie I2C controléra PCF8584 bol 3 dni. Nakoniec to trvalo viac ako dvojnásobok. Musel som sa uchýliť k mojej obľúbenej sofistikovanej debugovacej vedeckej metóde LED. Pripojil som LED na obidva vodiče SDA aj SCL a až vizuálne som odhalil kde sa to seká. (DS1307 sa rád zatne a zablokuje celú zbernicu).

Čo je I2C? Je to zbernica od Philips určená na komunikáciu čipov. Má dva vodiče, SCL a SDA a samozrejme zem. I2C umožňuje pripojiť veľké množstvo rôznych senzorov, pamätí, prevodníkov a displayov atď. Napríklad senzor tlaku, vlhkosti, teploty, kompas, senzor zrýchlenia, senzor ..? Alebo chceme pripojiť LCD (rozšírený je I2C backpack s PCF8574), rozšíriť počet vstupných a výstupných portov? Pripojiť jednu, dve, tri 256kB EEPROM? Nie je problém :-) A najlepšie na tom je, že všetky zariadenia sa pripojujú na tie isté dva vodiče. Nie je treba žiadne ďalšie vstupy/výstupy.

Na doske NCD85 je LM75 (alebo LM75A, TMP275), DS1307 a EEPROM rady AT24C. TMP275 je teplomer s rozlíšením až 0.0625°C a presnosťou 0.5°C v rozsahu od −20°C do 100°C. Je to lepšia alternatíva k "industry standard" LM75 od TI. Lepší ako LM75 je aj LM75A od NXP. DS1307 sú hodinky a kalendár a k tomu ešte 56 byte batériou zálohovanej RAM. Na držiak CR2032 batérie je na plošáku určená plocha na priletovanie. AT24Cxx sú EEPROM obvody s kapacitami od 128 byte po momentálne 256kB a za nejaký rok to bude zase viac. A to už by bolo použiteľné aj ako virtuálny disk. Majú garantovaný milión prepisov a udržanie dát na minimálne 100 rokov.

PCF8584 podporuje rýchlosť 100kHz, čo je základná najnižšia rýchlosť. Novšie čipy fičia už aj na 400kHz a 1MHz. K zbernici je nutné pripojiť pull up odpory. Samotné zariadenia (sú open drain) len spínajú vodiče zbernice k zemi. Tým je zaručené, že pri konflikte nedôjde k zničeniu ani jedného zariadenia. Veľkosť odporov nie je kritická, ide len o to aby dostatočne rýchlo zdvíhali úroveň do 1. Prekonávať musia len parazitické kapacity na zbernici. 10, 20 kilo prípadne aj nejaká tá LED, všetko jedno ;-) 100kHz zase nie je nejaká super vysoká frekvencia.

Zdroják drivera a testovacej aplikácie je tu:
i2c fun

Takto to môže vyzerať po boote:

A to som mal otvorenú vetračku.