HD63C09EP

przez | 5 stycznia 2023
Moduł procesora M6809E/HD63C09EP

Dedykowanym środowiskiem RC80 jest Z80 i jemu pochodne, a tu przedstawię coś całkowicie odmiennego, rozbudowaną wersję 6809 wydaną przez firmę Hitachi – HD63C09.
Jest to wersja CMOS pierwowzoru z rozbudowaną ilością rejestrów, które można połączyć nawet do 32 bit i możliwości przełączenia go w tryb, który jest o 30% szybszy od oryginału. Firma Hitachi niechętnie informowała o wbudowanych nowych funkcjach, zostały one dopiero zaprezentowane przez japońskie czasopismo “Oh! FM” w 1988 roku. Hirotsugu Kakugawa na grupach Google udostępnił pełne informacje o niepublikowanych funkcjach w wątku “A Memo on the Secret Features of 6309” z którymi warto się zapoznać, by poznać bliżej ten procesor.

Procesory HD63C09, podobnie jak 6809, produkowane były w dwóch różniących się wersjach – z wbudowanym generatorem zegara systemowego (HD63C09P, MC6809) oraz takich co wymagają zewnętrznego zegara (HC68C09EP, MC6809E). Wiąże się to z tym, że niektóre wyprowadzenia układu pełnią inną funkcję, o czym należy pamiętać. Zaprezentowany moduł przeznaczony jest dla procesorów z oznaczeniem E (external clock), gdyż obecnie jest coraz trudniej zaopatrzyć się w bardziej przyjazną wersję z wbudowanym układem generatora, bo są one powszechnie podrabiane z wersji E. Procesor ten wymaga podania dwufazowego zegara, który jest przesunięty w fazie o 90° (zegar kwadraturowy), co wymaga użycia dwóch przerzutników JK lub D. W tym miejscu warto wspomnieć, że są to procesory synchroniczne które dostęp do szyny mają tylko w trakcie aktywnych taktów zegara E, więc możliwy jest dostęp do szyny przez inne urządzenia (np. karty graficzne) lub kolejne procesory w stanach gdy nie jest ona używana. Architektura procesorów 6800 w przeciwieństwie do Z80 nie ma podziału na operacje na pamięci i układach wejścia/wyjścia, by odwołać się do urządzeń zewnętrznych należy pewną część przestrzeni adresowej przeznaczyć na ten cel. Wymaga to dołożenia logiki, w tym przypadku najczęściej stosowany jest układ 74×688. Zastosowany w tych procesorach sygnał R/W również należy dostosować do wymagać pamięci, które wymagają osobnych sygnałów RD i WR. W celu uproszczenia modułu zastosowałem układ GAL16V8 który zapewnia wszystkie wymagane funkcje i redukuje “logikę kleju” do jednego układu zamiast trzech.

Kompletny zestaw RCBus na HD63C09

Moduł procesora HD63C09EP[1] wraz typowymi modułami – transmisji szeregowej 16C450/550[2] i modułem pamięci ROM+RAM[3] umożliwia nam uruchomienie 63C09/6809 na RCBus. Pokazuje to elastyczność tego modułowego systemu, gdyż pomimo przypisania sygnałów na szynie do procesorów Z80 i jemu podobnych, umożliwia również działanie kompletnie odmiennych architektur na tym standardzie. Oczywiście układy I/O z rodziny Z80 nie będą współpracować z takim modułem procesora, ze względu na brak generowanego sygnału M1 który jest wymagany do ich poprawnej pracy, ale każdy inny uniwersalny układ będzie tu działać bez przeszkód. Obecnie działa tu ROM z programem BASIC, ale można pokusić się o zainstalowanie systemu operacyjnego zgodnego z 6809 (np. Flex) po rozbudowaniu zestawu o moduł pamięci masowej. Z pobieżnych testów programów wykonywanych pod kontrolą BASIC można określić, że wydajność HD63C09 w trybie zgodnym z 6809 taktowny zegarem 3MHz jest porównywalna do Z80 pracującym z zegarem 8MHz.