Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Zpět na zprávu

Celé vlákno · 11 zpráv

Unikarta s SD pro Sharpa

Michal Hučík SHARP MZ-800

Ok, takze kdyz uz se to takhle predcasne proflaklo, tak zkusim popsat na cem
 tedy s Vaskem delame a jake by mely byt cile projektu:

Univerzalni karta pripojena do Sharpa by mela obsahovat CPLD, SRAM, AVR
(momentalne ATmega64, ale asi to zvladne i ATmega16), SD kartu, MAX232, pripadne
jeste nejaky RTC - ten jsem k tomu jeste nepripojil. 

V tomto zapojeni tedy nyni mame zprovozneno nasledujici:


RAMdisk:
========
V podstate muze byt libovolne velky, ale rostou s tim naroky na CPLD. Posledni
funkcni varianta s 512KB SRAM vyzadovala minimalne XC9572 ... nicmene tohle
hradlove pole jsem vcera nejakym zpusobem odbouchnul a tak jsem dnes pripajel
XC95144 a dale budu experimentovat s nim, takze pak zkusim na soucasnou SRAM
pripajet treba jeste dalsich 3x512K a ziskame tim 2MB RAMdisk.


SD repozitar:
==========
SD karta je pripojena k AVR ATmega64 s R/W podporou FAT32. Momentalne velmi
jednoduse navrzene ovladani, kdy jsem port 0x50 vyclenil pro prikazy a port 0x51
pro prenos dat.
Nechtel jsem to jeste zatezovat zadnymi komunikacnimi standardy, takze prozatim 
je mozne jen to, ze si Sharp rekne o nejaky MZF soubor a dostane ho.
Casem predpokladam nejaky shell k prochazeni FAT32 napr. cp/m, hack BASICu, tak 
aby CMT operace pracovaly s MZF na SD karte. 


ROMdisc BOOT:
=============
Karta se na portech 0xf8 - 0xfa chova i jako RAM disk ze ktereho se Sharp snazi 
nabootovat, pricemz je mu z AVR podstrcen cca 100 bajtovy loader, ktery si z SD 
natahne soubor boot.mzf a spusti jej.


FDC emulator:
============
Nejedna se o striktni emulaci WD279x. AVR si z SD otevre DSK soubor ve kterem
dle pozadavku Sharpa na radic seekuje. Status registr emulovaneho FDC jsem
prizpusoboval predevsim tomu co se v nem v programech ocekava, takze jsem si tu 
musel disassemblovat a odkrokovat vetsinu FD rutin, ktere se na Sharpu vyskytuji
(diky Zdenkovu emulatoru ;) a na sve si prisel i logicky analyzer pripichnuty je
skutecnemu radici. Vysledkem je to, ze napr. tam kde jsem odsledoval, ze program
po odeslani nejakeho prikazu do FDC ocekaval nejakou dobu BUSY, pak READY, pak
zase BUSY + DRQ, tak proste pri prvnim dotazu na status odpovim jednim stavem a 
pri dalsim dotazu druhym, atd. Presne tak, aby se cteci program mohl ve sve
cinnosti posunout k dalsimu kroku. Vyrazenim techto prodlev jsem docilil toho,
ze napr. cp/m z SD startuje cca o 2 sekundy rychleji, nez ze skutecne FD
mechaniky. Pro zajimavost: vyjimkou je tady  start cp/m v1.4 a nizsich, kdy si
Lamacuv loader na nulte stope vyzada neexistujici sektor 0x10 a cte status
registr cca 5000x - pokud po tuto dobu dostane v odpovedi neco jineho, nez SEEK 
ERR, tak se to vzdy projevi nezadoucim zpusobem...
Vcera jsem hackoval cp/m v4.0 a 4.1, abych zprovoznil i podporu HD disket. V
pripade HD disket probiha prace s FDC trochu jinak a musel jsem AVR pripojit
dalsim pinem na sbernici, aby jsme mohli Sharpu posilat i pozadavky na
interrupt. Cteni disket jsem sice zprovoznil,  nicmene neco mi po nejake dobe
odbouchnulo Xilinxe a mozna uz i tusim co...
K emulaci prikazu pro zapisovani sektoru jsem zatim jeste nedostal, nicmene
prikazy pro formatovani bych asi uplne vynechal, protoze mi prijde jednodussi a 
rychlejsi pozadat rovnou AVR o prepsani DSK image.

