User Tag List

Показано с 1 по 10 из 15

Тема: Запуск дисков как в iS-DOS как сделать?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    16.11.2005
    Адрес
    Санкт-Петербург
    Сообщений
    2,925
    Спасибо Благодарностей отдано 
    1,168
    Спасибо Благодарностей получено 
    362
    Поблагодарили
    198 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Запуск дисков как в iS-DOS как сделать?

    Вот такой вопрос. Интересует, собственно, каким должно быть содержание девятого сектора (в какое место сектора записывать собственный загрузчик) и т.д.

    И физику процесса запусков таких дисков тоже интересно знать, поделитесь знаниями кто в курсе плиз

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

  3. #2

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все относительно просто. Когда трдос читает каталог (начиная с 9 сектора с описанием диска), данные с диска идут в буфер размером 256 байт (ну привыкла трдос так...). На самом деле данных читается столько, сколько физически лежит в секторе (128, 256, 512 или 1024). А следом за этим буфером лежат адреса процедур обработки каналов ввода-вывода (кажется так...). Так вот, если 9 сектор будет больше 256 байт, его хвост перекроет эти адреса процедур и окажет непосредственное влияние на обработку потоков информации (печать на экран в данном случае).
    Вот значит и организуется сектор таким образом, что перехватывает управление на себя и самостоятельно продолжает грузить диск.

  4. #3

    Регистрация
    05.05.2005
    Адрес
    Германия
    Сообщений
    1,614
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    Вот значит и организуется сектор таким образом, что перехватывает управление на себя и самостоятельно продолжает грузить диск.
    IS-DOS - большой вирус?

  5. #4

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от icebear
    IS-DOS - большой вирус?
    хы)) а ведь да, это самая настоящая уязвимость в TR-DOS)) только никто раньше не знал, что это называется уязвимостью)) типа, переполнение буфера)

    интересно, что еще подобное есть? помню, когда с лент грузились кодовые блоки на стек.. самозапускались тоже.. а еще что-нить?

    Цитата Сообщение от Evgeny Muchkin
    Можно поточнее, желательно с примером
    ех.. вот, делал я такое, но ооочень давно.. теперь без ковыряния и не вспомнишь.. жаль вообще, что столько всего интересного (и еще кому-то нужного!) просто забывается.. может, у кого-нить инфа в понятном виде лежит..

  6. #5

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb
    теперь без ковыряния и не вспомнишь..
    собс-но, если нигде не найдешь, можно взять эмуль, поставить туда какой-нить такой диск, поставить точки останова на (примерно) #5D00-#5E00 и запустить. при запуске диски вылетит на некоем адресе старта. потом ищешь, где в секторе находится этот адрес (смещение в секторе). ну и заодно узнаешь, по какому адресу этот сектор грузится

  7. #6

    Регистрация
    16.11.2005
    Адрес
    Санкт-Петербург
    Сообщений
    2,925
    Спасибо Благодарностей отдано 
    1,168
    Спасибо Благодарностей получено 
    362
    Поблагодарили
    198 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не нашел в ZX format 6,7 статей про это дело. Видимо придется осваивать эмульский отладчик. (off и спековкую клаву - постоянно Break вместо delete нажимаю )

  8. #7

    Регистрация
    16.11.2005
    Адрес
    Санкт-Петербург
    Сообщений
    2,925
    Спасибо Благодарностей отдано 
    1,168
    Спасибо Благодарностей получено 
    362
    Поблагодарили
    198 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    Вот значит и организуется сектор таким образом, что перехватывает управление на себя и самостоятельно продолжает грузить диск.
    Можно поточнее, желательно с примером - именно точное рассмотрение этого вопроса мне и интересно.

  9. #8

    Регистрация
    22.02.2005
    Адрес
    Украина, Харьков
    Сообщений
    1,528
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Evgeny Muchkin
    Можно поточнее, желательно с примером - именно точное рассмотрение этого вопроса мне и интересно.
    Этот вопрос был рассотрен в одном из E-zine. Но в каком точно не помню, возможно в ZX Format #6-#7. Метод применялся и в IS-DOS, и Черном Вороне, и еще где-то.

  10. #9

    Регистрация
    14.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,726
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    148
    Поблагодарили
    91 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Evgeny Muchkin
    Вот такой вопрос. Интересует, собственно, каким должно быть содержание девятого сектора (в какое место сектора записывать собственный загрузчик) и т.д.

    И физику процесса запусков таких дисков тоже интересно знать, поделитесь знаниями кто в курсе плиз
    Загрузчик с 9 сектором (номер 8) большим 256 байт.

    Буфер TRDOS длиной 256 байт, в который происходит загрузка
    9-го сектора, имеет адрес 5D25h.
    Перед чтением сектора системные переменные бэйсика, размещенные
    в этом адресном пространстве, временно смещаются на 256 байт
    выше в ОЗУ компьютера, начиная с адреса 5E25h.
    В ячейках 5E27h..5E28h при этом оказывается адрес процедуры
    выдачи на экран сообщений (канал экрана).
    Признаком диска формата TRDOS является байт 10h, записанный
    в 9 секторе со смещением +0E7h относительно его начала.
    Если байт в этой ячейке не равен 10h, то TRDOS
    выдает на экран сообщение "Disk error".
    При длине сектора 256 байт сообщение как и положено выдается
    на экран, поскольку в адресе 5E27h..5E28h находится истинный
    адрес процедуры выдачи сообщения на экран (по умолчанию 09F4h).
    Если 9 сектор имеет длину больше 256 байт, то поскольку
    процедура чтения все равно прочитывает его весь, все что
    больше 256 байт перекрывает область системных переменных, и
    если по смещению +0E7h относительно начала сектора не будет
    прочитан байт 10h, то при попытке выдачи сообщения об
    ошибке будет выполнена команда, расположенная по адресу
    взятому из указателя 5E27h..5E28h (+102h..+103h от начала
    сектора).
    В ISDOS в эти ячейки записывается адрес начала буфера
    TRDOS (5D25h), что и приводит к запуску начального загрузчика
    этой ОС, записанного в 9 сектор системного диска, длина
    которого равна 1024 байта.

    Отсюда:
    1) длина 9-го сектора должна быть 512 или 1024 байта;
    2) по смещению +0e7h от начала сектора не должно быть
    байта со значением 10h;
    3) по смещению +102h..103h от начала сектора должен
    быть записан адрес запуска загрузчика (проще всего
    сделать его равным 5D25h).

    Вот и все.....
    Последний раз редактировалось caro; 07.07.2006 в 14:07.

  11. #10

    Регистрация
    16.11.2005
    Адрес
    Санкт-Петербург
    Сообщений
    2,925
    Спасибо Благодарностей отдано 
    1,168
    Спасибо Благодарностей получено 
    362
    Поблагодарили
    198 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    caro, спасибо! Именно такого ответа я и ждал

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

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

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

Похожие темы

  1. Ответов: 61
    Последнее: 10.11.2013, 05:51
  2. Чтение дисков с iS-DOS
    от IDma в разделе Утилиты
    Ответов: 11
    Последнее: 12.02.2006, 08:04
  3. Продажа дисков 5.25
    от rasmer в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 15.01.2006, 13:35
  4. 30 дисков с VT даром!
    от newart в разделе Барахолка (архив)
    Ответов: 5
    Последнее: 24.03.2005, 11:59

Ваши права

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