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
Celé vlákno · 11 zpráv
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: Re: Unikarta s SD pro Sharpa
Michal Hučík SHARP MZ-800
Tak mne napadlo, ze by tu predchozi zpravu mohly blokovat antispamy, kvuli vlozenemu html kodu s obrazkem tak to radeji poslu jeste takhle - http://ordoz.com/sharp/unicard/schema_09-10-21.jpg
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> --- > > >