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

User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 16 из 16

Тема: Загрузка с ленты

  1. #11
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я что-то не понял. Любого образа ленты? Значит так. Если там блок данных, то он начнёт грузиться. Если блок программы или скрина, загрузчик в ПЗУ не будет его грузить, а будет ждать следующий блок. Эмуляторы тут ни при чём.

    Кстати. Есть такие программы, которые целиком оформлены в виде блока CODE. Загружается, и начинает работать. Секрет простой: в процессе загрузки затирается стек, и при выходе из подпрограммы загрузки управление сразу передаётся в нужную точку кода. Но не всегда прокатывает, а только при ожидаемом положении SP.

    Добавлено через 24 минуты
    Продолжаю. А если вы грузите именно кодовый блок, но не указываете куда, то он грузится туда, куда это в нём прописано. А если не прописано, то опять не грузится. А если не туда загружать, куда можно загружать, то сами понимаете - финита ля комедиа, как только испортился стек.
    Последний раз редактировалось Vladimir Kladov; 16.06.2008 в 16:11. Причина: Добавлено сообщение
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  2. #12
    Guru Аватар для Addison
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question Что, неужели и правду глюк?

    У кодового блока в "меню ленты" указаны его параметры: длина, адрес...
    Я грузил его и просто и с адресом и длиной. Не помогает.
    Привязки к какой-то конкретной программе, образу нету! На всех так.
    Я же говорю, сам на образ перегнал файлы без всякой защиты и не могу их загрузить оттуда!
    Только после загрузки любой бейсик программы, начинает грузить кодовые блоки, причем глюк этот на нескольких эмулях!
    Я уверен, что глюк эмулей, потому что на реале такого не было! Я точно помню, сто раз это делал.
    Возьмите кто-нибудь загрузите кодовый блок любой игры с любого образа.
    Только сделайте это на чистой машинке после ресета!

  3. #13
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Без проблем грузится, что в EmuZWin, что в EmuZGL. Проверил секунду назад на Arkanoid-128.tap
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  4. #14
    Guru Аватар для Addison
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    Без проблем грузится, что в EmuZWin, что в EmuZGL. Проверил секунду назад на Arkanoid-128.tap
    Да, спасибо!
    Я вчера чего-то ночью совсем затупил и запутался.
    Дело в том, что проблема связана с +3дос. Эта фигня именно там происходит, как теперь удалось установить. Я просто на других версиях машинок кроме +3 не пробовал, а почему твой эмуль охаял сам не понимаю, там +3 прошивка вовсе не пашет .
    Цель моя проста - обеспечить реальный Spectrum+3 играми, для этого необходимо перегнать файлы с образов trd в образы dsk, а потом с образа dsk на реальный диск 3.5". Использовать готовые образы на WOS бесполезно по двум причинам:
    1. 90% образов защищены и ломать голову, тем более без описания защит, которые там применяют просто неохота.
    2. 80% образов содержит неизвестные мне игры и программы, в которые я сейчас уже вряд ли проникнусь, в тоже время нужные и любимые, например, такие как, Elite на них отсутствуют.
    Таким образом, и в силу того, что плагин никто из-за меня одного, двух, трех писать не хочет для решения этой задачи мной разработан следующий план(посылы) по переносу софта.
    1. Очевидно, что машинок обладающих сразу и +3дос и trдос не существует.
    2. Также очевидно, что все машинки могут работать с лентой.
    3. Поэтому напрашивается перенос из trd в tap, а из tap в dsk.

    С переносом из trd в tap я легко справился при помощи Навигатора (esn.exe).

    А вот из tap в dsk возникли проблемы, о которых я выше писал.
    Как я сейчас уже понял проблема в следующем:

    грузим кодовый файл

    load"t:m.pacman"

    t: - в синтаксисе +3dos означает, что носитель лента.
    по умолчанию, если не указывать, то будет грузиться с дисковода "a", что равносильно load"a:m.pacman".
    В этом то вся и проблема!
    Я пишу load"t:m.pacman" грузится заголовок, далее как я полагаю либо имя сверяется, либо оно просто используется, в этот момент и происходит затык, так как используется полный стринг t:m.pacman, в то время, как имя кодового файла m.pacman.

    Эта гипотеза была проверена на 128 машинке с родной осью (не +3dos)!
    гружу файл
    load""code - результат ok

    гружу по-другому
    load"m.pacman"code - результат ok

    гружу по третьему
    load"tm.pacman"code - появляется описанный ранее глюк!!!
    Как видно, в третьем случае к имени добавил "t" - чтобы смоделировать ситуацию, которая происходит на +3dos. Т.е. если имя в команде загрузки не совпадает с именем в заголовке, появляется глюк!

    Теперь вернемся к +3dos.
    Как тогда вообще там что-то грузится, если в системе в ОС сидит такой БАГ?
    Очень просто, никто и не пробовал грузить программу из бейсика.
    Тыркаешь в меню tape loader, он как-то там, видимо, в коде выбирает текущий носитель лента, а потом пользуется стандартными процедурами из стандартной прошивки и все окей.

    Это объясняет также, почему после загрузки первого бейсик файла, через tape loader, далее все грузится нормально. Понятно, что когда выбран текущий носитель лента - ОС начинает понимать t: в команде загрузки правильно, не отождествляя его с именем файла.

    Вот пока все.

    To be continue
    Последний раз редактировалось Addison; 17.06.2008 в 04:24.

  5. #15
    Moderator Аватар для kyv
    Регистрация
    19.01.2005
    Адрес
    Челябинск
    Сообщений
    1,201
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    7 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    off top
    Клон,а ты когда успел из Долгопрудного в Самару свинтить? Цезарь ты наш ненаглядный

  6. #16
    Guru Аватар для Addison
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Эврика!

    Проблема полностью разрешена!
    Почитал фирменное описание +3 и понял как обойти проблему!

    Копировщик с ленты на диск будет выглядеть так:

    10 clear 24500
    20 load "t:"
    30 load "m.pacman" code 25286,40250
    40 save "a:m_pacman" code 25286,40250


    Вся хитрость заключается в дополнительной строке 20, которая позволяет обойти глюк, при помощи принудительного назначения текущего девайся для чтения. После чего в строке 30 в команде загрузки указывается имя файла без дополнительного t:. В строке 40 сохраняется загруженный в ОЗУ файл на диск "а".

    На мой взгляд, это реальный глюк операционки +3ДОС, так как команда load "t:m.pacman" по логике должна проходить без глюков, как, например, это получается для диска save "a:m_pacman".

    P.S. Забыл добавить, что использование "." в имени файла в +3дос запрещено, так как это разделитель для расширения файла, аналогично MS-DOS. В приведенном примере файл на ленту был скинут с TR-DOS, где в имени разрешается использование ".", поэтому конечный файл при копировании в dsk был переименован в m_pacman.
    Последний раз редактировалось Addison; 17.06.2008 в 04:30.

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

Страница 2 из 2 ПерваяПервая 12

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

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

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

Похожие темы

  1. загрузка на ATARI 65XE
    от ZEman в разделе Atari
    Ответов: 10
    Последнее: 21.09.2011, 10:05
  2. Загрузка на рел Commodore 64
    от Zloy в разделе Commodore 16/64/128
    Ответов: 46
    Последнее: 27.07.2009, 12:59
  3. По ходу загрузки с ленты...
    от anoubis в разделе Игры
    Ответов: 3
    Последнее: 13.08.2007, 10:39
  4. Загрузка со старых кассет
    от Arigato в разделе Разный софт
    Ответов: 6
    Последнее: 14.05.2006, 13:49
  5. Надежная загрузка с ленты
    от Conan в разделе Разный софт
    Ответов: 35
    Последнее: 15.09.2005, 18:00

Ваши права

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