Welcome, Guest. Please login or register.


Author Topic: SID illesztés EP-hez (Read 24496 times)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re:SID illesztés EP-hez
« Reply #15 on: 2015.May.27. 11:05:01 »
Ami meg eszembe jutott: volt mar par project, ahol pl AVR-hez kapcsoltak SID-et, es azon jatszottak le dolgokat. Gondolom, nemi modositassal, az AVR pl rakotheto a printer portra talan (csak jelezni kene, hogy port iras, meg hogy reg select vagy data megy-e). Ez eleg ganyolas, de elsore kisebb melonak tunik _talan_ mint egy "igazi" EP SID kartya ami kozvetlenul Z80-al adott I/O porton/portokon elerheto, stb. Masik: van az a SwinSID vagy mi project, ami SID-et emulal szinten MCU-val, C64-en pl elvileg az "igazi" SID helyebe is teheto, es megy (allitolag). Nu, ha ilyet kicsit megbutykol az ember (ertsd: modositja az MCU programjat), hogy inkabb vmi Z80 busz szeru dologhoz kapcsolodjon, akkor a dolog megoldott, es "igazi" SID sem kell hozza. Hatrany: megint MCU-zni kell, es a "feeling" csorbul, hogy ez nem "igazi" SID azert. Bar lehetne extra is bele, pl egyszerubb 8 bit digi lejatszas lehetosege, vagy hasonlo.

Offline geco

  • EP addict
  • *
  • Posts: 7085
  • Country: hu
    • Támogató Támogató
Re:SID illesztés EP-hez
« Reply #16 on: 2015.May.27. 11:29:59 »
EP-n a 6510 emuláció olyan jól fut, hogy csak 1-2 SID szaggat be egy picit, ha jól emlékszem, akkor a Cybernoid zenék, a többinél semmi szaggatás nincs ( kivéve a DIGI hangok, azok meg is ölik a lejátszót, gonfolom olyan címre írnak, ahol a SID lejátszó kódja helyezkedik, no meg oda lassú a 6510 emuláció)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re:SID illesztés EP-hez
« Reply #17 on: 2015.May.27. 11:35:26 »
EP-n a 6510 emuláció olyan jól fut, hogy csak 1-2 SID szaggat be egy picit, ha jól emlékszem, akkor a Cybernoid zenék, a többinél semmi szaggatás nincs ( kivéve a DIGI hangok, azok meg is ölik a lejátszót, gonfolom olyan címre írnak, ahol a SID lejátszó kódja helyezkedik, no meg oda lassú a 6510 emuláció)

Igen, hat vegulis, nem feltetlen kell maximalistanak lenni, hogy *minden* letezo sid file lejatszhato legyen, mert az erobefektetes+ar/eredmeny aranyban nem lesz tul jo :) Foleg, ha a legtobb igy is jo :)

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1291
  • Country: hu
  • Stray cat from Commodore alley
Re:SID illesztés EP-hez
« Reply #18 on: 2015.May.27. 12:26:12 »
Okleveles laikusi kérdésem: nem lehetne átírni a 65XX emulációt fordítóra? Csak mert akkor a teljesítmény problémák megszűnnének.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re:SID illesztés EP-hez
« Reply #19 on: 2015.May.27. 12:32:12 »
Okleveles laikusi kérdésem: nem lehetne átírni a 65XX emulációt fordítóra? Csak mert akkor a teljesítmény problémák megszűnnének.

