dla programu w CC65 trzeba dopisać jednak jeszcze po wywołaniu wait()
asm(" lda #0");
asm(" sta $13");
asm(" sta $14");
teraz wynik jest lepszy, 2455 FPS
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
SV 2024 WE - program imprezy Już za tydzień odbędzie się zimowa edycja Silly Venture
Nowa obudowa dla 800XL - zostało 36 dni Niewiele ponad miesiąc do końca kampanii.
Zmarł twórca języka BASIC Zmarł Thomas E. Kurtz twórca języka BASIC
Zmiana serwera atari.area Serwis przeszedł właśnie ważną aktualizację infrastruktury
4th Atari ASCII Compo - wyniki Dostępne są już wyniki tegorocznego ATASCII Compo.
atari.area forum » Posty przez tebe
dla programu w CC65 trzeba dopisać jednak jeszcze po wywołaniu wait()
asm(" lda #0");
asm(" sta $13");
asm(" sta $14");
teraz wynik jest lepszy, 2455 FPS
jest OK, okazuje sie że podałem wynik FPS odczytując bajty odwrotnie
przepisuje bajt $13 pod $600, bajt $14 pod $601 i podałem go w kolejnosci $14$13 zamiast $13$14, przez co wynik FPS "podskoczył"
prawidłowo odczytany wynik dla MADS-a to 1036 FPS, czyli ACTION tez jest wiarygodny :) wybaczcie pomyłkę
a na miejscu będzie przewodnik ? :)
ILR a ile masz PRIMES, bo nie mam jak sprawdzic ACTION
pozatym XXL otrzymal podobny wynik dla ASM, tak ze w asm zostało napisane toto podobnie
ja też staram się ułatwiać sobie życie, dlatego wprowadziłem do mads-a (jeszcze nie udostępniony) automatyczne generowanie kodu dla pętli WHILE, kod wynikowy ma długość 375b, fps 1036
/* Eratosthenes Sieve benchmark */
true = 1
false = 0
size = 8190
sizepl = 8191
flags = $8000
org $2000
;void wait(void)
;{
; unsigned char a=PEEK(tick);
; while (PEEK(tick)==a) { ; }
;}
.proc wait
lda:cmp:req 20
rts
.endp
main
;int main()
;{
; unsigned int i, prime, k, count, iter;
.var i, prime, k, count, iter .word
; wait();
wait
mwa #0 $13
; printf("10 iterations\n");
; iter = 1;
mwa #1 iter
; while (iter <= 10) {
p0 .while .word iter <= #10 ;0
; count = 0;
mwa #0 count
; i = 0;
mwa #0 i
; while (i <= size) {
p1 .while .word i <= #size ;1
; flags[i] = true;
lda <flags
clc
adc i
sta adr
lda >flags
adc i+1
sta adr+1
lda #true
sta $ffff
adr: equ *-2
; i++;
inw i
; }
.endw
; i = 0;
mwa #0 i
; while (i <= size) {
p2 .while .word i <= #size ;2
; if (flags[i]) {
lda <flags
clc
adc i
sta adr2
lda >flags
adc i+1
sta adr2+1
lda $ffff
adr2: equ *-2
beq skip
; prime = i + i + 3;
lda i
clc
adc i
sta prime
lda i+1
adc i+1
sta prime+1
lda prime
clc
adc #3
sta prime
scc
inc prime+1
; k = i + prime;
lda i
clc
adc prime
sta k
lda i+1
adc prime+1
sta k+1
; while (k <= size) {
p3 .while .word k <= #size ;3
; flags[k] = false;
lda <flags
clc
adc k
sta adr3
lda >flags
adc k+1
sta adr3+1
lda #false
sta $ffff
adr3: equ *-2
; k = k + prime;
lda k
clc
adc prime
sta k
lda k+1
adc prime+1
sta k+1
; }
.endw
; count++;
inw count
; }
skip:
; i++;
inw i
; }
.endw
; iter++;
inw iter
; }
.endw
; printf("\n%d primes\n", count);
; i=PEEK(tick)+PEEK(tack)*256;
; printf("\n%d fps\n", i);
; return 0;
;}
mwa $13 $600
mwa count $602
mva #$80 712
jmp *
run main
admini sprawdzają naszą spostrzegawczość, pewnie szykują coś większego ;)
niech zgadne, musisz wejsc do swojego profilu i zmienic jezyk na polski
zacznij składać swoją maszyne czasu mac...
nowa wersja cc65 generuje dłuższy kod i wolniejszy, aktualna długość kodu 3914b (wersja 2.11), poprzednio 3887b (wersja 2.10) , może biblioteki się rozrosły czy coś
w/w benchmark przyspieszy (dla 6502 wyjdzie wynik 2950 fps) jesli zadeklarujemy nasze zmienne jako "unsigned int" w w/w wersji jest bardziej obciążający CPU
Pasiu był tak miły i zapuścił ten benchmark na swojej dopałce, jak pisze ciut powyżej 14Mhz
6502: 554 fps
65816: 533 fps
magicznym zakleciem Laoo ;)
cc65 -O --cpu 65816 -t atari %1 -o %1.s
ca65 --cpu 65816 -t atari %1.s -o %1.o
ld65 -t atari -o %1.xex atari.o %1.o atari.lib
Fox jak zwykle masz racje
oto test który udowadnia że emulator jest szybszy od emulowanej maszyny
/* Eratosthenes Sieve benchmark */
#include <peekpoke.h>
#define true 1
#define false 0
#define size 8190
#define sizepl 8191
#define tick 0x14
#define tack 0x13
char flags[sizepl];
void wait(void)
{
unsigned char a=PEEK(tick);
while (PEEK(tick)==a) { ; }
}
int main()
{
int i, prime, k, count, iter;
wait();
POKE(tick,0x00);
POKE(tack,0x00);
printf("10 iterations\n");
iter = 1;
while (iter <= 10) {
count = 0;
i = 0;
while (i <= size) {
flags[i] = true;
i++;
}
i = 0;
while (i <= size) {
if (flags[i]) {
prime = i + i + 3;
k = i + prime;
while (k <= size) {
flags[k] = false;
k = k + prime;
}
count++;
}
i++;
}
iter++;
}
printf("\n%d primes\n", count);
i=PEEK(tick)+PEEK(tack)*256;
printf("\n%d fps\n", i);
exit(0);
}
wyniki w ramkach FPS
atari800win: 4012 fps
prawdziwe Atari z procesorem 65816
tryb 6502: 4015 fps
tryb 65816: 3857 fps
dopałka Pasia F7:
tryb 6502: 554 fps
tryb 65816: 533 fps
p.s.
przeprowadze jeszcze z ciekawości test z programem w asm bez optymalizowania szybkosci kodu z duza iloscia procedur itp. na razie się pisze
"Dobrze rozwinięta baza noclegowa (4,5 tys. Miejsc noclegowych), gęsta sieć różnych szlaków turystycznych sprawiają, że w okolicy Głuchołaz można naprawdę dobrze i aktywnie wypocząć. Ponadto lokalizacja pięciu przejść granicznych sprawia, że gmina jest ważnym, przygranicznym węzłem komunikacyjnym."
i jakże tam nie pojechać :)
nie musicie odpalać Unity Demo, w przykładach załączonych do G2F jest plik z tą grafiką Our5oft-3GfxMode_Atari_TeBe&Dracon.g2f (katalog Dracon)
to może miłośnicy dawnej elektroniki odtworzą sobie jeszcze Odre by móc wklepywać do niej programiki na papieprze perforowanym
Lampart ludzie lubią wygodę i starają ułatwiać sobie życie, od najwcześniejszych lat, tak jak kiedyś srałeś w gacie tak ktoś Ci pokazał kibel i papier toaletowy, polubiłeś to i korzystasz z tego, nie chciałbyś powrócić do czasów kiedy tego nie robiłeś ? :P
Vidol zauważył że na stronie Madteamu była wystawiona stara wersja Getris'a, nie wiem jak to sie stało, jakieś niedopatrzenie, ostatnia - poprawna wersja ma "żywe" a nie statyczne HighScore i poprawione błędy zauważone przez graczy
jeśli ściągaliście ze strony http://madteam.atari8.info to powinniście zrobić to jeszcze raz
na stronie Kaz-a i Vasca były właśnie podane linki do strony Madteamu, więc ktokolwiek ich użył nie zassał wersji finalnej, a u takiego Fandala jest OK, on to najwidoczniej ściągnąl z Atariage na swój serwer
aktualnie na madteam-ie leży prawidłowy plik GETRIS_OK.ZIP + bonus w postaci źródeł w formacie Mads-a, sorki za zamieszanie
na atariage juz jeden gość przeszedł całą grę jeśli wierzyć załączonemu przez niego screenowi
ok, a na jakie party jedziecie wogóle ludki ?
na 65816 mozna zrobic to szybciej jesli uzyjesz 16-bit rejestrow, tyle ze dotyczy to specyficznej kolejnosci wypelniania rejestrow kolorów
a może przełożycie to na nastepny rok, będzie więcej czasu aby przygotować cos od strony softwarowej jak i organizacyjnej, teraz sklecacie party jakby to była jakaś paląca sprawa, pewnie Was mocno suszy :)
bo nie po to Bill implementował multitasking w "okienkach" :)
ok Fox, ale po co Ci to, przecież Ty lubisz tylko dema pisać
to moze teraz ktos przetlumaczy na język polski oba wywiady, he ?
ja oddałem do Pewexu i naprawili :)
atari.area forum » Posty przez tebe
Wygenerowano w 0.089 sekund, wykonano 14 zapytań