forum speccy.pl

ZX Spectrum => HARDWARE => Wątek zaczęty przez: KWF w 2018.06.14, 18:17:29

Tytuł: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.06.14, 18:17:29
Szukam porady, ponieważ potrzebuję znaleźć wolny port I/O, który mógłbym wykorzystać. Port może mieć adresowanie jedno lub dwubajtowe. Dobrze byłoby, aby nie kolidowal z portami wykorzytsanymi w klonach ZXa: Timex, E800Jr, Didaktik i Pentagon. Do tego portu będą wysyłane tylko 3 wartości 01, 10 i 11 binarnie. Nie ma potrzeby odczytu z tego portu (na razie).

Mnogość różnych interfejsów i standardów jest niesamowita, wolalbym nie wsadzić się na minę, powodując kolizje z kogoś innego interfejsem. Jakieś sugestie byłyby wskazane.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.06.14, 18:28:22
Oto te najpopularniejsze:

https://www.worldofspectrum.org/faq/reference/ports.htm

Zawsze znajdzie się jakiś gadżet, który będzie kolidował. Może po prostu wybrać taki, który się rzadko spotyka.
Zależy też, do czego ma służyć ten Twój port? Bo może się będzie wykluczał z jakimś urządzeniem funkcjonalnie, i nie stoi wtedy nic na przeszkodzie, by "odziedziczył" któryś port wykluczonego urządzenia.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: pear w 2018.06.14, 18:33:38
Na liście brakuje jeszcze tego tajnego portu z Timex'a, który wyłącza banki pamięci. Jaki on miał adres ?
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.06.14, 18:39:21
Jest. F4, czyli 244.
Cytuję:

Peripheral: Timex TS2068 Horizontal Select Register.
Port: ---- ---- 1111 0100
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: pear w 2018.06.14, 18:44:25
Ciekawe skąd nazwa tego portu ?
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.06.14, 18:45:46
Z wykresu, który jest w instrukcji obsługi? Są na nim 3 słupki - podpisane HOME, DOCK i EXT bodajże. I ten rejestr miał służyć do wyboru poziomego, czyli który słupek włączamy/wyłączamy, choć nie do końca tak naprawdę.
Ja mam tylko technical manual, tak tam też nazywają ten rejestr:

2.1.13.5 Horizontal Select Register (Port F4H)
The HSR addressed via Port F4H is used in the control of
the Bank Switching logic as detailed in Section 2.1.8.
Each bit, when set, enables the corresponding 8K memory
"chunk" in either the Dock Bank (Port FF, Bit 7=0) or the
Extension ROM Bank (Port FF, Bit 7=1). The HSR must be
set to all zeroes in order to enable the entire Home Bank.


Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.06.14, 20:40:27
Dzięki Panowie.

Myślę nad jeszcze jednym portem, aby sterować AYkiem z poziomu softu. Więcej na razie nie napiszę, bo chcę najpierw przetestować mój pomysł w realnym sprzęcie.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.06.15, 10:25:41
Na razie spróbuję z portem 0xEFFD (61437). A15, A14 i A1 już są przy AYku, dojdzie tylko A12. Można pójść po bandzie i dekodowac po A12 i A1, najwyżej z FDC w +3 pogryzie się.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.06.15, 13:52:05
Hmm, trochę ryzykowne. Pod tym adresem prawie na pewno zgłosi Ci się właśnie AY:

Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.06.15, 14:28:24
A masz jakąś inną propozycję?
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.06.15, 15:17:52
Pomyślę i dam znać.
Na pewno możesz używać portu 1Fh do zapisu. To port Kempstona, jedyna kolizja przy zapisie może wystąpić, jeśli masz interfejs Kempston Mouse.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.06.15, 15:48:40
Popatrz na linie adresowe już dostępne w każdym normalnym interfejsie AYka. Dodanie jednej linii adresowej to nie problem, ale ciagniecie 3 nowych adresów, których tam nie, mija się z celem.

Myślałem też o 0xBFFB (1011 1111 1111 1011)

W każdym razie dzieki.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.06.15, 16:34:23
8Fh wygląda obiecująco. Koliduje z jakąś kompletnie niespotykaną stacją dysków JLO i z niczym więcej.
A xxFBh może kolidować z +D. Nie wiem, jak w niej jest zrobiony dekoder, co prawda - ale lepiej zakładać najgorszy wariant.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.11.11, 11:42:12
Wracam do tematu, bo chodzi mi on po głowie od jakiegoś czasu. A zależy mi na dyskusji teoretyczno-akademickiej, niż na tym jak i kto zbuduje sprzęt.

Do czego ten wolny port? - Sterowanie zegarem AY-ka.

Po co? Dlaczego?

Mamy dobre rozwiązania sprzętowe, muzykę wyciąganą z różnych dem, gier oraz odtwarzacze pod konkretną platformę sprzętową: Speccy, Amstrad, Atari ST. A jakby tak zrobić jeden hardware do Speccy, który będzie miał przełączany zegar i mógłby odtwarzać pliki z Amstrada czy Atari ST? Do tego potrzebny byłby moduł AY-ka z przełącznikiem taktowania układu dźwiękowego. Sprawa obecnie jest dość prosta do zbudowania, jedne mały CPLD i możemy przełączać zegar w locie przy użyciu wolnego portu. Cała idea na schemacie w załączniku. Zaproponowałem tylko 3 możliwe zegary:

Oczywiście potrzebne będzie wsparcie od strony programistów, aby oprogramowali ten "ficzejer" w rożnego typu odtwarzarkach plików muzycznych.

Ogólnie temat pod dyskusję, czy warto, czy jest sens.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.11.11, 11:58:33
Pomysł fajny, ale nie myślałeś o zastosowaniu scalonej syntezy? Może dawać więcej możliwości (np. zegary bliższe toastrackowi lub +2/+3 oraz różnym klonom).
W wolnej chwili poszukam, co ciekawego można znaleźć na pasmo KF ;)
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.11.11, 12:07:32
Czy jest sens kruszyć kopie o 0.02-0.04MHz?

Układ generacji dwóch częstotliwości podstawowych można załatwić jednym 74LS04 i dwoma kwarcami, albo dwoma generatorami kwarcowymi.

Zgoda, można wyciągać większe armaty, ale nadal będziemy strzelać do wróbla.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.11.11, 12:17:24
Nie wiem, czy jest sens. Chyba najlepiej, jakby się wypowiedzieli jacyś demoscenowcy tudzież autorzy gier, bo jednym z pytań, które mi się nasuwają, to czy nie ma produkcji, które wspierają AY-greka beeperem?
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: steev w 2018.11.11, 12:21:19
SI5351. Nawet z dodatkowym buforem i dopasowaniem poziomów i/o zajmie mniej miejsca niż dwa oscylatory z dzielnikami. :)
(Można kupić gotowy moduł już z level shifterem na liniach I2C)
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: andy w 2018.11.11, 12:24:40
zy nie ma produkcji, które wspierają AY-greka beeperem?
Któraś gra miała wręcz odwrotnie. Beeperowa muzyka była wspierana bębnami z AY. Chronos?
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.11.11, 12:28:03
Pierwsze guglanie naprowadziło mnie na taki chip:

https://www.analog.com/en/products/ad9837.html

Co prawda potrzeba by  było jeszcze jakiegoś jednoukładowca do obsługi SPI, ale i tak oba razem wyjdą raczej taniej, niż CPLD z 2 oscylatorami (czy nawet kwarcami). Potrzebny jest tylko jeden, tani i typowy kwarc 16MHz.
A rozdzielczość 0,06Hz robi wrażenie, można oddać niuanse poszczególnych modeli 128K i wszelkich klonów :D
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.11.11, 12:29:51
Dzielniki częstotliwości i przełącznik siedzą w CPLD (XC9536XL są za grosze), więc potrzebne są tylko częstotliwości podstawowe.

Wchodzimy w detale techniczne. Poza tym weźcie pod uwagę, to co już jest dostępne, zbudowane i przetestowane dla każdego "spawacza". Wszystkie nowinki techniczne, uP, SDI wymagają softu, który w zasadzie trzeba będzie samemu napisać. Nie chodzi o zrobienie promu kosmicznego, a czegoś, co amator z tego forum sam sobie zbuduje, bez wnikania w programowanie tych nowych układów. No i SMD raczej też odpada, nie każdy chce się w to babrać.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: pear w 2018.11.11, 13:31:15
Może PLL ICS501 ? Do dzielników czasem przyda się możliwość przemnożenia, zwłaszcza że ten układ ma dość bogaty wybór mnożników (sterowanie dwiema trójstanowymi liniami TTL).
Układ dostępny w TME za dychę.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.11.11, 13:38:02
Skoro tak się upierasz przy CPLD, to mały challenge: oscylator, dajmy na to 50 MHz i CPLD z 6-bitowym dzielnikiem częstotliwości z presetami, tzn. po osiągnięciu zera licznik jest presetowany podzielnikami zapisywanymi przez CPU do rejestru (portu) lub zafiksowanymi w logice CPLD i wybieranymi kilkoma pinami.
Jak podzielisz przez 50 - masz 1MHz.
Jak podzielisz przez 25 - masz 2MHz.
Jak podzielisz przez 28 lub 29 - masz coś bliskiego 128K.

Mały haczyk - przebieg na wyjściu nie zawsze będzie (a raczej rzadko będzie) symetryczny, więc dobrze jest zrobić dodatkowy podzielnik /2 na samym wyjściu. Może warto więc podnieść nieco częstotliwość oscylatora, albo też trzeba coś zakombinować dla najniższych częstotliwości, by uzyskać symetrię.


Bez bólu mieści się w XC9532, pewnie połowa zostanie pusta.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.11.11, 14:22:53
Ech! Pytanie było „Czy to ma sens?” oraz „ Czy to jest potrzebne?”

A Wy już rozdzielacie włos na czworo „jak zrealizować”. Każdy może zrobić sobie tak jak umie i chce, jeśli tylko będzie soft, który będzie wspierał ten pomysł.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.11.11, 14:28:57
Zadajesz pytania abstrakcyjne z punktu widzenia tego forum :)
Tu wszystko ma sens i jest potrzebne, choć dla większości ludzi spoza forum nie ma to sensu i nie jest potrzebne :)

O jaki soft Ci chodzi? O wysłanie z Basica jednej komendy OUT przed załadowaniem gry lub dema? :)
A jak zrobisz rejestr wg mojego pomysłu, to na 6 bitach masz podzielnik, zostają Ci więc wolne bity, można więc zrobić sterowanie multiplekserem wyjść ABC-ACB :D

Wiem, nie ma to sensu i nie jest potrzebne ;)
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.11.11, 14:34:23
Pokaz mi player, który wspiera takie zabawy, który potrafi odtworzyć coś więcej niż pliki AY ze Speccy.

To nie jest konkurs na najlepsze rozwiązanie sprzętowe, a raczej pomysł na wspólna platformę, jakiś standard dla odtwarzaczy. Studium wykonywalności i przydatności.

Tak pytanie było akademickie. Jeśli za sprzętem nie pójdzie choćby jeden programik, to cała zabawę można włożyć między bajki z mchu i paproci.

Nie upieram się przy żadnym rozwiązaniu technicznym, na czym to będzie zrealizowane. Jak ktoś ma fantazję, może i zrobić na logice diodowo-rezystorowej :)
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.11.11, 14:41:49
Matko... Po co Ci jakikolwiek SOFT do wysłania JEDNEJ komendy OUT?
Jak masz aż taki wstręt do dotykania klawiatury, to można to zrobić nawet na kilku jumperach albo przełączniczkach :) Ale przecież sam szukałeś wolnego numeru portu, by tym sterować z softu, prawda?
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.11.11, 14:51:32
Nie, nie mam wstrętu. Gubisz szerszy obraz.

Wysil wyobraźnię ;)

Masz bibliotekę plików z muzyczkami wyciągniętymi z różnych gier, dem, itp. Muzyczki z różnych sprzętów Atari, Amstrad czy Speccy. Każda z tych platform ma swój format zapisu takiej muzyczki. Odpalasz jakiś tam plejerek i wybierasz sobie plik x na platformę y. Soft sam wybierze zegar AYka, aby muzyczka była grana tak jak na platformie, na której powstała. Softu nie obchodzi, jak jest zrobiony muliplexer, zegary. Soft ma tylko wysłać odpowiednią sekwencję bitów do portu z, aby wybrać odpowiednie taktowanie układu dzwiekowego, oraz odtworzyć mjuzik. Użytkownika nie interesuje na czym ta muzyka powstała, on chce usłyszeć ją zagraną poprawnie.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.11.11, 15:01:59
Wysil wyobraźnię ;)

Nie muszę, po prostu jesteś totalnie niekonsekwentny we własnych pomysłach i o to mi chodzi:

Cytuj
Masz bibliotekę plików z muzyczkami wyciągniętymi z różnych gier, dem, itp. Muzyczki z różnych sprzętów Atari, Amstrad czy Speccy. Każda z tych platform ma swój format zapisu takiej muzyczki. Odpalasz jakiś tam plejerek i wybierasz sobie plik x na platformę y. Soft sam wybierze zegar AYka, aby muzyczka była grana tak jak na platformie, na której powstała. Softu nie obchodzi, jak jest zrobiony muliplexer, zegary. Soft ma tylko wysłać odpowiednią sekwencję bitów do portu z, aby wybrać odpowiednie taktowanie układu dzwiekowego, oraz odtworzyć mjuzik.

No to odpowiadam(-asz):
Pokaz mi player, który wspiera takie zabawy, który potrafi odtworzyć coś więcej niż pliki AY ze Speccy.

A ja od siebie dodam: pokaż mi playerek, który - cytuję - wybierasz sobie plik x na platformę y. Soft sam wybierze zegar AYka, aby muzyczka była grana tak jak na platformie, na której powstała. Koniec cytatu. Jest taki? Pytam, bo nie wiem, a nie dlatego, że chcę być na siłę złośliwy.

Ze swojej strony dodam, że normalne wybieraczki pod divIDE/MMC pozwalają dodawać POKE-i, więc z OUT też by raczej problemu nie było? I nie potrzeba wtedy jakiegoś wymyślnego softu? OK - gdyby taki jednak powstał i obsługiwał wszystko automatycznie, byłoby cudnie. No ale "Pokaż mi taki soft...". Ja Ci tylko podałem, jak to można zrobić, by było to proste i użyteczne, jako rozwinięcie Twojego pomysłu, bez dodawania czegokolwiek, co by wymagało jakiegokolwiek dodatkowego softu w porównaniu do tego, co sam zaprezentowałeś jako pomysł.

Jeśli masz ambicję taki soft stworzyć - to czapki z głów. A nawet dorzucę jakiś datek w przypadku crowdfundingu.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.11.11, 15:06:51
Nie ma softu, dlatego jest potrzebny ktoś od strony programowej, kto doklei ten pomysł.

Idea jest w stanie zalążkowym. To nie jest realizacja ani nawet jej próba. Rozwiniecie jest wskazane i myślisz, ze nie doceniam tego? Mylisz się, doceniam to co napisałeś Ty, pear, Andy, steev. Nie ma już „pomógł”, bo pomagacze należą się Wam.

Aby coś urodziło się, trzeba by zestandaryzować, założyć jakieś ramy. Od tego jest ten wątek.

A od realizacji sprzetowo-programowej są lepsi na tym forum.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.11.11, 15:14:15
No dobra :) Peace :)

A masz jakiś pomysł, jak się zabrać za tę standaryzację? Uderzyć do określonych osób na różnych forach (bo to nasze jedno reprezentuje raczej mały odprysk, nawet biorąc pod uwagę wszystkie modele Spectrum i Amstradów)? Bo metoda wrzucania "white paper" na FB się słabo sprawdza, patrząc na historię tzw. Chloe, tudzież Spectrum SE, którym chyba już pies z kulawą nogą się nie interesuje ;)
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.11.11, 15:21:41
Raczej zacząć trzeba od naszego grajdołka i zobaczyć co mamy w plikach muzycznych AYka. Co w nich siedzi. Jakie formaty są używane. Wybrać 3 najpopularniejsze, po jednym dla każdej z trzech platform sprzętowych. W esxDOS 0.8.6 jest plejerek autorstwa Szeryfa, może od modyfikacji tego plejerka zacząć i wtedy pokazać innym, czy to na fejsie, czy forach hiszpańskich, rosyjskich i angielskich.

Chyba za daleko sięgam, bo robi się „proof of concept”.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: pear w 2018.11.11, 15:31:22
Ech! Pytanie było „Czy to ma sens?” oraz „ Czy to jest potrzebne?”
Dla mnie pewnie nie jest istotna dokładność zegara dla AY, bo i tak tego nie usłyszę, ale ktoś z bardziej wyczulonym słuchem niestety usłyszy fałsz.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.11.11, 15:48:01
No właśnie liczyłem na wypowiedzi naszych lokalnych speców w tym temacie, bo sam jestem ciekaw, na ile to istotny aspekt.
Ale nadal uważam, że bardzo istotny jest model stereo (ACB vs ABC), bo to jednak każdy usłyszy.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.11.11, 17:10:58
Zgadzam się, że przełącznik ABC-ACB jest istotny, tylko czy jakikolwiek format plików dźwiękowych ma zaszytą informację o miksowaniu, które jest realizowane poza AYkiem? Klucze analogowe typu 4066 można zawsze dodać do toru audio.

Myślę, że każdy będzie w stanie usłyszeć, że coś jest nie tak jeśli plik na Amstrada (taktowanie 1MHz) zostanie odtworzony z taktowaniem ZXa. Niuanse Toastrack, +2A/3, Timex czy rosyjskie produkcje już raczej coś dla "smakoszy". Ale też nie chcę, aby sprawa poszła w stronę "audiofilstwa" i dysput, że kwarc firmy XYZ jest lepszy od ABC lub spoiwo lutownicze z czystego srebra "daje pełną przestrzeń basów z wyraźnymi akcentami w zakresie tonów średnich". ;)
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.11.11, 17:34:11
Zgadzam się, że przełącznik ABC-ACB jest istotny, tylko czy jakikolwiek format plików dźwiękowych ma zaszytą informację o miksowaniu, które jest realizowane poza AYkiem?

Przecież to nie jest cecha pliku, tylko sprzętu. W pliku nie znajdziesz też częstotliwości zegara.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: KWF w 2018.11.11, 17:37:47
I tak i nie. Format/rozszerzenie nazwy pliku może być identyfikatorem platformy sprzętowej. Ale nie będziesz miał tego rozróżnienia jaki mikser zastosowano. Zdajesz się tylko na własny słuch. W sumie można dodać w sofcie opcję "ptaszowania" typu miksera i zostawić ją w gestii użytkownika.
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: trojacek w 2018.11.11, 17:54:10
Oczywiście dobrze mieć możliwość wyboru.
Ale niektóre platformy mają na stałe przyporządkowane kanały. Oczywiście modele monofoniczne to żaden problem w tym przypadku :)
Tytuł: Odp: Wolne porty I/O
Wiadomość wysłana przez: Sir David w 2018.11.11, 19:03:10
Któraś gra miała wręcz odwrotnie. Beeperowa muzyka była wspierana bębnami z AY. Chronos?
Nie wiem czy Chronos, ale na pewno Raw Recruit.