Dyskusja:Wykrycie VBXE
From Atariki
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)
- PS. Oczywiście, że można byłoby sprawdzić blitterem, ale przez MEMAC jest krócej. Myśl dalej. KMK 00:19, 16 sie 2009 (CEST)
Nie na większości tylko na pewnej części (sprawnych inaczej) atari na tych stronach pojawiają się wartości losowe... Faktycznie problem może niektórych przerastać, no to dla twojej wiedzy rozważmy ten przykład czyli najgorszy z możliwych przypadków, ten który może generować błąd. Załóżmy, że sprawdzenie będziemy przeprowadzać zawsze na atari z tą wadą, atari nie bdzie miało VBXE a testować będziemy 8 razy dziennie codziennie :-) chwileczkę, policzę na palcach.... tak, błąd wystąpi raz na ok. 20 lat, będziemy mieć wtedy siwe brody, pic sok jabłkowy przez słomkę i starać się rozpoznawać wnuczęta. A teraz obliczmy kiedy Twój program przestanie wskazywać prawdę... counting, o! już przy następnej aktualizacji rdzenia. I dlatego uważam, ze przyjąłes błędne założenie ze memac istnieje i jest niezmienny. Otóż memac jest umowna częścią obecnych rdzeni rodziny fx oraz jego funkcja się zmieni w kolejnej wersji. Jeśli natomiast potrzebujesz kolejnego absurdalnego pomysłu jak z blitterem to zainteresuj się detekcja poprzez definiowanie palety kolorów. Ok, dyskusja i tak jest bezcelowa ale z uśmiechem na ustach przyjmę aktualizacje artykułu "Wykrycie VBXE" po wypuszczeniu nowego rdzenia :) Xxl 10:03, 17 sie 2009 (CEST)
