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 použitú 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. Je to úplne prvá verzia programu, preto si myslím že je tu veľa vecí riešených inak ako sa postupne pri vývoji programového vybavenia ukáže ... len som to chcel už pustiť na web, rozhodne na vývoji programového vybavenia hodlám ešte poriadne zapracovať.


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. Program nikdy nespúšťajte ak máte v joyportoch č.1 a č.2 pripojený joystick ! - mohlo by prísť k poškodeniu čipu 6520 ak by ste stlačili niektoré tlačítko na joysticku !


Dôvod použitia DOS 2.5 je jednoduchý - programové vybavenie funguje priamo aj na originálnej disketovej jednotke Atari 1050, teda netreba robiť jej žiadnu úpravu - jeden z dôvodov je aj jasne definovaný max. počet súborov na disku a moťnosť jednoduchého zobrazenia Directory disku. Na začiatku tvorby programu padlo rozhodnutie že komunikácia v programe bude poväčšine cez "okienka". Dostupnosť Ramdisku nie je podmienkou pre fungovanie TOPP programu, akurát sa niekedy jeho dostupnosť z rozličných príčin môže hodiť.


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) 


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 tu neráta, ani s počí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: (tak 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 prácu s TOPP programátorom 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. TOPP program + systémové súbory DOS 2.5 sú zamknuté (Lock), teda sú chránené proti prepisu a nechcenému vymazaniu. Program je koncipovaný tak že po svojom spustení už nepotrebuje mať v D1: založenú boot disketu a teda namiesto D1: môžeme založiť kľudne aj datovú disketu (teda samozrejme napr. čistú, naformátovanú druhú stranu diskety).

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 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., vyššie verzie už od tejto reštrikcie postupne budú upúšťať.

 

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:

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

 

- skontrolujte či je vypnutý počítač, ak áno pokračujte

- skontrolujte či nemáte pripojený joystick v porte 1 alebo 2, ak sú obidva porty voľné pokračujte
- skontrolujte či je vypnutý programátor, ak áno 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

- skontrolujte či je zapojený zdroj pre programátor, potom pokračujte
- zapnite TOPP 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 s TOPP programátorom 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 TOPP - 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 ! - 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 v tejto verzii programu dajú nastaviť na 5 rozdielnych hodnôt (časom ich bude určite viac):
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 (síce viem ako na to, ale bolo by to o niečo zložitejšie) - tak som to zatiaľ tak ponechal, ničomu to nevadí, aj na tomto ešte zapracujem.


Nahratie a aj ukladanie dát 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.

 

Tu sa oplatí pripomenúť si že DOS 2.5 neumožňuje ukladať na disk súbor ktorý začína číslicovkou,

uvediem príklad:

D:NAME1234.032 = prípustný názov súboru

D:1234NAME.032  = neprípustný názov súboru !

takže na toto pozor !

 

Ešte pár slov k binárkam:

- ak ukladáme 32 byte treba na disku 1 sektor, obsahuje data + je zároveň aj ukončovací, teda zaberie 128 byte

- ak ukladáme 256x4 bity treba na disku 3 sektory, 2x obsahujú data + 1 sektor je ukončovací, spolu 384 byte

- ak ukladáme 512x4 bity treba na disku 5 sektorov, 4x obsahujú data + 1 sektor je ukončovací, spolu 640 byte

 

No, vyzerá to možno na prvý pohľad celkom "divoko" - ale pracujeme skutočne s potrebnými datami. Aby som bol presný - v každom sektore je 125byte dát, 3 byte zaberá samotný systém, nuž ale to nie je usera až také dôležité - hlavne že všetko funguje tak ako treba (teda pri 256x4 a 512x4 je aj v ukončovacom sektore pár datových byte). Pre nás je dôležité že stále máme potrebné data k dispozícii tak ako treba a tieto interné veci fungujú správne a nemusíme sa s nimi ďalej zaoberať (sú to fakt interné záležitosti).

 

Je tu extra možnosť generovania/editácie obsahu bufferu pre pamäť PROM 74188, pre PROM s väčším obsahom (typy 3 a 5) zatiaľ ale s takouto možnosťou nerátam (v budúcnosti asi áno), 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. (Možno na tomto ešte tiež zapracujem a minimálne prevod hex2bin časom implementujem.)

Z uvedeného je taktiež 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.

 
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 vo Vašom prípade nahradzuje).

Pre menej znalých - prenosy údajov medzi Atari a PC zabezpečí napríklad program makeAtr (spúšťa sa na PC, netreba ho inštalovať), ktorý pri prenose z Atari sám zabezpečí správny prenos dĺžky binárky na PC (a naopak).

 

Program makeATR:

Make ATR.zip (55,87 kb)

 

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 (továrne naprogramované PROM 74S187 PROM 74S370) majú v menu potlačenú možnosť voľby WRITE, t.j. nie je možné do nich 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 relatívne stručne vysvetliť - pamäte nad typom 74188 majú organizáciu 256x 4 alebo 512x 4 bity, t.j. pracujeme iba zo 4 bitmi. Ak zvolíme High nibble tak sú data vo formáte Fxh, čo značí že prvý byte tu bude vždy rovný F a x budú naše 4 bit Data. V prípade navolenia Low nibble budú Data 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 nejakom 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á potom v sebe príznak, ktorý mu 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í - pre neznalých to vyznieva ako dokonalá "haluz" - ale kto sa v tom vyzná mi dá za pravdu.
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.

 

Malá poznámka:

Ak zvolíme a potvrdíme skok do DOS-u tak automaticky sú joyporty 1 a 2 prekonfigurované späť do východzieho stavu.

 

No, je to prvý program pre tento programátor a ako sa poznám určite to nebude jeho posledná verzia, tých nápadov sa medzičasom objavilo viacero ... ešte to ale bude treba postupne realizovať.

 

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 údajov 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 počítačov Atari rady XL ...

Priamo v programe je v DATA riadkoch uložený obsah pre strojovú rutinu obsluhy JOY portu č.2. Síce by sa to dalo uložiť cez file.obj a nahrať pomocou BLOAD file.obj ale takto je to šikovnejšie, pretože je to priamo súčasťou TOPP programu - ocenia najmä majitelia jedinej disketovky - nemusia pri reštarte vždy zakladať zdrojovú TOPP disketu.

_________________________________________________________

Celé programové vybavenie pre TOPP (všetky vydané a budúce uverejnené verzie) sú napísané na reálnom "železe", teda na počítačoch Atari 600XL (64kB RAM, neskôr s pridanou 512kB RAM, tu síce DOS 2.5 využije len ďalších 64kB RAM ako ramdisk) a taktiež na Atari 800XE (320kB RAM, zase využitých len ďalších 64kB RAM). Áno viem, existujú emulátory pre Atari ale tie ma veľmi nebavia, ale namiesto disketovej jednotky priznám sa používam jej emulátor (šetrí to fyzické diskety ...) beží mi to na notebooku Asus EEE-1005HA ktorý pracuje pod Win7 32bit a používa programové vybavenie RespeQT 5.2, na prepojenie Atari-PC používam Lotharekov interface SIO2USB. Program TOPP je napísaný v jazyku Turbo Basic, vyhovuje mi z hľadiska rýchlosti a hlavne dokáže pracovať s procedúrami ...

(Počet reálne vytvorených pracovných verzií TOPP radšej nebudem menovať - ale bolo ich naozaj hodne ..., teraz to konečné číslo už nie je dôležité, považujem za hlavné to že sa to podarilo zdárne dotiahnuť až do konca.)

__________________________________________________


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

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

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

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

Dátum zároveň vyjadruje poslednú prevedenú úpravu v tejto verzii programu.

Celkový počet programových riadkov = 487


(05.04.2025 - posledné úpravy tejto verzie programového vybavenia, tu už nepredpokladám ďalšie zmeny. Vo vyšších verziách nad V.1x budú postupne odstránené striktné obmedzenia v tzv. demo móde, budú sa ďalej 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 počítače .  inak by nefungovali správne v programe uvedené časové údaje.

Na samotnú 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 /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/.

06.07.2025 
Oprava v programe - pri použití príkazu Save (ak je zaplnený disk 64 súbormi ) síce prišlo k pípnutiu priamo v programe a potom nasledoval návrat do posledného príkazu, ale nezobrazila sa hláška "Disk full" - už opravené. Priamo do programu bol umiestnený odkaz na webovú stránku.

__________________________________________________

V nasledujúcej časti o TOPP 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.

Časť číslo  osem:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.2.1. Part8.

Deviata časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.2.2. Part9.

Desiata časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software update. Part10.

Jedenásta časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.2.4. Part11.

Dvanásta časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.2.5. Part12.

Trinásta časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.2.6. Part13.

Štrnásta časť:

TOPP - software P188_46C_Vigi_MyDOS - SH. Part14.

Pätnásta časť:

TOPP - software P188_46F_Vigi_SpartaDOS - aka SH. Part15.

Šestnásta časť:

TOPP - Tesla Old PROM Programmer - Diagnostic disk HWT 2.0. Part16.

Sedemnásta časť:

TOPP - Tesla Old PROM Programmer - all program version. Part17.

Osemnásta časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.2.7R8 - MyDOS 4.53/4. Part18.

Devätnásta časť:

TOPP - Tesla Old PROM Programmer for Atari 8bit. Software V.2.7R9 - MyDOS 4.53/4. Part19.

__________________________________________________________

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: