Založen: Aug 04, 2009 Příspěvky: 1486 Bydliště: okres Písek
Zaslal: st září 04 2024, 21:28 Předmět:
(Navazuju na příspěvek z 25.8. 2024 20:20)
K tomu RTG3105iEH - při přednáškové debatě v Holicích na mě hledělo mnoho párů očí, na což jsem reagoval v tom smyslu, že nemá cenu uvádět detaily a nechám to na jindy (a raději písemně).
Experimentální připojení adaptéru VGA (původně určeného do ISA slotu v PC) jsem provedl nejjednodušším způsobem, jak to šlo. VGA používá množství I/O portů na řadě rozsahů, určených jednotlivými bloky adaptéru, viz stránky Jiřího Koska (Programování grafických karet EGA/VGA).
V teoretických výkladech padají pojmy jako externí registry, registry sequenceru, CRTC, GDC, atributové registry, registry DAC... a zaznívá řada hodnot adres ve dvanáctibitovém I/O adresování ISA (3C0h+3C1h, 3C2h, 3C3h, 3D4h+3D5h atd.).
Sharp má I/O interfejsing osmibitový, nepočítám do toho instrukce OUT (C),A apod., ve kterých je adresa defacto šestnáctibitová. Zápis do I/O portů jsem řešil inverzí AD7 a "zdánlivým ignorováním bitů AD8..AD11". Ve výsledku se můj pokusný konverzní adaptér chová tak, že pokud je žádoucí zápis např. do registrů CRTC, stačí k tomu jeden zápis na port 54h (55h), vykonávaný Sharpem. Hardware uvede AD7 do HIGH a na AD8..11 pošle 0011B, čímž se docílí adresy 3D4h "na straně karty". Obdobné je to při zápisech do dalších bloků registrů VGA.
Pokud jde o zápisy instrukcemi pro práci s pamětí (tedy v tomto případě do "framebufferu"), využil jsem vlastnosti počítače MZ-800, který po instrukci OUT (E5h),A prohlásí úsek své paměti E000h..FFFFh za "disabled". Následné zápisy od E000h potom představují zápisy do "videopaměti" karty VGA, pokud je nastavený její textový režim a jsou nadefinované zobrazované znaky. Malá úprava na experimentálním adaptéru (MZ ->VGA) spočívala v připojení adresních vodičů AD8..AD19 na takové hodnoty, aby si při zápisu strobovaném signálem /MEMWR karta myslela, že jde o legitimní zápisy od B8000h (což jest framebuffer IBM MDA, 4000 bajtůch; v pořadí znak, atribut, znak, atribut... [počínaje levým horním rohem obrazovky]). Při tomto experimentu jsem nebyl ničím omezen, anžto úsek paměti Sharpa E000h..FFFFh je velký 8192 bajtů a framebuffer MDA je přibližně 2x menší.
Naposledy upravil judeware dne pá září 06 2024, 15:29, celkově upraveno 1 krát.
Založen: Aug 02, 2009 Příspěvky: 1437 Bydliště: Praha
Zaslal: čt září 05 2024, 15:54 Předmět:
Jeste abych si to teda pripomnel, ktere vsechny registry se musi jako minimum naprogramovat, aby to aspon zobrazilo neco v txt rezimu? Co ten generator znaku? Je naplneny nakym default fontem nebo se musi napred nakrmit? Na dekodovani adrws by bylo asi nejsnazsi pouzit naky GAL.
Založen: Aug 04, 2009 Příspěvky: 1486 Bydliště: okres Písek
Zaslal: čt září 05 2024, 19:45 Předmět:
RayeR napsal(a):
...ktere vsechny registry se musi jako minimum naprogramovat...?
Já vůl si při tehdejších pokusech vedl jen bídnou dokumentaci a tak v tom sám po letech plavu.
Ale našel bych onen plnící prográmek (v Basicu MZ-1Z016), z čehož se to dá vydedukovat. Když nepočítám zápis definice znaků a popsání framebufferu periodickým řetězcem "MZ-800 ", šlo o pár desítek zápisů strobovaných /IOW.
Vzorové obrazy znakových sad bývají vždy v externí (E)EPROM, avšak tento Realtek má "VGA add ROM BIOS" v sobě (v případě Sharpa je mi nanic). Ve framebufferu (pracovní "DRAM", minimálně 2ks 44256) po zapnutí samozřejmě nejsou, musí se naplnit při inicializaci PeCe. Postupoval jsem tak, že jsem podle Vrátilových tabulek (z tematických skript o PC z raných 90. let) naplnil registrové minimum, pak definice znaků "mezera", M, Z, "pomlčka", 8, 0 a nakonec došlo na nápis MZ-800 (ve vláčku přes celou obrazovku). A abych si ulehčil práci, nejsou znaky dle ASCII. Prostě znak mezera představuje při zápisu bajt 00h, M je 01h, Z je 02h, pomlčka 03h, číslice 8 je 04h a nula je 05h. Definice znaků spočívala v zápisu příslušných bajtů od začátku "bitplejnu" do 6×(počet bajtů na znak). Při zápisu do framebufferu jsem otrocky dokola zapisoval 01, 02, 03, 04, 05, 05, 00 (všechno hexa), až do zaplnění obrazovky.
Na GAL tenkrát nedošlo (to počká), prostě jsem to nadrátoval tak, aby karta sama od sebe nic nedělala, po zápisech do I/O portů jsem na vrabčím hnízdě MZ adaptéru přepnul dva "turboswiče" ze staré bedny AT, program pokračoval zápisem definice znaků a obsahem framebufferu, "swiče" jsem přepnul zpět a zapsal poslední I/O dávku (hlavně paletové registry apod.), a pak jsem jednou za iks sekund na efekt měnil obsah paletového registru, který představoval barvu písma znaků (pokud se pamatuju).
Založen: Aug 04, 2009 Příspěvky: 1486 Bydliště: okres Písek
Zaslal: pá září 06 2024, 21:53 Předmět:
[RTG3105iEH (pokus)]
kód:
1 INIT"CRT:M1"
2 PRINT"Vychozi stav - zapnuty monitor vypsal:"
3 PRINT CHR$(34);"No signal";CHR$(34);" a usnul":PRINT
4 BEEP:WAIT3000
5 PRINT"Inicializace standardnich registru, LCD"
6 PRINT "vypisuje: ";CHR$(34);"Input not supported";CHR$(34);" apod."
7 PRINT"(H:63kHz, V:140Hz)":PRINT
9 ' miscellaneous output register (MZ 42h => PC 3C2h)
10 OUT@$42,$67
20 ' parameter control register (MZ 5Ah => PC 3DAh)
30 OUT@$5A,1
40 ' VGA enable (MZ 43h => PC 3C3h)
50 OUT@$43,1
60 ' pallete mask (MZ 46h => PC 3C6h)
70 OUT@$46,$FF
95 ' timing sequencer (MZ 44h/45h => PC 3C4h/3C5h)
100 RESTORE 1000:FOR N=0 TO 4
110 READ BT:OUT@$44,N:OUT@$45,BT
120 NEXT N
130 ' graphic data controller (MZ 4Eh/4Fh => PC 3CEh/3CFh)
140 RESTORE 1100:FOR N=0 TO 8
150 READ BT:OUT@$4E,N:OUT@$4F,BT
160 NEXT N
170 ' CRT controller (MZ 54h/55h => PC 3D4h/3D5h)
180 RESTORE 1200:FOR N=0 TO $18
190 READ BT:OUT@$54,N:OUT@$55,BT
200 NEXT N
210 ' attribute controller (MZ 40h/41h => PC 3C0h/3C1h)
220 INP@$5A,A
230 RESTORE 1300:FOR N=0 TO $17
240 READ BT:OUT@$40,N:OUT@$40,BT
250 NEXT N
260 BEEP:WAIT 5000
270 PRINT"Korekce, TSEQ(01)=08, obrazovka bila."
280 PRINT"(H:32kHz, V:70Hz)":PRINT
290 ' TSEQ(01)=08
300 OUT@$44,1:OUT@$45,8
310 BEEP:WAIT 5000
320 PRINT"Paletovy registr No.(0)=RGB(0,0,0)":PRINT
330 OUT@$48,0:OUT@$49,0:OUT@$49,0:OUT@$49,0
340 BEEP:WAIT 5000
350 PRINT"Zakaz paletovych registru EGA, obraz"
360 PRINT"lita (chybny pixel clock).":PRINT
370 ' zapis ATC(00), jen adresa
380 INP@$5A,A:OUT@$40,$20
390 BEEP:WAIT 5000
400 PRINT"Plneni nedokumentovanych registru CRTC"
410 PRINT" a GDC, obraz - vychozi stav PwrON."
415 PRINT"[ CRTC(1A)=50, GDC(15)=7B ]":PRINT
420 ' zapis CRTC(1A)=50, GDC(15)=7B
430 OUT@$54,$1A:OUT@$55,$50
440 OUT@$4E,$15:OUT@$4F,$7B
450 BEEP:WAIT 5000
460 PRINT"PREPNI NA MemWR (zluty, bily) A STISKNI"
465 PRINT"D PRO POKRACOVANI!":PRINT
470 GET A$:IF A$="" THEN 470
480 ' popsani obrazovky textem "MZ-800 "
490 FOR N=$E000 TO $EF9F STEP 14:POKE N,0,$17,1,$17,2,$17,3,$17,4,$17,4,$17,5,$17:NEXT N
500 PRINT"Popsano jednotne? pokud ano, prepni"
510 PRINT"na I/O a stiskni D, jinak O - opakovani.":PRINT
520 GET A$:IF A$="" THEN 520
530 IF A$="O" THEN 490
540 IF A$<>"D" THEN 520
550 PRINT"Prenastaveni registru na zapis do CGRAM.TSEQ(02)=04"
560 PRINT"TSEQ(04)=04"
570 PRINT" GDC(05)=00"
580 PRINT" GDC(06)=0C":PRINT
600 OUT@$44,2:OUT@$45,4
610 OUT@$44,4:OUT@$45,4
620 OUT@$4E,5:OUT@$4F,0
630 OUT@$4E,6:OUT@$4F,$C
640 BEEP:WAIT 5000
650 PRINT"Zapis hodnot do CGRAM"
660 PRINT"PREPNI NA MemWR (zluty, bily) A STISKNI"
665 PRINT"D PRO POKRACOVANI!":PRINT
670 GET A$:IF A$="" THEN 670
680 ' definice znaku do GCRAM VGA
690 RESTORE 2000:FOR N=$E000 TO $E0A0 STEP 32:FOR M=0 TO 15:READ BT:POKE N+M,BT:NEXT M:NEXT N
700 PRINT"Popsano vse? Pokud ano, prepni na I/O"
710 PRINT"a stiskni D, jinak O - opakovani.":PRINT
720 GET A$:IF A$="" THEN 720
730 IF A$="O" THEN 690
740 IF A$<>"D" THEN 720
750 PRINT"Prenastaveni registru na zapis do VRAM. TSEQ(02)=03"
760 PRINT"TSEQ(04)=02"
770 PRINT" GDC(05)=10"
780 PRINT" GDC(06)=0E":PRINT
800 OUT@$44,2:OUT@$45,3
810 OUT@$44,4:OUT@$45,2
820 OUT@$4E,5:OUT@$4F,$10
830 OUT@$4E,6:OUT@$4F,$E
840 BEEP:WAIT 5000
850 PRINT"Paletovy registr No.(1)=RGB(0,0,32d)":PRINT
860 OUT@$48,1:OUT@$49,0:OUT@$49,0:OUT@$49,32
870 BEEP:WAIT 5000
880 PRINT"Paletovy registr No.(7)=RGB(32d,32d,32d)":PRINT
890 OUT@$48,7:OUT@$49,32:OUT@$49,32:OUT@$49,32
900 BEEP:WAIT 5000
910 PRINT"Zakaz kurzoru - CRTC(0A)=2D":PRINT
920 OUT@$54,$A:OUT@$55,$2D
930 BEEP:WAIT 5000
940 OUT@$48,1:OUT@$49,0:OUT@$49,0:OUT@$49,32
950 PRINT"Pozadi - modra":PRINT:WAIT 3000
960 OUT@$48,1:OUT@$49,63:OUT@$49,0:OUT@$49,0
970 PRINT"Pozadi - syta cervena":PRINT:WAIT 3000
980 GOTO 940
1000 DATA 3,0,3,0,2
1100 DATA 0,0,0,0,0,$10,$0E,0,$FF
1200 DATA $5F,$4F,$50,$82,$55,$81,$BF,$1F,0,$4F,$0D,$0E,0,0,0,0,$9C,$8E,$8F,$28,$1F,$96,$B9,$A3,$FF
1300 DATA 0,1,2,3,4,5,$14,7,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F,$0C,0,$0F,8,0,0,$0F,8
2000 ' fonty textu "MZ-800"
2010 DATA 0,0,$C3,$E7,$FF,$FF,$DB,$C3,$C3,$C3,$C3,$C3,0,0,0,0
2020 DATA 0,0,$FE,$C6,$86,$0C,$18,$30,$60,$C2,$C6,$FE,0,0,0,0
2030 DATA 0,0,$00,$00,$00,$00,$00,$FE,$00,$00,$00,$00,0,0,0,0
2040 DATA 0,0,$7C,$C6,$C6,$C6,$7C,$C6,$C6,$C6,$C6,$7C,0,0,0,0
2050 DATA 0,0,$38,$6C,$C6,$C6,$D6,$D6,$C6,$C6,$6C,$38,0,0,0,0
2060 DATA 0,0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,0,0,0,0
Je to už mnoho let, takže jsem se v předchozích příspěvcích párkrát spletl ve faktech (např. v přiřazení hexa kódů ke znakům). V příkladu je "mezera" definovaná jako poslední, pod číslem 05h. Taky jsem měl práci s vytvořením textu, anžto původní soubor v Basicu MZ je tokenizovaný a tudíž nelze načíst moderním editorem jako holý text. Musel pomoci MZ800EMU.EXE a asi dvě konverze skrze Basic, program Turbo Copy V1.21 a konvertor WAV -> MZF (součást emulátoru Zdeňka Adlera).
Založen: Aug 04, 2009 Příspěvky: 1486 Bydliště: okres Písek
Zaslal: ne září 15 2024, 21:40 Předmět:
Výše uvedený program v MZ Basicu posloužil k experimentálnímu rozchození adaptéru "MZ -> VGA" (viz foto). Protikus konektoru PFL50 je součástí základní desky MZ-800, na něj v počítači navazuje kšanda cca 10cm dlouhá a potom následují dva sloty ve stylu PC-BUS (ale jen 50 kontaktů). V přípravku je hojně a improvizovaně drátováno, takže k adresaci stačí dva logické IO a mezi zápisy strobovanými (na PC) SMEMW, resp. IOW, nutno ručně cvaknout dvěma přepínači (Turbo sw. z panelů starších PC).
Karta s RTG3105iEH je z mnou poptávaných věcí ta nejhůř dostupná.
Založen: Mar 16, 2005 Příspěvky: 33136 Bydliště: Česká Třebová, JN89FW21
Zaslal: po září 16 2024, 7:22 Předmět:
To takhle říct nejde, to bys musel otevřít a vyfotit vnitřní desku tak, aby bylo čitelný označení na švábech. _________________ Nasliněný prst na svorkovnici domovního rozvaděče: Jó, paninko, máte tam ty Voltíky všecky...
Založen: Aug 02, 2009 Příspěvky: 1437 Bydliště: Praha
Zaslal: po září 16 2024, 13:58 Předmět:
Sem jel zrovna kolem, bez sroubovaku a nechtelo se mi u toho moknout... Treba to jude pozna uz podle xichtu, ze v tomle by mohlo neco byt nebo naopak, ze je to treba uz moc novy a nic...
Založen: Aug 04, 2009 Příspěvky: 1486 Bydliště: okres Písek
Zaslal: po září 16 2024, 16:49 Předmět:
Je to "nadměrně moderní" (z let 1996..2005) a teletext je součástí MCU. Ale - EEPROM v těch televizích jsou, občas slušné pasívy, univerzální tranzistory atd. Takže jestli je máš možnost někde odložit, převzal bych je v den konání akce Bytefest (26.10., Toulcův dvůr Hostivař). Přístupné pro veřejnost!
Založen: Aug 04, 2009 Příspěvky: 1486 Bydliště: okres Písek
Zaslal: po září 16 2024, 20:06 Předmět:
Bytefest je cca za měsíc. Taky jsem nepsal nic o rozebírání, domníval jsem se, že nějaký kout na tu dobu (uskladnění TV) bys měl k dispozici. Kdybych je měl (teoreticky) před sebou, je to práce na pár minut. 4 (6) křižáků, několik cvaknutí štipkami a deska z TV je venku (ta na patici obrazovky je podřadná). Největší zdržení představuje sesazení obou plastů korpusu.
Vyjmuté desky vkládám do kartónu, doma hned pod sprchu, následně řeším, co vypájet přednostně, případně zda má smysl celek přidávat do beden ve skladu.
Založen: Aug 02, 2009 Příspěvky: 1437 Bydliště: Praha
Zaslal: út září 17 2024, 2:02 Předmět:
Dobra, tak sem se tam teda vypravil (kupodivu mistni houmlesaci asi lezi s krabicakem nekde v teple a suchu kanalu - med nikdo nechce) a kuchnul to. Rekl bych, ze pro tebe je to az prilis moderni a high integrated, cipu je tam velmi pomalu. Na 1 desce je 24WC16P, TDA7267A a zespod nake SMD TQFP procaky ST STV2238D a DW195C-OE5, P990U01461. Na druhe desce je TDA16846, TDA2822, TDA8357 a velky DIL procak Philips TDA9345PS. Tak mi rekni, jesi to ma nakou cenu nebo jesi to tam mam jit vyhodit zpatky. Prip. jesi chces jen tu EEPROM nebo jiny cip, tak ti to vypajim, abych nemusel tahat a skladovat celou desku. Jeste nevim, jesi na Bytefest pojedu a pokud, tak ne autem...
No aspon ze sem si odnesl zpatky jeste pytlicek se 3 LGA procakama 2 pametma z NTB, takze ani ja nejdu s prazdnou
Založen: Aug 04, 2009 Příspěvky: 1486 Bydliště: okres Písek
Zaslal: út září 17 2024, 15:52 Předmět:
Doma v klidu bych vypreparoval všechno možné. Z obou: elektrolyty nad 1000µF, pokud to nejsou Capxon, Luxon apod.
Vlevo:
• primární filtrační C
• zdrojový tranzistor
• řádkový tranzistor
• zdrojový filtr (L+2ks krabicový C)
• pojistka s držákem
• BY228 (pokud je pod řádkovým transf.)
• krystaly kromě 4,43 a 8,86MHz
• přední LED
• tranzistor (resp. 78xx) vpravo vpředu
• EEPROM v DIP8
• je-li Japan, brávám i vypínač
Vpravo:
• primární filtrační C
• zdrojový tranzistor
• řádkový tranzistor (nějak ho tam nevidím, nad pahýlem zeleného vodiče?)
• zdrojový filtr (L+2ks krabicový C)
• pojistka s držákem
• zdrojový TDA16846
• krystaly kromě 4,43 a 8,86MHz
• přední LED
• zelené a oranžové polštářky (je jich jen pár)
• EEPROM v DIP8
• přijímač IR, pokud lze vyčíst, že je "36kHz"
• hřebínek pod MCU
• trimry, pokud se mi subjektivně líbí
• někdy vytahuju i odjistitelné stahovací pásky
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.