Atari cartridge - 01. Úvodné informácie.

By Administrator at októbra 11, 2015 11:05
Filed Under: Atari

 

Tejto veci som ešte nevenoval pozornosť, takže nastal čas pre miniseriál. Dnes to bude o základných pojmoch, čo je čo na cartridgi.

 


Ešte jedno dôležité upozornenie:
Vývody z cartridge sú na počítačoch rady ATARI XL vyvedené v opačnom poradí ako na počítačoch rady Atari XE, pretože tam je to vyvedené na zadnej strane, a teda čítame to z inej pozície - to je info len pre tých ktorí sú budú cartridge sami stavať. Pokiaľ to postavíte, tak samozrejme vývody priamo sedia na obidva druhy, len pri tvorbe na konkrétnom počítači treba na to myslieť kde ktorý vývod na cartridgi je k dispozícii. A nič sa nepokazí ak si to ešte pre istotu sami premeriame, istota je istota.

 

Konektor cartridge, 30 pinová samička na strane počítača:

 


Pretože niekoho môže vyviesť z miery označenie vývodov OE a CE, ale keď sa pozriem do datasheetov tak tam je označenie takéto:


 

 

A preto som aj v schémach použil označenie ako v datasheete, dúfam že sa z toho "vysomárite" a bude to jasné aj tak.

 

Teraz si popíšeme riadiace signály aby sme vedeli s čím budeme pracovať.

1. Signály:

 

MMU - Memory Management Unit = riadiaca jednotka pamäte


RD4 - stav systému kedy MMU obsadí blok 8KB pamäti v adresnom priestore $ 8000- $ 9FFF. Signál je ide z elektroniky cartridge.

Aktívny stav RD4=1
RD5 - stav systému kedy MMU obsadí blok 8KB pamäti v adresnom priestore $ A000- $ BFFF. Signál je ide z elektroniky cartridge.

Aktívny stav RD5=1


(V naprostej väčšine ma cartridge priamo pripojený signál RD4 alebo RD5 na +5V a tým určuje či zaberá 8kB, alebo 16kB priestoru. Bavím sa o tzv. klasických cartridge. Postupom si ukážeme že sa to samozrejme dá urobiť aj inak.)

 

CCTL - riadený adresový dekodér Atari signálu. V aktívnom stave =0 informuje že sa používa adresa v pamäťovom rozsahu $ D500- $ D5FF.


S4 -keď je signál RD4 =1 a S4=0 potom je cartridge na adrese zbernice je v pamäťovom rozsahu  $ 8000- $ 9FFF.

Signál je generovaný obvodom MMU, vlastne je to chip select danej pamäťovej oblasti.

S5 -keď je signál RD5 =1 a S5=0 potom je cartridge na adrese zbernice je v pamäťovom rozsahu $ A000- $ BFFF.

Signál je generovaný obvodom MMU, vlastne je to chip select danej pamäťovej oblasti
F/2 (niekedy sa označuje aj ako BO2, alebo Ø2, Fi2) - základný hodinový signál, odvodený z cyklu procesora a ďalších systémov Atari. Zostupná hrana je aktívna, hrany sú pre operácie čítanie / zápis dát na dátovej zbernici.  V niektorých neobvyklých aplikáciách môže byť v zapojení cartridge aj vzostupná hrana aktívna.


R/W - čítanie signálu (R =1), alebo (W =0) pre zápis dát. Pri ROM alebo EPROM samozrejme nemá zmysel zápis, ak tam dáme ale RAM pamäť je to potom už vec iná. Z predchádzajúcej vety vyplýva že v cartridgi môže byť zapojená nielen pamäť Eprom, ale aj pamäť RAM.

 

Gnd - zem

Vcc - + 5V.

D0-D7 - dátová zbernica


A0-A12 - adresová zbernica, týmto rozsahom je určené priame adresovanie 8kB

pojmy: LSB - nižší byte adresy, MSB - vyšší byte adresy


2. Cartridge v počítači:

Cartridge má v adresnom priestore pamäti svoje konkrétne miesto. Pamäťový rozsah cartridge sa skladá z dvoch blokov pričom každý je o maximánej veľkosti 8KB, teda spolu maximálne 16kB.

 

 

Prvý sa nachádza v adresnom priestore $ 8000- $ 9FFF (používa signály RD4 a S4), druhý v adresnom priestore $ A000- $ BFFF (ten zase používa signály RD5 a S5).
Riadenie cartridge a teda aj celého systému spravuje systém MMU na doske Atari. Dva riadiace signály sú aktivované v blokoch pamäte, potom už MMU podľa potreby aktivuje potrebné pamäťové rozsahy.

Cartridge v Atari v adresnom priestore možno aktivovať rôznymi spôsobmi:

    - ako blok pamäte o veľkosti   8kB v oblasti $ 8000- $ 9FFF
    - ako blok pamäte o veľkosti   8kB v oblasti $ A000- $ BFFF
    - ako blok pamäte o veľkosti 16kB v oblasti $ 8000- $ BFFF
   

Cartridge môže ležať zo svojou pamäťou aj v inom adresnom priestore. J

Môže fungovať na základe využívania hardvérových registrov nachádzajúcich sa na $ D5xx. Napríklad potom môžeme "narvať" do cartridge spokojne 8kB x 256 = 2048Kbyte. Pekné, ale už trošku samoúčelné. Jednak musíme k tomu napísať riadiaci program a za druhé už niečo podobné je na svete. Ale o tom zase niekedy neskoršie v ďaľších pokračovaniach. Proste ja považujem na našom "krpáňovi"  320kByte RAM za dostatočných, pritom existuje aj 16MByte verzia RAM. Kto tam bude ládovať údaje ? A na čo ? Proste ten cartridge má k tomu použitiu omnoho bližšie a je ten obsah okamžite k dispozícii, čo je pre podľa mňa nezanedbateľná výhoda. A mal by stačiť o veľkosti tak 128kByte. (Ale to neznamená že si nepozrieme aj väčšie ...)


3. Hlavička cartridge:

Operačný systém Atari umožňuje spustiť program uložený v pamäti cartridge ako zavádzací. To platí pre hry a ďalšie pomôcky. Táto informácia hlavičky pre systém hovorí o tom, ako spustiť program. Skladá sa zo šiestich bytov, ktoré musia byť umiestnené na adresy $ BFFA- $ BFFF. To znamená, že program uložený len v $ 8000- $ 9FFF sa nedá spustiť ako zavádzací. Na uvedenej adrese musí obsahovať nasledovné údaje:

    $ BFFA - LSB Program Počiatočná adresa
    $ BFFB - MSB spustenie programu adresa
    $ BFFC - byte, ktorý musí byť nula
    $ BFFD - voľba byte, jednotlivé bity sú nasledujúce:
        Bit 0 = 0 - nesmie riadiť BOOT
        Bit 0 = 1 - naštartovať diskové jednotky, t.j. trebárs povolí nahrať DOS
        Bit 2 = 0 - Iba inicializácia cartridge bez spustenia
        Bit 2 = 1 - Inicializácia a spustiť program z cartridge
        Bit 7 = 0 - normálny cartrdige
        Bit 7 = 1 - Jedná sa o diagnostický catridge
    $ BFFE - LSB inicializácia adresa
    $ BFFF - MSB inicializácia adresa


4. Ako môže vyzerať hlavička cartridge:

Cartridge - štandartný, t.j. nie diagnostický cartridge

Operačný systém Atari umožňuje spustiť program uložený v pamäti cartridge ako zavádzací. To platí pre hry a ďalšie pomôcky. Táto hlavička je pre systém informáciou o tom, ako spustiť program.
Skladá sa zo šiestich bytov, ktoré musia byť umiestnené na adresy $ BFFA- $ BFFF.

To znamená, že program uložený len v rozshau $ 8000- $ 9FFF nedá spustiť ako zavádzací.

Na uvedenej adrese musí obsahovať nasledovné údaje:
Kazeta nie je diagnostická, teda na adrese $ BFFD bit D7 = 0. Hlavný program začína na adrese $ A000, a postup inicializácie začína na adrese $ B000. Je povolené, aby bootoval z disku.

    $ BFFA - $ 00 ... Byte adresa začiatku hlavného programu
    $ BFFB - $ A0 ... Byte počiatočnú adresu programu ($ A000)
    $ BFFC - $ 00 ... Byte = 0, informačný systém
    $ BFFD - $ 05 ... bit 0 = 1, BOOT jazdiť, Bit 2 = 1, inicializovať a spustiť program z cartridge
    $ BFFE - $ 00 ... inicializácia byte adresa
    $ BFFF - $ B0 ... bajt inicializácia adresy ($ B000)


Od adresy $ A000 musí začínať s hlavným programom v pamäti kazety. Od adresy $ B000 musí začať inicializačnú postup, kompletné velenie RTS ($ 60). Pri zapnutí počítača, ak je vložená cartridge, MMU odpojí BASIC a na jeho mieste sa obráti na cartridge. Systém skontroluje, či je cartridge prítomný v slote na základe bajt čítaného z adresy $ BFFC. Potom  sa vykoná tento postup umiestnený do pamäte cartridge na adrese $ B000. Po jeho vykonaní začne hlavný program v pamäti cartrdige z adresy $ A000.
  
V prípade, že hlavička je navrhnutá tak, že v doplnkovom byte ($ BFFD) bit D7 = 1, systém rozpozná že je založený diagnostický cartridge. Program potom prevezme kontrolu celého systému a Atari je plne BOOT. Týmto spôsobom si môžete prevziať kontrolu nad celým systémom Atari alebo zdiagnostikovať ho. Téma bude ďalej konať ďalej v tomto dokumente.bit D7 = 0. Hlavný program začína na adrese $ A000, a postup inicializácie začína na adrese $ B000. Je povolené, aby bootoval z disku.

    $ BFFA - $ 00 ... Byte adresa začiatku hlavného programu
    $ BFFB - $ A0 ... Byte počiatočnú adresu programu ($ A000)
    $ BFFC - $ 00 ... Byte = 0, informačný systém, ktorý je kazeta v štrbine
    $ BFFD - $ 05 ... bit 0 = 1, BOOT jazdiť, Bit 2 = 1, inicializovať a spustiť program z kazety
    $ BFFE - $ 00 ... inicializácia byte adresa
    $ BFFF - $ B0 ... bajt inicializácia adresy ($ B000)

Od adresy $ A000 musíme začínať s hlavným programom v pamäti cartridge. Od adresy $ B000 musí začať inicializačnú postup. Pri zapnutí počítača, ak je vložený cartridge, MMU odpojí BASIC a na jeho mieste sa obráti na cartridge. Systém skontroluje, či je cartridge v slote na základe bajtu čítať z adresy $ BFFC. Potom začne cartridge vykonávať postup umiestnený do cartridge na adrese $ B000. Po jeho vykonaní začne hlavný program v pamäti kazety z adresy $ A000.

 

Myslím že na dnešok stačí.

____________________________________________________________

Návrat do hlavného menu popisu Atari cartridge:

http://blog.3b2.sk/igi/post/Atari-cartridge-00-Obsah-Contents.aspx

____________________________________________________________

Vaše hodnotenie, Rate post:

Comments

6. 10. 2018 15:51:24 #

trackback

Directory  Atari.

Directory  Atari.

Igi blog |

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: