Есть ли способ получить доступ к DHR на Apple 2 из Applesoft Basic?

При использовании Applesoft Basic на Apple 2 с картой из 80 столбцов есть ли способ создать графику DHR, используя только POKE?

Я нашел ряд решений с использованием сторонних расширений, таких как Beagle Графика, но очень хочется реализовать самому. Я искал свою коллекцию журналов Nibble и основные книги, но не смог найти никакой подробной информации.

Википедия:

Двойное высокое разрешение Композиция экрана с двойным высоким разрешением очень сложна. В дополнение к чередованию 64:1 пиксели в отдельных строках хранятся необычным образом: каждый пиксель был вдвое меньше своей обычной ширины, и каждый байт пикселя чередовался между первым и вторым банком 64-килобайтной памяти. Там, где три последовательных пикселя были белыми, теперь требовалось шесть для двойного высокого разрешения. По сути, все шаблоны пикселей, используемые для создания цвета в графических блоках низкого разрешения, могут быть воспроизведены в графике двойного высокого разрешения. Реализация RAM-диска в ProDOS упростила доступ к экрану Double Hi-Res, заставив первый файл размером 8 КБ, сохраненный в / RAM, хранить свои данные по адресу от 0x012000 до 0x013fff. Кроме того, была возможна вторая страница, и второй файл (или первый файл большего размера) хранил бы свои данные по адресам от 0x014000 до 0x015fff. Однако доступ через файловую систему ProDOS был медленным и плохо подходил для анимации с перелистыванием страниц в двойном высоком разрешении, помимо требований к памяти.

Википедия говорит, что DHR использует чересстрочную развертку 64:1, но не упоминает о реализации. Кроме того, Википедия говорит, что вы можете использовать диск /RAM для доступа, но опять же не дает ссылки на реализацию.

Я работаю над небольшой программой, которая строит простую версию шаблона круга Коннета. Скорость не так важна, как разрешение.


person Wayne Arthurton    schedule 02.08.2010    source источник


Ответы (1)


Член comp.sys.apple2.programmer ответил на мой вопрос по адресу: http://groups.google.com/group/comp.sys.apple2.programmer/browse_thread/thread/b0e8ec8911b8723b/78cd953bca521d8f

В основном вы сопоставляете вспомогательную память с 80-столбцовой карты. Затем нарисуйте на экране HR и укажите ячейку памяти DHR для пикселя, который вы пытаетесь осветить/затемнить.

Лучший полный пример процедуры:

  5 HGR : POKE 49237,0 : CALL 62450 : REM clear hires then hires.aux 
  6 POKE 49246,0 : PG = 49236 
  7 SVN = 7 : HCOLOR= SVN : P5 = .5 
  9 GOTO 100 
 10 X2 = X * 4 : CL = CO : TMP = 8 : FOR I = 3 TO 0 STEP -1 : BIT = CL >= TMP: 
    CL = CL - BIT * TMP : TMP = TMP * P5 
 20 X1 = X + I: HCOLOR= SVN * BIT 
 30 XX = INT (X1 / SVN): H = XX * P5: POKE PG + (H= INT (H)),0 
 40 XX = INT (( INT (H) + (( X1 / SVN) - XX)) * SVN + P5) 
 50 HPLOT XX,Y: POKE PG, 0: NEXT : RETURN 
100 FOR CO = 0 TO 15 : C8 = CO * 8 
110 FOR X = C8 TO C8 + SVN: FOR Y = 0 TO 10 : GOSUB 10 : NEXT : NEXT 
120 NEXT 
130 REM color is 0 to 15 
140 REM X coordinate is from 0 to 139 
150 REM Y coordinate is from 0 to 191 
person Wayne Arthurton    schedule 24.09.2010