Original in English
The QBasic Station Home Page

 


QuickBasic pod Windows XP

    (przekład z QBasic Station)

    Otrzymałem kilka wiadomości od gości na tej stronie dotyczących alokacji pamięci - jak to ich programy w QB generują błąd "Za mało pamięci".

    Oto dlaczego QB czasami nie chce pracować w oknach. Gdy po raz pierwszy pojawił się domowy PC "XT8086", zbudowano go z 640 KB pamięci konwencjonalnej. Była to pamięć, gdzie DOS i jego programy miały być ładowane do uruchomienia. Ten blok pamięci miał (i nadal ma) specyficzne adresy sprzętowe, i wszystkie programy wiedziały, gdzie to było.

    640 KB wystarczało przez szereg lat, ponieważ DOS mógł uruchomić tylko jeden program na raz. Gdy program kończył się, pamięć była zwalniana. BASIC (i później QBasic) został oczywiście zbudowany do pracy w tej konwencjonalnej pamięci, ponieważ niczego wiecej nie było.

    Zanim zostało wypuszczone Windows 3.1, za jakiś czas stała się dostępna pamięć rozszerzona. Pamięć ta, podzielona na opcjonalne "bloki pamięci", była obszarem dodanym na końcu pamięci konwencjonalnej. 640 KB nie wystarczało na raz dla większych programów, tak więc dodatkowa pamięć była czasami potrzebna dla ich uruchomienia.

    Gdy pojawiły się te nowe konwencje pamięci, pokazało się kilka programów do zarządzania pamięcią. Programy takie jak MM386 i HIMEM były przeznaczone do tego, aby pozwolić programom, które typowo używały pamieci konwencjonalnej - używać rozszerzoną pamięć EMS. Na przykład, DOS mógł być skonfigurowany do pracy w górnej pamięci, przez co więcej pamięci konwencjonalnej było dostepne dla innych programów.

    Przeskoczmy kilka lat naprzód do powstania Windows NT. Ten system nie uznaje bezpośredniego dostępu do pamięci. Zamiast startować w predefiniowanej sekcji pamięci, program "prosi" Windows NT o blok pamięci określonej wielkości. NT przydziela pamięć z dostępnego zakresu i przypisuje ją do programu. Ten proces zwany jest Hardware Abstraction Layer (HAL). Użytkownicy QBasic'a nie cierpią HAL'a, bo nie pozwala on na bezpośredni dostęp do hardware'u, jak odczyt i zapis do portów COM, portu równoleglego lub adresów pamięci.

    Szczęśliwie dla nas QBasicowców, Windows 2000/ME/XP ma parę specyficznych ustawień dostępnych dla programów DOSowskich. Jeden z gości QBasic Station, Bob Goddard, podzielił się garscią informacji, jak skonfigurować QB pod Windows. Ta konfiguracja powinna pomóc Wam w wiekszości problemów z zarządzaniem pamięcią.

    Jeśli jesteś wiernym programistą QB, ograniczonym przez Windows, prawdopodobnie masz do QB skrót na pulpicie, prawda? Oto, co trzeba zrobić:

  1. Kliknij prawym przyciskiem myszy na skrót do QB i wybierz Właściwości
  2. Kliknij zakładkę Pamięć
  3. Ustaw wszystkie rozwijalne menu na Automatycznie
  4. Kliknij Zastosuj/OK

Widok zakładki "Pamięć"

Ustawienia własciwej alokacji pamięci dla QBasic/QuickBasic>

     Te ustawienia pozwolą QBasic'owi używać EMS i XMS tak, jak to robił pod DOSem. Osobiscie, zauważyłem, że moje własne ustawienia nie pozwalały mi używać pamięci EMS czy XMS. Jakoś nie.

    Mam nadzieje, że ta informacja pomogła Wam, i czy tak było, czy nie, dajcie mi, proszę, znać. Miło byłoby wiedzieć, ze to, co tu powiedziałem, rzeczywiście działa.

- Napisał Jack Thomson
dla QBasic Station
Przełożył: D.A.M. Deger


The QBasic Station Articles Index


The QBasic Station, (C) Copyright 1997-2006