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

User Tag List

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

Тема: Помогите чуток модифицировать ROM фирменного спека!

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

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    места там в ПЗУ свободного полно, тем более, что Alex Rider уже добавил этот пункт, осталось только его чуть-чуть исправить.
    С местом напряга нет. Я не смог отладить код возврата из TR-DOS в меню, потому что у всех эмулей от такой связки крыша сползает. А код входа в TR-DOS я скопипастил с косметическими правками из кода входа в 48-й BASIC, но оттуда обратной дороги в меню нет.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

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

  3. #32
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    С местом напряга нет. Я не смог отладить код возврата из TR-DOS в меню, потому что у всех эмулей от такой связки крыша сползает. А код входа в TR-DOS я скопипастил с косметическими правками из кода входа в 48-й BASIC, но оттуда обратной дороги в меню нет.
    А не пробовал поставить в твоём коде вызова TR-DOS вместо адреса #3d00 адрес любого RET в ПЗУ48? Тогда, по идее, для отладки эмуляция связки +3 с TR-DOS не нужна, а нужно только написать корректный код для возврата из ПЗУ48 в ПЗУ +3, и отладить его в любом эмуле с приличным дебаггером, поддерживающим +3. А потом, после отладки, просто заменить назад в коде адрес RET в ПЗУ 48 на адрес #3D00.
    Последний раз редактировалось Spectramine; 21.09.2015 в 02:23.

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

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    А не пробовал поставить в твоём коде вызова TR-DOS вместо адреса #3d00 адрес любого RET в ПЗУ48?
    Блин, я думал над этой идеей, но меня остановило то, что вход и выход из 48-го ПЗУ не вызывает аппаратной подемны ПЗУ. Но до меня не доперла мысль о том, что на время отладки можно сделать костыль в виде принудительного переключения ПЗУ кодом, а в релизе эти костыли отломить. Правда придется еще тащить в ОЗУ код переключения ПЗУ, но эта проблема решаемая.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  5. #34
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Блин, я думал над этой идеей, но меня остановило то, что вход и выход из 48-го ПЗУ не вызывает аппаратной подемны ПЗУ. Но до меня не доперла мысль о том, что на время отладки можно сделать костыль в виде принудительного переключения ПЗУ кодом, а в релизе эти костыли отломить. Правда придется еще тащить в ОЗУ код переключения ПЗУ, но эта проблема решаемая.
    Так в любом случае ПЗУ +3 назад придется включать кодом (точнее, заблаговременно создать код в ОЗУ, который при выходе из ПЗУ48 вернёт ПЗУ+3). TR-DOS при впечатанном ПЗУ48 отрабатывает более-менее прозрачно (как процедура по адресу #3d000), то есть - включили ПЗУ 48, попали на #3d00, автоматом подставилась TR-DOS, работает, по команде RETURN вызвала RET в ОЗУ, этим обратно вернулось ПЗУ 48 и возвращаемся по адресу на стеке на код, который должен переключить ПЗУ 48 на +3.

    То есть временных костылей нет, код переключения ПЗУ назад нужен по-любому, просто вместо вызова TR-DOS ставишь адрес заглушки RET в ПЗУ 48 , а после отладки возврата в ПЗУ +3 - вместо адреса заглушки ставишь #3D00.

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

    По умолчанию

    Блин, надо просто протрассировать ПЗУ +3 на предмет вызова ПЗУ-48. Например, прыжок в какой-нить BEEP и выпрыг оттуда. И сделать по образу и подобию. Эх, руки бы дошли только...

    ---------- Post added at 02:33 ---------- Previous post was at 02:28 ----------

    Ха! Нет, не все там так просто, вспомнил я. Пункты меню - это не подпрограммы, а переходы. У меня без трассировки не получилось сделать корректный возврат в меню без разрушения BASIC'а.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  7. #36
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Даже если переходы, можно 1) закинуть в ОЗУ адрес меню +3; 2) закинуть необходимый код для переключения из ПЗУ48 в ПЗУ+3, 3) потом закинуть код для переключения в ПЗУ48, 4) использовав 3), вызвать из ПЗУ48 заглушку RET, 5) вернуться через подготовленный в ОЗУ код в ПЗУ+3 на закинутый в стек адрес меню.
    Где-то так. В общем, надеюсь, у одного из нас получится)

  8. #37
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Посмотрел я. Не смог) Что я накопал - вызов обычных процедур ПЗУ48 делается через RST $28; DW адрес . Но не всё так просто, для входа в TR-DOS надо подготовить страницы памяти и системные переменные. К тому же TR-DOS не отрабатывает прозрачно, а выходит по RETURN в какой-то определённый адрес ПЗУ48.

    Кстати, код Алекса вроде как после RETURN в TR-DOS возвращает в меню +3, правда, после сброса (наверно, побочный эффект, и не факт, что стабильный).

    ---------- Post added at 20:37 ---------- Previous post was at 20:27 ----------

    И ещё выяснил, что подключить Beta Disk к +3 очень геморройно: http://zx-pk.ru/showpost.php?p=212164&postcount=13 , надо серьёзно переделывать схему подключения Beta Disk, с учётом портов +3, иначе можно даже убить спек. Думаю, вряд ли кто за такое возьмётся.

  9. #38
    Guru Аватар для creator
    Регистрация
    02.07.2006
    Адрес
    Новосибирск
    Сообщений
    2,198
    Спасибо Благодарностей отдано 
    428
    Спасибо Благодарностей получено 
    219
    Поблагодарили
    130 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    И ещё выяснил, что подключить Beta Disk к +3 очень геморройно
    Это конечно так, но универсальный контроллёр существует — Контроллер BDI для фирменного Sinclair ZX-Spectrum и даже продаётся на барахолке.
    В правильно заданном вопросе содержится половина ответа

  10. #39
    Guru Аватар для ZX_NOVOSIB
    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,547
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    258
    Поблагодарили
    178 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    И ещё выяснил, что подключить Beta Disk к +3 очень геморройно:
    Очень легко, всего лишь нужно:
    1.Написать MV1971
    2.Перевести ему денег
    3.Сходить на почту
    4.Воткнуть полученную платку в системный разъём


    За последние 3 года многие кстати именно так и поступили, "отээрдосили" свои серые и черные спектрумы. А тем кто еще не отээрдосил, настоятельно рекомендую это сделать )
    Куплю корпус и материнку от Spectrum +2/+3

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

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

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

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

Похожие темы

  1. Помогите вывести видео со спека
    от NehakeR в разделе Несортированное железо
    Ответов: 29
    Последнее: 12.03.2023, 09:22
  2. Ремонт фирменного ZX 48k
    от Anteos в разделе Зарубежные модели
    Ответов: 7
    Последнее: 12.10.2012, 21:50
  3. Ремонт фирменного ZX Spectrum 48K
    от Edward в разделе Зарубежные модели
    Ответов: 6
    Последнее: 26.03.2012, 15:43
  4. Помогите с ПЗУ от ориг. Спека
    от Anteos в разделе Память
    Ответов: 4
    Последнее: 27.03.2011, 15:23
  5. Ремонт фирменного 48-го
    от kgbplus в разделе Зарубежные модели
    Ответов: 2
    Последнее: 11.03.2005, 20:43

Ваши права

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