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.
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
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?