ATARI Portfolio schéma, circuit - new.

By Administrator at apríla 19, 2024 17:37
Filed Under: ATARI Portfolio

 

Po dlhej, veľmi dlhej dobe konečne (!) dostupné podklady v lepšom rozlíšení ...

 

 

 

portfolio-schematic.pdf (4,35 mb)

__________________________________________________________________

Vaše hodnotenie, Rate post:

Napájacie zdroje Atari - 5.2V/DC. Power supply Atari.

By Administrator at apríla 15, 2024 09:52
Filed Under: Atari

 

 

Dnes to bude len poznámka k tomu že niektorí užívatelia sa sťažujú na to že namerajú na svojich napájacích zdrojoch pre Atari rady XL a XE napätie 5.2V/DC a teda sa obávajú že niečo nie je v poriadku. Zdá sa že cieľom konštruktérov týchto zdrojov  bolo eliminovať vznikajúce úbytky napätia na prívodnom kábli k počítaču. Pri odbere počítača 0.65÷0.8A na prívodnom kábli vzniká úbytok cca 75mV, teda v prípade zdroja 5.2V potom priamo na konektore zapnutého počítača dostávame bezpečných 5.125V. Prečo bezpečných ? Nuž preto lebo povolený rozsah napájania je v rozmedzí 4.75V÷5.25V. To aj vysvetľuje, prečo počítač beží bez najmenších problémov na zdrojoch ktoré dodávajú "iba" rovných  5V, ak započítame úbytok napätia na prívodnom kábli na počítač sa potom dostane v prevádzke 4.925V - čo je tak isto v požadovanom rozsahu.

Ak meníme takéto zdroje medzi sebou tak počítaču to neublíži, ale asi musíme počítať s tým že sa nám mierne rozladí nastavenie sýtosti farieb. Pomoc je jednoduchá - otočte počítač "hore nohami" a na jeho spodnej strane je otvor pre nastavenie farieb - je tam miniatúrny potenciometer. Jemne s ním pootočíme a nastavíme si nami požadovaný farebný odtieň. (Pozor treba na to naozaj tenký, plochý šróbovák.)

Už len dodám, pre zvýšenie bezpečnosti si dávam do svojich počítačov priamo na napájací konektor počítača ochrannú 5W Zenerovu diódu na napätie 5.6V zapojenú v nepriepustnom smere. V normálnej prevádzke nie je aktívna a teda je plne pasívna. Ak z nejakého dôvodu vystúpi napätie zdroja na jej hodnotu tak sa ZD "prerazí" a plný prúd zo zdroja potečie cez ňu, vďaka čomu počítač nedostane do seba väčšie napätie. Táto Zenerova dióda sa veľkým prúdom spečie do skratu a teda definitívne ochráni počítač. Samozrejme ak sa takéto niečo stane je potrebné ju vymeniť za novú - je to teda tzv. jednorazová prepäťová poistka. Vlastný zdroj po niečom takom je potrebné dôkladne skontrolovať a zistiť prečo sa niečo také stalo že sa na výstup zdroja dostalo nebezpečne vysoké napätie - rozhodne ho neodporúčam nanovo pripojiť k počítaču dovtedy kým sme nezistili príčinu jeho fatálneho zlyhania a závadu na ňom sme aj odstránili.

___________________________________________________________

Vaše hodnotenie, Rate post:

Atari PROM, Eprom - replacement.

By Administrator at apríla 04, 2024 14:20
Filed Under: Atari

Atari 600XL.

 

Občas chceme vymeniť pôvodný Basic v počítači za novší Altirra Basic, alebo vymieňame pôvodný OS za iný OS (a že je ich hodne ...). Uverejnená tabuľka (na konci článku) má pomôcť s tým ako zapojiť potrebné vývody. Hlavne to platí ak máme v počítači Basic B, ktorý má v sebe jednu zásadnú chybu - pri novom ukladaní Basic programu sa jeho veľkosť vždy predĺži o 16byte. A v neposlednom rade je dobrou voľbou použiť v svojom počítači buď upravené (a niekedy opravené) iné OS. Osobne si síce nemyslím že je potrebné mať k dispozícii 32x OS v počítači, no ale fanatici sa nájdu vždy a všade ... takže - kto chce kam, pomôžme mu tam.


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.

 

A teraz k úvodnému obrázku - ak ste šťastným majiteľom Atari 600XL tak je výmena Basic-u jednoduchšia, stačí priamo nahradiť PROM 2364 pamäťou Eprom 2764, doska je na to pripravená, ale bude potrebné vymeniť 24-pinovú pätičku za novú, 28-pinovú. Ak len vymieňame OS za iný, stačí priamo použiť naprogramovanú Eprom 27128 ako priamu náhradu pôvodného OS.


Motherboard Atari 600XL, horný čip 24 pin - Basic PROM 2364, pod ním je 16kB OS, 28 pin.

Ešte tu stojí za to upozorniť na pripojenie +5V na PBI zbernicu - toto v 800XL nenájdete ...

(Druhý vývod zľava doprava na PBI zbernici - prepojka ide aj na spodnú stranu.)

 

Pozrime sa aj na iné typy:


Atari 800XL - miesta je tu dosť na úpravu a nasadenie pomocnej doštičky,

pájkovaniu sa nevyhnete ... hore PROM 2364, pod ňou je OS.


Atari 800XLF - v podstate je základná doska v tejto oblasti  na 100% identická, zase bez pájkovania sa tu nezaobídete. Rozoznať sa dá len podľa toho že na základnej doske je osadený obvod Freddie ktorý nenájdete v rade Atari 600XL a 800XL.


Rada Atari 800XE, 130XE, 65XE tu je to už s voľným miestom o niečo náročnejšie - priamo nad čipmi  sa vcelku natesno nachádza klávesnica. Osobne som to na týchto strojoch riešil osadením nízkou pätičkou (zase treba vybrať pôvodné čipy) a použil  som tzv. "jednorázové" riešenie - vyhol som potrebné adresné piny ktoré prepínajú obsah a priamo na nich boli pripájkované potrebné odpory. Na snímku hore OS, pod ňou PROM 2364. Tu výmena pôvodného Basic-u je už o poznanie náročnejšia,  pri použití "jednorázovky" Eprom to ale nie je nič zložité, nakoniec ak sa nemýlim naprostá väčšina userov používa Turbo Basic, teda tá vymena Basic-u nie je až tak "žeravá".

 

Atari XE Game System - XEGS, tu je to riešenie nárady najjednoduchšie, treba použiť naprogramovanú Eprom 27256 namiesto pôvodnej PROM. Otázkou je či máte v počítači už pätičku, alebo je to napriamo zapájkované ... miesta na úpravy je tam dosť. Pre zmenu Basicu a OS je potrebné vždy nahradiť  32kB na Eprom /a je možné zmeniť zabudovanú hru/.

 

Pri rade XL sa oplatí použiť pomocnú doštičku na ktorú sa umiestni Eprom ktorá má slúžiť ako náhrada (ak chceme mať k dispozícii viac ako 1x OS, platí aj náhradu Basic-u či už 1:1 alebo 2x Basic). No a keď sa s tým už "prpleme" tak sa oplatí zapojiť Eprom minimálne o dvojnásobnej kapacite a teda môžeme mať v 16kB Eprom napríklad Basic C a tiež Altirra Basic, zmenu prevádzame potom tak že najvyšší bit pripojíme buď k zemi alebo na +5V (potom potrebujeme použiť prepínač s dvomi polohami), tak isto môžeme zapojiž odpor 4k7 na najvyšší adresný bit voči +5V a potom stačí tento bit už len uzemňovať v prípade potreby (tu stačí jednoduchý spínač On/Off). Dtto platí pre OS, kde použitie Eprom 27256 umožňuje prepínať medzi dvomi OS - zase sa identicky prepína voči zemi alebo voči +5V jej najvyšší bit. Pri použití Eprom 27512 prepínaním dvoch najvyšších bitov (poskytne to 4 možné kombinácie) potom môžeme mať k dispozícii 4x OS, toto považujem za dostatočné množstvo dostupný OS pre naozaj všetko možné.

Ten kto to chce použiť sa asi pomocnému kresleniu nevyhne (hlavne pri náhrade PROM 2364), v ostatných prípadoch to je už o kus prehľadnejšie - a aj jednoduchšie.


Poznámka:

V uverejnenom obrázku bola chyba  (Eprom 2764 - pin 26 bol označený ako A13 čo samozrejme u tejto pamäte je nevyužitý pin - teda je nc, chyba je už z obrázku odstránená).

Za chybu z mojej strany sa ospravedlňujem.

 

Veľmi jednoduchý návod ako vyrobiť redukciu 28pin→24pin, teda z pôvodnej PROM 2364 pre Eprom 2764, 27128, 27256 a iné nájdete na tomto odkaze:

https://ist.uwaterloo.ca/~schepers/sockets.html

(Je to tam skutočne pekne popísané a a je to tam aj s názornými, postupnými fotografiami prerábky.)

___________________________________________________________

Vaše hodnotenie, Rate post:

04_2024 Blog, Notes.

By Administrator at apríla 02, 2024 07:54
Filed Under: Blog

02.04.2024

Popis a (možno) malá recenzia nového programátoru USBprog ver.4.01:

USBprog ver 4.01.

_____________________________________________________

03.04.2024

Do pôvodného článku o testeri DRAM som pridal informácie o jednotlivých odberoch DRAM 41256 a DRAM 4164 od rôznych výrobcov:

DRAMduino - tester DRAM 4164(64kx1) - 41256(256kx1). Part5.

_____________________________________________________

04.04.2024

Ako riešiť náhradu PROM 2364 (obsahuje Basic) a ROM s OS v Atari:

Atari PROM, Eprom - replacement.

_____________________________________________________

15.04.2024

Atari zdroje, nekonečné množstvo variácií, nekonečné množstvo otázok a odpovedí:

Napájacie zdroje Atari - 5.2V/DC. Power supply Atari.

_____________________________________________________

19.04.2024

Konečne je dostupné zapojenie Atari Portfolio v lepšom rozlíšení:

ATARI Portfolio schéma, circuit - new.

_____________________________________________________

23.04.2024

V poslednej dobe som si pozrel časopisy Antic a Analog computing - je neuveriteľné ako sa v USA poctivo vyhýbali zmienkam o Turbo Basic-u. Raz darmo, pochádzalo to z Európy ...

___________________________________________________________

27.04.2024

Vždy ma fascinuje ak na fórach niekto položí konkrétnu otázku na niečo, alebo k niečomu a další "prispievatelia" zvrhnú otázku na niečo celkom iné a vďaka tomu potom debata naberie úplne iný smer aký sa vôbec, ale vôbec netýka danej tématiky. Vzdávam hold týmto ničiteľom všetkých debát (aj ich zdatným pomocníkom), svoju tému nenavrhnú, druhému ju zvrhnú.

Aj tak sa dá ...

_____________________________________________________

Vaše hodnotenie, Rate post:

USBprog ver 4.01.

By Administrator at apríla 02, 2024 07:50
Filed Under: SBC8085-NCB85

Ako som už pred časom avizoval autor USBprogramátoru Štefan Kičina pracoval na ďalšej verzii zariadenia a to s vylepšenými vlastnosťami, dnes je to už USBprog verzie 4.01. Zameriam sa na rozdiely, základné veci zostali a teda tie popisovať nebudem, sú už popísané vo verzii 1.00 USBprog.


USBprogramátor verzia 4.01


Základný rozmer zariadenia sa nezmenil, zostalo aj pôvodné pripojenie cez microUSB konektor. Napájanie celého programátoru si aj táto verzia "berie" z USB konektoru /na výrobu potrebných napätí sú v ňom použité DC/DC meniče/ a tak teda netreba žiadne ďalšie napájanie, toto je hodne, hodne sympatické. ja som zase použil pomocnú doštičku pod programátor ktorá priamo podopiera microUSB konektor a teda bráni jeho možnému "vylomeniu", predsa len som radšej pri používaní opatrný. Zmenilo sa farebné označenie niektorých použitých LED diód, ale to samozrejme na funkčnosť nemá žiaden vplyv. Ak by nebola zmena vo farbe použitých LED tak sa podľa vrchnej strany ani nedá poznať že máme pred sebou novú verziu zariadenia.


Spodná strana - programátor USBprog verzia 4.01


Ak sa pozrieme na stranu súčiastok tak tu je vidieť že tých súčiastok je tu naozaj hodne /všetko SMD/ a že ich aj pribudlo, osadenie je naprosto bezchybné. Teraz máme k dispozícii automatické nastavovanie potrebného napaľovacieho napätia priamo programom /teda už ho netreba ručne nastavovať .../, toto je veľmi príjemná zmena, hlavne pre menej skúsených userov zariadenia. Procesor ATMEL 324 /beží na 16MHz/ teraz zvláda aj prepínanie medzi typmi EPROM 2716 a 2732 - teraz už netreba použiť pomocný socket pri programovaní obvodu 2732, zase je to vo výsledku jednoduchšie pri použití - za tieto pridané vlastnosti palec nahor !

 

Časy programovania Eprom 2716 a Eprom 2732 sú fakticky totožné s prvou verziou programátoru, takže ich tu neuvádzam, hlavne je to dané dĺžkou programovacieho pulzu, pri 50ms pulze trvá napálenie naozaj dlhšie ako keď je použitý 10ms pulz /týka sa niektorých Eprom/.

 

Teraz sa pozriem na tabuľku výberu možných obvodov na programovanie:

 

V programe pribudla ešte jedna vec - a to že na konci súborovej tabuľky sa vypíše CRC32 /kontrolný súčet/ - za toto zase palec nahor ! Uvedené typy Eprom z tabuľky veľmi často používajú dodnes počítačoví 8-bit nadšenci a moderné programátory to vo svojom portfóliu už viac-menej ignorujú - a to už dlhú dobu. Extra zmienim možnosť programovať "trojnapäťovú" Eprom 2708 a je tu aj 2532 - toto síce potrebuje malá skupinka, ale bez programátoru to akosi nejde, že ...

 

Ak sa nastavíte na konkrétny typ Eprom tak sa vypíše jej programovacie napätie a tak isto aj dĺžka  programovacieho pulzu.

 

Nasleduje programovanie PROM, všetky 3 typy sú tie isté ako v prvej verzii, pre programovanie je potrebné použiť rovnakú nadstavbu /redukciu/ ako predtým. Pri nastavení konkrétnej PROM nás program vyzve na založenie redukcie /robí vždy ak je redukcia potrebná/.

 

Dtto platí aj pre programovanie mikroprocesorov  8748 a 8749, zase treba použiť prípravok /redukciu - je rovnaká ako v prvej verzii/.


Poslednou pridanou funkciou tejto verzie programu je programovanie GAL obvodov. Tu je tak isto potrebné použiť prípravok /redukciu/ navyše. Zase je automaticky nastavené potrebné PGM napätie, v tomto prípade cez PWM moduláciu. Zase sa jedná o vec kde si nové programátory s niektorými konkrétnymi GAL obvodmi už nevedia "poradiť".


 

Programové vybavenie veľkostne výrazne "nabobtnalo", to je ale naprosto v poriadku, programátor poskytuje na displeji skutočne hodne dodatočných informácií a tak uľahčuje našu prácu pri jeho používaní. Je to stále malé, ľahké, vie toho výrazne viac a hlavne pracuje zo súčiastkami s ktorými už nové programátory vôbec nepočítajú a teda nemajú v ich svojom zozname podporovaných obvodov, alebo majú výrazne menší rozsah použitých typov s ktorými ešte ako-tak spolupracujú.

 

USBprog ver. 4.01 je malý šikovný pomocník ktorý mimo iného môže byť vhodným doplnkom pre niekoho kto má doma napríklad TL866(II) a nevie pracovať zo súčiastkami ktoré moderný programátor už jednoducho nemá k dispozícii.  


Ja už len dodám že tento programátor /a aj dodatočné redukcie/ s novým programovým vybavením autor zariadenia práve ponúka na predaj na stránkach bazos.sk, autor k zariadeniu  posiela mailom kompletné programové vybavenie, podrobný manuál + bootloader pre nový firmware.


/Popis redukcií pre PROM, mikroprocesory 8748 a 8749 bol popísaný pri popise USBprog verzie 1.00./

Odkazy na články o USBprog verzia 1.0:

USBprog - Part12. Čítanie (read) procesorov 8048 + 8049.

USBprog - Part11. Bipolárne PROM - zapojenie vývodov.

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

USBprog - Part9. HW patch for shield for 8748H-8749H.

USBprog - programmer. Part8. Obsahy-contents 8048,8049,8748,8749.

USBprog - Eprom + Prom programmer. Part7. Shield for 74188,74S287,74S571.

USBprog - Eprom + Prom programmer. Part6. Shield for 8748-8749.

USBprog - Eprom + Prom programmer. Part5. Eprom 2732B ... pffffffff ...

USBprog - Eprom + Prom programmer. Part4. Prepínač Vpp. Vpp selector.

USBprog - Eprom+ Prom programmer. Tabuľka Eprom pamätí. Part3.

USBprog - Eprom+ Prom programmer. Shield 2732. Part2.

USBprog - Eprom + Prom programmer. Part1.

______________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 59 - spravodaj AKPraha ZO 602 4_91.

By Administrator at marca 27, 2024 08:00
Filed Under: Atari

 Spravodaj AKPraha ZO 602 4_91.

 

Počet strán:16

AKPraha 602 4_91.pdf (3,75 mb)

 

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 58 - spravodaj AKPraha ZO 602 3_91.

By Administrator at marca 24, 2024 12:00
Filed Under: Atari

 Spravodaj AKPraha ZO 602 3_91.

 

Počet strán:16

AKPraha 602 3_91.pdf (3,90 mb)

 

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 57 - spravodaj AKPraha ZO 602 2_91.

By Administrator at marca 22, 2024 10:15
Filed Under: Atari

 Spravodaj AKPraha ZO 602 2_91.

 

Počet strán:16

AKPraha 602 2_91.pdf (4,23 mb)

 

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 56 - spravodaj AKPraha ZO 602 1_91.

By Administrator at marca 19, 2024 08:45
Filed Under: Atari

 Spravodaj AKPraha ZO 602 1_91.

 

Počet strán:16

AKPraha 602 1_91.pdf (3,80 mb)

 

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 55 - spravodaj AKPraha ZO 602 4_90.

By Administrator at marca 16, 2024 06:40
Filed Under: Atari

 Spravodaj AKPraha ZO 602 4_90.

 

Počet strán:16

AKPraha 602 4_90.pdf (3,90 mb)

 

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 54 - spravodaj AKPraha ZO 602 3_90.

By Administrator at marca 14, 2024 08:00
Filed Under: Atari

 Spravodaj AKPraha ZO 602 3_90.

 

Počet strán:16

AKPraha 602 3_90.pdf (4,04 mb)

 

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 53 - spravodaj AKPraha ZO 602 2_90.

By Administrator at marca 12, 2024 10:26
Filed Under: Atari

 Spravodaj AKPraha ZO 602 2_90.

 

Počet strán:16

AKPraha 602 2_90.pdf (3,87 mb)

 

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 52 - spravodaj AKPraha ZO 602 1_90.

By Administrator at marca 10, 2024 09:38
Filed Under: Atari

 Spravodaj AKPraha ZO 602 1_90.

 

 

Počet strán:16

AKPraha 602 1_90.pdf (3,70 mb)

 

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 51 - spravodaj AKPraha ZO 602 4_89.

By Administrator at marca 09, 2024 13:55
Filed Under: Atari

 Spravodaj AKPraha ZO 602 4_89.

 

Počet strán:16

AKPraha 602 4_89.pdf (3,38 mb)

 

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 50 - spravodaj AKPraha ZO 602 3_89.

By Administrator at marca 08, 2024 10:20
Filed Under: Atari

 Spravodaj AKPraha ZO 602 3_89.

 

 

Počet strán:16

AKPraha 602 3_89.pdf (3,72 mb)

 

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 49 - spravodaj AKPraha ZO 602 2_89.

By Administrator at marca 06, 2024 06:14
Filed Under: Atari

Spravodaj AKPraha ZO 602 2_89.

 

Počet strán: 16

 

AKPraha 602 2_89.pdf (4,49 mb)


Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 48 - spravodaj AKPraha ZO 602 1_89.

By Administrator at marca 03, 2024 06:41
Filed Under: Atari

V Prahe vzniklo Atari klubov niekoľko, jeden bol aj v 602.ZO Zväzarmu. Tam si musel tvrde vybojovať svoje miesto a podarilo sa mu tam tak isto vydávať svoj časopis - i keď rozsahom to bol skôr bulletin. Tak poďme na to:

 

 Spravodaj AKPraha ZO 602 1_89.

Počet strán:16

 

AKPraha 602 1_89.pdf (4,20 mb)

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

03_2024 Blog, Notes.

By Administrator at marca 01, 2024 17:02
Filed Under: Blog

01.03.2024

Pekný materiál o počítačoch Atari pozbieraný z časopisu Byte:

Magazine Byte - Atari.

(Je to link na priame stiahnutie pdf súboru.)

_____________________________________________________

03.03.2024

Pražský  Atari klub 602 ZO:

Igiho knižnica 48 - spravodaj AKPraha ZO 602 1_89.

_____________________________________________________

06.03.2024

Pražský  Atari klub 602 ZO:

Igiho knižnica 49 - spravodaj AKPraha ZO 602 2_89.

_____________________________________________________

08.03.2024

Pražský  Atari klub 602 ZO:

Igiho knižnica 50 - spravodaj AKPraha ZO 602 3_89.

_____________________________________________________

09.03.2024

Pražský Atari klub 602 ZO:

Igiho knižnica 51 - spravodaj AKPraha ZO 602 4_89.

_____________________________________________________

10.03.2024

Pražský Atari klub 602 ZO:

Igiho knižnica 52 - spravodaj AKPraha ZO 602 1_90.

_____________________________________________________

12.03.2024

Pražský Atari klub 602 ZO:

Igiho knižnica 53 - spravodaj AKPraha ZO 602 2_90.

_____________________________________________________

14.03.2024

Pražský Atari klub 602 ZO:

Igiho knižnica 54 - spravodaj AKPraha ZO 602 3_90.

_____________________________________________________

16.03.2024

Pražský Atari klub 602 ZO:

Igiho knižnica 55 - spravodaj AKPraha ZO 602 4_90.

_____________________________________________________

19.03.2024

Pražský Atari klub 602 ZO:

Igiho knižnica 56 - spravodaj AKPraha ZO 602 1_91.

_____________________________________________________

22.03.2024

Pražský Atari klub 602 ZO:

Igiho knižnica 57 - spravodaj AKPraha ZO 602 2_91.

_____________________________________________________

24.03.2024

Pražský Atari klub 602 ZO:

Igiho knižnica 58 - spravodaj AKPraha ZO 602 3_91.

_____________________________________________________

27.03.2024

Pražský Atari klub 602 ZO:

Igiho knižnica 59 - spravodaj AKPraha ZO 602 4_91.

Tak si myslím že na tento mesiac je vystarané ...

_____________________________________________________

Vaše hodnotenie, Rate post:

Magazine Byte - Atari.

By Administrator at marca 01, 2024 16:53
Filed Under: Atari

User savetz na atariage pre časom urobil "výcuc" článkov časopisu Byte kde sa písalo o Atari, celý materiál mám pekných 729 strán, je to naozaj príjemné čítanie. Materiál je uložený na archive.org.

 

 

Odkaz na priame stiahnutie pdf-ka:

Atari-Byte articles

(súbor má 203.4Mbyte ...)


Takže ešte raz - príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 47 - Atari Turbo Basic príručka - Hodonín 1989.

By Administrator at februára 29, 2024 07:00
Filed Under: Atari

Príručka pre najznámejší a najpopulárnejší Basic na malom Atari - Atari Turbo Basic.

Pre jednotlivé príkazy sú uvedené aj príklady použitia čo bola (a je) jedna z najžiadanejších vecí.


Počet strán: 86

 

Atari Turbo Basic Hodonín.pdf (9,09 mb)

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

Easy Copy OS + Copy Basic to binary files.

By Administrator at februára 26, 2024 09:51
Filed Under: Atari

Existuje na webe program COPYOS ktorý je v strojáku, vyhodí potrebný súbor, ale je s pridanou hlavičkou 6byte ktorú treba odstrániť. Mám tu jednoduchý program napísaný v Basicu ktorý urobí to isté, ale výstupný  súbor už nemá dĺžku 16390 byte ale priamo nám potrebných 16384 byte.

Niekedy si chceme odložiť aj samotný obsah Basic ROM a chceme vedieť ktorú verziu Basicu (A, B alebo C?) máme v našom počítači.

Toto ocenia useri, ktorí akosi nemajú potrebné skúsenosti na to ako tú hlavičku odstrániť - pre nich je určený tento článok ako sa dostať k potrebným súborom čo najjednoduchšie. Takto priamo dostaneme potrebné binárne súbory ktoré sú určené priamo na napálenie do Eprom pamätí.

 

Pre OSIMG.ROM sa jedná o pamäť Eprom 27128, tu je priama výmena možná. Pre BASICIMG.ROM sa jedná o pamäť Eprom 2764 - tu je to potom o niečo zložitejšie na nasadenie, pretože je to pamäť s 28 nožičkami, kdežto ROM Basic má nožičiek iba 24, tu je to už potom na niekom kto sa v tom naozaj vyzná. Niektoré programátory vyžadujú koncovky vytvorených súborov ako *.BIN, v tom prípade v riadkoch 10 a 80 nahraďte koncovky NAME.ROM za NAME.BIN

 

Listing Basic programu:

 

4 GRAPHICS 0
5 POKE 559,0
6 ? "OSIMG"
10 OPEN #1,8,0,"D1:OSIMG.ROM":REM OS=16384 BYTES
20 POKE 54017,125
30 A=12*4096:L=4095:GOSUB 130
40 A=5*4096:L=2047:GOSUB 130
50 A=13*4096+2048:L=8192+2047:GOSUB 130
60 CLOSE #1:POKE 54017,253
70 ? "BASICIMG"
71 R=PEEK(43234)
72 ? "BASIC ver.";
73 IF R=162 THEN ? "A"
74 IF R=96 THEN ? "B"
75 IF R=234 THEN ? "C"
80 OPEN #1,8,0,"D1:BASICIMG.ROM":REM BASIC=8192 BYTES
90 A=10*4096:L=8192-1:GOSUB 130
100 POKE 559,34
110 ? :? "END":END
120 POKE 559,34:? :? "END":END
130 FOR D=A TO A+L:PUT #1,PEEK(D):NEXT D
140 RETURN

 

Stačí nabootovať z diskety napr. DOS 2.5 a skočiť do Basicu v počítači, jedná sa o krátky Basic program, ktorý sa dá ľahko "nadlapať" priamo z klávesnice. Zase len upozornenie pre menej znalých - nepoužite Turbo Basic !

Čo dodať k samotnému programu ?

 

- autorom prvej časti programu je rybags (+1050), známy na fóre atariage

- program som mierne upravil a pridal zistenie verzie programovej verzie Basic v počítači a tiež zápis obsahu Basic ROM do ďalšieho súboru, tak isto som pridal možnosť o niečo urýchliť samotné spracovanie súborov

- výhodou sú priame veľkosti bináriek OS a Basicu, samozrejme názvy výsledných súborov si môžete zvoliť vlastné

- nevýhoda (jedna), je to pomalé, ak zmažeme riadky 5 a 100 tak síce pôjde trvalé zobrazenie na displeji, ale zápis obidvoch súborov potrvá 4min a 35sec ...

- ak riadky 5 a 100 ponecháme získame rýchlosť navyše (viac ako o 30%), ale na displeji nič nebude, údaje sa objavia až po skončení programu, potom to celé zbehne za 3min a 40sec, čiže samotný program sa urýchli o 55sec.

- ak nepožadujem zápis súboru pre Basic tak vymažte riadky 70, 80 a 90, logicky sa výsledok dostaví o 1/3 rýchlejšie, stále sa pritom zobrazí inštalovaná Basic verzia, ale ukladáte iba samotný operačný systém

- dtto, ako v predchádzajúcom odstavci, ale nechceme údaje o verzii Basic - zmažte všetky riadky v rozsahu 70÷90, ukladáte iba samotný operačný systém

 

Nuž ak potrebujete výpis OS a obsah PROM Basic - spustite uvedený program, urobte si medzitým kávu a keď si ju prinesiete tak budete mať k dispozícii výsledok. Je to jednoduché, síce pomalé, ale k výsledku sa doberiete priamo a to bez nejakých ďalších potrebných úprav. Nakoniec - toto naozaj netreba robiť každý deň ...Tongue out

___________________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 46 - ZAK Praha 1989_06.

By Administrator at februára 25, 2024 08:00
Filed Under: Atari

Nasleduje Zpravodaj Atari klubu Praha, 1989/06, týmto je ročník ZAK Praha 1989 konečne uzatvorený.

 

 

Rozsah - 72 strán.

 

Z obsahu: Ponuka SYKO, nová verzia MYDOS 4.50, rozšírenie SYNFILE+, premiéra SPARTA DOS X, Tipy a triky, užívateľské programy, kútik techniky - pripojenie zapisovača Sharp, Alfiggraf.

 

ZAK Praha 1989_06.pdf (13,60 mb)

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

02_2024 Blog, Notes.

By Administrator at februára 23, 2024 16:18
Filed Under: Blog

23.02.2024

Po 2 rokoch konečne pridaný ďalší materiál do Igiho knižnice ... Zpravodaj AKPraha 1989/05.

Igiho knižnica 45 - ZAK Praha 1989_05.

__________________________________________________________

25.02.2024

Zpravodaj AKPraha 1989/06. Toto číslo uzatvára rok 1989 pre ZAKPraha.

Igiho knižnica 46 - ZAK Praha 1989_06.

____________________________________________________

26.02.2024

Veľmi jednoduchý Basic program pre uloženie obsahu Atari OS a Basic PROM priamo do binárnych súborov:

Easy Copy OS + Copy Basic to binary files.

____________________________________________________

29.04.2024

Tak mám niečo aj k tomuto dátumu do mojej knižnice:

Igiho knižnica 47 - Atari Turbo Basic príručka - Hodonín 1989.

____________________________________________________

Vaše hodnotenie, Rate post:

Igiho knižnica 45 - ZAK Praha 1989_05.

By Administrator at februára 23, 2024 16:05
Filed Under: Atari

Po dlhom, dlhom čase pokračujem v Igiho knižnici, dnes je to Zpravodaj Atari klubu Praha 1989/05.


Rozsah - 48 strán.

 

Z obsahu:

Mimo obligátneho Sväzarmu nasleduje ponuka SYKO, Tipy a triky, Užívateľské programy, Kútik techniky - pripojenie BT100.

ZAK Praha 1989_05.pdf (9,82 mb)

 

Príjemné čítanie !

___________________________________________________________

Vaše hodnotenie, Rate post:

PBI PROM externý dekodér D5xxh - !CCTL. Atari 800XL.

By Administrator at januára 14, 2024 17:15
Filed Under: Atari

Už som písal o externom dekódovaní adresy D5xx (!CCTL) a obvod 8255A pre počítač Atari 800XL, tam boli potrebné 2 čipy a ešte bolo potrebné použiť obvod 74LS00 pre správne dekódovanie signálov Read a Write pre čip 8255A, teda nakoniec boli potrebné až 3 čipy. Dnešné riešenie ktoré som urobil vystačí iba s 2 čipmi (presnejšie 1 a 1/2 čipu) a to s PROM pamäťou 74S287 a ešte treba použiť 1/2 obvodu 74LS139, potom sa to už dá priamo pripojiť na čip 8255A, teda už máme k dispozícii kompletne všetko potrebné. Je zvolené externé napájanie 5V (ráta sa s ním aj pre napájanie 8255A a tiež ďalších obvodov). Nevyužitá druhá polovica čipu 74LS139 sa dá použiť na nejakú ďalšiu potrebnú adresáciu v budúcnosti.

 

Externý dekodér s MMU (PROM 74S287) pre Atari 800XL.

1/2 obvodu 74LS139 nahradzuje veľmi známe zapojenie 3 hradiel

74LS00 pre úpravu signálu RD a WR pre prácu s obvodom 8255A.


Pamäť PROM 74S287 tu slúži ako MMU (Memory Management Unit) a umožňuje použiť jej 4 výstupy pre potrebný výstupný adresný priestor. "Klasika" je zapojená na adresu D5xx - jumper je prepojený práve na túto adresáciu, dekódovanie prebieha v krokoch po 256byte. Zapojenie umožňuje použiť naraz len jednu adresáciu - ak v zapojení použijeme samostatne 4x odpory 4k7 pre jednotlivé výstupy B0÷B3 tak môžeme adresovať všetky 4 výstupy - teda ak na to máme pripravené potrebné periférie (osobne to ale nepotrebujem, moje potreby sú predsa len skromnejšie), obsah MMU som aj na toto riešenie už pripravil a obsahuje potrebné dekódovanie adries v požadovanom rozsahu.


Využitie všetkých 4 výstupov.

 

Dostupná adresácia tejto MMU:


D100h
÷D1FFh
D500h
÷D5FFh  /!CCTL
D600h
÷D6FFh
D700h
÷D7FFh

 

Na nasledovnom obrázku je obsah PROM 74S287:

 

 

Nasleduje binárka pre napálenie obsahu do PROM pamäte:

74S287_decoder_burner_atari.bin (256,00 bytes)

 

Nevýhody uvedeného riešenia sú dve:

- treba zohnať prázdnu PROM 74S287

- zohnať niekoho kto má programátor na uvedenú PROM-ku aby tam potrebný obsah naprogramoval

 

Nuž - obidve riešenia, teda aj popísané v minulom článku fungujú (to prvé ešte s dodatočným ďalším čipom) a teda interface sa dá postaviť podľa toho čo máme k dispozícii. Použitie obvodu s označením 8255A považujem za samozrejmosť, čip 8255 bez prípony A nemá dostatočnú rýchlosť vybavovania.

 

Tu len dodatok - rozsah D100÷D1FFh používa Atari 1090, ale to asi v našich končinách nie je rozšírené, takže toto by nás nemalo pri našom použití nejako zásadne obmedziť. Dtto sa týka D600÷D6FFh a D700÷D7FFh. Použitie adresácií D6xx a D7xx aj s ich možnými obmedzeniami pri využívaní bolo už popísané v predchádzajúcom článku.

___________________________________________________________

Konektor paralelnej zbernice, 50 pinový samec na strane počítača (rada Atari XL):


Pohľad zo zadnej strany počítača.


Paralelný bus konektor Atari 800XL.

_____________________________________________________

Dodatok:

Uvedené zapojenie samozrejme priamo funguje aj na Atari 600XL.

(Na Atari 600XL je na PBI zbernici priamo vyvedené aj napájanie 5V.)

_____________________________________________________

Vaše hodnotenie, Rate post:

01_2024 Blog, Notes.

By Administrator at januára 08, 2024 11:00
Filed Under: Blog

08.01.2024

Dnes som si neviem prečo spomenul na jednu moju príhodu ktorá sa udiala tesne pred Vianocami 1992, čiže nejaký ten liter borovičky odvtedy na Slovensku pretiekol mezi našim národom - a to od východu po západ (ak sú sviatky tak to tečie opačným smerom).Smile

Poberal som sa k švagrovi a švagrinej, polovička tam už bola na návšteve aj s našimi chlapcami niekoľko dní..

Cestou skutočne poriadne snežilo a keď som prišiel na pumpu v Galante (čas okolo 16.30, čiže vonku tma ako v pytli) výpadovka smer NZ (teraz je tam za ňou kúsok obrovitý kruháč), tak som zastavil a išiel som očistiť stierače a celé predné sklo, pretože to na ceste už robilo poctivých 15cm snehu. To najdôležitejšie som ale nepovedal, bola to Škoda 105, zadné svetlá ála žehlička. Bolo to vtedy moje prvé auto, ale samozrejme už malo niečo za sebou a nebol som prvým majiteľom.

Auto som nechal naštartované, kúrenie pustené, kľúčik v zapaľovaní, vyšiel som von iba vo svetri, zhrnúť ten sneh z okna som videl na minútku. Toto sa podarilo, prišiel som ku dverám, potiahol som kľučku - a tá mi zostala v rukách, dvere boli pevne zatvorené, zablokovali sa.

Auto v pohodičke, akurát ja stojím vonku pretože sa neviem dostať dovnútra, druhé bočné predné dvere zamknuté, situácia čo nevymyslíš. Ručná baterka a klieštiky vovnútri auta, na bok auta nebolo vôbec vidno, čiže tadiaľto cesta zarúbaná. Tak som tam chvíľu stál, tých možností naozaj veľa nebolo a tak som vošiel na pumpu a požiadal či tam niekto nemá k dispozícii hrubší tak 20cm dlhý drát. Síce v Galante po slovensky vedia ale vtedy som si pripadal že asi hovorím po čínsky pretože ma tam všetci totálne odignorovali - a to aj keď som ich niekoľkokrát slušne požiadal o pomoc.

A tak som sa vrátil k autu ktoré stálo tak 20 metrov od pumpy, v jej odbočke. Po niekoľkých minútach ma napadlo že na kraji prístupovej cesty by som niečo také na zemi asi mohol nájsť - a to aj sám, len treba pohľadať. Ľahko sa povie, ťažšie sa to prevedie, všade ležalo spomínaných 15cm snehu ...

Ako sa hovorí topiaci sa aj slamky chytá, kľakol som si a začal ten sneh prehŕňať. Asi po 10 sekundách som na vytúžený drát v tom snehu narazil - bol síce o niečo dlhší ale to pre moje potreby nevadilo. Vytvaroval som ho a prvýkrát (a aj posledný) v živote som sa vlúpal do auta (vlastného). Neviem ako som v tej tme drát do okna zastrčil ale podarilo sa mi po necelej polminúte vyháčkovať a otvoriť dvere ...

Padol som do sedadla a dal som si desaťminútovú pauzu aby som "strávil" čo sa mi práve stalo, potom som pokračoval do cieľa cesty, odomkol som ale pre istotu všetky dvere, už som nemal chuť zase niekde zamrznúť.

Potom som ešte 70km pokračoval k švagrovi kde sme ešte v ten večer v garáži dostali kľučku na jej miesto a aj sme ju poriadne prichytili.   

Takže ak sa na Vás aj po smole následne rýchlo prilepí šťastena tak to treba využiť, dodnes neviem ako sa mi podarilo na ten drát tak rýchlo natrafiť.

Na druhý deň ráno som znova na dvore u švagra skúšal dvere nanovo vyháčkovať - tušíte správne, už sa mi to nepodarilo, šťastenu som si vybral deň predtým.

A odvtedy ak niekedy idem cez Galantu tak sa dodnes spomínanej pumpe s jej hajzlíkmi vo vtedajšom osadenstve oblúkom vyhýbam, nakoniec stačilo povedať: "Nič také nemáme.", no ale už vtedy bola nová doba ...

Takže síce je po Novom roku. ale každému želám aby niekedy v živote mali poriadne šťastie a to vtedy kedy to najviac treba - nakoniec nie nadarmo sa vraví  že ak sa šťastie unaví sadne aj na v..a (môj prípad).

SmileSmileSmile


_____________________________________________________________

13.01.2024

Nová doba platí aj teraz:

Pri dopravnej nehode stačí odísť domov, netreba volať policajtov, stačí iba zavolať ministrovi vnútra.

A o fúkanie sa tiež netreba starať, vonku predsa fúka dostatočne aj tak.

Odporúča kapitán D....o.

Dodatok 15.01.2024 - srandista, fúkal po 15 hodinách ... a toto nám kandiduje na prezidenta.

_____________________________________________________________

14.01.2024

Riešenie pripojenia čipu 8255A cez PBI pomocou PROM 74S287 v Atari 800XL (Atari 600XL) ktorá v zapojení slúži ako MMU:

PBI PROM externý dekodér D5xxh - !CCTL. Atari 800XL.

(Zapojenie ušetrí jeden čip 74LS00.)

_____________________________________________________________

Vaše hodnotenie, Rate post:

SBC6502 - 70 - PROM 74188 - program ver.1.11.(All In One).

By Administrator at decembra 31, 2023 09:00
Filed Under: SBC6502

SBC6502 s nasadenou doskou programátoru PROM 74188.

 

Ako som spomenul pred pár dňami na Vianoce - záverečnú verziu programu som si nechal aj na Silvestra (mal som teda na prerábku týždeň) - je to program pre programátor PROM 74188 ktorý v sebe integruje verziu 1.10s a priamu voľbu na všetky typy doteraz použitých x-talov. Na začiatku sa zvolí hodnota clocku ktorý používa Váš konkrétny SBC6502 - ďalej sa už pokračuje známym obsahom, toto je základný rozdiel oproti verzii 1.10 (taktiež v.1.10N a v.1.10S) Jednoducho mi nedalo aby som neskúsil dostať všetko priamo do jedného programu. Snažil som sa o čo najmenej potrebných zmien, tak aby zostalo všetko tak ako doteraz. Boli prevedené len kozmetické úpravy vzhľadu samotného menu.

Výhoda tejto verzie ? - stačí mať teraz iba jeden program pre 10 rozličných možných nasadených x-talov v SBC6502.

 

Úvodná obrazovka voľby hodnoty clocku SBC6502.


Rozšírené menu po spustení o položku (A).

(Zvolený x-tal 4.9152MHz.)


Pracovné menu, hodnota nastaveného clocku sa zobrazuje v záhlaví.

 

Zmeny:

 

Výpis dĺžky PGM pulzu v základnom menu sa zjednodušil, je použitá skrátená verzia (r1= round no.1, r2= round no.2).

 

Nový príkaz v menu:

V základnom menu pribudol príkaz (A)djust kde môžeme aj počas chodu programu meniť hodnotu použitého x-talu. Pozor, ak zmenu použijeme počas chodu programu tak sa vždy nastavia základné parametre pre PGM pulz na prednastavené hodnoty - a to pre 1.kolo=10msec pulz a pre 2.kolo=20msec pulz, pomocou príkazu (P) zase môžeme zmeniť a nastaviť nám vyhovujúce hodnoty dĺžky PGM pulzu ktoré potom následne budú platiť počas chodu programu až do jeho nového štartu (alebo následnej zmeny základného clocku).

 

Nevýhodou uvedeného riešenia je to že treba pri štarte tejto verzie programu vždy zvoliť správnu hodnotu použitého x-talu v SBC6502.

 

Verzia programu 1.11 (All in One):

74188 programmer_v111AiO.txt (14,12 kb)

____________________


Výpis programu ver.1.11 AiO:

 1000 CLEAR:POKE 15,80:PD=32500:PE=PD+32:DV=5:NS=1
 1004 B$="0123456789ABCDEF":R$="31.12.2023,x-tal = "
 1005 E$="- Best 74188 PROM programmer,Igi(c)":N$=" BLANK PROM !"
 1006 F$="76543210 fy: 76543210":G$="te:  bit:   ri    bit:"
 1007 M$="msec":K$=" DATA":J$="by   DATA   Ve    PROM"
 1008 Q$="2023_ver.1.11 (All in One)":S$=" + generate DATA rows"
 1009 X$="-->  ":W$="|               |":Z$=" --------"
 1010 PA=32768:PB=PA+1:PC=PA+2:CWR=PA+3:POKE CWR,137
 1015 ?CHR$(12):?SPC(24)"Special edition v.1.11 - AiO"
 1020 ?:?SPC(27)"No PROM in ZIF socket!":?
 1022 GOSUB 2600:?"(0) - 1.8432MHz":GOSUB 2600:?"(1) - 2.0000MHz"
 1026 GOSUB 2600:?"(2) - 2.4576MHz":GOSUB 2600:?"(3) - 2.5000MHz"
 1028 GOSUB 2600:?"(4) - 3.6864MHz":GOSUB 2600:?"(5) - 4.0000MHz"
 1030 GOSUB 2600:?"(6) - 4.5000MHz":GOSUB 2600:?"(7) - 4.9152MHz"
 1032 GOSUB 2600:?"(8) - 5.0000MHz":GOSUB 2600:?"(9) - 6.0000MHz"
 1034 GOSUB 2600:?"(Q)uit program"
 1036 ?:GOSUB 2600:?"Your SBC clock:";:INPUT V$
 1040 IF V$="0" THEN U=1:DV=2.25:U$="1.8432MHz"
 1041 IF V$="1" THEN U=1.09:DV=2.44:U$="2.0000MHz"
 1042 IF V$="2" THEN U=1.47:DV=3.15:U$="2.4576MHz"
 1043 IF V$="3" THEN U=1.5:DV=3.2:U$="2.5000MHz"
 1044 IF V$="4" THEN U=2.33:DV=4.5:U$="3.6864MHz"
 1045 IF V$="5" THEN U=2.53:DV=5:U$="4.0000MHz"
 1046 IF V$="6" THEN U=2.82:DV=5.6:U$="4.5000MHz"
 1047 IF V$="7" THEN U=3.13:DV=6:U$="4.9152MHz"
 1048 IF V$="8" THEN U=3.18:DV=6.2:U$="5.0000MHz"
 1049 IF V$="9" THEN U=3.8:DV=7.44:U$="6.0000MHz"
 1050 IF V$="0" OR V$="1" OR V$="2" OR V$="3" OR V$="4" THEN 1058
 1052 IF V$="5" OR V$="6" OR V$="7" OR V$="8" OR V$="9" THEN 1058
 1054 IF V$="Q" THEN END
 1056 ?:? SPC(30);:GOSUB 1999:GOSUB 2000:RUN
 1058 LG=2:PP=10*U:BN=0:D=0:B=0:JJ=PP:JW=LG:D$="Default setting for "
 1060 ?CHR$(12);SPC(29)"SBC6502/32kB RAM+8255A"
 1065 ?SPC(22)"Turn ON the power to the programmer !"
 1090 GOSUB 2400:GOSUB 9000:Z=0:X=0:Y=0:E=0:J=0:NS=1:FG=0:JK=0
 1092 OC=0:RP=0:TG=PD+40:IF ID<>32 THEN 8900
 1095 IF BN=1 THEN ?CHR$(12)
 1098 GOSUB 1700:?Z$;E$;Q$;Z$:GOSUB 2995:?SPC(4)R$;U$;:GOSUB 2990
 1100 GOSUB 8781:?" -"SPC(20)"(P)GM pulse r1 ="PP/U;M$;
 1102 ?",r2 ="PP/U*LG;M$;:GOSUB 2990
 1104 GOSUB 2995:?"(A)djust new SBC6502 clock  parameter";:GOSUB 2990
 1106 GOSUB 2995:?"(C)ontent info  "Z$"  "K$" rows";:GOSUB 2990
 1108 GOSUB 2995:?"(D)ec input"K$;S$;:GOSUB 2990
 1110 GOSUB 2995:?"(H)ex input"K$;S$;:GOSUB 2990
 1112 GOSUB 2995:?"(I)nfo datasheet 74188,74S288,82S123,";:GOSUB 2990
 1114 GOSUB 2995:?"SN74188N,DM8223,DM74188A,DM8577,75188";:GOSUB 2990
 1118 GOSUB 2995:?"(R)ead  P R O M ";S$;:GOSUB 2990
 1120 GOSUB 2995:?"(T)est  P R O M "Z$"/is empty ?/";:GOSUB 2990
 1122 GOSUB 2995:?"(V)erification PROM against"K$" rows";:GOSUB 2990
 1124 GOSUB 2995:?"(W)riting "K$" - direct into P R O M";:GOSUB 2990
 1126 GOSUB 2995:?"(S)pecial   r.e.b.u.r.n.i.n.g.   mode";:GOSUB 2990
 1127 GOSUB 2995:?"(Q)uit program";:GOSUB 2990:GOSUB 8781
 1128 GOSUB 2995:?"  "K$" /rows/ file name:";:GOSUB 2990:GOSUB 2995
 1130 ?"   "C$;TAB(78)"-":GOSUB 8776:IF BN=1 THEN ?
 1132 ?SPC(34)"Your choice:";:INPUT A$:BN=1:IF A$="I" THEN 8600
 1134 IF A$="A" THEN 1015
 1136 IF A$="P" THEN D=1:GOSUB 5500:GOTO 1600
 1138 IF A$="C" THEN GOSUB 5500:GOTO 3500
 1140 IF A$="D" THEN GOSUB 5500:GOTO 4300
 1142 IF A$="H" THEN GOSUB 5500:GOTO 4200
 1144 IF A$="R" THEN IG=2:GOSUB 5500:GOTO 5000
 1146 IF A$="T" THEN GOSUB 5500:GOTO 6000
 1148 IF A$="V" THEN E=1:GOTO 8000
 1150 IF A$="W" THEN E=9:GOSUB 5500:GOTO 7000
 1152 IF A$="S" THEN E=9:RP=1:GOSUB 5500:GOTO 1800
 1154 IF A$="Q" THEN GOSUB 5500:END
 1156 GOTO 1090
 1600 PP=JJ:?D$"PGM pulse (round 1)="PP/U;M$
 1602 ?SPC(12)"(range 1-20, stepping 1 "M$")"
 1604 ?SPC(17)"New length pulse,"M$":";:INPUT B:V=1
 1606 IF V>20 OR V<1 THEN GOSUB 1999:GOSUB 2000:GOTO 1604
 1608 IF B=V THEN 1630
 1625 V=V+1:GOTO 1606
 1630 LG=JW:?:?SPC(7)D$"multiplier = x"LG
 1631 ? SPC(17)"(range 1-4, stepping 1)"
 1632 ?SPC(14)" New multiplier (round 2):";:INPUT W
 1635 IF W=1 OR W=2 OR W=3 OR W=4 THEN 1640
 1637 GOSUB 1999:GOSUB 2000:GOTO 1630
 1640 LG=W:?SPC(20)"PGM pulse (round 2):";B*LG;M$
 1645 IF B*LG>20 THEN ?:?"Long PGM pulse - at your own risk ..."
 1650 B=B*U:GOSUB 1700:NS=2:GOSUB 2000:GOTO 1090
 1700 IF B=0 THEN 1730
 1720 PP=B
 1730 RETURN
 1800 ?SPC(22)"Intended for experienced users !":?
 1802 ?SPC(20)"Special mode - here are two options:":?
 1804 ?SPC(11)"New PROM burning after an unsuccessful via the (W)rite"
 1806 ?SPC(14)"command attempt or we want to try reprogramming."
 1807 ?:IF CRC>0 THEN ?SPC(32)"Active Data !":RP=RP+1:GOTO 1810
 1808 ?SPC(32)"No active Data line !"
 1810 O=0:A=0:POKE PB,0:POKE PA,128:GOSUB 2050
 1815 O=128+A:POKE PA,O:OC=OC+PEEK(PC)
 1820 A=A+1:IF A=32 THEN GOTO 1850
 1825 GOTO 1815
 1850 IF OC>0 THEN ?SPC(32)"Active PROM !":RP=RP+1
 1855 IF OC=0 THEN ?SPC(32)"No active PROM !"
 1860 IF RP<3 THEN GOSUB 2400:GOSUB 1900:GOSUB 8990:GOTO 1090
 1866 IF RP=3 THEN Z=1:?SPC(31)"I will burn ...":GOSUB 2400:GOTO 7046
 1900 ?:?SPC(26)"PROM burning is cancelled ...":?:RETURN
 1999 ?SPC(3)"Wrong input !":RETURN
 2000 FOR F=0 TO DV*2000*NS:NEXT:RETURN
 2050 FOR F=0 TO DV*20:NEXT:RETURN
 2100 FOR F=0 TO DV*100:NEXT:RETURN
 2300 GOSUB 2500
 2301 ?SPC(18)X$;"No valid"K$" !"SPC(8)"CRC="CRC;:GOSUB 2990
 2400 POKE PA,0:POKE PB,0:RETURN
 2500 ?" -";:RETURN
 2600 ?SPC(31);:RETURN
 2990 ?TAB(78)"-":RETURN
 2995 ?" -"SPC(20);:RETURN
 3010 ?CHR$(12);:T=0:Q=0:X=0:Y=0:A=0:Y=0:OK=0:ER=0:JK=7
 3015 ?SPC(25)"Igi"CHR$(39)"s byte to bit analyzer:"
 3020 ?SPC(15)J$"   "J$:?SPC(15)G$"   "G$
 3025 ?SPC(18)F$"    "F$:GOSUB 8781
 3055 GOSUB 3200:Q=Q+1:T=T+1:GOSUB 3200:Q=Q+1:IF Q=2 THEN ?:Q=0
 3082 T=T+1:IF T=32 THEN POKE PA,0:GOTO 3100
 3090 GOTO 3055
 3100 IF IG=3 THEN 8210
 3200 POKE PA,128:GOSUB 2050:IF T<10 THEN ?TAB(14)" "T;
 3220 IF T>=10 THEN ?TAB(14)T;
 3230 X=PEEK(PD+T):GOSUB 3400:IF IG=3 THEN 3237
 3237 POKE PA,128+T:U1=PEEK(PC):U2=PEEK(PD+T):X=PEEK(PC)
 3239 ?"  ";:IF U1=U2 THEN ?"=";:OK=OK+1
 3240 IF U1<U2 THEN ?">";
 3242 IF U1>U2 THEN ?"<";
 3250 ?"  ";:GOSUB 3400:RETURN
 3400 Y=128
 3412 A=INT(X/Y):IF A=0 THEN 3416
 3414 ?"1";:X=X-Y:GOTO 3418
 3416 ?"0";
 3418 Y=Y/2:IF INT(Y)=0 THEN 3424
 3422 GOTO 3412
 3424 RETURN
 3500 ?SPC(12)"Name: "C$:I=PD
 3503 ?SPC(12)"CRC :"L"(dec)";:IF L=0 THEN ?"=no active PROM"
 3505 ?:IF L>0 THEN ?
 3506 ?SPC(11)K$;" hex:":?SPC(12)"0000:";:FOR F=PD TO PD+15
 3510 N=PEEK(F):GOSUB 3720:NEXT:?:?SPC(12)"0010:";
 3512 FOR F=PD+16 TO PD+31:N=PEEK(F):GOSUB 3720:NEXT:?:?
 3514 ?SPC(11)K$;" dec:":?SPC(12)"9001"K$;:GOSUB 8970
 3516 ?SPC(12)"9002"K$;:GOSUB 8970:?SPC(12)"9003"K$;:GOSUB 8970
 3520 ?SPC(12)"9004"K$;:GOSUB 8970:GOTO 7046
 3720 L=N AND 15:H=(N-L)/16
 3730 ?MID$(B$,H+1,1)MID$(B$,L+1,1);" ";:RETURN
 4100 RESTORE:L=0:FOR G=PD TO PD+31:READ M:POKE G,M
 4140 L=L+PEEK(G):NEXT:RETURN
 4200 GOSUB 4900:DF=PD:N=0:GOSUB 4290
 4206 L=N AND 15:H=(N-L)/16
 4207 ?" :";MID$(B$,H+1,1)MID$(B$,L+1,1);"     ";:INPUT A$
 4209 IF LEN (A$)<>2 THEN GOSUB 1999:GOTO 4207
 4210 H$=LEFT$(A$,1):L$=RIGHT$(A$,1):QQ=1
 4212 IF QQ=17 THEN GOSUB 1999:GOTO 4207
 4213 IF MID$(B$,QQ,1)=H$ THEN QQ=1:GOTO 4217
 4214 QQ=QQ+1:GOTO 4212
 4216 IF QQ=17 THEN GOSUB 1999:GOTO 4207
 4217 IF MID$(B$,QQ,1)=L$ THEN 4225
 4218 QQ=QQ+1:GOTO 4216
 4225 IF H$="F" THEN HI=15:GOTO 4244
 4226 IF H$="E" THEN HI=14:GOTO 4244
 4227 IF H$="D" THEN HI=13:GOTO 4244
 4228 IF H$="C" THEN HI=12:GOTO 4244
 4229 IF H$="B" THEN HI=11:GOTO 4244
 4230 IF H$="A" THEN HI=10:GOTO 4244
 4231 HI=VAL(H$)
 4244 IF L$="F" THEN LO=15:GOTO 4270
 4245 IF L$="E" THEN LO=14:GOTO 4270
 4246 IF L$="D" THEN LO=13:GOTO 4270
 4247 IF L$="C" THEN LO=12:GOTO 4270
 4248 IF L$="B" THEN LO=11:GOTO 4270
 4249 IF L$="A" THEN LO=10:GOTO 4270
 4250 LO=VAL(L$)
 4270 POKE DF,HI*16+LO:N=N+1:DF=DF+1
 4275 IF N=16 THEN GOSUB 4290
 4279 IF DF=PD+32 THEN GOSUB 8700:?:GOTO 8800
 4280 GOTO 4206
 4290 ?"Adress: "K$":":?"(hex)    (hex)":RETURN
 4300 J=PD:S=0:GOSUB 4900:GOSUB 4950
 4303 IF S<10 THEN ?" "S,
 4304 IF S>=10 THEN ?S,
 4306 INPUT Q:IF Q>255 THEN GOSUB 1999:GOTO 4303
 4308 POKE J,Q:J=J+1:S=S+1:IF S=16 THEN GOSUB 4950
 4309 IF J=PD+32 THEN GOSUB 8700:?:GOTO 8800
 4310 GOTO 4303
 4900 ?SPC(20)"<-- name = length max. 40 characters ";X$
 4910 ?SPC(3)"PROM"K$" NAME:";:INPUT C$
 4930 IF LEN (C$)>40 THEN GOSUB 1999:GOTO 4900
 4940 ?:RETURN
 4950 ?"Adress:"SPC(5)K$":":?"(dec)"SPC(8)"(dec)":RETURN
 5000 ?SPC(16)"Read PROM and Write to"K$" rows ";
 5001 CRC=0:R=50:IF IG=2 THEN R=0
 5010 POKE PB,0:O=0:A=0:POKE PA,128:GOSUB 2050
 5035 O=128+A:POKE PA,O:OC=PEEK(PC):POKE PD+A+R,OC:CRC=CRC+OC:A=A+1
 5095 IF A=32 AND IG=1 THEN 3010
 5100 IF A=32 THEN 5120
 5110 GOTO 5035
 5120 IF CRC=0 THEN ?N$:GOTO 5160
 5130 ?" ACTIVE PROM !":GOSUB 2400
 5150 GOSUB 4900:GOSUB 8700:?:GOTO 8800
 5160 GOSUB 2400:NS=1:GOSUB 2000:GOTO 1090
 5500 ?CHR$(12):?"   Your choice - "A$:?:RETURN
 6000 ?SPC(18)"Test - read PROM ";
 6010 O=0:A=0:POKE PB,0:POKE PA,128:GOSUB 2050
 6035 O=128+A:POKE PA,O:OC=PEEK(PC):IF OC=0 THEN 6070
 6060 ?" - Not a"N$:?SPC(26)"Insert"N$
 6065 GOSUB 2400:GOSUB 2000:GOTO 1090
 6070 A=A+1:IF A=32 THEN 6100
 6090 GOTO 6035
 6100 ?" Good,"N$:GOSUB 2400:IF Z=1 THEN 7020
 6110 NS=1.5:GOSUB 2000:GOTO 1090
 7000 ?SPC(30)"Writing to PROM >":?:Z=1
 7010 FOR F=TG TO TG+31:POKE F,122:NEXT:GOTO 6000
 7020 GOSUB 9000:?:?SPC(17)" Name"K$" file: "C$
 7030 GOSUB 9005:?SPC(34)"CRC="CRC:NS=2
 7035 IF CRC=0 THEN ?SPC(29)" No valid"K$" !":GOSUB 2000:GOTO 1090
 7042 IF 32-OK<>0 AND E=1 THEN GOSUB 2000:GOTO 1090
 7046 ?:?SPC(32)"CONTINUE Y/N";:INPUT A$
 7047 IF A$="N" AND RP=3 THEN 1090
 7048 IF A$="N" THEN END
 7051 IF A$<>"Y" THEN GOSUB 1999:GOTO 7042
 7052 IF JK=7 THEN 7056
 7054 IF A$="Y" AND E=9 THEN 7070
 7056 IF A$="Y" AND Z=>0 OR Z<=3 THEN 1090
 7070 O=0:A=0:RESTORE:FOR G=PD TO PD+31:READ M:POKE G,M:NEXT
 7200 POKE PA,128:POKE PB,0:GOSUB 2050:?SPC(29)"Programming bytes ..."
 7204 ?SPC(30)"PGM pulse =";:IF Z=2 AND D=1 THEN ?B/U*LG;:GOTO 7217
 7208 IF Z=1 AND D=0 THEN ?PP/U;:GOTO 7217
 7210 IF Z=1 THEN ?TAB(30)PP/U;:GOTO 7217
 7212 IF Z=2 AND D=0 THEN ?PP/U*LG;
 7217 ?M$:?:?TAB(8);:FOR G=PD TO PD+31:IF A<10 THEN ?" "A;
 7227 IF A>=10 AND A=<15 THEN ?A;
 7229 IF A=15 THEN ?:?:?TAB(8);
 7230 IF A>15 THEN ?A;
 7231 IF Z=2 AND PEEK(TG+G)=0 THEN 7480
 7240 K=PEEK(G):FOR F=PE TO PE+7:POKE F,0:NEXT
 7260 IF K>=128 THEN POKE PE+7,128:K=K-128
 7270 IF K>=64 THEN POKE PE+6,64:K=K-64
 7280 IF K>=32 THEN POKE PE+5,32:K=K-32
 7290 IF K>=16 THEN POKE PE+4,16:K=K-16
 7300 IF K>=8 THEN POKE PE+3,8:K=K-8
 7310 IF K>=4 THEN POKE PE+2,4:K=K-4
 7320 IF K>=2 THEN POKE PE+1,2:K=K-2
 7330 IF K>=1 THEN POKE PE+0,1:K=K-1
 7365 FOR O=0 TO 7:S=PEEK(PE+O):IF S=0 THEN 7480:GOSUB 1700
 7420 PP=JJ:POKE PA,128:GOSUB 2050:IF Z=2 AND D=1 THEN PP=B*LG
 7424 IF Z=2 THEN PP=PP*LG
 7430 POKE PA,A+128:POKE PB,S:POKE PA,A+224
 7450 POKE PA,A+192:FOR F=0 TO PP:NEXT:POKE PA,A+160
 7470 POKE PA,128:GOSUB 2400:GOSUB 2050
 7480 NEXT:A=A+1:GOSUB 2050:NEXT:?:?:A=0:G=0
 7980 ?SPC(23)"End of the round no."Z"of programming";:Z=Z+1
 7990 GOSUB 2400:A=0:O=0:GOSUB 2000
 8000 RESTORE:POKE PA,128:POKE PB,0:GOSUB 2050:A=0:L=0:O=0
 8013 ?CHR$(12):OK=0:ER=0:IF A$="V" THEN X=1
 8014 FOR G=PD TO PD+31:READ M:POKE G,M:Q=PEEK(G):L=L+Q:NEXT:A=0
 8085 FOR G=PD TO PD+31:O=128+A:POKE PA,O:Q=PEEK(PC):R=PEEK(G)
 8100 IF Q=R THEN OK=OK+1:POKE G+40,0:GOTO 8104
 8102 X=1:ER=ER+1
 8104 A=A+1:NEXT:POKE PA,0:OK=0:ER=0:?
 8120 IF Y=1 AND X=1 OR X=1 AND E=1 AND Y=0 THEN 8200
 8122 IF Y=1 AND X=2 THEN 8130
 8125 IF L=0 THEN ?N$:POKE PA,0:GOSUB 2000:GOTO 1090
 8126 IF X=1 THEN 8150
 8127 IF X=1 THEN Y=0:POKE PA,0:GOSUB 2100:X=X+1
 8128 IF X=2 THEN Y=1:POKE PA,0:GOTO 7070
 8130 GOTO 8200
 8150 ?SPC(24)"New attempt to burn round no."Z:POKE PA,0:GOTO 8127
 8200 POKE PA,0:GOSUB 2050:IG=3:GOTO 3010
 8210 ?SPC(27)"Pass="OK"byte, Error="32-OK"byte"
 8211 IF OK=32 AND E=9 THEN 7046
 8212 IF OK=32 AND E=1 THEN 8500
 8214 ?SPC(34)"- bad PROM ...";:GOSUB 2400:GOSUB 2000:GOTO 7042
 8500 ?SPC(32)"- good verifying !";:NS=2.5:GOSUB 2000:GOTO 1090
 8600 GOSUB 5500:?SPC(4)"+------\ /------+"SPC(25)"32x 8bit PROM:"
 8602 ?SPC(4)W$:?" 01-+ Y1"SPC(8)"Vcc +-16";
 8604 ?SPC(17)"74188    74S288    82S123":?SPC(4)"|"SPC(9)"__ __ |"
 8606 ?" 02-+ Y2"SPC(6)"CS/EN +-15"SPC(4)"Vcc:";
 8608 ?SPC(19)"+5V":?SPC(4)W$
 8610 ?" 03-+ Y3"SPC(9)"E  +-14"SPC(4)"Icc:";
 8612 ?SPC(10)"60mA"SPC(5)"70mA"SPC(6)"95mA":?SPC(4)W$
 8614 ?" 04-+ Y4"SPC(9)"D  +-13"SPC(4)"Acces time:";
 8616 ?"  <50ns    <25ns     <20ns":?SPC(4)W$
 8618 ?" 05-+ Y5"SPC(9)"C  +-12"SPC(4)"max.Yout:";
 8620 ?SPC(14)"12.5mA":?SPC(4)W$
 8622 ?" 06-+ Y6"SPC(9)"B  +-11"SPC(4)"PGM pulse:";
 8624 ?SPC(13)"1-20ms":?SPC(4)W$
 8626 ?" 07-+ Y7"SPC(9)"A  +-10";:?SPC(19)"Open Collector Output"
 8627 ?SPC(4)W$
 8628 ?" 08-+ Gnd"SPC(8)"Y8 +-09";"    Russian version: K155RE3"
 8630 ?SPC(4)W$:?SPC(4)"+---------------+":GOTO 7046
 8700 ?:?" Now it's time to start capturing text";:GOSUB 8850
 8702 GOSUB 8990
 8706 ?:?" Rows"K$" generator:":?:I=PD:L=0
 8708 ?"9000 C$=";CHR$(34);C$;CHR$(34);":ID=32:RETURN"
 8710 ?"9001"K$;:GOSUB 8970:?"9002"K$;:GOSUB 8970
 8712 ?"9003"K$;:GOSUB 8970:?"9004"K$;:GOSUB 8970
 8714 FOR G=PD TO PD+31:Q=PEEK(G):L=L+Q:NEXT
 8716 ?"9005 CRC="L":RETURN:REM CRC(dec!)":?:GOTO 8800
 8776 GOSUB 4100:GOSUB 9005:IF L<>CRC THEN 8900
 8777 IF L=0 THEN 8780
 8778 GOSUB 2500:?SPC(18)X$;"Valid"K$" in memory ! CRC="CRC;
 8779 GOSUB 2990:GOTO 8781
 8780 GOSUB 2300
 8781 ?" ";:FOR F=2 TO 78:?"-";:NEXT:GOSUB 2990:RETURN
 8800 ?" Save this"K$" rows in the specified positions"
 8802 ?SPC(8)"and then run the program again !"
 8804 ?:?SPC(8)"You can now stop capture text to"
 8805 ?SPC(11)"the file";:GOSUB 8850:FG=1:GOTO 7046
 8850 ?" in HyperTerminal.":RETURN
 8900 REM ?CHR$(12);
 8901 ?"Problem ...":?"Bad verification result or ID"
 8904 ?SPC(5)"difference in:":?"  computer"SPC(7)K$
 8905 ?SPC(3)K$;SPC(10)"rows":?SPC(4)"CRC:   < >    CRC:"
 8906 ?SPC(4)L;TAB(18)CRC:?SPC(9)"ID ="ID:END
 8970 FOR G=I TO I+6:?PEEK(G)",";:NEXT:?PEEK(I+7):I=I+8:RETURN
 8990 ?" Press C to continue ...";:INPUT A$:IF A$<>"C" THEN 8990
 8992 RETURN
 9000 C$="All DATA bytes =0":ID=32:RETURN
 9001 DATA 0,0,0,0,0,0,0,0
 9002 DATA 0,0,0,0,0,0,0,0
 9003 DATA 0,0,0,0,0,0,0,0
 9004 DATA 0,0,0,0,0,0,0,0
 9005 CRC=0:RETURN:REM CRC in dec form !

____________________________________________________________

 

Záver:

Od uverejnenia prvých programových verzií 1.01 a 1.02 pre PROM7188 programátor práve ubehli 4 roky ± nejaký ten deň (týždeň) navyše, za tú dobu som vydal postupne viacero verzií programového vybavenia. Všetky postupné verzie programového vybavenia boli napísané a aj editované v Notepade, ani raz som pri vytváraní nových verzií nepoužil výpis listingu na tlačiareň, bolo to síce pri tvorbe programu vďaka tomu o niečo náročnejšie, ale je to malý dôvod na hrdosť že som to takto zvládol.

Programovanie programátoru PROM 74188 na SBC6502 bolo pre mňa skutočne zábavou a za tú dobu som sa poriadne precvičil v programovaní - hlavne preto že štandartná príručka (september 1978) pre jazyk OSI 6502 BASIC VERSION 1.0 REV 3.2 COPYRIGHT 1977 BY MICROSOFT CO. má rozsah = celých 18 strán ... (uvedené číslo počtu strán je správne - pričom z toho je prvá strana len nadpis a strana č.2 je úplne čistá, takže reálne sme na čísle 16) a to je všetko čo sa týka programovania. To naozaj nie je veľa a práve preto som vtedy (rok 2019) považoval za výzvu niečo "väčšieho" na tomto SBC naprogramovať.

____________

Je to myslím si že už tak akurát aby som s tvorbou programového vybavenia pre pre programátor PROM 74188  definitívne skončil (pritom všetky vydané verzie dokázali bez problémov naprogramovať PROM 74188, akurát som sa snažil vždy niečo ďalšie v programe vylepšiť) - avizoval som to už viackrát, ale ako vidieť doteraz som úplné ukončenie prác na programovom vybavení akosi stále nedodržal, už to teraz skutočne hodlám napraviť.Smile

Aby bolo jasné - rozhodne netvrdím že by sa stávajúci program nedal ešte vylepšiť, ale smerujem svoje úsilie už do niečoho iného.

____________

Na druhú stranu - naozaj sa nedá povedať že by som počas uvedenej doby nepodporoval programátor PROM 74188 novým programovým vybavením (vydal som celkove 15 verzií, sakrble - na tie 4 roky čo prešli mi to spätne pripadá naozaj dosť ...). Rok 2021 bol rokom najviac vydaných verzií - hľadal som vtedy optimálne riešenie, ale v uvedenom roku som ho nenašiel, bola to tzv. "slepá vývojová cesta" - rozumej = príliš komplikované pri používaní ak sa chceli využiť všetky funkcie (hlavne reburning). Dobré riešenie som objavil až o rok neskôr - následne som potom v ďalších verziách už len doťahoval detaily. Aj tu všeobecne platí že najlepšie je začať používať najnovšie dostupnú verziu programu pretože tá vie toho najviac.

Takže - držím palce pri pálení PROM 74188 !

____________________________________________________________

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.

_____________________________________________________________

Vaše hodnotenie, Rate post:

12_2023 Blog, Notes.

By Administrator at decembra 24, 2023 09:00
Filed Under: Blog

24.12.2023

Vianočná programová verzia pre programátor PROM 74188:

SBC6502 - 69 - PROM 74188 - program ver.10.s(pecial).

____________________________________________________

 

Všetkým čitateľom želám pekné Vianoce a všetko dobré do Nového roku:

 

PF ŠNR 2024 ...

Laughing

_____________________________________________________________

31.12.2023

Záverečná verzia programu pre programátor PROM 74188 (AllInOne) t.j. všetky typy x-talov sú v jednom programe:

SBC6502 - 70 - PROM 74188 - program ver.1.11.(All In One).

_________

"Koncoročná" poznámka:

Ako vidieť vyzerá to tak že som úplne na blog nezanevrel a sem-tam niečo ešte pridávam, rozhodne som zmenšil tempo pridávania článkov, prospieva mi to. Takže je dosť pravdepodobné že ešte nejaké veci pribudnú aj nasledujúci rok ... uvidím. Teraz si určite dám dlhšiu pauzu.

_____________________________________________________________

Vaše hodnotenie, Rate post:

SBC6502 - 69 - PROM 74188 - program ver.10.s(pecial).

By Administrator at decembra 24, 2023 09:00
Filed Under: SBC6502

"Vianočná nádielka 2023" - programová verzia 1.10s(pecial)

pre programátor PROM 74188:


SBC6502 s nasadenou doskou programátoru PROM 74188.

 

Igiho motto:

"Žiaden vytvorený program nie je tak dokonalý aby sa nenašlo niečo vďaka čomu sa program dá ešte vylepšiť alebo upraviť."

(Alebo aj úplne zhovadiť ...)Smile

 

Úvodná obrazovka.

 

Pozrime sa na programovú verziu 1.10s (special):

 

- z menu som odstránil zobrazenie nastavenia hodnôt v premenných ktoré určujú základné nastavenie, nie je to teraz až tak potrebné aby sa trvale zobrazovali

 

- nastavenie novej dĺžky (P)GM pulzu sa presunulo naspäť na začiatok menu, je to takto prehľadnejšie ako v strede menu, proste po čase sa ukazuje že takto to bude najlepšie

 

- verzia 1.10s je vďaka niektorým úpravám vhodné pre tých ktorí radi experimentujú (a pritom sa vôbec nemusia vôbec vŕtať v programovom vybavení)

 

- zásadná zmena nastala pri voľbe (P)GM:

Voľba (P)GM pulzu pre prvé kolo je stále v rozpätí 1÷20msec v kroku po 1msec a pribudla možnosť po nastavení novej dĺžky PGM pulzu meniť násobiteľom dĺžku pulzu pre kolo druhé a to v rozsahu 1÷4x násobku hodnoty ktorá platí pre prvé kolo programovania. S touto zmenou pozor, štandartné nastavenie je teraz 10ms (oproti verzii 1.10n kde to bolo 17msec) pre kolo číslo jedna, teda potom tu platí pre kolo druhé PGM pulz = 20ms. Ak sa nám nepodarí napáliť správne PROM po absolovaní obidvoch kôl programovania tak treba postupovať cez novú voľbu (S)pecial reburning mode, keď si ešte predtým zmeníme cez voľbu (P)GM dĺžku pulzov.


Pracovná obrazovka.

 

V menu pribudla nová položka (S)pecial r.e.b.u.r.n.i.n.g. mode.

(Uvedený mód veľmi zjednodušuje možnosť reprogramovania.)

 

Hodne, hodne dlho som rozmýšľal či túto možnosť vôbec mám zaradiť do menu, ale nakoniec som sa rozhodol reburning nanovo zaradiť do menu, pre určité situácie je skutočne potrebný (a nenahraditeľný).

Špeciálny "reprogramovací" mód slúži na 2 veci:

- v prvom prípade je určený na to aby bolo možné správne naprogramovať PROM, ktorej nestačí 10ms pulz v prvom kole a ani 20ms PGM pulz v kole druhom. Cez voľbu (P)GM nastavíme väčšie hodnoty a môžeme to skúsiť nanovo. Cez voľbu (W)rite nie je možné programovať PROM ktorá má v sebe už napálené nejaké údaje ! (tam sa kontroluje či je na začiatku založená "čistá" PROM, t.j. taká ktorá obsahuje iba samé nuly) - je to možné iba cez tento špeciálny mód.

Ešte pár slov k reprogramovaniu PROM (trebárs ak sa nepodarí správne naprogramovať trebárs jediný bit) - z menu zadajte pre prvé kolo cez (P)GM pulz na 20ms a násobiteľ nastavte na 3, t.j. v druhom kole bude mať PGM pulz dĺžku 60ms - následne stlačte (S)pecial reburning mode, PROM je založená, program skontroluje či sú platné Data v riadkoch 9001 9004 a či je založená PROM s už nejakými napálenými údajmi, ak ani potom nezbehne správne naprogramovanie dajte násobiteľ na 4, teda v druhom kole bude PGM pulz trvať 80msec - toto by už malo poraziť aj slona ... Ak ani potom nepôjde PROM správne naprogramovať - tak ju bezpečne môžete vyhodiť do koša, je jasné že je to totálny nepodarok určený do smetí - ale ešte som ale taký kus čo by nešiel prepáliť a vytrvale by odmietal do seba zapísať správnu hodnotu nenašiel - moja jedna "blbá" PROM potrebovala na zápis jeden jediný zlý bitík použiť 50ms programovací pulz, potom už bolo všetko O.K. (Bola to TESLA produkcia.) Pri cca 55 napálených kusoch to bola u mňa jedna jediná PROM ktorá vyžadovala tento zásah, všetkým ostatným PROM pritom na napálenie stačili 10ms PGM pulzy - a to hneď v kole prvom, teda vôbec neprichádzalo k spusteniu druhého kola PGM pulzu o predĺženej hodnote. 

Pri nastavení prekročenia dĺžky >20msec napaľovacieho PGM pulzu pre druhé kolo sa zobrazí upozorenie že je to nastavenie už iba na Vašu zodpovednosť, pretože je prekročená hodnota uverejnená v datasheete (ak nie je správne napálený obsah v PROM - aj tak inú možnosť ako následne predĺžiť PGM pulz už nemáme ...).


Tu platí - násobiteľ zmeňte z čísla 2 na vyššiu hodnotu len vtedy ak ste si vedomý možných následkov ! (možné zničenie PROM). Ak zadáte číslo 1 tak v druhom kole programovania je dĺžka PGM pulzu identická s kolom prvým (vhodné ak potrebujeme zistiť kedy príde k naprogramovaniu konkrétneho bitu alebo byte). Ako som sám testoval - vo veľkej väčšine prípadov (vyzerá že je to viac ako v 99%) stačí iba 1msec PGM pulz na napálenie bitu do log.1, takže 10msec pulz je celkom dobrá voľba a istí to napálenie správneho obsahu už v kole prvom, v druhom kole máme automaticky 20msec PGM pulz, toto platí pre PROM 74188 pamätí TESLA (iný typ k dispozícii na otestovanie nemám).

- tak isto som urobil aj takú úpravu kedy je možné násobiteľ pre 2.kolo krokovať v rozsahu 1÷4 po krokoch x 0.1, t.j. trebárs 2.7 a pod., na konci článku je uvedené ktoré riadky teba prepísať aby to bolo funkčné s takýmto násobiteľom, ale táto úprava programu nie je vyžadovaná, toto je zase pre tých ktorí radi experimentujú

 

- v druhom prípade ak potrebujeme doprogramovať voľné byte v PROM, alebo potrebujeme upraviť obsah PROM, pozor toto je iba pre niekoho kto tomu rozumie !, zapísané jednotky už nie je možné spätne prepísať do nuly ! Pozor, tieto data musia byť uložené priamo v DATA riadkoch !

Tu v tomto druhom prípade sa kontrolujú 2 veci - či sú aktívne data v Data riadkoch a či je už niečo v PROM napálené, ak sú splnené tieto 2 podmienky tak len vtedy je povolený zápis.

Táto voľba nie je určená pre napaľovanie do čistej PROM, na to slúži iná voľba - a to (W)rite.

Prvý prípad je jasný, tam len len napravujeme chybný obsah, v druhom prípade sa počíta s tým že viete čo robíte a teda sú k dispozícii správne údaje a správna PROM ktorá sa dá svojím obsahom reprogramovať - toto je naozaj určené len pre tých naozaj "skúsených" userov.

 

Aktívne Data - ale iba čistá prázdna PROM = nevhodné na reprogramovanie.


Aktívne Data - PROM už má obsah = vhodné na reprogramovanie.


Poznámka:

Toto riešenie sa javí o poznanie lepšie ako keď som skúšal nasadiť reprogramovanie vo verziách 1.3, 1.4 a 1.5 (v spomínaných verziách to bolo značne nedokonalé a hlavne komplikované pre následné použitie), teraz po čase som našiel riešenie ktoré vyhovuje

 

- do predchádzajúcich verzií 1.09, 1.09p, 1.10 a 1.10n boli spätne aplikované dve úpravy ktoré som otestoval práve pri príprave verzie 1.10s a to nový spôsob testovania povolenej dĺžky PGM pulzu a tiež spôsob testu stlačenia klávesy "C" pri spúšťaní Capture v Hypertermináli (hodil som testovanie do podprogramu, doteraz za istých okolností neprišlo k správnemu vyhodnoteniu stlačenia klávesy, teraz je to v poriadku). Tieto úpravy som taktiež premietol do uvedených verzií dňa 22.09.2023 (jednoducho to bolo tak dobré že som to nasadil aj tam).


- pri (D)ec a aj (H)ex zápise údajov je teraz vždy pekne po 16 byte (dec-10, hexa-0F) nanovo vypísaná hlavička, pretože pri zápise 32 byte už úvodná hlavička nie je v terminálovom okne vidieť, prispieva to k prehľadnost pri zápise údajov


- niektoré premenné v programe ktoré doteraz používali 2 znaky v názve vo verzii 1.10s boli nahradené premennými ktoré majú dĺžku 1 znak (kratší zápis)


- napriek všetkým možným úpravám programu zostáva stále voľných cca 21kB RAM z celkových 32kB RAM / príkaz ? FRE(0)-268/

  (268 je počet byte RAM na konci pamäte ktorá je využívaná programom a aj vyhradené miesto pre stack)

 

- pribudol program pre SBC6502 s x-talom 2.500MHz

 

___________________________________________________________

Nový  videomanuál k verzii 1.10s:

video

Videomanual v.1.10s.zip

(Vo videu nie sú prevedené všetky zmeny vzhľadu vo výpise menu, preto sa to v jeho zobrazení môže mierne líšiť - už som nerobil nové video pretože sa jedná naozaj a skutočne iba o drobné kozmetické úpravy.)

___________________________________________________________

 

 Program - verzia 1.10s je pre x-tal:

1.8432MHz

2.0000MHz

2.4576MHz

2.5000MHz

3.6864MHz

4.0000MHz

4.5000MHz

4.9152MHz

5.0000MHz

6.0000MHz


Vlastné programové vybavenie:

74188 programmer 1_8432MHz_v110s.txt (12,83 kb)

74188 programmer 2_0000MHz_v110s.txt (12,83 kb)

74188 programmer 2_4576MHz_v110s.txt (12,83 kb)

74188 programmer 2_5000MHz_v110s.txt (12,83 kb)

