Jeśli chcesz po prostu umieścić coś na ekranie i myślisz, że naprawdę naprawdę możesz polubić okablowanie, możesz dążyć do systemu grafiki postaci z początku lat 80-tych. Jeśli uda ci się trafić w synchronizację RS-170A, możesz nawet wepchnąć sygnał do wolnego wejścia AV w 50-calowym telewizorze plazmowym i przejść do stylu retro w wielkim stylu.
Niektóre wczesne systemy używał swoich 8-bitowych procesorów do bezpośredniego generowania wyświetlacza, na przykład 6507 w Atari 2600 i Z-80 w Timex Sinclair ZX-81. Możesz nawet zrobić to samo z nowoczesnymi mikrokontrolerami. Zaleta w ten sposób jest to, że sprzęt jest prosty, ale oprogramowanie generalnie musi być w asemblerze i jest bardzo wymagające, a wyniki będą naprawdę rozczarowujące. Prawdopodobnie 2600 wykorzystywało dodatkowy sprzęt, ale TIA nie miało zbyt wiele FIFO, i 6502 (no, naprawdę 6507) musiał zrzucać do niego bajty w czasie rzeczywistym. W tym podejściu nie ma standardowego trybu wideo; każda aplikacja, która używa wideo, musi być ściśle połączona z potrzebą utrzymania przepływu pikseli.
Jeśli naprawdę chcesz zbudować coś z TTL, następnym poziomem złożoności byłoby przejście do pamięci ROM znaków b wyświetlacz tekstowy. Pozwala to na umieszczenie dowolnego z, powiedzmy, 256 znaków w dowolnej z na przykład 40 kolumn i 25 pozycji w wierszach. Można to zrobić na kilka sposobów.
Jeden sposób - zrób to, co zrobiłem w modelu TRS80. Grupa liczników 74161 z zestawem bramek wygenerowała adres wideo; trzy zmultipleksowane 12 bitów 74157 adresu procesora z adresem wideo, aby dostarczyć adres do statycznej pamięci RAM 2K. Dane RAM były buforowane z powrotem do CPU, ale niebuforowane jako adres do pamięci ROM zestawu znaków. Nie było arbitrażu autobusowego; jeśli procesor chciał pamięci wideo RAM, system wideo został nadepnięty, co spowodowało efekt „śniegu”. Adres zmiksowanego wideo został połączony z kilkoma liniami z sekcji licznika, aby zaokrąglić niskie adresy; wyjście znaków ROM zostało zrzucone do rejestru przesuwnego 74166. Całość uciekała od podziałów z kryształu 14,31818 MHz. W tym podejściu miałbyś dokładnie jeden tryb wideo całkowicie zaimplementowany sprzętowo, taki jak 40x25 lub 64x16 itd., I jakikolwiek zestaw znaków, który możesz umieścić w pamięci ROM.
Innym sposobem - wykop tak zwany chipem CRTC jak 6845. Łączyły one większość logiki licznika i kleju, i zapewniały procesorowi interfejs kontrolno-rejestrowy, dzięki czemu można było przeprogramować część taktowania. Systemy takie jak ten mogą być nieco bardziej elastyczne, na przykład można uzyskać 40x25 i 80x25 z tego samego sprzętu, pod kontrolą rejestru. Jeśli sprytnie podchodzisz do częstotliwości zegara, możesz pozwolić procesorowi na swobodny dostęp do pamięci RAM wideo przez połowę taktowania, a dostęp do generatora adresu wideo w drugiej połowie, eliminując w ten sposób potrzebę arbitrażu magistrali i wyeliminowanie efektu śniegu.
Jeśli jednak chcesz skorzystać z prawdziwych trybów graficznych, szybko przekonasz się, że obracanie własnego jest problematyczne. Oryginalny Apple 2 poradził sobie z tym, ale ten system miał w sobie około 110 układów MSI TTL, a mimo to było kilka zabawnych rzeczy, z którymi trzeba było sobie poradzić, jak nieliniowe odwzorowanie bufora wideo na wyświetlacz i niezwykle ograniczone palety kolorów. , żeby wymienić dwa. Powszechnie uznaje się, że Woz miał wskazówkę. Zanim pojawiło się „2e”, Apple już umieszczał system wideo w niestandardowym chipie. C-64, mniej więcej w tym samym czasie, zawdzięczał swoje możliwości graficzne niestandardowym chipom.
Więc ... Powiedziałbym, że istnieją dwa sposoby, aby to zrobić. Jeden sposób - wyciągnij swój stary TTL i aspiruj do jednokolorowego wyświetlacza tekstowego 80x25; w drugą stronę - kup sobie dobrą tablicę ewaluacyjną FPGA, zrób wszystko w VHDL i zacznij od wyświetlacza tekstowego 80x25.