O ile 16kB faktycznie wydaje się małą ilością jak na komputer z początku lat 80, to już na pewno nie spodziewałbym się pełnych 640kB w tym okresie.
Sprawdziłem, że pierwszy XT miał 128kB, czyli w sumie ilość całkiem przyzwoita.
To nie jest szokujące. Miałeś do dyspozycji 256 przerwań. Pewnie wywołanie było szybsze niż wywołanie + długi switch.
To wszystko było podyktowane specyficznym pojmowaniem bezpieczeństwa wtedy. Czyli co się stanie kiedy program się wysypie i zacznie wykonywać jakiś losowy adres.
Sprawdzenie ilości pamięci w komputerze nie wydaje się być często wykonywaną operacją. :-)
Mnóstwo ważniejszych “syscalli” było multipleksowane na tym samym numerze przerwania.
Nie wiem. By trzeba zobaczyć historię API. Nie wiem czym się motywowali twórcy. Niektóre rzeczy mają sens i są pogrupowane tematycznie. Inne są dość chaotyczne. Jakby ktoś sobie dopisał coś do istniejącego kodu na koniec.
O ile 16kB faktycznie wydaje się małą ilością jak na komputer z początku lat 80, to już na pewno nie spodziewałbym się pełnych 640kB w tym okresie.
Sprawdziłem, że pierwszy XT miał 128kB, czyli w sumie ilość całkiem przyzwoita.
Znalazłem opis funkcji do wykrywania ilości pamięci: https://wiki.osdev.org/Detecting_Memory_(x86) Najstarsza ma rozdzielczość 1 kB w zakresie od 0 do 1MB (w teorii).
Dość szokujące, że zmarnowali przerwanie 12h na jedną funkcję: https://en.wikipedia.org/wiki/BIOS_interrupt_call
To nie jest szokujące. Miałeś do dyspozycji 256 przerwań. Pewnie wywołanie było szybsze niż wywołanie + długi switch. To wszystko było podyktowane specyficznym pojmowaniem bezpieczeństwa wtedy. Czyli co się stanie kiedy program się wysypie i zacznie wykonywać jakiś losowy adres.
Sprawdzenie ilości pamięci w komputerze nie wydaje się być często wykonywaną operacją. :-)
Mnóstwo ważniejszych “syscalli” było multipleksowane na tym samym numerze przerwania.
Nie wiem. By trzeba zobaczyć historię API. Nie wiem czym się motywowali twórcy. Niektóre rzeczy mają sens i są pogrupowane tematycznie. Inne są dość chaotyczne. Jakby ktoś sobie dopisał coś do istniejącego kodu na koniec.