451

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

no tak, w tamtym czasie nie potrzebowałem tego. mógłbym dodać skanowanie klawiszy i timeout na VBLu.

Swoją drogą Timer C jest używany przez TOS 2.x i nowsze oraz przez sterownik dysków. Jak to godzisz z Twoją procedurą?

452

(12 odpowiedzi, napisanych Fabryka - 16/32bit)

Karta może wyświetlać na raz trzy warstwy każda z 256 kolorami z palety 16 milionów
Warstwy mogą być między sobą mieszane operacjami: add, sub, overlay oraz xor.

http://ultradev.ultrafex.de/ultraboost.html

Zestaw do programowania: emulator Steem i przykładowy kod:
http://ultradev.ultrafex.de/ultrabooststeemandapi.html

Przykładowe demo:
https://www.pouet.net/prod.php?which=92049
https://www.youtube.com/watch?v=2CukRj5bZuc

453

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

@sqward fajne podejście z taskami.

u mnie właśnie przerwanie końca odtwarzania sampla ('Przerwanie_MONO') przełącza task na drugi który ładuje GEMDOSem nowe dane sampli, który to potem wraca do głównego procesu.

Przerwanie_MONO:
    move.w    #$2700,SR
        bclr.b    #MFP_MONO,MFP_ISRA.w

        ; zamiana buforow
        move.l    Bufor,D0
        move.l    Bufor+4,Bufor
        move.l    D0,Bufor+4

        move.l    Bufor_Koniec,D0
        move.l    Bufor_Koniec+4,Bufor_Koniec
        move.l    D0,Bufor_Koniec+4

        ; nowy adres dzwięku
        move.b    Bufor_Koniec+3,SDMA_END+4
        move.b    Bufor_Koniec+2,SDMA_END+2
        move.b    Bufor_Koniec+1,SDMA_END
        move.b    Bufor+3,SDMA_START+4
        move.b    Bufor+2,SDMA_START+2
        move.b    Bufor+1,SDMA_START

        move.w    0(SP),TMP_SR
        move.l    2(SP),TMP_ADDR

        move.w    #$2300,0(SP)
        move.l    #TMP_Proc,2(SP)
    rte

TMP_Proc:
        ; czytaj plik
        move.l    Bufor+4(PC),A0
        move.l    #Bufor_wielkosc,D0
          bsr    GEMDOS_Fread
            cmp.l    #Bufor_wielkosc,D0
              bpl    TMP_Koniec
            ST    Flaga_SDMA
TMP_Koniec:

TMP_SR        EQU    *+2
        move.w    #$2300,SR
TMP_ADDR    EQU    *+2
    jmp    *

454

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

chodziło mi o to by GEMDOS nie był wykonywany w trakcie przerwania, tylko po zakończeniu przerwania, czyli po instrukcji RTE.
Nigdy tego nie sprawdzałem ale ponoć nie działa albo nie jest zalecane.

455

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

Cyprian napisał/a:

Burczenie może wynikać z tego że CPU i SDMA mają osobne kwarce,

doczytałem, kwarc jest wspólny dla CPU i SDMA.

Przykładowy zegar STE: 32 084 988 / 4 = 8 021 247


Częstotliwość odtwarzania:
8 021 247    / 160 = 50 132,79375


VBL PAL:
8 021 247    / 313 / 512 = 50,05270941

Ilość sampli (50066 mono) na VBL PAL
50 132,79375 / 50,05270941 = 1001,6

---edycja---
w sieci znalazłem info że zegar STE dla PAL to  8 021 247 (kwarc 32 084 988) a dla NTSC 8 010 600 (kwarc 32 042 400)

456

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

1) na VBL - to co Adam napisał brzmi dobrze, na VBLu dane ładowane sektorami (bo szybciej) ale wielkość bufora raczej większa, na 2 VBLe (np 2x512 bajtów), tak by podczas jednego VBLa ładować bufor który się właśnie nie odtwarza.

2) na przerwaniu kończącym pętlę odtwarzania -  Timerze A albo Mono. Tutaj zrobiłem tak że miałem dwa bufory (odtwarzany i oczekujący na odtwarzanie), na przerwaniu zmieniałem bufor do odtwarzania i ładowałem dane do bufora który czeka w kolejce. Z tym że procedura ładowanie danych GEMDOS była wstrzykiwana po przerwaniu bo musiała być wykonywana w trybie USER a nie SUPERVISOR.

457

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

Burczenie może wynikać z tego że CPU i SDMA mają osobne kwarce, więc za każdym VBLem trzeba doczytać inną ilość sampli, a ty stosujesz stały bufor, więc mogą robić się 'dziury'.
Zresztą te 50Hz jest umowne i zależy od zegara CPU (Do STE były wkładane chyba ze dwa różne). W ST w trybie "50Hz"  VBL = CPU clock / 313 / 512. w trybie "60Hz" VBL = CPU clock / 262 / 508. Dla TT będzie też inaczej, tylko jeden tryb, coś koło 59Hz, nie pamiętam teraz dokładnych cyklów.

Dodatkowo, SDMA ma 8bajtowy bufor FIFO, no i przerwanie czy liczniki pokazują stan załadowania danych do bufora a nie stan aktualnie odtwarzanych danych. Na Atari-forum ktoś kiedyś podawał jak obliczyć wielkość bufora na ramkę, poszukam.

Tak się zastanawiam czemu robisz to na VBL, kod tego wymaga?

458

(25 odpowiedzi, napisanych Bałagan)

Otóż to.

459

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

200 razy na sekundę występuje przerwanie gdy "Timer C Data" osiągnie wartość 0. Rejestr "Timer C Data" zmniejszany jest 38 400 na sekundę, a inicjowany jest wartością 192.

Z tym że, we wspomnianym przeze mnie wariancie przerwania nas nie interesują (bo są zablokowane) ale zmiana stanu "Timer C Data". Jeśli 38 400 na sekundę to za mało to można przeprogramować MFP.

Zegar MFP to  2 457 600. Rejestr "Timer A/B/C/D Control" (dzielnik do wybrania to: 4 / 10 / 16 / 50 / 64 / 100 / 200) decyduje z jaką prędkością zmniejszany jest (o wartość "1") rejestr Timer A/B/C/D Data.

Domyślnie Timer C ma "Timer Control" ustawiony na podzielnik 64 , czyli "Timer C Data" zmniejszany jest z prędkością 38 400 na sekundę. "Timer C Data" ma domyślną wartość 192, czyli 38 400 / 192 równa się właśnie 200 razy na sekundę.

Przykładowo, dla "Timer A/B/C/D Control" ustawionego na podzielnik 4, rejestr "Timer A/B/C/D Data" zmieniany jest 614 400 razy na sekundę.

Jak mierzymy?

var Poczatek = "Timer A/B/C/D Data"
--- tu coś robimy
var Koniec = "Timer A/B/C/D Data"

var Czas = Koniec - Poczatek

Jeszcze jedna uwaga, rejestr "Timer A/B/C/D Data"  jest 8 bitowy, więc przy obliczeniach trzeba wziąć pod uwagę że się 'przekręci'.

460

(18 odpowiedzi, napisanych Programowanie - 16/32bit)

najprościej w emulatorze typu  Steem Debugger albo Hatari.
Na timerach można różnymi metodami, np. można zablokować wszystkie przerwania "move #$2700,SR" a potem odczytywać licznik Timer C. Jego wartość jest zmniejszana o jeden 200 razy na sekundę

461

(893 odpowiedzi, napisanych Scena - 8bit)

Tak jak @prz napisał, warto zrobić tu mały porządek

462

(6,129 odpowiedzi, napisanych Kolekcjonowanie)

@VLX, nasz forumowy kolega @artik-wroc robi TT-RAMy w dobrej cenie.
Kości pamięci trzeba załatwić sobie we własnym zakresie.


Sikor napisał/a:

Hmm, 9 tysi za golasa (no dobra, 32MB TT-RAM kontra 128MB TT-RAM) w gorszym stanie kontra 13 za wypasioną wersję? Chyba jednak tamta się póki co bardziej opłaca...

jeśli ktoś potrzebuje gotową/kompletną maszynę, dodatkowo wyglądającą ładnie to czemu nie, zestaw za 13k PLN może być w sam raz. Ciekawe jest to że właściciel nie zamontował portów USB.

Ten przykładowy za 9k PLN to nie golas ale kompletna maszyna: klawiatura, mysz, 4MB ST RAM, 32MB TT RAM no i tańsza. Z równoważnych rzeczy to brak adaptera kart SD i przejściówki ECL2VGA, no i odrobiny perhydrolu :) Jak ktoś lubi sam wybielać to 4k PLN zaoszczędzi.

W sumie to dawno nie byłem na ebay bo zatrzymałem się na cenie 3K pln za taki konfig

463

(1 odpowiedzi, napisanych Software, Gry - 16/32bit)

tak, Atari na dyskietce dostarczało akcesorium do regulacji głośności, EQ i panoramy.


Np. Xcontrol - "Sound setup": https://sites.google.com/site/stessenti … placements

464

(6,129 odpowiedzi, napisanych Kolekcjonowanie)

dely napisał/a:
Cyprian napisał/a:

Dodatki - są fajne ale nie ma ich za dużo, ich rynkowa cena też jest przystępna:

Nom. Wychodzi ~500 dolarów za same dodatki, dodaj do tego przesyłki i obecną dostępność i wyjdzie pewnie jeszcze +25% :)

jasne, z tym że są one raczej zbędne, albo można mieć to samo taniej:

Twardy dysk - jeden tańszy SatanDisk zamiast tych dwóch: SCSI2SD  / Thunder IDE interface.
Monitor - E2CLVGA - wszystko co trzeba autor wrzucił to na GIThub
TT RAM - Storm TT RAM card - tego akurat jest sporo w dobrej cenie na ebayu
Lightning VME USB interface - fajna sprawa ale raczej dla maniaków, dla zwykłego użytkownika mouSTer będzie dużo tańszym rozwiązaniem


dely napisał/a:

Najważniejsze, że tu mamy licytację, która przeważnie oddaje najlepiej aktualność wartość, a nie "Kup teraz".

słusznie, widzę właśnie że ceny poszły sporo w górę:

Falcon: https://www.ebay.pl/itm/384921960791
Mega STe: https://www.ebay.pl/itm/334587884790
widzę inną TT, może nie tak białą ale 4k PLN tańszą: https://www.ebay.pl/itm/225076121359

465

(25 odpowiedzi, napisanych Bałagan)

dobra wiadomość!

466

(6,129 odpowiedzi, napisanych Kolekcjonowanie)

Na pierwszy rzut oka to całość robi dobre wrażenie. Z tym że obudowa jest wybielana. Widać to na zdjęciu lewej strony - góra biała, dół żółty. Klawiatura QWERTY - spoko. Dodatki - są fajne ale nie ma ich za dużo, ich rynkowa cena też jest przystępna:
SCSI2SD  - $149  125530781899
E2CLVGA - $65 www.legacypixels.com/atari/
Storm TT RAM card- 70€ (cena z 2017)
Lightning VME USB interface - 110 EUR (cena z 2019)
Thunder IDE interface - 70€ (cena z 2017)

Tak więc @Sikor, jakbyś potrzebował Teslę to perhydrol w łapę i do dzieła :)

467

(6,129 odpowiedzi, napisanych Kolekcjonowanie)

@Sikor jakbyś włączył wszystkie swoje TTtki to pewnie w okolicy światła by przygasły ;)

13k pln za TT to jednak kosmos

468

(6,129 odpowiedzi, napisanych Kolekcjonowanie)

prz napisał/a:

One były wypuszczone przez niemiecki oddział Commodore ponoć z okazji milionowej Amigi. Było kilka wersji. Można o tym poczytać m.in. tutaj: http://www.bambi-amiga.co.uk/amigahisto … ecial.html,
http://www.classiccomputer.de/com/a500w1.jpg.
Tę wersję z kulkami pamiętam z giełdy na Grzybowskiej. Jeden z przegrywaczy takiej używał to "legalnego" wówczas przegrywania gier :). Kwestia dyskusyjna czy było to faktycznie upiększenie komputera ;).


sam pomysł malowania obudowy marketingowo jest dobry, szkoda że Atari czegoś takiego nie wprowadziło.

jednak patrząc na te wzory to raczej bym ich nie wybrał


uicr0Bee napisał/a:

Ta z kulkami jest całkiem fajna. Drygol też robi(ł) ciekawe:
https://retrohax.net/3-amigos-err-amiga … -printing/
https://retrohax.net/atari-the-frankenstein-series/ (pod koniec strony)
I kojarzę (może źle) że jeszcze robił tak C64?

te nadruki są za to git

469

(25 odpowiedzi, napisanych Bałagan)

Czyzby wojna atarowa przeszła do realu?
W końcu coś się ciekawego dzieje  :)

470

(893 odpowiedzi, napisanych Scena - 8bit)

słusznie :)

471

(893 odpowiedzi, napisanych Scena - 8bit)

pancio.net napisał/a:

Tym bardziej, że przecież nie kupujesz niekoszernych urządzeń...

abstrahując od tematu dyskusji, IT to nie miejsce na religijne zabobony
koszerne, halala czy chrzczone...  jest to temat dla katabasów a nie na forum IT
:)

472

(7 odpowiedzi, napisanych Bałagan)

oczywiście od lewej do prawej, dopadła mnie pomroczność jasna i zmieniłem z "z lewej do prawej" na "z prawej do lewej"

Candle napisał/a:

w żadnej
tam mają zintegrowany monitor który po prostu nie wygasza plamki na powrocie, licząc na to że reszta to zrobi (miało być tanio)

ok, ale w którejś części linii jednak te dane są wystawiane

473

(4 odpowiedzi, napisanych Sprawy atari.area)

to jest licznik "odpowiedzi" a nie postów, czyli pierwszy wpis nie jest wliczany

474

(7 odpowiedzi, napisanych Bałagan)

jestem ciekaw w której części linii trzeba wyświetlać by były poprawnie widoczne na ekranie:
http://martin.hinner.info/vga/pal.html
http://martin.hinner.info/vga/vdvidsig.gif

475

(13 odpowiedzi, napisanych Fabryka - 16/32bit)

yep, SB's EMU8000 would be cool, but anyway YM2203 is also ok