Ez nekem is eszembe jutott, talan Geco tudja, hogy milyen sid-ek vannak "forgalomban" :) Az biztos, hogy mivel 65xx gepikod, nem feltetlen lehet tudni, hogy mi a fenet csinal, hogyan keveri az adatot/kodot (egyaltalan melyik resze kod a byte halmaznak), illetve nincs-e onmodosito kod, mert ez utobbi ugye azert megneheziti a dolgot ...

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re:SID illesztés EP-hez
« Reply #20 on: 2015.May.27. 12:35:09 »
Jut eszembe, "igazi" SID chip eseten olyat is lehet, hogy annak van analog bemenete. Ha a Dave kimenetet raereszti az ember, elvileg SID-et (ha jol remlik ...) ra lehet venni, hogy tegye ra az analog szurojet, ezzel a Dave hangzasat is meg tudja valtoztatni. Bar, ratesz egy kis zajt is :) Na meg ugye a Dave stereo, a SID meg nem. Vagy esetleg akkor dual-SID megoldas :D

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re:SID illesztés EP-hez
« Reply #21 on: 2015.May.27. 12:48:46 »
Bocsanat, flood-olom a topic-ot kisse, szep magyarosan mondva. :) Viszont talaltam ilyet:

http://www.loper-os.org/vintage/parallelsid/parasid.html

Ha jol nezem, ez PC parhuzamos (printer) portra tesz SID-et. Innentol mar nem lenne tul nehez valoszinuleg EP buszra kotni valahogy, vagy akar az EP printer portjara talan, es akkor talan meg egyszerubb a kerdes? Amugy a SID-nel (mint minden 65xx buszhoz illesztheto cuccnal, ami alapvetoen meg a 6800 buszhoz kotodik) az a bibi, hogy nem igazan van olyasmi, mint a Z80 MREQ jele. Ezt ugy ertem, hogy valami, ami jelzi, hogy memoriamuvelet jon. Ui 65xx-nel az orajel vezerel mindent, es minden orajel egyik fazisaban memoriamuvelet van. Z80-nal ez nem igy van, tobbek kozott ezert is gyorsabb ugyanolyan orajelen a 65xx mint a Z80, mar ha a nyers memoriahozzaferesi "idot" nezzuk csak. Mivel ez a bizonyos (PHI2) jel alapvetoen egy orajel, nem is feltetlen egyszeru ezt osszeegyeztetni egy Z80 szeru megoldassal, ahol kevesbe "szabalyos", hogy mikor van memoriamuvelet. Vagy vmi hasonlo :)

Valaki biztos jobban is el tudna mondani, mint en :)

Ja, es ha mar ott a SID, van rajta az emlitett audio bemenet szeruseg is, illetve ket "pot" nevu lab, ami elvileg vmi analog/digital atalakito, alapvetoen potmeterekben vegzodo cuccot lehet odatenni, amit aztan igy sw-bol le is lehet kerdezni. Hatha jo valamire az is :)

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1291
  • Country: hu
  • Stray cat from Commodore alley
Re:SID illesztés EP-hez
« Reply #22 on: 2015.May.27. 13:05:26 »
Amugy a SID-nel (mint minden 65xx buszhoz illesztheto cuccnal, ami alapvetoen meg a 6800 buszhoz kotodik) az a bibi, hogy nem igazan van olyasmi, mint a Z80 MREQ jele. Ezt ugy ertem, hogy valami, ami jelzi, hogy memoriamuvelet jon. Ui 65xx-nel az orajel vezerel mindent, es minden orajel egyik fazisaban memoriamuvelet van.

Z80-nal ez nem igy van, tobbek kozott ezert is gyorsabb ugyanolyan orajelen a 65xx mint a Z80, mar ha a nyers memoriahozzaferesi "idot" nezzuk csak. Mivel ez a bizonyos (PHI2) jel alapvetoen egy orajel, nem is feltetlen egyszeru ezt osszeegyeztetni egy Z80 szeru megoldassal, ahol kevesbe "szabalyos", hogy mikor van memoriamuvelet. Vagy vmi hasonlo :)

Valaki biztos jobban is el tudna mondani, mint en :)

Ja, es ha mar ott a SID, van rajta az emlitett audio bemenet szeruseg is, illetve ket "pot" nevu lab, ami elvileg vmi analog/digital atalakito, alapvetoen potmeterekben vegzodo cuccot lehet odatenni, amit aztan igy sw-bol le is lehet kerdezni. Hatha jo valamire az is :)

MREQ ugyan nincs, de Chip Select van. Tudtommal az MREQ arra van, hogy a Z80 megmondja a buszra kitett címről, hogy memória vagy portcímként kell értelmezni. 65XX busznál ilyen nincs, ezért van memóriába ágyazott I/O az olyan masinákban. Nekem nem tűnik leküzdhetetlen problémának, hogy a címkiválasztó mechanizmusok között fordítsunk. Sokkal nagyobb feladat az elérő órajelek miatti késleltetések kezelése.

Hogy melyik processzor mikor gyorsabb abba szerintem nem kellene belemenni, mert csak parttalan, értelmetlen civakodást szül.

Az az A/D konverter meglehetősen lassú, szóval hacsak nem hagyományos analóg Commodore perifériákat akarsz használni (1351-es egér vagy paddle) semmire sem jó.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re:SID illesztés EP-hez
« Reply #23 on: 2015.May.27. 13:17:38 »
MREQ ugyan nincs, de Chip Select van. Tudtommal az MREQ arra van, hogy a Z80 megmondja a buszra kitett címről, hogy memória vagy portcímként kell értelmezni. 65XX busznál ilyen nincs, ezért van memóriába ágyazott I/O az olyan masinákban. Nekem nem tűnik leküzdhetetlen problémának, hogy a címkiválasztó mechanizmusok között fordítsunk. Sokkal nagyobb feladat az elérő órajelek miatti késleltetések kezelése.

Szerintem nem teljesen ment at, amit irni akartam: a memory mapped IO eseten meg lehetne elvileg MREQ jel, csak IORQ nelkul, ha pontos analogiat akarnank. Az altalam vazolt kulonbseg akkor is fennall, ha Z80-nal nem hasznalsz I/O portokat, es ott is memory mapped I/O-t csinalsz (mint pl EP-n az SD card cartridge) es ugy hasonlitod ossze a 65xx-el (mondhatnad, hogy akkor a PHI2 es hasonlo dolgok hasonlitanak az MREQ-ra, de nagy kulonbseg, hogy a PHI2 egy szabalyos orajel amihez idozitve van minden, mig az MREQ sokkal "aszinkronabb" jellegu - raadasul ezek a 65xx periferiak pl kenyesek arra is, hogy a chip select es a PHI2 milyen sorrendben allnak be, lasd pl 6502.org forumon a cimdekodolasos kerdeseket, ahol taglaljak, ogy a PHI2-t nem szabad felhasznalni a chip select kepzeseben, mert felboritja az idozitest .. ez nekem is gond volt, amikor 6502-bol epitettem breadboardon szamitogep szeruseget). Chip select valoban van, de en nem errol beszeltem ugye. Nyilvan, nem lekuzdhetetlen a problema, a parSID cuccos aminek a linkjet kuldtem pont erre ad egy peldat (igaz, itt egy custom megoldasrol van szo, de a lenyegen sokat nem valtoztat, ezt a megoldast lehet adaptalni EP/Z80 tekinteteben, vagy ahogy tetszik.

Quote
Hogy melyik processzor mikor gyorsabb abba szerintem nem kellene belemenni, mert csak parttalan, értelmetlen civakodást szül.

Erre - is - van kulon topic :) Mellesleg azert tettem hozza, hogy gyorsabb, ugyanolyan orajelen, es "mar ami a memoriahozzaferes sebesseget illeti", igy korrekt, mert ez teny. Ettol meg persze ez sokat nem jelent a valos hasznalatnal, foleg, hogy 65xx-eket 1MHz korul szokas tartani atlag pl Commodore gepekeben (vagy esetleg 2MHz c128 eseten), mig Z80-nal altalaban 4MHz-en indulnak, szoval az "azonos orajel" feltetel eleve nem tul "in the real life" helyzet mar eleve.

Quote
Az az A/D konverter meglehetősen lassú, szóval hacsak nem hagyományos analóg Commodore perifériákat akarsz használni (1351-es egér vagy paddle) semmire sem jó.

