Szerző Téma: 6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.  (Megtekintve 22227 alkalommal)

0 Felhasználó és 1 vendég van a témában

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Dátum: 2013. Június 2. - 16:05:20 »
Sikerült a SAM Coupéban(és a ZX-ekben) használt áramkört beépítenem a TVC-mbe. Készítettem hozzá orosz források alapján egy egyszerű E-tracker lejátszót is. Ha valakit esetleg érdekelnek a részletek, szívesen dokumentálom, és az IC beszerzésében is segítek.
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

Atka72

  • Full Member
  • ***
  • Hozzászólások: 110
  • Karma: +3/-0
    • Profil megtekintése
    • Atkalabor
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #1 Dátum: 2013. Június 3. - 10:23:10 »
Az igen gratula! Szívesen meghallgatnék egy demó felvételt róla. A TVC egycsatornás hangja helyett nagy előrelépés lenne. Minden dokumentáció érdekelne.

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #2 Dátum: 2013. Június 4. - 20:50:13 »
Szia,
most készítettem a videót, bár a google azonnal rámszállt, hogy harmadik féltől származó tartalom:-(.
Mindegy nézétek meg, a dokumentáció még készül, az is elképzelhető, hogy noname szerző zenéjével kellene felraknom.
Örülnék ha valaki mondjuk berakná az emulátorába az SAA emulációt, mert egy trackert akkor lehetne fejleszteni és saját zenéket gyártani akár saját játék alá is. Az eredeti dll a sourceforge-ról letölthető, de szívesen átküldöm annak aki foglalkozna vele.
Mindössze az FFh és az FEh portokról kéne levenni a bájtokat(mert oda raktam a cuccost, jó lenne egy közösen megbeszélt szabványosítás a fejlesztett hardverekre, hogy ne ütközzön senki senkivel, így közel 30 év után:-)).

Íme a videó:
https://www.youtube.com/watch?v=ZCaBS-sGkBc

Fogyasszátok egészséggel! :-)
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

Atka72

  • Full Member
  • ***
  • Hozzászólások: 110
  • Karma: +3/-0
    • Profil megtekintése
    • Atkalabor
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #3 Dátum: 2013. Június 5. - 02:17:01 »
Küldd el légyszi a CAS programot. megpróbálom belehegeszteni az EMU-ba a chipet. Mivel van DLL hozzá elvileg nem nehéz.
Viszont a vb nem igazán akarja egyenlőre megenni az SAAemu.dll függvény deklarációit, azzal szenvedek. 

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #4 Dátum: 2013. Június 5. - 18:36:29 »
Csatolok kettőt is, ha jól dolgozol, a másodikat is meghallgathatod :).

Az eredeti player regiszterei az 1FFh(regcím) és az FFh(adat) címeken voltak, az saaplayer példaprogijában ezeket a címeket találod. Viszont a TVC a BASIC-ben nem tud az OUT-nál 255 feletti értéket kiadni, ezért kompatibilitási és programozástechnikai okokból az FFh FEh portokra raktam az eszközt.
Az eredeti playert is egyszerübb volt így átírni, és a hardver huzalozása is ésszerűbb.

A müködését tekintve kurzormegszakítás alá van berakva a play rutin a casban, másodpercenként 50-szer meghívva automatikusan updateli a kiküldött adatokat.

Az SAA regiszterei csak írhatók.

Kíváncsi vagyok mit sikerül alkotnod, és köszönöm :).

A videóimat igyekszem úgy csinálni, hogy az elején a hangsáv hordozza a programot, így egy androidos telefon + jack-din kábellel az eredeti gépen azonnal használhatóak legyenek a szoftverek, kiváltva a jó öreg magnót :).
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

Gaia

  • Newbie
  • *
  • Hozzászólások: 46
  • Karma: +0/-0
    • Profil megtekintése
    • Gaia's shrine
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #5 Dátum: 2013. Június 5. - 22:46:39 »
Ismerős ez a zene, ez micsoda?

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #6 Dátum: 2013. Június 6. - 07:22:42 »
Az első casban az OMD - Enola Gay dallama van, a másodikat nem tudom megmondani. Egy cseh fickótól kértem/kaptam ezeket a zenefájlokat. Az ő tanácsára kezdtem el kutakodni orosz oldalakon, és utána találtam már egy csomót magamtól is.
Eleinte a Popcorn-t szerettem volna belerakni, de az nem E-trackeres, hanem "önhordó", tehát tartalmazza a bináris fájl a saját player rutinjait is. Azt egyelőre nem tudtam kibogarászni milyen címre rakjam, hogyan inicializáljam stb.
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

Atka72

  • Full Member
  • ***
  • Hozzászólások: 110
  • Karma: +3/-0
    • Profil megtekintése
    • Atkalabor
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #7 Dátum: 2013. Június 6. - 08:39:13 »
A tracker fájl formátumáról, ill az SAAsound.dll használatáról vannak doksik? Én eddig nem találtam.
Először csak egy lejátszó progit szeretnék összehozni, aztán mehetne az implementáció.
Egyébként 255-nél nagyobb kimeneti portot hogyan lehet címezni? Gépi kódból se megy szerintem, vagy igen?

VaszicsApoca

  • Full Member
  • ***
  • Hozzászólások: 125
  • Karma: +5/-0
    • Profil megtekintése
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #8 Dátum: 2013. Június 6. - 08:51:07 »
Attilák! (Gaia és Atka72)
Sikerült emulálni a WinTVC-be, vagy a PCZ80-ba a hangkártyát, hogy meg tudtátok hallgatni, indítani a cas file-t. Vagy most folyik a "művelet". A SamPlay programot mellékelem forrásfile-al együtt a teljes csomagot. A zip file-ban a SamPlay.exe-ét átneveztem xxx-re, hogy ne zavarja az vírusirtókat.   

Zozosoft

  • Newbie
  • *
  • Hozzászólások: 33
  • Karma: +2/-0
    • Profil megtekintése
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #9 Dátum: 2013. Június 6. - 09:41:55 »
Egyébként 255-nél nagyobb kimeneti portot hogyan lehet címezni? Gépi kódból se megy szerintem, vagy igen?
IN A,(n)/OUT (n),A utasításoknál az A regiszter, IN r,(C)/OUT (C),r utasításoknál a B regiszter kerül ki a címbusz felső 8 bitjére.
Ezt használják ki Spectrumon, 128-as gépen a 7FFDh a lapozó regiszter, BFFDh az AY data, FFFDh az AY cím.
Tehát pl a lapozás úgy néz ki:
LD A,n
LD BC,7FFDh
OUT (C),A

A Spectrum billentyű olvasás is ezt a trükköt használja ki, ott a kiküldött felső 8 bit mondja meg, hogy melyik sort akarjuk leolvasni a billentyű mátrixból, pl:
LD A,0F7H
IN A,(0FEH)

Ugyanez másként:
LD BC,0F7FEH
IN A,(C)

Atka72

  • Full Member
  • ***
  • Hozzászólások: 110
  • Karma: +3/-0
    • Profil megtekintése
    • Atkalabor
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #10 Dátum: 2013. Június 6. - 10:21:01 »
Zozosoft: Köszönöm  most már értem, trükkös egyben arra is rájöttem miért nem tudtam a bilentyűt lekérdezni a spectrum emumban :).

Abban tud valaki segíteni hogy hogyan kéne vb ben deklarálni az SAAemu függvényeit?
Van rá megoldás, vagy csak wrapperel lehet megoldani?

Így próbáltam :
Public Declare Sub saa_Init Lib "SAAemu.dll" ()
Public Declare Sub Init Lib "SAAemu.dll" ()

Call sam.Init

de mindíg  "cannot find DLL entry point Init in SAAemu.dll" az eredmény.

A WinTVC-be gondolom elég könnyen be léehetne építeni mert az is C++ ban van.

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #11 Dátum: 2013. Június 6. - 10:35:13 »
Az eredeti (16-bites portcímzéses) kódrészlet assemblyben:
ld bc,1FFh
ld de,1C01h               
out (c),d
dec b
out (c),e

Amit a következők szerint írtam át:
ld bc,0FFh
ld de,1C01h
out (c),d
dec c
out (c),e

Ez után még párszor betölt 1-1 bájtot, és a  portot eredetileg inc b majd dec b-vel címzi amit szintén átírtam inc c dec c-re.
Így csináltam belőle 8 bitest, hogy BASIC-ben is használható legyen.

Ezen a linken elérhető az scplayer forrása, van hozzá egy Z80 emulátor, az scplayer.cpp-ben van a lényeg.
https://github.com/Deltafire/SCPlayer/tree/master/src/scplayerlib
« Utoljára szerkesztve: 2013. Június 6. - 10:40:51 írta RetroHW »
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

PeterGriffin1

  • Newbie
  • *
  • Hozzászólások: 17
  • Karma: +4/-0
    • Profil megtekintése
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #12 Dátum: 2013. Június 6. - 18:43:15 »
Köszönet a demó videóért, kellemesen muzsikál :)
Az illesztő I/O port kiválasztásánál érdemes figyelembe venni, hogy eredetileg a SLOT0..3 jelek használandók a bővítőkártyák perifériacímzésére. Ezek 16-bájtos tartományt jelölnek ki a gép alap I/O tartományában. Előnyük, hogy nem kell a felső címbiteket dekódolni és már össze vannak kapuzva a Z80-as IORQ jelével, így közvetlenül használhatók IC kiválasztójelként (nCS). Hátrányuk, hogy a 4 bővítőkártya hely 4 külön címtartományban van, vagyis a kártyát másik slot-ba dugva másik I/O báziscímen érhető el. Ezért azt a programok indulásakor külön meg kell adni.
Másfelől, ha saját címdekódert használsz, akkor 080h fölött érdemes elhelyezni az I/O címet, mert a TVC csak az alsó 128 címet használja. (A 0FEh és 0F0h fölötti címeket a Spektrum emulátor kártyának érdemes meghagyni).

RetroHW

  • Administrator
  • Jr. Member
  • *****
  • Hozzászólások: 76
  • Karma: +1/-0
    • Profil megtekintése
    • RetroHW
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #13 Dátum: 2013. Június 9. - 17:44:07 »
Huh, mondjuk az elkerülte a figyelmemet, hogy a spektrumemu kártya pont azokat a portokat használja. Lehetne belőle különálló kártya, csak nem vagyok berendezkedve nyákgyártásra, így maradt a próbanyákos, beforrasztós móka. Viszont ez áthidalható, de akkor már egy többfunkciós kártyát szeretnék csinálni, amire felkerül mindaz ami nekem egy TVC-ből hiányzik. A soros vonal, a hang, egy valódi RTC és egy IDE csatoló.
Apropó létezik valahol egy kommentezett HBF ROM? Disassemblálni tudom, csak míg kitalálom hogyan tudom átírni, hogy a HDD-t kezelje CHS módban...
Tudom, sdinterface, na de ha az i80C31-el meg tudtam csinálni a HDD kezelést, csak menne TVC-vel is:-).
És legalább használnám ezt a jópár 100MB-2GB-s vinyómat.
Konfiguráció: TVC 64K Basic 1.2, SAA1099P, soros interfész, soros egér, +128K NVSRAM RTC-vel.

Zozosoft

  • Newbie
  • *
  • Hozzászólások: 33
  • Karma: +2/-0
    • Profil megtekintése
Re:6 csatornás, sztereó hangkártya TVC-hez SAA1099P-vel.
« Válasz #14 Dátum: 2013. Június 9. - 21:29:28 »
hogy a HDD-t kezelje CHS módban...
EXDOS-VTDOS rokonságból kiindulva, inkább LBA!
FISH maga mindenütt 16 bites LBA-t használ (azaz a maximális lemezméret 65535 szektor lehet), ehhez csak hozzá kell adni a partició kezdőszektorának számát és kész.

Ami kérdés, hogy a TVC-re készült "vágott" verzióban benne van-e a további lemezkezelőkkel bővítés lehetősége? Ha nem, akkor a floppykezelő helyére kell bevarázsolni.