SBC6502 + doska programátoru PROM 74188.
S touto verziou (1.09, 1.09p) programového vybavenia než som ju vydal som si už dal dlhšiu pauzu. Medzitým som si povedal že tu prevediem niektoré veci ktoré som síce chcel už vyskúšať aj predtým, ale akosi som sa k tomu nedostal. Teraz už áno a pretože bolo dosť času na jej skúšanie a otestovanie - tak tie zmeny sú v tejto verzii už prevedené a uplatnené.
SBC6502 + PROM 74188 programmer
(Už aj s "kapotážou".)
Program - verzia 1.09 je pre x-tal:
1.8432MHz
2.4576MHz
3.6864MHz
4.0000MHz
4.5000MHz
4.9152MHz
5.0000MHz
6.0000MHz
version 1.09.zip (35,11 kb)
Verzia 1.09 lite: - je prevedených množstvo ďalších úprav, tu som si dovolil nasadiť aj niektoré doteraz nepoužité úpravy
- previedol som presun pamäťových adries na nové miesto, uvoľnilo to viac miesta - i keď toto naozaj nebolo nutné, doteraz som používal zvolené adresy ktoré som definoval na samom začiatku programovania
- jedná sa o upravenú verziu pôvodnej verzie "lite" 1.07, pracovná verzia 1.08 bola zase neverejná, v nej sa robili potrebné úpravy a zmeny až z toho vyšla táto stabilná verzia 1.09 lite
- vlastné menu je teraz "roztiahnuté" na obrazovke na celú šírku, väčšia šírka menu podľa mňa na displeji vyzerá lepšie (už to nebude pripomínať niečo ako VIC-20 v prevádzke), cena za túto inováciu ? - v konečnom dôsledku je to iba o pár byte (cca o 20) dlhší program, za to to stojí
Menu - verzia 1.09
- zápis programu používa teraz príkaz ?"Text", pri nahratí programu sa automaticky ?"Text" zmení na PRINT"Text", vďaka tejto drobnosti je vlastný zápis programu kratší o vyše 500 byte (šikovné, ale tak isto to nie je pre prácu nevyhnutné)
- pri tejto verzii som prišiel na to že automatické mazanie obsahu premenných pri štarte programu akosi nemusí byť vždy celkom samozrejmosťou, vyhodil som skúšobne CLEAR pretože som si myslel že mazanie premenných zbehne pri štarte programu aj tak, ale ukázalo sa že CLEAR v prvom riadku je skutočne potrebné zachovať, bola situácia kedy sa mazanie premenných nepreviedlo pri novom štarte programu. Síce si už nepamätám za akých okolností to vtedy bolo, CLEAR sa jednoducho ukázal ako potrebný, vyhol som sa dodatočným problémom. Kto neverí - môže si to vyskúšať na vlastnej koži ... za starosti ktoré môžu nastať pri behu programu bez tých potrebných pár byte navyše v programe mi to naozaj nestojí.
- hodnota premennej LG=1.5 je v programe trvale nastavená na uvedenú hodnotu, odstránil som v programe jej kontrolu (ukázalo sa že LG=1.5 vyhovuje pre naozaj všetky prípady). Napríklad: nastavenie PGM pulzu v prvom kole na =50msec. dá potom v druhom kole PGM pulz =75msec., čo sa ukázalo viac ako dostatočná hodnota (overené priamo v prevádzke počas dlhšej doby), ak s takýmito PGM pulzami ani tak nedokážete Vašu PROM napáliť tak je naozaj vhodná iba na jednu vec - a to do koša. A to už s uvedenými parametrami PGM pulzu ideme hodne mimo datasheetových údajov.
- je prepracovaný Line Data generator, teraz vystupuje pod názvom Rows Data generator
- vo verzii 1.09 a 1.09.p je použitá zvuková signalizácia ako vo verzii 1.07 a to cez PC speaker
- vlastné spracovanie dávky 8 byte v Rows Data generátore teraz zbieha v podprograme, ten sa 4x vyvolá, program je vďaka tejto úprave zase o kus kratší
- v príkazoch programu napr. POKE X,(Y+Z) boli odstránené zátvorky, teda teraz je zápis v podobe POKE X,Y+Z, SBC6502 zátvorky nevyžaduje
- oddeľovač v menu (riadok kde sú samé ---) bol nahradený jednoduchým generovaním postupnosti znaku priamo v jednom podprograme
- pribudol oznam pri zápise dát cez (D),(H) a (R) aby ste si zapli odchytávanie textu v Hypertermináli, už nemusíte na to dopredu myslieť, ak ste na to predtým zabudli tak sa musel program nanovo spustiť a potrebný obsah sa musel odznova pekne-krásne ručne nadlapať ... (ručné spustenie odchytávania sa Vám ale aj tak nevyhne, toto je len upozornenie na to že ho treba spustiť a dá sa pokračovať ďalej). Po voľbe (R) príde po výpise k ukončeniu programu.
Riešením bez oznamu by bolo spustenie Capture hneď pri štarte programu, alebo pre "tvrďasov" je tu stále možnosť prepísanie Data riadkov priamo z printscreenu ...
- následne po vypísaní Data riadkov cez Rows Data generator Vás program vyzve na ukončenie odchytávania textu (potrebné údaje sú už odchytené, treba zápis cez Capture ukončiť)
Animácia výpisu pre zapnutie a vypnutie odchytávania textu.
- ďalšie úpravy vzhľadu a textu v menu, tu som mimo iného koketoval s verziou voľby dĺžky PGM pulzu pomocou klávesy (P) - chvíľu som to aj tak mal, ale nakoniec som ponechal výber cez už "zabehanú" klávesu (L)
- zmena v menu, pribudol nový riadok - výpis obsahu Data riadkov - je tu v dec forme a aj v hex forme, voľba sa prevedie stlačením (C). Výpis prebehne vždy, teda aj pri prázdnom obsahu Data riadkov /ak sú tam samé nuly/.
výpis konkrétneho obsahu Data riadkov - voľba (C)
- úprava vzhľadu výpisu pre 2 kolo programovania (PGM pulz)
- úprava pozície výpisu v Data rows file name
- dtto sa týka pozície výpisu platné, alebo neplatné Data v datových riadkoch
- zarovnanie výpisu vlastného kontrolného súčtu (CRC),
- zarovnanie výpisu bolo prevedené aj v chybových hláškach
- kontrola správnosti ID teraz zbieha v tej istej sekvencii ako kontrola CRC
- je "prekopaný" vzhľad hlavičky v Igi´s byte to bit analyzéri
Igi´s byte to bit analyzér, tu konkrétne porovnaný obsah Data riadkov s čistou, nenapálenou PROM
- zarovnanie výpisu pri voľbe (W)rite
- použitý nový príkaz v programe, teraz je napr.: PRINT SPC(5)"text" v programe namiesto pôvodného PRINT TAB(5)"text", nahradené všetky príkazy kde to bolo možné, na kritických miestach kde je to potrebné PRINT TAB zostáva, viď napr. programový riadok č.2990
- z programu vyhodené bodkočiarky za PRINT TAB(X);"text" zistil som že ich netreba, teda teraz je zápis PRINT TAB(X)"text"
- slučky napr.: FOR F=0 TO 10:NEXT F majú skrátený zápis na FOR F=0 TO 10:NEXT ktorému SBC6502 tak isto dokonale rozumie
- posunul som umiestnenie údajov z Data riadkov z adresy 31000d na novú adresu 32500d, dtto sa týka rozkladu byte na jednotlivé bity, presunuté z adresy 31032d na adresu 32532d (o tomto podrobnejšie na konci článku)
- nakoniec som rozšíril program aj pre ďalšie hodnoty použitého x-talu a to pre: 3.6864MHz, 4.9152MHz a 6.000MHz
Tu len upozorním že v prípade práce dosky SBC6502 s x-talmi 4.91524MHz, 5.0000MHz a 6.0000MHz asi už bude potrebné použiť rýchlu verziu 82C55A (tá ide do 10MHz), alebo je možné že bude treba už vyberať aj z 5MHz verzií 8255A (ak máte šťastie tak vyberať netreba). Problém môže byť v tom, že procesor 65C02 poskytuje kratšie impulzy pre zápis a čítanie ako potrebuje pre svoju činnosť obvod 8255A, takže čip nemusí potom na spomenutých x-taloch korektne fungovať. 5MHz verzie 8255A spoľahlivo idú na 4MHz clocku procesoru, takže asi bude treba trochu experimentovať. Ak nemáte chuť, potom 4MHz clock je tá najlepšia voľba vlastného taktu procesoru (teda ak máte k dispozícii dostatočne rýchly procesor).
Záverom:
Prácu na programovom vybavení verzie 1.09 považujem za ukončenú. Dĺžka programu sa teraz dostala na približne polovicu pôvodnej veľkosti, pritom z možností programu "vypadla" iba jedna vec a to reprogramovanie a zároveň pribudla nová možnosť výpisu obsahu, takže to skrátenie dĺžky programu považujem za celkom slušný úspech. Významným obmedzením pri tvorbe je to, že nie je možný zápis priamo do obrazovky (teda niečo ako PRINT AT a podobne), t.j. ak sa zapíše riadok tak to čo tam už je nie je možné prepísať, iba ak sa zmaže celá obrazovka. Za posledné mesiace som sa v programe vcelku dosť "vŕtal" a hľadal možnosti skrátenia celkovej dĺžky programu. A zadarilo sa.
__________________________________________________________
09.08.2022
Dnes uvoľnená verzia 1.09p (=patch, jedná sa o úpravy a skrátenie niektorých zápisov programových riadkov /ukázalo sa že zápis sa ešte stále dá skrátiť/, je tu aplikovaná jedna oprava v riadku 1630, kde v zápise zostala omylom dvojitá dvojbodka /moja chyba, ale program fungoval bez problémov/. Ostatné úpravy sa týkajú viacerých programových riadkov, pretože sa dal ich zápis ďalej zjednodušiť. Spomenutá chyba vo verzii 1.09 je už v programe odstránená.
Zdôrazňujem - pôvodná verzia 1.09 bola plne funkčná aj bez opravy spomenutého riadku.
menu - verzia 1.09p
Uvediem názorný príklad pôvodného zápisu programového riadku vo verzii 1.09:
1105 GOSUB 2995:? " U=";U;"DV=";DV;"PP=";PP;"LG=";LG;
Nový zápis toho istého programového riadku vo verzii 1.09p:
1105 GOSUB 2995:? " U="U"DV="DV"PP="PP"LG="LG;
Program - verzia 1.09patch je pre x-tal:
1.8432MHz
2.4576MHz
3.6864MHz
4.0000MHz
4.5000MHz
4.9152MHz
5.0000MHz
6.0000MHz
version 1.09patch.zip (34,92 kb)
Poznámka (25.10.2022):
Pretože som tu robil opravu tak som priamo do tejto verzie ešte urobil úpravu zobrazenia pri použití výberu (L), je to teraz prehľadnejšie.
SBC6502 + doska programátoru PROM74188 v jednom celku
_____________________________________________________
25.10.2022
V programových verziách rady 1.07, 1.09 a 1.09p bola chyba ktorá spôsobovala že po naprogramovaní pamäte sa automaticky priamo spúšťalo druhé kolo programovania s už následne predĺženým PGM pulzom - síce tento stav nespôsobuje poškodenie správneho obsahu už napálenej PROM, ale nebolo to určite to čo sa od programu očakávalo. Chyba je už opravená, na webe sú k dispozícii opravené programy týchto verzií.
Chyba nastala po vypadnutí jedného programového riadku z programu pri prepise častí programu do nových verzií programu - moja chyba, ospravedlňujem sa.
___________________________________________________________
12.09.2023
Všetky uverejnené programové verzie z tohoto článku boli dnes presunuté do samostatného článku:
SBC6502 - 66 - PROM 74188 - všetky verzie programu, all program version.
(Všetky programové verzie v jednom balíčku + popisy dôležitých adries.)
V uvedenom odkaze sú uverejnené všetky vydané verzie programového vybavenia pre programátor PROM 74188:
____________________________________________________________
Návrat do všetkých pokračovaní o SBC6502:
http://blog.3b2.sk/igi/post/Directory-SBC6502.aspx
____________________________________________________________
Vaše hodnotenie, Rate post: