User Tag List

Страница 28 из 36 ПерваяПервая ... 242526272829303132 ... ПоследняяПоследняя
Показано с 271 по 280 из 355

Тема: Игры с TURBO-загрузкой для "LENINGRAD-2012"

  1. #271

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

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    проверил на эмуле реалспектрум, там ситуация другая, загрузчик нормально грузится, картинка грузится и показывается, а дальше ничего.. тишина и ничего не грузится


    ---------- Post added at 19:12 ---------- Previous post was at 19:00 ----------

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    интересно, почему такой глючный (с точки зрения эмуляторов) получился WAV
    я склеивал блоки в audacity, а потом конвертил 16->8 (для лучшего сжатия),
    возможно это сыграло свою роль.

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

  3. #272

    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,605
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    188 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    goodboy, да, с такими настройками реалспек грузит.

    Делаю тут игру, она после распаковки начинается с 24064, если в загрузчике выставить CLEAR 24063, то бейсик ругается, слишком низкий адрес, даже если убрать всё лишнее, ведь в загрузчике в рем строке 181 байт (168 кодовый лоадер + 13 байт переброска лоадера).

    Может можно CLEAR в бейсике не ставить, а приклеить перед сжатым блоком игры LD SP,24063? Такое прокатит или нет? В хрусте есть опция "установить новый стек после распаковки", но ведь нам нужен стек в 24063 до распаковки? Или что.. Вообще не понятно, в описании к хрусту сказано, что стек плавает во время распаковки, нафига тогда в бейсик-загрузчике стек выставлять, если хруст его потом один хрен заставляет плавать.
    ___________

  4. #273

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ZX_NOVOSIB, ld sp,24064 надо делать перед загрузкой
    при распаковке хруст через стек берутся данные потому он и гуляет
    а выставлять надо чтобы блок загрузился нормально - малоли где бейсик стек бросит
    С уважением,
    Jerri / Red Triangle.

  5. #274

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

    По умолчанию

    zx_novosib, постарайся понять как я сжал robin of the wood


  6. #275

    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,605
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    188 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    goodboy,

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

    честно сказать я не очень хорошо понимаю что такое стек, вернее я понимаю, но не понимаю зачем его ставить именно на адрес первого байта распакованного блока. Зачем RAMTOP устанавливают, я более менее понимаю, чтобы не было конфликта кодового блока и бейсика (однако и здесь есть непонятки, ну допустим блок затрет часть бейсика, ну и фиг с ним с этим бейсиком, если в него возврата не планируется, если он уже сделал своё дело. Однако появляются глюки, если например распаковать хрустом и автостартануть блок, если при этом распакованный блок наедет на конец бейсика, короче почему в этом случае появляются глюки я не понимаю.)

    А игра кстати, работает, без лишних телодвижений, в бейсик-загрузчике CLEAR нельзя выставить, ну хрен с ним, без него всё идеально работает. Я даже игру всю прошёл, чтобы убедиться, что глюков нет, она короткая.
    [свернуть]
    постарайся понять как я сжал robin of the wood
    а в чём там подвох был? Мне сложно будет понять решение проблемы, если я самой проблемы не понял )) В бейсик-загрузчике Робина у тебя стоит CLEAR 24575. Получается что CLEAR надо ставить на единицу меньше адреса загрузки сжатого блока? А я почему-то думал, что на единицу меньше уже разжатого блока. В этом была моя ошибка?

    Когда в хрусте я выставляю параметры, то NEW SP надо выставлять на адрес первого байта распакованного блока, так? (я на этот параметр вообще не обращал внимание, думал, я ж уже выставил CLEAR в бейсике, нафига мне что-то еще делать.)

  7. #276

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

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    Зачем RAMTOP устанавливают, я более менее понимаю, чтобы не было конфликта кодового блока и бейсика (однако и здесь есть непонятки, ну допустим блок затрет часть бейсика, ну и фиг с ним с этим бейсиком, если в него возврата не планируется, если он уже сделал своё дело. Однако появляются глюки, если например распаковать хрустом и автостартануть блок, если при этом распакованный блок наедет на конец бейсика, короче почему в этом случае появляются глюки я не понимаю.)
    всё наоборот, данные которые выставляются/снимаются на стеке портят кодовый блок. если прерывания разрешены (режим im0/1) то постоянно выполняется подпрограмма в ПЗУ с #0038. при этом на стек сначала выставляется адрес с которого потом продолжится выполнение основной программы.

  8. #277

    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,605
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    188 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    всё наоборот, данные которые выставляются/снимаются на стеке портят кодовый блок. если прерывания разрешены (режим im0/1) то постоянно выполняется подпрограмма в ПЗУ с #0038. при этом на стек сначала выставляется адрес с которого потом продолжится выполнение основной программы.
    окей. Представим гипотетическую ситуацию: бейсик программа занимает много места, например до адреса 26000. Она грузит блок упакованный хрустом, блок с 40000. Блок хочет распаковатся начиная с адреса 24000 (и автостартануть, возврат в бейсик не планируется). Как выйти из ситуации? В бейсике нельзя сделать CLEAR 23999, однако если его не сделать, то #0038 испортит наш блок.

    Однако можно в настройках хруста выставить NEW SP 24000 и это решит проблему? Или в дополнение к этому параметру надо будет выставить ещё и Int. on exit: DI? (т.е. запретить прерывания)
    ___________

  9. #278

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

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    Однако можно в настройках хруста выставить NEW SP 24000 и это решит проблему? Или в дополнение к этому параметру надо будет выставить ещё и Int. on exit: DI? (т.е. запретить прерывания)
    при sp=24000 стек будет расти вниз и естественно не затронет твои данные.
    насчёт прерываний нельзя сказать точно, если программа устанавливает IM2 то она берёт полное управление на-себя.
    однако бывают программы которые пользуются результатами пзушной im1 (опрос клавиатуры, часы и.т.д.) тогда прерывания должны быть разрешены.

    в128ом бейсике всё гораздо запущенней.на прерываниях висят подпрограммы которые находятся в буфере принтера. например переключить страницу можно сделав poke 23388,page

  10. #279

    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,605
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    188 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    при sp=24000 стек будет расти вниз и естественно не затронет твои данные.
    насчёт прерываний нельзя сказать точно
    чуть выше я писал:
    В бейсик-загрузчике Робина у тебя стоит CLEAR 24575. Получается что CLEAR надо ставить на единицу меньше адреса загрузки сжатого блока? А я почему-то думал, что на единицу меньше уже разжатого блока. В этом была моя ошибка?

    Когда в хрусте я выставляю параметры, то NEW SP надо выставлять на адрес первого байта распакованного блока, так? (я на этот параметр вообще не обращал внимание, думал, я ж уже выставил CLEAR в бейсике, нафига мне что-то еще делать.)
    Но похоже правило "В бейсик-загрузчике CLEAR ставим "адресс загрузки сжатого блока -1", предварительно в хрусте выставив для этого блока NEW SP = адрес начала несжатого блока" не работает!

    Щас делал турбо-версию "TEST 4.30" (в аттаче). Дело было так: глянул твой загрузчик, там CLEAR 24575, загруз несжатого блока и USR 24576. Я в хрусте, выставляю NEW SP 24576, сжатый блок кладу с 40000, в otla ставлю CLEAR 39999, и USR 40000. В итоге нихрена не работает. Только когда в otla поставил CLEAR 24575, заработало. Но тогда получается я в хрусте зря ставил NEW SP. Короче сложно всё.
    Вложения Вложения

  11. #280

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

    По умолчанию

    Цитата Сообщение от ZX_NOVOSIB Посмотреть сообщение
    Я в хрусте, выставляю NEW SP 24576, сжатый блок кладу с 40000, в otla ставлю CLEAR 39999, и USR 40000. В итоге нихрена не работает.
    Не смотрел архив, но догадываюсь и так: блок, разжимаясь с 24576 в сторону старших адресов, затирает стек в 39999.

Страница 28 из 36 ПерваяПервая ... 242526272829303132 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. LENINGRAD-2012
    от zx-kit в разделе Ленинград
    Ответов: 481
    Последнее: 23.03.2025, 19:41
  2. Тех. раздел "Scorpion ZS 1024 Turbo+" (savelij)
    от zorel в разделе Scorpion
    Ответов: 1096
    Последнее: 20.11.2024, 12:30
  3. "Исходники" Turbo Pascal нужны кому ?
    от esl в разделе Программирование
    Ответов: 2
    Последнее: 19.10.2018, 11:33
  4. Релиз платы "Scorpion ZS 256 turbo+"
    от ZXFanat в разделе Scorpion
    Ответов: 34
    Последнее: 22.06.2011, 13:02
  5. Ответов: 0
    Последнее: 15.08.2010, 14:38

Ваши права

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