651

(58 odpowiedzi, napisanych Programowanie - 8 bit)

najprędzej w planach jest biblioteka dla VBXE

przez Ilmenita ;) muszę jeszcze poprawić szybkość generowanego kodu coby dorównać kroku CC65 (-Osir -Cl)

652

(58 odpowiedzi, napisanych Programowanie - 8 bit)

1.2.8 http://mads.atari8.info

653

(58 odpowiedzi, napisanych Programowanie - 8 bit)

kolejna wersja 1.2.2, dodane typy ze znakiem SHORTINT, SMALLINT, INTEGER

jeśli kompilować program dla PC przez FPC (Free Pascal Compiler) to z przełącznikiem -Mdelphi, wtedy typy będą zgodne z Mad Pascalem (oprócz REAL oczywiście)

654

(58 odpowiedzi, napisanych Programowanie - 8 bit)

Mad Pascal 1.2.0

myślę że projekt dojrzał do odpowiedniego stopnia, instrukcja, kompilator na stronie http://mads.atari8.info

w przykładach m.in. gra SNAKE, program generujący fraktale FRACTAL, przykłady operacji I/O (pod emulatorem należy ustawić możiwość zapisu R/W dla ATR-a)

655

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

XBIOS reaktywacja ;)

656

(44 odpowiedzi, napisanych Programowanie - 8 bit)

zamówiona :) dzięki za link

657

(44 odpowiedzi, napisanych Programowanie - 8 bit)

chętnie dodam do paczki z Mads-em

658

(44 odpowiedzi, napisanych Programowanie - 8 bit)

:) jeśli Fox udostępnił takowy plugin do XASM-a to tym samym do MADS-a, MADS i XASM w jednym stali domku :)

659

(13 odpowiedzi, napisanych Scena - 8bit)

w sile wieku, smutne :-(

660

(31 odpowiedzi, napisanych Zloty)

Riverwash 7  4-6 września 2015, Kraków

http://riverwash.org/pl/about

multiplatformowe

ktoś jedzie?

661

(58 odpowiedzi, napisanych Programowanie - 8 bit)

kompilator i demo powstało w dwa tygodnie, łącznie z czasem na Głuchołazach, spodziewacie się 10 000 linii  kodu, 200 stron instrukcji i kilka MB przykładów ?

czy ja komuś bronię żeby pisał sobie jakiekolwiek biblioteki

662

(58 odpowiedzi, napisanych Programowanie - 8 bit)

nic nie pisałem bo chciałem poczekać do pełniejszej wersji, tak będzie tego więcej, możesz też pomóc :)

POKE nie będzie potrzebne jeśli zostanie dodane ABSOLUTE

var COLBAKS: byte absolute 712;

COLBAKS = $88;       // POKE już nie potrzebne

inicjowanie zmiennych globalnych (na lokalnych to nie działa)

var a : byte = $aa;
      temp: array [0..3] of byte = ($c0,$40,$20,3);

optymalizacja kodu poprzez grupowanie rozkazów

tak, jest jeszcze wiele do zrobienia, aktualnie chciałem dodać READ, ale jeśli chcę to zrobić po "bożemu" przez K: to nie działa bez DOS-u, aktualnie na liście rzeczy do zrobienia jest USES, {$I FILENAME}, ABSOLUTE, READ / READLN

p.s.
w ACUSOL (taki ACTION na PC) występuje ten sam problem z pętlą której licznik osiąga maksymalny zakres typu licznika (0..255), będę podpatrywał ACTION

663

(161 odpowiedzi, napisanych Fabryka - 8bit)

jakże trudno pojąć ten istotny zamysł uruchomienia tego samego kodu na gołym sprzęcie jak i z VBXE, dodanie czegokolwiek w Overlay dla VBXE będzie dążeniem do stworzenia osobnego kodu tylko pod VBXE

aktualna koncepcja jest genialna, perfekcyjna i idealna, jakiekolwiek sugestie zmian są wynikiem jej nie zrozumienia

664

(141 odpowiedzi, napisanych Programowanie - 8 bit)

dojrzewający następca ACTION, własne IDE, działająca już kompilacja do XEX-a

http://atariage.com/forums/topic/223277 … try3223308

665

(23 odpowiedzi, napisanych Programowanie - 8 bit)

gdy załadujecie przykładowy plik IRQ_MCP z poziomu ATR (dyskietki itp.) kolory będą popsute

w przykładzie zabrakło instrukcji resetowania POKEY-a  (SKCTL = 3)

załadowanie pliku OBX/XEX z pominięciem transmisji przez POKEYA nie ujawni tego niedociągnięcia

666

(23 odpowiedzi, napisanych Programowanie - 8 bit)

DLI puszcza IRQ w ruch, co 2 linie ekranu IRQ zmienia po 2 linie obrazu, interwał zmian jest stały, program IRQ jest możliwie najkrótszy aby zostawić jak najwięcej wolnych cykli CPU

licznik LINE zlicza tylko kolejne wywołania IRQ i nie decyduje o linii w której ma nastąpić zmiana albo nie, o tym decyduje AUDF które zostaje ustawione tylko raz przed uruchomieniem całego programu, AUDCTL=1 (15Khz)

można też zakończyć "galop" IRQ poprzez drugie DLI na końcu programu DLISTy, jednak potrafiło to zawieść, stąd zdecydowałem się na licznik

667

(141 odpowiedzi, napisanych Programowanie - 8 bit)

jak zyskać cykle CPU, zastępując przerwanie DLI poprzez IRQ

http://www.atari.org.pl/forum/viewtopic … 18#p208218

668

(23 odpowiedzi, napisanych Programowanie - 8 bit)

Cyprian napisał/a:
tebe napisał/a:

IRQ pozwoli odzyskać część straconych cykli CPU

jak dużo? przeszło 2000 cykli dla obrazka o wysokości 200 linii

2000 to sporo. Z czego wynika ta oszczędność?

zysk pochodzi ze zmiany drugiej linii, którą zaczynamy zmieniać od razu po pierwszej linii

załączony przykład (MONSTER) dotyczy zmiany 3 rejestrów, dla trybów GTIA powinno być jeszcze szybciej

w załączniku przykład autora PROJECTM, rozbudowane IRQ (5 poziomów) zmieniające tylko rejestr GTICTRL

669

(23 odpowiedzi, napisanych Programowanie - 8 bit)

poprawiłem wartość wolnych cykli jaką zyskuje się dla IRQ, jest to przeszło 2000 cykli CPU

jak są liczone wolne cykle, program wykonuje pętle

loop jsr delay      ; 12 cykli
       inw time     ; 8 lub 12 cykli gdy zwiekszany jest starszy bajt
       jmp loop     ; 3 cykle
delay rts

na przerwaniu VBL przepisywany jest na inną stronę pamięci licznik TIME, następnie zerowany, co ramkę otrzymujemy informację ile razy udało się powtórzyć pętlę, która trwa najmniej 23 cykle, a dla przypadku w którym trzeba zwiększyć starszy bajt TIME 27 cykle

w sumie dla obrazka DLI mamy do dyspozycji 11573 wolnych cykli CPU, dla najszybszego IRQ 14084 cykli, ponad 2000 cykli zysku na korzyść IRQ

p.s.
Vidol biorąc pod uwagę komentarze dla obrazka BIASED_DECISION (Raven/Nuance) gdzie potworne błędy zmiany rastra zostały uznane jako zamierzony efekt wygładzenia 8) to jakiekolwiek przekłamania kolorów dla IRQ są przecudowne

670

(23 odpowiedzi, napisanych Programowanie - 8 bit)

z przerwaniem programu DLISTy (DLI) pewnie każdy się spotkał, pozwala zmieniać rejestry w kolejnych liniach obrazu, dodatkowo zawsze wcześniej należy użyć WSYNC ($D40A) aby zmiana zaszła od początku linii, czyli jeśli mamy obrazek o wysokości 200 linii, to 200x WSYNC oznacza że na wysokości 200 linii zmieniamy tylko rejestry i nic poza tym, nie mamy czasu CPU na nic innego

ostatnio na AtariAge natknąłem się na kilka wątków dotyczących wykorzystania IRQ zamiast tradycyjnych przerwań DLI

taki ProjectM (256 kolorowy potencjalny Wolfenstein korzysta z takiego sposobu zmian rejestrów GTIA co linię)

potencjalnym zakresem zastosowań są tryby interlace lub wszystko inne co zmienia kolory co ileś linii z jakimś ustalonym schematem, czyli APAC, XLPaint MAX itp.

zaletą IRQ jest możliwość określenia co ile linii ma zostać wywołane przerwanie (co 1 linię, dwie, trzy, osiem itd.)

wadą ograniczenie możliwości dźwiękowych POKEY-a, muzyka musi zostać napisana uwzględniając korzystanie z TIMERa

jeśli ktoś chciałby popełnić jakiś efekt w większej liczbie kolorów IRQ pozwoli odzyskać część straconych cykli CPU

jak dużo? przeszło 2000 cykli dla obrazka o wysokości 200 linii

w załączniku przykład wyświetlenia obrazka Vidola 'Monster', tryb XLPaint Max (albo MCP - McPainter)

z eksperymentów wyszło że najbardziej opłaca się wywoływać IRQ co 2 linie (AUDF=1), dla wywołań co 1 linię wychodzi czasowo podobnie jak poprzez DLI, chyba że dokona się optymalizacji przerwań IRQ i wtedy zaczyna się odzyskiwać cykle CPU

jednak najbardziej efektywne jest wywołanie co 2 linie

ku potomności, IRQ nie takie straszne, chcecie zawalczyć o wolne cykle CPU, pomyślcie o IRQ jako alternatywie


zarys działania programu

program startuje IRQ z poziomu przerwania DLI, czas trwania przerwania kontroluje zmienna LINE, zmniejszana z każdym wywołaniem IRQ

inicjowanie IRQ

 mva #100 LINE          ; zmienna zliczająca linie

 mva #1 AUDCTL        ; 0=POKEY 64KHz, 1=15KHz

 mva #0 AUDC4        ; test - no polycounters + volume only
 mva #1 AUDF4        ; co 2 linie

krótki program DLI, który wystartuje IRQ

 pha

 lda #4
 sta stimer             ; niby startuje liczniki TIMER-a
 sta irqen              ; to najważniejsze uruchamia IRQ


 pla
 rti

samo przerwanie IRQ

 pha

 lda #x0 reg0
 lda #y0 reg1
 lda #z0 reg2

 mva #0 irqen           ; zatrzymanie przerwania
 mva #4 irqen           ; kontynuacja

 N pustych cykli aby dostać się do drugiej linii

 dec LINE
 beq IRQ_STOP

 lda #x1 reg0
 lda #y1 reg1
 lda #z1 reg2

 pla
 rti

IRQ_STOP

 mva #0 IRQEN           ; zatrzymanie przerwania IRQ

 pla
 rti

w załączniku 3 pliki, DLI_MCP tradycyjna zmiana poprzez DLI, IRQ_MCP najszybsza zmiana poprzez IRQ co 2 linie, IRQ_MCP_2 wersja z IRQ co 1 linię, najmniej opłacalna

programy sprawdzane na prawdziwym sprzęcie, tylko DLI_MCP działa na wszystkich emulatorach, wersje IRQ tylko z ALTIRRą wyświetlane są prawidłowo

p.s.
próbowałem też "ożenić" IRQ z zaprezentowaną przez FOX-a metodą VSCROLL-a, tryb 9++, nie udało się, WSYNC ma niewątpliwą zaletę w tym względzie

671

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

na Spectrum nie ruszy

672

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

a znacie ten BASIC https://sites.google.com/site/pauldunn/

673

(27 odpowiedzi, napisanych Programowanie - 8 bit)

temat Marii był już poruszany, w archiwach tego forum można znaleźć wątki, Maria nie jest zgodna z XE/XL przede wszystkim ze względu na mapę pamięci, możliwości graficzne nie są oszałamiające

na początku Electron tworząc mapę kolorów VBXE wzorował się Marią, to była porażka, obrazków z C64 z taką mapą nie dało się wyświetlać

674

(24 odpowiedzi, napisanych Emulacja - 8bit)

znów ktoś obraził Atarowca, jak możecie być tak nieczuli, Atarowiec to delikatne stworzenie, wymaga czułości :D

675

(141 odpowiedzi, napisanych Programowanie - 8 bit)

ciekawe sposoby optymalizacji operacji mnożenia poprzez sumowanie tablic logarytmów, oraz inne sposoby optymalizacji obliczeń dla 6502

http://realtimecollisiondetection.net/blog/?p=21

a tutaj jak można błądzić http://everything2.com/title/Fast+6502+multiplication

w sumie to w paczce z mads-em jest fast_mul bodaj od Fox-a, który załatwia temat, ale skąd co się wzięło warto wiedzieć


a tutaj na temat rotacji bitmapy:

http://www.drdobbs.com/architecture-and … /184416337