BTW: co se tyka HD disket, tak jejich DSK image jsem stahnul na scavu ze sekce
UPLOAD. Chtel bych se zeptat kdo to tam uploadnul a predevsim cim ty image byly 
vyrobeny, protoze je v nich vadna tabulka stop. Ve Zdenkovem emulatoru takovy
image sice funguje, protoze ten si zrejme udela analyzu souboru a vytvori si
vlastni tabulku stop, ovsem na AVR si tohle dovolit nemuzeme.


Dalsi funkce:
==========
MAX232 je prevodnik pro RS232, ktery mi momentalne slouzi jako vzdaleny shell a 
ke sledovani debugovacich hlasek z AVR. Casem by samozrejme mohl fungovat jako
skutecny RS232 pro Sharpa.
Zadny RTC jsem do zatim jeste nepripojil, ale bylo by faln, kdyby Sharp po
zapnuti vedel kolik je hodin. Zaroven by se casovy udaj z RTC pouzil jako casovy
atribut zmenenych, ci nove vytvarenych souboru FAT32.


Uvaha do budoucna:
=================
Take zvazujeme i takovou variantu teto univerzalni desky, ktera by v sobe mela i
scandoubler. To by uz ovsem vyzadovalo nejaky FPGA a tim padem by jsme ze
schematu asi vyhodili CPLD i AVR, protoze FPGA by v pohode zastal jejich funkci 
(no, kdyz na to prijde, tak by dokazalo zastat i funkci celeho Sharpa :).

Protoze by jsme s Vaskem byli moc radi, kdyby cele tohle nase snazeni neskoncilo
jen na stolech u nas dvou, tak chceme v brzke dobe cely projekt zverejnit treba 
na sourceforge a budeme moc radi, kdyz se take zapojite do vyvoje.

Michal

Re: Unikarta s SD pro Sharpa

+GAMA SHARP MZ-800

Zobrazit citovaný text (3 řádky)
>Univerzalni karta pripojena do Sharpa by mela obsahovat CPLD, SRAM, AVR
 (momentalne ATmega64, ale asi to zvladne i ATmega16), SD kartu, MAX232,
pripadne jeste nejaky RTC - ten jsem k tomu jeste nepripojil. 

Super, bezva, jen to dotáhněte do konce!
Chválím za aktivitu.
Jen takový... uvažuje se velmi předběžně i o tom, že by to (po úpravě -
jiný konektor sběrnice) chodilo i na MZ-700?

Re: Unikarta s SD pro Sharpa

Vaclav Peroutka SHARP MZ-800

Zobrazit citovaný text (12 řádků)
> >Univerzalni karta pripojena do Sharpa by mela obsahovat CPLD, SRAM, AVR
> (momentalne ATmega64, ale asi to zvladne i ATmega16), SD kartu, MAX232,
 pripadne
> jeste nejaky RTC - ten jsem k tomu jeste nepripojil. 
> 
> 
> Super, bezva, jen to dotáhněte do konce!
> Chválím za aktivitu.
> Jen takový... uvažuje se velmi předběžně i o tom, že by to (po úpravě
- jiný
> konektor sběrnice) chodilo i na MZ-700?
> 
Asi by taky mohlo. Bych si tipnul, ze MZ700 ma stejne mapovani FDC portu. Ale to
se musite kouknout nekdo do manualu MZ700. Ten ja nemam. Otazkou je, v cem je na
MZ700 podporovana FDD...

Re: Unikarta s SD pro Sharpa

+GAMA SHARP MZ-800

Zobrazit citovaný text (3 řádky)
>Asi by taky mohlo. Bych si tipnul, ze MZ700 ma stejne mapovani FDC portu. Ale
 to se musite kouknout nekdo do manualu MZ700. Ten ja nemam. Otazkou je, v cem
