ZX Review #3-4
22 июля 1997

Форум - М.Бекарев. Расчет адреса экранной области по знакоместу и наоборот.

<b>Форум</b> - М.Бекарев. Расчет адреса экранной области по знакоместу и наоборот.


(c) Бекарев Михаил,
г. Красноярск.

   Я давний поклонник ZX (и ком-
пьютера и журнала). В  основном,
пробую свои силы в  программиро-
вании. Поначалу в Бейсике, как и
все, а теперь перешел на  машин-
ные коды и очень жалею, что дол-
го не мог  преодолеть так  назы-
ваемого психологического барьера
при  переходе  с BASIC на ASSEM-
BLER. Поразительная  разница! Не
только  в  скорости, но и в дос-
тупности.  В  кодах общаешься  с
процессором как с хорошим  това-
рищем, обо  всем  можно  погово-
рить.
   Начиная познавать  ассемблер,
я столкнулся с проблемой  расче-
та адреса  экранной  области  по
знакоместу и наоборот.  И  решил
эту проблему прилагаемой таблич-
кой. Пользоваться ей не  просто,
а очень просто!
   Например, нам необходимо рас-
считать адрес  по  знакоместу  с
координатами y=11, x=18.

           H                    L
┌───┬──┬──┬──┬─┬─┬─┬─╥───┬──┬──┬──┬─┬─┬─┬─┬────────────────────┐
│128│64│32│16│8│4│2│1║128│64│32│16│8│4│2│1│                    │
├───┼──┼──┼──┼─┼─┼─┼─║───┼──┼──┼──┼─┼─┼─┼─┼────────────────────┤
│   │  │  │  │ │4│2│1║   │  │  │  │ │ │ │ │Номер строки   0..7 │
├───┼──┼──┼──┼─┼─┼─┼─║───┼──┼──┼──┼─┼─┼─┼─┤                    │
│   │  │  │16│8│ │ │ ║  4│ 2│ 1│  │ │ │ │ │Y              0..23│
├───┼──┼──┼──┼─┼─┼─┼─║───┼──┼──┼──┼─┼─┼─┼─┤                    │
│   │  │  │  │ │ │ │ ║   │  │  │16│8│4│2│1│X              0..31│
├───┼──┼──┼──┼─┼─┼─┼─║───┼──┼──┼──┼─┼─┼─┼─┤                    │
│   │  │  │ 2│1│ │ │ ║   │  │  │  │ │ │ │ │Номер сегмента 0..2 │
├════════════════════╬════════════════════├────────────────────┘
│   │ 1│  │  │ │ │ │ ║   │  │  │  │ │ │ │ │Адрес экрана
└───┴──┴──┴──┴─┴─┴─┴─╨───┴──┴──┴──┴─┴─┴─┴─┘

   Смотрим и набираем в  таблице
по строке Y число 11 и  отмечаем
его в самой нижней строке  Адрес
экрана.
   Число  11  набирается  как  8
старшего байта и 2,1 младшего.

      1       1      ║     1  1
└───┴──┴──┴──┴─┴─┴─┴─┴───┴──┴──┴──┴─┴─┴─┴─┘

   Теперь набираем  по  X  число
18, это 16 и 2 младшего байта

      1       1      ║     1  1  1     1
└───┴──┴──┴──┴─┴─┴─┴─┴───┴──┴──┴──┴─┴─┴─┴─┘

   Можно даже узнать, какой  ад-
рес будет иметь 3 строка в  дан-
ном знакоместе, добавив в строке
таблицы "номер строки"  число  3
старшего байта:

      1       1   1 1║     1  1  1     1
└───┴──┴──┴──┴─┴─┴─┴─┴───┴──┴──┴──┴─┴─┴─┴─┘

   Теперь мы видим все  это  как
битовую раскладку  двухбайтового
регистра (например, HL).

      1       1   1 1║     1  1  1     1
└───┴──┴──┴──┴─┴─┴─┴─┴───┴──┴──┴──┴─┴─┴─┴─┘
 128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1

   Следовательно,  старший  байт
H=(64+8+2+1)*256=19200, а  млад-
ший L=64+32+16+2=114, и, значит,
адрес  равен  19200+114 = 19314.
Можно даже  увидеть,  что  адрес
находится в первом  сегменте эк-
рана, так как  включен бит над 1
в строке "номер сегмента".
   Обратный пересчет еще  проще.
Разложив адрес экрана  в  битах,
нетрудно узнать координаты, пос-
читав даже на пальцах.
   Единица  в  старшем  регистре
(бит 6)  обязательна,  т.к.  это
начало  адреса  экрана  (64*256=
16384).

********************************



Другие статьи номера:

TR-DOS для начинающих - Часть 1.

Авторская разработка - General Sound - мультимедиа для ZX Spectrum!

Визитная карточка - Представляем новый электронный журнал "Major Wares" (c) Codebusters & V.M.G.

Компьютерная новелла - Knight Lore "Преданья рыцарских времен".

Новые программы - И.Рощин. HELP_Z80. В.Давыдов. Catalog's Base v1.8.

Описание оболочки журнала "ZX-РЕВЮ"

Перекресток драконов - Aavlon, Castle of Dreams, Erik the Viking.

Перекресток драконов - Eureka!, Eye of Bain, Kentilla.

Перекресток - Sherlock, Apollo, Shadows of Mordor, Rigels Revenge, Temple of Terror, ID, That's the Spirit, Return to Ithaka.

Ретро - Дж.Хардман, Э.Хьюзон. 40 лучших процедур.

Советы экспертов - Castle Master.

Советы экспертов - Firelord.

Советы экспертов - Stonkers.

Форум-игры - Insult Megademo, Catch 23, Livingstone, Rock Star ate my Hampster, НЛО-2: Дьяволы Бездны, Terminator 2, Venturama, The Spririts, Nipper, Sweewo'S World, King's Bounti-2, Hacker 2, Black Magic, Satcom, Звёздное Наследие.

Форум - А.Гура. Кодекс программиста.

Форум - А.Стрельников. Перспективы развития ZX Spectrum.

Форум - В.Давыдов. По материалам, опубликованным в ZX-РЕВЮ: Некоторые вопросы, связанные с автостартом Бейсик-программ. Redefine Keys. Процедура печати 42 символов в строке. Процедура умножения HL=B*C. Доработка посекторных загрузчиков. Мини-драйвер дисковых операций.

Форум - Группа 'Light'. Музыкальный процессор для ZX-Speccy.

Форум - Д.Федоров: Печать картинки с маской с точностью до пиксела. Алгоритм расчета адреса по координатам с точностью до пиксела.

Форум - И.Рощин. Совместное использование ZX ASM 3.0 и STS 5.1.

Форум - М.Бекарев. Расчет адреса экранной области по знакоместу и наоборот.

Форум - П.Федин. Доработка Profi для бесконфликтного подключения периферии.

Форум - С.Астров. Генератор псевдослучайных чисел.

Читатель-читателю - В.Сироткин. Защита программ (взгляд на проблему).

Читатель-читателю - И.Рощин. Драйвер экрана для компьютера "Пентагон-128".

Этюды - А.Савинов: Процедура вывода на экран символов двойной высоты. Процедура "растворения" символов.

Этюды - А.Уржа. Процедура рисования окружности.

Этюды - В.Сироткин. Программа подсчета контрольной суммы.

Этюды - Е.Волчков. Улучшение подпрограммы вычисления адреса в дисплейном файле.

Этюды - Е.Мороз. Бегущая строчка.

Этюды - И.Командин. Программа проявления экрана.

Этюды - И.Рощин. Два графических эффекта.

Этюды - М.Лазутов: Программа модернизации шрифта. Программа кодирования/декодирования блока кодов. Эффект с атрибутами.

Этюды - О.Смолянкин: Процедуры очистки экрана. Вывод текстовых сообщений на экран.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Последняя улыбка - По статистике, дети болеющие лейкимией долго не живут...
Обмен опытом - доработку для Пентагона кнопки Magic.
HOT GAMES - Лучшая двадцатка игр от FFC. Лучшая десятка игр от Magic Soft. Лучшая десятка по качеству игровых программ.

В этот день...   27 февраля