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

Od: Michal Hučík
Datum: 5.6.2013 08:38
Předmět: Unikarta (Bylo Re: 8253)


Ahoj, Petr Zydek mi poslal par dotazu na Unikartu a ja jsem se rozhodnul 
pro odpoved do konference, protoze nektere veci by mozna mohly zajimat i 
ostatni.

Dne 4.6.2013 23:29, judeware tu byla ta zakroucena vec volny.cz napsal(a):
> Doba bručení po zapnutí Sharpa do "pípnutí" obrazovky ROM je
> u zapůjčené karty asi 3,5s. Čeština v názvech souborů manažeru
> se ignoruje? Jaká je doporučená max. délka názvu? Výpis probíhá
> ve dvou sloupcích v režimu 640x200? Viděl jsem otisky obrazovky,
> kde to bylo jak v monitoru v režimu 700...


1)
Bruceni pri startu: je zpusobeno tim, ze Sharp ROM kratce po startu 
pocitace sahne na nejaky port, ktery ma pod kontrolou Unikarta (FDC, QD 
... nevim, ktery je prvni). V okamziku, kdy prijde takovy pozadavek do 
CPLD v Unikarte, tak je z nej zpet do Sharpa poslan signal WAIT a CPLD 
od te chvile ceka na odpoved z procesoru STM32. Tento signal WAIT bude 
drzen do te doby, dokud se STM32 konecne neprobudi a neposle svou 
odpoved, ktera ten WAIT uvolni a Sharp muze pokracovat ve svem startu.

Brum a heiroglify na obrazovce jsou zpusobeny tim, ze v teto chvili 
jeste nejsou v Sharpu zinicializovany delicky PSG, ani video rezim v GDG 
a proto jsou slyset a videt nejake nahodne hodnoty. Neni to nic, co by 
Sharpu jakkoliv skodilo. Jedinym negativnim jevem muze byt to, ze po 
celou dobu kdy je Z80 udrzovan ve WAITu se z nej neposila do pameti 
Sharpa refresh a proto po nejake (nikdo nevime jake) dobe by se mohl 
poskodit pripadny obsah techto pameti - nicmene pri studenem startu jsou 
ty pameti stejne prazdne, tak o nic nejde.

!!!! 3,5 sekundy, ktere popisujes jsou vsak pro start STM32 hodne. Kdysi 
jsme tento problem resili u Fuzzyho Unikarty. Jako 100% brzdu pri startu 
STM32 jsme tam identifikovali inicializaci RTC. Mam pocit, ze tam tehdy 
musel vymenit 32kHz krystal a snad tam mel jeste kolem tech hodin i 
nejaky studenak, ktery zpusoboval nestabilitu obvodu toho 32kHz 
krystalu. Tipuji, ze u te unikarty, ktera ti tak dlouze startuje to bude 
podobny problem... Snad k tomu neco napise i Fuzzy.


2)
SD Manager: implementovany filesystem SD karty podporuje kodovou stranku 
1250, nicmene v Sharpu pro zobrazeni podporujeme jen holou standardni 
ASCII. Nezname znaky zobrazujeme jako "_". Soubory by vsak melo jit 
bezne spoustet, ci pracovat s nimi pres API.
Filesystem podporuje soubory o max. delce 32 znaku v nazvu souboru. 
Manager pro zobrazeni ve 2 sloupcich tyto dlouhe nazvy krati tak, ze 
ponecha zacatek a konec jmena a doprostred vlozi "...".
V rezimu MZ-700 byl napsany jeden z prvnich manageru, ktery jiz neni se 
stavajici Unikartou kompatibilni.

> Uvažuju správně, že pokud nejde o programy pod CP/M (nebo
> diskového Basicu) tak zavádění O.S. emulovaným FDC vůbec
> není třeba a běžné sólo programy (typicky hry spouštěné přes
> CM R "název") můžu spouštět přímo ze složek SD viditelných
> v manažeru (jen .MZF)? Zkoušel jsem to a přijde mi to mnohem
> rychlejší než startovat Lamače, pak commander atd. Dál bych
> měl i nějaké dotazy k obsahu speciální složky "unicard".
>
>

3)
Soubory s priponou .MZF: nejsou samy o sobe nijak vazane na jakykoliv 
operacni system. Jedna se o bezne kazetove soubory, ktere jsou ulozeny v 
celku jako CMT hlavicka a nasledne telo souboru. Kdyz takto ulozene 
soubory startujes z cp/m, tak se nejprve nacte do systemu loader, ktery 
umi s MZF pracovat a pak se teprve do pameti nahraje MZF soubor, ktery 
se az po celem nacteni premisti v pameti na pozadovanou adresu. Cteni v 
cp/m je navic pomale proto, ze probiha po diskovych sektorech a navic 
tam jeste probiha preruseni pri kterem cp/m neustale testuje klavesnici 
refreshuje cas, atp.
Start z managera nevyzaduje nacitani zadneho dalsiho programu. Soubor se 
vetsinou nacita rovnou na adresu kam patri. Cteni probiha v jednom kuse, 
bez jakehokoliv prerusovani pomoci instrukce INI a v prubehu cteni jiz 
neni potreba testovat jakekoliv chybove stavy... (Ted mne napada, ze 
jsme asi ani nezmerili jaka je rychlost datoveho toku pri cteni dat z SD 
do Unikarty... Nekdy to musim jeste zmerit. )

4)
Adresar /unicard: obsahuje textove konfiguracni soubory, jejihz obsah se 
ovlivnuje pomoci API primo ze Sharpa. Dale obsahuje QD image s BOOT 
zavadecem a je v nem umisten i SD Manager. Zmenou v teto konfiguraci lze 
zajistit napr. to, ze se po [Q + RESET] nebude spoustet manager, ale 
treba neco chytrejsiho.

-------

Petre, pokud se jedna o Unikartu, ktera byla pred casem na Aukru, tak 
alespon podle fotografii, ktere jsem videl v ni neni provedena oprava 
RS232/USB a take tam zrejme neni ani posledni verze firmware, ktery krom 
jineho umoznuje pouzivat ze Sharpa SIO, nebo komunikovat z PC pomoci 
RS232/USB s Unikartou a menit obsah SD bez zavislosti na tom, co prave 
dela Sharp.

Zde je popis standardniho API: 
http://sourceforge.net/p/mz800ukp1/code/HEAD/tree/trunk/STM32fw/emu_MZFREPO.c

Zde jsou priklady jak to API pouzivat v assembleru ze Sharpa: 
http://sourceforge.net/p/mz800ukp1/code/HEAD/tree/trunk/STM32fw/doc/examples/

Tady je popis jak obsluhovat SIO: 
http://sourceforge.net/p/mz800ukp1/code/HEAD/tree/trunk/STM32fw/emu_SIO.c

Tady je popis shellu pomoci ktereho lze komunikovat s Unikartou pres 
RS232/USB: 
http://sourceforge.net/p/mz800ukp1/code/HEAD/tree/trunk/STM32fw/USARTshell.c 
(K tomu jsem napsal komunikacni program pro Linux a na webu Martina 
Lukaska je verze tohoto programu pro Windows. Linuxovy komunikator si 
staci prekompilovat 
http://sourceforge.net/p/mz800ukp1/code/HEAD/tree/trunk/STM32fw/doc/USARTshell_R
TS.c 
)

Zde je jednoduchy navod, jak opravit znamou chybku na desce Unikarty: 
http://ordoz.com/sharp/unicard_files/oprava_PCB_RTSCTS_u_FT232RL/

Tady je muj navod jak bez specialniho vybaveni naprogramovat firmware 
Unikarty: http://ordoz.com/sharp/unikarta_programovani_stm32_bootloaderem/

Pamatuju si, ze jeste nekde byl navod jak programovat CPLD, ale uz si 
bohuzel nepamatuju kdo jej napsal a kde je ulozeny :(

Michal


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

 
[2013/1 (17)] [2013/2 (52)] [2013/3 (60)] [2013/4 (68)] [2013/5 (60)] [2013/6 (42)] [2013/7 (9)] [2013/8 (48)] [2013/9 (1)] [2013/10 (40)] [2013/11 (45)]


[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)]