Beta BASIC
Oryginalni autorzy | doktora Andy'ego Wrighta |
---|---|
Deweloperzy | BetaSoft |
Pierwsze wydanie | 1983 |
Ostateczne wydanie | Beta Basic v4.0 / 1987
|
System operacyjny | ZX Spectrum |
Typ | Interpreter języka programowania BASIC |
Licencja | Prawnie zastrzeżony |
Beta BASIC to interpreter języka BASIC dla mikrokomputera Sinclair Research ZX Spectrum , napisany przez dr Andrew Wrighta w 1983 roku i sprzedawany przez jego jednoosobową firmę programistyczną BetaSoft. BetaSoft wydał również regularny biuletyn / magazyn BetaNews.
Pierwotnie zaczął jako zestaw narzędzi BASIC , ale z czasem stał się pełnym zamiennikiem.
Udogodnienia
Beta BASIC całkowicie zastąpił Sinclair BASIC , który jako powszechny w tamtym czasie był również systemem operacyjnym zapewniającym interfejs wiersza poleceń (CLI). W ten sposób Beta BASIC dostarczył nowy i ulepszony CLI i edytor.
Obsługuje charakterystyczny system wprowadzania jednym klawiszem Sinclaira dla słów kluczowych BASIC, ale pozwala również na przeliterowanie słów kluczowych litera po literze. Usunęło to również konieczność zapamiętywania czasami tajemnych kombinacji klawiszy niezbędnych do wprowadzania rzadziej używanych w języku BASIC . Jednak system wprowadzania jednym klawiszem został również rozszerzony poprzez mapowanie „graficznych” znaków Spectrum na nowe słowa kluczowe Beta BASIC. Aby przełączyć się z wpisu słowa kluczowego na wpis wpisany, wystarczyło wpisać pojedynczą spację, powodując zmianę trybu kursora z K (słowo kluczowe) na L (małe litery) lub C (duże litery). ( KEYWORDS
można również użyć do zmiany tego zachowania, na przykład poprzez wyłączenie trybu K).
Edytor, wyświetlając listę, może opcjonalnie automatycznie ładnie wydrukować kod. Można było to zrobić ręcznie w Sinclair BASIC, ale automatyczne wcięcie ma tę zaletę, że podkreśla pewne rodzaje błędów kodowania - głównie te związane z niepoprawnym zamknięciem konstrukcji. Inne ulepszenia edycji obejmowały automatyczne podświetlanie wskaźnika bieżącej linii – niewielka poprawka, ale nieproporcjonalnie pomocna – oraz możliwość przesuwania kursora w górę iw dół, a także w lewo i w prawo, co jest ogromnym dobrodziejstwem podczas edycji długich linii. W połączeniu z 64-kolumnowym wyświetlaczem (patrz sekcja „Nowa funkcjonalność” poniżej), te ulepszenia sprawiły, że Beta BASIC stał się znacznie bardziej produktywnym środowiskiem, nawet do kodowania standardowego Sinclair BASIC i bez korzystania z dodatków językowych BetaSoft.
Beta BASIC był również samodzielnym interpreterem , z pominięciem Spectrum ROM , którego używał jako biblioteki. Od czasu do czasu wywoływał wywołania ROM, aby uzyskać dostęp do funkcji, których nie warto było ponownie wdrażać, ponieważ procedury ROM były wystarczająco dobre lub ze względu na miejsce - Beta BASIC musiał działać w 48 KB pamięci dostępnej w Spectrum i nadal pozostawiać miejsce dla kodu użytkownika.
Zmiany językowe
Jak na swoje czasy Beta BASIC był wyrafinowany. Zapewnia pełne programowanie strukturalne z nazwanymi procedurami i funkcjami , wraz ze zmiennymi lokalnymi , co pozwala na programowanie z wykorzystaniem rekurencji . Chociaż obsługiwał numery linii, nie były one konieczne i oferował tryb działania, który całkowicie tłumił wyświetlanie numerów linii.
Na maszynach Spectrum 128K Beta BASIC zapewniał rozszerzone możliwości umożliwiające programistom dostęp do dodatkowej pamięci maszyny, która przybrała formę dysku RAM . Oprócz umożliwienia programiście zapisywania i ładowania programów, bloków pamięci lub obrazów ekranu na dysk RAM i katalogowania zawartości dysku RAM, Beta BASIC udostępniał również polecenia do tworzenia i używania tablic przechowywanych na dysku RAM , umożliwiając programy działające w około 30 KB wolnej pamięci w Spectrum do manipulowania tablicami zbliżającymi się do 80 KB - znaczna dodatkowa ilość miejsca według standardów z lat 80. i więcej niż prawie każdy inny 8-bitowy język BASIC, który był ogólnie ograniczony do 64 KB programu i dane połączone.
Nowa funkcjonalność
Beta BASIC sterował również bezpośrednio wyświetlaczem Spectrum o rozdzielczości 256x192 pikseli , eliminując ograniczenia 32-kolumnowego wyświetlacza tekstowego ROM. Beta BASIC oferował skalowalne czcionki ekranowe , ze specjalną miękką czcionką, która miała tylko 4 piksele szerokości, ale nadal była czytelna. Oznaczało to, że Beta BASIC mógł wyświetlać 64 kolumny tekstu na ekranie, co czyni go bardziej porównywalnym z tradycyjnymi 80-kolumnowymi wyświetlaczami terminali komputerowych oraz typowych hobbystycznych i profesjonalnych maszyn CP / M. (Kilka komputerów domowych z lat 80. mogło również wyświetlać 80 kolumn). Jeśli użytkownik był przygotowany na tolerowanie wyświetlania znaków bez przerw między nimi, możliwe było wyświetlanie 85 kolumn. Nie było to zbyt czytelne, ale umożliwiało łatwe przenoszenie aplikacji BASIC zaprojektowanych na 80-kolumnowy ekran. Rozmiar tekstu można kontrolować programowo, tak aby część wyświetlacza programu mogła wykorzystywać tekst 64-kolumnowy, część tekstu 32-kolumnowego oraz powiększone lub zmniejszone rozmiary pośrednie.
Ograniczenia
Beta BASIC miał pewne ograniczenia. Podobnie jak w przypadku innych 8-bitowych mikroprocesorów, Spectrum mógł zaadresować tylko 64 KB ciągłej pamięci ze względu na ograniczenia adresowania procesora Zilog Z80 Spectrum . Z tego 16 KB zostało zajęte przez Sinclair BASIC ROM, pozostawiając 48 KB dla pamięci RAM. Ekran zajmował część tego, podobnie jak obszary używane do przechowywania wewnętrznych struktur danych tłumacza. Beta BASIC zajmował około 11-12 KB pozostałej części, w niektórych przypadkach pozostawiając tylko około 20 KB dla programów użytkownika.
Wymiana edytora Sinclaira oznaczała, że nie można było korzystać z pełnoekranowego edytora BASIC 128K Spectrum ROM. Żaden kompilator nie był dostępny dla kodu Beta BASIC, a istniejące kompilatory Sinclair BASIC, takie jak HiSoft BASIC, nie były w stanie obsłużyć rozszerzonych słów kluczowych i udogodnień Beta BASIC.
Innym pozostałym ograniczeniem Sinclair BASIC było to, że dla łańcuchów, tablic i innych typów można było używać tylko jednoliterowych nazw zmiennych.
Jedynym innym 8-bitowym językiem BASIC z wbudowaną obsługą programowania strukturalnego był BBC BASIC . Nazwane procedury Beta BASIC nie musiały być wywoływane za pomocą słowa kluczowego PROC, jak w BBC BASIC, i tym samym stały się nowymi słowami kluczowymi języka, umożliwiając rozszerzenie samego języka. Jednak BBC BASIC był znacznie szybszy - najszybszy interpreter języka BASIC w tamtych czasach. Beta BASIC nie był szczególnie szybki, chociaż zawierał szybsze zamienniki szczególnie wolnych procedur ROM, takich jak kod do rysowania okręgów i łuków.
Wersje
- BetaBasic V1.0 - 1983
- BetaBasic V1.8 - 1984
- BetaBasic V1.9 - 1984
- BetaBasic V3.0 - 1985
- BetaBasic V3.1 - 1985
- BetaBasic V4.0 - 1987
Wyprodukowano specjalne wersje dla użytkowników Interface 1 i ZX Microdrive , a następnie także dla użytkowników z interfejsami dysków Opus Discovery, DISCiPLE i PlusD . Przez jakiś czas rozważano również wersję dla Amstrad Spectrum +3 , ale Wright odrzucił projekt.
Dalszy rozwój
Podczas opracowywania nowego, wyrafinowanego następcy Spectrum, SAM Coupé , Alan Miles i Bruce Gordon z Miles Gordon Technology zwrócili się do BetaSoft i zlecili firmie Wright dostarczenie BASIC-a dla nowej maszyny. Dostarczył kompletny interpreter języka BASIC, który w dużym stopniu opierał się na wersji Beta BASIC, ale miał inną strukturę, ponieważ był to język sam w sobie i nie miał pamięci ROM Sinclaira, do której można by się odwołać lub obejść. SAM BASIC był w dużej mierze kompatybilny z Beta BASIC i działał w bardzo podobny sposób, z wyjątkiem obszarów, w których sprzęt SAM był znacząco inny, takich jak ekran SAM i rozszerzona pamięć. BetaSoft wydał później rozszerzenie do SAM BASIC o nazwie MasterBASIC.