Jo, hat azt tudom, azert is hivjak "pot"-nak, nyilvan (potmeter izebize) :) Viszont ha mar potmeter, annak beolvasasa is hasznos lehet, pl igazi "pong" jatek feelinget lehetne vele csinalni potmeterrel :D En valami hasonlo felhasznalasra gondoltam termeszetesen. Ha mar rajta van a SID-en miert ne lehetne kihasznalni, ha lenne SID EP-hez pl ...

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1291
  • Country: hu
  • Stray cat from Commodore alley
Re:SID illesztés EP-hez
« Reply #24 on: 2015.May.27. 14:18:03 »
Jó, de akkor ha megnézed a SAM Coupe SID kártyát, látsz rajta kb. 4-5 logikai IC-t, és az a buszillesztésen kívül megcsinálja a PHI2 generálást is. Annyira akkor mégsem kell bonyolultnak lennie. Persze gondolom ez csak a SID írást támogatja, az olvasást már nem, de annak igazából csak korlátozott haszna van.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re:SID illesztés EP-hez
« Reply #25 on: 2015.May.27. 14:30:02 »
Jó, de akkor ha megnézed a SAM Coupe SID kártyát, látsz rajta kb. 4-5 logikai IC-t, és az a buszillesztésen kívül megcsinálja a PHI2 generálást is. Annyira akkor mégsem kell bonyolultnak lennie. Persze gondolom ez csak a SID írást támogatja, az olvasást már nem, de annak igazából csak korlátozott haszna van.

Nem is mondtam, hogy annyira bonyolult :) Csak azt, hogy bonyolultaBB, mint egy Z80 szeru periferia eseten lenne :) Illetve, akkor tunik bonyolultnak, ha valaki Z80-hoz van szokva, es ujak neki a 65xx busz viselt dolgai. Vegulis, minden egyszeru, ha az ember mar rajott, hogyan kell.

Bar, oszinten szolva, nem szoda, hogy felreertheto, amit irok, mert ismerten igen kaotikusan fogalmazok, elnezest erte.
« Last Edit: 2015.May.27. 14:40:11 by lgb »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re:SID illesztés EP-hez
« Reply #26 on: 2015.May.27. 14:40:12 »
Illetve, akkor tunik bonyolultnak, ha valaki Z80-hoz van szokva, es ujak neki a 65xx busz viselt dolgai.
Pl. nekem :-D

De ha jól tippelem a SAM-es cucc valami olyasmit csinál mint amit én az IDE kártyán. Külön I/O regiszterekbe ki van tolva minden jel (adat és címbusz) ami kellhet a SID-nek, és amikor minden ott van, valahogy szimulálva van neki, hogy tessék kaptál egy bájtot :-)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re:SID illesztés EP-hez
« Reply #27 on: 2015.May.27. 14:42:42 »
Pl. nekem :-D

De ha jól tippelem a SAM-es cucc valami olyasmit csinál mint amit én az IDE kártyán. Külön I/O regiszterekbe ki van tolva minden jel (adat és címbusz) ami kellhet a SID-nek, és amikor minden ott van, valahogy szimulálva van neki, hogy tessék kaptál egy bájtot :-)

Gondolom / nem tudom. Amit en kuldtem linket a parsid-rol az nyilvan hasonlo, csak ott a PC printer port output puffere csinalja meg ezt voltakepp. Ezert gondoltam, hogy mivel printer port EP-n is van :) ott is hasznalhato lenne, az a kapcsolas tobbe/kevesbe, ami talan meg egyszerubb igy, mint a CPC-s kapcsolas (amit nem lattam, szoval nem tudom).

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re:SID illesztés EP-hez
« Reply #28 on: 2015.May.27. 14:46:38 »
Csak a printer portot defaultban macerálja a PRINTER: (ezért is lett a Boxsoft illesztőn a macerásabb soros porti jel)
És az audió bement az a buszcsatlakozón van :-) Csak úgy van értelme, ha utána EP-ből jön ki a hang :-D

Offline balagesz

  • EP user
  • *
  • Posts: 277
  • Country: hu
Re:SID illesztés EP-hez
« Reply #29 on: 2015.May.27. 14:57:00 »
Hú mi lett itt... :) Na akkor sorjában.

TVC-s kártya:

Erről mesélhetnél még, szerintem még a TVC-sek se tudnak róla!

Sajnos sokat nem tudok róla mesélni, igencsak régen volt... :) Ködösek az emlékek, meg annak idején a TVC - úgy összességében - egyáltalán nem érdekelt. Annyi van meg, hogy egyszer régen még a klubban egy srác a kezében tartott egy csupasz, dobozolatlan nyákot, amiről azt állította, hogy ez egy TVC-s SID-kártya. Egy "kicsit" talán "keskenyebb" lehetett, mint a korabeli TVC-s bővítőkártyák, illetve az alkatrészek feliratai - a SID-et kivéve - le voltak csiszolva, nehogy valaki lemásolja. :) Meg maga a SID be volt forrasztva, amit akkor egy kicsit barbárságnak éreztem. :) Hogy a nyákon volt-e forrasztásgátló lakk, az már nem tuti. Viszont úgy rémlik, hogy furat-galvanizált volt, az élcsatlakozó meg aranyozott talán? Nem kizárt, hogy a Vidi nyáküzemében készült, mindenesetre - így az emlékek alapján - nem házi barkácsolásnak tűnt. De mondom: lehet, hogy ennek a fele se igaz. :-D

Ami érdekes kérdés, hogyan lehetne egy SID-et Z80 buszhoz kötni?

Az attól függ... :) A SID-nek van 5 db. címvezetéke, elvileg 32 db. regisztere lehet direkt. Valójában csak 29 él ezekből, de a 29-ből is 4 db. csak olvasható regisztere van, a maradék 25 kizárólag csak írható. Az olvashatók közül kettő a 2 db. 8 bites A/D konverter, ezek a hanghoz egyáltalán nem kellenek. A fennmaradó kettő regiszterrel az egyik csatorna két belső állapotát lehetne figyelni, de a zenelejátszók igen nagy többsége nem használja őket. Mivel a hanggenerálásban résztvevő regiszterek egyike sem olvasható vissza. így a lejátszók a SID-et kizárólag csak írják, sosem olvassák. Emiatt ha csak a SID írhatósága van megoldva, az szerintem tökéletesen elég. Ehhez meg kell pár tároló, meg az órajel előállító áramkör, aztán kb. ennyi.

Természetesen meg lehet csinálni, hogy adott portokra küldje ki az eredményt a lejátszó, csak kisebb módosítás kell hozzá, mert az eredeti (SAM coupéra írt lejátszó) is ezt tette, én annyit tettem hozzá a konverzión kívül, hogy amikor port írás lenne, akkor az értéket kiírja a memóriába, és minden megszakításban a memóriába kiírt értékeket beolvassa , majd konverziót hajt végre, és kiírja a DAVE portokra,

Ez jól hangzik! Azt lenne célszerű megoldani, hogy amikor a lejátszó a SID-et írja, akkor ott közvetlenül kerüljön ki a portra az adat. Az, hogy a lejátszó csak a RAM-ba ír, majd a lefutás után "egy körben" vannak bemásolva az értékek a SID regisztereibe, ez nem lenne mindig jó, mivel van olyan elvetemült kód, ami egy hívás alatt ugyanazt a regisztert többször is írja. Az utólagos másolgatásnál az előző írások értékei így nincsenek meg.

Jut eszembe, "igazi" SID chip eseten olyat is lehet, hogy annak van analog bemenete. Ha a Dave kimenetet raereszti az ember, elvileg SID-et (ha jol remlik ...) ra lehet venni, hogy tegye ra az analog szurojet, ezzel a Dave hangzasat is meg tudja valtoztatni. Bar, ratesz egy kis zajt is :) Na meg ugye a Dave stereo, a SID meg nem. Vagy esetleg akkor dual-SID megoldas :D

Valójában ez sem rossz ötlet, de én nem ebből az irányból közelíteném a dolgot. Az EP eredeti hangja sajnos igencsak zajos (pedig ezt is meg lehetett volna jóra csinálni), így még az is kérdéses, hogy egyáltalán van-e értelme (Van! :) ) az esetleges külső hangot visszaküldeni a gépbe.

Ja, es ha mar ott a SID, van rajta az emlitett audio bemenet szeruseg is, illetve ket "pot" nevu lab, ami elvileg vmi analog/digital atalakito, alapvetoen potmeterekben vegzodo cuccot lehet odatenni, amit aztan igy sw-bol le is lehet kerdezni. Hatha jo valamire az is :)

Az A/D-k elérhetőségét én nem erőltetném, mivel ha ilyen igényed lenne, de SID-et nem akarsz, akkor meg vagy lőve. :) Ha valaki 8 bites A/D átalakítót szeretne a géphez, azt sokkal egyszerűbb és modernebb módon meg lehet ma már csinálni.

Jó, de akkor ha megnézed a SAM Coupe SID kártyát, látsz rajta kb. 4-5 logikai IC-t, és az a buszillesztésen kívül megcsinálja a PHI2 generálást is. Annyira akkor mégsem kell bonyolultnak lennie. Persze gondolom ez csak a SID írást támogatja, az olvasást már nem, de annak igazából csak korlátozott haszna van.

Itt is bőven elég lenne pár alkatrész, amit - tőlem szokatlan módon - meg lehetne csinálni SSI TTL-ekből is.

Viszont ha már szóba került az előbb:

Masik: van az a SwinSID vagy mi project, ami SID-et emulal szinten MCU-val, C64-en pl elvileg az "igazi" SID helyebe is teheto, es megy (allitolag).

Lelőtted a poént, ugyanis pont ezt akarom első körben megcsinálni. Előny: nem kell hozzá semmi, ami ma nem kapható. Hátrány: nincsenek olvasható regiszterek (nem számít), nincs külső analóg hangbemenet, nincs A/D átalakító.

De ha jól tippelem a SAM-es cucc valami olyasmit csinál mint amit én az IDE kártyán. Külön I/O regiszterekbe ki van tolva minden jel (adat és címbusz) ami kellhet a SID-nek, és amikor minden ott van, valahogy szimulálva van neki, hogy tessék kaptál egy bájtot :-)

Itt most pont ezt akarom megcsinálni. Ki kellene találni, hogy hogyan is legyen. :)

  • Van valahol egy összefüggő 32 BYTE-os szabad I/O terület, ahova "leképződnek" a SID regiszterei. Előny: egyszerű. Hátrány: a 256 BYTE-os I/O területből soknak tűnik a 32 BYTE, pláne akkor, ha esetleg többet :) is akarok kapcsolni a géphez egyszerre.
  • Van valahol kettő szabad I/O BYTE, az egyikre az írandó SID regiszter számát kell kiírni, a másikra meg mehet utána az adat. Előny: egyszerű. Hátrány: két I/O írás ciklus kell egy SID regiszter íráshoz.
  • Van valahol egy szabad I/O BYTE, amire megy a SID-nek szánt adat. A címet az I/O ciklus alatt az A15..A8 címvonalakra kierülő regiszter értéke adja. (Az A15/A14 "elkódolása" nem számít, mert a 8 bitből úgyis csak 5 kell.) Előny: egyszerű. Hátrány: program oldaláról fog kelleni "szabad" regiszter a cím beállításhoz, ez nem tudom mennyire bonyolítja meg a kódot. Illetve ez a ficsőr működik pl. Z180-on is?

Szóval mi legyen? :-D
« Last Edit: 2015.May.27. 18:22:12 by balagesz »