A może ktoś ma również złącza do tych folii (te na płycie głównej) albo wie, gdzie szukać?

2

(192 odpowiedzi, napisanych Fabryka - 8bit)

Założyłem dla PC-Softsyntha repozytorium na gitlabie. Pobawię sie nim jeszcze.

https://gitlab.com/pik33/pc-softsynth2

Mam teraz Propellera 2 - zdążyłem napisac na niego audio driver który potrafi zrobic użytek z plików .s2 i .h2 PC-Softsyntha (przy okazji działa też jak Amigowa Paula) - może uda mi się przeportowac interpreter na Propellerze, tudzież zrobic moduł który umozliwi granie softsynthowymi samplami z klawiatury MIDI.

Tutaj założyłem temat dla projektu: https://forums.parallax.com/discussion/ … h/p1?new=1 - to już nawet gra.

3

(17 odpowiedzi, napisanych Bałagan)

Cóż, zamiast retroemulacji robiłem na P2 sterowanie robotami: trzeba zarabiać... :( - dobrze że można :)

Ale w międzyczasie dziewczyna z Niemiec zrobiła emulację konsoli Sega Megadrive. Czyli też dużej motoroli i Z80

https://forums.parallax.com/discussion/ … lation/p10 - tam jest filmik  - gameplay Sonic3. I soft do pobrania. Jestem pod wrażeniem.

Nigdy nie bawiłem się tą konsolką, ale chyba trzeba będzie potestować osobiście na P2, uprzednio znajdując jakiś kiosk z grami do tego.

Pierwsze wnioski są takie, że po zmianie jakiegoś kodu musi być:
rozkaz hlt,
lub jump (krótki wystarczy)
lub przynajmniej 10 bajtów programu.
Jak wykazały dalsze próby czasem może być mniej jak się przestawi inne wcześniejsze rozkazy.

Standard. To się nazywa pipeline. Instrukcje są pobierane i wykonywane z wyprzedzeniem - jmp czyści tę kolejkę, bo musi. Wyczyszczenie kolejki to konieczność jej załadowania od nowa i mnóstwo zmarnowanych taktów zegara. Dlatego nie poleca się tworzenia kodu samomodyfikującego się na współczesnych maszynach.
No a jak się kolejki nie wyczyści, wykona się instrukcja sprzed modyfikacji.

Co innego 6502.

A jak ktoś chce na nowym sprzęcie, Parallax Propeller. On też ma kolejkę ale płytszą i 2 nopy wystarczą. Ale ma też instrukcje manipulujące rozkazami już pobranymi bezpośrednio w kolejce.

5

(6 odpowiedzi, napisanych Bałagan)

Może doczekamy się wersji maxi, tak jak c64. Ten c64 maxi ma jedną zaletę: jest kompletnie pusty w środku i skręcany na wkręty. Można włożyć coś swojego nie niszcząc oryginału.

6

(6 odpowiedzi, napisanych Bałagan)

laoo/ng napisał/a:

Aż mi się przypomniał ten wątek jak trafiłem na takiego artka:

http://www.brendangregg.com/blog/2017-0 … wrong.html

Sytuacja bardzo charakterystyczna dla, na przykład Raspberry Pi.

Procedura napisana w Pascalu, skompilowana do natywnego kodu, wykonuje się 20 razy wolniej niż robiąca to samo procedura, ale napisana w żywym asemblerze.

Różnica jest taka, że w procedurze pisanej w asm upchałem ile się da zmiennych w rejestry, wykorzystując nawet R14, na co żaden kompilator się nie odważy. Poza tym procedura, po uprzednim zdjęciu blokady dostępu z RAMu wykorzystuje obszar kodu na zmienne lokalne.

Dzięki temu większość operacji procesor robi na rejestrach, od czasu do czasu ładując coś lub zapisując do RAMu pojedynczymi instrukcjami ldr/str

Ponieważ kompilator nie dotknie nie tylko r14, ale jeszcze paru innych, spora część zmiennych w wersji kompilowanej przechowywana jest w pamięci i to w obszarze danych, co powoduje że na jeden dostęp do zmiennej potrzebne są 2 instrukcje ldr/str.

No i procesor stoi, czekając na dane z pamięci - LDR kosztuje w malinie trójce, tak na oko, jakieś 3 nanosekundy. ALU mogłoby w tym czasie wykonać kilka instrukcji, ale nie robi. Bo czeka.

Tylko kto dziś, w czasach wszechobecnego Pythona i Javascriptu, zwraca na to w ogóle uwagę?

7

(17 odpowiedzi, napisanych Bałagan)

Ktoś właśnie wrzucił na forum P2 emulator 6502. Trzeba go będzie zoptymalizować i dodać brakujące "nielegalne" instrukcje bez których masa rzeczy nie zadziała, ale jest.

A ja w międzyczasie ogarnąłem programowanie tego sprzętu robiąc driver HDMI z displaylistą. W jednym z trybów mam CPU clock ustawiony na 200x Atari i generuję 312 linii po 1140 pikseli uzyskując timingi "jak w A8" (312 linii, 114 taktów w każdej) - mam też odpowiednik timingów NTSC.

8

(6 odpowiedzi, napisanych Emulacja - 8bit)

qbahusak napisał/a:

@pik33, umieść repo na githubie, może znajdzie się ktoś, kto to pociągnie.

Dziś już nic nie trzeba. Atari 800 kompiluje się ładnie na RPi 3 i 4 z ich githuba. Do Amibiana wystarczy dodać plik binarny plus parę bibliotek. Sam powie przy starciew czego mu brak :) No i dodać do menu (=edycja plików tekstowych z konfiguracją Amibiana)

Mam teraz lepszą zabawkę, Propellera 2. Na tym powinno się dać zrobić całe Atari. Potrzebny mi tylko czas na zabawę, a z tym jest nie najlepiej.

9

(6 odpowiedzi, napisanych Bałagan)

Trzeba mu było emulator DOSa zapodać i nc odpalić :)

Pamiętam te czasy jak używałem ST, a na nim emulator blaszaka, który miał prędkość 0.3 PC XT, ale działał: programy w Clipperze kompilowały się godzinami.

10

(12 odpowiedzi, napisanych Bałagan)

Lama. Nie kupuję chleba, sam piekę, na zakwasie, bez konserwantów i polepszaczy.

11

(17 odpowiedzi, napisanych Bałagan)

"The first demoscene intro for P2"

https://www.youtube.com/watch?v=XJn9RufWdI4&feature=emb_logo

12

(9,859 odpowiedzi, napisanych Bałagan)

Jaka by nie była statystyczna śmiertelność, covid to rosyjska ruletka. U mnie w pracy przechorowało chyba już ponad 10 osób i żyją, ale kolegę z klasy pochowali.

13

(17 odpowiedzi, napisanych Bałagan)

P2 potęgą jest i basta. Kombinuję z driverem video HDMI, żeby był podobny do czegoś starego... więc jest 1024x576, 49.86 Hz, P2 taktowany z częstotliwością Atari x 180, font z ST - zabawa w toku, wszystko to jeden rdzeń łyka bez zająknięcia i zdaje się ma jeszcze całe mnóstwo luzu, bo wyświetlając bordery nic nie robi.

Szumu na wyjściu audio nie ma. Chyba najcichsze ustrojstwo jakie kiedykolwiek wpiąłem do wzmacniacza. Co świadczy dobrze  o projektantach nie tylko procesora, ale i płytki drukowanej. Teoretycznie, 16 bitów @ 1.25 MHz to jakieś 110 dB odstępu od szumu w paśmie akustycznym, no i tyle jest. Wypuszczałem sygnał o amplitudzie 1 bit przy podkręconym do maximum wzmacniaczu: wyraźnie wystawał ponad tło szumów analogowej elektroniki.

Nie wiem jak wstawić tu obrazek, więc daję link do topicu na forum P2: https://forums.parallax.com/discussion/ … lay-driver

14

(17 odpowiedzi, napisanych Bałagan)

Usiłuję ogarnąć programowanie tego chipa, bo choć ideowo podobny do jedynki, różnic jest cała masa.

Jakośc DACów jest bardzo wysoka, P2 podpięty do wzmacniacza odkręconego pod korek praktycznie nie szumi. Dali dobre stabilizatory LDO na płytce co też robi robotę. Poza tym co ma tam szumieć, jak jest 16 bitów rozdzielczości przy 1.25 MHz częstotliwości próbkowania? Wygląda na marzenie audiofila :) Jeśli ADC jest tak samo dobre, a jeszcze nie testowałem, można mieć coś do audio co ma 32 wejścia, 32 wyjścia i po drodze robi co się da z tym dźwiękiem bo przecież mając 8*150 MIPS można juz coś zrobić.

Do ADC nie znalazłem gotowców, które pewnie są rozproszone na forum, a żeby napisać samemu, trzeba mieć chwilę czasu i świeżą głowę.  Nie miałem czasu w tygodniu na zabawę, choć poczytałem sobie wciąż niepełną doumentację.  No ale spróbuję najprostszą rzecz: ustawić 2 nogi na ADC, dwie na DAC, czytać z ADC, pisać do DAC: kilkanaście linijek kodu.  Jest gotowiec od którego można zacząć - generator sinusa na DAC. Generator używa CORDICa, który też jest genialnym wynalazkiem, bo o ile operacja trwa 56 taktów, o tyle można wywołać go co 8 taktów i również co 8 zbierac wyniki.

Obiecują dla ADC, w trybie który nazwali sinc3, ENOB 18 bitów @ 1.25 MHz, czyli znowu: szumu na audio nie powinno być słychać: eksperyment pokaże. Jutro albo w niedzielę.

Nietypowa konstrukcja generuje nietypowe rozwiązania. Chip ma IO 3V3 natomiast np. pamięci HyperRam są szybsze w wersji 1V8. Jak dopasować logikę 3V3 do 1V8? Proste: użyc DACów. Przy 8 bitach wystarcza im 3 ns, co z zapasem pozwala zorganizować transmisję @ 200 MHz. W drugą stronę natomiast, na wejściu, też użyć DAC i komparator na nóżce. Ta metoda pozwala na zorganizowanie interfejsu na dowolnym napięciu <3v3. Temat do ogarnięcia, na forum parę osób kombinuję. Sam nie pokombinuję z braku płytki z HyperRamem, ale może pokombinuję z maliną zerówką: spróbuję zrobić z niej RAM do Propellera.

Eksperymentowałem z HDMI. Tu ograniczeniem jest częstotliwość procesora bo strumień HDMI wychodzi dokładnie z tą częstotliwością, 1:1. Maksymalnie da się ten układ taktować gdzieś tak do 370 MHz i to ogranicza rozdzielczość HDMI. Wypuściłem 1024x576@50 Hz przy 330 MHz. Do celów atarowo-amigowych spokojnie wystarczy. Jak nie, zawsze jest VGA. Mam parę pomysłów na driver video, w sumie poczytałem sobie instrukcje, więc czas na zabawę w programowanie.

Chip potrafi się podnieść z podpiętego flasha SPI, co trwa niezauważalny ułamek sekundy, albo z karty SD. Karta może być sformatowana na fat32, wtedy Propeller wstaje z pliku o odpowiedniej nazwie, albo moze być niesformatowana, wtedy binarkę wrzucamy w żywe sektory na początek karty. Ze sformatowanej wstaje zauważalnie dłużej niż z flasha, nieformatowanej, z braku narzędzi, nie testowałem.

15

(17 odpowiedzi, napisanych Bałagan)

Wreszcie - mam evaluation board z Propellerem 2 na biurku. Pierwszy rzut okiem: potęga. Czas na naukę.

Zdążyli już przeportować na niego SIDa i player amigowych modułów... ale Pokey pewnie zrobię ja :)

16

(17 odpowiedzi, napisanych Bałagan)

Idiotyzm. Jest tyle sposobów wywołania eksplozji że musieliby zabronić sprzedaży czegokolwiek i nauczania chemii w szkołach.

17

(4 odpowiedzi, napisanych Bałagan)

Na raspberrypi.org jest datasheet.

https://www.raspberrypi.org/documentati … g-started/

Tam jest 8 takich, jakby to nazwać, pikoprocesorów, z własnym pikoasemblerem (bodajże 9 instrukcji) i o ile pamiętam, pamięć na 32 instrukcje tego asemblera. Jak się chce mrugać ledem, to wystarczy tam wklepać program i pin będzie mrugał sam, bez CPU. Zresztą, sam muszę to jeszcze rozgryźć.

Popatrzyłem na to czym jest ten Teensy 4.0 i po szybkim przejrzeniu specyfikacji wniosek taki: ten Teensy to bestia mocniejsza i to sporo od RPi Pico, ALE 6 razy droższa. Sama cena robi z RPi zupełnie innej klasy zabawkę. Za te 130 złotych kupisz 6 takich malin, a i ujarać nie taka szkoda.

-------------------

PS: Skopiowane z datasheetu:

The programmable input/output block (PIO) is a versatile hardware interface. It can support a variety of IO standards,
including:
• 8080 and 6800 parallel bus
• I2C
• 3-pin I2S
• SDIO
• SPI, DSPI, QSPI
• UART
• DPI or VGA (via resistor DAC)

PIO is programmable in the same sense as a processor. There are two PIO blocks with four state machines each, that can
independently execute sequential programs to manipulate GPIOs and transfer data. Unlike a general purpose processor,
PIO state machines are highly specialised for IO, with a focus on determinism, precise timing, and close integration with
fixed-function hardware. Each state machine is equipped with:
• Two 32-bit shift registers – either direction, any shift count
• Two 32-bit scratch registers
• 4×32-bit bus FIFO in each direction (TX/RX), reconfigurable as 8×32 in a single direction
• Fractional clock divider (16 integer, 8 fractional bits)
• Flexible GPIO mapping
• DMA interface, sustained throughput up to 1 word per clock from system DMA
• IRQ flag set/clear/status

Each state machine, along with its supporting hardware, occupies approximately the same silicon area as a standard
serial interface block, such as an SPI or I2C controller. However, PIO state machines can be configured and reconfigured
dynamically to implement numerous different interfaces.
Making state machines programmable in a software-like manner, rather than a fully configurable logic fabric like a CPLD,
allows more hardware interfaces to be offered in the same cost and power envelope. This also presents a more familiar
programming model, and simpler tool flow, to those who wish to exploit PIO’s full flexibility by programming it directly,
rather than using a premade interface from the PIO library.
PIO is highly performant as well as flexible, thanks to a carefully selected set of fixed-function hardware inside each state
machine. When outputting DPI, PIO can sustain 360 Mb/s during the active scanline period when running from a 48 MHz
system clock. In this example, one state machine is handling frame/scanline timing and generating the pixel clock, while
another is handling the pixel data, and unpacking run-length-encoded scanlines.
State machines' inputs and outputs are mapped to up to 32 GPIOs (limited to 30 GPIOs for RP2040), and all state
machines have independent, simultaneous access to any GPIO. For example, the standard UART code allows TX, RX, CTS
and RTS to be any four arbitrary GPIOs, and I2C permits the same for SDA and SCL. The amount of freedom available
depends on how exactly a given PIO program chooses to use PIO’s pin mapping resources, but at the minimum, an
interface can be freely shifted up or down by some number of GPIOs.

I poprawka: jest 8 "pikoprocesorów" ale mogą one obsługiwać do 32 pinów (chip ma fizycznie 30)

18

(4 odpowiedzi, napisanych Bałagan)

Kto wie. chip jest dość mocny a i overclock (masywny, próbowali 370 MHz) jest możliwy. 8 pinów może mieć sporą autonomię pracując niezależnie od CPU i mając własny kod w asemblerze i to jest podstawowa różnica między tym układem a innymi mikrokontrolerami. Szkoda że DACów nie dodali: pozostaje PWM.

Mają być w sprzedaży także i same chipy, więc opcja zrobienia na nim zamiennika innych układów jest możliwa.

19

(4 odpowiedzi, napisanych Bałagan)

Raspberry Pi Pico. 2xARM, 133 MHz (daje się mocno podkręcić). Sporo ciekawych peryferiów.

No i rezultat: https://www.youtube.com/watch?v=WaPJmCgseQw (emulator BBC Micro)

Skoro można BBC Micro, to może i A8?

Tanie. 20 PLN. Jak się pokaże na stanie w Botlandzie albo Kamami ("czekamy na dostawę") - zostanie kupione :) i to raczej w ilości n>>1

Może być tak że to trafi do mnie wcześniej niż P2, który idzie z USA już drugi miesiąc i dopłynąć nie może.

20

(2 odpowiedzi, napisanych Bałagan)

Przeglądając prpellerowe zakamarki nata znalazłem tę oto grę:

https://www.youtube.com/watch?v=El4ShnSk5Mg

Cokolwiek kojary się z Yoomp, choć oczywiście jest inna.

Odpowiedni do niej hardware (Propeller 1 Demo Board) mam, spróbuję uruchomić :)

21

(17 odpowiedzi, napisanych Bałagan)

Link: https://www.parallax.com/propeller-2/
Lista instrukcji: https://docs.google.com/spreadsheets/d/ … edit#gid=0

Możemy synchronizować na bieżąco, niewiele to kosztuje. Ten chip ma sprzętowe wsparcie synchronizacji rdzeni.

Muszą mi w końcu dostarczyć ten sprzęt, już prawie miesiąc czekam na przesyłkę, więc może już niedługo. Po drodze były niestety święta.

22

(17 odpowiedzi, napisanych Bałagan)

Przy liście instrukcji P2 300 MHz powinno spokojnie wystarczyć na emulację 6502 i to stanowczo szybszego niż 1.77 MHz. Pokey, Antic i GTIA porozrzucać po trzech kolejnych rdzeniach, pozostaną 4 rdzenie na obsługę samego emulatora: klawiatura, joysticki, karta SD, ewentualnie SIO.

23

(17 odpowiedzi, napisanych Bałagan)

Chip jest już w produkcji i kosztuje $15.

Zwracam na niego uwagę na tym forum, bo rzecz jest u nas na ogół mało znana, a jest to coś, co w zastosowaniach retrocomputingu i retroemulacji może się bardzo przydać.

P2 zawiera: 8 rdzeni @300 MHz, 2 takty na instrukcję, 4 kB RAM dla każdego rdzenia, 512 kB wspólnego RAMu
64 piny I/O - tzw. smart pins: liczniki, komparatory, DAC: 8bit/3ns - do 32 sztuk, ze sprzętowym rozszerzeniem rozdzielczości do 16 bitów (!) , ADC delta-sigma - do 32 (! - nie kanałów na 1 ADC, tylko niezależnych ADC delta-sigma o częstotliwości pracy 300 MHz - osiągalna jest rozdzieczośc 18 bitów przy częstotliwości próbkowania ok. 1 MHz), wbudowany tryb 4-kanałowego oscyloskopu, USB, HDMI (!)

Na tym można zrobić całe małe Atari albo C64 (SID został już napisany) o jakości emulacji nie gorszej niż FPGA, bo elementy sprzętu dadzą się zaemulować niezależnie na poszczególnych rdzeniach i współpracować ze sobą w czasie rzeczywistym.

Z komputerami 16-bit takimi jak ST,  Amiga czy dosowy PC jest o tyle trudniej że P2 ma na pokładzie tylko 512 kB RAMu i trzeba dokładać RAM zewnętrzny. Istnieje driver do HyperRamu.

Czekam na dostawę sprzętu - płytki uruchomieniowej i paru chipów. Będzie zabawa :)

24

(8 odpowiedzi, napisanych Sprzęt - 8bit)

520 STF zgodnie z obietnicą :

473 mm długość
270 mm głębokość
67 mm wysokość (w najwyższej części)

W końcu muszę się zabrać za jego doczyszczenie...

25

(8 odpowiedzi, napisanych Sprzęt - 8bit)

Dzięki za link, ale właśnie:

--------------------------

1200XL


L = 38cm

W = 31.5cm

H = 2.8 to 7 cm



800XL



L = 37cm

W = 21.5cm

H = 3.5 to 6cm



130XE



L = 34cm

W = 21cm

H = 2.5 to 6cm

------------------------------------------

I tu się właśnie zaczyna zabawa. Też kilka linków widziałem, nie tych co prawda, ale co link to inny wymiar.

Więc głębokość XE to 235 mm czy 210 mm?

Proponuję... niech posiadacze fizycznych sprzętów zmierzą go... mogę, (ale dopiero w poniedziałek, bo teraz jestem gdzie indziej niż ten sprzęt)  dopisać się z STFM - i po uzgodnieniu i eliminacji błędów należałoby to wrzucić na atariki.