atarionline.pl Assembler - pisanie po ekranie - 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: CommentAuthoriSiek
      • CommentTime9 Dec 2025 17:03 (54 minut temu)
       
      Zgadza sie, głównie bawię się tym kodem pod kątem nauki. Później wkleję mój pierwszy kod 111 bajtów i przeróbkę na 102 ale jestem poza domem i nie mam dostępu do komputera.

      Przynajmniej definicje płatka mam taką samą od wersji kodu nr 2 u mnie :D

      Dziekuje za pokazanie Twojego sposobu @zbyti
      • 2: CommentAuthorzbyti
      • CommentTime9 Dec 2025 17:13 (44 minut temu)
       
      to jest "mój sposób" który znacznie usprawniłem, w sensie przepisałem od 0 ;)

      obecnie mój kod nie potrzebuje się "samomodyfikować" bo i bez tego robi to co trzeba optymalnie ;) nadaje się do zapisanie w ROM ;)
      • 3: CommentAuthorzbyti
      • CommentTime9 Dec 2025 17:24 (33 minut temu) zmieniony
       
      a dobra, coś czuję, że się nie rozumiemy ;)

      ;--------------------------------------

      opt f-h+

      ;--------------------------------------

      SAVMSC = $58 ;2-byte saved address

      ;--------------------------------------

      asterix = 10
      space = 0 ; '.' = 14

      ;--------------------------------------

      org $80

      ldx #18

      draw_y ldy #17

      sec
      draw_x rol snowflake,x
      lda #asterix
      bcs @+
      lda #space
      @ pha
      sta (SAVMSC),y
      dey
      cpy #8
      bne draw_x

      iny
      @ pla
      sta (SAVMSC),y
      dey
      bne @-

      cpx #9
      bne @+

      sta (SAVMSC),y
      ldy #18
      sta (SAVMSC),y

      @ adw SAVMSC #40

      dex
      bpl draw_y

      bne *

      ;--------------------------------------

      snowflake dta %00000000 ; 0
      dta %00000010 ; 1
      dta %01010001 ; 2
      dta %00110000 ; 3
      dta %01110010 ; 4
      dta %00001001 ; 5
      dta %00000100 ; 6
      dta %10010010 ; 7
      dta %01001001 ; 8
      dta %11111111 ; 9
      dta %01001001 ; 8
      dta %10010010 ; 7
      dta %00000100 ; 6
      dta %00001001 ; 5
      dta %01110010 ; 4
      dta %00110000 ; 3
      dta %01010001 ; 2
      dta %00000010 ; 1
      dta %00000000 ; 0

      ;--------------------------------------


      uważam, że nie da się tego poprawić inaczej niż hardcodując LMS :] co zrywa kompatybilność z Atari na rzecz konkretnego modelu w stanie surowym.
      • 4: CommentAuthoriSiek
      • CommentTime9 Dec 2025 17:55 (2 minut temu)
       
      Jeśli chodzi o mnie to nie ma mowy o samomodyfikujacym się kodzie:) Nie umiem jeszcze. Piszę klasycznie
      • 5: CommentAuthorzbyti
      • CommentTime9 Dec 2025 17:57 (41 sekund temu)
       
      samomodyifkujący się kod to podstawa! po po prostu w moim finalnym przykładzie nie jest potrzebny, we wcześniejszym, który zamieściłem, masz aż 3 modyfikacje :]