takron27 napisał/a:jeśli będzie za mało pamięci na dekodowany program, to co, antyajek zgłosi jakiś błąd/komunikat? czy to że nie podsumuje 'kodem 01' zakończenia tworzenia xexa ?
Właśnie mi uświadomiłeś że nie pamiętam czy ja w ogóle sprawdzam przepełnienie bufora, sprawdzę bo naprawdę nie pamiętam :D
EDIT: tak dla uścislenia, bufor programu wyświetlany po starcie, np. MEM: $E800 oznacza maksymalny rozmiar bloku jaki na raz można wczytać do pamięci. Anty *AJEK wczytuje do tego bufora do momentu aż nie wystąpi następny blok poprzedzony tonem "synchronizującym". Gdy tylko taki blok się uda wczytać, program zatrzymuje silnik/odczyt z taśmy i nagrywa zawartość bufora na dysk, po czym wznawia odczyt i tak do końca pliku.
EDIT2: zajrzałem do źródeł, obliczam co prawda długość bloku do wczytania, ale zupełnie ignoruję fakt że dane mogą się w buforze nie zmieścić, efekt przy przepełnieniu bufora będzie taki że gdy ostatni bajt bufora zostanie zapełniony ($FFFF <--- koniec RAM po OS-ROM), to program zacznie mazać od początku pamięci (od adresu $0000) i nastąpi spektakularna klapa i zamazanie istotnych zmiennych na stronie zerowej, jeżeli to jakimś cudem nie spowoduje "zwiechy", to następnym obszarem do zamazania będzie stos ($0100-$01FF) a zamazanie tego obszaru już na pewno doprowadzi do katastrofy i nieuchronnej zwiechy systemu.
Prawdę mówiąc nawet nie mam pomysłu jak sprawdzać dodatkowe warunki, format Speedy2700 daje niewie czasu na operacje ponieważ strumień bitów leci bezustannie i dodawanie nowych instrukcji w trakcie odczytu strumienia (np. sprawdzanie końca bufora) zmienia zależności czasowe pętli odczytującej dane... i może być tak że to co będzie się wczytywało ze standardowym loader-em Speedy2700 nie będzie chciało się czytać w Anty *AJEK. Pomyślę jak to rozwiązać, może coś mi wpadnie do głowy.
Tak naprawdę należałoby wiedzieć jakim buforem dysponował "*AJEK COPY", jest szansa że "Anty *AJEK" uruchomiony bez DOS, z buforem na poziomie $E800 ma większy bufor na dane niż ten którym dysponował "*AJEK COPY".