JupiterACE: Różnice pomiędzy wersjami

Z ZX Spectrum Wiki
 
Linia 12: Linia 12:
 
* Interpreter: FORTH
 
* Interpreter: FORTH
 
* pamięć masowa: kaseta magnetofonowa
 
* pamięć masowa: kaseta magnetofonowa
* wyświetlanie: tryb tekstowy z wyjściem na TV (kanał 36
+
* wyświetlanie: tryb tekstowy z semigrafiką, z wyjściem na TV (kanał 36)
  
 
Wyprodukowano i sprzedano około 8000 sztuk tego komputera.
 
Wyprodukowano i sprzedano około 8000 sztuk tego komputera.

Aktualna wersja na dzień 05:57, 12 maj 2020

Opis

Jupiter Ace był brytyjskim 8-bitowym mikrokomputerem domowym z początku lat 80-tych XXw. Był on produkowany przez firmę Jupiter Cantab, która została założona w tym celu przez Richarda Altwassera i Stevena Vickersa. Główną cechą odróżniającą Jupitera od innych popolarnych mikrokomputerów 8-bitowych był język programowania Forth, zamiast popularnego w tym czasie BASICa.

Jupiter ACE

Pierwsza wersja mikrokomputera wypuszczona we wrześniu 1982r. Specyfikacja:

  • producent: Jupiter Cantab Ltd
  • procesor: Z80A (3.25MHz)
  • RAM: 3 x 1KB
  • ROM: 8KB
  • Interpreter: FORTH
  • pamięć masowa: kaseta magnetofonowa
  • wyświetlanie: tryb tekstowy z semigrafiką, z wyjściem na TV (kanał 36)

Wyprodukowano i sprzedano około 8000 sztuk tego komputera.


Jupiter ACE 4000

Wersja Jupitera ACE głownie przeznaczona na amerykański rynek. Posiada ona lepszą, wykonaną metodą wtryskową, obudowę oraz wyjście na monitor. Dodatkowo zmieniono obwód głośnika oraz dodano możliwość wyłączania wewnętrznego ROMu. Wyłączanie ROMu następuje poprzez podanie stanu wysokiego dla sygnału /ROMCS, który został wyprowadzony na wolny pin złącza krawędziowego. Poza tym Jupiter ACE 4000 jest w pełni kompatybilny ze starszym bratem.

Z danych dostępnych w Internecie najprawdopodobniej wyprodukowano około 800 sztuk tego modelu.


Replika

Replika - projekt PCB

Założeniem budowy repliki jest odtworzenie Jupitera ACE'a jak najbliższego oryginałowi, tj:

  • wielkość płytki i rozprowadzenie ścieżek takie samo, jak na ręcznie rysowanym oryginale,
  • zastosowanie tych samych typów układów scalonych, poza układami ROMu (typu 2532),
  • laminat dwustronny z maską tylko na dolnej stronie,
  • miedź pokryta cyną na wierzchniej stronie PCB
  • brak opisu elementów na laminacie.
Rozmieszczenie elementów na PCB - replika

Zmiany w stosunku do oryginału:

  • ROM zaprogramowany w układach 27C32 zamiast 2532 (zmiana w rozprowadzeniu 2 ścieżek),
  • zastosowanie przetwornicy DC-DC zamiast stabilizatora LM7805,
  • dodanie do złącza krawedziowego sygnału wyłączającego wewnętrzny ROM (/ROMCS), tak jak w Jupiterze ACE 4000 (dodatkowe punkty lutownicze na dwie diody i dwa rezystory na dolnej stronie PCB),
  • miejsce na modulator TV tak jak w oryginale, ale zamiast samego modulatora, wtórnik emiterowy dla wyjścia zespolonego sygnału wideo,
  • klawiatura foliowa podobna do tej z ZX80/81, zamiast gumowej membrany (w opracowaniu).
Replika w całej okazałości

Dodatkowo powstaly nastepujace dodatki:

  • modul rozszezenia pamięci do 96KB (prototyp w produkcji)
  • plyka pozwalajaca na podlaczanie peryferiow od ZX81 (w opracowaniu) tj. moduly pamięci RAM, druk,arki itp.

Proces budowy

Proces powstawania repliki można obejrzeć na filmie pt. Jupiter ACE Recreated.

Nie zaleca się przerysowywania PCB z dostępnych w Internecie schematów oraz plików typu CAD, ponieważ na większości z nich występują znaczne rozbieżności oraz błędy. Natomiast dostępny w Internecie obraz ROMu jest w pliku dla jednego układu 8K typu 2764, wiec przy zastosowaniu dwóch układów 4K, plik należy podzielić w następujący sposób:

  • ROM A (Z1) od 0x0000 do 0x0FFF,
  • ROM B (Z2) od 0x1000 do 0x1FFF.

Obrazy ROMów gotowe do użycia są w postaci pliku .zip

Poza tym:

  • pamieci statyczne 2114 mogą być w dowolnym czasie dostępu, 200ns lub 300ns. Układy o różnych czasach dostępu mogą być wymieszane.
  • kwarce 6.5MHZ są drogie i ciężko je znaleźć. Jako zamiennik można wykorzystać kwarc 6.5536MHz albo zastosować rezonator ceramiczny 6.5MHz, taki sam jaki w ZX81. W przypadku zastosowania rezonatora, środkową nogę należy połączyć do masy (GND).
  • na stronie Granta jest podana lista materiałowa, która nie jest w pełni zgodna ze schematem Jupiera ACE'a.

Testy

Replika została przetestowana na tyle, na ile pozwala brak oryginalnej membrany klawiatury. Zwieranie odpowiednich pół pozwala na pisanie oraz wykonywanie prostych komend w Forth. W ostatecznej wersji nalutowano miniaturowe przyciski zwierne do montażu powierzchniowego i klawiatura jest odczytywana poprawnie.

Obwodu generacji dźwięku nie testowano, ze względu na brak odpowiedniego wysokoimpedancyjnego głośnika (200-220 ohm). Zamiennik w opracowaniu.

Klawiatura

Klawiatura Jupitera ACE'a

(overlay)

Z braku dostępności oryginalnej membrany klawiatury, została zaprojektowana maskownica oraz nalepka z układem klawiszy tak jak w oryginale. Zamiast klawiszy z stykami z gumy przewodzącej, na pola klawiszy nalutowano wyłączniki miniaturowe do montażu powierzchniowego o wysokości 1.5mm. Na etapie prototypu sprawdzono klika typów wyłączników i najlepsze rezultaty osiągnięto jeśli wymagają siły nacisku ok. 1N. Maskownica została wykonana z laminatu o grubości 1.0mm, a na nią naklejono nalepkę. Nalepkę wydrukowano na folii PCV na drukarce atramentowej i zalaminowano dodatkową warstwą matowej folii PCV.

Plik do wydruku jest dostępny i należy wydrukować go w skali 1:1.


Peryferia

96K RAMpack by EB

96KB RAMpack

(schemat)

Moduł rozszerzenia pamięci RAM do 96KB został opracowany przez Edwina Blinka. Rozszerzenie pamięci powyżej 64KB adresowanych bezpośrednio przez Z80 uzyskano przez stronnicowanie dwóch banków po 48KB każdy. Po podłączeniu, moduł startuje jako rozszerzenie RAMu o 48KB i też może być używany. Najprostszym sposobem sprawdzenia dodatkowej pamięci jest wydanie komendy:

 15384 @ U.

Wydanie tego polecenia wyświetli RAMTOP i na ekranie powinna zostać wyświetlona wartość:

 0

Każda inna wartość wskazuje na niepoprawne działanie dodatkowej pamięci.

Aby włączyć stronicowanie banków, należy obniżyć RAMTOP poniżej adresu 16384 wydając komendę:

 16383 15384 !

A następnie zdefinować nowe słowa (komendy) w Forth:

DEFINER CODE DOES> CALL ;
CODE PAGE0 175 C, 237 C, 79 C, 253 C, 233 C,
CODE PAGE1 62 C, 128 C, 237 C, 79 C, 253 C, 233 C,

Wywołując komendy PAGE0 i PAGE1 jest możliwe przełączanie pomiędzy tymi blokami pamięci. Należy pamietać, że przed każdym użyciem tych słów, należy obniżyć RAMTOP poniżej adresu 16384. Do testowania poprawności działania modułu służy program o nazwie 96Kcheck.

Na module RAM znajdują się dwie diody informujące, który z banków jest obecnie w użyciu oraz dioda zasilania i przycisk RESET. Płytka tego modułu została zaprojektowana tak, aby mieściła się w standardowej obudowie typu Z7P o wymiarach 68mm x 90mm x 19mm; do pobrania plik z etykietką do wydruku na A4 w skali 1:1.

96K RAMpack Diagnostic Check

Test pamięci

Program diagnostyczny testujący pamięć RAM napisany przez EB i SPT w 2006r. Aby wykonać test należy: Obinżyć RAMTOP do adresu 16000:

 16000 15384 ! QUIT

Wczytać program (blok binarny) do pamięci RAM począwszy od adresu 16000:

 16000 250 BLOAD RC3

Wartość 250 oznacza długość bloku binarnego i musi być zgodna z rzeczywistą wielkością pliku o nazwie RC3.

Wywołanie programu następuje poprzez wydanie komendy:

 16000 CALL

Program można uruchomić w emulatorze EightyOne poprzez import bliku binarnego do pamięci od adresu 16000 i wydanie powyższej komendy.


96K RAMpack & AY

96KB RAMpack & AY

Wersja modułu dodatkowej pamięci RAM z układem dźwiękowym AY-3-8910. Układ dźwiękowy jest obslugiany przez te same porty co w ZX Spectrum 128K, tj:

 OUT 65533 (0xFFFD) - Wybór rejestru (0-14)
 IN  65533 (0xFFFD) - Odczyt z wybranego rejestru 
 OUT 49149 (0xBFFD) - Zapis do wybranego rejestru 

Na temat sposobu programowania układu dźwiękowego można przeczytać na stronie poświęconej interfejsowi AMI[1] autorstwa Edwina Blinka / SPT. Niestety prace nad tym projektem zostały zaniechane ponad 5 lat temu.

Przykładowa definicja słów w Forth do obsługi AY-ka:

 : AYR 65533 ;
 : AYW 49149 ;
 : AYSND AYR AYW ;
 : AYOFF 255 7 ;

Przykłady:

dźwięk w kanale A

 : TESTA 200 0 AYSND254 7 AYSND  8 8 AYSND ;

dźwięk w kanale B

 : TESTB 200 2 AYSND 253 7 AYSND  8 9 AYSND ;

dźwięk w kanale C

 : TESTC 200 4 AYSND 251 7 AYSND  8 10 AYSND ;


Twister

Twister

(schemat)

Przystawka pozwalająca na podłączanie urządzeń peryferyjnych, przeznaczonych od ZX81, do złącza krawędziowego Jupitera. Przystawka była zaprojektowana przede wszystkim dla dodatkowych modułów pamięci oraz drukarek termicznych. Zostala ona wyposazona w diodę zasilania i przycisk RESET.


Modul wyjścia wideo

Wyjście wideo

(schemat)

Mini plytka montowana we wnętrzu modulatora TV, która pozwala podłączyć Jupiter ACE'a do dowolnego monitora/odbiornika TV wyposażonego w wejście zespolonego sygnału wideo (composite). Układ ten nie dopasowuje poziomów sygnałów do tych zgodnych ze standardem i niektóre nowoczesne telewizory mogą gubić synchronizację.

Należy także zaznaczyć, że przebiegi czasowe Jupitera są obarczone dużym rozrzutem czasowym, które mogą wpływać na jakość sygnału wideo.


Moduł kolorów

ETI Colour Board

W 1984r, w kwietniowym wydaniu Electronic Today International ukazał się artykuł Johna Wike'a, z dodatkowymi informacjami Phila Walkera o możliwości pokolorowania obrazu Jupitera pt. "Adding colour to the ACE". Artykuł jest o tyle ciekawy, że pojawił się ponad pół roku po upadku firmy Jupiter Cantab, oraz wykorzystuje możliwości generacji obrazu kolorowego, takie jakie przewidzieli konstruktorzy Jupitera. W artykule zawarto dokładny opis generowania obrazu przez Jupitera ACE, schemat blokowy typowego układu generacji obrazu kolorowego oraz schemat aplikacyjny dla Jupitera. W artykule przedstawiono także typowe przebiegi w punktach charakterystycznych układu, projekt płytki, zdjęcie gotowego interfejsu oraz przykłady w Forth. Aby było ciekawiej, układ ten doczekał się swojej implementacji w emulatorze EightyOne, ale nigdy nie wyszedł poza projekt hobbystyczny.

maj 2020 - uruchomienie układu rzeczywistego na podstawie informacji w artykule, sprawia wiele trudności technicznych, nie tylko ze względu na kiepską jakość zdigitalizowanych materiałów, ale także na błędy i nieścisłości w tekście artykułu i na schemacie.


Emulatory i programowanie

Swoją przygodę i zabawę z Jupiterem ACE można zacząć od emulatora np. EightyOne oraz wieloma innymi. Sprzętowy emulator Jupitera został napisany prze Paula Farrowa (jest dostępny w formie ROMu do ZX Spectrum)

Zabawę w programowanie można zacząć od zapoznania się z opisem pakietu Z88DK: [2].


Dokumentacja

  • oryginalny schemat Jupitera ACE [3]
  • schemat Bodo Wanzela noca$h
  • lista materiałowa (BOM)
  • rozmieszczenie elementów na PCB (silkscreen)
  • instrukcja obsługi Issue 2


Linki