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

User Tag List

Страница 3 из 9 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 90

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

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

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    может, адрес хранящего в ПЗУ шрифта?
    Ну, у меня почти так:
    Код:
    ld hl,15616         ; загружаем адрес ROM-шрифта.
           ld de,60000         ; адрес нашего нового шрифта.
    Только и правда ROM надо на ПЗУ поменять.

    ---------- Post added at 18:32 ---------- Previous post was at 18:30 ----------

    Цитата Сообщение от goodboy Посмотреть сообщение
    скорее создаётся аналог or b,c на 0 проверяются обе части
    Да, я действительно правильно. Ведь в аккумулятор мы загрузили содержимое b. А результатом операции OR C будет ноль, только если в обоих байтах (a и c) все биты будут нули.

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

    По умолчанию

    "Пишем книгу как "написать игру" " вместе

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

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    "Пишем книгу как "написать игру" " вместе
    Ну, я сразу предупреждал, что скорее всего понадобится помощь с техническими моментами.

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

    По умолчанию

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

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

    По умолчанию

    Обновление, переведена Глава 1

  6. #26
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    130
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    "Пишем книгу как "написать игру" " вместе
    такая книга уже есть, 1995 года, авторы Капульцевичи и Евдокимов
    кстате, они тоже активно юзают процедуры из ПЗУ, а это не гуд для крутых поделий. Быстродействие будет как у Бейсика.
    Последний раз редактировалось Andrew771; 16.03.2015 в 17:09.

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

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    такая книга уже есть, 1995 года, авторы Капульцевичи и Евдокимов
    кстате, они тоже активно юзают процедуры из ПЗУ, а это не гуд для крутых поделий. Быстродействие будет как у Бейсика.
    В уже переведенном тексте написано, что продвинутые способы будут дальше. А процедуры ПЗУ он использует для, так сказать "быстрого старта" читателей. Джонатан реальный игродел и автор конструктора AGD, думаю, что качество материала должно быть хорошее.

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

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Быстродействие будет как у Бейсика.
    Ну, не совсем. Новички всё воспринимают буквально.
    На самом бейсике, всё таки, получается в разы медленнее программа.
    Но не используя подпрограммы ПЗУ, можно делать в разы быстрее.
    Использовать ПЗУ это промежуточный вариант между чистым бейсиком и чистым ассемблером.

  9. #29
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    кстате, они тоже активно юзают процедуры из ПЗУ, а это не гуд для крутых поделий. Быстродействие будет как у Бейсика.
    Спорное утверждение. К использованию процедур ПЗУ нужен мудрый подход - велосипедостроение никогда не рекомендовалось как best practices.

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

    По умолчанию

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

    Мы можем установить необходимый адрес порта для каждой группы клавиш, используя формулу из руководства пользователя Спектрума. Адрес порта будет 254+256*(255-2^n), где n – это номер группы, принимающий значения от 0 до 7. Так же в ПЗУ, по адресу 654, есть очень полезная подпрограмма, которая возвращает код нажатой клавиши (от 0 до 39) в регистр e. Коды от 0 до 7 – это клавиши, которые в каждой группе ближе к середине (т.е. B, H, Y, 6, 5, T, G и V), 8-15 – следующие за ними, а 39 – крайняя клавиша последней группы – CAPS SHIFT. Кстати, статус клавиши SHIFT так же возвращается в регистр d. Значение 255 говорит о том, что не нажата ни одна клавиша.

    Данная подпрограмма ПЗУ может возвращать код только одной клавиши, и не подходит для определения нескольких одновременных нажатий. Тогда для определения нажатия какой-либо клавиши в любой момент времени, нам необходимо конвертировать полученный код в адрес порта и номер бита, а затем считать оттуда значение. Для этого я использую одну очень удобную процедуру. Это единственная процедура в моих играх, написанная не мной. Выражаю за нее свою признательность Стивену Джонсу, программисту, который много лет назад писал отличные статьи для «Spectrum Discovery Club». Для работы с этой подпрограммой, загрузите в аккумулятор код клавиши, нажатие которой вы хотите проверить, вызовите ktest, и проверьте флаг переноса. Если он установлен, то клавиша не была нажата, если сброшен – то была. Если вам этот способ кажется запутанным и не слишком правильным, поставьте инструкцию ccf перед ret.



    Код:
    ktest  ld c,a              ; key to test in c.
           and 7               ; mask bits d0-d2 for row.
           inc a               ; in range 1-8.
           ld b,a              ; place in b.
           srl c               ; divide c by 8,
           srl c               ; to find position within row.
           srl c
           ld a,5              ; only 5 keys per row.
           sub c               ; subtract position.
           ld c,a              ; put in c.
           ld a,254            ; high byte of port to read.
    ktest0 rrca                ; rotate into position.
           djnz ktest0         ; repeat until we've found relevant row.
           in a,(254)          ; read port (a=high, 254=low).
    ktest1 rra                 ; rotate bit out of result.
           dec c               ; loop counter.
           jp nz,ktest1        ; repeat until bit for position in carry.
           ret
    Последний раз редактировалось helcril; 24.03.2015 в 10:59.

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

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

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

Эту тему просматривают: 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

Ваши права

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