W zeszły weekend podpinaliśmy moją IDEę (która u mnie od miesięcy działa absolutnie bez pudła) do komputera mono. Jest to Atari ze stereo, VBXE i 1 MB RAM-u. Wszystko było dobrze, póki nie postanowiliśmy posłuchać muzyczki Husaka z Bank Bang. Okazało się, że gra nie chce chodzić.
Zmieniłem loader z SD-Load na MS-DOS. To samo. Ściągnęliśmy MS-DOS 4.6 z forum. To samo. Za każdym razem gra się wykrzaczała, mniej lub bardziej malowniczo, i, co było bardzo podejrzane, w zasadzie za każdym razem inaczej. Na ogół był to po prostu zwis przy depakingu, ale czasem fakap był bardzo malowniczy (raz udało się jej w ten sposób włączyć tryb stdres VBXE, sieczka miała rozdzielczość 320x240 i 256 kolców...) i w innym miejscu.
Ściągnęliśmy nową kopię Bank Bang z sieci (od Fandala). Porównanie z moją binarką: zero różnic. Odpaliliśmy z SIO - poszła. Raz, drugi, trzeci.
W tym momencie podejrzenie przeniosło się na twardziel. Sprawdziliśmy stabilność I/O przez kopiowanie tego samego pliku (BANKBANG.XEX, ~42k) kilkadziesiąt razy w inne miejsce i porównanie kopii z oryginałem (oczywiście nie ręcznie: plikiem BAT). Zero różnic. Przeciąganie zawalonych plikami partycji CLX-em (który analizuje strukturę dysku bardzo dokładnie i zwykle wydziera mordę od razu, jak tylko transmisja się krzaczy) dało taki sam efekt: no errors.
W końcu wzięliśmy się za bebeszenie samej binarki gry podejrzewając, że jest jakoś uzależniona np. od tego, w którym miejscu przed wystąpieniem VBL-a jest uruchamiana. Efekt: nic podejrzanego tam nie ma, cytuję mono: "To nie ma prawa nie działać".
Sprzęt: SpartaDOS X 4.42f cały czas działała absolutnie stabilnie, zero zawisów. Był jeden wyjątek, kiedy po naciśnięciu RESET komp się nie wiedzieć czemu zrestartował na zimno, ale to raz przez cały dzień, więc można powiedzieć, że to nieważne (przypadek, któryś program coś namieszał). Co więcej, jedyne dwa razy, kiedy udało się w wyniku licznych prób uruchomić Bank Bang - to były właśnie uruchomienia spod Sparty X. Tylko że to też się udawało bardzo rzadko. Z loaderów - nie poszła ani razu.
Teraz podpiąłem ten sam dysk i ten sam interfejs IDEa do mojego kompa. Efekt: Bank Bank śmiga, uruchamia się za każdą próbą. Tak samo "stereofoniczny" Draconus, którego u mono nie mogliśmy odpalić z IDEa za chińskiego boga (zwis po obrazku tytułowym). Natomiast, przypomnę, u mono obie gry chodziły z SIO.
Tylko że ja mam "prawie gołe" 130XE, jedynym rozszerzeniem w nim jest VBXE, obecnie z rdzeniem A. Czyli, z punktu widzenia programu, komp ma gołe 128k.
Pytanie, co tam jest nie tak. Może coś oczywistego przegapiliśmy, ale mnie się wydaje, że to nie jest jakiś oczywisty przypadek. DOS, dość skomplikowany i wykorzystujący intensywnie pamięć EXT, działa i nawet udaje mu się czasem załadować program, którego nie może załadować żaden loader.
Przyszło mi do głowy, że może winne jest MMU albo coś, co tam za MMU robi, sterując pamięcią, zainstalowane razem z rozszerzeniem 1 MB. Być może przy podłączaniu i odłączaniu romu IDEi dzieje się coś z wewnętrznym ROM-em Atari, może on momentami znika albo się jakoś krzaczy, co powoduje walenie się przerwań VBL i/lub kodu samego SIO (do którego wykonywanie programu wraca po powrocie z ROM-u IDEi).
Niestety nie sprawdziliśmy, jak się zachowuje ładowanie z SIO przy aktywnej IDEi, tzn. przy jednym dysku przemontowanym na SIO - wtedy wywołania SIO i tak "idą" przez ROM IDEi, więc gdyby przy tym robiły się krzaki, to i SIO by się sypało. Nie przyszło mi to do głowy na czas :/
Ma ktoś jakiś pomysł, co tam nie działa i w jaki sposób?
PS. A i jeszcze jedno, może zupełnie bez związku, ale jak wiadomo, powszechna fama jest taka, że "u Pinokia nie działa". Otóż, komp Pinokia też ma 1 MB i IDEa.
? HEX$(6670358)