2,851

(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,852

(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,853

(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,854

(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,855

(16 odpowiedzi, napisanych Bałagan)

Ewentualnie tac - ale to dla ekscentryków.

2,856

(48 odpowiedzi, napisanych Fabryka - 8bit)

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

2,857

(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,858

(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,859

(23 odpowiedzi, napisanych Bałagan)

Ja też byłbym zainteresowany.

2,860

(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,861

(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,862

(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,863

(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,864

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

2,865

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Sprawdziłem fonty z tp7 borlanda (http://mono.i-demo.pl/tp7bgi.zip ).
W programiku java (http://mono.i-demo.pl/chrdraw2.jar ) uwzględniłem parametr "origin to bottom" i jego znak (jest jeszcze "origin to baseline", ale we wszystkich dotychczasowych fontach jest ustawiony na 0 - obecnie nie uwzględniam go, bo nie wiem nawet czy ma znak czy nie). W programiku atari (http://mono.i-demo.pl/chrdraw2.atr ) dałem 20k bufor na font.
Poniżej zrzuty ekranu z pc i atari.

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw2.jar BGI/BOLD.CHR 01234ajlmW
Font type: BGI
Font name:
Internal font name: BOLD
Description: Stroked Font V1.1 - Jun 5, 1989
Copyright (c) 1987,1988 Borland International

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -7
Origin to top of capital distance: 53
Character range:  (20)..?(ff)
http://mono.i-demo.pl/bold.png
http://mono.i-demo.pl/a8bold.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw2.jar BGI/EURO.CHR 01234ajlmW
Font type: BGI
Font name:
Internal font name: EURO
Description: Stroked Font V1.1 - May 17, 1989
Copyright (c) 1987,1988 Borland International

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -10
Origin to top of capital distance: 45
Character range:  (20)..?(fe)
http://mono.i-demo.pl/euro.png
http://mono.i-demo.pl/a8euro.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw2.jar BGI/GOTH.CHR 01234ajlmW
Font type: BGI
Font name:
Internal font name: GOTH
Description: Stroked Font V1.1 - Jun 5, 1989
Copyright (c) 1987,1988 Borland International

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -7
Origin to top of capital distance: 25
Character range:  (20)..?(fe)
http://mono.i-demo.pl/goth.png
http://mono.i-demo.pl/a8goth.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw2.jar BGI/LCOM.CHR 01234ajlmW
Font type: BGI
Font name:
Internal font name: LCOM
Description: Stroked Font V1.1 - Jun 5, 1989
Copyright (c) 1987,1988 Borland International

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -7
Origin to top of capital distance: 28
Character range:  (20)..?(fe)
http://mono.i-demo.pl/lcom.png
http://mono.i-demo.pl/a8lcom.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw2.jar BGI/LITT.CHR 01234ajlmW
Font type: BGI
Font name:
Internal font name: LITT
Description: Stroked Font V1.1 - Jun 5, 1989
Copyright (c) 1987,1988 Borland International

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -2
Origin to top of capital distance: 7
Character range:  (20)..?(fe)
http://mono.i-demo.pl/litt.png
http://mono.i-demo.pl/a8litt.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw2.jar BGI/SANS.CHR 01234ajlmW
Font type: BGI
Font name:
Internal font name: SANS
Description: Stroked Font V1.1 - Jun 5, 1989
Copyright (c) 1987,1988 Borland International

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -7
Origin to top of capital distance: 25
Character range: (01)..?(fe)
http://mono.i-demo.pl/sans.png
http://mono.i-demo.pl/a8sans.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw2.jar BGI/SCRI.CHR 01234ajlmW
Font type: BGI
Font name:
Internal font name: SCRI
Description: Stroked Font V1.1 - Jun 5, 1989
Copyright (c) 1987,1988 Borland International

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -12
Origin to top of capital distance: 25
Character range:  (20)..?(fe)
http://mono.i-demo.pl/scri.png
http://mono.i-demo.pl/a8scri.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw2.jar BGI/SIMP.CHR 01234ajlmW
Font type: BGI
Font name:
Internal font name: SIMP
Description: Stroked Font V1.1 - Jun 5, 1989
Copyright (c) 1987,1988 Borland International

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -7
Origin to top of capital distance: 28
Character range:  (20)..?(fe)
http://mono.i-demo.pl/simp.png
http://mono.i-demo.pl/a8simp.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw2.jar BGI/TRIP.CHR 01234ajlmW
Font type: BGI
Font name:
Internal font name: TRIP
Description: Stroked Font V1.1 - Jun 5, 1989
Copyright (c) 1987,1988 Borland International

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -7
Origin to top of capital distance: 24
Character range:  (20)..?(fe)
http://mono.i-demo.pl/trip.png
http://mono.i-demo.pl/a8trip.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw2.jar BGI/TSCR.CHR 01234ajlmW
Font type: BGI
Font name: 
Internal font name: TSCR
Description: Stroked Font V1.1 - Aug 3, 1989
Copyright (c) 1987,1988 Borland International

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: -7
Origin to top of capital distance: 24
Character range:  (20)..?(fe)
http://mono.i-demo.pl/tscr.png
http://mono.i-demo.pl/a8tscr.png

Źródła są w http://mono.i-demo.pl/chrdraw2-src.zip (java) oraz w http://mono.i-demo.pl/chrdraw2.asx (atari).

2,866

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Programik dla atari można pobrać z http://mono.i-demo.pl/chrdraw.atr .
Odpala się to za pomocą CHRDRAW.COM - program sam zaczytuje sobie plik FONT.CHR, więc zmieniając nazwę/kopiując którąś czcionkę w miejsce tegoż pliku można sprawdzić jak się toto wyświetla.
Poniżej kolejne shoty.

LCDL.CHR
http://mono.i-demo.pl/a8lcdl.png

LCDN.CHR
http://mono.i-demo.pl/a8lcdn.png

LCLE.CHR
http://mono.i-demo.pl/a8lcle.png

LCNE.CHR
http://mono.i-demo.pl/a8lcne.png

Źródło dostępne jest w http://mono.i-demo.pl/chrdraw.asx (i include z io z http://mono.i-demo.pl/atari.asm ).
Program jest bardzo prosty i nie sprawdza różnych warunków a tym bardziej czy plik .CHR to faktycznie plik z czcionką.
Kompilacja za pomocą mads 1.8.4.

2,867

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Dziwnie działa wotsit.org. Zaktualizowałem linka w poście, ale nie wiem, czy za jakiś czas znów nie przestanie działać. Można po prostu wejść na http://www.wotsit.org i poszukać "chr". Wsadziłem też dokument tutaj: http://mono.i-demo.pl/chr.txt (a borlandowe lcdfonts tutaj http://mono.i-demo.pl/lcdfonts.zip ).
A kod? Cóż - kod, jaki jest każdy widzi :) Mój ci on. Dziękuję, aczkolwiek niezasłużenie, bo projekt choć mały to też mógłby być ładniej napisany.

2,868

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Poniżej shoty z działania programiku. Wersja na atari się będzie robić.

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw.jar LCDL.CHR 0123456789
Font type: LCD
Font name:
Internal font name: LCDL
Description: Large Font v1 - Jul 22, 1994   
Copyright 1994 Pino Navato                   

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: 0
Origin to top of capital distance: 32
Character range: 0(30)..9(39)
http://mono.i-demo.pl/lcdl.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw.jar LCDN.CHR 0123456789
Font type: LCD
Font name:
Internal font name: LCDN
Description: Narrow Font v1 - Jul 22, 1994   
Copyright 1994 Pino Navato                   

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: 0
Origin to top of capital distance: 20
Character range: 0(30)..9(39)
http://mono.i-demo.pl/lcdn.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw.jar LCLE.CHR 0123456789
Font type: LCd
Font name:
Internal font name: LCLE
Description: Large Font with empty segments v1 - Jul 22, 1994
Copyright 1994 Pino Navato   

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: 0
Origin to top of capital distance: 32
Character range: 0(30)..9(39)
http://mono.i-demo.pl/lcle.png

jerzyk@ox:~/workspace/chrdraw$ java -jar chrdraw.jar LCNE.CHR 0123456789
Font type: LCD
Font name:
Internal font name: LCNE
Description: Narrow Font with empty segments v1 - Jul 22, 1994
Copyright 1994 Pino Navato 

Driver version: 1.0
Scan flag: 0
Signature: +
Origin to baseline distance: 0
Origin to bottom descender distance: 0
Origin to top of capital distance: 20
Character range: 0(30)..9(39)
http://mono.i-demo.pl/lcne.png

2,869

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Bardzo prosto.
Ściągnąć (wymagana java5 i środowisko graficzne) http://mono.i-demo.pl/chrdraw.jar i odpalić na pc za pomocą:
$ java -jar chrdraw.jar plik.chr tekst
W tym wypadku tekst powinien być "0123456789", bo font definiuje tylko cyfry.

Niewykluczone, że w formacie jest zapisany indeks defaultowego glypha, którego należy użyć gdy rysowany znak nie jest zdefiniowany w foncie (może jest np. na pozycji $8f lub $83).

A właśnie - czy ktoś wie co to może być "DO SCAN" (jest też jakaś flaga "scan flag" na pozycji $87)? Aktualnie ignoruję ten opcode podczas rysowania.
Żródła programiku (gdyby ktoś chciał) są w http://mono.i-demo.pl/chrdraw-src.zip .

2,870

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Specyfikacja .CHR jest tutaj http://www.wotsit.org/download.asp?f=ch … =292772430 ,
a przykładowy font z Borlanda tutaj http://digilander.libero.it/pnavato/zip/lcdfonts.zip .

2,871

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Wielkie dzięki.
A czy w jakichś XLEnt processorach nie było wektorowych czcionek? Kilka programów do dtp było zdaje się na małe A (jakiś "print shop" czy coś  takiego)...

2,872

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Czy są jakieś formaty fontów wektorowych dla atari xl/xe? Czy to da się wykorzystać czy trzeba sobie samemu przetworzyć? A może coś z większych maszyn da się używać (może jakieś tex'owe formaty są wystarczająco strawne)?
Chciałem się zabawić w malowanie wektorowych fontów w xl/xe hires więc pierwszym kryterium byłaby taka postać, żeby można było to łatwo wymalować. Drugim kryterium jest dostępność takich fontów (albo łatwość konwersji np. z ttf, opentype, czy tex'a).

2,873

(4 odpowiedzi, napisanych Bałagan)

Ładnej(-ych) miss mokrego podkoszulka w poniedziałek życzę.

2,874

(7 odpowiedzi, napisanych Programowanie - 8 bit)

@marok: rzeczywiście - wyszedłem z założenia, że 3 przesunięcia będą szybsze, a nie policzyłem :)
Problemu chyba nie ma bo realizujemy funkcję if cond shadow=true a więc nie wiadomo co ma być w shadow wpp. Jeśli wiadomo, to Twoja procedura jest lepsza.

2,875

(7 odpowiedzi, napisanych Programowanie - 8 bit)

if (Map[x+y*MAP_SIZE_X]==TILE_WALL)
      shadow=TRUE;
.A=y, .Y=x, .X=TILEWALL=0|1, MAPSIZE=32, shadow=0|1, adr=2 bajty zpg

  lsr @
  ror adr
  lsr @
  ror adr
  lsr @
  ror adr
  pha
  lda adr
  and #%11100000
  clc
  adc #<Map
  sta adr
  pla
  adc #>Map
  sta adr+1
  txa
  eor (adr),y
  bne exit
  lda #1
  sta shadow
exit equ *

gdy stablicujesz sobie y wtedy:
.X=y, .Y=x, .A=TILEWALL=0|1, MAPSIZE=32, shadow=0|1, adr=2 bajty zpg

  pha
  lda ltab,x
  sta adr
  lda htab,x
  sta adr+1
  pla
  eor (adr),y
  bne exit
  lda #1
  sta shadow
exit equ *

jeśli zaś tablica mogłaby być na stronie zerowej cała w fromacie lsb, msb, lsb, msb... wtedy:
.A=y=[0..127], .Y=x, .X=TILEWALL=0|1, MAPSIZE=32, shadow=0|1

  
  asl @
  adc #Tab
  sta code+1
  txa
code equ *
  eor (adr),y
  bne exit
  lda #1
  sta shadow
exit equ *

jeśli TILEWALL ma być stałe to:
.A=y=[0..127], .Y=x, TILEWALL=1, MAPSIZE=32, shadow=0|1

  
  asl @
  adc #Tab
  sta code+1
code equ *
  lda (adr),y
  beq exit
  sta shadow
exit equ *

pytanie czy da się swobodnie manipulować przypisaniem zmiennych do rejestrów i umieścić tablicę na stronie zerowej?