Żołądź MOS
Deweloper | Komputery żołądź |
---|---|
Napisane w | 8-bitowy kod maszynowy 6502 (v0, v1) 65C02 kod maszynowy (v2–v5) |
Stan roboczy | Przerwane |
Model źródłowy | Zamknięte źródło |
Pierwsze wydanie | koniec 1981 roku |
Ostateczne wydanie | 5 / Początek 1986 roku |
Cel marketingowy | Komputery osobiste |
Dostępne w | język angielski |
Zaktualizuj metodę | Zamienne ROMy |
Platformy | BBC Micro , Acorn Electron , seria BBC Master |
Typ jądra | Monolityczny |
Domyślny interfejs użytkownika |
Interfejs wiersza poleceń (v3, v4, v5) |
zastąpiony przez |
ARX (wycofany) Arthur, przemianowany na RISC OS |
Machine Operating System ( MOS ) lub OS to wycofany komputerowy system operacyjny ( OS ) używany w ofercie komputerów BBC firmy Acorn Computers . Obejmował obsługę czterokanałowego dźwięku, grafiki, abstrakcji systemu plików oraz cyfrowych i analogowych wejść/wyjść (I/O), w tym połączonej łańcuchowo magistrali rozszerzeń. System był jednozadaniowy, monolityczny i niereentrantowy .
Wersje od 0.10 do 1.20 były używane w BBC Micro , wersja 1.00 w Electron , wersja 2 była używana w B +, a wersje od 3 do 5 były używane w serii BBC Master .
Ostatni komputer BBC, BBC A3000, był 32 -bitowy i działał z systemem operacyjnym RISC , który zachował części architektury Acorn MOS i miał wiele wspólnych cech (np. ) z wcześniejszym 8-bitowym MOS.
Wersje MOS od 0 do 2 miały rozmiar 16 KiB , były zapisane w kodzie maszynowym 6502 i były przechowywane w pamięci tylko do odczytu (ROM) na płycie głównej . Górna ćwiartka 16-bitowej przestrzeni adresowej (od 0xC000 do 0xFFFF) jest zarezerwowana dla kodu ROM i przestrzeni we/wy.
Wersje od 3 do 5 były nadal ograniczone do przestrzeni adresowej 16 KiB, ale udało im się pomieścić więcej kodu, a tym samym bardziej złożone procedury, częściowo dzięki alternatywnej jednostce centralnej (CPU) 65C102 z jej gęstszym zestawem instrukcji oraz ostrożnym wykorzystaniem stronicowania .
Interfejs użytkownika
Oryginalne wersje MOS, od 0 do 2, same w sobie nie miały interfejsu użytkownika: aplikacje miały przekazywać wiersze poleceń systemu operacyjnego do systemu operacyjnego w jego imieniu, a język programowania BBC BASIC ROM z wbudowanym asemblerem 6502 , dostarczony z BBC Micro jest domyślną aplikacją używaną do tego celu. BBC Micro zatrzymałby się z językiem?
błąd, jeśli nie ma pamięci ROM, która ogłasza systemowi operacyjnemu możliwość udostępnienia interfejsu użytkownika (tzw. językowe pamięci ROM ). MOS w wersji 3 i nowszych zawierał prosty interfejs wiersza poleceń , zwykle widoczny tylko wtedy, gdy plik Pamięć CMOS nie zawierała ustawienia domyślnego języka ROM.
Programy użytkowe w pamięci ROM, a także niektóre programy oparte na kasetach i dyskach zazwyczaj udostępniają wiersz poleceń, przydatny do pracy z przechowywaniem plików, na przykład przeglądania aktualnie włożonej płyty. System operacyjny zapewnia funkcję wprowadzania wierszy i wykonuje wprowadzone polecenia, ale aplikacja nadzoruje uruchamianie wiersza polecenia.
Oprogramowanie oparte na kasecie i dysku zazwyczaj opiera się na własnym interfejsie użytkownika BBC BASIC w celu załadowania, chociaż możliwe jest skonfigurowanie dyskietki do uruchamiania bez konieczności wykonywania poleceń języka BASIC, co było rzadko używane w praktyce.
W BBC BASIC polecenia systemu operacyjnego są poprzedzone gwiazdką lub przekazywane za pomocą słowa kluczowego OSCLI, aby poinstruować BASIC, aby przekazał to polecenie bezpośrednio do systemu operacyjnego. Doprowadziło to do tego, że gwiazdka była symbolem zachęty dla dowolnego oprogramowania udostępniającego wiersz poleceń systemu operacyjnego; MOS w wersji 3 i nowszych oficjalnie używa gwiazdki jako symbolu wiersza polecenia. Odnosząc się do polecenia systemu operacyjnego, zwykle zawierają gwiazdkę jako część nazwy, na przykład *RUN
, *CAT
, *SPOOL
itp., chociaż tylko część po gwiazdce jest poleceniem. Gwiazdkę nazwano „gwiazdą”, a polecenia „poleceniami gwiazd”.
Nierozpoznane polecenia są oferowane do dowolnych pamięci ROM usług (rozszerzeń); ROM systemu plików często sprawdza, czy plik na dysku pasuje do tej nazwy, tak samo robi większość innych interfejsów wiersza poleceń. Wywołanie systemu operacyjnego OSWORD z akumulatorem = 0 oferuje jednak programy jednowierszowe (z ctrl-U dla kasowania linii i włączonymi klawiszami kopiowania kursora) z podstawowym filtrowaniem znaków i ograniczeniem długości linii.
Interpreter wiersza poleceń MOS ma dość nietypowy pomysł: skróty poleceń. Aby zaoszczędzić na pisaniu, można użyć kropki po kilku pierwszych znakach, np. *L.
dla *LOAD
i *SA.
dla *ZAPISZ
. *RUN
zostało skrócone do */
sam. *CAT
, polecenie skatalogowania (listy) kasety lub płyty, można skrócić do *.
.
ROMy serwisowe
Pamięci ROM innych firm generalnie obsługują również skróty poleceń, co prowadzi do niejednoznaczności, gdy dwie pamięci ROM usług zapewniają polecenia, które mają bardzo podobną nazwę, ale prawdopodobnie różnią się funkcją. W takim przypadku MOS nadaje priorytet poleceniom z pamięci ROM w gnieździe pamięci ROM o wyższym numerze, np. 7 ma pierwszeństwo przed 6.
Niektórzy dostawcy zewnętrzni mogliby to obejść, poprzedzając swoje polecenia gwiazdkowe innymi literami. Na przykład ROMy Watford Electronics miałyby swoje polecenia gwiazdy z prefiksem W
, co czyni je wyjątkowymi.
Rozszerzenie
Dolne 16 KiB mapy ROM (od 0x8000 do 0xBFFF) jest zarezerwowane dla aktywnego banku stronicowanego przestrzeni adresowej Sideways . System Sideways w BBC Micro pozwala na przełączanie jednej pamięci ROM naraz z gniazd na płycie głównej (lub kartach rozszerzeń) na główną mapę pamięci. Oprogramowanie można w ten sposób uruchamiać z pamięci ROM (pozostawiając pamięć RAM wolną od kodu programu użytkownika, aby uzyskać więcej miejsca do pracy), a system operacyjny można rozszerzyć za pomocą takich ROM-ów. Najbardziej rozpowszechnioną boczną pamięcią ROM po BASICu jest Acorn Disc Filing System używany do obsługi dyskietek w maszynie.
Podczas resetowania każda stronicowana pamięć ROM jest włączana i pytana, ile potrzebuje publicznego i prywatnego obszaru roboczego. Każdej pamięci ROM przydzielany jest fragment prywatnego obszaru roboczego, który pozostaje przydzielony przez cały czas, a pojedynczy blok publicznego obszaru roboczego, równy rozmiarowi największego żądania, jest udostępniany aktywnej pamięci ROM. Podczas działania obszar stronicowany jest szybko przełączany między pamięciami ROM, gdy wydawane są polecenia systemu plików i wprowadzane są do systemu operacyjnego nierozpoznane polecenia.
MOS przydziela blok pamięci 3,5 KiB (od 0x0000 do 0x0DFF) od dołu mapy pamięci dla obszaru roboczego ROM systemu operacyjnego i języka:
Adres | Używać |
---|---|
0x0000-0x00FF | Bieżący obszar roboczy języka, różne systemowe obszary robocze |
0x0100-0x01FF | stos procesora |
0x0200-0x02FF | Wektory systemu operacyjnego, zmienne systemowe, inne obszary robocze |
0x0300-0x03FF | Obszar roboczy sterownika VDU, obszar roboczy systemu kasetowego, bufor wejściowy klawiatury |
0x0400-0x07FF | Przydzielone do pamięci ROM bieżącego języka lub do Tube . BASIC używa 0x0400-0x046B dla jednoliterowych zmiennych całkowitych od @% do Z% (4 bajty na literę), które są w ten sposób dostępne szybciej niż zmienne na stercie . |
0x0800-0x08FF | System dźwiękowy (przechowuje koperty ADSR i bufor tonów; jeśli dźwięk nie jest używany, można tu przechowywać niewielką ilość danych użytkownika), bufor drukarki, definicje ENVELOPE |
0x0900-0x09FF | Bufory wejścia kasetowego i szeregowego (dane użytkownika można umieścić tutaj, jeśli kaseta nie jest używana, więc na stronie 9 zebrano wiele małych narzędzi kodu maszynowego ) |
0x0A00-0x0AFF | Bufory wyjścia kasetowego i szeregowego, używane również w małych narzędziach kodu maszynowego. |
0x0B00-0x0BFF | Klawisze zdefiniowane przez użytkownika (łańcuchy wstawiane po naciśnięciu klawiszy funkcyjnych, ustawiane poleceniem *KEY ) |
0x0C00-0x0CFF | Znaki zdefiniowane przez użytkownika dla trybów innych niż telegazeta (tutaj można umieścić dane użytkownika, jeśli wyświetlacz jest w trybie teletekstu) |
0x0D00-0x0DFF | Procedura obsługi przerwań niemaskowalnych, obszar roboczy sieci, obszar roboczy myszy/trackballa, wektory pośrednie do stronicowanych pamięci ROM i wskaźników obszaru roboczego stronicowanych pamięci ROM |
W maszynie z samą kasetą 0x0E00 jest początkiem pamięci programu użytkownika. Po zamontowaniu ROM-ów rozszerzeń systemu operacyjnego, takich jak ROM systemu plików, powyżej tego punktu przydziela się więcej pamięci; Pamięci ROM DFS zwykle wykorzystują kolejne 2,75 KiB do buforowania katalogu dysków i zarządzania buforami dostępu swobodnego. ROM sieciowego systemu archiwizacji (dla Econet ) przydziela dodatkowe 0,5 KiB. Jest to poważny problem, ponieważ MOS nie obsługuje relokacji kodu maszynowego, który musi być uruchamiany z adresu, pod którym został zmontowany, więc niektóre programy, które zakładały stały start pamięci programu użytkownika, mogły nadpisać obszar roboczy MOS. Problem został złagodzony w wersjach od 3 do 5, umożliwiając ROM-om przydzielanie obszaru roboczego w alternatywnym banku RAM od 0xC000 do 0xDFFF, który był obecny w komputerach z serii Master, chociaż stare ROM-y mogły nadal przydzielać bloki pamięci głównej.
System operacyjny utrzymuje również tablicę wektorów wszystkich swoich wywołań, którą można aktualizować, aby przechwycić wszelkie wywołania systemu operacyjnego w celu rozszerzenia użytkownika. Zmieniając lub „zahaczając” te wektory, programiści mogli zastąpić własne procedury tymi dostarczonymi jako domyślne przez MOS.
Tekst, grafika, druk
MOS pozwala na skierowanie tekstu przeznaczonego na ekran do drukarki lub obu jednocześnie, co pozwala na bardzo trywialną obsługę drukowania zwykłego tekstu. Drukowanie grafiki nie jest obsługiwane i musi być napisane oddzielnie.
Grafika i ogólnie wszystkie dane wyjściowe na ekranie są obsługiwane w bardzo nietypowy sposób. Znakom ASCII prawie całkowicie nadano nowe znaczenie w MOS: znane jako „sterowniki VDU”, ponieważ dokumentacja opisuje je w odniesieniu do instrukcji VDU w BBC BASIC, są one interpretowane jako znaki sterujące wideo. VDU 30
(tj. ASCII 30) przesuwa kursor do (0, 0), VDU 4 i 5 wybierają, czy tekst ma być rysowany przy kursorze graficznym czy tekstowym, VDU 12 czyści ekran, a VDU 14 i 15 włączają i wyłączają blokadę przewijania . Zatem naciśnięcie ctrl-L wyczyści ekran, a ctrl-N włączy blokadę przewijania. VDU 2 i 3 przełączają, czy wyjście ekranowe jest wysyłane do drukarki. Oświadczenie BBC BASIC VDU VDU x [, y[, z...]]
jest odpowiednikiem konwencjonalnego BASIC PRINT CHR$ ( x ) [ ; CHR$ ( y ) [ ; CHR$ ( z ) ...]]
i wiele kodów sterujących (takich jak 12 dla „czystego ekranu” i 7 dla „beep”) ma te same funkcje, co na innych współczesnych maszynach.
Znacznie więcej znaków kontrolnych przyjmuje parametry: jeden lub więcej następujących po nich znaków jest używanych wyłącznie jako wartość bitowa jako parametr, a nie jako kod kontrolny. VDU 19 obsługuje ponowne mapowanie palety; kolejne pięć bajtów reprezentuje wpis palety, żądany kolor i trzy bajty rezerwowe. VDU 31 umieszcza kursor tekstowy w miejscu przechowywanym w następnych dwóch bajtach. VDU 17 ustawia kolor tekstu, a 18 kolor grafiki. VDU 25 używa kolejnych pięciu bajtów do przesuwania kursora graficznego i kreślenia linii ciągłych i przerywanych, kropek i wypełnionych trójkątów, udokumentowanego zakresu grafiki w MOS 0 i 1. Pierwszy bajt to kod polecenia, po którym następuje x i y co -rzędne jako dwie pary bajtów. Inne funkcje graficzne – takie jak poziome wypełnienie linii ograniczone określonym kolorem – były dostępne za pomocą nieudokumentowanych lub słabo udokumentowanych kodów poleceń. [ potrzebne źródło ]
BBC BASIC zawierał aliasy dla powszechnie używanych kodów VDU (takich jak GCOL dla VDU 18 lub PLOT dla VDU 25). Niektóre instrukcje były bezpośrednimi odpowiednikami kodów VDU, na przykład CLS dla VDU 12. Niektóre instrukcje były mniej dokładnymi odpowiednikami, ponieważ zawierały funkcjonalność specyficzną dla języka BASIC, a także wywoływanie procedur systemu operacyjnego; na przykład instrukcja MODE x ustawiłaby tryb ekranu x i dostosowała zmienną systemową HIMEM języka BASIC zgodnie z ilością pamięci, jaką nowy tryb pozostał dostępny dla języka BASIC, podczas gdy VDU 22, x ustawi tylko tryb ekranu, bez zmiany HIMEM. Pozwoliło to programiście na przydzielenie bloku pamięci z języka BASIC - na przykład w celu załadowania procedur kodu maszynowego - poprzez obniżenie wartości HIMEM na początku programu i nadal swobodę przełączania trybów ekranu bez cofania go jako efekt uboczny .
Istnieje jedno polecenie systemu operacyjnego do wpisania znaku, OSWRCH, które odpowiada za cały tekst i grafikę. Na przykład, aby przesunąć kursor do (10, 15), potrzebne w asemblerze 6502 :
LDA #31: JSR OSWRCH \ przesuń kursor tekstowy LDA #10: JSR OSWRCH \ współrzędna x LDA #15: JSR OSWRCH \ współrzędna y
(LDA ładuje wartość do akumulatora; JSR to „skok do podprogramu”.) Przy trzecim wywołaniu systemu operacyjnego kursor się poruszy. Poniższy kod narysowałby linię od (0, 0) do (0, +100):
LDA #25: JSR OSWRCH \ rozpocząć polecenie "PLOT" (ASCII 25) LDA #4: JSR OSWRCH \ polecenie k=4 lub przesunąć bezwzględnie LDA #0: JSR OSWRCH: JSR OSWRCH: JSR OSWRCH: JSR OSWRCH \ wysłać (0 , 0) jako pary młodszych i starszych bajtów
LDA #25: JSR OSWRCH \ begin PLOT LDA #1: JSR OSWRCH \ k=1 - losowanie względne LDA #0: JSR OSWRCH: JSR OSWRCH \ x = 0 LDA #100: JSR OSWRCH \ y = 100 (młodszy bajt) LDA #0: JSR OSWRCH \ starszy bajt
BBC BASIC umożliwia wykonanie powyższych czynności w dowolny z poniższych sposobów:
0 0 0
0
0 0 0
0 0 0 VDU 25 , 4 , ; ; 25 , 4 , 100 ; ; DRUKUJ CHR$ ( 25 ); CHR $ ( 4 ); CHR $ ( ); ... itd . DZIAŁKA 4 , , : DZIAŁKA 1 , , 100 RUCH , : REMIS , 100 : REM Tylko bezwzględne współrzędne!
0 OSWRCH = & FFEE : A% = 25 : CALL OSWRCH : A% = 4 : CALL OSWRCH : A% = : CALL OSWRCH ... itd .
Grafika w Acorn MOS wykorzystuje wirtualną rozdzielczość graficzną 1280 × 1024, z pozycjami pikseli odwzorowanymi na najbliższy równoważny piksel w bieżącym trybie graficznym. Zmiana rozdzielczości wideo nie wpłynie na kształt, rozmiar ani położenie grafiki rysowanej nawet przy zupełnie innych metrykach pikseli w nowym trybie, ponieważ wszystko to jest uwzględniane przez system operacyjny.
MOS zapewnia dwa inne wywołania systemu operacyjnego, które obsługują wyjście tekstowe: OSNEWL
i OSASCI
. OSNEWL zapisuje nowy wiersz i powrót karetki do bieżącego strumienia wyjściowego. OSASCI przekazuje wszystkie znaki bezpośrednio do OSWRCH z wyjątkiem znaku powrotu karetki, który zamiast tego wywołuje wywołanie OSNEWL. Dokładny kod OSASCI i OSNEWL – pięć wierszy asemblera 6502 – jest udokumentowany w BBC Micro User Guide.
MOS implementuje rozpoznawanie znaków, dzięki czemu tekst wydrukowany na ekranie czcionką systemową można wybierać za pomocą klawiszy strzałek i wprowadzać za pomocą klawisza COPY , tak jakby był pisany. Aby aktywować edycję ekranu, użytkownik przesuwa kursor sprzętowy do tekstu, który ma być odczytany, a system operacyjny wyświetla drugi kursor w oprogramowaniu w pierwotnej pozycji. Naciśnięcie KOPIUJ kopiuje jeden znak z kursora sprzętowego do kursora programowego i przesuwa oba, tak że przytrzymanie wciśniętego klawisza powoduje skopiowanie fragmentu tekstu, a kursory zawijają się wokół pionowych krawędzi ekranu w razie potrzeby. Jeśli ekran przewija się podczas edycji, pozycja kursora sprzętowego jest dostosowywana do tekstu. Użytkownik może wprowadzać zmiany w tekście podczas kopiowania, a znaki zdefiniowane przez użytkownika są rozpoznawane w trybach graficznych. Edycja ekranu zostaje zakończona po naciśnięciu klawisza RETURN lub ESCAPE są naciskane, które mają swoje zwykłe skutki. Rozpoznawanie znaków jest udostępniane użytkownikom w API z wywołaniem odczytu znaku w bieżącej pozycji kursora. [ potrzebne źródło ]
Dźwięk
Generowanie dźwięku odbywa się za pośrednictwem innego wywołania systemu operacyjnego, OSWORD, które obsługuje różne zadania wyliczone za pomocą kodu zadania umieszczonego w akumulatorze. Wszystkie wywołania OSWORD zawierają blok parametrów używany do wysyłania i odbierania wielu danych; adres tego bloku jest przekazywany w rejestrach X i Y, z niskim bajtem w X i wysokim bajtem w Y. Istnieją cztery buforowane kanały dźwiękowe – trzy melodyczne i jeden oparty na szumach na chipie dźwiękowym znajdującym się w BBC Micro . Istnieje tylko jeden przebieg dla kanałów melodycznych; obsługiwane parametry nut to wysokość, czas trwania, amplituda, wybór obwiedni i różne opcje sterowania. Dla parametru amplitudy zero lub wartość ujemna ustawia amplitudę statyczną, a wartość dodatnia wybiera obwiednię amplitudy i tonu (predefiniowana zmiana czasowa), która ma zostać zastosowana do nuty.
Parametry kontrolne zostały przekazane przez parametr kanału i obejmują opróżnianie (bufor jest czyszczony, a kanał wyciszony przed odtworzeniem nuty), licznik synchronizacji (gdy tylko zostanie odebrany ten sam licznik synchronizacji dla tylu kanałów, wszystkie zsynchronizowane nuty są grane razem) oraz kontrolę nad aktualizacją systemu mowy, jeśli jest zainstalowana.
OSWORD obsługuje wiele funkcji innych niż dźwięk, z których wiele nie ma bezpośredniego wsparcia w języku BASIC. Dostęp do nich można uzyskać z języka BASIC, ustawiając blok parametrów, ładując jego adres do X% i Y% oraz kod zadania do A%, a następnie wywołując procedurę.
Obsługa innych wejść/wyjść i drugiego procesora
BBC Micro posiadało wsparcie dla drugiego procesora podłączonego przez Tube , co umożliwiało bezpośredni dostęp do magistrali systemowej. Kod sterownika dla interfejsu Tube nie jest przechowywany w MOS, zwykle jest dostarczany przez zewnętrzną pamięć ROM usługi.
System operacyjny ma wywołania do obsługi odczytu i zapisu do wszystkich wejść/wyjść (portów i pamięci ekranu), a programistom zdecydowanie zaleca się korzystanie z nich w dokumentacji Acorn. Powodem tego jest to, że po zainstalowaniu drugiego procesora oprogramowanie użytkownika jest uruchamiane z oddzielnej mapy pamięci po drugiej stronie szyny procesora Tube, a bezpośredni dostęp do mapowanych w pamięci rejestrów we/wy i pamięci wideo jest niemożliwy. Jednak ze względu na wydajność wiele aplikacji, w tym wiele gier, zapisuje bezpośrednio do głównej przestrzeni adresowej dla operacji we/wy, co powoduje awarię lub wyświetlanie pustego ekranu, jeśli podłączony jest drugi procesor 6502. Jednym z takich krytycznych dla wydajności obszarów jest sprite wsparcie: sprzęt BBC Micro nie obsługuje sprite'ów, a gry muszą implementować sprite'y w oprogramowaniu. W praktyce powszechne stosowanie dostępu bezpośredniego w miejsce wywołań OS bardzo rzadko powodowało problemy. Drugie jednostki procesorowe były drogie i napisano bardzo mało oprogramowania, aby je wykorzystać, więc niewielu ludzi je kupiło, a ci, którzy je mieli, mogli je po prostu wyłączyć lub odłączyć kabel, jeśli pojawił się problem.
MOS zawiera dwa wbudowane systemy plików: kasetowy i ROM. Są one dość podobne (wypróbuj *ROM
, *OPT 1 2
, *CAT
z zainstalowaną odpowiednią pamięcią ROM) i dzielą dużą część kodu. Zawierają podstawowy mechanizm ochrony przed kopiowaniem , w którym plik z określoną flagą nie może zostać załadowany, z wyjątkiem jego wykonania. (Przed Amstrad na rynek masowy podwójnego magnetofonu kasetowego w 1987 r. większość użytkowników domowych nie miała urządzeń do kopiowania kaset bez ładowania plików do komputera w celu ponownego zapisania.) Zaawansowany system archiwizacji dysków (ADFS), instalowany standardowo w serii Master, ma podobny mechanizm.
Wersje
Wydania 0 i 1
Wersje dla rodziny BBC Micro , zaczynające się od 0,10 i kończące na 1,20. Co mylące, Electron był dostarczany z wersją 1.00, mimo że został wydany po wersji 1.20 BBC Micro, ponieważ było to pierwsze wydanie pamięci ROM dla elektronu. Numer wersji MOS nie miał służyć jako definicja API: Electron ROM nie był w żadnym sensie „oparty na” BBC Micro ROM w wersji 1.0.
Wydanie 2
Ta wersja jest przeznaczona dla BBC Model B +, zasadniczo taka sama jak MOS 1.20, z wyjątkiem dodania obsługi bocznej i cieniowej pamięci RAM obecnej w B +.
Wydania od 3 do 5
MOS 3 do MOS 5 dostarczane z systemami BBC Master Series , odpowiednio w modelach Master 128, Master ET i Master Compact.
Początkowa wersja MOS 3 rozszerzyła funkcje dostępne w MOS 2 na B + w celu obsługi dodatkowego sprzętu, zapewnienia funkcji wiersza poleceń i rozszerzenia kodu sterownika VDU o ulepszone możliwości kreślenia grafiki. Upubliczniono dwie godne uwagi wersje: najpopularniejszą wersję 3.20 i wersję 3.50 (chociaż miała ona więcej funkcji i poprawek błędów, nie była w 100% kompatybilna z niektórymi popularnymi aplikacjami, więc była oferowana tylko jako opcjonalna aktualizacja).
MOS 4 był okrojoną wersją MOS 3 przeznaczoną dla podobnie zminimalizowanego Master ET i naprawiono kilka drobnych błędów.
MOS 5 był dostarczany z Master Compact i został znacznie zmieniony, niektóre funkcje zostały usunięte lub znacznie zmienione.
Kredyty
Z wyjątkiem MOS 3.50, w którym odzyskano miejsce na więcej kodu, obszar normalnie ukryty przez lokalizacje pamięci wejścia / wyjścia (768 bajtów od 0xFC00-0xFEFF włącznie) w pamięci ROM MOS zawierał listę nazwisk współpracowników system . Można to odzyskać, rozpakowując pamięć ROM i czytając jej zawartość w programatorze EPROM. Ci, którzy nie mieli takiego urządzenia, mogli uzyskać dostęp do pamięci ROM na urządzeniu głównym, ustawiając bit testowy rejestru kontroli dostępu, a następnie używając programu kodu maszynowego do skopiowania pamięci ROM bezpośrednio do pamięci ekranu w trybie tekstowym.
Pełny tekst ciągu kredytowego w MOS 1.20 jest następujący; po przecinkach nie występują spacje, aby zaoszczędzić pamięć:
"(C) 1981 Acorn Computers Ltd. Podziękowania należą się następującym osobom, które przyczyniły się do rozwoju komputera BBC (między innymi jest ich zbyt wielu, by je wymienić): - David Allen, Bob Austin, Ram Banerjee, Paul Bond, Allen Boothroyd , Cambridge , Cleartone, John Coll , John Cox, Andy Cripps, Chris Curry , 6502 projektantów, Jeremy Dion, Tim Dobson, Joe Dunn, Paul Farrell, Ferranti , Steve Furber , Jon Gibbons, Andrew Gordon, Lawrence Hardwick, Dylan Harris, Hermann Hauser , Hitachi , Andy Hopper , ICL , Martin Jackson, Brian Jones, Chris Jordan, David King, David Kitson, Paul Kriwaczek, Computer Laboratory , Peter Miller, Arthur Norman , Glyn Phillips, Mike Prees, John Radcliffe, Wilberforce Road, Peter Robinson , Richard Russell , Kim Spence-Jones, Graham Tebby, Jon Thackray, Chris Turner, Adrian Warner, Roger Wilson , Alan Wright”.
Przyjęcie
W wywiadach przeprowadzonych w 1993 i 2001 roku, współzałożyciel Acorn, Hermann Hauser, opowiadał, że Bill Gates z Microsoftu , zauważywszy, że sprzedano 1,5 miliona BBC Micros, próbował sprzedać Acornowi MS-DOS , ale Hauser uważał, że przyjęcie MS-DOS byłoby „retrogradacją”. krok” w porównaniu do zachowania systemu Acorn.
- Notatki
- Watford Electronics, „Zaawansowany podręcznik referencyjny dla serii BBC Master”, 1988