Sháním obvody na konstrukce periferií pro osmibity (II)

Přístroje, součástky, náhradní díly. Náhrady součástek, kompatibilita apod.

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
judeware
Příspěvky: 2018
Registrován: 04 srp 2009, 00:00
Bydliště: okres Písek

#286 Příspěvek od judeware »

K tomu jsem nic nenašel. Přijde mi to jako přispěvatelův (občan RX-20) překlep.
Naposledy upravil(a) judeware dne 07 zář 2024, 10:42, celkem upraveno 1 x.
Uživatelský avatar
judeware
Příspěvky: 2018
Registrován: 04 srp 2009, 00:00
Bydliště: okres Písek

#287 Příspěvek od judeware »

(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(a) judeware dne 06 zář 2024, 16:29, celkem upraveno 1 x.
Uživatelský avatar
RayeR
Příspěvky: 1850
Registrován: 02 srp 2009, 00:00
Bydliště: Praha
Kontaktovat uživatele:

#288 Příspěvek od RayeR »

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.
Uživatelský avatar
judeware
Příspěvky: 2018
Registrován: 04 srp 2009, 00:00
Bydliště: okres Písek

#289 Příspěvek od judeware »

RayeR píše:...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. :oops: :D
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. 8-) 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).
Uživatelský avatar
judeware
Příspěvky: 2018
Registrován: 04 srp 2009, 00:00
Bydliště: okres Písek

#290 Příspěvek od judeware »

Téměř všechno jsem našel v brožuře A4 -> Ing. Zdeněk Vrátil - Grafický subsystém PC (svazek č.9).
Přílohy
Vratil svazek 9.jpg
"Grafický subsystém PC"
"Grafický subsystém PC"
Uživatelský avatar
judeware
Příspěvky: 2018
Registrován: 04 srp 2009, 00:00
Bydliště: okres Písek

#291 Příspěvek od judeware »

[RTG3105iEH (pokus)]

Kód: Vybrat vše

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, :oops: 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).
Uživatelský avatar
judeware
Příspěvky: 2018
Registrován: 04 srp 2009, 00:00
Bydliště: okres Písek

#292 Příspěvek od judeware »

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á. :oops:
Přílohy
IMG_0238.JPG
IMG_0238.JPG
Uživatelský avatar
RayeR
Příspěvky: 1850
Registrován: 02 srp 2009, 00:00
Bydliště: Praha
Kontaktovat uživatele:

#293 Příspěvek od RayeR »

Hodilo by se ti neco z tehle srotu?
Přílohy
telky.jpg
telky.jpg
Uživatelský avatar
EKKAR
Příspěvky: 35012
Registrován: 16 bře 2005, 00:00
Bydliště: Česká Třebová, JN89FW21

#294 Příspěvek od EKKAR »

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...
A kutilmile - nelituju tě :mrgreen: :mrgreen: !!!
Uživatelský avatar
RayeR
Příspěvky: 1850
Registrován: 02 srp 2009, 00:00
Bydliště: Praha
Kontaktovat uživatele:

#295 Příspěvek od RayeR »

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...
Uživatelský avatar
judeware
Příspěvky: 2018
Registrován: 04 srp 2009, 00:00
Bydliště: okres Písek

#296 Příspěvek od judeware »

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! 8-)
Uživatelský avatar
RayeR
Příspěvky: 1850
Registrován: 02 srp 2009, 00:00
Bydliště: Praha
Kontaktovat uživatele:

#297 Příspěvek od RayeR »

Prave ze nemam misto na dalsi skladiste, kvuli 1 EEPROMce to nestoji snad ani za tu praci rozdelavat, par DIPovych 24Cxx ti muzu odsypat ze zasob...
Uživatelský avatar
judeware
Příspěvky: 2018
Registrován: 04 srp 2009, 00:00
Bydliště: okres Písek

#298 Příspěvek od judeware »

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. :D

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.
Uživatelský avatar
RayeR
Příspěvky: 1850
Registrován: 02 srp 2009, 00:00
Bydliště: Praha
Kontaktovat uživatele:

#299 Příspěvek od RayeR »

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 :)
Přílohy
telkys.jpg
telkys.jpg
Uživatelský avatar
judeware
Příspěvky: 2018
Registrován: 04 srp 2009, 00:00
Bydliště: okres Písek

#300 Příspěvek od judeware »

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 :)

A to jsem popsal dvě méně využitelné televize.
Odpovědět

Zpět na „Sháňka po přístrojích, součástkách nebo náhradních dílech“