ATARI 64-bit Project. Notatki robocze AVR-MAY.2017

Podobne dokumenty
Z ciekawości szukam jakiegoś dobrego emulatora ANTIC Atari XL/XE i tu są źródła do Altirry - jakiś późniejszy emulator od Atari 800 Win.

Sygnały DRQ i DACK jednego kanału zostały użyte do połączenia kaskadowego obydwu sterowników.

Układy czasowo-licznikowe w systemach 80x86

Cechy karty dzwiękowej

Organizacja typowego mikroprocesora

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

dokument DOK wersja 1.0

Programowanie Mikrokontrolerów

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Emulacja maszyny. Program udaje zupełnie inną architekturę. Musi przetłumaczyć instrukcje emulowane na instrukcje platformy, na której działa

WPROWADZENIE Mikrosterownik mikrokontrolery

Błąd pamięci karty graficznej lub Uszkodzona lub źle podpięta karta graficzna

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Instytut Teleinformatyki

Hardware mikrokontrolera X51

Układy czasowo-licznikowe w systemach mikroprocesorowych

Technika mikroprocesorowa. Konsola do gier

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Magistrala systemowa (System Bus)

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

1. Budowa komputera schemat ogólny.

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Instytut Teleinformatyki

Architektura komputerów. Układy wejścia-wyjścia komputera

Technika Mikroprocesorowa

MIKROKONTROLERY I MIKROPROCESORY

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

NX700 PLC

Przetwornik analogowo-cyfrowy

Programowanie mikrokontrolerów AVR

Architektura komputerów

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Systemy Czasu Rzeczywistego FPGA

Programowalne układy logiczne

NX70 PLC

Specyfika projektowania Mariusz Rawski

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Programowanie mikrokontrolerów. 8 listopada 2007

Struktura i działanie jednostki centralnej

Sprawdzian wiadomości z jednostki szkoleniowej M3.JM1.JS3 Użytkowanie kart dźwiękowych, głośników i mikrofonów

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Standard transmisji równoległej LPT Centronics

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Radio z odtwarzaczem CD Lenco

OPBOX ver USB 2.0 Miniaturowy Ultradźwiękowy system akwizycji danych ze

Laboratorium Komputerowe Systemy Pomiarowe

Radio kuchenne Soundmaster DAB 2035, FM, RDS, srebrne

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1

Komputery klasy PC. Dariusz Chaberski

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

LCD (Liquid Crystal Display)

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Dodatek D. Układ współpracy z klawiaturą i wyświetlaczem 8279

DVD MAKER USB2.0 Instrukcja instalacji

Budowa Mikrokomputera

PLUTO Sterownik bezpieczeństwa Skrócona Instrukcja obsługi oprogramowania. PlutoProgrammingManualPL_v7A.pdf 1

Radioodtwarzacz CD, FM SoundMaster RCD1750SI. Strona 1 z 9

Instrukcja podstawowego uruchomienia sterownika PLC LSIS serii XGB XBC-DR20SU

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Zestaw przedłużacza, 4K HDMI HDBaseT, 70 m

Podstawy Informatyki. Michał Pazdanowski

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

TECHNIKI MULTIMEDIALNE

Zestaw przedłużacza, 4K HDMI HDBaseT, 100 m

PRUS. projekt dokumentacja końcowa

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Jednostka centralna. Miejsca na napędy 5,25 :CD-ROM, DVD. Miejsca na napędy 3,5 : stacja dyskietek

Architektura mikroprocesorów z rdzeniem ColdFire

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

KB SOUND BASIC RADIO. Obniżka: -64,57 zł. Stara cena: 441,57 zł brutto. Nr referencyjny: Stan: Nowy. Informacje: KB SOUND BASIC

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

Załącznik nr 1 Szczegółowy wykaz zamawianego sprzętu Zestaw komputerowy klasy PC nr 1 Stacja robocza PC 2. Monitor LCD

Architektura komputerów

Systemy wbudowane. Paweł Pełczyński

