626

(7 odpowiedzi, napisanych Programowanie - 8 bit)

Tylko tryb GTIA przez zmianę rejestru GPRIOR. Trybu ANTIC-a zmienić się nie da.
Specyficzną cechą zmiany trybu GTIA w rastrze jest to, że startując trybem hires (GPRIOR=%00xxxxxx), włączając tryb 16-odcieniowy (GPRIOR=%10xxxxxx), po czym go wyłączając (GPRIOR=%00xxxxxx) z prawej strony ekranu nie dostaniesz trybu hires, a zwykły multicolor gdzie kolory pikseli pobierane są z COLPF0..3 zamiast z COLBAK,COLPF0..2.
Na obrazkach Rocky'ego możesz obserwować jak to działa.

Edit: literówki + kod

Przykładowy kod

  ldx #%00000001
  ldy #%01000001
  sta WSYNC    ;$D40A
  stx GPRIOR   ;$D01B
:16 nop
  sty GRPIOR
:2 nop
  stx GPRIOR

627

(16 odpowiedzi, napisanych Fabryka - 8bit)

To jest tylko zapis (nadpisywanie już utworzonego pliku) czy też z tworzeniem nowego?
Tak czy inaczej bardzo dobry wynik!

628

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

mono napisał/a:

Plik patcha jest załączony w poście #8. Ściągnij sobie go na dysk i zaaplikuj $git patch <atari800-4.2.0-ramcart.patch

Przepraszam - miało być oczywiście

$ git apply atari800-4.2.0-ramcart.patch

629

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

Jeszcze poprawka, bo opcja "Ram-Cart reset" zostawała w menu.

630

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

Plik patcha jest załączony w poście #8. Ściągnij sobie go na dysk i zaaplikuj $git patch <atari800-4.2.0-ramcart.patch

631

(4 odpowiedzi, napisanych Programowanie - 8 bit)

Masz na myśli ekran większy niż to co widać na monitorze (czyli chcesz mieć viewport)?
Można to zrobić kilkoma metodami:
1. DLIST złożony z LMS-ów - przy skrolu trzeba modyfikować wszystkie LMS-y.
2. DLIST złożony z rozkazów tworzenia trybu (i LMS i nie) ale z włączonym HSCROL-em. Wtedy ekran ma większą szerokość o kilka bajtów zależnie od szerokości ustawionej w DMACTL. Ale przy większych szerokościach trzeba już stosować metodę 1.
Jeśli chodzi o większą wysokość ekranu to zawsze robi się to LMS-em (wszystko jedno czy używasz metody 1 czy 2).

Edit: Szerokości przy włączonym HSCROL opisane są w Atariki: http://atariki.krap.pl/index.php/ANTIC_ … List#HSCRL
Edit 2: I w Altirra Reference Manual w rozdziale 4.11. Playfield DMA sekcja Loading the line buffer: http://www.virtualdub.org/downloads/Alt … Manual.pdf

632

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

Przepraszam, byłem przekonany że załączałem plik :) Noc ciemna i późna.

Sprawdziłem przy okazji czy faktycznie się aplikuje, oto log:

jerzyk@ox:~/test$ git clone https://github.com/atari800/atari800.git
Cloning into 'atari800'...
remote: Enumerating objects: 18, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 15969 (delta 6), reused 9 (delta 4), pack-reused 15951
Receiving objects: 100% (15969/15969), 4.63 MiB | 6.49 MiB/s, done.
Resolving deltas: 100% (12386/12386), done.
jerzyk@ox:~/test/atari800$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
jerzyk@ox:~/test/atari800$ git branch --list
* master
jerzyk@ox:~/test/atari800$ git apply atari800-4.2.0-ramcart.patch
atari800-4.2.0-ramcart.patch:998: trailing whitespace.
            
atari800-4.2.0-ramcart.patch:1003: trailing whitespace.
            
atari800-4.2.0-ramcart.patch:1739: trailing whitespace.
        menu_array[4].flags = 
atari800-4.2.0-ramcart.patch:1740: trailing whitespace.
        menu_array[5].flags = 
atari800-4.2.0-ramcart.patch:1741: trailing whitespace.
        menu_array[6].flags = 
warning: squelched 17 whitespace errors
warning: 22 lines add whitespace errors.
jerzyk@ox:~/test/atari800$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    zmodyfikowany: DOC/CREDITS
    zmodyfikowany: DOC/NEWS
    zmodyfikowany: DOC/README
    zmodyfikowany: DOC/USAGE
    zmodyfikowany: DOC/cart.txt
    zmodyfikowany: src/cartridge.c
    zmodyfikowany: src/cartridge.h
    zmodyfikowany: src/memory.h
    zmodyfikowany: src/monitor.c
    zmodyfikowany: src/ui.c
    zmodyfikowany: src/ui.h

no changes added to commit (use "git add" and/or "git commit -a")

Edit: Plik patcha jest w poście wyżej.

633

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

Dodałem emulację RAM-CARTów do emulatora Atari800. Emuluje wszystkie moduły, jakie chyba się pojawiły czyli 64K, 128K, Double 2x128/256K, 1M, 2M i 4M w różnych wariantach.
Procedura:
1. Ściągnąć sobie repozytorium z githuba za pomocą:

$ git clone https://github.com/atari800/atari800.git

2. Zaplikować patcha w katalogu atari800 za pomocą:

$ git apply atari800-4.2.0-ramcart.patch

3. Skompilować sobie emulator - zazwyczaj tak:

$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

Ostatni niekoniecznie.

W menu zarządzania cartridge'ami jest sobie opcja "Make blank cartridge", która pozwala na stworzenie czystego carta podłączanego jako RAMCART.
Następnie należy podłączyć sobie wygenerowany plik i ustawić RAM-CART-a w tryb R/W.
I już.

Teraz można sobie już pisać programy na RAM-CART'a - opis działania tu: http://atariki.krap.pl/index.php/Ram-Cart

634

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

Dziękuję Zenon za wyjaśnienia. A innym ciekawskim polecam też artykuł z Atariki: http://atariki.krap.pl/index.php/Ram-Cart

A prawdę mówiąc, to źle się wyraziłem, bo chodzi mi o to jakie etykietki są przypisane na obudowie Double Ram-Carta przyciskom P1 i P2 ze schematu :) Stąd moje pytanie o ewentualne zdjęcia. Potrzebuję po prostu sensownie opisać te rzeczy w emulatorze, bo takiego Ram-Carta stereo nigdy nie widziałem (zdjęcie przydałoby się też do Atariki).

635

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

Czy ktoś dysponuje egzemplarzem i mógłby powiedzieć jak są opisane przełączniki P1 i P2?
Ewentualne zdjęcie byłoby też mile widziane.

636

(53 odpowiedzi, napisanych Fabryka - 8bit)

Dziękuję za (jak zwykle) kawał porządnej roboty.

637

(12 odpowiedzi, napisanych Różne)

Nie mirmiłuj. W następnym roku będzie lepiej.

638

(7 odpowiedzi, napisanych Fabryka - 8bit)

cyctrix

639

(93 odpowiedzi, napisanych Miejsca w sieci)

@pin: Elektrownia monitoruje Twoje zapotrzebowanie na prąd i uruchamia rezerwy :P

640

(93 odpowiedzi, napisanych Miejsca w sieci)

Bardzo słuszny pomysł. Radio UXA w wersji video :)

641

(402 odpowiedzi, napisanych Fabryka - 8bit)

Bardzo ładne.

642

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

@seban: Jeśli będziesz jeszcze grzebał przy projekcie, to może rozważyłbyś przesunięcie rejestrów konfiguracyjnych i odczytu na koniec obszaru SID-a tak, żeby mieściły się w slotach po 32 bajty? To uprościłoby koegzystencję z innymi rozwiązaniami. Tym bardziej, że rejestry SID-a kończą się na $1C.

643

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

lemiel napisał/a:

PSG to AY/YMF?

