2,776

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

Prawda, prawda - sam byłem magnetofilem z przymusu :)

2,777

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

Miłośnik magnetofonu - magnetofil?

2,778

(14 odpowiedzi, napisanych Bałagan)

Zlecenie jest kompletnie nieopłacalne. Brak kosztów 50% lub 20%, ZUS, podatek 20%. Kompletny bezsens.

2,779

(40 odpowiedzi, napisanych Programowanie - 8 bit)

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:
http://mono.i-demo.pl/a8h--c.png
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 .

2,780

(3 odpowiedzi, napisanych Scena - 8bit)

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...).

2,781

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

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ć.

2,782

(89 odpowiedzi, napisanych Bałagan)

Broni atomowej? Możesz dely powiedzieć jak to było?

2,783

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Fill jest w planie zaraz po rysowaniu tekstu na ścieżce, które może będzie nawet dzisiaj.

2,784

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Wersja atari z liczonym sinusem ( http://mono.i-demo.pl/chrdraw6.atr ).
http://mono.i-demo.pl/a8tscr4.png
Źródła atari: http://mono.i-demo.pl/chrdraw6.asx .

2,785

(40 odpowiedzi, napisanych Programowanie - 8 bit)

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...? ;)

2,786

(40 odpowiedzi, napisanych Programowanie - 8 bit)

@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ę.

2,787

(5 odpowiedzi, napisanych Programowanie - 8 bit)

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.

2,788

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Dzięki tebe. Przyda się przy tworzeniu biblioteki. I muszę się przełamać do używania makr i psudorozkazów :)

2,789

(40 odpowiedzi, napisanych Programowanie - 8 bit)

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.

2,790

(40 odpowiedzi, napisanych Programowanie - 8 bit)

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:
http://mono.i-demo.pl/a8tscr3.png
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 .

2,791

(16 odpowiedzi, napisanych Bałagan)

Ewentualnie tac - ale to dla ekscentryków.

2,792

(48 odpowiedzi, napisanych Fabryka - 8bit)

Bardzo ładne. Warto to pociągnąć dalej.

2,793

(17 odpowiedzi, napisanych Programowanie - 8 bit)

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.

2,794

(17 odpowiedzi, napisanych Programowanie - 8 bit)

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.

2,795

(23 odpowiedzi, napisanych Bałagan)

Ja też byłbym zainteresowany.

2,796

(25 odpowiedzi, napisanych Programowanie - 8 bit)

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.

2,797

(25 odpowiedzi, napisanych Programowanie - 8 bit)

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.

2,798

(40 odpowiedzi, napisanych Programowanie - 8 bit)

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:
http://mono.i-demo.pl/a8coms2.png

Gothic:
http://mono.i-demo.pl/a8goth2.png

LCDL:
http://mono.i-demo.pl/a8lcdl2.png

Symbol:
http://mono.i-demo.pl/a8symb2.png

Trip:
http://mono.i-demo.pl/a8trip2.png

Ź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 .

2,799

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Niby tak, ale na razie to jest font nieskalowany. A ponieważ jest to stroked font to po skalowaniu zobaczymy pewnie z jakich linii tak naprawdę się to wszystko składa :(. Stroked nie jest wypełniany, jak normalny font wektorowy. Można przy skalowaniu spróbować malować pędzlem kilkupikselowym (a nie jedno-, jak teraz). Inna rzecz, to niestety rozmiar fontu :(. Te z borlanda mają nawet 20 kb; z tablicami dla ekranu i kodem (1kb) to nam zajmuje całą pamięć :(. Ale to chyba cecha stroków - im ma być dokładniejszy tym będzie większy, bo mamy do dyspozycji tylko przesunięcia i proste drawto.

2,800

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Poprawka w programie java (http://mono.i-demo.pl/chrdraw3.jar ) dla fontów konwertowanych Easy Fonts 3.0 (wersja Win - http://digilander.libero.it/pnavato/EasyFonts ) - definicja jednego glypha może być teraz wykorzystana dla wielu znaków. Poza tym konwerter nie podaje typu fonta, a traktuje to pole, od razu jako opis (który jest zaraz za nim) dzięki czemu pełna nazwa czcionki umieszczona w opisie jest rozcięta na dwa pola np. "Comi" i "c Sans MS...". Easy Fonts w wersji niezazrejestrowanej wygenerował mi tylko kilkanaście znaków z fonta ttf. Poniżej parę przykładowych czcionek z Win (http://mono.i-demo.pl/winfonts.zip ) - wszystkie normal w rozmiarze 20:

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw3.jar WIN/COMS.CHR 01234ajlmW
Font type: Comi
Font name:
Internal font name: COMS
Description: c Sans MS
* Easy Fonts v3.0 for Windows - UNREGISTERED *
                                               
Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -8
Origin to top of capital distance: 21
Character range:  (20)..n(6e)
http://mono.i-demo.pl/coms.png
http://mono.i-demo.pl/a8coms.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw3.jar WIN/CRRN.CHR 01234ajlmW
Font type: Cour
Font name:
Internal font name: CRRN
Description: ier New
* Easy Fonts v3.0 for Windows - UNREGISTERED *
                                                 
Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -5
Origin to top of capital distance: 17
Character range:  (20)..n(6e)
http://mono.i-demo.pl/crrn.png
http://mono.i-demo.pl/a8crrn.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw3.jar WIN/LUCI.CHR 01234ajlmW
Font type: Luci
Font name:
Internal font name: LUCI
Description: da Console
* Easy Fonts v3.0 for Windows - UNREGISTERED *
                                             
Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -5
Origin to top of capital distance: 20
Character range:  (20)..n(6e)
http://mono.i-demo.pl/luci.png
http://mono.i-demo.pl/a8luci.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw3.jar WIN/SYMB.CHR 01234ajlmW
Font type: Symb
Font name:
Internal font name: SYMB
Description: ol
* Easy Fonts v3.0 for Windows - UNREGISTERED *
                                                     
Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -6
Origin to top of capital distance: 17
Character range:  (20)..n(6e)
http://mono.i-demo.pl/symb.png
http://mono.i-demo.pl/a8symb.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw3.jar WIN/TMNR.CHR 01234ajlmW
Font type: Time
Font name:
Internal font name: TMNR
Description: s New Roman
* Easy Fonts v3.0 for Windows - UNREGISTERED *
                                             
Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -6
Origin to top of capital distance: 18
Character range:  (20)..n(6e)
http://mono.i-demo.pl/tmnr.png
http://mono.i-demo.pl/a8tmnr.png

Źródła dla programu (java) są tutaj: http://mono.i-demo.pl/chrdraw3-src.zip . Program dla atari się nie zmienił, ale nowa dyskietka jest tutaj http://mono.i-demo.pl/chrdraw3.atr .