74188 programmer 3_6864MHz_v110s.txt (12,83 kb)

74188 programmer 4_0000MHz_v110s.txt (12,83 kb)

74188 programmer 4_5000MHz_v110s.txt (12,83 kb)

74188 programmer 4_9152MHz_v110s.txt (12,83 kb)

74188 programmer 5_0000MHz_v110s.txt (12,83 kb)

74188 programmer 6_0000MHz_v110s.txt (12,83 kb)

 

___________________________________________________________

Poznámka:

Ak niekto túži mať k dispozícii násobiteľ do druhého kola programovania jemnejšie odstupňovaný (v rozsahu 1.0÷4.0 to bude v kroku po 0.1, napríklad 1, 1.7, 2.2, 3.3 a pod.) tak stačí v programe vymazať riadky 1600÷1730 a dosadiť tam tieto riadky (toto je naozaj určené iba pre fajnšmekrov), platí to pre všetky typy x-talov vo verzii 1.10s:

 

Jemnejšia možnosť odstupňovania násobiteľa pre 2 kolo programovania:

 1600 PP=JJ:?D$"PGM pulse (round 1)="PP/U;M$
 1602 ?SPC(12)"(range 1-20, stepping 1 "M$")"
 1604 ?SPC(17)"New length pulse,"M$":";:INPUT B:V=1
 1606 IF V>20 OR V<1 THEN GOSUB 1999:GOSUB 2000:GOTO 1604
 1608 IF B=V THEN 1630
 1625 V=V+1:GOTO 1606
 1630 LG=JW:?:?SPC(7)D$"multiplier = x"LG
 1631 ? SPC(11)"(range 1.0-4.0, stepping 0.1)"
 1632 ?SPC(14)" New multiplier (round 2):";:INPUT QG:QG=QG*10:W=10
 1635 IF QG>40 OR QG<1 THEN GOSUB 1999:GOSUB 2000:GOTO 1632
 1636 IF QG=W THEN LG=QG/10:GOTO 1640
 1638 W=W+1:GOTO 1635
 1640 ?SPC(20)"PGM pulse (round 2):";B*LG;M$
 1645 IF B*LG>20 THEN ?:?" At your own risk ..."
 1650 B=B*U:GOSUB 1700:NS=2:GOSUB 2000:GOTO 1090
 1700 IF B=0 THEN 1730
 1720 PP=B
 1730 RETURN

(Aby som pravdu povedal, toto jemnejšie odstupňovanie nie je potrebné, ale ak si to chce niekto vyskúšať - prosím, dá sa.)

 

_______________________________________________________________________________

 

