atarionline.pl Niezwykłe 2 bajty - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1:
         
        CommentAuthortdc
      • CommentTime25 May 2013 02:05 zmieniony
       
      Mam dla Was ciekawe wyzwanie. Kiedyś na pewnym forum dyskutowałem sobie z pewnym programistą o możliwościach drastycznie minimalistycznego programowania. Przykładowo na demoscenie znane są kategorie 4k czy 256 bajtów, ja jednak mam dla Was coś innego.

      Wyzwanie jest proste:

      Znajdź dwa takie bajty Atari, które po zmodyfikowaniu (ustalonymi wartościami) zaprezentują najciekawszy efekt.

      To ciekawe bo w 2 bajtach to trudno mówić o programie;) Niemniej czekam na Wasze pomysły, w końcu Atari "jest jak z gąbki wiele da się z niego wycisnąć" jak mawiał nasz wieszcz;)

      Ja prezentuję Wam pierwszy prosty przykład o co mi chodzi, modyfikacja tylko jednego bajtu:

      POKE 77,128


      To proste i dobrze znane, choć spełnia założenia bo jest absolutnie minimalistyczne, a w efekcie generuje długie coraz to inne rezultaty (niemal jak efekt z demka - i o to mi chodzi!)

      Jednak możliwości przecież są znacznie większe. Przykładowo można spróbować zmodyfikować jakiś adres na stosie procesora, jakiś rejestr. Ciekawą drogą może też być wymuszenie wykonania jakiejś procedury zawartej w ROM.

      Co Wy na to?
      • 2:
         
        CommentAuthortdc
      • CommentTime25 May 2013 02:05 zmieniony
       
      I kolejny przykład modyfikujący tylko jeden bajt:

      POKE 39971,0

      (trzeba to wykonać w Atari Basicu, bo w innych może nie zadziałać)

      Efekt znacznie gorszy:P ale dość że tak to ujmę dynamiczny ;)
      • 3: CommentAuthors2325
      • CommentTime25 May 2013 02:05
       
      Jeśli ktoś ciekaw efektów - pierwsze podane poke zmienia (losowo) kolory Basica, drugi to migający scroll śmieci plus wprowadzony wcześniej tekst.
      • 4:
         
        CommentAuthortdc
      • CommentTime25 May 2013 03:05
       
      "migający scroll śmieci" nie brzmi może zbyt interesująco, ale cóż więcej można się spodziewać po zmianie jednego bajtu, zmiana dwóch bajtów daje znacznie większe możliwości.

      Jednak ciekawy jest mechanizm, który odpowiada za powstanie takiego efektu migających śmieci - wiesz jak to się dzieje?;)
      • 5: CommentAuthors2325
      • CommentTime25 May 2013 03:05 zmieniony
       
      Nie wiem, napisałem co widzę, a nie co się dzieje. Byłem graczem, który tylko przeklepywał listingi bez analizowania ich. Więcej pcheł:






      • 6:
         
        CommentAuthortdc
      • CommentTime25 May 2013 05:05
       
      Nie no wiesz 256 bajtów to jest wręcz armata przy moich 2 bajtach;):)


      A co do efektu to usuwany jest procesorowi graficznemu adres startowy, a to nie powinno nigdy nastąpić. Dlatego cały widoczny efekt jest zasługą tego jak reaguje na to ANTIC, a reaguje dość "głośno" he he;)
      • 7: CommentAuthor0xF
      • CommentTime25 May 2013 08:05
       
      Czyli nie chodzi o 2 bajty tylko o dwa POKE. Jako program to będzie kilkanaście bajtow.
      • 8:
         
        CommentAuthorwilly
      • CommentTime25 May 2013 08:05
       
      A czy po modyfikacji tych 2 bajtow wchodzi w gre wcisniecie jakiegos dodatkoego klawisza ?
      Czy tylko 2x Poke wchodzi w grę?
      • 9: CommentAuthorgorgh
      • CommentTime25 May 2013 10:05
       

      tdc:

      Nie no wiesz 256 bajtów to jest wręcz armata przy moich 2 bajtach

      nie trywializowałbym kategorii 256 b. Spróbuj to zobaczysz, silly venture czeka
      • 10: CommentAuthorgorgh
      • CommentTime25 May 2013 13:05
       
      tdc: po pierwsze zeby uzyskac twoj efekt musisz najpierw stworzyć ekran, dołączyć interpreter basica- to wychodzi grubo kilka kilobajtów. Jeżeli chcesz uzyskac to w asm musisz stworzyc naglowek pliku, zrobic display liste (wiekszosc 256 tak robi) dodac petle nieskonczona aby program sie nie zawiesil, bedzie jakies kilkadziesiat bajtow man
      • 11: CommentAuthorgorgh
      • CommentTime25 May 2013 13:05 zmieniony
       
      była to z twojej strony nieprzyjemna insynuacja tak na marginesie, zarobiles u mnie minusa
      • 12: CommentAuthorBluki
      • CommentTime25 May 2013 15:05
       
      Nie wiem, czy te "nanoprogramy" (?) spełniają wymogi formalne, ale proszę bardzo:

      1 POKE 40043,53
      2 POKE 40044,80

      To działa tylko w Atari BASIC-u. Przed uruchomieniem (lub wpisaniem w trybie bezpośrednim) wskazane jest wykonać GRAPHICS 0.

      U=USR(58481)

      SELF TEST? Nic prostszego!

      U=USR(58487)

      Zimny start, to też proste...

      1 POKE 710,PEEK(20)/16
      2 POKE 712,PEEK(20)
      3 GOTO 1


      1 POKE 710,16*INT(PEEK(20)/16)
      2 POKE 712,255-PEEK(20)
      3 GOTO 1
      • 13:
         
        CommentAuthorwilly
      • CommentTime25 May 2013 18:05
       
      POKE 755,255


      POKE 561,192


      I można to mnożyć w nieskończoność niemal ....
      • 14:
         
        CommentAuthorMaW
      • CommentTime25 May 2013 20:05 zmieniony
       
      Moją ulubioną komórką jest 756 (zmiana zestawu znaków) i 623 (tryby GTIA, priorytety PMG) :-)

      //EDIT: Zapomniałbym o POKE 559,0, które daje +30% mocy ;-)
      //EDIT: no i jeszcze 559,33 - wąski ekran, 559,35 - szeroki ekran
      • 15: CommentAuthorxxl
      • CommentTime25 May 2013 21:05
       
      POKE 622,1
      GR.0

      wlaczy finescroll. wylistuj swoj program albo "zjedz" kursorem ponizej ekranu.
      • 16:
         
        CommentAuthorwilly
      • CommentTime25 May 2013 22:05
       
      Przypadkiem udało mi się prostą "animację" uruchomić.
      Przynajmniej na altirze to działa:
      RESET
      POKE 88,0:POKE 89,0

      Następnie przytrzymać RETURN, tak długo jak będzie chciał klikać, i nacisnąć RETURN raz jeszcze.


      POKE 89,0
      też daje ciekawe efekty. W zależności w której linii się to wpisze, i co potem naciśnie daje czasami różne nieoczekiwane efekty, zazwyczaj jednak zawieszenie, reset itp.
      • 17: CommentAuthors2325
      • CommentTime8 Jun 2013 07:06
       
      • 18: CommentAuthorxxl
      • CommentTime8 Jun 2013 08:06
       
      porownaj to co napisalem w poscie 15 i numer 21 z filmiku...

      bez GR.0 nie dziala ;-)
      • 19: CommentAuthors2325
      • CommentTime15 Jun 2013 14:06
       
      • 20: CommentAuthors2325
      • CommentTime9 Jul 2013 23:07
       
      • 21: CommentAuthorDooku6
      • CommentTime11 Jul 2013 21:07
       
      W kontekście "POKE" - pamiętam, jak mojemu tacie spodobał się następujący żart/komiks wydrukowany w czasopiśmie "KOMPUTER":

      • 22: CommentAuthors2325
      • CommentTime14 Jul 2013 16:07
       
      • 23: CommentAuthors2325
      • CommentTime14 Jul 2013 20:07 zmieniony
       

      • 24: CommentAuthor0xF
      • CommentTime14 Jul 2013 20:07
       
      Wracając do tematu:
      POKE 39972,132:POKE 39973,250

      Działa ze standardowym systemem operacyjnym XL/XE.
      • 25: CommentAuthors2325
      • CommentTime27 Oct 2015 20:10
       
      • 26: CommentAuthorpin
      • CommentTime27 Oct 2015 22:10
       
      całe życie z wariatami ... ;)

      ... ale kroi się niezłe Sikor-Kompo :D
      • 27: CommentAuthornosty
      • CommentTime28 Oct 2015 12:10
       
      W standardowym systemie i BASIC:

      POKE 560,0:POKE 561,8

      To już właściwie jest efekt ;)
      • 28:
         
        CommentAuthorCOR/ira4
      • CommentTime28 Oct 2015 13:10
       
      B.
      Najlepszy efekt ;-)
      • 29:
         
        CommentAuthorkris3d
      • CommentTime28 Oct 2015 14:10
       
      Hehe, podane przez 0xf dwa lata temu:
      POKE 39972,132:POKE 39973,250 to 8bitowy seks;)
      • 30:
         
        CommentAuthorkris3d
      • CommentTime28 Oct 2015 14:10
       
      @pin, mówisz! masz! ktoś wspominał o zmianie zestawu znaków? proszę bardzo:) Mój ulubiony, performatywny styl compotów;)

      10 FOR I=0 TO 255
      12 FOR G=0 TO 64
      15 GRAPHICS G
      20 POKE 756,I
      25 FOR P=0 TO 80:NEXT P
      27 NEXT G
      30 NEXT I
      40 GOTO 10

      Kto da gorzej?;)