Przejdź do treści forum
atari.area forum
Twoje polskie źródło informacji o Atari
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Aktywne tematy Tematy bez odpowiedzi
Aktualności ze świata Atari
Wielki finał kursu asemblera 6502 Larek kończy swoją serię programowania w asemblerze 6502 na 8-bitowe Atari.
TONY Montezuma's Gold na Atari 2600 Nowa produkcja Monochrome Productions dla konsoli Atari 2600 już dostępna w wersji cyfrowej.
VBXETERM 0.15 Nowa wersja emulatora terminala VBXETERM dodaje obsługę klawiszy strzałek oraz nowe czcionki.
Weekend z Borsuk Retro Gry TV Zapraszamy na weekendowe transmisje z udziałem gości, w tym budowę Custom Atari XL i naprawy sprzętu.
AltirraSDL Lobby Przeglądarkowy front-end dla emulatora Altirra z trybem gry wieloosobowej online od Ilmenita.
Opcje wyszukiwania (Strona 116 z 122)
http://sourceforge.net/projects/atari8/ - narzędzia Bob_er'a - m.in. projekt Yvonne, którym na pc (unixoidy) możesz oglądać obrazki z atari - ma sporo formatów.
Prawda, prawda - sam byłem magnetofilem z przymusu :)
Miłośnik magnetofonu - magnetofil?
Zlecenie jest kompletnie nieopłacalne. Brak kosztów 50% lub 20%, ZUS, podatek 20%. Kompletny bezsens.
Ze strony http://www.bookcase.com/library/softwar ... rland.html (zarchiwizowane również u mnie) można ściągnać program do edycji fontów .CHR (na samym dole plik bgifont.zip - http://mono.i-demo.pl/bgifont.zip ). Dodatkowo są też pliki z przykładowymi fontami:
- bgi28fnt.zip ( http://mono.i-demo.pl/bgi28fnt.zip )
- bgifonts.zip ( http://mono.i-demo.pl/bgifonts.zip )
- lcdfonts.zip ( http://mono.i-demo.pl/lcdfonts.zip )
Dodałem fonty z bgi28fnt na dysk .atr ( http://mono.i-demo.pl/chrdraw7.atr ).
Przykładowy font H--C.CHR:

Poza tym na razie nie ma zmian.
Edit: Na stronie http://www.programmersheaven.com/downlo ... nload.aspx z kolei znalazłem coś takiego: http://mono.i-demo.pl/sfe.zip co jest podobno nowszą wersją edytora fontów .CHR. Działa ładnie z dosemu, ale trzeba mu dokopiować plik http://mono.i-demo.pl/egavga.bgi .
Muzyka z Draconusa jest na dysku z programem Future Composer, jako demo. Jest tam parę niezgodności z oryginałem, ale to akurat da się łatwo wyłapać. Demo możesz zaczytać do FC i zmienić tempo odtwarzania oraz odsłuchać. Masz tam też zapis nutowy w postaci listy zdarzeń C-2, C#2 itp. więc nie ma co spowalniać, tylko przepisać :D Mam chyba nawet gdzieś instrukcję do tego programu (sam program jest bazowany na tym z C64) więc przy okazji mogę poszukać i Ci podam.
edit: http://atarionline.pl/utils/3.%20Muzyka ... 201.32.atr
Po uruchomieniu atra pojawi się dos. trzeba po prompcie odpalić FC i pojawi się wtedy panel główny Future Composera.
Obsługa: Shift+I, L D1:DRACONUS.FC<RETURN>, E, OPTION uruchamia muzykę od początku (SELECT robi pauzę, START wznawia odtwarzanie).
Nawigacja nawet w trakcie odtwarzania: strzałki + RETURN wchodzisz do patternu. ESC wychodzisz. Zmiana tracka SHIFT+1,2 lub 3.
Draconus jest też, jako demo w Sound Trackerze z ASF (ale nie mogę go nigdzie znaleźć - dziwne...).
Ja na moim slackware 10.1 musiałem przy odczytach sprawdzać ile się faktycznie odczytało danych i powtarzać aż do skompletowania żądanej ilości. Ale może wystarczy jakąś stałą zastosować.
Broni atomowej? Możesz dely powiedzieć jak to było?
Fill jest w planie zaraz po rysowaniu tekstu na ścieżce, które może będzie nawet dzisiaj.
Nie upieram się przy swoim, bo to jednak kwestia sporna i zależy od upodobań, ale zdarzyło mi się uruchamiać serwer tcp napisany w java5 na platformie dla routerów w okrojonej javie (gnu classpath - http://www.gnu.org/software/classpath/home.html ). Dzięki temu, że nie wykorzystywałem w modelu klas zależnych od środowiska graficznego, poprawki w kilku zaledwie miejscach ograniczyły się tylko do użycia metod z java2 i skompilowaniu wszystkiego dla starej wersji klas (48.0). Uznałem, że uniezależnienie modelu tam gdzie się da od innych elementów aplikacji to jednak dobra praktyka i dlatego stosuję :) Może kiedyś awt i swing wyleci na stałe z javy a sama java będzie miała niewielki rdzeń plus dodatki...? ;)
@Fox: dzięki za pozytywny komentarz, lecz z resztą będę jednak polemizował :)
Strukturkę, jak mówi Laoo zastosowałbym bardzo chętnie (i tak zrobię w kolejnej wersji ;)), ale dalej nie chciałbym używać Point'a (i pochodnych) z pakietów AWT. Cały pakiet onebit.chrdraw.chr jest uniezależniony od grafiki, żeby można było go używać np. w aplikacjach serwerowych nie posiadających środowiska graficznego (TextLine służy tylko do zobrazowania wyglądu fonta i jako jedyna powinna być zależna od pakietów graficznych; plus jeszcze kod tworzący okno). Gdybyśmy mieli zależności od AWT, to chcąc wykorzystać kod dla fontu w aplikacji konsolowej, albo serwerowej trzeba by go przerobić pozbawiając zależności od AWT. A co gdybyśmy chcieli pewnego dnia przerobić bibliotekę do pracy w 3D? Mając java.awt.Point i tak trzeba by wtedy napisać nową klasę pochodną z kolejną składową - może pod tym kątem wektor nie jest najgorszy? Wektorowe fonty w 4 wymiarach... ;) Żartuję! Wolę jednak strukturę niż kolekcję.
Kiedyś używałem tego programu do pracy nad grą na komórę (j2me). Bardzo przydatna okazała się możliwość pisania własnych skryptów w języku LUA - dzięki temu mając wyedytowany poziom mogłem go sobie zapisać do własnego formatu.
A najbardziej chyba podobała mi się możliwość ustalania własnych atrybutów int i bool dla klocków. Polecam również - całkiem dobre narzędzie o sporych możliwościach.
Dzięki tebe. Przyda się przy tworzeniu biblioteki. I muszę się przełamać do używania makr i psudorozkazów :)
Nie bardzo podobało mi się użycie klasy z AWT podczas parsowania parametrów commandline'a, które jest przecież niezależne od warstwy graficznej. I nigdzie w programie nie byłby ten Point używany do niczego innego, jak tylko do składowania informacji (jest użyty tylko przy transformacjach afinicznych). Aczkolwiek nie jestem tu konsekwentny - wiem, bo aplikacja jest zbudowana na pochodnej JFrame'a ze Swing'a a w takim razie powinna być np. zwykłym Object'em a okno powinno być wydzielone do osobnej klasy. Trudno jednak sobie rozwarstwić aplikację bo sama AffineTransform jest w pakiecie w AWT :(, a może powinna być w jakimś java.math.geom(?). Konkludując - jestem zdania, że nie powinno się mieszać warstw i stąd użycie Vector'ów (choć powinna być zdefiniowana własna klasa Point ze współrzędnymi dla translacji, oraz analogiczna klasa Factor dla skalowania i pochylania). Jak już wcześniej pisałem projekt mógłby być ładniej napisany, ale to prototyp i chciałem szybko zobaczyć wyniki :)
A co do kodu asm - napisany w jEdit'cie na piecu i assemblowany mads'em 1.8.4, odpalany emulgatorem atari800. Też nieładny i nieszybki z tych samych powodów co wyżej.
Transformacje afiniczne (skalowanie, obroty, pochylanie, przesuwanie).
Sposób wywołania aplikacji java (http://mono.i-demo.pl/chrdraw5.jar ):
$ java -jar chrdraw.jar font skala przesuniecie rotacja pochylenie tekst
Nastąpiła zmiana w formacie parametrów:
- skala to wektor - domyślnie 1.0,1.0
- przesunięcie to wektor - domyślnie 0.0,0.0
- rotacja to skalar - domyślnie 0.0
- pochylenie to wektor - domyślnie 0.0,0.0
Program na atari (http://mono.i-demo.pl/chrdraw5.atr ) realizuje transformacje na uproszczonych macierzach 2x3 (ostatni wiersz zawsze jest [0 0 1]) w formacie fxp8.8 (precyzja wydaje mi się wystarczająca, ale można zmienić w razie czego). Parametry dla atari podaje się w formatach:
- skala - wektor w formacie fxp8.8
- przesunięcie - wektor w formacie fxp16.0
- rotacja - skalar w formacie fxp10.6 (stopnie - wyciągana jest reszta z dzielenia przez 360 więc dozwolone są dowolne wartości)
- pochylenie - wektor w formacie fxp8.8
Przykładowy shot z fontem TSCR.CHR z emulatora:

Transformacje, które kolejno są wykonywane to:
1. skalowanie 1.5,1.5
2. translacja 150,20
3. rotacja 30 deg
4. translacja -150,-20
5. translacja 30,70
6. pochylenie -0.5,0.125
Punkty 2+3+4 dają obrót o 30 stopni zaczepiony w punkcie 150,20.
Sinus jeszcze jest tablicowany, ale wkrótce będzie liczony...
Aha - dorobiłem wyjście do dos po wciśnięciu dowolnego klawisza ;)
No i ekran jest tylko wycinkiem większej całości - kompletne obliczenia prowadzone są na .w więc malowany tekst prędko się nie zawinie.
Źródła (java) są dostępne tu: http://mono.i-demo.pl/chrdraw5-src.zip ; atari tu: http://mono.i-demo.pl/chrdraw5.asx .
Ewentualnie tac - ale to dla ekscentryków.
Bardzo ładne. Warto to pociągnąć dalej.
Hmmm. Ale wydaje mi się, że 20 lat temu w czasach działalności Avalonu (poprzez artykuły w Tajemnicach Atari) właśnie starano się gruntować poprawne nawyki wśród programistów: umiejętności przedłużania wektorów systemowych i korzystania z nich, wychodzenie do dosa, współdzielenie pamięci i zasobów przez programy, pisanie nakładek, handlerów cio itp.
Z inicjalizacją urządzenia E: to jednak mam mieszane uczucia. Bo jeśli ustawiamy wektor dlisty to można go przywrócić. Otwarcie E: jest niezbędne gdy robimy coś w pamięci ekranu i dlisty (choć i tak lepiej chyba zachować ten obszar chwilowo i przywrócić przed wyjściem do DOSa), ale jakoś dziwnie by to wyglądało gdyby po inicjalizacji zwykłej nakładki ekran został zresetowany - po skoku do DOSVEC chyba raczej DOS tego nie robi, a robi raczej przy inicjalizacji po RESET.
Co do wyjścia przez rts - chyba jednak preferowałbym jmp ($a), bo nigdy nie ma pewności z czego odpalany jest program i czy adres powrotu leży na stosie. Nawet zdaje się taki JBW COMmander instaluje się w pamięci przechwytując m.in. wektor DOS i nie każe aplikacjom bazować na powrotach przez rts.
A JBW nie zalecał przypadkiem jmp (dosvec) czyli jmp ($a), jako poprawnego wyjścia do dos? Bo jeśli program inicjalizuje sobie wskaźnik stosu przez ldx #$ff, txs, albo przekręci się on w trakcie działania (np. dzięki za gęstym przerwaniom) to rts pójdzie w maliny.
Ja też byłbym zainteresowany.
Tak. Na pewno działa dla Sparta DOS 3.2d (ścieżka np. "D1:KAT1>KAT2>PLIK.EXT"). Nie wiem jak jest w SDX i MyDOS, ale nie sądzę żeby było inaczej.
Jeśli chodzi o rozmiar pliku na dyskietce to nie ma tu żadnych ograniczeń prócz fizycznych możliwości nośnika.
Program ładujący do kolejnych banków może wyglądać np tak (wyjęty z jakiegoś mojego kodu i zmodyfikowany, ale nie przetestowany):
load equ *
ldx #$10
lda #4 ;read
sta icaux1,x
lda #3 ;open
sta iccmd,x
lda <filename
sta icbufa,x
lda >filename
sta icbufa+1,x
lda #filenamelength
sta icbufl,x
lda #0
sta icbufl+1,x
jsr ciov
bmi err
ldy #0
sty bankindex
loadloop equ *
lda banks,y
sta portb
;zaladowanie bloku do banku
lda #4 ;read
sta icaux1,x
lda #7 ;getbyte
sta iccmd,x
lda <$4000
sta icbufa,x
lda >$4000
sta icbufa+1,x
lda <$4000
sta icbufl,x
lda >$4000
sta icbufl+1,x
jsr ciov
bmi doclose
inc bankindex
ldy bankindex
cpy #bankscount
bcc loadloop
doclose equ *
php
;na końcu włączamy podstawowy bank
lda #$ff
sta portb
lda #12 ;close
sta iccmd,x
jsr ciov
plp
err equ *
rts
filename dta c'D1:DOWOL.DTA'
filenamelength equ *-filename
;tu są wartości dla portb włączające odpowiednie banki - system powinien być włączony!
banks dta b($c3),b($c7)
bankscount equ *-banks
To Ci pozwoli ładować strumieniowo plik (nie musisz go dzielić fizycznie na ileś tam plików, bo nie ma takiej potrzeby) do kilku banków zdefiniowanych w tablicy banks.
Na wyjściu w Y masz kod błędu, rejestr F nienaruszony w tym sensie, że po jsr load możesz zrobić bmi obsługabłędu.
Dorobiłem skalowanie czcionek.
Sposób wywołania aplikacji java (http://mono.i-demo.pl/chrdraw4.jar ):
$ java -jar chrdraw4.jar font skala tekst
skala domyślnie 1, tekst domyślnie "Quick brown fox jumps over lazy dog."
Aplikacja na atari (http://mono.i-demo.pl/chrdraw4.atr ) ma ustawiony współczynnik skalowania na 2.0 (współczynnik można ustawiać w źródle w formacie fxp8.8).
Przy okazji okazało się jak działa "Easy fonts" - bardzo prymitywny, a goście za to chcą 90EUR ech.
Widać też jak są skonstruowane pozostałe fonty (borlandowe i lcd).
Niżej parę screenshotów z atari.
Comic Sans MS:

Gothic:

LCDL:

Symbol:

Trip:

Źródła (java) są dostępne tu: http://mono.i-demo.pl/chrdraw4-src.zip ; za to (atari) są tu: http://mono.i-demo.pl/chrdraw4.asx .
Znalezione posty [ 2,876 do 2,900 z 3,040 ]
Forum oparte o: PunBB
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.
Wygenerowano w 0.109 sekund, wykonano 20 zapytań