Tutaj jest YM2149 o ile jestem dobrze poinformowany.

Dobrze byłoby też znać częstotliwości taktowania poszczególnych czipów.

Wspaniała robota!

Ja bym chętnie zanabył drogą kupna ze 4 szt.

Edit: Aha, zwróćcie uwagę na to, że podczas procedury RESET strona $D2 jest zerowana (czyli wszystkie POKEY-e są utrzymywane w stanie reset) po czym OS inicjalizuje tylko pierwszego POKEY-a. Zerowanie może być ważne przy implementacji rejestrów dla innych chipów, bo chodzi o to żeby nagle pozostałe chipy nie zagrały czegoś samoistnie. Szczególnie jeśli planujecie gdzieś umieścić rejestry kontrolne do sterowania alternatywnymi obszarami dla chipów czy ich niezależnym resetowaniem albo konfiguracją częstotliwości taktowania czy przerwań.

644

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

1. Cobol - 1 szt.
2. perinoid - 1 szt.
3. Mono - 2 szt.

645

(410 odpowiedzi, napisanych Fabryka - 8bit)

Gratulacje!

646

(30 odpowiedzi, napisanych Programowanie - 8 bit)

Programiki, które popełniłem są dwa: PSGPLAY (synteza AY na POKEY-u - gra dumpy .PSG - nie jest jeszcze publicznie udostępniony bo nie jest skończony) i SSPLAY (odtwarza moduły z SoftSynth-a).
Nie pisałem programów specjalnie pod Rapidusa (dlatego nie programuje Rapidusowych rejestrów), ale chciałem żeby procedury syntezy poprawnie działały w komputerach z dowolnym kwarcem. W związku z tym przed odtwarzaniem utworu puszczam procedurę odtwarzającą na pustych falach i patrzę ile cykli syntezy wykona się w 50/60 ramkach. Potem zależnie od tego przeliczam częstotliwości dźwięków.
Rapidus dzieli pamięć podstawową na 4 banki po 16K. Użytkownik może "dopalić" bank podczas konfiguracji Rapidusa. Adresowanie banku dopalonego działa z pełną prędkością 816, adresowanie niedopalonego synchronizuje dostęp do pamięci z zegarem 1.77MHz *.
Dostęp do rejestrów I/O zawsze jest synchronizowany z zegarem 1.77MHz *.
I cała filozofia.

* - właściwie to zegar na płycie Atari

Edit: Jeszcze jedna rzecz mi się przypomniała. Jeden POKEY może grać dwie fale PDM - 1+3 i 2+4. AUDCTL ustawiasz na 1.77 na kanałach 1 i 3, filtr na 1+3 i 2+4 i łączysz generatory 1+2 i 3+4 w pary. Ponieważ okres generatora jest < 256 to obydwa kanały 1 i 2 mogą generować falę o wypełnieniu 1/7 (oidp) bo zarówno AUDF1 i AUDF2 jak i AUDF3 i AUDF4 będą się przeładowywać w tym samym momencie. Może miałbyś mniej miksowania wtedy. Sampla generujesz parami 1+3 i 2+4.

647

(30 odpowiedzi, napisanych Programowanie - 8 bit)

@tebe: http://www.planetemu.net/rom/commodore- … ile-cr-abg

648

(30 odpowiedzi, napisanych Programowanie - 8 bit)

Jak zwykle perełka :) Playerek gra bardzo fajnie (na razie odsłuchałem na emulu, ale wieczorem posłucham na Atari). Dzięki Święty!

649

(1,753 odpowiedzi, napisanych Fabryka - 8bit)

Supeł. @xxl: Czy to ty robiłeś poprawki w chkxex do wyświetlania bloków skompresowanych? Jeśli tak to poprosiłbym o podesłanie źródeł - zmergowałbym ze swoimi poprawkami do pokazywania bloków SDX.

650

(1,753 odpowiedzi, napisanych Fabryka - 8bit)

Ładnie, ładnie. Ten ma ID01 czy to jeszcze inny?