atarionline.pl Pytanie o VBI - 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:
         
        CommentAuthormgr_inz_rafal
      • CommentTime15 Mar 2013 23:03 zmieniony
       
      Właśnie napisałem sobie muzyczkę do gry w CMC i zacząłem ją odtwarzać.

      1. Załadowałem muzyczkę
      2. Załadowałem player
      3. "Taktuję" go w VBI

      No i wszystko gra.

      Nie rozumiem jednak jednej linijki kodu (bo wziąłem go z netu) i trochę mnie to niepokoi. Chodzi mianowicie o tę z komentarzem "deferred vector"
      .

      ldy <vbi_routine
      ldx >vbi_routine
      lda #7 ; deferred vector
      jsr $E45C ; go to SETVBV

      vbi_routine
      jsr player+6
      jmp $E462


      Mógłby jakiś muzyk-programista wyjaśnić dlaczego akurat #7?
      • 2:
         
        CommentAuthorPecus
      • CommentTime15 Mar 2013 23:03
       
    1.  
      Dzięki. Mając "nazwy" wektorów już będę w stanie wyczytać coś więcej z mapki pamięci :)
      • 4: CommentAuthormono
      • CommentTime16 Mar 2013 18:03
       
      Jeśli piszesz grę która ma przejąć kontrolę nad maszyną i nie szanować tego, co jest w systemie zainstalowane to możesz w ten sposób ustawiać przerwania.
      Jeśli jednak piszesz coś, co ma szanować np. programy tsr zainstalowane w systemie to zaleca się przedłużanie wektorów:
      init:
      ldy vblkiv ;$222
      ldx vlkdiv+1
      sty oldv
      stx oldv+1
      ldy #<vblkiproc
      ldx #>vblkiproc
      lda #VBLKI
      jsr jsetvblv ;$e45c
      ...
      vblkiproc:
      ...
      jmp (oldv)

      a po zakończeniu pracy posprzątanie po sobie:
      clean:
      ldy oldv
      ldx oldv+1
      lda #VBLKI
      jsr jsetvblv