Osadená MMU a zadrátkované pripojenie 74LS00 + RAM 6264.
Teraz do rozširujúcej dosky pridám SBC6809 ďalších 8kB RAM, teda je potom k dispozícii 40kB RAM. Nečakal som žiaden zázrak, ale drobné "zádrhely" sa predsa len objavili. Vyzerá to tak že Co-Co programovo akosi nie je priamo pripravené mať viac ako 32kB RAM, minimálne dostupný firmware ma v tom utvrdzuje. Síce 40kB je k dispozícii ale začína nesprávne rátať dostupnú RAM pomocou príkazu ? MEM. No, toto je ale len taký drobný "zádrhel", počítač funguje, pridaná RAM sa dá používať, takže je to len také skonštatovanie faktu o nesprávnom zobrazení ak naštartujeme počítač a zavoláme si ? MEM. Ale aj na toto existuje jednoduché riešenie aby sa voľná RAM spočítala správne, o tomto ešte bude pár slov neskôr.
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.
Zapojenie vyžaduje aby čip 68B50 už fungoval v zapojení cez MMU !
(popis je v minulom článku)
Teraz k technickému riešeniu:
Pretože som nechcel "vyťahovať" zo základnej dosky potrebné signály Memory Read a Memory Write pomocou dvoch vodičov na dosku prídavnej RAM tak som nanovo pre ich opakovanú tvorbu použil jeden obvod 74LS00 (74ALS00). Síce to duplikuje už vytvorené signály na doske motherboardu - ale takto nemusím zasahovať do motherboardu (a to sa mi pozdáva), zase daň niečo za niečo. Obvodová zložitosť ? Nič strašného, je treba použiť len 1 čip navyše.
Poďme na vlastné zapojenie:
Z čipu 74LS00 sa využívajú tri hradlá, to štvrté je zatiaľ nepoužité.
RAM je skutočne zväčšená, akurát ak zavoláme ? MEM (ak nemáme nahratý žiaden program) dostaneme záporné číslo veľkosti RAM. Nedalo mi, hľadal som riešenie - a našiel som, je veľmi jednoduché, ak si napíšete tieto 2 krátke riadky tak vždy dostaneme správnu odpoveď na veľkosť dostupnej RAM - a to aj pri RAM 32kB a aj pri RAM 40kB:
32500 IF MEM =>0 THEN ? MEM
32510 IF MEM<0 THEN ? MEM+65536
problém je vyriešený - voľná RAM ukáže správny výsledok a potom je to 40164 free byte (a reálne je to vlastne o niečo viac, pretože v tom nie su započítané spomínané 2 riadky programu - ak zadáme priamo príkaz ? MEM +65536 tak je to číslo rovné 40208 byte - tento príkaz platí iba pre verziu s 40kB RAM). Jednoduché, nie ? Takže - ak Vám nevadí trochu zvláštny výpočet voľnej RAM pomocou spomenutých 2 riadkov, alebo použijete priamy príkaz z predchádzajúcej vety tak máte teraz k dispozícii 40kB RAM. Proste akonáhle je program dlhší ako 8kB tak začne premenná MEM správne počítať veľkosť voľnej RAM. Pretože zväčšenie RAM bolo len také zahrievacie kolo tak takáto "zvláštnosť" ma nijako neobmedzuje, nakoniec - RAM sa dá vždy z pätičky vybrať - alebo zablokovať prístup do nej pomocou DIP switchu (na to tam je - mimo iného, ale to teraz popisovať nehodlám, je to celé zapojené na univerzálke, takže predrátkovať podľa potreby sa to dá vždy, ako vidieť na doske je voľného miesta viac ako dosť).
Na mieste 74LS00 som otestoval aj čip 74ALS00, obidva typy tu idú naprosto bez najmenších problémov, t.j. sú zameniteľné. Použitá RAM 6264 má prístupovú dobu 100ns (pomalšiu doma nemám). Rýchlejšia RAM (70ns a pod.) je na tomto mieste zbytočná, SBC6809 ide na 1.8432MHz takže všetka ďalšia RAM s prístupovou dobou pod 250ns vyhovuje - na druhú stranu tak pomalé statické RAM ani nie sú k dispozícii ...
Jediným problémom pri stavbe bolo málo miesta na doske pre drátkovanie, čip RAM som posadil príliš blízko externého bus konektoru, je tam potom spústa vodičov - moje trošku blbé zvolenie rozmiestnenia súčiastok. Ale popasoval som sa s tým a aj napriek tomu som zapojenie dotiahol do funkčného stavu.
____________________________________________________________
Dodatok:
V tomto článku tu bol predtým popísaný problematický štart SBC6809, ktorý občas trval aj 5 sekúnd, niekedy dokonca bolo potrebné stlačiť aj Enter - ako sa ukázalo problém nebol v samotnom SBC6809 a ani v jeho dorobených súčastiach - tak som začal pátrať čo tieto záseky a nekonzistenciu pri práci s SBC6809 spôsobuje. Najprv som si myslel že to spôsobujú pridané veci, ale ani odstránenie pridanej RAM a ani prejumprovanie čipu 6850 do pôvodného nastavenia nepomohlo (čip 6850 Motorola je z Atari ST, kde bežal na zbernici >7MHz). Pre istotu som ešte čip 68050 vymenil za iný, ale tak isto s anič nezmenilo. Potom sa to už začalo vyjasnievať - ako som zistil tieto trable pri štarte SBC6809 mal na svedomí použitý "načatý" prevodník USB↔RS232, po jeho výmene za iný (celkom nový) predtým popisované problémy okamžite zmizli (preto som v tomto článku odstránil text o týchto problémoch, celkom zjavne za to mohol poškodený prevodník, smola bola že sa akurát chyby začail prejavovať práve po inštalácii rozšírenia RAM ...). No a odvtedy sa kompletne celá zostava SBC6809 správa ukážkovo a funguje na jednotku.
Na obrázku sú jumpery v pozícii pôvodná adresácia 6850, t.j. bez pridanej RAM.
(Jumpre posunuté napravo o jednu pozíciu = adresácia beží cez PROM 74188.)
_____________________________________________________________
Ak ľavé oko dovolí (momentálne som v rekonvalescencii), tak ako ďalší krok bude nasledovať pripojenie čipu 8255A, t.j. budú k dispozícii 3x 8bit porty ktoré môžeme ľubovoľne nastaviť ako vstupné alebo výstupné - vec ideálna na nejaké ovládanie a riadenie.
_____________________________________________________________
Vaše hodnotenie, Rate post: