User Tag List

Страница 4 из 4 ПерваяПервая 1234
Показано с 31 по 38 из 38

Тема: ПЗУ безопасные места

  1. #31

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,293
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    203
    Спасибо Благодарностей получено 
    1,457
    Поблагодарили
    947 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    достаточно давно существует вообще альтернативная прошивка OpenSEbasic
    https://www.worldofspectrum.org/info...cgi?id=0027510
    вариант для использования в коммерческих/аппаратных клонах.
    совместимость довольно высокая + новые команды/улучшения

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

  3. #32

    Регистрация
    09.09.2018
    Адрес
    г. Саратов
    Сообщений
    438
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    115
    Поблагодарили
    50 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Для этого не обязательно менять ПЗУ. Тем более, что изменённое ПЗУ не каждый потенциальный пользователь твоей системы сможет и захочет прошить.
    ПЗУ в железе вообще трогаться не будет. У Профи ПЗУ отключаемое (это требование CP/M), на его место встаёт страница 0. Так что можно просто грузить нужный код. Из ограничений, CP/M использует для своих целей адреса 0-255, тут нужно не сложно химичить.

    Хочу сделать эмуляцию режима 48кб (в перспективе 128кб), а не просто работы в бейсике. Что бы можно было грузить (и не только) программы напрямую из CP/M. Для чего реализуем основной код "эмулятора" в одном из верхнем сегментах памяти, а в ПЗУ нужно буквально несколько байт которые включат нужную страницу и совершат переход на подпрограмму. Благодаря наводке NEO SPECTRUMAN "безопасные" места вроде найдены. Остальное дело техники. Правда геммора ещё будет много в других местах. Сейчас ломаю голову как реорганизовать использование памяти внутри самой CP/M, так что бы весь код системы и драйвера вынести выше 7 страницы. Задача так же весьма не тривиальная, так как весь код писался так что бы мог работать на 128кб и подобный перенос не планировался, а страница 5 вообще имеет особое значение.

  4. #33

    Регистрация
    31.03.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    33
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    79
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А кстати. Такой вопрос к профессионалам, который давно интересует. Почему нижеследующая программа в адресе 30000 и 40000 звучит по разному? В 30000 как из бочки, а в 40000 звучит как в ПЗУ по первым четырёхзначным адресам? Ошибка отсчёта T-State или что-то совсем специфическое?
    Так будет на всех версиях Spectaculator и последних версиях EmuZWin. На ранней версии эмулятора звук во всех областях одинаковый.

    Скрытый текст


    ORG XXXXX

    LD HL, 1642 ; Длина звука
    LD DE, 261 ; Тональность
    beeper: DI
    LD A, L
    SRL L
    SRL L
    CPL
    AND 3
    LD C, A
    LD B, 0
    LD IX, BEIX3
    ADD IX, BC
    LD A, (23624) ; Цвет рамки во время звучания
    AND 56
    RRCA
    RRCA
    RRCA
    OR 8
    BEIX3: NOP
    BEIX2: NOP
    BEIX1: NOP
    BEIX0: INC B
    INC C
    BEHLLP: DEC C
    JR NZ, BEHLLP
    LD C, 63
    DEC B
    JP NZ, BEHLLP
    XOR 16 ; Цвет чередующейся полоски (16...24)
    OUT (254), A
    LD B, H
    LD C, A
    BIT 4, A
    JR NZ, BEAGAIN
    LD A, D
    OR E
    JR Z, BEEND
    LD A, C
    LD C, L
    DEC DE
    JP (IX)
    BEAGAIN:LD C, L
    INC C
    JP (IX)
    BEEND: EI
    RET
    [свернуть]

  5. #34

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,966
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    314
    Поблагодарили
    237 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Yuri80 Посмотреть сообщение
    А кстати. Такой вопрос к профессионалам, который давно интересует. Почему нижеследующая программа в адресе 30000 и 40000 звучит по разному? В 30000 как из бочки, а в 40000 звучит как в ПЗУ по первым четырёхзначным адресам? Ошибка отсчёта T-State или что-то совсем специфическое?
    модель спектрума? наиболее вероятная причина - в медленной памяти (на пентагоне разницы не должно быть)

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

  6. #35

    Регистрация
    31.03.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    33
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    79
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    модель спектрума? наиболее вероятная причина - в медленной памяти (на пентагоне разницы не должно быть)


    оба очень давно не обновлялись, и не стоит принимать их за образец
    48-й режим, я только в нём работаю.
    Я даже опыты с обнулением ПЗУ делал и рассчитывал время прохождения кругов по пустой памяти в режиме 3,5 и 7 МГц. И мне кажется, что опыт с музыкой, лишь часть той самой проблемы. Но выходит, она у многих эмуляторов в режиме 48K. Еще бы на десятке эмуляторов проверить этот глюк и на реальном. Подозреваю, что проблемы, скорее всего, в самих .exe файлах эмуляторов. А это только с помощью отладчика, типа OllyDbg ковырять.
    Поэтому и спрашиваю, может кто сталкивался.
    Я уже писал и размышлял на эту тему. Привожу картинку отдельно.


    Вот эта картинка, если скачать будет лучше видно:
    Нажмите на изображение для увеличения. 

Название:	Рис 559.jpg 
Просмотров:	123 
Размер:	53.4 Кб 
ID:	82785

  7. #36

    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    810
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    77
    Поблагодарили
    59 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    https://worldofspectrum.org/faq/refe...htm#Contention
    вам почитать для понимания, не самое простое описание но вроде все описано подробно.

    Этот пользователь поблагодарил krt17 за это полезное сообщение:

    Yuri80(13.09.2025)

  8. #37

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Yuri80 Посмотреть сообщение
    И мне кажется, что опыт с музыкой, лишь часть той самой проблемы. Но выходит, она у многих эмуляторов в режиме 48K. Еще бы на десятке эмуляторов проверить этот глюк и на реальном. Подозреваю, что проблемы, скорее всего, в самих .exe файлах эмуляторов.
    Если дело в медленной памяти (а по описанию это наверняка оно и есть), то в эмуляторах нет проблемы, проблема в спектруме. Эмуляторы лишь его точно эмулируют. В 48к модели нижние 16к оперативы лежат в отдельных микросхемах, доступ к которым имеет не только проц, но и видеоконтроллер. И у видеоконтроллера приоритет, поэтому на время, в которое он читает очередные байты экрана, проц в эту нижнюю память не имеет доступа. И получается, что такты тикают, а программа не исполняется.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

    Этот пользователь поблагодарил Eltaron за это полезное сообщение:

    Yuri80(13.09.2025)

  9. #38

    Регистрация
    31.03.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    33
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    79
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    https://worldofspectrum.org/faq/refe...htm#Contention
    вам почитать для понимания, не самое простое описание но вроде все описано подробно.
    Цитата Сообщение от Eltaron Посмотреть сообщение
    Если дело в медленной памяти (а по описанию это наверняка оно и есть), то в эмуляторах нет проблемы, проблема в спектруме. Эмуляторы лишь его точно эмулируют. В 48к модели нижние 16к оперативы лежат в отдельных микросхемах, доступ к которым имеет не только проц, но и видеоконтроллер. И у видеоконтроллера приоритет, поэтому на время, в которое он читает очередные байты экрана, проц в эту нижнюю память не имеет доступа. И получается, что такты тикают, а программа не исполняется.
    Огромное спасибо за наводку на статью и разъяснения! Почитал и скачал документацию с вышеуказанного сайта. Еще одной тайной стало меньше. Никогда бы не подумал, что внутренние процессы так хорошо влияют, и это поддаётся вычислению.
    В моих опытах, при пустой памяти первая задержка начинается на шаге 21057, где команда 0 даёт 9 тактов, а следующие по 8. вместо 4-х.
    Тема раскрыта.

Страница 4 из 4 ПерваяПервая 1234

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

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

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

Похожие темы

  1. Ответов: 76
    Последнее: 22.08.2019, 21:33
  2. Спектрумовские места в СПб
    от _Andrey в разделе Разный софт
    Ответов: 4
    Последнее: 03.11.2009, 20:34

Ваши права

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