Az egyik ez a NICK doku, a másik pedig a DAVE issue4 -es változata (az EXOS-ban issue5 van. Még nem néztem meg, mi a különbség.)
Öööö.... izé... nem akarok pofátlan lenni meg a taszt-(és AIO)projejt-tõl elvonni, de esetleg a Dave docut. is közkinccsé tennéd valamikor?
Semeddig nem tart, csak azért nem ajánlgatom, mert ugyanez megvan HTML-ben az angol EXOS dokuban.
De tessék, íme: (domain, port már ismerõs)//ep/dave/dave.zip
Itt meg a hangkeltéssel kapcsolatos téma. Errõl is lehet esetleg összefoglaló.
Mikorra várható az a összefoglaló? :)
Nem tudom, hogy ez segít-e, én ezt használtam az Exolonnál. A zajcsatornát figyelmen kívül hagyja.
És ezt mi helyére raktad? ROM rutin hívás? Vagy közvetlen portbizgatás?
A csillagos betöltõhöz jó lesz
Jó lenne ilyeneket összeszedni! Van is erre a hw rovat mélyén elsüllyedve Nick és Dave topikunk, amit régen nem látott Tigrian barátunk indított.
Néhány kiegészítés a DAVE dokumentációjához; ez még mindig nem teljes, és nem biztos, hogy mind pontos, de talán van ezek között olyan információ, amit még nem tud mindenki:Szuper, köszönjük!
- bit 0: beépített RAM mérete ('0': 64K, '1': 16K); ennek a hatását nem ismerem, meg kellene nézni igazi gépen. Mindenesetre normál esetben mindig '0'-t kell írni.Tippem az, hogy akkor csak FF szegmens fog videó memóriaként dekódolódni. Majd égetek egy próba EXOS epromot, és megnézzük mi lesz :-)
- bit 6-7: INT2 megszakítás (nem használt ?)Az a SERIAL/NET csatlakozó "Status In" bemenetérõl érkezik.
Vagy más javaslat Zozo? Hol lenne praktikus?Pl a DAVE chip leírásához :) (http://ep128.hu/Ep_Konyv/Exos.htm#240)
Pl a DAVE chip leírásához :) (http://ep128.hu/Ep_Konyv/Exos.htm#240)
Néhány kiegészítés a DAVE dokumentációjához; ez még mindig nem teljes, és nem biztos, hogy mind pontos, de talán van ezek között olyan információ, amit még nem tud mindenki:Volt, nem is kevés, le is mentettem, hogy majd később nyugodtabb körülmények között emészthessem, ezek a polinomszámlálós dolgok, meg a gyűrűmoduláció több időt igényel, nehogy megfeküdje a gyomrom ;)
- bit 2: memória várakozás mód (csak akkor, ha nincs a 3. bittel letiltva, és nem video memóriához történik hozzáférés):Errõl a Dave által generált várakozásról derítettem ki korábban, hogy az szabályosan a Z80 WAIT lábát használja. Ha erre a vezetékre rakunk egy kapcsolót, akkor kézzel ki lehet iktatni a várakozást, attól függetlenül, hogy a programok éppen mit állítgatnak. (Ennek 6 Mhz gép + 1.44 floppy esetén van értelme, 6 Mhz-es Z80 csak úgy tudja követni a 16 Mhz-es WD-t, ha nincs várakozás, legalábbis az EXDOS jelenlegi programkódjával.)
hát így utólag olvasva a leírást sem vagyok biztos benne hogy értelmes zene hangzásokra lehet-e használni ezeket a mindenféle torzítókat meg a többit
hát így utólag olvasva a leírást sem vagyok biztos benne hogy értelmes zene hangzásokra lehet-e használni ezeket a mindenféle torzítókat meg a többit
(Ügye a Commodore "költséghatékony" konstrukciói - C16, Plus4 - is hangzásban még talán rosszabbak is, mint az Ep.)
a DAVE és az AY meg csak négyszögjelet tud.
A legjobban talán csak próbálgatással lehet ezeket jól felhasználni, de azért néha az sem hátrány, ha valaki tudja, hogyan mûködnek. Kár, hogy az effektusok többségét csak egy másik csatorna "feláldozásával" lehet bekapcsolni, ami tovább csökkenti a hasznosságukat.És vajon mire szánták ezeket a dolgokat? Ezen bonyolítások nélkül egyszerûbben is meg lehetett volna oldani... pl vehettek volna egy kész AY chipet :-)
Ezen bonyolítások nélkül egyszerûbben is meg lehetett volna oldani... pl vehettek volna egy kész AY chipet :-)
És vajon mire szánták ezeket a dolgokat? Ezen bonyolítások nélkül egyszerûbben is meg lehetett volna oldani... pl vehettek volna egy kész AY chipet :-)Ilyenek a SID chipben is vannak, majdnem ugyanezzel a kiosztással, gondolom nem véletlenül tették bele.
Ilyenek a SID chipben is vannak, majdnem ugyanezzel a kiosztással, gondolom nem véletlenül tették bele.Akkor jön a kérdés: mi az amiben jobb a SID chip?
Akkor jön a kérdés: mi az amiben jobb a SID chip?4 jelet tud, a négyszögjel mellett a háromszögjel, a szinusz jel, és a fűrészjel szerepel a palettán, amiknek a hullámhossza állítható, plusz tud még volume envelope-ot, amit az AY is, de itt a három csatornára külön-külön lehet envelope-ot állítani, és a SID chipen a felhasználó állíthatja be, hogy az egyes fázisok mennyi ideig tartsanak, nem csak 9, vagy 10 formából választhat.
4 jelet tud, a négyszögjel mellett a háromszögjel, a szinusz jel,
és a különbözõ torzítások hasznosak lehetnek effektusoknál és például cintányérszerû hangok elõállításánál).Csak az a baj, hogy ember nincs aki tudná, hogy lesz ebbõl cintányér, dob, vagy éppen egy robbanás hangaj :-(
Csak nagyon kevés az eredeti EP program :(, ezért tûnik a DAVE rosszabbnak az AY-nál, mert azt az átiratoknál nem lehet tökéletesen emulálni.Igazából mennyi olyan program van, ami a DAVE-vel való zenélésre van írva? Tehát nem AY-t próbál meg emulálni, és nem is DAC-ol, hanem a DAVE képességeit használva "szintetizátorozik", és a bocibocitarkánál komolyabb?
De a DAVE is tud néhány olyan dolgot, amit a többi gép nem (sztereó hang, 6 bites hangerő és DAC mód - ami trükkös és az SNDPLAY-ben használt megoldással akár 7 bites is lehetEzt a trükkös 7 bites lejátszást be lehet tenni a DTM playerbe is?
Ezt a trükkös 7 bites lejátszást be lehet tenni a DTM playerbe is?
Nem, mert az már most is használja arra, hogy 2*2 6 bites csatornát lehessen lejátszani (eredetileg csak 5 bites volt).Arra emlékeztem, hogy eredetileg 5 bites volt, arra nem, hogy miért nem lett 7 :D
Arra emlékeztem, hogy eredetileg 5 bites volt, arra nem, hogy miért nem lett 7 :D
Egy rövid teszt alapján úgy látszik, nem mûködik ez a megoldás. A 0. bit beállítása után továbbra is "látja" a NICK az alsó 48K video memóriát, és az lassú is marad. Azonban ilyenkor valamiért lefagy az EXOS, ha megpróbálom elindítani a rendszert a 01:C00Dh címen.
Az SNDPLAY úgy állít elõ 7 bites hangot, hogy két 6 bites csatornát használ, amelyekre a 7 bites érték felét írja le- és felfelé kerekítve.8 bites, 1 csatornás lejátszást (lásd Enterball hangminták :-) ) ki lehetne sajtolni a Dave-bõl?
Én fel sem tudom fogni, hogy jutott eszükbe a tervezõknek, hogy ne 8 bites legyen a D/A konverter?Csak arra tudok gondolni, kifogytak a lábakból, ehhez plusz 4 láb kéne DAVE chipre, és akkor lehet, hogy már egy kategóriával nagyobb, és drágább chip kellett volna.
István!8 bites, 1 csatornás lejátszást (lásd Enterball hangminták :-) ) ki lehetne sajtolni a Dave-bõl?
Csak arra tudok gondolni, kifogytak a lábakból, ehhez plusz 4 láb kéne DAVE chipre, és akkor lehet, hogy már egy kategóriával nagyobb, és drágább chip kellett volna.
Akkoriban bõven elégnek tûnhetett a 6 bit is, az AY vagy a SID is csak 4 bites.
ha a lassabb 7 bites kódot sikerül beépíteni a lejátszás lassulása nélkül.Az eredetiben ott van a 8-ról 6 bitre konvertálás, és még egy plusz várakozó ciklus is, így ezek kihagyásával talán nem lesz sokkal lassabb.
Most, hogy volt idõm áttanulmányozni a kapcsolási rajzot, nagyon szomorú következtetéseket vontam le a Z80-DAVE összjátékkal kapcsolatban.Rosszul vontad le a következtetéseket!
Az sem szerencsés, hogy a Z80 a nyomtató vagy a NET hálózat felé közvetlenül küldi az adatokat. Simán beírhatná egy átmeneti tárba, azután mondjuk a DAVE átlapátolhatná, miközben a Z80 tudna mást csinálni.Ilyet nem tud a DAVE, amre gondolhattál az a Z80 DMA lenne de az is felfüggesztené a CPU-t
Amikor a Dave perifériával kapcsolatos dolgot szándékozik csinálni,Dave nem csinál semmit a perifériákkal.
Z80-at lekapcsolja az adatbuszról (van hogy meg is állítja)Nem kapcsolja le, és nem állítja meg (*egy esetet kivéve)
és ezt a buszt használja a perifériákkal (azokhoz tartozó multiplexerekkel, tárolókkal) való kommunikációra.Dave nem kommunikál a perifériákkal.
Gondolom Nick memória zsonglõrködésekor is hasonló "lekapcsolás" történik.Itt tényleg történik lekapcsolás, a Dave generálja a VRAM jelet, amivel szól a Nicknek, hogy a Z80 a videómemóriához akar hozzáférni.
már értem, hogy egy POKE 56,201 (Megszakítás letiltás) kiadása a BASIC program elején mennyivel meggyorsítja a futást.Az nem ezért gyorsítja, hanem azért mert kimarad az EXOS megszakításkezelõjének pár ezer utasítása.
Örülök, hogy felvilágosítottál. Tehát amikor le kell kérdezni a bill. mátrix egyik sorát a 10-bõl, akkor a Z80 nyom egy IO utasítást a DAVE-nek, aki kiküldi a WR0 jelet a megfelelõ multiplexernek. Ezután a Z80 küld egy IO kérõ utasítást a DAVE-nek aki egy másik D-tárolónak ad WR0 jelet így a Z80 megkapja az eredményt az adatbuszon.Majdnem, másodiknak RD0 megy, ami beengedi a billentyûzetrõl az adatot az adatbuszra.
Talán a nyomtatóportnál is ugyanez megy kivéve, hogy az egyirányú?Igen, ott a WR1 a (B6h port) írása. RD1 az olvasás, ami jelen esetben csak a Ready bitet jelenti, de spórolás okán a B6h port többi bitjén más perifériak bitjei vannak.
kérdés a DAVE 40. lába kimenet ? vagy csak rossz a kapcsrajzA RESET-re gondolsz? Az kimenet, a Dave állítja elõ a rendszer Reset jelet, ami mindig csak egy pillanatnyi, akárhogy nyomkodjuk a gombot. Nem úgy mint PC-n, hogy amíg nyomod, addig resetben marad a gép...
http://www.ep128.hu/Ep_Hardware/Pic/EP64-1.jpg
Ha szoftveresen lehetett volna resetelni az EP-t, az igen idegesítõ lett volna sokunknak. Jobb így, az nem programoknak, hanem felhasználónak készült!végülis ha kiakarunk lépni a játékokból ugyis meleg reszett kell vagy hideg, /dupla/
Ha szoftveresen lehetett volna resetelni az EP-t, az igen idegesítõ lett volna sokunknak. Jobb így, az nem programoknak, hanem felhasználónak készült!Szoftveres resetre ott az EXOS 0 hivás.
Szoftveres resetre ott az EXOS 0 hivás.gondolod foleg ha RST 30h -ra valami ás rutint raknak játékoknál marad out B3h,00h jp 0c00x az már biztos
Nem tudom de a turbokártyával ami 4-6 Mhz a hangferekvencia változik vagy nem ?
és ha nem pont 6 Mhz hanem nagyobb 7-8-10 ?Akkor már mindenképpen magasabb lesz a hang.
Akkor már mindenképpen magasabb lesz a hang.és ha közvetlenül 8 Mhz-et nyomatok a DAVE-nek a 62. lábára :lol:
Elméletileg a 4 csatorna egyikébõl lehet 0038H megszakítást generálni.
A további csatornán hang hullámot állítani.
A kérdésem az hogy, ez egyszerre is meg oldható?
mert így akkor a háttér zene vagy csak az effektek mehetnének hardverbõl.
némi példa majd assembler-ben.
NEAR_D603: ; code label
; Referenced at D607
; I/O on port 0xb4: Dave enable/reset interrupt sources/latches
IN A,($B4) ; D603 DB B4 "??"
AND $10 ; D605 E6 10 "??"
JR Z,NEAR_D603 ; D607 28 FA "(?"
A B4h port 4. bitje (ha engedélyezett) azonos az aktuális LPB-ben a VINT bit állapotával. A video megszakítás a VINT=1-es LPB után a következő, VINT nélküli LPB elején történik. Ez nem egyértelmű a dokumentáció alapján, de valódi gépen teszteltem.
mert ha a B4h port 4. bitje a VINT LPB beli allapotat tukrozi, akkor az 0->1 "bit atmenetnel" interrupt, tehat FELfuto el, mig a doksi szerint a bit "lefuto elet" neziA megszakítás lefutó élnél történik, mint említettem, a következő LPB elején, ahol már nincs beállítva a VINT bit. Ez az, ami nem egyértelmű csak a dokumentáció alapján.
LPB 1 | LPB 2 | LPB 3
_________ VINT = 1
| |
-------- -------- VINT = 0
^
|
megszakítás
nekem ugy tunik, hogy nem engdelyezett bit eseten a 4. bit mutatja az allapotot ugyanugy, csak nem valt ki megszakitast (azaz az INT1-hez tartozo latch nem fog beallni), de ettol meg lekerdezheto a vint allapota!
A megszakítás lefutó élnél történik, mint említettem, a következő LPB elején, ahol már nincs beállítva a VINT bit. Ez az, ami nem egyértelmű csak a dokumentáció alapján.
Commodore gépeken valóban így van, de EP-n ez nem működik, ilyenkor mindig 0 az állapot.
Tuti? A leiras ezt mondja: "A 0., 2., 4., és 6. bit mindig olvasható, akkor is, ha az adott megszakítás le van tiltva"Ezt már korábban javítottam a hozzászólásban, ezek a bitek valóban mindig olvashatók, csak nem jól emlékeztem. Az 1., 3., 5., és 7. bit az, ami mindig 0 az adott megszakítás tiltásánál (Commodore gépeken viszont a tárolók ilyenkor is olvashatók, csak nem váltanak ki megszakítást). Az ep128emu forráskódjában a helyes megoldás található.
bit 6: Magnó szint bemenetTalán érdemes említeni, hogy itt a bit 1 értéke jelzi az alacsony (zöld) szintet.
Hang emulációhoz hasznos lehet ez (http://enterpriseforever.com/hardver/dave/msg19278/#msg19278) a leírás (vagy az ep128emu forráskódja :)).
Itt (http://enterpriseforever.com/hardver/nick/msg22124/#msg22124) pedig néhány érdekesség olvasható a NICK video módjairól. Nem említi a VBLANK/VSYNC módot, de ilyenkor fekete képet kell generálni, még a kereten is (keret = VBLANK, kép = VSYNC (negatív világosság, de emulátoron ennek nem sok jelentősége van)).
A dokumentáció szerint "normál" (nem D/A) módban a DAVE a 4 hanggenerátort időosztásos rendszerben küldi a kimenetre. Ha az adott generátor kimenete logikai "1", akkor a hangerő regiszterének megefelő érték jelenik meg a DAVE kimenetén, egyébként 0. A D/A mód hatása az, hogy amelyik csatornán (bal és/vagy jobb) engedélyezett, ott minden időszeletben feltétel nélkül a 0. generátor hangerő értéke a kimenet. Ezért lesz négyszeres hangerő a D/A módban, mert gyakorlatilag a többi generátor helyett is a 0. szól. Ha csak az egyik csatornán engedélyezett a D/A, akkor a másikon továbbra is lehet zene és/vagy zaj, mert a D/A módnak csak a kimenet vezérlésére van hatása, a generátorokra (számlálók, szűrők, stb.) nem.
Az időszeletek mekkorák?Ezt nem tudom biztosan, de valószínűleg legfeljebb 1 us (1 / 250000 / 4). Oszcilloszkóppal könnyen ki lehetne deríteni, hogy valójában mekkorák.
Azt, hogy a 64K címteret 4 lapra osszák fel, azt indokolta valami ?Az, hogy kb majdnem az összes lapozós Z80 rendszerben így van.
Az, hogy kb majdnem az összes lapozós Z80 rendszerben így van.Hát ... nem túl meggyőző érv ... annyit kellene módosítani bármin ami 1 lapot megtanult lapozni, hogy 2 -t vagy 4 -t lapozzon ugyanott. Persze a lapozási idő ... ez talán már érvebbnek tűnik ...
így jól becsüld meg!Persze, mindenképp. Becsül- becsül. Csak azért egy 8 -ast mégjobban becsülnék ... :)
16K-s lapozás teljesen jó, 8-asnál beleőrülnél a sok lapba,
ja és akkor csak 2 megás lehetne az EP. (http://enterpriseforever.com/Smileys/phpbb/ds_icon_biggrin.gif)
Miért ? Sztm semmi más nem változna, csak 8 lap regiszter kéne a Dave -be, oszt jóvan. Nem ilyen 1Xű ?Na de 256x8k az pont feleannyi mint 256x16k!
Több laphoz bonyolultabb áramkör kellene.Jó, hát van a Dave -ben gondolom 8K tranyó, most akkor lenne 100 -zal több ... nem ?
Na de 256x8k az pont feleannyi mint 256x16k!Ó, fukk! :)
Jó, hát van a Dave -ben gondolom 8K tranyó, most akkor lenne 100 -zal több ... nem ?A mennyiség az adott volt, abban kellett elférni. Így is van már kiszorult funkció, az első leírás alapján még a belső memóriabővítőnek is a Dave dekódolta volna az engedélyező jelet, ez később kimaradt.
Azt, hogy a 64K címteret 4 lapra osszák fel, azt indokolta valami ?
Mert pld. egy 8 -as felosztás már sokkal simulékonyabb lenne, egy 16- os meg csuhajj, 1000H -s felosztásról beszélhetnénk.
De már a 8 -as is nagyon jó volna ...
mindezt hogyan hozták volna össze a Szuper EP-ben,Hát hogy ... külső lapozó elektronikával. Nem ? Z80 -ban nincs lapozás, mégis lapozunk.
Hát hogy ... külső lapozó elektronikával. Nem ? Z80 -ban nincs lapozás, mégis lapozunk.De a Z180-ban meg pont van :-) de ha az lett volna használva, akkor meg nem lett volna kompatibilis a régi programokkal.
A Z180-nak van még egy furcsa "lapozója", ott két pointert állítgatsz, amivel 1/2/3 darabra osztódik a címtartomány, és a darabok kezdetét lehet megadni az 1 megás tartományban.
Az mondjuk egy érdekes kérdés, mindezt hogyan hozták volna össze a Szuper EP-ben, hogy kompatibilis is maradjon a régivel... szerintem leginkább sehogy, csak simán 64K-s Z80-nak lett volna bekötve (ahogy én is nekikezdtem).
Itt az van, hogy az egy stereo csatlakozóAz biztosan sztereó, mivel oda szokás a fejhallgatót/erősítőt kötni, és az sztereóban szól. Azt nem tudom mi lenne, ha magnó meg sztereó monitor lenne együtt, mivel már rég floppyztunk mire lett sztereó monitor. Ill. mi a Scartra is egy jack kábelen vittük a hangot a magnókimenetről.
Ez a teljes tervrajz ? 1:1 -ben ami csak az DAVE IC -ben van ? ? ? :)Igen, egyenesen az osztrák chip gyártó cégtől.
A nick is megvan?Nick topicban nézted már? :-) (http://enterpriseforever.com/hardver/nick/msg45562/#msg45562)
Lépjünk túl a forrasztáson, az gyerekjáték.
Én időt akarnék megtakarítani azzal, hogy csak azt tesztelem azt a részletet amit már megírtam. A gördülékeny hibakereséskor nagyon fontos, hogy legyenek már működő részek amire sosem kell gyanakodnom. Most írod, hogy van open Core Z80. Csak ebből áll az EP?
Dave mellett ott van egy NICK is, amit megint nem ismerünk meg egy rakat periféria, amit a "behelyettesítésnek" köszönhetően így nem kell külön lekódolni.
Ha egyből indítom a EXOS IC-t, és azonnal elszáll mit csináljak? Mi szállt el? Mit csinált? Nem tudni, valamilyen komplex feladatot biztos. Mi volt a hiba oka? Ki tudja melyik modul működött hibásan, hisz mindegyik újonnan készült, és még egyiket sem tudtam igazán tesztelni.
Induláshoz a B0-B3 portok kellenének, plusz a címdekódolás a ROM/CART/VRAM/VIO kimenetekre. Ha ez meg van akkor már futhat valami program, ami a képernyőt is eléri.
A mérnöki világban a termékek mindig lány nevet kapnak, ettől lesznek vonzzóbbak.
Azért választottam ezt a nevet, mert amikor gyermekkoromban olvastam Az egri csillagokat beleszerettem Cecey Évába. Odaadó feleség volt, csakúgy mint édesanyám. Hát innen a névválasztás.
Valaki el tudná beszélni címszavakban, hogy honnan ismeri fel a Z80, hogy melyik irányból jött a maszkolható megszakítás?
Már régen olvastam a Novotrade könyvet.
1KHz/50Hz/TG IRG - Ezt nem tudom mi
R7 W #A7
b6,b5
Select interrupt rate:
00 = 1KHz.
01 = 50Hz.
10 = Tone generator 0. f = 250,000/(n+1)
11 = Tone generator 1.
nem nick, hanem dave, és nem is bug, hanem feature :)
szóval: tök feleslegesen raktak D/A átalakítót a chipbe, hiszen ha egy csatorna hangmagasságát a nem hallható tartományba rakjuk, akkor a hangerő állításával kb ugyanazt a minőséget érhetjük el digi lejátszásra, ráadásul sokkal több csatornán...
Szerintem nincs is D/A atalakito a Dave-ben, ha Dave csati normal hangot (oszcillator) szolaltsz meg, ha "digi" van (tok mindegy!), az ugyanugy "digitalisan" jelenik meg a Dave labain. Semmi kulonbseg. A D/A "atalakitast" a Dave-re aggatott "ellenallas letra" rendszeru D/A atalakito vegzi :) Ebbol a szempontbol hasonlit a Nick-re, ott is digitalisan jon ki a pixel "szine" amit kivul alakitanak aztan digitalis jelle. Ez azert erdekes, mert lathato modon a Dave/Nick inkabb tisztan digitalis cucc szerintem. C64-en pl a SID/VIC is foglalkozik nem digitalis "rendszeru" jel eloallitasaval ...
akkor csak az a pár port beállítási lehetőség felesleges
Valaki esetleg Dave ugyben tudna valaszolni a kovetkezore? Mi tortenik, ha az ember irja a tone generator-ok counter-jeit. Az azonnal betoltodik, amirol vissza kezd szamolni ugye, vagy az elozo megy tovabb, es csak akkor tolti be az ujat, ha alulcsordul a szamlalo?
Koszi a valaszt. Haaat, csak akkor azt tudnam, mi okozza a screenshot-okon is demozott kulonbseget ... Mondjuk egy dolog meg, hogy nalam kulon fut minden szamlalo, az 1KHz-es is, akkor is, ha nincs hasznalva mint TG interrupt source stb.
Megnézem valódi gépen. Turbós érték is kérdés?
191-es port számít, vagy azt állítja magának a program?
Az ep128emu-ban is mindig futnak, mivel az állapotuk mindig olvasható a B4h porton.
Valoban, de en ugy ertettem, hogy a TG interrupt forrasa kapcsolhato, 50Hz / 1Khz / tg0 freq / tg1 freq kozott. A B4 porton nyilvan csak a kivalasztott forras allapota olvashato, Xep128-ban viszont akkor is fut folyamatosan az 50Hz / 1Khz counter is, ha a TG interrupt forrasa pl a tg0 oszc., es nem az 50Hz vagy 1Khz counter.
mi az a sync bit? sose értettem...
Sync, mint szinkronizalas :) Amire en gondolok, hogy mire jo: pl egyszerre akarod, hogy menjen a hang mondjuk ket csatornan. Ha egymas utan felprogamozod, nem pont egyszerre indul, mert nem nulla CPU ido, amig beirogatod sorba a regiszterekbe. De mivel a sync bitek egy porton vannak, azzal "tartod" hogy ne induljon el a counter, felprogramozod a megfelelo erteket, majd egyszerre inditod a sync bitek torlesevel, es igy tuti szinkronban futnak. Gondolom en, hogy erre jo :-)
én is így tudtam, de ennek kb nulla értelme van, azért gondoltam hogy nem értem :D
(basic-ben van értelme ilyesminek, lásd a sync parancs a sound-ban, asm-ban semmi...)
Ha nem hang, hanem időzítés a célja, akkor van értelme, mert a sync bit törlése után pontosan a beállított időtartam után történik megszakítás.
Megfelelően időzítve hangnál is van értelme, ilyen effektust valódi analóg szintetizátorokban is használnak, illetve ha jól emlékszem, a SID is tudja, csak a DAVE esetében nem lehet automatikusan másik csatornával időzíteni, hanem szoftveresen kell újraindítani szabályos időközönként.
Egyszerű sync példa:
(Attachment Link)
Egy másik lehetséges használata a csatornák fázisának a szinkronizálása. Ezzel és a felüláteresztő szűrő effektussal például megoldható a négyszögjel kitöltési tényezőjének a csökkentése.
Találtam egy EP konfignyi cuccot itt bent a munkahelyen :-)
4MHz-es valódi gépen az ep128emu értékeivel egyezik meg.
Turbóval az utolsó sor változik, 50/51 6MHz-en, 7EC 7.12-n.
Amugy egesz pontosan egyezett?Igen, ill. itt-ott van 1-1 értéknyi szórás, de az minden programfuttatáskor változik.
most minek az orajelet emeljuk konkretan a CPU-n kivul persze, es o honnan kapja, es mas kap-e tobbet :)A rendszerórajel van emelve, azon fut a Dave. Így magasabbak lesznek a hangok is, meg a mindenféle Hz-ben számolt dolga is sietni fog.
Igen, ill. itt-ott van 1-1 értéknyi szórás, de az minden programfuttatáskor változik.
mi a kulonbseg most a Xep128 es az ep128emu+igazi EP kozott, ami nyilvan valahol az en hibam, csak meg azt nem tudom pontosan, hogy hol :)
Az előbbi forráskód részletekben nem látni a hibát, talán máshol van. A teszt programban érdekesség, hogy a frekvencia értékek (7D00h és FA00h) nem ábrázolhatók 12 biten, de ennek elvileg nem kellene problémát okoznia, mert a TG megszakításra az effektusoknak nincs hatása, ezért a felső 4 bit itt figyelmen kívül hagyható.
Egy másik kisebb "hiba" a programban az, hogy a VINT bemenet nem 50% kitöltési tényezőjű négyszögjel, ezért "véletlenszerűen" méri a VINT magas (rövid) vagy alacsony (hosszú) állapotát.
most már csak a sync és a megszakítás kapcsolatát nem értem. valami ilyesmi van, ha jól olvasom. vagy félreértem?
Egyszerű sync példa:
(Attachment Link)
amúgy az lenne jó ha meg lehetne adni, hogy a különböző megszakítás típusok más-más címre ugorjanak. szerintem ezzel sok gyorsulást el lehetne érni. nem kéne külön levizsgálni mindig hogy milyen megszak. történt. rövid kis rutinoknál (pl digi hang) sokat számítana. de gondolom ilyet nem tud a hw
Teszt program:
(Attachment Link)
Találtam egy (valószínűleg) ep128emu hibát: a zajcsatornán a felüláteresztő szűrőnek csak akkor van jelentősebb hatása, ha az aluláteresztő szűrő is engedélyezett.Ezt egyszerűen basic-ből hogyan lehet tesztelni? A tippem, hogy SOUND SOURCE 3,STYLE 64 kell hozzá, és SOUND SOURCE 0 egyszerre megszólaltatva. Merthogy a zajcsatorna felüláteresztő szűrőnek a 0-ás csatornát használja.
valaki ki tudna menteni egy wavot olyan emuval ahol ez jó? vagy igazi gépről
Azt hogy kell érteni, hogy "ha az aluláteresztő szűrő is engedélyezett"? A 0-ás csatornán a STYLE 64+32 kellene, és csak úgy működik rendesen?
miért nem tudták azt megcsinálni hogy a hang és kép megszakítás más-más címre ugrik?Mert akkor IM 0 vagy IM 2 kompatibilisre kellett volna konstruálniuk a NICK-et és a DAVE-et, meg természetesen az EXOS-t. Ez költség és idő, amivel pont nem igazán volt túl bőven eleresztve a projekt.
emlékszem, mindig is utáltam azt hogy ha hang és kép megszakítás van, akkor szoftverből kellett a megszakítás rutinban megállapítani hogy melyik is volt. ez egy-két tök felesleges utasítás volt.
miért nem tudták azt megcsinálni hogy a hang és kép megszakítás más-más címre ugrik?
na ja de akkor minek raktak bele D/A-t, és minek raktak bele hangmegszakítást...
na ja de akkor minek raktak bele D/A-t, és minek raktak bele hangmegszakítást...
mert megadható frekis hangmegszakítás mégiscsak főleg digi hang lejátszásához való.
de mire másra jó akkor ha nem digi hangra? :)
na ja de akkor minek raktak bele D/A-t, és minek raktak bele hangmegszakítást...Nem az az igazán érdekes kérdés, hogy miért raktak bele D/A-t, hanem hogy miért csak egy csatornára? Egyébként pont ez a D/A felelős a hangerő szabályzásért, valószínűleg csak igen minimális kiegészítésre volt szükség, hogy egy üzemmódban a kimenetet fix "1" szintre kényszerítsék.
mert megadható frekis hangmegszakítás mégiscsak főleg digi hang lejátszásához való.
de mire másra jó akkor ha nem digi hangra? :)
szinkronizálás meg ilyesmik, ugyan már, kit érdekel az? :) látható az? hallható? nem :)A filmet is szinkronizálják, pedig anélkül is hallható volt.
vajon miért nem lehet a négyszögjelünk fázisát állítani? hardverileg bonyolult lett volna ezt megcsinálni?Ha eszükbe is jutott, nem volt rá idő vagy pénz. Egyébként valószínűleg igen.
nem volt rá idő vagy pénz.Némi "fáziskéséssel" jelent volna meg az EP.
a dave névről valamiért mindig azt hittem hogy éneklést vagy ilyesmit jelent, vagy abból származik a szó. persze biztos azért mert ep-n ez a hang csip :DEzt komolyan csak most nézted meg? :shock:
aztán most utána néztem a dávid névből került az angolba
Ezt komolyan csak most nézted meg? :shock:
A készítője Dave Woodfield, innen a név. (Ahogy a Nick pedig a Nick Troop-ból jön)
a dave névről valamiért mindig azt hittem hogy éneklést vagy ilyesmit jelentÉn úgy tudtam megjegyezni, hogy a Dave a hangchip, a Nick pedig a video chip, hogy a Dave szóban hosszabban kell ejteni a magánhangzót (pontosabban az kettőshangzó, de ez most itt mindegy), melyet az "a" betű jelöl, a Nick szóban pedig az "i" röviden ejtendő. Ezért a Dave szó "zenésebb".
azon gondolkodtam, volt valami sync opció a dave-ben (nem a sound eszköz sync-re gondolok).
az mi is?
ööö... akkor mégis van 4szögjel fázis állítási lehetőség???Állítási lehetőség nincs. A programod időzítésével képes vagy az egyes csatornák között fáziskülönbséget okozni. A szinkronizáló bitekkel meg garantálni lehet, hogy a programodban mindegy milyen eredő fáziskülönbséggel frissíted a csatornákat szinkronizáltan induljanak el.
Állítási lehetőség nincs. A programod időzítésével képes vagy az egyes csatornák között fáziskülönbséget okozni. A szinkronizáló bitekkel meg garantálni lehet, hogy a programodban mindegy milyen eredő fáziskülönbséggel frissíted a csatornákat szinkronizáltan induljanak el.
Arra lehetőség van például, hogy a program leállítsa a hanggenerátort (sync=1), beírja a kezdeti fázist a frekvencia regiszterekbe, újra engedélyezze a futást (sync=0), majd beállítsa a tényleges frekvencia értéket. Természetesen BASIC-ben az ilyen trükkök nem működnének a lassúság miatt. :)
Itt van egy kis magyarázat (http://little-scale.blogspot.hu/2009/12/square-wave-based-additive-synthesis.html) a videón látottakhoz és hallottakhoz.Az írásba be van linkelve egy mp3 fájl (http://milkcrate.com.au/_other/sn76489.mp3), amely bemutatja, hogy mind a 3 csatorna szól egyszerre, de más hangerővel és más oktávban. Gondolom, a rezgés felharmonikusai szólnak ezekben az oktávokban, és ettől egész érdekes hangzása lesz, ahogy folyamatosan elhalkítja/felhangosítja egyik-másik csatornát. Ezzel a hatással EP-n is lehetne kísérletezni, még nem jutott eszembe. Nem tudtam egyértelműen kivenni: ebben az mp3-ban milyen hangok szólnak vajon a három csatornán? Az egyik valószínűleg egy oktávval magasabb az alaphangnál, a másik talán két oktávval, vagy egy oktáv+egy kvint (duodecima) hanggal magasabb. Jó lenne ezt az effektet EP-n is megcsinálni.
A leírás (http://www.hp9845.net/9845_backup/downloads/datasheets/SN76489.pdf) nem említ gyűrűmodulációt, de talán valamilyen trükkel elérhető hasonló hangzású effektus.A videóban határozottan gyűrűmodulációszerű effektusról ír a készítő. Sőt, talán mindegyikre oda biggyesztette a "-szerű" kitételt.