Hej!
dwa slowa, jesli szukasz miejsca na ZP to to wydaje sie najodpowiedniejsze dla tego typu programu:
Disk file manager system (FMS) page zero registers (seven bytes).
Dzięki za info, sprawdzę czy po użyciu tych lokacji zmieszczę loader w jednym rekordzie w pełnej wersji.
sprawa dwa... nie warto ograniczac sie do "128 bajtow" ze niby 1 rekord... wspanialy OS wymusza jeden rekord wiecej
No ale ta moja wersja 1-rekordowa uruchamia się dokładnie po wczytaniu jednego rekordu i nie wymaga rekordu EOF. Jak pisałem wcześniej ten pomysł podrzucił Pecuś opisując go dokładniej w tym poście: jedno blokowy BOOT, a zaczęło się od tego pytania.
Wracając to głównego wątków u mojej jedno-blokowej wersji loadera... masz dokładnie jeden rekord i potem już bez długiej przerwy IRG mogą lecieć następne rekordy zawierające dane pliku, widać to na tym przykładzie:
https://www.youtube.com/watch?v=EQPUdTIRjbA
... ktory i tak musi byc co nie znacz :DDD ze ten rekord ma byc pusty :DDD prosta sztuczka z kopiowaniem zawartosci tego niby pustego rekordu i nagle zyskujesz miejsce na kod ;-)
No ale tak właśnie robi wersja 2-rekordowa, tzn. ładuje dwa rekordy (bez rekordu typu EOF) i potem kopiuje pozostałe dane z bufora magnetofonu ($400-$47F) w docelowe miejsce ($780-$7FF) po czym już bez przerwy IRG mogą lecieć dane wczytywanego pliku.
Zatem jak widać podane wielkości loderów podałem bez pustych rekordów EOF które w obu przypadkach nie są wymagane, a wręcz nie powinno ich być.
Że też nikt? W tamtych czasach nie wrzucił loadera na stos, tam się marnuje jakieś 240-250 bajtów przy prostych programach (a takim jest loader). Wtedy bufor robimy na stronie zerowej od 0x80 i wszystko się wczyta.
Powiem tak... w czasach kiedy powstawał ten loader, to wśród ludzi krążyły różne i tak dziwaczne wersje plików i gier że lokowały się gdzie popadanie, również na stosie (np. pliki wykonywalne potraktowane np. "Zagęszczaczem" od Darka Rogoźińskiego / IRON SOFT umieszczały swoje procedurę czyszczenia pamięci właśnie na stosie) ... do kompletów część programów podczas ładowania wykonywała jakieś karkołomne operacje w pamięci, przepisując się tu i ówdzie i korzystając w tym celu z "losowo" wybranych komórek na stronie zerowej. To wymuszało na człowieku który pisał loader aby nie wykorzystywał on żadnych lokacji na stronie zero, bo spora część programów podczas ładowania mogła pozmieniać zawartość różnych komórek na stronie zero.
Była cała masa plików typu "file" które łamały dobre zasady "kodowania" i lokowały się w różnych dziwnych miejscach, stąd właśnie chęć uniknięcia tych wszystkich różnych dziwnych obszarów... sam święty nie byłem i jak chciałem sobie zrobić wersję file jakiegoś dużego programu to upychałem swoje wstawki gdzie się tylko dało (np. w buforze drukarki $3C0-$3E7)

.png)



.png)
.png)