Jest sobie procedura opisana przez Zientarę jako "SEND buffer to serial bus". Adres $EA88, strona 126 wejścia i wyjścia. Jest w niej taka sekwencja:
lda (bufr),y
sta serout
sta chksum
Tak jest w ROM-ie od 800XL, czyli BB 01.02, tym najbardziej rozpowszechnionym. Natomiast w ROM-ie od nowszych 130XE oraz w ROM-ie od 1450XLD jest tak:
lda (bufr),y
sta chksum
sta serout
Tak też jest w ROM-ie 65c816 BB 02.05, bo doszedłem do wniosku, że jeśli ja co prawda nie widzę żadnej różnicy, ale Atari widziało na tyle, żeby tę zmianę wprowadzić konsekwentnie w wersji rozwojowej systemu, to coś w tym musi być. Tak więc zamieniłem te dwie linie miejscami.
Otóż, okazuje się, że to właśnie powoduje kłopoty z odczytem config.sys przez SpartaDOS X 4.20! Jak te rozkazy są w takiej kolejności, jak w 800XL, odczyt configa udaje się prawie zawsze. Jeśli jest odwrotnie, nie udaje się prawie nigdy. Danie kolejności rozkazów takiej jak w 800XL i dodatkowo dorzucenie NOP powoduje, że SDX czyta config.sys zawsze.
Objaw "nieudawania się" jest taki, jakby przerwanie końca transmisji szeregowej nie występowało nigdy i znacznik XMTDON cały czas pozostawał wyzerowany.
To przechodzi moją zdolność pojmowania. Czy znawcy Pokeya mogliby mi to jakoś w prostych, żołnierskich słowach objaśnić?