Przygotowania do instalacji systemu operacyjnego

przez | 29 września 2022

Jeśli mamy już poprawnie skonfigurowany BIOS i nasze oczekiwania wykraczają już poza wbudowany interpreter BASIC i program MONITORA z całą pewnością zaczniemy rozglądać się systemem operacyjnym z całym bogactwem oprogramowania. W przypadku komputerów opartych na procesorze Z80 niekwestionowanym liderem pośród systemów operacyjnych jest CP/M 2.2. Ciekawostką jest to, że jego najnowsza odsłona CP/M 3.1 już nie cieszy się tak ogromnym zainteresowaniem. Spowodowane jest to tym, że powstał on na schyłku dominacji procesorów 8-bitowych w komputerach, więc oprogramowania wykorzystujące wprowadzone nowości (obsługa większej ilości pamięci zapożyczone z MP/M, obsługa większych pamięci masowych oraz RTC) jest niewiele.

W przypadku komputerów Z80 używanie systemu operacyjnego wymaga od sprzętu posiadania możliwości przełączenia pamięci, by RAM dla CP/M był dostępny od adresu 0 oraz dostępnej pamięci masowej. Praktycznie każdy zestaw RC2014 dzięki swojej modułowości umożliwia spełnienie tych wymagań poprzez dostosowanie używanych w nim kart. Podstawowym modułem komunikacji z użytkownikiem jest układ transmisji szeregowej i używania programu terminala (np. TeraTerm dla Windows). Istnieją również moduły emulujące terminal, które umożliwiają bezpośrednie podłączenie monitora i klawiatury do zestawu RC2014.

W standardzie RC2014 twórca przyjął 115200 bps jako domyślną prędkość transmisji szeregowej ze względu na przyjęty zegar systemowy 7,3728MHz, który po podziale przez 64 daje nam taką prędkość. Nie jest to zbyt szczęśliwe rozwiązanie, gdyż zdarzają się błędy transmisji, bo taka prędkość wymaga pełnego zaangażowania niezbyt wydajnego procesora. Ja w swoich konstrukcjach używam 38400 bps jako podstawowej prędkości, bo to eliminuje większość takich przekłamań bez zauważalnego spowolnienia pracy z terminalem. Kolejnym problemem jaki się pojawia z używaniem transmisji szeregowej jest użycie adapterów USB-Serial, które nie są rzeczywistym portem szeregowym i pracują zgodnie ze standardem USB jako urządzenia blokowe z transmisją pakietową. Może się nawet zdarzyć że zostaną utracone przesłane bajty pomimo używania sygnałów sterujących przepływem RTS/CTS. Szczególnie jest to odczuwalne w najprostszych układach szeregowych (68B50 ACIA) i praktycznie niespotykane w tych, które posiadają nawet niewielki bufor FIFO (XR88C681 lub 16C550). Użycie modułów transmisji szeregowej z własnym generatorem umożliwia nam zmianę zegara systemowego do maksymalnej prędkości na jaką pozwalają nam użyte podzespoły.

XR88C681 posiada 3 bajtowe FIFO równe stosowanemu w modułach USB-Serial układowi FTDI

Ostatnim tematem jaki należy poruszyć jest to pamięć masowa. Najbardziej popularnym i cechującym się największą wydajnością jest użycie kart CF. Pracują one praktycznie z prędkością szyny procesora, więc dostęp do danych jest prawie (tu należy doliczyć programowy czas ich obsługi) porównywalny z pamięcią wewnętrzną. Stosowane są też karty SD lecz środowisko retro 8-bitowców nie było przygotowane do obsługi wysokich zegarów SPI, więc wydajność tego rozwiązania jest znacznie gorsza. Użycie kart SD w systemach Z180 poprzez wbudowany układ szeregowej transmisji synchronicznej ogranicza zegar SPI do możliwości tego portu oraz wymaga programowego odwrócenia wszystkich bitów w bajcie, co powoduje znaczący spadek wydajności. Kolejną alternatywą jest użycie modułów IDE które mają niewiele gorszą wydajność od bezpośrednio podłączonych kart CF, ale w zamian obsługują największą ilość dostępnych pamięci (karty CF, dyski ATA, adaptery SD-IDE, mSATA-IDE,…). Bezpośrednie podłączenie kart CF ma jednak swoje wady. Nie każda karta CF będzie działać i szczególnie te o większej pojemności odmawiają współpracy. Wynika to niezgodności zależności czasowych sygnałów szyny Z80 i kart CF. Spora część kart 64/128MB (ta ostatnia wielkość, to graniczna pojemność obsługiwana przez CP/M) toleruje zależności czasowe szyny Z80, więc to rozwiązanie jest powszechnie używane. Są też próby dostosowania sygnałów do wymagań standardu CF, ale nie są one nadal pełne i zdarzają się karty, które nie będą poprawnie pracować. Problemem CF jest też coraz mniejsza ich dostępność. Dla entuzjastów prawdziwego retro dostępne są też moduły FDC umożliwiające podłączenie napędów dyskietek.

Poprawiony moduł CF współpracujący z większością kart.