Dyskusja:Wykrycie VBXE
From Atariki
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)