Wykrycie VBXE
From Atariki
(Różnice między wersjami)
Wersja z dnia 09:34, 11 kwi 2009 KMK (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 09:45, 11 kwi 2009 KMK (Dyskusja | wkład) Next diff → |
||
Linia 42: | Linia 42: | ||
[[Kategoria:Peryferia 8-bit|VBXE, wykrywanie]] | [[Kategoria:Peryferia 8-bit|VBXE, wykrywanie]] | ||
[[Kategoria:Programowanie Atari 8-bit|VBXE, wykrywanie]] | [[Kategoria:Programowanie Atari 8-bit|VBXE, wykrywanie]] | ||
+ | [[Kategoria:VBXE]] |
Wersja z dnia 09:45, 11 kwi 2009
Procedura wykrycia VBXE na stronie $D6 lub $D7:
; ; 2009 by KMK/DLT ; vbxe_detect jsr ?try bcc ?fnd 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 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.
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.
Procedurę w powyższej postaci można wywołać tylko raz.