atarionline.pl "Bajtek" - nowe wydania! - 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:
         
        CommentAuthorsun
      • CommentTime1 Dec 2020 19:12 zmieniony
       
      Ja już mam a Ty? :)
      • 2:
         
        CommentAuthorPecus
      • CommentTime1 Dec 2020 21:12
       
      A ja jeszcze czekam....
      • 3:
         
        CommentAuthorsun
      • CommentTime1 Dec 2020 22:12
       
      Kto czeka ten się doczeka, warto ;)
      • 4:
         
        CommentAuthorCOR/ira4
      • CommentTime1 Dec 2020 22:12
       
      ... to są nowe wydania starych numerów ?
      • 5:
         
        CommentAuthorsun
      • CommentTime1 Dec 2020 23:12 zmieniony
       
      Owszem. Poprawione teksty, zdjęcia po obróbce lub nowe, lepsze odpowiedniki, poprawione listingi programów (przetestowane).
      Być może będą udostępnione w formie tekstów, plików tap, prg tudzież w formie kasety.
      Zwracam uwagę na słowa "być może", ale w tejże formie są już przygotowane.
      • 6:
         
        CommentAuthorCOR/ira4
      • CommentTime2 Dec 2020 16:12
       
      to chyba trza taki projekt wesprzeć i zakupić choć sztukę ...,ciekawe rzeczy były w Bajtkach a nawet nie pamiętam ile mi starych Bajtków zostało ...
      • 7:
         
        CommentAuthorKaz
      • CommentTime25 Feb 2021 00:02 zmieniony
       
      Przy okazji omawiania nowych "Bajtków" koledze Mono spodobał się taki oto program na ZX Spectrum (pismo 3-4/1986, str.22). Kolega Sun udostępnił mu ten program, bo jako korektor przepisał i przetestował wszystkie programy, a Mono zrobił wersję Atari.

      Z kolei zdjęcie z działania programu w wersji na prawdziwym Atari - Misza.

      Program na ZX Spectrum - Michał Szuniewicz (lat 16 w 1986 roku)
      Program na Atari - Jerzy Kut (lat 10 w 1986 roku)

      - wersja 1, dokładna translacja oryginalnego programu:

      5 GRAPHICS 8: COLOR 1: H=159
      10 X=128: Y=88: REM PIERWSZY PUNKT
      15 K=2: REM KROK RYSOWANIA
      20 P=INT(RND(0)*4)+1: REM LICZBA PRZYPADKOWA
      25 A=PEEK(764)
      30 IF P=1 THEN X=X+K
      35 IF P=2 THEN X=X-K
      40 IF P=3 THEN Y=Y+K
      45 IF P=4 THEN Y=Y-K
      50 IF A<>255 THEN POKE 764,255: GOSUB 1000: REM ZMIANA KOLORU
      54 REM POZA EKRANEM ?
      55 IF X>319 OR X<0 OR Y>H OR Y<0 THEN X=INT(RND(0)*319)+1: Y=INT(RND(0)*H)+1
      60 PLOT X,Y: REM RYSUJ PUNKT
      65 POKE 77,0
      70 GOTO 20: REM KOLEJNY CYKL
      1000 PRINT "KOLOR MORZA (0-15) ";: INPUT KT
      1010 PRINT "KOLOR ZIEMI (0-15) ";: INPUT KU
      1020 SETCOLOR 1,0,KT
      1030 SETCOLOR 2,0,KU
      1040 RETURN


      - wersja 2, rysuje na większym ekranie, nie ma wpisywania parametrów koloru:

      5 GRAPHICS 8+16: COLOR 1: H=191
      10 X=128: Y=88: REM PIERWSZY PUNKT
      15 K=2: REM KROK RYSOWANIA
      20 P=INT(RND(0)*4)+1: REM LICZBA PRZYPADKOWA
      25 A=PEEK(764)
      30 IF P=1 THEN X=X+K
      35 IF P=2 THEN X=X-K
      40 IF P=3 THEN Y=Y+K
      45 IF P=4 THEN Y=Y-K
      50 IF A<>255 THEN POKE 764,255: END: GOSUB 1000: REM ZMIANA KOLORU
      54 REM POZA EKRANEM ?
      55 IF X>319 OR X<0 OR Y>H OR Y<0 THEN X=INT(RND(0)*319)+1: Y=INT(RND(0)*H)+1
      60 PLOT X,Y: REM RYSUJ PUNKT
      65 POKE 77,0
      70 GOTO 20: REM KOLEJNY CYKL
      1000 PRINT "KOLOR MORZA (0-15) ";: INPUT KT
      1010 PRINT "KOLOR ZIEMI (0-15) ";: INPUT KU
      1020 SETCOLOR 1,0,KT
      1030 SETCOLOR 2,0,KU
      1040 RETURN
      • 8:
         
        CommentAuthorsun
      • CommentTime25 Feb 2021 11:02
       
      Nie ma okna na wpisywanie ale obsługa została, linia 50?
      • 9: CommentAuthormono
      • CommentTime25 Feb 2021 12:02 zmieniony
       
      Tak. W wersji 2 GOSUB można wyrzucić, jak również linie 1000+.
      • 10:
         
        CommentAuthorKaz
      • CommentTime25 Feb 2021 12:02
       
      Czyli tak:

      5 GRAPHICS 8+16: COLOR 1: H=191
      10 X=128: Y=88: REM PIERWSZY PUNKT
      15 K=2: REM KROK RYSOWANIA
      20 P=INT(RND(0)*4)+1: REM LICZBA PRZYPADKOWA
      25 A=PEEK(764)
      30 IF P=1 THEN X=X+K
      35 IF P=2 THEN X=X-K
      40 IF P=3 THEN Y=Y+K
      45 IF P=4 THEN Y=Y-K
      54 REM POZA EKRANEM ?
      55 IF X>319 OR X<0 OR Y>H OR Y<0 THEN X=INT(RND(0)*319)+1: Y=INT(RND(0)*H)+1
      60 PLOT X,Y: REM RYSUJ PUNKT
      65 POKE 77,0
      70 GOTO 20: REM KOLEJNY CYKL


      A optymalizacja, żeby to działało szybciej?
      • 11: CommentAuthormono
      • CommentTime25 Feb 2021 13:02 zmieniony
       
      Samo GOSUB a nie całą linię 50.

      Edit: Jakieś optymalizacje wersji 2:
      5 GRAPHICS 8+16: COLOR 1
      10 X=128: Y=88: K=2: W=319: H=191
      20 P=INT(RND(0)*4)+1
      30 IF P=1 THEN X=X+K: IF X>W THEN X=INT(RND(0)*W)+1
      35 IF P=2 THEN X=X-K: IF X<0 THEN X=INT(RND(0)*W)+1
      40 IF P=3 THEN Y=Y+K: IF Y>H THEN Y=INT(RND(0)*H)+1
      45 IF P=4 THEN Y=Y-K: IF Y<0 THEN Y=INT(RND(0)*H)+1
      60 PLOT X,Y: GOTO 20
      • 12:
         
        CommentAuthorKaz
      • CommentTime25 Feb 2021 14:02
       
      I ile procent szybsze? Ktoś zmierzył? :)
      • 13:
         
        CommentAuthorbocianu
      • CommentTime25 Feb 2021 15:02 zmieniony
       
      zoptymalizowałem jeszcze bardziej :D

      program map;
      uses fastgraph;

      const
      K = 2;
      W = 319;
      H = 191;

      var
      x: smallInt = 128;
      y: smallInt = 88;
      p: byte;

      begin
      Randomize;
      InitGraph(8 + 16);
      SetColor(1);
      repeat
      p := Random(4) + 1;
      case p of
      1: x := x + K;
      2: x := x - K;
      3: y := y + K;
      4: y := y - K;
      end;
      if (x < 0) or (x > W) then x := Random(W);
      if (y < 0) or (y > H) then y := Random(H);
      PutPixel(x, y);
      until false;
      end.
      • 14:
         
        CommentAuthorKaz
      • CommentTime25 Feb 2021 16:02
       
      O! A przy okazji piękny przykład, jak program w Atari Basic przenieść do MadPascal. Dzięki Bocianu.

      PS. I to nieźle zaiwania! :D
      • 15:
         
        CommentAuthorbocianu
      • CommentTime25 Feb 2021 16:02
       
      zmieniłem bibliotekę graph na fastgraph i zaiwania jeszcze szybciej ;)
      • 16:
         
        CommentAuthorsun
      • CommentTime25 Feb 2021 18:02
       
      Ja zmienię na CUDA i zobaczymy ;)
      • 17:
         
        CommentAuthorKaz
      • CommentTime25 Feb 2021 20:02
       
      CUDA to jakaś nowa biblioteka?
      • 18: CommentAuthorpin
      • CommentTime25 Feb 2021 20:02
       
      ... aaa, ja sobie to tak rozpisałem. TBXL:

      10 K=%2:W=319:H=191:GRAPHICS 8+16:COLOR %1
      20 DO
      30 P=RAND(4)+%1
      40 ON P GOSUB 60,70,80,90
      50 GO# NXT
      60 X=X+K:RETURN
      70 X=X-K:RETURN
      80 Y=Y+K:RETURN
      90 Y=Y-K:RETURN
      100 # NXT
      110 IF X<0 OR X>W THEN X=RAND(W)
      120 IF Y<0 OR Y>H THEN Y=RAND(H)
      130 PLOT X,Y
      140 LOOP

      • 19: CommentAuthorpin
      • CommentTime25 Feb 2021 20:02
       
      wersja dla VBXE i sterownika S2: dla Sparta DOS X. Rozdzielczość 640x192, 16 kolorów.

      10 K=%2:W=619:H=191:OPEN #6,12,4,"S2:":C=%1
      20 DO
      30 P=RAND(4)+%1
      40 ON P GOSUB 60,70,80,90
      50 GO# NXT
      60 X=X+K:RETURN
      70 X=X-K:RETURN
      80 Y=Y+K:RETURN
      90 Y=Y-K:RETURN
      100 # NXT
      110 IF X<0 OR X>W THEN X=RAND(W):C=C+%1
      120 IF Y<0 OR Y>H THEN Y=RAND(H):C=C+%1
      125 IF C>254 THEN C=%1
      130 COLOR C:PLOT X,Y
      140 LOOP
      • 20:
         
        CommentAuthorKaz
      • CommentTime25 Feb 2021 20:02
       
      Pinek, dawaj filmik z tego! W 16 kolorach na VBXE nie widziałem.
      • 21: CommentAuthorpin
      • CommentTime25 Feb 2021 21:02
       
      w nocy może wrzucę. 320x192/256 i 640x192/16
      • 22: CommentAuthorpin
      • CommentTime25 Feb 2021 21:02
       
      ... z tym, że widzę że moja "interpretacja" rysuje to inaczej. Chwila.
      • 23: CommentAuthorpin
      • CommentTime25 Feb 2021 23:02 zmieniony
       
      Nie wiem, coś ten "random" jest tendencyjny ;)

      • 24:
         
        CommentAuthorKaz
      • CommentTime26 Feb 2021 00:02
       
      Bomba, wyszło jak demo :)
      • 25: CommentAuthorpin
      • CommentTime26 Feb 2021 00:02
       
      Sorry, coś mnie zamroczyło z tym #L1 :))
      • 26:
         
        CommentAuthorsun
      • CommentTime26 Feb 2021 00:02
       
      prócz vbxe zapewne całość goni Rapidus :)
      • 27: CommentAuthorpin
      • CommentTime26 Feb 2021 00:02
       
      Zapewne i albowiem :)
      • 28: CommentAuthorpin
      • CommentTime26 Feb 2021 20:02
       
      kurła, myślałem że to może ten RAND z TBXL daje tu popalić, ale te moje wypociny z RND zachowują się dokładnie tak samo.
      • 29: CommentAuthorpin
      • CommentTime26 Feb 2021 21:02
       
      zmieniłem oczywiście konstrukcję ON/GOSUB na EXEC, z dziwnych rzeczy nie działa EXIT#etykieta.
      • 30: CommentAuthorpin
      • CommentTime26 Feb 2021 21:02
       
      10 # L1:CLOSE :K=%2:W=619:H=191:OPEN #6,12,4,"S2:":C=%1
      20 DO
      30 P=INT(RND(0)*4)+%1
      40 ON P EXEC X1,X2,Y1,Y2
      50 GO# NXT
      60 PROC X1:X=X+K:ENDPROC
      70 PROC X2:X=X-K:ENDPROC
      80 PROC Y1:Y=Y+K:ENDPROC
      90 PROC Y2:Y=Y-K:ENDPROC
      100 # NXT
      110 IF X<0 OR X>W THEN X=INT(RND(0)*W):C=C+%1:K=RAND(8)+%1
      120 IF Y<0 OR Y>H THEN Y=INT(RND(0)*H):C=C+%1:K=RAND(8)+%1
      125 IF C>254 THEN EXIT
      130 COLOR C:PLOT X,Y
      140 LOOP
      150 POKE 77,%0:GO# L1
      • 31: CommentAuthorpin
      • CommentTime26 Feb 2021 23:02
       
      Reasumując ciekawostka: RAND/RND pod TBXL głupieje przy 20Mhz, w programach pisanych w MP jest ok.
      • 32: CommentAuthorpin
      • CommentTime26 Feb 2021 23:02 zmieniony
       
      • 33: CommentAuthorpin
      • CommentTime26 Feb 2021 23:02
       
      ehhh, to dodawanie plików to niezła masakra.
      • 34:
         
        CommentAuthorjhusak
      • CommentTime26 Feb 2021 23:02
       
      @Pin, nie narzekaj, i tak nikt nie zmieni :)
      • 35: CommentAuthorpin
      • CommentTime26 Feb 2021 23:02
       
      wystarczy wystarczająco długo narzekać ;)
      • 36:
         
        CommentAuthorbocianu
      • CommentTime27 Feb 2021 16:02 zmieniony
       
      jak już lecimy z offtopikiem z mapą, to zrobiłem też wersję kolorową w trybie 15

      program map;
      uses graph;

      const
      K = 1;
      W = 159;
      H = 191;

      var
      x: smallInt = 79;
      y: smallInt = 95;
      p: byte;

      procedure rndColor;
      begin
      SetColor(Random(4));
      end;

      begin
      Randomize;
      InitGraph(15 + 16);
      poke(708,$b4);
      poke(709,$c8);
      poke(710,$da);
      poke(712,$84);

      rndColor;
      repeat
      p := Random(4) + 1;
      case p of
      1: x := x + K;
      2: x := x - K;
      3: y := y + K;
      4: y := y - K;
      end;
      if (x < 0) or (x > W) then begin
      x := Random(W);
      rndColor;
      end;
      if (y < 0) or (y > H) then begin
      y := Random(H);
      rndColor;
      end;
      PutPixel(x, y);
      until false;
      end.
      • 37:
         
        CommentAuthorKaz
      • CommentTime27 Feb 2021 16:02 zmieniony
       
      Bocianu - fajne cacko. A jak się wystarczająco długo poczeka, to włącza się tryb przyciągania uwagi i są nowe wersje kolorystyczne :)

      Pin:

      ehhh, to dodawanie plików to niezła masakra.


      Pinek - naucz się dodawać obrazki to nie bedziesz masakrowany :)
      Proszę bardzo, wstawione (nota bene - świetny efekt Ci wyszedł):
      • 38: CommentAuthorpin
      • CommentTime27 Feb 2021 18:02 zmieniony
       
      Poprawki spowalniające program na Rapidusie, przy @20Mhz "głupieje" RAND. Teraz rysuje dobrze. Wersja VBXE, 320x192.

      • 39:
         
        CommentAuthorKaz
      • CommentTime27 Feb 2021 18:02
       
      Piękne wzorki... Faktycznie, coś zostawia dużo wolnego z prawej i z dołu, ale ma to swój urok i odmienność.
      • 40: CommentAuthorpin
      • CommentTime27 Feb 2021 18:02
       
      z tym, to bywa różnie. Akurat jak to nagrywałem to tak jakoś bardziej w lewo poszło.
      • 41: CommentAuthormono
      • CommentTime27 Feb 2021 19:02 zmieniony
       
      @bocianu: No piękne. Ciekawe jak wygląda w 5-ciokolorowym :) Albo w 9-cio...

      @pin: Draco ze 2 lata temu opisywał tą sytuację. Przy robieniu RND jeden po drugim Rapidus czyta RANDOM przed upływem 8 taktów zegara 1.77 MHz, co skutkuje mocnym skorelowaniem "wylosowanych" wartości. Poprawiał to na pewno w U-BASIC-u, ale stare programy typu TBXL, czy inne programy nie uruchamiane z cartridge'a będą pod ten przypadek podpadać. Nie mogę znaleźć tego wątku :(

      Edit 2: Zbyti podrzucił linka: ->link<-
      • 42:
         
        CommentAuthorKaz
      • CommentTime28 Feb 2021 00:02 zmieniony
       
      No i jeszcze AtariFan podrzucił mi "Mapę" w wersji dla języka Action!

      ;generator mapy, AtariFan, 210227

      BYTE
      X,Y,K,R,
      KEY =$02FC,
      COLPF0S =$02C4,
      COLPF1S =$02C5,
      COLPF2S =$02C6

      PROC MAIN()
      GRAPHICS(31)
      COLOR=1
      COLPF0S=$B4
      COLPF1S=$C8
      COLPF2S=$DA
      K=2
      X=79 Y=95
      KEY=255

      WHILE KEY=255
      DO
      R=RAND(5)
      IF R=1 THEN X==-K FI
      IF R=2 THEN X==+K FI
      IF R=3 THEN Y==-K FI
      IF R=4 THEN Y==+K FI
      IF X<0 OR X>159 THEN
      X=RAND(159) COLOR=RAND(4) FI
      IF Y<0 OR Y>191 THEN
      Y=RAND(191) COLOR=RAND(4) FI
      PLOT(X,Y)
      OD
      RETURN


      A Sun podrzucił lepszej jakości oryginał z ZX Spectrum, oczywiście z reedycji:
      • 43: CommentAuthormono
      • CommentTime28 Feb 2021 00:02
       
      @pin: Zbyti podrzucił mi linka właśnie do dracowego posta: ->link<-
      • 44:
         
        CommentAuthorKaz
      • CommentTime28 Feb 2021 01:02 zmieniony
       
      AtariFan podrzucił Action! skompilowany do xex:
      • 45: CommentAuthorpin
      • CommentTime28 Feb 2021 01:02
       
      Fast Basic mnie intryguje, spróbuję w najbliższym czasie ;)
      • 46:
         
        CommentAuthorbocianu
      • CommentTime28 Feb 2021 23:02 zmieniony
       
      Ciekawe jak wygląda w 5-ciokolorowym :) Albo w 9-cio...


      w 9cio wygląda tak:
      program map;
      uses atari, graph, gr10pp;

      const
      K = 1;
      W = 79;
      H = 69;
      DISPLAY_LIST_ADDRESS = $5000;
      var
      x: smallInt = 39;
      y: smallInt = 34;
      p: byte;

      procedure rndColor;
      begin
      SetColor(Random(9));
      end;

      begin
      Randomize;
      InitGraph(10);
      Gr10Init(DISPLAY_LIST_ADDRESS, savmsc, H + 1, 3, 2);
      pcolr0 := $84; // background
      pcolr3 := $a4;
      pcolr1 := $b6;
      color2 := $c8;
      pcolr2 := $da;
      color1 := $ec;
      color0 := $fa;
      color4 := $18;
      color3 := $26;

      rndColor;
      repeat
      p := Random(4) + 1;
      case p of
      1: x := x + K;
      2: x := x - K;
      3: y := y + K;
      4: y := y - K;
      end;
      if (x < 0) or (x > W) then begin
      x := Random(W);
      rndColor;
      end;
      if (y < 0) or (y > H) then begin
      y := Random(H);
      rndColor;
      end;
      PutPixel(x, y);
      until false;
      end.


      nietypowa rozdzielczość 80x70 px :D
      • 47: CommentAuthorpin
      • CommentTime1 Mar 2021 01:03
       
      Dobra zabawa się z tego zrobiła :)
      • 48:
         
        CommentAuthorKaz
      • CommentTime1 Mar 2021 05:03 zmieniony
       
      Przedwczoraj jeszcze Mono przygotował trzy listingi, do GR.9, GR.10 i GR.11, które oglądaliśmy na zoomie. Oto one:

      5 GRAPHICS 9
      10 C=8: X=64: Y=88: K=1: W=79: H=191: N=15
      20 COLOR C: PLOT X,Y: P=INT(RND(0)*4)+1: ON P GOTO 30,40,50,60
      30 X=X+K: IF X>W THEN X=INT(RND(0)*W)+1: C=INT(RND(0)*N)+1
      35 GOTO 20
      40 X=X-K: IF X<0 THEN X=INT(RND(0)*W)+1: C=INT(RND(0)*N)+1
      45 GOTO 20
      50 Y=Y+K: IF Y>H THEN Y=INT(RND(0)*H)+1: C=INT(RND(0)*N)+1
      55 GOTO 20
      60 Y=Y-K: IF Y<0 THEN Y=INT(RND(0)*H)+1: C=INT(RND(0)*N)+1
      65 GOTO 20


      5 GRAPHICS 10: SETCOLOR 4,1,4: POKE 704,16*0+0: POKE 705,16*7+8: POKE 706,16*11+10: POKE 707,16*14+4
      10 C=1: X=64: Y=88: K=1: W=79: H=191: N=8
      20 COLOR C: PLOT X,Y: P=INT(RND(0)*4)+1: ON P GOTO 30,40,50,60
      30 X=X+K: IF X>W THEN X=INT(RND(0)*W)+1: C=INT(RND(0)*N)
      35 GOTO 20
      40 X=X-K: IF X<0 THEN X=INT(RND(0)*W)+1: C=INT(RND(0)*N)
      45 GOTO 20
      50 Y=Y+K: IF Y>H THEN Y=INT(RND(0)*H)+1: C=INT(RND(0)*N)
      55 GOTO 20
      60 Y=Y-K: IF Y<0 THEN Y=INT(RND(0)*H)+1: C=INT(RND(0)*N)
      65 GOTO 20


      5 GRAPHICS 11
      10 C=1: X=64: Y=88: K=1: W=79: H=191: N=16
      20 COLOR C: PLOT X,Y: P=INT(RND(0)*4)+1: ON P GOTO 30,40,50,60
      30 X=X+K: IF X>W THEN X=INT(RND(0)*W)+1: C=INT(RND(0)*N)
      35 GOTO 20
      40 X=X-K: IF X<0 THEN X=INT(RND(0)*W)+1: C=INT(RND(0)*N)
      45 GOTO 20
      50 Y=Y+K: IF Y>H THEN Y=INT(RND(0)*H)+1: C=INT(RND(0)*N)
      55 GOTO 20
      60 Y=Y-K: IF Y<0 THEN Y=INT(RND(0)*H)+1: C=INT(RND(0)*N)
      65 GOTO 20
      • 49:
         
        CommentAuthorsun
      • CommentTime1 Mar 2021 11:03
       
      Wystarczająco ładne bez Vbxe :)
      • 50: CommentAuthormono
      • CommentTime1 Mar 2021 12:03
       
      @bocianu: Piękne! A skąd Ci się wzięło 70?