speccy.pl
Facebook Like


SPECCY.PL

[SPECCY.PL PARTY 2023.1]

[WIKI SPECCY.PL]
Polecamy

KOMITET SPOŁECZNY KRONIKA POLSKIEJ DEMOSCENY
PIXEL HEAVEN 2023
AYGOR
Forum ZX Spectrum
Zawartość panelu chwilowo niedostępna
Archiwum plików ZX Spectrum
Nawigacja
[Zin80#4] Wyższa Inteligencja

Tekst został opublikowany w Zin80 #4

Wyższa Inteligencja
Jak powstawał C128
by Daniel Koźmiński

Commodore 128
Commodore 128

Jaki jest przepis na dobry i dobrze sprzedający się komputer, a dokładnie: jaki mógł być przepis w połowie lat 80.?

Oczywistą rzeczą jest, że wkraczająca na rynek maszyna powinna być prosta w obsłudze dla użytkowników, którzy dopiero zapoznają się z komputerami i jednocześnie być łatwa w tworzeniu nowego oprogramowania przez programistów. Kolejną rzeczą, która przychodzi na myśl nawet wcześniej niż poprzednia, jest dostępność oprogramowania. Tu już zaczyna być pod górę, ponieważ należałoby opłacić programistów (najlepiej tych z górnej półki), którzy przygotują na premierę komputera aplikacje powodujące automatyczne otwarcie portfela u potencjalnych nabywców, względnie u marketingowców dużych firm wydawniczych podjęcie decyzji o wejściu na rynek tego właśnie nowego komputera.

Można to jednak zrobić inaczej. Co by się stało, gdyby udało się stworzyć nowy komputer, który może bezproblemowo wykorzystywać dotychczas stworzone oprogramowanie, zarówno to profesjonalne, jak i typowo rozrywkowe, dodatkowo oferując parametry wcale nie odbiegające od aktualnych standardów rynkowych tak biznesowych, jak i skierowanych do użytkowników potrzebujących komputera również do zabawy, a na dodatek sprzedawać go w cenie dużo niższej niż konkurencja w obu przestrzeniach?

Komputerem tym był C128, później jeden z najpopularniejszych ośmiobitowców, trzeci najpopularniejszy produkt Commodore i prawdopodobnie najpopularniejszy komputer z mikroprocesorem Z80.

Trzeba jednak wiedzieć, że nie od początku planowano kompatybilność z C64 – Bill Herd, który był prowadzącym projekt, mówił później:

„Nikt nawet nie marzył, że kompatybilność z C64 jest możliwa, więc nawet nie szliśmy w tym kierunku. Postanowiłem, że następna maszyna będzie kompatybilna z czymkolwiek, zamiast tworzyć w Commodore kolejny niekompatybilny z niczym komputer.” 1

Co ciekawe, stuprocentowa kompatybilność z C64 została wymyślona przez dział marketingu Commodore (ten sam, który propagował dla C128 slogan „Higher intelligence”) bez konsultacji z inżynierami pracującymi nad projektem, i ogłoszona jako oficjalny komunikat prasowy. Tymczasem inżynierowie – mimo bardzo napiętych terminów – zamiast zastanawiać się, w jaki sposób „odkręcić” później tę informację, po prostu zrewidowali założenia i zrealizowali projekt marketingowców.

Czasu na przygotowanie nowego komputera nie było dużo – prace rozpoczęły sięwe wrześniu 1984 r., a maszyna miała być zaprezentowana na zimowych targach CES w styczniu 1985 r. Tymczasem Commodore, nawet mając własną fabrykę produkującą zintegrowane układy (MOS) miało duże trudności w opracowaniu i dostarczeniu na czas gotowych, w pełni działających procesorów odpowiadających za grafikę – MOS 8563, znanych również jako VDC. Z80 został do łączony do projektu płyty głównej dopiero w grudniu i to w tajemnicy przed zarządem, który według Billa Herda mógł być z tego faktu niezadowolony.

Z80 został zainstalowany pewnego dnia między pierwszą a czwartą nad ranem, przez technika imieniem Kim, który pracował ze mną na nocnej zmianie. Nie powiedzieliśmy o tym szefom przez parę tygodni aż do momentu, kiedy płyty były już prawie gotowe, żeby nie mogli zmienić mojego zdania za mnie.2

W międzyczasie zespół musiał przezwyciężyć mnóstwo problemów, związanych między innymi z synchronizacją między układami (VIC był taktowany z częstotliwością 14.318MHz, a VDC – 16 MHz) i wciąż wadliwymi 8563 (na cztery dostarczone sztuki jedna nie działała). W grudniu, czyli niecały miesiąc przed premierą komputera, żaden ze specjalizowanych układów nie był gotowy (z wyjątkiem CPU – 8510) a projektanci pracowali na prototypie płyty głównej, która oprócz podstawek na procesory, miała również gniazda na taśmy, do których podłączane były płytki prototypowe z zastępczymi kośćmi TTL „emulującymi” mające już wkrótce nadejść finalne wersje układów specjalizowanych 3.

Na dodatek podczas świąt doszło do awarii zraszaczy w siedzibie projektantów MOS i wart 100 tys. dolarów sprzęt został kompletnie zalany wodą. Ale to jeszcze nie był koniec pecha, który towarzyszył C128.

Za część projektu dotyczącą obsługi CP/M odpowiadał zewnętrzny programista – Von Ertwine. Również on miał duże problemy z VDC podczas tworzenia warstwy kompatybilności z systemem Digital Research. Rozwiązaniem na przegrzewanie się układu, które stosował podczas pracy było położenie na 8563 kubka z kostką lodu – jak później opowiadał, jedna kostka lodu wystarczała na około pół godziny pracy.

Prace nad działającą wersją komputera zakończono o drugiej w nocy, a już o szóstej rano ekipa musiała stawić się na lotnisku, by odlecieć na targi do Las Vegas. Po przyjeździe na miejsce okazało się, że ich rezerwacje hotelowe zostały odwołane – podejrzenia padły na zespół Jacka Tramiela, który na tej samej wystawie miał prezentować swoje nowe produkty: 130ST i 520ST.

Kiedy wszyscy zebrali się w hotelu okazało się, że Von Ertwine nie korzystał z nadsyłanych na bieżąco z fabryki MOS kolejnych rewizji 8563, tylko zatrzymał się na czwartym modelu, który był niekompatybilny z tym, który znalazł się w finalnej wersji komputera, w związku z czym podsystem CP/M po prostu nie działał. To był poważny problem, ponieważ jedna trzecia stoiska oraz materiałów reklamowych przedstawiała C128 jako maszynę potrafiącą wykorzystywać ogromną na tamte czasy bibliotekę profesjonalnego oprogramowania działającego pod kontrolą CP/M.

Koszmar studentów uruchomiony na C128 pod kontrolą CP/M 3.0
Koszmar studentów uruchomiony na C128 pod kontrolą CP/M 3.0

Mając na uwadze potencjalne fi asko prezentacji Von Ertwine, mimo, że nie miał przy sobie źródeł, naprawił niekompatybilności pomiędzy kolejnymi rewizjami VDC – po prostu za pomocą jedynego dostępnego narzędzia (którym był w tym przypadku edytor dyskowy) zmienił wszystkie odwołania do 8563 na poprawne. Żeby sobie uzmysłowić jak trudne to było zadanie należy dodać, że nie mógł on ani zwiększyć, ani zmniejszyć liczby instrukcji, mógł jedynie wymienić je na inne. Oczywiście w związku z naniesionymi zmianami należało również obliczyć nowe, zaktualizowane sumy kontrolne.

Koniec końców prezentacja nowego komputera została ciepło przyjęta zarówno przez użytkowników, jak i prasę. Na szczęście dla Commodore nikt postronny nie zauważył, że w czasie targów przeciętnie dwa razy dziennie wymieniano pechowe egzemplarze VDC na kolejne.

Juggler pozwalał na odczyt niemal dowolnego formatu dysku, przez co wymiana danych pomiędzy róznymi komputerami pracującymi pod CP/M nie sprawiała żadnych problemów.
Juggler pozwalał na odczyt niemal dowolnego formatu dysku, przez co wymiana danych pomiędzy róznymi komputerami pracującymi pod CP/M nie sprawiała żadnych problemów.

Zanim przejdziemy do bardziej szczegółowego opisu C128, jako maszyny zdolnej pracować pod kontrolą CP/M 3.0 (tryby C64 i natywny raczej nie będą szczególnie interesujące dla czytelników Zin80) warto dodać, że nowy produkt Commodore nie był pierwszym komputerem, który został zbudowany jako wieloprocesorowa maszyna.

Kilka lat wcześniej na Uniwersytecie Waterloo w Ontario opracowano komputer o nazwie kodowej SP9000, później znany jako SuperPET lub MicroMainframe. Tak naprawdę w dużej mierze był to Commodore PET 8032 z dodatkową kartą rozszerzeń zawierającą mikroprocesor Motorola 6809 z dodatkową pamięcią 64 KB i zestawem oprogramowania składającym się z języków programowania APL, COBOL, FORTRAN, Pascal i asemblerem 6809, a także edytorem o nazwie microEDITOR, który pozwalał na tworzenie programów we wcześniej wymienionych językach programowania 4. W zestawie znajdował się również program terminala, który pozwalał na użycie SuperPET jako inteligentnej końcówki dla komputerów typu mainframe.

C128 był sprzedawany z CP/M w wersji 3.0, która jest wstecznie kompatybilna z najbardziej rozpowszechnioną, wersją CP/M 2.2. Podczas pracy pod kontrolą tego systemu dostępna jest emulacja terminala ADM31/3A. Podstawową zaletą komputera Commodore w porównaniu do innych maszyn CP/M była możliwość odczytywania przez nową stację dysków 1571 dyskietek w niemal dowolnym formacie. Często, pomimo zgodności oprogramowania, użytkownicy różnych komputerów pracujących w tym samym systemie mieli problemy z przenoszeniem danych pomiędzy swoimi maszynami z powodu niezgodności formatu dyskietek.

Niestety poważną wadą implementacji CP/M w Commodore 128 była powolność jej działania – pomimo bazowego taktowania 4 MHz, efektywna prędkość działania Z80 to jedynie połowa nominalnej prędkości. Wynika to z faktu zbudowania całego komputera na bazie mikroprocesora 8502 – Z80 przekazuje kontrolę do głównego CPU i jest odłączany od szyny poprzez obecny w systemie układ MMU za pomocą sygnału AEC zawsze, kiedy wykonywane są jakiekolwiek operacje wejścia/wyjścia, a także w celu obsługi przerwań.

Ponieważ obsługa magistral przez Z80 bardzo różni się od obsługi przez rodzinę 65xx, aby Z80 mógł kontrolować magistralę typu 65xx potrzeba trochę dodatkowych połączeń. Dzięki temu, że Z80 ma wbudowane linie zarządzające dostępem do magistral, możliwe jest odizolowanie go poprzez trójstanowość linii adresowych. Pozwala to na współdzielenie linii adresowych przez Z80 i 8502.

Łączenie linii danych jest bardziej skomplikowane. Z powodu dzielonej natury magistrali w trybie Z80 musi on być izolowany od szyny w niskim stanie AEC. Dlatego podczas zapisów danych przez Z80 jego szyna musi być przepuszczana przez bufor trójstanowy. Odwrotna sytuacja ma miejsce podczas odczytu przez Z80 – procesor nie może czytać danych pojawiających się podczas niskiego stanu AEC - musi „zatrzaskiwać” dane, które były na szynie przy wysokim stanie AEC. Dlatego dane wejściowe do Z80 trafi ają przez przeźroczysty zatrzask. Jest on aktywowany przez sygnał odczytu z Z80 i zatrzaskiwany kiedy zegar 1MHz przechodzi w stan niski. Widać więc, że Z80 faktycznie działa podczas niskiego AEC, ale połączenie z szyną danych jest aktywne wyłącznie przy wysokim AEC 5.

Jednak podczas włączania komputera to mikroprocesor Ziloga jest pierwszym, który przejmuje kontrolę nad komputerem – uruchamiany jest wtedy bootloader, który sprawdza obecność dysku systemowego z CP/M w stacji dysków.

Pomimo szerokiej gamy odczytywanych formatów dyskietek, dyski startowe CP/M muszą być w natywnym dla stacji dysków formacie GCR. Powodem jest to, że kod umożliwiający odczytywanie dyskietek w formacie MFM jest ładowany dopiero podczas uruchamiania napędu.

W typowej pracy komputera – inaczej niż w innych maszynach z CP/M – system nie komunikuje się bezpośrednio ze sprzętem. Procesor przekazuje zmienne w obszarze $FFD0-$FFEF a następnie jest odłączany i wywoływane są procedury obecne w KERNAL trybu 128.Kontrolę przejmuje wtedy 8502.

Po wykonaniu zleconego zadania odłączany jest procesor MOS i kontrola wraca do Z80. Wyjątkiem jest wyświetlanie 80-kolumnego ekranu i obsługa klawiatury, wtedy Z80 komunikuje się bezpośrednio z procesorem 8563. To właśnie ciągłe przełączanie procesorów jest przyczyną powolnego działania systemu.

8502 jest odpowiedzialny za większość funkcji wejścia-wyjścia. Żądanie wykonania takich funkcji jest przekazywane przez zestaw „skrzynek pocztowych”. Po ich ustawieniu Z80 się wyłącza a startuje 8502 (BIOS85). 8502 sprawdza przekazane polecenie i wykonuje odpowiednie zadanie, ustawia status jego wykonania i się wyłącza. Następnie ponownie włącza się Z80, sprawdza przekazany status i podejmuje odpowiednie działania. 6

Część niedogodności implementacji CP/M – przede wszystkim wolna obsługa procedur ekranowych – została usunięta w pakiecie CPMFAST, który przygotował Linards Ticmanis.

Pomimo wspomnianych wad Commodore 128 sprzedawał się stosunkowo dobrze, a w momencie zakończenia produkcji w 1989 osiągnął wolumen 4-5 milionów sprzedanych egzemplarzy. Czyni go to najpopularniejszym komputerem przystosowanym do pracy w CP/M oraz trzecim najlepszym produktem sprzedażowym Commodore. Tylko C64 (ok. 17 mln sztuk) i Amiga 500 (ok. 5 mln) sprzedawały się lepiej.

C128 w cenie 300 dolarów amerykańskich (oraz 300 dolarów za stację 1571) był w 1985 r. doskonałą propozycją dla użytkowników, który oprócz pracy chcieli używać komputera do rozrywki. Dzięki wciąż rosnącej liczbie programów i gier dla poprzedniego modelu (w kampaniach reklamowych podawano wtedy liczbę 5 milionów sprzedanych C64 i bazę 3 tysięcy programów 7) można było naprawdę – tak jak to obiecywały slogany reklamowe – wejść w posiadanie trzech komputerów, płacąc mniej niż za odpowiedniki innych firm.

Głównymi konkurentami obecnymi na rynku były IBM PCjr w cenie 669 dolarów za konfi gurację 64 KB oraz Apple IIc (128 KB, stacja dysków 5,25”), za który trzeba było zapłacić 1299 dolarów. Commodore 128 sprzedał się fi nalnie w większej liczbie niż oba wymienione komputery razem wzięte.

(...)przyniósł ponad miliard dolarów zysku. Nieźle jak na partyzanckie rozwiązanie, które zaczęło się od tego, że uznaliśmy, że tylko my jesteśmy w stanie stworzyć system zgodny z C64 – Bill Herd. 8

Produkcję C128 (oraz pochodnych 128D/DCR) zakończono po około czterech latach w 1989 r. Pomimo opracowania tańszej w wykonaniu wersji 128DCR koszt wyprodukowania jednego egzemplarza był zbliżony do kosztu produkcji Amigi 500. Powodowało to, że dalsze utrzymywanie produktu na rynku było nieopłacalne – cena komputera ośmiobitowego dla użytkownika końcowego musiała być niższa niż Amigi – flagowego produktu Commodore z „wyższej półki”.

Przypisy:
1. http://www.commodore.ca/commodore-products/commodore-128-themost-versatile-8-bit-computer-ever-made/
2. https://web.archive.org/web/20141129021635/http://www.kirps.com/web/main/_blog/all/in-memory-of-the-commodore-c128.shtml
3. https://hackaday.com/2013/12/09/guest-post-the-real-story-of-hackingtogether-the-commodore-c128/
4. https://www.commodore.ca/commodore-products/commodore-pet-the-worlds-first-personal-computer/
5. Commodore 128 Programmer’s Reference Guide str. 575.
6. Commodore 128 Programmer’s Reference Guide str. 500.
7. Commodore 128 Special Bundle http://www.commodore.ca/gallery/video/videos/128_Special_Bundle_1986.wmv
8. https://web.archive.org/web/20141129021635/http://www.kirps.com/web/main/_blog/all/in-memory-of-the-commodore-c128.shtml

Jak uruchomić CP/M na Commodore 128 w trzecim tysiącleciu?

80 kolumn

Otóż mamy kilka możliwości. Najpewniejszą i najbardziej kompatybilną metodą jest zaopatrzenie się stację dysków 1571, któreś z rozwiązań pozwalających na nagrywanie dyskietek (KryoFlux, SuperCard Pro) oraz monitor pozwalający na wyświetlanie obrazu w 80 kolumnach i formacie zgodnym z CGA (RGB TTL, np. Commodore 1081/1084).

Osoby mające nieco mniej miejsca na biurku, lub bardziej oszczędne, mogą zadowolić się emulatorem stacji dyskietek (np. SD2IEC), a użytkownicy emulatorów skorzystają z VICE (z pakietu oczywiście wybieramy aplikację x128).

Pierwszym krokiem będzie oczywiście zdobycie obrazów dyskietek z systemem CP/M (można je pobrać z archiwum zimmers.net 1) oraz oprogramowania dla CP/M np. z Humongous CP/M Software Archives 2. O ile oprogramowanie systemowe jest w oczekiwanym formacie d64 lub d81 i można je łatwo uruchomić pod emulatorem, to programy użytkowe będą wymagać nieco więcej wysiłku. Najprostszą metodą dla użytkowników emulatora jest stworzenie w dowolnym programie do manipulacji obrazami dysków 3 pustego obrazu dyskietki w formacie d64 i wgranie do niego plików z oprogramowaniem dla CP/M, a następnie przekopiowanie ich na dyskietki (obrazy dyskietek) w natywnym formacie CP/M za pomocą aplikacji RDCBM 4.

Uruchomienie CP/M jest automatyczne – wystarczy włożyć dyskietkę z systemem do stacji dysków i włączyć komputer z wciśniętym klawiszem 40/80. Jeśli komputer jest już włączony i pracuje w trybie 128 w 80 kolumnach, to możemy uruchomić CP/M wkładając dysk systemowy do napędu i wydając z poziomu BASIC polecenie BOOT. Użytkownicy SD2IEC powinni zamontować do stacji numer 8 plik z obrazem systemu CP/M i zrestartować komputer (np. przyciskiem RESET), a korzystający z emulatora montują obraz analogicznie i restartują emulator. Po kilkudziesięciu sekundach ukaże się znak zachęty i możemy pracować.

Reklama
Reklama
1) http://www.zimmers.net/anonftp/pub/cbm/demodisks/c128/
2) http://cpmarchives.classiccmp.org/
3) https://style64.org/dirmaster"
4) https://csdb.dk/release/?id=171968&show=summar
Brak komentarzy. Może czas dodać swój?
Dodaj komentarz
Zaloguj się, aby móc dodać komentarz.
Oceny
Tylko zarejestrowani użytkownicy mogą oceniać zawartość strony
Zaloguj się , żeby móc zagłosować.

Brak ocen. Może czas dodać swoją?