IBM BASIC - IBM BASIC

Pięć 8- kilobajtowych chipów ROM DIP i puste 8-kilobitowe gniazdo rozszerzeń ROM na płycie głównej IBM PC . Cztery układy obsługują Cassette BASIC, a jeden obsługuje BIOS .

IBM Personal Computer Basic , powszechnie skracany do IBM BASIC , to język programowania wydany po raz pierwszy przez IBM wraz z IBM Personal Computer, Model 5150 (IBM PC) w 1981 roku. IBM wydał cztery różne wersje interpretera Microsoft BASIC , licencjonowane przez Microsoft dla komputer i PCjr . Są one znane jako Cassette BASIC, Disk BASIC, Advanced BASIC (BASICA) i Cartridge BASIC. Wersje Disk BASIC i Advanced BASIC zostały dołączone do IBM PC DOS do PC DOS 4. Oprócz funkcji standardu ANSI BASIC , wersje IBM oferowały wsparcie dla sprzętu graficznego i dźwiękowego z linii IBM PC. Kod źródłowy można było wpisać za pomocą pełnoekranowego edytora, a narzędzia do podstawowego debugowania programu były bardzo ograniczone . IBM wydał również wersję kompilatora Microsoft BASIC na PC, równolegle z wydaniem PC DOS 1.10 w 1982 roku.

tło

IBM licencjonował Microsoft BASIC dla komputerów osobistych IBM, pomimo posiadania już własnej wersji BASIC dla komputerów mainframe firmy. Don Estridge powiedział: "Microsoft BASIC miał setki tysięcy użytkowników na całym świecie. Jak zamierzasz się z tym kłócić?"

IBM Cassette BASIC

IBM Cassette BASIC
IBM Cassette BASIC.png
Deweloper Microsoft (dla IBM )
Po raz pierwszy pojawiły się 1981
Pod wpływem
IBM Disk BASIC, IBM BASICA, GW-BASIC

IBM Cassette BASIC był dostępny w 32 kilobajtach (KB) pamięci tylko do odczytu (ROM), niezależnie od 8 - kilobajtowej pamięci ROM BIOS -u oryginalnego IBM PC i nie wymagał do działania systemu operacyjnego . Cassette BASIC zapewniał domyślny interfejs użytkownika wywoływany przez BIOS przez INT 18h, jeśli nie było zainstalowanej stacji dyskietek lub jeśli kod startowy nie znalazł dyskietki startowej podczas uruchamiania. Nazwa Cassette BASIC pochodzi od użycia kaset magnetofonowych zamiast dyskietek do przechowywania programów i danych. Cassette BASIC został wbudowany w pamięci ROM oryginalnych komputerów PC i XT oraz wczesnych modeli z linii PS / 2 . Obsługuje tylko ładowanie i zapisywanie programów w interfejsie kasetowym IBM , który jest niedostępny w modelach po oryginalnym modelu 5150. Podstawowa wersja 5150 była wyposażona w zaledwie 16 KB pamięci o dostępie swobodnym (RAM), co było wystarczające uruchomić Cassette BASIC. Jednak Cassette BASIC był rzadko używany, ponieważ niewiele komputerów było sprzedawanych bez napędu dyskowego, a większość sprzedawano z systemem PC DOS i wystarczającą ilością pamięci RAM, aby przynajmniej uruchomić dysk BASIC - wiele z nich mogło również obsługiwać Advanced BASIC. Istnieją trzy wersje Cassette BASIC: C1.00 (znalezione na wczesnych komputerach IBM PC z płytami głównymi 16k-64k), C1.10 (znalezione na wszystkich późniejszych komputerach IBM PC, XT, AT i PS / 2) i C1.20 (znalezione na PCjr).

IBM Disk BASIC

IBM Disk BASIC
IBM Disk BASIC.png
Deweloper Microsoft (dla IBM )
Po raz pierwszy pojawiły się 1981
Wpływem
IBM Cassette BASIC
Pod wpływem
IBM BASICA, GW-BASIC

IBM Disk BASIC (BASIC.COM) był dołączony do oryginalnego IBM PC DOS . Ponieważ używa 32 KB Cassette BASIC ROM, BASIC.COM nie działał nawet na wysoce kompatybilnych klonach PC , takich jak Compaq Portable . Nazwa Disk BASIC pochodzi od użycia dyskietek oraz kaset do przechowywania programów i danych. Kod oparty na dyskach poprawił błędy w kodzie rezydentnym ROM i dodał obsługę dyskietek i portu szeregowego .

Dysk BASIC można zidentyfikować po użyciu litery D poprzedzającej numer wersji. Dodaje obsługę dysków i niektóre funkcje, których brakuje w Cassette BASIC, ale nie zawiera rozszerzonych funkcji dźwięku / grafiki BASICA. Podstawowym celem Disk BASIC była "lekka" wersja dla IBM PC z tylko 48 KB pamięci: BASIC.COM miałby wtedy około 23 KB wolnego miejsca na kod użytkownika, podczas gdy BASICA miałby tylko około 17 KB. Do 1986 roku wszystkie nowe komputery PC były dostarczane z co najmniej 256k i wersjami DOS po 3.00 zredukowano Disk BASIC do tylko małego kodu, który nazywał się BASICA.COM dla kompatybilności z plikami wsadowymi. Nawet przy całym tym nadmiarze pamięci RAM BASIC nadal przydzielałby i zarządzał tylko nieco mniej niż 61 KB dla programów użytkownika, niezależnie od tego, czy był to Cassette BASIC, BASIC.COM czy BASICA.

IBM Advanced BASIC

IBM Advanced BASIC (BASICA)
IBM BASICA.png
Deweloper Microsoft (dla IBM )
Po raz pierwszy pojawiły się 1981  ( 1981 )
Platforma Komputer osobisty IBM
OS IBM PC DOS
Wpływem
IBM Cassette BASIC, IBM Disk BASIC
Pod wpływem
GW-BASIC

IBM Advanced BASIC (BASICA.COM) był również zawarty w oryginalnym IBM PC DOS i wymagał kodu rezydentnego ROM Cassette BASIC. Dodaje funkcje, takie jak dostęp do plików dyskietkowych, przechowywanie programów na dysku, dźwięk monofoniczny za pomocą wbudowanego głośnika komputera, funkcje graficzne do ustawiania i czyszczenia pikseli, rysowania linii i okręgów oraz ustawiania kolorów, a także obsługa zdarzeń w komunikacji i naciśnięciach joysticków. BASICA nie będzie działać na komputerach innych niż IBM (nawet tak zwanych maszynach „w 100% kompatybilnych”) lub nowszych modelach IBM, ponieważ nie mają one wymaganego ROM BASIC.

Wersje BASICA są takie same jak ich odpowiednie wersje DOS, zaczynając od v1.00 i kończąc na v3.30. Wczesne wersje BASICA nie obsługują podkatalogów, a niektóre polecenia graficzne działały nieco inaczej. Na przykład, jeśli instrukcja LINE została użyta do narysowania linii kończących się poza ekranem, BASIC po prostu przecina je z najbliższą sąsiednią linią, podczas gdy w BASIC 2.xi nowszych, znikają one z ekranu i nie przecinają się. Polecenie PAINT w BASIC 1.x rozpoczyna wypełnianie od określonej współrzędnej i rozszerza się na zewnątrz w naprzemiennych kierunkach w górę iw dół, podczas gdy w BASIC 2.x wypełnia wszystko poniżej współrzędnej początkowej, a po zakończeniu wszystko powyżej niej. Polecenie PAINT w programie BASIC 1.x również wykorzystuje stos systemowy do przechowywania, a podczas wypełniania złożonych obszarów może wystąpić błąd OVERFLOW. Aby temu zaradzić, można użyć instrukcji CLEAR do rozszerzenia stosu języka BASIC (rozmiar domyślny to 128 bajtów). BASIC 2.x nie używa stosu podczas MALOWANIA i dlatego jest wolny od tego problemu.

Compaq BASIC 1.13 był pierwszym samodzielnym BASICem na PC (który nie wymagał uruchomienia Cassette BASIC), a także jedyną wersją BASIC oprócz IBM BASICA 1.00 i 1.10, która korzystała z FCB i zawierała oryginalną instrukcję LINE z przecinającymi się liniami (PAINT instrukcja Compaq BASIC 1.13 działała jak we wszystkich późniejszych wersjach BASICA / GW-BASIC, używając nowego algorytmu wypełniania i bez stosu).

Wczesne wersje PC DOS zawierają kilka przykładowych programów BASIC demonstrujących możliwości komputera, w tym grę BASICA DONKEY.BAS .

GW-BASIC jest identyczny z BASICA, z wyjątkiem włączenia kodu Cassette BASIC do programu, dzięki czemu może działać na komputerach innych niż IBM i późniejszych modelach IBM, które nie mają Cassette BASIC w pamięci ROM.

Kaseta IBM PCjr BASIC

Kartridż wersja BASIC był dostępny tylko na IBM PCjr , wysłane w 1984 roku i obsługuje dodatkowe tryby graficzne i możliwości dźwiękowe możliwe na tym komputerze. Jest to nadzbiór zaawansowanego języka BASIC. Kaseta BASIC może działać tylko w ramach pierwszych 128 KB pamięci w PCjr i nie będzie działać z rozszerzeniem RAM, tj. Funkcja DEF SEG nie może być używana do wskazywania segmentów pamięci powyżej & H1FF0.

Kaseta BASIC jest aktywowana przez wpisanie BASICA w wierszu poleceń DOS. I odwrotnie, IBM BASICA w wersji 2.1 i nowszych odmówi uruchomienia, jeśli wykryje PCjr, ale można je załatać, aby obejść ten problem.

Operacja

Cassette BASIC ładuje się, gdy komputer PC lub PCjr jest uruchamiany bez dysku rozruchowego lub kasety. Dysk BASIC i Advanced BASIC ładują się, gdy ich nazwy poleceń (odpowiednio BASIC i BASICA) są wpisywane w wierszu poleceń DOS (z wyjątkiem PCjr, który zamiast tego aktywuje Cartridge BASIC), z pewnymi opcjonalnymi parametrami kontrolującymi alokację pamięci. Po załadowaniu komunikat identyfikacyjny logowania wyświetla numer wersji programu i uruchamia się pełnoekranowy edytor tekstu (patrz obrazy po prawej). Klawiszom funkcyjnym przypisano typowe polecenia, które są wyświetlane u dołu ekranu. Można wpisywać polecenia w celu załadowania lub zapisania programów, a wyrażenia można wpisywać i wykonywać w trybie bezpośrednim (natychmiastowym) . Jeśli wiersz wejścia zaczyna się od liczby, system językowy przechowuje następujący wiersz tekstu jako część źródła programu, umożliwiając programiście wprowadzenie całego programu wiersz po wierszu, wprowadzając numery wierszy przed każdą instrukcją. Linie wyświetlane na ekranie są wyświetlane w kolejności rosnącej liczby linii. Zmiany można wprowadzić w wyświetlanej linii kodu źródłowego programu, przesuwając kursor do linii za pomocą klawiszy kursora i wpisując tekst na ekranie. Źródło programu jest przechowywane wewnętrznie w formie tokenizowanej , w której zarezerwowane słowa są zastępowane jednobajtowym tokenem, aby zaoszczędzić miejsce i czas wykonywania. Programy mogą być zapisywane w kompaktowej formie tokenizowanej lub opcjonalnie zapisywane jako pliki tekstowe DOS ASCII , które można przeglądać i edytować za pomocą innych programów. Podobnie jak większość innych aplikacji DOS, IBM BASIC jest programem w trybie tekstowym i nie ma funkcji okien, ikon, obsługi myszy ani edycji typu „wytnij i wklej”.

Dziedzictwo

GW-BASIC , wprowadzony na rynek w 1983 roku, jest dyskowym produktem Microsoft, który był dystrybuowany z komputerami MS-DOS innymi niż IBM i obsługuje wszystkie tryby graficzne i funkcje BASICA na komputerach, które nie mają IBM Cassette BASIC.

Następcą BASICA dla wersji MS-DOS i PC DOS, obecnie wycofany, jest QBasic , wydany w 1991 roku. Jest to okrojona wersja kompilatora Microsoft QuickBASIC : QBasic jest interpretatorem i nie może kompilować plików źródłowych, podczas gdy QuickBASIC może kompilować i zapisz programy w formacie pliku wykonywalnego .EXE.

Bibliografia

Linki zewnętrzne