je na MZ700 podporovana FDD...
Všechny Basicy, které jsou označeny jako "disk basic" (tedy ne TAPE nebo
QuickDisk): http://sharpmz.org/mz-700/dldos.htm
A i další věci, které jsou (opět na sharpmz.org) uloženy v .dsk
souborech.
Pochopitelně CP/M (kterou teď nemůžu najít, ale screenshoty jsou na
http://www.sharpmz.org/mfranzenemu.htm ). Co se týče 40 znaků na řádek, tak
úspěšně a bez nějakých potíží provozuju CP/M na 40 znacích na Sordu
m5, úprava počítače pro 80 znaků na řádek není podle mne vůbec
nutná.

Jak je to s možností nahrávat z disku například hry jsem ještě přesně
nezjistil (jestli je možné mít na disku hry převedené z kazety).

Obsluha disku na MZ-700 není v ROM počítače, ale v ROM na interfejsu (obsah 
té původní je na http://sharpmz.org/mz-700/dldrom.htm včetně
disassemblingu).
Takže to by, krom sběrnice, byl druhý rozdíl proti MZ-800.

Re: Unikarta s SD pro Sharpa

Michal Hučík SHARP MZ-800

Zobrazit citovaný text (5 řádků)
> Obsluha disku na MZ-700 není v ROM počítače, ale v ROM na interfejsu
 (obsah té původní je na http://sharpmz.org/mz-700/dldrom.htm včetně
disassemblingu).
> Takže to by, krom sběrnice, byl druhý rozdíl proti MZ-800.
>   
V takovem pripade si myslim, ze podstrcit mu emulaci bude mnohem 
jednodussi, nez na MZ-800 - proste by MZ-700 dostalo od AVR  rutiny, 
ktere budou vyhovovat univerzalni karte ... Ale myslim si, ze udelat 
jednu kartu, ktera by v tomtu duchu podporovala oba systemy by bylo 
prilis komplikovane...

Re: Unikarta s SD pro Sharpa

+GAMA SHARP MZ-800

Zobrazit citovaný text (4 řádky)
>> Obsluha disku na MZ-700 není v ROM počítače, ale v ROM na interfejsu
 (obsah té původní je na http://sharpmz.org/mz-700/dldrom.htm včetně
disassemblingu).
>> Takže to by, krom sběrnice, byl druhý rozdíl proti MZ-800.
Zobrazit citovaný text (4 řádky)
>>   V takovem pripade si myslim, ze podstrcit mu emulaci bude mnohem
jednodussi, nez na MZ-800 - proste by MZ-700 dostalo od AVR  rutiny, ktere budou
vyhovovat univerzalni karte ... Ale myslim si, ze udelat jednu kartu, ktera by v
tomtu duchu podporovala oba systemy by bylo prilis komplikovane...
O tom, že by se do EPROM daly narvat úplně vlastní rutiny, přistupující
třeba přímo na SD kartu nebo tak (tedy bez emulace řadiče disketovek) jsem 
už uvažoval, ale chodilo by to jen v CP/M, pro kterou by to vyžadovalo svůj 
vlastní BOS.
Nevím, jestli Disk Basic a další software volá rutiny v ROM (a jak moc
korektně), nebo sahá přímo na řadič. Tak jsem to raději nechal zatím
plavat.

Pokud tomu dobře rozumím, stejě by bylo potřeba udělat dvě verze
zařízení, se stejným "jádrem" emulujícím disk, ale lišící se v tom,
že konektor sběrnice je jinak zapojený a od #F000 se mapuje u MZ-700 ta
disková ROM 4kB.
Porty jsou ale stejné (D8h-DDh), WD je stejné. Nechť se tedy ta věc
emulující disketovku chová na obou systémech stejně, a pak nebude třeba
ani DISK ROM u MZ-700 pozměňovat.

Netřeba zavádět další rozdíly, pokud to jinak bude fungovat dobře.
I tak by s tím byla práce navíc :o(
A netřeba o tom dumat takhle brzy. Nechť to nejdřív chodí dobře na
osmistovce, a pak se uvidí. Ale pokud by to šlo přiohnout na sedmistovku, s
co nejmenší námahou, asi nebudu sám, kdo by to uvítal.

Re: Unikarta s SD pro Sharpa

Vaclav Peroutka SHARP MZ-800

Zobrazit citovaný text (11 řádků)
> >> Obsluha disku na MZ-700 není v ROM počítače, ale v ROM na interfejsu
 (obsah
> té původní je na http://sharpmz.org/mz-700/dldrom.htm včetně
disassemblingu).
> >> Takže to by, krom sběrnice, byl druhý rozdíl proti MZ-800.
> 
> Pokud tomu dobře rozumím, stejě by bylo potřeba udělat dvě verze
zařízení, se
> stejným "jádrem" emulujícím disk, ale lišící se v tom, že konektor
sběrnice je
> jinak zapojený a od #F000 se mapuje u MZ-700 ta disková ROM 4kB.
Aha, to je trochu zmena a to asi tak lehce nepujde emulovat timto zpusobem. I
kdyz, asi by se dalo, ale bylo by to strasne pomale, protoze ROMdisk jako je u
MZ800 se emuluje tim zpusobem, ze nez se pripravi bajt, Z80 se pribrzdi
WAITem.

Tzn. pro diskove rutiny je nutnost mit 4kB mapovane to MEM prostoru (nikoli do
I/O) fyzickym obvodem, ne emulaci.

Re: Unikarta s SD pro Sharpa

Michal Hučík SHARP MZ-800

Tady jsem nakreslil prozatim alespon aktualni blokove schema schema_09-10-21.jpg

Chybi tam propojeni AVR ---> SHARP INT, protoze ta destrukce zrejme s timto signalem souvisela.
Taky se da pocitat s tim, ze do Xilinxe jeste privedeme SHARP BUSCLK a do AVR pripojime SHARP RESET.
Pripadny RTC se pripoji pres I2C k AVR.

Re[3]: Unikarta s SD pro Sharpa

marcel vasak SHARP MZ-800

Dobrý den,
22. října 2009, 13:33:52, napsal jste:

Jeste by to chtelo pridat pararelni port .
Marcel Vasak.
ps:ted mne mrzi ze jsem ori udajnem stehovani do domu z pecovatelskou
sluzbou venoval uz nevim komu meho sharpa z ramdiskem a flopydiskem.
Ach jo velmi mne sharp schazi.


MH> Tak mne napadlo, ze by tu predchozi zpravu mohly blokovat
MH> antispamy, kvuli vlozenemu html kodu s obrazkem 
MH> tak to radeji poslu jeste takhle -
MH> http://ordoz.com/sharp/unicard/schema_09-10-21.jpg




MH> ---


-- 
S pozdravem,
 falcen99
 falcen99[doména skryta]

Re: Unikarta s SD pro Sharpa

Michal Hučík SHARP MZ-800

Mozna spis nez paralelni port, tak nejake chytre prodlouzeni sbernice, 
aby se na to daly pripojovat ruzne flash programatory atp. uvidime kolik 
mista zbude na com CPLD...

Jinak pokud truchlite za svym Sharpem, tak je tu lehka pomoc ;) 
http://www.aukro.cz/search.php?string=sharp&from_showcat=1&category=7482&country
=56

Michal

marcel vasak (sharpemupandora.cz) napsal(a):
Zobrazit citovaný text (22 řádků)
> Dobrý den,
> 22. října 2009, 13:33:52, napsal jste:
>
> Jeste by to chtelo pridat pararelni port .
> Marcel Vasak.
> ps:ted mne mrzi ze jsem ori udajnem stehovani do domu z pecovatelskou
> sluzbou venoval uz nevim komu meho sharpa z ramdiskem a flopydiskem.
> Ach jo velmi mne sharp schazi.
>
>
> MH> Tak mne napadlo, ze by tu predchozi zpravu mohly blokovat
> MH> antispamy, kvuli vlozenemu html kodu s obrazkem 
> MH> tak to radeji poslu jeste takhle -
> MH> http://ordoz.com/sharp/unicard/schema_09-10-21.jpg
>
>
>
>
> MH> ---
>
>
>