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

Od: Petr Žydek
Datum: 20.3.2013 00: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)]