W nawiązaniu do rozwijającego się tematu kodowania poproszę o kilka wskazówek dot. zakodowania płynącego scrolla. Na razie taki prosty, z literkami "systemowymi". Od czego zacząć. Chiałbym zrobić to w Quick Assemblerze (inne pomysły ?). Z 6502 jestem zielony, mapy pamięci nie znam. Chodzi mi bardziej o wskazówki niż o gotowy przepis. Ma co dzień programuję ale posługuję się współczesnymi językami programowania.
Może urodzi się z tego interko 256b ;-)
Dzięks.

STYMulator JIL ST YM2149 mjuz:k @ gnu/linux
SIUP (SIo2Usb2Pc) - SIO2PC USB Edition
PIN ready logo
3M / InD: ... na kasetach były zabezpieczenia w postaci tzw. "mikropierdnięcie" ...

2

Może http://tajemnice.atari8.info/ i seria piszemy demo beda pomocne ;)

3

reasumując wcześniejszy wątek o scenie i kontekst posta powyższego: lol:)

gep/lamers^dial

4 Ostatnio edytowany przez macgyver (2007-09-05 18:55:22)

grzeniu:

1) poczytaj najpierw o:

a) Display Liscie - szczególnie zwróć uwagę na bit przesuwu poziomego oraz o trybach 2,3,6,7 Antica (jeżeli ma to być scroll na fontach systemowych)
b) Zapoznaj się ze sposobem interpretacji fontów w trybach tekstowych - interpretacja w pamięci znaku widzianego na ekranie
c) Poczytaj o zastosowaniu i użyciu rejestru sprzętowego HSCROLL (rejestr ANTIC-a)

w.w. rzeczy znajdziesz na Atariki, a zdobyte informacje wskażą Ci mechanizmy, których musisz użyć do stworzenia scrolla od strony sprzętowej (do wykorzystania praktycznie w dowolnym języku programowania).

2) Jeżeli natomiast chcesz nauczyć się asemblera 6502 to musisz zacząć od podstaw - każdy ma tutaj pewnie "własną ścieżkę poznawczą" w tej kwestii - ja uczyłem się z książki "Atari BASIC" Wiesława Miguta... tak... to nie pomyłka... na końcu tej książki znajduje się kurs języka maszynowego, który wspaniale tłumaczy i przedstawia na prostych przykładach programowanie w języku maszynowym na Atari.

3) Jeżeli zaś chodzi o narzędzie kompilujące, to czy będzie to Quick Assembler, QASM, MADS, XASM, ZOOEY czy cokolwiek innego, to musisz zagłębić się w dokumentacje do w.w. narzędzia.

5

http://atariki.krap.pl/index.php/ANTIC_Display_List
http://atariki.krap.pl/index.php/Rejestry_ANTIC-a

Bit 4 rozkazu DL to przesuw poziomy, A rejestr $D404 (W) HSCROL pozwala na ustawienie przesuwu w poziomie w zakresie (z tego co pamiętam) 0-15. Więc jak przesuwasz, to jak zejdzesz od 15 do 0, to musisz przesunąć adres danych linii w DL o 4 i powinno być płynnie :)

6 Ostatnio edytowany przez eru (2007-09-05 19:03:55)

A tu rach-ciach zakodowany scrol, z objasnieniami

prog    equ $2000
text    equ $2100

    org prog

    lda <dl            ; zainicjuj DL
    sta $230
    lda >dl
    sta $231
    

loop                ; petla co ramke
    lda 20
wait
    cmp 20
    beq wait
    
    ldx hscrol        ; pobierz stara wartosc hscrol
    bne cont
next_char
    inc text_adr    ; przesun tekst
    ldx #4            ; nowy hscrol
cont
    dex
    stx hscrol        ; zapamietaj nowa wartosc hscrol
    stx $d404        ; i zapisz do rejestru 
    
    jmp loop

hscrol    dta 3

dl
    dta $70,$70,$70,$70,$70,$70
text_adr equ *+1
    dta $52,a(text)    ; wazne - bit 4 ($10) musi byc zapalony
    dta $41,a(dl)
    
    org text
    dta d"                          A tutaj leci "
    dta d"tekst, ktory chcemy skrolowac. "
    dta d"Ten tekst sie zapetla co 256 znakow, "
    dta d"i widac wtedy bardzo brzydkie rzeczy, "
    dta d"jesli sie nie zadba np o zrobienie spacji "
    dta d"na koncu i poczatku. "
    dta d"Jak jeszcze troche popisze, "
    dta d"to na pewno uda sie ten efekt wywolac... "

Podstawowe rozszerzenia skrola:
- dwubuforowanie skrola, potrzebne np przy skrolach graficznych
- skrol w trybie graficznym, gdzie trzeba konwertować font do bitmapy

: 404. Stopka not found

7

Mac - uważam, że publikacja p. Wiesława Miguta nie jest najlepszą pozycją jeśli chodzi o naukę kodowania. Kiedyś próbowałem - i nic mi to nie dało. Są owszem, ogólnikowe informacje tytułem wstępu, a później jedynie lista rozkazów i tryby adresowania. I tyle :) - dla kogoś, kto zaczyna - jest to zdecydowanie za mało. (i wcale nie ma tam przykładów rozpisanych mnemonikami, są - lecz w postaci /data/)

Kontakt: pin@usdk.pl

8

Pin: zauważ co napisałem:

macgyver napisał/a:

(...)
Jeżeli natomiast chcesz nauczyć się asemblera 6502 to musisz zacząć od podstaw - każdy ma tutaj pewnie "własną ścieżkę poznawczą" w tej kwestii - ja uczyłem się z książki "Atari BASIC" Wiesława Miguta... tak... to nie pomyłka... na końcu tej książki znajduje się kurs języka maszynowego, który wspaniale tłumaczy i przedstawia na prostych przykładach programowanie w języku maszynowym na Atari.
(...)

Nie twierdzę, że to "jedyna słuszna metoda" - znam jeden przypadek, w którym okazała się skuteczna -> taka była "moja droga", mi wystarczyła, udało mi sie zrobić w życiu parę scrolli :lol:

Jest jeszcze sporo osób na tym forum, które znają  asembler 6502 - może ich metoda "autoedukacji" bardziej przypadnie Ci do gustu, powodzenia ;)

9

moja byla dosyc popularna - tajemnice atari

10

eru, thx za code :) nawet dalo sie skompilowac madsem. ponadto w madsie znalazlem przyklad sinus-scrolla. pierwszy raz uzylem, zadzialalo (przynajmniej sie nie zniechecilem) i podoba sie :D

STYMulator JIL ST YM2149 mjuz:k @ gnu/linux
SIUP (SIo2Usb2Pc) - SIO2PC USB Edition
PIN ready logo
3M / InD: ... na kasetach były zabezpieczenia w postaci tzw. "mikropierdnięcie" ...