Dyskusja:Wykrycie VBXE

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 10:35, 14 sie 2009
Xxl (Dyskusja | wkład)
(do rozważenia)
← Previous diff
Wersja z dnia 22:17, 15 sie 2009
KMK (Dyskusja | wkład)

Next diff →
Linia 23: Linia 23:
W rejestrze X podajemy interesującą nas wersję a w rejestrze Y rewizję, po wyjściu z podprogramu w rejestrze A mamy stronę na której znajduje się INTERESUJĄCY nas rdzeń, jeśli go nie ma, dostajemy 0. [[Użytkownik:Xxl|Xxl]] 12:35, 14 sie 2009 (CEST) W rejestrze X podajemy interesującą nas wersję a w rejestrze Y rewizję, po wyjściu z podprogramu w rejestrze A mamy stronę na której znajduje się INTERESUJĄCY nas rdzeń, jeśli go nie ma, dostajemy 0. [[Użytkownik:Xxl|Xxl]] 12:35, 14 sie 2009 (CEST)
 +
 +:Tylko że jeśli nie jest zainstalowane VBXE (ani w ogóle nic) w większości komputerów w odpowiednich komórkach stron D6 i D7 pojawiają się przypadkowe wartości. A jeśli jest zainstalowane coś innego niż VBXE, wartości we wskazanych komórkach mogą przypadkowo się zgadzać z twoimi tu założeniami. Słowem, musisz jeszcze trochę nad tym popracować. [[Użytkownik:KMK|KMK]] 00:17, 16 sie 2009 (CEST)

Wersja z dnia 22:17, 15 sie 2009

Założenie dla tego programu jest błędne. Rdzeń VBXE zawiera kilka modułów, opisany tu sposób 'wykrycia' karty zakłada, że jeden z tych modułów (MEMAC) będzie niezmienny. Xxl 14:19, 3 sie 2009 (CEST)

Założenie jest poprawne, rdzenie z ruchomym oknem MEMAC (jak dotąd) nie istnieją. KMK 13:23, 6 sie 2009 (CEST)

Założenie jest równie dobre jak sprawdzanie obecności VBXE poprzez wywoływanie funkcji BLITTERA i badanie efektu w pamięci. Myślę, że projektant sam podsunął dwa sposoby wykrycia karty: Podobnie jak robi to konfigurator (wydaje mi się jednak, że w wersji VBXE2 może to nie działać) oraz poprzez "Info registers: CORE_VERSION i MINOR_REVISION" - tu oprócz suchej informacji że VBXE jest zainstalowane mamy wprost podaną wersje. Przykład:


_check_vbxe (pisane na szybko - należy sprawdzić czy działa i optymalizować)
               cpx CORE_VERSION_D6
               bne _err1
               cpy MINOR_REVISION_D6
               beq _ok1
_err1           cpx CORE_VERSION_D7
               bne _err2
               cpy MINOR_REVISION_D7
               beq _ok2
_err2		lda #0
               rts
_ok1		lda #$d6
               rts
_ok2		lda #$d7
               rts

W rejestrze X podajemy interesującą nas wersję a w rejestrze Y rewizję, po wyjściu z podprogramu w rejestrze A mamy stronę na której znajduje się INTERESUJĄCY nas rdzeń, jeśli go nie ma, dostajemy 0. Xxl 12:35, 14 sie 2009 (CEST)

Tylko że jeśli nie jest zainstalowane VBXE (ani w ogóle nic) w większości komputerów w odpowiednich komórkach stron D6 i D7 pojawiają się przypadkowe wartości. A jeśli jest zainstalowane coś innego niż VBXE, wartości we wskazanych komórkach mogą przypadkowo się zgadzać z twoimi tu założeniami. Słowem, musisz jeszcze trochę nad tym popracować. KMK 00:17, 16 sie 2009 (CEST)
Personal tools