Vlastný výpis programu pre x-tal=4.9152MHz:

 

 1000 CLEAR:POKE 15,80:PD=32500:PE=PD+32:U=3.13:DV=6:PP=10*U:LG=2
 1004 B$="0123456789ABCDEF":R$="24.12.2023, x-tal = 4.9152MHz"
 1005 E$="- Best 74188 PROM programmer,Igi(c)":N$=" BLANK PROM !"
 1006 F$="76543210 fy: 76543210":G$="te:  bit:   ri    bit:"
 1007 M$="msec":K$=" DATA":J$="by   DATA   Ve    PROM"
 1008 Q$="2023_ver.1.10special":S$=" + generate DATA rows"
 1009 X$="-->  ":W$="|               |":Z$=" -----------"
 1010 PA=32768:PB=PA+1:PC=PA+2:CWR=PA+3:POKE CWR,137
 1014 BN=0:D=0:B=0:JJ=PP:JW=LG:D$="Default setting for "
 1016 ?CHR$(12);SPC(29)"SBC6502/32kB RAM+8255A"
 1065 ?SPC(22)"Turn ON the power to the programmer !"
 1090 GOSUB 2400:GOSUB 9000:Z=0:X=0:Y=0:E=0:J=0:NS=1:FG=0:JK=0
 1092 OC=0:RP=0:TG=PD+40:IF ID<>32 THEN 8900
 1095 IF BN=1 THEN ?CHR$(12)
 1098 GOSUB 1700:?Z$;E$;Q$;Z$:GOSUB 2995:?SPC(4)R$;:GOSUB 2990
 1100 GOSUB 8781:?" -"SPC(13)"(P)GM pulse length,round 1="PP/U;M$;
 1102 ?",round 2="PP/U*LG;M$;:GOSUB 2990:GOSUB 8781
 1106 GOSUB 2995:?"(C)ontent info "Z$;K$" rows";:GOSUB 2990
 1108 GOSUB 2995:?"(D)ec input"K$;S$;:GOSUB 2990
 1110 GOSUB 2995:?"(H)ex input"K$;S$;:GOSUB 2990
 1112 GOSUB 2995:?"(I)nfo datasheet 74188,74S288,82S123,";:GOSUB 2990
 1114 GOSUB 2995:?"SN74188N,DM8223,DM74188A,DM8577,75188";:GOSUB 2990
 1118 GOSUB 2995:?"(R)ead  P R O M ";S$;:GOSUB 2990
 1120 GOSUB 2995:?"(T)est  P R O M "Z$"/is empty ?/";:GOSUB 2990
 1122 GOSUB 2995:?"(V)erification PROM against"K$" rows";:GOSUB 2990
 1124 GOSUB 2995:?"(W)riting "K$" - direct into P R O M";:GOSUB 2990
 1126 GOSUB 2995:?"(S)pecial   r.e.b.u.r.n.i.n.g.   mode";:GOSUB 2990
 1127 GOSUB 2995:?"(Q)uit program";:GOSUB 2990:GOSUB 8781
 1128 GOSUB 2995:?"  "K$" /rows/ file name:";:GOSUB 2990:GOSUB 2995
 1130 ?"   "C$;TAB(78)"-":GOSUB 8776:IF BN=1 THEN ?
 1132 ?SPC(34)"Your choice:";:INPUT A$:BN=1:IF A$="I" THEN 8600
 1134 IF A$="P" THEN D=1:GOSUB 5500:GOTO 1600
 1136 IF A$="C" THEN GOSUB 5500:GOTO 3500
 1138 IF A$="D" THEN GOSUB 5500:GOTO 4300
 1140 IF A$="H" THEN GOSUB 5500:GOTO 4200
 1142 IF A$="R" THEN IG=2:GOSUB 5500:GOTO 5000
 1144 IF A$="T" THEN GOSUB 5500:GOTO 6000
 1146 IF A$="V" THEN E=1:GOTO 8000
 1148 IF A$="W" THEN E=9:GOSUB 5500:GOTO 7000
 1150 IF A$="S" THEN E=9:RP=1:GOSUB 5500:GOTO 1800
 1152 IF A$="Q" THEN GOSUB 5500:END
 1154 GOTO 1090
 1600 PP=JJ:?D$"PGM pulse (round 1)="PP/U;M$
 1602 ?SPC(12)"(range 1-20, stepping 1 "M$")"
 1604 ?SPC(17)"New length pulse,"M$":";:INPUT B:V=1
 1606 IF V>20 OR V<1 THEN GOSUB 1999:GOSUB 2000:GOTO 1604
 1608 IF B=V THEN 1630
 1625 V=V+1:GOTO 1606
 1630 LG=JW:?:?SPC(7)D$"multiplier = x"LG
 1631 ? SPC(17)"(range 1-4, stepping 1)"
 1632 ?SPC(14)" New multiplier (round 2):";:INPUT W
 1635 IF W=1 OR W=2 OR W=3 OR W=4 THEN 1640
 1637 GOSUB 1999:GOSUB 2000:GOTO 1630
 1640 LG=W:?SPC(20)"PGM pulse (round 2):";B*LG;M$
 1645 IF B*LG>20 THEN ?:?"Long PGM pulse - at your own risk ..."
 1650 B=B*U:GOSUB 1700:NS=2:GOSUB 2000:GOTO 1090
 1700 IF B=0 THEN 1730
 1720 PP=B
 1730 RETURN
 1800 ?SPC(22)"Intended for experienced users !":?
 1802 ?SPC(20)"Special mode - here are two options:":?
 1804 ?SPC(11)"New PROM burning after an unsuccessful via the (W)rite"
 1806 ?SPC(14)"command attempt or we want to try reprogramming."
 1807 ?:IF CRC>0 THEN ?SPC(32)"Active Data !":RP=RP+1:GOTO 1810
 1808 ?SPC(32)"No active Data line !"
 1810 O=0:A=0:POKE PB,0:POKE PA,128:GOSUB 2050
 1815 O=128+A:POKE PA,O:OC=OC+PEEK(PC)
 1820 A=A+1:IF A=32 THEN GOTO 1850
 1825 GOTO 1815
 1850 IF OC>0 THEN ?SPC(32)"Active PROM !":RP=RP+1
 1855 IF OC=0 THEN ?SPC(32)"No active PROM !"
 1860 IF RP<3 THEN GOSUB 2400:GOSUB 1900:GOSUB 8990:GOTO 1090
 1866 IF RP=3 THEN Z=1:?SPC(31)"I will burn ...":GOSUB 2400:GOTO 7046
 1900 ?:?SPC(26)"PROM burning is cancelled ...":?:RETURN
 1999 ?SPC(3)"Wrong input !":RETURN
 2000 FOR F=0 TO DV*2000*NS:NEXT:RETURN
 2050 FOR F=0 TO DV*20:NEXT:RETURN
 2100 FOR F=0 TO DV*100:NEXT:RETURN
 2300 GOSUB 2500
 2301 ?SPC(18)X$;"No valid"K$" !"SPC(8)"CRC="CRC;:GOSUB 2990
 2400 POKE PA,0:POKE PB,0:RETURN
 2500 ?" -";:RETURN
 2990 ?TAB(78)"-":RETURN
 2995 ?" -"SPC(20);:RETURN
 3010 ?CHR$(12);:T=0:Q=0:X=0:Y=0:A=0:Y=0:OK=0:ER=0:JK=7
 3015 ?SPC(25)"Igi"CHR$(39)"s byte to bit analyzer:"
 3020 ?SPC(15)J$"   "J$:?SPC(15)G$"   "G$
 3025 ?SPC(18)F$"    "F$:GOSUB 8781
 3055 GOSUB 3200:Q=Q+1:T=T+1:GOSUB 3200:Q=Q+1:IF Q=2 THEN ?:Q=0
 3082 T=T+1:IF T=32 THEN POKE PA,0:GOTO 3100
 3090 GOTO 3055
 3100 IF IG=3 THEN 8210
 3200 POKE PA,128:GOSUB 2050:IF T<10 THEN ?TAB(14)" "T;
 3220 IF T>=10 THEN ?TAB(14)T;
 3230 X=PEEK(PD+T):GOSUB 3400:IF IG=3 THEN 3237
 3237 POKE PA,128+T:U1=PEEK(PC):U2=PEEK(PD+T):X=PEEK(PC)
 3239 ?"  ";:IF U1=U2 THEN ?"=";:OK=OK+1
 3240 IF U1<U2 THEN ?">";
 3242 IF U1>U2 THEN ?"<";
 3250 ?"  ";:GOSUB 3400:RETURN
 3400 Y=128
 3412 A=INT(X/Y):IF A=0 THEN 3416
 3414 ?"1";:X=X-Y:GOTO 3418
 3416 ?"0";
 3418 Y=Y/2:IF INT(Y)=0 THEN 3424
 3422 GOTO 3412
 3424 RETURN
 3500 ?SPC(12)"Name: "C$:I=PD
 3503 ?SPC(12)"CRC :"L"(dec)";:IF L=0 THEN ?"=no active PROM"
 3505 ?:IF L>0 THEN ?
 3506 ?SPC(11)K$;" hex:":?SPC(12)"0000:";:FOR F=PD TO PD+15
 3510 N=PEEK(F):GOSUB 3720:NEXT:?:?SPC(12)"0010:";
 3512 FOR F=PD+16 TO PD+31:N=PEEK(F):GOSUB 3720:NEXT:?:?
 3514 ?SPC(11)K$;" dec:":?SPC(12)"9001"K$;:GOSUB 8970
 3516 ?SPC(12)"9002"K$;:GOSUB 8970:?SPC(12)"9003"K$;:GOSUB 8970
 3520 ?SPC(12)"9004"K$;:GOSUB 8970:GOTO 7046
 3720 L=N AND 15:H=(N-L)/16
 3730 ?MID$(B$,H+1,1)MID$(B$,L+1,1);" ";:RETURN
 4100 RESTORE:L=0:FOR G=PD TO PD+31:READ M:POKE G,M
 4140 L=L+PEEK(G):NEXT:RETURN
 4200 GOSUB 4900:DF=PD:N=0:GOSUB 4290
 4206 L=N AND 15:H=(N-L)/16
 4207 ?" :";MID$(B$,H+1,1)MID$(B$,L+1,1);"     ";:INPUT A$
 4209 IF LEN (A$)<>2 THEN GOSUB 1999:GOTO 4207
 4210 H$=LEFT$(A$,1):L$=RIGHT$(A$,1):QQ=1
 4212 IF QQ=17 THEN GOSUB 1999:GOTO 4207
 4213 IF MID$(B$,QQ,1)=H$ THEN QQ=1:GOTO 4217
 4214 QQ=QQ+1:GOTO 4212
 4216 IF QQ=17 THEN GOSUB 1999:GOTO 4207
 4217 IF MID$(B$,QQ,1)=L$ THEN 4225
 4218 QQ=QQ+1:GOTO 4216
 4225 IF H$="F" THEN HI=15:GOTO 4244
 4226 IF H$="E" THEN HI=14:GOTO 4244
 4227 IF H$="D" THEN HI=13:GOTO 4244
 4228 IF H$="C" THEN HI=12:GOTO 4244
 4229 IF H$="B" THEN HI=11:GOTO 4244
 4230 IF H$="A" THEN HI=10:GOTO 4244
 4231 HI=VAL(H$)
 4244 IF L$="F" THEN LO=15:GOTO 4270
 4245 IF L$="E" THEN LO=14:GOTO 4270
 4246 IF L$="D" THEN LO=13:GOTO 4270
 4247 IF L$="C" THEN LO=12:GOTO 4270
 4248 IF L$="B" THEN LO=11:GOTO 4270
 4249 IF L$="A" THEN LO=10:GOTO 4270
 4250 LO=VAL(L$)
 4270 POKE DF,HI*16+LO:N=N+1:DF=DF+1
 4275 IF N=16 THEN GOSUB 4290
 4279 IF DF=PD+32 THEN GOSUB 8700:?:GOTO 8800
 4280 GOTO 4206
 4290 ?"Adress: "K$":":?"(hex)    (hex)":RETURN
 4300 J=PD:S=0:GOSUB 4900:GOSUB 4950
 4303 IF S<10 THEN ?" "S,
 4304 IF S>=10 THEN ?S,
 4306 INPUT Q:IF Q>255 THEN GOSUB 1999:GOTO 4303
 4308 POKE J,Q:J=J+1:S=S+1:IF S=16 THEN GOSUB 4950
 4309 IF J=PD+32 THEN GOSUB 8700:?:GOTO 8800
 4310 GOTO 4303
 4900 ?SPC(20)"<-- name = length max. 40 characters ";X$
 4910 ?SPC(3)"PROM"K$" NAME:";:INPUT C$
 4930 IF LEN (C$)>40 THEN GOSUB 1999:GOTO 4900
 4940 ?:RETURN
 4950 ?"Adress:"SPC(5)K$":":?"(dec)"SPC(8)"(dec)":RETURN
 5000 ?SPC(16)"Read PROM and Write to"K$" rows ";
 5001 CRC=0:R=50:IF IG=2 THEN R=0
 5010 POKE PB,0:O=0:A=0:POKE PA,128:GOSUB 2050
 5035 O=128+A:POKE PA,O:OC=PEEK(PC):POKE PD+A+R,OC:CRC=CRC+OC:A=A+1
 5095 IF A=32 AND IG=1 THEN 3010
 5100 IF A=32 THEN 5120
 5110 GOTO 5035
 5120 IF CRC=0 THEN ?N$:GOTO 5160
 5130 ?" ACTIVE PROM !":GOSUB 2400
 5150 GOSUB 4900:GOSUB 8700:?:GOTO 8800
 5160 GOSUB 2400:NS=1:GOSUB 2000:GOTO 1090
 5500 ?CHR$(12):?"   Your choice - "A$:?:RETURN
 6000 ?SPC(18)"Test - read PROM ";
 6010 O=0:A=0:POKE PB,0:POKE PA,128:GOSUB 2050
 6035 O=128+A:POKE PA,O:OC=PEEK(PC):IF OC=0 THEN 6070
 6060 ?" - Not a"N$:?SPC(26)"Insert"N$
 6065 GOSUB 2400:GOSUB 2000:GOTO 1090
 6070 A=A+1:IF A=32 THEN 6100
 6090 GOTO 6035
 6100 ?" Good,"N$:GOSUB 2400:IF Z=1 THEN 7020
 6110 NS=1.5:GOSUB 2000:GOTO 1090
 7000 ?SPC(30)"Writing to PROM >":?:Z=1
 7010 FOR F=TG TO TG+31:POKE F,122:NEXT:GOTO 6000
 7020 GOSUB 9000:?:?SPC(17)" Name"K$" file: "C$
 7030 GOSUB 9005:?SPC(34)"CRC="CRC:NS=2
 7035 IF CRC=0 THEN ?SPC(29)" No valid"K$" !":GOSUB 2000:GOTO 1090
 7042 IF 32-OK<>0 AND E=1 THEN GOSUB 2000:GOTO 1090
 7046 ?:?SPC(32)"CONTINUE Y/N";:INPUT A$
 7047 IF A$="N" AND RP=3 THEN 1090
 7048 IF A$="N" THEN END
 7051 IF A$<>"Y" THEN GOSUB 1999:GOTO 7042
 7052 IF JK=7 THEN 7056
 7054 IF A$="Y" AND E=9 THEN 7070
 7056 IF A$="Y" AND Z=>0 OR Z<=3 THEN 1090
 7070 O=0:A=0:RESTORE:FOR G=PD TO PD+31:READ M:POKE G,M:NEXT
 7200 POKE PA,128:POKE PB,0:GOSUB 2050:?SPC(29)"Programming bytes ..."
 7204 ?SPC(30)"PGM pulse =";:IF Z=2 AND D=1 THEN ?B/U*LG;:GOTO 7217
 7208 IF Z=1 AND D=0 THEN ?PP/U;:GOTO 7217
 7210 IF Z=1 THEN ?TAB(30)PP/U;:GOTO 7217
 7212 IF Z=2 AND D=0 THEN ?PP/U*LG;
 7217 ?M$:?:?TAB(8);:FOR G=PD TO PD+31:IF A<10 THEN ?" "A;
 7227 IF A>=10 AND A=<15 THEN ?A;
 7229 IF A=15 THEN ?:?:?TAB(8);
 7230 IF A>15 THEN ?A;
 7231 IF Z=2 AND PEEK(TG+G)=0 THEN 7480
 7240 K=PEEK(G):FOR F=PE TO PE+7:POKE F,0:NEXT
 7260 IF K>=128 THEN POKE PE+7,128:K=K-128
 7270 IF K>=64 THEN POKE PE+6,64:K=K-64
 7280 IF K>=32 THEN POKE PE+5,32:K=K-32
 7290 IF K>=16 THEN POKE PE+4,16:K=K-16
 7300 IF K>=8 THEN POKE PE+3,8:K=K-8
 7310 IF K>=4 THEN POKE PE+2,4:K=K-4
 7320 IF K>=2 THEN POKE PE+1,2:K=K-2
 7330 IF K>=1 THEN POKE PE+0,1:K=K-1
 7365 FOR O=0 TO 7:S=PEEK(PE+O):IF S=0 THEN 7480:GOSUB 1700
 7420 PP=JJ:POKE PA,128:GOSUB 2050:IF Z=2 AND D=1 THEN PP=B*LG
 7424 IF Z=2 THEN PP=PP*LG
 7430 POKE PA,A+128:POKE PB,S:POKE PA,A+224
 7450 POKE PA,A+192:FOR F=0 TO PP:NEXT:POKE PA,A+160
 7470 POKE PA,128:GOSUB 2400:GOSUB 2050
 7480 NEXT:A=A+1:GOSUB 2050:NEXT:?:?:A=0:G=0
 7980 ?SPC(23)"End of the round no."Z"of programming";:Z=Z+1
 7990 GOSUB 2400:A=0:O=0:GOSUB 2000
 8000 RESTORE:POKE PA,128:POKE PB,0:GOSUB 2050:A=0:L=0:O=0
 8013 ?CHR$(12):OK=0:ER=0:IF A$="V" THEN X=1
 8014 FOR G=PD TO PD+31:READ M:POKE G,M:Q=PEEK(G):L=L+Q:NEXT:A=0
 8085 FOR G=PD TO PD+31:O=128+A:POKE PA,O:Q=PEEK(PC):R=PEEK(G)
 8100 IF Q=R THEN OK=OK+1:POKE G+40,0:GOTO 8104
 8102 X=1:ER=ER+1
 8104 A=A+1:NEXT:POKE PA,0:OK=0:ER=0:?
 8120 IF Y=1 AND X=1 OR X=1 AND E=1 AND Y=0 THEN 8200
 8122 IF Y=1 AND X=2 THEN 8130
 8125 IF L=0 THEN ?N$:POKE PA,0:GOSUB 2000:GOTO 1090
 8126 IF X=1 THEN 8150
 8127 IF X=1 THEN Y=0:POKE PA,0:GOSUB 2100:X=X+1
 8128 IF X=2 THEN Y=1:POKE PA,0:GOTO 7070
 8130 GOTO 8200
 8150 ?SPC(24)"New attempt to burn round no."Z:POKE PA,0:GOTO 8127
 8200 POKE PA,0:GOSUB 2050:IG=3:GOTO 3010
 8210 ?SPC(27)"Pass="OK"byte, Error="32-OK"byte"
 8211 IF OK=32 AND E=9 THEN 7046
 8212 IF OK=32 AND E=1 THEN 8500
 8214 ?SPC(34)"- bad PROM ...";:GOSUB 2400:GOSUB 2000:GOTO 7042
 8500 ?SPC(32)"- good verifying !";:NS=2.5:GOSUB 2000:GOTO 1090
 8600 GOSUB 5500:?SPC(4)"+------\ /------+"SPC(25)"32x 8bit PROM:"
 8602 ?SPC(4)W$:?" 01-+ Y1"SPC(8)"Vcc +-16";
 8604 ?SPC(17)"74188    74S288    82S123":?SPC(4)"|"SPC(9)"__ __ |"
 8606 ?" 02-+ Y2"SPC(6)"CS/EN +-15"SPC(4)"Vcc:";
 8608 ?SPC(19)"+5V":?SPC(4)W$
 8610 ?" 03-+ Y3"SPC(9)"E  +-14"SPC(4)"Icc:";
 8612 ?SPC(10)"60mA"SPC(5)"70mA"SPC(6)"95mA":?SPC(4)W$
 8614 ?" 04-+ Y4"SPC(9)"D  +-13"SPC(4)"Acces time:";
 8616 ?"  <50ns    <25ns     <20ns":?SPC(4)W$
 8618 ?" 05-+ Y5"SPC(9)"C  +-12"SPC(4)"max.Yout:";
 8620 ?SPC(14)"12.5mA":?SPC(4)W$
 8622 ?" 06-+ Y6"SPC(9)"B  +-11"SPC(4)"PGM pulse:";
 8624 ?SPC(13)"1-20ms":?SPC(4)W$
 8626 ?" 07-+ Y7"SPC(9)"A  +-10";:?SPC(19)"Open Collector Output"
 8627 ?SPC(4)W$
 8628 ?" 08-+ Gnd"SPC(8)"Y8 +-09";"    Russian version: K155RE3"
 8630 ?SPC(4)W$:?SPC(4)"+---------------+":GOTO 7046
 8700 ?:?" Now it's time to start capturing text";:GOSUB 8850
 8702 GOSUB 8990
 8706 ?:?" Rows"K$" generator:":?:I=PD:L=0
 8708 ?"9000 C$=";CHR$(34);C$;CHR$(34);":ID=32:RETURN"
 8710 ?"9001"K$;:GOSUB 8970:?"9002"K$;:GOSUB 8970
 8712 ?"9003"K$;:GOSUB 8970:?"9004"K$;:GOSUB 8970
 8714 FOR G=PD TO PD+31:Q=PEEK(G):L=L+Q:NEXT
 8716 ?"9005 CRC="L":RETURN:REM CRC(dec!)":?:GOTO 8800
 8776 GOSUB 4100:GOSUB 9005:IF L<>CRC THEN 8900
 8777 IF L=0 THEN 8780
 8778 GOSUB 2500:?SPC(18)X$;"Valid"K$" in memory ! CRC="CRC;
 8779 GOSUB 2990:GOTO 8781
 8780 GOSUB 2300
 8781 ?" ";:FOR F=2 TO 78:?"-";:NEXT:GOSUB 2990:RETURN
 8800 ?" Save this"K$" rows in the specified positions"
 8802 ?SPC(8)"and then run the program again !"
 8804 ?:?SPC(8)"You can now stop capture text to"
 8805 ?SPC(11)"the file";:GOSUB 8850:FG=1:GOTO 7046
 8850 ?" in HyperTerminal.":RETURN
 8900 REM ?CHR$(12);
 8901 ?"Problem ...":?"Bad verification result or ID"
 8904 ?SPC(5)"difference in:":?"  computer"SPC(7)K$
 8905 ?SPC(3)K$;SPC(10)"rows":?SPC(4)"CRC:   < >    CRC:"
 8906 ?SPC(4)L;TAB(18)CRC:?SPC(9)"ID ="ID:END
 8970 FOR G=I TO I+6:?PEEK(G)",";:NEXT:?PEEK(I+7):I=I+8:RETURN
 8990 ?" Press C to continue ...";:INPUT A$:IF A$<>"C" THEN 8990
 8992 RETURN
 9000 C$="All DATA bytes =0":ID=32:RETURN
 9001 DATA 0,0,0,0,0,0,0,0
 9002 DATA 0,0,0,0,0,0,0,0
 9003 DATA 0,0,0,0,0,0,0,0
 9004 DATA 0,0,0,0,0,0,0,0
 9005 CRC=0:RETURN:REM CRC in dec form !

- - - - - - - - - - - - - - - - - - - - - - - - - -

Keď som túto programovú verziu dokončil tak ma napadlo že by bolo dobré dostať všetky verzie x-talov pod jednu strechu (teda všetko v jednom) - ak sa zadarí tak výsledok uvidíte na Silvestra - mám na takúto úpravu programu ešte celý týždeň ...

___________________________________________________________

Info:

Tento článok bol počas jeho tvorby nedopatrením na istý čas uvoľnený na web už dňa 01.10.2023, teda ešte počas jeho zásadnej tvorby - program pritom nebol dotiahnutý do finálnej fázy, takže tomu kto sa v tom čase k nemu na stránke dostal sa zhlboka ospravedlňujem ... proste museli ste si počkať do Vianoc, otestovanie programu a aplikácia niektorých úprav je vec ktorá nejaký čas zaberie. Takže - hotovo a dnes to ide do sveta. Funkčnosť programu bola overená napálením správneho obsahu do niekoľkých kusov PROM 74188.

_________________________________________________________________________________

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.

___________________________________________________________

Vaše hodnotenie, Rate post:

SBC6809 - CoCo books. Part11.

By Administrator at novembra 25, 2023 17:36
Filed Under: SBC8085-NCB85

PDF ohľadne Coco, hlavne je to o príkazoch jazyka Basic a samozrejme aj o inom.


 

Je to v jednom väčšom (71.8MByte), zazipovanom súbore:

Coco.zip

______________________________________________________

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: