kategoria: Asembler
[#1] Własna Copperlista na ekranie Intuition
Zakładam wątek jako kontynuację rozmowy z działu "Strefa gier" w bardziej odpowiednim miejscu.

Otóż opisałem tam możliwość ładowania zupełnie własnej Copperlisty na ekran Intuition, która aktywuje się gdy nasz ekran staje się widoczny.

Dzisiaj udało mi się to pomyślnie zakodować.

Nie obyło się bez problemów, które okazały się być powodowane niewłaściwymi instrukcjami generowanymi przez kompilator C. Użycie Asemblera w tych newralgicznych miejscach rozwiązało te problemy.

Ekran najlepiej otworzyć w trybie Exclusive, tak że nie współdzieli obrazu z pozostałymi ekranami.

Kod podzielony jest na dwie części: Część w C, która:
  • Otwiera ekran
  • Instaluje krótką Copperlistę użytkownika, której celem jest wywołanie przerwania Coppera
  • Alokuje sygnał
  • Instaluje obsługę przerwania Coppera, w której ładowana jest nasza zupełnie własna Copperlista (właściwie wykonuje to główny Task, który jest sygnalizowany przez to przerwanie)

Część w asemblerze, która:
  • Inicjuje copperlistę (ustawia bitplany)
  • Obsługuje przerwanie Coppera
  • Ładuje Copperlistę

Rezultatem działania programu jest ekran Intuition, który - kiedy staje się widoczny (przełączamy Amiga+N/Amiga+M) - natychmiast wyświetla zupełnie własną, customową Copperlistę. Nasza Copperlista przestaje być wyświetlana, gdy użytkownik z powrotem przełączy ekrany.

Nie ma w tym przypadku ograniczeń Copperlisty użytkownika.

W przykładzie program czeka aż 5-krotnie zostanie wyświetlony nasz ekran. Copperlista jest w przykładzie skromna: wyświetla raster z pionowymi paskami.

Do zrobienia zostało tylko wykrywanie sytuacji, kiedy nasz ekran przestaje być aktywny. Da się to zrobić również za pomocą przerwania Coppera. Oczywiście teraz przełączanie ekranów działa bez zarzutu. Ale w praktycznym zastosowaniu warto wykrywać taką sytuację, choćby by "uśpić" nasz program.

Tutaj linki do źródeł:
http://coreprogramming.pl/Materiały/CopperScreen/Test.c
http://coreprogramming.pl/Materiały/CopperScreen/Interrupt.s
[#2] Re: Własna Copperlista na ekranie Intuition

@Hexmage960, post #1

Po coś dział strefa gier powstała.
[#3] Re: Własna Copperlista na ekranie Intuition

@Hexmage960, post #1

Mógłbyś napisać jak to uruchomić co ja mam z tym zrobić jakiś plik .c i .s. Cza mieć co? ASM-One.

Mógłbyś takie proste how to zapodać?

Ostatnia aktualizacja: 29.08.2017 20:26:05 przez TechNineWonder
[#4] Re: Własna Copperlista na ekranie Intuition

@TechNineWonder, post #3

Wrzuciłem wczoraj to na Aminet, ale jeszcze nie opublikowali.

Możesz zatem ściągnąć plik wykonywalny z mojej strony internetowej:

http://coreprogramming.pl/Materiały/CopperScreen/OSCopperlist.lha
http://coreprogramming.pl/Materiały/CopperScreen/OSCopperlist.readme

Program w tej chwili prezentuje się skromnie. Ale otwiera całkiem fajne możliwości gier i dem na ekranie Intuition i być może też bardziej zaawansowanych graficznie programów.

Póki co jednemu koledze udało się skompilować mój program z tych źródeł i pomyślnie uruchomić.
[#5] Re: Własna Copperlista na ekranie Intuition

@Hexmage960, post #4

Pojawiło się już na Aminecie w katalogu dev/asm.

http://aminet.net/package/dev/asm/OSCopperlist

Jeszcze wspomnę, że do zbudowania programu używam DICE i PhxAss.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem