1

Temat: Atari co i jak?

Od wczoraj wyrywam sobie włosy z głowy bo zachciało mi się przy okazji tworzenia środowiska pod 68k dla amigi z użyciem Vasm'a spróbować coś pod ST.
Nie mam siły otwierać wszystki drzwi pokolei od nowa więc mam parę pytań.
Generalnie assembler 68k znam (przynajmniej sobie zaczynam przypominać), mapę pamięci posiadam z organizacją ekranu się zapoznałem (sic!), muzyka to dla mnie czarna magia była jest i będzię ale od tego są playery.
Na tą chwilę mam scrolla, muze chipową odgrywam do tego jeszcze chciałem jakiś obrazek wstawić poniżej.
Z tego co się zorientowałem to używa się przerwań do przeładowania rejestrów żeby podzielić ekran.
Czy nie ma jakiegoś bardziej "cywilizowanego" sposobu? Rozumiem że nie ma nic na podobieństwo Dlist czy Copperlist?
Oprócz tego czy jest jakiś VCOUNT? Żebym mógł odczytać w jakiej lini się znajduję?
Mam muzę do której skaczę "bsr init" a potem na Vblk$70  "bsr play" ale jak zrobić samemu takie chiptuny z playerką.
Nie mogę znaleźć źródeł do playerek modów tak jak an amidze.
Czy jest wogóle sens pisanie czegokolwiek pod gołe ST czy to olać i trzymać się STE.
Linki z tego forum i wielu innych poprzeglądałem ale DNS.NU nie dział Bus-error zaczął przed chwilą a ogólnie w necie połowa linków z googla nie działa.
Więc za wszelkie linki do toolsów crossowych byłbym bardzo wdzięczny.
Będę pytał na bieżąco... :) uffff

ps. Serio tylko 16kolorów? Zawsze mi się wydawało że jest tego trochę więcej.

Odp: Atari co i jak?

Dzielenia ekranu (jesli dobrze rozumiem to co chcesz zrobic) na ST(E) nie zrobisz, bo adres poczatku pamieci ekranu jest pobierany z rejestru raz na ramke na samym poczatku.

Vcounta jako takiego nie ma, ale mozaes go sobie zrobic np. przerwaniem HBL. Z tym ze HBL jest wywolywany 313 razy (w ST-LOW i ST-MID) na ramke, bo jest wywolywany dla wszystkich linii ekranu, a nie tylko 200 z ktorych normalnie mozesz korzystac.

Masz za to co innego niz Vcount. Na ST mozesz sie zsynchronizowac dokladnie z plamka (rejstry sa pod $FF8201 i dalej)

Dhs.nu chwilowo nie dziala (bo im akurat raid padl), powinno dzialac wktrotce. Tam znajdziesz wszystkie playery, toole itp.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

3

Odp: Atari co i jak?

Eagle napisał/a:

[...]Czy jest wogóle sens pisanie czegokolwiek pod gołe ST czy to olać i trzymać się STE.[...]

Z punktu widzenia odbiorcy: sens pisana na gołe ST pewnie jest, na pewno są tacy co (nie licząc emulatora) mają tylko ST(F/FM), ale też wielu chętnie powita produkcje wykorzystujące pełne możliwości STE.
Jakby soft wykrywał na czym go uruchomiono i włączał/wyłączał odpowiednie ficzery byłoby idealnie, ale nie wiem ile z tym roboty.

--== Kup Pan/i dyskietkę - jedyna taka oferta w całym InterNetCie - http://www.atari.org.pl/forum/viewtopic.php?id=18887 ==--

<-- Kontakt przez "E-mail" albowiem moja skrzynka "PW" jest pełna i zaprawdę nie mam czego usunąć.

4

Odp: Atari co i jak?

Eagle,

skoro używasz VASM to zadanie masz ułatwione b okompiluje on również kod na ST.

Takich paramaetrów używam dla ST/STE:
- vasmm68k_mot.exe -nocase -devpac -m68000 -no-opt -Ftos -o WYNIK.TOS ZRODLO.S

A takich dla TT/Falcon:
- vasmm68k_mot.exe -nocase -devpac -m68030 -m68882 -no-opt -Ftos -o WYNIK.TOS ZRODLO.S


Jeśli chodzi o playery to poczekaj aż wróci DHS.nu, bo są tam źródła i przykłady użycia różnych playerów.
Jakby co to tutaj znajdziesz player MODów - Lance 12.5 / 25 / 50 KHz routine for STE:
http://www.atari-forum.com/viewtopic.ph … mp;t=24718


Tak jak Adam wspomniał ST nie ma licznika VCOUNT, ma za to przerwanie:
- HBL - wywoływane 313 razy na ramkę;
- Timer B (MFP) - które możesz wywołać w dowolnej linii widzialnej (jednej z 200, lub 276 w przypadku overscan);

Tak jak Adam wspomniał w ST nie da się podzielić ekran, za to w STE/TT/Falcon już można przy pomocy rejestrów "Video screen memory position". Podział ekranu na ogół robi się na przerwaniu Timer B.
Poniżej jest fragment mapy pamięci ST dla Video:

-------+-----+-----------------------------------------------------+----------
##############SHIFTER Video Controller                             ###########
-------+-----+-----------------------------------------------------+----------
$FF8201|byte |Video screen memory position (High byte)             |R/W
$FF8203|byte |Video screen memory position (Mid byte)              |R/W
$FF820D|byte |Video screen memory position (Low byte)              |R/W  (STe)
$FF8205|byte |Video address pointer (High byte)                    |R
$FF8207|byte |Video address pointer (Mid byte)                     |R
$FF8209|byte |Video address pointer (Low byte)                     |R
$FF820E|word |Offset to next line                                  |R/W (F030)
$FF820F|byte |Width of a scanline (width in words-1)               |R/W  (STe)
$FF8210|word |Width of a scanline (width in words)                 |R/W (F030)
$FF8265|byte |Horizontal scroll register (0-15)                    |R/W  (STe)
       |     |Note: write address from high toward low byte        |


Co do kolorów, Amiga ma 32 rejestry kolorów, ST 16. Więcej kolorów uzyskuje się tą samą metodą - podmiany zawartości rejestrów kolorów, przy pomocy procesora, Cooper(tylko Amiga) i blitter (tylko Atari).
Na ST jest player filmów w 4096 kolorach: http://forum.8bitchip.info/software-17/ … 5/#msg1171

Warto zapoznać się z Mapą Pamięci:
http://deunstg.free.fr/sct1/hardware.htm

[Programming] --> STE Documentation:
http://atari-ste.anvil-soft.com/html/devdocu1.htm

Atari Wiki
http://www.atari-forum.com/wiki/index.p … and_Falcon




Super źródłem informacji o programowaniu (oprócz oczywiście dhs.nu) jest Atari-Forum, gdzie siedzą naprawdę nieźli koderzy:
http://www.atari-forum.com/viewforum.php?f=68

Oczywiście możesz pytać też tutaj :)

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

5

Odp: Atari co i jak?

Dzięki za odpowiedzi.
Vasma właśnie używam w taki sposób jak napisałeś i ładnie mi sie uruchamia potem pod Hatari.
atari-forum już przejrzałem z góry na dół teraz muszę sobie chyba odetchnąć z dwa dni bo za dużo naraz chciałem przyswoić.....
Co do mapy pamięci to mam F30_regs.txt i tam wszystko jest.
Powoli to przyswajam ale opisy rejestrów są bardzo skąpe.
Co do dzielenia ekranu to właśnie spotkałem się z metodą timerB ale nie przepadam za tego typu rozwiązaniami ale cóż.
BTW jest jakiś WSYNC czy coś? Czy muszę się z plamką ścigać? :)

6

Odp: Atari co i jak?

ST ma przerwanie VBL pod adresem $70:

$000070|Level 4 Int Autovector (VBL)                                    |SD

Z tym że problem z przerwaniami w 68000 (niezależnie od platformy) jest taki że występuje tzw:
- Jitter - opóźnienie 4-16 cykli - ze względu na charakterystykę zegara E signal;
- Opóźnienie - długie instrukcje mogą opóźnić przerwanie o kilkanaście-kilkaset cykli;

Jeśli więc potrzebujesz dokładnie zsynchronizować procesor z plamką to robi się to poniższym kodem, raz na ramkę:

    lea    $ffff8209.w,a1

sync
    move.b    (a1),d0
    beq.b    sync
    not.b    d0
    lsl.b    d0,d0

swoją drogą to nie ma nic lepszego niż ściganie się z plamką :)

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

Odp: Atari co i jak?

Vsync tez sie na przerwaniach robi.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

8

Odp: Atari co i jak?

Adam, oczywiście:

Cyprian napisał/a:

ST ma przerwanie VBL pod adresem $70:

$000070|Level 4 Int Autovector (VBL)                                    |SD

Ostatnio edytowany przez Cyprian (2013-03-19 15:15:25)

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

9

Odp: Atari co i jak?

Cyprian napisał/a:

ST ma przerwanie VBL pod adresem $70:

$000070|Level 4 Int Autovector (VBL)                                    |SD

Z tym że problem z przerwaniami w 68000 (niezależnie od platformy) jest taki że występuje tzw:
- Jitter - opóźnienie 4-16 cykli - ze względu na charakterystykę zegara E signal;
- Opóźnienie - długie instrukcje mogą opóźnić przerwanie o kilkanaście-kilkaset cykli;

Jeśli więc potrzebujesz dokładnie zsynchronizować procesor z plamką to robi się to poniższym kodem, raz na ramkę:

    lea    $ffff8209.w,a1

sync
    move.b    (a1),d0
    beq.b    sync
    not.b    d0
    lsl.b    d0,d0

swoją drogą to nie ma nic lepszego niż ściganie się z plamką :)


Skoro to temat co i jak. Mógłby ktoś wyjaśnić ten kawałek kodu ?
Z ST i 68000 nie miałem nigdy nic wspólnego (naprawdę) a z czystej ciekawości chciałbym wiedzieć jak to działa.

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

10

Odp: Atari co i jak?

"Na początku do rejestru D0 ładowana jest wartość najmłodszego bajtu adresu ekranu. Bajt ten zawiera dokładnie określoną pozycję promienia elektronów w linii. Program czeka aż rozpocznie się wyświetlanie obrazu. Rejestr D0 jest następnie negowany i wykonuje się rozkaz LSL. Jak wiadomo LSL zajmuje 8+2*n cykli zegarowych procesora, gdzie n jest liczbą zawartą w D0. Oznacza to, że rozkaz ten potrzebuje tym więcej cykli im większa jest wartość rejestru D0. I to jest właśnie to czego na potrzeba ( czyli wszystkie rozkazy następujące po tym kodzie będą wykonywane w tym samym miejscu przerwania )"
Atari Magazyn 1-2 1994 :)

11

Odp: Atari co i jak?

Dzięki. W sumie miałem bardzo podobny fragment kodu w swoim programie ale do końca nie kumałem o co w tym chodzi.
Teraz nastała jasność :)
Mam jeszcze pytanko.
Vasm nie toleruje mi takiego zapisu:

lea       $8240.w,a1

Muszę dokładać FFFF. Jeśli chodzi o mój kod to nie mam z tym problemu ale jak próbuję zasemblować jakieś inne źródła to muszę połowe kodu poprawiać.
Da się to jakoś ominąć?

12

Odp: Atari co i jak?

Wystarczy, że dodasz FF, zawsze to mniej klikania http://desmond.imageshack.us/Himg35/scaled.php?server=35&amp;filename=22736696.gif&amp;res=landing

13

Odp: Atari co i jak?

 error 2033: absolute short address out of range
>                move.w    #$00,$ff8240.w 

Myślisz że nie próbowałem? :D

14

Odp: Atari co i jak?

O, to vasm jakiś podły jest :)

15

Odp: Atari co i jak?

Dziękuję :)

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

16

Odp: Atari co i jak?

jury napisał/a:

O, to vasm jakiś podły jest :)

Nie jest podły tylko poprawny.

What can be asserted without proof can be dismissed without proof.

17

Odp: Atari co i jak?

Ręce mi opadają :) ufffff
Ale to chyba tak zawsze musi być na początku, pod górkę.
Jak by się komuś chciało sprawdzić na realu.
Na razie logo mi skacze przy splitowaniu ekranu ale zaczynam chyba chwytać o co chodzi z tym Timerem B ;)
Tylko część kodu będę musiał przerobić.

Post's attachments

eagle.prg 96.43 kb, liczba pobrań: 17 (od 2013-03-20) 

Tylko zalogowani mogą pobierać załączniki.

18

Odp: Atari co i jak?

Prawdziwy oldskool. Kto jest autorem treści scrolla ?

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

19

Odp: Atari co i jak?

Cyceron?
http://pl.wikipedia.org/wiki/Lorem_ipsum

edit:
Logo moje stare z Amigi ;)
http://hol.abime.net/hol_search.php?&am … eloper=892

Ostatnio edytowany przez Eagle (2013-03-20 20:26:00)

20

Odp: Atari co i jak?

A mjuzik ? Znane lecz nie mogę załapać. Hippel ? Tylko z czego ripnięte ?

Za chwilę odkryjesz wyświetlanie grafiki w lower border, potem zapodasz sync-scroller ... zrobisz stereło na ste no i wystawisz ultra intro na najbliższym party zajmując 1-sze miejsce ;)

Ostatnio edytowany przez grzeniu (2013-03-20 20:43:15)

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

21

Odp: Atari co i jak?

To ze źródeł ingrama. Mam muzyczkę z goldrunera ale chodzi jakby 2 razy wolniej.
Moda chciałem odtworzyć ale ten player z atari-forum powoduje że jest to gorszej jakości niż na małym atari.
Pewnie coś źle robię :) Wszystko przyjdzie z czasem.

22

Odp: Atari co i jak?

Eagle napisał/a:

Ręce mi opadają :) ufffff
Ale to chyba tak zawsze musi być na początku, pod górkę.
Jak by się komuś chciało sprawdzić na realu.
Na razie logo mi skacze przy splitowaniu ekranu ale zaczynam chyba chwytać o co chodzi z tym Timerem B ;)
Tylko część kodu będę musiał przerobić.

fajnie się to zapowiada, co to będzie?

co do skaczącego logo, z tego co widzę to nie wyłączyłeś przerwania TimerC. System używa tego do obsługi myszy/klawiatury i twardego dysku (TOS >= 2.05). Być może to przerwanie co jakiś czas koliduje z TimerB

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

23

Odp: Atari co i jak?

Eagle, tutaj jest bardzo pouczający artek (fullscreen, borders...): http://dss.in.tum.de/files/brandt-resea … screen.txt

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

24

Odp: Atari co i jak?

Ten sam artykuł, tyle, że po polsku, jest właśnie w Atari Magazynie 1-2 z 1994 z którego powyżej jest zacytowany kawałek wyjaśniający działanie "pętli synchronizującej"

Ostatnio edytowany przez jury (2013-03-21 07:56:54)

25

Odp: Atari co i jak?

Swoje już wiem..... ufffff
Muszę szybko się w debugera uzbroić bo czasami kręciłem się jak g.... w wentylatorze.
Do tego te luki w mojej pamięci co do mnemoników 68k, nie wspominając się ile czasu straciłem z powodu pomieszania byte z word lub long word.
Ale to musi wrócić z czasem, a ile razy pisałem mnemoniki 6502 :D i dziwota że coś nie tak.
Pozdrowienia dla magika od joysticka, 2 godziny z życia wycięte :) przerwań im się cholera zachciało zamiast jakoś po ludzku.
Przeczytałem w mapie pamięci że jest rejestr to go czytam a on nic, jakbym miał flacona to by działało bo to jego rejestr był :D
Nie wiedziałem że rozszerzenie muzyki *.ym jest rozszerzeniem które muszę rozpakowywać winrarem żeby wydobyć z niego już prawidłowy *.ym który mogę już jakoś odtwarzać.
A zresztą nie ma co narzekać na rozgrzewkę skleciłem to na dwa dżoje.
Nie ma score ani żadnych ficzerów bo zaraz jakiś portal by ogłosił że nowa gra na ST.
Ja muszę troszkę odpocząć....

Ostatnio edytowany przez Eagle (2013-03-22 19:38:53)

Post's attachments

test.prg 61.1 kb, liczba pobrań: 7 (od 2013-03-22) 

Tylko zalogowani mogą pobierać załączniki.