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 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
     
  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
     
    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