A je tu ďalšia programová verzia, už 1.05a (1.05b) pre programátor PROM 74188. Previedol som ešte zopár zmien ktoré považujem za dobré (a účelné) a sú vhodným doplnením doteraz používaného programového vybavenia.
SBC6502 + doska programátoru PROM 74188.
Upozorňujem na to že komunikácia SBC6502 verzus PC beží v Hypertermináli a pre toto prepojenie je aj napísané programové vybavenie, potrebné nastavenia sú priložené, použitie nastavenia na ANSI je potrebné na to aby prichádzalo k mazaniu obrazovky - štandartným príkazom je CLS pre BASIC - tento príkaz nemá SBC6502, je nahradený príkazom PRINT CHR$(12) ktorý v emulátoroch rady VT100 nefunguje.
Tak sa na to pozrime:
Úvodná hláška.
Zmeny oproti verzii 1.04g:
- jedná sa hlavne o interné rozmiestnenie hlavného menu, vyžiadali si to zmeny v zobrazení menu, úvodná obrazovka sa zase vrátila do režimu "chudého muža" (šetrím RAM, ukázalo sa to ako dôležité - i keď voľnej RAM je stále viac ako dostatok).
- zmenilo sa zobrazenie hlavičky programu, obsahuje dátum vydania a tiež použitú rýchlosť x-talu, plus pribudlo upozornenie že v programe už nie sú použité pomocné REM riadky (REM poznámka zostáva zachovaná iba v jedinom programovom riadku - a to v riadku 9005).
- obsahy dôležitých konštánt a premenných (riadok 1002) sa zobrazujú trvale priamo v menu, t.j. netreba ich vyvolávať dodatočným stlačením klávesy, je priamo prehľad o dôležitých informáciách, vďaka tomu zákonite prišlo k odstráneniu hidden voľby (G) ktorá dokázala vyvolať údaje na displej v menu.
- pridaná hidden voľba (O), ktorá dokáže priamo prepnúť z módu manual Data On do módu opačného, t.j. manual Data Off.
- v akom sme režime vidíme v riadku s príkazom (W), ak je Manual Data OFF tak nie je žiadna hláška, priamo môžeme napaľovať, ak je ale zapnutý režim Manual Data ON tak nie je možné priamo spustiť príkaz (W), musíme ísť cez (S) - t.j. jedná sa o preprogramovanie už predtým napálenej PROM, alebo použiť príkaz (O), ktorý dokáže prepnúť do opačného režim (tak isto potom dokáže opakovane medzi týmito režimami prepínať - teda ak to považujeme za potrebné).
- ujednotenie zobrazenia voľby po stlačení klávesy v menu, vždy sa na displeji v následnom kroku zobrazí ktorá klávesa z menu voľby bola stlačená (a to aj po vyčistení obrazovky), je to jednoduchá pomôcka aby sme sa nestratili v tom kde sa práve nachádzame v programe.
- úplne nový spôsob kontroly či je hodnota LG (riadok 1002) v povolenom rozsahu jej hodnôt 1 až 2 (kontrola zbieha v postupnosti desatinných čísel), je to teraz programovo ošetrené celkom inak (zase som mimo iného ušetril niekoľko byte na výslednej dĺžke programu).
- zmenené zobrazenie chybovej hlášky pri zle zapísanej hodnote LG v riadku 1002.
- bol znížený rozsah povolenej maximálnej dĺžky napaľovacieho impulzu z hodnoty 100msec na max. 50msec (uvedomil som si že takto povolená maximálna nastavená hodnota plne postačuje, v druhom kole to číní 75msec), pri nastavení premennej LG=2 potom dostávame v druhom kole dĺžku programovacieho impulzu =100msec - a to by už malo stačiť aj na vola ... nielen na obyčajnú PROM.
Zmena dĺžky PGM pulzu na 24msec.
Nový vzhľad menu, verzia 1.05a:
Základné nastavenie parametrov.
(Okamžite sa prejaví v nastavení dĺžky PGM pulzu do druhého kola na 36ms, t.j.
na 1.5 násobok nastavenej hodnoty, viď obsah LG=1.5.)
Podrobnejšie:
- konečne sa kontroluje v programe aj doteraz nevyužitá premenná ID z riadku 9000, ak nesúhlasí ID (musí byť =32) tak nie sú k dispozícii platné Data riadky pre PROM 74188 a program sa stopne.
- verzia programu 1.05a (a vyššie) má už zo seba zámerne odstránené poznámky, a vďaka tomu bolo potrebné vo verzii 1.05a nanovo doriešiť odkazy ktoré smerovali práve na tieto riadky. Vďaka skráteniu programu som potom nemusel riešiť chyby ktoré sa objavovali pri plnej dĺžke programu nezverejnenej verzie 1.04h ak boli použité všetky REM riadky, takže skrátenie vlastného programu dáva zmysel, prišlo tým aj k miernemu zvýšeniu rýchlosti vykonávania programu (o pár %, ale pre prácu vlastného programu to nie je podstatné), hlavne pri napaľovaní. (Program už počas vykonávania nemusí prechádzať cez REM riadky ktoré boli v ceste pri používaní napaľovacieho pulzu a pritom slúžili len na porozumenie toho čo sa v ktorých riadkoch programu práve vykonáva).
- zdá sa že rozsahom použitých premenných a všetkých "fičúriek" použitých v tomto programe som sa dostal na pokraj možností inštalovaného Basicu (verzie 1.04g sa to ale nijako netýka, tam je všetko ešte v pohode) a teda to aj určilo a viedlo k finálnej uvedenej "odtučňovacej kúre" vlastného programového vybavenia. Proste pri ďalšom zväčšení programu sa už objavovali problémy (dĺžka programu dosahovala už cca 21.400 byte), ale ako som zistil - stačilo vymazať úvodnú hlavičku (pôvodne prevzatú z 1.04g) a zase sa to správalo normálne (ušetril som tým asi 900 byte). Objavila sa jedna chyba na ktorú som narazil - pri testovaní dĺžky premennej LEN(A$) - pri vkladaní hexa čísla sa objavovalo číslo ktoré nebolo rovné správnej dĺžke (malo mať hodnotu =2) ale bolo vždy menšie o -1. Jasnačka, dalo by sa to v programe ošetriť, ale takáto hrubka avizovala že problémy sú už za dverami - a tak sa začalo redukovať. Zjavne to súvisí s tým že hlavička bola v začiatočnej časti programu, po jej premiestnení do spodnej časti programu to zase fungovalo v poriadku (do toho ako SBC6502 spravuje samotné Basic premenné akosi celkom nevidím). Napriek všetkému už začínam tušiť kde je problém (asi problém bol /mimo iného/ s definovaním B$ až v strede programu) prehodil som to a urobil radikálnu odtučňovaciu kúru - a skutočne, pomohlo to. Dosť je nepríjemný fakt - programový riadok má maximálnu dĺžku iba 72 znakov, t.j. nie vždy som "napratal" do jedného riadku všetko čo by som potreboval a sú teda potrebné pomocné barličky. (Odsedel som pri postupnom vývoji programového vybavenia celkom slušnú dobu, hlavne tento rok - ale bavilo ma to. A hlavne - tým že som sa tomu venoval tak som celkom slušne v obraze kde som čo v programe robil a nastavoval, čo je asi najväčšia devíza ktorá sa mi počas vývoja dostala.)
Približne po roku od začiatku fungovania programátoru (vtedy bola k dispozícii prvá uvoľnená programová verzia 1.02) som vytvoril verziu 1.03 (02/2021) a potom pekne vždy po mesiaci zase ďalšiu verziu (1.04, 1.04g, 1.04e, - presne ako sa vždy ukázalo že je potrebné program ďalej upravovať. Ako to slušne napísať, po zverejnení novej verzie programu som pekne krásne večer tesne pred spaním vždy dostal nápad čo tam ešte do programu dorobiť - a tak za posledných 5 mesiacov som vytvoril postupne niekoľko ďalších programových verzií. Teraz to má pracovné označenie verzia 1.05a, napriek tomu som s výsledným stavom programu celkom spokojný, i keď nejaké tie stovky byte na dĺžke by sa ešte určite dali ušetriť.
Príjemné a potešiteľné zistenie je to že aj napriek postupnému vývoju program naďalej dokáže to čo sa od neho očakáva - naprogramovať PROM 74188 (tak ako na začiatku) a popritom ešte pribudli nejaké tie pomocné "drobotiny" ktoré sú obsiahnuté v programe navyše.
____________________________________________________________
Poznámka k verzii 1.05a:
Ak chce niekto mať stále k dispozícii dlhšie programovacie impulzy už priamo v prvom kole (teda až do 100msec) - treba v programe do riadkov 1610 a 1620 umiestniť tento pozmenený obsah:
1610 INPUT " New PGM pulse length (allowed range: 1-100msec)";PG
1620 PRINT:IF PG<1 OR PG>100 THEN GOSUB 1999:GOTO 1600
Stále treba mať na pamäti že štandartne druhý programovací pulz je 1.5 násobkom prvého, t.j. pri nastavení na 100msec pulz bude mať programovací pulz pre druhé kolo programovania (ak nezbehne bezchybne programovanie v prvom kole) už dĺžku =150msec.
___________________________________________________________
Program - verzia 1.05a a 1.05b je pre x-tal:
1.8432MHz
2.4576MHz
4.0000MHz
4.5000MHz
5.0000MHz
version 1.05a.zip (28,13 kb)
version 1.05b.zip (27,82 kb)
____________________________________________________________
Najnovšia programová verzia 1.05b (02.08.2021):
Jeden bug som vo verzii 1.05a našiel - pri ručnom vkladaní dát na preprogramovanie PROM prichádzalo po zadaní všetkých 32 byte k vypísaniu chybovej hlášky (Wrong input !) - pritom ale bolo všetko O.K., v samotnom listingu programu tejto verzie je už táto chyba chyba opravená. Pri tej príležitosti som sa zase do programu "zavŕtal" a urobil som aj ďalšie úpravy ktoré ďalej zmenšili jeho výslednú veľkosť, je už označený ako verzia 1.05b. Celková dĺžka programu sa zase o niečo skrátila.
Zmeny vo verzii 1.05b oproti verzii 1.05a:
- do hidden voľby (I) pribudla možnosť priameho prepnutia (kedykoľvek) z módu Data On do módu Data Off (a naopak), občas sa to môže hodiť, vďaka tomu zmizla z ponuky hidden voľba (O), už nie je potrebná
- na obrazovke menu je zvýraznené ak je zapnutá voľba Data On, je to v riadku voľby (W)rite
- v programe je už dôsledne využívaná možnosť príkazu TAB(x)
- vlastná sekcia napaľovania je stesnaná do menšieho počtu programových riadkov
- pribudla premenná NS cez ktorú je možné lepšie nastaviť čakaciu slučku v riadku 2000, teraz stačí zadať NS=3:GOSUB 2000
(je to ekvivalent zadania = GOSUB 2000:GOSUB 2000:GOSUB 2000)
- celý program je v menšom počte programových riadkov, ušetrených je niekoľko sto byte výslednej dĺžky programu
Hlavné menu, verzia 1.05b, zrušená hidden voľba (O), už nie je potrebná, jej príkazy
sú obsiahnuté priamo cez hidden voľbu (I).
(Teraz v tomto okamžiku na obrázku nie je aktivovaná možnosť preprogramovania.)
verzia 1.05b
Aktivovaná hidden voľba (I), tiež dostupné cez menu postupným stlačením (S) a potom (I),
verzia 1.05b.
Už aktivovaný mód preprogramovania PROM, verzia 1.05b.
Ukážka znázornenia blokovania (W) ak je už nastavený mód preprogramovania.
Info je priamo v menu, verzia 1.05b.
(Voľba (I) z predchádzajúceho obrázku.)
Takto vyzerá upozornenie ak máme aktivovaný mód preprogramovania a aj tak skúšame zapisovať
cez voľbu (W) v menu. Nepovolí nám to, treba ísť cez (S) a potom (P), verzia 1.05b.
(Tieto voľby sú určené na používanie len skúsenejším.)
P.S.:
Asi sa k tomu dokopem že urobím verziu programového vybavenia bez zaradenej možnosti reprogramovania, toto by malo naozaj výrazne skrátiť celkovú dĺžku programu a teda by to bolo napokon omnoho prehľadnejšie, predsa len nie každý túži (a potrebuje) PROM niekedy preprogramovať. Ak to niekto potrebuje - má to k dispozícii a teda je to dostupné vo verziách 1.05a a 1.05b.
Poznámka:
No, uvidím ... možno pôjdem do toho keď dostanem chuť sa ešte niekedy v programe vŕtať, všetky nasledovné verzie programu idú cestou dôkladného "chudnutia" a teda výrazne sa skráti celková dĺžka programu.
________________________________________________________________________________
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: