SBC6502 + doska programátoru PROM 74188.
A mám tu ďalšiu verziu programu pre programátor pamätí PROM 74188 - 1.04. Program sa rozrástol, poskytuje omnoho viac informácií (a možností) a snažil som sa aj o to aby bol graficky viac upravený. Nakoniec, popis - t.j. vlastný manuál je zverejnený v predchádzajúcom článku ako inštruktážne video takže by to malo byť vcelku prehľadné. Než tu ďalej program uverejním, tak by som rád doplnil ešte niekoľko doplňujúcich informácií - pre tých, ktorí sa radi vyznajú v tom s čím robia.
Autor nenesie žiadnu zodpovednosť za škodu ktorá vznikne
zničením PROM pri nesprávnom použití programátoru !
V prvom rade som zmenil v programe sekvenciu na programovanie, predtým tam bolo niekoľko podprogramov ktoré plnili túto úlohu, teraz je to podprogram jediný. Vďaka tomu sa zmenilo aj číslovanie riadkov, teraz namiesto už neexistujúceho riadku 3750 určuje dĺžku programovacieho pulzu riadok 7450. Je to spôsobené tým že som niektoré časti programu doslovne "prekopal" a vďaka tomu je teraz program kompaktnejší - vypadli celé časti riadkov a pribudli ďalšie veci v programe. Pre usera to ale nie je až tak dôležité, pretože pre rôzne rýchlosti x-talu poskytujem už kompletné programy, t.j. stačí ho spustiť a pri štandartnom používaní netreba pátrať kde čo je v programe a ako umiestnené. Nakoniec - vysvetlivky sú priamo v programe umiestnené v REM riadkoch. Síce je vďaka tomu program o niečo dlhší, ale nechcel som aby sa dalo v programe ľahko "stratiť". Program je určený na napaľovanie jednotlivých kusov PROM 74188, nie je to zamerané na nejaké masové použitie (to naozaj asi v dnešnej dobe nehrozí, že), ale ak raz nahráme potrebné údaje do Data riadkov a spustíme výber (W) - write, tak dokážeme napaľovať akékoľvek množstvo potrebných PROM 74188, len musíme vždy potvrdiť nanovo že použijeme vložené konkrétne Data riadky.
Pretože programujú sa len jednotky (1) vo vlastných bitoch, nula (0) sa do pamäte PROM neprogramuje - z toho vyplýva že algoritmus napaľovania je tým rýchlejší čím viac núl (0) je vo vlastných 32 byte rozložených na jednotlivé bity - toto je zdôraznené aj vo video manuáli. Spomínam to preto aby vďaka tejto vlastnosti niekto nezačal byť prekvapený že niektoré PROM sa napália hodne rýchlo (teda tie kde sú skoro samé (0) a tie PROM kde sú skoro samé (1) sa napaľujú pomalšie.
Pozrime si prevedené zmeny v programe verzia 1.04 (oproti verzii 1.03):
01. - celkové komplexné zlepšenie vzhľadu programu, úprava textov
02. - vylepšenie ochrany pred vstupom chybných dát v režime (H)
03. - zmena výpisu verifikácie PROM, predtým výpisy v riadkoch, teraz je to všetko na jednej obrazovke - buď je napálená PROM O.K. alebo je obsah v nej zlý (teda inak povedané je blbý), medzitým žiadna iná možnosť neexistuje, pre takéto riešenie som sa rozhodol pretože napaľovanie PROM prebieha doteraz maximálne uspokojivo
04. - pri problémovej PROM je na konci programovania po dvojnásobnej verifikácii ešte navyše následne spustená bitová analýza a program sa ukončí hláškou že je v programátore chybná PROM - po tejto hláške je ju možné naozaj hodiť do koša ... (táto bitová analýza nie je zobrazená vo video manuáli, pretože ma napadlo zaradiť ju do programu až po jeho nahratí)
05. - režim (S) - pridal som možnosť bitovej analýzy obsahu PROM voči údajom dodaným z DATA riadkov
06. - do bitového analyzéru som pridal porovnanie jednotlivých byte - teda pribudli znamienka = a <>
07 .- pridaná možnosť (I) - pod (S) tzv. Backdoor rutina kde môžeme namiesto vstupu načítania PROM voliť aj ručné zadanie dát - ak nie je PROM momentálne dostupná, pozor - toto je naozaj len pre skúsenejších !
08. - program rozpoznáva že je práve v režime ručne zadaných dát, tak isto rozpoznáva ak sme prečítali na preprogramovanie údaje z PROM, ak je to potrebné tak sa zase cez Backdoor rutinu vieme vrátiť do východzieho stavu kedy rušíme (S) a (P) - PROM na preprogramovanie, alebo (S) a (I) - ručné zadanie dát namiesto vloženej PROM
09. - do programu pridaná bitová analýza, toto sú jej možnosti:
a. - porovnanie obsahu PROM voči DATA riadkom
b. - porovnania ručne zadaných dát voči DATA riadkom
10. - pridaná možnosť priamo z menu spustiť skrytú (hidden) voľbu (I), t.j. priamo z menu skok na Backdoor rutinu, to je taká moja blbôstka, neodolal som
11. - voľba spustenia režimu (W) je blokovaná ak je aktívne manuálne zadanie dát (Manual Data) ktoré je aktivované cez (S), následne (I), alebo priamo z menu (I) pomocou hidden voľby, ak ideme cez (S) tak je tam možnosť zápisu - ale nie cez voľbu (W), pretože tá si kontroluje či je založená čistá PROM
12. - kompletne "prekopaná" programová časť ktorá má na starosti zápis dát do PROM, doteraz to riešilo niekoľko vnorených podprogramov, teraz to rieši podprogram jediný
13. - iné riešenie zobrazenia zápisu bytov do PROM (zmestí sa kompletne celé teraz iba do jedného okna)
14. - skrátenie času kedy sa čaká po zapnutí relé (ktoré pripojí napájanie na vlastnú PROM) o 33%, t.j. vďaka tomu je rýchlejší aj výsledný zápis
Poznámka:
Kto chce program len používať, t.j. chce s ním pracovať bez potreby nejakých ďalších znalosti čo sa vovnútri programu deje - odporúčam preskočiť nasledujúce 2 odstavce a môžete si priamo stiahnuť program v.1.04 a použiť priamo s programátorom PROM 74188.
Program - verzia 1.04 je pre x-tal:
1.8432MHz
2.4576MHz
4.0000MHz
4.5000MHz
5.0000MHz
version 1.04.zip (30,55 kb)
_____________________________________________________
Dôležité adresy v programe v.1.04 pre programátor PROM 74188:
31000(d) ; I 32 byte - obsah = Data riadky 9001 ÷ 9004
... ; I Vždy sú tu uložené iba údaje z týchto Data riadkov !
... ; I Údaje sú vždy nanovo načítané ak je na
... ; I displeji zobrazené MENU.
... ; I Tu sa vždy nachádzajú DATA ktoré sa programujú
31031(d) ; I do PROM 74188.
______________________________________________________
31032(d) ; I rozklad - one byte to bit 0, pozícia bitu
31033(d) ; I rozklad - one byte to bit 1, pozícia bitu
31034(d) ; I rozklad - one byte to bit 2, pozícia bitu
31035(d) ; I rozklad - one byte to /bit 3, pozícia bitu
31036(d) ; I rozklad - one byte to /bit 4, pozícia bitu
31037(d) ; I rozklad - one byte to /bit 5, pozícia bitu
31038(d) ; I rozklad - one byte to /bit 6, pozícia bitu
31039(d) ; I rozklad - one byte to /bit 7, pozícia bitu
______________________________________________________
31040(d) ; I nepoužité
31041(d) ; I nepoužité
31042(d) ; I nepoužité
31043(d) ; I nepoužité
______________________________________________________
31044(d) ; I Ak je obsah=0 alebo= 36, potom nie je aktivovaný režim ručné zadanie
dát, ak = 166 potom je aktivované ručné zadanie dát pre režim prepro-
gramovania pôvodnej PROM 74188
______________________________________________________
31045(d) ; I nepoužité
31046(d) ; I nepoužité
31047(d) ; I nepoužité
31048(d) ; I nepoužité
31049(d) ; I nepoužité
______________________________________________________
31050(d) ; I Voľba (S) a (P) - 32 byte - prvá možnosť:
... ; I Načíta sa sem založená PROM 74188 určená na preprogramovanie
... ; I a môžeme analyzovať obsah PROM voči Data riadkom (9001 ÷ 9004)
... ; I Voľba (S) a (I) 32 byte - druhá možnosť:
... ; I Bez vloženej PROM sem môžeme ručne (mód - Manual Data) zapísať
... ; I údaje, potom môžeme analyzovať obsah ručne vložených dát voči
31081(d) ; I údajom z DATA riadkov (9001 ÷ 9004)
______________________________________________________
___________________________________________________________
Nasleduje dôležitá poznámka k použitiu voľby (S) - t.j. preprogramovanie PROM 74188 ktorá už obsahuje data:
Ideálna na preprogramovanie je PROM 74188 ktorá obsahuje niekoľko nepoužitých výstupov.
Vtedy je to naozaj jednoduché. Ale zmeny sa dajú urobiť aj vo "viac naplnenej PROM)", dá sa to - ukážem teraz konkrétny príklad na jednom jedinom byte:
- predstavte si že je v tomto byte v PROM 74188 uložená hodnota 7 (dec) t.j. binárne = 00000111
- potrebujeme tu ale zapísať 8 (dec) čo je binárne = 00001000
- lenže prepísať jednotkový bit nedokážeme, takže do PROM musíme zapisovať pôvodných 7 plus 8 nových,
t.j. zapisujeme hodnotu =15 (dec) čo je binárne = 00001111
Na toto pozor, pretože ak takýto zápis nedodržíme, nebude program schopný správne verifikovať napálenie preprogramovanej PROM ! - práve pre toto by režim preprogramovania PROM mal používať len naozaj veci znalý user. Niektoré PROM proste nepôjdu preprogramovať pretože buď majú málo voľných bitov, alebo sú voľné bity v tak nevhodnom usporiadaní že to proste nepôjde - aj s tým treba počítať a práve na toto je tam analyzér bitov ktorý zobrazí Data z riadkov a zobrazí PROM data, alebo tam namiesto PROM dát zapíšeme data v ručnom móde (manual mod). Porovnáme, urobíme si záznam čo by tam bolo treba a potom výsledky nášho snaženia uložíme do DATA riadkov - ak je to O.K., môžeme spustiť preprogramovanie PROM 74188.
P.S.: Ak ste neporozumeli funkcii (S) tak ju radšej nepoužívajte !
Stále je to len doplnková funkcia ktorá nemusí všetkým vyhovovať,
pritom pokiaľ viem takúto funkciu žiaden programátor PROM 74188
doteraz neposkytuje.
____________________________________________________________
25.02.2021
Používam nasledovný postup pri programovaní:
1. - do programu nahrám potrebné DATA riadky s obsahom potrebným na napálenie do PROM 74188, toto treba urobiť ako prvé, po spustení programu vidím popis čo je v DATA riadkoch
2. - založím do pätičky čistú (blank) PROM 74188
3. - volím zápis, (W) - write, pri tejto voľbe automaticky pred programovaním prebieha kontrola či máme založenú čistú PROM
4. - potvrdím povolenie zápisu, zbehne naprogramovanie PROM
5. - po napálení zbehne verifikácia PROM, ak je všetko O.K. po chvíli sa program vráti do menu, PROM 74188 môžem vybrať z pätičky a následne ju výrazne označím tak, aby som vedel že je už naprogramovaná (najlepšia je samolepka s popisom)
6. - ak je problém a PROM 74188 sa nedá naprogramovať - program sa ukončí hláškou ktorá potvrdí že je PROM 74188 chybná, zatiaľ sa mi to nestalo (je to málo pravdepodobné, z cca 50 kusov čo som doteraz na tomto programátore napálil zatiaľ ani jedna PROM neskončila chybovou hlášku, všetky sa podarilo úspešne naprogramovať)
7. - ak je treba napáliť rovnakú PROM 74188 akciu môžem zopakovať a idem na bod (2)
Záverom jedna "blbinka":
V programe je časť pomenovaná Igi´s Backdoor Helper. Pekné, ale po nahratí programu do počítača vlastný SBC6502 vždy prepíše Igi´s na Igi4s. Tak som sa vďaka tomu vybodol na gramatiku a v listingu a teda aj v programe som použil jednoduchšiu verziu - slovíčko Igis, toľko na vysvetlenie. Ale je možné že to niekedy v budúcnosti opravím.
(Aj SBC6502 dokáže byť poriadne "tvrdohlavý. )
____________________
Poznámka:
S programom som mal pred pár dňami problém, po naozaj iba kozmetických (vzhľadových) posledných úpravách mi v ňom prestalo fungovať programovanie - teda voľba (W), nie a nie na to prísť kde je problém. Potom stačili dva dni kedy som si dal od programu dôslednú pauzu a po novom zasadnutí k počítaču som za chvíľu miesto problému identifikoval. Píšem v notepade, často používam CTRL+F (Find) a podarilo sa mi vďaka mojej nepozornosti do jednej dôležitej premennej o dĺžke 2 znakov "dosadiť" do jej stredu ďalšie písmeno - a neplecha bola na svete. Našiel som to tak že som si nechal vypisovať obsahy premenných. Blbina, ale dala zabrať. Fakt dať si občas pauzu pomáha, vtedy si to viem celé nechať "prejsť" v hlave a viem si vytýčiť čím mám zase pri hľadaní problému začať a postupne viem zredukovať nájdenie problému na pár postupných krokov. A pretože celý program píšem priamo iba v ntb a nemám urobený žiaden listing na papieri (frajer ... že) - o to horšie sa mi problém hľadal. Síce som listing na displeji prešiel párkrát celý rad zaradom, ale toto som prehliadol, proste klasika ak v niečom trčíte príliš dlho tak zaručene problém pri jeho hľadaní prehliadnete. No - ale je to za mnou, ten minulý týždeň "blbec" mi dal zabrať - a to aj v iných smeroch.
____________________
Nová Murphyho definícia (Igi 02/2021):
Ak dostatočne dlho programujete a potom hľadáte chybu v listingu programu na displeji - tak chybu zaručene nenájdete.
_________________________________________________________________________________
V uvedenom odkaze sú uverejnené všetky vydané verzie programového vybavenia pre programátor PROM 74188:
SBC6502 - 66 - PROM 74188 - všetky verzie programu, all program version.
_____________________________________________________________
Návrat do všetkých pokračovaní o SBC6502:
http://blog.3b2.sk/igi/post/Directory-SBC6502.aspx
____________________________________________________________
Vaše hodnotenie, Rate post: