TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.1.0. Part3.

By Administrator at February 27, 2025 09:00
Filed Under: Atari

Úvodná obrazovka programu TOPP V.1.0

 

Programové vybavenie pracuje pod DOS-om 2.5 (TOPP program si DOS verziu kontroluje, takže žiadne výmeny nasadenia programu v inom DOS-e !), použité atr je v medium hustote, t.j. má kapacitu 128kByte.


Program neumožňuje prácu s kazetovým magnetofónom, jednoznačne ráta pre prácu iba s disketovou jednotkou (alebo jej dnešnými, modernými náhradami) !


Programová verzia TOPP V.1.0 PAL (05.04.2025):

Turbo-BASIC PAL 1.5 TOPPV10.atr (130,02 kb)

 

Programová verzia TOPP V.1.0 NTSC (05.04.2025):

Turbo-BASIC NTSC 1.5 TOPPV10.atr (130,02 kb)

 

(05.04.2025 - posledné úpravy tejto verzie programového vybavenia, tu už nebudú prevedené ďalšie zmeny. Vo vyšších verziách nad V.1x bude odstránené podstatné striktné obmedzenie v tzv. demo móde., bude sa týkať iba príkazu Write a vstupu do Igiho verifikácie.

14.03.2025 - Pretože niektoré veci v budúcnosti budú  vyžadovať použitie TIME$ tak sú  od tohoto dátumu k dispozícii oddelené verzie pre Turbo Basic PAL a Turbo Basic NTSC. NTSC počítače.

Na disketu samozrejme musí byť povolený zápis.

Program má v sebe použitú určitú základnú ochranu proti vylistovaniu, pôvodne mal byť aj skompilovaný, ale ako sa ukázalo rada XL spôsobovala po skompilovaní ďalšie a ďalšie problémy /zaujímavé je to že sa toto absolútne netýka rady XE/ tak som programové vybavenie nechal v TB, rýchlosť programu je naprosto dostatočná. Pri boote diskety netreba stláčať klávesu OPTION - Turbo Basic automaticky vypne interný Basic.)


Pre prácu programu je potrebný počítač Atari 600XL/64kB RAM, 800XL, 800XE, 130XE, 320XE, 65XE, XEGS, zo staršími verziami počítačov - Atari 400 a Atari 800 sa neráta., ani s rpočítačom Atari 1200XL, ten má v originále iný OS (nemám ho k dispozícii takže to s ním neviem otestovať). Ak je pamäte viac ako 64kB tak je potom k dispozícii 64kB ramdisk s označením D8: (ako pri Atari 130XE). Tak isto ešte dokáže spolupracovať s disketovou jednotkou D2: - teda ak reálne existuje, potom máme k dispozícii celkove 3 jednotky a to D1:, D2: a D8:. Uvedený počet jednotiek pre tento programátor považujem za viac ako dostatočný. Druhá strana diskety je voľná na použitie ako datové úložište alebo podobne, osobne práve takéto využívanie považujem za najlepšie riešenie. Samotné potrebné programy sú zamknuté, teda sú chránené proti prepisu a nechcenému vymazaniu.

Keď sa TOPP program spustí bez fyzicky pripojeného a zapnutého programátoru - toto sa testuje, tak program prejde do tzv. "demo" módu kedy sú jeho možnosti poriadne oklieštené (ale stále je možné si pozrieť zoznam všetkých príkazov) - toto ale platí iba pre verzie rady 1.x.

 

Upozornenie:

Zásahy do zariadenia sú na vlastné riziko majiteľa zariadenia. Autor týchto stránok nenesie žiadnu

zodpovednosť za škody spôsobené používaním zariadení postavených podľa tu uverejnených

schém alebo zobrazených úprav.

 

Ako som už spomenul programátor pracuje s 5 druhmi TESLA PROM pamäťami:
   typ:              organizácia:     možnosti:
- MH74188       32x 8 bit       Read/Write
- MH74S187   256x 4 bity     Read only!
- MH74S287   256x 4 bity     Read/Write
- MH74S370   512x 4 bity     Read only!
- MH74S571   512x 4 bity     Read/Write

 

V tomto odkaze nájdete všetky obsahy PROM vhodné pre tento programátor ktoré sa mi doteraz podarilo získať:

USBprog - Part10. Obsahy-contents PROM 74287, 74S287, 74571, 74S571.

 

Dôležité upozornenie:

Programátor na počítač pripojte v uvedenom poradí:


- skontrolujte či je vypnutý počítač, ak áno pokračujte
- skontrolujte či je vypnutý programátor, ak áno pokračujte
- skontrolujte či je zapojený zdroj pre programátor, potom pokračujte
- prepojte programátor a počítač káblikom do Joyportu č.2
- založte disketu s TOPP programom (alebo zariadenie emulujúce systémovú disketu) a zapnite počítač
- po nabootovaní programu Vás program v úvodnej obrazovke vyzve na zapnutie napájania pre programátor
- zapnite programátor a  následne stlačte medzerník
- môžete začať používať programátor, riaďte sa pokynmi na displeji

 

Ukončenie práce prebieha v opačnom poradí:
- vypnite napájanie programátoru, ak je už vypnutý tak pokračujte
- vypnite počítač, ak je už vypnutý pokračujte
- až potom rozpojte prepojenie programátor - Joyport2

 

Nedodržanie uvedeného postupu môže mať za určitých okolností za následok poškodenie čipu 6520 ktorý sa nachádza v počítači a ovláda prístup na obidva joyporty !

Nakoniec - ani disketové jednotky sa neodporúča pripájať a odpájať ak je zapnutý počítač, takže uvedený postup je naozaj dobré dodržať.

 

Dĺžka PGM pulzu je po štarte programu automaticky vždy nastavená na 10 milisekúnd - toto sa udeje aj po zmene voľby typu PROM, je to nastavené na stred povoleného rozsahu - bola zvolená taká zlatá stredná cesta.

Predvoľby pre PGM pulz sa dajú nastaviť na 5 rozdielnych hodnôt:
1 -   2msec
2 -   5msec
3 - 10msec
4 - 15msec
5 - 20msec


Štandartne podľa datasheetu je povolený rozsah PGM pulzu v rozpätí od 1÷20msec, jednoduchým spôsom sa v TB pod hodnotu 2msec PGM pulzu nedostanem - tak som to aj ponechal, ničomu to nevadí.


Nahratie dát a aj ukladanie prebieha výlučne v binárnom tvare. Pretože tu máme "klasický DOS", tak pre názov máme k dispozícii "celých" 8 znakov a pre extender 3 znaky. No a dostať výstižný názov do 8 znakov nie je žiadna sranda, ale pomôže nám zmena názvu koncovky. Preto som zvolil nie koncovku .bin (aj keď sa stále jedná o binárky), ale označenie ktoré priamo priamo definuje typ PROM a teda aj jej veľkosť:

- 74188   je koncovka FILENAME.032    32x 8 bit       Read/Write
- 74S187 je koncovka FILENAME.256  256x 4 bity     Read only!
- 74S287 je koncovka FILENAME.256  256x 4 bity     Read/Write
- 74S370 je koncovka FILENAME.512  512x 4 bity     Read only!
- 74S571 je koncovka FILENAME.512  512x 4 bity     Read/Write

 

Týmto sa zároveň účinne pri "LOAD" rozpoznáva použitý typ pamäte a dá sa aj skontrolovať že nahrávaná binárka je určená pre zvolený typ pamäte a nemáme pochybnosti o správnosti zvolenej binárky. Program zároveň testuje či sme pre zvolenú PROM použili binárku zo správnym extenderom, teda ani omylom nenahráme binárku pre iný typ PROM.

Je tu extra možnosť generovania/editácie obsahu bufferu pre pamäť PROM 74188, pre PROM s väčším obsahom (typy 2,3,4 a 5) ale s takouto možnosťou nerátam, väčšie PROM majú dodané svoje zdrojové binárky z iných zariadení. Je tu možne napísať nový obsah pre buffer, alebo prepisovať/editovať jeho obsah. Ak aj počas písania/editácie z tejto možnosti vystúpite dovtedy napísaný obsah sa uchová a môžete neskôr v  tejto činnosti pokračovať. Všetky možnosti práce v tomo režime sa zobrazia priamo na displeji po zvolení tejto voľby.

Ešte k tomu že sa pracuje s binárkou - ak máte k dispozícii súbor iba v hexa tvare tak je potrebné použiť "prekladač" hex2bin ktorých je na PC strojoch dostatok, toto som už priamo v programe neriešil.

Z uvedeného je zrejmé že továrensky napálené typy 74S187 a 74S370 vieme v programátore iba prečítať a uložiť ich obsah do binárky


Tu doska ešte nie je vo svojej finálnej podobe ... zopár vecí ešte na doske časom pribudlo, viď úvodný obrázok.

 

No a takto to vyzerá interne v DOS-e:


Vzhľadom k tomu že DOS 2.5 pracuje zo sektormi o dľžke 128 byte, z toho v reáli vyplýva nasledovné:
Súbor pre 74188, t.j. 32 byte zaberá v skutočnosti 1x 128byte + ukončovací sektor, teda 2 sektory, spolu 256byte.
Súbor pre 74S187 a 74S287, t.j. 256byte zaberá v skutočnosti 2x 128byte + ukončovací sektor, teda nakoniec 3 sektory, spolu 384byte.
Súbor pre 74S370 a 74S571, t.j. 512byte zaberá v skutočnosti 4x 128byte + ukončovací sektor, teda nakoniec 5 sektorov, spolu 640byte.


Pre užívateľa to takto "strašne zložite" nevyzerá, programátor stále pracuje s reálnymi údajmi bináriek a to 32byte, 256byte alebo 512byte.

Tak isto ak sa dostaneme k binárkam z tretej strany - tak tu stačí na nich premenovať správne koncovky (extender =.bin) na NAME.32, NAME.256 alebo NAME.512 a preniesť ich na disketu (alebo médium čo ju nahradzuje).

Po voľbe typu PROM s ktorou chceme pracovať sa nám všetky ďalšie potrebné údaje zobrazia na displeji - či je to už informácia o tom či máme nejaké Data už v bufferi, alebo sa jedná o PROM v tvare High byte, alebo Low byte. Voľby ktoré pre daný typ PROM nedávajú zmysel (napr. továrne nahratá PROM 74S187) majú v menu potlačenú možnosť voľby WRITE, t.j. nie je možné do nej zapisovať.
 
Pri práci s PROM pamäťou vyššou ako 74188 pri jej čítaní do bufferu je potrebné navoliť či budeme pracovať s tzv. "High" nibble alebo "Low " nibble. Pokúsim sa to stručne vysvetliť - pamäte nad typom 74188 majú organizáciu 256x4 alebo 512x4 bity, t.j. pracujeme iba zo 4 bitmi. Ak zvolíme High nibble tak data budú ukladané vo formáte Fxh, čo značí že prvý byte bude vždy rovný F a x budú naše 4 bit Data. V prípade navolenia Low nibble budú Data ukladané vo formáte 0xh, čo značí že prvý byte bude vždy rovný 0 a x budú naše 4-bit Data. Toto je pri nahrávaní obsahu PROM dôležité, pretože my nemáme žiadnu možnosť zistiť či sa v konkrétnom zapojení PROM v zariadení používa High alebo Low nibble. Toto rozhodnutie je plne na Vás, pretože program vo svojom vnútri ďalej pracuje iba zo 4 bitmi a má v sebe príznak, ktorý potom hovorí že pri ukladaní (SAVE) sa už automaticky zvolí High alebo Low nibble do zápisu. Určite ste si všimli že sú dostupné binárky pre 74S287 a 74S571 ktoré začínajú buď s Fxh alebo s 0xh, tu ich stačí nahrať, program si z takejto binárky už sám určí či je použitý High alebo Low nibble, bohužiaľ ako som spomenul pri prvotnom priamom čítaní obsahu PROM v programátore sa táto "automatika" nedá použiť pretože sú k dispozícii iba tie spomínané 4 bity a teda nie je možné práve toto určenie High alebo Low nibble pri priamom čítaní PROM zautomatizovať.
Takto nahraté Data v PROM sú samozrejme plne použiteľné aj vtedy ak zariadenie vyžaduje High nibble a pritom sme napálili verziu s Low nibble, toto si totiž už určuje konkrétne osadenie PROM v zariadení.
Slovensky "lopatisticky" povedané ak by sme aj obidve PROM napálili ako Low nibble, tak nám stačí ich správne označiť a nasadiť, budú taktiež plne funkčné (dobré je potom si priamo na PROM označiť ktorá bude na mieste horných 4 bitov a ktorá bude na mieste spodných 4bitov ... nebudeme ich musieť pri nesprávnom založení bez označenia medzi sebou prehadzovať.
Poviem to aj inakšie - je to len vec ktorá mierne sťažuje naše myslenie pri používaní týchto PROM. Hlavný zmysel začína mať vtedy ak používame dvojicu týchto PROM a s nimi vytvárame potrebný byte pre zariadenie, potom musíme vedieť ktorá z nich bude na pozícii High nibble a ktorá na pozícii Low nibble - najlepšou voľbou je dať popis obsahu PROM priamo na ňu - perfektne to rieši popísaná samolepka.

 

Ako funguje vlastný prenos dát - naozaj iba veľmi stručne - pomocou CLOCK a DATA sa nachystajú údaje, potom sa pomocou STROBE zapíšu do obvodov IC2 až IC4, obvod IC5 pri STROBE pošle načítané DATA naspäť do počítača. Toto naprosto nádherne a bezchybne funguje pri rade XE, ale nie už tak celkom dobre v rade XL. Preto bol software upravený tak že DATA sa zapíšu na IC2÷IC4, pošle sa pulz na STROBE - ale toto prvé načítanie z IC5 sa jednoducho odignoruje a po chvíľkovej pauze sa pošle STROBE nanovo - až tieto druhýkrát načítané DATA sa považujú za platné. Toto výsledné riešenie bolo zvolené preto aby programové vybavenie fungovalo aj s radou XL a nielen s XE. Uznávam, je to svojím spôsobom divočina, ale ak s týmto riešením má niekto problém - prosím obráťte sa na tvorcov Atari rady XL ...

 

V nasledujúcej časti bude MOM - Malý Obrazový Manuál pre TOPP programátor.

__________________________________________________________

Prvá časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Part1.

Druhá časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Hardware. Part2.

Tretia časť:

Práve ju sledujete ...

Štvrtá časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Picture manual. Part4.

Piata časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Own construction. Part5.

Šiesta časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.1.1. Part6.

Siedma časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.2.0. Part7.

__________________________________________________________

Vaše hodnotenie, Rate post:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Hardware. Part2.

By Administrator at February 23, 2025 08:40
Filed Under: Atari

 Programátor je určený pre Atari 600XL/64kB RAM, 800XL, 800XE, 130XE, 320XE, 65XE, XEGS, zo staršími verziami počítačov - Atari 400 a Atari 800 sa neráta.

 

 TOPP - Tesla Old PROM Programmer pre Atari 8bit.


Nasleduje schéma zapojenia TOPP programátoru - najprv v nízkom rozlíšení + nasleduje schéma v plnom rozlíšení. Za nimi je už pokec a taktiež zoznam použitých súčiastok.

 

Upozornenie:

Zásahy do zariadenia sú na vlastné riziko majiteľa zariadenia. Autor týchto stránok nenesie žiadnu

zodpovednosť za škody spôsobené používaním zariadení postavených podľa tu uverejnených

schém alebo zobrazených úprav.

 

Náhľad schémy zapojenia:


 

Schéma zapojenia v plnom rozlíšení:

PP_IGSH11_final_IG_SH_switch_atr.PNG (90,93 kb)

 

Komentár k schéme:

Na obrázkoch to síce nie je na prvý pohľad poznať ale na doske obojstranného plošného spoja (jedná sa o tzv. "zelenú" verziu dosky) sú pätice ZIF1 a ZIF2 vo svojom poradí vzájomne prehodené - ľahšie sa mi totiž v tomto poradí prepájali potrebné kábliky ... toto je jediný dôvod zmeny oproti nakreslenej schéme. Nakoniec - na doske programátoru je to označené, takže nečakám nejaké problémy s tým kde sa ktorý typ PROM má vložiť. Taktiež je jasne vyznačená pozícia pinu č.1 v ZIF pätičkách aby neprišlo k zlému založeniu PROM. Priamo na ZIF pätičkách je tiež jasne označený smer zakladania PROM čipu, síce oproti zvyklosti že pin 1 býva na strane páčky je to u mňa práve zapojené naopak, ale toto zase až za taký veľký prehrešok nepokladám, rovnako to mám riešené aj na programátore pre 74188 na SBC6502 - poviem to inak - aj tu pokračujem v naznačenom opačnom trende ... označenie pinu 1 na doske programátoru považujem za dostatočne jasné a teda nemalo by prichádzať k nejasnostiam.

K samotnej schéme len toľko že tu máme k dispozícii 3x 8bit (3x 4094) výstupné porty a 1x 8bit (1x 4021) vstupný port, ktoré sú programovo ovládané cez sériovú linku ktorá je tu vytvorená na joyporte č.2.

Čo indikuje v programátore použitá štvorica  LED je dostatočne popísané priamo v schéme, takže to tu nebudem zdvojovať.


 

Ak sa pozrieme na zdroj napájania, je vidieť že sú tu použité 3x diódy 1N4007 (1N4xxx) zapojené v sérii, pričom prvá z nich (D1) je štandartne premostená jumperom. Táto dióda nájde svoje využitie len vtedy ak použitý napájací zdroj dodáva napätie vyššie ako 12V, toto nám umožní použiť aj zdroj s napätím v rozmedzí 12.3V až 12.7V. Zdroj ktorý dodáva potrebných 12V má túto diódu v zapojení skratovanú - teda pri presnom zdroji 12V spomenutá dióda D1 nemusí byť osadená (vtedy stačí použiť skratovaciu prepojku), potom stačí nasadiť iba dvojicu diód D2 a D3. Odpor R1 v zapojení slúži ako tzv. predzáťaž, potom je úbytok napätia na dvoch diódach 1N4007 skoro presne 1.5V čo práve potrebujeme aby sme mali k dispozícii +10.5V.


Pozor, podľa datasheetu programovacie napätie nesmie presiahnuť hodnotu 11V !


Napájací zdroj +12V pre napájanie programátoru musí byť schopný dodať prúd minimálne 1A, potom s rezervou na použitie postačuje.
Ak sa použije slabší zdroj tak nemusí prísť k potrebnému prepáleniu interných mostíkov v programovanej PROM.
Pretože je tu potrebné použiť externý napájací zdroj tak logicky z toho vyplynulo že obvody programátoru sú taktiež napájané z neho, teda programátor nezaťažuje zdroj +5V v počítači. Z Atari počítača sa z jeho zdroja +5V odoberá iba napájanie oranžovej (alebo žltej) LED čo je indikácia že počítač je zapnutý, tento odber ale nepresiahne hodnotu 2mA.
Programátor v kľude odoberá cca 20mA, čo nie je veľa, pri čítaní  a programovaní PROM dosahuje cca 60mA (5V), pri programovaní je to ešte plus odber pri PGM pulze (12V) - tu sa údaje rôznia buď je to + 450mA alebo až 750mA - ten druhý údaj sa mi ale zdá veľmi málo pravdepodobný. Použitý malý chladič na 5V stabilizátore LM7805 svojimi rozmermi naprosto postačuje. Dtto sa týka použitého chladiča pre tranzistor BD140 - tu by chladič ani nemusel byť, tranzistor totiž v prevádzke bezpečne "chodí" iba v spínanom režime, skôr je to tu použité ako jeho ochrana pri použití "blbej" PROM - čo sa nikdy nedá na 100% vylúčiť. Nakoniec - tranzistor je osadený v pätici takže je ho možné veľmi ľahko vymeniť ak by bolo treba (zatiaľ sa to nestalo a to ani v programátore PROM 74188 pre SBC6502).

Odpor R6 slúži pre potlačenie zbytkového prúdu Zenerovej diódý (ZD) pre červenú LED, t.j. bráni jej rozsvecovaniu pri napätí 5V, toto zapojenie mám odskúšané z programátoru pre PROM 74188 na SBC6502 - nevidím dôvod nepoužiť osvedčené zapojenie aj v tomto prípade.

Použité DIP relé neobsahuje v sebe integrovanú ochrannú dódu - tu ju nahrádza dióda D5 - 1N4148, je umiestnená priamo v pätičke pod relé, je tam pre jej osadenie dostatok miesta.


 

Pár slov hodím do placu aj k použitému prepojovaciemu kábliku joyport2 - programátor.
Použil som netienený plochý 9-žilový káblik ktorý má v sebe zapojené všetky piny joyportu2, teda na programátor dostávame všetky signálové a napájacie vodiče - reálne sa však z nich používa iba 6 vodičov - a to 4x Data (piny 1,2,3 a 4), +5V (pin 7) a Gnd (pin 8).
Samotná dĺžka prepojovacieho kábliku by nemala presiahnuť 30cm, tu určite platí že menšia hodnota je lepšia. Môj prívodný káblik je práve na spomenutej hranici, aby som mal istotu že to bude chodiť mám k dispozícii urobený aj kratší len 7cm káblik, ale ako som zistil s obidvoma káblikmi programátor funguje bez najmenších problémov. Takže to zhrniem - káblik ktorý bude mať dĺžku medzi 7cm až 30 cm na tomto mieste určite vyhovie.
Tak isto ak použijete na tomto mieste tienený káblik určite neurobíte chybu - akurát budete mať viac roboty pri jeho výrobe, ale potom nebude problémom ani jeho ako viac polmetrová dĺžka.
Pre vytvorenie kábliku (strana joyportu) som rozobral 9-pinový CANNON konektor, odstránil som na ňom pôvodný kovový obal, pripájal som na neho drátiky a následne som koncovku zalial Epoxy, čím som zároveň vytvoril aj úchytku na jeho šikovné vyberanie z joyportu.

 

Prepojovací káblik  TOPP - programátor na joyport2. Na obrázku je prvá verzia základnej dosky počas stavby

ktorá má iné rozloženie súčiastok. Tento konkrétny káblik je použitý aj v novšej verzii programátoru.

(Tu ešte na doske nie je osadený čip 74LS14 - jednoducho toto bol hlavne vývojový kus.)

 

Pri osadzovaní je dobré skontrolovať skutočnú kapacitu kondenzátoru C12, teda aby mal naozaj 0.1uF /100nF/. Mierna odchýlka od uvedeného u nevadí, ale nech to nie je ± 20% ..., ak to ide mierne do plusu tak to tu nevadí. Použitý kondenzátor je tzv. "modrá" keramika. Môj použitý C12 má kapacitu 98nF, čo tu naprosto bez problémov vyhovuje.

Ako vidieť, pri osadzovaní druhej dosky som už doma nemal k dispozícii rezistorové pole 8x 47k a tak namiesto RF1 som v zapojení použil samostatné odpory, funkčne je to samozrejme zhodné. Dtto sa týka RF3, tu sú tiež použité samostatné odpory 4x 4k7, tie sú osadené priamo na mini doštičke s DIP switchom.

Tranzistor na pozícii T9 (typ BC547 alebo BC546) by mal mať h21e >300, je dobré si to skontrolovať - pri menšej hodnote nemusí sedieť časovanie postupného nárastu z +5V na +10.5V, pri príliš vysokej hodnote je to zase viac náchylné na "vonkajšie vplyvy", myslím tým rušenie, takže je dobré sa tu "držať sa pri zemi". (Moje domáce zásoby ukazujú že u typu BC547 ide kľudne
h21e až niekde nad 700, uvedený potrebný údaj pre nasadenie v programátore spoľahlivo dosahuje aj typ BC546.)


Rozmiestnenie súčiastok na druhom prototype TOPP.

 

Na začiatku programovania joyportu č.2 vyvstal problém s rýchlosťou práce s portom. Budem presnejší - vďaka odporom a kapacitám zaveseným na jednotlivých bitoch brány čipu 6520 priamo v počítači sú nábežné hrany jednotlivých bitov pri snímaní osciloskopom skutočne "desivé", nebudem tu dávať obrázok z osciloskopu, ale najlepšie tvar krivky nábehu do log.1 pripomína vynorenú chrbtovú plutvu žraloka s krásnym postupným oblúkom. Tu jednoznačne pomohlo zaradiť do cesty jednotlivým bitom Schmittov klopný obvod 74LS14 ktorý už presne definoval prechodové stavy bez potreby skúšať nejaké iné riešenie ktoré by si už vyžadovalo zásah dovnútra počítača a teda stratila by sa univerzálnosť. Toto tiež chvíľu trvalo než sme si uvedomili kde je pes zakopaný + že to ešte to vyžaduje nasadenie kapacity C16 - bez nej to nefunguje aj keď sa použije obvod 74LS14.

C16 je tantalový kondenzátor o kapacite 47uF (môže byť až do 100uF/16V - tu platí radšej viac ako menej), je pripojený na +5V samotného počítača a jeho zem. Táto kapacita je mimoriadne dôležitá - bez nej skutočne nebude bezchybne fungovať sériový prenos dát. A že to trvalo než sme práve toto zistili ... (Ak k C16 ešte navyše pridáte paralelne zapojenú keramiku 0.1uF tiež tým určite nič nepokazíte.)
Ja som sem dal na začiatku kapacitu 22uF/16V - normálny elektrolyt + k nemu paralelne keramiku 0.1uF. Ako sa postupne ukázalo síce bola zvolená dobrá cesta, ale s príliš malou kapacitou a nevhodným typom kondenzátoru ...
Ďalšou možnosťou je dať túto kapacitu priamo do počítača, ale tým sa stratí univerzálnosť zapojenia - a nie každý je ochotný sa vŕtať v svojom stroji, čiže aj toto som bral do úvahy.
Neviem, možno by bolo mimoriadne zaujímavé vyskúšať mať túto kapacitu napájkovanú priamo na CANNON konektore ktorý sa vkladá do joyportu, teda by bola zaliata priamo v Epoxy, ale toto som už neskúšal.


Kapacita C16 - modrý tantal priamo pred prívodným káblikom od počítača.

Vľavo na doske sú vyvedené jednotlivé piny od tranzistorov  - zelené konektory 2x4 piny, slúžili pri vývoji ako

dobré miesto na meranie  - vtedy totiž ešte neboli osadené ZIF pätice.

 

Čo dodať ?

Čo sa týka osádzania tranzistorov BS170 ktoré sú háklivé na statickú elektrinu - najprv ich v testeri premeriam, potom tenkým odizolovaným drátikom (napr. z licne) prepojím jeho nožičky do skratu a tranzistor zapájkujem do dosky. Potom drátik odstránim a voilá, tranzistor zaobchádzanie s ním a aj pájkovanie v zdraví prežil. Ako vidieť v zapojení sa nešetrilo kapacitami, ani to neodporúčam, tu rozhodne platí radšej ich mať viac ako menej ...

________________________________________________________

Nasleduje zoznam súčiastok - BOM:

1x power supply 12V/DC/1A
1x universal double-sided printed circuit board 90x150mm
1x connector Cannon 9pin - male
1x switch 12V/DC/On/Off
1x DIP relay EDR201A1200 (reed relay 12V/1000Ohm/1A)
1x DIP socket, 16pin
1x DIP switch 4x
1x precision socket, 14 pin
4x precision socket, 16 pin
2x socket (Zero Insertion Force), 16pin (ZIF1,ZIF2)
1x connector 12V/DC
JU1 - jumper 2pin
JU2 - jumper 3 pin
C1 - 220uF/16V
C2,C3,C4,C5,C6,C7,C13,C14,C17 - ceramics 100nF
C12 - "blue" ceramics 100nF ±5%
C8,C9,C10,C11,C15 - 22uF/16v (min. 10uF/16V)
C16 - tantal min. 47uF/10V (100uF)
C18 - 20nF (2x10nF) - only for Atari 600XL/64kB RAM and 800XL !
RF1 - resistor array, 8x 47k
RF2 - resistor array, 8x 3k9
RF3 - resistor array, 4x 4k7
R1,R4,R9 - 1k2
R2,R10 - 22k
R3 - 360Ω  (2x 180Ω)
R5,R8 - 4k7
R6,R11 - 1k8
R7 - 39k
R6,R11 - 1k8
D1,D2,D3 - diode 1N4007 (1N4xxx)
D4 - diode SB260 (SB360,1N5819) Schottky
D5 - diode 1N4148
ZD - Zener diode 5.6V - BZX55/C5V6
LED1 - green, 5mm, 2mA type
LED2 - blue, 5mm, 2mA type
LED3 - red, 5mm, 2mA type
LED4 - orange (or yellow), 5mm, 2mA
T1,T2,T3,T4,T5,T6,T7,T8 - transistor BS170
T9 - transistor BC547 (BC546,2N2222,2N3904) h21e>300
T11,T12 - transistor BC547 (BC546,2N2222,2N3904)
T10 - transistor BD140, h21e>110    
IC1- TTL 74LS14
IC2,IC3,IC4 - CMOS 4094
IC5 - CMOS 4021
IC6 - LM7805, positive 5V voltage regulator

____________________

V ďalšej časti bude k dispozícii základné programové vybavenie verzie 1.0 ako atr súbor pre disketovú jednotku alebo jej súčasnú náhradu.

___________________________________________________________

Prvá časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Part1.

Druhá časť:

Práve ju sledujete ...

Tretia časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.1.0. Part3.

Štvrtá časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Picture manual. Part4.

Piata časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Own construction. Part5.

Šiesta časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.1.1. Part6.

Siedma časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.2.0. Part7.

___________________________________________________________

Vaše hodnotenie, Rate post:

02_2025 Blog, Notes.

By Administrator at February 19, 2025 11:37
Filed Under: Blog

18.02.2025

Tak sa konečne podarilo do dotiahnuť do víťazného konca to, čo som už dlho chystal. V spolupráci zo Stanom Havranom (aka SH) sme dokončili programátor pre staré PROM pamäte ktorý sa programuje na malých 8-bit počítačoch Atari.

Teraz už len postupne začať veci k nemu postupne uverejňovať ...

 __________________________________________________

19.02.2025

Prvá časť - TOPP - Tesla Old PROM Programmer pre Atari:


TOPP - Tesla Old PROM Programmer for Atari 8bit. Part1.

23.02.2023

Druhá časť - TOPP - Tesla Old PROM Programmer pre Atari - hardware:


TOPP - Tesla Old PROM Programmer for Atari 8bit. Hardware. Part2.

27.02.2025

Tretia časť - TOPP -Tesla Old PROM Programmer pre Atari - software:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.1.0. Part3.

______________________________________________________

Vaše hodnotenie, Rate post:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Part1.

By Administrator at February 19, 2025 11:00
Filed Under: Atari

Dnes je to úvod do danej problematiky ktorý vyústi do kompletného programátoru TOPP spolu aj s potrebným programovým vybavením. Programátor je určený pre Atari 600XL/64kB RAM, 800XL, 800XE, 130XE, 320XE, 65XE, XEGS, zo staršími verziami počítačov - Atari 400 a Atari 800 sa neráta.


TOPP - Tesla Old PROM Programmer  pre Atari 8bit.

Tu je pri oživovaní použité iné osadenie DIP switchu = ľahšia manipulácia počas oživovania.

 

Programátor umožňuje naprogramovať staré Tesla PROM pamäte na 8-bitových počítačoch Atari 600XL,800XLF,65XE,130XE, 800XE,XEGS, pripojenie programátoru na počítač prebieha prostredníctvom joystickového portu č.2. Pre svoju prácu vyžaduje pripojiť externý zdroj napájania 12V/DC/1A, z neho sú taktiež napájané obvody samotného programátoru. Asi sa ešte oplatí zdôrazniť že programátor funguje na neupravených počítačoch, t.j. nevyžaduje sa do nich žiaden zásah. Uvedené PROM pamäte sú stále bez problémov dostupné a teda dajú sa použiť do starých zariadení kde sa s ich pomocou (zo správnym obsahom) obnoví pôvodná funkcia, alebo poslúžia ako dekodéry pre rozličné použitie  a to aj v dnešnej dobe.

 

Programátor pracuje celkove s 5 druhmi TESLA PROM pamäťami:

 
   typ:              organizácia:     možnosti:
- MH74188       32x 8 bit       Read/Write
- MH74S187   256x 4 bity     Read only
- MH74S287   256x 4 bity     Read/Write
- MH74S370   512x 4 bity     Read only
- MH74S571   512x 4 bity     Read/Write

( Typy 74S187 a 74S370 majú svoj obsah továrensky napálený, teda technicky vzaté sa jedná o ROM pamäte.)


Upozornenie:

Zásahy do zariadenia sú na vlastné riziko majiteľa zariadenia. Autor týchto stránok nenesie žiadnu

zodpovednosť za škody spôsobené používaním zariadení postavených podľa tu uverejnených

schém alebo zobrazených úprav.

 

Ako to začalo:

Pred nejakým časom som si povedal:
" Mám programátor pre PROM 74188 ktorý funguje na malom SBC6502 - nebolo by "po tých rokoch" načase mať konečne programátor na TESLA OLD PROM pamäte aj na malom 8-bitovom Atari ?" a teda vyvstal aj nový, základný dodatok:
"A nemalo to by to vedieť aj niečo viac ?" (Myslím tým možnosť pracovať s viacetými typmi PROM, to už by som realizoval na SBC6502 dosť ťažko,  tam chýba možnosť priameho ukladania binárky, ide to len cez Data riadky.)
Jasnačka, malo - a hlavne aby to vedelo aj typy s väčším obsahom.
Výhody sú jasné, máme tu k dispozícii médium na ukladanie dát, máme výborný jazyk na napísanie programového vybavenia - Turbo Basic - zostávalo sa len rozhodnúť ako bude prebiehať komunikácia zo samotným programátorom.

 

Najprv som samozrejme pátral na webe či už ma niekto v tomto smere nepredbehol zo svojím riešením - ale ako sa ukázalo a ako som aj predpokladal - kde nič tu nič. Takže bolo treba vymyslieť a urobiť vlastný programátor a samozrejme následne k nemu aj urobiť príslušné programové vybavenie.

 
Sú dve možnosti ako pripojiť programátor k počítaču:

1.- použiť zadný paralelný port zbernice (PBI), nevýhodou by bolo že programátor by fungoval iba s počítačmi rady XL, toto by sa dalo obísť použitím slotu pre cartridge, lenže mne sa sa akosi nikdy nepozdávalo aby odtiaľ  trčala kabeláž niekde smerom dozadu ... (teda pre XL, pre XE by to bolo už v pohode)

2.- ísť sériovo cez joyport, potom by to (teoreticky) malo fungovať zo všetkými XL, XE a XEGS

  (nakoniec sa ukázalo že toto bola naozaj hodne, hodne tŕnistá cesta ku konečnému cieľu)

 

Výhodou prvého riešenia by bola o niečo väčšia hw jednoduchosť zapojenia, ale lákala ma možnosť vyskúšať si zapojenie kde prevládajú CMOS čipy rady 4000, pôvodne to malo byť celé postavené iba na nich, ale nakonec sa ukázalo že tu bolo potrebné ešte nasadiť aj starý dobrý TTL Schmittov obvod v podaní čipu 74LS14 čo bolo to posledné čo ešte v zapojení chýbalo aby to fungovalo na jednotku. (K podrobnostiam na túto tému sa dostanem v časti o vlastnej stavbe a následnom oživovaní zariadenia.)


Voľba teda nakoniec padla na použitie komunikácie pomocou joyportu č.2 - niektoré základné časti hw boli prevzaté už ako odskúšané z programátoru PROM 74188 pre počítač SBC6502, preto som ich využil aj v tomto zapojení takže tu už do úplných podrobností zabiehať nebudem.

 

Pri vývoji boli nakoniec postavené 3 dosky programátoru - všetky boli urobené na univerzálnych doskách, záverom pri testoch fungovali všetky, takže z hľadiska reprodukovateľnosti to vyzerá naozaj dobre.


Ale poďme ďalej ...

 

Iné osadenie DIP switchu na zadnej strane dosky programátoru.

 

Pred časom som najprv začal písať program pre spomínanú paralelnú PBI zbernicu (bol som už v začiatočnom štádiu rozloženia súčiastok na doske, pätice už boli v doske zapájkované), základný program som aj napísal pre túto verziu (mali tam byť nasadené čipy 74LS00, 8255A, 4040 + ostatné bižu), ale jedno stretnutie zo Stanom Havranom (aka SH) pred časom to zmenilo.
Sadli sme si spolu a postupne sa začali objavovať výsledky ... SH napísal parádnu rutinu pre sériovú komunikáciu cez joyport2 a to nakoniec rozhodlo. Síce sériová komunikácia je z hľadiska použitia výsledného hw na doske programátoru o niečo zložitejšia, ale myslím si že je dostatočne prehľadná a ľahko sa tu dá zorientovať.
Len veľmi mierne som na začiatku tušil že prerobiť fakticky hotový software na verziu ktorá bude sériovo komunikovať bude taký "masaker" (nie preto že by bola tá sériová komunikácia nejaká obtiažna z hľadiska používania, ale preto že bola snaha dostať tam toho čo najviac a popritom jednotlivé rozdielne typy počítačov odolávali naozaj s neskutočným odhodlaním) ale nakoniec po dlhých týždňoch sme predsa len vytrvali a dotiahli to do konca. A že tých problémov vďaka rozdielom jednotlivých typov bolo neúrekom, ale nevzdali sme to a máme riešenie ktoré by malo spoľahlivo chodiť na spomenutých typoch 8bitových Atari. Lenže na to aby to "išlo" na všetkých spomenutých typoch bolo treba dodatočne nasadiť aj jeden štvormiestny DIP switch a nakoniec taktiež aj jeden trojradový jumper - inak by to nebolo univerzálne. Toto riešenie umožnilo chod programátoru na uvedených typoch bez toho aby bolo ptrebné robiť zásahy dovnútra počítača.
(Ako som spomenul - tých zmien bolo nakoniec veľmi veľa - a aj to dlho trvalo.)

 

Programátor bol otestovaný ako funkčný na nasledujúcich počítačoch:

Atari 600XL/64kB RAM (2x)

Atari 800XL                    (3x)

Atari 800XLF                  (1x)

Atari 65XE                      (1x)

Atari 130XE                    (2x)

Atari 800XE                    (2x)

Atari 320XE                    (2x) /800XE+256kB RAM

Atari XEGS - neotestované, nemám ho k dispozícii, ale vzhľadom na vnútorné osadenie ako pri rade XE by mal fungovať taktiež.

Tu asi musím zdôrazniť že všetky tieto počítače bežali v norme PAL, t.j. počítače v norme NTSC nemám otestované, ale predpokladám že budú fungovať taktiež.

 

V programátore sú použité 2x ZIF (Zero Insercion Force) pätice - jedna pre PROM 74188 a druhá pre ostatné typy.


Pozor, zmena !!!

Celé programové vybavenie bolo napísané v jazyku Turbo Basic, tu ale oproti pôvodnému plánu nastala zmena - rozhodol som sa to nakoniec neskompilovať - i keď nejakú tú ochranu pred priamym vylistovaním v programe predsa len ponechávam. Som si vedomý že že každý program sa časom dá "nabúrať, ale pre prácu stačí program používať a nie ho pitvať ...


Vzhľadom k tomu že práve máme 40 výročie uvedenia jazyku Turbo Basic do obehu tak to je z mojej strany taká malá pocta a hold geniálnemu programátorovi menom Frank Ostrowski - ktorý ale už dlhšie bohužiaľ nie je medzi nami.
(V poslednom období niekoľkých rokov som sa venoval malým SBC s iným jazykom Basic a tak som si teraz zase "pričuchol" k jazyku Turbo Basic a neprestávam sa diviť čo všetko Frank dokázal "natlačiť" do svojej verzie TB, je to neuveriteľné ...)

 

Programové vybavenie pracuje pod DOS-om 2.5 (program si DOS verziu kontroluje, takže žiadne výmeny nasadenia programu v inom DOS-e !), použité atr je v medium hustote, t.j. 128kByte. Program neumožňuje prácu s kazetovým magnetofónom, jednoznačne ráta pre prácu iba s disketovou jednotkou (alebo jej dnešnými, modernými náhradami).

 

No, na dnes stačí, v ďalšej časti bude nasledovať schéma zapojenia programátoru a zoznam použitých súčiastok - BOM.

___________________________________________________________

Prvá časť:

Tú práve sledujete ...

Druhá časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Hardware. Part2.

Tretia časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.1.0. Part3.

Štvrtá časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Picture manual. Part4.

Piata časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Own construction. Part5.

Šiesta časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.1.1. Part6.

Siedma časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.2.0. Part7.

___________________________________________________________

Vaše hodnotenie, Rate post:

Info o autorovi

Volám sa Igor Gramblička, bydlisko: Bratislava, Slovakia. Môj nick: Igi. Blog je o mojich záujmoch, predtým som pracoval ako IT špecialista na počítačové siete a redakčné systémy pre viaceré denníky - až som pred rokmi nakoniec v jednom z nich zakotvil a kde som to potiahol až do konca mojej profesnej kariéry.

Rok, mesiac, počet článkov: