Dyskusja:Wykrycie VBXE

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 14:35, 17 sie 2009
KMK (Dyskusja | wkład)

← Previous diff
Wersja z dnia 08:32, 14 wrz 2009
Xxl (Dyskusja | wkład)
(w kółko Macieju)
Next diff →
Linia 32: Linia 32:
:Nie szkoda ci czasu na wypisywanie tych elukubracji? [[Użytkownik:KMK|KMK]] 16:35, 17 sie 2009 (CEST) :Nie szkoda ci czasu na wypisywanie tych elukubracji? [[Użytkownik:KMK|KMK]] 16:35, 17 sie 2009 (CEST)
 +
 +Tak, banan pojawił się na mojej twarzy. Program został zaktualizowany na potrzeby nowego rdzenia czyli jednak założenie było błędne nieprawdaż (stary nie miał szans zadziałać na nowym rdzeniu)?. Teraz poproszę kolejną aktualizację - istnieje pewne prawdopodobieństwo, że komórka $4000 zostanie zmieniona po przejściu/nieprzejściu tego "testu" (więc program, który wywołuje "test" może zostać uszkodzony), za starych dobrych czasów programy robiące testy na pamięci nigdy nie zmieniały jej zawartości... Ale to będzie najlepsze! (nie, najlepsza jest idea sprawdzenia obecności karty poprzez badanie obecności opcjonalnego modułu karty) otóż piszesz, że procedurę można wywołać tylko raz a wcześniej wywołanie procedury "testu" uzależnione jest od wersji kary, czyli robimy "test" na obecność rdzenia 1.09, modyfikujemy "test" i znowu go robimy na obecność rdzenia 1.2 - troszkę ten "test" się rozrasta no ale o taką aktualizację też poproszę, nikt pewnie nie będzie używał ale przynajmniej ludzie nie będą się śmiali. [[Użytkownik:Xxl|Xxl]] 10:32, 14 wrz 2009 (CEST)

Wersja z dnia 08:32, 14 wrz 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)
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)

Nie szkoda ci czasu na wypisywanie tych elukubracji? KMK 16:35, 17 sie 2009 (CEST)

Tak, banan pojawił się na mojej twarzy. Program został zaktualizowany na potrzeby nowego rdzenia czyli jednak założenie było błędne nieprawdaż (stary nie miał szans zadziałać na nowym rdzeniu)?. Teraz poproszę kolejną aktualizację - istnieje pewne prawdopodobieństwo, że komórka $4000 zostanie zmieniona po przejściu/nieprzejściu tego "testu" (więc program, który wywołuje "test" może zostać uszkodzony), za starych dobrych czasów programy robiące testy na pamięci nigdy nie zmieniały jej zawartości... Ale to będzie najlepsze! (nie, najlepsza jest idea sprawdzenia obecności karty poprzez badanie obecności opcjonalnego modułu karty) otóż piszesz, że procedurę można wywołać tylko raz a wcześniej wywołanie procedury "testu" uzależnione jest od wersji kary, czyli robimy "test" na obecność rdzenia 1.09, modyfikujemy "test" i znowu go robimy na obecność rdzenia 1.2 - troszkę ten "test" się rozrasta no ale o taką aktualizację też poproszę, nikt pewnie nie będzie używał ale przynajmniej ludzie nie będą się śmiali. Xxl 10:32, 14 wrz 2009 (CEST)

Personal tools