PDA

Просмотр полной версии : Текстовый экран или спрайты



captain cobalt
21.07.2006, 10:22
From: Kirill Frolov
Date: Mon, Apr 2 2001 3:48 pm
Area: fido7.zx.spectrum

Hемедленно нажми на RESET, All!


Сейчас многие ставят вместо памяти в спектрум SIMM модули и даже умудряются их разгонять на 7Mhz вместо 3.5Mhz. Получается и процессор и видеоконтроллер могут за секунду считать в два раза больше байтов из памяти. Процессор это использует, а видеоконтроллер нет. А ведь можно попытаться. При разгоне памяти на каждый байт считываемый видеоконтроллером можно считать ещё один дополнительный байт. То есть для стандартного спектрумовского экрана на каждую 1/8 часть знакоместа приходится 4 байта: монохромное изображение, байт цвета и два неиспользуемых байта. Вот эти два неиспользуемых байта можно использовать как адрес в памяти из которого будут считаны два следующих байта изображения и цвета. Потом если разделить экран на знакоместа 8x8 и три младшие бита адреса брать напрямую из счётчиков, а старшие биты из двух "неиспользуемых" байтов, а кроме того отключить сигнал бордюра, то можно получить экран размером 56x40 знакомест (на пентагоне, где 320 строк), причём каждое знакоместо адресуется каким-либо спрайтом адрес которого хранится в "неиспользуемых" байтах. Таким образом размер информации описывающей содержимое экрана в спрайтах будет составлять всего 4480 байт. А размер спрайтов может быть очень большим (не менее 64кб). Ускорение при работе с графикой до 4-х раз. Для игр наверное актуально.


При включенном режиме 512х192 и отключенном бордюре аналогичным образом можно получить текстовый экран размером 112х40 символов способный одновременно отображать 256 различных символов в монохромном режиме. С программной точки зрения выглядит привлекательно. Для обновления участка экрана количество операций будет пропорционально периметру, а не площади. То что надо для повышенных разрешений.

ZEK
21.07.2006, 11:46
Вопрос у куда ты дел синхронизирующие области строк и соответсвенно синхронизирующие строки? Верней не ты, автор цитаты :)

Black_Cat
22.07.2006, 14:08
куда ты дел синхронизирующие области строк
Не надо придираться к несущественным частностям. Размер экрана - здесь вещь третьестепенная, главное - собственно суть идеи - адресовать спрайт (который видеопроцессор должен подставить на это знакоместо) с помощью 2х неиспользуемых байтов атрибутов и 3х младших адресов. Вобщем, весьма достойная идея в тему "Идея простого расширения стандартного видеорежима". Любителям v9990 это скорее не пригодится :smile: .

ZEK
22.07.2006, 17:23
Не сильно представляю себе решение данной задачи методом резки дорожек и напайки микрух, данных способ предполоает дстаточно серьезно модифицированный видеоконтролер. Хотя идеея естественно неплохая

Black_Cat
23.07.2006, 11:30
Текстовый экран или спрайты
Кстати, в названии темы упоминается текстовый экран, коий здесь легко реализуется при использовании в качестве спрайтов ячеек памяти с загруженным в них знакогенератором.
Единственное ограничение реализации этой идеи в целом - адресуемые спрайты должны находиться в пределах доступа видеопроцессора, т.е. при применении этого метода в выделенном видеоконтроллере, он сможет адресовать спрайты только в пределах своей видеопамяти.