Programowanie: Jak wyłączyć ROM systemu: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
mNie podano opisu zmian
chyba jednak nie trzeba czekac na ramke
Linia 7: Linia 7:


system_off equ *
system_off equ *
lda 20      ; czekamy do nastepnej ramki aby zaczac zmieniac wektory zaraz po ostatnim NMI
cmp 20
beq *-2


  lda #0
  lda #0

Wersja z 30 sty 2006, 12:34


;
; procedura system_off - wylaczamy OS, podlaczamy RAM pod ROMem i 
; zajmujemy sie na wlasna reke obsluga NMI 
;

system_off equ *

 lda #0
 sta $d40e   ; wylaczamy NMI 
 sei         ; oraz IRQ
 lda #$fe    ; oraz podlaczamy RAM pod ROMem, wylaczajac OS
 sta $d301

; poniewaz nie mamy juz systemu nalezy zadbac o wlasna obsluge przerwan NMI

 lda <NMI
 sta $fffa
 lda >NMI
 sta $fffb
 lda #$c0    ;wlaczamy NMI
 sta $d40e 
 rts

NMI bit $d40f ; sprawdzamy czy przerwanie to VBL czy DLI 
 bpl _no
 jmp (DLI) 
_no sta $d40f
 jmp (VBL)
 
DLI dta a(my_dli) ; my_vbl i my_dli to juz nasze procedury obslugi przerwan. 
VBL dta a(my_vbl)