No dobra, daje się jeszcze coś zoptymalizować :) Skróciłem loader o 14 bajtów :) Za to po dodaniu 12 bajtów loader nie będzie - na czas uruchomienia bloku z podanym adresem inicjacji - zostawiał żadnych swoich danych na stronie zerowej.
Ewentualne intra będą ją miały dla siebie w całości.
Chyba tak zrobię, choć zmniejszy to zysk pamięci do 2 bajtów :)
No i jest jeszcze jedna rzecz, którą chcę zmienić. W tej chwili loader przed uruchomieniem wczytanego programu odkłada na stos adres powrotu do SelfTest , czyli jak gra po uruchomieniu chce wracać do DOSa, to dostaje SelfTest. Niby fajnie, ale mam taką jedną grę - a lubię ją - nazywa się Jet Boot Jack :)
Otóż ta gra ma na starcie procedurę modyfikującą wektory skoku po reset na start gry wlasnie i kończącą się RTS. W efekcie po wczytaniu jej MSDOSem mamy SelfTest a po naciśnięciu Reset odpala się gra.
Mam taki koncept, na stos zamiast adresu SelfTest odkładam skok do resetu, a wcześniej wektory ciepłego startu ustawiam na SelfTest właśnie.
Czyli jeśli program zakończy się RTS nic to nie zmieni... ale jeśli wcześniej zmieni wektory resetu, to zadziała tak jakby wcisnął się reset.
Do zrobienia proste, kodu nie wydłuży a Jet Boot Jack się ładnie odpali - a może to nie jedyna taka gra :)
Chyba że ktoś ma uwagi do tej koncepcji ....


