<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Speccy - наш выбор! - Дневники - Raider</title>
		<link>https://zx-pk.ru/blogs/523-raider.html</link>
		<description>Место для общения поклонников платформы ZX Spectrum</description>
		<language>ru</language>
		<lastBuildDate>Thu, 09 Apr 2026 14:42:03 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>240</ttl>
		<image>
			<url>https://zx-pk.ru/images/styles/asdialup/misc/rss.jpg</url>
			<title>Speccy - наш выбор! - Дневники - Raider</title>
			<link>https://zx-pk.ru/blogs/523-raider.html</link>
		</image>
		<item>
			<title>Нелинейная адресация видеопамяти ZX Spectrum</title>
			<link>https://zx-pk.ru/entries/272-nelinejnaya-adresatsiya-videopamyati-zx-spectrum.html</link>
			<pubDate>Mon, 12 Nov 2018 11:49:59 GMT</pubDate>
			<description>v.1.0. черновая. 
 
Почему экран ZX Spectrum устроен так необычно? Казалось бы, линейный экран намного проще? 
 
Для ответа рассмотрим ZX Spectrum 16K. Контроллеру дисплея требуется считывать сразу два байта подряд (На самом деле он считывает в burst’е 2+2 байт, но для объяснения это...</description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore">v.1.0. черновая.<br />
<br />
Почему экран ZX Spectrum устроен так необычно? Казалось бы, линейный экран намного проще?<br />
<br />
Для ответа рассмотрим ZX Spectrum 16K. Контроллеру дисплея требуется считывать сразу два байта подряд (На самом деле он считывает в burst’е 2+2 байт, но для объяснения это несущественно). Сначала считывается байт атрибутов, затем байт пиксельных данных . Адрес приходится выставлять дважды: адрес атрибутов и адрес пикселей. <br />
<br />
Объем DRAM 4116 составляет 16кбит или 14 бит. 14 битный адрес мультиплексирован по 7+7 бит и выставляется во времени раздельно, двумя частями. Сначала выставляются младшие 7 бит адреса, сопровождаемые сигналом RAS (row address strobe), при этом микросхема запоминает эту часть адреса внутри. Затем выставляются старшие 7 бит адреса, сопровождаемые сигналом CAS (column address strobe). При этом передача первой и второй части адреса в цикле RAS-CAS требует определённого времени, это важно.<br />
<br />
Микросхема DRAM 4116 является одной из первых микросхем PM (page mode) со страничной адресацией. Она позволяет выставлять только одну часть (7 bit) мультиплексированного адреса, оставляя предшествующую часть (выставленную RAS) неизменной. Это работает быстрее, так как не требуется каждый раз посылать обе части адреса. Вместо двух циклов RAS-CAS для передачи полного 7+7 бит адреса остаётся только один цикл CAS. В терминологии PM микросхем DRAM такая ситуация называется страничный доступ. <br />
<br />
Теперь вспомним, Z80 разделяет время с контроллером дисплея, и чем быстрее будет цикл чтения контроллера дисплея, тем меньше времени будет простаивать Z80. Ситуация на самом деле хуже, так как если бы чтение выполнялось 4мя циклами RAS-CAS-RAS-CAS, Z80 пришлось бы остановить на всё время чтения строки дисплея. Поэтому Ричарду Альтвассеру пришла мысль использовать страничный доступ 4116 и пере-использовать часть адреса контроллера дисплея. В этом заключается ещё одна маленькая хитрость устройства ZX Spectrum.<br />
<br />
Когда контроллер дисплея считывает два байта, адрес байта атрибутов выставляется полный, 14 бит двумя циклами по 7 бит RAS-CAS. Чтение байта пикселей выполняется сразу вслед за этим в страничном режиме, одним циклом CAS. При этом выставляются только старшие 7 бит адреса, младшие 7 бит используются от атрибутов. Тем самым вместо долгого цикла из RAS-CAS-RAS-CAS происходит более короткий цикл RAS-CAS-CAS.<br />
Это и есть ответ на загадку дисплея ZX Spectrum. Из-за ускорения чтения циклом RAS-CAS-CAS по 7+7+7 бит адреса, и из-за того что адрес пикселей использует часть адреса атрибутов, биты адреса пришлось разделить, перегруппировать и отсылать частями.<br />
<br />
Рассмотрим, как именно.<br />
Счётчик контроллера экрана условно представлен битами: <br />
v7,v6,v5,v4,v3,v2,v1,v0,c4,c3,c2,c1,c0 <br />
где v – 8 битов vertical, пересчитывающих 0..191, c- 5 битов column, пересчитывающих 0..31. С column-частью адреса всё в порядке, перемешивание идёт с v-битами. <br />
<br />
В микросхемы DRAM адрес отсылается по 7 бит, сначала сопровождаемые RAS-стробом идут 7 младших бит адреса атрибутов: [v4,v3,c4,c3,c2,c1,c0] – при этом биты v2,v1,v0 счётчика пиксельной строки пропущены.<br />
<br />
Затем, по CAS-стробу передаются оставшиеся старшие биты адреса: <br />
[0,1,1,0,v7,v6,v5] – 7 старших бит адреса атрибутов. <br />
Отметим, что биты счётчика v7-v5 следуют за битами v4-v3, продолжая их, т.е. адрес атрибутов линейный. Биты 0,1,1,0 заданы аппаратно. После этого будет прочитан байт атрибутов. <br />
<br />
Затем, по CAS-стробу в страничном режиме должны быть переданы 7 бит старшей части пиксельного адреса.<br />
[0,v7,v6,v2,v1,v0,v5] – какова логика такой расстановки битов? Младшая часть пиксельного адреса используется от адреса атрибутов, переданного по RAS. Биты счётчика адреса v4-v3 мы уже передали, значит, следующий бит v5. Далее следуют биты v2,v1,v0, v7,v6 и аппаратный бит 0. <br />
<br />
Выставим обе части 7+7 бит пиксельного адреса в ряд:<br />
0,v7,v6,v2,v1,v0,v5,v4,v3,c4,c3,c2,c1,c0.  <br />
<br />
Разобъём на две группы по 8 бит, также как биты сгруппированы в регистрах микропроцессора z80:<br />
[0,1,0,v7,v6,v2,v1,v0] [v5,v4,v3,c4,c3,c2,c1,c0]<br />
<br />
Наблюдаем знакомую картину экранного адреса. Остаётся открытым вопрос – единственный ли это способ группировки бит? Для видеоконтроллера адресация байт в памяти не особо важна. Однако логическая группировка бит адреса для конкретного микропроцессора может либо хорошо совпадать с его архитектурой, либо вызывать затруднения. При проектировании ZX Spectrum (рабочее название ZX82) учитывался опыт предыдущих продуктов Sinclair ZX81, ZX80, имевших дисплей 32 символа по 24 строки. В итоге остановились на наиболее удобной аранжировке бит для программного отображения одного символа, когда для того чтобы переходить к следующей строке достаточно инкрементировать старшую половину адреса. Заметим, что в продуктах ZX80, ZX81 дисплей отображался программно, при помощи Z80, поэтому вопрос производительности был, конечно, понятен. Вот почему, в конечном итоге, ZX Spectrum имеет такую организацию экрана. Исходная причина перестановки бит вызвана требованиями hardware. Но сама аранжировка бит, такая, а не иначе – задана требования software. Замечательная работа инженеров!<br />
<br />
Использованная литература: Chris Smith &quot;The ZX Spectrum ULA: How To Design A Microcomputer&quot;.</blockquote>

]]></content:encoded>
			<dc:creator>Raider</dc:creator>
			<guid isPermaLink="true">https://zx-pk.ru/entries/272-nelinejnaya-adresatsiya-videopamyati-zx-spectrum.html</guid>
		</item>
		<item>
			<title>Сколько стоил Z80 в 1981 году?</title>
			<link>https://zx-pk.ru/entries/252-skolko-stoil-z80-v-1981-godu.html</link>
			<pubDate>Sun, 04 Mar 2018 00:58:25 GMT</pubDate>
			<description>В американском журнале Radio Electronics / август 1981 я нашел 
розничные цены Z80, 6502 и других микросхем.  
 
Изображение: https://b.radikal.ru/b36/1803/d8/69c5f3480cadt.jpg  (https://b.radikal.ru/b36/1803/d8/69c5f3480cad.jpg) 
 
картинка кликабельна.</description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore">В американском журнале Radio Electronics / август 1981 я нашел<br />
розничные цены Z80, 6502 и других микросхем. <br />
<br />
<a href="https://b.radikal.ru/b36/1803/d8/69c5f3480cad.jpg" target="_blank"><img src="https://b.radikal.ru/b36/1803/d8/69c5f3480cadt.jpg" border="0" alt="" /></a><br />
<br />
картинка кликабельна.</blockquote>

]]></content:encoded>
			<dc:creator>Raider</dc:creator>
			<guid isPermaLink="true">https://zx-pk.ru/entries/252-skolko-stoil-z80-v-1981-godu.html</guid>
		</item>
		<item>
			<title>Intel iAPX 432</title>
			<link>https://zx-pk.ru/entries/170-intel-iapx-432.html</link>
			<pubDate>Wed, 14 Dec 2016 15:59:04 GMT</pubDate>
			<description>...В 1974 году фирма Intel выпустила 8-битный микропроцессор i8080. А уже в 1975 году Intel запустила проект амбициозного iAPX 432. «Амбициозный» это мягко сказано. Они только что выпустили 8-битный микропроцессор, но уже в следующем году готовили 32х-битный, стековый, с цепными битовыми составными...</description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore"><font color="#1D2129"><span style="font-family: &amp;amp">...В 1974 году фирма Intel выпустила 8-битный микропроцессор i8080. А уже в 1975 году Intel запустила проект амбициозного iAPX 432. «Амбициозный» это мягко сказано. Они только что выпустили 8-битный микропроцессор, но уже в следующем году готовили 32х-битный, стековый, с цепными битовыми составными командами, объектно-ориентированный, со сборкой мусора, мультизадачностью, встроенной безопасностью объектов и управлением памятью микропроцессор! Готовили не только &quot;железо&quot;, но <span style="font-family: inherit">и Ада-компилятор, а также операционку. В итоге проект iAPX 432 коммерчески провалился. Wikipedia описывает почему - недостаточная производительность, долгая разработка, сырой компилятор, чрезмерная сложность. В процессе разработки надо было как-то конкурировать с Motorola, Zilog, и National Semiconductor, поэтому в спешке организовали параллельный проект-«заплатку», результатом которого стал 16-битный 8086 (первая ревизия инструкций и архитектуры была готова за 3 месяца). <br />
Теперь до некоторой степени проясняется, что к чему. Понятен странный дизайн 8086 с его сегментными регистрами (один англоязычный источник называл его «brain-damaged»). Понятно, почему он столь непродуман и примитивен (потому что представлял собой временную заплатку). Также становится объяснима странная сложность и системная монструозность к которой постоянно стремились разработчики новых серий x86. Они не оставляли надежды занять рынок майнфреймов. Здесь можно увидеть желание брать крутостью и ценой, но не массовостью.</span></span></font><br />
<font color="#1D2129"><span style="font-family: &amp;amp"><span style="font-family: inherit">Но что самое забавное, в начале 2000-х Intel снова прошли по тем же самым граблям с Itanium (Merced). Все то же самое - изначальный прицел на майнфреймы, сырой компилятор, сложный и затянутый дизайн, низкая производительность... Как видно, далеко не все учатся на ошибках, даже такие как Intel. И не все способны сделать адекватную оценку проекта. А также все это лишний раз подтверждает - наиболее конкуретноспособными оказываются простые и прямолинейные решения.</span><br />
<span style="font-family: inherit">Современные микропроцессоры Intel в какой-то степени наследники «временной заплатки». По крайней мере, все еще способны выполнять 16-битный код...</span><br />
</span></font></blockquote>

]]></content:encoded>
			<dc:creator>Raider</dc:creator>
			<guid isPermaLink="true">https://zx-pk.ru/entries/170-intel-iapx-432.html</guid>
		</item>
		<item>
			<title>Книга о R-Type</title>
			<link>https://zx-pk.ru/entries/147-kniga-o-r-type.html</link>
			<pubDate>Sat, 19 Nov 2016 13:41:45 GMT</pubDate>
			<description><![CDATA[Я тут не так давно прочитал книгу "IT'S BEHIND YOU: The making of a computer game" by Bob Pape.  
Рекомендую! 
http://itsbehindyou.atwebpages.com/download.html 
Книга - описание как был написан R-Type, и как в тот момент складывалась жизнь вокруг Bob Pape. Там всего-то 136 страниц небольшого...]]></description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore"><font color="#1D2129"><span style="font-family: Helvetica">Я тут не так давно прочитал книгу &quot;IT'S BEHIND YOU: The making of a computer game&quot; by Bob Pape. <br />
Рекомендую!<br />
</span></font><font color="#1D2129"><span style="font-family: Helvetica"><a href="http://itsbehindyou.atwebpages.com/download.html" target="_blank">http://itsbehindyou.atwebpages.com/download.html</a><br />
</span></font><font color="#1D2129"><span style="font-family: Helvetica">Книга - описание как был написан R-Type, и как в тот момент складывалась жизнь вокруг Bob Pape. Там всего-то 136 страниц небольшого формата. На вечер-два.<br />
</span></font><font color="#1D2129"><span style="font-family: Helvetica">R-Type не придумана с нуля, как я это думал во времена спектрума. Это аккуратная переделка с аркадного автомата, о которых тут недавно шла речь.</span></font><font color="#1D2129"><span style="font-family: Helvetica">Нельзя сказать что это конверсия или &quot;перенос&quot; в общепринятом смысле, так как доступа к оригинальной графике и коду не было. Всю игру сняли на видеокассету, и Bob в точности закодировал поведение оригинальной игры. По программированию в книге совсем немного, больше там описание времени и окружающей реальности, втч Activision в те времена. Причем, все это описано довольно подробно, эдакий срез реальности.<br />
</span></font><font color="#1D2129"><span style="font-family: Helvetica">Некоторые факты.</span></font><font color="#1D2129"><span style="font-family: Helvetica">Robert'у C. Pape как я вычислил на момент событий было 27.<br />
Код написан с нуля.<br />
Срок разработки ~6 месяцев.<br />
Bob работал по 12-14 часов в сутки. <br />
Работа производилась совершенно самостоятельно, начинал и заканчивал он один, его никто не подгонял. (Была попытка менеджмента, втч регулярно посылал результаты, но только для пост-контроля и уверенности у Activision что там вообще, что-то делается. Нельзя назвать это каким-либо &quot;менеджментом&quot;. Также он например ни разу не посылал код).<br />
Обстановочка была уровня &quot;поспал-за работу&quot;.<br />
У него были моменты жесточайшего дэдлайна, когда он слабо соображал что где он написал, т.е. работая за монитором терял связь с реальностью. <br />
Разработка R-Type велась не на спектруме. У него была хост-машина и хост-система, которую он не особо описывает.<br />
Художник основную графику как я догадываюсь выполнял на Atari ST, на которой она делалась в первую очередь. На спектрум он как я думаю лишь конвертировал.<br />
В общем в целом - удивительно!<br />
Я бы сказал что эту игру мы не увидели бы, если бы не дикое трудолюбие и прилежность Bob'а.<br />
</span></font><font color="#1D2129"><span style="font-family: Helvetica"><br />
По уровню пофигизма и откровенного кидалова - работа Боба над R-type очень напоминает всё что бывало у меня. Всё то же самое, дикий андерэстимэйшн сроков который я вытягивал работая по 12-14 часов в день, обман, кидалово с деньгами, исчезновение заказчиков и совершенно типичное появление без денег с требованиями &quot;а ну быстро прислал мне код&quot;! <br />
Благодаря всему этому книга нашла самый живой отклик в моей душе...<br />
</span></font></blockquote>

]]></content:encoded>
			<dc:creator>Raider</dc:creator>
			<guid isPermaLink="true">https://zx-pk.ru/entries/147-kniga-o-r-type.html</guid>
		</item>
		<item>
			<title>О аркадных видеоиграх</title>
			<link>https://zx-pk.ru/entries/139-o-arkadnykh-videoigrakh.html</link>
			<pubDate>Mon, 31 Oct 2016 03:01:19 GMT</pubDate>
			<description>Холл, пассаж, галерея или проход называется по-английски arcade  (аркейд), так как делали их раньше в виде серии арок с застекленной  крышей.  
 
В аркадах размещали торговые ларьки, а потом стали  ставить игровые автоматы, которые поначалу были механические или  электрические, а затем уже стали...</description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore">Холл, пассаж, галерея или проход называется по-английски arcade  (аркейд), так как делали их раньше в виде серии арок с застекленной  крышей. <br />
<br />
В аркадах размещали торговые ларьки, а потом стали  ставить игровые автоматы, которые поначалу были механические или  электрические, а затем уже стали чисто компьютерными. <br />
<br />
Игры на  домашних компьютерах называли аркадными потому что это были конверсии с  игровых автоматов. Например R-TYPE или Ramparts - это чистые конверсии  один-в-один. Так возник жанр аркадных игр.<br />
<br />
На видео из 80х, можно посмотреть как это было. Как играли в аркадные видеоигры.<br />
<br />

<iframe class="restrain" title="YouTube video player" width="640" height="390" src="//www.youtube.com/embed/nWevidSFyjY?wmode=opaque" allowfullscreen="true" frameborder="0"></iframe>
</blockquote>

]]></content:encoded>
			<dc:creator>Raider</dc:creator>
			<guid isPermaLink="true">https://zx-pk.ru/entries/139-o-arkadnykh-videoigrakh.html</guid>
		</item>
	</channel>
</rss>
