Важная информация

User Tag List

Страница 2 из 9 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 90

Тема: Перевод гайда How to Write ZX Spectrum Games

  1. #11
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от helcril Посмотреть сообщение
    Остальной код вполне понятен даже мне
    регистр BC счетчик цикла на 768 байт.

    т.е. B=3, C=0

    проверка на достижение счетчиком 0:
    ld a,b
    or c

  2. #12
    Member Аватар для helcril
    Регистрация
    15.12.2009
    Адрес
    Angarsk
    Сообщений
    191
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    регистр BC счетчик цикла на 768 байт.

    т.е. B=3, C=0

    проверка на достижение счетчиком 0:
    ld a,b
    or c
    Спасибо, просто мне эти битовые махинации и непонятны. Поправлю комментарий.

  3. #13
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от helcril Посмотреть сообщение
    просто мне эти битовые махинации и непонятны
    а что сложного?
    нельзя проверить регистровые пары на значения в лоб, это самый простой способ - 16-битное значение разбито на два байта, в данном случае - младший и старший байт.

    т.е. 768= $300(в шестнадцатеричном режиме)
    B=3 - это ст. байт
    C=0 - мл. байт.
    вместе 16 бит получается как 3*256+0 = 768.
    Но к играм это отношение не имеет, это азы программирования.

  4. #14
    Member Аватар для helcril
    Регистрация
    15.12.2009
    Адрес
    Angarsk
    Сообщений
    191
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    а что сложного?
    нельзя проверить регистровые пары на значения в лоб, это самый простой способ - 16-битное значение разбито на два байта, в данном случае - младший и старший байт.

    т.е. 768= $300(в шестнадцатеричном режиме)
    B=3 - это ст. байт
    C=0 - мл. байт.
    вместе 16 бит получается как 3*256+0 = 768.
    Но к играм это отношение не имеет, это азы программирования.
    Я понимаю, что регистровая пара состоит из старшего и младшего байта. И то, как это выглядит в шестнадцатеричном виде, тоже знаю.
    Но не знал, что нельзя проверять на значение сразу пару, и мне непонятно каким образом ld a,b or c может это делать. К сожалению, как-то так.
    Тем не менее Глава 1 закончена, пройдусь еще завтра свежим взглядом и обновлю пдф. Читайте, критикуйте, предлагайте. Спасибо за помощь.

  5. #15
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,754
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    141
    Спасибо Благодарностей получено 
    1,172
    Поблагодарили
    769 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от helcril Посмотреть сообщение
    мне непонятно каким образом ld a,b or c может это делать.
    правильней OR A,C (но А не указывается поскольку подразумевается что операция проводится только с ним)
    на биты в А накладываются биты из С при этом используется логическое сложение
    https://ru.wikipedia.org/wiki/%D0%94...86%D0%B8%D1%8F

    флаг нуля Z установится только когда все биты в обоих операндах =0

    Код:
    Таблица истинности
    ~x 	~y 	x or y
    ~0 	~0 	~0
    ~0 	~1 	~1
    ~1 	~0 	~1
    ~1 	~1 	~1
    Последний раз редактировалось goodboy; 16.03.2015 в 11:25.

  6. #16
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    правильней OR A,C
    часть ассемблеров смееццо над тобой

    Цитата Сообщение от helcril Посмотреть сообщение
    Читайте, критикуйте, предлагайте
    то ли я ступил, то ли мой пост пропал: неплохо бы к переводу приложить готовые листинги, которые можно ассемблировать. Например, для pasmo.

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Member Аватар для helcril
    Регистрация
    15.12.2009
    Адрес
    Angarsk
    Сообщений
    191
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    флаг нуля Z установится только когда все биты в обоих операндах =0
    Вот теперь все понятно. Понимал, что or c тестит младшую часть на ноль. А вот как это работает в связке с ld a,b не допетривал. Спасибо.

  9. #18
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,754
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    141
    Спасибо Благодарностей получено 
    1,172
    Поблагодарили
    769 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    скорее создаётся аналог or b,c на 0 проверяются обе части

  10. #19
    Veteran
    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,041
    Спасибо Благодарностей отдано 
    931
    Спасибо Благодарностей получено 
    224
    Поблагодарили
    121 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Перевёл по своему, с нуля:


    Код:
    ; Генерируем утолщённый шрифт.
           ld hl,15616         ; ПЗУ-шрифт.
           ld de,60000         ; адрес нашего нового шрифта.
           ld bc,768           ; меняем 96 знаков * 8 строчек.
    ; Начало цикла
    font1  ld a,(hl)           ; берём биты строчки.
           rlca                ; сдвигаем влево.
           or (hl)             ; объединяем оба изображения. 
           ld (de),a           ; пишем в новый шрифт.
           inc hl              ; следующий байт старого.
           inc de              ; следующий байт нового.
           dec bc              ; уменьшаем счетчик.
           ld a,b              ; старший байт (счётчика)
           or c                ; объединяем с младшим байтом.
           jr nz,font1         ; цикл повторяем, пока не настанет bc=zero.
    ;новый шрифт устанавливаем как текущий.
           ld hl,60000-256     ; адрес шрифта минут 32*8.
           ld (23606),hl       ; записываем в системную переменную.
           ret
    [свернуть]

  11. #20
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    ld hl,15616 ; ПЗУ-шрифт.
    может, адрес хранящего в ПЗУ шрифта?

Страница 2 из 9 ПерваяПервая 123456 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Games Compo "From the Arcade to the Spectrum"
    от Rindex в разделе Игры
    Ответов: 5
    Последнее: 28.10.2014, 11:07
  2. 30 ZX Spectrum Games - угадываем названия игр
    от Sabrewulf в разделе Игры
    Ответов: 156
    Последнее: 17.06.2009, 12:41
  3. The Spectrum Games Bible
    от ant222 в разделе Игры
    Ответов: 1
    Последнее: 26.07.2008, 18:35
  4. Read-write vTR-DOS
    от Sonic в разделе Оси
    Ответов: 3
    Последнее: 23.04.2007, 15:34
  5. ZX Spectrum games after 1993
    от alone в разделе Игры
    Ответов: 4
    Последнее: 01.03.2007, 20:42

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •