Konference: Počítač SHARP MZ-800 a emulátory

Od: Petr Žydek
Datum: 21.4.2004 11:20
Předmět: o ramdiscích obecně I.

o ramdiscích obecně I.:

Ramdisk - základní pojmy a definice

Ramdiskem rozumíme paměťové zařízení
na bázi polovodičových součástek (na
rozdíl od hard či floppy disku).
Komunikace s ním probíhá skrze
instrukce vstupu a výstupu (I/O
porty).
Existují dva různé režimy ve kterých
může ramdisk v Sharpu pracovat:
-režim SRAM se sekvenčním přístupem
 (označovaný též jako sériová paměť)
-režim "ramdisk pro basic" s libovolným
 přístupem (v basiku se zařízení
 označuje jako RAM:), já ho budu nazývat
 režim RD

Nejjednodušší exempláře (64KB) uměly režim
RD využitelný jen pro basic MZ800, neuměly
ani "auto inkrement" - každému čtení/zápisu
muselo předcházet nastavení 16ti bitové
adresy do ramdisku.
Originální 64KB Sharp ramdisk uměl režim
RD včetně "auto inkrementu" (po každém
čtení/zápisu se adresa v ramdisku zvětšila
o jednotku, nebylo nutné ji zavádět zvlášť),
ovšem neuměl režim SRAM. Nikdy jsem neviděl
64KB verzi ramdisku, která by uměla "auto
inkrement" a oba režimy.
Tato myšlenka se uplatňuje až u verzí
ramdisku s vyššími kapacitami (existovaly
o kapacitách 256KB, 512KB, 1MB).

Jak rozpoznat schopnosti ramdisku?
-úspěšné provedení basikovského příkazu
 INIT"RAM:$FFFF" signalizuje funkčnost
 režimu RD
-je-li ramdisk schopen plnit funkci SRAMu,
 ihned po zapnutí nám ROM monitor hlásí
 SRAM:Check sum err (pokusí se ihned nahrát
 a spustit program, který tam samozřejmě
 nemůže být, není-li to verze se zálohovanou
 statickou pamětí)


Porty režimu SRAM

- in F8h ... vynulování adresy SRAMu (platí
             i pro režim RD a je-li ošetřeno
             hardwarově, nastavuje nultou
             stránku u exemplářů s více než
             64KB paměti)
- in F9h ... čtení bajtu na aktuální adrese,
             adresa se zvětší o jednotku
- out FAh .. zápis bajtu na aktuální adrese,
             adresa se zvětší o jednotku

Porty režimu RD

- out EBh .. registr dolní části adresy, horní
             část adresy se posílá při istrukci
             OUT (C),A horní polovinou adresové
             sběrnice, př.:
                          LD A, "dolní část adresy"
                          LD B, "horní část adresy"
                          LD C, EBh
                          OUT (C),A
- out EAh .. čtení/zápis bajtu na zvolené adrese,
             i zde by měl fungovat "auto inkrement"
- out E9h .. nevím, kdo jej zavedl, ale má přímo
             strategický význam pro všechny ramdisky
             s více než 64KB paměti (reaguje naň
             LAMAČ CP/M), jeho 8 bitů dává možnost
             rozlišit až 256 stránek po 64KB, to
             jest 16MB paměti), v případě mého
             ramdisku "Müller" jsou významné jen
             dva nejnižší bity:

         OUT E9=00h ... 0. stránka ramdisku
         OUT E9=01h ... 1. stránka ramdisku
         OUT E9=02h ... 2. stránka ramdisku
         OUT E9=03h ... 3. stránka ramdisku

Müller má čtyři 64KB bloky, každý je tvořen
dvěma paměťmi 64Kx4, příslušný out E9h povolí
operace čtení a zápisu jen jedinému "dvojčeti"
(bude podrobně vysvětleno v popisu příště).

Jen dodám, na čem jsem úspěšně otestoval dvě
"plovoucí" paměti 1Mx4 (taková ta mini redukce),
proběhlo 48 hodinové zahořování čtyřmi většími
herními programy. Každý z nich byl nahrán
z kazety do jedné ze stránek ramdisku příkazem
monitoru:
-RxL (x je od 1 do 4)
 např. R1L, čti: ramdisk 1 load
Pak docházelo k náhodnému spouštění programu
z libovolné stránky ramdisku:
-reset Sharpa s držením klávesy M
-RxS (x je od 1 do 4)
 např. R2S, čti: ramdisk 2 spusť
Hra ze zvolené stránky ramdisku se natáhla
do paměti stejným způsobem jako z kazety
a spustila se. Nejhorší je to pravidelné
resetování a spouštění her, ale v noci jsem
to nedělal...

Poznámka: příkaz monitoru R a jeho syntaxi
jsem vymyslel a začlenil do ROM při jediném
záplatování chyb v roce 1990 (dle doporučení
disassemblářů z Brna, mám brožury z roku 87)

příště:
-velmi detailní popis Müllera 256KB
-teoretický nástin ramdisku se čtyřmi moduly
 SIMM 30pin s jedním, dvěma, třemi, čtyřmi
 moduly 256KB, 1MB, 4MB (základ vychází
 z Müllera)
-nástin ramdisku 256KB, 1MB se statickými
 RAM 61512 DIP32 (ze starších PC)
-nástin ramdisku se statickými RAM 512KB SMD
 až do 16MB
-srovnání koncepcí, výhody/nevýhody,
 koexistence s HDD a RTC na jedné desce

Už něvládzem, je 23:50

Petr de Zviqov
        


Ostatní příspěvky vlákna:

 
[2004/1 (1)] [2004/2 (1)] [2004/4 (33)] [2004/5 (34)] [2004/6 (12)] [2004/7 (1)] [2004/8 (12)] [2004/9 (31)] [2004/10 (52)] [2004/11 (43)] [2004/12 (4)]


[1999 (1)] [2000 (168)] [2001 (733)] [2002 (459)] [2003 (654)] [2004 (224)] [2005 (105)] [2006 (182)] [2007 (201)] [2008 (294)] [2009 (363)] [2010 (782)] [2011 (522)] [2012 (642)] [2013 (442)]