Fórum témák

» Több friss téma
Lapozás: OK   2 / 2
(#) gyoran válasza bpatrik111 hozzászólására (») Szept 12, 2016 /
 
Nem volt merész ötlet.
kb 1982-ben én már csináltam ilyet.
32 x 32 -es karakteres kijelző. Volt benne 1K RAM. Volt benne egy halom számláló. 3 bit a pixelek léptetésére, 5 bit egy videó sorhoz, de lehet, hogy 6 bit, mert ez csinálta a sorszinkront is.
Aztán 3 bit a karakterek magasságához, 6 bit a 32 sorhoz és a képszinkronhoz. Váltottsorral nem foglalkoztam, mégis működött. Kapott a végére egy RF modulátort. A karaktergenerátor EPROM volt, a RAM címezte. Fél karakteridő után már stabil volt a kimenetén az adat, beírtam egy léptetőregiszterbe és kiléptettem a videójelre. Utána lehetett a RAM címet növelni, az meg vette a következő karaktert.
Az időzítéssel kellett sokat foglalkoznom, de kapásból ment. Ha jól emlékszem lazán ráfért egy 10 x 10 cm-es panelre.
Megmutattam pár barátomnak, úgy néztek rám, mintha felépítettem volna az Orion űrhajót - ha ez mond valamit
Zseniális kihívás. Ha jól emlékszem egy videó jel soridő volt az alap, azt felbontottam pixel időablakokra, abból felépítettem a 32x8 pixelt, a sorszinkront és az elő- és utóvállat (ha jól emlékszem, ez a sorszinkron és a képinformáció közötti fekete rész) plusz a margót.
A sorokból szintén számlálókkal felépült a 32 karaktersor , a felső-alsó margó és a képszinkron.
A RAM-ot a megfelelő időben kapuzva tudtam írni (talán képszinkron alatt) és a próbához PIKO modellvasút váltókapcsoló nyomógombjaival állítottam az adatot és a címet.
Épült hozzá CPU kártya is, aztán...
... aztán megszűnt a lelkesedés.
Valahol áss elő videó jel felépítésről rajzot, ha kell, talán még tudok segíteni a tervezésben. Akkor egyetemista voltam, ma 3X ráment...

Közben látom wbt is majdnem ugyanezt írta. A képszinkront én nem fűrészeltem, csak egy nagy szinkronjel volt. A szinkronjeleket viszont nem monostabillal generáltam, hanem kikapuztam a számlálókból, így volt egy órajelem, ha az jó volt, állt a kép. Meg az RF modulátort kellett tekergetni.
A hozzászólás módosítva: Szept 12, 2016
(#) killbill válasza gyoran hozzászólására (») Szept 13, 2016 /
 
Idézet:
„A képszinkront én nem fűrészeltem, csak egy nagy szinkronjel volt.”
Ha a kepszinkron 4-5 sor ideig tart, es kozben vannak sorszinkron impulzusok is, akkor egyszeruen egy exor-ral kell a ket szinkronjelet osszekeverni, es mar kesz is a fureszeles. En mindig igy csinaltam. Persze nincs dupla frekvenciaju sorszinkron, mint a valtottsorosnal, de nem is kell, az analog TV tokeletesen behuz erre is.
(#) Mriya válasza killbill hozzászólására (») Ápr 22, 2017 /
 
Szia!
Egy Z80-on alapuló gépecske építésén ügyködöm egy ideje, de a video megjelenítésnél elakadtam. Sokáig tanakodtam, milyen logikát alkalmazzak, de végül mindig a 6845-nél kötöttem ki (256x256-os felbontású grafikát szeretnék, 2 biten). Találtam doksikat hozzá, de példa kapcsolásokat nem igazán.
Régóta nézegettem már az általad épített számítógépet, és nagyon lenyűgözött, mennyi tudással rendelkezik a viszonylag kevés kártyából összerakva.
Nem tudom, tudnál-e segíteni, merre induljak el, mire kell figyelni. Esetleg ha volna valamilyen kapcsolási rajzod, az is sokat segítene. Köszönöm előre is!
(#) wbt válasza Mriya hozzászólására (») Ápr 22, 2017 /
 
A Z80-hoz nem könnyebb illeszteni a hozzávaló videó IC-t? Ha jól rémlik,
i8275 volt (vagy 73????) A 6845 biztos többet tud, ha jól rémlik.
(#) otvenkilenc válasza Mriya hozzászólására (») Ápr 22, 2017 /
 
Hagyományos digitális IC-kkel van videókártya kapcsolási rajzom, ha érdekel beszkennelem.
(#) otvenkilenc válasza bpatrik111 hozzászólására (») Ápr 22, 2017 /
 
Az operációs rendszert már megírtad?
(#) Hp41C válasza Mriya hozzászólására (») Ápr 22, 2017 /
 
Nicsak, mit található a régi rendszerekről:
MMT rendszer a MIT-60 kiállításon, Medicor MOD-81
Sokáig koptattam egy folyosót a "feltalálokkal".
A hozzászólás módosítva: Ápr 22, 2017
(#) killbill válasza Mriya hozzászólására (») Ápr 22, 2017 /
 
Kapcsolasi rajzom egesz biztosan nincs. A 6845 elvegzi neked a szinkronjelek eloallitasat, az osszes idozitest. Ossze kell kotni a RAM-mal, kell egy (ket) shift regiszter, ami sorositja a RAM-bol felolvasott tartalmat es kell egy keveske logika melle meg. Ezt meg kell tervezni az adott korulmenyeknek megfeleloen.
Ami nem mindig trivialis, hogy hogyan lehet "havazas" mentesre megcsinalni, ugyanis egy sima RAM-ot nem lehet egyszerre irni es olvasni is. Marpedig a 6845 nagyjabol folyamatosan olvassa a RAM-bol a kepet, es ha kozben a z80 meg irni vagy olvasni akarja, akkor osszeakadnak. Erre az a legegyszerubb megoldas, hogy a CPU-nak prioritasa van, azaz, ha a processzor irja a video RAM-ot, akkor a video terito hulyeseget, esetleg 0-t fog olvasni, ami a kepen 8 keppontnyi villanast jelent. Ha sokat irod a kepernyot, akkor ez elegge zavaro. Lehet trukkozni modern 10-20ns eleresu RAM-okkal, de ott mar kicsit bonyolultabb logikak kellenek. Vagy lehet varakoztatni a CPU-t (WAIT jel) es csak a sor- illetve kepvisszafutas alatt engedni, hogy hozzaferjen a video memoriahoz. Ha jol emlekszem, nekem igy van megoldva.
(#) killbill válasza wbt hozzászólására (») Ápr 22, 2017 /
 
Az Intel i8275 pont annyira nem hozza valo a z80-hoz, mint a Motorola MC6845. Persze attol meg mindkettot lehetett barmihez illeszteni.
Az i8275-ben ket sornyi (2x80 byte) buffer volt, es DMA-t igenyelt a feltoltese. Döme baratom gepeben ilyen chip volt, de o ugy oldotta meg, hogy a 8275 DRQ-ja megszakitast kert, es sw-bol toltotte fel a buffert. Viszont ez a chip csak karakteres megjelenitesre volt jo, es nem lehetetett vele igazi szines display-t csinalni, mert nem volt lehetoseg attributum RAM hasznalatara. A sima karakterek helyere lehetett attributum byte-okat tenni, amik ki- bekapcsoltak bizonyos megjelenitesi funkciokat (inverz, villog, alahuzas..). De ilyenkor abban a karakterpozicioban space jelent meg, ahol a vezerlobyte volt.
(#) Mriya válasza wbt hozzászólására (») Ápr 22, 2017 /
 
Sokat nyomott a a latba a kiválasztáskor, hogy nem sikerült beszereznem semmilyen alternatívát, 6845 viszont itthon is van a fiókban 2-3 db.
(#) Mriya válasza otvenkilenc hozzászólására (») Ápr 22, 2017 /
 
Igen, ha nem okoz gondot, az a megoldás is érdekelne!
(#) Mriya válasza Hp41C hozzászólására (») Ápr 22, 2017 /
 
Ez jó, ezt még nem láttam eddig! Volt itt azért tudás rendesen a régi időkben!
(#) Mriya válasza killbill hozzászólására (») Ápr 22, 2017 /
 
A havazásmentességet én is a WAIT jellel terveztem megoldani, igaz nem voltam benne biztos, hogy működne a dolog. Shift regiszterek is megvannak (azért két bit, mert van olyan MDA monitorom, ami képes négy árnyalatot kezelni), viszont ami megkavart, az a MA és RA jelek bekötése, ami grafikus módnál kicsit meg van keverve a szöveges módhoz képest, amire eredetileg kitalálták. Illetve a szinkronjelek időzítése és hossza is kérdéses még számomra.
(#) killbill válasza Mriya hozzászólására (») Ápr 22, 2017 /
 
A havazasmentesseg tutira mukodik WAIT-tel. Nem hagyott nyugodni, es elokerestem a regi rajzokat. Igazabol csak reszletek, mert teljes egeszeben sosem volt lerajzolva, es az sem derul ki, hogy a tobb rajzbol melyik van megepitve. Meg kulonben is, 25 eve volt... Szoval a lenyeg, hogy nekem nem var a sorszinkronig, hanem csak par CPU orajelet. De nekem egy 8 MHz-es HD64180 van a gepben, nem pedig z80. A 6845-nek 9 DOT clock-onkent kell ket byte a RAM-bol (egy karakter, egy szin). A dot clock 16 MHz nalam. A 9 orajelbol 5 orajelnyi ido van fenntartva a CPU hozzaferesre. Ez elegendo a processzor rd/wr vegrehajtasara, ezert csak addig kell a WAIT-et tartani, amig az 5 DOT clock hosszusagu resz el nem kezdodik.

A teljes memoriacimet ugy tudod kirakni, hogy az MA adja a felso biteket, az RA pedig az alsokat. Mondjuk beallitod 8 sorosra a karaktert, igy az RA[2:0] adja a RAM also 3 cimbitjet, a folotte levoket pedig az MA. Hogy a 2 bit/pixelt hogy oldod meg, az mar egy mas kerdes. Ha egy byte-ba akarsz negy pixelt tenni, akkor ket negybites shift kell, es 8 bites lesz a RAM-od. Ebben az esetben osszesen 14 cimbited lesz: {MA[10:0], RA[2:0]}. Ha ket video plane-t csinalsz, akkor 16 bit szeles RAM kell, ket 8 bites shift, viszont a RAM cim csak 13 bit lesz: {MA[9:0], RA[2:0]}. Csak ott meg a CPU interface-t kell megtrukkozni, hogy valamelyik processzor cimbit a RAM also/felso adatbyte-ja kozott valtson.

A szinkronjelek idozitese az kizarolag a hasznalt monitor fuggvenye.
A hozzászólás módosítva: Ápr 22, 2017
(#) killbill válasza Hp41C hozzászólására (») Ápr 22, 2017 /
 
Idézet:
„Sokáig koptattam egy folyosót a "feltalálokkal".”
A Dévai Endre csapatát nem ismerted a Medicor-ban? (Váci úti egység).
(#) Mriya válasza killbill hozzászólására (») Ápr 22, 2017 /
 
Értem, tehát akkor órajelből számolva is megoldható. Eredetileg a Display Enable jelből akartam kiindulni, hiszen talán az is csak magas, amíg aktív területen rajzol. Igen, láttam hogy a tiéd meg van turbózva egy jóféle procival, én még egy sima 4 Mhz-es Z80-al operálok.
8 bites SRAM-ot tervezek használni, 2db 4 bites shift regiszterrel. A szinkronjeleknél meg majd akkor kisérletezgetek Remélem nem túl érzékeny a monitor rá.
Köszi, hogy foglalkozol ezzel, rengeteget segítesz!
(#) Gafly válasza Mriya hozzászólására (») Ápr 22, 2017 /
 
Vagy van a "B"-terv, Dual-port RAM.
A szakdolgozatom alfanumerikus display tervezése volt, igaz jórészt TTL IC-kel, 8080-as processzorhoz.
Mellesleg, ha már Z80-at használsz, miért nem alkalmazod Sinclair úr zseniális ötletét?
(#) Hp41C válasza killbill hozzászólására (») Ápr 22, 2017 /
 
Nem náluk koptattam, hanem Máthé Jánoséknál.
(#) Hp41C válasza Mriya hozzászólására (») Ápr 22, 2017 /
 
24 sor 80 karakteres "display vezérlő" vezérlő IC nélkül is működött. 16K *16 bit D-RAM, 16 bites léptető regiszter. Ha elé gyors RAM -ot használtunk, két kép frissítési ciklus közé befért egy CPU írás vagy olvasás. 16MHz pont frekvenciával járt. Nem volt benne LSI.
(#) Hp41C válasza Gafly hozzászólására (») Ápr 22, 2017 /
 
ULA -t készíteni otthon???
(#) killbill válasza Mriya hozzászólására (») Ápr 22, 2017 /
 
A te esetedben muszaj lesz megvarni a sorszinkront, mert nincs eleg szabad ido a z80 szamara a video olvasasok kozott. Ha neked 4 pixelenkent kell olvasni a RAM-ot, es mondjuk a DOT clock olyan 6MHz, akkor 1 orajeig olvassa a video terito, a fennmarado 3 (500ns) marad a CPU szamara, ami nem lesz eleg, mert nem tudod garantalni, hogy ennyi ido alatt a 4MHz-es z80 befejezze az irast/olvasast. Ha 16 bit szelesre csinalod a RAM-ot, vagy megelegszel 1 bit/pixel szinmelyseggel, akkor eleg csak 8 pixelenkent olvasnia a video teritonek, igy 1.16us maradna a CPU hozzaferesre, ami viszont mar elegendo. Harmadik megoldas az, hogy 8 orajelenkent olvas a RAM-bol, de 2 egymas utani byte-ot, igy megtarthatod a byte-onkent 4 pixel elrendezest, es meg igy is marad kereken 1 us a CPU szamara. De azt mindenkeppen vedd vigyelembe a tervezesnel, hogy a sw-nek is konnyebb dolga lenne az 1 bit/pixel formatummal, amikor rajzol a memoriaba. Meg akkor is, ha ket plane van. Egy 4 MHz z80 azert eleg lassu ekkora grafikahoz, foleg, ha 2 bit/pixel kell irkaljon. Nekem volt EF9366 grafikus display processor-om (512x256), ami sokkal gyorsabban irt a RAM-ba, mint egy z80 software-bol, es ez is lassu volt szoveges munkakhoz. Nem veletlenul hagytam el, es hasznaltam csak karakteres display-t.

Miert kell kiserletezni? Ha tudod, hogy milyen a monitor, akkor annak megfeleloen kell beallitani a szinkront. A TV-t ismerjuk, 15625Hz, 50Hz. A regi PC-s monitorokrol meg van info. A Mono Hercules monitor 18.432kHz/50Hz, a CGA 15.75kHz/60Hz, az EGA 21.75kHz/60Hz.
(#) killbill válasza Hp41C hozzászólására (») Ápr 22, 2017 /
 
Ebbe sem kellene LSI, mert kb. 4 db 74LS393 meg par kapu, komparator eleg bele. Marmint a RAM cimzes es szinkronjel es blanking eloallitasahoz. A tobbit meg a 6845 melle is meg kell epiteni. Medicor. Nem ismerem Mathe Janost. Ok nem is a Vaci uton voltak?
(#) killbill válasza Gafly hozzászólására (») Ápr 22, 2017 /
 
Sinclair zsenialis volt, ez nem vitas, de ennek azert volt ara is. Rettento nagy sw terheles a CPU-n. Az ido 90%-aban mast sem csinalt, csak a videot teritette. Amugy meg iszonyu gány HW: az ULA beolvassa a RAM-bol a byte-ot, amit a CPU megcimez mint utasitast, majd eroszakkal nullat ir a buszra, hogy a z80 mar azt olvassa be es ettol egy nop-ot hajt vegre, mikozben az ULA a ROM cim also bitjeit is felulirja a CPU-val szemben... Az interrupt lab meg ossze van kotve az A6 cimvezetekkel. Az se semmi... Ezt kitalalni valoban zseninek kellett lenni. Hogy a video sor vegi HALT utasitast megis engedi az ULA a cpu-nak beolvasni, ettol megall az egesz, es majd a TV sor vegen a z80 DRAM frissites regisztere (r) megszakitast ker az a6-on keresztul. Mert Sinclair tudta, hogy a z80 akkor mintavetelezi az INT labat, amikor eppen frissites van folyamatban, azaz az R regiszter van a cimbusz aljan.
(#) killbill válasza killbill hozzászólására (») Ápr 22, 2017 /
 
Rosszul mondtam a cimeket. Ha 256 pixel szeles a kep es 2 bit/pixel (4 pixel/byte), akkor a RAM cim also 6 bitje az MA[5:0] a kovetkezo 3 cimbit az RA[2:0] es a legteteje az MA[10:6]. Tehat igy nez ki: {MA[10:6], RA[2:0], MA[5:0]}
(#) Hp41C válasza killbill hozzászólására (») Ápr 22, 2017 /
 
Olvastad amit linkeltem? Velük koptattam a folyosót a BME -n.

Arbiter.JPG
    
(#) killbill válasza Hp41C hozzászólására (») Ápr 22, 2017 /
 
Igen, olvastam, csak ebbol szamomra nem derult ki, hogy te a BME-n dolgoztal vagy a Medicor-ban.
(#) wbt válasza killbill hozzászólására (») Ápr 23, 2017 /
 
Iszonyat régen néztem, csak úgy beugrott a dolog.
Anno a TVC-ben 6845 volt és ott úgy csinálták, hogy amikor a Z80 is hozzá akart férni a RAMhoz, de a 6845 olvasta, akkor egy órajel nyújtó áramkör "kimerevítette" a Z80 órajelét. Olvasás után meg elengedte, mondhatni, a Z80 nem is tudott róla, hogy közben elvették tőle a buszt. Persze emiatt a SW időzítések nem megjósolható módon csúszkálhattak.
(#) killbill válasza wbt hozzászólására (») Ápr 23, 2017 /
 
Ez sem a legkorrektebb megoldas...
Következő: »»   2 / 2
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem