OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů
Právě je 21 lis 2017, 12:41

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 16 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 13 bře 2014, 20:38 
Offline
Profík
Uživatelský avatar

Registrován: 09 říj 2013, 18:04
Příspěvky: 681
Has thanked: 84 times
Been thanked: 27 times
Keďže na tomto fóre je dosť ľudí, ktorí sa v tomto vyznajú, tak sa skúsim opýtať tu.

Ak sa namapuje do adresného priestoru VRAM v móde 2 (320x200x16), tak VRAM je rozdelené na 4 banky po 8 kB. 8 kB VRAM je aj namapovaných do adresného priestoru $8000-$9FFF. Predpokladám, že namapovaná je prvá banka.

Zaujímalo by ma ako sa tieto banky v adresnom priestore vymieňajú. Niečo som si o grafike prečítal, ale túto informáciu som buď prehliadol alebo tam chýbala. Je mi jasné, že s grafikou sa pracuje inak (cez porty na to určené), ale zaujíma ma to preto, lebo, ak sa banky v adresnom priestore nedajú vymieňať, tak namapovanie od $8000 do $9FFF by bolo zbytočné. Ako prepnúť teda banku v tomto priestore na inú? Čisto teoreticky, keby chcem robiť s grafikou "priamo", ako prepnem jednotlivé roviny, aby som mohol použiť viac farieb?

Samozrejme moja otázka sa týka aj ostatných grafických režimov.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 13 bře 2014, 23:13 
Offline
Pan Štábní

Registrován: 19 črc 2013, 14:54
Příspěvky: 1102
Has thanked: 39 times
Been thanked: 156 times
Urcite nekdo na to odpovi presneji ale i tak poslu odkaz kde je vse popsano http://www.sharpmz.org/mz-800/download/sm800.pdf Na strane 23 je popsano jak se zapisuje do video ram.

Mas dve moznost,i budto zapisujes barvu nebo zapisujes jednicky a nuly do rovin. To jsou dva pristupy do video ram. Budto chces pracovat se "surovymi daty" nebo barvou. To se nastavuje pres bit 2 v WMD.

Nekdy je lepsi si nastavit zapis tak ze nejdrive zapises udaj do roviny 1, pak se prepnes do roviny 2, pak 3 a nakonec 4. Takto muzes pro kazdy bit nastavit 16 kombinaci (4bity) a takto rozsvitis bod jednou z 16 barev. Takto soucasne muzes menit pozadi a popredi znaku. Dobre se takto kresli obrazky.

Jindy ale chces pouze rozsviti nejaky bod treba modre a nechces se zajimat o okolni bity v bajtu na obrazovce. Proto je pak vyhodnejsi PSET, kde kde mas 1 tam se ti da modry bod. Kde je 0 tam se nic nemeni a zustane puvodni barva. To je vyhodne napr. na kresleni car a podobne. REPLACE je zase vhodne na kresleni na cernou obrazovku. Ta obrazovka nutne nemusi byt cerna barva, to zajistuje palete register - ale ve vetsine pripadu je zde cerna barva.

Vse se osvetli kdyz clovek pochopi ze obrazek je vhodne nakreslit pres roviny, protoze musi jen 4x prepnout rovinu a zapsat 4x8KB dat a je obrazek nakresleny. Kdyz by jsi to delal pres PSET tak musis udelat 16 pruchodu a tak je to 16x8KB, coz by bylo rapidne pomalejsi.

Stejne tak pri cteni z video ram je vhodne zvolit spravny rezim aby cteni bylo efektivni.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 13:49 
Offline
Kecálek
Uživatelský avatar

Registrován: 16 bře 2017, 10:36
Příspěvky: 202
Bydliště: Kósek vod Brna
Has thanked: 8 times
Been thanked: 10 times
Nemám zatím se SHARPem žádné zkušenosti a tak by mě zajímalo jak se přepíná mezi RAM a VRAM, jde to přes nějaký port?

_________________
TEMS-49, PMI-80, ZXspectrum+, TI58


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 14:10 
Offline
Kecálek

Registrován: 08 říj 2013, 17:00
Příspěvky: 201
Has thanked: 6 times
Been thanked: 132 times
http://www.sharpmz.org/mz-800/download/sm800.pdf
Strana 7 a 8


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 14:42 
Offline
Kecálek
Uživatelský avatar

Registrován: 16 bře 2017, 10:36
Příspěvky: 202
Bydliště: Kósek vod Brna
Has thanked: 8 times
Been thanked: 10 times
Díky.

//ale stejně tomu nerozumím, dobře porty E0 - E6 ale co na ně poslat?

///nebo to nemá přímý přístup do paměti, ale jen přes porty?

_________________
TEMS-49, PMI-80, ZXspectrum+, TI58


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 16:43 
Offline
Kecálek

Registrován: 08 říj 2013, 17:00
Příspěvky: 201
Has thanked: 6 times
Been thanked: 132 times
Je to naprosto jedno co za data se tam pošle, pro přepnutí mapování paměti je důležitá jen adresa portu (a to ještě jen dolních 8 bitů).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 17:06 
Offline
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1296
Bydliště: Jesenice
Has thanked: 3 times
Been thanked: 76 times
Je to jen prázdná instrukce, aby se nemusely připravit v registrech žádná data.
Tím se ale dělá jen přepnutí okna VRAM do prostoru RAM.
Co v tom okně je vidět řídí Read a Write Format registr na adrese CD a CC, str.20 a dál.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 18:36 
Offline
Kecálek
Uživatelský avatar

Registrován: 16 bře 2017, 10:36
Příspěvky: 202
Bydliště: Kósek vod Brna
Has thanked: 8 times
Been thanked: 10 times
Aha tak to už vypadá líp. Takže takle nějak pošlu "a" na adresu v HL do VRAM?

Kód:
OUT (0E4h),a
LD (HL),a


Sakra, a kde je mód 64k DRAM?

_________________
TEMS-49, PMI-80, ZXspectrum+, TI58


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 19:32 
Offline
Profík
Uživatelský avatar

Registrován: 14 kvě 2013, 18:10
Příspěvky: 807
Bydliště: Kurim
Has thanked: 275 times
Been thanked: 242 times
Musis zkombinovat vice IN/OUT podle rezimu 700/800 ve kterem bezis.

_________________
http://www.8bity.cz


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 19:39 
Offline
Kecálek
Uživatelský avatar

Registrován: 16 bře 2017, 10:36
Příspěvky: 202
Bydliště: Kósek vod Brna
Has thanked: 8 times
Been thanked: 10 times
Aha, a ještě jedna věc, lze tedy nastavit režim ve kterém čte z DRAM a zapisuje do VRAM?

//v jednom okně míněno

_________________
TEMS-49, PMI-80, ZXspectrum+, TI58


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 19:54 
Offline
Profík
Uživatelský avatar

Registrován: 14 kvě 2013, 18:10
Příspěvky: 807
Bydliště: Kurim
Has thanked: 275 times
Been thanked: 242 times
Jestli myslis na te same adrese, tak myslim, ze ne.

_________________
http://www.8bity.cz


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 20:59 
Offline
Pan Štábní

Registrován: 19 črc 2013, 14:54
Příspěvky: 1102
Has thanked: 39 times
Been thanked: 156 times
Microlan po resetu pri kterem zmacknes M se dostanes do monitoru. Ten ma rezim MZ700. Kdyz vsak treba od adresy 2000H zacnes psat program:

di ; zablokujes preruseni
ld a,2
out (0ceh),a ; prepnes se do rezimu MZ800 320x200 16 barev
in a,(0e0h) ; primapujes video ram od adresy 08000h

ld a,1 ; budes zapisovat do ramce I
out (0cch),a
ld a,10101010b
ld (08000h),a
ld (08001h),a

ld a,10b ; budes zapisovat do ramce II
out (0cch),a
ld a,00110011b
ld (08000h),a
ld (08001h),a

ld a,100b ; budes zapisovat do ramce III
out (0cch),a
ld a,00001111b
ld (08000h),a
ld (08001h),a

ld a,1000b ; budes zapisovat do ramce IV
out (0cch),a
ld a,0b
ld (08000h),a
ld a,11111111b
ld (08001h),a

loop:
jr loop

Tak by ti to melo nakreslit 16 barevnych bodu vlevo nahore. Jeste by to chtelo nastavit palete register ale jako zaklad pro pochopeni by to mohlo stacit.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 21:13 
Offline
Kecálek
Uživatelský avatar

Registrován: 16 bře 2017, 10:36
Příspěvky: 202
Bydliště: Kósek vod Brna
Has thanked: 8 times
Been thanked: 10 times
Jo díky, rámce se chovají jako by měli stejnou adresu (přepínají se lineárně v CC) a jestli chápu správně tak rámce jsou RGB a jasovka? Nemám 800ku ještě doma, ale zkusím se mrknout po nějakém emulátoru

_________________
TEMS-49, PMI-80, ZXspectrum+, TI58


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 22:12 
Offline
Pan Štábní

Registrován: 19 črc 2013, 14:54
Příspěvky: 1102
Has thanked: 39 times
Been thanked: 156 times
Ano da se rici ze je to kombinace IGRB. Jinak v tomto rezimu se mapuje video ram od 8000h do 9fffh - takze vidis vzdy jen 8KB z 32KB. Proto musis zapisovat 4x aby jsi mel vsechny barvy. Kdyz ale budes chtit vymazat video ram tak staci nastavit

ld a,1111b
out (0cch),a

a vynulovat 8000 adres od 08000h a mas prazdnou video ram. Jinak 192 poslednich bajtu ve video ram je volnych a nezobrazuji se. Dulezitych je tech prvnich 8000.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Mapovanie pamäte (VRAM)
PříspěvekNapsal: 14 lis 2017, 22:21 
Offline
Kecálek
Uživatelský avatar

Registrován: 16 bře 2017, 10:36
Příspěvky: 202
Bydliště: Kósek vod Brna
Has thanked: 8 times
Been thanked: 10 times
A jdou i jine kombinace CC např.

ld a,1100b
out (0cch),a

a i to pak zároveň nastavovat, nejen mazat?

_________________
TEMS-49, PMI-80, ZXspectrum+, TI58


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 16 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz