• naurM
    link
    fedilink
    Polski
    arrow-up
    1
    ·
    edit-2
    1 month ago

    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

    • サぺルOP
      link
      fedilink
      Polski
      arrow-up
      1
      ·
      1 month ago

      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.

      • naurM
        link
        fedilink
        Polski
        arrow-up
        1
        ·
        edit-2
        1 month ago

        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.

        • サぺルOP
          link
          fedilink
          Polski
          arrow-up
          1
          ·
          1 month ago

          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.