1,726

(254 odpowiedzi, napisanych Bałagan)

ale sie produkujecie, checie jakiś rekord podstron pobić :)

1,727

(254 odpowiedzi, napisanych Bałagan)

http://atariarea.krap.pl/asma/

p.s.
demo Bash ma fajna muze http://atari.fandal.cz/detail.php?files_id=5200

tutaj tak zawsze, to zgorzkniali użyszkodnicy elektroniki użytkowej, którzy nie mogą uwierzyć że Doti ich nie nabiera, gdyby brać wszystkie wypowiedzi do siebie możnaby dostać mega doła

idealne rozszerzenie XE/XL sprowadza sie do nowej płyty na której zostana zintegrowane wszystkie aktualne rozszerzenia typu ide, aki, 65816, qmeg, sparta, stereo, covox itd.

1,730

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

z tego co mówił Pasiu, nie jest jeszcze to w 100% projekt finalny, niektóre dema czy gry permanentnie z niewiadomo dokładnie jakich powodów zawieszają OS, z grą Eidolon na początku też był problem jednak okazało się że to wina kontrolera hdd

1,731

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

próbowałem pianki do plastiku AMBERSIL - AMBERCLENS, no i nic nie pomogła

1,732

(38 odpowiedzi, napisanych Programowanie - 8 bit)

ok, ale czy mając lookupa można obliczyć sinus dla każdej liczby rzeczywistej, czy tylko tyle ile przewidzisz w lookupie ?

po wielu przekształceniach szeregu Taylora wyszło to co przewidział Laoo, post #8 jest przekształconym szeregiem Taylora, a dokładniej jego wersją "wspak":

 sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9!
 sin(x) = x^9/9! - x^7/7! + x^5/5! - x^3/3! + x

po wyciągnięciu przed nawias x^2 i zredukowaniu w podobny sposób silnii wychodzi dokładnie schemat obliczeń z postu #8, jest on o tyle korzystny że wystarczy ciągle przemnażać nowe wartości przez ostatnio wyliczoną wartość

ogólnie jeśli chodzi o liczbę mnożeń jest to wersja z ich większą liczbą, gdyby nie redukować silnii otrzymujemy mniejszą liczbę mnożeń, możemy to wykorzystać na podniesienie precyzji obliczeń, tak więc moja nowa wersja oblicza sinusa z takiego szeregu Taylora:

 sin(x) = x^13/13! - x^11/11! + x^9/9! - x^7/7! + x^5/5! - x^3/3! + x =
        = x^13 * f - x^11 * e + x^9 * d - x^7 * c + x^5 * b - x^3 * a + x =
        = x^3 * (x^2 * (x^2 * (x^2 * (x^2 * (x^2 * f - e) + d) - c) + b) - a) + x

a = 1 / 3!
b = 1 / 5!
c = 1 / 7!
d = 1 / 9!
e = 1 / 11!
f = 1 / 13!

przy podobnej liczbie mnożej jak z postu #8 otrzymujemy jeszcze większą precyzje obliczeń

1,733

(38 odpowiedzi, napisanych Programowanie - 8 bit)

ale o co chodzi przecież napisałem ramki a nie fps (frame per second) :P

1,734

(38 odpowiedzi, napisanych Programowanie - 8 bit)

tak juz zrobiłem, przekształciłem to i wyszło z tego 6 mnożeń

jednak na chwile obecna przepisałem na asm wersje z posta #8, czyli z 9 mnożeniami, jest ona dokładniejsza, wyliczenie sinusa zajmuje 5 ramek (standardowy pakiet FP Atari, na FastChip-ie powinno być szybciej)

wersje Taylora też zamienie na asm, zobacze ile oszczędze czasu na tych 3 mnożeniach mniej

p.s.
na FastChip-ie trwa to średnio 2 ramki

1,735

(38 odpowiedzi, napisanych Programowanie - 8 bit)

Fox napisał/a:

To współczynniki szeregu Maclaurina. Chodzi o to, żeby uniknąć potęgowania X.

a jak te współczynniki można wyliczyć ?

1,736

(38 odpowiedzi, napisanych Programowanie - 8 bit)

thx Fox, potestuje Twój programik

p.s.
tam gdzie jest BPL *-13 powinno być BPL *-12

1,737

(38 odpowiedzi, napisanych Programowanie - 8 bit)

n/w procedura liczy SINusa dla kąta podanego w radianach (kąt podajemy w zmiennej Angle, wynik także odczytujemy z Angle)

Sin:

S1 = Angle
Angle = Angle * Angle
S2 = Angle
Angle = Angle * 0.0138888889
Angle = Angle - 1
Angle = Angle * S2
Angle = Angle * 0.0238095242
Angle = Angle + 1
Angle = Angle * S2
Angle = Angle * .05
Angle = Angle - 1
Angle = Angle * S2
Angle = Angle * 0.166666671
Angle = Angle + 1
Angle = Angle * S1

najważniejsze że działa prawidłowo i podaje wyniki z tą samą dokładnością co Basic, nie ma żadnego potęgowania jednak jest sporo mnożeń

p.s.
stąd to wziąłem http://www.edw.com.pl/pdf/k10/58_03.pdf

1,738

(38 odpowiedzi, napisanych Programowanie - 8 bit)

Fox napisał/a:

Szereg lepiej liczyć bez potęgowania, np. ((x + a) * x + b) * x + c, nawet BASIC tak robi. :)

pod X podstawiamy kąt dla którego liczymy sinusa, a co podstawiamy pod A,B,C ? dlugosci odpowiednich ramion trójkąta ?

1,739

(10 odpowiedzi, napisanych Zloty)

bedziesz tak zalany, ze monitor Ci sie nie przyda

1,740

(38 odpowiedzi, napisanych Programowanie - 8 bit)

Fox masz może jeszcze gdzieś swój program wyliczający sinusa z tych zależności trygonometrycznych ?

wzory redukcyjne sa np. tutaj http://www.wsipnet.pl/oip/msl/cz2/u/wt.html

Da sie w ten sposob przedstawic wszystkie stopnie, tyle ze trzeba na końcu znać wartości dla sinusa i cosinusa dla stopni 0..90

1,741

(38 odpowiedzi, napisanych Programowanie - 8 bit)

chyba mówimy o tym samym zbiorze przykładów wykorzystujących FP, rzeczywiście był tam błąd przy konwersji na ASCII, po poprawce chwyta minusy prawidłowo

dla szeregu potęgowego w/w są pewne odchyły od wartości idealnej, np.

sin(30) = 0.500000001
szereg sin(30) = 0.499674179

sin(37) = 0,6018150231
szereg sin(37) = 0.600888394

szereg wyliczany w krótki sposób sinx = x - x^3/3!

jest to zadowalająca precyzja ?


sinus wg zależności trygonometrycznych, będę musiał poszukać więcej danych na ten temat, może być ciekawiej :)

1,742

(38 odpowiedzi, napisanych Programowanie - 8 bit)

chyba jednak to wydaje się najprostszym rozwiązaniem

sin x=x - x^3/3! + x^5/5! + x^7/7! + ...

1,743

(38 odpowiedzi, napisanych Programowanie - 8 bit)

mam takie pytanko, jak wyliczyć sinusa mając do dyspozycji operacje na liczbach zmiennoprzecinkowych typu dodawanie, odejmowanie, mnożenie, dzielenie, ogólnie mając do dyspozycji operacje z pakietu matematycznego Atari

zaglądałem już do źródeł takiej procedury z BASIC'a, może ktoś zna szybszy sposób czy też może przedstawić całą operację wyliczenia sinusa w postaci jakiegoś wzoru, tylko proszę bez szeregów potęgowych czy funkcji różniczkowych

w pakiecie matematycznym Atari znajdują się takie wartości

; POLYNOMIAL FOR SIN/COS FUNCTIONS (11 COEFFICIENTS)

PLYSIN    .he    3E 16 05 44 49 00 ;  1.6054449E-03  REF BY BASIC SIN/COS ROUTINES
    .he    BE 95 68 38 45 00 ; -9.5683845E-03
    .he    3F 02 68 79 94 16 ;  0.0268799416
    .he    BF 04 92 78 90 80 ; -0.049278908
    .he    3F 07 03 15 20 00 ;  0.0703152
    .he    BF 08 92 29 12 44 ; -0.0892291244
    .he    3F 11 08 40 09 11 ;  0.1108400911
    .he    BF 14 28 31 56 04 ; -0.1428315604
    .he    3F 19 99 98 77 44 ;  0.1999987744
    .he    BF 33 33 33 31 13 ; -0.3333333113
NONE    .he    3F 99 99 99 99 99 ;  0.9999999999   ALMOST EQUAL TO 1.0 (USED FOR ROUNDOFF PROBLEM)

; SIN OF 45 DEG.
SIN45    .he    3F 78 53 98 16 34 ; 0.7853981634

ktoś wie jak to ugryźć, czy to jest potrzebne aby wyliczyć sinus-a, bo Basic używa jakichś swoich predefiniowanych wartości

1,744

(7 odpowiedzi, napisanych Programowanie - 8 bit)

g2f zlicza sobie kolory ktore wystepuja na obrazku i na podstawie czestotliwosci ich wystepowania przyporzadkowuje je do kolejnych rejestrow koloru, tak wiec kolor ktory najczesciej wystepuje bedzie kolorem tla (712), potem kolejno 708, 709 itd.

dla trybu 9 będę musiał zabronić mu liczyć kolory, wtedy będzie ok

1,745

(10 odpowiedzi, napisanych Programowanie - 8 bit)

nosty podaj swoj email, poprzedni email odebralem, ale nie mam obecnie dostepu do tamtego kompa

1,746

(10 odpowiedzi, napisanych Programowanie - 8 bit)

Nosty jeśli dostaniesz potwierdzenie zgonu pana Solo, wyslij swój problem do mnie tbiela[at]poczta.onet.pl

1,747

(37 odpowiedzi, napisanych Software, Gry - 8bit)

żaden z testowanych programow w C i ASM nic nie wyswietlał, wiec test był uczciwy co do ramki

$f2b0 lubię i będę je używał wtedy kiedy będę miał ochotę i żadna drakońska konserwa nie ma tu nic do gadania, w końcu mniejszość się nie liczy

"makra" w rodzaju while, test, switch mają w założeniu ułatwić życie tym którzy nie czują się pewnie w asm, ostatecznie przyspieszyć proces tworzenie kodu

p.s.
Drac030 mam nadzieję że ten kij w Twojej dupie nie siedzi zbyt głęboko, da się to jeszcze operować ?

1,748

(30 odpowiedzi, napisanych Zloty)

atarowcy przybiją gwóźdź do trumny komodorowców ;)

1,749

(37 odpowiedzi, napisanych Software, Gry - 8bit)

wracając do tematu, program w cc65 po optymalizacji, czyli zamiast "int" jest teraz "unsigned int", rezygnacja z wyrzucania na ekran jakichkolwiek tekstow

cc65 (6502):  2453 fps

Action!:  1015 fps

asm (mads):  1009 fps (automatyczne generowanie kodu dla .WHILE i .TEST, optymalizacja dla skoków warunkowych JNE, JEQ, JCC itd.)

wniosek: CC65 jest wolny, !Action szybki jak assembler

p.s.
następny przyklad programiku w mads z nowymi dyrektywami  (i c++) , pytanie, co ten program wyswietli ?:)

;int main() {
;    const int WIERSZ = 5;
;    const int KOLUMNA = 15;
;    int j, i = 1;
    
    org $2000

    .var wiersz = 15, kolumna=20, j, i=1 , hlp .byte
    
;    while(i <= WIERSZ)
    .while .byte i <= wiersz
;     {
;       cout << setw(KOLUMNA - i) << '*';

    lda kolumna    ; setw(KOLUMNA - i)
    sub i
    sta 82        ; lewy margines

    lda #$9b    ; cout << setw(KOLUMNA - i)
    jsr $f2b0

    lda #'*'    ; cout << '*'
    jsr $f2b0


;       j = 1;
    mva #1 j

;       while( j <= 2*i-2 )
    lda i
    asl @
    sub #2
    sta hlp

     .while .byte j <= hlp
;        {
;         cout << '*';
      lda #'*'
      jsr $f2b0

;         j++;
      inc j
;        }
     .endw
;       cout << endl;

;       i++;
    inc i
;     }
    .endw
    
;    return 0;                     
;}
    mva #$02 82    ; domyslna wartosc komorki 82

    mva #$c2 712
    jmp *

1,750

(37 odpowiedzi, napisanych Software, Gry - 8bit)

Dely, pewnie jeszcze cos takiego nie powstało, w nastepnej wersji mads bedziesz mial petle while, for i test (odpowiednik if), może Ci to ułatwi pisanie w asm