Wykrycie VBXE
From Atariki
(Różnice między wersjami)
												
			
			| Wersja z dnia 09:45, 11 kwi 2009 KMK (Dyskusja | wkład) ← Previous diff  | 
				Wersja z dnia 10:09, 11 kwi 2009 KMK (Dyskusja | wkład) Next diff →  | 
			||
| Linia 7: | Linia 7: | ||
| vbxe_detect | vbxe_detect | ||
| jsr ?try | jsr ?try | ||
| - | bcc ?fnd | + | bcc ?clr | 
| inc _vbxe_write+2 | inc _vbxe_write+2 | ||
| Linia 33: | Linia 33: | ||
| </pre> | </pre> | ||
| - | Wywołanie <code>JSR VBXE_DETECT</code> wraca z ustawionym znacznikiem C, gdy VBXE w komputerze nie ma, lub ze skasowanym znacznikiem C, gdy VBXE wykryto. W tej sytuacji pod adresem _vbxe_write+2 (1 bajt) jest numer strony, na której zdekodowana jest karta. Gdy VBXE nie ma, procedura wraca z ustawionym znacznikiem C. | + | Wywołanie <code>JSR VBXE_DETECT</code> wraca z ustawionym znacznikiem C, gdy VBXE w komputerze nie ma, lub ze skasowanym znacznikiem C, gdy VBXE wykryto. W tej ostatniej sytuacji pod adresem _vbxe_write+2 (1 bajt) jest numer strony, na której zdekodowana jest karta. | 
| - | Sposób działania: podprogram próbuje podłączyć bank 0 VRAM-u jako okno MEMAC A (w obszarze $2000-$3FFF) i sprawdza, czy się coś zmieniło w tym obszarze pamięci. | + | Sposób działania: podprogram próbuje podłączyć bank 0 VRAM-u jako okno MEMAC A (pod $2000-$3FFF) i sprawdza, czy się coś zmieniło w odnośnym obszarze pamięci. | 
| Procedurę w powyższej postaci można wywołać tylko raz. | Procedurę w powyższej postaci można wywołać tylko raz. | ||
Wersja z dnia 10:09, 11 kwi 2009
Procedura wykrycia VBXE na stronie $D6 lub $D7:
;
; 2009 by KMK/DLT
;
vbxe_detect
        jsr ?try
        bcc ?clr
        inc _vbxe_write+2
?try    ldx $3fff
        ldy #$4c
        lda #$80
        jsr _vbxe_write
        cpx $3fff
        bne ?fnd
        jsr ?clr
        inx
        stx $3fff
        lda #$80
        jsr _vbxe_write
        cpx $3fff
        bne ?fnd
        sec
        .byte $24
?fnd    clc
?clr    lda #$00
_vbxe_write
        sta $d600,y
        rts
Wywołanie JSR VBXE_DETECT wraca z ustawionym znacznikiem C, gdy VBXE w komputerze nie ma, lub ze skasowanym znacznikiem C, gdy VBXE wykryto. W tej ostatniej sytuacji pod adresem _vbxe_write+2 (1 bajt) jest numer strony, na której zdekodowana jest karta.
Sposób działania: podprogram próbuje podłączyć bank 0 VRAM-u jako okno MEMAC A (pod $2000-$3FFF) i sprawdza, czy się coś zmieniło w odnośnym obszarze pamięci.
Procedurę w powyższej postaci można wywołać tylko raz.
