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 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 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
     
    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
     
    "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 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
     
    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
     
    Czyli nie chodzi o 2 bajty tylko o dwa POKE. Jako program to będzie kilkanaście bajtow.
    • 8:
       
      CommentAuthorwilly
    • CommentTime25 May 2013
     
    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
     

    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
     
    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 zmieniony
     
    była to z twojej strony nieprzyjemna insynuacja tak na marginesie, zarobiles u mnie minusa
    • 12: CommentAuthorBluki
    • CommentTime25 May 2013
     
    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
     
    POKE 755,255


    POKE 561,192


    I można to mnożyć w nieskończoność niemal ....
    • 14:
       
      CommentAuthorMaW
    • CommentTime25 May 2013 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
     
    POKE 622,1
    GR.0

    wlaczy finescroll. wylistuj swoj program albo "zjedz" kursorem ponizej ekranu.
    • 16:
       
      CommentAuthorwilly
    • CommentTime25 May 2013
     
    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
     
    • 18: CommentAuthorxxl
    • CommentTime8 Jun 2013
     
    porownaj to co napisalem w poscie 15 i numer 21 z filmiku...

    bez GR.0 nie dziala ;-)
    • 19: CommentAuthors2325
    • CommentTime15 Jun 2013
     
    • 20: CommentAuthors2325
    • CommentTime9 Jul 2013
     
    • 21: CommentAuthorDooku6
    • CommentTime11 Jul 2013
     
    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
     
    • 23: CommentAuthors2325
    • CommentTime14 Jul 2013 zmieniony
     

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

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

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

    POKE 560,0:POKE 561,8

    To już właściwie jest efekt ;)
    • 28:
       
      CommentAuthorCOR/ira4
    • CommentTime28 Oct 2015
     
    B.
    Najlepszy efekt ;-)
    • 29:
       
      CommentAuthorkris3d
    • CommentTime28 Oct 2015
     
    Hehe, podane przez 0xf dwa lata temu:
    POKE 39972,132:POKE 39973,250 to 8bitowy seks;)
    • 30:
       
      CommentAuthorkris3d
    • CommentTime28 Oct 2015
     
    @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?;)