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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 20

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

  1. #1
    Veteran Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,449
    Благодарностей: 702
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Порча Бейсика-48 в ОЗУ

    Народ! Где-то когда-то читал информацию, что если разместить образ ПЗУ Бейсика-48 в ОЗУ (например а статическом КЭШе или еще как), подключаемом по адресу #0000 вместо реального ПЗУ и сделать в нем RANDOMIZE USR 0 (или даже достаточно только команды NEW?), то там какие то несколько (5-6?) байт повреждаются? Киньте в меня информацией, где это описано. Интересно также знать, поправимо ли это через программное вмешательство в прошивку или ее ОЗУшый образ...
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

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

  3. #2
    Guru Аватар для SoftFelix
    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    2,147
    Благодарностей: 717
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Максагор, я с этим столкнулся, когда расширял Ленинград-1 до 1МБ на СИММ-30. Только у меня портились 5 байт в странице от #C000. Но, как мне очень прозрачно объяснили, это проделки калькулятора Басик48. В общем, можно почитать отсюда и далее по топику и ещё вот тут. Я бы сам хотел узнать об этой проблеме более подробно, т.к. в тот раз (при расширении памяти) почти ничего не понял.
    МГТФ - любимый провод!
    KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL

  4. #3
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    9,455
    Благодарностей: 3169
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    от команды NEW порчи не-будет.
    запись в ROM происходит при работе встроенного калькулятора (при вычислении фактических значений чисел).

  5. #4
    Veteran Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,449
    Благодарностей: 702
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    от команды NEW порчи не-будет.
    запись в ROM происходит при работе встроенного калькулятора (при вычислении фактических значений чисел).
    Это лечится?
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  6. #5
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    9,455
    Благодарностей: 3169
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    "WRITE TO ROM (48 ROM-33FEh)

    Not so much a bug as poor coding. The ROM tries to write four bytes starting at 0000h. On a real Spectrum there is usually no effect because you can't actually write to the ROM, but if a copy of the ROM is really in RAM (to give better compatibility on a +3 or +2A for instance), the 'ROM' could be overwritten."

  7. #6
    Veteran Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,449
    Благодарностей: 702
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    The ROM tries to write four bytes starting at 0000h.
    Смысл вопроса: если мы имеем копию в ОЗУ, то можно ли "ручками" "малой кровью" (т.е. без перелопачивания половины образа ПЗУ) убрать "порчу" (или сместить ее в неиспользуемую часть образа прошивки - вроде бы там достаточно места, забитого байтами #FF). И если да, хотелось бы понять, какие подпрограммы эту "порчу" осуществляют...
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  8. #7
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,720
    Благодарностей: 947
    Mentioned
    0 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 Extrme + NeoGS.

  9. Этот пользователь поблагодарил Alex Rider за это полезное сообщение:
    Максагор (28.11.2015)

  10. #8
    Moderator
    Регистрация
    25.11.2007
    Адрес
    Симферополь
    Сообщений
    1,970
    Благодарностей: 386
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Максагор - глянь это http://zx-pk.ru/showthread.php?t=143...l=1#post350143
    Возможно поможет.
    Amiga 1200+Blizzard 1260 72 Mb+Mtek 68030,Compozit 128, Leningrad 2,
    Atari STE 1040,ZX Spectrum +2,Pentagon 48, Speccy2007 - 2 , ATAS 256k.
    ZX Evo 4Mb- в строю.
    Speccy2010 v1
    Специалист (пока готовлюсь к восстановлению).
    Это все мое!
    Родное!
    Все люблю на свете я! Это родина моя!

  11. Этот пользователь поблагодарил balu_dark за это полезное сообщение:
    Максагор (28.11.2015)

  12. #9
    Master
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    880
    Благодарностей: 470
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тут правильно указали, что в бейсике есть два бага, один в процедуре скролла, а другой - в калькуляторе. Если их исправить - то память портиться не будет. Впервые я увидел фиксы в Орель-бейсике и скопировал их в bogobasic.

    Вот фикс для ошибки скролла (синтаксис ассемблера ZEUS):
    Код:
    ORG #0E16
    CALL SCRLK
    ORG #38F6
    SCRLK DEC A
    BIT 6,D
    JR Z,SCK1
    LDIR
    SCK1 ADD HL,BC
    RET
    Фикс для ошибки калькулятора
    Код:
    ORG #33DE
    LD B,0
    INC HL
    INC D
    DEC D
    JP NZ,M3932
    ADD HL,BC
    LD A,1
    NOP
    M33EA EQU $
    ORG #3932
    M3932 ADD A,#50
    LD (DE),A
    LD A,5
    SUB C
    INC DE
    LDIR
    JP M33EA
    Данные патчи можно сопоставить с дизассемблером бейсика (от Яна Логана), чтобы понять, что фиксится и как.

    Последствия от обеих ошибок различные. Если ошибка калькулятора портит первые байты в ОЗУ, то ошибка скролла портит знакогенератор.

  13. Этот пользователь поблагодарил Barmaley_m за это полезное сообщение:
    Максагор (11.01.2016)

  14. #10
    Guru Аватар для SoftFelix
    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    2,147
    Благодарностей: 717
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Barmaley_m, а размер этих патчей позволит их интегрировать в прошивку BASIC_48 (или BASIC_48 от прошивки BASIC_128) без использования дополнительной памяти ПЗУ (свободные места и т.п.)?
    МГТФ - любимый провод!
    KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

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

Ваши права

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