Generowanie liczb o zadanym rozkładzie. ln(1 F (y) λ

2. Architektura mikrokontrolerów PIC16F8x... 13

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

Tuber radio BT MA407. Instrukcja obsługi User s Manual

Politechnika Warszawska

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

Mikroprocesor Operacje wejścia / wyjścia

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Transkrypt:

ATARI 64-bit Project Notatki robocze AVR-MAY.2017 Smaku Books 2010 r. Dariusz Smakulski Wydanie I Polska, 2017

(Przygotowanie do publikacji notatek)

SPIS TEMATÓW 1. Wstęp Wymagania do realizacji projektu (info AVR.2017). 2. Płyta główna wstęp. 3. POKEY. 4. PIA / POKEY 5. MMU / RAM / ROM / CIO / SIO. 6. CMOS (keyboard). 7. ANTIC. 8. GTIA. 9. MIPS / FLOPS. 10. Multi-Work Tech/Soft Serial Multitasking CPU, OS and tech task-managing solutions. 11. Multi-Work Parallel CPU Multitasking. 12. Urządzenia wewnętrzne (nośniki danych, manipulatory, multimedia, inne ) i złącza. 13. Urządzenia zewnętrzne (nośniki danych, manipulatory, multimedia, inne ) i złącza. 14. Produkcja. 15. Lista części, płyta główna.

16. Procesory dedykowane do pracy wspólnej w systemie z CPU ATARI 64-BIT 17. Wykonywanie aplikacji 8-bit, 16-bit, 32-bit, n-bit (n<=64) dowolnych systemów komputerowych kompatybilność systemu Atari 64-bit z całą linią / liniami systemów Atari niższych architektur, oraz z innymi systemami komputerowymi niższych architektur. 18. Emulacja dowolnych platform technologicznych uniwersalny sterownik systemów i układów elektronicznych z wykonaniem odwzorowania pracy dowolnych systemów, lub kombinacji systemów emulowanych. 19. Virtual Reality Realizing or Emulating Nature Examples 20. Dokumentacja. 21. Bibliografia.

Przypomina się, że osoby zainteresowane współpracą przy wdrożeniu projektu w formie produktu końcowego dla użytkownika muszą spełnić wymagania proste podstawowe: - znać się na komputerach, sprzęcie, oprogramowaniu, programowaniu w zakresie swobodnego operowania wszelkimi dostępnymi na rynku narzędziami i technologiami, lub niedostępnymi, czyli 'profesura zwyczajna z informatyki', tj. wiedzieć w sposób merytoryczny prosty, o czym mowa i umieć się tym zająć praktycznie w sposób prosty jako rzeczą prostą, znaną, oczywistą, nawet w kwestiach nowych, nieznanych, projektowanych, wymyślanych, etc. - napisać własny emulator Atari 65XE, lub emulator pełen dowolnego komputera 8-bitowego, 16-bitowego, 32-bitowego, n-bitowego - działający poprawnie 100% zgodnie z oryginałem emulowanym - język programowania dowolny, liczy się zrozumienie co się robi i programuje i jeśli jest efekt w postaci zaemulowania poprawnej pracy elementów i całego systemu emulowanego, to OK, znaczy, że wiadomo, co się robi, jeśli potrafi się opowiedzieć w kilku słowach o całości projektu, o elementach i pokazać - czyli osoby, które wiedzą co robią i jak wszystko działa, oczywiste czyli Dla tych, którzy napisali własny emulator innych komputerów, niż Atari 65XE, zadaniem własnym jest przeniesienie aplikacji w sposób modułowy najprostszy wprost na struktury systemu Atari 65XE, pokazując, że emulator komputera zrealizowany samodzielnie jest w pełni otwarty na modyfikacje, standardowy

i prosto zaprogramowany, czyli zgodnie ze standardami programowania - żeby tak było, wystarczy podmienić struktury swojego emulatora na struktury Atari 65XE i pokazać, że wykonało się działający poprawnie, prawidłowo odwzorowując, emulator Atari 65XE i gotowe - na razie więcej wymagań nie ma, zobaczymy potem Z powyższego wynikają oczywistości proste logiczne, że: - trzeba umieć swobodnie i świadomie programować w dowolnym języku programowania, który się dostanie jako narzędzie, w tym oczywiście assembler, języki programowania strukturalnego, interpretery, kompilatory, inne, wszystkie, dowolne - znać sprzęt komputerowy i elektroniczny dowolny i każdy w kwestiach logicznych i funkcjonalnych, oraz umieć odwzorować pracę dowolnego układu, urządzenia, systemu, etc. w sposób prosty programowy - umieć samodzielnie zaprogramować proste i dowolne algorytmy, oraz proste i dowolne systemy funkcji i struktur dowolnego rodzaju w postaci działających programów

- umieć samodzielnie opracowywać algorytmy proste i trudniejsze, w sposób logiczny rozumny prosty - zgodnie z postawionym zadaniem do zrealizowania - wystarczy być informatykiem znającym się na prostej informatyce czyli, nic więcej, oczywiste 64-bit.eu smakubooks.com kwiecień '2017 64-bit.eu/wydawnictwa/projekty-it-nt Atari 64-bit info, AVR-23-2017.txt

ATARI 64-BIT WSTĘP PŁYTA GŁÓWNA

Tu jakiś ciekawy artykuł o Atari 65XE Możliwe, że przydatny, zaraz zerknę, wait Atari część X ostatnie 8-bitowce W lipcu 1984 roku dział komputerowy Atari, będącego firmą zależną od koncernu medialnego Time Warner zostaje sprzedany Jackowi Tramielowi. Tramiel, który jeszcze do niedawna był szefem Commodore kupił Atari kierowany po części dobreprogramy.pl Tu widać ogólnie, ale widać, płytę główną z głównymi elementami / układami Atari 65XE, no to super, przydatne na początek, bo coś już widać, OK. gallery.dpcdn.pl

Po kolei: RAM 64kB widać, w Atari 64-bit ta pamięć jest o komórkach, które się adresuje 64-bit, a nie 8-bit, pewnie nie zmieści się aż tak ładnie, jak 64kB do 'pudełka' małego, jak Atari 65XE, ale zobaczymy kto umie wyprodukować chociaż kilka terabajtów pamięci RAM o komórkach 64-bit adresowanej dwoma rejestrami 64-bit, z dostępem do każdego pojedynczego bit-u pamięci RAM i to na początek wystarczy. Eksabajty na koniec dopiero, przed zamknięciem projektu na amen. CPU 6502 widać, wstawi się 64-bit, pod spodem ANTIC i GTIA, to tak samo, 64-bit będzie, PIA, POKEY, ROM System, ROM BASIC, MMU - wszystko dostosowane do 64-bit, oczywiste, wg tego samego patentu skalowania, czyli równo 100% wszystko idzie prosto wprost na 64-bit, proste, oczywiste zamontować

na płycie głównej dostosowanej do układów 64-bit, oczywiste, czyli jeszcze płyta główna do zrobienia i reszta to drobiazgi, na giełdzie się dostanie za grosze, oczywiste OK. READY[] Atari 64-bit powinien być cieniutki i cichutki i nie grzać się, jak zeszyt A4 dla studenta, a moc komputera w zakresach i zastosowaniach każdych możliwych - kosmos niespotykany, jak dotychczas, na świecie, oczywiste i mamy II-gą erę w komputeryzacji 64-bit era czyli, super. Lubię to. DS`.

ATARI 64-BIT POKEY-64

POKEY-64 SOUND - comment AVR-26-2017.txt Dla POKEY Atari XL/XE: wartość częstotliwości wyjściowej uzyskujemy ze wzorów: - dla zegara wejściowego o częstotliwości głównej (1,773447 MHz w systemie PAL): F = CLOCK/(2*(N+M)), gdzie N to wartość rejestru AUDF, a M to wartość modyfikująca zależna od rozmiaru rejestru generatora. - dla pojedynczego generatora ośmiobitowego M = 4, natomiast dla generatorów połączonych w parę M = 7. - dla zegara wejściowego o częstotliwości 1/28 lub 1/114 częstotliwości głównej: F = CLOCK/(2*(N+1)). POKEY 8-bit

Dla zainteresowanych: proszę sobie samodzielnie przerobić POKEY 8-bit na POKEY 64-bit i gotowe Zawsze z zachowaniem zasad skalowania architektur, czyli musi być to samo, ale x8 w sensie technologicznym najprostszym oczywistym Taka muzyka, na takich rejestrach, na takich generatorach gra sobie w Atari 64-bit Ładnie, prawda? czego może brakować komukolwiek na świecie w kwestii muzyki i dźwięków, kiedy już ktoś ma POKEY 64? [ link do muzyki przykładowej FM na 32 niezależnych kanałach dźwiękowych z generatorem 64-bit na zegarze 1.7GHz ]

Dla programistów: - jeśli ktoś dysponuje samodzielnie stworzonym przez siebie Emulatorem Atari XL/XE z pełną prawidłową emulacją układu POKEY: - można sobie prawidłowo skalując rozszerzyć struktury, na których pracuje POKEY 8-bit do struktur 64-bit i pobawić się dźwiękami POKEY-a 64 na PC-tach Dla elektroników: - jeśli ktoś ma schemat układu POKEY do Atari XL/XE i potrafi samodzielnie zrealizować ten układ elektroniczny, to: - trzeba najpierw przeskalować sobie prawidłowo układ POKEY 8-bit na układ POKEY 64-bit i otrzymuje się współczesny super układ muzyczno-dźwiękowy z całą resztą, którą zajmuje się POKEY oczywistości w sumie i proste, jak zabawa dla dziecka, oczywiste

POKEY-64 - Elements Żeby wiedzieć, jak muzyka i dźwięki mają ładnie grać, warto znać się na falach, albo chociaż poznać, ile by trzeba, żeby starczyło Fala zaburzenie rozprzestrzeniające się w ośrodku lub przestrzeni. W przypadku fal mechanicznych cząstki ośrodka, w którym rozchodzi się fala, oscylują wokół położenia równowagi, przy czym przenoszą energię z jednego miejsca do drugiego pl.wikipedia.org Ciekawe, jak gra Amiga na POKEY 64 trzeba to przepisać wszystko, nuta po nucie i brzmienia dostroić wait Amiga Music: Jogeir Liljedahl Compilation #2 It's been too long since we had a Jogeir compilation so it was time to dig out some more classy sounds from the master. I've chosen a few mods with a

POKEY 64-bit elements.txt Atari 64-bit Project - elements - for students. Dla zainteresowanych tematem, dla osób, które chciałyby samodzielnie móc zbudować odpowiednik 64-bitowy układu POKEY Atari 65XE. Zadanie proste: - zgodnie ze schematem końcówek układu POKEY 8-bit opisać schemat POKEY 64-bit w sposób wnioskowania logicznego oczywistego. POKEY Wikipedia, wolna encyklopedia Układ POKEY oznaczony został CO12294, ma 40 końcówek i jest odpowiedzialny za generowanie dźwięku, obsługę klawiatury, port szeregowy, obsługę potencjometrów

Przykład: końcówki D0 do D7 najpewniej wynikają z 8-bitowej architektury, czyli w architekturze 64-bit tych końcówek byłoby od D0 do D63 na schemacie widać jedynie D0, D4, D5, D6, D7, to pewnie 64-bit byłoby: D0x8, D4x8, D5x8, D6x8, D7x8, czyli 40 końcówek D odpowiadających D w 8-bit, potem końcówki prawdopodobnie adresowe A0, A1, A2, A3, w 64-bit byłoby to 4x8 bitów, czyli 32 końcówki, to już mamy 72 końcówki, reszta końcówek sprawdzić, za co odpowiadają i może wyjdzie około 100 końcówek w układzie POKEY 64-bit, szacując oglądowo, nie wiadomo, trzeba rozpisać dokładnie, oczywiste proste i gotowe krap.pl/ /kryten_droid/atari/800xl/atari_hw/pokey.htm [aktualizować link] Atari Pokey Data Sheet There are four semi-independent audio channels, each with its own frequency, noise and volume control. Each

Układ POKEY 64-bit powinien być gotowy do zrealizowania zgodnie ze schematem i gotowy do włożenia na płytę główną Atari 64-bit. Dla 64-bit, przygotować sprawdzenie częstotliwości na wartościach 64-bit w zależności od zegara: 1.77MHz dla PAL do xghz, jeśli potrzebne do czegokolwiek - zrobić 'suwak zegara x' i znaleźć wartość zegara dla sensownego zastosowania w najpełniejszym zakresie zastosowań i zachowując stabilną pracę i bezpieczną generatorów POKEY 64-bit nie eksperymentować bez zachowania BHP. Exact Frequencies The frequencies given above are approximate. The exact frequency (Fin) that clocks the divide-by-n counters is given below (NTSC only, PAL is different). Approx Exact (NTSC) Exact (PAL) 1.79 MHz 1.78979 MHz Use modified formula for Fout 64 khz 63.9210 khz Use normal formula for Fout 15 khz 15.6999 khz Use normal formula for Fout

The Normal formula for the output frequency is: Fout = Fin /2N where N = the binary number in the frequency register (AUDF), plus 1 (N=AUDF+1). The Modified formula should be used when Fin = 1.79 MHz and a more exact result is desired: Fout = Fin /2(AUDF+M) where M = 4 if 8 bit counter (AUDCTL bit 3 or 4 = 0), M = 7 if 16 bit counter (AUDCTL bit 3 or 4 = 1)

Następne zadanie: określić zastosowanie praktyczne POKEY 64-bit w pracy układu dla: a) generowania liczb pseudolosowych, b) obsługi przerwań, c) obsługi klawiatur multimedialnych, d) etc. - opisując cały układ POKEY 64-bit w elementach elektronicznych, logicznych, funkcjonalnych, z opisem zastosowania układu w zakresach udokumentowanych wynikających z architektury i rozwiązań zrealizowanych. AmenDS`. Po zrealizowaniu układu można się bawić potem ANTIC

Dla POKEY 64-bit sprawdzić, jakie łącza szeregowe i metody transmisji istnieją gotowe na rynku, idealnie pasujące do POKEY 64-bit => znaleźć idealnie pasujące rozwiązanie gotowe i dostosować, lub zwyczajnie użyć gotowe (bez modyfikacji) w Atari 64-bit. Lista portów szeregowych:

POKEY 64-bit - zakresy.txt Tu już zebrano jakieś wyliczenia a propos 64-bitowych wartości dla generatorów i 64-bitowych generatorów, ciekawe, jak to się przekłada na zakresy dostępne praktycznie dla użytkownika i technologicznie w wykonaniu, dla zegarów GHz W Atari POKEY 8-bit częstotliwości wyjściowe uzyskuje się ze wzoru: "dla zegara wejściowego o częstotliwości głównej (1,773447 MHz w systemie PAL): F = CLOCK/(2*(N+M)), gdzie N to wartość rejestru AUDF, a M to wartość modyfikująca zależna od rozmiaru rejestru generatora. Dla pojedynczego generatora ośmiobitowego M = 4, natomiast dla generatorów połączonych w parę M = 7." (atariki.krap.pl/index.php/rejestry_pokey-a) Ciekawe

Dla POKEY 64-bit trzeba to raz zebrać w tabelki i mieć gotowe na zawsze, żeby nie powtarzać za każdym razem przeglądając, hmm oczywiste F = CLOCK/(2*(N+M)) ==== POKEY 8-bit: CLOCK = 1,773447 MHz M=4 lub 7 N=0 do 2^8, tj. od 0 do 255 Tabelkę wartości F trzeba raz wygenerować na konkretnych liczbach w Excelu i gotowe. Teraz dla 64-bit.

==== POKEY 64-bit: CLOCK = 1,773447 MHz do xghz, gdzie x - sprawdzi się suwakiem i ustawi na najładniejsze, najsensowniejsze i najstabilniejsze, oraz najbezpieczniejsze dla użytkownika wartości w wynikach dla F i gotowe. M=32 lub około 126 lub 127 (dla generatorów dwóch połączonych) N=0 do 2^64, tj. od 0 do bardzo dużo, coś koło 18 miliardów, albo więcej. Tabelkę wartości F trzeba raz wygenerować na konkretnych liczbach w Excelu i gotowe. OK. READY []

I teraz co wynika z tych wartości dla POKEY 64-bit? - stacja nadawcza sygnałów radiowych? - rozdzielczości ładne dźwięków i muzyki? - sterowanie zwierzętami i psami, przykładowo, za pomocą dźwięków? - rozbijanie kamieni nerkowych, skał, podziemi, oceanów, planet? Zobaczymy, wait a jak się to podłączy do innych nadajników, zamiast AUDIO? Hmmm wait Audio bit depth - Wikipedia In digital audio using pulse-code modulation (PCM), bit depth is the number of bits of information in each sample, and it directly corresponds to the resolution of each sample. Examples of bit depth include Compact Disc Digital Audio, which uses 16 en.wikipedia.org

POKEY 64-bit pasmo dźwięku i rozdzielczość.txt Szukam sposobu wygrania całej gamy z zakresu 3Hz do 22kHz po wartościach częstotliwości konkretnych generowanych tu jest super coś szukając można fajne rzeczy znaleźć, czad commando genialnie bdżmi Potrzebuję wrzucić hurtem z pliku txt, albo z excela 2048 wartości częstotliwości i usłyszeć jak brzmią Hmm pewnie coś da się znaleźć wait Online Tone Generator - generate pure tones of any frequency To change the frequency, drag the slider or press (arrow keys). To adjust the frequency by 1 Hz, use the?? and?? buttons or press Shift + and Shift +. To adjust the frequency by 0.01 Hz, press Ctrl + and Ctrl + ; to adjust it by 0.001 Hz, press Ctrl + Shift + and Ctrl + Shift+ szynalski.com

Tu już bliżej tego, co szukam super ale wklepałem przykładową wartość: 53,74081818 i nie chciał zagrać, potrzebuje ten program całych wartości, naturalnych chyba, hmm no to za mało tu, ale już coś, super Online Tone Generator - Free, Simple and Easy to Use. Simply enter your desired frequency and press play. You will hear a pure tone sine wave sampled at a rate of 44.1kHz. The tone will continue until the stop button is pushed. onlinetonegenerator.com Tak, o to by mi chodziło, że POKEY-64 robi 2048 częstotliwości z zakresu 3Hz do 22kHz hmm zaokrąglając je do całych liczb, to wyjdzie żadna robota chyba to zawsze stała wartość by była dźwięków, jak schodki, a nie płynna fala ciągła, giętka mam 2048 częstotliwości z zakresu 3Hz do 22kHz ile to jest w całych liczbach? 22000?

hmm to się mnoży razy 100, albo coś chyba, że z tych 2048 ma wyjść 22000 całych wartości, albo coś źle kombinuję, kurde, wait POKEY 64-bit generuje mi 2^64 różnych wartości częstotliwości zmniejszyłem sobie zakres do 2048 różnych wartości, żeby to upchać ładnie bezpiecznie na zakresie 3Hz do 22kHz to może za mało wziąłem z tej puli 2^64 ok, to wezmę 22000 nut razy 4 nawet, mam ich miliardy miliardów człowiek chyba nie rozróżni w pewnym momencie częstotliwości, np. z takiego zestawu: [16,60530899 16,57427103 16,54334888 16,5125419 16,48184944 16,45127087 16,42080556 16,39045287 16,36021218

16,33008287] Te wszystkie częstotliwości po tej 16-tce powyżej nikt nie usłyszy chyba różnicy, nie wiem a może jednak OK, to z puli 2^64 wartości generowanych częstotliwości wezmę tyle, żeby mieć piękne, śliczne 100% full pasmo dla człowieka, że nie ma szans, żeby zauważył różnicę między dwoma sąsiadującymi częstotliwościami granymi OK. Byłaby to rozdzielczość dźwięku kwantowana na takie kwanty, że więcej dla człowieka nie trzeba, bo nie zauważy, OK. To się policzy jakoś i zobaczy z puli 2^64 zawsze sobie wygeneruję ładne full pasmo ludzkie pełne 100%. I można grać, czad to GOTOWE. READY czyli. OK. Wolne, super, lubię to teraz te wartości z zakresu 3Hz do 22kHz trzeba wrzucić do jakiegoś Playera POKEY Atari 65XE, żeby po brzmieniach Atari 65XE przejechać cały zestaw częstotliwości w rozdzielczości 64-bit, a nie 8-bit

=> to jest Zadanie Następne: zagrać na brzmieniach Atari 65XE POKEY całą gamę dźwięków w rozdzielczości generowanych częstotliwości 64- bit, a nie 8-bit jak usłyszę, to mogę przetestować zniekształcenia i szumy, etc. aż będzie widać, że wszystko ślicznie gra i można robić sprzętowy POKEY-64 i gotowe. OK. READY[].

POKEY-64 - zakres impulsów i fal generowanych.txt POKEY-64 - Sprawdzenie zastosowań Dla generatora 64-bit taktownego zegarem 1,7GHz. Spis możliwych zakresów impulsów generowanych w wykorzystaniu z zestawem urządzeń typu wzmacniacze, nadajniki dostosowane do generowania fal w zakresach możliwych. Promieniowanie elektromagnetyczne (fala elektromagnetyczna) rozchodzące się w przestrzeni zaburzenie pola elektromagnetycznego. pl.wikipedia.org

Dla 1,7GHz = 1700000000Hz = 1,7*10^9Hz zakres max impulsów generowanych jest tą liczbą 1,7*10^9Hz, czyli z tabelki w tym artykule wynika, że mogę wytwarzać fale, mając odpowiednie urządzenia podłączone pod POKEY-64 z wymienionych poniżej: Prąd zmienny Telefonia przewodowa Fale Hertza Fale długie Fale średnie Fale krótkie Fale ultrakrótkie Mikrofale 104 do max 1,7*10^9, chyba oczywiste, ale nie wiem, nie jestem fizykiem, oczywiste, tylko patrzę i liczę sobie, oczywiste potem zapytam fizyków, sam nie wiem, skąd niby, oczywiste Dla fal dźwiękowych wystarczy, że mam całe pasmo, proste czyli, czyli że mam wszystko i to w dobrej rozdzielczości, super, lubię to

Dźwięki, ze względu na ich częstotliwość f, dzieli się na: infradźwięki dźwięki słyszalne poniżej 16 Hz, od 16 Hz do 20 khz (odbiera je większość ludzi), ultradźwięki hiperdźwięki powyżej 20 khz, powyżej 10^10 Hz. Tych hiperdźwięków mogę zrobić max do 1,7*10^9Hz, oczywiste dla zegara obranego 1,7GHz, oczywiste więcej nie chcę, bo musi być bezpiecznie i stabilnie, oczywiste, dla dzieci czyli, do użytku domowego, oczywistości Mając taki zakres impulsów generowanych w sposób domowy prosty, jak dla dzieci, mogę sobie nawet modulować częstotliwości w zakresach możliwych do wygenerowania, oraz zwiększać ich rozdzielczość w zakresie zadanym, rezygnując z wielkości zakresu na rzecz jego rozdzielczości, hmm czyli właściwie w zależności od urządzenia podłączonego do POKEY-64 i zastosowań oczekiwanych, tak, czy inaczej,

mam pewnie pełne pasmo fizyczne wszystkich fal możliwych istniejących na świecie w zakresie bezpiecznym do 1,7GHz. OK. Lubię to not to READY[] potem oznaczę sobie kwanty rozdzielczości dla fal które wynikają z praw fizyki, że bardziej się nie da, bo nie istnieje super dla wartości 64-bitowych dla rozdzielczości jest czym operować w eksperymentach, super czyli Zadanie konkretne teraz: POKEY 64-bit na zegarze 1,7GHz => do realizacji programowej w Emulatorze Atari 65XE na strukturach 64-bit i po sprawdzeniu jakości wyników uzyskiwanych programowo, realizacja techniczna POKEY-64 zgodnie ze schematem POKEY-8, żeby sobie poużywać czad, lubię to GOTOWE[].

W Excelu wyszło dla POKEY 8-bit: 0 3,546894 1 4,4336175 2 5,320341 3 6,2070645 4 7,093788 5 7,9805115 6 8,867235 7 9,7539585 8 10,640682 9 11,5274055 10 12,414129 11 13,3008525 12 14,187576 13 15,0742995 14 15,961023 15 16,8477465 16 17,73447

17 18,6211935 18 19,507917 19 20,3946405 20 21,281364 21 22,1680875 22 23,054811 23 23,9415345 24 24,828258 25 25,7149815 26 26,601705 27 27,4884285 28 28,375152 29 29,2618755 30 30,148599 31 31,0353225 32 31,922046 33 32,8087695 34 33,695493 35 34,5822165 36 35,46894

37 36,3556635 38 37,242387 39 38,1291105 40 39,015834 41 39,9025575 42 40,789281 43 41,6760045 44 42,562728 45 43,4494515 46 44,336175 47 45,2228985 48 46,109622 49 46,9963455 50 47,883069 51 48,7697925 52 49,656516 53 50,5432395 54 51,429963 55 52,3166865 56 53,20341

57 54,0901335 58 54,976857 59 55,8635805 60 56,750304 61 57,6370275 62 58,523751 63 59,4104745 64 60,297198 65 61,1839215 66 62,070645 67 62,9573685 68 63,844092 69 64,7308155 70 65,617539 71 66,5042625 72 67,390986 73 68,2777095 74 69,164433 75 70,0511565 76 70,93788

77 71,8246035 78 72,711327 79 73,5980505 80 74,484774 81 75,3714975 82 76,258221 83 77,1449445 84 78,031668 85 78,9183915 86 79,805115 87 80,6918385 88 81,578562 89 82,4652855 90 83,352009 91 84,2387325 92 85,125456 93 86,0121795 94 86,898903 95 87,7856265 96 88,67235

97 89,5590735 98 90,445797 99 91,3325205 100 92,219244 101 93,1059675 102 93,992691 103 94,8794145 104 95,766138 105 96,6528615 106 97,539585 107 98,4263085 108 99,313032 109 100,1997555 110 101,086479 111 101,9732025 112 102,859926 113 103,7466495 114 104,633373 115 105,5200965 116 106,40682

117 107,2935435 118 108,180267 119 109,0669905 120 109,953714 121 110,8404375 122 111,727161 123 112,6138845 124 113,500608 125 114,3873315 126 115,274055 127 116,1607785 128 117,047502 129 117,9342255 130 118,820949 131 119,7076725 132 120,594396 133 121,4811195 134 122,367843 135 123,2545665 136 124,14129

137 125,0280135 138 125,914737 139 126,8014605 140 127,688184 141 128,5749075 142 129,461631 143 130,3483545 144 131,235078 145 132,1218015 146 133,008525 147 133,8952485 148 134,781972 149 135,6686955 150 136,555419 151 137,4421425 152 138,328866 153 139,2155895 154 140,102313 155 140,9890365 156 141,87576

157 142,7624835 158 143,649207 159 144,5359305 160 145,422654 161 146,3093775 162 147,196101 163 148,0828245 164 148,969548 165 149,8562715 166 150,742995 167 151,6297185 168 152,516442 169 153,4031655 170 154,289889 171 155,1766125 172 156,063336 173 156,9500595 174 157,836783 175 158,7235065 176 159,61023

177 160,4969535 178 161,383677 179 162,2704005 180 163,157124 181 164,0438475 182 164,930571 183 165,8172945 184 166,704018 185 167,5907415 186 168,477465 187 169,3641885 188 170,250912 189 171,1376355 190 172,024359 191 172,9110825 192 173,797806 193 174,6845295 194 175,571253 195 176,4579765 196 177,3447

197 178,2314235 198 179,118147 199 180,0048705 200 180,891594 201 181,7783175 202 182,665041 203 183,5517645 204 184,438488 205 185,3252115 206 186,211935 207 187,0986585 208 187,985382 209 188,8721055 210 189,758829 211 190,6455525 212 191,532276 213 192,4189995 214 193,305723 215 194,1924465 216 195,07917

217 195,9658935 218 196,852617 219 197,7393405 220 198,626064 221 199,5127875 222 200,399511 223 201,2862345 224 202,172958 225 203,0596815 226 203,946405 227 204,8331285 228 205,719852 229 206,6065755 230 207,493299 231 208,3800225 232 209,266746 233 210,1534695 234 211,040193 235 211,9269165 236 212,81364

237 213,7003635 238 214,587087 239 215,4738105 240 216,360534 241 217,2472575 242 218,133981 243 219,0207045 244 219,907428 245 220,7941515 246 221,680875 247 222,5675985 248 223,454322 249 224,3410455 250 225,227769 251 226,1144925 252 227,001216 253 227,8879395 254 228,774663 255 229,6613865

To ma być w MHz-ach? Max 229,66 MHz, a min 3,54 MHz? I co teraz? z tego ma być muzyka chyba no to dla POKEY 64-bit hmm wyjdą bardziej olbrzymie te liczby chyba tu jest zakres [0,255], to dla 64-bit wyjdzie zakres [0,2^64] olbrzymie liczby i teraz chyba trzeba to wrzucić na jakiś generator dźwięku dla człowieka, żeby było słychać te liczby a nie widzieć tylko hmm no to powinno wystarczyć z całej skali naturalnej fizycznej chyba dla wszystkich fal możliwych, które da się odróżnić od innych tak mi się zdaje ten zakres 0 do 255 robi całą gamę słyszalną dla człowieka na Atari 65XE, no to w 64-bit to samo w sumie, ale bardziej precyzyjne dźwięki by były

ładna gama, rozdzielczość super, gdyby od min do max mieć 2^64 różnych wartości fal ładnie wrzucić to na głośnik i powinno być genialne super układ, lubię POKEY 64-bit trzeba to w Excel wrzucić dla zakresu [0,2^64] i zobaczyć te liczby potem na głośnik i można sobie posłuchać, fajne, lubię to a nie, pomyliłem się, źle zapisałem wzór w Excel, nie wpisałem nawiasu, wait teraz chyba jest dobrze hmm tamto wyżej to źle to powinno być ok chyba kurde 0 0,221680875 1 0,1773447 2 0,14778725 3 0,126674786 4 0,110840438 5 0,098524833 6 0,08867235 7 0,080611227

8 0,073893625 9 0,0682095 10 0,063337393 11 0,0591149 12 0,055420219 13 0,052160206 14 0,049262417 15 0,046669658 16 0,044336175 17 0,042224929 18 0,040305614 19 0,038553196 20 0,036946813 21 0,03546894 22 0,03410475 23 0,032841611 24 0,031668696 25 0,030576672 26 0,02955745 27 0,028603984

28 0,027710109 29 0,026870409 30 0,026080103 31 0,025334957 32 0,024631208 33 0,0239655 34 0,023334829 35 0,0227365 36 0,022168088 37 0,021627402 38 0,021112464 39 0,020621477 40 0,020152807 41 0,019704967 42 0,019276598 43 0,018866457 44 0,018473406 45 0,018096398 46 0,01773447 47 0,017386735

48 0,017052375 49 0,016730632 50 0,016420806 51 0,016122245 52 0,015834348 53 0,015556553 54 0,015288336 55 0,015029212 56 0,014778725 57 0,014536451 58 0,014301992 59 0,014074976 60 0,013855055 61 0,0136419 62 0,013435205 63 0,013234679 64 0,013040051 65 0,012851065 66 0,012667479 67 0,012489063

68 0,012315604 69 0,012146897 70 0,01198275 71 0,01182298 72 0,011667414 73 0,01151589 74 0,01136825 75 0,011224348 76 0,011084044 77 0,010947204 78 0,010813701 79 0,010683416 80 0,010556232 81 0,010432041 82 0,010310738 83 0,010192224 84 0,010076403 85 0,009963185 86 0,009852483 87 0,009744214

88 0,009638299 89 0,009534661 90 0,009433229 91 0,009333932 92 0,009236703 93 0,009141479 94 0,009048199 95 0,008956803 96 0,008867235 97 0,008779441 98 0,008693368 99 0,008608966 100 0,008526188 101 0,008444986 102 0,008365316 103 0,008287136 104 0,008210403 105 0,008135078 106 0,008061123 107 0,0079885

108 0,007917174 109 0,007847111 110 0,007778276 111 0,007710639 112 0,007644168 113 0,007578833 114 0,007514606 115 0,007451458 116 0,007389363 117 0,007328293 118 0,007268225 119 0,007209134 120 0,007150996 121 0,007093788 122 0,007037488 123 0,006982075 124 0,006927527 125 0,006873826 126 0,00682095 127 0,006768882

128 0,006717602 129 0,006667094 130 0,00661734 131 0,006568322 132 0,006520026 133 0,006472434 134 0,006425533 135 0,006379306 136 0,006333739 137 0,006288819 138 0,006244532 139 0,006200864 140 0,006157802 141 0,006115334 142 0,006073449 143 0,006032133 144 0,005991375 145 0,005951164 146 0,00591149 147 0,005872341

148 0,005833707 149 0,005795578 150 0,005757945 151 0,005720797 152 0,005684125 153 0,00564792 154 0,005612174 155 0,005576877 156 0,005542022 157 0,005507599 158 0,005473602 159 0,005440021 160 0,005406851 161 0,005374082 162 0,005341708 163 0,005309722 164 0,005278116 165 0,005246885 166 0,005216021 167 0,005185518

168 0,005155369 169 0,005125569 170 0,005096112 171 0,005066991 172 0,005038202 173 0,005009737 174 0,004981593 175 0,004953763 176 0,004926242 177 0,004899025 178 0,004872107 179 0,004845484 180 0,004819149 181 0,0047931 182 0,004767331 183 0,004741837 184 0,004716614 185 0,004691659 186 0,004666966 187 0,004642531

188 0,004618352 189 0,004594422 190 0,00457074 191 0,0045473 192 0,004524099 193 0,004501135 194 0,004478402 195 0,004455897 196 0,004433618 197 0,00441156 198 0,00438972 199 0,004368096 200 0,004346684 201 0,00432548 202 0,004304483 203 0,004283688 204 0,004263094 205 0,004242696 206 0,004222493 207 0,004202481

208 0,004182658 209 0,004163021 210 0,004143568 211 0,004124295 212 0,004105201 213 0,004086283 214 0,004067539 215 0,004048966 216 0,004030561 217 0,004012324 218 0,00399425 219 0,003976339 220 0,003958587 221 0,003940993 222 0,003923555 223 0,003906271 224 0,003889138 225 0,003872155 226 0,00385532 227 0,00383863

228 0,003822084 229 0,00380568 230 0,003789417 231 0,003773291 232 0,003757303 233 0,003741449 234 0,003725729 235 0,00371014 236 0,003694681 237 0,003679351 238 0,003664147 239 0,003649068 240 0,003634113 241 0,00361928 242 0,003604567 243 0,003589974 244 0,003575498 245 0,003561139 246 0,003546894 247 0,003532763

248 0,003518744 249 0,003504836 250 0,003491037 251 0,003477347 252 0,003463764 253 0,003450286 254 0,003436913 255 0,003423643 Jak się wymnoży te liczby przez 1000, to wyjdzie ładniej, nie takie zera po przecinku: 221,680875 177,3447 147,78725 126,6747857 110,8404375 98,52483333 88,67235 80,61122727

73,893625 68,2095 63,33739286 59,1149 55,42021875 52,16020588 49,26241667 46,66965789 44,336175 42,22492857 40,30561364 38,55319565 36,9468125 35,46894 34,10475 32,84161111 31,66869643 30,57667241 29,55745 28,60398387

27,71010938 26,87040909 26,08010294 25,33495714 24,63120833 23,9655 23,33482895 22,7365 22,1680875 21,62740244 21,11246429 20,62147674 20,15280682 19,70496667 19,27659783 18,86645745 18,47340625 18,09639796 17,73447 17,38673529

17,052375 16,73063208 16,42080556 16,12224545 15,83434821 15,55655263 15,28833621 15,02921186 14,778725 14,53645082 14,30199194 14,07497619 13,85505469 13,6419 13,43520455 13,2346791 13,04005147 12,85106522 12,66747857 12,48906338

12,31560417 12,14689726 11,98275 11,82298 11,66741447 11,51588961 11,36825 11,2243481 11,08404375 10,9472037 10,81370122 10,68341566 10,55623214 10,43204118 10,31073837 10,19222414 10,07640341 9,963185393 9,852483333 9,744214286

9,638298913 9,53466129 9,433228723 9,333931579 9,236703125 9,141479381 9,04819898 8,95680303 8,867235 8,779440594 8,693367647 8,608966019 8,5261875 8,444985714 8,365316038 8,287135514 8,210402778 8,135077982 8,061122727 7,9885

7,917174107 7,847110619 7,778276316 7,71063913 7,644168103 7,578833333 7,514605932 7,451457983 7,3893625 7,328293388 7,26822541 7,209134146 7,150995968 7,093788 7,037488095 6,982074803 6,927527344 6,873825581 6,82095 6,768881679

6,717602273 6,667093985 6,617339552 6,568322222 6,520025735 6,472434307 6,425532609 6,379305755 6,333739286 6,288819149 6,24453169 6,200863636 6,157802083 6,115334483 6,07344863 6,032132653 5,991375 5,95116443 5,91149 5,87234106

5,833707237 5,795578431 5,757944805 5,720796774 5,684125 5,647920382 5,612174051 5,576877358 5,542021875 5,507599379 5,473601852 5,440021472 5,40685061 5,374081818 5,341707831 5,309721557 5,278116071 5,246884615 5,216020588 5,185517544

5,155369186 5,125569364 5,096112069 5,066991429 5,038201705 5,009737288 4,981592697 4,95376257 4,926241667 4,899024862 4,872107143 4,845483607 4,819149457 4,7931 4,767330645 4,741836898 4,716614362 4,69165873 4,666965789 4,642531414

4,618351563 4,59442228 4,570739691 4,5473 4,52409949 4,501134518 4,478401515 4,455896985 4,4336175 4,411559701 4,389720297 4,368096059 4,346683824 4,325480488 4,30448301 4,283688406 4,26309375 4,242696172 4,222492857 4,202481043

4,182658019 4,163021127 4,143567757 4,124295349 4,105201389 4,08628341 4,067538991 4,048965753 4,030561364 4,012323529 3,99425 3,976338565 3,958587054 3,940993333 3,92355531 3,906270925 3,889138158 3,872155022 3,855319565 3,83862987

3,822084052 3,805680258 3,789416667 3,773291489 3,757302966 3,741449367 3,725728992 3,710140167 3,69468125 3,679350622 3,664146694 3,649067901 3,634112705 3,619279592 3,604567073 3,589973684 3,575497984 3,561138554 3,546894 3,532762948

3,518744048 3,504835968 3,491037402 3,477347059 3,463763672 3,450285992 3,436912791 3,423642857 To powinno być już w khz-ach teraz? Max 3,42 khz, a min 221,68 khz? I co teraz? Zakres słyszalny dla człowieka to jest zdaje się od kilku herzów do 22kHz to tu jest 10 razy za dużo to trzeba na głośniku podzielić przez 10 i będzie dla człowieka chyba dopiero hmm trzeba te liczby odpowiednio przerobić na dźwięki dla człowieka

z tych pierwszych MHz-owych trzeba chyba wymnożyć przez 100, a nie 1000 i wyjdzie min. 22,1, a max 0,34 ale w jakich to jednostkach? hmm ok, trzeba te liczby jakoś na zakres słyszalny dla człowieka, obojętne co mnożyć i jak zestaw liczb robi generator POKEY 8-bit Atari 65XE czyli mamy liczby generowane super zgodnie ze wzorem F=clock/(2*(m+n)), w zakresie zamkniętym od 0 do 255 konkretnych liczb F dla tych parametrów m i n no to OK. Trzeba te liczby wrzucić na głośnik, obojętnie jak one są MHzowe w wygenerowaniu przez POKEY? to trzeba je jakoś transformować na khz i Hz w zakresie ludzkim słyszalnym i GOTOWE ok, proste Potem to samo dla zestawu liczb wygenerowanych dla 64- bit ten sam wzór F=clock/(2*(m+n)), dla m=32 na początek i dla n od 0 do 2^64 clock na początek ten sam PAL 1,77MHz, albo odpowiedni dopasować, żeby liczby ładne się generowały w Excelu z tego generatora POKEY 64-bit

jak liczby będą śliczne dla n = od 0 do 2^64 to wtedy się to puści na głośnik ok. Super. Proste. READY. Lubię to gotowe czyli posłucham sobie POKEY 64-bit najpierw muszę mieć te F dla POKEY 64-bit ładny CLOCK trzeba określić, wait Dla współczesnych zegarów taktujących CPU 1,7GHz to zwyczajna, prosto dostępna dla każdego, bezpieczna i 'zwyczajnie naturalna' częstotliwość, z której można sobie korzystać, oczywiste czyli CLOCK=1,7GHz powiedzmy, dla sprawdzenia, na początek dla wzoru F=CLOCK(2*(m+n)), dla m=32 i n=0 do 2^64 OK. Teraz w Excel jakie liczby mi wyjdą dla n od 0 do 2^64, m=32, COCK=1,7GHz ciekawe jeśli uda mi się wygenerować całe pasmo dźwiękowe naturalne możliwe, a nawet inne fale, przy takich częstotliwościach, wystarczy zamiast głośnika podłączyć inny nadajnik i będę sobie stację telefonii komórkowej i Polskiego Radia na falach długich robił w domu na moim Atari 64-bit

hmm ciekawe, jaki ZAKRES pełen możliwy udostępnia mi generator POKEY-64 w kwestii impulsów generowanych, które mogę przerzucić na nadajniki i wzmacniacze dowolnego rodzaju, cokolwiek sobie podłączę do POKEY-64 rozdzielczość i precyzja wynikająca muszą być super, pewnie wystarczające na wszystkie możliwe zastosowania współczesne i przyszłe, tak mi się zdaje, ale nie wiem, nie jestem fizykiem, oczywiste hmm wystarczy CPU 1,7GHz i POKEY-64 na początek no i teraz nadajniki i wzmacniacze, żeby te impulsy generowane sobie wykorzystać, wait ale genialna robota, będę Bogiem na Ziemi i w kosmosie, wait Genialne Zamiast dostosowywać Emulator Atari 65XE do wersji 64-bit po całości, żeby tylko sprawdzić działanie POKEY-64, wystarczyłoby sprawdzić mimo wszystko w sposób prosty jakiś - jedynie POKEY-64, żeby sobie ułatwić i od razu mieć wynik Hmm No i tu jest jakiś emulator POKEY-8 Atari 65XE teraz wystarczy przerobić na struktury 64-bit dla wzoru:

F=CLOCK(2*(m+n)) zastosowanego w tego typu programie przykładowo Brzmienia są, grają, działają, POKEY Atari 65XE ładnie brzmi, czyli pewnie działa w miarę dobrze, no to OK. To gotowe Teraz podmienić to, co potrzeba, na wartości z zakresów generowanych: F=CLOCK(2*(m+n)), gdzie m=32, n=0 do 2^64, CLOCK=1,7GHz, lub 17,7MHz, lub 177,0MHz, żeby z Atarowskiego PAL 1,77MHz sprawdzić ładnie przeskalowane w zegarze x10 i x100, czyli na zegarze x1000, tj. 1,7GHz też byłoby ładnie, chyba tak kombinuję wstępnie OK. POKEY-8 gra ładnie, działa, lubię to.

Teraz trzeba wziąć tabelkę wartości generowanych przez POKEY Atari 65XE dla dźwięków, ale dla architektury 64-bit, czyli tabelka liczb dla POKEY-64, zamiast POKEY-8. I grać te same brzmienia na tych samych wzorach Atarowskich, oczywiste. Powinno być lux commando super genialna muzyka Atari XL/XE POKEY, ale w rozdzielczości 64-bit, chyba oczywiste, ale nie wiem, trzeba sprawdzić, wait RUN [] raster.infos.cz/atari/rmt/rmt.htm

Potem na takim POKEY-64 Atari 64-bit można wrzucić wszystkie melodie świata, Amigowe, PC-towe, dowolne i sprawdzać, jak grają, super lubię to Teraz mając POKEY gotowy Jak to się gra w postaci dźwięków słyszalnych dla człowieka? Hmm Zestawy liczb to tylko liczby, które wychodzą z pracy generatorów POKEY Gdzie to idzie w Atari i jak jest przerabiane i na co, że gra muzyka i dźwięk? Tu jest jeden drut tylko, razem z wizją i tym idzie muzyka? Co przerabia pracę POKEY na sygnały do Audio Out?

No i nie znam się kurde Na tym jednym drucie na gnieździe PAL 3. Audio Output, musi iść muzyka 64-bitowa z generatora POKEY 64-bitowego, a nawet z 32-óch generatorów jednocześnie, hmm Ten drut musi przepuszczać zakres F=1,7GHz/(2*(32+2^64) dla jednego generatora 64-bit, a muszę puścić ładnie 32 niezależne generatory w jeden kabel na głośnik. Nic więcej na razie najwyżej przy połączonych dwóch generatorach byłoby: F=1,7GHz/(2*(126lub127+2^64) przy połączeniu więcej ilości generatorów to nie wiem, jeszcze nie sprawdzałem hmm zobaczymy atariki.krap.pl/index.php/gniazdo_monitorowe

Tabelki wartości wyliczone 'jakoś' z generatora POKEY 8-bit dla zakresu n=[0..255], CLOCK=1,773447MHz, m=4: od 221,680875 do 3,423642857 Tabelki wartości wyliczone 'jakoś' z generatora POKEY 64-bit dla zakresu n=[0..2047], CLOCK=1773,447MHz, m=32: od 277,1010938 do 4,2651443 Pięknie POKEY 8-bit ATARI 65XE gra ślicznie POKEY 64-bit ATARI 64-bit powinien grać 8x, albo wykładniczo 8x śliczniej hmm Rozdzielczość gamy dla POKEY 8-bit jest w zakresie słyszalnym: 256 nut.

Rozdzielczość gamy dla POKEY 64-bit jest w zakresie słyszalnym: 2048=8*256 nut. Atari 65XE gra na 256 nutach. Atari 64-bit gra na 2048 nutach. Dalsze 'nuty' Atari 64-bit są poza pasmem słyszalnym człowieka, aż do infradźwięków, lub hiperdźwięków i do tego mikrofal na brzegach zakresów i telefonię komórkową, poprzez fale radiowe długie, krótkie, ultrakrótkie, a niżej przez telefonię przewodową i prąd nawet Hmm Na razie muzyka Wait trzeba usłyszeć te 2048 nut wait

Te nuty trzeba zagrać w paśmie dźwięku od 4Hz do 22kHz, rozpoczynając według wzoru takimi nutami: 277,1010938 268,7040909 260,8010294 253,3495714 246,3120833 239,655 233,3482895 227,365 221,680875 216,2740244 211,1246429 206,2147674 201,5280682 197,0496667 192,7659783 188,6645745

184,7340625 180,9639796 177,3447 173,8673529 170,52375 167,3063208 164,2080556 161,2224545 158,3434821 155,5655263 152,8833621 150,2921186 147,78725 145,3645082 143,0199194 140,7497619 138,5505469 136,419

Kończy się zakres nutami: 4,306573579 4,30448301 4,302394469 4,300307953 4,298223461 4,296140988 4,294060533 4,291982091 4,28990566 4,287831238 4,285758821 4,283688406 4,28161999 4,279553571 4,277489146 4,275426712 4,273366265

4,271307803 4,269251324 4,267196824 4,2651443 OK. 2048 nut w zakresie słyszalnym ludzkim teraz musi to grać jak na Atari 65XE gdzie to się puszcza? Może wystarczy podłożyć pod wartości 65XE w źródłach tego programiku i zagrać po prostu, hmm raster.infos.cz/atari/rmt/rmt.htm RMT - RASTER MUSIC TRACKER - ATARI XE/XL Cross-plafrom music tracker for making Pokey chip 8bit raster.infos.cz Skoro brzmienia atarowskie są wygrywane przez ten programik, to wystarczy je wygrywać po 2048 nutach z POKEY-64, a nie 256 z POKEY 8-bit OK. Jakoś się da, wait READY[]

POKEY CHIP - tech desc.txt Chcąc zrobić sobie własny układ POKEY w wersji programowej, potem sprzętowej, żeby móc zrobić taki sam, ale w wersji 64-bit trzeba najpierw jakoś to zrobić Może według dokumentacji technicznej POKEY Atari XL/XE, od razu do Turbo Pascala 5.5.:

unit pokey; INTERFACE uses global; procedure do_pokey; procedure get_pins_vals; procedure send_pins_vals; IMPLEMENTATION var CMOS4052_key_value :byte;

{ POKEY ADDRESS TABLE - WRITE, READ } { 0 } AUDF1, POT0, { 1 } AUDC1, POT1, { 2 } AUDF2, POT2, { 3 } AUDC2, POT3, { 4 } AUDF3, POT4, { 5 } AUDC3, POT5, { 6 } AUDF4, POT6, { 7 } AUDC4, POT7, { 8 } AUDCTL, ALLPOT, { 9 } STIMER, KBCODE, { A } SKRES, RANDOM_, { B } POTGO, { C } { D } SEROUT, SERIN, { E } IRQEN, IRQST, { F } SKCTLS, SKSTAT :byte;

AB, DB, K, SKCTL, BINCNT :byte; Fout, Fin_N, Fin_N1, Fin_N2, Fin_N3, Fin_N4 :real; pin_array :array [1..40] of byte; { 01 - VSS - Ground - I 02 - D3 - Data Bus - I/O 03 - D4 - Data Bus - I/O 04 - D5 - Data Bus - I/O 05 - D6 - Data Bus - I/O 06 - D7 - Data Bus - I/O 07 - O2 - Phase 2 Clock - I 08 - P6 - Pot Scan - I 09 - P7 - Pot Scan - I 10 - P4 - Pot Scan - I 11 - P5 - Pot Scan - I 12 - P2 - Pot Scan - I 13 - P3 - Pot Scan - I

14 - P0 - Pot Scan - I 15 - P1 - Pot Scan - I 16 - /KR2 - Keyboard Scan - I 17 - VDD - 5 V Power - I 18 - /K5 - Keyboard Scan - O 19 - /K4 - Keyboard Scan - O 20 - /K3 - Keyboard Scan - O 21 - /K2 - Keyboard Scan - O 22 - /K1 - Keyboard Scan - O 23 - /K0 - Keyboard Scan - O 24 - SID - Serial Input Data - I 25 - /KR1 - Keyboard Scan - I 26 - BCLK - Bidirection Clock - I/O 27 - OCLK - Serial Output Clock - O 28 - SOD - Serial Output Data - O 29 - /IRQ - Interrupt Request - O 30 - /CSO - Chip Select - I 31 - CS1 - Chip Select - I 32 - R/W - Read/Write Control - I 33 - A3 - Address Bus - I

34 - A2 - Address Bus - I 35 - A1 - Address Bus - I 36 - A0 - Address Bus - I 37 - AUDIO - Audio Out - O 38 - D0 - Data Bus - I/O 39 - D1 - Data Bus - I/O 40 - D2 - Data Bus - I/O Dla POKEY-64: 41-69 - A4-A33 - Address Bus 70-126 - D8-D63 - Data Bus 127 - /K6 - Keyboard scan 128 - /K7 - Keyboard scan 129-160 - Audio - Audio Out } { oraz pozostałe rejestry potrzebne POKEY-owi, żeby wiedział, na czym pracuje }

PIN :byte; { unit POKEY może pobierać i zwracać JEDYNIE impulsy, jakie dochodzą / odchodzą do / z w technicznym układzie POKEY, oczywiste, czyli 40 bitów => wystarczy jedna zmienna typu byte, żeby obsługiwać CAŁY POKEY Atari XL/XE w kwestii współpracy z otoczeniem POKEY, oczywiste, hmm za pomocą serii impulsów liczb 8-bitowych z zakresu 6-ciu bitów max. wykorzystanych, szeregowo trzeba by strzelać 40 wartości PIN-ów jedną zmienną do POKEY-a, hmm a potem z powrotem, hmm } procedure do_pokey; begin get_pins_vals; do_sound; do_keyboard; do_paddle; do_serial_port; set_rnd; do_irq; send_pins_vals; end;

No to proste teraz reszta, czyli techniczna praca POKEY na 40-tu pinach, program musi robić 100% pracę POKEY, oczywiste i korzystać JEDYNIE z tych 40-tu pinów, oczywistości no to RUN[] READY [] Przykład wstępny (zarys) elementu pracy POKEY odpowiedzialnego za dźwięki:

procedure do_sound; begin { cztery niezalezne kanaly dzwiekowe z czestotliwoscia, szumami i glosnoscia: AUDF1 00, AUDF2 02, AUDF3 04, AUDF4 06 Kazdy kanal kontrolowany przez osobny AUDC do wyboru szumu i glosnosci: } AUDC1 01, AUDC2 03, AUDC3 05, AUDC4 07 bity: 00-03: volume 04: volume control only - forcing { dzielnik czestotl. N i 8-bit rej. kontroli ktory wybiera szum i glosnosc } if STIMER=1 then; { kanaly dzwiekowe resetowane } Fin_N:=0.064; Fin_N1:=Fin_N;

Fin_N2:=Fin_N; Fin_N3:=Fin_N; Fin_N4:=Fin_N; if AUDCTL and 128 = 128 {7bit} then; { 17bit licznik redukuje sie do 9bit} if AUDCTL and 64 = 64 {6bit} then Fin_N1:=1.79; { 1.79MHz zamiast 64kHz } if AUDCTL and 32 = 32 {5bit} then Fin_N3:=1.79; { 1.79MHz zamiast 64kHz } if AUDCTL and 16 = 16 {4bit} then Fin_N2:=Fin_N1; { N2 taktowane wyjsciem N1 zamiast 64kHz (16-bit) } if AUDCTL and 8 = 8 {3bit} then Fin_N4:=Fin_N3; { N4 taktowane wyjsciem N3 zamiast 64kHz (16bit) } if AUDCTL and 4 = 4 {2bit} then; { ustaw Hi Pass Filter na CH1, taktowany CH3 } if AUDCTL and 2 = 2 {1bit} then; { ustaw Hi Pass Filter na CH2, taktowany CH4} if AUDCTL and 64kHz na 15kHz} 1 = 1 {0bit} then Fin_N:=0.015; { zmien { opcje: 4 kanaly 8-bitowe, lub 2 kanay 16-bit, lub 1 kanal 16- bit i 2 kanaly 8-bit }

{ 3 liczniki 1.79MHz do generowania losowych szumow: 17bit, 5bit, 4bit } { 1.79MHz = 1.78979 MHz Fout=Fin/2(AUDF+M), M=4 if AUDCTL bit 3 or 4 = 0, M=7 if AUDCTL bit 3 or 4 = 1} { 64 khz = 63.9210 khz Fout=Fin/2N, N=AUDF+1} { 15 khz = 15.6999 khz Fout=Fin/2N, N=AUDF+1} { PIN37 - AUDIO - Audio Out } end;

procedure do_keyboard; begin { Keyboard Scan } { K0-K5 - linie skanujace klawiature z wartosciami od 00 do 3f (6 bitow) - pozwala dekodowac 64 klawisze } { z zewnetrznym CMOS (4052) tworzy sie matryca klawiszy } { wartosc klawisza wybrana przez matryce jest zwrocona na KR1 } { SKCTL - wl. lub wyl. skaner klawiatury } { dwie linie kontrolne: jedna dekoduje w pelni 6 linii skanujcych, druga dekoduje tylko CTRL, SHIFT, BREAK } if SKCTL {0F} and 3 = 0 { D0 i D1 = 0} then { inicjalizacja i testowanie ukladu } else if SKCTL and 1 = 1 then { D0 enables keyboard debounce circuits } else

if SKCTL and 2 = 2 then; { D1 enables keyboard scanning circuits } { skanowanie KR1 licznikiem binarnym do okreslenia kodu klawisza } { skanowanie KR2 do okreslenia BRK, SHIFT lub CONTROL } if K=15 then; {BRK} if K=15+32 then; {SHIFT} if K=15+16+32 then; {CONTROL} { KBCODE 09 - Keyboard Interrupt: IRQ and bit 6 or 7 of IRQST } { D7 - Control Key, D6 - Shift Key } { Load CompareLatch to KeycodeLatch (K0-K5) } { send IRQ status } { Load SHIFT Status (K6), Load CNTL Status (K7) => to KeycodeLatch }

{ KeycodeLatch to Data Bus: - ustaw PIN-y Data Bus dla KeycodeLatch - wrzuc PIN-y Data Bus na DB } { zwroc BREAK } end;

procedure do_serial_port; begin { port szeregowy - serial I/O port: linia wyjscia, linia wejscia, linia zegraowa wyjscia, dwukierunkowa linia zegara / danych, rejestry kontrolne do konfigurowania portu szeregowego } if SEROUT=255 then; { pocz. transmisji } { przerwanie do CPU informacja o pustym SEROUT } if SERIN=255 then; { pocz. transmisji } { przerwanie do CPU informacja o pobraniu do SERIN } { serial I/O: reg_bah:=$d2 reg_bal:=$0d; DB:=serial_io_data; } end;

procedure set_rnd; { set random value to RND register } begin { 0A czyta wyzszych 8 bitow 17-bitowego licznika (reads 9bit if bit 7 of AUDCTL=1) } { jesli POKEY jest w stanie inicjalizacyjnym (SKCTLS), licznik jest ustawiony na wszystkie 1-ki, CPU przeczyta $FF } reg_bah:=rndh; reg_bal:=rndl; DB:=random(256); memw; end;

procedure do_irq; { $fffe-$ffff } begin { 8 przerwan IRQ: BRK, OTHER key, SERIAL INPUT READY, SERIAL OUTPUT NEEDED, TRANSMISSION FINISHED, TIMER #4, TIMER #2, TIMER #1 - moga byc wl. lub wyl. programowo, istnieje rejestr do odczytania stanu przerwan } { IRQEN (0E) - stan przerwan: 0 - brak przerwania, 1 - przerwanie } if IRQEN and 128 = 128 then; { D7 BREAK KEY} if IRQEN and 64 = 64 then; { D6 OTHER KEY } if IRQEN and 32 = 32 then; { D5 SERIAL INPUT READY } if IRQEN and 16 = 16 then; { D4 SERIAL OUTPUT NEEDED }

if IRQEN and 8 = 8 then; { D3 TRANSMISSION FINISHED } if IRQEN and 4 = 4 then; { D2 TIMER #4 - audio dzielnik #4 osiagnal 0 } if IRQEN and 2 = 2 then; { D1 TIMER #2 - audio dzielnik #2 osiagnal 0 } if IRQEN and 1 = 1 then; { D0 TIMER #1 - audio dzielnik #1 osiagnal 0 } { IRQST (0E) - testowanie stanu IRQEN: 0 - przerwanie, 1 - brak przerwania } { zainicjalizowac wektory i adresy przerwan prawidlowo } if reg_p.i=0 then begin { wykonaj JSR dla IRQ (nie naruszajac stanow pracy CPU) : dane na stos i jsr, przywrocenie danych, powrot: } irq_vect_l:=$fe; irq_vect_h:=$ff; exec_irq;

reg_bah:=irqenh; reg_bal:=irqenl; mem; b:=db; { ustawienie adresow IRQ wartosciami pracy POKEY } { 1:; VTIMR1 = $210 } { 2:; VTIMR2 = $212 } { 4:; VTIMR4 = $214 } { 8:; VSEROC = $20e } { 16:; VSEROR = $20c } { 32:; VSERIN = $20a } { 64:; VKEYBD = $208 } { 128:; BRKKY = $236 } end; { powrot do programu CPU } end;

POKEY-64 PIN tech spec.txt Przy POKEY-64 trzeba chyba dodać trochę pinów, wait { 01 - VSS - Ground - I - tu chyba nie trzeba, OK. 02 - D3 - Data Bus - I/O - D00 do D07 to będzie 8x więcej pewnie, czyli D0 do D63, OK. 03 - D4 - Data Bus - I/O 04 - D5 - Data Bus - I/O 05 - D6 - Data Bus - I/O 06 - D7 - Data Bus - I/O 07 - O2 - Phase 2 Clock - I - tu chyba nie trzeba, OK. 08 - P6 - Pot Scan - I - wiosełka możliwe, że zostaną, albo się zrobi x8, zobaczymy, OK. 09 - P7 - Pot Scan - I 10 - P4 - Pot Scan - I 11 - P5 - Pot Scan - I 12 - P2 - Pot Scan - I

13 - P3 - Pot Scan - I 14 - P0 - Pot Scan - I 15 - P1 - Pot Scan - I 16 - /KR2 - Keyboard Scan - I - do klawiatury doda się może jedną linię K6, albo dwie K6 i K7, zobaczymy, będzie 128, albo 256 klawiszy, przyda się do multimediów w razie czego, a matryca na nowym CHIPIE CMOS4052 64-bit OK. 17 - VDD - 5 V Power - I - tu chyba nic więcej, OK. 18 - /K5 - Keyboard Scan - O 19 - /K4 - Keyboard Scan - O 20 - /K3 - Keyboard Scan - O 21 - /K2 - Keyboard Scan - O 22 - /K1 - Keyboard Scan - O 23 - /K0 - Keyboard Scan - O 24 - SID - Serial Input Data - I - powinno wystarczyć, albo doda się na współczesne transmisje szeregowe na łączach standardowych, zobaczymy, to proste i standardowe aktualnie na 64-bit, OK. 25 - /KR1 - Keyboard Scan - I 26 - BCLK - Bidirection Clock - I/O - tu nic więcej chyba, OK. 27 - OCLK - Serial Output Clock - O - tu w zestawie z SID, etc. - obsługa szeregowych transmisji => musi być standard 64-bit dostępny na rynku, po prostu, OK.

28 - SOD - Serial Output Data - O 29 - /IRQ - Interrupt Request - O - tu nic, OK. 30 - /CSO - Chip Select - I - tu nic, OK. 31 - CS1 - Chip Select - I 32 - R/W - Read/Write Control - I - tu nic, OK. 33 - A3 - Address Bus - I - szyny adresowe x8 dla 64-bit, czyli OK. 34 - A2 - Address Bus - I 35 - A1 - Address Bus - I 36 - A0 - Address Bus - I 37 - AUDIO - Audio Out - O - powinno wystarczyć na tym drucie, zobaczymy, najwyżej się doda jedną, czy kilka linii, dla Dolby, albo Kino Domowe 64-bit z subwooferem i innymi głośnikami, to standardowo się zrobi, OK. 38 - D0 - Data Bus - I/O 39 - D1 - Data Bus - I/O 40 - D2 - Data Bus - I/O } Jak się zrobi 28 drutów Audio Out i pozostawi niezmienione te 4 kanały niby-niezależne standardowe Atari XL/XE na jednym drucie standardowym PIN37, to pozostanie 100% kompatybilność z Atari XL/XE, a do tego zupełnie niezależne

realnie, a nie niby-niezależne, 28 kanały POKEY-64, czyli 29 pinów Audio Out by było i można oddychać na super sprzęcie muzycznym 64-bit, OK. No to koniec. Atari POKEY-64 READY, OK. Teraz sprawdzić, jak działa Na zegarze: CLOCK=1.79MHz, potem 10xCLOCK, 100xCLOCK i dopiero 1,79GHz ciekawe powinno być super kosmos sound & multimedia & transmission 64-bit RUN[]

POKEY-64 - Tech spec.txt Już mam pomysł, jak puścić 32 generatory w kable Atari 65XE miał jeden kabel Audio na drucie, obok video jakoś, osobno szły tym jednym kablem szło aż 4 generatory dźwięku, czyli 4 kanały, niby-niezależne, ale jednak słychać było 4 różne kanały na tym jednym drucie Zostawiając w POKEY-64 dla kompatybilności z Atari XL/XE te 4 kanały niby-niezależne na tym jednym drucie reszta kanałów dostępnych realnie niezależnych byłoby 28 czyli 28+1=29 drutów! Są takie łącza Audio na rynku? Hmm to najwyżej będą zgodnie z potrzebą puszczania 28 niezależnych kanałów dźwiękowych 64-bit plus 4 niby-