Grafika Apple II
Grafika Apple II zadebiutowała na Apple II z 1977 roku i została przeniesiona do reszty linii Apple II. Składają się z 16-kolorowego trybu niskiej rozdzielczości i trybu wysokiej rozdzielczości, w którym efekty wizualne są zależne od koloru artefaktu . Apple IIe dodał „podwójne” wersje każdego z nich, przede wszystkim „podwójną wysoką rozdzielczość” z dwukrotnie większą rozdzielczością poziomą w 16 kolorach. Wewnętrznie tryby graficzne Apple II są specyficzne i nie wykorzystują po prostu liniowego bufora klatek .
Apple IIgs z 1986 roku oddzielił się od poprzedniej architektury Apple II, a grafika ma więcej wspólnego z Atari ST i Amigą .
Specyfika trybów graficznych
Tryby graficzne serii Apple II były osobliwe nawet jak na standardy późnych lat 70. i wczesnych 80. Jedna z godnych uwagi cech charakterystycznych tych trybów jest bezpośrednim wynikiem projektu założyciela firmy Apple, Steve'a Wozniaka, który oszczędza chipy . Wiele domowych systemów komputerowych tamtych czasów (a także dzisiejsze kompatybilne z IBM PC ) miało architekturę, która przypisywała kolejne bloki pamięci do nienastępujących po sobie wierszy na ekranie w trybach graficznych, czyli przeplataniu. [ potrzebne źródło ] Tryby tekstowe i graficzne Apple są oparte na dwóch różnych współczynnikach przeplotu 8:1 i 64:1.
Druga osobliwość grafiki Apple II - tak zwane „kolorowe frędzle” - to kolejny produkt uboczny projektu Woźniaka . Chociaż występują one we wszystkich trybach graficznych, odgrywają kluczową rolę w Hi-Resolution lub Hi-Res (patrz poniżej).
Wyjście wideo
Odczytywanie wartości z lub zapisywanie dowolnej wartości do określonych adresów pamięci sterowanych tak zwanymi „ miękkimi przełącznikami ”. Wartość odczytana lub zapisana nie ma znaczenia, liczy się sam dostęp. Pozwalało to użytkownikowi na wiele różnych rzeczy, w tym wyświetlanie ekranu graficznego (dowolnego typu) bez jego kasowania, wyświetlanie ekranu tekstowego, kasowanie ostatnio naciśniętego klawisza lub dostęp do różnych banków pamięci. Na przykład można przełączyć się z trybu mieszanego grafiki i tekstu na wyświetlanie całej grafiki, uzyskując dostęp do lokalizacji 0xC052 (49234). Następnie, aby wrócić do mieszanej grafiki i tekstu, można uzyskać dostęp do 0xC053 (49235).
Wbudowany sprzęt wyjściowy wideo
Wszystkie maszyny Apple II były wyposażone w gniazdo RCA zapewniające surowe wyjście kompozytowe wideo NTSC , PAL lub SECAM (na komputerach innych niż NTSC przed Apple IIe to wyjście jest tylko czarno-białe). Umożliwiło to podłączenie komputera do dowolnego monitora kompozytowego wideo zgodnego z tym samym standardem, dla którego skonfigurowano urządzenie. Jednak jakość tego wyjścia była niewiarygodna; sygnalizacja synchronizacji była wystarczająco zbliżona do monitorów - które są dość wyrozumiałe - ale nie była wystarczająco zgodna ze standardami, aby nadawała się do zastosowań nadawczych, a nawet wejścia do magnetowidu bez ingerencji w przetwarzanie. (Wyjątkiem była rozszerzona wersja Black II Plus marki Bell & Howell, która zapewniała odpowiednią synchronizację wideo, a także inne funkcje zorientowane na media).
Oprócz kompozytowego gniazda wyjściowego wideo, IIc, IIc Plus i II GS posiadały dwurzędowe, 15-pinowe wyjście . W IIc i IIc Plus złącze to było złączem wideo specjalnego przeznaczenia do adapterów do cyfrowych monitorów RGB i modulatorów RF . W II GS było to wyjście dla analogowego monitora RGB specjalnie zaprojektowanego dla II GS .
Dodatkowe karty wyjścia wideo
Dla serii Apple II dostępnych było wiele dodatkowych kart graficznych, takich jak 80-kolumnowa karta tekstowa Apple . Istniały karty kolorów PAL, które umożliwiały kolorowe wydruki na wczesnych maszynach PAL. Niektóre inne karty po prostu dodały możliwości wyświetlania 80 kolumn i małych liter , podczas gdy inne umożliwiały wyjście do monitora IBM CGA przez gniazdo wyjściowe DE9 .
Szczegóły trybu graficznego
Kolor na Apple II
Wyjście wideo Apple II jest tak naprawdę monochromatycznym wyświetlaczem opartym na wzorcach bitowych w pamięci wideo (lub pikselach). Te piksele są łączone w kwadraturze z sygnałem serii kolorów , który ma być interpretowany jako kolor przez kompozytowy wyświetlacz wideo.
Wysoka rozdzielczość zapewnia dwa piksele na cykl serii kolorów , pozwalając na dwa możliwe kolory, jeśli jeden piksel jest włączony, czarny, jeśli żadne piksele nie są włączone, lub biały, jeśli oba piksele są włączone. Przesuwając wyrównanie pikseli do sygnału serii kolorów o 90°, można wyświetlić dwa dodatkowe kolory, co daje w sumie cztery możliwe kolory. Niska rozdzielczość pozwala na cztery bity na cykl, ale wzór bitowy powtarza się kilka razy na piksel o niskiej rozdzielczości. Podwójna wysoka rozdzielczość wyświetla również cztery piksele na cykl. Zobacz sekcje poniżej, aby uzyskać więcej informacji.
Grafika w niskiej rozdzielczości (Lo-Res).
Blokowy, ale szybki i kolorowy tryb graficzny Lo-Res (często znany jako GR po poleceniu BASIC) miał szerokość 40 pikseli , co odpowiadało 40 kolumnom na normalnym ekranie tekstowym Apple II. Ten tryb może wyświetlać albo 40 rzędów pikseli z czterema liniami tekstu u dołu ekranu, albo 48 rzędów pikseli bez tekstu. W ten sposób dwa piksele ułożone pionowo wypełniłyby obszar ekranu odpowiadający jednemu znakowi w trybie tekstowym. Domyślnie była to grafika 40 × 40 z tekstem.
W tym trybie dostępnych jest 16 kolorów (właściwie w większości przypadków 15, ponieważ dwa odcienie szarości mają identyczną jasność na oryginalnym sprzęcie Apple, z wyjątkiem Apple II GS ) . Zwróć uwagę, że sześć kolorów jest identycznych z kolorami dostępnymi w trybie wysokiej rozdzielczości (Hi-Res).
Kolory zostały utworzone poprzez wypełnienie piksela powtarzającym się 4-bitowym wzorem binarnym w taki sposób, aby każda grupa bitów mieściła się w jednym cyklu sygnału odniesienia serii kolorów . Kolorowe wyświetlacze zinterpretowałyby ten wzór jako sygnał koloru. Na monochromatycznych lub jeśli sygnał colorburst był wyłączony, wyświetlacz ujawniał te wzory bitowe. Istnieją dwa równoważne odcienie szarości, ponieważ 5 (0101) odpowiada 10 (1010) w oparciu o sposób mieszania kolorów; bity „on” są biegunowo przeciwne względem siebie w kwadraturowym sygnale kolorowym, więc znoszą się nawzajem i są wyświetlane jako szare.
Ten tryb jest mapowany na ten sam obszar pamięci, co główny 40-kolumnowy ekran tekstowy (od 0x400 do 0x7FF), przy czym każdy bajt przechowuje dwa piksele jeden na drugim.
Tryb graficzny Lo-Res oferował wbudowane polecenia do czyszczenia ekranu, zmiany koloru rysunku, kreślenia pojedynczych pikseli, kreślenia linii poziomych i kreślenia linii pionowych. Była też funkcja „SCRN” do wyodrębniania koloru zapisanego w dowolnym pikselu, którego brakowało w innych trybach.
Numer — imię | Y | Pb (rel.) | Pr (rel.) |
---|---|---|---|
0 — czarny | 0 | 0 | 0 |
1 — purpurowy | 0,25 | 0 | 0,5 |
2 — ciemnoniebieski | 0,25 | 0,5 | 0 |
3 — fioletowy | 0,5 | 1 | 1 |
4 — ciemnozielony | 0,25 | 0 | −0,5 |
5 — szary #1 | 0,5 | 0 | 0 |
6 — średni niebieski | 0,5 | 1 | −1 |
7 — jasnoniebieski | 0,75 | 0,5 | 0 |
8 — brązowy | 0,25 | −0,5 | 0 |
9 — pomarańczowy | 0,5 | −1 | 1 |
10 — szary #2 | 0,5 | 0 | 0 |
11 — różowy | 0,75 | 0 | 0,5 |
12 — zielony | 0,5 | −1 | −1 |
13 — żółty | 0,75 | −0,5 | 0 |
14 — woda | 0,75 | 0 | −0,5 |
15 — biały | 1 | 0 | 0 |
Układ pamięci Lo-Res
Blok 128 bajtów przechowuje trzy wiersze po 40 znaków każdy, a pozostałe osiem bajtów pozostaje po zapisaniu trzeciego wiersza. Ale te bajty nie pozostają puste. Zamiast tego są różnie używane przez oprogramowanie układowe płyty głównej i oprogramowanie układowe karty rozszerzeń do przechowywania ważnych informacji, głównie o urządzeniach zewnętrznych podłączonych do komputera. Stwarzało to problemy, gdy użytkownik ładował tekst lub ekran graficzny o niskiej rozdzielczości bezpośrednio do pamięci wideo - zastępując bieżące informacje w otworach informacjami, które znajdowały się w czasie zapisywania. (Rekalibracja głowicy dysku była częstym efektem ubocznym, gdy kontroler dysku znalazł swoją pamięć - w otworze ekranu - miejsca, w którym znajdowała się głowica, i nagle nie pasowała do danych nagłówka czytanej ścieżki). Programiści Apple zareagowali, programując ProDOS , aby użytkownik nie mógł bezpośrednio załadować pliku (danych ekranu lub w inny sposób) do 0x400-0x7FF. Wkrótce pojawiły się programy ProDOS do prawidłowego ładowania danych do tej części pamięci; kilka ukazało się w magazynie Nibble .
Ekran 2 Grafika i tekst w niskiej rozdzielczości
Posiadanie dwóch ekranów do wyświetlania obrazu wideo było integralną częścią projektu rodziny Apple II. Dostęp do lokalizacji pamięci 0xC055 (49237) wyświetlał „Ekran 2” niezależnie od tego, jak zostały ustawione inne „przełączniki programowe”. Tekst i przestrzeń Lo-Res Screen 2 wahały się od 0x800 (2048) do 0xBFF (3071). Przeplatanie jest dokładnie takie samo jak dla ekranu głównego („Ekran 1”). Applesoft BASIC są domyślnie ładowane o godzinie 801h (2049); dlatego zajmą miejsce na ekranie tekstowym 2, chyba że komputer otrzyma polecenie załadowania programu w inne miejsce w pamięci. Z kolei niektóre komercyjne programy dla Apple II wykorzystywały to miejsce w pamięci do różnych celów — zwykle do wyświetlania ekranu pomocy.
„Alternatywny tryb wyświetlania” w Apple II GS
W przeciwieństwie do innych typów maszyn Apple II, Apple II GS posiadał procesor ( 65816 ), który mógł obsłużyć ponad 64 KB pamięci RAM bez specjalnych sztuczek. W IIgs pamięć RAM była podzielona na banki o pojemności 64 KB. Na przykład bank 0xE0 składał się z zakresu od 0xE00000 do 0xE0FFFF. Apple IIgs miał chip o nazwie „Mega II”, który pozwalał na uruchamianie większości programów napisanych dla innych komputerów Apple II. Architektura IIgs mapowała dane ekranowe do banku pamięci 0xE0. Jednak w emulacji IIe dane ekranowe były przechowywane w banku 0x00. Stanowiło to problem. Projektanci Mega II uwzględnili procedury kopiowania większości danych ekranowych do banku 0xE0, aby zapewnić prawidłowe działanie programów specyficznych dla Apple IIe. Ale zapomnieli o rzadko używanym ekranie tekstowym 2. Zostało to odkryte dopiero, gdy chipy Mega II trafiły do maszyn IIgs. Projektanci oprogramowania układowego dodali więc CDA (klasyczne akcesorium biurkowe — dostępne z menu akcesoriów biurkowych IIgs, wywoływane za pomocą Apple + Control + Escape ) o nazwie „Alternate Display Mode”, które kosztem odrobiny czasu procesora wykonywało zadanie dla kilku programów, które tego potrzebowały. Można go było włączać i wyłączać według kaprysu, ale wyłączał się po zresetowaniu komputera.
Ulepszona kompatybilność z ekranem tekstowym 2 została rozwiązana wraz z wprowadzeniem Apple IIGS z 1 megabajtem pamięci RAM (lepiej znanym jako ROM 3) w 1989 r. Nowa płyta główna zapewniała sprzętowe cieniowanie ekranu tekstowego 2, bez kosztów dla czasu procesora, dlatego nie wpływając na szybkość działania oprogramowania. Chociaż alternatywny tryb wyświetlania pozostał opcją w menu CDA, maszyna automatycznie wykrywała obecność ekranu tekstowego 2 i włączała sprzętowe cieniowanie ekranu tekstowego 2 w banku 0xE0 na maszynach ROM 3.
Grafika o wysokiej rozdzielczości (Hi-Res).
Kiedy pojawił się Apple II, dodano nowy tryb dla grafiki o wysokiej rozdzielczości 280 × 192. Podobnie jak tryb Lo-Res, tryb hi-res miał dwa ekrany; w Applesoft BASIC można było zainicjować dowolny z nich, używając poleceń HGR dla pierwszego ekranu lub HGR2 dla drugiego.
Applesoft BASIC ROM zawierał procedury czyszczenia jednego z dwóch ekranów Hi-Res, rysowania linii i punktów oraz ustawiania koloru rysunku. ROM zawierał również procedury rysowania, wymazywania, skalowania i obracania kształtów opartych na wektorach . Nie było procedur do rysowania bitmapowych kształtów , rysowania okręgów i łuków ani wypełniania narysowanego obszaru, ale napisano wiele programów; wiele z nich pojawiło się w Nibble i innych magazynach Apple II.
Użytkownik mógł „włączyć” cztery linijki tekstu w trybie Hi-Res, podobnie jak w trybie Lo-Res; jednakże spowodowało to ukrycie dolnych 32 linii, co dało obraz o rozdzielczości 280 x 160. (Procedury ROM nadal mogły modyfikować dno, mimo że było ukryte).
Tryb Hi-Res w Apple II był osobliwy nawet jak na ówczesne standardy. Podczas gdy CGA wydana cztery lata po Apple II na IBM PC pozwalała użytkownikowi wybrać jeden z dwóch zestawów kolorów do tworzenia grafiki 320 × 200, tylko cztery kolory (kolor tła i trzy kolory rysunku) były dostępne jednocześnie. Z kolei Apple oferował osiem kolorów dla grafiki o wysokiej rozdzielczości (właściwie sześć, ponieważ w schemacie powtórzono zarówno czerń, jak i biel). Każdy rząd 280 pikseli został podzielony na 40 bloków po siedem pikseli każdy, reprezentowanych w jednym bajcie. Każda para sąsiednich pikseli generowała pojedynczy kolorowy piksel za pomocą koloru artefaktu , co skutkowało efektywną rozdzielczością 140×192. Dolne siedem bitów każdego bajtu reprezentowało piksele, podczas gdy najbardziej znaczący bit kontrolował przesunięcie fazowe dla tego bloku pikseli, zmieniając wyświetlany kolor.
Wysoki bit Para pikseli Numer koloru Nazwa koloru Y Pb (rel.) Pr (rel.) 0 00 0 Czarny 1 0 0 0 0 01 1 Zielony 0,5 −1 −1 0 10 2 Fioletowy 0,5 1 1 0 11 3 Biały 1 1 0 0 1 00 4 Czarny 2 0 0 0 1 01 5 Pomarańczowy 0,5 −1 1 1 10 6 Niebieski 0,5 1 −1 1 11 7 Biały 2 1 0 0
Chociaż ta funkcja umożliwia jednoczesne wyświetlanie sześciu kolorów na ekranie, ma jeden nieprzyjemny efekt uboczny. Na przykład, jeśli programista próbował narysować niebieską linię na zielonej, fragmenty zielonej linii zmieniłyby się na pomarańczowe. Dzieje się tak, ponieważ w tym przypadku narysowanie niebieskiej linii ustawia MSB dla każdego bloku siedmiu pikseli. „Zielone” i „pomarańczowe” piksele są reprezentowane w pamięci w ten sam sposób; różnica polega na ustawieniu (lub wyczyszczeniu) MSB. Innym skutkiem ubocznym jest to, że narysowanie piksela wymagało podzielenia przez siedem. (W przypadku procesora Apple 6502, który nie miał sprzętu do dzielenia, dzielenie przez siedem było stosunkowo wolne. Gdyby rysowanie piksela wymagało tylko podzielenia przez prostą potęgę dwóch, na przykład osiem, wymagałoby to tylko sekwencji przesunięć bitów, co byłoby znacznie szybsze).
Tryb Hi-Res w Apple II był również charakterystyczny ze względu na współczynnik przeplotu 64: 1. Było to bezpośrednim skutkiem oszczędzającej wióry konstrukcji Steve'a Wozniaka. Współczynnik 64:1 skutkował efektem „ślepoty weneckiej” podczas ładowania ekranu Hi-Res do pamięci z dyskietki (lub czasami dysku RAM ) z już ustawionymi przełącznikami programowymi. „Dziury w ekranie” występują w trybie Hi-Res, tak samo jak w trybach Lo-Res i tekstowych. Zwykle nic tam nie przechowywano - chociaż czasami używano ich do przechowywania kodu w samowyświetlających się wykonywalnych obrazach. Innym godnym uwagi wyjątkiem jest format Fotofile (FOT) odziedziczony przez ProDOS po Apple SOS , który zawierał metadane w 121. formaty graficzne.
Wreszcie, kolejnym dziwactwem projektu Wozniaka jest to, że chociaż każdy piksel może być czarny lub biały, tylko piksele o nieparzystych współrzędnych X mogą być zielone lub pomarańczowe. Podobnie tylko piksele o parzystych numerach mogą być fioletowe lub niebieskie. W tym miejscu pojawia się tak zwana „korzyść dodatkowa”. Sprzęt wideo Apple interpretuje sekwencję dwóch lub więcej włączonych poziomych pikseli jako jednolitą biel, podczas gdy sekwencja naprzemiennych pikseli byłaby wyświetlana jako kolor. Podobnie sekwencja dwóch lub więcej wyłączonych poziomych pikseli byłaby wyświetlana jako czarna.
Nie było wbudowanego polecenia do wyodrębnienia koloru piksela na ekranie Hi-Res, ani nawet do określenia, czy w ogóle był włączony. Napisano kilka programów do określania, czy piksel się świeci, a program do wyodrębniania prawdziwego koloru piksela został opublikowany w wydaniu Nibble z kwietnia 1990 roku .
Tak jak są dwie strony ekranu tekstowego (i dwie strony graficzne Lo-Res), tak są też dwie strony Hi-Res, odwzorowane jedna po drugiej w pamięci. (Drugi ekran Hi-Res został zmapowany na 0x4000-0x5FFF lub 16384-24575 w systemie dziesiętnym). IBM CGA obsługiwał tylko jedną stronę graficzną na raz. Ta uproszczona animacja na Apple II, ponieważ programista mógł wyświetlić jedną stronę, zmieniając jednocześnie drugą (ukrytą) stronę.
Pod warunkiem, że wektor resetowania nie został przesłonięty przez aktywnie działający program, wywołanie Control + Reset przerwałoby program i uciekło do monitora lub wiersza poleceń Applesoft. Użycie Control + Open-Apple + Reset wymusiłoby reset kosztem niewielkiego uszkodzenia pamięci. Kreatywne skonfigurowanie niektórych softprzełączników na monitorze lub przy monicie umożliwiło natychmiastowe przeglądanie obrazów z przerwanych programów. Można było wtedy nagrywać ulubione sceny z gier. Na Apple //e i //c użycie Control + Open-Apple + Reset skutkowałoby rzadkim zapisem wzorca 0xA0A0 w całej pamięci, w tym na stronach Hi-Res 1 i 2 za 2000 USD – 5 FFF. Uszkodzenie przez te artefakty można usunąć za pomocą pakietu malowania. W ulepszonym Apple //e pamięć wideo Hi-Res można zachować bez artefaktów, wykonując następującą sekwencję: naciśnięcie Control + Closed-Apple + Reset i wtapianie klawisza Reset w górę, a następnie w dół przez ułamek sekundy, powtarzając aż do samodiagnostyczny wzór kolorystyczny zaczął wypełniać pierwszą linię tekstu w lewym górnym rogu. Ponieważ autodiagnostyka postępowała od 0000 USD w górę, gdy adres początkowy strony tekstowej 1 (400 USD) został zmiażdżony, tak samo była suma kontrolna wektora resetowania (3F4 USD), co oznaczało, że kolejne szybkie naciśnięcie Control + Reset wymusić ponowne uruchomienie oprogramowania układowego bez blokowania pamięci powyżej 0800 USD w bankach głównych lub pomocniczych. Możliwe było zapisanie tych obrazów na dyskietce i utworzenie pokazu slajdów lub statycznego obrazu, ponieważ miękki reset nie czyścił pamięci wideo na obrazach Hi-Res.
Tryby graficzne w nowszych modelach (IIe, IIc, IIc Plus, II GS )
Wkrótce po wprowadzeniu Apple IIe inżynierowie Apple zdali sobie sprawę, że obwody podwajające przepustowość wideo używane do implementacji 80-kolumnowego trybu tekstowego można łatwo rozszerzyć o tryby graficzne maszyny. Ponieważ sygnał był obecny w dodatkowym złączu gniazda, w którym znajdowała się karta Extended 80 Column Card, Annunciator 3 na porcie gry był przeciążony, aby aktywować grafikę o podwójnej rozdzielczości, gdy wybrano zarówno 80-kolumnowe wideo, jak i tryb graficzny. Zamienne płyty główne (zwane płytą główną Revision B) były oferowane bezpłatnie właścicielom Apple IIe w celu uaktualnienia ich maszyn o możliwości graficzne w podwójnej rozdzielczości. Z tego powodu maszyny z oryginalną płytą główną w wersji A są niezwykle rzadkie. Kolejne modele Apple II również implementują tryby graficzne o podwójnej rozdzielczości.
Podwójna niska rozdzielczość
Był to tryb graficzny 80×40 (lub 80×48) dostępny tylko na maszynach 80-kolumnowych. W Applesoft BASIC włączenie tego trybu wymagało trzech kroków. Najpierw włączenie trybu 80 kolumn za pomocą PR# 3
, następnie włączenie grafiki o podwójnej gęstości za pomocą POKE 49246 , 0
, a następnie GR
.
0 0 10 DRUKUJ CHR$ ( 4 ) "PR#3" : DRUKUJ CHR$ ( ); : POKE 49246 , : GR
(Zauważ, że PR#3 jest odroczone do systemu operacyjnego, z PRINT CHR$ ( 4 )
, aby uniknąć odłączania go od BASIC-a — ze skomplikowanych powodów. Po nim następuje polecenie PRINT, aby wysłać znak zerowy, ponieważ nowo przypisane urządzenie wyjściowe nie jest inicjalizowany, dopóki nie zostanie do niego wysłany pierwszy znak — powszechne źródło nieporozumień).
Po wykonaniu tej czynności ekran Double Lo-Res został wyświetlony i wyczyszczony, a polecenia PLOT, HLIN i VLIN działały normalnie z zakresem współrzędnych x rozszerzonym do 0 do 79. (Tylko Apple IIc i IIgs obsługiwały to w oprogramowaniu układowym. Używanie trybu podwójnej rozdzielczości z BASIC-a na IIe było znacznie bardziej skomplikowane bez dodawania rozszerzenia polecenia & do BASIC-a.)
Podczas korzystania z tego trybu w Applesoft wystąpiły dwa główne problemy. Po pierwsze, po włączeniu trybu dostęp do drukarki stał się skomplikowany, ponieważ oprogramowanie sprzętowe 80-kolumnowego wyświetlacza było obsługiwane jak drukarka. Po drugie, funkcja SCRN (odczyt pikseli) nie działała poprawnie. Nibble z marca 1990 roku pojawił się program , który rozwiązał ten problem.
Co najmniej jeden komercyjnie dostępny kompilator języka BASIC , ZBASIC firmy Zedcor Systems, był znany z obsługi grafiki Double Lo-Res.
Podwójna wysoka rozdzielczość
Kompozycja ekranu Double Hi-Res jest skomplikowana. Oprócz przeplotu 64:1, piksele w poszczególnych rzędach są przechowywane w nietypowy sposób: każdy piksel miał połowę swojej zwykłej szerokości, a każdy bajt pikseli zmieniał się między pierwszym a drugim bankiem pamięci 64 KB. Tam, gdzie trzy kolejne piksele były białe, sześć było teraz wymaganych w podwójnej wysokiej rozdzielczości. W efekcie wszystkie wzory pikseli używane do tworzenia kolorów w blokach graficznych Lo-Res można odtworzyć w grafice Double Hi-Res.
Implementacja dysku RAM w ProDOS ułatwiła dostęp do ekranu Double Hi-Res, sprawiając, że pierwszy plik o wielkości 8 KB zapisany w /RAM zapisuje swoje dane pod adresami od 0x012000 do 0x013fff zgodnie z projektem. Możliwa była również druga strona, a drugi plik (lub większy pierwszy plik) przechowywałby swoje dane w zakresie od 0x014000 do 0x015fff. Jednak dostęp przez system plików ProDOS był powolny i nie nadawał się dobrze do animacji przewracania stron w Double Hi-Res, poza wymaganiami dotyczącymi pamięci.
Aplikacje korzystające z podwójnej wysokiej rozdzielczości
Pomimo złożoności programowania i korzystania z tego trybu, istniało wiele aplikacji, które z niego korzystały. Podwójna grafika Hi-Res była wykorzystywana w aplikacjach biznesowych, oprogramowaniu edukacyjnym i grach. Wersja Apple GEOS używała Double Hi-Res, podobnie jak program do malowania Broderbunda , Dazzle Draw . Firma Beagle Bros dostarczyła zestaw narzędzi, Beagle Graphics, z procedurami tworzenia podwójnej grafiki wysokiej rozdzielczości w AppleSoft BASIC. Liczne gry zręcznościowe i gry napisane na inne komputery zostały przeniesione na Apple II i wiele z nich korzystało z tego trybu graficznego. Istniały również liczne programy narzędziowe i karty drukarek typu plug-in, które pozwalały użytkownikowi drukować grafikę Double Hi-Res na drukarce igłowej , a nawet LaserWriter .
Apple II GS
Oprócz obsługi istniejących trybów, Apple II GS dodaje nowe tryby podobne do tych z Atari ST i Amigi .