[SharpMZ] Sharp MZ800 - seznameni

zdeneka na seznam.cz zdeneka na seznam.cz
Středa Srpen 13 10:00:25 CEST 2014


Radku, není tak úplně pravda, že by se nedala hra ze Spectra přenést v 
barvách na Sharpa bez rozšíření videopaměti. Živým důkazem toho je třeba hra 
Express (přeskakování po vagonech až k lokomotivě), Tetris2, FX Sound3 od J. 
Lamače, ..... Vše je děláno do MZ-700 režimu v 8 barvách, kde se pouze mění 
generátor znaků a taková emulace videopaměti Spectra je i rychlá.
Předpokládám ale že Velesoft se ptal jen čistě ze zvědavosti a pro Sharpa 
nic nechystá :-)

Zdeněk

-----Původní zpráva----- 
From: Radek Suk
Sent: Tuesday, August 12, 2014 9:12 PM
To: Počítače SHARP MZ a jejich emulátory
Subject: Re: [SharpMZ] Sharp MZ800 - seznameni


Velesofte, podle mne by bylo vhodne se omezit na nejaky bezny rezim
napr. 320x200 16barev, proto nasledujici text bude jen o tomto rezimu.

Drtiva vetsina uzivatelu ma rozsirenou pamet na 32KB. Duvod byl ten, ze
tento rezim umoznuje prenest hru z ZX na Sharpa a soucasne zachovat
barvy a tak nemit hru jen cernobilou. Rada kamaradu si okolo revoluce
koupila rozsirenou video pamet hlavne kvuli hram. Hodne her bez
rozsireni je nehratelnych, protoze se spatne zobrazuji.

Tech jinych rezimu nez 320x200/16 je opravdu hodne ale nema cenu se tim
pro zacatek prilis zabyvat. Dulezite je to, ze pri rozsireni ma video
sbernice 16 bitu. Prenasi se soucasne 2x8 bitu. 8 taktu krystalu ma
zakaznicky obvod vyhrazen pro sebe a za tu dobu precte vsechny ctyri
roviny coz dela 8x4bity. Proto ma pripraveno 8 bitu v 16 barvach pro
pristi zobrazovani (load). Pak nasleduje 8 taktu kde ma pristup do video
pameti CPU. Nasleduje Load signal jenz zajisti predani tech 32 bitu do
vystupniho shift registru a zobrazeni po dobu nasledujicich 16 taktu,
kazdych 2 takty se zobrazuje jeden bod. Mezitim se uz pripravuji dalsi
data a cele se to opakuje. Mozna pro tebe je zajimava informace ze
hodiny pro cpu se deli peti. Takze pro predstavu, tri takty cpu je 15
taktu krystalu.

Protoze vim ze dobre znas ZX48 tak to porovnam s nim. Je to podobne jako
kdyz na Spectru se nacte jeden znak a nasledne jeho atribut a pak jeste
jeden znak za nim plus jeho atribut.  Pak se to zobrazuje a takto je
umozneno CPU v druhem cyklu pristupovat do pameti. Samozrejme je rozdil
ze na Sharpovi se nectou atributy ale bity ze kterych se dela barva. Pro
zacatek bych ti doporucoval si nehrat s registry palet - pro rezim 16
barev je pro drtivou vetsinu aplikaci nechat puvodni barvy. Upravu
registru bych osobne pouzil jen pro nejake demo.

Video pamet je namapovana mezi 08000h a 09fffh - celkem 8KB. Pozor ale
na to ze nikdy neni primo pristupna ale vzdy se pristupuje pres dva
registry - READ a WRITE. Podle toho jak jsou nastavene tak se provadi
vybrana cinnost. Je jasne ze kdyz pamet ma 32KB a mapuje se jen 8KB tak
lze pristupovat jen k casti obsahu. Pri zapisu dat do video ram je
dulezite vedet, ze dela vetsinou nejaka logicka operace a tak se vlastne
nactou data z video ramky pak se treba udela logicke OR a vysledek se
ulozi zpet do video ram - vse toto dela zakaznicky obvod automaticky -
programator to neovlivnuje, on jen nastavuje rezim zapisu. Pri cteni
jsou dva zakladni rezimy. Jeden je ze si vyberes rovinu 1 az 4 a z ni
ctes. Kde je 1 tam je v rovine nastaveno log.1. Pri cteni rovin by jsi
spravne nemel nastavoval vice rovin a snazit se cist z vice rovin. Druhy
typ je cteni "barvy", zde se dotazujes zda na miste obrazovky je presne
tato barva. Tech barev je 16 a tak kdyz by jsi chtel takto cist celou
obrazovku tak by jsi to musel provest 16 krat. Proto je pro celou
obrazovku lepsi 4x nacist roviny a mas vsechny data. Na druhou stranu
kdyz chces zjistit (overit) zda na nejakem miste obrazovky je napr.
cerveny bod tak muzes jednim ctenim pri vyberu barvy to zjistit. Kazdy
rezim je vhodny pro jinou cinnost.

Video pamet se mapuje tak, ze prvni bajt je na 08000h. Pak nasleduji
dalsi bajty (body) tak ze je obsazeno 8000 bajtu (320*200/8).
Nasledujich 192 bajtu je nevyuzito pro zobrazovani ale je mapovano.

Co se tyce nejakeho atypickeho rozsireni, tak jsem nevidel zadne HW
rozsireni, ktery by zajistil nekolik samostatnych obrazovek a pripadne
prepinani mezi nimi. Jedine co jiz bylo zmineno v konferenci je to, ze
pri  vhodnem "hrani" s registry muzes udelat dve obrazovky (pamet 32KB
rozdelis na 2x16KB) a ty plnit samostatne a prepinat mezi nimi ale toto
neni mozne pro rezim 320x200/16.

Radek

p.s. Snad ten text je alespon nejak citelny a nekoho potesi.

Dne 11.8.2014 18:24, VELESOFT napsal(a):
> Zajimalo by me, jak ma SHARP MZ800 vyresenou videoram, jak se do ni 
> pristupuje a
> jak jsou v ni data organizovana. Dale pak organizace pameti, pripadne 
> moznosti
> jejiho rozsireni.
>
> VELESOFT
>
>
>


_______________________________________________
SharpMZ mailing list
SharpMZ na mail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz 



Další informace o konferenci SharpMZ