User Tag List

Показано с 1 по 10 из 20

Тема: Порча Бейсика-48 в ОЗУ

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #7

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Про скроллинг посмотрю когда мозги посвежее будут. ЕМНИП (а сейчас очень даже ИП), первые 8 линий экрана невозбранно "выскролливаются" в ПЗУ. Про калькулятор:
    Код:
    33F7 SKIP-CONS    AND   A                   The subroutine returns if the
    33F8 SKIP-NEXT    RET   Z                   parameter is zero, or when the
                                                requested constant has been
                                                reached.
                      PUSH  AF                  Save the parameter.
                      PUSH  DE                  Save the result pointer.
                      LD    DE,+0000            The dummy address.
                      CALL  33C8,STK-CONST      Perform imaginary stacking of
                                                an expanded constant.
                      POP   DE                  Restore the result pointer.
                      POP   AF                  Restore the parameter.
                      DEC   A                   Count the loops.
                      JR    33F8,SKIP-NEXT      Jump back to consider the value
                                                of the counter.
    Суть примерно в том, что калькулятор использует процедуру распаковки упакованных констант для пропуска констант в таблице (они все разной длины). Распаковывает пропускаемые константы в ПЗУ с #0000. Самый простой способ лечения: "распаковывать" в какое-нибудь другое безобидное место (LD DE,+0000), кандидат на ненужное место - байты #ff с адреса #0013. Если важно не "писать" в ПЗУ совсем, я бы переписал таблицу констант с #32C5 в распакованном виде в свободные ячейки и переписал бы skip-cons целиком.
    Кстати, процедура нехило так тормозит весь BASIC, ибо помещение констант (0, 1, 0.5, pi/2, 10) на стек используется весьма часто, а stk-const нифига не простая.
    Последний раз редактировалось Alex Rider; 28.11.2015 в 07:15.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

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

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

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

Похожие темы

  1. Кросс-компилятор бейсика для БК
    от litwr в разделе БК-0010/0011
    Ответов: 2
    Последнее: 30.03.2018, 18:03
  2. Ответов: 2
    Последнее: 21.11.2012, 22:00
  3. вопрос по трдос из бейсика 48
    от Руслан в разделе Для начинающих
    Ответов: 23
    Последнее: 31.07.2012, 23:08
  4. Спрайты из бейсика
    от Руслан в разделе Графика
    Ответов: 15
    Последнее: 26.07.2012, 20:54
  5. Порча TR-DOS'ом ячейки #5B89
    от TomCaT в разделе Для начинающих
    Ответов: 2
    Последнее: 09.03.2010, 21:51

Ваши права

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