Konference: Počítač SHARP MZ-800 a emulátory
Od: | Petr Žydek |
Datum: | 20.3.2013 01:46 |
Předmět: | Re: Re: Sekundární adaptér - hardwarová VGA |
Re: Re: Sekundární adaptér - hardwarová VGA: |
Konečně věcný dotaz zainteresovaného bastlíře. "Zda to bude karta pro horni slot..." Karta by se měla vejít do horního slotu, možná včetně "nějakého PS/2" (rád si nechám poradit) a možná včetně RTL8019 (přijde mi komfortnější než obvod Microchip SPI). Možná se pletu, ale je složitější nainicializovat RTL a pak používat funkce send packet/receive packet, než dělat totéž tím Mikročipem? Taky co jiného k tomu na desku přidat. Pro realizaci O.S. s GUI docela šikovná sestava, ne? :-) Ale netrvám na tom (kartu s RTL8019AS na pokusy mám). "Jake chipy tam budou a zda maji technicke manualy" - RTG3105i nebo RTG3105iEH. Dokumentaci jsem sepsal na základě reverse engineeringu karty PINE PT-505S, všechno jsem propískával ručně. Jinak stačí jen obecné znalosti programovaní VGA na úrovni registrů, např.: http://www.osdever.net/FreeVGA/home.htm http://wiki.osdev.org/VGA http://www.kosek.cz/clanky/egavga/ Speciality, které se týkají jen RTG3105, mám sepsané soukromě. "Jsou to chipy bezne k dostani?" - v tuto chvíli raději soukromě mailem. Zdroj mám, ale v současné době nebudu nadšencem, jako v době koupě 100ks WD2791. Jak jsem dopadl? Pro dobrotu na žebrotu. "Dulezite je, k cemu to nekdo bude moci pouzit a zda napr. nejaka CP/M to bude umet pouzivat." - téměř všude, kde je Z-80 (plus stavebnicové stroje jako SAPI), různá MCU apod. U Sharpa jsem využil fíčury inhibit bank. To může limitovat stroje s už tak přetěžovaným memory bankingem jako např. Sinclair. CP/M - dual head asi nikdo nikdy neplánoval (jedině mezičlánek v podobě aplikace v CP/M), ale když to někdo přepíše pro textový VGA režim RTG3105, proč ne? :-) "...jako PCG700 a nebo neco okolo MC6845..." - Motorola je ale spíš CGAčko. Ten Realtek je snad nejmenší VGA čip do ISA na světě a má v sobě DAC (a i VGA BIOS, což netřeba, leda jako CGROM, ale s tím nepočítám). Trident 9000i umí totéž, ale je větší. Výhody VGA jsou snad jasné - monitory jsou všude. Umím si představit tu krásu - vlevo na stole např. ACER V193 (výstup z GDG přes Davidův konvertor), vpravo tentýž monitor (karta VGA). http://www.volny.cz/ekrakonos/vga1/cz_vga1.htm - tohle je pěkné soft/hard řešení (jedno z mnohých), ale jen textové. RTG umí "všechno" a interní řešení v Sharpu je mnohem rychlejší, zápis do VRAM jde udělat běžnými instrukcemi pro práci s pamětí. Atd., atd. "Osobne bych radeji delal nejakou kartu na hradlovym poli" - mám radši řešení hardwarová, kvůli "trvanlivosti obsahu". "a aby to umelo sprity." - to nebyl cíl návrhu. Ale asi by to šlo řešit softwarově přepínáním sad znaků za pochodu. Řešení hardwaru - vycházím z ISA karty PT-505S. Pokud zmíním v textu vývody adresové sběrnice, myslím tím ty na straně RTG, ne Sharp slotu! Zápis do VRAM je úplně stejný jako v PC na rozsahu A0000-BFFFFh (dle režimu). Virtuální 20bitovou adresu tvoří pomocný registr na portu 4Bh (nebo 4Dh, není určeno - zatím drátováno napevno), smysl mají jen sudé hodnoty v rozsahu A0 až BFh a Sharp dodá 13 nižších bitů při zápisu do E000-FFFFh. Přesněji: AD19 -> HIGH (zápis do VRAM povolen) po instrukci OUT E5h, LOW po instrukci OUT E6h (nebo HW resetu). Udržováno jednobitovým registrem. Jedná se o totožnou funkci jakou má slepý signál INH5 na desce Sharpa. AD18 -> trvale GND AD17 -> trvale HIGH AD16..13 -> popsaný pomocný registr na portu 4Bh, neuplatní se všechny bity AD12..0 -> dodá Sharp při zápisu na adresy v rozsahu E000-FFFFh Příklad: textový režim 80x25 znaků od adresy B8000, znak "A" v levém horním rohu obrazovky LD A, B8h OUT (4Bh), A OUT (E5h), A LD A, 41h LD (E000h), A OUT (E6h), A Plnění CGRAM se děje též od B8000 s odlišně nastavenými registry VGA GDC(05,06) a TS(02,04) oproti normálu. Zápis (čtení) I/O portů Úplně stejný jako na PC. Pro jednoduchost hardwaru se AD8..9 uvedou do HIGH, AD7 se invertuje oproti Sharp slotu. Kdo zná registry VGA na PC, orientuje se velice snadno. adresa MZ-800 (hex); čtení/zápis; adresa PC (hex); popis 40; WR; 3C0; ATC register - address/data (0..17h) 41; RD; 3C1; ATC register - data 42; WR; 3C2; miscellaneous output register 43; WR+RD; 3C3; VGA enable 44; WR+RD; 3C4; TSEQ register - address (0..4h) 45; WR+RD; 3C5; TSEQ register - data 46; WR+RD; 3C6; Pallette mask 47; RD/WR; 3C7; DAC state/DAC address read mode register 48; WR; 3C8; DAC address write mode register 49; WR; 3C9; DAC data register 4A; RD; 3CA; feature control register 4B; WR; jen MZ-800, viz text 4C; RD ;3CC; miscellaneous output register 4D; alternativa k 4Bh 4E; WR+RD; 3CE; GDC register - address (0..8h) 4F; WR+RD; 3CF; GDC register - data 54; WR+RD; 3D4; CRTC register - address (0..18h) 55; WR+RD; 3D5; CRTC register - data 5A; RD; 3DA; input status register & ATC address-data switch 5A; WR; 3DA; feature control register Speciální porty RTG3105iEH 3D6, 3D7, 3D8, 3D9, 3DD a nedokumentované registry GDC a CRTC jsou (zatím) nad rámec tohoto textu. Petr de Zviqov
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)]