Fakty i Mity C64 Vs. Atari 800XL

Forum, na którym możemy pogadać o wszelakim oprogramowaniu na C64, grach, programach.
Wiadomość
Autor
zbyti
Posty: 191
Rejestracja: 12 sty 2021, 14:26

Fakty i Mity C64 Vs. Atari 800XL

#1 Post autor: zbyti »

Na AOL https://atarionline.pl/forum/comments.p ... 944&page=5 jest ewangelista Action! znany w środowisku jako TDC.

Jedną z jego wielu tez jest ta, że w epoce nie było szybszego języka/kompilatora niż Action! na 8-bit platformy.

Ilmenit odnalazł 2 kandydatów, którzy mogli by obalić to twierdzenie: Power C i PROMAL na C64.

Problemem jest nieistnienie wzjamnie tych kompilatorów na konkrecyjnych platformach, postanowiłem przekroczyć tę barierę.

W linku https://www.lemon64.com/forum/viewtopic ... d1ab786776 algorytm SIEVE wykonywał się na C64:

The runtimes in seconds are claimed to be these:

Kod: Zaznacz cały

BASIC: 630
COMAL: 490
FORTH: 51
PASCAL: 55
PROMAL: 30
Skompilowałem ten algorytm napisany w Action! na A8 i uruchomiłem na C64.

Jedna iteracja to 154 ramek a 10 iteracji to 1539 ramki.

Jak to zrobiłem można zobaczyć tutaj: https://atariage.com/forums/topic/24365 ... nt=4809041

Jeżeli wszystko zrobiłem dobrze i 50 ramek w PAL na C64 to 1 sekunda to PROMAL jest równie szybki o ile nie minimalnie szybszy (nie wiem czy wyniki z forum nie są zaokrąglone w dół, no i ja użyłem w Action jednej zmiennej na ZP).

Jeżeli coś zrobiłem nie tak, albo interpretuję nieprawidłowo proszę o komentarz, na C64 to ja tylko grałem - nie znam się ;)

---

aaa... i wątek założyłem nie w celu udowadniania wyższości jednych świąt nad drugimi, osobiście lubię każdy 8-bit jaki istnieje ;) tylko jak coś pokutuje w przestrzeni jak ten nieszczęsny Action! to warto się przyjrzeć i ew. obalić.

Awatar użytkownika
rime.
Posty: 156
Rejestracja: 24 sty 2019, 02:52
Grupa: Fancy Rats

Re: Fakty i Mity C64 Vs. Atari 800XL

#2 Post autor: rime. »

Dzięki za to porównanie. We wspomnianym temacie jednak najbardziej rozbawił mnie fragment:
"CPU w Commodore jest dwa razy wolniejszy, więc razem na Atari w rozmnażaniu sprajtów można zrobić 4 krotnie więcej operacji na duszkach niż na C64"
To tak jakby zagorzały Commodorowiec powiedział: w A8 są cztery klawisze kierunków, a w C64 dwa, co oznacza, że użytkowanie Atari jest dwa razy trudniejsze - bo ma więcej klawiszy (!!!!1oneone).
Jako komentarz pasuje tutaj tylko kabaretowy klasyk: https://youtu.be/iACJWkIAnls?t=64

zbyti
Posty: 191
Rejestracja: 12 sty 2021, 14:26

Re: Fakty i Mity C64 Vs. Atari 800XL

#3 Post autor: zbyti »

@rime ale pojechałeś, w punkt z tym argumentem! :D

---

Ja tymczasem zgłębiłem odrobinę tajemnicę szybkości PROMAL i wygląda, że nierzetelność nie jest cechą tylko naszych czasów ;)

Kod zamieszczony na forum https://www.lemon64.com/forum/viewtopic ... d1ab786776 ma 3 błędy z czego 2 odziedziczone po https://archive.org/details/Commodore_M ... ew=theater z resztą autor wpisu informuje, że nie odpalał tego algo.

2 błędy w magazynie Commodore Microcomputers - Volume 6 Number 3 Issue 35 (1985-05) przynajmniej dla wersji PROAML 2.1 to:

1. ITER nie może być typu BYTE tylko musi być typu WORD, FOR nie kompilował się z iteratorem typu BYTE (błąd 28)
2. PROMAL bloki kodu rozpoznaje po wcięciu, więc wyświetlanie iteracji jest nie w tym bloku FOR co trzeba

Poniżej poprawiony przeze mnie kod.

Kod: Zaznacz cały

PROGRAM BIGSIEVE

INCLUDE LIBRARY

CON WORD SIZE=8190

BYTE FLAGS[SIZE]

WORD COUNT
WORD ITER
WORD I
WORD K
WORD PRIME

BEGIN
PUT "10 ITERATIONS",CR

FOR ITER=1 TO 10
  COUNT=0
  FOR I=0 TO SIZE
    FLAGS[I]=1

  FOR I=0 TO SIZE
    IF FLAGS[I]
      PRIME=I+I+3
      K=I+PRIME

      WHILE K<=SIZE
        FLAGS[K]=0  ; FALSE
        K=K+PRIME

      COUNT=COUNT+1

  OUTPUT "#CITERATION=#I",ITER

OUTPUT "#CPRIMES=#I",COUNT
END
Mam poważne wątpliwości, czy autor tego tekst w magazynie z 1985 w ogóle uruchamiał ten algorytm, z powyższych powodów i jeszcze jednego a to już niżej ;)

Podane czasy algorytmu dla sita wyglądają na czasy przepisane z manuala i dla algorytmu zamieszczonego razem z kompilatorem przez producenta na dyskietce (sieve.s) gdzie pracowano na tablicy około 1KB i znajdywano 502 liczb pierwszych tą metodą. Ten algorytm faktycznie wykonuje się w ~30 sek.

Screenshot_2021-04-25_17-01-50.png
Screenshot_2021-04-25_17-01-50.png (100.24 KiB) Przejrzano 3481 razy

Algorytm jaki w ~30 sekund wykonywał Action! jest najbardziej popularnym algorytmem stosowanym w benchmarkach, pracuje na tablicy 8KB i znajduje 1899 liczb pierwszych.

PROMAL 2.1 wykonywał ten algorytm w 10 iteracjach prawie 3 minuty, a dokładniej ~2:48.

Screenshot_2021-04-25_17-05-26.png
Screenshot_2021-04-25_17-05-26.png (81.72 KiB) Przejrzano 3481 razy

Znaczy, że na C64 atarowski Action! wykonywał się ponad 5x szybciej :]

Dyskietka ze źródłami i kompilatorem w zalączniku.
promal.d64.zip
(67.89 KiB) Pobrany 84 razy
Ostatnio zmieniony 25 kwie 2021, 17:54 przez zbyti, łącznie zmieniany 1 raz.

Awatar użytkownika
carrion
Posty: 2329
Rejestracja: 27 lut 2009, 17:38
Kontakt:

Re: Fakty i Mity C64 Vs. Atari 800XL

#4 Post autor: carrion »

@zbyti jak zwykle dobra robota detektywistyczna. lubię takie klimaty.
ale co do rzeczonej dyskusji na atarionline.pl to ręce opadają. Po pierwszej serii głupot TDCa myślałem na serio, że to żarty. Potem, tak jak napisałem... fanatyzm przesłanił mu fakty i racjonalne myślenie. Fajne jest to że koledzy Atarowcy sami mu to powiedzieli.
c64portal.pl, retronavigator.com

Awatar użytkownika
Sebaloz/Lepsi.De
Posty: 3949
Rejestracja: 14 wrz 2008, 00:02

Re: Fakty i Mity C64 Vs. Atari 800XL

#5 Post autor: Sebaloz/Lepsi.De »

carrion pisze:
25 kwie 2021, 17:39
TDCa myślałem na serio, że to żarty
Na zywo jest bardzo sympatyczny. Kilka lat temu na Load Error w Gdansku dostalem od niego flaszke.
__________________________
Socjopatyczna Legia Commodore

Awatar użytkownika
Steffan
Posty: 854
Rejestracja: 04 maja 2019, 19:43
Grupa: BooM!

Re: Fakty i Mity C64 Vs. Atari 800XL

#6 Post autor: Steffan »

Sebaloz/Lepsi.De pisze:
25 kwie 2021, 20:01
carrion pisze:
25 kwie 2021, 17:39
TDCa myślałem na serio, że to żarty
Na zywo jest bardzo sympatyczny. Kilka lat temu na Load Error w Gdansku dostalem od niego flaszke.
:shock: :shock: :shock: Nie no jak dał flaszkę, to zupełnie inna rozmowa. :lol: :lol: :lol:
B O O M !
we are the commodore terrorists
-------------------------------------
TEDDY BEER C=64 PARTY [csdb]

zbyti
Posty: 191
Rejestracja: 12 sty 2021, 14:26

Re: Fakty i Mity C64 Vs. Atari 800XL

#7 Post autor: zbyti »

carrion pisze:
25 kwie 2021, 17:39
@zbyti jak zwykle dobra robota detektywistyczna. lubię takie klimaty.
Jakbym przeczytał cały linkowany wątek to bym sobie pracy zaoszczędził :D ktoś odkrył to już przede mną:

https://www.lemon64.com/forum/viewtopic ... d1ab786776
mood_swing pisze: I think I know where the PROMAL article was getting it's numbers from.

On the PROMAL 2.1 disk is the code for the sieve benchmark. The code makes reference to BYTE magazine. But it doesn't iterate to 8190 as listed in the Commodore Microcomputers magazine, but rather only to 1800. Once compiled and run over the 10 iterations, it finds 502 primes in about 30 seconds.

If you iterate over the full 8190, then the 10 iterations takes about 165 seconds and finds 1899 primes.

As listed in the Microcomputers magazine, it doesn't even work! First of all, PROMAL will not allow a FOR loop to use a BYTE as it's FOR variable. It requires a WORD. Second of all, the indentation for the OUTPUT "#CITERATION=#I",ITER is wrong--it needs to be out-dented, otherwise the inner FOR loop will output thousands of "iteration=1" and so on.

You'll know if your sieve is working if you print out prime after the line prime=i+i+3. You should get a listing of primes.

tdc
Posty: 7
Rejestracja: 25 kwie 2021, 23:24
Kontakt:

Re: Fakty i Mity C64 Vs. Atari 800XL

#8 Post autor: tdc »

Witam serdecznie wszystkich!

Zbyti! Ty zdrajco!!!
Ty uciekinierze z Atarionline.pl - w tym z mojego warsztatu programowania w Action! zupełnie bez słowa!
No proszę co tu widzę, u nas uciekasz a tutaj zabawiasz się w najlepsze...
W tym jeździsz bezsensownie po mnie...

Uff....

tdc
Posty: 7
Rejestracja: 25 kwie 2021, 23:24
Kontakt:

Re: Fakty i Mity C64 Vs. Atari 800XL

#9 Post autor: tdc »

carrion pisze:
25 kwie 2021, 17:39
(...) fanatyzm przesłanił mu fakty i racjonalne myślenie. Fajne jest to że koledzy Atarowcy sami mu to powiedzieli.
Wiesz co...

Kiedyś mój redakcyjny kolega napisał w Atari Magazynie odnośnie wojenek Atari vs C=, że "Psy szczekają a karawana jedzie dalej".

To przysłowie uczy bardzo cennej rzeczy, mianowicie takiej, że gdy ktoś rozsądnie mówi to znajdzie się sfora psów, która będzie ujadać, kompletnie po różnicy i bez sensu.

Bardzo ważną zdolnością inteligentnego człowieka (w jego całym życiu) jest rozróżnienie w takich pyskówkach, kto uparcie ujada a kto jest atakowany przez sforę bezmyślnych psów.


((i proszę nie imputować mi, że kogoś wyzywam od psów - jedynie komentuję przysłowie, które jest bardzo mądre, warto je stosować w swoim życiu.))

zbyti
Posty: 191
Rejestracja: 12 sty 2021, 14:26

Re: Fakty i Mity C64 Vs. Atari 800XL

#10 Post autor: zbyti »

@tdc poniżej MÓJ kod na temat Twojego przełomowego odkrycia po 30 latach https://tdc-smakowitosci.blogspot.com/2 ... ction.html

Opisałem to na AOL rok temu po 2-mc zabawy, trzeba było uważać :]

Kod: Zaznacz cały

DEFINE
  RBARON="[$A9$E$8D$D40A$8D$D01A]",RBAROFF="[$A9$0$8D$D01A]"

BYTE ARRAY MATRIX=0
BYTE ARRAY MEMMATRIX(21)

CARD
  MEMADDR=$CA

BYTE
  I=$CC

PROC RSYNC=*(BYTE L)[$CD$0B$D4$D0$FB$60]

PROC OLDSTUFF=*()
  FOR I=0 TO 20 DO
    MATRIX(MEMADDR)=255
    MEMADDR==+1
  OD
RETURN

PROC NEWSTUFF=*()
  FOR I=0 TO 20 DO
    MEMMATRIX(I)=255
  OD
RETURN

PROC MAIN=*()

  MEMMATRIX^=$9000

  DO
    MEMADDR=$9000
    RSYNC(40)
    RBARON OLDSTUFF() RBAROFF

    RSYNC(80)
    RBARON NEWSTUFF() RBAROFF
  OD

RETURN
atari000.png
atari000.png (1.34 KiB) Przejrzano 3376 razy

tdc
Posty: 7
Rejestracja: 25 kwie 2021, 23:24
Kontakt:

Re: Fakty i Mity C64 Vs. Atari 800XL

#11 Post autor: tdc »

@zbyti

No fajne to co tutaj (chyba przez pomyłkę) wkleiłeś.
Tylko nie wiem dlaczego poczułeś się zaproszony do tego wyzwania;) Bo ja nie jestem taki okropny, aby robić wyzwania dla osób, które na Atarionline mają nieaktywne konta...
No naprawdę nie taki był cel;))

A tutaj ten wątek pasuje jak... eeee... przemilczę...
W końcu wątek zatytułowałeś "Fakty i Mity C64 Vs. Atari 800XL" a Ty tutaj wklejasz kod w Action!??;)

Wiesz bo z mojej perspektywy to jest tak, że ja raz po raz daję naszym ludziom różne wyzwania, ale Ty tutaj mącisz zamysł. Bo jak wiadomo dziś jest wielu "wielkich programistów", którym ego rośnie jak potrafią podlinkować cudzy kod z internetu.
A w wątku, w którym dałem to wyzwanie (a chodziło mi o coś innego), już się znalazł taki najgłośniejszy i najbardziej rozproszony, który jak podlinkował Ciebie to sądzi, że zadanie jest rozwiązane;))

Raczej należy dać trochę czasu niech się userzy sami zastanowią jak można jakiś problem rozgryźć - nie uważasz?
zbyti pisze:
26 kwie 2021, 01:34
Opisałem to na AOL rok temu po 2-mc zabawy, trzeba było uważać :]
Po pierwsze, naprawdę nie miej do mnie pretensji, że ja na coś uważam czy nie, bo sam pamiętasz jaki to był sajgon z organizowaniem tych warsztatów z Action! Ja codziennie siedziałem z Wami po 3-4h i dłużej, a jak Ty zwiałeś z Atarionline to ja jeszcze prowadziłem ten warsztat przez jakieś ~2,5 miesiąca!
Więc wybacz, ale to nieludzkie aby cokolwiek ode mnie wymagać, jak byłem tak zarobiony...

W mojej ocenie to powinieneś wpaść do nas na spotkanie online grzecznie się pożegnać i zostawić do siebie kontakt. Wtedy w wolniejszym czasie moglibyśmy sobie porozmawiać o tym co w danej chwili zrobiłeś itp.
A tak to ja nie miałem z Tobą żadnego kontaktu i nie miałem bladego pojęcia, że udzielasz się teraz tutaj...
(dopiero się tutaj zarejestrowałem więc, nic a nic o Tobie nie wiedziałem...)

Pzdr.

Awatar użytkownika
Steffan
Posty: 854
Rejestracja: 04 maja 2019, 19:43
Grupa: BooM!

Re: Fakty i Mity C64 Vs. Atari 800XL

#12 Post autor: Steffan »

Drodzy koledzy, zanim ktoś coś jeszcze napisze. Dziesięć głębokich wdechów! Nie dość, że ciągle nas odgórnie dzielą na wszystkich płaszczyznach, żebyśmy sobie do gardeł skakali, to jeszcze sobie sami pod górę robimy. Pogadajcie sobie spokojnie przy piwku na następnym party np. na LOST-ciku.

To trochę wygląda jakby przy kawce spierały się 2 koleżanki:
- a mój ma dłuższego,
- a mój grubszego,
a tak naprawdę jedna i druga jest zadowolona i kocha swojego komputerka :D .

Mam nadzieję, że Was rozbawiłem :lol: .

pozdro
Steffan
B O O M !
we are the commodore terrorists
-------------------------------------
TEDDY BEER C=64 PARTY [csdb]

zbyti
Posty: 191
Rejestracja: 12 sty 2021, 14:26

Re: Fakty i Mity C64 Vs. Atari 800XL

#13 Post autor: zbyti »

@Steffan jak mawiał klasy "jak ty nic nie rozumiesz..." :D tu nie chodzi o zadowolenie pięknych pań ;)

Po prostu na świecie są różne triady boskie, jedną z nich jest: Atari-TDC-Action! :D

zbyti
Posty: 191
Rejestracja: 12 sty 2021, 14:26

Re: Fakty i Mity C64 Vs. Atari 800XL

#14 Post autor: zbyti »

Poprawka do mojego kodu w Action! po prostu trochę "zardzewiałem" ;)

Zamiast:

Kod: Zaznacz cały

MEMMATRIX^=$9000
od razu należy zadeklarować

Kod: Zaznacz cały

BYTE ARRAY MEMMATRIX(21)=$9000
wtedy

Kod: Zaznacz cały

PROC NEWSTUFF=*()
  FOR I=0 TO 20 DO
    MEMMATRIX(I)=255
  OD
RETURN
kompiluje się do

Kod: Zaznacz cały

2036: A0 00     LDY #$00
2038: 84 CC     STY $CC
203A: A9 14     LDA #$14
203C: C5 CC     CMP $CC
203E: B0 03     BCS $2043
2040: 4C 4F 20  JMP $204F
2043: A9 FF     LDA #$FF
2045: A6 CC     LDX $CC
2047: 9D 00 90  STA $9000,X
204A: E6 CC     INC $CC
204C: 4C 3A 20  JMP $203A
204F: 60        RTS
i po "zagadce" ;)

Awatar użytkownika
Nitro
Posty: 1544
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

Re: Fakty i Mity C64 Vs. Atari 800XL

#15 Post autor: Nitro »

tdc: jak napisali, wdech, wydech, wrzuć trochę na luz, tu nie ma żadnej cenzury ale po prostu imo lepiej spożytkować czas na coś przyjemnego zamiast na dyskusję której nawet Salomon by nie rozwiązał. Dyskusję - węzeł gordyjski.

Każda platforma ma swoje mocne i słabe strony. I myślę jedyne miejsce aby się w lekkim tonie poprzerzucać argumentami to przy piwku na party. Choć z takim oratorem Atari jak tdc to i tak ciężka sprawa(... nie da się zrobić silnika 3D z Numena na 64), o wiele ciekawiej mi się zawsze schodziło na tematy: jakie nowe rekordy pobiłeś w Action? I kiedy skończysz? :)

tdc
Posty: 7
Rejestracja: 25 kwie 2021, 23:24
Kontakt:

Re: Fakty i Mity C64 Vs. Atari 800XL

#16 Post autor: tdc »

@Zbyti - no i całkiem ładny kod generuje Action!;)

Zbyti, chodzi mi o to, że jak kręcą Ciebie tematy z Atari w Action! to po prostu wróć do nas a nie rozpisuj się na "obcym" forum.

Rozumiem, że poprztykałeś się z kimś (z powyższych powodów nie byłem tego świadkiem, więc nie wiem co tam było), albo ktoś z Tobą. Daj spokój, upłynęło wiele czasu i myślę że nikt nie będzie miał do Ciebie żalu o stare sprawy;)

Zapraszam (mam nadzieję też że w imieniu pozostałych), i Ciebie i innych z tego forum;)

zbyti
Posty: 191
Rejestracja: 12 sty 2021, 14:26

Re: Fakty i Mity C64 Vs. Atari 800XL

#17 Post autor: zbyti »

@tdc interesuje mnie już tylko napisanie silnika szachowego. Puszczę go na A8 i C+4, na C64 raczej nie, może z czasem na jeszcze jakiś komputer 2MHz 6502 z epoki.

Na temat Action! przeczytałem prawie wszystkie dostępne materiały a z tych sensownych na pewno wszystkie, odnowiony manual od dechy do dechy etc. wraz z dodatkami, wykonałem wiele eksperymentów itd. więc sądzę, że coś wiem i mogę to udowodnić, chociaż już powoli zapominam odkryte przez siebie tricki. Na HW Atari nadal znam się bardzo przeciętnie, gr.8 mi wystarczy :]

Osobiście chciałbym aby ktoś tak elastyczną składnię i parser jaką ma Action! użył do napisania współczesnego kompilatora na 6502 ale nie widzę ku temu szansy z powodu braku chętnych.

Sprawdzę, jeszcze ten Power C jaką ma wydajność bo Action! ma średnio 50% wydajności ręcznie optymalizowanego ML co faktycznie przy jednoprzebiegowym kompilatorze wydaje się doskonałym osiągnięciem lat '80.

OK, nie ma powodu robić tu siary. Temat wątku to Fakty i Mity. Będę obalał mity na miarę swoich możliwości.

zbyti
Posty: 191
Rejestracja: 12 sty 2021, 14:26

Re: Fakty i Mity C64 Vs. Atari 800XL

#18 Post autor: zbyti »

W ramach walki z mitami... Na forum AOL przeczytałem o Ilmenicie:
tdc pisze: Już za późno, Zbyti co (na własną prośbę się z tego forum wypisał i) przefarbował na barwy C= już Ciebie zawstydził na forum C=.

(...)

No właśnie nie wiem co... Ale powinno być Tobie łyso:P
Moje dementi:

TDC przestań robić wyzwania programistyczne w Action! Ilmenitowi. Dla każdego znającego jego osiągnięcia jest jasne, że gdyby Ilmenit uznał to za istotne to zmusił by kompilator Action! do prania jego starych gaci w rzece i jednoczesnego śpiewania przy tym międzynarodówki :]

Awatar użytkownika
carrion
Posty: 2329
Rejestracja: 27 lut 2009, 17:38
Kontakt:

Re: Fakty i Mity C64 Vs. Atari 800XL

#19 Post autor: carrion »

Panowie, prośba...
Kwestie c64 vs Atari piszemy tutaj.
Brudy atarowców niech piorą sobie w swoim ogródku.
c64portal.pl, retronavigator.com

Awatar użytkownika
KB777reborn
Posty: 207
Rejestracja: 12 lut 2020, 08:30
Grupa: 1100°Crew
Kontakt:

Re: Fakty i Mity C64 Vs. Atari 800XL

#20 Post autor: KB777reborn »

zbyti pisze:
27 kwie 2021, 21:01
@tdc interesuje mnie już tylko napisanie silnika szachowego. Puszczę go na A8 i C+4, na C64 raczej nie, może z czasem na jeszcze jakiś komputer 2MHz 6502 z epoki.
W kwestii szachów - do C64 był sobie kart The Final Chesscard z własnym 65c02 @ 5 MHz i własną pamięcią (RAM i ROM). Jak napiszesz engine, można by się pokusić o uruchomienie go na nim (na Pałerze rozpisałem kiedyś jak działa komunikacja między dwoma procami - generalnie jest tam dwukierunkowy rejestr, zapis do niego generuje przerwanie po drugiej stronie, odczyt z drugiej strony kasuje sprzętową flagę IRQ).
1100°C

ODPOWIEDZ